|
DSP + FPGA数字硬件系统设计与实现
|
The Design And Realization Of DSP+FPGA Digital
Hardware System
|
■中国科学技术大学 电子工程与信息科学系 戴逸民
|
引言
随着数字信号处理器(DSP)和现场可编程门阵列器件(FPGA)的发展,采用DSP+FPGA的数字硬件系统显示出其优越性,正愈来愈得到人们重视。通用的DSP优点是通过编程可以应用到广泛的产品中,并且主流制造商生产的DSP
已能满足算法控制结构复杂、运算速度高、寻址方式灵活和通信性能强大等需求。但是传统的DSP 采用冯-诺依曼(Von Neumann)结构或某种类型扩展。此种结构本质上是串行的,因此遇到需处理的数据量大,对处理速度要求高,但是对运算结构相对比较简单的底层信号处理算法来说显不出优点,适合采用FPGA
硬件实现。这样,采用DSP + FPGA 的数字硬件系统就可以把二者优点结合一起,兼顾速度和灵活性,既满足底层信号处理要求,又满足高层信号处理要求。
DSP+FPGA系统特点与组成
DSP + FPGA 系统最大优点是结构灵活,有较强的通用性,适合于模块化设计,从而能够提高算法效率;同时其开发周期较短,系统容易维护和扩展,适合实时信号处理。
DSP + FPGA系统的核心由DSP芯片和可重构器件FPGA 组成。另外还包括一些外围的辅助电路,如存储器、先进先出(FIFO)器件及FLASH
ROM等,如图1所示。FPGA 电路与DSP 相连,利用DSP 处理器强大的I/O功能实现系统内部的通信。从DSP 角度看,FPGA相当于它的宏功能协处理器。外围电路辅助核心电路进行工作。DSP
和FPGA 各自带有RAM,用于存放处理过程所需要的数据及中间结果。FLASH ROM 中存储了DSP 执行程序和FPGA 的配置数据。先进先出(FIFO)器件则用于实现信号处理中常用到的一些操作,如延迟线、顺序存储等。
DSP 和FPGA 的外围电路及连接线
DSP 的外围电路主要是FLASH、ROM和SRAM,需要连接地址线、数据线和控制线。它需要连接的连线主要包括DSP 模式选择、时钟模式选择、选择外部时钟或本机晶振产生的时钟﹑JTAG接口和电源等。FPGA外围电路主要是用于配置的PROM、FLASH
ROM、模数转换和先进先出(FIFO)器件等。它需要连接的连线主要包括FPGA 模式选择、全局时钟、选择外部时钟或本机晶振产生的时钟、JTAG接口、输出/输入接口、测试口和电源等。
DSP与FPGA 的连接包括(1)数据线:DSPD0~DSPD15;(2)地址线:DSPA0~DSPA15;(3)控制线:BIO、HCS、DSPPS、DSPDS、DSPIS、DSPMSTRB、DSPIOSTRB、DSPREADY、DSPRW;(4)中断线:DSPINT0、DSPINT1、DSPINT2、DSPINT3;(5)串口线:BFSX0、BDX0、BCLKX0、BFSR0、BDR0、BCLKR0、BFSX1、BDX1、BCLKX1、BFSR1、BDR1、BCLKR1。
连接框图如图1所示。
FPGA 的编程设计过程
如图2所示的用户可编程FPGA 芯片体系结构由二个主要的可配置的元件组成:可配置的逻辑模块(configurable logic blocks-CLBs)和输入/输出模块(input/output
blocks IOBs)。CLBs 提供构造逻辑功能;IOBs 提供可配置的逻辑模块与包装引脚之间的接口;CLBs 之间的相互连接通过一个通用的路由矩阵(a
general routing matrix -GRM)。GRM由位于水平方向和垂直方向路由通道交叉路口的路由开关阵列构成。构成一个通用模块的每一CLB也提供本地的路由资源把CLB连接到GRM。
FPGA的编程设计过程如图3所示。首先,从数字系统的行为级模拟得到各个行为模块的逻辑要求,包括组合逻辑和时序逻辑两方面要求,即得到NGD文件。其次,通过对NGD文件进行优化、组合和映射,创建基本逻辑单元。每一个基本逻辑单元由功能产生器(F/G)、D型触发器、进位逻辑等组成。然后,把基本逻辑单元包装成可配置的逻辑块CLBs,其中一小部分包装成输入/输出模块IOBs或TBUF模块。输出没有布局和布线的NCD文件。最后,把NCD文件中每一个可配置的逻辑块CLBs和每一个输入/输出块IOBs分别放置到FPGA
芯片上一个特定位置,称为布局。并且连通路由,完成布线。如果设计结果不能达到定时指标或不能完全接通,需要重新进行布局和布线。以上设计开发过程可以借助于开发工具及加入适当的手工设置操作完成。对于FPGA的布局有以下指导原则:
门阵列小于100K系统的I/O的布局原则
在FPGA顶部和底部的I/O引脚用作控制信号,即信号路由方向是垂直方向;在FPGA左部和右部的I/O引脚用作数据总线,因为FPGA
的体系结构适合数据作水平方向流动。
100K系统的I/O的布局原则
门阵列大于100K系统的I/O的布局原则与小于100K系统相同。需要附加考虑下列问题。第一,可配置逻辑组的控制信号和数据总线尽量接近内部逻辑。第二,主要的信号可以放置在接近芯片的中间位置,以便容易接入到水平方向的长线。
数据总线布局
当算术运算的比特数大于5比特,需要使用进位逻辑。进位链路的布线需要使用垂直方向。它同时影响到内部逻辑单元和I/O布局。开关同时输出信号会引起地线上反弹,为了减少这种反弹现象,需要把开关输出线分散开,因而把数据总线的一半安排到芯片的左端I/O,另一半安排到芯片的右端I/O,保持数据的流动的方向仍然是左右方向流动。
内部逻辑布局技巧
当进行内部逻辑布局时,特别是进行逻辑进位或TBUF设计时,内部逻辑应安排成垂直队列,这是一种关键的技巧。数据路途元件配置应使得数据交互地通过电路片,不管是从左到右,还是从右到左都是认可的。应使用最短的路由,以至节点之间的延迟最小。为了避免路由阻塞,应使得路由的总趋势不要互相成十字交叉。
TBUF布局
双向数据总线长线沿着水平方向放置,三相使能控制线沿着垂直方向放置,如图4所示。布局和布线时,软件会按照上述原则自动地排列TBUF。在大型的FPGA
的芯片中,沿着水平方向的长线可以在中间断开,使TBUF的版图使用半长线,以便增加利用率。如果你的设计不能满足性能指标,或者布线不能完全接通,可以通过下列途径来改进:可以增加定时约束;在关键路由上减少逻辑;增加在布局和布线上的考虑和编辑版面图等。
FPGA的配置
XILINX公司生产的FPGA ,它的配置是通过装载配置数据到内部配置存储器实现的。注意:如果装载一个不正确的比特流,会引起配置的失败并损害装置。配置使用的引脚有专用的,也有作为一般目的用的输入和输出引脚。一旦配置完成后,后者可重复使用。专用的引脚包含:模式引脚(M2,M1,
M0)、配置时钟引脚(CCLK)、PROGRAM 引脚、DONE 引脚和边界扫描引脚(TDI, TDO, TMS, TCK)。依赖于配置模式的选择,CCLK
能够由FPGA 产生,或者由外部产生。FPGA 支持四种配置模式:主串模式、从串模式、选择MAP 模式和边界扫描模式(JTAG)。通过边界扫描口的配置总是有效的,它独立于模式选择。选择边界扫描模式能够简单地转向其它模式。
|
|