>
首页 » 业界动态 » 嵌入式系统中从串配置FPGA的实现

嵌入式系统中从串配置FPGA的实现

作者:  时间:2007-10-22 09:15  来源:

本文主要论述在ARM嵌入式系统中如何实现FPGA从串配置的方法,将系统程序及配置数据存储在系统Flash中,利用ARM的通用I/O口产生配置时序,省去专用的配置PROM。

文中ARM微处理器采用samsung公司的ARM7TDMI系列中的S3C4480X,FPGA采用xilinx公司spartan3E系列中的XC3S100E,详细讨论FPGA的从串配置的时序,同时论述S3C4480X从串配置spartan3E系列FPGA的软、硬件实现方法。实践证明,该方法在成本、体积、灵活性上均具有优势,将此方法应用在嵌入式系统中具有很强的实用价值。

引言

基于ARM微处理器技术的应用已经得到了广泛、深入的应用,包括工业控制领域、网络应用、消费类电子产品、成像和安全产品等领域。

FPGA通过把设计生成的数据文件配置到芯片内部的SRAM完成其逻辑功能,具有可重复编程性,可灵活实现各种逻辑功能,FPGA的这种特性使其在现代电子系统设计中得到了广泛应用。

基于SRAM工艺的FPGA是易失性的,系统掉电后SRAM内的数据将全部丢失,需要外接ROM保存其配置数据,系统每次上电时必须重新配置数据才能正常工作。通常设计时采用两种方案保存SRAM内的数据,一是使用专用的PROM,Xilinx公司的XCFxx系列PROM提供FPGA的配置时序,上电时自动加载PROM中的配置数据到FPGA的SRAM中;另一种是在含有微控制器的系统中,如嵌入式系统,采用其他非易失性存储器来存储配置数据,如EEPROM、FLASH等,微控制器模拟FPGA的配置时序将ROM中的数据置入FPGA中。与前面一种方案相比,在对成本和体积敏感的系统中,该方案更适用。

从串配嚣原理

1.从串配置原理

Xilinx公司的Spartan3E系列FPGA采用90nm工艺的2.5V低电压FPGA芯片,高性能、低功耗、可无限次编程。XC3S100E总门数达10万门,可采用从串、主串、从并、主并、JTAG等方式进行配置,与从串配置相关的引脚功能及配置如下:

①M[2:O]:配置模式选择位。M2,M1,M0均接上拉电阻,即M[2:O]=111时为从串模式。

②CCLK:配置时钟位,由微处理器提供,上升沿有效。

③DIN:串行数据输入位。

④DOUT:串行数据输出位,用于菊花链式配置。

⑤)PROG_B:低电平异步复位FPGA内部逻辑位。内部配置Memory完全复位后,该引脚指示高电平,此时才能配置FPGA。

⑥ INIT_B:由低电平到高电平跳变时,采样配置模式选择位M[2:0],确定配置方式;配置过程中若出现配置错误,INIT_B将呈现低电平。

⑦DONE:复位时为低电平,配置成功,则为高电平。

2.微处理器从串配置FPGA的时序

FPGA的配置过程:

①系统上电后,将PROG_B置为低电平,复位FPGA内部逻辑重新配置FPGA,延时100 μs充分复位内部逻辑后,将PROG_B置为高电平。

②INIT_B保持低电平,将PROG_B置高电平大于300ns后,FPGA将INILB置为高电平,在INIT_B由低向高跳变的瞬间,采样配置模式选择位M[2:0],采用从串配置模式。

③FPGA采样配置模式后,微处理器开始配置FPGA时钟CCLK和数据,在CCLK的每个上升沿,每bit数据被传入到DIN,数据字节先发低位,再发高位,配置过程中若发生错误,则INIT_B呈现低电平。

④所有配置数据传送完成,CRC校验无误,则DONE呈现高电平,否则为低电平。

⑤DONE为高后,FPGA释放全局三态(GTS),激活IO管脚,释放全部置位复位(GSR)和全局写使能(GWE)有效,开始执行配置区里的逻辑。

微处理器从串配置FPGA的时序如图1所示。

3.配置文件产生的方法

