Verification Engineerの戯言
vmm_scenario_adapterクラスは、OVM sequencerの中でvmm_scenariosを使うためのものです。
ソースコードを見てみると、メンバー変数としてvmm_scenarioクラスのインスタンスであるscenarioを持ちます。
ソースコードを見てみると、メンバー変数としてvmm_scenarioクラスのインスタンスであるscenarioを持ちます。
rand vmm_scenario #(VMM) scenario;
vmm_scenario_adapterクラスは、ovm_sequenceクラスを継承するので、bodyタスクを定義する必要があります。
bodyタスク内でscenario.apply(this.chan, num_trans)を実行します。
bodyタスク内でscenario.apply(this.chan, num_trans)を実行します。
virtual task body(); ovm_report_info(get_full_name(), {"VMM generator sequence (",get_type_name(),") starting"},OVM_HIGH); num_trans = m_sequencer.max_random_count; // if null, create a new one if (scenario == null) scenario = new; // randomize scenario if (!scenario.randomize()) begin `OVM_REPORT_FATAL("Random Fail","Could not randomize sequence"); end else begin // copy ids scenario.scenario_id = get_inst_id(); scenario.stream_id = m_sequencer.get_inst_id(); copy_scenario_ids(scenario); // apply specified number of times (default: 1 time) repeat (scenario.repeated + 1) scenario.apply(this.chan, num_trans); end ovm_report_info(get_full_name(), {"VMM generator sequence (",get_type_name(),") finishing"},OVM_HIGH); endtask
例題は、sv/examples/ovm_interop/02_interconnected/08_vmm_scenario_adapter.sv
検証、Verification、SystemVerilog、VMM、OVM、Verification Methodology Manual、Open Verification Methodology