Search the Community
Showing results for tags 'issue'.
Found 1 result
(Possible) Bug in uvm_mem
tudor.timi posted a topic in UVM (Pre-IEEE) Methodology and BCL ForumI'm trying to declare a memory like this: class some_mem extends uvm_mem; function new(string name = "some_mem"); super.new(name, 2 ** 24, 8, "RO"); endfunction endfunction Later on, I'm trying to add this memory to an address map that was created like this: default_map = create_map("some_map", 0, 4, UVM_NO_ENDIAN); By using the default value for the byte_addressing argument I want each address to represent a one byte location. The problem I'm seeing is that the uvm_reg_map_info associated with this memory shows an end address of 32'03ff_ffff and a stride of 4, instead of 32'00ff_ffff and a stride of 1. I've narrowed it down to the function uvm_reg_map::get_physical_address(...), at line 1378 of uvm_reg_map.svh: int multiplier = m_byte_addressing ? bus_width : 1; I guess this should be the other way around: int multiplier = m_byte_addressing ? 1: bus_width; Even better would be to use: int multiplier = get_addr_unit_bytes();