UVM:2.2只有driver的验证平台->2.2.3 加入objection机制_uvm driver obejection控制验证平台的关闭-程序员宅基地

技术标签: UVM  

1.UVM通过objection来控制验证平台的关闭。

2.在每个phase中,UVM会检查是否raise_objection,如果有,那等待drop_objection后停止仿真;如果没有,马上结束当前phase,上篇就是这样。


3.加入objection的driver如下:

`ifndef MY_DRIVER__SV
`define MY_DRIVER__SV
class my_driver extends uvm_driver;

   `uvm_component_utils(my_driver)
   function new(string name = "my_driver", uvm_component parent = null);
      super.new(name, parent);
      `uvm_info("my_driver", "new is called", UVM_LOW);
   endfunction
   extern virtual task main_phase(uvm_phase phase);
endclass

task my_driver::main_phase(uvm_phase phase);
   phase.raise_objection(this);//<=================
   `uvm_info("my_driver", "main_phase is called", UVM_LOW);
   top_tb.rxd <= 8'b0; 
   top_tb.rx_dv <= 1'b0;
   while(!top_tb.rst_n)
      @(posedge top_tb.clk);
   for(int i = 0; i < 256; i++)begin
      @(posedge top_tb.clk);
      top_tb.rxd <= $urandom_range(0, 255);
      top_tb.rx_dv <= 1'b1;
      `uvm_info("my_driver", "data is drived", UVM_LOW);
   end
   @(posedge top_tb.clk);
   top_tb.rx_dv <= 1'b0;
   phase.drop_objection(this);//<=================
