ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:341.27KB ,
资源ID:4147719      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4147719.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(异步FIFO的设计与实现.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

异步FIFO的设计与实现.docx

1、异步FIFO的设计与实现摘 要随着数字系统规模的不断增大,单时钟域设计会极大地限制数字系统性能,现代数字系统为了提升性能,常采用多时钟域的设计。跨时钟域的信号在传输时会遇到亚稳态现象,如何保持系统稳定地传输数据是多时钟域系统设计者重点关注的问题,在跨时钟域传递数据的系统中,常采用异步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 de

3、sign will greatly 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

4、 for the multi -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 asynchrono

5、us FIFO buffer 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 fla

6、g first compare 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 ne

7、w method of 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 registers, reducing

8、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第一章绪 论1.1研究背景和意义作为21 世纪最重要的科学领域之一,超级计算机是体现科技竞争力和综合国力的重要标志。各大国均把它作

9、为国家科技创新的重要基础设施,投入了巨资进行研制和开发。随着科学技术的进步,我国的超级计算机取得了高速的发展,2010 年11 月14 日,国际TOP500 组织在网站上公布了最新全球超级计算机前500 强排行榜,中国首台千万亿次超级计算机系统“天河一号”高居榜首。高性能微处理器是超级计算机的核心,高性能微处理器目前都采用多核的结构,多核处理器是指在一个芯片内集成多个处理核心而构成的处理器,所谓“核心”,通常指包含指令部件、算术、逻辑部件、寄存器堆和一级或者二级缓存的处理单元。现代数字系统的设计多采用全局异步,局部同步的设计方式,核心部件采用高频设计为了提升性能,为了尽快地上市常常采用SoC

10、的设计,集成成熟的IP,在同一芯片有多个时钟域。在数字系统设计中,数据在不同模块或系统间传输,而现代数字系统内部采用多时钟域设计,导致数据进行跨时钟域传输。由于各系统数据总线上的传输速度不同而造成系统接口界面处出现数据输入和输出速度不同,就会发生数据传输速率不匹配的问题,这会让传输的数据产生错误或者丢失,降低数据传输的可靠性,同时也会因为对数据的复写、丢弃而降低数据传输速率,因此需要在各系统接口界面处设计专用的电路来实现数据的高速高效传输。为了提高电路整体性能,设计者对数据传输率、数据吞吐量以与系统各部分接口之间不同数据传输速率以与带宽的匹配有越来越高的要求,所以研究数据如何在异步时钟域稳定和

11、快速地传输,具有非常重要的现实意义。1.2研究现状随着数字系统规模的不断扩大,跨时钟域信号的同步器设计以与相应的验证技术,越来越被关注。目前的VLSI 设计进入到SoC 时代,一个SoC 系统中一般含有多个时钟域,如何在这些不同时钟域之间进行稳定、可靠地传输成为设计人员所面临的一个挑战性的问题。国内外研究人员提出了异步握手、异步包装以与异步FIFO 等多种解决方案。实践证明,采用异步FIFO 进行跨时钟域传输是非常有效、可靠的方法,在实际芯片设计中得到了广泛的应用。Clifford E.Cummings 在文献1中提出了一种基于Gray 码的异步FIFO 接口技术。同步多个异步输入信号出现亚稳

12、态的概率远远大于同步一个异步信号的概率,解决这一问题的有效方法是采用格雷码。格雷码是一种在相邻计数数值之间只有一位发生变化的编码方式,读写指针采用格雷码的编码方式,就可以尽可能地消除触发器产生亚稳态问题。William J Dally 和John W Poulton 在文献2中提出一个表示关于任意两次故障出现的间隔时间期望的平均无故障时间MTBF,一个系统亚稳态的MTBF 是与系统频率、器件速度之间的指数函数。同步器去采样输入的异步数据,当在第一级的时序器件出现亚稳态的问题时,其输出会出现一种不稳定的中间值,并且这个时间受多种因素影响。当第二个时序器件的采样窗口到来的时候,在第二级输入端口上的

13、电平仍然处在可以使第二级出现亚稳态的电平范围内的概率会变得很小,由计算公式表明,对于大多数的应用问题,两级锁存器同步失效的概率很小足以消除可能出现的亚稳态情况。Vijay A. Nebhrajani 在文献3中提出关于异步FIFO 的五种结构,分别从单时钟结构,双时钟三种结构和脉冲模式的FIFO 的结构进行了阐述。着重介绍了怎样设计异步FIFO,主要讨论了异步FIFO 空满标志的产生方法。美国研究人员Tiberiu Chelcea,Steven M. Nowick,Xin Wang, Tapani Ahonen,Jari Numi 在文献4,5中用写/读令牌环代替写/读指针,简化了“满”/“空

14、”状态的检测,节省了编码转换逻辑以与同步器的延迟和面积开销,但是为了防止写/读溢出与死锁,又引入了额外的控制逻辑,并且仍然存在可用空间的浪费。日本研究人员Jeong-Gun Lee,Suk-Jin Kim,Kiseon Kim 在文献6结合握手协议和行波流水技术实现了一种异步FIFO,降低了延迟和功耗,但其纯异步电路实现方式增大了设计的复杂度和应用的难度。受国外研究热潮的影响,近些年来,国内一些院校和科研单位也开始对异步FIFO 展开研究,主要研究有:中国科学院微电子研究所的博士生导师袁国顺和张英武博士等人,共同设计实现了一款低功耗的异步FIFO,引入了门控时钟技术降低了控制电路和译码电路80

15、的功耗7,并采用位线分割技术降低了存储单元38的功耗。利用格雷码作异步FIFO 指针的控制电路,能有效地消除多时钟域中的亚稳态。国防科技大学计算机学院博士生导师陈书明、刘祥远博士,针对现有FIFO 设计方法的不足,提出一种新的异步FIFO 结构8WG-FIFO,采用加权Gray 码进行指针编码,采用实时状态检测器控制写/读操作。模拟结果表明,在FIFO 深度为416 的情况下,该结构与已有的FIFO 结构相比在性能、面积开销以与写读操作效率等方面都获得了明显的改善。特别地,当FIFO 的深度为8、宽度为32时,相比B-FIFO,WG-FIFO 的最高时钟频率提高31.6,单元面积减少17.1,

16、且写/读效率最大能提高47。东南大学周磊硕提出了一种新型结构异步FIFO 电路的实现方案9,运用整体移位实现数据正确写入和输出,使用缓冲寄存器组存放移位产生的多余数据,适用于频率不成整数倍的异步时钟域之间的数据传输。利用串联的D 触发器作为同步器,避免产生亚稳态,实现异步信号的同步,采用自顶向下、基于0.18 m 标准单元库的半定制ASIC 流程对其进行设计。该方案与常见的异步FIFO 实现方案进行比较,面积大约减少一半,工作速度提高约三分之一。指针编码不同程度地存在下列问题:(1)写/读指针编码转换、计算的延时大,限制了写/读操作频率。(2)跨时钟域传递写/读指针需要大量的同步器,面积开销大

17、。(3)由于同步器的延迟,导致FIFO 的状态检测保守,浪费可用空间。综上所述,国内外关于异步FIFO 的设计与验证的研究,虽然取得了一定的成果,但是研究仍处于发展阶段,跨时钟域设计将面临着更多的困难与挑战。1.3本文的主要工作本文较为全面地讨论了跨时钟域设计的挑战,并论述了异步FIFO 的设计和验证过程,最后分别对常见的异步FIFO 和改进的异步FIFO 进行了FPGA 验证综合,并对综合后的结果进行了比较。其主要工作包括:1、针对FIFO设计的局限性,先简单地介绍了亚稳态的工作原理,并详细地分析了常规FIFO 口对模块工作频率制约的主要原因,然后结合FPGA优秀的逻辑控制功能,与低功耗、高

18、可靠性、可重构性、开发周期短和开费用低廉等特性,提出了一种在FPGA 内实现高速异步FIFO 的方法。2、提出了基于DE2-70平台的异步FIFO 的检验方法,利用原理图描述异步FIFO,对设计的异步FIFO进行模块化综合验证,达到了预期的效果。1.4论文结构本文共分六章,各章的组织如下:第一章,绪论,包括论文选题的背景与意义、研究现状与主要工作等;第二章,介绍跨时钟域设计的挑战和实现方法,介绍了亚稳态的现象、产生的原因与危害和同步器与握手机制的实现方法;第三章,介绍本设计的开发环境;第四章,对常规异步FIFO做了分析,提出高速异步FIFO的设计和实现方法;第五章,总结得出结论;第六章,参考文

19、献;致谢附录第二章 跨时钟域设计的挑战与实现方法在一般的 ASIC 设计中,比较常见的是同步时序设计,即单时钟的设计,但是在实际应用中,纯粹的单时钟设计并不能满足 ASIC 设计的多方面需求,特别是所设计模块需要与外围设备通讯时,跨时钟域的数据传输是不可避免的。如果对这种情况估计不足或者缺乏足够的了解将会使设计面临重大的隐患,甚至会造成不可估量的损失。本章主要介绍跨时钟域数据传输时容易出现的问题与同步器设计的实现方法。2.1跨时钟域设计的挑战2.1.1亚稳态问题随着数字系统规模的不断增大,一个系统通常与若干个子系统进行通信,如 计算机会有并口、串口、USB 接口等各种不同种类的接口,可以连接不

20、同的外部设备。由于外部设备与主机的时钟不一致,跨时钟域异步信号的可靠传输变得十分重要。在通信系统中,各个节点间时钟不一致,节点间跨时钟域的低误码率传 输极其重要. 跨时钟信号传输是指某时钟域内的信号传递到另外一个或多个时钟域,该信号对于另一个时钟域来说,一般是异步的,即不能保证采样时该信号是稳定的,或者说无法保证采样点前后的建立和保持时间。这种不稳定性常常会造成不可预 测的错误或干扰,致使硬件系统无法正常工作。在信号传输中,每种触发器都有时序要求,对于使用上升沿触发的触发器来 说,建立时间(Setup Time)是在时钟上升沿到来之前,触发器数据保持稳定的最小 时间,而保持时间(Hold Ti

21、me)是在时钟上升沿到来之后,触发器数据还应该保持 的最小时间29,在时钟上升沿前后的这个窗口内数据应该保持不变,否则会使触 发器工作在一个不确定的状态,即亚稳态。当触发器处于亚稳态且处于亚稳态的时间超过了一个时钟周期时,这种不确定的状态将会影响到下一级的触发器,最 终导致连锁反应,从而使整个系统功能失常,如图 2.1 所示。当一个信号跨越某个 时钟域时,对新时钟域的电路来说,它是一个异步信号。由于异步信号之间的时 序是毫无关系的,因此必然存在建立时间/保持时间(Setup Time/Hold Time)冲突.简单来说,亚稳态就是指当触发器的建立时间和保持时间要求没有得到满足时,触发器就 会进

22、入一个介于逻辑 1 和逻辑 0 之间的第三种状态,换句话说,是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上, 在这个稳定期间,触发器输出一些中间级电平或者可能处于振荡状态,并且这种 无效的输出电平可以沿信号通道上的各个触发器级联式传播下去。 “?” “1” “? ” “0” dat adat bdat ” “?” “?” clka clkbclka adat clkb bdat 图 2.1 异步时钟和亚稳态现象 2.1.2亚稳态产生的原因如果触发器的建立时间或保持时间(setup time

23、 / hold time)不满足时,在同步系统中,亚稳态现象就可能会出现,此时触发器的输出端 Q,在有效时钟沿之后, 很长的一段时间里处于不确定的状态,在这段时间里 Q 端振荡、毛刺、固定的某一电压值,而不是等于数据输入端 D 的值,这段之间成为决断时间(resolution time)。经过决断时间(resolution time)之后,Q 端将稳定到 1 或 0 上,但是究竟是0 还是 1,这是随机出现的,与输入没有因果联系。2.1.3亚稳态的危害由于输出在稳定下来之前可能是振荡、毛刺或固定的某一电压值,因此亚稳态除了导致逻辑误判之外,输出0到 1之间的中间电压值还会使下一级产生亚稳态现象

24、。在电路设计中,逻辑误判有可能通过特殊设计减轻其危害,但亚稳态现象的传播扩大了故障面,难以处理。只要系统中有异步元器件,亚稳态现象就会出现的,因此设计的电路首先要尽可能减少亚稳态引发错误的概率,其次要使系统对产生的错误不受其影响。常用用同步器来减少亚稳态发生的概率。2.2 跨时钟域的实现方法SoC(System on chip,SoC)技术的广泛应用,芯片的高性能和低功耗的需求, 芯片的多个部件通常工作在不同频率的异步时钟域中。跨时钟域(Clock Domain Crossing,CDC)的数据传输电路被称为跨时钟域设计,其功能的正确性是 SoC 系 统芯片各跨时钟域部件间正确传输数据的基础。

25、在跨时钟域路径上传递信号不正 确的设计可能产生三种情况,一种是产生亚稳态(Metability),该路径终点寄存 器的建立或保持时间违例(Setup/Hold Timing Violation),从而引起寄存器的输入 端进入亚稳态状态;另一种是数据保持时间(Hold Time)不足,产生数据丢失,例 如来自一个快时钟域的信号不能够被慢时钟域的时钟采样到;最后一种是数据聚 合(Re-convergence),一组被同步的控制信号再次汇聚时丢失或重复采样。对于第一种情况,如果是单根控制信号,最简单的解决方法是采用两级同步器;对于第二、三种可采用异步 FIFO,带使能的同步器,握手协议等方法。跨时钟

26、域信号同步器的设计,通常用同步器或增加握手信号可以实现。2.2.1同步器跨时钟域信号同步器的设计,通常的实现方法有以下几种:1、两级同步器:解决跨时钟域设计问题的基本方法是同步器,同步器是将几个用本地时钟驱 动的时序器件串联起来,去采样输入的异步数据,当在第一级的时序器件出现亚 稳态的问题时,其输出会出现一种不稳定的中间值,并且这个时间受多种因素影 响,或者说这个输出在高电平到低电平之间满足一定形式的概率分布。当第二个 时序器件的采样窗口到来的时候,在第二级输入端口上的电平仍然处在可以使第 二级出现亚稳态的电平范围内的概率会变得很小,如果再加上第三级,在第三级 上的这个概率几乎可以忽略不计。从

27、数学上讲,每个时序器件的亚稳态的出现都 有一定的概率,如果多个期间串联,总概率是各自概率的积,因此增加期间,会 消除“亚稳态”,但是这里的消除是指降低不稳定的时间,使得输出电平的稳定时间接近时钟周期。至于能否采样到正确的逻辑,则基本取决于第一个时序器件的输出。跨时钟域的核心问题是亚稳态现象,最简单的同步器设计加在该路径终点寄存器,同步器设计为两个背靠背的两级触发器,适用于慢时钟到 快时钟域的单根控制信号的同步。虽然同步器可以消除亚稳态现象,但其输出体 现输入变化的明确时钟周期仍然不可预测,这种不确定性是跨时钟域设计中功能 错误的本质原因,值得注意的是电平信号同步转换,有效电平必须保持或大于 2

28、个目的时钟周期,否则可能会丢掉,如图 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 跨时钟域信号的亚稳态现象如图 2.5 所示,两级寄存器组成的同步器,其输出信号 R3 虽然不存在亚稳态现象,但 R3 体现 R1 变化的时钟周期可能在 Cycle 2 也可能在 Cycle 3,这种不确定性是跨时钟域设计中功能错误的本质原因,采用

29、二级同步器的方式,R1 信号的有效时间是 Cycle 1,正确使用 R3 信号时间是 Cycle 4,电平信号同步转 换,有效电平必须保持或大于持 2 个目的时钟周期,否则可能会丢掉,适合于慢时钟域到快时钟域的单根控制信号的同步。2、采用格雷码的同步转换器适合于单根有效信号的转换,如图2.7 所示二进制计数器的位宽与源时钟、目的时钟的频差有关系,位宽log2(clkin/clkout),适合高速时钟域进入低速时钟域应用的场合:如数据传输的有效信号和适合于跨时钟域的递增指针的传输。 sigin binary binary Counter counter clkin clkout full com

30、pare D Q D Q D Q compare sigout clkin clkout图2.7 采用格雷码的二级同步信号转换逻辑3、采用格雷码编码的数据总线同步器:数据有效信号采用格雷编码转换逻辑, 产生目的时钟域的数据使能信号,这种类型主要用于寄存器通路中,同步后的读写使能信号作为同步使能信号,对地址和数据进行同步,如图 2.9 所示 Source clock domainack Destination clock domainGraycode synchronizersrc_vld D Gray code synchronizerdst_vld D Q src_addD Qm bitse

31、n dst_addD src_clksrc_dataD Qn bitsst_clkenD dst_dataQ 图 2.9 采用使能信号的同步器的逻辑4、不带应答的数据总线同步器:跨时钟域数据总线的传输,数据使能信号通 过脉冲同步器完成,特别适用于目的时钟大于源时钟域频率 3 倍以上的,低速时 钟域进入高速时钟域应用的场合,源时钟域发送数据时,前一个数据一定被目的 时钟域接收。数据总线输入同步器和输出同步器都是栈进栈出,利于定义约束文件,如图 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 脉冲同步器信号逻辑典型的同步器有电平同步器、边沿检测同步器、脉冲同步器等,虽然它们都可以消除亚稳态现象,但是其输出体现输入变化的确切时钟周期仍然不可预测的。2.2.2握手机制跨时钟域数据总线的传输,数据的使能信号通过握手信号完成。握手信号是 指由源电路声明,发送到目的电路的请求信号。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1