Fix Specification Memory Port Types (#2319) (#2322)
Correct incorrect type specified for memories in the FIRRTL
specification. This is important because the memory type determines
what is a legal bundle to try to connect to a memory port.
I based this off of FIRRTL accepting the following circuit:
circuit MemOrder:
module MemOrder:
input r: {addr : UInt<3>, en : UInt<1>, clk : Clock, flip data : UInt<1>}
input w: {addr : UInt<3>, en : UInt<1>, clk : Clock, data : UInt<1>, mask : UInt<1>}
input rw: {addr : UInt<3>, en : UInt<1>, clk : Clock, flip rdata : UInt<1>, wmode : UInt<1>, wdata : UInt<1>, wmask : UInt<1>}
mem memory:
data-type => UInt<1>
depth => 8
reader => r
writer => w
readwriter => rw
read-latency => 1
write-latency => 1
read-under-write => undefined
memory.r <= r
memory.w <= w
memory.rw <= rw
Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com>
(cherry picked from commit 8abf3085
)
# Conflicts:
# spec/spec.pdf
Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com>
parent
559c6672
Please register or sign in to comment