мне нужно получить доступ к 4 одинаковым регистрам, которые отличаются только по смещению.
макет reg: reg0: 0x10 reg1: 0x14 reg2: 0x18 reg3: 0x20, и я использую автоинструмент для генерации uvm_block, как показано ниже
class dut_reg_block extend uvm_reg_block
REG0 reg0;
REG1 reg1;
REG2 reg2;
REG3 reg3;
endclass;
поддержка У меня есть функция ConfigureDut ( RegNum ), и в ней я хочу получить доступ к регистру в соответствии с RegNum (0 ~ 3), как этого добитьсяИзящно?
В настоящее время код выглядит примерно так:
if (RegNum == 0) reg_block.reg0.read(data);
else if (RegNum == 1) reg_block.reg1.read(data);
else if (RegNum == 2) reg_block.reg2.read(data);
......
, поскольку uvm_block генерируется автоматически, поэтому я тоже не смог использовать массив.Кто-нибудь может предложить лучший способ доступа к этим реестрам?спасибо!