网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> C6000文章 >> C64X系列 >> 文章正文
  [组图]TMS32C61416 EMIF总线下双FPGA加载设计         ★★★ 【字体:
TMS32C61416 EMIF总线下双FPGA加载设计
作者:佘佑军 王…    文章来源:单片机与嵌入式系统应用    点击数:    更新时间:2007-7-17    

 西南交通大学  佘佑军  王丹  来源:单片机与嵌入式系统应用

摘要:在对FPGA配置比特流文件时序进行分析的基础上,用,g-mF1ash ROM替代FPGA专用配置芯片,通过DSP外部高速EMIF总线,在S1aVe SelectMAP配置模式下实现双FPGA上电加载软硬件设计,解决了系统成本造价高的问题。该设计已成功运用于某公司的一款软件无线电平台中,现已投放市场。

 

关键词 :FPGA Slave SelectMAP DSP加载  EMIF

 

  基于SRAM结构的FPGA容量大,可重复操作,应用相当广泛;但其结构类似于SRAM,掉电后数据丢失,因

此每次上电时都需重新加载。目前实现加载的方法通常有两种:一种是用专用Cable通过JTAG口进行数据加载,另一种是外挂与该FPGA厂商配套的PROM芯片。前者需要在Pc机上运行专用的加载软件,直接下载到FPGA片内,所以掉电数据仍然会丢失,只适用于FPGA调试阶段而不能应用于工业现场的数据加载。后者虽然可以解决数据丢失问题,但这种专用芯片成本较高,供货周期也较长(一般大于2个月),使FPGA产品的开发时间受到很大约束。因此希望找到一种更简便实用的FPGA芯片数据加载方法。根据FPGA芯片加载时序分析,本文提出了采用通过市面上常见的Flash ROM芯片替代专用PROM的方式,通过DSP的外部高速总线进行FPGA加载;既节约了系统成本,也能达到FPGA上电迅速加载的目的;特别适用于在FPGA调试后期,待固化程序的阶段。下面以两片Xilinx公司Virtex4系列XC4VLX60芯片为例,详细介绍采用TI公司的TMS320C61416 DSP控制FPGA芯片数据加载的软硬件设计。

 

1 Xilinx FPGA配置原理

  Virtex4系列的FPGA芯片外部配置引脚MODEHN(MOM1M2),有5种配置模式,如表1所列。

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

11  配置流程

  FPGA加载时序如图1所示。各配置信号必须满足

 

 

 

 

 

 

 

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

 

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

 

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

 

    STARTUP启动。在成功校验CRC码位后,比特流命令使得FPGA进入STARTUP状态。它是由8相状

态机实现的。中间包括等待DCM锁相、DCI匹配等几个状态,最后FPGA释放外部DONE引脚,对外输出高阻态,由外部上拉高,指示FPGA加载成功。

 

12  文件生成

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

 

2硬件实现

 

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

 

3  软件设计

 

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

 

 

 

 

FPGA进行上电配置。具体流程如图3所示。

 

当前FPGA配置时钟CCLK是在用户程序中通过DSP写命令产生的,即写FpgaA(B)ConfigReg

CCLK位高低电平;同时8位配置数据也连续写2次,由CPLD锁存到FPGA总线上,便能充分保证图1中该有效数据在CCLK上升沿上被锁。

 

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

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

  always@(posedge BECLKOUTl or negedge RSTn)

  begin

  if(!RSTn)

    VirtexB_Program_RegE2o]<7h0

    else if(!BCEOn&&!BAWEn &&(BEA==Virtexl3 Pro

    gram_Reg_BEA))

    VirtexB_ProgramRegE2o]<BEDE2o-I

    end

//FPGA配置寄存器(DSP只写)

  always@(posedge BECLKOUTl or negedge RSTn)

  begin

    if(!RSTn)

    VirtexB_Config_Reg[-8O]<hO

else if(!BCE0n&&!BAWEn&&(BEA=VirtexB

    —Config_Reg_BEA))

    begin

    VirtexB_ConfigRegEO]<BEDE0]

    VirtexB_Config_RegE81]<=BED[81]

    end

    end

//FPGA状态寄存器(DSP只读)

    always@(posedge BECLKOUTl)

    begin

    if(!RSTn)

    VirtexB_State_Reg[2o]<3"h0

    else if(ReadEnable &&(BEA=VirtexBState

    Reg_BEA))

    VirtexB_StateRegE2o]<={VirtexBBUSY

    VirtexB_DONEVirtexB_INIT_n)

    end

    assign Read_Enable=!BCE0n&&AOEn&&!BAREn

    assign BED[2o](ReadEnable &&EA=VirtexB

    StateReg_BEA))?VirtexB_StateRegE2o]3"hZ

 

 

 

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

  

参考文献

 

[1]TMS320C6414TMS320C6415TMS320C6416 FIXEDPOINT DIGITAL SIGNAL PROCESSORS SPRSl46N

    FEBRUARY 2001 REVISED MAY 2005

[2] TMS320C6000 DSP Peripheral Component Interconnect(PCI)Reference Guide Literature NumberSPRU581B June 2004

[3]Virtex-4 Coniiguration Guide UG071(v11)Septetuber 102004

 

 

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号