《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于SystemVerilog可重用測(cè)試平臺(tái)的實(shí)現(xiàn)
基于SystemVerilog可重用測(cè)試平臺(tái)的實(shí)現(xiàn)
2015年電子技術(shù)應(yīng)用第2期
王 鵬1,,劉萬和2,,劉 銳2,,田 毅1
1.中國民航大學(xué) 民用航空器適航審定技術(shù)與管理研究中心, 天津市民用航空器適航與維修重點(diǎn)實(shí)驗(yàn)室,,天津300300,; 2.中國民航大學(xué) 安全科學(xué)與工程學(xué)院,天津300300
摘要: 對(duì)于中小型設(shè)計(jì),,傳統(tǒng)的驗(yàn)證效率低,、可重用性差,而基于方法學(xué)的高級(jí)驗(yàn)證測(cè)試平臺(tái)搭建較繁瑣,,驗(yàn)證流程不太靈活,。以ARINC429收發(fā)器IP核為驗(yàn)證對(duì)象,,采用SystemVerilog語言,,通過層次化設(shè)計(jì),改善工程組織架構(gòu),,運(yùn)用虛接口與回調(diào)等關(guān)鍵技術(shù),,實(shí)現(xiàn)了一種可重用測(cè)試平臺(tái),。將不同的測(cè)試案例在測(cè)試平臺(tái)上運(yùn)行,結(jié)合斷言與覆蓋率驅(qū)動(dòng)等驗(yàn)證技術(shù)完成了對(duì)ARINC429收發(fā)器IP核的功能驗(yàn)證,,代碼覆蓋率和功能覆蓋率均達(dá)到100%,。實(shí)踐表明,該測(cè)試平臺(tái)具有良好的可重用性,、易操作性,,驗(yàn)證效率較高。
中圖分類號(hào): TN402
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)02-0061-04
The implementation of a reusable testbench based on SystemVerilog
Wang Peng1,,Liu Wanhe2,,Liu Rui2,Tian Yi1
1.Tianjin Key Laboratory for Civil Aircraft Airworthiness and Maintenance, Civil Aircraft Airworthiness Certification Technology and Management Research Center, Civil Aviation University of China, Tianjin 300300,,China,; 2.Safety Science and Engineering College, Civil Aviation University of China, Tianjin 300300,China
Abstract: For small and medium-sized design, the traditional verification has low efficiency and poor reusability, while the advanced methodology-based verification is a bit complicated to build testbench, and the verification flow is not very flexible. The implementation of a reusable testbench is presented in this paper. The testbench is used to verify the IP core of ARINC429 transceiver, and it is implemented by employing the SystemVerilog language, designing the hierarchical structure, improving the architecture of project, and adopting key technology such as virtual interface and callback. With the assertions and coverage-driven verification technology, the functional verification is completed by running different testcases on this testbench, both code coverage and functional coverage are 100%. The practice shows that the testbench is reusable, easy to operate, and efficient.
Key words : verification,;SystemVerilog,;testbench;reusable

 

0 引言

  隨著集成電路設(shè)計(jì)復(fù)雜性的增加,,驗(yàn)證的難度也日益加大,。傳統(tǒng)的基于Verilog的驗(yàn)證效率低、可重用性差,,為此,,工業(yè)界推出了具有面向?qū)ο筇匦浴⒅С旨s束隨機(jī)與斷言等功能的標(biāo)準(zhǔn)化硬件描述與驗(yàn)證語言SystemVerilog[1],。

  對(duì)SoC等大型設(shè)計(jì)的驗(yàn)證多采用基于方法學(xué)的驗(yàn)證進(jìn)行,,文獻(xiàn)[2]基于UVM建立測(cè)試平臺(tái)對(duì)RISC CPU進(jìn)行驗(yàn)證,充分體現(xiàn)了基于方法學(xué)的驗(yàn)證對(duì)于大型設(shè)計(jì)的高效性,。對(duì)中小型設(shè)計(jì)的驗(yàn)證,,相對(duì)于基于方法學(xué)搭建的測(cè)試平臺(tái),基于SystemVerilog搭建的測(cè)試平臺(tái)更具靈活性,、易操作性[3],。文獻(xiàn)[4]基于SystemVerilog開發(fā)高級(jí)驗(yàn)證環(huán)境,實(shí)現(xiàn)了測(cè)試平臺(tái)在定向測(cè)試和隨機(jī)測(cè)試的重用,,但對(duì)驗(yàn)證環(huán)境的配置實(shí)現(xiàn)介紹較少,;文獻(xiàn)[5]著重介紹了可重用測(cè)試平臺(tái)的層次化結(jié)構(gòu)及相應(yīng)的驗(yàn)證組件,但缺乏對(duì)實(shí)現(xiàn)可重用性的關(guān)鍵技術(shù)的討論,。本文以層次化思想為指導(dǎo),采用SystemVerilog語言實(shí)現(xiàn)可重用測(cè)試平臺(tái),。

