|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
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中也含有这些变量。
只需要按照如下配置即可:
|
|