分享一個近期項目中遇到的函數調用問題。
略去定位過程和具體的業務細節,原問題的模型可以抽象為如下的demo:
importuvm_pkg::*;
`include"uvm_macros.svh"
classtestextendsuvm_test;
`uvm_component_utils(test)
virtualtaskrun();
bit[3:0]run_cnt;
run_cnt++;
$display("run_cnt=%0d,enterrun@%t",run_cnt,$time);
//othercode
endtask
virtualtaskmain_phase(uvm_phasephase);
super.main_phase(phase);
phase.raise_objection(this);
run();
phase.drop_objection(this);
endtask
functionnew(stringname="test",uvm_componentparent=null);
super.new(name,parent);
endfunction
endclass
programtb_top;
initialbegin
run_test("test");
end
endprogram
設計一個run函數用于處理某些業務邏輯,并在UVC的main_phase中調用。看似簡單的邏輯,運行仿真后得到如下的信息:

run被調用了兩次!
.........................
.........................
如果你也一時間想不到原因,可以參考下面的原因分析。
原因如下:
-
翻閱UVM源碼就會發現,在uvm_component中,存在一個默認的run函數。

-
UVM的phase機制,run_phase和main_phase,reset_phase等其余耗時的phase是并行運行的。而默認的run_phase會調用run函數。

- 在上述代碼的0時刻,默認的run_phase調用一次run函數,而main_phase也調用了一次run函數。
因此從uvm_component擴展的UVC中,盡量不要使用run函數,使用其他命名方式。
審核編輯 :李倩
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
函數
+關注
關注
3文章
4417瀏覽量
67521 -
UVM
+關注
關注
0文章
183瀏覽量
20018
原文標題:看看這個"UVM陷阱",你是不是也遇到過
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
IC驗證"UVM驗證平臺加入factory機制"(六)
加入factory機制 上一節《IC驗證"一個簡單的UVM驗證平臺"是如何搭建的(五)》給出了一個只有driver、使用UVM搭建的驗證平臺。嚴格來說這根本就不
發表于 12-08 12:07
教你如何搭建淺層神經網絡"Hello world"
作為圖像識別與機器視覺界的 "hello world!" ,MNIST ("Modified National Institute of Standards and Technology&
"STM32F0 Error: Flash Download failed - ""Cortex-M0""解決"
開發工具CUbemx + Keil uVision5(MDK V5)錯誤現象在STM32F0燒錄程序是出現了Error: Flash Download failed - &quot
發表于 12-01 12:06
?34次下載
這17種焊接陷阱,你遇到過多少?
良好的焊接是保證電路穩定持久工作的前提。下面給出了常見到的焊接缺陷。看看你遇到過多少種?焊接中的常見問題▲陷阱1:錫珠▲陷阱2:擾動的焊接——在焊接點冷卻過程中焊錫移動,造成焊接表面起
這17種焊接陷阱,你遇到過多少?
良好的焊接是保證電路穩定持久工作的前提。下面給出了常見到的焊接缺陷。看看你遇到過多少種?焊接中的常見問題▲陷阱1:錫珠▲陷阱2:擾動的焊接——在焊接點冷卻過程中焊錫移動,造成焊接表面起
【電路設計】這17種焊接陷阱,你遇到過多少?
良好的焊接是保證電路穩定持久工作的前提。下面給出了常見到的焊接缺陷。看看你遇到過多少種?焊接中的常見問題▲陷阱1:錫珠▲陷阱2:擾動的焊接——在焊接點冷卻過程中焊錫移動,造成焊接表面起
芯片工藝的"7nm" 、"5nm"到底指什么?
近幾年,芯片產業越來越火熱,一些行業內的術語大家也聽得比較多了。那么工藝節點、制程是什么,"7nm" 、"5nm&qu
隧道管廊變壓器局放在線監測:為地下"電力心臟"裝上智能聽診器
文章由山東華科信息技術有限公司提供在城市的地下脈絡中,隧道管廊承載著電網的"主動脈",而變壓器堪稱其中的"動力心臟"。
電纜局部放電在線監測:守護電網安全的"黑科技"
文章由山東華科信息技術有限公司提供在萬家燈火的背后,有一張覆蓋全國的"能源神經網絡"晝夜不息地運轉。電纜作為電力輸送的"主動脈",其健康狀況直接
為什么變頻器一開,監控畫面就"雪花"?
當你的工廠監控畫面總是"雪花"閃爍,變頻器一啟動就跳線,你是不是以為是攝像頭老化了?其實,90%的這類問題都是變頻器諧波在作怪!這
這些 “聽不清” 的尷尬,你是否也遇到過?
AN-93雙麥降噪遠場拾音模塊通過三大核心優勢解決"聽不清"痛點:1)36dB深度降噪,智能過濾人聲與噪音;2)7米遠場+360°拾音,適配多種距離
L3試點落地,和芯星通如何成為車企突圍的"隱形守護者"?
當長安汽車與北汽極狐拿到中國首批L3級自動駕駛準入許可的那一刻,整個產業鏈等待多年的"靴子"終于落地。在這個責任主體從駕駛員轉向車企的關鍵轉折下,系統可靠性成為真正的&qu
選EtherCAT模塊,別只看價格,先看"體檢報告"
±8kV靜電、±2kV浪涌、-42℃極寒、1500V高壓—這不是極限運動,而是DPort-ECT模塊的出廠"必修課"。本文詳解工業級EtherCAT從站如何通過嚴苛測試關
從"替代人力"到"智能協同":履帶式巡檢機器人的產業躍遷
2026年的工業智能化轉型浪潮中,一個顯著的趨勢正在形成——工業巡檢機器人正從單純的"人力替代工具"升級為具備感知、決策與協同能力的"智能體"。
看看這個"UVM陷阱",你是不是也遇到過
評論