由于FPGA的内部RAM资源实在有限,同时又不得不面临大数据量缓存的问题,因此,将DDR进行共享成了最为直接有效的解决方案。
设计目标:
PL端有多个需要大量数据缓存的通道,让每个通道都将DDR作为外部缓存(FIFO)。注意,总的突发在1Gbps左右。
设计过程:
这是一个典型的PL端的DDR控制器实现,采用M-AXI总线,因为瞬间数据率可能在1Gbps左右,因此数据位宽设计成(64/32)位,突发传输长度(16~256)。
总体结构图:
to ddr----->[FIFO:ddr]---->from ddr
to ddr----->[FIFO:ddr]---->from ddr
实现结构图:
--->infifo--->|waddr,raddr,usednum,data| [ddr] |---outfifo--->
|----[mux]---[m-axi4]---[demux]---|
--->infifo--->|waddr,raddr,usednum,data| |---outfifo--->
其中,m-axi4与ddr进行数据交换。
后记:
画图工具不熟练,先做示意图。代码较多,整理好了会上传。