启动:这里的启动就是通过哪种方式调用uvm_sequence中的body()函数的意思。( body()函数被sequence的 start()函数调用,也可以理解成 start()函数的执行 ) sequence的挂载:uvm_sequence不属于component,没有phase概念,需要挂载在一个sequencer上,在这个sequencer的phase中被调用(default_sequence的情形),同时uvm_sequence...
1)default_sequence启动方式 functionvoidmy_case0::build_phase(uvm_phase phase); super.build_phase(phase); uvm_config_db#(uvm_object_wrapper)::set(this,// "env.i_agt.sqr.main_phase",// "default_sequence",// case0_sequence::type_id::get());// endfunction 2)default_sequence启动方式 ...
raise_objection和drop_objection往往伴随sequence的启动; 第二种:default_sequence 采用default_sequence启动,实际上还是调用了start任务, uvm_config_db#(uvm_object_wrapper)::set(this,"env.fish_agt.sqr.main_phase","default_sequence",case0_sequence::type_id::get()); ) 或者先例化,再采用default_sequenc...
启动:这里的启动就是通过哪种方式调用uvm_sequence中的body()函数的意思。(body()函数被sequence的 start()函数调用,也可以理解成 start()函数的执行) sequence的挂载:uvm_sequence不属于component,没有phase概念,需要挂载在一个sequencer上,在这个sequencer的phase中被调用(default_sequence的情形),同时uvm_sequence可以...
第一种:start启动 最简单粗暴的一种方式,只需要在某个component,如my_sequencer、my_env甚至base_test的main_phase中启动。 代码语言:javascript 复制 task fish_env::main_phase(uvm_phase phase);fish_sequence seq;//创建seq实例phase.raise_objection(this);seq=fish_sequence::type_id::create("seq");seq...
第一种时利用uvm_do系列宏 在一个sequence的body中,除了可以使用uvm_do宏产生transaction外,还可以启动其它sequence,这就是嵌套sequence。 uvm_do系列宏有uvm_do/uvm_do_pri/uvm_do_with/uvm_do_pri_with/uvm_do_on/uvm_do_on_pri/uvm_do_on_with/uvm_do_on_pri_with ...