寫testbench最最核心的部分就是發(fā)激勵(lì),今天用一個(gè)簡單的示例來介紹如何在uvm里給RTL發(fā)激勵(lì)。
第一步,先來定義interface,如下。
interface是sv的一個(gè)關(guān)鍵字,級別等同于module,所以與module是并列的,一般單獨(dú)寫一個(gè)文件。
第二步,在testbench里實(shí)例化interface,并連接interface與RTL。
既然interface與module同級,實(shí)例化時(shí)就不能忘記括號。由于大部分信息不需要引到interface端口上,所以看上起來有點(diǎn)不太像模塊例化。
第三步,把interface實(shí)例化對象傳遞到uvm。
在run_test()之前,通過uvm里的函數(shù)uvm_config_db::set()函數(shù)把interface存儲(chǔ)到指定的存儲(chǔ)路徑。
第四步,在uvm里讀取interface,并存儲(chǔ)到virtual interface里。
從名字上看,config_db是一種存儲(chǔ)配置信息的數(shù)據(jù)庫(類似全局變量,可以想象成一個(gè)關(guān)聯(lián)數(shù)組),要正確存儲(chǔ)和讀取數(shù)據(jù),需要類型和存儲(chǔ)路徑同時(shí)正確。v_intf有點(diǎn)像是一個(gè)指針,把讀取的數(shù)據(jù)存到這個(gè)指針對應(yīng)的存儲(chǔ)空間里。
第五步,驅(qū)動(dòng)v_intf的信號。
先初始化所有的信號。由于virtual interface指向了前面實(shí)例化的interface,給virtual interface賦值,等同于給真實(shí)的interface的信號賦值。
隨機(jī)發(fā)一些激勵(lì),這部分與純sv的寫法沒有差別。
仿真結(jié)果
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7653瀏覽量
167423 -
仿真器
+關(guān)注
關(guān)注
14文章
1037瀏覽量
85419 -
RTL
+關(guān)注
關(guān)注
1文章
389瀏覽量
61130 -
UVM
+關(guān)注
關(guān)注
0文章
182瀏覽量
19549 -
Module
+關(guān)注
關(guān)注
0文章
72瀏覽量
13255
發(fā)布評論請先 登錄
華為深耕海外版圖 將在日本設(shè)立第二個(gè)研發(fā)中心
邵貝貝書中第二個(gè)例子的問題
請問為什么第二個(gè)周期更長?
如何使用ESP32并添加第二個(gè)無線電模塊?
如何為SPIFFS使用第二個(gè)SPI閃存芯片?
電腦第二個(gè)硬盤怎么裝
谷歌發(fā)布AndroidQ的第二個(gè)測試版 繼續(xù)對折疊屏適應(yīng)
蘋果macOS Catalina 10.15.1第二個(gè)Beta今天發(fā)布
Zoom營收增幅可能連續(xù)第二個(gè)季度超過300%
ASM宣布在新加坡開設(shè)第二個(gè)車間
開發(fā)ATtiny微處理器編程器的第二個(gè)版本

評論