Hi Chris,
I have tried similar code but no use. Let me share the pseudo code that i have written.
class my_test extends uvm_test;
//factory registration ignored
//new constructor for class ignored here
uvm_reg_block reg_model;
virtual task body();
uvm_reg_block blks[$];
uvm_reg regs[$];
reg_model = my_env_inst.ral_model;
reg_model.get_blocks(blks); //returns the child reg block which has register file instance in it
foreach(blks) begin
blks[i].get_registers(regs); // regs queue is empty
endtask
endclass
→ get_registers() a method of uvm_reg class. but it is not picking the registers which are defined inside the register file.
Confirmed the IPXACT xml file with Accellera forum and it is correct.
=> TOP reg_block contains → child_reg_block contains → Register file contains → Registers
Not sure as to why it is not picking the registers inside register file and register file inside the child reg block
Help me with this.
Thanks,
Prashanth