本發(fā)明涉及數(shù)據(jù)驗(yàn)證,具體是涉及一種基于uvm的crc錯(cuò)誤自動(dòng)化注入驗(yàn)證系統(tǒng)和方法。
背景技術(shù):
1、在集成電路中,芯片的物理線路由傳輸介質(zhì)與通信設(shè)備組成,當(dāng)數(shù)據(jù)信號從發(fā)送端出發(fā)經(jīng)過物理線路時(shí),由于物理線路存在著噪聲,因此數(shù)據(jù)信號通過物理線路傳輸?shù)浇邮斩藭r(shí),接收信號必然是數(shù)據(jù)與噪聲信號電平的疊加,如圖1所示。在接收端接收電路在取樣時(shí)對疊加后的信號進(jìn)行判斷,以確定數(shù)據(jù)的0、1值。
2、為減少物理線路的傳輸錯(cuò)誤,研究檢測與糾正比特流傳輸錯(cuò)誤的方法,即差錯(cuò)控制就很重要。目前差錯(cuò)控制的方法是用檢錯(cuò)碼,其中數(shù)據(jù)鏈路層用的最多的一種檢錯(cuò)方法是循環(huán)冗余校驗(yàn)法(cyclic?redundancy?check,crc)。crc?是一種通過對數(shù)據(jù)進(jìn)行特定的數(shù)學(xué)運(yùn)算,生成一個(gè)固定長度的校驗(yàn)值的技術(shù)。在數(shù)據(jù)傳輸或存儲過程中,發(fā)送方計(jì)算?crc值并將其附加到數(shù)據(jù)中,接收方在接收到數(shù)據(jù)后,重新計(jì)算?crc?值并與接收到的?crc?值進(jìn)行比較。如果兩個(gè)?crc?值相等,則說明數(shù)據(jù)在傳輸或存儲過程中沒有發(fā)生錯(cuò)誤;否則,說明數(shù)據(jù)發(fā)生了錯(cuò)誤。crc?算法的基本原理是利用多項(xiàng)式除法,將原始數(shù)據(jù)看作一個(gè)二進(jìn)制多項(xiàng)式,選擇一個(gè)特定的生成多項(xiàng)式,然后用原始數(shù)據(jù)多項(xiàng)式除以生成多項(xiàng)式,得到的余數(shù)就是?crc?校驗(yàn)碼。在接收端,用同樣的生成多項(xiàng)式對接收的數(shù)據(jù)(包括校驗(yàn)碼)進(jìn)行除法運(yùn)算,如果余數(shù)為零,則說明數(shù)據(jù)正確。通過crc?能夠檢測出多種類型的錯(cuò)誤,包括單比特錯(cuò)誤、多比特錯(cuò)誤和突發(fā)錯(cuò)誤等,可以通過硬件或軟件實(shí)現(xiàn),計(jì)算速度快。
3、在現(xiàn)有技術(shù)中,為了驗(yàn)證系統(tǒng)對?crc?錯(cuò)誤的處理能力,常常采用?force?(systemverilog所支持的一種語法)強(qiáng)制修改數(shù)據(jù)的方式產(chǎn)生錯(cuò)誤激勵(lì),以此模擬真實(shí)使用環(huán)境中數(shù)據(jù)出現(xiàn)錯(cuò)誤的情況。具體來說,就是在驗(yàn)證環(huán)境中,通過使用?force?語句直接修改數(shù)據(jù)中的?crc?值,使其與正確的?crc?值不同,從而模擬?crc?錯(cuò)誤的發(fā)生。但是,采用force?強(qiáng)制修改?crc?域段的方式存在以下缺陷:
4、(1)采用force?強(qiáng)制修改?crc?域段的方式是一種人為設(shè)定的錯(cuò)誤注入方式,缺乏真實(shí)性和隨機(jī)性。在實(shí)際的數(shù)字系統(tǒng)中,crc?錯(cuò)誤通常是由于各種隨機(jī)因素引起的,如噪聲干擾、硬件故障等。而?force?強(qiáng)制修改的方式無法模擬這些隨機(jī)因素,使得驗(yàn)證結(jié)果與實(shí)際情況存在較大的差距。
5、(2)采用force?強(qiáng)制修改?crc?域段的方式通常是針對特定的數(shù)據(jù)格式和傳輸協(xié)議進(jìn)行的,可擴(kuò)展性較差。當(dāng)數(shù)字系統(tǒng)的數(shù)據(jù)格式或傳輸協(xié)議發(fā)生變化時(shí),需要重新編寫force?語句來進(jìn)行錯(cuò)誤注入,這增加了驗(yàn)證的工作量和難度。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明目的在于提供一種基于uvm的crc錯(cuò)誤自動(dòng)化注入驗(yàn)證系統(tǒng)和方法,有效解決了現(xiàn)有技術(shù)的錯(cuò)誤激勵(lì)方式存在可擴(kuò)展性較差以及缺乏真實(shí)性和隨機(jī)性技術(shù)問題。
2、為解決上述技術(shù)問題,本發(fā)明提供一種基于uvm的crc錯(cuò)誤自動(dòng)化注入驗(yàn)證系統(tǒng),包括測試層,測試層包括待測組件dut及與待測組件dut通信連接的環(huán)境層;環(huán)境層包括參考模型、輸入代理組件、錯(cuò)誤注入組件、輸出代理組件和計(jì)分板;其中,
3、輸入代理組件包括序列發(fā)生器和驅(qū)動(dòng)器;序列發(fā)生器用于啟動(dòng)序列,從序列中獲取輸入數(shù)據(jù)并將輸入數(shù)據(jù)發(fā)送至驅(qū)動(dòng)器;驅(qū)動(dòng)器用于將輸入數(shù)據(jù)輸入至待測組件dut;
4、參考模型用于對輸入代理組件發(fā)送的輸入數(shù)據(jù)進(jìn)行處理,并將預(yù)期數(shù)據(jù)發(fā)送至計(jì)分板;
5、錯(cuò)誤注入組件用于在輸入數(shù)據(jù)輸入待測組件dut時(shí)插入錯(cuò)誤數(shù)據(jù);
6、待測組件dut用于對插入錯(cuò)誤數(shù)據(jù)進(jìn)行錯(cuò)誤檢測和crc校驗(yàn),并對有錯(cuò)誤的數(shù)據(jù)進(jìn)行標(biāo)記;
7、輸出代理組件用于監(jiān)測待測組件dut得到輸出數(shù)據(jù),并將輸出數(shù)據(jù)發(fā)送至計(jì)分板;
8、計(jì)分板用于對預(yù)期數(shù)據(jù)和輸出數(shù)據(jù)進(jìn)行比對,并輸出對比結(jié)果;
9、其中,基于uvm的crc錯(cuò)誤自動(dòng)化注入驗(yàn)證過程具體包括:
10、步驟一、通過序列發(fā)生器獲取用于驗(yàn)證待測組件dut的各種各樣不同的激勵(lì)作為輸入數(shù)據(jù);
11、步驟二、將激勵(lì)分別輸入至參考模型和待測組件dut,通過錯(cuò)誤注入組件對輸入至待測組件dut的事務(wù)包集合插入錯(cuò)誤,模擬真實(shí)使用環(huán)境中數(shù)據(jù)出現(xiàn)錯(cuò)誤的情況,驗(yàn)證待測組件dut的crc校驗(yàn)功能是否正確;具體包括:
12、在待測組件dut對激勵(lì)進(jìn)行crc校驗(yàn)過程中,待測組件dut對帶有錯(cuò)誤數(shù)據(jù)的事務(wù)包進(jìn)行標(biāo)記,當(dāng)crc校驗(yàn)功能正常時(shí),crc校驗(yàn)功能無法糾正錯(cuò)誤,待測組件dut在完成處理之后的輸出數(shù)據(jù)包含帶有錯(cuò)誤數(shù)據(jù)且?guī)в袠?biāo)記的事務(wù)包;
13、計(jì)分板對參考模型和待測組件dut的輸出數(shù)據(jù)進(jìn)行對比,僅對待測組件dut輸出的不帶有標(biāo)記的事務(wù)包和參考模型輸出的事務(wù)包集合進(jìn)行對比,若對比結(jié)果通過,則說明crc校驗(yàn)功能正確,待測組件dut的標(biāo)記邏輯正確。
14、優(yōu)選的,錯(cuò)誤注入組件還用于在輸入數(shù)據(jù)輸入待測組件dut時(shí),對錯(cuò)誤數(shù)據(jù)的數(shù)量和/或插入的位置進(jìn)行收集。
15、優(yōu)選的,輸出代理組件包括第一監(jiān)聽器,通過第一監(jiān)聽器的回調(diào)模塊將輸出數(shù)據(jù)帶有錯(cuò)誤標(biāo)記的數(shù)據(jù)過濾掉,并輸出無標(biāo)記的數(shù)據(jù)至計(jì)分板;計(jì)分板用于對預(yù)期數(shù)據(jù)和無標(biāo)記的數(shù)據(jù)進(jìn)行比對,并輸出對比結(jié)果。
16、優(yōu)選的,輸入代理組件還包括第二監(jiān)聽器,第二監(jiān)聽器的輸入端與待測組件dut通信連接,并接收待測組件dut返回的響應(yīng)數(shù)據(jù)包;第二監(jiān)聽器的輸出端與參考模型通信連接,并將響應(yīng)數(shù)據(jù)包發(fā)送至參考模型,以使參考模型根據(jù)響應(yīng)數(shù)據(jù)包進(jìn)行模擬運(yùn)行,并生成預(yù)期數(shù)據(jù)。
17、優(yōu)選的,測試層還包括第一接口組件和第二接口組件;第一監(jiān)聽器通過第一接口組件與待測組件dut通信連接;第二監(jiān)聽器通過第二接口組件與待測組件dut通信連接,并接收待測組件dut的輸出信號。
18、第二方面,本發(fā)明提供了一種基于uvm的crc錯(cuò)誤自動(dòng)化注入驗(yàn)證方法,應(yīng)用于上述第一方面的基于uvm的crc錯(cuò)誤自動(dòng)化注入驗(yàn)證系統(tǒng),包括如下步驟:
19、利用序列發(fā)生器啟動(dòng)序列,并從序列中獲取得到輸入數(shù)據(jù);
20、通過驅(qū)動(dòng)器接收輸入數(shù)據(jù),并將輸入數(shù)據(jù)輸入至待測組件dut;
21、輸入代理組件的第二監(jiān)聽器接收所述待測組件dut返回的響應(yīng)數(shù)據(jù)包,并將所述響應(yīng)數(shù)據(jù)包發(fā)送至參考模型,利用所述參考模型對所述響應(yīng)數(shù)據(jù)包進(jìn)行處理,獲得預(yù)期數(shù)據(jù),并通過參考模型將預(yù)期數(shù)據(jù)發(fā)送至計(jì)分板;
22、利用錯(cuò)誤注入組件對輸入數(shù)據(jù)插入錯(cuò)誤數(shù)據(jù),并通過待測組件dut對插入錯(cuò)誤數(shù)據(jù)進(jìn)行錯(cuò)誤檢測和crc校驗(yàn),并對有錯(cuò)誤的數(shù)據(jù)進(jìn)行標(biāo)記,將帶標(biāo)記和無標(biāo)記的數(shù)據(jù)輸出為輸出數(shù)據(jù),并將輸出數(shù)據(jù)發(fā)送至輸出代理組件;
23、通過輸出代理組件將輸出數(shù)據(jù)發(fā)送至計(jì)分板;
24、利用計(jì)分板對預(yù)期數(shù)據(jù)和輸出數(shù)據(jù)進(jìn)行比對,并輸出對比結(jié)果。
25、優(yōu)選的,還包括如下步驟:
26、監(jiān)聽并接收待測組件dut輸出的輸出數(shù)據(jù),并利用第一監(jiān)聽器的回調(diào)模塊將輸出數(shù)據(jù)帶有錯(cuò)誤標(biāo)記的數(shù)據(jù)過濾掉。
27、優(yōu)選的,當(dāng)對比結(jié)果通過時(shí),則判定通過待測組件dut對插入錯(cuò)誤數(shù)據(jù)進(jìn)行錯(cuò)誤檢測和crc校驗(yàn),并對有錯(cuò)誤的數(shù)據(jù)進(jìn)行標(biāo)記的過程正確;當(dāng)對比結(jié)果失敗時(shí),則判定通過待測組件dut對插入錯(cuò)誤數(shù)據(jù)進(jìn)行錯(cuò)誤檢測和crc校驗(yàn),并對有錯(cuò)誤的數(shù)據(jù)進(jìn)行標(biāo)記的過程錯(cuò)誤。
28、優(yōu)選的,所述通過驅(qū)動(dòng)器接收所述輸入數(shù)據(jù),并將所述輸入數(shù)據(jù)輸入至待測組件dut,具體包括:驅(qū)動(dòng)器接收來自序列發(fā)生器發(fā)送的事務(wù)級激勵(lì)數(shù)據(jù),并將事務(wù)級激勵(lì)轉(zhuǎn)換成待測組件dut能夠識別的接口級或者信號級激勵(lì),并將接口級或者信號級激勵(lì)輸入至待測組件dut。
29、優(yōu)選的,所述通過輸出代理組件將所述輸出數(shù)據(jù)發(fā)送至所述計(jì)分板,具體包括:輸出代理組件的第一監(jiān)聽器在監(jiān)聽待測組件dut得到數(shù)據(jù)處理結(jié)果后,將待測組件dut的接口級或者信號級的輸出轉(zhuǎn)換成驗(yàn)證工程師容易理解的事務(wù)級數(shù)據(jù),并引入callback回調(diào)機(jī)制,對待測組件dut輸出的帶有錯(cuò)誤標(biāo)記的事務(wù)包進(jìn)行過濾,僅將不帶有標(biāo)記的事務(wù)包發(fā)送給計(jì)分板,并對過濾掉的帶有標(biāo)記的事務(wù)包進(jìn)行統(tǒng)計(jì)和檢查。
30、第三方面,本發(fā)明提供了一種計(jì)算機(jī)設(shè)備,包括處理器、輸入設(shè)備、輸出設(shè)備和存儲器,處理器、輸入設(shè)備、輸出設(shè)備和存儲器相互連接,其中,存儲器用于存儲計(jì)算機(jī)程序,計(jì)算機(jī)程序包括程序指令,處理器被配置用于調(diào)用程序指令,執(zhí)行上述第二方面的基于uvm的crc錯(cuò)誤自動(dòng)化注入驗(yàn)證方法的步驟。
31、第四方面,本發(fā)明還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),包括:可執(zhí)行的計(jì)算機(jī)程序,計(jì)算機(jī)程序被執(zhí)行器執(zhí)行時(shí)用于實(shí)現(xiàn)上述第二方面的基于uvm的crc錯(cuò)誤自動(dòng)化注入驗(yàn)證方法的步驟。
32、采用本發(fā)明提供的技術(shù)方案,與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
33、通過利用uvm的驗(yàn)證系統(tǒng)對具有crc校驗(yàn)功能的待測組件dut進(jìn)行驗(yàn)證,通過錯(cuò)誤注入組件進(jìn)行錯(cuò)誤數(shù)據(jù)注入的方式,模擬實(shí)際使用環(huán)境中出現(xiàn)不同數(shù)據(jù)錯(cuò)誤的情況,提高驗(yàn)證的覆蓋率,并且可以確保錯(cuò)誤注入位置和類型的準(zhǔn)確性。待測組件dut可以對被插入錯(cuò)誤數(shù)據(jù)的事務(wù)包進(jìn)行標(biāo)記,可以僅針對無標(biāo)記的事務(wù)包進(jìn)行對比,在根據(jù)對比結(jié)果驗(yàn)證crc校驗(yàn)邏輯是否正確的同時(shí),還可以對待測組件dut的標(biāo)記邏輯進(jìn)行驗(yàn)證。驗(yàn)證環(huán)境的主要數(shù)據(jù)流只需要做一些簡單改造和配置,就可通過每日回歸等手段進(jìn)行充分的驗(yàn)證,從而發(fā)現(xiàn)更多邊界情況,確保驗(yàn)證的完備性。同時(shí),還可以節(jié)省其他驗(yàn)證工程師的開發(fā)時(shí)間,降低驗(yàn)證成本。