Verification Engineerの戯言
my_scenarioクラスは、vmm_ms_scenarioクラスを継承します。
メンバーとして2つのシナリオ(my_atm_cell_scenarioクラスと
my_cpu_scenarioクラス)を持ちます。
my_scenarioクラスのexecuteタスクがgen.stop_after_n_scenarios回(10回)、呼ばれます。
メンバーとして2つのシナリオ(my_atm_cell_scenarioクラスと
my_cpu_scenarioクラス)を持ちます。
class my_scenario extends vmm_ms_scenario; my_atm_cell_scenario atm_scenario; my_cpu_scenario cpu_scenario;前回のgen.start_xactor()で起動されると、
my_scenarioクラスのexecuteタスクがgen.stop_after_n_scenarios回(10回)、呼ばれます。
task execute(ref int n); fork begin atm_cell_channel out_chan; int unsigned nn = 0; $cast(out_chan, this.get_channel("ATM_SCENARIO_CHANNEL")); atm_scenario.randomize with {length == 1;}; atm_scenario.apply(out_chan, nn); n += nn; end begin cpu_channel out_chan; int unsigned nn = 0; $cast(out_chan,this.get_channel("CPU_SCENARIO_CHANNEL")); cpu_scenario.randomize with {length == 1;}; cpu_scenario.apply(out_chan, nn); n += nn; end join endtask: execute2つのシナリオを平行して生成します。
検証、Verification、SystemVerilog、VMM、Verification Methodology Manual