在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2826|回复: 2

[原创] sequence_library使用方法

[复制链接]
发表于 2020-6-10 23:43:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
sequence library是一系列sequence的集合
原型:
class uvm_sequence_library #(type REQ=uvm_sequence_item,RSP=REQ) extends uvm_sequence #(REQ,RSP);
使用注意事项:
1、需要指定transaction的类型;
2、在其new()函数中调用init_sequence_library;
3、调用uvm_sequence_library_utils注册。
使用示例:

                               
登录/注册后可看大图

uvm_add_to_lib有两个参数,第一个是sequence的名字,第二个是要加入的sequence_library的名字,一个sequence可以加入不同的sequence library中,一个sequence librar中可以加入不同的sequence。当sequence和sequence library定义好后,可以将sequence library作为sequencer的default sequence,使用隐式方式启动。
控制选择算法:
sequence_library中存在一个变量selection_mode,用于控制sequence_library中的sequence的执行顺序,可选常数有:
typedef enum
{
UVM_SEQ_LIB_RAND,   //完全随机选择一个sequence发送item;
UVM_SEQ_LIB_RANDC, //随机选择一个sequence发送item,但在随机完所有sequence之前不会重复;
UVM_SEQ_LIB_ITEM,    //不执行sequence library中的sequence,自己产生item;
UVM_SEQ_LIB_USER    //自定义sequence选择算法,用户需要重载select_sequence方法。
} uvm_sequence_lib_mode;

                               
登录/注册后可看大图

控制执行次数:
使用两个变量控制:
int unsigned min_random_count=10;
int unsigned max_random_count=10;
此处自定的是sequence_library 产生item的个数,产生的item可以是自己产生的,也可以是加入其中的sequence产生的,取决于selection_mode。
以上提到的变量均可以通过uvm_sequence_library_cfg配置,在uvm_sequence_library_cfg中也含有这些变量。
只需要按照如下配置即可:

                               
登录/注册后可看大图


发表于 2020-6-14 15:21:49 | 显示全部楼层
这个一般用于,模拟构建实际软件运行的情况吗?把多种情况的case进行穿插的仿真和切换吗?
 楼主| 发表于 2020-6-23 09:51:46 | 显示全部楼层
这个是用于在一个case中的多个sequence之间进行切换,这样一次case可以中可以包含多个不同约束的激励吧,软件运行情况是什么意思,DPI吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 17:59 , Processed in 0.015162 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表