一种通过逻辑设计提高芯片抗单粒子翻转能力的方法

文档序号:9887869阅读:422来源:国知局
一种通过逻辑设计提高芯片抗单粒子翻转能力的方法
【技术领域】
[0001]本发明涉及一种通过逻辑设计提高芯片抗单粒子翻转能力的方法,特别是应用于空间辐射环境使用的数字集成电路芯片提高抗单粒子翻转能力的逻辑设计方法。
【背景技术】
[0002]与地面设备使用的集成电路器件不同,在空间飞行器上使用的集成电路芯片可能会受到宇宙空间中单个高能粒子的入射,在芯片内部产生高密度的电子空穴对,被反偏PN结收集,从而可能造成器件内部的逻辑状态发生翻转,即发生单粒子翻转。单粒子翻转会造成器件的功能错误甚至功能中断,对系统功能造成影响,因此是宇航应用的集成电路器件必须重点关注的效应之一。
[0003]随着航天电子技术的不断发展,载荷电子设备在不断向着高频率、高性能、高功能集成度、大容量存储的方向发展。为了不断提高芯片单位面积和单位功耗内集成的功能密度,不可避免的要求集成电路芯片采用特征工艺尺寸更小的工艺平台,而特征工艺尺寸的缩小则带来了新的困扰。
[0004]特征工艺尺寸的缩小带来的直接后果就是器件内部逻辑存储单元的节点电容减小,并且电源电压也因工艺需要而降低,导致逻辑存储单元翻转的临界电荷更小,电荷收集效率高。也就是说,当特征工艺尺寸不断减小时,器件会更加容易受到单粒子效应的影响,产生内部存储单元的逻辑错误翻转,给航天器的可靠运行带来隐患。
[0005]解决该问题主要有两方面的途径,一方面是在工艺设计层面上进行抗单粒子加固处理,这需要对特定工艺的熟悉掌握的前提下进行抗辐射加固标准单元库的建模和建库,完成建库后,在具备一定抗单粒子加固能力的工艺平台上实现集成电路芯片的研制。但如前所述,随着未来工艺线程的不断缩小,通过抗辐射加固工艺平台设计来提高芯片抗单粒子翻转性能都会越来越难,甚至保持前一个工艺尺寸下实现的抗单粒子翻转能力都要付出很大的代价;另外一条途径是采用三模冗余加固的方法和工具对全芯片的寄存器逻辑进行加固处理,但缺点也很明显,包括:芯片的全部寄存器数量直接变为3倍,芯片面积功耗增大较多;每一个三模寄存器共享输入,一旦输入错误则三模冗余失效;三模的三个寄存器永远同时翻转,功耗较大;无法提供对SRAM等存储器的数据保护等。

【发明内容】

