sequence中的objection的控制策略

在整颗UVM树中,树的结点很多,理论来说在任何组件中都可以控制objection。一般在sequence和virtual sequence中,也有在scoreboard和test中。
一般来说,在一个实际的验证平台中,通常会有以下两种objection的控制策略:
第一种:
在scoreboard中进行控制,但要注意当收集到指定数量的数据后,利用fork…join_any跳出循环。
第二种:
在sequence中提起sequencer的objection,当sequence完成后,再撤销此objection。

class case0_sequence extends uvm_sequence #(my_transaction);my_transaction m_trans;function  new(string name= "case0_sequence");super.new(name);endfunction virtual task body();if(starting_phase != null)                 //starting_phase.raise_objection(this);   //置起objectionrepeat (10) begin`uvm_do(m_trans)end#100;if(starting_phase != null)                 //starting_phase.drop_objection(this);    //撤销objectionendtask`uvm_object_utils(case0_sequence)
endclass

以上两种方式在验证平台中都有应用。其中第二种用的最多,这也是UVM提倡的方式。UVM的设计哲学就是全部由sequence来控制激励的生成,因此一般情况下只在sequence中控制objection。

virtual sequence中objection的控制策略

一般来说,有三个地方可以控制objection。一是普通的sequence,二是中间层的virtual sequence,三是最顶层的virtual sequence。
一般只在最顶层的virtual sequence中控制objection。因为virtual sequence是起统一调度作用的,这种统一调度不只体现在transactio上,也应该体现在objection上。同时在仿真时,经常会出现仿真没有按照预期的结束,这样就不需要层层的查找,从而提高debug的效率。

class case0_sequence extends uvm_sequence #(my_transaction);  //virtual sequencemy_transaction m_trans;function  new(string name= "case0_sequence");super.new(name);endfunction virtual task body();crc_seq cseq;long_seq lseq;if(starting_phase != null) starting_phase.raise_objection(this);   //raise objectionrepeat (10) begin`uvm_do(cseq)`uvm_do(lseq)end#100;if(starting_phase != null) starting_phase.drop_objection(this);  //drop objectionendtask`uvm_object_utils(case0_sequence)
endclass

uvm中sequence和virtual sequence中objection的控制相关推荐

  1. (22)UVM 虚拟类序列(virtual sequence)

    UVM 虚拟类序列(virtual sequence) 文章目录 UVM 虚拟类序列(virtual sequence) virtual sequence介绍 virtual存在对于sequence和 ...

  2. UVM中Virtual sequence的作用

    virtual sequence是用来实现sequence之间的同步.从字面上理解,即虚拟的sequence.虚拟的意思就是它根本就不发送transaction,它只是控制其他的sequence,起统 ...

  3. 理解UVM中的virtual sequencer和virtual sequence

    这周看了Cliff的文章<Using UVM Virtual Sequencers & Virtual Sequences>,本文相当于是一个阅读记录. 一.什么时候需要virtu ...

  4. UVM—virtual sequencer and virtual sequence详解

    目录 1.前言 2.virtual sequencer使用环境 3. virtual sequencer 和virtual sequence的作用 4.m_sequencer与p_sequencer ...

  5. UVM设计模式 (七)命令模式、三种sequence启动方式、start_item/finish_item、中介模式、virtual sequence

    本篇介绍UVM中的sequence,这是UVM中最基础的部分.对于前面介绍的uvm_callback, uvm_visitor等,很少被使用到或者也只有搭建平台的人会使用.不能认为平台的搭建更富有&q ...

  6. 【UVM基础】虚序列器与虚序列(virtual sequencer与virtual sequence)快速上手指南

    文章目录 一.virtual sequence与virtual sequencer 二.virtual sequence and sequencer的产生 2.1.嵌入序列器 2.2.嵌入序列,控制序 ...

  7. 怎样给oracle表设置序列,Oracle的sequence序列在hibernate中的配置方法

    Oracle自增序列在Hibernate中的配置方法 在很多情况下,我们使用Hibernate在已经建立好数据库的基础上.在oracle中,如果已经建立好的数据库中使用了sequence,则可以按照下 ...

  8. Virtual 2004中安装DOS以及实现文件共享的方法

    Virtual 2004中安装DOS以及实现文件共享的方法 2010-04-08 9:18 安装目的: 为了在Windows XP 下使用过去在纯DOS下编写的程序来处理数据.因为那些程序很难或无法全 ...

  9. Virtual Box中Centos虚拟机设置静态IP

    Virtual BOX设置 在Virtual BOX中添加一个虚拟机的网络 管理⟶主机网络管理器⟶创建仅主机网络 配置虚拟机的网卡 在需要配置的虚拟机上右键设置⟶网络 网卡一设置为网络地址转换(NAT ...

最新文章

  1. python如何调用文件进行换位加密_数据文件加密算法–换位加密法 | 学步园
  2. Django基于正则表达式的URL
  3. java chinapay_通过PHP/Java Bridge来实现ecshop的chinapay支付接口
  4. 几种流行Webservice控制框架
  5. webdynpro view navigation - the same as Webclient UI
  6. linux编译ffmpeg成so,「ffmpeg」一 mac 环境下编译ffmpeg,生成so库文件
  7. 《大数据》第1期“聚焦”——对大数据的再认识
  8. php软件开发--mysql数据库进阶
  9. MTK 驱动开发(43)---GPS问题分类--MTK ALPS GPS的特殊知识
  10. python【字符串】【转义符】【下标】【切片】【遍历】
  11. java中对象与字节数组相互转换
  12. 多线程设计模式:第二篇 - 四种基础模式
  13. 38. 数字在排序数组中出现的次数(C++版本)
  14. ssh mysql视屏_ssh+mysql实现的Java web在线订电影票系统项目源码附带视频指导教程...
  15. 通达信板块监控指标_通达信板块分析指标公式
  16. LHC或许已经首次制造出顶夸克“四胞胎”
  17. hiho 满减优惠(暴力)
  18. 手持「前症保障」的百惠保,号称最容易理赔的重疾险?
  19. 打不开 /dev/vmmon: 无此文件或目录。请确保已载入内核模块 ’vmmon’”。
  20. BAT + 程序员校招指南

热门文章

  1. ubuntu常见问题及解决方案——yr 不在 sudoers 文件中,此事将被报告,同时,su无法验证的解决办法
  2. SAP FICO资产更改成本中心报错利润中心不唯一 , 消息编号 AIST009,实现资产跨利润中心调拨自动记账
  3. Linux设置与取消代理
  4. Android P内联优化导致的一个诡异Bug
  5. Java核心技术--数组拷贝
  6. Windows平台实用的软件分享
  7. html转markdown在线工具
  8. 35岁后程序员该何去何从?
  9. 11 款全能的苹果设备激活锁移除工具
  10. 不是吧?你不知道CSDN浏览器助手?快来看看,助你一“键”封神!