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では、
ランダム生成をするのは、timesであり、times.size()ではないからです。
solve identifier_list before identifier_list ;なので、times.size()ではなく、timesではないのでしょうか?
ランダム生成をするのは、timesであり、times.size()ではないからです。
はたしてどうなのだろうか?
検証、Verification、SystemVerilog、VMM、Verification Methodology Manual