說(shuō)明:這部分內(nèi)容比較零散,且很多不好理解,所以這里只能選擇性介紹一些內(nèi)容。
使用interface代替driver部分功能
方法:
- 在interface中可以定義任務(wù)與函數(shù),也可以使用always語(yǔ)句和initial語(yǔ)句,也可以實(shí)例化其他interface??捎闷渥鲆恍┑蛯哟蔚霓D(zhuǎn)換, 如8b10b轉(zhuǎn)換、 曼徹斯特編碼等。這些轉(zhuǎn)換動(dòng)作是與transaction完全無(wú)關(guān)的。
好處:
- 讓driver從底層繁雜的數(shù)據(jù)處理中解脫出來(lái), 更加專注于處理高層數(shù)據(jù)
- 有更多的數(shù)據(jù)出現(xiàn)在interface中, 這會(huì)對(duì)調(diào)試起到很大的幫助(因?yàn)閕nterface中的信號(hào)在波形文件中有記錄的)
可變時(shí)鐘的三種需求及對(duì)應(yīng)實(shí)現(xiàn)方法
- 在不同測(cè)試用例之間時(shí)鐘頻率不同, 但是在同一測(cè)試用例中保持不變
- 例如:HDMI協(xié)議中會(huì)依據(jù)圖像分辨率采用不同的時(shí)鐘
- 方法一:將時(shí)鐘獨(dú)立成一個(gè)文件,通過(guò)include不同的時(shí)鐘實(shí)現(xiàn)
- 方法二:在測(cè)試用例中使用config_db的set方法設(shè)置一個(gè)變量,然后在時(shí)鐘實(shí)現(xiàn)的地方使用get方法獲取該變量,將其作為時(shí)鐘周期。
- 在同一個(gè)測(cè)試用例中存在時(shí)鐘頻率變換的情況
- 例如:PLL過(guò)渡期前和過(guò)渡期后的時(shí)鐘是不一樣的
- 方法一:在測(cè)試用例中使用config_db的set方法隨著時(shí)間不同為時(shí)鐘周期變量設(shè)置不同值。
- 既關(guān)心過(guò)渡期前后的時(shí)鐘, 也關(guān)心PLL在過(guò)渡期的行為,即要求時(shí)鐘變量不止是簡(jiǎn)單的可變,而且是正弦變化的。
- 例如:關(guān)心PLL過(guò)渡期內(nèi)時(shí)鐘行為,實(shí)際工作中時(shí)鐘頻率也是存在一定抖動(dòng)的
- 方法一:建立一個(gè)clk的interface,然后通過(guò)config_db將對(duì)clk的驅(qū)動(dòng)放在一個(gè)時(shí)鐘component中,這樣的話,要實(shí)現(xiàn)任意對(duì)clk的驅(qū)動(dòng)只需要重載這個(gè)時(shí)鐘component即可。
layer sequence的引入
以太網(wǎng)包、IP包、 UDP包、 TCP包,數(shù)據(jù)是層層封裝的,為了提高測(cè)試用例的可重用性,方法有:
- 方法一: sequence中調(diào)用子sequence ——將與ip相關(guān)的代碼寫成一個(gè)函數(shù), 而與mac相關(guān)的代碼寫成另外一個(gè)函數(shù), 將這些基本的函數(shù)放在base_sequence中。在新建測(cè)試用例時(shí), 從base_sequence派生新的sequence, 并調(diào)用之前寫好的函數(shù)。---- 感覺(jué)更適合并列關(guān)系的測(cè)試用例
- 方法二: 使用layer sequence ——一個(gè)sequence負(fù)責(zé)產(chǎn)生ip_transaction, 另外sequence負(fù)責(zé)產(chǎn)生my_transaction, 前者將產(chǎn)生的ip_transaction交給后者。--- 感覺(jué)更適合包含關(guān)系的測(cè)試用例
layer sequence的示例

