Vengineerの妄想(準備期間)

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

vmm_scenario_genマクロ

Verification Engineerの戯言

vmm_scenario_gen.svファイル内のvmm_scenario_genマクロを追っていくと、
次の部分でちょっと気になるところがありました。
   constraint `vmm_scenario_valid_(class_name) { \
      scenario_kind >= 0; \
      scenario_kind < next_scenario_kind; \
 \
      length >= 0; \
      length <= max_length; \
 \
      items.size() == length; \
 \
      repeated >= 0; \
 \
      solve scenario_kind before length `VMM_SOLVE_BEFORE_OPT; \
      solve length before items.size() `VMM_SOLVE_BEFORE_OPT; \
   } \

気になった場所は、solve length befor times.size() `VMM_SOLVE_BEFOR_OPT;times.size()です。IEEE 1800-2005の13.4.9 Variable orderingでは、
    solve identifier_list before identifier_list ;
なので、times.size()ではなく、timesではないのでしょうか?
ランダム生成をするのは、timesであり、times.size()ではないからです。

はたしてどうなのだろうか?

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