1 三模冗余介绍
三模冗余(TMR)技术是一种时序电路加固技术,其基本思想是对于待加固模块生成2个相同的模块,再通过多数表决输出,这样即使有一个模块发生故障电路依然可以正常工作。三模冗余在结构上又有空间冗余和时间冗余之分,时间冗余就是3路时钟信号之间存在一定延迟,延迟值应大于SEU翻转的最大脉宽。时间冗余的作用是对于时序电路的输入毛刺,最多只有一路时钟会采样到错误值,因此可以有效地防止组合逻辑毛刺所带来的错误。图1是采用普通时空三模冗余加固的触发器的电路图(以后简称TMR触发器),其中VOTER为多数表决器的组合电路。
虽然三模冗余技术可以极大地提高系统的可靠性,但是代价也是巨大的。由TMR的基本结构不难看出采用TMR技术的2个缺点:首先由于进行了硬件冗余导致芯片面积增大到原来的3倍多;其次由于三路时钟信号之间的延迟和在输出端加入了表决电路,在关键路径上引入了额外的延时,导致电路的运行速度下降。
如果设计中2个触发器之间的关键路径延迟太短(比如移位寄存器),图1的三模冗余电路结构在运行中可能会出现电路输出不定态和电路状态错误的问题,图2是一个采用三模冗余加固的4位移位寄存器的电路图,图中的TMR_DFF模块的电路如图1所示。
图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,就出现了状态出错的状况。
如果减小时钟间的延迟,电路可能会出现不定态,原因也是由于组合逻辑的提前输出,这里就不再讨论了。
2 三模冗余的实现
2.1 修改网表二次综合
DC综合的功能是读取设计的RTL代码并且根据时序约束,综合RTL代码到结构级,从而产生一个映射后的门级网表,其中一个重要的步骤是指定综合所使用的综合库,综合库一般由流片厂商提供,库中包含了引脚到引脚的时序,面积,引脚类型和功耗等信息,综合后的门级网表中的单元也就是库中所定义的单元。
三模冗余的加固过程实际上就是为设计中的每个触发器生成2个冗余触发器并加上表决逻辑,而RTL代码中无法反应出这点,因此可以对原设计综合后的门级网表进行修改,把触发器改为三模冗余触发器,用门级描述编写三模冗余触发器模块,然后和修改的网表一起再次综合就可得到三模冗余加固后的网表文件。值得说明的是DC综合库里面有多种类型的触发器,比如SDFF,EDFF,SEDFF,JK,DFF,即使在综合脚本中限定只用DFF触发器,也会有好几种,所以对于不同的单元要编写相应的三模冗余触发器模块(其结构如图1所示)。此外由于有3路时钟信号,所以要编写时钟生成模块,其功能是由clk产生互有延迟的2路时钟信号。
首先在Synopsys的综合工具DsignCompiler下对原设计的RTL代码进行综合,得到电路的门级网表。门级网表中的电路实际上就是通过例化综合库的单元来描述电路的结构,可以使用形式验证工具Formality来验证RTL代码和综合后的门级网表在功能上是否一致。
然后修改门级网表,在网表中增加线网类型ck[2:0],并且实例化clkgen模块,再把网表里面的触发器改为三模冗余触发器,并修改其时钟端口为{clk,ck[1:0]},由于综合库中不含有这两个模块,这时网表中就出现了两个综合工具没有处理的模块,时钟生成模块和三模冗余触发器模块,修改后的网表就不是完全映射后的门级网表。
最后对修改后的网表,时钟生成模块及三模冗余触发器模块进行再次综合,这次综合实际上就是对时钟生成模块和三模冗余触发器的综合,把它们映射为综合库中的单元,得到的门级网表即是三模冗余加固后设计的门级网表。
2.2 建立三模冗余触发器的库单元
由于三模冗余触发器单元的时钟端口有3位,即使在库中加入三模冗余触发器的单元,综合器也无法把设计直接映射成该单元,因此可以把时钟生成模块放到TMR_DFF内部,这样三模冗余触发器时钟端口就只有1位,在库文件中把触发器单元用对应的三模冗余触发器单元替换掉,DC就可以把电路中的触发器直接映射成TMR_DFF,一次综合就可以完成设计了,但是这样一来整个芯片的面积又会增大很多(时钟生成模块不在共用),除此之外也可以借助上面的方法在原设计综合后修改网表。前面已经提到库文件里面有很多种类型的触发器,所以应对不同的DFF触发器建立相应的库单元,下面是一种建立库单元的方法,主要分为2步:版图设计和仿真特性提取。
单元库的建立首先要完成单元的版图设计,在确定单元库所包含的单元种类和单元电路后,根据加工厂家的工艺参数,设计规则等完成单元的版图设计,并导出电路网表,此时网表中不仅有电路结构,还有电阻,电容参数。然后就可以进行单元的参数提取工作。
参数提取需要选择一种用于参数提取的工具,这里选择siliconsmart,其次要确定模拟仿真工具,如HSpice。主要步骤包括创建工作目录配置仿真环境,引入参考库,产生仿真文件,运行仿真特性提取,生成库文件。
创建工作目录是指创建一个用于siliconsmart运行的目录,此时会自动生成一个名为config.tcl的脚本文件,需要手动对其进行一些关键配置,主要包括模拟工具的选择(这里选择HSpice),模拟模型的指定,环境温度等变量的设置等。引入参考库是为工具指定一个参考的库单元,工具将参考单元的信息摘取出来,并为该单元生成一个控制文件,该文件详细描述了需要提取的单元的信息。包括单元网表文件,管脚信息,逻辑功能,输入信号的上升/下降时间,输出管脚负载情况等。如果没有参考的库文件,则需要手动编写该文件。产生仿真文件是告诉工具对单元的哪些方面进行特性提取,比如时序,功耗,CCS模型等。运行仿真提取是对单元进行模拟仿真特性提取工作。生成库文件会产生2个库单元,其中.v是仿真工具用的仿真库,.lib是可读的综合库,可以在DC中用read_lib *.lib命令读入.lib文件,然后用write_ lib* *.db命令可以生成.db综合库(*代表库单元的名字)。
对于抗辐射加固来说,除了用电路加固外可能还需要选择更加可靠的工艺,SOI工艺就具有很好的抗辐射性能,它消除了闩锁效应,有效地降低了单粒子效应,而此时就需要建立自己的单元库了,库中的触发器单元就可以直接建成三模冗余触发器的库单元。
3 结语
航天系统中芯片的抗辐射能力是一个重要的指标,对于抗辐射的处理器和存储器来说,辐照实验是测试中的一个重要环节。三模冗余加固技术只是众多抗辐照加固技术的一种,比较常用的还有检错纠错码EDAC,SOI工艺加固,其中采用SOI工艺流片的费用比普通工艺更为昂贵。标准单元库的建立对ASIC设计来说是一项基础性的工作,建立符合设计需要的标准单元库对芯片设计来说是很重要的,对此文章提供了一种一般性的方法。
上一篇:浪涌吸收器在产品测试中的应用
下一篇:UA级电流的小电流发生电路及原理分析
推荐阅读最新更新时间:2023-10-18 16:28
Vishay线上图书馆
- 选型-汽车级表面贴装和通孔超快整流器
- 你知道吗?DC-LINK电容在高湿条件下具有高度稳定性
- microBUCK和microBRICK直流/直流稳压器解决方案
- SOP-4小型封装光伏MOSFET驱动器VOMDA1271
- 使用薄膜、大功率、背接触式电阻的优势
- SQJQ140E车规级N沟道40V MOSFET
- Vishay推出适用于恶劣环境的紧凑型密封式SMD微调电阻器
- MathWorks 和 NXP 合作推出用于电池管理系统的 Model-Based Design Toolbox
- 意法半导体先进的电隔离栅极驱动器 STGAP3S为 IGBT 和 SiC MOSFET 提供灵活的保护功能
- 全新无隔膜固态锂电池技术问世:正负极距离小于0.000001米
- 东芝推出具有低导通电阻和高可靠性的适用于车载牵引逆变器的最新款1200 V SiC MOSFET
- 【“源”察秋毫系列】 下一代半导体氧化镓器件光电探测器应用与测试
- 采用自主设计封装,绝缘电阻显著提高!ROHM开发出更高电压xEV系统的SiC肖特基势垒二极管
- 艾迈斯欧司朗发布OSCONIQ® C 3030 LED:打造未来户外及体育场照明新标杆
- 氮化镓取代碳化硅?PI颠覆式1700V InnoMux2先来打个样
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况