在sequence中显示调用strat()函数,第一个参数是需要挂载的sequencer;第二个是parent_sequence,一般传入this或者不传入;第三个是优先级;第四个call_pre_post默认为1,则自动执行pre_body/ post_body()函数 执行pre_start,body等函数。此时就完成了sequence的启动过程。 在start()函数中,首先调用了函数set_item_conte...
一、直接启动 seq create之后,直接调用start命令启动: my_sequence my_seq; my_seq = my_sequence ::type_id::create("my_seq"); my_seq.start(sequencer); 二、default sequence启动 case1:在tc的build_phase中执行如下: uvm_config_db#(uvm_object_wrapper)::set(this,"env.agt.sqr.main_phase","de...
2)default_sequence启动方式 functionvoidmy_case0::build_phase(uvm_phase phase); case0_sequence cseq;// super.build_phase(phase); cseq =new("cseq");// uvm_config_db#(uvm_sequence_base)::set(this,// "env.i_agt.sqr.main_phase",// "default_sequence",// cseq);// endfunction...
sequence.strat(sequencer,parent_sequence,优先级) ,第一个参数是需要挂载的sequencer;第二个是parent_sequence,一般传入this或者不传入;第三个是优先级;第四个call_pre_post默认为1,则自动执行pre_body/ post_body()函数 start 执行 pre_start,body等函数。此时就完成了sequence的启动过程。 所有sequence都要在seq...
启动方式: 直接启动:my_seq.start(sequencer); uvm_config_db#(uvm_object_wrapper)::set(this, "env.i_agt.sqr.main_phase", "default_sequence", case0_sequence::type_id::get()); uvm_config_db#(uvm_sequence_base)::set(this, "env.i_agt.sqr.main_phase", "default_sequence", cseq); ...
第一种:start启动 最简单粗暴的一种方式,只需要在某个component,如my_sequencer、my_env甚至base_test的main_phase中启动。 task fish_env::main_phase(uvm_phase phase); fish_sequence seq;//创建seq实例phase.raise_objection(this); seq = fish_sequence::type_id::create("seq"); ...
1.3. sequence 的启动 (2种方法) 1.3.1. 方法一:设置default_sequence 1.3.2. 方法二:手动启动sequence (更常用) taskmy_base_test::run_phase(uvm_phase phase);my0_seq m_seq = my0_seq::type_id::create("m_seq");super.run_phase(phase);phase.raise_objection(this);`uvm_info(get_type_nam...
UVM:6.1.2 sequence 的启动与执行 1.完成一个sequence后,可以使用start 将其启动: 2.还可以使用default_sequence。其实default_sequence也会调用start 任务。有两种方式: 1) 2)先例化,在启动: 3.sequence 启动后会自动执行sequence 的body 任务。此外,还会自动调用sequence的 pre_body 与post_body:...
结论:Sequence启动可以用start()方法,也可以用uvm_do宏,还可以用default_sequence。但建议用start(),不建议用default_sequence。 start()方法的原型如上图所示,总共有四个参数。其中用的最多的是第一个参数sequencer,用来指定sequence运行在哪个sequencer上面...