最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

DSP和FPGA共用FLASH进行配置的方法

来源:动视网 责编:小OO 时间:2025-10-02 07:34:25
文档

DSP和FPGA共用FLASH进行配置的方法

DSP和FPGA共用FLASH进行配置的方法王宏义,董文娟,黄宗福,陈曾平(国防科技大学ATR重点实验室,湖南长沙410073)摘要:本文举例分析了DSP的引导装载过程和FPGA的配置流程,并据此提出了一种使用单个FLASH存储器实现上述两个功能的方法。关键词:FLASHDSP引导装载FPGA中图分类号:TP368.2文献标识码:BUsingsingleFLASHtoBootloadDSPandConfigureFPGAWangHongyi,DongWenjuan,HuangZongfu,Ch
推荐度:
导读DSP和FPGA共用FLASH进行配置的方法王宏义,董文娟,黄宗福,陈曾平(国防科技大学ATR重点实验室,湖南长沙410073)摘要:本文举例分析了DSP的引导装载过程和FPGA的配置流程,并据此提出了一种使用单个FLASH存储器实现上述两个功能的方法。关键词:FLASHDSP引导装载FPGA中图分类号:TP368.2文献标识码:BUsingsingleFLASHtoBootloadDSPandConfigureFPGAWangHongyi,DongWenjuan,HuangZongfu,Ch
DSP和FPGA共用FLASH进行配置的方法

王宏义,董文娟,黄宗福,陈曾平

(国防科技大学ATR重点实验室,湖南 长沙 410073)

摘要:本文举例分析了DSP的引导装载过程和FPGA的配置流程,并据此提出了一种使用单个FLASH存储器实现上述两个功能的方法。

关键词:FLASH DSP 引导装载 FPGA

中图分类号:TP368.2文献标识码:B

Using single FLASH to Bootload DSP and Configure FPGA

Wang Hongyi,Dong Wenjuan,Huang Zongfu,Chen Zengping (ATR Lab, National University of Defense Technology, Changsha,Hunan 410073) Abstract:This paper discusses the bootloading of DSP and the configuring of FPGA, taking TMS320C16 and XC3S1200E for example, and a way to achieve both bootloading and configuring using single FLASH is proposed.

bootload

FPGA

Keywords:FLASH DSP

DSP编程灵活、使用方便,适合高速复杂运算的场合;而FPGA并行性好、实时性强,适合大规模并行运算的场合。将两者结合起来构建的基于DSP+FPGA结构的系统能够充分发挥各自的优势,能够满足很多实际的需求。

在实际的应用系统中,需要将DSP代码存储在一些非易失性存储器中,这样在系统上电或者DSP复位的时候就可以通过DSP的引导装载程序(bootloader)将代码调入DSP的高速存储器中全速运行[1]。同样,FPGA也需要通过外部的配置芯片进行配置才能正常工作[2],而配置芯片一般都是通过外部的编程器进行烧写的,如果程序稍有修改,就需要将电路板的封装盒或者机箱打开,然后插上编程器进行调试,这在实际的应用中很不方便。如果能够通过FLASH同时实现DSP的引导装载和FPGA的配置,不但简化了系统结构,适当降低了成本,也为系统的维护和更新带来了较大的方便。

1 DSP的引导加载过程

DSP芯片的片上引导装载程序用于在系统上电时将用户代码从外部非易失性慢速存储器(如ROM、FLASH等)或外部控制器(如ARM、MCU等)中装载到片内或者片外的高速存储器中高速运行。DSP芯片一般都提供多种引导装载模式,如Host引导装载、EMIF 引导装载、I2C引导装载、Serial RapidIO引导装载等。相比其它几种模式而言,EMIF引导装载具有使用方便、存储容量大等优点,所以本文以TMS320C16[3](下文简称C16)的EMIF引导装载为例说明DSP的引导装载过程。

在系统上电或者DSP复位后,引导装载程序根据C16的引导模式管脚BOOTMODE[1:0]决定引导装载的过程。如果BOOTMODE[1:0]是10,那么选择通过EMIF 进行DSP程序的引导装载。这时位于DSP的BCE1空间的前1K字节数据会以EDMA的方式被复制到DSP的0地址处,DSP根据数据的端模式(Little Endian或者Big Endian)将8位数据组装成32位的指令,然后从地址0处开始执行。

