intwr_sig=66;initialbeginuvm_config_db#(int)::set(null,"uvm_test_top.fifo_env.wr_agt.sqr.*","wr_sig",wr_sig);end 在sequence中进行get: intwr_sig;uvm_config_db#(int)::get(null,get_full_name(),"wr_sig",wr_sig);`uvm_info(this.name,$sformatf("wr_sig=%0d.",wr_sig),UVM...
uvm_config_db#(bit)::set(uvm_root::get(),"uvm_test_top.v_sqr.*","first_start",0); endtask... endclass 需要注意的是,由于此sequence在virtual sequence中被启动,所以其get_full_name的结果应该是uvm_test_top.v_seq.,而不是uvm_test_top.env0.i_agt.sqr.,所以在设置时,第二个参数应该是...
// 在sequence中获取变量的值 uvm_config_db #(int)::get(get_squencer(),"","INR",INR); 物理接口配置 uvm中连接interface使用的uvm_config_db机制 配置组件的DUT接口 全局UVM资源 UVM配置机制的选择 UVM调试机制 内容 UVM组件基类 UVM组件的逻辑层次:parent-child关系 组件显示和查询 查询组件的层次关系 ...
这个方法中,应该首先指明sequencer的句柄,如果这个sequence是顶部的sequence(没有上层嵌套他),那么可以省略对第二个parent_sequence的指定。 第三个参数的系统默认值是-1,会使得这个sequence会继承parent_sequence的优先值级,如果是顶部的sequence,会自动设置为100,也可以自己设置优先级数值。 第四个参数值一般使用默认值...
2.config_db 设置的参数有两种,一种是结构性参数,如控制driver是否例化的is_active: agent时指定: 3非结构性的参数: build_phase: 也可在build_phase 之后的任意phase 使用绝对路径进行设置: 1)向sequence 中传递参数,可以像10.3.2节,在virtual sequence 中启动sequence,并赋值。
一、sequence的执行流程 二、sequence的启动方式——start()/default_sequence 二、sequence生产数据——body( ) 2.1.宏`uvm_do( )的功能 2.2.sequence的嵌套启动 2.3.sequence接收响应rsp 三、config_db配置sequence 3.1.默认执行的sequence 3.2.配置sequence——get_full_name() / m_sequencer ...
其中max/min_random_count都是int类型,而seleciton_mode是枚举类型uvm_sequence_lib_mode,有四个枚举值: 至于配置方法,可以在例化完sequence library之后直接修改对象中成员变量,也可以在使用default_sequence时通过uvm_config_db来传递配置参数。 // 总结全文,如果你有一堆sequence,可以玩的方案有很多,但一定要注重...
一种是通过在my_case的build_phase使用uvm_config_db设置default_sequence给sequencer,另一种方式是先实例化要启动的sequence,之后再通过default_sequence启动。两者的区别就在于config_db::set的第四个参数,即要设置的值的获取方式不同,前者通过type_id::get获取,后者则直接用实例化后的变量即可。当一个sequence...
uvm_sequence和uvm_sequence_item不是组件,所以无法通过config_db按照层次关系对其进行配置。因此要用一个trick:sequence一旦活动起来,它必须挂载到一个sequencer上(发送item),也就是sequence能够获取sequencer的句柄,通过句柄来访问sequencer中的成员变量或等信息,那么这样sequence可以依赖于sequencer的结构关系,间接通过sequence...