1. 引言
在当今复杂数字电路设计中,大多采用以"嵌入式微控制器+"为核心的体系结构此体系结构中FPGA配置效率和灵活性的差异影响了产品的开周期和产品升级的易施性。传统的FPGA配置方案(例如调试阶段的专用下载电缆方式。成品阶段的专用配置片方式)在成本、效率、灵活性方面都存在着明显不足。针对这样的实际问题,基于嵌入式微控制器与FPGA广泛共存于复杂数字系统的背景,借鉴软件无线电"一机多能"的思想,提出了一种对现有传统FPGA配置方案硬件电路稍做调整并增加部分软件功能。即可实现FPGA的方案。本文将在介绍公司Stratix系列FPGA配置模式、FPGA配置流程、增强型配置片内部工作原理的基础上给出利用EPCI6实现FPGA动态配置的方案。并给出软硬件接口电路。
2 FPGA配置方式

可编程器件的配置方式分为主动配置和被动配置两类。主动配置由可编程器件引导配置过程,被动配置则由外部处理器控制配置过程。 根据配置数据线数,器件配置可分为并行配置和串行配置两类。串行配置以Bit(比特)为单位将配置数据载人可编程器件:而并行配置一般以Byte(字节)为单位向可编程器件载入配置数据。被动配置根据配置数据与时钟的关系可分为同步和异步两种方式。
表1列举了Altera公司常用FPGA(Stratix、Cyclone、APEXⅡ、APEX20K、Mercury、ACE XK、FLEXlOK和FLEX6000)的配置方式。
3 FPGA配置流程
FPGA的配置数据存储在内部SRAM单元中。由于SRAM掉电后配置数据会丢失,因此每次上电时必须重新将配置数据写入SRAM中。这个过程称为FPGA的配置。FPGA配置过程如图1所示。表2为Stratix配置引脚定义。
(1) 上电
上电过程中FPGA内部状态机被复位,nSTA-TUS和CONF_DONE引脚由FPGA置为低电平,所有I/O引脚为三态且FPGA内部配置寄存器被清空。

(2) 复位
当nCONFIG或nSTATUS引脚为低电平时,FPGA进入复位状态。在此状态下,FPGA采样MSEL引脚的电平值,以确定采用的配置方式。同时nSTATUS和CONF_DONE引脚被拉低,所有I/O引脚三态并且FPGA内部配置寄存器被清空。

(3) 配置
当nCONFIG为高电平,nSTATUS被FPGA释放并由外部上拉电阻拉为高电平后进入配置状态。此状态下配置数据在DCLK时钟的上升沿载入FP-GA。若正确接收所有配置数据(CRC校验无误)。FPGA释放CONF_DONE引脚且当其被外部上拉电阻拉高后进入初始化状态。
(4) 初始化
此状态下FPGA内部逻辑和寄存器被初始化:使能I/0缓冲,释放INIT_DONE引脚(可选)。
(5) 用户模式
在此状态下FPGA开始执行用户程序。
4增强型配置片工作原理
Ahera公司增强型配置片支持在一块配置片上进行多块高密度PLD(Programmable Logic De-vice)配置。配置片主要由两大核心模块构成一控制器和Flash存储器。存储空间除用于存储配置数据外,未使用的部分可用于微处理器或PLD的外部存储器。下面将分别阐述增强型配置片的核心模块。
4.1增强型配置片控制单元