因為DUT是一個靜態(tài)的內(nèi)容,所以testbench理應也是靜態(tài)的,其作為uvm驗證環(huán)境和DUT的全局根結(jié)點。
module tb_top;
import uvm_pkg::*;
bit clk;
always #10 clk <= ~clk;
dut_if dut_if1 (clk);
dut_wrapper dut_wr0 (._if (dut_if1));
initial begin
uvm_config_db #(virtual dut_if)::set (null,"uvm_test_top","dut_if",dut_if1);
run_test ("base_test");
end
endmodule
上面是一個簡單的驗證平臺的tb_top示例.其中:
- tb_top 是一個靜態(tài)的module,驗證環(huán)境中所有的信息都可以從這里索引到。此時需要 import uvm_pkg:: * 才能識別一些uvm庫的內(nèi)容。
- 在tb_top需要生成驗證環(huán)境、DUT和接口都需要的時鐘和復位。因為驗證環(huán)境是動態(tài)的,無法在其中例化物理接口,所以需要采用uvm_config_db將物理interface的指針set給驗證環(huán)境中的virtual interface。
- 通過ru
n_test(“
base_test
”) 啟動
一個test_case。
Clock generation
一般的數(shù)字設計都會包含一個或者多個時鐘,同時設計可能會因為工藝等問題工作在不同的頻率下,所以時鐘生成最好是參數(shù)化的。
Reset Generation
和時鐘類似,復位也需要在testbench頂層實現(xiàn)。在許多數(shù)字設計中,復位分為 硬件復位和軟件復位 ,它們的復位方式不一樣,前者通過寄存器接口實現(xiàn),后者直接通過硬件復位接口實現(xiàn)。
和DUT interface一樣,時鐘和復位在驗證環(huán)境和DUT中都會用到,對應的賦值可以在tb_top中實現(xiàn),也可以在驗證環(huán)境中實現(xiàn)。
另外很多驗證環(huán)境都需要抽取DUT中的信號,可能是force,也可能是采樣DUT內(nèi)部信號。此時需要在testbench tb_top中將DUT信號賦值過去。
interface gen_if;
logic signals;
endinterface
module tb_top;
gen_if u_if0 ();
des u_des ( ... );
// Assign an internal net to a generic in
assign u_if0.signals = u_des.u_xyz.status;
endmodule
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
時鐘
+關(guān)注
關(guān)注
11文章
2000瀏覽量
135279 -
UVM
+關(guān)注
關(guān)注
0文章
183瀏覽量
20106 -
DUT
+關(guān)注
關(guān)注
0文章
194瀏覽量
13496
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
NVMe高速傳輸之擺脫XDMA設計18:UVM驗證平臺
抽象為 PCIeTLP 事務,因此為了方便的在事務層構(gòu)建復雜的測試用例,項目基于 UVM 搭建驗證平臺進行功能驗證。圖1 驗證
發(fā)表于 07-31 16:39
NVMe高速傳輸之擺脫XDMA設計23:UVM驗證平臺
抽象為 PCIeTLP 事務,因此為了方便的在事務層構(gòu)建復雜的測試用例,項目基于 UVM 搭建驗證平臺進行功能驗證。圖1 驗證
發(fā)表于 08-26 09:49
IC驗證"UVM驗證平臺"組成(三)
驗證用于找出DUT中的bug,這個過程通常是把DUT放入一個驗證平臺中來實現(xiàn)的。一個驗證平臺要實現(xiàn)如下基本功能:
發(fā)表于 12-02 15:21
IC驗證"一個簡單的UVM驗證平臺"是如何搭建的(六)
main_phase的聲明中,有一個uvm_phase類型的參數(shù)phase,在真正的驗證平臺 中,這個參數(shù)是不需要用戶理會的。本節(jié)的驗證
發(fā)表于 12-04 15:48
IC驗證"UVM驗證平臺加入factory機制"(六)
加入factory機制 上一節(jié)《IC驗證"一個簡單的UVM驗證平臺"是如何搭建的(五)》給出了一個只有driver、使用UVM搭建的
發(fā)表于 12-08 12:07
IC驗證“UVM驗證平臺加入objection機制和virtual interface機制“(七)
在上一節(jié)中,**《IC驗證"UVM驗證平臺加入factory機制"(六)》**雖然輸出了“main_phase is called”,但是“data is drived”并沒有
發(fā)表于 12-09 18:28
基于C的測試和驗證套件集成到常規(guī)UVM測試平臺的方法
Systemverilog [1]和 UVM [2]為驗證團隊提供結(jié)構(gòu)和規(guī)則。它使得在許多測試中能獲得一致的結(jié)果,并可以在團隊之間共享驗證。許多驗證團隊都在使用由C代碼編寫的
發(fā)表于 12-15 07:38
數(shù)字IC驗證之“什么是UVM”“UVM的特點”“UVM提供哪些資源”(2)連載中...
原文鏈接:https://zhuanlan.zhihu.com/p/345775995大家好,我是一哥,上章內(nèi)容主要講述兩個內(nèi)容,芯片驗證以及驗證計劃。那本章我們主要講述的內(nèi)容有介紹什么是uv
發(fā)表于 01-21 16:00
數(shù)字IC驗證之“典型的UVM平臺結(jié)構(gòu)”(3)連載中...
大家好,我是一哥,上章內(nèi)容我們介紹什么是uvm?uvm的特點以及uvm為用戶提供了哪些資源? 本章內(nèi)容我們來看一看一個典型的uvm驗證
發(fā)表于 01-22 15:32
數(shù)字IC驗證之“構(gòu)成uvm測試平臺的主要組件”(4)連載中...
大家好,我是一哥,上章一個典型的uvm驗證平臺應該是什么樣子的?從本章開始就正式進入uvm知識的學習。先一步一步搭建一個簡單的可運行的測試平臺
發(fā)表于 01-22 15:33
數(shù)字IC驗證之“搭建一個可以運行的uvm測試平臺”(5)連載中...
事物的控制,在智能代碼中前后有兩個if語句,這里先不用管,它的功能是控制驗證平臺何時結(jié)束。 在來看看repeat語句當中的內(nèi)容,repeat的語句中使用了uvm do這個uvm內(nèi)建的
發(fā)表于 01-26 10:05
什么是uvm?uvm的特點有哪些呢
大家好,我是一哥,上章內(nèi)容我們介紹什么是uvm?uvm的特點以及uvm為用戶提供了哪些資源?本章內(nèi)容我們來看一看一個典型的uvm驗證
發(fā)表于 02-14 06:46
UVM驗證平臺執(zhí)行硬件加速
。 本文所聚焦的技術(shù)手段是讓一個已有的UVM驗證平臺通過改變需求去執(zhí)行硬件加速。如果這些點在UVM環(huán)境開發(fā)過程中被考慮到,那么之后將環(huán)境遷移到硬件加速器作為一個性能選項將是一件較容易的
發(fā)表于 09-15 17:08
?14次下載
UVM驗證平臺頂層有什么作用
評論