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

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

3天内不再提示

UVM里的phase机制

倩倩 来源:FPGA学姐 作者:FPGA学姐 2022-09-05 15:34 次阅读

UVM中的phase,按照其是否消耗仿真时间($time打印出的时间)的特性,可以分成两大类,一类是function phase,一类是task phase。就像task和function一样,task phase消耗仿真时间。

如图所示灰色的phase是task phase其他均为function phase

115e450e-2c63-11ed-ba43-dac502259ad0.png

上述所有的phase都会按照图中的顺序自上而下自动执行。使用频率最高的是build_phase、connect_phase和main_phase

  • 对于function phase来说,在同一时间只有一个phase在执行;但是task phase中,run_phase和pre_reset_phase等12个小的phase并行运行。后者称为动态运行(run-time)的phase。

  • run phase可以和其他12个小phase 的关系是可以在run phase里执行12个小phase的功能,也可以在12个小phase中分步进行。run phase和其他12个phse是一个并行关系,而12个phase是顺序执行的。

对于task phase,从全局的观点来看其顺序大致如下


fork begin  run_phase();  end  begin      pre_reset_phase();    reset_phase();  post_reset_phase();pre_configure_phase();configure_phase();post_configure_phase();pre_main_phase();main_phase();post_main_phase();pre_shutdown_phase();shutdown_phase();post_shutdown_phase();endjoin

  • 12个小phase存在意义:分成小的phase是为了实现更加精细化的控制。reset、configure、main、shutdown四个phase是核心,这四个phase通常模拟DUT的正常工作方式,在reset_phase对DUT进行复位、初始化等操作,在configure_phase则进行DUT的配置,DUT的运行主要在main_phase完成,shutdown_phase则是做一些与DUT断电相关的操作。

假设要在运行过程中对DUT进行一次复位(reset)操作,在没有这些细分 的phase之前,这种操作要在scoreboard、reference model等加入一些额 外的代码来保证验证平台不会出错。但是有了这些小的phase之后,那么只 要通过phase的跳转,就会自动跳转回reset_phase。

  • bulid phase的执行顺序是自上而下,即先执行test case的bulid phase然后执行env,在执行monitor和driver的build phase,而同级的monitor和driver的build phase执行顺序是按照字典序的,这里的字典序的排序依据new时指定的名字。

UVM的uvm_component及其派生类变量的实例化在build_phase中做实 例化工作,如果是uvm_object的实例化,可以是任何的phase。

  • 除了build_phase之外,所有不耗费仿真时间的phase(即function phase)都是自下而上执行的。connect phase执行顺序是自下而上的,如对于connect_phase即先执行driver和monitor的connect_phase,再执行agent的connect_phase。

  • 无论是自上而下(build_phase)还是自下而上(connect_phase)的phase,其执行顺序都与实例化的顺序无关,而是严格按照实例化时指定名字的字典序

审核编辑 :李倩


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

    关注

    0

    文章

    182

    浏览量

    19171
  • PHASE
    +关注

    关注

    0

    文章

    12

    浏览量

    10849

原文标题:UVM里的phase机制

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

