1,每个sequence都有一个body任务。当一个sequence启动后,会自动执行sequence的body任务,所以在sequence的class中,一定要有一个名为body的task。

此外,如果一个sequence中,还有pre_body与post_body,则这两个task,会分别在body的task前面与后面执行。

2,sequence的源码中,没有build_phase,所以,不要在sequence中使用build_phase。但是记得,sequencer中可以有build_phase。

3,当完成一个sequence的定义后,可以使用start任务将其启动。

4,sequence有几个重要的宏,如uvm_do,uvm_create,uvm_send,start_item,finish_item等。

5,注意,sequence派生自uvm_object,sequencer派生自uvm_component,sequencer的作用,是调度其中的sequence在driver之间进行传输。

6,一个sequence应该使用uvm_object_utils宏注册到factory中去。

7,virtual sequence的引入,主要是为了解决sequence之间的控制和调度,他一般不发送transaction,他只控制其他的sequence,起到统一调度的作用。

8,注意,sequence item 与sequence是有区别的,要关注这一点。

sequence 主要是要实现其body任务,用来产生sequence item并将其发送给driver,扩展自如下基类:xxx_seuqence extends uvm_sequence 或者uvm_sequence_base;

sequence item主要用来产生两个components之间的读写操作,流通在uvm_component组件直接,进行通信。它扩展的基类如下: xxx_seq_item extends uvm_sequence_item;

9,用户定义的所有的transaction,都必须从uvm_sequence_item类来派生。transaction就是封装了各种协议接口的事务模型,而uvm_sequence_item,相对于transaction,增加了很多使用的成员变量和函数/任务。

uvm的sequence的更多相关文章

  1. SystemVerilog基本语法总结(下)

    2018年IC设计企业笔试题解析-(验证方向) 1.请简述:定宽数组,动态数组,关联数组,队列四种数据类型的各自特点.解析:(1)定宽数组:其宽度在声明的时候就指定了,故其宽度在编译时就确定了.(2) ...

  2. UVM中的sequence使用(一)

    UVM中Driver,transaction,sequence,sequencer之间的关系. UVM将原来在Driver中的数据定义部分,单独拿出来成为Transaction,主要完成数据的rand ...

  3. UVM序列篇之二:sequence和item(上)

    无论是自驾item,穿过sequencer交通站,通往终点driver,还是坐上sequence的大巴,一路沿途观光,最终跟随导游停靠到风景点driver,在介绍如何驾驶item和sequence,遵 ...

  4. ( 转)UVM验证方法学之一验证平台

    在现代IC设计流程中,当设计人员根据设计规格说明书完成RTL代码之后,验证人员开始验证这些代码(通常称其为DUT,Design Under Test).验证工作主要保证从设计规格说明书到RTL转变的正 ...

  5. UVM的类库

    [转]http://www.asicdv.com/ 一个UVM验证平台可以看成由多个模块组合在一起的,这和以前的verilog代码,以及verilog结合其它各种语言的验证手段在理念上是一样的,最大的 ...

  6. UART UVM验证平台平台搭建总结

    tb_top是整个UVM验证平台的最顶层:tb_top中例化dut,提供时钟和复位信号,定义接口以及设置driver和monitor的virual interface,在intial中调用run_te ...

  7. Cadence UVM基础视频介绍(UVM SV Basics)

    Cadence关于UVM的简单介绍,包括UVM的各个方面.有中文和英文两种版本. UVM SV Basics 1 – Introduction UVM SV Basics 2 – DUT Exampl ...

  8. (转)UVM内容梗概

    1. 类: 面向对象基础传统的面向对象编程与systemverilog类的特点,类的定义,成员与方法,构造函数,对象的复制和深/浅拷贝,父类/子类关系,类的继承,作用域的规则,对象的句柄以及赋值,方法 ...

  9. 基于UVM的verilog验证

    Abstract 本文介绍UVM框架,并以crc7为例进行UVM的验证,最后指出常见的UVM验证开发有哪些坑,以及怎么避免. Introduction 本例使用环境:ModelSim 10.2c,UV ...

随机推荐

  1. 对Linux命令进一步学习vim(二)

    今天,进一步学习Linux相关的命令,可能会有重复的地方,但学习本来就是不断重复的过程.故作小记! 1.安装了:vim  ,,,一款Linux爱好者经常用到的ide sudo apt-get inst ...

  2. HDU 4970(杭电多校#9 1011题)Killing Monsters(瞎搞)

    题目地址:HDU 4970 先进行预处理.在每一个炮塔的火力范围边界标记一个点. 然后对每一个点的伤害值扫一遍就能算出来. 然后在算出每一个点到终点的总伤害值,并保存下来,也是扫一遍就可以. 最后在询 ...

  3. cocos2d安卓自动编译脚本去掉复制Resources资源和签名功能

    去掉这两个功能的原因: 1.因为有时候打包是分渠道的,不同的渠道资源也可能不一样,所以不能直接复制资源. 2.如果用cocostudio打release包,因为要输入签名地址,会导致在自动签名处停住不 ...

  4. 转载:定位ARM Hard Fault 的方法

    转载自:http://www.openedv.com/posts/list/25030.htm 1.用Keil的话,可以做如下操作: 先将fault中断函数的内容改为: HardFault_Handl ...

  5. Import error: no module named cv2 错误解决方法

    Windows: 将opencv安装目录下的cv2.pyd拷贝到Python安装目录里Lib中site-packages Linux: (1)将opencv安装目录下的cv2.so拷贝到Python安 ...

  6. STL中的容器

    STL中的容器 一. 种类: 标准STL序列容器:vector.string.deque和list. 标准STL关联容器:set.multiset.map和multimap. 非标准序列容器slist ...

  7. 【BZOJ1189】[HNOI2007]紧急疏散evacuate 动态加边网络流

    [BZOJ1189][HNOI2007]紧急疏散evacuate Description 发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M的矩形区域.每个格子如果是'.',那么表示这是一块空 ...

  8. ClickHouse RPM packages installation from packagecloud.io

    Table of Contents Introduction Script-based installation Install script Install packages after scrip ...

  9. 3 CActiveXUI的一个Bug

    如果主窗口直接用变量生成,则关闭窗口时会产生崩溃            如果用new的方式生成,则不会崩溃,所以给出一个临时的快速解决方案,即主窗口都用new生成,_tWinMain改为下面这样: i ...

  10. Extjs combobox 实现搜索框的效果

    目的:使用combobox实现一个类似搜索框的效果,即用户输入内容后,出现相关下列列表,提供选择. 实现:extjs3 中combobox自身带这个功能即在remote模式下,store在load的时 ...