Efficient Multi-Ported Memories for FPGAs

C. Eric LaForest and J. Gregory Steffan
University of Toronto


Abstract

Multi-ported memories are challenging to implement on FPGAs since the provided block RAMs typically have only two ports. We present a thorough exploration of the design space of FPGA multi-ported memories by evaluating conventional solutions to this problem, and introduce a new design that efficiently combines block RAMs into multi-ported memories with arbitrary numbers of read and write ports and true random access to any memory location, while achieving significantly higher operating frequencies than conventional approaches. For example we build a 256-location, 32-bit, 12-ported (4-write, 8-read) memory which operates at 281 MHz on Altera Stratix III FPGAs while consuming an area equivalent to 3679 ALMs: a 43% speed improvement and 84% area reduction over a pure ALM implementation, and a 61% speed improvement over a ``multipumped'' implementation, although the multipumped implementation is 7.2x smaller.