1、江 苏 科 技 大 学本 科 毕 业 设 计(论文)学 院 专 业 学生姓名 班级学号 指导教师 二零壹叁年六月江苏科技大学本科毕业论文基于 FPGA 的异步 FIFO 设计Asynchronous FIFO design based on FPGA江苏科技大学本科毕业设计(论文)摘 要在现代集成电路芯片中,随着设计规模的不断扩大,一个系统往往包含多个时钟,如何进行异步时钟间的数据传输成为了一个很重要的问题。异步FIFO( First In First Out)是一种先进先出电路,可以在两个不同的时钟系统间进行快速准确的数据传输,是解决异步时钟数据传输问题的简单有效的方案。异步 FIFO 在网
2、络接口、数据采集和图像处理等方面得到了十分广泛的应用,由于国内对该方面研究起步较晚,国内的一些研究所和厂商开发的 FIFO 电路还远不能满足市场和军事需求。由于在异步电路中,时钟间的周期和相位完全独立,以及亚稳态问题的存在,数据传输时的丢失率不为零,如何实现异步信号同步化和降低亚稳态概率以及正确判断 FIFO 的储存状态成为了设计异步 FIFO 电路的难点。本课题介绍了一种基于 FPGA 的异步 FIFO 电路设计方法。课题选用 Quartus II 软件,在Cyclone II 系列的 EP2C5T144C8N 芯片的基础上, 利用 VHDL 硬件描述语言进行逻辑描述,采用层次化、描述语言和
3、图形输入相结合的方法设计了一个 RAM深度为 128 bit,数据宽度为 8 bit 的高速、高可靠的异步 FIFO 电路,并对该电路功能进行时序仿真测试和硬件仿真测试。关键词:异步 FIFO;同步化;亚稳态;仿真测试江苏科技大学本科毕业设计(论文)IAbstractIn modern IC chips, with the continuous expansion of the scale of design, a system always contains several clocks. How to transmit data between the asynchronous clock
4、s become a very important problem.Asynchronous FIFO (First In First Out) is a first-in, first-out circuit, it can transmit data between two diffent clock systems fastly and accurately, it is also a simple and effective solution to solve the problem of asynchronous clock data transfer. The asynchrono
5、us FIFO has a very wide range of applications in network interface, data acquisition and image processing.But because of the aspect of a late start, some domestic research institutes and manufacturers which research the FIFO circuit also can not meet the needs of the market and the military.In the a
6、synchronous circuit, because of that the clock cycle and phase is completely independent, and the presence of metastability problems, the loss rate of data transmission is not zero. How to implement asynchronous signal synchronization, reduce the probability of metastability and judge the state of t
7、he FIFO storage correctly become a difficult problem while designing the asynchronous FIFO circuit. This paper introduces a method of asynchronous FIFO circuit design based on FPGA. This topic selects Quartus II software, the Cyclone II family EP2C5T144C8N chip, based on the use of VHDL hardware des
8、cription language for logical descriptions, using the method of combining hierarchical, description language and graphical input ,This topic designs a high-speed, highly reliable asynchronous FIFO circuit as the RAM depth is 128 bit and the data width is 8 bit, and tests the circuit function with ti
9、ming and software simulation.Keywords:Asynchronous FIFO; Synchronization; Metastability; simulation testing江苏科技大学本科毕业设计(论文)II目 录第一章 绪论 .11.1 FPGA 简介 .11.2 异步 FIFO 简介 .11.3 国内外研究现状及存在的问题 .11.3.1 研究现状 .11.3.2 存在问题 .21.4 本课题主要研究内容 .3第二章 异步 FIFO 设计要求及基本原理 .42.1 设计要求 .42.2 异步 FIFO 基本原理 .52.3 异步 FIFO 设计难点
10、 .52.4 系统设计方案 .62.5 异步 FIFO 验证方案 .72.5.1 验证复位功能 .72.5.2 验证写操作功能 .72.5.3 验证读操作功能 .72.5.4 验证异步 FIFO 电路整体功能 .7第三章 模块设计与实现 .83.1 格雷码计数器模块 .83.2 同步模块 .83.3 格雷码自然码转换模块 .93.4 空满标志产生模块 .103.5 双端口 RAM .13第四章 时序仿真与实现 .154.1 模块整合 .15江苏科技大学本科毕业设计(论文)III4.2 时序仿真及功能测试 .174.2.1 复位功能软件仿真与测试 .174.2.2 写操作功能时序仿真与测试 .1
11、74.2.3 读操作功能时序仿真与测试 .184.2.4 异步 FIFO 电路整体功能软件仿真与测试 .184.2.5 时序仿真结果总结 .19第五章 硬件仿真与实现 .205.1 外部电路焊接 .205.2 引脚分配 .215.3 调试电路设计 .245.3.1 调试电路介绍 .245.3.2 异步时钟产生模块 .255.3.3 伪随机数据队列产生模块 .255.3.5 调试电路引脚分配 .265.3.6 调试电路硬件仿真 .275.4 异步 FIFO 电路硬件仿真 .285.4.1 复位功能硬件仿真与测试 .295.4.2 写操作功能硬件仿真与测试 .305.4.3 读操作功能硬件仿真与测
12、试 .305.4.4 异步 FIFO 硬件电路整体功能软硬件仿真与测试 .315.4.5 硬件仿真结果总结 .32结论 .33致谢 .34参考文献 .35附录 .36江苏科技大学本科毕业设计(论文)0第 1 章 绪论1.1 FPGA 简介FPGA(FieldProgram mable Gate Array) ,即现场可编程门阵列,它是在CPLD、PAL、GAL 等可编程器件的基础上进一步发展的产物 10。利用 VHDL或 Verilog 硬件描述语言进行电路设计,经过简单的布局整合之后,快速的烧入至 FPGA 上进行调试,是现代 IC 设计验证技术的主流。FPGA 作为一种半定制电路而出现在专
13、用集成电路(ASIC)领域中,既克服了先前可编程器件的门电路数目有限的缺点,又弥补了定制电路的不足。基于 FPGA 的异步 FIFO 具有现场可编程,容量改动性大,速度快,实现简单,开发时间快,生产周期短,可移植性好的优点。1.2 异步 FIFO 简介在现代集成电路芯片中,设计规模不断扩大,一个系统中往往包含多个时钟。如何在异步时钟间进行数据传输成为了电路设计中的一个重要问题。异步FIFO( First In First Out)是解决这个问题的一个简单有效的方案。异步 FIFO 是一种先进先出电路,常用来缓存数据和容纳异步信号间的周期和相位差异,使用异步 FIFO 可以在两个不同的时钟系统之
14、间进行快速准确的实时数据传输。异步 FIFO 在网络接口、数据采集和图像处理等方面得到了十分广泛的应用 2。异步 FIFO 用在异步时钟数据接口部分,由于异步时钟间的频率和相位完全独立,数据传输时的丢失率不为零,如何降低数据丢失率,设计一个高速可靠的异步 FIFO 便成为了一个难点。本课题介绍了一种基于 FPGA 设计高速可靠的异步 FIFO 电路的方法。江苏科技大学本科毕业设计(论文)11.3 国内外研究现状及存在的问题1.3.1 研究现状在20世纪80年代早期对 FIFO 存储器的容量和速度需求都很低,所以那时的 FIFO 芯片是基于移位寄存器的中规模集成(MSI )器件,由于这种芯片在容
15、量不会太大,所以其速度也不可能很快。新型的 FIFO 芯片是基于 RAM 结构的大规模集成(LSI)电路,其内部存储单元使用一个双端口 RAM,具有输入和输出两套数据线。由于采用 RAM 结构,数据从写入到读出的延迟时间将大大缩短。这种芯片能在存储宽度和深度上得到很大的发展。目前,为了更大的提高芯片容量,其内部存储单元使用动态 RAM 代替静态 RAM,并在芯片内部集成刷新电路,通过内部仲裁单元控制器件的读写及自动刷新操作。随着微电子技术的飞速发展,新一代的FIFO芯片容量越来越大,速度越来越快,体积也越来越小。美国IDT公司已经推出运行速度高达225MHz,电压低至2.5V,可在业内各种配置
16、下实现业内最大数据流量高达 9 Mb的FIFO 系列。Cypress Semiconductor公司推出具有 80位宽的BEAST型的高性能FIFO 存储器,它的带宽高达300bps,可以工作在200 MHz频率下; Honeywell公司推出了一种基于SOI 的FIFO存储器,它采用专门的抗辐射加固工艺和设计版图,主要用于军事系统和高辐射的空间环境中;FIFO芯片的最新产品是IDT公司推出的多队列FIFO 存储器系列,它使用集成的嵌入式FIFO 存储器核和高速队列逻辑来构成块结构。它的数据读写速度可达到200 MHz,存储时间也只有3.6 ns,可以通过最多八个器件的连接来实现容量深度的扩展
17、和队列扩展 6。目前在国内大部分集成芯片中,单独做FIFO 芯片的很少,国内的一些研究所和厂商也开发了FIFO电路,但还远不能满足市场和军事需求。1.3.2 存在问题国内外设计FIFO时,通常使用两种方法,一是利用可编程逻辑器件来构造FIFO(如Xilinx 公司) ,二是利用Verilog 、VHDL等硬件描述语言来对FIFO的功能结构进行描述 6。在大部分的EDA软件中,都是通过综合器来完成对EDA 等硬件语言的编译的,综合器将硬件描述语言的描述转变为物理可实现的电路形式,江苏科技大学本科毕业设计(论文)2由于FIFO 是基于 RAM结构的,大部分的参考资料都是建立在数组存取的基础上对FI
18、FO 进行描述的,然而综合器对数组的综合一般是将其转变为寄存器的结构,这带来的缺陷是综合后的结构会非常庞大,造成在大容量的FIFO设计时,会产生大量面积的浪费,甚至无法集成。1.4 本课题主要研究内容本课题基于 FPGA 技术,在 Cyclone II 系列的 EP2C5T144C8N 芯片的基础上,选用 Quartus II 软件利用 VHDL 硬件描述语言进行逻辑描述,并采用层次化、描述语言和图形输入相结合的方法设计了一个 RAM 深度为 128 bit,数据宽度为 8 bit 的异步 FIFO 电路,并对其功能进行了时序仿真和硬件仿真验证。论文各章节的主要内容安排如下:第一章为绪论,简要
19、介绍了 FPGA 的相关知识以及异步 FIFO 的主要作用、研究背景和国内外的发展现状,并概括介绍了本课题的主要研究内容。第二章为异步 FIFO 设计要求及基本原理,首先介绍了本课题的设计要求,然后对异步 FIFO 的结构、基本原理以及其设计难点进行了分析,并由此归纳出系统的设计模块和预期功能。第三章为模块设计与实现,主要介绍了异步 FIFO 的模块组成及各模块的功能和原理,并利用 VHDL 硬件描述语言,通过 Quartus II 软件对各模块进行了编写和仿真。第四章为时序仿真与实现,通过层次化、描述语言和图形输入相结合的方法将各模块整合为异步 FIFO 顶层模块,并通过 Quartus II 软件的波形编辑器对其进行时序仿真和分析。第五章为硬件仿真与实现,连接外设及进行引脚分配后,将完成的异步FIFO 顶层实体下载入开发板,并通过编写测试程序产生读写时钟及伪随机数输入数据,利用 Quartus II 软件的嵌入式逻辑分析仪 SignalTap II 对实物进行硬件仿真和分析,完成设计任务。最后结论对本次毕业设计进行了归纳和综合,概括了所取得的成果和存在的不足,以及对进一步开展研究的见解与建议。