1 可重用測(cè)試平臺(tái)實(shí)現(xiàn)

  1.1 ARINC429收發(fā)器IP核簡(jiǎn)介

  在現(xiàn)代飛機(jī)上,多采用ARINC429總線進(jìn)行通信,。根據(jù)ARINC429總線規(guī)范[6],,設(shè)計(jì)ARINC429收發(fā)器,,實(shí)現(xiàn)上位機(jī)與機(jī)載設(shè)備的通信,并將其IP化,,便于復(fù)用,。ARINC429收發(fā)器采用自頂向下的模塊化設(shè)計(jì),設(shè)計(jì)框圖如圖1所示,。

001.jpg

  ARINC429收發(fā)器的功能具體包括:(1)實(shí)現(xiàn)全局異步復(fù)位,;(2)不同的速率模式通信;(3)異步FIFO的緩存,;(4)發(fā)送器發(fā)送立即,、循環(huán)數(shù)據(jù);(5)發(fā)送器對(duì)接收的RS232數(shù)據(jù)正確處理,;(6)發(fā)送器將RS232正確轉(zhuǎn)換成ARINC429數(shù)據(jù)發(fā)出,;(7)接收器正確處理接收的ARINC429數(shù)據(jù);(8)接收器將ARINC429數(shù)據(jù)轉(zhuǎn)換成RS232數(shù)據(jù)發(fā)出等,。

  1.2 可重用測(cè)試平臺(tái)實(shí)現(xiàn)

  1.2.1 測(cè)試平臺(tái)層次化[7]

  傳統(tǒng)的采用Verilog實(shí)現(xiàn)的測(cè)試平臺(tái),,設(shè)計(jì)者難以對(duì)測(cè)試環(huán)境進(jìn)行分層設(shè)計(jì),往往將大部分測(cè)試組件放在一個(gè)大的文件中,,這使得測(cè)試代碼難以維護(hù),、復(fù)用和擴(kuò)展。所以ARINC429收發(fā)器IP核的測(cè)試平臺(tái)引入驗(yàn)證方法學(xué)中層次化的思想,,結(jié)合設(shè)計(jì)規(guī)范與驗(yàn)證計(jì)劃,,采用SystemVerilog語言搭建層次化測(cè)試平臺(tái),如圖2所示,。

002.jpg

  ARINC429收發(fā)器IP核測(cè)試平臺(tái)結(jié)構(gòu)自底向上為信號(hào)層,、命令層、功能層,、場(chǎng)景層和測(cè)試層等5個(gè)層次,。測(cè)試平臺(tái)的重用指的是驗(yàn)證環(huán)境的重用,即不同的測(cè)試案例能夠重用同一驗(yàn)證環(huán)境,。驗(yàn)證環(huán)境由包含配置器和發(fā)生器的場(chǎng)景層,、包含記分板與檢查器的功能層以及包含驅(qū)動(dòng)器、斷言和監(jiān)視器的命令層組成,。覆蓋率收集器通過收集統(tǒng)計(jì)代碼與功能點(diǎn)的覆蓋信息可以衡量測(cè)試在滿足驗(yàn)證計(jì)劃要求方面的進(jìn)展,。

  測(cè)試平臺(tái)的頂層是測(cè)試層,根據(jù)驗(yàn)證計(jì)劃開發(fā)不同的測(cè)試案例,,通過信箱(mailbox)將信息傳遞到場(chǎng)景層,;場(chǎng)景層中配置器為測(cè)試環(huán)境配置參數(shù),通過將參數(shù)傳遞給發(fā)生器和驅(qū)動(dòng)器實(shí)現(xiàn)環(huán)境參數(shù)的配置,發(fā)生器則根據(jù)收到的配置信息生成測(cè)試激勵(lì),;功能層包含記分板和檢查器,其中記分板主要包含參考模型,,參考模型的輸入為發(fā)生器生成的激勵(lì),,輸出傳遞到檢查器,檢查器通過對(duì)比記分板與監(jiān)視器的輸出信息來判斷待測(cè)設(shè)計(jì)正確與否,;命令層中驅(qū)動(dòng)器接收發(fā)生器生成的測(cè)試激勵(lì)與配置器的配置信息,,并將激勵(lì)驅(qū)動(dòng)到待測(cè)設(shè)計(jì)ARINC429收發(fā)器IP核,斷言和監(jiān)視器用于監(jiān)視DUT的相應(yīng)輸出,;最底層信號(hào)層中待測(cè)設(shè)計(jì)ARINC429收發(fā)器IP核接收驅(qū)動(dòng)器驅(qū)動(dòng)的測(cè)試激勵(lì),,并將輸出傳送到監(jiān)視器。

  層次化是測(cè)試平臺(tái)實(shí)現(xiàn)可重用的基本結(jié)構(gòu),,通過層次劃分,,將各驗(yàn)證組件按功能編成不同的類(class),便于重用,、修改與擴(kuò)展,。

  1.2.2 工程組織架構(gòu)

  本驗(yàn)證工程采用層次化的組織架構(gòu),工程組織架構(gòu)如圖3所示,。

