vr_ad
eのパッケージを使用しています。私の質問は: レジスタを変更するための次の 2 つのマクロの違いは何ですか (foo
レジスタが 2 つのフィールドで構成されているとします:field1
とfield2
):
1)
write_reg foo {.field1 == 1;};
2)
write_reg_fields foo {.field1 = 1};
どんな助けにも本当に感謝します
これらのフォームには非常に重要な違いがあります。
最初に、定義されたすべての制約 + このアクションで記述した制約 (field1 == 1) を使用して、レジスタ値が生成されます。新しく生成された値が DUT に書き込まれます。
2 番目のコードでは、レジスターの 1 つのフィールド (field1) のみを変更したいと述べています。vr_ad が e モデル (シャドウ モデル) からレジスタの現在の値を取得し、field1 を変更し、新しい値を DUT のレジスタに書き込みます。他のレジスタのフィールドは変更されません。また、field1 に割り当てた値が、このレジスタで定義された制約に準拠しているかどうかはチェックされません。