CPLD FPGA 在线升级程序.docx
《CPLD FPGA 在线升级程序.docx》由会员分享,可在线阅读,更多相关《CPLD FPGA 在线升级程序.docx(13页珍藏版)》请在三一办公上搜索。
1、CPLD FPGA 在线升级程序用CPU配置Altera公司的FPGA 一. 概 述 目前很多产品都广泛用了FPGA,虽然品种不同,但编程方式几乎都一样:利用专用的EPROM对FPGA进行配置。专用的EPROM价格不便宜,且大不跟上都是一次性OPT方式编程。一旦更改FPGA设计,代价不小。 为了进一步降低产品的成本和升级成本,可以考虑利用板上现有CPU子系统中空闲的ROM空间存放FPGA的配置数据,并由CPU模拟专用EPROM对FPGA进行配置。 本文将以PowerPC860和EP1K30为例,讲解如何利用CPU来配置FPGA。 CPU配置FPGA的优点 与Configuration EPRO
2、M方式相比本设计有如下优点: 1 降低硬件成本省去了FPGA专用EPROM的成本,而几乎不增加其他成本。以ALTERA的10K系列为例,板上至少要配一片以上的EPC1,每片EPC1的价格要几十元,容量1M位。提供1Mb的存储空间,对于大部分单板来说,是不需要增加硬件的。即使增加1Mb存储空间,通用存储器也会比FPGA专用EPROM便宜。 2 可多次编程FPGA专用EPROM几乎都是OTP,一旦更换FPGA版本,旧版本的并不便宜的EPROM只能丢弃。如果使用本设计对FPGA配置,选用可擦除的通用存储器保存FPGA的编程数据,更换FPGA版本,无须付出任何硬件代价。这也是降低硬件成本的一个方面。
3、3 实现真正现场可编程-FPGA的特点就是现场可编程,只有使用CPU对FPGA编程才能体现这一特点。如果设计周全的话,单板上的FPGA可以做到在线升级。 4 减少生产工序-省去了对FPGA专用EPROM烧结的工序,对提高生产率,降低生产成本等均有好处。对于双面再流焊的单板,更可省去手工补焊DIP器件的工序。 当然,与Configuration EPROM方式相比也有一些需要注意的的地方: 1 需要CPU提供5根I/O线-一般来说,这并不困难。对于MPC860一类的CPU来说,区区5根I/O线是不成问题的。即使是某些设计中实在没有多余的I/O供配置使用,也可通过板上的PLD扩展。虽然这样做可能会
4、增加成本,但获得的真正现场可编程的功能是非常宝贵的。 2 CPU的Boot应不依赖于FPGA-这在单板设计时需要特别考虑的。由于CPU对FPGA进行配置所需的资源很少,这一点比较容易做到。 设计摘要 本设计严格按照FPGA的PS配置流程进行,并在配置过程中始终监测工作状态,在完善的软件配合下,可纠正如上电次序导致配置不正常等错误。因此,采用此方法对FPGA进行配置,性能将优于Configuration EPROM方式。 本设计是利用板上现有CPU子系统中空闲的ROM空间存放FPGA的配置数据,并由CPU模拟专用EPROM对FPGA进行配置,以降低硬件成本并实现FPGA的在线升级。 本设计已在M
5、PC860和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 、PS、PPS、PPA、JTAG。 本设计采用PS方式对FPGA进行配置,是基
6、于如下几个方面的考虑: 1 PS方式连线最简单 2 与Configuration EPROM方式可以兼容 3 与并行配置相比,误操作的几率小,可靠性高 只需利用CPU的5个I/O线,就可按图 2所指示的时序对FPGA 进行PS方式的配置。 2.配置电路的连接 CPU仅需要利用5个I/O脚与FPGA相连,就实现了PS方式的硬件连接,具体信号见下表: 信号名 Data0 DCLK nCONFIG I/O O 说明 configuration data O configuration clock O device reset (a low to high transition starts the
7、configuration within the device) Conf_done I Status bit (gets checked after configuration, will be high if configuration complete) nSTATUS I Status bit indicating an error during configuration if low 图 3 PS配置单片FPGA的硬件连接 图 4 PS配置多片FPGA的硬件连接 3.配置操作过程 CPU按下列步骤操作I/O口线,即可完成对FPGA的配置: 1 nCONFIG=0、DCLK=0,保持
8、2S以上。 2 检测nSTATUS,如果为0,表明FPGA已响应配置要求,可开始进行配置。否则报错。正常情况下,nCONFIG=0后1S内nSTATUS将为0。 3 nCONFIG=1,并等待5S。 4 Data0上放置数据,DCLK=1,延时。 5 DCLK=0,并检测nSTATUS,若为0,则报错并重新开始。 6 准备下一位数据,并重复执行步骤4、5,直到所有数据送出为止。 7 此时Conf_done应变成1,表明FPGA的配置已完成。如果所有数据送出后,Conf_done不为1,必须重新配置。 8 配置完成后,再送出10个周期的DCLK,以使FPGA完成初始化。 注意事项: 1 DCLK
9、时钟频率的上限对不同器件是不一样的,具体限制见下表: 型号 ACEX1K、FLEX10KE、APEX20K FLEX10K APEXII、APEX20KE、APEX20KC Mercury 最高频率 33MHz 16MHz 57MHz 50MHz 2 步骤7中FPGA完成初始化所需要的10个周期的DCLK是针对ACEX 1K和FLEX 10KE的。如果是APEX 20K,则需要40个周期。 3 在配置过程中,如果检测到nSTATUS为0,表明FPGA配置有错误,则应回到步骤1重新开始。 图 5 操作流程框图 4.实现在线升级 采用本模块的最大优点是可以实现单板FPGA的在线升级。要实现在线升级
10、,单板设计必须考虑以下几个问题: 1 CPU的启动必须不依赖于FPGA,即CPU子系统应在FPGA被配置前可独立运行并访问所需资源。CPU对FPGA进行配置所需的资源很少,一般来说,仅RAM和BootROM的访问而已。 2 FPGA配置前必须保证控制的设备处于非工作态或不影响其他设备工作的稳定态。 3 为了实现FPGA的在线升级,存放FPGA配置数据的存储器器必须是CPU可重写的,且此存储器应是非易失性的,以保证单板断电后,FPGA数据不需从后台重新获得。 具体过程 结合图6的实例,对FPGA在线升级作一具体描述。 图6 FPGA在线升级 1 使用编译和连接工具,将FPGA的第一个版本与MPC
11、860的工作程序连接在一起,分别占用地址为0x70000-0x7FFFF和0x00000-0x6FFFF的存储空间。 2 单板启动时,MPC860自动将0x70000-0x7FFFF的数据下载到FPGA中,完成FPGA配置。 3 当FPGA需升级时,将新的RBF配置文件放在后台计算机中。 4 MPC860把BOOTROM的0x70000-0x7FFFF空间当作普通数据存储区,通过后台将新的RBF配置文件放在0x70000-0x7FFFF中。 5 MPC860调用BOOTROM中的FPGA配置子程序,对FPGA从新下载数据,完成FPGA升级。 以MPC860和Altera EP1K30为例,电原
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CPLD FPGA 在线升级程序 在线 升级 程序
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3060622.html