datasheet

TMS320C61416 EMIF下双FPGA加载设计

2008-04-01来源: 时间: 关键字:FPGA  加载  CRC校验  状态寄存器  配置寄存器  逻辑接口  TPOR  低脉冲

  基于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公司的TMS320C61416DSP控制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  加载  CRC校验  状态寄存器  配置寄存器  逻辑接口  TPOR  低脉冲

编辑:ssb 引用地址:http://www.eeworld.com.cn/gykz/2008/0401/article_720.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:实时操作系统μC/OS-II的改进与应用研究
下一篇:基于ARM920T的嵌入式静力测量系统设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

Esam Elashmawi被任命位莱迪思半导体公司的战略指挥官

FPGA行业高管将领导莱迪思全球企业营销和战略部门以期实现快速盈利增长 莱迪思半导体公司(NASDAQ: LSCC),客制化智能互连解决方案市场的领先供应商,近日宣布任命Esam Elashmawi为首席营销和战略官,即日上任。Elashmawi先生将为莱迪思带来他在销售、市场营销、战略规划和综合管理等领域的丰富经验。加入莱迪思之前,Elashmawi先生曾任Microsemi公司高级副总裁兼总经理,管理公司的FPGA、存储和时序解决方案产品线,业绩出众。 莱迪思总裁兼首席执行官Jim Anderson表示:“正值公司吸引高层次人才之际,我们很高兴Esam Elashmawi加入莱迪思领导团队,担任首席营销
发表于 2018-10-19
Esam Elashmawi被任命位莱迪思半导体公司的战略指挥官

配备Stratix 10 FPGA,英特尔加速卡实现视频转码和流分析

随着物联网的发展,接入互联网的设备越来越多,数据量也随之飞速增长,而绝大多数数据流量都源自或者终止于数据中心。根据Cisco测算,从2015年至2020年,全球数据中心IP流量预计增长三倍,而我国数据中心IP流量规模预计到2020年也将达到8.6ZB。面对如此海量的数据,数据中心需要完成海量的数据分析才能提取出有效信息,加上AI技术的发展,数据中心计算加速刻不容缓。 由于FPGA 同时拥有流水线并行和数据并行的架构,比 GPU 延迟低,因此在数据中心加速应用中被广泛采用。英特尔之前也推出了基于Arria 10 FPGA的加速卡,近期又推出了采用英特尔 Stratix 10 SX FPGA的新一代可编程加速卡 (PAC
发表于 2018-10-10
配备Stratix 10 FPGA,英特尔加速卡实现视频转码和流分析

助力开发人员拓展设计边界,Arm与赛灵思强强联合

•    Arm和赛灵思(Xilinx)强强联合,将业界最强大、最成熟的嵌入式生态系统优势与赛灵思FPGA的灵活性相结合•    增强版Arm DesignStart项目将助力嵌入式开发人员快速、免费、方便地获取成熟的Arm IP,从而加速并增强FPGA项目开发•    新的零授权费(License)和零版税(Royalty)模式,旨在帮助更多开发人员从业界领先的Arm技术以及覆盖全设备组合的通用软件基础中受益 北京 – 2018年10月9日 – Arm宣布与赛灵思携手合作,通过Arm DesignStart项目将Arm
发表于 2018-10-09

STM32单片机按键消抖和FPGA按键消抖大全

写在前面:STM32单片机按键消抖和FPGA按键消抖大全按键去抖:由上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常我们手动按键然后释放,这个动作中稳定闭合的时间超过了20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,有专用的去抖动电路,也有专门的去抖动芯片,但通常我们采用软件延时的方法就可以解决抖动问题。1. 单片机中按键消抖程序1.1  单片机中,比如STM32中,一般的方法(最简单的方法)软件消抖程序:   if(GPIO_ReadInputDataBit(GPIOA
发表于 2018-10-06
STM32单片机按键消抖和FPGA按键消抖大全

Speedcore eFPGA为高性能芯片设计添加可编程结构的能力

 Speedcore eFPGA IP拥有为高性能芯片设计添加可编程结构的能力通过具体案例重点介绍Speedcore eFPGA对各种应用的支持 9月中旬,D&R IP SoC China会议在上海长荣桂冠酒店举行,基于FPGA的硬件加速器件和嵌入式FPGA知识产权(eFPGA IP)领域的领导性企业Achronix半导体公司在会议期间发表演讲并进行现场展示。 Achronix亚太区总经理罗炜亮先生(Eric Law)代表公司发表题为“利用Speedcore eFPGA加速边缘计算”的演讲,该演讲是“eFPGA是物联网解决方案的使能者”主题会议的一部分。  罗炜亮先生
发表于 2018-09-27
Speedcore eFPGA为高性能芯片设计添加可编程结构的能力

英特尔扩充 FPGA 可编程加速卡产品组合

全新特性: 英特尔今天推出了采用英特尔® Stratix® 10 SX FPGA(英特尔超强大的 FPGA)的全新英特尔® 可编程加速卡 (PAC),以扩充其现场可编程门阵列 (FPGA) 加速平台产品组合。借助面向英特尔® 至强® CPU及FPGA的加速栈,这款高带宽卡可为数据中心开发人员提供强大的平台,用于部署基于 FPGA 的加速工作负载。HPE* 将成为首家将采用 Stratix 10 SX FPGA 的英特尔 PAC, 和面向英特尔® 至强® 可扩展处理器及FPGA的英特尔加速栈,整合至其服务器产品的 OEM。 HPE 副总裁兼HPC与AI事业部总经理 Bill Mannel 表示
发表于 2018-09-26

小广播

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved