FPGA内部块RAM的应用技巧
- 格式:pdf
- 大小:184.83 KB
- 文档页数:3


高速异步FIFO的设计与实现摘要:本文主要研究了用FPGA芯片实现异步FIFO的一种方法。
通过对FPGA芯片内部EBRSRAM的深入研究.提出了一种利用格雷码对地址进行编码的异步FIFO设计方案。
实践证明.增加了系统可靠性和应用灵活性。
引言现代集成电路芯片中,随着设计规模的不断扩大.一个系统中往往含有数个时钟。
多时钟带来的一个问题就是,如何设计异步时钟之间的接口电路。
异步FIFO(First In First Out)是解决这个问题的一种简便、快捷的解决方案。
使用异步FIFO可以在两个不同时钟系统之间快速而方便地传输实时数据.在网络接口、图像处理等方面,异步FIFO都得到广泛的应用。
异步FIFO是一种先进先出的电路,使用在数据接口部分,用来存储、缓冲在两个异步时钟之间的数据传输。
在异步电路中,由于时钟之间周期和相位完全独立,因而数据的丢失概率不为零。
如何设计一个可靠性高、速度高的异步FIFO电路便成为一个难点。
1 异步FIFO的工作原理及逻辑框图本文根据实际工作的需要.给出了一种利用片内RAM构造FIFO器件的设计,重点强调了设计有效.可靠的握手信号FULL和EMPTY的方法。
并在LATTICE公司的FPGA芯片LFXP2-5E上实现。
LFXP2-5E属于LATIICE 公司XP2系列的一款,他采用优化的FlexiFLASH结构。
内部包含有基于查找表的逻辑、分布式和嵌入式存储器,锁相环(PLL)。
工程预制的源同步I/0以及增强的Sys DSP块。
有166Kbits的EBRSRAM。
利用其内部的EBRSRAM可以实现一定容量的异步FIFO.而无需单独购买FIF0器件。
由图1可以看出:异步FIFO一般由四个模块构成:数据存储单元,写地址产生模块,读地址产生模块,标志位产生模块。
整个系统分为两个完全独立的时钟域—读时钟域和写时钟域:在写时钟域部分由写地址产生逻辑产生写控制信号和写地址:读时钟域部分,由读地址产生逻辑产生读控制信号和读地址;在标志位产生模块部分,由读写地址相互比较产生空/满标志。
FPGA(Field-Programmable Gate Array)是一种灵活的集成电路设备,可以在其内部编程实现各种数字电路功能。
在FPGA设计中,BRAM(Block RAM)和FIFO(First-In-First-Out)是两种重要的资源,它们在FPGA中占据着一定的资源,对于FPGA设计者来说,了解BRAM和FIFO所占的资源是非常重要的。
本文将就FPGA中BRAM和FIFO所占的资源进行探讨。
一、 BRAM所占的资源BRAM是FPGA中的一种资源,用于存储数据。
在FPGA中,BRAM 多用于存储中间数据或者作为存储器使用。
不同型号的FPGA中,其BRAM所占的资源是有所区别的。
通常情况下,FPGA型号越高端,其内部包含的BRAM也就越多。
以Xilinx 7系列FPGA为例,其BRAM资源占用的情况如下:1. Xilinx 7系列低端型号FPGA中,BRAM资源占用较少,通常为几十个。
2. Xilinx 7系列中端型号FPGA中,BRAM资源占用适中,通常在百个左右。
3. Xilinx 7系列高端型号FPGA中,BRAM资源占用较多,通常在数百个以上。
在实际FPGA设计中,设计者需要根据具体的应用需求来合理规划BRAM资源的使用。
对于需要大量存储器的设计,可以选择拥有较多BRAM资源的高端型号FPGA来实现。
二、 FIFO所占的资源FIFO是一种先入先出的数据缓冲区,用于解决数据传输中的速度不匹配问题。
在FPGA中,FIFO通常采用BRAM来实现。
与BRAM相似,不同型号的FPGA中,其FIFO所占的资源也是有所差异的。
以Altera Cyclone系列FPGA为例,其FIFO资源占用的情况如下:1. Altera Cyclone低端型号FPGA中,FIFO资源占用较少,通常在数个左右。
2. Altera Cyclone中端型号FPGA中,FIFO资源占用适中,通常在十几个左右。
3. Altera Cyclone高端型号FPGA中,FIFO资源占用较多,通常在数十个以上。