sequence的两种启动方式
- 在TC中实例化sequence,再通过start任务启动。
比如在tc的main_phase中实例化
function void tc_0::main_phase(uvm_phase phase);
sequence_base seq;
seq = new("seq");
seq.start(env.in_agent.sqr); // 使用seq的start任务
- 通过default_sequence启动
在build_phase中将某个sequence配置成某个sequencer的动态运行的phase中(如main_phase)的default_sequence, 那么在仿真执行到main_phase的时候,squencer的default_sequence就会启动
function void tc_0::build_phase(uvm_phase phase);
super.build_phase(phase);
`uvm_config_db#(ubm_object_wrapper) :: set(this,
"env.in_agent.sqr.main_phase",
"default_sequence",
sequence_base::type_id::get());