TMS320C61416 EMIF总线下双FPGA加载设计

发布者:红尘清梦最新更新时间:2008-01-20 来源: 单片机与嵌入式系统应用关键字:FPGA 手机看文章 扫描二维码
随时随地手机看文章
        基于SRAM结构的FPGA容量大,可重复操作,应用相当广泛;但其结构类似于SRAM,掉电后数据丢失,因此每次上电时都需重新加载。

        目前实现加载的方法通常有两种:一种是用专用Cable通过JTAG口进行数据加载,另一种是外挂与该FPGA厂商配套的PROM芯片。前者需要在PC机上运行专用的加载软件,直接下载到FPGA片内,所以掉电数据仍然会丢失,只适用于FPGA调试阶段而不能应用于工业现场的数据加载。后者虽然可以解决数据丢失问题,但这种专用芯片成本较高,供货周期也较长(一般大于2个月),使FPGA产品的开发时间受到很大约束。

        因此希望找到一种更简便实用的FPGA芯片数据加载方法。根据FPGA芯片加载时序分析,本文提出了采用通过市面上常见的Flash ROM芯片替代专用PROM的方式,通过DSP的外部高速总线进行FPGA加载;既节约了系统成本,也能达到FPGA上电迅速加载的目的;特别适用于在FPGA调试后期,待固化程序的阶段。下面以两片Xilinx公司Virtex-4系列XC4VLX60芯片为例,详细介绍采用TI公司的TMS320C61416 DSP控制FPGA芯片数据加载的软硬件设计。

        1 Xilinx FPGA配置原理

        Virtex-4系列的FPGA芯片外部配置引脚MODE PIN(M0、M1、M2),有5种配置模式,如表1所列。

        FPGA在Slave SelectMAP方式下,共用了表2所列的15个配置引脚。

        1.1 配置流程

        FPGA加载时序如图1所示。各配置信号必须满足其时序关系,否则配置工作无法正常完成。



        图1中,Slave SelelctMAP加载主要包括以下3个步骤:

        ①启动和初始化。

        FPGA上电正常后,通过PROG_B引脚低脉冲进行FPGA异步复位,使得FPGA内部逻辑清零。其次PROG_B上拉高,停止外部复位,INIT_B引脚会在TPOR时间段内自动产生一个由低到高的跳变,指示FPGA内部初始化完成,可以进行数据下载;同时FPGA在INIT_B的上升沿采样其模式引脚MODE PIN,决定其模式配置。

        ②比特流加载。

        INIT_B信号变高后,不需要额外的等待时间,Virtex器件就可以立即开始数据的配置。比特流数据在外部CCLK信号上升沿按字节方式置入。该过程包括同步初始化字、器件ID号校验、加载配置数据帧、CRC校验4个部分。

        ③STARTUP启动。

        在成功校验CRC码位后,比特流命令使得FPGA进入STARTUP状态。它是由8相状态机实现的。中间包括等待DCM锁相、DCI匹配等几个状态,最后FPGA释放外部DONE引脚,对外输出高阻态,由外部上拉高,指示FPGA加载成功。

        1.2 文件生成

        ISE生成数据文件主要有3种:BIT文件,由二进制格式进行表征逻辑设计,包括文件头和配置数据,主要用于JTAG下载电缆模式;MCS文件,为外部PROM烧写生成的下载文件,ASCII码,与前者不同的是它含有在PROM中的数据地址和校验值;BIN文件格式,由二进制表示,完全由配置数据组成,不需要作其他的提取和进制转换,只是配置前的Byte-Swapped是在CPLD中实现的。本设计采用的是BIN文件格式。

        2 硬件实现

        系统采用2片Xilinx Virtex-4系列的600万门的FPGA XC4VLX60。主MCU是TI公司高性能定点处理器TMS320C6416,对外有2个EMIF总线接口,分别是64位宽EMIFA和16位宽EMIFB。EMIFB上挂有8位8MB的Flash和16位CPLD:Flash做2片FPGA的BIN文件保存,之前由仿真器烧写;CPLD用于2片FPGA地址译码和DSP与FPGA配置部分的逻辑接口。整个数据流程是在DSP上电启动后,Bootloader自行引导用户程序运行。该程序负责由EMIFB总线搬移Flash空间中BIN文件,通过CPLD分别对2片FPGA进行配置加载。硬件系统拓扑图如图2所示。

        3 软件设计

        软件包括3部分:引导Bootloader代码,加载FPGA用户程序以及接口部分的CPLD Verilog代码。

        3.1 DSP Bootloader

        本系统中目标板处于FPGA调试后期,需要固化其加载程序。整板上电后,要求脱离仿真器自行加载FPGA,因此这里采用DSP的EMIF BooT方式。它是由DSP上电复位后,以默认ROM时序通过EDMA自行搬移BCE1的ROM空间前1 KB内容到片内,在其0x0地址开始运行。

        一般由C编写的程序代码长度都远大于1 KB,如果只是纯粹由DSP搬移Flash前1 KB空间,这样便会丢失数据,程序无法正常运行。这里采用由汇编语言写的一个两次搬移的Bootloader程序,来引导较大的用户程序。使用汇编语言是因为其代码效率高,代码长度短(本系统中只有256字节)。两次搬移是因为第一次DSP自行搬移后的Bootloader会占用片内的0x0地址前1 KB空间,与下一步的用户程序0x0地址拷贝冲突(中断向量表必须放在0x0地址,否则会丢失中断跳转的绝对地址),且运行中的Bootloader不能覆盖自身。所以把拷贝用户程序的那部分代码放在片内较底端运行,腾出了用户空间的0x0地址。最后整体拷贝结束后,Bootloader再跳转到用户程序入口地址c_int00运行。

        3.2 用户程序和CPLD程序

        本系统中2片FPGA加载的原理一样。为避免繁琐,这里以1片FPGA_A为例来作介绍。

        CPLD在系统中负责2项工作。

        ①映射DSP端Flash分页寄存器:控制Flash的高3位地址线,分8页,每页1 MB空间。

        ②映射DSP端2片FPGA的加载寄存器:

        a.配置寄存器FpgaA(B)_config_Reg[8:O]。负责配置数据和时钟,高8位为Byte-Swapped前的数据位,输出到配置引脚时进行字节交换,最低位为CCLK位。

        b.控制寄存器FpgaA(B)_Prog_Reg[2:O]。负责外部控制引脚,分别为CS_B、RDWR_B和PROG_B。

        c.状态寄存器FpgaA(B)_State_Reg[2:0]。负责回读配置中的握手信号,分别为BUSY、DONE和INIT_B。

        由Bootloader引导的用户程序由C语言开发,在CCS下调试通过。它主要实现Flash翻页,把之前烧写在Flash中的BIN文件,通过上述CPLD中3个加载寄存器对FPGA进行上电配置。具体流程如图3所示。


        当前FPGA配置时钟CCLK是在用户程序中通过DSP写命令产生的,即写FpgaA(B)_Config_Reg的CCLK位高低电平;同时8位配置数据也连续写2次,由CPLD锁存到FPGA总线上,便能充分保证图1中该有效数据在CCLK上升沿上被锁。

        以下是CPLD中动态加载部分的Verilog代码:

