У меня есть простая последовательность
regmodel.REGx.write (...)
Давайте рассмотрим, что у меня есть 8 регистров в regmodel, а именно. 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 имеет тип string, а regmodel не имеет имен регистров regName. Есть ли другой способ добиться этого? Я смотрел на get_name, get_full_name, но в данном случае они не могли помочь.
На данный момент я могу иметь if-else 8 раз или оператор case, однако это было бы очень неудобно для большого количества регистров.