欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種寄存器傳輸級N模冗余驗證方法與流程

文檔序號:12550521閱讀:406來源:國知局
一種寄存器傳輸級N模冗余驗證方法與流程

本發(fā)明涉及集成電路驗證領域,特別是涉及一種對寄存器傳輸級N模冗余的驗證方法。



背景技術:

在一些電磁、輻射環(huán)境比較惡劣的情況下,集成電路常常會受到干擾,例如宇宙中單個高能粒子射入半導體器件敏感區(qū),使器件邏輯狀態(tài)發(fā)生反轉(zhuǎn):原來儲存“0”變成“1”,或者“1”變成“0”,從而導致系統(tǒng)功能紊亂。為了讓集成電路可以在惡劣的環(huán)境下正常工作,如航天、衛(wèi)星等領域,帶有容錯機制的抗輻噪設計得到了廣泛的應用。目前廣泛采取的容錯方法是N模冗余,將N個模塊同時執(zhí)行相同的操作,以多數(shù)相同的輸出作為投票系統(tǒng)的輸出,可以提高系統(tǒng)輸出的可信性。

目前對N模冗余的驗證方法有實物驗證和傳統(tǒng)仿真驗證兩種方法:

實物驗證

實物驗證是將待測設計放入模擬的電磁、輻射比較惡劣的環(huán)境進行驗證。實物驗證存在以下缺點:驗證成本過高;故障注入不可控。

傳統(tǒng)仿真驗證

傳統(tǒng)仿真驗證是通過對N模冗余設計進行功能仿真,采取故障注入的方式驗證容錯機制的正確性。傳統(tǒng)仿真驗證存在以下缺點:需要驗證人員手動翻轉(zhuǎn)待測N模冗余的寄存器實現(xiàn)故障注入,當寄存器數(shù)量龐大時,工作量非常大,而且不一定能覆蓋所有情況,自動化水平不高;結(jié)果分析需要驗證人員通過觀察波形得出,可觀測性差。



技術實現(xiàn)要素:

本發(fā)明的目的在于提供一種基于插件架構的主機監(jiān)控系統(tǒng),用于解決上述現(xiàn)有技術的問題。

本發(fā)明一種寄存器傳輸級N模冗余設計的半自動化驗證方法,其中,包括:將測試激勵輸入待驗證平臺;對n模冗余的待驗證平臺的寄存器的輸出進行檢查;接收待驗證平臺的寄存器1-n的輸出值,判斷寄存器1-n的輸出值是否相等,如相等則此步驗證通過;定義二進制數(shù)值data,位寬為n;每個系統(tǒng)時鐘給data的最低位加1,將data的n位的每一位分別賦給寄存器1-n,待驗證平臺根據(jù)每個系統(tǒng)時鐘的上升沿的寄存器1-n的值,在每個系統(tǒng)時鐘的下降沿,輸出投票輸出結(jié)果;在每個系統(tǒng)時鐘,計算所有寄存器值為1和0的寄存器的數(shù)量,如寄存器值為1的寄存器較多,則a=1,如寄存器值為0的寄存器較多,則令a=0;檢查待驗證平臺的投票輸出結(jié)果是否等于a,數(shù)量最多的取值,如等于,則本步驗證通過;如上述驗證均通過,則認為待驗證平臺測試通過。

根據(jù)本發(fā)明的寄存器傳輸級N模冗余設計的半自動化驗證方法的一實施例,其中,對于三模冗余的輸出,n的數(shù)值為3。

根據(jù)本發(fā)明的寄存器傳輸級N模冗余設計的半自動化驗證方法的一實施例,其中,每個系統(tǒng)時鐘的上升沿給data的最低位加1。

根據(jù)本發(fā)明的寄存器傳輸級N模冗余設計的半自動化驗證方法的一實施例,其中,在每個系統(tǒng)時鐘的下降沿,計算所有寄存器值為1和0的寄存器的數(shù)量。

根據(jù)本發(fā)明的寄存器傳輸級N模冗余設計的半自動化驗證方法的一實施例,其中,對data進行2的n次方種取值測試。

根據(jù)本發(fā)明的寄存器傳輸級N模冗余設計的半自動化驗證方法的一實施例,其中,獲取n模冗余的模塊位置、寄存器名稱以及測試激勵名稱。

