09-05-2019 07:21 AM
Hi I'm trying to cascade Ultrascale FIFO18E2 and FIFO36E2 primitives together to make larger FIFOs in depth and width. I was wondering if Xilinx or anyone else has VHDL example code of how to do this? I've been referencing ug974 and ug573.
Any direction is appreciated.
09-05-2019 08:40 AM
There is an easy way,
If you use the fifo generator IP in Vivado,
you "just" define the fifo type ( common clock, block ram, dist ram etc ) and the size,
and the tool wraps up together the fifos you need, and does all the layout tricks for you
09-05-2019 09:51 AM
I have considered using the FIFO generator IP, but doe the IP generator only utilize FIFO primitives? Because that is what I'm trying to acomplish.
09-05-2019 09:58 AM
you select what you want the fifo made out of , one option is the built in fifos',
Out of interest, why do you want the built in fifos only ?
09-05-2019 10:12 AM
Okay then I will give the FIFO generator a shot.
I have a near full FPGA, and I want to only use built in FIFOs to reduce/free-up other resources. I'm trying to optimize several FIFO components in my design.
09-05-2019 10:20 AM
sounds a good reason,
You have the block rams free to do that then ? ( the in built fifos are in the Block rams )
Its a pain when FPGAs become full.
I have a constant "discusion" with my clients who want to sav eX and use a smaller FPGA .
I normaly end up going back a year later and designing in a bigger FPGA !
09-05-2019 10:27 AM
Yes I believe I have enought BRAM free to do this.
And yes it would be great if I could just use a larger FPGA but unfortunitely it's not an option...
Thanks for the tips.
09-05-2019 01:32 PM
I had a question about the FIFO generator IP.
I'm aware that the IP generator will cascade the the appropriate number of FIFO primitives together based on the requested FIFO depth/width.
But is there a way to generate a FIFO IP then request different depths and widths after it's been generated? And will it still cascade the right amount of FIFOs?
Or does it only cascade the right number of FIFOs at generation and after that it is fixed and you cannot change the FIFO depth or data width?
It seems like you can't, and which is why I think I'll have to use the FIFO primitives anyways so I can have configurable FIFOs.
09-05-2019 11:28 PM
an IP does not have generics to vary the size,
( not least of which , Xilixn use Verilog, which has poor generic support )