soc_core: add automatic down-conversion of CPU buses to 32-bit (if needed)

This commit is contained in:
Florent Kermarrec 2019-10-11 08:59:25 +02:00
parent 03faf06c82
commit ca81cc209b
2 changed files with 8 additions and 0 deletions

View File

@ -184,6 +184,12 @@ class SoCCore(Module):
# Add CPU buses as Wisbone masters
for bus in self.cpu.buses:
assert bus.data_width in [32, 64, 128]
# Down Convert CPU buses to 32-bit if needed
if bus.data_width != 32:
dc_bus = wishbone.Interface()
self.submodules += wishbone.Converter(bus, dc_bus)
bus = dc_bus
self.add_wb_master(bus)
# Add CPU CSR (dynamic)

View File

@ -34,6 +34,8 @@ _layout = [
class Interface(Record):
def __init__(self, data_width=32, adr_width=30):
self.data_width = data_width
self.adr_width = adr_width
Record.__init__(self, set_layout_parameters(_layout,
adr_width=adr_width,
data_width=data_width,