Verification Engineerの戯言
今回は、default_sequenceへの設定方法を見ていきます。
Sequenceの例題(その1)のtestモジュールのコードをもう一度見てみましょう!
examples/sequence/test.sv
たったこれだけです。
simple_seq_sub_seqsは、simple_seq_lib.svで定義されています。
Sequenceの例題(その1)のtestモジュールのコードをもう一度見てみましょう!
examples/sequence/test.sv
module test; // かなり、省略 initial begin set_config_string("sequencer", "default_sequence", "simple_seq_sub_seqs"); sequencer = new("sequencer", null); sequencer.build(); driver = new("driver", null); driver.build(); driver.seq_item_prod_if.connect_if(sequencer.seq_item_cons_if); run_test(); end endmoduleset_config_string関数でsequencerのdefault_sequenceに対して、simple_seq_sub_seqsを設定しています。
たったこれだけです。
simple_seq_sub_seqsは、simple_seq_lib.svで定義されています。
class simple_seq_sub_seqs extends ovm_sequence; simple_seq_do seq_do; simple_seq_do_with seq_do_with; simple_seq_do_with_vars seq_do_with_vars; virtual task body(); ovm_report_info(m_name, $psprintf("In body() of %s", get_name()),1000); #100; `ovm_do(seq_do) #100; `ovm_do(seq_do_with) #100; `ovm_do_with(seq_do_with_vars, { start_addr == 16'h0003; start_data == 16'h0009; } ) endtask endclass : simple_seq_sub_seqs
検証、Verification、SystemVerilog、OVM、Open Verification Methodology