//FPGA控制寄存器(DSP只写)


        结 语

        该系统已成功用于某公司一款软件无线电平台中,通过反复软硬件调试,现已投放市场。此外,由于该系统中的DSP芯片TMS320C6416自带PCI桥,因此该平台设计有与主机通信的CPCI接口,支持32位的PCI总线带宽,最大数据吞吐率能达到133 MB/s。所以,此平台不仅可以实现上述提到的上电Flash自行加载FPGA的目的,还可在其配置完以后通过主机端对FPGA实现动态加载,充分满足了软件无线电中可重构化、实时灵活的指导思想。
关键字:FPGA 引用地址:TMS320C61416 EMIF总线下双FPGA加载设计

上一篇:基于FPGA的UART控制器的多模块设计与实现
下一篇:FPGA与DS18B20型温度传感器通信的实现

推荐阅读最新更新时间:2024-03-30 21:24

基于FPGA的数字量变换器测试系统设计
  针对数字量变换器性能参数的测试工作,以FPGA为控制核心,开展数字量变换器测试系统的设计和研究,并给出系统各模块的具体设计方法;系统通过USB实现与计算机的通信,能够产生计算机字信号及相应移位脉冲信号、勤务信号和128路指令信号,并能接收经过数字量变换器变化后的计算机数码和指令数码信号;测试系统能够完成对数字量变换器各项性能指标的测试,实验表明,测试系统精度及可靠性高、实时性好,已经成功应用于某遥测系统中。   0 引言   在飞行器发射试验中,常用遥测系统获取其内部各系统的工作状态参数和环境数据,为评定飞行器的性能及故障分析提供依据。数字量变换器作为遥测系统弹上的重要设备,它的主要功能是控制接收弹上的各种飞行参数。变换器性能
[测试测量]
基于<font color='red'>FPGA</font>的数字量变换器测试系统设计
nRF24L01无线模块在单片机与FPGA上的应用
  先简单的介绍下nRF24L01无线模块   (1) 2.4Ghz 全球开放ISM 频段免许可证使用   (2) 最高工作速率2Mbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合   (3) 126 频道,满足多点通信和跳频通信需要   (4) 内置硬件CRC 检错和点对多点通信地址控制   (5) 低功耗1.9 - 3.6V 工作,待机模式下状态为22uA;掉电模式下为900nA   (6) 内置2.4Ghz 天线,体积小巧15mm X29mm   (7) 模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便   通过SPI方式完成数据的交换,包括数
