Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

sram: do not use MemoryPort

  • Loading branch information...
commit 0620e75cb8af6de67abee43114a469955ec8fbdf 1 parent 0c29775
@sbourdeauducq sbourdeauducq authored
Showing with 11 additions and 9 deletions.
  1. +11 −9 milkymist/sram/__init__.py
View
20 milkymist/sram/__init__.py
@@ -7,14 +7,18 @@ def __init__(self, depth):
self.depth = depth
def get_fragment(self):
+ # memory
+ mem = Memory(32, self.depth)
+ port = mem.get_port(write_capable=True, we_granularity=8)
# generate write enable signal
- we = Signal(BV(4))
- comb = [we[i].eq(self.bus.cyc & self.bus.stb & self.bus.we & self.bus.sel[i])
+ comb = [port.we[i].eq(self.bus.cyc & self.bus.stb & self.bus.we & self.bus.sel[i])
for i in range(4)]
- # split address
- nbits = bits_for(self.depth-1)
- partial_adr = Signal(BV(nbits))
- comb.append(partial_adr.eq(self.bus.adr[:nbits]))
+ # address and data
+ comb += [
+ port.adr.eq(self.bus.adr[:len(port.adr)]),
+ port.dat_w.eq(self.bus.dat_w),
+ self.bus.dat_r.eq(port.dat_r)
+ ]
# generate ack
sync = [
self.bus.ack.eq(0),
@@ -22,6 +26,4 @@ def get_fragment(self):
self.bus.ack.eq(1)
)
]
- # memory
- port = MemoryPort(partial_adr, self.bus.dat_r, we, self.bus.dat_w, we_granularity=8)
- return Fragment(comb, sync, memories=[Memory(32, self.depth, port)])
+ return Fragment(comb, sync, memories=[mem])
Please sign in to comment.
Something went wrong with that request. Please try again.