您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

利用FPGA实现异步FIFO计划

发布日期:2011-04-17


    如今数据征求体系朝着高速和高精度的方向生长。随着FPGA的集成度和运行速率的进步,可以餍足高速数据征求体系的需求。FPGA内部具有丰富的存储单位,易于实现种种存储器(如FIFO、双口RAM等);别的,基于查找表的逻辑单位可用于实现种种数字信号处理惩罚(如滤波等),以帮助DSP处理惩罚器做种种预处理惩罚。 

    TI公司推出的高性能数字信号处理惩罚芯片TMS320C6000系列,事变频率最高可到达1GHz,具有处理惩罚速率快、机动、正确和可靠性高等好处,作为数据征求体系中的主处理惩罚器,可以餍足及时性的请求。基于以上思量,北京合众达公司开辟了采取TMS320C6416和FPGA的高速高精度双通道数据征求体系,每个通道的采样率为3Msps,最高可达10Msps,采样精度为14b。体系重要包括以下几部分:高速A/D转换、FIFO数据缓存和EDMA数据传输,体系布局框图如图1所示。

AD9243及转换控制 

    计划中采取的模数转换器芯片是AD9243。AD9243是ADI公司生产的14位、3Msps高性能模数转换器。AD9240与AD9243完全兼容,因此体系的最高采样率可兼容到10Msps。

    模数转换器AD9243的时序控制与传统的A/D有所差别,完全寄托时钟控制采样、转换和数据输出,在第一个时钟的上升沿开始采样转换,第四个时钟上升沿到来时,数据将出如今D1~D14端口上。本文采取体系自通电时起,A/D和时钟电路始终处于事景况态,对数据不绝举行转换,以淘汰误码率,进步采样精度。


FIFO的实现及控制

    计划中采取FPGA来实现双通道数据的缓存和数据传输的逻辑控制。Spartan3E是一款高性能低代价的可编程逻辑器件,具有丰富的逻辑单位和存储单位。其内部的BlockRam可以配置为大小差别的种种范例存储器,如单口RAM、双口RAM和同步FIFO,此中FIFO更适相助为A/D 采样数据高速写入的存储器。FIFO存储器就像数据管道一样,数据从管道的一头流入、从另一头流出,先辈入的数据先流出。FIFO具有两套数据线而无地点线,可在其一端写操纵而在另一端举行读操纵,数据在此中次序移动,从而到达很高的传输速率和服从,且由于省去了地点线,有利于PCB板布线。

    采取FIFO构成高速A/D采样缓存时,由于转换速率较快,要是直接将ADC采样后的数据存储到FIFO中,对时序配置请求非常严格,要是两者时序干系共同不当,就会产生数据存储堕落大概失数。利用FPGA可以方便地控制时序和数据传输,大略、可靠地实现采样和存储是选用FPGA的好处。该数据征求体系中只采取了一个外部时钟源,直接输入到FPGA,经DCM分频后作为FIFO和ADC的时钟源。

    在软件计划中,采取ISE开辟环境开辟FPGA时,调用Core Generator来布局FIFO,可以设置FIFO的参数,如深度和宽度;设置FIFO的种种标记和控制位,如空满、半满全满、半空全空、可编程满和可编程空等标记位;写使能、读使能等控制位,以便实现与高速A/D和DSP的逻辑接口。FIFO的输入输出引脚如表所示:此中WR_EN由DSP的GPIO 口引出,控制数据是否写入到FIFO中,输出引脚中只用到了PROG_FULL即可与DSP举行数据传输。

    FPGA的作用除了布局FIFO以实现数据通道复用外,还可以作为协处理惩罚器举行及时请求性高的数据预处理惩罚(如插值、取均匀、FIR滤波等),以淘汰DSP处理惩罚的数据量。计划中采取散布式算法的FIR滤波,起首对ADC转换后的数据举行FIR滤波,然后存入FIFO中以等待DSP的读取。 FPGA代替ASIC和DSP作为前端数字信号处理惩罚的运算,在范围、重量和功耗方面都有所低落,并且吞吐量更高,开辟本钱进一步缩小。

    FPGA计划中,需提供外部闪存来存储FPGA的下载文件,上电后数据会主动下载到FPGA内部,以对FPGA举行配置。FPGA有多种配置方法,包括主串、从串、主并、从并、SPI、BPI,以及JTAG等方法。串行方法即逐位串行配置,接线大略,但速率比较慢,并行方法即8位同时传输,速率快,但接线巨大。串行方法和并行方法都必要外加闪存作为配置文件的存储器。计划中本文采取C6416的多通道缓存串行口(McBSP)以SPI方法对FPGA举行配置。



                                                      图1:体系布局框图


接口和控制电路的计划

体系的接口和控制电路重要包括以下两个部分:

1. ADC与FIFO的接口电路 

    利用FPGA布局了两个完全一样的FIFO,将两路A/D转换数据分别送入两个FIFO中,实现双通道采样数据的缓存和传输。计划中A/D 转换时钟和FIFO写时钟为同临时钟源,自上电起,A/D和时钟电路不停处于事景况态,不绝的举行数据的转换,但数据是否写入到FIFO中,由FIFO的写使能信号来决定,当DSP发出写使能信号有效时,转换数据才华存储到FIFO中。从前面的A/D时序电路中可知,A/D转换数据的输出和转换时钟有肯定的相位差,在FPGA内部可通过延时或时钟办理器来餍足创建时间和保持时间,包管数据不失码地传输到FIFO中。

2. FIFO与C6416的接口电路

    C6416有两个EMIF口,即EMIFA和EMIFB,此中EMIFA的总线宽度支持64b、32b、16b和8b,寻址空间为 1024Mb;EMFIB的总线宽度支持16b和8b,寻址空间为256Mb。本文采取EMIFB作为与FIFO的接口,其总线宽度配置为16b。 EMIFB可以与种种外部存储器实现无缝接口,如SBSRAM、SDRAM、异步配置(包括SRAM、ROM和FIFO)和外部共享存储配置等。计划中 EMFIB和FIFO的接口采取异步读的方法,实现数据的可靠传输,即通过由/ARE和地点来实现对两个同步FIFO的异步读,其控制接口信号的连接干系为:


RD_CLK=/ARE


RD_EN1=A20


RD_EN2=A19



                                        表1:FIFO的输入输出引脚定义


计划中将两个FIFO的存储空间都映射到EMIFB的BCE2中,当FIFO的可编程满信号PROG_FULL有效时,引发外部停止,触发EDMA 以实现数据的快速传输。由于FIFO不必要地点线,可以通过大略的接口来孕育产生EDMA的读地点,实现EDMA分时读两个FIFO。异步读FIFO必须餍足下列时序干系:



异步读时序如图2所示,此中EMFIB的时钟可以是外部时钟源,也可以是由CPU时钟分频得到。计划中利用外部时钟源,其频率为133MHz,可以根据EMIFB的读写控制寄存器配置Setup、Strobe和Hold的值。



                                                  图2:异步读时序图


本文小结 

    本文体系地先容了一种由数字信号处理惩罚器TMS320C6416、可编程逻辑器件Spartan3E构成的高速体系。实行表明,体系具有抗滋扰强、可靠性高、失码率低等好处。计划中采取了FPGA来布局FIFO,可根据差别的应用场合对FPGA编程以餍足计划请求,因此机动性较大,是一种较好的高速数据征求方案。别的,采取了EDMA传输,适于在及时性请求较高的种种高速数据征求体系中应用。该数据征求卡采取标准扩展总线接口,可以与合众达公司的DEC6000系列开辟板连接。