Я простую последовательностьМогу ли я получить имя регистра (доступный в regmodel) из строки
regmodel.REGx.write (...)
Давайте рассмотрим Я 8 регистров под regmodel именно. REG0, REG1, REG2, ...., REG7 Я хотел бы передать номер как аргумент test plus, скажем + NUM = 4
Используя $ sformat или $ psprintf, я могу создать строковую переменную с соответствующим именем регистра , например
if ($value$plusargs ("NUM=%0d", num))
$display ("Testcase passed %0d num", num);
else
num = 0;
$sformat (regName, "REG%0d", num);
теперь я, но я регистр 'не может использовать следующее:
regmodel.regName.write (...)
регистр' имеет тип строки и regmodel doens't есть имена регистров регистр ', Есть ли другой способ достичь это? Я смотрел на get_name, get_full_name, но в этом случае это не помогло.
На данный момент я могу иметь if-else 8 раз или оператор case, однако это было бы действительно неудобно для большого количества регистров.
Спасибо, что сработало отлично, хотя на данный момент я не создал отдельную функцию. Теперь, когда я смотрю документацию для модели Register -> Blocks (https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.1d/html/index.html), я нахожу ее там :) – wisemonkey