Async FIFO size in AVMM interconnect
We connect multiple AvalonMM masters to the Arria V Avalon MM PCIe IP. Qsys automatically creates an appropiate AVMM interconnect which looks as follows:
Two Avalon masters (called dma_writer in the above image) have data width 64 bit, run at 100 MHz and simultaneously perform burst write transactions of 32 words. The input of the PCIe IP has data width 128 bits and runs at 125 MHz.
Because the data sink (PCIe IP) runs at a higher clock freuqency than the data sources there should be no bottleneck inside the interconnect. Signal tap analyis revealed however that there is a bottleneck caused by the asyncronous FIFOs. Because they have only depth 8 they can only buffer very few data (not even 1 burst) while the cmd_mux streams data from the other AVMM master.
How can we solve this problem? We could solve this issue be manually inserting an AVMM clock crossing bridge but are interested in a solution where Qsys automatically creates the entire interconnect.