用CPU配置Altera公司的FPGA
一. 概 述
目前很多产品都广泛用了FPGA,虽然品种不同,但编程方式几乎都一样:利用专用的EPROM对FPGA进行配置。专用的EPROM价格不便宜,且大不跟上都是一次性OPT方式编程。一旦更改FPGA设计,代价不小。 为了进一步降低产品的成本和升级成本,可以考虑利用板上现有CPU子系统中空闲的ROM空间存放FPGA的配置数据,并由CPU模拟专用EPROM对FPGA进行配置。 本文将以PowerPC860和EP1K30为例,讲解如何利用CPU来配置FPGA。
CPU配置FPGA的优点
与Configuration EPROM方式相比本设计有如下优点:
1. 降低硬件成本——省去了FPGA专用EPROM的成本,而几乎不增加其他成本。以ALTERA的10K系列为例,板上至少要配一片以上的EPC1,每片EPC1的价格要几十元,容量1M位。提供1Mb的存储空间,对于大部分单板来说(如860系统的单板),是不需要增加硬件的。即使增加1Mb存储空间,通用存储器也会比FPGA专用EPROM便宜。
2. 可多次编程——FPGA专用EPROM几乎都是OTP,一旦更换FPGA版本,旧版本的并不便宜的EPROM只能丢弃。如果使用本设计对FPGA配置,选用可擦除的通用存储器保存FPGA的编程数据,更换FPGA版本,无须付出任何硬件代价。这也是降低硬件成本的一个方面。
3. 实现真正\现场可编程\的特点就是\现场可编程\,只有使用CPU对FPGA编程才能体现这一特点。如果设计周全的话,单板上的FPGA可以做到在线升级。
4. 减少生产工序--省去了对\专用EPROM\烧结的工序,对提高生产率,降低生产成本等均有好处。对于双面再流焊的单板,更可省去手工补焊DIP器件的工序。
当然,与Configuration EPROM方式相比也有一些需要注意的的地方:
1. 需要CPU提供5根I/O线--一般来说,这并不困难。对于MPC860一类的CPU来说,区区5根I/O线是不成问题的。即使是某些设计中实在没有多余的I/O供配置使用,也可通过板上的PLD扩展。虽然这样做可能会增加成本,但获得的真正\现场可编程\的功能是非常宝贵的。
2. CPU的Boot应不依赖于FPGA--这在单板设计时需要特别考虑的。由于CPU对FPGA进行配置所需的资源很少,这一点比较容易做到。
设计摘要
本设计严格按照FPGA的PS配置流程进行,并在配置过程中始终监测工作状态,在完善的软件配合下,可纠正如上电次序导致配置不正常等错误。因此,采用此方法对FPGA进行配置,性能将优于Configuration EPROM方式。
本设计是利用板上现有CPU子系统中空闲的ROM空间存放FPGA的配置数据,并由CPU模拟专用EPROM对FPGA进行配置,以降低硬件成本并实现FPGA的在线升级。
本设计已在MPC860和EP1K30环境下完成验证,适用于有5个多余I/O的CPU对Altera FPGA的配置。
参考资料
ALTERA:AN-116 Configuring SRAM-Based LUT Devices ALTERA: ACEX 1K Programmable Logic Device Family
二. 硬件设计
1.配置基本原理
RAM-Based FPGA由于SRAM工艺的特点,掉电后数据会消失。因此,每次系统上电后,均需对FPGA进行配置。对于Altera的FPGA,配置方法可分为:专用的EPROM (Configuration EPROM)、PS(Passive serial 无源串行)、PPS(Passive
parallel synchronous 无源同步并行)、PPA(Passive parallel asynchronous 无源异步并行)、JTAG(不是所有器件都支持)。
图 1 FPGA配置时序
本设计采用PS方式对FPGA进行配置,是基于如下几个方面的考虑:
1. PS方式连线最简单
2. 与Configuration EPROM方式可以兼容(MSEL0、1设置不变) 3. 与并行配置相比,误操作的几率小,可靠性高
图 2 PS配置时序
只需利用CPU的5个I/O线,就可按图 2所指示的时序对FPGA 进行PS方式的配置。
2.配置电路的连接
CPU仅需要利用5个I/O脚与FPGA相连,就实现了PS方式的硬件连接,具体信号见下表(信号方向从CPU侧看):
信号名 Data0 DCLK nCONFIG Conf_done nSTATUS I/O O 说明 configuration data O configuration clock O device reset (a low to high transition starts the configuration within the device) I I Status bit (gets checked after configuration, will be high if configuration complete) Status bit indicating an error during configuration if low
图 3 PS配置单片FPGA的硬件连接
相关推荐: