私は簡単なシーケンスを持っています
regmodel.REGx.write (...)
regmodel vizの下に8つのレジスタがあると考えてみましょう。REG0, REG1, REG2,....,REG7 テストと引数として数値を渡したいのですが、たとえば +NUM=4 とします。
$sformat または $psprintf を使用して、適切なレジスタ名を持つ文字列変数を作成できます。
if ($value$plusargs ("NUM=%0d", num))
$display ("Testcase passed %0d num", num);
else
num = 0;
$sformat (regName, "REG%0d", num);
今、私は regName を持っていますが、以下を使用することはできません:
regmodel.regName.write (...)
regName は文字列型で、regmodel にはレジスタ名 regName がありません。これを達成する他の方法はありますか? get_name、get_full_name を見ていましたが、この場合は役に立ちませんでした。
今のところ、if - else 8 回または case ステートメントを使用できますが、レジスタが多数ある場合は非常に不便です。