Xilinx FPGA:vivado关于fifo的一些零碎知识

admin2024-07-10  41

一、FIFO概念

       先进先出,是一种组织和操作数据结构的方法。在硬件应用中,FIFO一般由一些读写指针,存储和控制的逻辑组成。

二、xilinx中生成的FIFO的存储类型

(1)shift register FIFO : 移位寄存器FIFO,这种很少用,因为FPGA内部的移位寄存器资源很少。

(2)build in FIFO :内嵌FIFO,使用专用的控制信号线(如满信号、空信号等)+BRAM资源生成FIFO,可以理解为一种内部集成的FIFO。

(3)block ram FIFO :使用可编程逻辑块CLB资源+BRAM生成的存储空间。

(4)distributed ram FIFO :通过LUT资源生成的存储空间。

Xilinx FPGA:vivado关于fifo的一些零碎知识,第1张

(         independent clocks :异步时钟            common clock:同步时钟            )

Xilinx FPGA:vivado关于fifo的一些零碎知识,第2张

Xilinx FPGA:vivado关于fifo的一些零碎知识,第3张

Xilinx FPGA:vivado关于fifo的一些零碎知识,第4张

Xilinx FPGA:vivado关于fifo的一些零碎知识,第5张

一般选择standard fifo就可以了 ,毕竟数据需要一个稳定的过程。

Xilinx FPGA:vivado关于fifo的一些零碎知识,第6张

Xilinx FPGA:vivado关于fifo的一些零碎知识,第7张

Xilinx FPGA:vivado关于fifo的一些零碎知识,第8张

Xilinx FPGA:vivado关于fifo的一些零碎知识,第9张

Xilinx FPGA:vivado关于fifo的一些零碎知识,第10张

Xilinx FPGA:vivado关于fifo的一些零碎知识,第11张

Xilinx FPGA:vivado关于fifo的一些零碎知识,第12张

1个BRAM是36K,60个就是60*36K

同步fifo和异步fifo的主要区别:

在于这里的配置信息

Xilinx FPGA:vivado关于fifo的一些零碎知识,第13张

在异步fifo中,存在异步复位和同步复位。

1、异步复位:勾选enable reset synchronization ,读写端实现异步复位,在例化fifo ip 后,只会出现一个异步reset。

Xilinx FPGA:vivado关于fifo的一些零碎知识,第14张

异步复位:rst信号最好持续3个及以上的时钟周期(读写时钟不同时,按更慢的时钟算)。当rst信号被写数据端时钟的上升沿检测到后,需要3个写时钟才能完成正确的复位同步。而full(满),almost full(将满), prog full(可编程满)信号在异步复位信号被拉低后5个写时钟周期后才会被拉低,开始正常接收写操作。在此期间,full(满),almost full (将满),prog full (可编程满)信号都被拉高,来保证在复位状态时没有写操作的发生。一般复位信号结束后可以等待多余30-60个时钟周期再读写。

Xilinx FPGA:vivado关于fifo的一些零碎知识,第15张

Xilinx FPGA:vivado关于fifo的一些零碎知识,第16张

Xilinx FPGA:vivado关于fifo的一些零碎知识,第17张

2、同步复位:不勾选enable reset synchronization,例化fifo ip核后会出现两个在各自时钟域同步的reset(信号wr_rst/rd_rst)

Xilinx FPGA:vivado关于fifo的一些零碎知识,第18张

同步复位:在各自的时钟域下,信号都是相对同步的,所以不需要额外的同步逻辑。同步复位也需要至少持续一个周期(各自时钟域下)。为了避免发生不可预料的结果,在复位时不要进行任何读写的操作。当读操作复位早于写操作复位时,从复位(读操作)开始到复位(写操作)结束,不进行任意读写操作。如果读操作复位和写操作复位顺序交换,即写操作复位早于读操作复位,从复位(写操作)开始到复位(读操作)结束,不进行任意读写操作。

Xilinx FPGA:vivado关于fifo的一些零碎知识,第19张

tips:RAM和FIFO的主要区别是在于地址,RAM之所以被称为随机存储器就在于我们可以随时用RAM的地址去存储一些东西,ROM也是随时可以从地址中去读取一些数据,但是FIFO(first in first out)是没有地址线的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!