A system for sharing a computational resource by buffering multiple
requests from multiple devices to a memory (e.g. a multi-port RAM or
FIFO) in a single clock cycle. The system includes a memory having a
first write port and a second write port. A first request input is
coupled to the first write port. A second request input is coupled to the
second write port. A controller is coupled to the memory. The controller
is configured to control the memory to store a first request into the
memory via the first write port and a second request into the memory via
the second write port. The first and second requests are received via the
first and second request inputs and stored into the memory in one clock
cycle. Requests are removed from the memory sequentially at a rate that
is determined by the shared computational resource.