003.jpg

  本驗(yàn)證實(shí)例中驗(yàn)證工程名為“ARINC_top”,,包含4個(gè)主要的一級(jí)結(jié)構(gòu),即待測(cè)設(shè)計(jì)(ARINC),、測(cè)試案例(Testcases),、測(cè)試平臺(tái)(Testbench)和待測(cè)設(shè)計(jì)的編譯庫文件(lib_files)。測(cè)試平臺(tái)(Testbench)包含測(cè)試環(huán)境(Env)與測(cè)試平臺(tái)執(zhí)行腳本(scripts)2個(gè)二級(jí)結(jié)構(gòu),。測(cè)試案例(Testcases)包含2個(gè)二級(jí)結(jié)構(gòu):直接測(cè)試(Direct)和隨機(jī)測(cè)試(Random),,測(cè)試案例均以類的形式設(shè)計(jì),在測(cè)試平臺(tái)的頂層,。測(cè)試平臺(tái)執(zhí)行腳本是以TCL語言編寫的擴(kuò)展名為.do的文件,,用于測(cè)試工程的文件組織與仿真進(jìn)度的自動(dòng)控制。

  相對(duì)于標(biāo)準(zhǔn)的層次化工程組織架構(gòu),,本架構(gòu)做了改進(jìn),。標(biāo)準(zhǔn)的層次化工程組織架構(gòu)中,頂層模塊中例化了環(huán)境類,,環(huán)境類中包含了測(cè)試用例,,這限制了添加和修改測(cè)試用例的靈活性,不利于測(cè)試平臺(tái)的重用,。本架構(gòu)將測(cè)試用例從測(cè)試平臺(tái)的結(jié)構(gòu)中分離出來,,用測(cè)試用例類代替驗(yàn)證環(huán)境類作為頂層的對(duì)象[8]。

  這種層次化的組織架構(gòu)為用戶提供了一個(gè)開發(fā)直接測(cè)試、隨機(jī)測(cè)試案例的可編程方法,,有利于在整個(gè)測(cè)試平臺(tái)結(jié)構(gòu)上開發(fā)測(cè)試案例,,實(shí)現(xiàn)測(cè)試平臺(tái)最大的可重用。

  1.2.3 關(guān)鍵技術(shù)

  在采用SystemVerilog語言實(shí)現(xiàn)ARINC429收發(fā)器IP核的可重用驗(yàn)證平臺(tái)時(shí),,使用了以下關(guān)鍵技術(shù):

  (1)接口及虛接口

  接口(Interface)簡(jiǎn)化了對(duì)端口信號(hào)的處理,,封裝了測(cè)試平臺(tái)各組件間通信所需的信號(hào),提高了設(shè)計(jì)可重用性,。

  在本驗(yàn)證實(shí)例的驅(qū)動(dòng)類(Driver)中使用了虛接口,,虛接口類型定義代碼如下:

  Typedef virtual if_arinc429.OUTP vif_429rx;

  Typedef virtual if_arinc429.INP vif_429tx;

  通過使用虛接口,不必對(duì)每個(gè)通道都編寫一個(gè)Driver,,而只需編寫一個(gè)驅(qū)動(dòng)類再將其例化多次即可,,這極大地簡(jiǎn)化了工作,提高了驗(yàn)證組件的可重用性,。

  (2)回調(diào)

  本測(cè)試平臺(tái)運(yùn)用了回調(diào)技術(shù)[9],,回調(diào)流程如圖4所示。

