nmigen icon indicating copy to clipboard operation
nmigen copied to clipboard

Memory with async read ports can synthesize to a BRAM on Xilinx platforms

Open whitequark opened this issue 4 years ago • 0 comments

Due to what is arguably a bug in the Xilinx toolchain (since it synthesizes perfectly well-formed behavioral Verilog to something that has different behavior), any Memory with an asynchronous read port (often a SyncFIFO) can synthesize to a BRAM in an unpredictable way. To avoid this, a platform-specific pass should insert an attribute for any memory with asynchronous read ports that makes sure it ends up as distributed RAM.

@nakengelhardt tried to fix this in oMigen in https://github.com/m-labs/migen/pull/105, but oMigen does not have the infrastructure required to fix this properly.

whitequark avatar Sep 20 '19 20:09 whitequark