分享一个近期项目中遇到的函数调用问题。
略去定位过程和具体的业务细节,原问题的模型可以抽象为如下的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文章
4423浏览量
68052 -
UVM
+关注
关注
0文章
183浏览量
20125
原文标题:看看这个"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°拾音,适配多种距离
选EtherCAT模块,别只看价格,先看"体检报告"
±8kV静电、±2kV浪涌、-42℃极寒、1500V高压—这不是极限运动,而是DPort-ECT模块的出厂"必修课"。本文详解工业级EtherCAT从站如何通过严苛测试关
从"替代人力"到"智能协同":履带式巡检机器人的产业跃迁
2026年的工业智能化转型浪潮中,一个显著的趋势正在形成——工业巡检机器人正从单纯的"人力替代工具"升级为具备感知、决策与协同能力的"智能体"。
看看这个"UVM陷阱",你是不是也遇到过
评论