0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

看看这个"UVM陷阱",你是不是也遇到过

sanyue7758 来源:处芯积律 2023-05-08 10:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

分享一个近期项目中遇到的函数调用问题。

略去定位过程和具体的业务细节,原问题的模型可以抽象为如下的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中调用。看似简单的逻辑,运行仿真后得到如下的信息:

ec20df3a-ed42-11ed-90ce-dac502259ad0.png

run被调用了两次!

.........................

.........................

如果你也一时间想不到原因,可以参考下面的原因分析。

原因如下:

  1. 翻阅UVM源码就会发现,在uvm_component中,存在一个默认的run函数。

    ec3cdfaa-ed42-11ed-90ce-dac502259ad0.png

  2. UVM的phase机制,run_phase和main_phase,reset_phase等其余耗时的phase是并行运行的。而默认的run_phase会调用run函数。

    ec65f20a-ed42-11ed-90ce-dac502259ad0.png

  3. 在上述代码的0时刻,默认的run_phase调用一次run函数,而main_phase也调用了一次run函数。

因此从uvm_component扩展的UVC中,尽量不要使用run函数,使用其他命名方式。


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4423

    浏览量

    68052
  • UVM
    UVM
    +关注

    关注

    0

    文章

    183

    浏览量

    20125

原文标题:看看这个"UVM陷阱",你是不是也遇到过

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    IC验证"UVM验证平台加入factory机制"(六)

      加入factory机制 上一节《IC验证"一个简单的UVM验证平台"是如何搭建的(五)》给出了一个只有driver、使用UVM搭建的验证平台。严格来说这根本就不
    发表于 12-08 12:07

    都知道RK3288编译遇到过哪些问题吗

    都知道RK3288编译遇到过哪些问题吗?
    发表于 03-04 07:22

    教你如何搭建浅层神经网络"Hello world"

    作为图像识别与机器视觉界的 "hello world!" ,MNIST ("Modified National Institute of Standards and Technology&
    的头像 发表于 12-10 18:35 1731次阅读

    "STM32F0 Error: Flash Download failed - ""Cortex-M0""解决"

    开发工具CUbemx + Keil uVision5(MDK V5)错误现象在STM32F0烧录程序是出现了Error: Flash Download failed - &quot
    发表于 12-01 12:06 34次下载
    &<b class='flag-5'>quot</b>;STM32F0 Error: Flash Download failed  -  &<b class='flag-5'>quot</b>;&<b class='flag-5'>quot</b>;Cortex-M0&<b class='flag-5'>quot</b>;&<b class='flag-5'>quot</b>;解决&<b class='flag-5'>quot</b>;

    这17种焊接陷阱遇到过多少?

    良好的焊接是保证电路稳定持久工作的前提。下面给出了常见到的焊接缺陷。看看遇到过多少种?焊接中的常见问题▲陷阱1:锡珠▲陷阱2:扰动的焊接——在焊接点冷却过程中焊锡移动,造成焊接表面起
    的头像 发表于 04-14 09:39 1680次阅读
    这17种焊接<b class='flag-5'>陷阱</b>,<b class='flag-5'>你</b><b class='flag-5'>遇到过</b>多少?

    这17种焊接陷阱遇到过多少?

    良好的焊接是保证电路稳定持久工作的前提。下面给出了常见到的焊接缺陷。看看遇到过多少种?焊接中的常见问题▲陷阱1:锡珠▲陷阱2:扰动的焊接——在焊接点冷却过程中焊锡移动,造成焊接表面起
    的头像 发表于 04-14 09:37 1704次阅读
    这17种焊接<b class='flag-5'>陷阱</b>,<b class='flag-5'>你</b><b class='flag-5'>遇到过</b>多少?

    【广凌房产】高校公用房管理中的这些问题,遇到过吗?

    高校公用房属于国有资产的一部分,但管理过程中遇到各种困难,以下这些问题遇到过吗?
    的头像 发表于 05-30 11:15 1279次阅读
    【广凌房产】高校公用房管理中的这些问题,<b class='flag-5'>你</b><b class='flag-5'>遇到过</b>吗?

    【电路设计】这17种焊接陷阱遇到过多少?

    良好的焊接是保证电路稳定持久工作的前提。下面给出了常见到的焊接缺陷。看看遇到过多少种?焊接中的常见问题▲陷阱1:锡珠▲陷阱2:扰动的焊接——在焊接点冷却过程中焊锡移动,造成焊接表面起
    的头像 发表于 05-24 09:27 1680次阅读
    【电路设计】这17种焊接<b class='flag-5'>陷阱</b>,<b class='flag-5'>你</b><b class='flag-5'>遇到过</b>多少?

    芯片工艺的&amp;quot;7nm&amp;quot; 、&amp;quot;5nm&amp;quot;到底指什么?

    近几年,芯片产业越来越火热,一些行业内的术语大家听得比较多了。那么工艺节点、制程是什么,&quot;7nm&quot; 、&quot;5nm&qu
    的头像 发表于 07-28 17:34 1.3w次阅读
    芯片工艺的&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;7nm&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>; 、&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;5nm&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;到底指什么?

    隧道管廊变压器局放在线监测:为地下&amp;amp;quot;电力心脏&amp;amp;quot;装上智能听诊器

    文章由山东华科信息技术有限公司提供在城市的地下脉络中,隧道管廊承载着电网的&quot;主动脉&quot;,而变压器堪称其中的&quot;动力心脏&quot;。
    的头像 发表于 04-09 16:37 1080次阅读
    隧道管廊变压器局放在线监测:为地下&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;电力心脏&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;装上智能听诊器

    电缆局部放电在线监测:守护电网安全的&amp;amp;quot;黑科技&amp;amp;quot;

    文章由山东华科信息技术有限公司提供在万家灯火的背后,有一张覆盖全国的&quot;能源神经网络&quot;昼夜不息地运转。电缆作为电力输送的&quot;主动脉&quot;,其健康状况直接
    的头像 发表于 04-14 18:12 1179次阅读
    电缆局部放电在线监测:守护电网安全的&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;黑科技&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;

    为什么变频器一开,监控画面就&amp;amp;quot;雪花&amp;amp;quot;?

    当你的工厂监控画面总是&quot;雪花&quot;闪烁,变频器一启动就跳线,是不是以为是摄像头老化了?其实,90%的这类问题都是变频器谐波在作怪!这
    的头像 发表于 09-23 14:17 819次阅读
    为什么变频器一开,监控画面就&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;雪花&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;?

    这些 “听不清” 的尴尬,是否遇到过

    AN-93双麦降噪远场拾音模块通过三大核心优势解决&amp;quot;听不清&amp;quot;痛点:1)36dB深度降噪,智能过滤人声与噪音;2)7米远场+360°拾音,适配多种距离
    的头像 发表于 11-14 09:49 540次阅读
    这些 “听不清” 的尴尬,<b class='flag-5'>你</b>是否<b class='flag-5'>也</b><b class='flag-5'>遇到过</b>?

    选EtherCAT模块,别只看价格,先看&amp;amp;quot;体检报告&amp;amp;quot;

    ±8kV静电、±2kV浪涌、-42℃极寒、1500V高压—这不是极限运动,而是DPort-ECT模块的出厂&quot;必修课&quot;。本文详解工业级EtherCAT从站如何通过严苛测试关
    的头像 发表于 02-04 11:46 625次阅读
    选EtherCAT模块,别只看价格,先看&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;体检报告&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;

    从&amp;amp;quot;替代人力&amp;amp;quot;到&amp;amp;quot;智能协同&amp;amp;quot;:履带式巡检机器人的产业跃迁

    2026年的工业智能化转型浪潮中,一个显著的趋势正在形成——工业巡检机器人正从单纯的&quot;人力替代工具&quot;升级为具备感知、决策与协同能力的&quot;智能体&quot;。
    的头像 发表于 02-05 10:42 531次阅读