首页 > 其他分享 >2.2.3 加入objection机制

2.2.3 加入objection机制

时间:2024-05-16 14:42:38浏览次数:24  
标签:语句 仿真 raise objection phase 2.2 机制 main

先分析前面的:

上一节中虽然输出了"main_phase is called",但是"data is drived"并没有输出。但是既然进入了main_phase,应该会把这一整个任务执行完成才对,但是这里好像在执行的过程中被外力kill掉了?

UVM中通过objection来控制验证平台的关闭

在上一节中并没有调用finish语句,但是在运行到一半的时候仿真平台确实关闭了。

这是因为在每个phase中,UVM会检查是否会有objection被提起 
(raise_objection),
如果有,那么等待这个objection被撤销(drop_objection)后停止仿真
如果没有,则马上结束当前phase

加入了objection机制的driver代码如下:

可以看到整个main_phase被包含在14行起objection和28行起objection之间,这样就能确保整个phase能执行完成。

其中raise_objection必须在main_phase中第一个消耗仿真时间的语句之前。
比如$display语句是不消耗仿真时间的,这些语句可以放在raise_objection之前
但是如果是@(posedge top.clk)等语句是要消耗仿真时间的。

标签:语句,仿真,raise,objection,phase,2.2,机制,main
From: https://www.cnblogs.com/tomako123/p/18195902

相关文章

  • IDEA2021.2.2使用Spring Initializr创建springboot项目
    使用SpringInitializr创建Springboot项目第一步:输入项目名称、项目所在路径等信息 在选择Java一项时,只有17、21、22选项。其中ProjectSDK一项,代表本地安装的JDK版本。Java一项,代表创建Spring工程时默认的JAVA版本。当选择最低值17时,点击下一步会弹出错误页面,提示“iThere......
  • 2.2.2加入factory机制
    driver代码:这里的factory机制被集成在了一个宏中:uvm_comphonent_utils。这个宏所做的事情非常多,其中之一就是将my_driver登记在UVM内部的一张表中,这张表是factory功能实现的基础。只要在定义一个新的类时使用这个宏,就相当于把这个类注册到了这个表中。在给driver加入这个机制后......
  • Nacos2.2.0适配瀚高数据库,打镜像部署
    一、Nacos2.2.0适配瀚高数据库Nacos2.2.0适配瀚高数据库部分参考地址:https://blog.csdn.net/weixin_39676699/article/details/130642890application.properties配置文件中数据库部分配置如下:spring.sql.init.platform=highgodb.num=1db.url.0=jdbc:highgo://192.168.1.1:58......
  • 【java】【集合类】ArrayList扩容机制
    扩容规则1.ArrayList()无参构造扩容2.ArrayList(intinitialCapacity)扩容3.publicArrayList(Collection<?extendsE>c)扩容4.add(Objecto)扩容5.addAll(Collectionc)扩容要注意的是,以下所有代码中用反射方式来更直观地反映ArrayList的扩容特征,但从JDK9由于模......
  • 易基因: WGBS等揭示梨驯化和改良过程中DNA甲基化对果实成熟的作用机制 | 作物育种
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。梨(Pyrusssp.,蔷薇科杏仁核亚科)是世界上最重要的温带水果作物之一。与野生梨相比,栽培梨的果实在许多形态特征上表现出显著变化,包括果实大小、含糖量和核细胞含量。野生梨和栽培梨之间的比较分析可以深入了解关键表型变......
  • 谈谈 JVM 垃圾回收机制
    前言垃圾回收需要思考三件事情,哪些内存需要回收?什么时候回收?如何回收?一、哪些内存需要回收JVM的内存区域中,程序计数器、虚拟机栈和本地方法栈的生命周期是随线程而生,随线程而灭的。这几个区域的内存分配和回收都具有确定性,不需要过多考虑回收问题,当方法或线程结束时,内存自......
  • 2.2.1最简单的验证平台(单个driver)
    书中的DUT(待测设计)定义如下:这个DUT的功能非常简单,通过rxd接收数据,再通过txd发送出去,其中rx_dv是接收的数据有效指示,tx_en是发送数据的有效指示。本章中的所有例子都是基于这个DUT.验证平台中的所有组件都应该派生自UVM中的类。比如UVM验证平台中的driver应该派生自uvm_driver......
  • 《Linux内核完全注释》学习笔记:2.2 Linux中断机制
    在使用80x86组成的PC中,采用了两片8259A可编程中断控制芯片。每片可以管理8个中断源。通过多片的级联方式,能构成最多管理64个中断向量的系统。在PC/AT系列兼容机中,使用了两片8259A芯片,共可管理15级中断向量。其级联示意图见图2-5。其中从芯片的INT引脚连接到主芯片的IR2引......
  • [转帖]国产数据库中统计信息自动更新机制
    https://blog.csdn.net/solihawk/article/details/137064277数据库中统计信息描述的数据库中表和索引的大小数以及数据分布状况,统计信息的准确性对优化器选择执行计划时具有重要的参考意义。本文简要整理了下传统数据库和国产数据库中统计信息的自动更新机制,以加深了解。......
  • 垃圾回收机制
    垃圾回收机制【一】什么是垃圾回收机制垃圾回收机制(GC机制)是python自带的机制专门用来回收变量值所占的内存空间【二】在python中的垃圾#每次书写Python代码都会创建很多变量名和变量值#但是有很多变量名和变量值用过一次就不用了#--->被称之为垃圾--->不会主......