Board logo

标题: 用CPU配置FPGA (四) 应用实例 [打印本页]

作者: bjxiong    时间: 2006-11-23 11:06     标题: 用CPU配置FPGA (四) 应用实例

共分为四部分,我把链接都写上,方便大家

【连载】用CPU配置FPGA(一)概 述

地址:http://bbs.chinaecnet.com/ecbbs/post.asp?action=edit&BoardID=9&replyID=113949&ID=26969&star=1

【连载】用CPU配置FPGA(二)硬件设计

 地址:http://bbs.chinaecnet.com/ecbbs/dispbbs.asp?boardID=9&ID=26971&page=1

【连载】用CPU配置FPGA(三)软件操作

  地址:http://bbs.chinaecnet.com/ecbbs/dispbbs.asp?boardID=9&ID=27075&page=1

【连载】用CPU配置FPGA (四) 应用实例

  地址:http://bbs.chinaecnet.com/ecbbs/dispbbs.asp?boardID=9&ID=27077&page=1

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我们已在某单板上实现了该设计。现以该单板为例,说明如何实现CPU对FPGA的配置。
      在该单板上是使用MPC860作CPU,BootROM采用SST39VF040,一片FPGA型号EP1K30QC208-3。我们在MCP860的PB口选5根线与EP1K30连接成PS配置方式,硬件连接参考第二章,Data0也由MPC860输出,信号定义见下表

B7CfrXXt.jpg


EP1K30所需要的配置数据为58kB(准确的长度参见生成的 RBF文件),由于BootROM比较空,我们将配置数据安排在BootROM的0x70000~0x7FFFF区间内。第一次的配置数据可利用编程器将 RBF文件当作二进制文件写到BootROM的起始地址为0x70000的区域,也可以通过860仿真器把数据写到指定位置。
具体软件操作参见第二章。

FPGA在线更改配置


为检验FPGA在线升级的可能性,我们在CPU的BootROM中放置了不同逻辑的FPGA配置数据。CPU正常运行时,测试软件随意更换FPGA的配置数据。在每次配置完成后,FPGA均能实现相应的逻辑功能。
如果和系统软件配合,在线更改EPROM中的配置数据,FPGA的在线升级是完全可以实现的。
为了便于调试和实际生产,我们将FPGA的初始配置数据放置在BootROM中。如某些单板BootROM的写功能必须禁止,此时FPGA配置数据可放在其它存储器中,如存放应用程序的FLASH中,升级FPGA配置数据可以和升级应用程序一并完成。

[此贴子已经被作者于2006-11-23 11:56:01编辑过]



图片附件: [用CPU配置FPGA (四) 应用实例] B7CfrXXt.jpg (2006-11-23 11:03, 29.35 KB) / 下载次数 262
http://bbs.eccn.com/attachment.php?aid=323&k=716b3b927abdcd9cdcff093984819bc2&t=1732280178&sid=kukFUQ


作者: bjxiong    时间: 2006-11-23 11:09

电缆下载

为了提高调试进度,通常会采用电缆下载的方式。在单板上兼容这两种配置方式有多种办法,我们采用了比较简单又便于生产的"0欧姆电阻连接方式"。电气连接的示意图如下:

    BTHJmkoh.jpg

                         图1 兼容电缆下载
在最初调试FPGA时,R1~R5不焊,直接用电缆下载。同时,MPC860的程序中跳过FPGA配置的代码。等FPGA设计定型后(相当于准备使用EPC1时),焊上R1~R5,利用CPU配置FPGA。
当然,R1~R5也可改用跳线或拨动开关。这两种连接方式在开发调试中比0欧姆电阻方便,但实际使用中可靠性不如0欧姆电阻高,如跳线会出现短路块脱落、拨动开关会出现接触不良等现象。而且,0欧姆电阻连接方式最便于生产,价格也最低。建议开发阶段的单板可以用跳线或拨动开关,转产时采用0欧姆电阻连接方式。

在使用下载电缆时需要注意电源的选择。由于Altera以前的 Byteblaster下载电缆是5V供电的,有不少设计都把下载电缆插座接到5V电源上,这种5V供电的下载电缆可能导致不能忍受5V信号的CPU损坏。因此,使用本模块时,下载电缆应使用低电压版本的ByteblasterMV,下载插座的电源接3.3V。




图片附件: [用CPU配置FPGA (四) 应用实例] BTHJmkoh.jpg (2006-11-23 11:09, 37.85 KB) / 下载次数 263
http://bbs.eccn.com/attachment.php?aid=324&k=6211536175b133585e2dd5d68eadf468&t=1732280178&sid=kukFUQ


作者: bjxiong    时间: 2006-11-23 11:18

使用、调试、维护说明

如果使用本模块出现配置出错,有如下可能:

LvChinUF.jpg

 
经验教训

本模块在设计过程中有如下几个要点,请使用者注意:

1. CPU的启动必须不依赖于FPGA,这在单板设计时需要特别考虑的。即CPU子系统应在FPGA被配置前可独立运行并访问所需资源。CPU对FPGA进行配置所需的资源很少,一般来说,仅RAM和BootROM的访问而已。当然,其他挂在CPU总线上的设备必须处于非访问态,FPGA所控制的设备也应处于非工作态或不影响其他设备工作的稳定态。

2. 为了实现FPGA的在线升级,存放FPGA配置数据的区域必须是CPU可重写的

3. 利用CPU配置FPGA,在使用者的主观感觉上会觉得FPGA"起来"得比较慢。这是因为FPGA的配置要等CPU启动完成后才进行。因此,应充分考虑FPGA所控制的设备在FPGA被配置完成前处于非工作态或不影响其他设备工作的稳定态。

4. 关于配置数据占用空间的问题。对于Altera的FPGA来说,每个确定型号的器件,配置数据的长度是一定的(和设计逻辑无关)。因此,一旦确定了FPGA的型号,配置数据占用EPROM的空间也可以在设计中确定。

5. 在使用中请保留下载电缆插座,以加快调试进度。

6. 下载成功后,软件应有指示,便于维护。

7. 要从系统的角度考虑现场升级,保护好FPGA数据。

8. 单板调试时电缆下载的问题。为了兼容两种下载方式,需要电缆下载时,可在CPU程序中跳过配置程序。

9. 如果单板有可能使用电缆下载,必须考虑CPU的I/O能否忍受下载电缆信号电平




图片附件: [用CPU配置FPGA (四) 应用实例] LvChinUF.jpg (2006-11-23 11:17, 40.15 KB) / 下载次数 273
http://bbs.eccn.com/attachment.php?aid=325&k=d356d3010f7800f7c1682f5ad902754a&t=1732280178&sid=kukFUQ


作者: sosoba    时间: 2007-2-21 22:35

good


作者: caopengly    时间: 2007-2-24 22:12

顶,不错的介绍,使用cpu替代epcs的确可以省钱,但是要有片外cpu才行,对于nios系统来说就不能自己配置自己了。


作者: bjxiong    时间: 2007-2-27 10:22

呵呵!版主的分析确实很对。谢谢支持了!
作者: jefffree    时间: 2007-3-12 20:01

第1个看不到


作者: ztw80121    时间: 2007-3-14 23:31

ok




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0