Testbench
內容來自啓芯-System Verilog視頻
==============================================================
目錄結構:
1、什麼是驗證?
2、驗證目標?
3、驗證過程
4、Testbench架構
5、Testbench搭建
6、個人總結
==============================================================
本章目標:
1、描述達到驗證目標的過程
2、創建System Verilogtestbench模板
3、編譯和仿真System Verilog testbench
1、什麼是驗證?
圖1、Transformations
從圖1可以看出,設計產品經歷了以下流程:
想法——>算法C模型——>架構設計——>RTL(功能驗證)——>Gate網表靜態時序分析——>GDSII後端製造——>ASIC(製造後的芯片測試)——>Product產品驗證
所以驗證是檢驗設計流程轉換步驟是否正確執行。
一般發者集中在Spec到Gate的過程中。
2、驗證目標?
圖2、驗證結果
設計人員的RTL代碼,由驗證團隊寫testbench驗證,testbench和RTL均有bug,所以有四種情況,當Testbench驗證通過後,如果驗證不充分,RTL代碼仍有可能有錯,這樣的情況交付流片後將造成重大損失。
所以,驗證的目標是確保設計與定義的功能的一致性。
3、驗證過程
圖3、驗證過程
搭建驗證環境(調試testbench)
Broad-Spectrum驗證,大規模驗證
Corner-case驗證,需考慮各種驗證條件
4、Testbench架構
圖4、UVM的Testbench架構
Testcase:測試案例
Configure:配置
Generator:產生激勵
Transactor:數據處理
Driver:驅動DUT,根據時序,協議完成行爲級的模型
Interface:Verilog中增加的接口
Monitor:監視數據
Self_Check:自檢
Coverage:覆蓋率統計,通過Coverage可以驅動Generator產生其他激勵
Verilog的testbench結構比較簡單,一般有DUT、Clock和testcase。SystemVerilog在Verilog的基礎上進行了interface的抽象,可參考IEEE-1800協議標準手冊
5、Testbench搭建
圖5、文件結構
以上是根據template寫出的文件,一般通過對DUT寫interface、testbench和testcase。
圖6、產生testbench文件結構
產生圖5以上文件結構
圖7、產生interface文件
圖8、定義interface端口
Interface實例的信號數據類型應爲logic。
圖9、testbench搭建
圖10、sampletestbench
圖11、驅動同步信號
非阻塞賦值
圖12、Monitor採樣信號
從設備採集信號。
圖13、頂層模塊(包含所有的文件例化)
圖14、編譯RTL仿真NTB
6、個人總結
本節視頻主要介紹如何生成完整的文件結構,包含Testbench文件、Interface文件、Testcase文件和DUT。