由于通常的程序代码远不止1K字节,所以事实上BCE1空间的前1K字节的代码一般都是一个二次引导装载程序,也就是这1K字节代码的功能是将存储在FLASH的真正的用户程序复制到DSP的内部存储器中,然后跳转到程序入口执行程序[4]。DSP的其它引导装载模式可以参考相应的数据手册。

基金项目:国家高新技术863-703主题资助(2006AA703402B)

2 FPGA 的配置过程

FPGA 的功能可以根据需要进行定制,针对性强、集成度高,可以最大限度发挥硬件资源的效率。在系统中FPGA 需要外部配置芯片进行配置才能正常工作,FPGA 的配置模式也有几种,如主串模式、SPI 模式、BPI 模式、从串模式、从并模式、JTAG 模式等。FPGA 通过检测模式管脚M2、M1和M0来确定使用哪种配置模式。本例中我们使用的FPGA 的型号是Xilinx 公司的XC3S1200E [5],具体的配置模式可以参考相应的数据手册。

最常用的模式是主串模式与JTAG 模式结合使用,在调试的时候通过JTAG 下载器向FPGA 或者配置芯片写入配置数据,固化好后则可以通过主串模式将配置数据从配置芯片调入FPGA 内部的配置模块中,结构如图1所示。对于XC3S1200E ,使用的配置芯片型号为XCF04S 。

图 1 FPGA 的主串配置和JTAG 配置连接示意图

SPI 模式和BPI

模式可以直接使用FLASH 做为FPGA 的配置芯片,不过这两种情况下一般都是先通过编程器把程序写入FLASH 然后再把芯片装到电路板上,要再修改的话也不方便。从并模式[5]则可以使用外部主机,如微控制器、微处理机、DSP 等作为主控机向FPGA 直接写入8位的配置数据。因此可以使用从并模式,通过DSP 从FLASH 中调出FPGA 的配置数据然后再对FPGA 进行配置。

3 DSP 与FPGA 共用FLASH 的实现方法

3.1系统的结构

由前述分析本文设计出一个DSP 与FPGA 共用FLASH 的小系统,结构如图2所示。

图 2 DSP 与FPGA 共用FLASH 的系统结构

其中的FLASH 芯片我们采用Spansion 公司的S29GL0M [6],容量高达M bit ,能够满足大多数DSP 系统的应用需求。而XC3S1200E 的配置容量不到4M bit ,只占用FLASH 芯片的很小一部分空间。对于由多片FPGA 组成的复杂系统,相应的需要多片配置芯片来

配置FPGA ,而使用本文提出的这种配置方法只需要一片FLASH 就能满足要求。

在系统加电或者复位的时候,DSP 首先加载自己的程序代码,然后从FLASH 的相应地址中读取FPGA 的配置数据,通过FPGA 的配置接口写入FPGA 的内部配置单元。

在需要更新FPGA 的配置或者DSP 的程序时,只需要通过PCI 接口将合成好的数据(也就是DSP 的代码和FPGA 的配置数据)写入FLASH 即可。

3.2 DSP 与FPGA 的接口设计

C16为外部存储器提供了两套数据接口(External Memory Interface, 简称EMIF ),分别是EMIFA 和EMIFB 。两个接口都可以配置为异步或者同步工作模式,EMIFA 的数据接口可以为位,EMIFB 的数据接口可以为16位。

本系统中DSP 通过EMIFB 对FPGA 进行访问,EMIFB 的BCE0配置为同步存储空间,BECLKOUT2配置为CPU 时钟的1/24,也就是30MHz 。DSP 与FPGA 的具体接口如图3所示。

图 3 DSP 与FPGA 的接口图

DSP 配置FPGA 的过程如下:DSP 在t0时刻(参看图5)通过GP2发送一个大约500ns 的低脉冲,通知FPGA 开始进行配置。FPGA 在收到配置请求后首先进行配置单元的清除,在t1时刻清除完成,将INIT_B 信号置高。当DSP 检测到INIT_B 从低变高后即开始向BCE0空间写入配置数据。

在配置完成后DSP 再次检测INIT_B 信号,如果INIT_B 变成了低电平,那么配置过程出错,需要重新进行上述过程。

FPGA 在每一个CCLK 的上升沿锁存数据,如果CCLK 大于50MHz ,那么DSP 需要检测FPGA

