寫testbench最最核心的部分就是發(fā)激勵,今天用一個簡單的示例來介紹如何在uvm里給RTL發(fā)激勵。
第一步,先來定義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的信號賦值。
隨機發(fā)一些激勵,這部分與純sv的寫法沒有差別。
仿真結果
-
存儲器
+關注
關注
38文章
7631瀏覽量
166333 -
仿真器
+關注
關注
14文章
1033瀏覽量
84903 -
RTL
+關注
關注
1文章
388瀏覽量
60627 -
UVM
+關注
關注
0文章
182瀏覽量
19422 -
Module
+關注
關注
0文章
72瀏覽量
13160
發(fā)布評論請先 登錄
華為深耕海外版圖 將在日本設立第二個研發(fā)中心
邵貝貝書中第二個例子的問題
請問為什么第二個周期更長?
如何使用ESP32并添加第二個無線電模塊?
如何為SPIFFS使用第二個SPI閃存芯片?
谷歌發(fā)布AndroidQ的第二個測試版 繼續(xù)對折疊屏適應
蘋果macOS Catalina 10.15.1第二個Beta今天發(fā)布
Zoom營收增幅可能連續(xù)第二個季度超過300%
ASM宣布在新加坡開設第二個車間
開發(fā)ATtiny微處理器編程器的第二個版本

評論