基于DSP和FPGA系统的动态重构设计

时间:2022-03-18 01:00:37

基于DSP和FPGA系统的动态重构设计

摘要DSP和FPGA在电子系统中被广泛的配合使用以实现特定的信号处理功能,随着电子系统向综合化和集成化发展,越来越多的系统需要实现功能的可动态重构。这里根据实际应用的需求提出了一种基于DSP+FPGA系统的动态重构设计方法,同时实现了DSP和FPGA的动态加载。

【关键词】现场可编程阵列 动态加载 Slave SelectMAP8 bootloader

近年来,现场可编程阵列(FPGA)器件的动态配置技术,由于其在电路系统设计灵活性上的重大突破,逐步成为工程师们的研究热点。目前的主流FPGA基本都基于SRAM工艺,掉电后会失去所有逻辑关系,每次上电都需要重新配置,所以FPGA的配置数据必须保持在非易失存储器中。常用保存FPGA数据的非易失存储器有FPGA特用的PROM和一般的FLASH ROM,前者的优点是设计简单,但只能静态的配置FPGA和储存容量不大;而后者设计比较复杂,但可以在系统不断电的情况下配置FPGA和可以储存数十个不同版本的FPGA配置数据。

DSP同样也面临这个问题,也需要将引导代码和用户代码保存在ROM、FLASH或其他非易失存储器中,以保证掉电时代码仍在。如果用户代码存放在FLASH或其他的非易失存储器中,就必须解决DSP引导加载问题。

这里设计了一种DSP+FPGA的动态重构系统,该系统在上电后,由DSP自己加载后再控制FPGA加载,实现动态重构功能。DSP的引导程序、DSP用户程序和FPGA的配置数据通过JTAG口下载到FLASH中。

1 Xilinx FPGA配置原理

1.1 配置模式的选择

Xilinx 公司的Virtex-4系列FPGA需要5种配置模式,如表1所示。本系统采用了Slave SelectMAP8模式。

Slave SelectMAP8模式提供了与Virtex-4 FPGA之间的一个8位双向数据总线接口,用来配置和回读。在每个CCLK的上升沿载入1Byte数据。两个外部的控制信号接在/CS和/WRITE管脚,通过下拉电阻使其一直为低电平。表2为Slave SelectMAP8管脚定义。

1.2 配置过程

FPGA可以在Slave Serial和Slave SelectMAP8的从模式下实现由DSP加载配置数据。本系统中采用Slave SelectMAP8模式实现。配置过程如图1所示。

1.2.1 上电

上电过程中/PROG和/INIT管脚都被FPGA置为低电平。上电完成后,配置器会被自动清空。/PROG的输入低电平也会复位配置逻辑,使FPGA保持在清空配置存储器的状态。本设计采用CPLD将/PROG管脚拉低。

1.2.2 初始化

初始化过程中/PROG变为高,/INIT继续保持低电平直到完全清空所有的配置存储器。可以在外部使/INIT引脚保持低电平以延时FPGA的配置,FPGA在/INIT信号上升沿检测配置模式选择引脚。/INIT信号变为高电平后,配置开始。

1.2.3 载入配置数据

载入配置数据过程在/INIT引脚变高,并且/CS和/WRITE信号均为低电平时开始,配置数据在配置时钟的每个上升沿被载入FPGA。

在载入配置数据器件,载入的CRC的值和内部计算出的CRC进行比较。如果CRC值不匹配,则/INIT信号会变低,指示发生了CRC错误,这时启动被终止,FPGA不被激活。为了重新配置该器件,/PROG引脚必须变低以复位配置逻辑。

1.2.4 启动时序

当所有的配置数据载入完毕,并且CRC校验成功后,FPGA将进入启动时序。在这期间将会把DONE引脚变为高电平,激活I/O,停用GSR以及确定GWE。在系统默认的状态下,当DONE变为高后,配置并没有完成,还需要4个CCLK去完成启动时序。

2 TMS320C6455加载