的BUSY 信号,如果BUSY 信号为高,那么DSP 需要保持数据输出,直到BUSY 变低。如果CCLK 小于50MHz ,那么可以不接BUSY 信号。本例中CCLK 为30MHz ,不需要考虑BUSY 图 4 DSP 与FPGA 的接口时序

为了通过DSP将FPGA的配置数据写入FPGA的配置单元,首先要对DSP的GPIO 和EMIFB进行正确的设置,相应的DSP代码如下:

Initial()

{

GPIO_pinEnable(hGPIO1,GPIO_PIN2 | GPIO_PIN3); //使能GP2和GP3管脚

GPIO_pinDirection(hGPIO1,GPIO_PIN2 | GPIO_PIN3,GPIO_OUTPUT); //将GP2和GP3设置为输出管脚

EMIFBConfig. Gblctl = 0x0009207C; //EMIFB全局控制,设置BECLKOUT2为主频的1/24

EMIFBConfig. CE0ctl = 0x000040A0; //设置BCE0为8位可编程同步存储器,连接FPGA EMIFBConfig. CE1lctl = 0xFFFFFF0F; //设置BCE1为8位异步接口,连接FLASH EMIFB_config(& EMIFBConfig); //进行EMIF配置

}

在完成上述初始化的过程后即可以按照前一节介绍的配置过程进行配置操作,配置过程主要包括四个步骤,对应的DSP函数及其功能如下:

Config_req();通过GP2发送配置请求。

Ready_test();等待INIT_B信号由低变高,可以开始配置。

Write_config();从FLASH中调出配置数据写向FPGA。

Check();写配置完成后进行检查,如果INIT_B变低,配置失败,重新进行配置。

相应的DSP程序流程如图5所示。

图 5 DSP配置FPGA的程序流程

4 结果及小结

本文研究了通过DSP调用配置数据对FPGA进行配置的方法,实现了使用单个FLASH 对DSP的引导装载和对FPGA的灵活配置。这种方法不但简化了系统的硬件结构,也方便了系统程序的更新升级,具有广泛的的应用前景。

创新观点:

本文提出的通过单个FLASH存储器同时实现DSP的引导装载和FPGA的配置的方法能够简化系统的设计,节省硬件开支,具有实际的应用价值。

参考文献:[1] 李坤 肖烜 付梦印.TMS320VC33的引导加载方法设计与实现[J].微计算机信息,2007,2-2:

166-168。

[2] 曾志廉 何清平 邹候文.通用FPGA实验系统的设计与应用[J].微计算机信息,2007,4-2:234-235。

[3] TMS320C16 Fixed-Point Digital Signal Processor Databook. Texas Instruments, 2005

[4] Creating a Second-Level Bootloader for FLASH Bootloading on C6000 User’s Guide. Texas Instruments,

2006

[5] Spartan-3E FPGA Family Databook. Xilinx, Inc., 2007

[6] S29GLxxxM MirrorBit Flash Family Databook. Spansion Inc., 2007

作者简介:

王宏义(1978-)男,陕西省白水县人。博士研究生,主要研究方向为数字信号处理、光电信息目标检测等。

Wang Hongyi(1978-), male, born in Shaanxi Province. Doctor ,major in digital signal processing and

photoelectricity target detection.

陈曾平(1967-)男,福建省福清市人。教授、博士生导师,863-703专家组专家,973技术首席专家。

目前主要从事信号处理、自动目标识别等方面的研究。

Chen Zengping(1967-), male, born in Fujian Province. Professor ,major in digital signal processing and automatic target recognition.

项目经济效益约50万元。本文设计的这种配置方法已经成功的应用于某光电探测系统,运行表明该方法

切实可行,具有普遍的推广价值。

文档

DSP和FPGA共用FLASH进行配置的方法

DSP和FPGA共用FLASH进行配置的方法王宏义,董文娟,黄宗福,陈曾平(国防科技大学ATR重点实验室,湖南长沙410073)摘要:本文举例分析了DSP的引导装载过程和FPGA的配置流程,并据此提出了一种使用单个FLASH存储器实现上述两个功能的方法。关键词:FLASHDSP引导装载FPGA中图分类号:TP368.2文献标识码:BUsingsingleFLASHtoBootloadDSPandConfigureFPGAWangHongyi,DongWenjuan,HuangZongfu,Ch
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top