uvm_memory_range

A uvm_memory_range defines one block of memory with a range_start address and an end address.

A range class (uvm_memory_range) has a range_start address and an end address (or a range_start and a length) It has a “type”, (MEMORY_RAND, MEMORY_RAND_BY_HAND, MEMORY_SET_BY_HAND).

Where

MEMORY_SET_BY_HANDthis range was created by hand, and should not be deleted or changed.
MEMORY_RAND_BY_HANDthis is a range that is random, but we
did add itwe told the system - “create a random range”.
MEMORY_RANDthis is a range that is random, and the system decided to create it on its
own. we didn’t ask for itit’s just filling space, per the randomization/constraints in place.