Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

VMM 1.1:vmm_ms_scenarioクラスの例題(その2)

Verification Engineerの戯言

my_scenarioクラスは、vmm_ms_scenarioクラスを継承します。
メンバーとして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: execute
2つのシナリオを平行して生成します。

検証、Verification、SystemVerilog、VMM、Verification Methodology Manual