Open
Description
Issue by whitequark
Friday Sep 20, 2019 at 20:13 GMT
Originally opened as m-labs/nmigen#218
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 m-labs/migen#105, but oMigen does not have the infrastructure required to fix this properly.