Xilinx_FIFO_Vivado_IP使用
FIFO介绍
FIFO(first in first out)是一个先进先出的存储队列。一般的作用是作为数据的队列通道,让数据暂时缓存,以等待读取。和其他RAM不同的是FIFO没有地址,先入先出。
在FPGA的设计中,不同模块之间的数据接口,尤其是不同时钟系统的各个模块之间的数据接口是系统设计的一个关键。用异步FIFO模块来实现接口,接口双方都在自己的时钟下工作,他们之间不需要互相握手,只需要跟接口FIFO模块进行交互即可向FIFO模块中写入数据或从FIFO模块中读出数据。
FIFO建立
使用FIFO接口是Xilinx公司提供的IP核,经过充分测试和优化,系统运行稳定且占用的FPGA内部资源非常少。
主要步骤如下:(主要针对理解Native端口类型)
(1)在IP Catalog窗口下,输入FIFO进行IP查找
(2)进入FIFO配置页面
其中该版本的手册,在下一页面Customize IP页面点击Documentation获取,component name对定制IP核命名。
-
Basic
IP定制端口有三个选择,native也就是不用总线类型,AXI Stream总线,
本机接口FIFO内核针对缓冲,数据宽度转换和时钟域解耦应用进行了优化,提供有序的存储和检索。
AXI内存映射和AXI4-Stream接口FIFO源自本机接口FIFO。 提供三种AXI内存映射接口样式:AXI4,AXI3和AXI4-Lite。
native 接口FIFO利用某些FPGA系列中可用的Block RAM,分布式RAM或内置FIFO资源来创建高性能的FPGA设计。
FIFO generatoe IP使FIFO可以配置independent或common时钟域, 以进行写和读操作.
因为 FIFO generatoe IP可以处理时钟域之间的同步而对相位和频率没有任何要求, 独立时钟配置可以在写入和读取端口上实现唯一的时钟域。
当需要在单个时钟域中进行数据缓冲时,FIFO生成器内核可用于生成针对该单个时钟优化的内核。
这个文章对具体的选择做了详细介绍,也可以当鼠标放在相应的地方时有相关介绍
这篇文章介绍的很详细,特对是对下一页面Native Ports https://www.it610.com/article/1291658875212210176.htm -
Native Ports
Native接口FIFO可用的两种读操作模式。Standard mode和First Word Fall TroughFirst Word Fall Trough (FWFT)功能提供了在不发出读操作的情况下向前浏览FIFO中可用的下一个字的功能。 当FIFO中有可用数据时,第一个字将通过FIFO并自动出现在输出总线(dout)上。 FWFT在需要低延迟访问数据的应用程序以及需要基于读取数据内容进行节流的应用程序中很有用。 简言之此种模式读延迟小。
读延迟可以在页面中获得。
-
Status Flags
-
Data Counts
-
Summary