TMS320C6455复位和上电时的引导模式主要有:NO BOOT模式、主机引导模式、FLASH引导模式、主/从I2C引导模式和SRIO引导模式。采用哪种引导模式,由复位或上电时采用管脚BOOTMODE3-0决定。

本系统采用FLASH引导模式。TMS320C6455与其它C64系列的DSP不同,它先从外部FLASH中的程序搬移一个字节到DSP 内部的RAM首地址运行,然后再搬移下一个字节到内部RAM首地址覆盖上一个字节并运行,以此类推,直到程序运行完成。DSP内部的RAM首地址中保存的是Bootloader程序的最后一个字节,而不是整个Bootloader程序。加载完成后,DSP运行用户程序代码,开始进行相应波形的处理。

3 系统设计

3.1 硬件设计

系统采用1片Xilinx Virtex-4系统的600万门的FPGA XC4VLX60和1片Spartan-3 AN系列的20万门的FPGA XC3S200芯片;主MCU是TI公司处理能力最强的定点的TMS320C6455;DSP主要完成低速数据的调制解调、编译码、波形处理等工作,FPGA完成对中频信号进行调制解调,XC3S200 FPGA主要用于完成上电后的初始化设置,时钟信号的分配,FLASH芯片高地址管理,以及DSP的EMIF总线接口与FPGA加载控制接口之间的配置。DSP的EMIFA CE3,DDR2 EMIF和I2C总线接口分别和存储器FLASH、SDRAM和EEPROM连接,一些通用接口连在FPGA上作为以后功能拓展,4对RIO口和外部接口连接。系统电路结构框图如图2所示。

3.2 软件设计

本系统支持DSP程序的加载和FPGA程序的加载。DSP加载为系统上电时DSP从位于EMIFA CE3低地址空间的片外程序FLASH加载初始化程序。

FPGA加载为DSP更加主控计算机的加载指令,通过接口控制可编程逻辑器件从本板的大容量通用FLASH加载FPGA程序。通用FLASH的存储容量可达512Mbit以上,可以存储数十个版本的FPGA程序。DSP根据主机控制指令,由EMIFA总线将FLASH待加载数据读出,并通过接口控制可编程器件中的数字总线控制接管FPGA的加载接口,完成对FPGA的加载,如图3所示。

4 结束语

引导加载是设计DSP系统必须解决的问题,动态配置FPGA的应用领域也越来越广泛。本系统设计了具有动态重构功能的DSP+FPGA系统,已经成功的应用于某工程项目并验证了该功能,本文的分析思路及设计方案同样适用于其他的C6000系列的DSP和Virtex-4系列的FPGA,对DSP+FPGA应用系统的设计具有一定的参考价值。

参考文献

[1]陈曦,沈佐峰.一种可靠的FPGA 动态配置方法及实现[J].通信技术,2012,45(03):105-107.

[2]孟龙,郄志鹏,朱江.基于CPCI 总线的FPGA 加载设计[J].通信技术,2013,46(05):127-129.

[3]张玄,李开航.利用CPLD实现FPGA的快速加载[J].现代电子技术,2012,35(22): 163-166.

[4]吴冬梅,何管清,邱昊.基于ARM 的DSP与FPGA动态配置方案的设计与实现[J].舰船电子工程,2013,33(7):47-48.

[5]佘佑军,.TMS320C6416EMI总线下双FPGA加载设计[J].单片机与嵌入式系统应用,2007,33(7):29-31.

[6]吴海洲,刘恒甫,黄克武.基于TMS320C6455的DSP加载模式研究[J].电子测量技术,2008,31(6):155-156.

作者简介

邱伟(1981-),男,四川省自贡市人。硕士学历。工程师,主要研究方向为航空电子技术和数字信号处理技术。

作者单位

中国西南电子技术研究所四川省成都市 610036

上一篇:基于序列图像的运动目标快速检测技术的研究 下一篇:医院信息管理系统的电子病历和医学影像系统