本發(fā)明寄存器傳輸級N模冗余驗證方法具有以下的優(yōu)勢:(1)驗證完備性更強。此方法可以驗證冗余寄存器的一致性、投票結(jié)果的正確性兩個方面,驗證更完備;(2)操作簡單、自動化水平高且不影響其他功能的驗證??梢愿鶕?jù)待測N模冗余的模塊位置、輸入輸出寄存器名稱、testbench模塊名稱,自動生成寄存器等價檢查模塊和投票功能檢查模塊。將生成的驗證平臺附加到原始的testbench上就可以在不影響其他功能驗證的同時自動驗證N模冗余的正確性,此方法在使用時不修改原始的testbench,不影響其他功能的驗證,操作簡單快捷,且自動化水平高;(3)可觀測性強。此方法在寄存器等價檢查模塊和投票功能檢查模塊中加入了斷言(assertion),斷言是對設計屬性的描述,能夠自動化地檢查N模冗余的功能正確性,可觀測性強。

附圖說明

圖1所示為本發(fā)明一種寄存器傳輸級N模冗余驗證方法的流程圖;

圖2所示為仿真的數(shù)據(jù)流程結(jié)構圖;

圖3所示為寫入的.xls格式的文件結(jié)構示意圖。

具體實施方式

為使本發(fā)明的目的、內(nèi)容、和優(yōu)點更加清楚,下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述。

圖1所示為本發(fā)明一種寄存器傳輸級N模冗余驗證方法的流程圖,如圖1所示,本發(fā)明一種寄存器傳輸級N模冗余設計的半自動化驗證方法的具體步驟如下:

(1)測試模塊的生成。將寄存器傳輸級待測設計的N模冗余的模塊位置、輸入輸出寄存器名稱、測試激勵(testbench)模塊名稱輸入到平臺生成腳本中,腳本通過替換N模冗余的模塊位置、輸入輸出寄存器名稱,生成出可以驗證待測設計N模冗余模塊的寄存器等價檢查模塊和投票功能檢查模塊。

(2)將待驗證平臺連同原始的測試激勵testbench一同加入仿真器。開始仿真時,驗證平臺會依次執(zhí)行兩個步驟:寄存器等價檢查、投票功能檢查。

(3)執(zhí)行寄存器等價檢查。驗證方法生成的寄存器等價檢查模塊,可以通過模塊內(nèi)的寄存器等價檢查斷言(assertion)實時檢查待測N模冗余的寄存器是否相等,如果不相等則會通過仿真器輸出不相等的時刻和不相等的寄存器值,并得出驗證不通過的結(jié)論。

例如,在驗證三模冗余設計時,寄存器等價檢查模塊中的寄存器等價檢查斷言如下所示:

該斷言的含義是,在CLK時鐘下降沿的時候檢查寄存器r1、r2、r3是否互相相等,如果不相等,斷言失敗并會在仿真器中報告此時的仿真時間、此時r1、r2、r3的取值并報告出驗證失敗的提示。例如仿真中120ns時出現(xiàn)r1=0、r2=1、r3=1的情況時,r1和r2、r3不相等,此模塊就會報出寄存器不相等的警告信息,表示驗證不通過。

(4)執(zhí)行投票功能檢查。驗證方法生成的投票功能檢查模塊,會不斷改變?nèi)哂嗟募拇嫫鞯闹?,使它們?nèi)〉綄嶋H中可能會存在的所有情況,并使用投票檢查斷言檢驗投票功能是否符合少數(shù)服從多數(shù)的準則,如果不滿足則會向測試人員報告投票功能存在缺陷的時刻、此刻投票結(jié)果的,并得出驗證不通過的結(jié)論。

例如,在驗證三模冗余設計時,生成的投票功能檢查模塊會執(zhí)行以下操作:定義二進制變量data,位寬為3,data能夠進行二的三次方,既8種取值。

在檢查投票功能檢查時,上述程序會不斷地在每個系統(tǒng)CLK時鐘的上升沿給data的最低位加“1”,將Data的最低位等于寄存器r1的值,data的中間位等于r2,data的最高位等于r3;這樣就使r1,r2,r3取到了實際中可能會出現(xiàn)的8種情況,當冗余寄存器的數(shù)量更多時,相比傳統(tǒng)手動翻轉(zhuǎn)寄存器的方法,這種方式自動化的優(yōu)勢就更加突出。

上述斷言的含義是在CLK時鐘下降沿的時刻,檢查投票輸出結(jié)果是否等于r1、r2、r3這3個寄存器中數(shù)量最多的取值(假如r1、r2、r3中有2個以上值為1,r_out則為1,假如有2個以上為0,r_out則為0),如果不滿足,斷言失敗并會在仿真器中報告此時的仿真時間、不滿足的投票結(jié)果并報告出驗證失敗提示。例如仿真中120ns時出現(xiàn)r1=0、r2=1、r3=1的情況,此時r_out=0,顯然r_out的值與r1、r2、r3中出現(xiàn)最多的值“1”不相等,此模塊就會報出警告信息,表示驗證不通過。

(5)如果(3)和(4)都通過,則所測N模冗余設計為有效設計。

