frontend: remove geom/timing parameters from LiteDRAMPort since this prevent providing async or arbitraty length port easily

This commit is contained in:
Florent Kermarrec 2016-05-09 12:07:06 +02:00
parent d7458a3c34
commit 9d2c8bf1cf
3 changed files with 7 additions and 25 deletions

View File

@ -73,12 +73,9 @@ class LiteDRAMInterface(Record):
class LiteDRAMPort(Record):
def __init__(self, aw, dw, cmd_buffer_depth=0, read_latency=0, write_latency=0):
def __init__(self, aw, dw):
self.aw = aw
self.dw = dw
self.cmd_buffer_depth = cmd_buffer_depth
self.read_latency = read_latency
self.write_latency = write_latency
layout = cmd_layout(aw) + data_layout(dw)
Record.__init__(self, layout)

View File

@ -27,10 +27,7 @@ class LiteDRAMCrossbar(Module):
if self.finalized:
raise FinalizeError
port = LiteDRAMPort(self.rca_bits + self.bank_bits,
self.dw,
self.cmd_buffer_depth,
self.read_latency,
self.write_latency)
self.dw)
self.masters.append(port)
return port

View File

@ -5,16 +5,12 @@ from litex.soc.interconnect import stream
class LiteDRAMDMAReader(Module):
def __init__(self, port, fifo_depth=None):
def __init__(self, port, fifo_depth=16):
self.sink = sink = stream.Endpoint([("address", port.aw)])
self.source = source = stream.Endpoint([("data", port.dw)])
self.busy = Signal()
# # #
if fifo_depth is None:
fifo_depth = port.cmd_buffer_depth + port.read_latency + 2
# request issuance
request_enable = Signal()
request_issued = Signal()
@ -39,10 +35,7 @@ class LiteDRAMDMAReader(Module):
rsv_level.eq(rsv_level - 1)
)
]
self.comb += [
self.busy.eq(rsv_level != 0),
request_enable.eq(rsv_level != fifo_depth)
]
self.comb += request_enable.eq(rsv_level != fifo_depth)
# FIFO
fifo = SyncFIFO(port.dw, fifo_depth)
@ -60,16 +53,12 @@ class LiteDRAMDMAReader(Module):
class LiteDRAMDMAWriter(Module):
def __init__(self, port, fifo_depth=None):
def __init__(self, port, fifo_depth=16):
self.sink = sink = stream.Endpoint([("address", port.aw),
("data", port.dw)])
self.busy = Signal()
("data", port.dw)])
# # #
if fifo_depth is None:
fifo_depth = port.cmd_buffer_depth + port.write_latency + 2
fifo = SyncFIFO(port.dw, fifo_depth)
self.submodules += fifo
@ -87,6 +76,5 @@ class LiteDRAMDMAWriter(Module):
fifo.re.eq(1),
port.wdata_we.eq(2**(port.dw//8)-1),
port.wdata.eq(fifo.dout)
),
self.busy.eq(fifo.readable)
)
]