We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!


Short AXIS FIFO (<16 depth), independant clock, source code

Posts: 40
Registered: ‎03-29-2015

Short AXIS FIFO (<16 depth), independant clock, source code

Does anyone have any source code (VHDL preferred, Verilog also OK) for very short AXI stream FIFO, with independent master/slave clocks ? Thanks.

The FIFO Generator 13.1 has minimum FIFO depth 16. (why is this? isn't it a very normal case when using FIFO just to cross clock domain we want it to be as short as possible? the other common use case for very short FIFOs is breaking up long TREADY routing paths?)

I have lots of AXIS FIFOs in my design to help route AXIS streams between various IP, and I want to reduce the overall logic utilisation of all these FIFOs

This picture shows exactly what I need, except that I would like depth <16 (eg 2, 4, 8 is OK)

Since the ratio of master/slave (or slave/master) clock frequencies in my case is never more than 2:1 different, I don't see why I need to store >=16 values in the FIFO.

Maybe its simple I'm just not quite sure how to code it myself - maybe some tricky details like the cross-clock sync logic or constraints - thanks !



Posts: 1,852
Registered: ‎03-22-2016

Re: Short AXIS FIFO (<16 depth), independant clock, source code


Check if AXI4-Stream Clock Converter is what you need (page 11)



btlabs.us --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
Posts: 97
Registered: ‎05-23-2011

Re: Short AXIS FIFO (<16 depth), independant clock, source code


I do not want to sprinkle salt into the soup (german saying), but I made the observation that the axi4stream infrastructure contain also an (undocumented) amount of intenal buffers.
I was also falling into this trap some months ago.

Take a look into this aspect if you use the axi4stream infrastructure.

If you made the same experience, I´ll be happy if you´ll inform me about the amount of bytes you have in the interconnect in your configuration.

Kind regards