圖2所示為仿真的數(shù)據(jù)流程結(jié)構圖,如圖1以及圖2所示,DUT是原始待測N模冗余設計,testbench是原始的仿真的測試激勵,reg_check.sv是發(fā)明中生成的寄存器等價檢查模塊,vote_check.sv是發(fā)明中生成的投票功能檢查模塊。

將待測設計的N模冗余的模塊位置、輸入輸出寄存器名稱、testbench模塊名稱輸入到腳本中,腳本對待測設計的N模冗余的模塊位置、輸入輸出寄存器名稱、testbench模塊名稱進行替換處理,生成reg_check.sv(寄存器等價檢查模塊)和vote_check.sv(投票功能檢查模塊)。

將DUT、testbench、reg_check.sv、vote_check.sv一同加入P1800仿真器中運行。如果運行寄存器等價檢查出現(xiàn)不一致的情況,reg_check.sv會向仿真器報告“warning:The registers are not equal”的信息并附上此時仿真時刻。如果運行投票功能檢查出現(xiàn)投票功能不正確的情況,vote_check.sv會向仿真器報告“warning:The voter logic is not correct”的信息并附上此時仿真時刻。最后,會根據(jù)寄存器檢查情況和投票功能檢查情況得出驗證結(jié)果。

圖3所示為寫入的.xls格式的文件示意圖,如圖1至圖3所示,一種寄存器傳輸級N模冗余設計的半自動化驗證方法的一實施例,其具體步驟如下:

(1)測試模塊的生成。使用者通過讀取待測RTL(寄存器傳輸級)代碼,提取出N模冗余的模塊名稱與位置、輸入輸出寄存器名稱、測試激勵模塊名稱,寫入.xls格式的文件。

將上述的.xls格式的文件輸入到生成腳本中,腳本通過替換N模冗余的模塊名稱與位置、輸入輸出寄存器名稱,生成出可以驗證待測設計N模冗余模塊的寄存器等價檢查模塊和投票功能檢查模塊。

(2)將生成的寄存器等價檢查模塊和投票功能檢查模塊程序,與原始的測試激勵模塊、待測RTL代碼一同加入仿真器進行仿真。

如圖2所示,虛線框中的是由上一步生成的寄存器等價檢查模塊程序和投票檢查模塊程序,與待測RTL代碼和原始測試激勵模塊程序加入IEEE P1800標準的仿真器中進行仿真。

(3)執(zhí)行寄存器等價檢查。發(fā)明生成的寄存器等價檢查模塊,可以通過模塊內(nèi)的寄存器等價檢查斷言(assertion)實時檢查待測N模冗余的寄存器是否相等,如果不相等則會通過仿真器輸出不相等的時刻和不相等的寄存器值,并得出驗證不通過的結(jié)論。

例如,在驗證三模冗余設計時,寄存器等價檢查模塊中的寄存器等價檢查斷言,該斷言的含義是,在CLK時鐘下降沿的時候檢查寄存器r1、r2、r3是否互相相等,如果不相等,斷言失敗并會在仿真器中報告此時的仿真時間、此時r1、r2、r3的取值并報告出“warning:The registers are not equal!”的驗證失敗的提示。例如仿真中120ns時出現(xiàn)r1=0、r2=1、r3=1的情況時,r1和r2、r3不相等,此模塊就會報出“120ns,warning:The registers r1=0r2=1r3=1are not equal!”的警告信息,表示驗證不通過。相比傳統(tǒng)方法,這個方法可以自動檢查出寄存器不相等的情況并自動報告錯誤時刻和寄存器取值。

(4)執(zhí)行投票功能檢查。驗證方法生成的投票功能檢查模塊,會不斷改變?nèi)哂嗟募拇嫫鞯闹?,使它們?nèi)〉綄嶋H中可能會存在的所有情況,并使用投票檢查斷言檢驗投票功能是否符合少數(shù)服從多數(shù)的準則,如果不滿足則會向測試人員報告投票功能存在缺陷的時刻、此刻投票結(jié)果,并得出驗證不通過的結(jié)論。

例如,在驗證三模冗余設計時,生成的投票功能檢查模塊會執(zhí)行以下操作:

data是在投票功能檢查模塊中定義的一個位寬為3的變量,在檢查投票功能檢查時,上述程序會不斷地在每個CLK時鐘的上升沿給data的最低位加“1”,然后通過force操作符將data的3位分別賦給r1,r2,r3寄存器,這樣就使r1,r2,r3取到了實際中可能會出現(xiàn)的23=8種情況,當冗余寄存器的數(shù)量更多時,相比傳統(tǒng)手動翻轉(zhuǎn)寄存器的方法,這種方式自動化的優(yōu)勢就更加突出。

