0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

论SRAM型FPGA软核Microblaze抗单粒子加固的方法

国产FPGA之家 来源:国产FPGA之家 2023-08-28 14:30 次阅读

Microblaze是32位/64位 RISC软核处理器,可以用作微处理器、实时处理器和应用处理器(Linux+MMU)。Microblaze作为FPGA的软核,搭建硬件系统时有丰富的IP资源,软件开发则有配套的SDK软件。 目前Microblaze在工业、医疗、汽车、消费以及通信市场有着广泛的应用。

Microblaze有这么多优点,是否可以用在宇航市场上呢?空间环境中,FPGA会受到单粒子效应影响,Microblaze是使用FPGA内部的资源来实现的,可能会发生功能中断或程序跑飞等情况,因此需要对Microblaze进行软件层面的加固来降低SEE的影响。

Microblaze最小系统的组成包括Clock Wizard,Processor System Reset,Microblaze IP,Data Local Memory Bus, Instruction Local Memory Bus,Data LMB BRAM Controller, Instruction LMB BRAM Controller和Block Memory。 今天贫道以Microblaze最小系统为例,简单介绍一下PG268 Xilinx方案(Fault torelant和Fail safe),然后着重介绍高可靠加固方案、方案在TMR工具的实现和故障注入验证结果,如图1所示:

9ba62a6e-4559-11ee-a2ef-92fbcf53809c.png

图1 Microblaze最小系统

01

Xilinx 加固方案

Fault-tolerant Type是对原系统整体复制两份,并在关键的Data LMB Controller和Instruction LMB Controller增加判决器,并对IO接口增加判决器。假如单路MB由于SEE发生软错误,那么通过判决器能够把软错误屏蔽掉。Fault-tolerant Type优点是实现简单,只需要利用好TMR Manager的Run block Automation功能,就能一键实现加固。Fault-tolerant Type属于粗粒度加固,因此缺点是可靠性提升有限。

9bc21de6-4559-11ee-a2ef-92fbcf53809c.png

图2 Fault-tolerant默认框图

9bee6752-4559-11ee-a2ef-92fbcf53809c.png

图3 TMR Voter插入位置 值得一提的是Fault-tolerant Type默认的方案是对BRAM做TMR,如果BRAM资源受限,那么可以更改设计对BRAM做ECC。

9c0ec9b6-4559-11ee-a2ef-92fbcf53809c.png

图4 Fault-tolerant Type ECC实现

Fail-Safe Type加入了TMR Comparator,实时对三个sub block进行比较。当某一个sub block发生异常的时候,另外两路正常的sub block进入到lock step模式。Lock step模式下,一旦发现两路sub block数据不一致,那么就会进入到Fatal stop模式。

Fail-Safe Type的优点是可以在lock step模式下,通过APP尝试进行恢复,恢复成功后重新返回到fault torelant模式。Fail-Safe Type的优点也是缺点,APP需要用户自行开发,设计比较复杂。此外如果软错误比较严重,会进入到Fatal stop模式,该模式没法完成恢复,只能重新加载来解决软错误。

9c26ab3a-4559-11ee-a2ef-92fbcf53809c.png

图5 Fail-Safe Type框图

9c433372-4559-11ee-a2ef-92fbcf53809c.png

图6 Fail-Safe Type故障模式转换流程

02

高可靠加固方案

高可靠加固方案是把Microblaze当做一般的IP,在网表层面采用TMR工具进行细粒度加固。同时考虑Microblaze的特点,对存储器BRAM进行TMR加固或者ECC加固。考虑到TMR或者ECC只能屏蔽错误,无法消除错误。因此为了更进一步提高可靠性,对储存器采用ECC+回写刷新,这样可以消除错误。本文只讨论Local Memory应用场景的加固方案和实现,下面将对实现部分做简要的介绍。

1.1存储器BRAM ECC实现

Microblaze默认的Local Memory结构如下图所示,需要做的是展开microblaze_0_local_memory。

9c7909de-4559-11ee-a2ef-92fbcf53809c.png

图7 MicroblazeLocal Memory

