基于fpga的异步fifo设计与实现

基于fpga的异步fifo设计与实现

ID:6107484

大小:170.00 KB

页数:5页

时间:2018-01-03

基于fpga的异步fifo设计与实现_第1页
基于fpga的异步fifo设计与实现_第2页
基于fpga的异步fifo设计与实现_第3页
基于fpga的异步fifo设计与实现_第4页
基于fpga的异步fifo设计与实现_第5页
资源描述:

《基于fpga的异步fifo设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于FPGA的异步FIFO设计与实现AsynchronousFIFODesignandImplementationBasedonFPGA(1.清华大学电子工程系;2.中国科学院电子学研究所)熊红兵1陈琦2Xiong,HongbingChen,Qi摘要:异步FIFO是用来适配不同时钟域之间的相位差和频率飘移的重要模块。本文设计的异步FIFO采用了格雷(GRAY)变换技术和双端口RAM实现了不同时钟域之间的数据无损传输。该结构利用了GRAY变换的特点,使得整个系统可靠性高和抗干扰能力强,系统可以工作在读写时钟频率漂移达到正负300PPM的恶劣环境。并且由于

2、采用了模块化结构,使得系统具有良好的可扩充性。关键字:FIFO;双口RAM;格雷码;指针解释;指针生成Abstract:AsynchronousFIFOisanimportantmodulewhichalwaysusedtoabsorbthephaseandfrequencyoffsetbetweendifferentclockdomainincommunicationarea.Inthispaper,anFIFOmoduleisdesignedusingGrayconverttechnologyanddual-portram,whichrealizi

3、ngscathelesstransmitbetweendifferentclockdomain.TheadvancesofGray(Onlyonebitchangesbetweenneighboringtwoclock)improvesthereliabilityandanti-jammingcapabilityofthesystem.Andthesystemcanworknormallyinthebadconditionwhichthephaseandfrequencyoffsettargetto300PPM.Itisprovedbyworkthat

4、theFIFOmodulecanfulfillthedemandsofreal-timeofdatatransmittingsystem,andthemoduleispowerfulenoughformoredataprocessinthefuture.Keywards:FIFO;Dual-portRAM;Gray;Pointerinterpreter;Pointergenerator1.引言FIFO(先进先出队列)是一种在电子系统得到广泛应用的器件,通常用于数据的缓存和用于容纳异步信号的频率或相位的差异。该器件用在SDH设备上时,处于指针解释和指针生

5、成之间,用来缓冲数据流,以实现不同时钟速度的匹配。经过指针解释(PI)的净荷数据流进入FIFO中,包括8位数据位和一位J1字节标志位;指针生成(PG)部分根据PG部分的payload信号将数据从FIFO读出,并生成新的指针。FIFO可以根据其内部数据的空满程度,决定是否向PG发出正/负调整申请信号。FIFO主要实现如下功能:l处理AU3级数据流的缓冲;l提供级联模式;l给出指针正/负调整申请信号,阈值可设;l可以插入fullscan,保证较高的可测试性。2.FIFO工作原理图1FIFO工作原理示意图5FIFO的工作原理可用图1来表示。整个系统分为两个完

6、全独立的时钟域,即读时钟域和写时间域。FIFO的存储介质为一块双端口RAM,FIFO深度为64个字节。可以同时进行读写操作。为避免对同一个地址进行读写操作,复位或者溢出时将读写地址错开。由图1可以看出,写地址产生模块根据写时钟和写有效信号产生递增的写地址,读地址产生模块根据读时钟和读有效信号产生递增的读地址。FIFO的操作如下:在写时钟wr_clk的升沿,当wren有效时,将wr_data写入双口RAM中写地址对应的位置中;始终将读地址对应的双口RAM中的数据输出到读数据总线上。这样就实现了先进先出的功能。由于空标志和满标志控制了FIFO的操作,因此标

7、志错误会引起操作的错误。如上所述,标志的产生是通过对读写地址的比较产生的,当读写时钟完全异步时,对读写地址进行比较时,可能得出错误的结果。例如,在读地址变化过程中,由于读地址的各位变化并不同步,计算读写地址的差值,可能产生错误的差值,导致产生错误的满标志信号。若将未满标志置为满标志时,可能降低了应用的性能,降低写数据速率;而将满置标志置为未满时,执行一次写操作,则可能产生溢出错误,这对于实际应用来说是绝对应该避免的。空标志信号的产生也可能产生类似的错误。从以上分析中可以看出,异步FIFO之所以会发生错误是国为在地址变化时,由于多位地址各位变化时间不同,

8、异步时钟对其进行采样时数值可能为不同于地址变化丧后数值的其他值,异步产生错误的空标志和满标志,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。