004.jpg

  驗(yàn)證實(shí)例在Driver類中運(yùn)用前回調(diào)技術(shù)[9]來為待測(cè)設(shè)計(jì)ARINC429收發(fā)器IP核注入故障(100個(gè)數(shù)據(jù)隨意丟棄1個(gè)),,實(shí)現(xiàn)ARINC429接收錯(cuò)誤的定向測(cè)試,,不修改其他測(cè)試代碼,實(shí)現(xiàn)了測(cè)試平臺(tái)的最大可重用,。

2 測(cè)試運(yùn)行及結(jié)果

  2.1 測(cè)試運(yùn)行

  整個(gè)設(shè)計(jì)的測(cè)試激勵(lì)主要由兩部分組成:由計(jì)算機(jī)通過串口發(fā)出的數(shù)據(jù),,以及向ARINC429 接收通道發(fā)送的數(shù)據(jù)。兩部分激勵(lì)是并行的,,所以整個(gè)驗(yàn)證計(jì)劃也是并行的,。先進(jìn)行定向測(cè)試,以保證驗(yàn)證過程具有一定的可復(fù)現(xiàn)性,;然后進(jìn)行隨機(jī)測(cè)試,,對(duì)待設(shè)計(jì)進(jìn)行充分驗(yàn)證。通過對(duì)設(shè)計(jì)需求的深入分析后,,得到如圖5所示的驗(yàn)證計(jì)劃,。

005.jpg

  使用Mentor Graphics的QuestaSim10.0c對(duì)ARINC429收發(fā)器IP核進(jìn)行仿真測(cè)試。根據(jù)驗(yàn)證計(jì)劃,,編寫了10個(gè)測(cè)試案例:(1)通道速率為高速的直接測(cè)試,;(2)通道速率為低速的直接測(cè)試;(3)發(fā)送循環(huán)數(shù)據(jù)的直接測(cè)試,;(4)發(fā)送立即數(shù)據(jù)的直接測(cè)試,;(5)發(fā)送速率錯(cuò)誤直接測(cè)試;(6)接收校驗(yàn)位錯(cuò)誤的數(shù)據(jù)直接測(cè)試,;(7)接收速率錯(cuò)誤的直接測(cè)試,,(8)最大速率下的流量測(cè)試,;(9)發(fā)送隨機(jī)測(cè)試;(10)接收隨機(jī)測(cè)試,。當(dāng)測(cè)試不同的測(cè)試案例時(shí),,執(zhí)行相應(yīng)的腳本,實(shí)現(xiàn)自動(dòng)化測(cè)試,。

  2.2 測(cè)試結(jié)果

  按照驗(yàn)證計(jì)劃,,先進(jìn)行定向測(cè)試,在測(cè)試平臺(tái)運(yùn)行了8個(gè)直接測(cè)試案例,,然后進(jìn)行隨機(jī)測(cè)試,在可重用測(cè)試平臺(tái)上運(yùn)行了2個(gè)隨機(jī)測(cè)試案例,。隨機(jī)測(cè)試中ARINC429接收隨機(jī)測(cè)試結(jié)果如圖6所示,。

