1 / 26
文档名称:

基于fpga的fifo存储器设计.doc

格式:doc   大小:1,276KB   页数:26页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于fpga的fifo存储器设计.doc

上传人:文库旗舰店 2018/5/30 文件大小:1.25 MB

下载得到文件列表

基于fpga的fifo存储器设计.doc

相关文档

文档介绍

文档介绍:绪论
FPGA的发展及结构特点
FPGA的含义及发展
自从1985年Xilinx公司推出第一片现场可编程逻辑门阵列(Field Programmable Gates Array, FPGA)至今[1]。FPGA已经成为当今电子设计市场上应用最广泛的可编程逻辑器件之一。可编程逻辑器件按集成度来区分,可大致分为简单PLD和复杂PLD[2]。,它的发展大致经历了以下三个阶段[3]:
(1) 早期的可编程逻辑器件:70年代初期的可编程逻辑器件(PLD)主要用于各种类型的存储设备,主要器件有可编程只读存储器(PROM)、紫外线可擦出只读存储器(EPROM)、和电可擦出只读存储器(EEPROM),由于结构比较简单,它们只能完成简单的逻辑功能。
(2) 结构上稍微复杂的可编程芯片:70年代末到80年代初,AMD公司和Lattice公司先后推出了可编程逻辑器件(PLD)。产品主要有PAL(可编程逻辑阵列,Program- mable Array Logic)、GAL(通用阵列逻辑,Generic Array Logic)和PLA(可编程逻辑阵列,Programmable Logic Array)。这几类器件在设计上有很强的灵活性,可以实现速度特性较好的逻辑功能,但由于结构简单,它们只能实现规模较小的电路。
(3) 功能齐全、编程灵活的可编程逻辑器件:80年代中期,Altera公司和Xilinx公司同期推出了CPLD(plex Programmable Logic Device)和FPGA(现场可编程逻辑门阵列,Field Programmable Gates Array),它们都具有体系结构和逻辑单元灵活,集成度高以及适用范围宽等特点,可以实现较大规模的电路。
可编程逻辑器件分类
进入90年代以后,可编程逻辑集成电路进入了飞速发展时期,在系统可编程技术ISP(In—System Programmability)和世界扫描测试技术的出现,使得可编程逻辑器件在器件编程技术和器件测试技术方面也获得了划时代的进步。FPGA/CPLD已成为当今应用最广泛的可编程集成电路之一[1]。工程师可在办公室和实验室进行设计。它还具有静态可重复编程和在系统重构特性,使硬件和软件一样,能够通过编程来修改。
FPGA的结构特点
一些基本的逻辑器件如GAL、CPLD之类都是基于乘积项的可编程结构,即由可编程的与阵列和固定的或阵列组成。而FPGA则是另一种可编程逻辑结构—查找表(Look Up Table,LUT)结构
[4],。查找表(LUT)是可编程的最小逻辑构成单元。大部分FPGA采用静态随机存储器(SRAM)的查找表逻辑来形成结构,用SRAM来构成逻辑函数发生器。Xilinx公司的XC4000系列、Spartan/3/3E系列,Altera公司的FLEX10K、ACEX、APEX、Cyclone、CycloneⅡ、Stratix等系列都采用SRAM查找表构成,这些都是典型的FPGA器件[5]。
FPGA查找表结构
通用FPGA包含3类可编程资源,分别是可编程逻辑功能块、可编程I/O功能模块和可编程内部互连[4],。Cyclone/CycloneⅡ系列器件是 Altera 公司一款低成本,高性价比的FPGA,它的结构和工作原理在FPGA器件中具有典型性。Cyclone/CycloneⅡ器件主要由逻辑阵列快LAB、嵌入式存储块、I/O单元、嵌入式硬件乘法器和PLL等模块组成,各模块之间存在着丰富的互联线和时钟网络。
FPGA内部结构
FIFO的基本概念及分类
FIFO的基本概念及功能
FIFO(First In First Out)是先进先出存储器的缩写,它是一种实现数据先进先出的存储器件,通常用作数据缓冲器[6]。它与普通存储器的主要区别在是FIFO不需要外部读写地址线,在使用中具有简单,方便的特点。FIFO一般用于不同时钟之间的数据传输,比如FIFO的一端是AD数据采集,另一端是计算机的PCI总线,在两个不同的时钟域间就可以采用FIFO
作为数据缓冲。另外,对于不同宽度的数据接口也可以用FIFO,例如单片机为8位输出,DSP为16位输出,在单片机域DSP连接时就可以使用FIFO来达到数据匹配的目的。
在实际工作中,对FIFO的数据操作是靠其满/空标志来实现的。所谓满标志,指的是当对FIFO写数时,如果数据足够多,多到FIFO的内存已经装满了,此时便由FIFO内部状态电路送出一个表示内存已满的信号以阻止对FIFO的写操作。同理,所谓空标志,指的是当从FIFO读数时,如果数据被读完了,便有FIFO内部状态电路送出一个空标志信号以阻止对FI