展开microblaze_0_local_memory,可以看到local_memory是由LMB Bus、LMB BRAM Controller和Block Memory组成。

9c909a5e-4559-11ee-a2ef-92fbcf53809c.png

图8 LocalMemory结构

需要做的是打开LBM BRAM Controller,勾选Error Correction Code。

9cac832c-4559-11ee-a2ef-92fbcf53809c.png

图9 LMB BRAM Controller设置

工具自动实现更改Block Memory属性,使用Soft方式来实现BRAM的ECCH32-7编解码。

9cd9bd1a-4559-11ee-a2ef-92fbcf53809c.png

图10 Block Memroy ECC参数设置

2.1存储器BRAMECC+自刷新逻辑

默认的Local Memroy结构里面,BRAM的两个端口都被占用住,要想实现自刷新就得更改Local Memroy结构。Microblaze支持复用DLMB和ILMB的控制器,这样两个控制器就共用一个BRAM端口,另一个端口用于自刷新,如下图所示:

9d0e64ac-4559-11ee-a2ef-92fbcf53809c.png

图11 共享memory结构

开发的自刷新模块连接到Freeport上,对BRAM全地址循环遍历,读出数据(32bit)和校验位(7bit)进行1bit错误纠错。如果解码过程出现1bit错误,把纠错后的数据回写到BRAM中。

9d3297f0-4559-11ee-a2ef-92fbcf53809c.png

图12 自刷新结构

2.2MicroBlaze System TMR实现

TMR工具可以对任意资源设置属性,Block Memroy采样ECC方案,因此属性设置为Converge。

9d64f45c-4559-11ee-a2ef-92fbcf53809c.png

图13 TMR工具Custom模式下参数自定义设置 TMR工具可以统计出加固前的资源消耗,以及预估加固后的资源消耗,便于设计师进行评估和迭代设计。

9d97b860-4559-11ee-a2ef-92fbcf53809c.png

图14TMR工具加固前资源统计和加固后资源预估

加固完成后,TMR工具可以统计出准确的资源使用情况。

9db748ec-4559-11ee-a2ef-92fbcf53809c.png

图15TMR工具加固后资源统计

TMR工具自动创建加固后工程并自动添加约束文件。

9ddd11bc-4559-11ee-a2ef-92fbcf53809c.png

图16 TMR PSOT工程

执行Implementation和Generate Bitstream。

9e056fa4-4559-11ee-a2ef-92fbcf53809c.png

图17 POST工程完成IMPL和BITGEN

2.3故障注入验证

Microblaze System采用TMR进行加固可靠性得到提升,TMR加固推荐采用DTMR/GTMR加固方式。Microblaze System中存储器部分选择的是ECC加固,需要针对Block Memroy进行故障注入验证。

9e174e04-4559-11ee-a2ef-92fbcf53809c.png

图18 BRAM故障注入测试 故障注入验证结果如下:

1)存储区不加固,随机注入70~100bit错,系统异常

2)存储区ECC纠错,随机注入700~800bit错,系统异常

3)存储区ECC纠错+回写,随机注入10000bit错,系统仍正常工作 Microblaze采样高可靠方案进行加固后可靠性得到提升,采用ECC纠错+自刷新措施可靠性最高。软核除了在FPGA内部进行软加固外,还应该采用外部Scrubber来消除CRAM的累积错误,这样经过多种加固措施后的软核应该能满足大部分的空间应用需求。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21326

    浏览量

    593216
  • sram
    +关注

    关注

    6

    文章

    742

    浏览量

    113904
  • 微处理器
    +关注

    关注

    11

    文章

    2133

    浏览量

    81421
  • TMR
    TMR
    +关注

    关注

    4

    文章

    69

    浏览量

    18857
  • BRAM
    +关注

    关注

    0

    文章

    40

    浏览量

    10886

原文标题:论SRAM型FPGA软核Microblaze抗单粒子加固

