cores/ram: cosmetic cleanup.
This commit is contained in:
parent
444a605dea
commit
9440975a1f
|
@ -42,12 +42,14 @@ class Up5kSPRAM(Module):
|
||||||
depth_cascading = size//(128*kB)
|
depth_cascading = size//(128*kB)
|
||||||
width_cascading = 4
|
width_cascading = 4
|
||||||
|
|
||||||
|
# Combine RAMs to increase Depth.
|
||||||
for d in range(depth_cascading):
|
for d in range(depth_cascading):
|
||||||
|
# Combine RAMs to increase Width.
|
||||||
for w in range(width_cascading):
|
for w in range(width_cascading):
|
||||||
datain = Signal(16)
|
datain = Signal(16)
|
||||||
dataout = Signal(16)
|
dataout = Signal(16)
|
||||||
maskwren = Signal(4)
|
maskwren = Signal(4)
|
||||||
wren = Signal()
|
wren = Signal()
|
||||||
self.comb += [
|
self.comb += [
|
||||||
datain.eq(self.bus.dat_w[16*w:16*(w+1)]),
|
datain.eq(self.bus.dat_w[16*w:16*(w+1)]),
|
||||||
If(self.bus.adr[14:14+log2_int(depth_cascading)+1] == d,
|
If(self.bus.adr[14:14+log2_int(depth_cascading)+1] == d,
|
||||||
|
@ -61,16 +63,16 @@ class Up5kSPRAM(Module):
|
||||||
maskwren[3].eq(self.bus.sel[2*w + 1]),
|
maskwren[3].eq(self.bus.sel[2*w + 1]),
|
||||||
]
|
]
|
||||||
self.specials += Instance("SB_SPRAM256KA",
|
self.specials += Instance("SB_SPRAM256KA",
|
||||||
i_ADDRESS=self.bus.adr[:14],
|
i_CLOCK = ClockSignal("sys"),
|
||||||
i_DATAIN=datain,
|
i_STANDBY = 0b0,
|
||||||
i_MASKWREN=maskwren,
|
i_SLEEP = 0b0,
|
||||||
i_WREN=wren,
|
i_POWEROFF = 0b1,
|
||||||
i_CHIPSELECT=0b1,
|
i_ADDRESS = self.bus.adr[:14],
|
||||||
i_CLOCK=ClockSignal("sys"),
|
i_DATAIN = datain,
|
||||||
i_STANDBY=0b0,
|
i_MASKWREN = maskwren,
|
||||||
i_SLEEP=0b0,
|
i_WREN = wren,
|
||||||
i_POWEROFF=0b1,
|
i_CHIPSELECT = 0b1,
|
||||||
o_DATAOUT=dataout
|
o_DATAOUT = dataout
|
||||||
)
|
)
|
||||||
|
|
||||||
self.sync += self.bus.ack.eq(self.bus.stb & self.bus.cyc & ~self.bus.ack)
|
self.sync += self.bus.ack.eq(self.bus.stb & self.bus.cyc & ~self.bus.ack)
|
||||||
|
|
|
@ -36,17 +36,19 @@ class NXLRAM(Module):
|
||||||
depth_cascading = size//(128*kB)
|
depth_cascading = size//(128*kB)
|
||||||
width_cascading = 2
|
width_cascading = 2
|
||||||
|
|
||||||
|
# Combine RAMs to increase Depth.
|
||||||
for d in range(depth_cascading):
|
for d in range(depth_cascading):
|
||||||
|
# Combine RAMs to increase Width.
|
||||||
for w in range(width_cascading):
|
for w in range(width_cascading):
|
||||||
datain = Signal(32)
|
datain = Signal(32)
|
||||||
dataout = Signal(32)
|
dataout = Signal(32)
|
||||||
cs = Signal()
|
cs = Signal()
|
||||||
wren = Signal()
|
wren = Signal()
|
||||||
self.comb += [
|
self.comb += [
|
||||||
cs.eq(self.bus.adr[14:14+log2_int(depth_cascading)+1] == d),
|
|
||||||
wren.eq(self.bus.we & self.bus.stb & self.bus.cyc),
|
|
||||||
datain.eq(self.bus.dat_w[32*w:32*(w+1)]),
|
datain.eq(self.bus.dat_w[32*w:32*(w+1)]),
|
||||||
If(cs,
|
If(self.bus.adr[14:14+log2_int(depth_cascading)+1] == d,
|
||||||
|
cs.eq(1),
|
||||||
|
wren.eq(self.bus.we & self.bus.stb & self.bus.cyc),
|
||||||
self.bus.dat_r[32*w:32*(w+1)].eq(dataout)
|
self.bus.dat_r[32*w:32*(w+1)].eq(dataout)
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue