本發(fā)明涉及一種快速低開銷全自動(dòng)數(shù)字集成電路單粒子故障注入系統(tǒng),屬于半導(dǎo)體集成電路抗空間單粒子效應(yīng)能力驗(yàn)證技術(shù)領(lǐng)域。
背景技術(shù):
復(fù)雜的空間環(huán)境中包含了大量的粒子(電子、中子、質(zhì)子和重離子)和射線。這些輻射粒子會(huì)引起半導(dǎo)體器件發(fā)生單粒子效應(yīng),使半導(dǎo)體器件狀態(tài)發(fā)生擾動(dòng)或永久性失效。數(shù)字集成電路在應(yīng)用于航天設(shè)備之前,需要在地面上評(píng)估數(shù)字集成電路內(nèi)部單元和節(jié)點(diǎn)的抗單粒子性能,地面上通常依靠重離子加速器來(lái)模擬單粒子試驗(yàn)。近年來(lái)由于進(jìn)行輻射試驗(yàn)的加速器機(jī)時(shí)減小,成本增高,數(shù)字集成電路的抗單粒子性能的驗(yàn)證變得更加困難,已經(jīng)對(duì)航天用關(guān)鍵器件的研制造成一定程度的影響。由于單粒子故障注入技術(shù)能夠有效的評(píng)估數(shù)字集成電路的單粒子敏感性,越來(lái)越受到人們的重視?,F(xiàn)如今單粒子故障注入實(shí)施方案主要分為硬件注入和仿真實(shí)現(xiàn)兩方面,由于電路封裝和集成度的限制,硬件故障注入的覆蓋率不足并且會(huì)對(duì)電路本身產(chǎn)生不可預(yù)估的損害,而基于仿真實(shí)現(xiàn)的單粒子故障注入方法由于其快捷、成本低,可以在電路設(shè)計(jì)的整個(gè)過(guò)程中評(píng)估單粒子性能等優(yōu)勢(shì)成為了單粒子故障注入研究的熱點(diǎn)。
現(xiàn)有的基于仿真的數(shù)字集成電路單粒子故障注入方法存在以下兩個(gè)不足:一方面是系統(tǒng)的智能性不夠,在單粒子故障注入試驗(yàn)的過(guò)程中需要試驗(yàn)者手動(dòng)的進(jìn)行很多操作,嚴(yán)重的影響了試驗(yàn)進(jìn)程。例如:不能夠自動(dòng)生成含有故障接口的目標(biāo)電路網(wǎng)表、與商用仿真軟件的通用性不好、與實(shí)際空間輻照情況連接程度不高,不能自動(dòng)實(shí)現(xiàn)單粒子故障注入;另一方面由于數(shù)字集成電路的規(guī)模通常會(huì)很大,一款普通的asic電路至少會(huì)有一百萬(wàn)個(gè)電路節(jié)點(diǎn),有時(shí)甚至需要對(duì)所有的電路節(jié)點(diǎn)都完成故障注入,因而對(duì)進(jìn)行單粒子故障注入試驗(yàn)的計(jì)算機(jī)性能的要求苛刻。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)解決問題是:克服現(xiàn)有技術(shù)的不足,提供一種快速低開銷全自動(dòng)數(shù)字集成電路單粒子故障注入系統(tǒng),實(shí)現(xiàn)了全自動(dòng)的單粒子故障注入,降低了對(duì)大規(guī)模數(shù)字集成電路進(jìn)行單粒子故障注入試驗(yàn)的計(jì)算機(jī)性能的要求。
本發(fā)明的技術(shù)解決方案是:一種快速低開銷全自動(dòng)數(shù)字集成電路單粒子故障注入系統(tǒng),包括人機(jī)操作界面、故障電路網(wǎng)表代碼生成模塊、功能向量和故障信號(hào)隨機(jī)產(chǎn)生模塊、仿真統(tǒng)計(jì)和計(jì)算輸出模塊;
人機(jī)操作界面:接收用戶輸入的目標(biāo)電路網(wǎng)表文件以及參數(shù)設(shè)置信息,并輸出給故障注入器;顯示故障注入器返回的實(shí)時(shí)信息;
故障電路網(wǎng)表代碼生成模塊:接收來(lái)自人機(jī)操作界面的目標(biāo)電路網(wǎng)表文件,進(jìn)行verilog門級(jí)網(wǎng)表詞法分析,生成帶有n個(gè)故障注入端口的故障電路網(wǎng)表文件,輸出給仿真統(tǒng)計(jì)和計(jì)算輸出模塊;
功能向量和故障信號(hào)隨機(jī)產(chǎn)生模塊:對(duì)每種工作模式下的測(cè)試向量文件進(jìn)行故障注入的相關(guān)配置,生成帶有故障注入信息的測(cè)試向量文件以及用于仿真的宏文件,輸出給仿真統(tǒng)計(jì)和計(jì)算輸出模塊;
仿真統(tǒng)計(jì)和計(jì)算輸出模塊:根據(jù)故障電路網(wǎng)表文件、帶有故障注入信息的測(cè)試向量文件以及仿真軟件自動(dòng)執(zhí)行的宏文件,對(duì)目標(biāo)電路進(jìn)行故障注入仿真,并對(duì)每次故障注入仿真前后的電路運(yùn)行結(jié)果進(jìn)行對(duì)比,根據(jù)故障類型庫(kù)把每次的對(duì)比結(jié)果進(jìn)行分類與匯總統(tǒng)計(jì),并將對(duì)比結(jié)果和分類與匯總統(tǒng)計(jì)結(jié)果返回給人機(jī)操作界面。
所述故障電路網(wǎng)表代碼生成模塊生成帶有n個(gè)故障注入端口的故障電路網(wǎng)表文件的實(shí)現(xiàn)方法如下:
(2.1)將來(lái)自人機(jī)操作界面的目標(biāo)電路網(wǎng)表文件,轉(zhuǎn)化成基于庫(kù)單元的門級(jí)電路網(wǎng)表文件;
(2.2)在基于庫(kù)單元的門級(jí)電路網(wǎng)表文件的模塊聲明部分,定義故障注入端口;
(2.3)在基于庫(kù)單元的門級(jí)電路網(wǎng)表文件中,為故障注入端口添加屬性信息,所述屬性信息包括端口類型以及與其他端口連接關(guān)系,端口類型為輸入端口或輸出端口;
(2.4)按照步驟(2.2)和(2.3),選擇一個(gè)庫(kù)單元,在目標(biāo)電路上添加故障注入端口,并根據(jù)該故障注入端口與其他端口的連接關(guān)系,搭建臨時(shí)連接線網(wǎng);
(2.5)判斷是否完成了所有故障注入端口的添加,如果完成,返回故障注入端口的總數(shù),進(jìn)入步驟(2.6);否則跳轉(zhuǎn)到(2.4),重新選擇未添加故障注入端口的庫(kù)單元進(jìn)行故障注入,直到完成所有故障注入端口的添加;
(2.6)生成帶有n個(gè)故障注入端口的故障電路網(wǎng)表文件。
所述功能向量和故障信號(hào)隨機(jī)產(chǎn)生模塊生成帶有故障注入信息的測(cè)試向量文件以及仿真軟件自動(dòng)執(zhí)行的宏文件的實(shí)現(xiàn)過(guò)程為:
(3.1)根據(jù)來(lái)自人機(jī)操作界面的參數(shù)設(shè)置信息獲取目標(biāo)電路不同工作模式下的測(cè)試向量、時(shí)序約束信息;
(3.2)選擇一種工作模式,對(duì)測(cè)試向量文件進(jìn)行故障注入配置,生成帶有故障注入信息的測(cè)試向量文件,所述故障注入配置包括對(duì)故障注入的電路節(jié)點(diǎn)、故障注入時(shí)間、故障注入的持續(xù)時(shí)間、故障注入的次數(shù)設(shè)置隨機(jī)函數(shù);
(3.3)重復(fù)步驟(3.2),直到完成對(duì)所有工作模式的故障注入配置,對(duì)生成的各個(gè)測(cè)試向量文件進(jìn)行保存;
(3.4)根據(jù)目標(biāo)電路故障注入的仿真流程,生成用于仿真的宏文件。
所述仿真統(tǒng)計(jì)和計(jì)算輸出模塊的實(shí)現(xiàn)方式如下:
(4.1)仿真統(tǒng)計(jì)和計(jì)算輸出模塊對(duì)沒有任何故障注入的目標(biāo)電路進(jìn)行仿真,得到?jīng)]有進(jìn)行故障注入的仿真結(jié)果;
(4.2)根據(jù)故障電路網(wǎng)表文件、帶有故障注入信息的測(cè)試向量文件以及用于仿真的宏文件,對(duì)目標(biāo)電路進(jìn)行故障注入仿真;
(4.3)把每次進(jìn)行故障注入后的仿真結(jié)果和沒有進(jìn)行故障注入的仿真結(jié)果進(jìn)行對(duì)比分析;
(4.4)根據(jù)故障類型庫(kù)把每次進(jìn)行故障注入后的對(duì)比結(jié)果進(jìn)行分類鑒別與匯總統(tǒng)計(jì),將對(duì)比結(jié)果和分類與匯總統(tǒng)計(jì)結(jié)果返回給人機(jī)操作界面;
(4.5)刪除本次進(jìn)行故障注入生成的仿真文件;
(4.6)根據(jù)帶有故障注入信息的測(cè)試向量文件以及用于仿真的宏文件,判斷是否完成所有類型的故障注入,如果是則結(jié)束,否則返回步驟(4.2)。
本發(fā)明與現(xiàn)有技術(shù)相比有益效果為:
(1)本發(fā)明利用正則表達(dá)式對(duì)電路網(wǎng)表文件進(jìn)行了詞法分析,實(shí)現(xiàn)了故障注入端口的自動(dòng)添加,利用tcl語(yǔ)言實(shí)現(xiàn)了商用軟件的自動(dòng)控制和調(diào)用,根據(jù)實(shí)際的空間輻照環(huán)境設(shè)置了故障注入的隨機(jī)函數(shù),最終實(shí)現(xiàn)了單粒子故障注入的全自動(dòng)進(jìn)行。
(2)本發(fā)明在故障注入的仿真過(guò)程中對(duì)生成的過(guò)程文件進(jìn)行了自動(dòng)識(shí)別和實(shí)時(shí)刪除,解決了仿真過(guò)程中內(nèi)存爆炸問題,減小了對(duì)用于仿真的計(jì)算機(jī)的性能要求。
附圖說(shuō)明
圖1是本發(fā)明系統(tǒng)的結(jié)構(gòu)原理圖;
圖2是本發(fā)明故障電路網(wǎng)表代碼生成模塊的實(shí)現(xiàn)流程圖;
圖3是本發(fā)明功能向量和故障隨機(jī)信號(hào)產(chǎn)生模塊的實(shí)現(xiàn)流程圖;
圖4是本發(fā)明仿真統(tǒng)計(jì)和計(jì)算輸出模塊的實(shí)現(xiàn)流程圖;
具體實(shí)施方式
考慮到進(jìn)行大規(guī)模集成電路單粒子故障注入時(shí)智能化程度不夠,并且對(duì)故障注入的計(jì)算機(jī)大內(nèi)存、高性能的要求,提供一種快速低開銷全自動(dòng)數(shù)字集成電路單粒子故障注入系統(tǒng)。該系統(tǒng)在靈活的分析硬件編程語(yǔ)言的基礎(chǔ)上能夠?qū)崿F(xiàn)對(duì)庫(kù)單元中所有單元類型的全自動(dòng)的故障注入,并且實(shí)時(shí)的處理故障注入過(guò)程中生成的過(guò)程文件,減小了用于故障注入的計(jì)算機(jī)的負(fù)載,實(shí)現(xiàn)了全自動(dòng)的單粒子故障注入。
圖1為本發(fā)明的結(jié)構(gòu)原理圖。本發(fā)明裝置包括人機(jī)操作界面、故障注入器、tcl接口協(xié)議模塊和商用軟件模塊;其中故障注入器包括故障電路網(wǎng)表代碼生成模塊、功能向量和故障信號(hào)隨機(jī)產(chǎn)生模塊、仿真統(tǒng)計(jì)和計(jì)算輸出模塊。
用戶通過(guò)人機(jī)操作界面載入目標(biāo)電路網(wǎng)表文件、故障類型庫(kù)、不同模式下的參數(shù)設(shè)置信息,通過(guò)人機(jī)操作界面輸出給故障注入器。顯示故障注入器返回的實(shí)時(shí)信息。其中故障類型庫(kù)中包括故障的各種類型,如單粒子功能中斷、單粒子翻轉(zhuǎn)等。
故障電路網(wǎng)表代碼生成模塊:接收來(lái)自人機(jī)操作界面的目標(biāo)電路網(wǎng)表文件,進(jìn)行verilog門級(jí)網(wǎng)表詞法分析,生成帶有n個(gè)故障注入端口的故障電路網(wǎng)表文件,輸出給仿真統(tǒng)計(jì)和計(jì)算輸出模塊。
如圖2所示,生成帶有n個(gè)故障注入端口的故障電路網(wǎng)表文件的具體實(shí)現(xiàn)過(guò)程如下:
(2.1)將來(lái)自人機(jī)操作界面的目標(biāo)電路網(wǎng)表文件,轉(zhuǎn)化成基于庫(kù)單元的門級(jí)電路網(wǎng)表文件;
(2.2)在基于庫(kù)單元的門級(jí)電路網(wǎng)表文件的模塊聲明部分,定義故障注入端口;
(2.3)在基于庫(kù)單元的門級(jí)電路網(wǎng)表文件中,為故障注入端口添加屬性信息,其中屬性信息包括端口類型以及與其他端口連接關(guān)系,端口類型為輸入端口或輸出端口;
(2.4)按照步驟(2.2)和(2.3),選擇一個(gè)庫(kù)單元,在目標(biāo)電路上添加故障注入端口,并根據(jù)該故障注入端口與其他端口的連接關(guān)系,通過(guò)與非門(xor)和內(nèi)部連接線網(wǎng)來(lái)實(shí)現(xiàn)與其他端口的連接;
(2.5)判斷是否完成了所有故障注入端口的添加,如果完成,返回故障注入端口的總數(shù),進(jìn)入步驟(2.6);否則跳轉(zhuǎn)到(2.4),重新選擇未添加故障注入端口的庫(kù)單元進(jìn)行故障注入,直到完成所有故障注入端口的添加;
(2.6)生成帶有n個(gè)故障注入端口的故障電路網(wǎng)表文件。
在上述過(guò)程中,利用正則表達(dá)式對(duì)目標(biāo)電路網(wǎng)表文件進(jìn)行了詞法分析,實(shí)現(xiàn)對(duì)關(guān)鍵字的精確查找。
功能向量和故障信號(hào)隨機(jī)產(chǎn)生模塊:對(duì)每種工作模式下的測(cè)試向量文件進(jìn)行故障注入的相關(guān)配置,生成帶有故障注入信息的測(cè)試向量文件以及仿真軟件自動(dòng)執(zhí)行的宏文件,輸出給仿真統(tǒng)計(jì)和計(jì)算輸出模塊。
如圖3所示,生成帶有故障注入信息的測(cè)試向量文件以及仿真軟件自動(dòng)執(zhí)行的宏文件的實(shí)現(xiàn)過(guò)程為:
(3.1)根據(jù)來(lái)自人機(jī)操作界面的參數(shù)設(shè)置信息獲取目標(biāo)電路不同工作模式下的測(cè)試向量、時(shí)序約束信息;
(3.2)選擇一種工作模式,對(duì)測(cè)試向量文件進(jìn)行故障注入配置,生成帶有故障注入信息的測(cè)試向量文件,所述故障注入配置包括對(duì)電路不同的故障注入節(jié)點(diǎn)設(shè)置隨機(jī)函數(shù)、對(duì)故障輸入時(shí)間設(shè)置隨機(jī)函數(shù)、對(duì)故障的持續(xù)時(shí)間設(shè)置隨機(jī)函數(shù)、對(duì)故障注入的次數(shù)設(shè)置隨機(jī)函數(shù);其中隨機(jī)函數(shù)主要通過(guò)不同的輻射強(qiáng)度、不同功能模式下電路內(nèi)部單元的利用效率來(lái)實(shí)現(xiàn),從而實(shí)現(xiàn)與實(shí)際空間環(huán)境輻射強(qiáng)度的連接。
對(duì)電路不同的故障注入節(jié)點(diǎn)設(shè)置隨機(jī)函數(shù):i=(δu,δo)*rand(j);
其中i為待注入節(jié)點(diǎn)的序號(hào),δu為某一庫(kù)單元在不同工作模式下的利用因子,δo為某一庫(kù)單元在目標(biāo)電路所占的比例系數(shù),rand()為仿真軟件提供的隨機(jī)函數(shù),j為待注入節(jié)點(diǎn)的總個(gè)數(shù)。
對(duì)故障的持續(xù)時(shí)間設(shè)置隨機(jī)函數(shù):t=(δlet,δp,δb)*rand(t0);
其中t為故障注入的持續(xù)時(shí)間,δlet為線性轉(zhuǎn)移能量影響因子,δp為工藝參數(shù)影響因子,δb為脈沖展寬效應(yīng)影響因子,t0為初始的故障持續(xù)時(shí)間,設(shè)置為1ns;rand()為仿真軟件提供的隨機(jī)函數(shù)。
(3.3)重復(fù)步驟(3.2),直到完成對(duì)所有工作模式的故障注入配置,對(duì)生成的各個(gè)測(cè)試向量文件進(jìn)行保存;
(3.4)根據(jù)目標(biāo)電路故障注入的仿真流程,生成用于仿真的宏文件。宏文件包括不同工作模式下目標(biāo)電路編譯與仿真的宏文件,由人機(jī)交互界面采集的輸入信息按照仿真器(如modelsim)要求的格式生成,主要功能是按照試驗(yàn)者的要求推動(dòng)故障注入仿真的進(jìn)行。
如圖4所示,仿真統(tǒng)計(jì)和計(jì)算輸出模塊首先對(duì)沒有任何故障注入的目標(biāo)電路進(jìn)行仿真,得到?jīng)]有進(jìn)行故障注入的仿真結(jié)果,即“黃金文件”(正確的波形文件vcd文件)。然后根據(jù)故障電路網(wǎng)表文件、帶有故障注入信息的測(cè)試向量文件以及仿真軟件自動(dòng)執(zhí)行的宏文件,對(duì)目標(biāo)電路進(jìn)行故障注入仿真,并對(duì)每次故障注入仿真前后的電路運(yùn)行結(jié)果進(jìn)行對(duì)比,根據(jù)故障類型庫(kù)把每次的對(duì)比結(jié)果進(jìn)行分類與匯總統(tǒng)計(jì),并將對(duì)比結(jié)果和分類與匯總統(tǒng)計(jì)結(jié)果返回給人機(jī)操作界面。
比如:以某一端口為例,如果輸出數(shù)據(jù)錯(cuò)誤,則將其分類為輸出錯(cuò)誤;如果輸出錯(cuò)誤并且之后的若干個(gè)周期錯(cuò)誤仍然不可恢復(fù)我們認(rèn)為發(fā)生一次單粒子功能中斷事件,如果在監(jiān)控的時(shí)間內(nèi)可恢復(fù)我們認(rèn)為發(fā)生為一次單粒子翻轉(zhuǎn)事件。
一般情況下數(shù)字集成電路的電路節(jié)點(diǎn)多在百萬(wàn)量級(jí),進(jìn)行仿真的過(guò)程中會(huì)有很大的數(shù)據(jù)量,會(huì)影響到用于故障注入仿真的計(jì)算機(jī)的運(yùn)算速度,拖慢仿真進(jìn)程,因而在系統(tǒng)每次進(jìn)行故障注入仿真的過(guò)程文件進(jìn)行了實(shí)時(shí)處理,每次對(duì)比完畢后,系統(tǒng)會(huì)自動(dòng)識(shí)別并刪除過(guò)程文件。從而節(jié)約用于仿真的電腦的磁盤空間,加快仿真速度。
仿真統(tǒng)計(jì)和計(jì)算輸出模塊通過(guò)tcl接口協(xié)議模塊調(diào)用商用軟件modelsim實(shí)現(xiàn)目標(biāo)電路的仿真,最后利用tcl語(yǔ)言在按照modelsim要求的格式在外部軟件ultraedit中完成宏文件(dofiles文件)的自動(dòng)生成。也可以通過(guò)調(diào)用spaceradiation計(jì)算目標(biāo)電路的在軌錯(cuò)誤率,能夠預(yù)估目標(biāo)電路在實(shí)際空間輻照情況的抗單粒子特性。
本發(fā)明利用c#和tcl語(yǔ)言進(jìn)行編程,在硬件描述語(yǔ)言詞法分析的基礎(chǔ)上實(shí)現(xiàn)了目標(biāo)電路網(wǎng)表文件和功能向量的故障接口自動(dòng)添加與故障信號(hào)隨機(jī)函數(shù)的配置,根據(jù)不同的功能模式實(shí)現(xiàn)了仿真宏文件和相關(guān)文件的自動(dòng)生成和保存,最終通過(guò)商用仿真軟件實(shí)現(xiàn)了故障注入仿真,結(jié)果分析和輸出的全自動(dòng)化。本發(fā)明在故障注入仿真的過(guò)程中能夠?qū)ι傻倪^(guò)程文件進(jìn)行自動(dòng)識(shí)別和處理,減小了對(duì)仿真計(jì)算機(jī)運(yùn)算性能的要求。本發(fā)明能夠在電路設(shè)計(jì)的整個(gè)過(guò)程中快速的評(píng)估目標(biāo)電路的抗單粒子的性能,為設(shè)計(jì)者提供加固方向和單粒子錯(cuò)誤的相關(guān)指標(biāo)。
利用本發(fā)明的單粒子故障注入系統(tǒng)在通用的計(jì)算機(jī)上對(duì)一款百萬(wàn)門級(jí)的數(shù)字專用集成電路進(jìn)行了故障注入試驗(yàn),采用了基于空間輻照環(huán)境的隨機(jī)故障注入算法進(jìn)行故障注入配置,對(duì)每次進(jìn)行故障注入仿真的過(guò)程文件實(shí)時(shí)刪除,從而節(jié)約用于仿真的計(jì)算機(jī)磁盤空間,加快仿真速度,實(shí)現(xiàn)了單粒子故障注入的全自動(dòng)進(jìn)行。仿真得到的不同let值下重離子翻轉(zhuǎn)截面和該款電路實(shí)際重離子試驗(yàn)結(jié)果近似。
本發(fā)明未詳細(xì)說(shuō)明部分屬本領(lǐng)域技術(shù)人員公知常識(shí)。