聚合參數(shù)的優(yōu)勢(shì)與問(wèn)題
優(yōu)勢(shì):
- 可以將interface也放入此聚合參數(shù)類中
- 使用聚合類減少了config_db::set的使用, 也會(huì)大大降低出錯(cuò)的概率
問(wèn)題:
- 本質(zhì)上是將一些屬于某個(gè)uvm_component的變量變成對(duì)所有的uvm_component可見(jiàn)
- 在一定程度上降低了驗(yàn)證平臺(tái)的可重用性
總結(jié):
- 在參數(shù)聚合程度/粒度上需要權(quán)衡:更好方便的使用vs代碼可重用性
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
HDMI接口
+關(guān)注
關(guān)注
1文章
149瀏覽量
35986 -
UVM
+關(guān)注
關(guān)注
0文章
183瀏覽量
20108 -
PLL電路
+關(guān)注
關(guān)注
0文章
94瀏覽量
7143 -
TCP通信
+關(guān)注
關(guān)注
0文章
146瀏覽量
4895
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
IC驗(yàn)證"為什么要學(xué)習(xí)UVM呢"
驗(yàn)證的基本常識(shí),將會(huì)散落在各個(gè)章節(jié)之間。UVM的一些高級(jí)功能,如何靈活地使用sequence機(jī)制、factory機(jī)制等。如何編寫代碼才能保證可重用性??芍赜眯允悄壳癐C界提及最多的幾個(gè)詞匯之一,它包含
發(fā)表于 12-01 15:09
數(shù)字IC驗(yàn)證之“什么是UVM”“UVM的特點(diǎn)”“UVM提供哪些資源”(2)連載中...
原文鏈接:https://zhuanlan.zhihu.com/p/345775995大家好,我是一哥,上章內(nèi)容主要講述兩個(gè)內(nèi)容,芯片驗(yàn)證以及驗(yàn)證計(jì)劃。那本章我們主要講述的內(nèi)容有介紹什么是uvm
發(fā)表于 01-21 16:00
什么是uvm?uvm的特點(diǎn)有哪些呢
大家好,我是一哥,上章內(nèi)容我們介紹什么是uvm?uvm的特點(diǎn)以及uvm為用戶提供了哪些資源?本章內(nèi)容我們來(lái)看一看一個(gè)典型的uvm驗(yàn)證平臺(tái)應(yīng)該是什么樣子的,來(lái)看一個(gè)典型的
發(fā)表于 02-14 06:46
談?wù)?b class='flag-5'>UVM中的uvm_info打印
uvm_info宏的定義如下: `define uvm_info(ID,MSG,VERBOSITY) \ begin \ if (uvm_report_enabled(VERBOSITY
發(fā)表于 03-17 16:41
UVM中seq.start()和default_sequence執(zhí)行順序
1. 問(wèn)題 假如用以下兩種方式啟動(dòng)sequence,方法1用sequence的start()方法啟動(dòng)seq1,方法2用UVM的default_sequence機(jī)制啟動(dòng)seq2。那么seq1
發(fā)表于 04-04 17:15
基于UVM的驗(yàn)證平臺(tái)設(shè)計(jì)研究
基于UVM的驗(yàn)證平臺(tái)設(shè)計(jì)研究_王國(guó)軍
發(fā)表于 01-07 19:00
?4次下載
Modelsim uvm庫(kù)編譯及執(zhí)行
第一句話是設(shè)置uvm環(huán)境變量,指定uvm的dpi位置。
第二句話是創(chuàng)建work工作目錄。
第三句話是編譯源文件,并且通過(guò)-L指定幾個(gè)編譯庫(kù)。
第三句是執(zhí)行仿真,調(diào)用uvm庫(kù)uvm
什么是UVM environment?
UVM environment**包含多個(gè)可重用的驗(yàn)證組件,并根據(jù)test case的需求進(jìn)行相應(yīng)的配置。例如,UVM environment可能具有多個(gè)agent(對(duì)應(yīng)不同的interface)、scoreboard、functional coverage collec
UVM driver和sequencer的通信
sequencer生成激勵(lì)數(shù)據(jù),并將其傳遞給driver執(zhí)行。UVM類庫(kù)提供了uvm_sequencer基類,其參數(shù)為request和response數(shù)據(jù)類型。
UVM中uvm_config_db機(jī)制背后的大功臣
本次講一下UVM中的uvm_config_db,在UVM中提供了一個(gè)內(nèi)部數(shù)據(jù)庫(kù),可以在其中存儲(chǔ)給定名稱下的值,之后可以由其它TB組件去檢索。
UVM中uvm_config_db機(jī)制背后的大功臣
本次講一下UVM中的uvm_config_db,在UVM中提供了一個(gè)內(nèi)部數(shù)據(jù)庫(kù),可以在其中存儲(chǔ)給定名稱下的值,之后可以由其它TB組件去檢索。
一文詳解UVM設(shè)計(jì)模式
本篇是對(duì)UVM設(shè)計(jì)模式 ( 二 ) 參數(shù)化類、靜態(tài)變量/方法/類、單例模式、UVM_ROOT、工廠模式、UVM_FACTORY[1]中單例模式的補(bǔ)充,分析靜態(tài)類的使用,UVM中資源池的
UVM高級(jí)應(yīng)用
評(píng)論