etrounce Posted October 5, 2012 Report Share Posted October 5, 2012 Hi, I think there's a bug in uvm_mem, I'm using 1.1b. I'm using a uvm_mem object (myMem) created/built inside a uvm_reg_block (myRegblock) and assigned to a uvm_reg_map (myRegmap), however the uvm_reg_block has no default_map object, instead it has multiple uvm_reg_map objects all named something other than default_map. However, when I go to do a myMem.read in my testcase, I get a UVM_WARNING: UVM_WARNING .../uvm_mem.svh(1101) @ 51000000.0 ps: reporter [RegModel] Memory 'myRegblock.myMem' is not contained within map 'myRegBlock.firstRegMap' When I do a read, this turns into read() -> do_read() -> Xcheck_accessX() -> get_local_map() -> get_default_map(). In get_default_map, the code discovers the correct map using the sole entry in m_maps and should likely return immediately (bug #1). However it continues by looking at myMem's parent (myRegBlock), gets his default_map (firstRegMap), and passes this map to uvm_mem::get_local_map to check if the memory belongs to this map. It doesn't, so get_local_map throws the warning. I think, in cases where a memory belongs to multiple maps, the read/write command should be forced to provide a map. I think this search for a default map isn't required, instead there should be an error or fatal here. Does this make sense? Erik Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.