This seems to be caused by SlotArray not assigning unique names to the slots.
Changing:
slots = [_Slot(addr_bits, alignment_bits) for i in range(nslots)]
for n, slot in enumerate(slots):
setattr(self.submodules, "slot"+str(n), slot)
setattr(self.ev, "slot"+str(n), slot.ev_source)
self.ev.finalize()
to:
slots = [_Slot(addr_bits, alignment_bits) for i in range(nslots)]
for n, slot in enumerate(slots):
setattr(slot.ev_source, "name", "slot"+str(n)) # To get unique name for each slot ev_source
setattr(self.submodules, "slot"+str(n), slot)
setattr(self.ev, "slot"+str(n), slot.ev_source)
self.ev.finalize()
This seems to be caused by SlotArray not assigning unique names to the slots. Changing:
to:
Seems to fix the issue.