收藏 人收藏

    评论

    相关推荐

    CDCM6208使用EVM software v3.24进行phase noise Tool仿真异常是怎么回事?

    大家好啊:请教一下,使用EVM software v3.24 进行 phase noiseTool 仿真异常,cdcm6208一共8个通道,为什么这个选项里面只有01236这几个通道,我要用的通道都没有;我的配置 等着写报告,需要仿真结果,急啊
    发表于 11-12 06:32

    单片机的中断机制

    单片机的中断机制是一种重要的处理方式,它允许单片机在执行主程序的过程中,能够暂停当前任务,转而处理外部或内部紧急事件。这种机制极大地提高了系统的响应速度和处理能力,使得单片机在各种应用领域中得到广泛应用。以下是对单片机中断机制
    的头像 发表于 10-17 18:03 686次阅读

    VeriStand的执行机制

    本次威廉希尔官方网站 分享介绍VeriStand的执行机制以及该机制下信号传输的延迟,当仿真测试对信号延迟有一定要求时,考虑VeriStand执行机制的影响是必要的,现在请跟随小编的步伐一起学习吧!
    的头像 发表于 09-11 14:43 945次阅读
    VeriStand的执行<b class='flag-5'>机制</b>

    TL084输出反相与datasheet上宣传的no phase reversal特性不符,为什么?

    datasheet上明确说的,这个芯片是no phase reversal,如图所示 但是我实际测试出来的波形是这样的 很明显,输入电压在低于芯片的动态输入范围时,输出没有按照想象的维持在饱和
    发表于 08-07 07:47

    OPA189 phase margin相位裕度是AOL*β在0dB时的相位即80°,为什么不是180-80=100°呢?

    OPA189教科书上的定义:运放的相位裕度phase margin是指运算放大器环路增益AOL*β为0dB时的相位与180 ° 的差值。 但是,在TI的各种文档中,比如如下截图中,phase margin相位裕度是AOL*β在0dB时的相位即80°,为什么不是180-8
    发表于 08-06 06:39

    什么时候需要用到no phase reversal运放呢?

    什么时候需要用到no phase reversal运放呢? 此时不用的话会造成什么影响呢?
    发表于 08-02 14:09

    请问ESPnow有重传机制吗?

    ESPnow有重传机制吗,我用espnow发消息,用sniffer探测显示有重传,如果我要取消重传怎么设置
    发表于 06-06 07:20

    具有NVM和PMBus™ 的TPS53681双通道(6-Phase + 2-Phase) or (5-Phase + 3-Phase) D-CAP+™ 降压多相控制器数据表

    电子发烧友网站提供《具有NVM和PMBus™ 的TPS53681双通道(6-Phase + 2-Phase) or (5-Phase + 3-Phase) D-CAP+™ 降压多相控制
    发表于 04-17 10:21 0次下载
    具有NVM和PMBus™ 的TPS53681双通道(6-<b class='flag-5'>Phase</b> + 2-<b class='flag-5'>Phase</b>) or (5-<b class='flag-5'>Phase</b> + 3-<b class='flag-5'>Phase</b>) D-CAP+™ 降压多相控制器数据表

    fpga验证和uvm验证的区别

    FPGA验证和UVM验证在芯片设计和验证过程中都扮演着重要的角色,但它们之间存在明显的区别。
    的头像 发表于 03-15 15:00 1616次阅读

    uvm1.1升级为uvm1.2 uvm_report_server报错是何原因?

    ISP算法仿真中,小编会用reference model调用DPI接口用C++ 算法实现pixel算法处理,然后和DUT算法处理输出的pixel值进行比较,比较时候发现报错,报错代码如下,原因是小编把uvm1.1升级为uvm1.2了。
    的头像 发表于 03-04 14:18 815次阅读
    <b class='flag-5'>uvm</b>1.1升级为<b class='flag-5'>uvm</b>1.2 <b class='flag-5'>uvm</b>_report_server报错是何原因?

    UVM手把手教程系列(二)Phase机制简单介绍

    UVM中的phase,按照其是否消耗仿真时间($time打印出的时间)的特性,可以分成两大类
    的头像 发表于 02-29 09:26 1405次阅读
    <b class='flag-5'>UVM</b>手把手教程系列(二)<b class='flag-5'>Phase</b><b class='flag-5'>机制</b>简单介绍

    UVM手把手教程系列(一)UVM验证平台基础知识介绍

    先抛开UVM,回想一下我们在平时写完程序后,是不是肯定需要灌一个激励给DUT,然后再从DUT获取结果,并跟一个参考模块进行对比,检查结果是否正确。就像下面这个图:
    的头像 发表于 02-27 09:08 6019次阅读
    <b class='flag-5'>UVM</b>手把手教程系列(一)<b class='flag-5'>UVM</b>验证平台基础知识介绍

    CP AUTOSAR信息安全机制全面解析

    这个模块一定是我们工程师最先接触到的AUTOSAR信息安全机制,主要用于ECU板级的安全通信。 大家应该有印象,在以往没有该机制,CAN通信通常是使用Checksum和RollingCounter来检验是否掉帧或者漏帧,并没有一个机制
    的头像 发表于 02-22 11:44 3169次阅读
    CP AUTOSAR信息安全<b class='flag-5'>机制</b>全面解析

    TC3XX的SPI模式3(clock polarity = 1;clock phase=1)的CLK初始状态问题怎么解决?

    我按照官网提供的SPI例程,先初始化Module,然后在Channel初始化时,将SPI模式配置为3(clock polarity = 1;clock phase=1)。但是此时CLK的状态仍然为
    发表于 02-18 07:09

    如何采用TLF35584的CAN安全机制?

    采用 TLF35584 的 CAN 安全机制
    发表于 01-18 10:03