006.jpg

  圖6(a)為測(cè)試仿真波形圖,圖中三角形指示斷言失敗,,因?yàn)檫@次接收隨機(jī)測(cè)試中,,發(fā)生器生成了校驗(yàn)位錯(cuò)誤的數(shù)據(jù),在ARINC429接收模塊中該數(shù)據(jù)字被舍棄,,斷言檢查器檢測(cè)到兩路輸入數(shù)據(jù)不一致,,即斷言失敗。這證明ARINC429收發(fā)器能按照設(shè)計(jì)要求舍棄錯(cuò)誤數(shù)據(jù),,正確處理數(shù)據(jù),。圖6(b)為代碼覆蓋率報(bào)告,rec429模塊與afifo模塊因?yàn)橥陚錉顟B(tài)機(jī)下的default語句無法覆蓋,,故代碼覆蓋率沒有達(dá)到100%,,其他模塊代碼覆蓋率均達(dá)到100%,功能覆蓋率達(dá)到100%,,符合測(cè)試要求,。測(cè)試結(jié)果說明了在完成定向測(cè)試后,在該測(cè)試平臺(tái)上能正常運(yùn)行隨機(jī)測(cè)試,,完全實(shí)現(xiàn)了測(cè)試平臺(tái)驗(yàn)證組件,、驗(yàn)證環(huán)境的可重用。

  為了提高驗(yàn)證效率,,本測(cè)試平臺(tái)還運(yùn)用約束隨機(jī)自動(dòng)產(chǎn)生測(cè)試集,,采用SVA斷言實(shí)現(xiàn)錯(cuò)誤的查找與快速定位,結(jié)合覆蓋率驅(qū)動(dòng)驗(yàn)證明確驗(yàn)證指標(biāo),。10個(gè)測(cè)試案例的測(cè)試結(jié)果說明本測(cè)試平臺(tái)完成了對(duì)ARINC429收發(fā)器IP核功能的高效驗(yàn)證,。

3 結(jié)束語

  本文以對(duì)ARINC429收發(fā)器IP核的驗(yàn)證為例,介紹了基于SystemVerilog的可重用測(cè)試平臺(tái)實(shí)現(xiàn),。在簡(jiǎn)要介紹ARINC429收發(fā)器的功能與設(shè)計(jì)之后,,詳細(xì)介紹了采用 SystemVerilog 實(shí)現(xiàn)收發(fā)器IP核的可重用測(cè)試平臺(tái)的層次化結(jié)構(gòu)、工程組織架構(gòu)以及技術(shù)方法;然后在驗(yàn)證計(jì)劃的指導(dǎo)下,,在該測(cè)試平臺(tái)上運(yùn)行定向測(cè)試和隨機(jī)測(cè)試共10個(gè)測(cè)試案例,,代碼覆蓋率與功能覆蓋率均達(dá)到100%。結(jié)合斷言,、覆蓋率驅(qū)動(dòng)驗(yàn)證等技術(shù)完成了對(duì)ARINC429收發(fā)器IP核高效的,、有效的功能驗(yàn)證。

  在實(shí)際項(xiàng)目應(yīng)用中,,本測(cè)試平臺(tái)不僅完成了對(duì)ARINC429收發(fā)器的功能驗(yàn)證,,在修改少許代碼后,還完成了對(duì)協(xié)議相似的ARINC629總線的驗(yàn)證,。實(shí)踐表明,,本測(cè)試平臺(tái)具有良好的可重用性。

  參考文獻(xiàn)

  [1] IEEE.IEEE standard for SystemVerilog-unified hardware design, specification, and verification language-IEEE [S].IEEE,,2009.

  [2] 謝崢,,王騰,雍珊珊,,等.一種基于UVM面向RISC CPU的

  可重用功能驗(yàn)證平臺(tái)[J].北京大學(xué)學(xué)報(bào)(自然科學(xué)版),,2014,50(2):221-227.

  [3] 劉芳,,謝崢,,連志斌,等.一種可重構(gòu)的通用總線接口驗(yàn)證平臺(tái)的研究及實(shí)現(xiàn)[J].電子器件,,2011,,34(3):350-354.

  [4] KEAVENEY M,MCMAHON A,,O’KEEFFE N,,et al.The development of advanced verification environments using System-Verilog[C].The 16th Signals and Systems Conference.ISSC 2008.Galway,Ireland,,2008.

  [5] 山蕊,,蔣林,李濤.基于SystemVerilog的可重用驗(yàn)證平臺(tái)[J].電子技術(shù)應(yīng)用,,2013,,39(5):128-131.

  [6] Aeronautical Radio.ARINC specification 429[S].AeronauticalRadio Inc,2012.

  [7] 王鵬,,邵偉,,姜承翔,等.基于ARINC629的層次化驗(yàn)證平臺(tái)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,,2014,,22(6):1827-1829.

  [8] 鐘文楓.SystemVerilog與功能驗(yàn)證[M].北京:機(jī)械工業(yè)出版社,,2010.

  [9] SPEAR C,TUMBUSH G.SystemVerilog for verification(3rd ed)[M].Springer,,2012.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。