actorlib/dma_asmi/OOOWriter: fix tag offset
This commit is contained in:
parent
12deaa91d8
commit
fd089b146f
|
@ -105,8 +105,7 @@ class SequentialWriter(Module):
|
||||||
]
|
]
|
||||||
|
|
||||||
class _WriteSlot(Module):
|
class _WriteSlot(Module):
|
||||||
def __init__(self, port, n):
|
def __init__(self, port, load_data, n):
|
||||||
self.load_data = Signal(port.hub.dw)
|
|
||||||
self.busy = Signal()
|
self.busy = Signal()
|
||||||
|
|
||||||
###
|
###
|
||||||
|
@ -119,15 +118,15 @@ class _WriteSlot(Module):
|
||||||
]
|
]
|
||||||
|
|
||||||
self.sync += [
|
self.sync += [
|
||||||
If(port.stb & port.ack & (port.tag_issue == (port.base + n)),
|
|
||||||
self.busy.eq(1),
|
|
||||||
data_reg.eq(self.load_data)
|
|
||||||
),
|
|
||||||
drive_data.eq(0),
|
drive_data.eq(0),
|
||||||
If(port.get_call_expression(n),
|
If(port.get_call_expression(n),
|
||||||
self.busy.eq(0),
|
self.busy.eq(0),
|
||||||
drive_data.eq(1)
|
drive_data.eq(1)
|
||||||
)
|
),
|
||||||
|
If(port.stb & port.ack & (port.tag_issue == n),
|
||||||
|
self.busy.eq(1),
|
||||||
|
data_reg.eq(load_data)
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
class OOOWriter(Module):
|
class OOOWriter(Module):
|
||||||
|
@ -147,9 +146,9 @@ class OOOWriter(Module):
|
||||||
|
|
||||||
busy = 0
|
busy = 0
|
||||||
for i in range(len(port.slots)):
|
for i in range(len(port.slots)):
|
||||||
write_slot = _WriteSlot(port, i)
|
write_slot = _WriteSlot(port, self.address_data.payload.d, i)
|
||||||
|
#write_slot = _WriteSlot(port, 0x12345678abad1deacafebabedeadbeef, i)
|
||||||
self.submodules += write_slot
|
self.submodules += write_slot
|
||||||
self.comb += write_slot.load_data.eq(self.address_data.payload.d)
|
|
||||||
busy = busy | write_slot.busy
|
busy = busy | write_slot.busy
|
||||||
self.comb += self.busy.eq(busy)
|
self.comb += self.busy.eq(busy)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue