changed auxctrl tx/rx memory to axi2csr_sram
This commit is contained in:
parent
9c14694fc4
commit
d3152f3d24
@ -17,7 +17,6 @@ class DRTIOAuxControllerAxi(Module):
|
|||||||
self.submodules.transmitter = Transmitter(link_layer, len(self.bus.w.data))
|
self.submodules.transmitter = Transmitter(link_layer, len(self.bus.w.data))
|
||||||
self.submodules.receiver = Receiver(link_layer, len(self.bus.w.data))
|
self.submodules.receiver = Receiver(link_layer, len(self.bus.w.data))
|
||||||
|
|
||||||
# probably will need to make axi.SRAM based on wb code
|
|
||||||
tx_sdram_if = SRAM(self.transmitter.mem, read_only=False)
|
tx_sdram_if = SRAM(self.transmitter.mem, read_only=False)
|
||||||
rx_sdram_if = SRAM(self.receiver.mem, read_only=True)
|
rx_sdram_if = SRAM(self.receiver.mem, read_only=True)
|
||||||
wsb = log2_int(len(self.bus.w.data)//8)
|
wsb = log2_int(len(self.bus.w.data)//8)
|
||||||
@ -33,3 +32,15 @@ class DRTIOAuxControllerAxi(Module):
|
|||||||
|
|
||||||
def get_csrs(self):
|
def get_csrs(self):
|
||||||
return self.transmitter.get_csrs() + self.receiver.get_csrs()
|
return self.transmitter.get_csrs() + self.receiver.get_csrs()
|
||||||
|
|
||||||
|
@FullMemoryWE()
|
||||||
|
class DRTIOAuxControllerBare(Module):
|
||||||
|
# Barebones version of the AuxController. No SRAM, no decoders.
|
||||||
|
# add memories manually from tx and rx in target code.
|
||||||
|
def __init__(self, link_layer):
|
||||||
|
self.bus = axi.Interface()
|
||||||
|
self.submodules.transmitter = Transmitter(link_layer, len(self.bus.w.data))
|
||||||
|
self.submodules.receiver = Receiver(link_layer, len(self.bus.w.data))
|
||||||
|
|
||||||
|
def get_csrs(self):
|
||||||
|
return self.transmitter.get_csrs() + self.receiver.get_csrs()
|
||||||
|
@ -288,12 +288,14 @@ class GenericMaster(SoCCore):
|
|||||||
self.drtio_cri.append(core.cri)
|
self.drtio_cri.append(core.cri)
|
||||||
self.csr_devices.append(core_name)
|
self.csr_devices.append(core_name)
|
||||||
|
|
||||||
coreaux = cdr(aux_controller.DRTIOAuxControllerAxi(core.link_layer))
|
coreaux = cdr(aux_controller.DRTIOAuxControllerBare(core.link_layer))
|
||||||
setattr(self.submodules, coreaux_name, coreaux)
|
setattr(self.submodules, coreaux_name, coreaux)
|
||||||
self.csr_devices.append(coreaux_name)
|
self.csr_devices.append(coreaux_name)
|
||||||
|
|
||||||
memory_address = self.mem_map["drtioaux"] + 0x800*i
|
memory_address, size = self.axi2csr.add_memory(coreaux.transmitter.mem, read_only=False)
|
||||||
self.register_mem(memory_name, memory_address, 0x800, coreaux.bus)
|
# rcv in upper half of the memory, thus added second
|
||||||
|
self.axi2csr.add_memory(coreaux.receiver.mem, read_only=False)
|
||||||
|
self.add_memory_region(memory_name, self.mem_map["csr"] + memory_address, size * 2)
|
||||||
self.rustc_cfg["has_drtio"] = None
|
self.rustc_cfg["has_drtio"] = None
|
||||||
self.rustc_cfg["has_drtio_routing"] = None
|
self.rustc_cfg["has_drtio_routing"] = None
|
||||||
self.add_csr_group("drtio", drtio_csr_group)
|
self.add_csr_group("drtio", drtio_csr_group)
|
||||||
@ -427,12 +429,16 @@ class GenericSatellite(SoCCore):
|
|||||||
self.drtio_cri.append(core.cri)
|
self.drtio_cri.append(core.cri)
|
||||||
self.csr_devices.append(corerep_name)
|
self.csr_devices.append(corerep_name)
|
||||||
|
|
||||||
coreaux = cdr(aux_controller.DRTIOAuxControllerAxi(core.link_layer))
|
coreaux = cdr(aux_controller.DRTIOAuxControllerBare(core.link_layer))
|
||||||
setattr(self.submodules, coreaux_name, coreaux)
|
setattr(self.submodules, coreaux_name, coreaux)
|
||||||
self.csr_devices.append(coreaux_name)
|
self.csr_devices.append(coreaux_name)
|
||||||
|
|
||||||
memory_address = self.mem_map["drtioaux"] + 0x800*i
|
memory_address, size = self.axi2csr.add_memory(coreaux.transmitter.mem, read_only=False)
|
||||||
self.register_mem(memory_name, memory_address, 0x800, coreaux.bus)
|
# rcv in upper half of the memory, thus added second
|
||||||
|
self.axi2csr.add_memory(coreaux.receiver.mem, read_only=False)
|
||||||
|
# and registered in PS interface
|
||||||
|
# manually, because software refers to rx/tx by halves of entire memory block, not names
|
||||||
|
self.add_memory_region(memory_name, self.mem_map["csr"] + memory_address, size * 2)
|
||||||
self.config["has_drtio"] = None
|
self.config["has_drtio"] = None
|
||||||
self.config["has_drtio_routing"] = None
|
self.config["has_drtio_routing"] = None
|
||||||
self.add_csr_group("drtioaux", drtioaux_csr_group)
|
self.add_csr_group("drtioaux", drtioaux_csr_group)
|
||||||
|
@ -330,12 +330,16 @@ class _SatelliteBase(SoCCore):
|
|||||||
# Repeaters - there would be for i != 0 - however zc706 only has one SFP
|
# Repeaters - there would be for i != 0 - however zc706 only has one SFP
|
||||||
# and no other means to connect to
|
# and no other means to connect to
|
||||||
|
|
||||||
coreaux = cdr(aux_controller.DRTIOAuxControllerAxi(core.link_layer))
|
coreaux = cdr(aux_controller.DRTIOAuxControllerBare(core.link_layer))
|
||||||
setattr(self.submodules, coreaux_name, coreaux)
|
setattr(self.submodules, coreaux_name, coreaux)
|
||||||
self.csr_devices.append(coreaux_name)
|
self.csr_devices.append(coreaux_name)
|
||||||
|
|
||||||
memory_address = self.mem_map["drtioaux"] + 0x800*i
|
memory_address, size = self.axi2csr.add_memory(coreaux.transmitter.mem, read_only=False)
|
||||||
self.register_mem(memory_name, memory_address, 0x800, coreaux.bus)
|
# rcv in upper half of the memory, thus added second
|
||||||
|
self.axi2csr.add_memory(coreaux.receiver.mem, read_only=False)
|
||||||
|
# and registered in PS interface
|
||||||
|
# manually, because software refers to rx/tx by halves of entire memory block, not names
|
||||||
|
self.add_memory_region(memory_name, self.mem_map["csr"] + memory_address, size * 2)
|
||||||
self.rustc_cfg["has_drtio"] = None
|
self.rustc_cfg["has_drtio"] = None
|
||||||
# it does not have drtio routing support!
|
# it does not have drtio routing support!
|
||||||
self.add_csr_group("drtioaux", drtioaux_csr_group)
|
self.add_csr_group("drtioaux", drtioaux_csr_group)
|
||||||
|
Loading…
Reference in New Issue
Block a user