UVM:10.2.1 复杂sequence 的简单化

1.之前的my_transaction 是mac 包,其中的pload 是ip 包,如下:

2.现在要求mac 中指定ip 地址等数据,需要约束mac 包跑咯爱的值:

要对ip_transaction 约束,需自己计算,容易错。

3.可简化:

可重用性不高。

4.加入crc错误,如下:

只变了一行。

5.给DUT IP checksum 错误的包:

6.上面代码为不同的测试用例,但几乎相同。

1)要提高重用性,将ip 相关写成一个函数。mac 相关写成一个函数,放在base_sequence中。

2)新建测试用例时,从base_sequence 派生新的sequence,并调用函数。

7.使用layer sequence。上面的一个sequence 中包含2 中transaction。最好将它们分离,一个sequence 产生ip_transaction,另一个sequence产生my_transaction。前者将ip_transaction 交给后者。这就是layer sequence。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-31 09:13:51

UVM:10.2.1 复杂sequence 的简单化的相关文章

UVM:10.2.2 layer sequence 的示例

1.产生ip_transaction 的sequence 如下: 2.相应的sequencer 如下: 3.这个sequencer 要在my_agent 例化,此时,my_agent 中有两个sequencer: 4.要使用layer sequence,最关键是如何将ip_transaction 交给产生my_transaction 的sequence.在my_sequencer 中加入一个端口,并例化: 5.在my_agent 中连接: 6.在产生my_transaction 的sequenc

UVM:10.2.3 layer sequence 与try_next_item

1.try_next_item 更加接近实际情况,用的更多: 两个有效的req 之间,总会打印item is null,说明driver 没有得到transaction: 2.ip_sequence 和my_sequence 没有任何延时,my_driver 理应一直得到有效的req,而不该出现得不到的情况,why? 时间槽的概念. 问题出在driver 中的try_next_item 调用过早. 调用uvm_wait_for_nba_region: 版权声明:本文为博主原创文章,未经博主允许不

2016 Multi-University Training Contest 10 || hdu 5860 Death Sequence(递推+单线约瑟夫问题)

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5860 题目大意:给你n个人排成一列编号,每次杀第一个人第i×k+1个人一直杀到没的杀.然后剩下的人重新编号从1-剩余的人数.按照上面的方式杀.问第几次杀的是谁. 分析 一轮过后和原来问题比只是人的编号发生变化,故可以转化为子问题求解,不妨设这n个人的编号是0~n-1,对于第i个人,如果i%k=0,那么这个人一定是第一轮出列的第i/k+1个人:如果i%k!=0,那么这个人下一轮的编号就是i

(转)UVM内容梗概

1. 类: 面向对象基础传统的面向对象编程与systemverilog类的特点,类的定义,成员与方法,构造函数,对象的复制和深/浅拷贝,父类/子类关系,类的继承,作用域的规则,对象的句柄以及赋值,方法的扩展和重写,local/protected关键字,虚基类,虚方法,虚接口. 2. UVM基础 :UVM的发展历史,可配置的测试组件,类库结构,UVM核心基类的介绍,include/macro,UVM交易(data),基本测试组件 (testbench components),组件的phase结构,

MariaDB 10.3 序列

在MariaDB 10.3版本中sequence是特殊的表,和表使用相同的namespace,因此表和序列的名字不能相同. MariaDB [wuhan]> select version(); +--------------------+ | version() | +--------------------+ | 10.3.8-MariaDB-log | +--------------------+ 1 row in set (0.000 sec) MariaDB [wuhan]> crea

浅谈MyBatis-Plus学习之Oracle的主键Sequence设置

一.Oracle的主键Sequence设置简介 在Oracle数据库中不支持主键自增策略,它是通过Sequence序列来进行完成的,因此需要在MP中进行相关配置 二.相关配置如下 2.1.pom.xml 添加相关依赖 注意:由于oracle的授权问题,没办法从maven仓库中下载,因此可以手动从oracle官网中下载,并本地打包到仓库中 <!-- Oracle驱动: 因为Oracle授权的问题,不能从Maven的仓库中下载到Oracle驱动 --> <dependency> <

数字集成电路设计-18-UVM

引言 UVM(Universal Verification Methodology)可以理解为形而上的东西,可以理解为是基于System verilog的一个库,提供一些API调用. 其实没必要把UVM抬的那么高,上升到形而上的层次.因为在实际的IC验证时,对某个复杂DUT的验证时,一般都会拆分成那几个模块. 要对DUT测试,肯定需要先产生测试用例,就是UVM中的sequencer和sequence概念. 产生测试用例之后,肯定需要把测试用例送到DUT端口上,作为激励,就是UVM中的driver

oracle11g dataguard failover重建后归档日志没有被应用被NO的问题

1,主库从库归档记录不一致,如下所示: 做完failover后,坏的旧主库变成了新的从库,但是新从库的归档日志记录不一致,就是archive log list;出来的和v$archived_log出来对不上号,如下所示: 1.1 主库: SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Olde

Cisco路由器配置 IPsec VPN

拓扑图 实验目的: 实现R1网段:172.16.10.0/24与R2网段172.17.10.0/24通信加密. 配置思路: 路由 通过ACL设置感兴趣流 配置IKE第一阶段 配置IKE第二阶段 新建MAP,并应用于接口 配置: R1: 配置默认路由和接口IP信息 interface Loopback0  ip address 172.16.10.1 255.255.255.0  no shu exit interface FastEthernet0/0  ip address 200.1.1.1