在当今商业竞争日益加强的环境中,产品
否便于现场升级和是否便于灵活运用,成为商家迅速占领市场的关键因素。在
种背景下,Alter公司开发的基于SRAM LUT结构的FPGA器件得到了广泛应用。
现场可编程门阵列FPGA(Field Programmable Gate Array)是一种高密度可编程逻辑器件,其逻辑功能是通过把设计生成的数据文件配置进芯片内部的静态配置数据存储器(SRAM)来实现的,具有可重复编程性,可以灵活实现各种逻辑功能。由于SRAM的易失性,每次系统上电时必须重新配置数据,即ICR(In-Circuit Reconfigurability)。只有在数据配置正确的情况下,系统才能正常工作。因此需要外接ROM保存其配置数据。FPGA的配置是有时序要求的,如果FPGA本身不能控制配置时序,就需要外部配置器件来进行时序控制。以Altera公司的FPGA为例,因其本身不能控制时序,就有专用的EPC系列配置器件供其使用。在嵌入式系统中,因为含有微处理器,可以使用微处理器产生配置时序,将保存在系统ROM中的配置数据存储到FPGA中。所以没有必要使用专用的EPC系列配置器件来配置FPGA。这样不仅节约了成本,还有效地缩小了系统体积。本文重点讨论在嵌入式系统中FPGA的配置方案。
2. FPGA器件的配置方式
Altera公司生产的具有ICR功能的FPGA器件有FLEX6000、FLEX10K、APEX和ACEX等系列,它们可以用以下方式进行配置:
1. 使用专用EPC配置器件,如EPC16、EPC8、EPC2、EPC1;
2. 被动串行方式(PS),使用微处理器的串行接口;
3. 被动并行同步方式(PPS),使用微处理器的并行同步接口;
4. 被动并行异步方式(PPA),使用微处理器的并行异步接口;
5. 边界扫描方式(JTAG),使用JTAG下载电缆。
下面详细分析上述五种配置方式。
使用EPC配置器件时,首先将配置文件从计算机下载到EPC配置器件中去,然后由EPC配置器件控制配置时序对FPGA进行配置。EPC配置器件有一次可编程和可擦写编程型两种:一次可编程型芯片只能写入一次,不适于开发阶段反复调试、修改及产品的方便升级;可擦除编程型价格昂贵,且容量有限,对于容量较大的可编程逻辑器件,需要多片配置芯片组成菊花链进行配置,增加了系统设计的难度。
使用PS、PPS、PPA方式配置时,配置文件事先是以二进制形式保存在系统ROM中,然后通过微处理器将配置数据送进FPGA中。PS是通过串行方式送到FPGA中,PPS是以并行方式送给FPGA。FPGA在其内部将并行数据转换成串行数据,该数据转换时需要外部配置时钟的驱动。比较PS和PPS,所用的配置时间几乎相同,而PS的接口方式比较简单,所以嵌入式系统中通常选择PS方式配置FPGA。使用PPA方式配置数据时,微处理器将配置数据以并行方式送给FPAG,然后在FPGA内部进行数据串行化处理。与PPS不一样的地方是串行化处理时不需要配置外部时钟的驱动,但接口更复杂,工程中很少使用。
边界扫描方式需要连接计算机,无法在现场使用,嵌入式系统中很少采用这种方式。
通过上述的分析,在嵌入式系统中要使用FPGA时,可以采用专用EPC配置器件、PS、PPS、PPA,但是PS、PPS、PPA比专用EPC配置更具成本和体积优势。在PS、PPS、PPA中,PS又是最优的通信方式。所以在嵌入式系统中,通常选择PS被动串行方式来配置FPGA。
3. 嵌入式系统中FPGA的配置电路设计
3.1. PS方式配置时序
在嵌入式系统中,微处理器可以产生配置时序,能够和FPGA直接通信,将ROM中的配置文件传输到FPGA的SRAM中去。通常使用PS被动串行方式进行配置FPGA,下面就通信中使用到的五根信号线的配置时序进行说明。
五根信号线分别为nCONFIG、nSTATUS、CONF_DONE、DCLK、DATA,连接微处理器的五个I/O口和对应的FPGA的引脚。

图1 PS方式配置信号时序图
微处理器上的五个I/O端口连接上述五个信号线。其中连接nCONFIG、DCLK、DATA端口设置成输出态,nSTATUS、CONF_DONE端口设置成输入态。当微处理器开始与FPGA通信时,微处理器首先在nCONFIG上送出一个大于8μm的负脉冲,并且检测nSTATUS上的信号。当FPGA接收到nCONFIG上的下降沿时,迅速将nSTATUS和CONF_DONE拉低,并且保持低电平信号一直到nCONFIG抬高电平。当nCONFIG上抬高电平后过1μm,nSTATUS也将电平抬高,微处理器检测到nSTATUS上的变化后认为FPGA已经做好了接收数据的准备。下一步微处理器将产生配置时钟脉冲,配置时钟的第一个上升沿至少要比nSTATUS上升沿晚1μm。又由于配置数据和配置时钟上升沿同步,所以在配置时钟上升沿发生之前,数据线必须已经有了配置数据信号。配置数据是按照低位在前高位在后的顺序把数据送上数据线。当所有数据都传输完毕后,CONF_DONE线上电平被抬高以示配置完毕。如果传输中出现了异常,FPGA迫使nSTATUS拉低电平,微处理器一旦检测到了这种现象将重新开始配置。由于配置文件中已经包含了FPGA初始化的一些代码,所以传输完配置文件后,FPGA就可以正常工作了。

数字平板电视持续增长,可望2008年在全球的电视市场取得超过50%的份额。平板电视(包括...

十几年前美国军方开始认识到,他们必须改变后勤保障策略。那时,在对舰船、飞机、坦克...

引 言 嵌入式DDR(Double Data Rate,双数据速率)设计是含DDR的嵌入式硬件设计中最重要...

黄氏兄弟初到北京时物色下的珠市口的那家两层小店,本是一家国营服装厂的门市部,名叫...

HAND(汉德)系列产品作为国内领先产品,将工业市场现场仪器、仪表产品技术含量提高到...