• <samp id="kguow"></samp>
  • <menu id="kguow"></menu>
  • <samp id="kguow"><sup id="kguow"></sup></samp>
  • 《電子技術應用》
    您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于SystemVerilog可重用測試平臺的實現
    基于SystemVerilog可重用測試平臺的實現
    2015年電子技術應用第2期
    王 鵬1,劉萬和2,劉 銳2,田 毅1
    1.中國民航大學 民用航空器適航審定技術與管理研究中心, 天津市民用航空器適航與維修重點實驗室,天津300300; 2.中國民航大學 安全科學與工程學院,天津300300
    摘要: 對于中小型設計,傳統的驗證效率低、可重用性差,而基于方法學的高級驗證測試平臺搭建較繁瑣,驗證流程不太靈活。以ARINC429收發器IP核為驗證對象,采用SystemVerilog語言,通過層次化設計,改善工程組織架構,運用虛接口與回調等關鍵技術,實現了一種可重用測試平臺。將不同的測試案例在測試平臺上運行,結合斷言與覆蓋率驅動等驗證技術完成了對ARINC429收發器IP核的功能驗證,代碼覆蓋率和功能覆蓋率均達到100%。實踐表明,該測試平臺具有良好的可重用性、易操作性,驗證效率較高。
    中圖分類號: TN402
    文獻標識碼: A
    文章編號: 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 引言

      隨著集成電路設計復雜性的增加,驗證的難度也日益加大。傳統的基于Verilog的驗證效率低、可重用性差,為此,工業界推出了具有面向對象特性、支持約束隨機與斷言等功能的標準化硬件描述與驗證語言SystemVerilog[1]。

      對SoC等大型設計的驗證多采用基于方法學的驗證進行,文獻[2]基于UVM建立測試平臺對RISC CPU進行驗證,充分體現了基于方法學的驗證對于大型設計的高效性。對中小型設計的驗證,相對于基于方法學搭建的測試平臺,基于SystemVerilog搭建的測試平臺更具靈活性、易操作性[3]。文獻[4]基于SystemVerilog開發高級驗證環境,實現了測試平臺在定向測試和隨機測試的重用,但對驗證環境的配置實現介紹較少;文獻[5]著重介紹了可重用測試平臺的層次化結構及相應的驗證組件,但缺乏對實現可重用性的關鍵技術的討論。本文以層次化思想為指導,采用SystemVerilog語言實現可重用測試平臺。

    1 可重用測試平臺實現

      1.1 ARINC429收發器IP核簡介

      在現代飛機上,多采用ARINC429總線進行通信。根據ARINC429總線規范[6],設計ARINC429收發器,實現上位機與機載設備的通信,并將其IP化,便于復用。ARINC429收發器采用自頂向下的模塊化設計,設計框圖如圖1所示。

    001.jpg

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

      1.2 可重用測試平臺實現

      1.2.1 測試平臺層次化[7]

      傳統的采用Verilog實現的測試平臺,設計者難以對測試環境進行分層設計,往往將大部分測試組件放在一個大的文件中,這使得測試代碼難以維護、復用和擴展。所以ARINC429收發器IP核的測試平臺引入驗證方法學中層次化的思想,結合設計規范與驗證計劃,采用SystemVerilog語言搭建層次化測試平臺,如圖2所示。

    002.jpg

      ARINC429收發器IP核測試平臺結構自底向上為信號層、命令層、功能層、場景層和測試層等5個層次。測試平臺的重用指的是驗證環境的重用,即不同的測試案例能夠重用同一驗證環境。驗證環境由包含配置器和發生器的場景層、包含記分板與檢查器的功能層以及包含驅動器、斷言和監視器的命令層組成。覆蓋率收集器通過收集統計代碼與功能點的覆蓋信息可以衡量測試在滿足驗證計劃要求方面的進展。

      測試平臺的頂層是測試層,根據驗證計劃開發不同的測試案例,通過信箱(mailbox)將信息傳遞到場景層;場景層中配置器為測試環境配置參數,通過將參數傳遞給發生器和驅動器實現環境參數的配置,發生器則根據收到的配置信息生成測試激勵;功能層包含記分板和檢查器,其中記分板主要包含參考模型,參考模型的輸入為發生器生成的激勵,輸出傳遞到檢查器,檢查器通過對比記分板與監視器的輸出信息來判斷待測設計正確與否;命令層中驅動器接收發生器生成的測試激勵與配置器的配置信息,并將激勵驅動到待測設計ARINC429收發器IP核,斷言和監視器用于監視DUT的相應輸出;最底層信號層中待測設計ARINC429收發器IP核接收驅動器驅動的測試激勵,并將輸出傳送到監視器。

      層次化是測試平臺實現可重用的基本結構,通過層次劃分,將各驗證組件按功能編成不同的類(class),便于重用、修改與擴展。

      1.2.2 工程組織架構

      本驗證工程采用層次化的組織架構,工程組織架構如圖3所示。

    003.jpg

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

      相對于標準的層次化工程組織架構,本架構做了改進。標準的層次化工程組織架構中,頂層模塊中例化了環境類,環境類中包含了測試用例,這限制了添加和修改測試用例的靈活性,不利于測試平臺的重用。本架構將測試用例從測試平臺的結構中分離出來,用測試用例類代替驗證環境類作為頂層的對象[8]。

      這種層次化的組織架構為用戶提供了一個開發直接測試、隨機測試案例的可編程方法,有利于在整個測試平臺結構上開發測試案例,實現測試平臺最大的可重用。

      1.2.3 關鍵技術

      在采用SystemVerilog語言實現ARINC429收發器IP核的可重用驗證平臺時,使用了以下關鍵技術:

      (1)接口及虛接口

      接口(Interface)簡化了對端口信號的處理,封裝了測試平臺各組件間通信所需的信號,提高了設計可重用性。

      在本驗證實例的驅動類(Driver)中使用了虛接口,虛接口類型定義代碼如下:

      Typedef virtual if_arinc429.OUTP vif_429rx;

      Typedef virtual if_arinc429.INP vif_429tx;

      通過使用虛接口,不必對每個通道都編寫一個Driver,而只需編寫一個驅動類再將其例化多次即可,這極大地簡化了工作,提高了驗證組件的可重用性。

      (2)回調

      本測試平臺運用了回調技術[9],回調流程如圖4所示。

    004.jpg

      驗證實例在Driver類中運用前回調技術[9]來為待測設計ARINC429收發器IP核注入故障(100個數據隨意丟棄1個),實現ARINC429接收錯誤的定向測試,不修改其他測試代碼,實現了測試平臺的最大可重用。

    2 測試運行及結果

      2.1 測試運行

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

    005.jpg

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

      2.2 測試結果

      按照驗證計劃,先進行定向測試,在測試平臺運行了8個直接測試案例,然后進行隨機測試,在可重用測試平臺上運行了2個隨機測試案例。隨機測試中ARINC429接收隨機測試結果如圖6所示。

    006.jpg

      圖6(a)為測試仿真波形圖,圖中三角形指示斷言失敗,因為這次接收隨機測試中,發生器生成了校驗位錯誤的數據,在ARINC429接收模塊中該數據字被舍棄,斷言檢查器檢測到兩路輸入數據不一致,即斷言失敗。這證明ARINC429收發器能按照設計要求舍棄錯誤數據,正確處理數據。圖6(b)為代碼覆蓋率報告,rec429模塊與afifo模塊因為完備狀態機下的default語句無法覆蓋,故代碼覆蓋率沒有達到100%,其他模塊代碼覆蓋率均達到100%,功能覆蓋率達到100%,符合測試要求。測試結果說明了在完成定向測試后,在該測試平臺上能正常運行隨機測試,完全實現了測試平臺驗證組件、驗證環境的可重用。

      為了提高驗證效率,本測試平臺還運用約束隨機自動產生測試集,采用SVA斷言實現錯誤的查找與快速定位,結合覆蓋率驅動驗證明確驗證指標。10個測試案例的測試結果說明本測試平臺完成了對ARINC429收發器IP核功能的高效驗證。

    3 結束語

      本文以對ARINC429收發器IP核的驗證為例,介紹了基于SystemVerilog的可重用測試平臺實現。在簡要介紹ARINC429收發器的功能與設計之后,詳細介紹了采用 SystemVerilog 實現收發器IP核的可重用測試平臺的層次化結構、工程組織架構以及技術方法;然后在驗證計劃的指導下,在該測試平臺上運行定向測試和隨機測試共10個測試案例,代碼覆蓋率與功能覆蓋率均達到100%。結合斷言、覆蓋率驅動驗證等技術完成了對ARINC429收發器IP核高效的、有效的功能驗證。

      在實際項目應用中,本測試平臺不僅完成了對ARINC429收發器的功能驗證,在修改少許代碼后,還完成了對協議相似的ARINC629總線的驗證。實踐表明,本測試平臺具有良好的可重用性。

      參考文獻

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

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

      可重用功能驗證平臺[J].北京大學學報(自然科學版),2014,50(2):221-227.

      [3] 劉芳,謝崢,連志斌,等.一種可重構的通用總線接口驗證平臺的研究及實現[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的可重用驗證平臺[J].電子技術應用,2013,39(5):128-131.

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

      [7] 王鵬,邵偉,姜承翔,等.基于ARINC629的層次化驗證平臺設計[J].計算機測量與控制,2014,22(6):1827-1829.

      [8] 鐘文楓.SystemVerilog與功能驗證[M].北京:機械工業出版社,2010.

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


    此內容為AET網站原創,未經授權禁止轉載。
    玩弄办公室美人妻,乱人伦视频中文字幕在线,女人咬男人大ji巴免费视频
  • <samp id="kguow"></samp>
  • <menu id="kguow"></menu>
  • <samp id="kguow"><sup id="kguow"></sup></samp>