![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| TMS32C61416 EMIF总线下双FPGA加载设计 | |||||
作者:佘佑军 王… 文章来源:单片机与嵌入式系统应用 点击数: 更新时间:2007-7-17 ![]() |
|||||
|
摘要:在对FPGA配置比特流文件时序进行分析的基础上,用,g-m的F1ash 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公司Virtex一4系列XC4VLX60芯片为例,详细介绍采用TI公司的TMS
1 Xilinx FPGA配置原理 Virtex一4系列的FPGA芯片外部配置引脚MODEHN(MO、M1、M2),有5种配置模式,如表1所列。 FPGA在Slave SelectMAP方式下,共用了表2所列的15个配置引脚。 1.1 配置流程 FPGA加载时序如图1所示。各配置信号必须满足 图1中,Slave SelectMAP加载主要包括以下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公司高性能定点处理器TMS 3 软件设计 软件包括3部分:引导Bootloader代码,加载FPGA用户程序以及接口部分的CPLD Verilog代码。
对FPGA进行上电配置。具体流程如图3所示。
当前FPGA配置时钟CCLK是在用户程序中通过DSP写命令产生的,即写FpgaA(B)一Config—Reg的 CCLK位高低电平;同时8位配置数据也连续写2次,由CPLD锁存到FPGA总线上,便能充分保证图1中该有效数据在CCLK上升沿上被锁。 以下是CPLD中动态加载部分的Verilog代码: //FPGA控制寄存器(DSP只写) always@(posedge BECLKOUTl or negedge RSTn) begin if(!RSTn) VirtexB_Program_RegE2:o]<一7h0; else if(!BCEOn&&!BAWEn &&(BEA==Virtexl3 Pro— gram_Reg_BEA)) VirtexB_Program—RegE2:o]<一BEDE2:o-I; end //FPGA配置寄存器(DSP只写) always@(posedge BECLKOUTl or negedge RSTn) begin if(!RSTn) VirtexB_Config_Reg[-8:O]<一hO; else if(!BCE0n&&!BAWEn&&(BEA=一VirtexB —Config_Reg_BEA)) begin VirtexB_Config—RegEO]<一BEDE0]: VirtexB_Config_RegE8:1]<=BED[8:1]; end end //FPGA状态寄存器(DSP只读) always@(posedge BECLKOUTl) begin if(!RSTn) VirtexB_State_Reg[2:o]<一3"h0; else if(Read—Enable &&(BEA=一VirtexB—State— Reg_BEA)) VirtexB_State—RegE2:o]<={VirtexB—BUSY, VirtexB_DONE,VirtexB_INIT_n); end assign Read_Enable=!BCE0n&&AOEn&&!BAREn; assign BED[2:o]一(Read—Enable &&EA=一VirtexB State—Reg_BEA))?VirtexB_State—RegE2:o]:3"hZ; 结 语 该系统已成功用于某公司一款软件无线电平台中,通过反复软硬件调试,现已投放市场。此外,由于该系统中的DSP芯片TMS
参考文献 [1]TMS FEBRUARY 2001 REVISED MAY 2005. [2] TMS [3]Virtex-4 Coniiguration Guide UG071(v1.1)Septetuber 10,2004
|
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|