![]() |
small FIFO?
Hello,
is there a smaller way to build a FIFO buffer in VHDL rather than using a reading and a writing pointer? It should be possible to save the reading pointer and the needed multiplexer when you read always from the same position and ripple all data through the FIFO´s registers when reading. I need an as small implementation of a FIFO as possible but I need the possibility to read and write simultaneously. Can anyone help? Thanks! |
Re: small FIFO?
Matthias Alles <alles@rhrk.uni-kl.de> writes:
> Hello, > > is there a smaller way to build a FIFO buffer in VHDL rather than > using a reading and a writing pointer? It should be possible to save > the reading pointer and the needed multiplexer when you read always > from the same position and ripple all data through the FIFO´s > registers when reading. Definitely possible. However, it would burn more power than the version with pointers. Regards, Kai -- Kai Harrekilde-Petersen <khp(at)harrekilde(dot)dk> |
Re: small FIFO?
Kai Harrekilde-Petersen wrote:
> Matthias Alles <alles@rhrk.uni-kl.de> writes: >> is there a smaller way to build a FIFO buffer in VHDL rather than >> using a reading and a writing pointer? It should be possible to save >> the reading pointer and the needed multiplexer when you read always >> from the same position and ripple all data through the FIFO´s >> registers when reading. > > Definitely possible. However, it would burn more power than the > version with pointers. Try it both ways and see. The conventional design can make use of block ram. Actually shifting the entire data pipeline for each read would require registers instead. You save a read counter, but the write counter has to increment for a push and decrement for a pop, so I'm not sure if this is a "smaller way". -- Mike Treseler |
Re: small FIFO?
On Sun, 05 Sep 2004 07:07:27 -0700, Mike Treseler
<mike_treseler@comcast.net> wrote: >Kai Harrekilde-Petersen wrote: >> Matthias Alles <alles@rhrk.uni-kl.de> writes: > >>> is there a smaller way to build a FIFO buffer in VHDL rather than >>> using a reading and a writing pointer? It should be possible to save >>> the reading pointer and the needed multiplexer when you read always >>> from the same position and ripple all data through the FIFO´s >>> registers when reading. >> >> Definitely possible. However, it would burn more power than the >> version with pointers. > >Try it both ways and see. >The conventional design can make use of block ram. >Actually shifting the entire data pipeline >for each read would require registers instead. >You save a read counter, but the >write counter has to increment for a push >and decrement for a pop, so I'm not sure if >this is a "smaller way". If using Xilinx FPGAs, small FIFOs can be made using SRL shift register primitives. The data trickles through the device, and only a single counter / pointer is needed. Regards, Allan |
Re: small FIFO?
> If using Xilinx FPGAs, small FIFOs can be made using SRL shift > register primitives. The data trickles through the device, and only a > single counter / pointer is needed. well, I´m not using FPGAs. I synthesized the smaller FIFO in a 0.13µm technology and saved about 750 µm² with a FIFO with 29 entries and a bitwidth of 6! That´s quite a lot I think. |
| All times are GMT. The time now is 04:58 PM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.