在不斷改變寄存器的值的同時,模塊中的投票功能檢查斷言也會同時進行投票功能的檢查:在CLK時鐘下降沿的時刻,檢查投票輸出結(jié)果r_out是否等于r1、r2、r3這3個寄存器中數(shù)量最多的取值(假如r1、r2、r3中有2個以上值為1,r_out則為1,假如有2個以上為0,r_out則為0),如果不滿足,斷言失敗并會在仿真器中報告此時的仿真時間、不滿足的投票結(jié)果并報告出“warning:The voter output is not correct!”的驗證失敗提示。例如仿真中120ns時出現(xiàn)r1=0、r2=1、r3=1的情況,此時r_out=0,顯然r_out的值與r1、r2、r3中出現(xiàn)最多的值“1”不相等,此模塊就會報出“120ns,warning:The voter output r_out=0is not correct!”的警告信息,表示驗證不通過。相比傳統(tǒng)方法,這個方法可以自動檢查出投票功能錯誤的時刻并報告錯誤時刻和錯誤的投票值。

(5)如果(3)和(4)都通過,則所測N模冗余設計為有效設計。

對于一種寄存器傳輸級N模冗余驗證方法的一實施例,包括以下步驟:

步驟1:提取寄存器傳輸級設計的N模冗余信息,包括待測設計的N模冗余的模塊位置、輸入輸出寄存器名稱、testbench模塊名稱。

步驟2:向腳本輸入步驟1中的信息,腳本對待測設計的N模冗余的模塊位置、輸入輸出寄存器名稱、testbench模塊名稱進行替換處理,生成寄存器等價檢查模塊和投票功能檢查模塊。

步驟3:將步驟2生成的寄存器等價檢查模塊和投票功能檢查模塊加入仿真工程并運行,依次執(zhí)行步驟4和步驟5。

步驟4:運行寄存器等價檢查,步驟2中生成的寄存器等價檢查斷言可以實時地監(jiān)控待測設計N模冗余的寄存器是否相等,如果不相等則會向測試人員報告出現(xiàn)寄存器不一致的時刻、寄存器取值,結(jié)束驗證并得出驗證不通過的結(jié)論,如果相等則執(zhí)行步驟5。

步驟5:運行投票功能檢查,步驟2中生成的投票功能檢查模塊會不斷改變?nèi)哂嗟募拇嫫鞯闹?,使它們?nèi)〉綄嶋H中可能會存在的所有情況,并使用投票檢查斷言檢驗投票功能是否正確,如果不正確則會向測試人員報告投票功能存在缺陷的時刻、此刻投票結(jié)果的,結(jié)束驗證并得出驗證不通過的結(jié)論,如果正確則執(zhí)行步驟6。

步驟6:得出待測的N模冗余設計通過驗證的結(jié)論。

本發(fā)明寄存器傳輸級N模冗余驗證方法具有以下優(yōu)點:

(1)效率高、使用方便。使用者手動輸入N模冗余的模塊名稱與位置、輸入輸出寄存器名稱、測試激勵模塊名稱,就能通過腳本自動生成寄存器等價檢查模塊和投票功能檢查模塊程序,而不需要手動去編寫、對代碼進行改動。

(2)操作簡單、自動化水平高且不影響其他功能的驗證。可以根據(jù)待測N模冗余的模塊名稱與位置、輸入輸出寄存器名稱、測試激勵模塊名稱,自動生成寄存器等價檢查模塊和投票功能檢查模塊。生成的驗證模塊可以無縫插入到原始的仿真工程中運行仿真,能夠在不影響其他功能驗證的同時自動驗證N模冗余的正確性。此方法在使用時不需要修改原始的測試激勵,不會影響其他功能的驗證,而且可以自動檢查出N模冗余存在的缺陷;

(3)可觀測性強。此方法在寄存器等價檢查模塊和投票功能檢查模塊中加入了斷言(assertion),斷言是對設計屬性的描述,能夠自動化地檢查N模冗余的功能正確性,可觀測性強,可以自動定位缺陷位置、時刻,不需要人工去檢查波形。

以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明技術原理的前提下,還可以做出若干改進和變形,這些改進和變形也應視為本發(fā)明的保護范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
固镇县| 普定县| 衡山县| 玛多县| 宾川县| 同德县| 夏河县| 六盘水市| 桦甸市| 郯城县| 宕昌县| 平湖市| 郴州市| 桐柏县| 沙雅县| 富民县| 大冶市| 平罗县| 乡城县| 南乐县| 泗洪县| 错那县| 广昌县| 景东| 广元市| 藁城市| 兰考县| 壤塘县| 鄯善县| 名山县| 麟游县| 峨山| 重庆市| 开阳县| 凤城市| 桃园市| 乌海市| 祁东县| 北宁市| 余姚市| 峡江县|