Iは連想配列有する:文字列である(アレイがDUT内のレジスタのためのUVMレジスタフィールドのハンドルを含む文字列によって索引付けされランダム
rand uvm_reg_field array_assoc[string];
をフィールドの名前)。 「reg_field_1」と「reg_field_2」という名前の2つのレジスタフィールドがあるとします。
説明したように、
array_assoc["reg_field_1"]= handle of field 1;
array_assoc["reg_field_2"]= handle of field 2;
私は "reg_field_1" と言う、私は選択の分野のいずれかのrand_modeをオフにし、一つだけのフィールドをランダム化する必要があり、そう:
array_assoc["reg_field_1"].rand_mode(0);
今、私が連想配列をランダム化すると、両方のレジスタフィールドがランダム化されています。
何でももっと驚くべきことは、すなわち私は、整数インデックスは、そのようなことで通常の配列を宣言した場合:
rand uvm_reg_field array_normal[2];
array_normal[0]= handle of field 1;
array_normal[1]= handle of field 2;
、その後、フィールド1のためにrand_modeのターン:
array_normal[0].rand_mode(0);
正常に動作し、フィールド1はランダム化されません。
質問です:はなぜレジスタフィールド「reg_field_1は」そのrand_modeが連想配列の場合は0に設定されている場合でも、ランダム化されつつありますか?