System Verilog視頻學習筆記(2)- Testbench

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驗證,需考慮各種驗證條件

 

4Testbench架構

圖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協議標準手冊

 

5Testbench搭建

圖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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章