Using uvm_reg instead of uvm_mem to create memory in ral model, but it's consume too much tool memory and causing the error?

Using uvm_reg instead of uvm_mem to create memory in ral model, is that uvm_reg will consume much more too memory compare to uvm_mem ? i need the explanation guys thanks

In reply to Guan:

I’m assuming you are getting a “out of space” error.

The uvm_reg model would create a class object for every element of a memory. That object contains significantly more data than the element it is modeling, including the mirrored and desired register values. The main use of uvm_mem is having the same read/write abstraction layer and the memory mapping feature which maps a name to a physical address and a particular driver interface. You can also setup backdoor access.

In reply to dave_59:

In reply to Guan:
I’m assuming you are getting a “out of space” error.
The uvm_reg model would create a class object for every element of a memory. That object contains significantly more data than the element it is modeling, including the mirrored and desired register values. The main use of uvm_mem is having the same read/write abstraction layer and the memory mapping feature which maps a name to a physical address and a particular driver interface. You can also setup backdoor access.

Sorry, I have make a typo there, consume much more tool memory yup I am getting out of space for that tool memory and getting error. That’s mean uvm_reg is not suitable to replace uvm_memory to create a huge memory right ? Since it will consume too much memory tool and causing error.