李 強,張 楠,郭 靖
(中北大學(xué)儀器與電子學(xué)院,山西 太原 030051)
集成電路工藝的不斷發(fā)展導(dǎo)致了器件尺寸不斷的減小,從而使得器件敏感區(qū)域的臨界電荷值不斷降低。因此,當(dāng)環(huán)境中的輻射粒子轟擊器件的敏感區(qū)域時,其耗盡區(qū)中的反向電場會將產(chǎn)生的大量電子-空穴對收集,其中P 型MOS 管器件收集多余的空穴,而N 型MOS 管器件收集多余的電子。一旦收集到的電荷超過器件的臨界電荷值,就會導(dǎo)致單粒子翻轉(zhuǎn)(Single Event Upset,SEU)現(xiàn)象發(fā)生。SEU 在航空航天以及地面高輻射領(lǐng)域中尤為明顯,雖然它們不會永久地破壞電路本身,只是將值暫時翻轉(zhuǎn)到其互補值,直到下一個時鐘周期來臨,但是將會引起電子系統(tǒng)的功能紊亂[1]。當(dāng)存儲電路如D 鎖存器中某個單一節(jié)點被轟擊,即發(fā)生單節(jié)點翻轉(zhuǎn)(Single Node Upset,SNU)時,該節(jié)點的電壓值將會發(fā)生改變,由于其電路中含有交叉耦合形成的反饋回路,因此其他節(jié)點也將發(fā)生翻轉(zhuǎn)[2-3]。然而,在目前使用的先進(jìn)納米工藝中,晶體管之間的距離、節(jié)點寄生電容以及電源電壓均越來越小,在電荷共享效應(yīng)的影響下,多個節(jié)點同時發(fā)生翻轉(zhuǎn)就成為了可能,即為多節(jié)點翻轉(zhuǎn)(Multiple-Node Upset,MNU)[4]。因此,為了確保D 鎖存器鎖存的數(shù)據(jù)不受影響,設(shè)計能夠抵抗MNU 的加固D 鎖存器就變得十分重要。
文獻(xiàn)[5]和[6]中分別提出了兩種加固D 鎖存器電路結(jié)構(gòu),但是均只能實現(xiàn)對MNU 的屏蔽而不是恢復(fù)容錯,這將導(dǎo)致輸出節(jié)點處于高阻抗?fàn)顟B(tài),從而消耗更多的漏電功耗;同時,該高阻節(jié)點也將更容易被漏電改變其鎖存的值。雖然文獻(xiàn)[7]提出的加固D 鎖存器可以對MNU 進(jìn)行容錯恢復(fù),但是其所用的晶體管數(shù)高達(dá)70,這將使得電路的硬件開銷變得非常大。為解決這一問題,本文設(shè)計了一個硬件冗余較小且又能實現(xiàn)MNU 恢復(fù)容錯的D 鎖存器。
根據(jù)輻射翻轉(zhuǎn)機制可知,SEU 翻轉(zhuǎn)極性與被轟擊晶體管類型有關(guān),即當(dāng)轟擊PMOS 晶體管時只發(fā)生0→1 的瞬態(tài)脈沖或翻轉(zhuǎn);而當(dāng)轟擊NMOS 晶體管時則只發(fā)生1→0 的瞬態(tài)脈沖或翻轉(zhuǎn)。因此,可利用這一機制通過在電路上進(jìn)行改進(jìn)設(shè)計,使其在某些節(jié)點上只產(chǎn)生單一極性的翻轉(zhuǎn),來減小電路敏感節(jié)點和硬件開銷。
基于上述加固機制,本文構(gòu)造了一個新型低冗余抗MNU 的加固D 鎖存器,其電路結(jié)構(gòu)如圖1 所示。該電路共由42 個晶體管構(gòu)成,其中晶體管TN1~TN20 為20 個NMOS 晶體管,而晶體管TP1~TP20為20 個PMOS 晶體管。反相器I1 產(chǎn)生CLK 的互補信號CLKN。因此,該電路中端口信號包括:D,CLK以及Q,其中端口D 為輸入數(shù)據(jù)端口;端口CLK 為輸入時鐘端口,而輸出端口為Q 端口。
圖1 構(gòu)造的加固D 鎖存器電路圖
該電路中內(nèi)部節(jié)點為S1~S8,晶體管TP17~TP19 以及TN13~TN15 由內(nèi)部節(jié)點控制用來鎖存輸出節(jié)點Q 的值。因此,當(dāng)CLK=1 時,該鎖存器處于導(dǎo)通狀態(tài),而當(dāng)CLK=0 時,該鎖存器則處于鎖存狀態(tài)。TP20 和TN20 構(gòu)成一個傳輸門,用來將輸入信號D 傳輸?shù)捷敵龆丝赒。當(dāng)CLK=1 時,TN16~TN19 根據(jù)輸入信號D 的值驅(qū)動內(nèi)部節(jié)點S1、S4、S5、S8 分別處于高電平1 或低電平0。由于輻射電壓翻轉(zhuǎn)極性由被轟擊晶體管類型而決定,因此,TN1、TN2、TN5~TN8、TN11 及TN12 管可以用來確保當(dāng)節(jié)點S1、S2、S5 和S6 被轟擊時,其值不會被改變?yōu)楦唠娖?(不會收集正電荷),從而減少了電路內(nèi)部敏感節(jié)點和晶體管數(shù)。
本文構(gòu)造的新型加固D 鎖存器為高電平導(dǎo)通、低電平鎖存,具體工作過程為:
(1)傳輸模式(CLK=1):假設(shè)輸入端D=1,當(dāng)CLK=1 時,CLKN=0,該鎖存器的輸出Q=D=1,TP20 和TN20 處于導(dǎo)通狀態(tài);同時,TP19 和TN13被關(guān)閉,TN16~TN19 被打開,所以S1=S4=S5=S8=1。此時,TN2 和TN9 導(dǎo)通,使得S2=S7=0;TN3 和TN8 導(dǎo)通,使得S3=S6=0。因此,TP1、TP4、TP5、TP8、TP9、TP12、TP13、TP16、TN1、TN4、TN6、TN7、TN10、TN12、TN14 和TN15 被關(guān)閉,剩余晶體管被打開,此時反饋鎖存環(huán)將被成功地建立。而當(dāng)D=0時,Q=0;由于TN16~TN19 仍處于導(dǎo)通狀態(tài),所以S1=S4=S5=S8=0,且S2=S3=S6=S7=1,從而使得TP2、TP3、TP6、TP7、TP10、TP11、TP14、TP15、TN2、TN3、TN5、TN8、TN9、TN11、TP17 和TP18 被關(guān)閉,而剩余晶體管則被打開。因此,當(dāng)D=0 時,反饋環(huán)也能正確地建立。
(2)鎖存模式(CLK=0):當(dāng)CLK=0 時,鎖存器進(jìn)入鎖存模式。此時TP20 和TN20 被關(guān)閉,TN13和TP19 被打開:當(dāng)S3=S7=0 時,TP17 和TP18 被打開,輸出端口Q 將被連接到VDD,此時Q=1;而當(dāng)S3=S7=1 時,TN13 和TN14 被打開,所以輸出端口Q 將被連接到GND,此時Q=0。
根據(jù)輻射翻轉(zhuǎn)機制,電路中的敏感節(jié)點主要是那些處于關(guān)閉狀態(tài)晶體管的漏/源極。在本文構(gòu)造的新型抗MNU 鎖存器中,其敏感節(jié)點(依賴于電路中鎖存的值)為:
(1)當(dāng)Q=1(即電路鎖存1)時,敏感節(jié)點為S1、S3、S4、S5、S7 和S8 這6 個內(nèi)部節(jié)點,F(xiàn)3、F5、F6、F9、F11、F12 和F13 這7 個懸空節(jié)點及輸出節(jié)點Q(Q=F14=F15)。此時節(jié)點S2 和S6 不是敏感節(jié)點,因為在電路設(shè)計上,通過引進(jìn)兩個NMOS 晶體管TN6 和TN12 將這兩個節(jié)點與P+注入?yún)^(qū)隔離。因此,當(dāng)這兩個節(jié)點被轟擊時,由于它們是N+注入?yún)^(qū),因此只能收集負(fù)電荷,而收集的負(fù)電荷只能將其值拉到更低(小于GND),但是仍舊是0 邏輯,這并沒有改變這兩個節(jié)點的鎖存值。節(jié)點F1、F2、F4、F7、F8、F10 和F16 不是敏感節(jié)點,因為它們處于導(dǎo)通的反饋路徑中。
(2)由于電路結(jié)構(gòu)對稱性,同理可得,當(dāng)Q=0(電路鎖存0)時,敏感節(jié)點為S2、S3、S4、S6、S7、S8、F1、F2、F4、F7、F8、F10、F16 及輸出節(jié)點Q(Q=F15=F14)。
下面將對本文構(gòu)造的加固D 鎖存器進(jìn)行容錯分析,假設(shè)時鐘CLK=0,S1=S4=S5=S8=1,S2=S3=S6=S7=0 且Q=1:
(1)當(dāng)任意一個內(nèi)部敏感節(jié)點發(fā)生翻轉(zhuǎn)時,該D 鎖存器均可以對其進(jìn)行容錯恢復(fù)。例如,當(dāng)節(jié)點S5 發(fā)生翻轉(zhuǎn)時,TN8 和TN3 被關(guān)閉且TP16 被打開;S6、S7 和S8 節(jié)點保持原來的值,導(dǎo)致TP11、TP13 和TN11 被打開,節(jié)點S5 可被快速恢復(fù)。
(2)當(dāng)任意一個懸空敏感節(jié)點發(fā)生翻轉(zhuǎn)時,其收集的電荷由于缺乏導(dǎo)通路徑,從而無法對其他節(jié)點產(chǎn)生影響,所以不會改變電路鎖存的值。例如,當(dāng)節(jié)點F3 發(fā)生翻轉(zhuǎn)時,積累的電荷不會流動去影響其他值,因此不會改變電路鎖存的值。
(3)當(dāng)輸出節(jié)點Q 翻轉(zhuǎn)為0 時,由于節(jié)點S3 和S7 保持不變,所以Q 的值將通過導(dǎo)通的TP17~TP19 恢復(fù)到高電平1。
(4)當(dāng)任意兩個內(nèi)部敏感節(jié)點發(fā)生翻轉(zhuǎn)時,該D 鎖存器可以依賴內(nèi)部反饋機制將翻轉(zhuǎn)的節(jié)點進(jìn)行恢復(fù)。例如,當(dāng)電荷共享翻轉(zhuǎn)內(nèi)部敏感節(jié)點S3 和S4 時,TN6 被打開且TP3、TP6 和TP10 被關(guān)閉;同時,TN5 被關(guān)閉且TP5、TP4 和TP9 被打開。但是,由于節(jié)點S5 保持原值,所以TN3 被打開,從而節(jié)點S3 的值將被恢復(fù);隨后,TP6 將被打開。由于TP2、TP6 處于導(dǎo)通狀態(tài),所以節(jié)點S4 值也可以被快速恢復(fù)。
(5)當(dāng)電荷共享同時影響兩個懸空敏感節(jié)點時,由于其積累的電荷缺乏導(dǎo)通路徑,所以將不會影響其他節(jié)點,電路鎖存的值也將不會發(fā)生改變。例如,當(dāng)節(jié)點F3 和F5 發(fā)生翻轉(zhuǎn)時,積累的電荷將被限制在各自節(jié)點,因此,電路鎖存的值將不會發(fā)生改變。
(6)當(dāng)電荷共享導(dǎo)致一個內(nèi)部敏感節(jié)點和一個懸空敏感節(jié)點(或輸出節(jié)點)發(fā)生翻轉(zhuǎn)時,可將其看成是在一個內(nèi)部敏感節(jié)點和一個懸空敏感節(jié)點(或輸出節(jié)點)處分別發(fā)生單個SNU。由于懸空敏感節(jié)點(或輸出節(jié)點)發(fā)生的SNU 不會影響其他節(jié)點值,那么這類MNU 可看成是只有一個內(nèi)部敏感節(jié)點發(fā)生翻轉(zhuǎn),因此這類MNU 同樣也是可以被恢復(fù)的。例如,當(dāng)節(jié)點S1 和F3 發(fā)生翻轉(zhuǎn)時,TN2 和TN9 被關(guān)閉同時TP8 被打開,由于S2、S3 和S4 節(jié)點繼續(xù)保持原來的值,所以節(jié)點S1 可以被導(dǎo)通的TP3、TP7和TN5 恢復(fù),同時節(jié)點F3 翻轉(zhuǎn)不會改變電路中晶體管的工作狀態(tài),其他節(jié)點將保持各自的原有值,因此電路鎖存的值將不會發(fā)生改變。
由于構(gòu)造的加固D 鎖存器在結(jié)構(gòu)上具有對稱性,所以當(dāng)電路鎖存低電平0 時,發(fā)生的SNU 和MNU 也均可以被恢復(fù)。綜上所述,本文構(gòu)造的新型加固D 鎖存器可以直接在電路級對所有的SNU 和MNU 進(jìn)行恢復(fù)容錯,從而確保電路鎖存正確的值。另外,由于該鎖存器是利用電路結(jié)構(gòu)設(shè)計來進(jìn)行的容錯,因此工藝節(jié)點參數(shù)的變化不會對其容錯功能造成影響,即該鎖存器可在任何工藝節(jié)點下進(jìn)行再設(shè)計。
基于“雙雙指數(shù)電流源”故障注入模型[8],利用Cadence Spectre 工具,在TSMC 65nm CMOS 工藝下對本文構(gòu)造的新型加固D 鎖存器進(jìn)行時序和容錯后仿真,其仿真結(jié)果如圖2 所示(為了更為清晰地顯示恢復(fù)容錯結(jié)果,該圖只顯示了內(nèi)部節(jié)點和輸出節(jié)點翻轉(zhuǎn)恢復(fù)情況):當(dāng)CLK=1 時,輸出信號Q 隨輸入信號D 值的變化而變化,而當(dāng)CLK=0 時,輸出Q 仍然能鎖存正確的值。以鎖存高電平1 為例,當(dāng)節(jié)點S1、S3、S4、S5、S7 和S8 分別發(fā)生單節(jié)點翻轉(zhuǎn)時,觀察時序波形可發(fā)現(xiàn)這些節(jié)點值均能被恢復(fù)從而確保輸出Q 鎖存正確的值。當(dāng)內(nèi)部敏感節(jié)點S1和S3、S1 和S4、S1 和S5、S1 和S7、S1 和S8、S3 和S4、S3 和S5、S3 和S7、S3 和S8、S4 和S5、S4 和S7、S4 和S8、S5 和S7、S5 和S8 以及S7 和S8 分別同時發(fā)生翻轉(zhuǎn)時,這些節(jié)點對的值也能夠被恢復(fù),故輸出Q 仍然鎖存正確的值。
圖2 時序和容錯仿真驗證
通過上述時序及容錯仿真驗證結(jié)果可知,本文構(gòu)造的鎖存器不僅能夠?qū)崿F(xiàn)正確的傳輸及鎖存功能,還可以實現(xiàn)對SNU 和MNU 的恢復(fù)容錯。
表1 列出了現(xiàn)有一些加固鎖存器所用的晶體管數(shù)、敏感節(jié)點數(shù)、臨界電荷Qcrit及其容錯類型。傳統(tǒng)鎖存器電路如圖3 所示,其僅需14 個晶體管就可實現(xiàn)傳輸和鎖存功能,但是并不具有任何SNU 和MNU 恢復(fù)容錯的能力。文獻(xiàn)[9]提出的兩個鎖存器雖然具有較少的晶體管數(shù)和敏感節(jié)點數(shù),但是它們均只能對SNU 進(jìn)行恢復(fù)容錯。相比于文獻(xiàn)[9-10]提出的鎖存器具有更多的敏感節(jié)點數(shù),但是其仍然只能對SNU 進(jìn)行恢復(fù)容錯。文獻(xiàn)[5-6,11-12]提出的鎖存器電路雖然具有較少的敏感節(jié)點,但是均只能對MNU 進(jìn)行屏蔽容錯而無法將翻轉(zhuǎn)節(jié)點恢復(fù)。文獻(xiàn)[13-14]提出的鎖存器使用了較少的晶體管和敏感節(jié)點,且實現(xiàn)了對MNU 的恢復(fù)容錯,但是將具有更大的延時和功耗開銷(見圖4)。文獻(xiàn)[7]提出的加固鎖存器不僅能夠?qū)崿F(xiàn)恢復(fù)容錯,而且降低了延時和功耗開銷。然而,該電路所用晶體管數(shù)將急劇增多,極大地增加了電路面積。本文構(gòu)造的加固D 鎖存器不僅能夠?qū)崿F(xiàn)對MNU 的恢復(fù)容錯,而且晶體管數(shù)相對較少;同時由于該鎖存器在設(shè)計過程中使用了輻射誘導(dǎo)脈沖翻轉(zhuǎn)機制,從而使得電路中敏感節(jié)點數(shù)要小于其節(jié)點數(shù)(其他鎖存器的敏感節(jié)點數(shù)均等于其節(jié)點數(shù))。相比于文獻(xiàn)[13-14]構(gòu)造的鎖存器,本文構(gòu)造的鎖存器的臨界電荷Qcrit被減小,這是因為本文構(gòu)造的鎖存器使用小尺寸設(shè)計和存在閾值損失的緣故。然而,由于本文構(gòu)造的鎖存器在發(fā)生翻轉(zhuǎn)后仍舊可以將其恢復(fù),因此臨界電荷Qcrit的減小并不會影響其容錯性能。
表1 晶體管、敏感節(jié)點數(shù)和Qcrit比較結(jié)果
圖3 傳統(tǒng)鎖存器電路
圖4 對不同鎖存器的面積、延時、功耗以及功耗-面積-延時之積(PDAP)硬件開銷進(jìn)行了對比。從圖中看出,文獻(xiàn)[9]和文獻(xiàn)[10]提出的鎖存器具有相對較小的面積、延時和功耗,但是其分別只能進(jìn)行SNU 屏蔽容錯和SNU 恢復(fù)容錯。文獻(xiàn)[5]和文獻(xiàn)[6]提出的鎖存器能夠?qū)NU 進(jìn)行屏蔽容錯,但是其面積、延時和功耗相對較大。文獻(xiàn)[7]構(gòu)造的鎖存器雖然能夠?qū)NU 進(jìn)行恢復(fù)容錯并具有相對較低的延時和功耗開銷,但是由于其電路中使用了較多的晶體管數(shù)(70),從而使得其面積開銷最高。為了進(jìn)行硬件開銷的綜合對比,本文使用了PDAP 這一硬件開銷評價標(biāo)準(zhǔn)。圖4(d)給出了不同鎖存器的PDAP 比較結(jié)果。從該圖中可知,本文構(gòu)造的低冗余加固鎖存器在所有抗MNU 鎖存器中具有最小的硬件開銷。相比于文獻(xiàn)[7]、[13]和[14]提出的鎖存器,本文構(gòu)造加固鎖存器的PDAP 可分別減少62.3%、71.2%和70.6%。
圖4 硬件開銷比較
為了進(jìn)一步驗證該電路抗MNU 的能力,圖5 對不同鎖存器的抗MNU 可靠性進(jìn)行了比較,其中橫坐標(biāo)表示電路中主要節(jié)點收集的輻射誘導(dǎo)電荷,縱坐標(biāo)表示次要節(jié)點收集的輻射誘導(dǎo)電荷。曲線與橫、縱坐標(biāo)所圍面積的大小可反映該電路的抗MNU的能力[15]。從圖中可看出,傳統(tǒng)鎖存器的曲線與橫縱坐標(biāo)都相交,因而其不具有抗SNU 的能力;文獻(xiàn)[9]和[10]提出的鎖存器曲線不與橫縱坐標(biāo)相交,因此具有抗SNU 的能力,但是由于所圍面積較小,導(dǎo)致其抗MNU 的能力較差。本文構(gòu)造的加固鎖存器曲線與文獻(xiàn)[5-7,11-14]鎖存器的曲線重合,因而具有跟這些現(xiàn)有加固鎖存器一樣的抗MNU能力。
圖5 電荷收集能力對比
本文基于輻射脈沖翻轉(zhuǎn)機制構(gòu)造了一個新型低冗余抗MNU 加固鎖存器,并在TSMC 65 nm CMOS工藝下進(jìn)行了時序和容錯功能仿真,驗證結(jié)果表明該加固D 鎖存器不僅時序功能正確,而且能對所有敏感節(jié)點的SNU 和MNU 進(jìn)行恢復(fù)容錯。與現(xiàn)有抗MNU 鎖存器硬件參數(shù)的比較結(jié)果表明,本文構(gòu)造的新型加固D 鎖存器具有最小的硬件開銷。