文章出处:【微信号:国产FPGA之家,微信公众号:国产FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    讲解一下SRAMFPGA在轨会遇到的问题及其影响

    SRAMFPGA属于核心元器件,因此对SRAMFPGA进行抗辐照加固设计非常必要。今天贫道主要给大家布道一下
    发表于 08-11 10:32 1304次阅读
    讲解一下<b class='flag-5'>SRAM</b>型<b class='flag-5'>FPGA</b>在轨会遇到的问题及其影响

    辐射加固封装国产存储器的电子辐照试验

    辐射封装加固存储器LS28C256R。设计专用试验测试电路板和测试软件,以进行存储器器件加电工作条件下电子加速器辐照试验的动态测试。辐照对比试验结果表明,加固存储器LS28C256R的电子源辐照能力
    发表于 04-22 11:44

    用SOI技术提高CMOSSRAM的粒子翻转能力

    【作者】:赵凯;高见头;杨波;李宁;于芳;刘忠立;肖志强;洪根深;【来源】:《信息与电子工程》2010年01期【摘要】:提高静态随机存储器(SRAM)的粒子能力是当前电子元器件
    发表于 04-22 11:45

    特征工艺尺寸对CMOS SRAM粒子翻转性能的影响

    对CMOS SRAM粒子翻转性能的影响及原因。研究表明:随着特征尺寸的减小,SRAM单元
    发表于 04-22 11:50

    Xilinx SRAMFPGA辐射设计技术研究

    Xilinx SRAMFPGA辐射设计技术研究 (1)
    发表于 08-17 08:57

    请教:基于fpga的c语言编程

    我已经搭建好了microblaze,但是用sdk编程却看不懂,请教大侠如何学习在sdk内编程?
    发表于 03-04 17:15

    ISE中应用MicroBlaze

    [url=]ISE中应用MicroBlaze[/url]
    发表于 12-14 13:22

    FPGA在航天领域有什么应用

    航天应用成功经验的产品是ACTEL公司的辐射加固反熔丝FPGA。与传统FPGA平面型散布的逻辑模块、连线、开关矩阵的布局不同,反熔丝
    发表于 07-07 16:10

    【正点原子FPGA连载】第一章MicroBlaze简介--摘自【正点原子】达芬奇之Microblaze 开发指南

    的系统架构图 1.1.2 SOPC架构在进行系统设计时,倘若系统非常复杂,采用传统FPGA单独用Verilog/VHDL语言进行开发的方式,工作量无疑是巨大的,这时调用MicroBlaze
    发表于 10-16 16:28

    求一款双MicroBlaze处理器的SOPC系统设计

    处理器间通信和中断方面仍需进一步的研究。本文在处理器间通信和中断控制方面进行了深入的研究。MicroBlaze是一个被优化过的可以在Xilinx公司FPGA中运行的处理器,可以和其
    发表于 03-16 07:44

    基于microblaze的vivado开发流程

    arty a7是基于Artix-7 FPGA设计的开发平台,具有丰富的Pmod接口,扩展性较强,搭建microblaze易于开发Arty A7开发板基本外设:LED灯、UART串口
    发表于 01-18 08:09

    反熔丝型FPGA粒子效应及加固技术研究

    反熔丝型FPGA粒子效应及加固技术研究.
    发表于 01-04 17:03 11次下载

    基于TDICE单元的SRAM抗SEU加固设计

    基于TDICE单元的SRAM抗SEU加固设计_孙敬
    发表于 01-07 18:39 1次下载

    SRAMFPGA在轨会遇到的问题及其影响

    SRAMFPGA属于核心元器件,因此对SRAMFPGA进行抗辐照加固设计非常必要。今天贫道主要给大家布道一下
    发表于 08-11 10:30 1401次阅读
    <b class='flag-5'>SRAM</b>型<b class='flag-5'>FPGA</b>在轨会遇到的问题及其影响

    SRAMFPGA的抗辐照加固设计

    让一颗SRAMFPGA在太空长期稳定运行的难度,就类似练成独孤九剑的难度。
    发表于 08-15 10:36 2227次阅读
    <b class='flag-5'>SRAM</b>型<b class='flag-5'>FPGA</b>的抗辐照<b class='flag-5'>加固</b>设计