In the uvm users guide 1.2 , chapter 5.5.1.6 User-defined Field Access Policy:
I tried to apply this example in my project which has some private registers that can only be written when a password register is written with correct password.
But when I compiled, the following error occurs:
Incompatible complex type assignment
Type of source expression is incompatible with type of target expression.
Mismatching types cannot be used in assignments, initializations and
instantiations. The type of the target is 'bit[63:0]$[]', while the type of
the source is 'bit[63:0]'.
After some checking, the member “value” in uvm_reg_field is uvm_reg_data_t but the member “value” of uvm_reg_item is actually uvm_reg_data_t.
So to apply the example, can I just change rw.value to rw.value[0]?
and why rw.value is a dynamic array instead of just one value?