毕业设计(论文)基于Verilog HDL的异步FIFO设计与实现.doc
《毕业设计(论文)基于Verilog HDL的异步FIFO设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于Verilog HDL的异步FIFO设计与实现.doc(35页珍藏版)》请在三一办公上搜索。
1、基于Verilog HDL的异步FIFO设计与实现摘 要在现代IC设计中,特别是在模块与外围芯片的通信设计中,多时钟域的情况不可避免。当数据从一个时钟域传递到另一个域,并且目标时钟域与源时钟域不相关时,这些域中的动作是不相关的,从而消除了同步操作的可能性,并使系统重复地进入亚稳定状态,造成系统时钟时序上的紊乱。为了有效的解决这个问题,我们采用一种异步FIFO(先进先 出)存储器来实现。本文提出一种新颖的异步FIFO设计方案,它通过先比较读写地址并结合象限检测法产生异步的空/满标志,再把异步的空/满标志同步到相应的时钟域。通过仿真验证,该方法是稳定有效的。关键词:异步;FIFO;亚稳态;格雷码;
2、结绳法Design and accomplish asynchronous FIFO based on Verilog HDLAbstract In modern IC design, particularly in the communications module and peripheral chip design, multiple clock domains of the inevitable. When data passes from one clock domain to another domain, and the target clock domains are not
3、associated with the source clock domain, these domains are not related movements, thus eliminating the possibility of simultaneous operation and allows the system to enter the sub-repeat steady-state, causing disorder on the system clock timing. In order to effectively solve this problem, we use a a
4、synchronous FIFO (FIFO) memory to achieve. This paper proposes a novel asynchronous FIFO design, which compared reading and writing through the first address and generate an asynchronous combination of quadrant detection empty / full flag, then asynchronous empty / full flag synchronized to the corr
5、esponding clock domain. The simulation results that the method is stable and effective.Key Words: asynchronous; FIFO; metastable state; Gray code; tie knots France目 录1 引言11.1 FIFO研究意义11.2 生产需求状况11.3 存储器外发展状况21.4 FIFO设计技术简介41.4.1 基于信元的FIFO设计方法41.4.2 基于SRAM/DRAM的大容量FIFO的设计与实现41.5 异步FIFO设计中存在的问题及解决办法51
6、.5.1 亚稳态51.5.2 空/满指针的解决方法61.6 论文主要内容62 异步FIFO工作原理简介72.1 关于异步信号72.2 异步FIFO芯片简介82.3 FIFO的一些重要参数92.4 异步FIFO设计的难点102.4.1 异步FIFO设计难点概述102.4.1.1 解决FIFO的满/空技术方法概述和特点102.4.1.2 亚稳态问题的产生及解决102.5 FIFO的功能简介112.6 Modelsim仿真工具简介112.6.1 主要特点112.7 Verilog HDL语言的简介122.8 HDL语言122.8.1 HDL与原理图输入法的关系132.8.2 HDL开发流程133 异
7、步FIFO实现的技所涉及的技术及其解决方法143.1格雷码143.2结绳法144 异步FIFO具体实现方法164.1 亚稳态问题的解决方案164.1.1 问题的产生164.1.2 常见的解决方法164.1.2.1 格雷码编码法164.1.2.2 双触发器法174.1.2.3 结绳法174.2 基于异步比较FIFO逻辑标志的产生184.2.1 设计思想184.2.2 标志位的产生194.2.2.1 异步比较FI FO逻辑标志与时钟的同步194.2.2.2 保守的空/满标志214.2.2.3 半满、将近满、将近空的产生224.2.2.4 FIFO异步空/满信号的同步234.3 仿真验证和综合235
8、 总结245.1 异步FIFO设计的总结245.2 设计方法的不足之处24附录一25参考文献30致谢311 引言1.1 FIFO研究意义随着计算机、多媒体和数据通信技术的高速发展,数字图像、语音等数据传输技术近年来得到了极大的重视和长足的发展,并取得了广泛的应用。如何保障这些语音、图像等数据传输的准确性、及时性?如何高效率高速度地传输这些数据?这些都是当今信息领域的科研人员所必须回答和解决的问题。而往往在这些数据传输系统中,又会遇到不同系统接口间数据的传输。通常在两个相连接的不同电路系统之间,因为每个系统的数据传输速度不同,在系统的接口部分就会出现数据输入速度和输出速度不同,也就是会发生数据传
9、输速率不匹配的问题。这种情况往往会让传输的数据产生复写或丢失,降低数据的传输速率,同时也因为数据复写、丢失和无效数据的读入,将会产生数据出错,因此需要在不同系统的接口处设计数据传输单元来实现数据的高速高效传输。在现代的系统设计中,为了提高系统的性能,设计者对数据的传输率、数据的传输量,对系统各部分之间的接口部分不同的数据输入和接收传输率的匹配有越来越高的要求,而 FIFO存储器以其合理的价格、使用的方便灵活性以及上述的对速度匹配的应用而成为解决这类问题的理想途径,因此FIFO 存储器在计算机、多媒体和数据通信领域都有着广泛的应用,因此对FIFO的研究与设计应用具有理论上和实际应用上的双重意义。
10、 在现在的设计中,FIFO的设计方法主要有两种。一种是在FPGA中基于信元的FIFO设计方法,另一种是基于SDRAM/DRAM的大容量的FIFO的设计方法。1.2 生产需求状况3FPGA(现场可编程逻辑器件)产品的应用领域已经从原来的通信扩展到消费电子、汽车电子、工业控制、测试测量等广泛的领域。而应用的变化也使FPGA产品近几年的演进趋势越来越明显:一方面,FPGA供应商致力于采用当前最先进的工艺来提升产品的性能,降低产品的成本;另一方面,越来越多的通用IP(知识产权)或客户定制IP被引入FPGA中,以满足客户产品快速上市的要求。此外,FPGA企业都在大力降低产品的功耗,满足业界越来越苛刻的低
11、功耗需求。在FPGA设计中,FIFO(先进先出队列)的设计是一种在电子系统得到广泛应用的器件,通常用于数据的缓存和用于容纳异步信号的频率或相位的差异。电子产品的更新速度很快,品种也在也逐渐增多,所以缓存对于电子产品的工作速度来说是相当重要的,这也就使得FIFO的应用更加广泛。所以FIFO的研发在一定意义上已经尽量的满足了市场对产品的高速度的要求。1.3 存储器的发展状况FIFO,简单的说就是一种存储器。下面简单介绍一下存储器的发展状况。(1)汞延迟线汞延迟线是基于汞在室温时是液体,同时又是导体,每比特数据用机械波的波峰机械波从汞柱的一端开始,一定厚度的熔融态金属汞通过一振动膜片沿着纵向从一端传
12、到另一端,这样就得名“汞延迟线”。在管的另一端,一传感器得到每一比特的信息,并反馈到起点。设想是汞获取并延迟这些数据,这样它们便能存储了。这个过程是机械和电子的奇妙结合。缺点是由于环境条件的限制,这种存储器方式会受各种环境因素影响而不精确。 1950年,世界上第一台具有存储程序功能的计算机EDVAC由冯.诺依曼博士领导设计。它的主要特点是采用二进制,使用汞延迟线作存储器,指令和程序可存入计算机中。 1951年3月,由ENIAC的主要设计者莫克利和埃克特设计的第一台通用自动计算机UNIVAC-I交付使用。它不仅能作科学计算,而且能作数据处理。 (2) 磁带UNIVAC-I第一次采用磁带机作外存储
13、器,首先用奇偶校验方法和双重运算线路来提高系统的可靠性,并最先进行了自动编程的试验。 磁带是所有存储媒体中单位存储信息成本最低、容量最大、标准化程度最高的常用存储介质之一。它互换性好、易于保存,近年来,由于采用了具有高纠错能力的编码技术和即写即读的通道技术,大大提高了磁带存储的可靠性和读写速度。根据读写磁带的工作原理可分为螺旋扫描技术、线性记录(数据流)技术、DLT技术以及比较先进的LTO技术。 根据读写磁带的工作原理,磁带机可以分为六种规格。其中两种采用螺旋扫描读写方式的是面向工作组级的DAT(4mm)磁带机和面向部门级的8mm磁带机,另外四种则是选用数据流存储技术设计的设备,它们分别是采用
14、单磁头读写方式、磁带宽度为1/4英寸、面向低端应用的Travan和DC系列,以及采用多磁头读写方式、磁带宽度均为1/2英寸、面向高端应用的DLT和IBM的3480/3490/3590系列等。(3) 磁鼓1953年,第一台磁鼓应用于IBM 701,它是作为内存储器使用的。磁鼓是利用铝鼓筒表面涂覆的磁性材料来存储数据的。鼓筒旋转速度很高,因此存取速度快。它采用饱和磁记录,从固定式磁头发展到浮动式磁头,从采用磁胶发展到采用电镀的连续磁介质。这些都为后来的磁盘存储器打下了基础。 磁鼓最大的缺点是利用率不高, 一个大圆柱体只有表面一层用于存储,而磁盘的两面都利用来存储,显然利用率要高得多。 因此,当磁盘
15、出现后,磁鼓就被淘汰了。 (4) 磁芯美国物理学家王安1950年提出了利用磁性材料制造存储器的思想。福雷斯特则将这一思想变成了现实。为了实现磁芯存储,福雷斯特需要一种物质,这种物质应该有一个非常明确的磁化阈值。他找到在新泽西生产电视机用铁氧体变换器的一家公司的德国老陶瓷专家,利用熔化铁矿和氧化物获取了特定的磁性质。 对磁化有明确阈值是设计的关键。最先获得这些专利许可证的是IBM,IBM最终获得了在北美防卫军事基地安装“旋风”的商业合同。更重要的是,自20世纪50年代以来,所有大型和中型计算机也采用了这一系统。磁芯存储从20世纪50年代、60年代,直至70年代初,一直是计算机主存的标准方式。 (
16、5)磁盘世界第一台硬盘存储器是由IBM公司在1956年发明的,其型号为IBM 350 RAMAC(Random Access Method of Accounting and Control)。这套系统的总容量只有5MB,共使用了50个直径为24英寸的磁盘。1968年,IBM公司提出“温彻斯特/Winchester”技术,其要点是将高速旋转的磁盘、磁头及其寻道机构等全部密封在一个无尘的封闭体中,形成一个头盘组合件(HDA),与外界环境隔绝,避免了灰尘的污染,并采用小型化轻浮力的磁头浮动块,盘片表面涂润滑剂,实行接触起停,这是现代绝大多数硬盘的原型。1979年,IBM发明了薄膜磁头,进一步减轻了
17、磁头重量,使更快的存取速度、更高的存储密度成为可能。20世纪80年代末期,IBM公司又对磁盘技术作出一项重大贡献,发明了MR(Magneto Resistive)磁阻磁头,这种磁头在读取数据时对信号变化相当敏感,使得盘片的存储密度比以往提高了数十倍。1991年,IBM生产的3.5英寸硬盘使用了MR磁头,使硬盘的容量首次达到了1GB,从此,硬盘容量开始进入了GB数量级。 另一种磁盘存储设备是软盘,从早期的8英寸软盘、5.25英寸软盘到3.5英寸软盘,主要为数据交换和小容量备份之用。其中,3.5英寸1.44MB软盘占据计算机的标准配置地位近20年之久,之后出现过24MB、100MB、200MB的高
18、密度过渡性软盘和软驱产品。 (6)光盘光盘主要分为只读型光盘和读写型光盘。只读型指光盘上的内容是固定的,不能写入、修改,只能读取其中的内容。读写型则允许人们对光盘内容进行修改,可以抹去原来的内容,写入新的内容。用于微型计算机的光盘主要有CD-ROM、CD-R/W和DVD-ROM等几种。(7) 纳米存储纳米是一种长度单位,符号为nm。1纳米=1毫微米,约为10个原子的长度。假设一根头发的直径为0.05毫米,把它径向平均剖成5万根,每根的厚度即约为1纳米。与纳米存储有关的主要进展有如下内容。 1998年,美国明尼苏达大学和普林斯顿大学制备成功量子磁盘,这种磁盘是由磁性纳米棒组成的纳米阵列体系。一个
19、量子磁盘相当于我们现在的10万100万个磁盘,而能源消耗却降低了1万倍。 1988年,法国人首先发现了巨磁电阻效应,到1997年,采用巨磁电阻原理的纳米结构器件已在美国问世,它在磁存储、磁记忆和计算机读写磁头等方面均有广阔的应用前景。 2002年9月,美国威斯康星州大学的科研小组宣布,他们在室温条件下通过操纵单个原子,研制出原子级的硅记忆材料,其存储信息的密度是目前光盘的100万倍。这是纳米存储材料技术研究的一大进展。1.4 FIFO设计技术简介1.4.1 基于信元的FIFO设计方法2设计者通常在FPGA上实现FIFO(先进先出寄存器)的时候,都会使用由芯片提供商所提供的FIFO。但是,由于其
20、通用性使得其针对性变差,某些情况下会变得不方便或者将增加硬件成本。此时,需要进行自行FIFO设计。有一种基于信元的FIFO设计方法以供设计者在适当的时候选用。这种方法也适合于不定长包的处理。以ATM的设计为例,在ATM的相关设计中,设计者则更多希望一个FIFO对外给出的信息是“现在FIFO中还剩下几个信元”。要实现这一功能通常有两种方法:(1)调用厂商提供的以操作粒度为基本单元的通用FIFO,然后在这个FIFO的外面再加上一个“套子”。这个套子里面设计一些计数器,根据计数内容对外提供相应的信息。(2)设计操作粒度为信元的定制FIFO。这样对外直接提供设计者最希望得到的信息,即FIFO中还有多少
21、个信元。设定FIFO最多可以存放4个信元。基本单元为字节,因此RAM的数据宽度为8位,一个信元的长度为53字节。把RAM分成4个信元区域,读写地址的高二位指明信元区域,低六位指明信元区域内的字节地址,这样组合成8位读写地址。读写双方的信息交换是互相通知对方还有多少个信元在FIFO中。读写双方都拥有自己的记分牌(Scoreboard),这个记分牌可以由一个四位的寄存器来实现,每一位对应一个信元区域。当一个信元区域中有一个完整的信元的时候,记分牌的相应的寄存器被设置为1,否则为0。读出方读出一个信元,修改自己记分牌的动作叫做清位。写入方写入一个完整信元,修改自己记分牌的动作叫置位。从逻辑上说,只需
22、要读出方把自己的记分牌的信息(清位信息)传送给写入方,同时写入方把自己的记分牌的信息(置位信息)传送给读出方就可以了,即只要构成两条逻辑通道就可以满足需求。但是,在硬件上的实现却要比这种只从逻辑上的思考要复杂。由于读写双方有可能处在不同的时钟域,所以当读写双方交换信息的时候就需要处理信号采样的亚稳态情况。1.4.2 基于SRAM/DRAM的大容量FIFO的设计与实现2许多系统都需要大容量FIFO作为缓存,但是由于成本和容量限制,常采用多个FIFO芯片级联扩展,这往往导致系统结构复杂,成本高。静态随机存取存储器SRAM(Static Random Access Memory)是一种非常重要的易失
23、性存储器,它的速度非常快,并且能在快速读取和刷新时保持数据完整性。SRAM器件采用Hynix公司的HY64UD16322A。HY64UD16322A是高速、超低功耗32 Mbit SRAM,内部具有2 097 152个16 bit字容量。采用了CMOS制造工艺、TTL电平接口以及三态输出,具有较大的输入电压和温度范围。同时HY64UD16322A支持DPD(Deep Power Down)模式,保证其在待机模式下功耗进一步降低。系统采用CPLD作为总控制器件。根据FIFO的特点,需要将SRAM按地址存储用程序控制成先进先出的结构。这里采用指针算法来实现这种结构设计:设置两个指针变量StartP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计论文基于Verilog HDL的异步FIFO设计与实现 毕业设计 论文 基于 Verilog HDL 异步 FIFO 设计 实现
链接地址:https://www.31ppt.com/p-4149780.html