寫testbench最最核心的部分就是發激勵,今天用一個簡單的示例來介紹如何在uvm里給RTL發激勵。
第一步,先來定義interface,如下。
interface是sv的一個關鍵字,級別等同于module,所以與module是并列的,一般單獨寫一個文件。
第二步,在testbench里實例化interface,并連接interface與RTL。
既然interface與module同級,實例化時就不能忘記括號。由于大部分信息不需要引到interface端口上,所以看上起來有點不太像模塊例化。
第三步,把interface實例化對象傳遞到uvm。
在run_test()之前,通過uvm里的函數uvm_config_db::set()函數把interface存儲到指定的存儲路徑。
第四步,在uvm里讀取interface,并存儲到virtual interface里。
從名字上看,config_db是一種存儲配置信息的數據庫(類似全局變量,可以想象成一個關聯數組),要正確存儲和讀取數據,需要類型和存儲路徑同時正確。v_intf有點像是一個指針,把讀取的數據存到這個指針對應的存儲空間里。
第五步,驅動v_intf的信號。
先初始化所有的信號。由于virtual interface指向了前面實例化的interface,給virtual interface賦值,等同于給真實的interface的信號賦值。
隨機發一些激勵,這部分與純sv的寫法沒有差別。
仿真結果
-
存儲器
+關注
關注
38文章
7484瀏覽量
163772 -
仿真器
+關注
關注
14文章
1017瀏覽量
83726 -
RTL
+關注
關注
1文章
385瀏覽量
59764 -
UVM
+關注
關注
0文章
182瀏覽量
19167 -
Module
+關注
關注
0文章
68瀏覽量
12851
發布評論請先 登錄
相關推薦
評論