frontend/crossbar: continue cleanup/simplify
This commit is contained in:
parent
2ef8879661
commit
3d9ea833dd
|
@ -96,29 +96,27 @@ class LiteDRAMCrossbar(Module):
|
||||||
master_rdata_valid = new_master_rdata_valid
|
master_rdata_valid = new_master_rdata_valid
|
||||||
master_rdata_valids[nm] = master_rdata_valid
|
master_rdata_valids[nm] = master_rdata_valid
|
||||||
|
|
||||||
self.comb += [master.ready.eq(master_ready) for master, master_ready in zip(self.masters, master_readys)]
|
for master, master_ready in zip(self.masters, master_readys):
|
||||||
self.comb += [master.wdata_ready.eq(master_wdata_ready) for master, master_wdata_ready in zip(self.masters, master_wdata_readys)]
|
self.comb += master.ready.eq(master_ready)
|
||||||
self.comb += [master.rdata_valid.eq(master_rdata_valid) for master, master_rdata_valid in zip(self.masters, master_rdata_valids)]
|
for master, master_wdata_ready in zip(self.masters, master_wdata_readys):
|
||||||
|
self.comb += master.wdata_ready.eq(master_wdata_ready)
|
||||||
|
for master, master_rdata_valid in zip(self.masters, master_rdata_valids):
|
||||||
|
self.comb += master.rdata_valid.eq(master_rdata_valid)
|
||||||
|
|
||||||
# route data writes
|
# route data writes
|
||||||
wdata_maskselect = []
|
wdata_maskselect = []
|
||||||
wdata_we_maskselect = []
|
wdata_we_maskselect = []
|
||||||
for master in self.masters:
|
for master in self.masters:
|
||||||
o_wdata = Signal(self.dw)
|
wdata_maskselect.append(master.wdata)
|
||||||
o_wdata_we = Signal(self.dw//8)
|
wdata_we_maskselect.append(master.wdata_we)
|
||||||
self.comb += [
|
|
||||||
o_wdata.eq(master.wdata),
|
|
||||||
o_wdata_we.eq(master.wdata_we)
|
|
||||||
]
|
|
||||||
wdata_maskselect.append(o_wdata)
|
|
||||||
wdata_we_maskselect.append(o_wdata_we)
|
|
||||||
self.comb += [
|
self.comb += [
|
||||||
controller.wdata.eq(reduce(or_, wdata_maskselect)),
|
controller.wdata.eq(reduce(or_, wdata_maskselect)),
|
||||||
controller.wdata_we.eq(reduce(or_, wdata_we_maskselect))
|
controller.wdata_we.eq(reduce(or_, wdata_we_maskselect))
|
||||||
]
|
]
|
||||||
|
|
||||||
# route data reads
|
# route data reads
|
||||||
self.comb += [master.rdata.eq(self.controller.rdata) for master in self.masters]
|
for master in self.masters:
|
||||||
|
self.comb += master.rdata.eq(self.controller.rdata)
|
||||||
|
|
||||||
def split_master_addresses(self, bank_bits, rca_bits, cba_shift):
|
def split_master_addresses(self, bank_bits, rca_bits, cba_shift):
|
||||||
m_ba = [] # bank address
|
m_ba = [] # bank address
|
||||||
|
@ -130,7 +128,8 @@ class LiteDRAMCrossbar(Module):
|
||||||
self.comb += cba.eq(master.adr[cba_shift:cba_upper])
|
self.comb += cba.eq(master.adr[cba_shift:cba_upper])
|
||||||
if cba_shift < self.rca_bits:
|
if cba_shift < self.rca_bits:
|
||||||
if cba_shift:
|
if cba_shift:
|
||||||
self.comb += rca.eq(Cat(master.adr[:cba_shift], master.adr[cba_upper:]))
|
self.comb += rca.eq(Cat(master.adr[:cba_shift],
|
||||||
|
master.adr[cba_upper:]))
|
||||||
else:
|
else:
|
||||||
self.comb += rca.eq(master.adr[cba_upper:])
|
self.comb += rca.eq(master.adr[cba_upper:])
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue