Open
Description
I've pondering this for a while. If I understand correctly, multi-dimensional memories are not directly mappable when doing synthesis, which probably means that at some point, the underlying synthesis toolchain remaps that accesses to multi-dimensional memories to single dimension ones.
If this is true, I think we should move multi-dimensional memories out of the core primitives and implement a pass that lower multi-dimensional memories into single dimensional memories to make the cost of this transformation explicit.
I'd also like the CIRCT folks to chime in if possible: @mikeurbach @stephenneuendorffer