[单片机]
nRF24L01无线模块在单片机与<font color='red'>FPGA</font>上的应用
CDMA 2000系统中前向链路卷积编码器的FPGA实现
在通信系统中,由于数字信号在传输过程中受到各种干扰的影响,使信号码元波形变坏,故传输到接收端后可能发生错误判决,为解决这一问题,通常在设计数字通信系统时,首先应从合理地选择调制制度、解调方法以及发送功率等方面考虑,若采取以上措施仍难满足要求,就要考虑差错控制措施。在CDMA 2000系统的前向链路和反向链路中就采用了卷积编码来实现前向差错控制(FEC)。   FPGA是可编程逻辑器件,它的主要优点在于可以借助EDA工具通过软件编程对器件的硬件结构和工作方式进行重构,这就使得硬件设计具有软件设计的灵活性和便捷性。本设计采用VHDL语言并选用可编程逻辑器件在QuartusⅡ下来实现CDMA 2000系统中的前向链路卷积编码器。  
[嵌入式]
CDMA 2000系统中前向链路卷积编码器的<font color='red'>FPGA</font>实现
AD977A在脑电信号采集系统中的应用
   前言   脑电信号EEG(Electroencephalography)是由脑神经活动产生并存在于中枢神经系统的自发性电位活动,含有丰富的大脑活动信息。它是大脑研究、生理研究和临床脑疾病诊断的重要手段。记录脑电信号,可为临床诊断提供依据。因此,提取脑电信号具有重要的现实意义。由于脑电信号处理一般都是基于数字技术,因此电极采集到的模拟信号经信号调理后,通过A/D转换器转换成数字信号是必不可少的过程。这里提出一种基于FPGA和AD977A的脑电信号数据采集系统,采用FPGA作为信号处理器,并控制模数转换,从而实现高可靠性,高通用性的脑电信号数据采集系统。    2 系统总体设计   通过对人体进行视觉刺激、听觉刺激或神经刺
[模拟电子]
基于MicroBlaze软核的FPGA片上系统设计
摘要: 分析软处理器 MicroBlaze 的体系结构,给出 MicroBlaze 内核在软件无线电系统中的应用,实现 SOPC (可编程系统芯片)。 关键词: FPGA IP Core SOPC MicroBlaze CoreConnect 软处理器 软件无线电 Xilinx 公司的 MicroBlaze 32 位软处理器核是支持 CoreConnect 总线的标准外设集合。 MicroBlaze 处理器运行在 150MHz 时钟下,可提供 125 D-MIPS 的性能,非常适合设计针对网络、电信、数据通信和消费市场的复杂嵌入式系统。
[嵌入式]
基于FPGA的双口RAM与PCI9O52接口设计
  O 引言   IDT70V28L(双口RAM)的存取时间大于20ns,PCI9052工作于25MHz,其存取时间要大于双口RAM的存取时间。PCI9052是发起交易的主动者,相当于一个慢速器件访问快速器件,通过可编程器件,可以把PCI9052读写控制信号直接传递给IDT70V28L,完成时序的匹配。   为将PCI9052的局部逻辑转换为双口RAM的读写控制信号和地址信号,本设计采用了可编程器件来实现它们之间的接口逻辑电路。在可编程器件设计中,状态机的设计方法是应用最广泛的设计方法之一。有限状态机是一种简单、结构清晰、设计灵活的方法,它易于建立、理解和维护,特别应用在具有大量状态转移和复杂时序控制的系统中,更显其优势。
[嵌入式]
基于89C55和FPGA的最小系统频率特性测试仪
  频率特性是一个系统(或元件)对不同频率输入信号的响应特性,是一个网络最重要的特性之一。幅频特性和相频特性综合称为频率特性。测量频率的方法有点频法和扫频法。传统的模拟式扫频仪价格昂贵、体积庞大,不能直接得到相频特性,给使用带来诸多不便。为此,设计了数字扫频式 频率特性测试仪 。   1 方案论证与选择   1.1 方案的选择   1.1.1 信号发生模块   方案1:采用模拟分立元件或单片压控函数发生器。可同时产生正弦波、方波、三角波,但由于元件分散性太大,产生的频率稳定度较差、精度低、波形差,不能实现任意波形输出。   方案2:采用传统的直接频率合成器。这种方法能实现快速频率变换,具有低相位噪声以及所有方法中最高的工作频
[单片机]
基于89C55和<font color='red'>FPGA</font>的最小系统频率特性测试仪
基于FPGA的FIR数字滤波器设计方案(一)
在Matlab/Simulink环境下,采用DSP Builder模块搭建FIR模型,根据FDATool工具对FIR滤波器进行了设计,然后进行系统级仿真和ModelSim功能仿真,其仿真结果表明其数字滤波器的滤波效果良好。通过SignalCompiler把模型转换成VHDL语言加入到FPGA的硬件设计中,从QuartusⅡ软件中的虚拟逻辑分析工具SignalTapⅡ中得到数字滤波器实时的结果波形图,结果符合预期。   0 引言   在信息信号处理过程中,数字滤波器是信号处理中使用最广泛的一种方法。通过滤波运算,将一组输入数据序列转变为另一组输出数据序列,从而实现时域或频域中信号属性的改变。常用的数字滤波器可分为有限脉冲响应(F
[模拟电子]
基于<font color='red'>FPGA</font>的FIR数字滤波器设计方案(一)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved