分享一個近期項目中遇到的函數調用問題。
略去定位過程和具體的業務細節,原問題的模型可以抽象為如下的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文章
4380瀏覽量
64845 -
UVM
+關注
關注
0文章
182瀏覽量
19538
原文標題:看看這個"UVM陷阱",你是不是也遇到過
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
LSM6DS3TRC FIFO模式,長時間運行\"卡死\"有人遇到過嗎
就是遇到一個問題,我進入fifo模式+中斷,FIFO_STATUS1 和FIFO_STATUS1 獲取未讀數據,發現不會更新了,遠遠沒有到達我設定的水閾,所以不知道問題出在那里,有人遇到過這個
發表于 06-08 15:08
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:擾動的焊接——在焊接點冷卻過程中焊錫移動,造成焊接表面起

芯片工藝的&quot;7nm&quot; 、&quot;5nm&quot;到底指什么?
近幾年,芯片產業越來越火熱,一些行業內的術語大家也聽得比較多了。那么工藝節點、制程是什么,"7nm" 、"5nm&qu

隧道管廊變壓器局放在線監測:為地下&amp;quot;電力心臟&amp;quot;裝上智能聽診器
文章由山東華科信息技術有限公司提供在城市的地下脈絡中,隧道管廊承載著電網的"主動脈",而變壓器堪稱其中的"動力心臟"。

電纜局部放電在線監測:守護電網安全的&amp;quot;黑科技&amp;quot;
文章由山東華科信息技術有限公司提供在萬家燈火的背后,有一張覆蓋全國的"能源神經網絡"晝夜不息地運轉。電纜作為電力輸送的"主動脈",其健康狀況直接

為什么GNSS/INS組合被譽為導航界的&amp;quot;黃金搭檔&amp;quot;?
在導航技術領域,GNSS(全球導航衛星系統)和INS(慣性導航系統)的結合,一直被業界譽為"黃金搭檔"。它們優勢互補,克服了單一系統的局限性,為高精度、高可靠性的導航提供了完美

光耦合器:新能源世界的&quot;綠色信使&quot;
在人類追求綠色能源的奇幻旅程中,有一個身披透明鎧甲的"光影使者"正在默默改寫能源史。它不是閃閃發光的太陽能板,也不是呼呼
評論