[0006]本发明要解决的技术问题是:克服工艺设计层面实现单粒子翻转加固设计难度大、周期长的缺点,在逻辑设计阶段通过与工艺无关的一整套设计方法,以较短的设计时间和很低的设计难度,实现对配置寄存器、有限状态机、数据寄存器、存储器分别进行单粒子翻转加固,能够极大的提高芯片在空间单粒子环境下的可靠性和容错性,达到甚至超过工艺设计加固的抗单粒子翻转性能;同时通过灵活可变的冗余编码、有限状态机热备份冗余状态、影响域划分、数据箝位等多种设计方法,克服了传统三模冗余加固方法面积功耗大、三模对输入级翻转容错性低、无法保护存储器等缺点,实现芯片级甚至系统级的抗单粒子翻转性能提升。
[0007]本发明的技术解决方案是:一种通过逻辑设计提高芯片抗单粒子翻转能力的方法,包括下列步骤:
[0008](I)为外部主控CPU增加N个中断源,N=I或N = 3,在待加固芯片内部产生三个中断信号,均为单粒子翻转中断信号,当这三个单粒子翻转中断信号触发时,代表待加固芯片内部出现单粒子翻转,单粒子翻转中断信号的序号代表待加固芯片发生单粒子翻转的逻辑部件,中断信号的序号为3个,定义3类中断,I号代表配置寄存器发生单粒子翻转;2号代表有限状态机发生单粒子翻转;3号代表加固的数据寄存器发生翻转;外部主控CPU将待加固芯片内部产生的三个中断信号连接到自身增加的N个中断源上,获取待加固芯片内部发生单粒子翻转的信息,并统计单粒子翻转发生的次数;
[0009](2)将芯片中的配置寄存器进行影响域划分,即如果待加固芯片内部的η个包含有限状态机的功能模块共享一个配置寄存器时(η>1),为每一个包含有限状态机的功能模块提供独立的m个配置寄存器(m>l),m Sn,并且这些独立的配置寄存器与共享的配置寄存器的输入为相同的配置字,这些独立的配置寄存器的输出送至对应的包含有限状态机的功能丰旲块;
[0010](3)配置寄存器进行步骤(2)的影响域划分之后,进行冗余编码,M定义为冗余编码扩展位宽,M为大于2的整数,冗余编码将配置寄存器中的每一个bit位都扩展为M个bit位,即将加固前的配置寄存器的每一个bit中的O和1,编码为预先设置的两个不同的二进制M位编码,并且预先设置的这两个不同的二进制M位编码的每一个相同bit位都01互斥;冗余编码前的每一个bit位原来只包含O和I两个逻辑状态,而经过冗余编码后,除了代表逻辑O和逻辑I的两个预先设置的二进制M位编码以外还增加了 M个对应逻辑O的冗余编码和M个对应逻辑I的冗余编码,这些冗余编码只有当代表逻辑O和逻辑I的两个预先设置的二进制M位编码被单粒子打翻后才能进入,并且代表逻辑O和逻辑I的两个预先设置的二进制M位编码对应的冗余状态互不相同,不会发生混淆;随后在配置寄存器的输出端增加判决和刷新逻辑,即当单粒子翻转造成寄存器的输出编码不是按照预先设置的M位编码,而是冗余编码时,将不是按照预先设置的M位编码刷新为对应逻辑O或这逻辑I的M位编码,即自动刷新为单粒子翻转前的编码,同时向主控CHJ发出步骤(I)定义的I号中断信号,即通知主控CPU,配置寄存器发生了一次单粒子翻转;
[0011](4)在进行步骤(3)后,针对有限状态机进行两方面的逻辑设计:第一方面是修改有限状态机的未定义状态,在其中增加返回初始状态的状态跳转,使有限状态机的状态进入未定义状态时立即跳转为上电复位之后的状态;第二方面是采用前述步骤(3)中的冗余编码,为有限状态机的每一个已定义状态增加热备份的冗余状态,每个已定义状态的冗余状态个数为采用步骤(3)的冗余编码前的bit位宽乘以M(M为步骤(3)中定义的冗余编码扩展位宽),这些冗余状态,即已定义状态在发生单粒子翻转后的状态,与对应的已定义状态的功能完全相同;当单粒子翻转造成有限状态机的已定义状态发生变化时,会使有限状态机跳转到热备份的冗余状态进行工作,保持有限状态机的正常工作,同时向主控CPU发出步骤(I)定义的2号中断信号,即通知主控CPU,有限状态机发生了一次单粒子翻转;随后有限状态机会自动从冗余状态跳转为冗余状态对应的已定义状态;
[0012](5)在待加固芯片的数据寄存器和/或存储器上设置数据范围箝位和数据变化量箝位;
[0013]数据范围箝位即在数据寄存器和/或数据存储器的输出上增加判决和箝位逻辑,判断数据寄存器和/或存储器中存储的数据是否超过定义的数据范围,如果数据寄存器和/或存储器中存储的数据超过数据范围,则对数据寄存器和/或存储器中存储的输出数据进行箝位;定义的数据范围包含上限和下限,下限大于0,上限小于2P_1,其中P为数据寄存器或数据存储器的位宽;如果数据寄存器和/或存储器中存储的数据大于数据范围的上限,则将输出变为数据范围的上限;反之如果数据寄存器和/或存储器中存储的数据小于数据范围的下限,则将输出变为数据范围的下限;如果数据寄存器和/或存储器中存储的数据在数据范围上下限之间,则不发生箝位,即直接输出数据寄存器和/或存储器中存储的数据;
[0014]数据变化量箝位即在数据寄存器和/或数据存储器的输出上增加判决和箝位逻辑,判断数据寄存器和/或存储器中存储的数据发生变化时,变化量是否超过定义的最大变化量,如果变化量超过定义的最大变化量,则对数据寄存器和/或存储器中存储的输出数据进行箝位;定义的最大变化量包含上限,上限小于2P_1,其中P为数据寄存器或数据存储器的位宽;如果数据寄存器和/或存储器中存储的数据发生变化时,变化量大于定义的最大变化量上限,则将输出数据修改为变化前的数据加上最大变化量上限;反之如果数据寄存器和/或存储器中存储的数据发生变化时,变化量小于定义的最大变化量上限,则不发生箝位,即直接输出发生变化后的数据寄存器和/或存储器中存储的数据;
[0015]发生数据范围箝位或数据变化量箝位后,向外部主控CPU发出步骤(I)定义的3号中断,即通知外部主控CPU数据寄存器和/或存储器发生了一次单粒子翻转。
[0016]所述步骤(I)中外部主控CPU上增加的单粒子翻转中断源个数N为3,待加固芯片内部产生的三个单粒子翻转中断依次连接在外部主控CPU的三个中断源上,此时待加固芯片上每次发生单粒子翻转时就会产生对应类型的三种单粒子翻转中断,并且外部主控CPU通过中断源来区分待加固芯片发生单粒子翻转的逻辑部件是加固过的配置寄存器、有限状态机还是数据寄存器和/或存储器,并对各自逻辑部件的单粒子翻转次数进行计数。
[0017]所述步骤(I)中外部主控CPU上增加的单粒子翻转中断源个数N为1,待加固芯片内部产生的三个单粒子翻转中断经过芯片内部的或逻辑后产生一个单独的中断连接在外部主控CPU的一个中断源上,此时待加固芯片上每次无论那个类型的逻辑部件发生单粒子翻转时都会产生同一个单粒子翻转中断,并且外部主控CPU无法通过中断源来区分待加固芯片发生单粒子翻转的逻辑部件是加固过的配置寄存器、有限状态机还是数据寄存器和/或存储器,并只能对待加固芯片内部发生的总体的单粒子翻转次数进行计数。
[0018]所述步骤(I)中的中断信号采用沿触发方式,当该中断信号产生上升沿或下降沿时触发。
[0019]所述步骤(I)中的中断信号采用电平触发方式,当该中断信号产生高电平或低电平时触发。
[0020]所述步骤(2)中的配置寄存器影响域划分时,m= n,即为所有共享同一个配置寄存器的包含有限状态机的功能模块都提供一个独立的配置寄存器。
[0021]所述步骤(2)中的配置寄存器影响域划分时,m〈n,即为并非为所有共享同一个配置寄存器的包含有限状态机的功能模块都提供独立的配置寄存器。
[0022]所述步骤(3)中的M位编码为二进制M个I和二进制M个0,即将配置寄存器中的每一个bit位都扩展为M个bit位,M为大于2的整数,并按照二进制M个I和二进制M个O的编码代替加固前的一个bit中的二进制I和O的两个编码;随后在配置寄存器的输出端增加判决和刷新逻辑,即当单粒子翻转造成输出编码不是按照M个I或M个O编码时,将不是按照M个I或M个O的编码的每一编码位均刷新为编码中数量多的编码位,即编码中数量多的编码位为I,则将不是按照M个I或M个O的编码刷新为M个I,当编码中数量多的编码位为O,则将不是按照M个I或M个O的编码刷新为M个O,实现自动刷新为单粒子翻转前的编码,同时向主控CPU发出步骤(I)定义的I号中断信号,即通知主控CPU,配置寄存器发生了一次单粒子翻转。
[0023]所述步骤(3)中配置寄存器进行步骤(2)的影响域划分之后,进行冗余编码,即将配置寄存器中的每一个bit位都扩展为3个bit位,并按照二进制111和二进制000的编码代替加固前的一个bit中的二进制I和O的两个编码;随后在配置寄存器的输出端增加判决和刷新逻辑,即当单粒子翻转造成输出编码不是按照111和000编码时,当出现110或101或01
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1