endtask
`endif


1)raise_objection和drop_objection总是成对出现。(所以UVM 1.2合二为一了吗?)

现在打印信息和时间,都是ok的。


4.raise_objection必须放在第一个消耗仿真时间的语句之前。比如吧$uvm_info放到它前面:


输出信息也ok。


5类似@(posedge top.clk)等消耗仿真时间的,如果放在raise_objection前面,则不行:


输出:


0ps 结束,引文进入到这个phase,超过0时刻,发现没有objection举起,马上退出。在run_test里传的还是my_driver,也就不跑别的了。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tingtang13/article/details/46372459

智能推荐

unity ipv6_Unity和IPv6支持-程序员宅基地

文章浏览阅读833次。unity ipv6Apple recently announced that beginning June 1, 2016, “all apps submitted to the App Store must support IPv6-only networking.” Since many of our users publish Unity games to the App Store, w..._unity ipv6

(15) Multi-Person Pose Estimation : PersonLab-程序员宅基地

文章浏览阅读2.3k次。PersonLab: Person Pose Estimation and Instance Segmentation with a Bottom-Up, Part-Based, Geometric Embedding Model2018reading time : 2019/10/08paper address :https://arxiv.org/abs/1803.08225..._personlab

Proteus 里面library文件夹找不到,怎么找到library文件夹。_protues没有library-程序员宅基地

文章浏览阅读6.6k次,点赞5次,收藏10次。Protus 里面library文件夹找不到,怎么找到library文件夹。因为需求需要找到library文件夹,往这个文件夹中复制一些文件。可是找到Proteus的根目录,却怎么也找不到这个文件夹。当然找不到,就没办法复制了。最后发现在它藏在一个隐藏的文件夹里面。怎么找到这个隐藏的文件夹呢?就在上面这个框起来的地方打对勾就可以看到被隐藏的文件夹了。我是在下面这个文件夹中找到的。具体路径如下:C:\ProgramData\Labcenter Electronics\Proteus 8 Pr_protues没有library

wifi配置工具iw源码解析_iw 源码-程序员宅基地

文章浏览阅读6k次,点赞2次,收藏22次。iw是一个基于nl80211接口的无线配置工具,用于替代原先基于wext接口的iwconfig。iw源码可以在网址 https://www.kernel.org/pub/software/network/iw/ 获取,或者使用git命令从http://git.kernel.org/?p=linux/kernel/git/jberg/iw.git. 中下载。1、简单的nl80211程序i..._iw 源码

Chrome NET::ERR_CERT_AUTHORITY_INVALID 错误分析及处理-程序员宅基地

文章浏览阅读7.3w次。Chrome NET::ERR_CERT_AUTHORITY_INVALID 错误分析及处理_chrome net::err_cert_authority_invalid

reactnative 设置背景图片--ImageBackground_react native 背景图片-程序员宅基地

文章浏览阅读2.3w次。在RN版本0.46版本的时候添加了ImageBackground控件。ImageBackground可以设置背景图片,使用方法和image一样,里面嵌套了其他的组件 &lt;ImageBackground style={{ flex: 1 }} source={require('../../res/image/login_beijing.png')}&gt; ..._react native 背景图片

随便推点

什么是“驱动程序”_软件驱动程序是什么-程序员宅基地

文章浏览阅读534次。 驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。 驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。 操作系统不同,硬件的驱动程序也不同,各个硬件厂商为了保证硬件的兼容性及增强硬件的功能会不断地升级驱动程序。如:Nvidia 显卡芯片公司平均每个月会升级显卡_软件驱动程序是什么

Java基础-03(选择结构)_如果张浩的java成绩大于98分,而且音乐成绩大于80分,则老师奖励他;或者如果其java-程序员宅基地

文章浏览阅读732次。public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("输入张浩的Java成绩: "); //提示输入Java成绩 int score = input.nextInt(); //从控制台获取张浩的Java成..._如果张浩的java成绩大于98分,而且音乐成绩大于80分,则老师奖励他;或者如果其java

FileNotFoundException: Temp\...\launcher.aab does not exist_unity filenotfoundexception-程序员宅基地

文章浏览阅读2.1k次,点赞3次,收藏5次。项目场景:Unity导出AAB文件错误。问题描述:错误信息如下:FileNotFoundException: Temp\gradleOut\launcher\build\outputs\bundle\release\launcher.aab does not existSystem.IO.File.Move (System.String sourceFileName, System.String destFileName) (at <9577ac7a62ef43179789031239b_unity filenotfoundexception

【毕业设计】基于stm32的智能婴儿车 婴儿床 系统 - 物联网 单片机_lm393声音传感器单片机开发-程序员宅基地

文章浏览阅读7.5k次,点赞19次,收藏147次。Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目于stm32的智能婴儿车 婴儿床大家可用于 课程设计 或 毕业设计单片机-嵌入式毕设选题大全及项目分享:https://blog.csdn.net/m0_71572576/article/details/125409052目前的能婴儿床使用的系统主要是结合组网技术、通信技术、检测技术、智慧控制水平于一体化运用到智能产品中。过去因为不同厂家运用不同通讯协议和技术指标,造成很多智能产品均采用集合布线综合系统或者电力载波传输系统。任何一种控制系统,核心部_lm393声音传感器单片机开发

python3使用saml2.0协议接入SSO_saml2.0 python-程序员宅基地

文章浏览阅读7.1k次,点赞3次,收藏10次。SAML(Security Assertion Markup Language)是一个 XML 框架,也就是一组协议,可以用来传输安全声明。比如,两台远程机器之间要通讯,为了保证安全,我们可以采用加密等措施,也可以采用 SAML 来传输,传输的数据以 XML 形式,符合 SAML 规范,这样我们就可以不要求两台机器采用什么样的系统,只要求能理解 SAML 规范即可。其核心是: IDP和SP通过..._saml2.0 python

LWN: 使用TuxMake来确保kernel编译结果可重现!-程序员宅基地

文章浏览阅读222次。关注了就能看到更多这么棒的文章哦~Portable and reproducible kernel builds with TuxMakeJanuary 5, 2021This arti..._make --silent

推荐文章

热门文章

相关标签