版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要随着数字系统规模的不断增大,单时钟域设计会极大地限制数字系统性能,现代数字系统为了提升性能,常采用多时钟域的设计。跨时钟域的信号在传输时会遇到亚稳态现象,如何保持系统稳定地传输数据是多时钟域系统设计者重点关注的问题,在跨时钟域传递数据的系统中,常采用异步FIFO(First In First Out,先进先出队列)口来缓冲传输的数据,以克服亚稳态产生的错误,保证数据的正确传输。常规的异步FIFO 设计采用先同步读写指针后比较产生空满标志和用先比较读写指针产生空满标志,再同步到相应时钟域的方法,但由于常规异步FIFO 模块中的RAM 存储器读写寻址指针常采用格雷码计数器以及“空满”控制逻辑
2、的存在,工作频率低,面积大,将使通过这两个模块的信号通路延时对整个模块的工作频率造成制约。本文提出了一种新型异步FIFO 的设计方法,该方法省略“了满”信号产生模块和多余的存储器位深来简化常规的FIFO 模块,而只保留“空”信号产生模块,避免使用大量的同步寄存器,减少了面积空间。FPGA 验证的结果表明,改进后的异步 FIFO 性能有了显著的提高。关键词:现场可编程门阵列(FPGA ) 亚稳态 空/满标志产 高速FIFOABSTRACTWith the increasing of digital system size, a single clock domain design will gr
3、eatly limit the digital system performance. To enhance the performance of modern digital systems, multiple clock domain design is conventionally adopted. While being transmitted, Cross-clock domain signals will come across the phenomenon of metastability, hence it will be a major concern for the mul
4、ti -clock domain system designers to probe how to maintain the system stability and to have data transmission conducted smoothly. As to the bus system data transmission in the system where the two data interface clocks dont match, one of super and effective solutions is to use asynchronous FIFO buff
5、er memory. How To solve the key and difficult issue that metastability and how to generate empty and full flag correctly in asynchronous FIFO design. Traditional FIFO design often synchronizes write/read address first, then compares them to generate empty/full signals or empty / full flag first comp
6、are the read and write pointer, and then synchronized to the clock domain, This design takes on too much area and can only work at a low frequency,this will allow the signaling pathways of these two modules delay caused by constraints of the operating frequency of the entire module. A new method of
7、asynchronous FIFO is proposed to overcome these problems, omit the "full" signal generator module and redundant memory bit depth to simplify the conventional FIFO module, leaving only the "empty" signal generation module,avoid the use of a large number of synchronization register
8、s, reducing the area of space. FPGA verification results show that the asynchronous FIFO improved performance has been significantly improved.Keywords: Field Programmable Gate Array (FPGA); Metastable; Mmpty / Full Flag production; High-speed FIFO目 录摘 要IABSTRACTII第一章绪 论11.1研究背景和意义11.2研究现状11.3本文的主要工作
9、31.4论文结构3第二章 跨时钟域设计的挑战与实现方法42.1跨时钟域设计的挑战4亚稳态问题4亚稳态产生的原因5亚稳态的危害52.2 跨时钟域的实现方法6同步器6握手机制9第三章 开发环境113.1硬件平台113.2软件平台11第四章 异步FIFO的设计与实现134.1异步FIFO13异步FIFO工作原理13异步FIFO设计的难点144.2常见异步 FIFO 的设计164.2.1 读写地址产生逻辑18空/满标志的产生及代码的实现19改进的异步 FIFO 设计方法分析224.4高速异步FIFO的设计与实现23常见FIFO模块分析23高速异步FIFO 设计25第五章 结 论28第六章 参考文献29
10、致 谢30附 录 高速异步FIFO设计仿真分析31附1. 设计工作流程31附.1.1 设计输入31附.1.2 设计编译35附.1.3 设计仿真37第一章 绪 论1.1研究背景和意义作为21 世纪最重要的科学领域之一,超级计算机是体现科技竞争力和综合国力的重要标志。各大国均把它作为国家科技创新的重要基础设施,投入了巨资进行研制和开发。随着科学技术的进步,我国的超级计算机取得了高速的发展,2010 年11 月14 日,国际TOP500 组织在网站上公布了最新全球超级计算机前500 强排行榜,中国首台千万亿次超级计算机系统“天河一号”高居榜首。高性能微处理器是超级计算机的核心,高性能微处理器目前都采
11、用多核的结构,多核处理器是指在一个芯片内集成多个处理核心而构成的处理器,所谓“核心”,通常指包含指令部件、算术、逻辑部件、寄存器堆和一级或者二级缓存的处理单元。现代数字系统的设计多采用全局异步,局部同步的设计方式,核心部件采用高频设计为了提升性能,为了尽快地上市常常采用SoC 的设计,集成成熟的IP,在同一芯片有多个时钟域。在数字系统设计中,数据在不同模块或系统间传输,而现代数字系统内部采用多时钟域设计,导致数据进行跨时钟域传输。由于各系统数据总线上的传输速度不同而造成系统接口界面处出现数据输入和输出速度不同,就会发生数据传输速率不匹配的问题,这会让传输的数据产生错误或者丢失,降低数据传输的可
12、靠性,同时也会因为对数据的复写、丢弃而降低数据传输速率,因此需要在各系统接口界面处设计专用的电路来实现数据的高速高效传输。为了提高电路整体性能,设计者对数据传输率、数据吞吐量以及系统各部分接口之间不同数据传输速率以及带宽的匹配有越来越高的要求,所以研究数据如何在异步时钟域稳定和快速地传输,具有非常重要的现实意义。1.2研究现状随着数字系统规模的不断扩大,跨时钟域信号的同步器设计以及相应的验证技术,越来越被关注。目前的VLSI 设计进入到SoC 时代,一个SoC 系统中一般含有多个时钟域,如何在这些不同时钟域之间进行稳定、可靠地传输成为设计人员所面临的一个挑战性的问题。国内外研究人员提出了异步握
13、手、异步包装以及异步FIFO 等多种解决方案。实践证明,采用异步FIFO 进行跨时钟域传输是非常有效、可靠的方法,在实际芯片设计中得到了广泛的应用。Clifford E.Cummings 在文献1中提出了一种基于Gray 码的异步FIFO 接口技术。同步多个异步输入信号出现亚稳态的概率远远大于同步一个异步信号的概率,解决这一问题的有效方法是采用格雷码。格雷码是一种在相邻计数数值之间只有一位发生变化的编码方式,读写指针采用格雷码的编码方式,就可以尽可能地消除触发器产生亚稳态问题。William J Dally 和John W Poulton 在文献2中提出一个表示关于任意两次故障出现的间隔时间期
14、望的平均无故障时间MTBF,一个系统亚稳态的MTBF 是与系统频率、器件速度之间的指数函数。同步器去采样输入的异步数据,当在第一级的时序器件出现亚稳态的问题时,其输出会出现一种不稳定的中间值,并且这个时间受多种因素影响。当第二个时序器件的采样窗口到来的时候,在第二级输入端口上的电平仍然处在可以使第二级出现亚稳态的电平范围内的概率会变得很小,由计算公式表明,对于大多数的应用问题,两级锁存器同步失效的概率很小足以消除可能出现的亚稳态情况。Vijay A. Nebhrajani 在文献3中提出关于异步FIFO 的五种结构,分别从单时钟结构,双时钟三种结构和脉冲模式的FIFO 的结构进行了阐述。着重介
15、绍了怎样设计异步FIFO,主要讨论了异步FIFO 空满标志的产生方法。美国研究人员Tiberiu Chelcea,Steven M. Nowick,Xin Wang, Tapani Ahonen,Jari Numi 在文献4,5中用写/读令牌环代替写/读指针,简化了“满”/“空”状态的检测,节省了编码转换逻辑以及同步器的延迟和面积开销,但是为了防止写/读溢出及死锁,又引入了额外的控制逻辑,并且仍然存在可用空间的浪费。日本研究人员Jeong-Gun Lee,Suk-Jin Kim,Kiseon Kim 在文献6结合握手协议和行波流水技术实现了一种异步FIFO,降低了延迟和功耗,但其纯异步电路实现
16、方式增大了设计的复杂度和应用的难度。受国外研究热潮的影响,近些年来,国内一些院校和科研单位也开始对异步FIFO 展开研究,主要研究有:中国科学院微电子研究所的博士生导师袁国顺和张英武博士等人,共同设计实现了一款低功耗的异步FIFO,引入了门控时钟技术降低了控制电路和译码电路80的功耗7,并采用位线分割技术降低了存储单元38的功耗。利用格雷码作异步FIFO 指针的控制电路,能有效地消除多时钟域中的亚稳态。国防科技大学计算机学院博士生导师陈书明、刘祥远博士,针对现有FIFO 设计方法的不足,提出一种新的异步FIFO 结构8WG-FIFO,采用加权Gray 码进行指针编码,采用实时状态检测器控制写/
17、读操作。模拟结果表明,在FIFO 深度为416 的情况下,该结构与已有的FIFO 结构相比在性能、面积开销以及写读操作效率等方面都获得了明显的改善。特别地,当FIFO 的深度为8、宽度为32时,相比B-FIFO,WG-FIFO 的最高时钟频率提高31.6,单元面积减少17.1,且写/读效率最大能提高47。东南大学周磊硕提出了一种新型结构异步FIFO 电路的实现方案9,运用整体移位实现数据正确写入和输出,使用缓冲寄存器组存放移位产生的多余数据,适用于频率不成整数倍的异步时钟域之间的数据传输。利用串联的D 触发器作为同步器,避免产生亚稳态,实现异步信号的同步,采用自顶向下、基于0.18mm 标准单
18、元库的半定制ASIC 流程对其进行设计。该方案与常见的异步FIFO 实现方案进行比较,面积大约减少一半,工作速度提高约三分之一。指针编码不同程度地存在下列问题:(1)写/读指针编码转换、计算的延时大,限制了写/读操作频率。(2)跨时钟域传递写/读指针需要大量的同步器,面积开销大。(3)由于同步器的延迟,导致FIFO 的状态检测保守,浪费可用空间。综上所述,国内外关于异步FIFO 的设计与验证的研究,虽然取得了一定的成果,但是研究仍处于发展阶段,跨时钟域设计将面临着更多的困难与挑战。1.3本文的主要工作本文较为全面地讨论了跨时钟域设计的挑战,并论述了异步FIFO 的设计和验证过程,最后分别对常见
19、的异步FIFO 和改进的异步FIFO 进行了FPGA 验证综合,并对综合后的结果进行了比较。其主要工作包括:1、针对FIFO设计的局限性,先简单地介绍了亚稳态的工作原理,并详细地分析了常规FIFO 口对模块工作频率制约的主要原因,然后结合FPGA优秀的逻辑控制功能,及低功耗、高可靠性、可重构性、开发周期短和开费用低廉等特性,提出了一种在FPGA 内实现高速异步FIFO 的方法。2、提出了基于DE2-70平台的异步FIFO 的检验方法,利用原理图描述异步FIFO,对设计的异步FIFO进行模块化综合验证,达到了预期的效果。1.4论文结构本文共分六章,各章的组织如下:第一章,绪论,包括论文选题的背景
20、与意义、研究现状及主要工作等;第二章,介绍跨时钟域设计的挑战和实现方法,介绍了亚稳态的现象、产生的原因及危害和同步器及握手机制的实现方法;第三章,介绍本设计的开发环境;第四章,对常规异步FIFO做了分析,提出高速异步FIFO的设计和实现方法;第五章,总结得出结论;第六章,参考文献;致谢附录第二章 跨时钟域设计的挑战与实现方法在一般的 ASIC 设计中,比较常见的是同步时序设计,即单时钟的设计,但是在实际应用中,纯粹的单时钟设计并不能满足 ASIC 设计的多方面需求,特别是所设计模块需要与外围设备通讯时,跨时钟域的数据传输是不可避免的。如果对这种情况估计不足或者缺乏足够的了解将会使设计面临重大的
21、隐患,甚至会造成不可估量的损失。本章主要介绍跨时钟域数据传输时容易出现的问题与同步器设计的实现方法。2.1跨时钟域设计的挑战亚稳态问题随着数字系统规模的不断增大,一个系统通常与若干个子系统进行通信,如 计算机会有并口、串口、USB 接口等各种不同种类的接口,可以连接不同的外部设备。由于外部设备与主机的时钟不一致,跨时钟域异步信号的可靠传输变得十分重要。在通信系统中,各个节点间时钟不一致,节点间跨时钟域的低误码率传 输极其重要. 跨时钟信号传输是指某时钟域内的信号传递到另外一个或多个时钟域,该信号对于另一个时钟域来说,一般是异步的,即不能保证采样时该信号是稳定的,或者说无法保证采样点前后的建立和
22、保持时间。这种不稳定性常常会造成不可预 测的错误或干扰,致使硬件系统无法正常工作。在信号传输中,每种触发器都有时序要求,对于使用上升沿触发的触发器来 说,建立时间(Setup Time)是在时钟上升沿到来之前,触发器数据保持稳定的最小 时间,而保持时间(Hold Time)是在时钟上升沿到来之后,触发器数据还应该保持 的最小时间29,在时钟上升沿前后的这个窗口内数据应该保持不变,否则会使触 发器工作在一个不确定的状态,即亚稳态。当触发器处于亚稳态且处于亚稳态的时间超过了一个时钟周期时,这种不确定的状态将会影响到下一级的触发器,最 终导致连锁反应,从而使整个系统功能失常,如图 2.1 所示。当一
23、个信号跨越某个 时钟域时,对新时钟域的电路来说,它是一个异步信号。由于异步信号之间的时 序是毫无关系的,因此必然存在建立时间/保持时间(Setup Time/Hold Time)冲突.简单来说,亚稳态就是指当触发器的建立时间和保持时间要求没有得到满足时,触发器就 会进入一个介于逻辑 1 和逻辑 0 之间的第三种状态,换句话说,是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上, 在这个稳定期间,触发器输出一些中间级电平或者可能处于振荡状态,并且这种 无效的输出电平可以沿信号通道上的各个触发器级
24、联式传播下去。 “?” “1” “? ” “0” dat adat bdat ” “?” “?” clka clkbclka adat clkb bdat 图 2.1 异步时钟和亚稳态现象 亚稳态产生的原因如果触发器的建立时间或保持时间(setup time / hold time)不满足时,在同步系统中,亚稳态现象就可能会出现,此时触发器的输出端 Q,在有效时钟沿之后, 很长的一段时间里处于不确定的状态,在这段时间里 Q 端振荡、毛刺、固定的某一电压值,而不是等于数据输入端 D 的值,这段之间成为决断时间(resolution time)。经过决断时间(resolution time)之后,
25、Q 端将稳定到 1 或 0 上,但是究竟是0 还是 1,这是随机出现的,与输入没有因果联系。亚稳态的危害由于输出在稳定下来之前可能是振荡、毛刺或固定的某一电压值,因此亚稳态除了导致逻辑误判之外,输出0到 1之间的中间电压值还会使下一级产生亚稳态现象。在电路设计中,逻辑误判有可能通过特殊设计减轻其危害,但亚稳态现象的传播扩大了故障面,难以处理。只要系统中有异步元器件,亚稳态现象就会出现的,因此设计的电路首先要尽可能减少亚稳态引发错误的概率,其次要使系统对产生的错误不受其影响。常用用同步器来减少亚稳态发生的概率。2.2 跨时钟域的实现方法SoC(System on chip,SoC)技术的广泛应用
26、,芯片的高性能和低功耗的需求, 芯片的多个部件通常工作在不同频率的异步时钟域中。跨时钟域(Clock Domain Crossing,CDC)的数据传输电路被称为跨时钟域设计,其功能的正确性是 SoC 系 统芯片各跨时钟域部件间正确传输数据的基础。在跨时钟域路径上传递信号不正 确的设计可能产生三种情况,一种是产生亚稳态(Metability),该路径终点寄存 器的建立或保持时间违例(Setup/Hold Timing Violation),从而引起寄存器的输入 端进入亚稳态状态;另一种是数据保持时间(Hold Time)不足,产生数据丢失,例 如来自一个快时钟域的信号不能够被慢时钟域的时钟采样
27、到;最后一种是数据聚 合(Re-convergence),一组被同步的控制信号再次汇聚时丢失或重复采样。对于第一种情况,如果是单根控制信号,最简单的解决方法是采用两级同步器;对于第二、三种可采用异步 FIFO,带使能的同步器,握手协议等方法。跨时钟域信号同步器的设计,通常用同步器或增加握手信号可以实现。同步器跨时钟域信号同步器的设计,通常的实现方法有以下几种:1、两级同步器:解决跨时钟域设计问题的基本方法是同步器,同步器是将几个用本地时钟驱 动的时序器件串联起来,去采样输入的异步数据,当在第一级的时序器件出现亚 稳态的问题时,其输出会出现一种不稳定的中间值,并且这个时间受多种因素影 响,或者说
28、这个输出在高电平到低电平之间满足一定形式的概率分布。当第二个 时序器件的采样窗口到来的时候,在第二级输入端口上的电平仍然处在可以使第 二级出现亚稳态的电平范围内的概率会变得很小,如果再加上第三级,在第三级 上的这个概率几乎可以忽略不计。从数学上讲,每个时序器件的亚稳态的出现都 有一定的概率,如果多个期间串联,总概率是各自概率的积,因此增加期间,会 消除“亚稳态”,但是这里的消除是指降低不稳定的时间,使得输出电平的稳定时间接近时钟周期。至于能否采样到正确的逻辑,则基本取决于第一个时序器件的输出。跨时钟域的核心问题是亚稳态现象,最简单的同步器设计加在该路径终点寄存器,同步器设计为两个背靠背的两级触
29、发器,适用于慢时钟到 快时钟域的单根控制信号的同步。虽然同步器可以消除亚稳态现象,但其输出体 现输入变化的明确时钟周期仍然不可预测,这种不确定性是跨时钟域设计中功能 错误的本质原因,值得注意的是电平信号同步转换,有效电平必须保持或大于 2个目的时钟周期,否则可能会丢掉,如图 2.4 所示 sigin D clkin Q D Q D Q sinout clkout图 2.4 二级同步信号转换逻辑 sigin D R1 R2 R3 Clkin Q D Q D Q RI Step time hold time clkout Cycle 1 R2 cycle2 cycle3 R3 图 2.5 跨时钟域
30、信号的亚稳态现象如图 2.5 所示,两级寄存器组成的同步器,其输出信号 R3 虽然不存在亚稳态现象,但 R3 体现 R1 变化的时钟周期可能在 Cycle 2 也可能在 Cycle 3,这种不确定性是跨时钟域设计中功能错误的本质原因,采用二级同步器的方式,R1 信号的有效时间是 Cycle 1,正确使用 R3 信号时间是 Cycle 4,电平信号同步转 换,有效电平必须保持或大于持 2 个目的时钟周期,否则可能会丢掉,适合于慢时钟域到快时钟域的单根控制信号的同步。2、采用格雷码的同步转换器适合于单根有效信号的转换,如图2.7 所示二进制计数器的位宽与源时钟、目的时钟的频差有关系,位宽log2(
31、clkin/clkout),适合高速时钟域进入低速时钟域应用的场合:如数据传输的有效信号和适合于跨时钟域的递增指针的传输。 sigin binary binary Counter counter clkin clkout full compare D Q D Q D Q compare sigout clkin clkout图2.7 采用格雷码的二级同步信号转换逻辑3、采用格雷码编码的数据总线同步器:数据有效信号采用格雷编码转换逻辑, 产生目的时钟域的数据使能信号,这种类型主要用于寄存器通路中,同步后的读写使能信号作为同步使能信号,对地址和数据进行同步,如图 2.9 所示 Source clo
32、ck domainack Destination clock domainGraycode synchronizersrc_vld D Gray code synchronizerdst_vld D Q src_addD Qm bitsen dst_addD src_clksrc_dataD Qn bitsst_clkenD dst_dataQ 图 2.9 采用使能信号的同步器的逻辑4、不带应答的数据总线同步器:跨时钟域数据总线的传输,数据使能信号通 过脉冲同步器完成,特别适用于目的时钟大于源时钟域频率 3 倍以上的,低速时 钟域进入高速时钟域应用的场合,源时钟域发送数据时,前一个数据一定被目
33、的 时钟域接收。数据总线输入同步器和输出同步器都是栈进栈出,利于定义约束文件,如图 2.10 所示。 datasrc_data D Q dst_data dst_valid D Qsrc_valid D Q Qclkin D Q D Q D clkout图 2.10 不带应答的数据总线同步器5、适用于低速时钟域进入高速时钟域应用的场合的脉冲同步器,如图 2.11 所示。sigoutsigin DclkinQ D Q D Q Clkout 图 2.11 脉冲同步器信号逻辑典型的同步器有电平同步器、边沿检测同步器、脉冲同步器等,虽然它们都可以消除亚稳态现象,但是其输出体现输入变化的确切时钟周期仍然
34、不可预测的。2.2.2握手机制跨时钟域数据总线的传输,数据的使能信号通过握手信号完成。握手信号是 指由源电路声明,发送到目的电路的请求信号。目的电路检测该请求信号,判断 其有效性,然后声明它的响应信号反馈给源电路。在电路实现中,源电路请求后 一定有应答;请求信号有效的过程,数据总保持稳定。信号转换逻辑,如图 2.15所示。对全握手信号,双方电路在声明或中止各自的握手信号前都要等待对方的响应,第一步,电路A 声明它的请求信号,第二步,电路B 检测到该请求信号有效后,声明它的响应信号,当电路A 检测到响应信号有效后,中止自己的请求信号,第三步,当电路B 检测到请求无效后,它中止自己的响应信号,除非
35、电路A 检测到无效的响应信号,否则它不会再声明新的请求信号。data busD Qdata_outD Qen enreq_clkSenderHandshakeFSMREQack_clkACK F FF FF FF FF FF FF FQ DQ DReceiverHandshake FSMack_clkreq_clk图2.15 握手协议信号转换逻辑当使用部分握手信号方式时,响应的电路必须以正确的时序产生它的信号。如果响应电路要求先处理完一个请求,然后才能处理下一个请求,则响应信号的时序就很重要,电路用它的响应信号来指示它的处理任务何时完成。第一种部分握手方法混合了电平与脉冲信号,而第二种方法则只
36、使用脉冲信号。这些握手协议使用的都是跨越时钟域的单一信号,但当几组信号要跨越时钟域时,设计人员就需要使用较复杂的信号传送方法。本文将在第四章进一步完成异步FIFO的设计。第三章 开发环境3.1硬件平台随着FPGA的不断发展,尤其是如今许多高端FPGA的高密度、高性能以及丰富的特性,高端芯片系统(SoC)设计都选择了业界效率最高、性能最好的逻辑、嵌入式存储器和DSP功能的Stratix系列的FPGA。而这些高端的FPGA的开发平台也不得不随之不断地改进和升级,以满足高端FPGA设计的最佳解决方案。与各种FPGA的开发平台相比,Altera DE2-70 多媒体开发板配备了数量高达70,000 个
37、逻辑单元的Altera Cyclone. II 2C70 和更大容量的记忆体元件,并完全承袭了Altera DE2 多媒体平台丰富的多媒体、储存及网路等应用介面的优点。Altera DE2-70 最新多媒体开发平台提供使用者丰富的产品功能,在广泛的电路设计运用上,从简易的电路设计,到多样化的多媒体专案,使用者都能轻易完成。DE2-70 拥有显示器、视讯输出接口、音讯输入出、输入按钮、额外的存储存空间等配件,能够从事更为广泛的硬体设计;且其开发板可独立运作的特性,也更适合嵌入式系统相关硬体的开发。本设计就是基于DE2-70开发平台来完成异步FIFO的设计的。3.2软件平台Quartus II 是
38、Altera公司的综合性PLD/FPGA开发软件,是Altera前一代FPGACPLD集成开发环境MAX+plus II的更新换代产品。支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,它提供了一种与结构无关的设计环境,是设计者能方便的进行设计输入、快速处理和器件编程。Quartus II提供了完整的平台的设计环境,能够满足各种特定的设计需要,设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Ve
39、rilog逻辑综合器。Quartus II也可以第三方的综合工具,如Leonardo Spectrum、Synplify Pro、FPGA Complier,并能直接调用这些工具。同样,Quartus II具备仿真功能,同时也支持第三方的仿真工具,如ModelSim。此外,Quartus II与MATLAB和DSP Buider结合,可以进行基于FPGA的DSP系统开发。Quartus II包括块化的编译器。编译器包括的公共模块有分析综合器(Analysis&Synthesis)适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助
40、模块、EDA网表文件生成器(EDA Netlist Writer)和编译数据库接口等。Quartus II 还包含许多十分有用的LPM(Library of Parameterized Moudles)模块,它们是复杂或高级系统的重要组成部分,在SOPC设计中被大量使用。Quartus II软件的功能特性如下:Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括: 可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件; 芯片(电路)平面布局连线编辑; LogicLock增量设计方法,用户可建立并优化系
41、统,然后添加对原始系统的性能影响较小或无影响的后续模块; 功能强大的逻辑综合工具; 完备的电路功能仿真与时序逻辑仿真工具; 定时/时序分析与关键路径延时分析; 可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析; 支持软件源文件的添加和创建,并将它们链接起来生成编程文件; 使用组合编译方式可一次完成整体设计流程; 自动定位编译错误; 高效的期间编程与验证工具; 可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件; 能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。Quartus II还拥有良好的设计输入定位器,用于确定文本或图形设计中的错误。
42、在进行编译后,可对设计进行时序仿真,编译和仿真无误后,便可以将下载信息通过Quartus II提供的编程器下载到目标器件中了。有了Quartus II强大功能的平台支持,就可方便快捷高效地实现异步FIFO的设计和实现了。第四章 异步FIFO的设计与实现4.1异步FIFO 设计同步化是当今集成电路设计的主导思想之一,即采用同一个时钟来控制 所有时钟控制器件,然而在实际的数字系统中,完全同步化的设计,实现起来非 常困难,多数情况下,完成数据在不同时钟域间的传输是不可避免的。因此,如 何保持系统顺利、稳定地完成数据的传输是一个极其重要的问题,通常解决这一问题的做法是采用对每位信号增加握手信号或加同步
43、器,但是这样会影响传输速 度和增加系统的复杂度。本文在两个时钟域的交界处增加一个异步 FIFO,通过它来实现数据流的传输。然而,常见的异步FIFO 设计采用同步读写地址后比较产生空满标志的方法,面积大、工作频率低。本章将通过优化格雷码编码电路来改进 常见的异步 FIFO 设计,减少面积空间,提升工作频率 写地址产生 双口RAM 读地址产生 full wr_clk empty wr_en wr_adder wr_clk rd_addr rd_clk wt_en wr_adder rd_adder wr_adder rd_adder rd_en图3.1 异步FIFO内部模块和接口信号4.1.1异步
44、FIFO工作原理异步FIFO 的工作原理如图1 所示。一般可以分为4个模块: 写地址模块、读地址模块、数据存储模块以及空/满标志位产生模块。数据存储模块在FPGA 中是一个双口RAM, 可以同时进行读写操作。整个系统分为两个完全独立的时钟域: 读时钟域和写时钟域。由图 可以看写地址产生模块根据写时钟和写有效信号产生递增的写地址, 读地址产生模块根据读时钟和读有效信号产生递增的读地址。在FIFO 中的具体实现过程为: 在写时钟的上升沿, 当写使能有效, 将数据写入到双口RAM 的写地址对应位置; 在读时钟的上升沿, 读使能有效的时候, 始终将读地址对应的双口RAM 中的数据输出到读数据总线上。空
45、/ 满标志位产生模块是由读写地址相互比较生成空/满标志。异步FIFO 存储器的接口信号如图3.1 所示, 包括异步的写时钟( wrclk) 、读时钟( rd_ clk) 、与写时钟同步的写有效( wr _en) 、写数据( wr _data) 、及与读时钟同步的读有效( rd_en) 、读数据( rd_ data) . 为了实现正确的读写和避免异步FIFO 存储器的上溢或下溢, 给出的与读时钟和写时钟同步的FIFO 的空标志( empty) 、满标志( full) 以禁止非法读、写操作. 由图4 可以看出, 写地址产生模块根据写时钟和写有效信号产生递增的写地址, 读地址产生模块根据读时钟和读有
46、效信号产生递增的读地址. 在写时钟wr_ clk 的上升沿, 当wr _en 有效时, 将wr_data 写入双口RAM 中写地址对应的位置中; 并始终将读地址对应的双口RAM 中的数据输出到读数据总线上, 从而实现了先进先出的功能.当读写地址的差值等于一个预设值的时候,空/满信号被置位。这种实现方法逻辑简 单,但它是减法器形成的一个比较大的组合逻辑,因而限制了 FIFO 的速度。所以,一般只采用相等不相等的比较逻辑,避免使用减法器。图3.3 是另外一种设计,比较器只对读写地址比较是否相等。在读写地址相等的时候无法判断空满状态,所以附加了一个并行的区间判断逻辑来指示是空还是满。这个区间判断逻辑
47、将整个地址空间分为几个部分,以指示读写地址的相对位置,这种做法提高了整个电路的速度,但是其缺点主要是直接采用读写地址是否相等的比较逻辑来进行空/满标志的判断,在某些时候有可能带来误判。写地址 比较器 读地址 空/满标志 判断逻辑 区间指示器图3.3 带区间指示的FIFO 标志产生逻辑4.1.2异步FIFO设计的难点异步 FIFO 是一个经典的跨时钟域设计,蕴含很多跨时钟域设计方法,具有 两大特点。一是单个信号跨时钟域,由于两个时钟不同,跨时钟信号不能满足新 时钟的建立和保持时间所造成的亚稳态问题。二是多个控制状态信号的跨时钟传 递。具体地说,就是把一组信号传递到另外一个时钟域的时候,这一组信号
48、可能 因为延迟不同,这样到达新时钟域之后,得到的数据相差一个老时钟域的时钟周 期。在异步 FIFO 中,需要传递的是一个计数器,这个计数器可以编码成格雷码, 这样的编码每次只变化一个位,避免了多个跨时钟域信号同时变化。值得注意的 是,这里对格雷码的相对延迟和相关的时钟周期有一个要求,这就是异步 FIFO 中最关键的一点。多位同步信号转换主要适用在异步 FIFO 这样的逻辑,其读写指针在进行时钟 域转换时,首先要将其转换为格雷码形式,再进行转换。在寄存器通路中,读写 使能信号也通过本方式进行同步,值得注意的是,异步 FIFO 的描述与域库器件的 逻辑描述相关,器件选型后,规范统一异步 FIFO
49、的描述,异步 FIFO 的同步信号 转换逻辑,如图 3.4 所示。 data_in data_ out Register D Qfile waddr clk_rdraddr wr Binary Binarycounte counter rdwr_clk rd_clk D D D D Q DQdata_vld full compare Q Q Q Q compare D wr_clk rd_clk rd_clk图 3.4 异步 FIFO 的同步信号转换逻辑计者使用异步 FIFO 有两个目的:速度匹配或数据宽度匹配。在速度匹配时, 异步 FIFO 较快的端口处理猝发的数据传输,而较慢的端口则维持恒定的数据流。 虽然访问方式和速度不同,但是进出异步 FIFO 的平均数据速率必须是相同的, 否则异步 FIFO 就会出现上溢或下溢问题。在速度匹配应用中,每个端口(读或写) 的时钟不同。异步 FIFO 中的寄存器使用写端口时钟,就像保持
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中介公司团队年终总结
- 冠脉搭桥手术病例分析
- 光伏行业报告:国内外光伏需求两旺
- 2024至2030年中国高压尿素用不锈钢角式截止阀数据监测研究报告
- 2024至2030年中国铁艺公园椅数据监测研究报告
- 2024至2030年中国轿车接油盘数据监测研究报告
- 2024年自动温度检定系统项目成效分析报告
- 2024至2030年中国石榴浓缩汁行业投资前景及策略咨询研究报告
- 2024至2030年中国玻璃钢平板数据监测研究报告
- 2024至2030年中国手表MP3行业投资前景及策略咨询研究报告
- Q∕GDW 12176-2021 反窃电监测终端技术规范
- 系统解剖学——动脉
- 8 煤矿安全监测监控系统PPT课件
- 压力容器壁厚计算
- 新产品试制流程管理办法
- 通用横版企业报价单模板
- Excel 会计记账模板-录入凭证自动生成财务报表(超实用)
- 从高考“函数与导数”压轴题看数学学科核心素养
- 装修公司员工劳动合同
- 数控技术毕业论文幻灯片 数控立式铣床工作PPT学习教案
- 机械专业个人职业生涯规划书范文3篇
评论
0/150
提交评论