三模冗余在ASIC设计中的实现方法

三模冗余在ASIC设计中的实现方法,第1张

星载计算机系统处于空间辐照环境中,可能会受到单粒子翻转的影响而出错,三模冗余就是一种对单粒子翻转有效的容错技术。通过对三模冗余加固电路特点的分析,提出了在ASIC设计中实现三模冗余的2种方法。其一是通过Syno-psys的综合工具DesignCompiler对原设计进行综合,然后修改综合后的门级网表再次综合;其二是直接建立采用三模冗余加固的库单元。

1 三模冗余介绍
    三模冗余(TMR)技术是一种时序电路加固技术,其基本思想是对于待加固模块生成2个相同的模块,再通过多数表决输出,这样即使有一个模块发生故障电路依然可以正常工作。三模冗余在结构上又有空间冗余和时间冗余之分,时间冗余就是3路时钟信号之间存在一定延迟,延迟值应大于SEU翻转的最大脉宽。时间冗余的作用是对于时序电路的输入毛刺,最多只有一路时钟会采样到错误值,因此可以有效地防止组合逻辑毛刺所带来的错误。图1是采用普通时空三模冗余加固的触发器的电路图(以后简称TMR触发器),其中VOTER为多数表决器的组合电路。

三模冗余在ASIC设计中的实现方法,第2张


    虽然三模冗余技术可以极大地提高系统的可靠性,但是代价也是巨大的。由TMR的基本结构不难看出采用TMR技术的2个缺点:首先由于进行了硬件冗余导致芯片面积增大到原来的3倍多;其次由于三路时钟信号之间的延迟和在输出端加入了表决电路,在关键路径上引入了额外的延时,导致电路的运行速度下降。
    如果设计中2个触发器之间的关键路径延迟太短(比如移位寄存器),图1的三模冗余电路结构在运行中可能会出现电路输出不定态和电路状态错误的问题,图2是一个采用三模冗余加固的4位移位寄存器的电路图,图中的TMR_DFF模块的电路如图1所示。

三模冗余在ASIC设计中的实现方法,第3张

图3为三模冗余加固后的寄存器的顶层模块的仿真波形图,图中标线处电路的状态出现了错误(由输入d可以看出正确的状态应该是在第3个时钟上升沿后输出才变为7),其原因是由于TMR_DFF是组合逻辑输出,在第1个上升沿的时候,reg0的输入D经clk,clk_skew[1]采样后,out[0]变为1,reg1的输入out[0]经clk_skew[0]采样后,其q2(图1电路中的信号)变为1,电路状态仍为1,在第二个上升沿来的时候,由于reg1的q2已经为1,所以reg2的输入out1经clk采样后,其q0变为1,多数表决后out1变为1,电路状态为3,reg2的输入out1经clk_skew[1],clk_skew[0]采样后,其q1,q2变高,输出out2变高,电路状态变为7,就出现了状态出错的状况。

 

三模冗余在ASIC设计中的实现方法,第4张


    如果减小时钟间的延迟,电路可能会出现不定态,原因也是由于组合逻辑的提前输出,这里就不再讨论了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2511277.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存