Merge pull request #1488 from Icenowy/wide-soc

Misc changes for a wider SoC
This commit is contained in:
enjoy-digital 2022-11-04 07:49:27 +01:00 committed by GitHub
commit 3a5a2b5c7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 7 deletions

View File

@ -40,7 +40,7 @@ def get_mem_regions(filename_or_regions, offset):
return regions return regions
def get_mem_data(filename_or_regions, data_width=32, endianness="big", mem_size=None, offset=0): def get_mem_data(filename_or_regions, data_width=32, endianness="big", mem_size=None, offset=0):
assert data_width in [32, 64] assert data_width % 32 == 0
assert endianness in ["big", "little"] assert endianness in ["big", "little"]
# Return empty list if no filename or regions. # Return empty list if no filename or regions.
@ -80,11 +80,11 @@ def get_mem_data(filename_or_regions, data_width=32, endianness="big", mem_size=
"little": "<I", "little": "<I",
"big": ">I" "big": ">I"
}[endianness] }[endianness]
if data_width == 32: data[(base - offset)//bytes_per_data + i] = 0
data[(base - offset)//bytes_per_data + i] = struct.unpack(unpack_order, w)[0] for filled_data_width in range(0, data_width, 32):
if data_width == 64: cur_byte = filled_data_width//8
data[(base - offset)//bytes_per_data + i] = (struct.unpack(unpack_order, w[0:4])[0] << 0) data[(base - offset)//bytes_per_data + i] |= (struct.unpack(unpack_order, w[cur_byte:cur_byte+4])[0] << filled_data_width)
data[(base - offset)//bytes_per_data + i] |= (struct.unpack(unpack_order, w[4:8])[0] << 32) filled_data_width += 32
i += 1 i += 1
return data return data

View File

@ -1581,7 +1581,7 @@ class LiteXSoC(SoC):
port.data_width = 2**int(log2(port.data_width)) # Round to nearest power of 2. port.data_width = 2**int(log2(port.data_width)) # Round to nearest power of 2.
# Create Wishbone Slave. # Create Wishbone Slave.
wb_sdram = wishbone.Interface() wb_sdram = wishbone.Interface(data_width=self.bus.data_width)
self.bus.add_slave("main_ram", wb_sdram) self.bus.add_slave("main_ram", wb_sdram)
# L2 Cache # L2 Cache