用Xilinx公司提供的开发工具ISE8.1将工程经过综合、映射、布局、布线后产生编程文件,编程文件有.bit、.bin、.mcs、.tek、.hex等格式,其中.bit格式用作JTAG下载,其他几种格式用作专用PROM编程。系统产生配置文件时首先按照产生专用PROM编程文件的方法产生.bin文件,然后将该bin文件转换成ASC Il码文件存储,并且各个字节之间用逗号分隔,最后把该配置数据存放在系统程序的一个头文件的数组Config_data_array[]中,作为系统程序源代码的一部分,和其它程序一起编译。

硬件设计

ARM微处理器S3C44BOX片内集成ARM7TDMI核,同时集成了丰富的外围功能模块,内部增加的8K高速缓;中器大大提高了性能。S3C44BOX可访问256MB的地址空间,最高运行频率达66MHz,包含4M Flash程序存储器,XC3S100E从串配置程序和配置文件都固化于其中保存,该FIash支持低电压写入(1.65~3.3V)。SDRAM具有8M的运行空间,系统在直接运行Flastl时速度非常慢,通常将Flash中的代码搬到SDRAM中运行。

S3C4480X与XC3S100E接口主要是PROG_B、lNIT_B、DONE、CCLK、DIN五根信号线,硬件接口电路如图2所示,其中VCC33表示3.3V,VCC25表示2.5V。

软件设计

1.软件设计流程图

系统软件设计流程图如图3所示,采用C语言编程。

2.在S3C44BOX中实现配置时序

Xilinx公司的每个特定型号的FPGA器件,其配置文件大小是相同的,跟FPGA内部逻辑设计的复杂度无关,Spartan3E系列的10万门FPGA×C3S100E,其配置文件固定为581344bits,若CCLK的时钟周期设置为2 μ s,配置时间约为1.2s。

软件配置以确保ARM完全按照配置信号的时序工作,本文采用S3C44BOX的通用IO口GPF0、GPFl、GPF2、GPF3胶GPF4模拟FPGA的DIN、CCLK、DONE、INIT_B及PROG_B的时序。

S3C44BOX微处理中大多数引脚都是多功能引脚,通过端口配置寄存器选择不同的功能。以端口F为例,控制寄存器rP-CONF用作设定引脚功能、输入、输出或特殊功能;数据寄存器rPDATF[0:8]对应GPF0-GPF8引脚上的数据;读写寄存器rP-DATF的相应位,对应于相应引脚的读或写的控制。

微处理器将CCLK设为上升沿时,可先向GPF1写0,再写1得到,延时程序由for循环实现,程序如下所示:

微处理器读取某个引脚状态,如等待INIT_B(GPF3)为高电平时,可通过如下程序实现:

CCLK在每个上升沿将1 bit数据输入到DIN,首先将GPF1置低电平,1bit数据在GPF0准备好,然后将GPF1置高即可传输,重复循环着将Config_data_array[]中的每个字节按先低位再高位的次序写入FPGA中。

实验结果验证

验证环境:编程专用PROM的led.bin文件。用一个简单的C程序将bin文件转成ASC II码文件,把该ASC II码文件复制到配置数据数组corlfig_data_array[]中,然后把配置程序、配置数据、和系统程序在ADT环境下一起编译,将生成的bin文件通过JTAG口烧写到FLASH中。重新上电后,FPGA配置正常,实验运行结果与预设一致。
结束语

基于ARM的FPGA从串配置方案结构简单,接线容易,软件编程也不复杂,虽然该配置控制电路以Xilinx公司Spartan13E系列的FPGA为例,但稍加修改即可适用于其它系列的FPGA器件,具有一定的通用性。

另外,FPGA具有可重复配置的灵活性,在嵌入式系统中可以通过串口、网口远程烧写Flash重构系统功能,这种在线重构技术,为设备的智能化在线维护、功能重组和在线升级等提供了可能,具有很强的灵活性。

相关推荐

Ctrack选用u-blox GPS和蜂巢式模组开发车队管理解决方案

u-blox  嵌入式  Ctrack  2014-05-21

ARM收购Geomerics 强化行动装置游戏视觉

ARM  游戏视觉  2013-12-18

ARM:2013年Mail芯片出货量将超三亿片

ARM  芯片  2013-12-06

动作撷取追踪的嵌入式体感控制新技术

嵌入式  体感控制  2013-12-06

ARM控制智能机及平板芯片市场趋势将持续

ARM  控制智能机  2013-11-28

推动连网与行动创新 ARM聚焦物联网商机

ARM  物联网  2013-11-26
在线研讨会
焦点