Reg_assist register model access type with WO FIFO register

Hi all,

I’m using the reg_assist tool to generate my register model. Now I have a write only register in my design that has a FIFO behind. When I write 2 times to this registers with the same data value only the first is written. Seems that the register model doesn’t execute the second write because the shadow value in the model signals that the registers value will not be updated.

What access type do I need to use in the Excel register overview to flag a volatile register or register field?

Best regards,
Ronald Gijsbertse

OK, found my own answer…

The register model doesn’t support this type of register although there is the m_volatile member in the uvm_reg_field class which suggests that a register field can be defined as volatile. I found that this member is not used at all. I assume it is there for future developments of the UVM register model.

The way I solved my issue is the following.
I defined my own “Quirky” register class by extending from uvm_reg and I overrode the needs_update function so that it always returns 1. In the reg_assist xls/csv I added a ‘register parameter’ at the register instance that forces the use of my register class for that register. The effect is that the register is now always updated even when the written data is the same.

How the register parameters are set in the csv file is described in the reg_assist documentation: RA_manual.pdf section ‘Supporting Simple “Quirky” Registers’.