Board logo

标题: 用CPU配置FPGA(二)硬件设计 [打印本页]

作者: bjxiong    时间: 2006-11-21 10:36     标题: 用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

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

1.配置基本原理

RAM-Based FPGA由于SRAM工艺的特点,掉电后数据会消失。因此,每次系统上电后,均需对FPGA进行配置。对于Altera的FPGA,配置方法可分为:专用的EPROM (Configuration EPROM)、PS(Passive serial 无源串行)、PPS(Passive parallel synchronous 无源同步并行)、PPA(Passive parallel asynchronous 无源异步并行)、JTAG(不是所有器件都支持)。
  PXyDFk0q.jpg
本设计采用PS方式对FPGA进行配置,是基于如下几个方面的考虑:

1. PS方式连线最简单
2. 与Configuration EPROM方式可以兼容(MSEL0、1设置不变)
3. 与并行配置相比,误操作的几率小,可靠性高


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



图片附件: [用CPU配置FPGA(二)硬件设计] PXyDFk0q.jpg (2006-11-21 10:35, 11.07 KB) / 下载次数 467
http://bbs.eccn.com/attachment.php?aid=284&k=5b37e2a73f0c6a5cec213297fe8c4888&t=1732561129&sid=NPlRw8


作者: bjxiong    时间: 2006-11-21 10:37

mAmkYLHN.jpg


只需利用CPU的5个I/O线,就可按图 2所指示的时序对FPGA 进行PS方式的配置。



图片附件: [用CPU配置FPGA(二)硬件设计] mAmkYLHN.jpg (2006-11-21 10:37, 12.43 KB) / 下载次数 451
http://bbs.eccn.com/attachment.php?aid=285&k=666592961eac48841a3b40da444fdec9&t=1732561129&sid=NPlRw8


作者: bjxiong    时间: 2006-11-21 10:39

2.配置电路的连接

CPU仅需要利用5个I/O脚与FPGA相连,就实现了PS方式的硬件连接,具体信号见下表(信号方向从CPU侧看):

信号名
I/O
说明
Data0
O
configuration data
DCLK
O
configuration clock
nCONFIG
O
device reset (a low to high transition starts the 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


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

anJjTeoc.jpg

图 3 PS配置单片FPGA的硬件连接



图片附件: [用CPU配置FPGA(二)硬件设计] anJjTeoc.jpg (2006-11-21 11:18, 13.31 KB) / 下载次数 427
http://bbs.eccn.com/attachment.php?aid=286&k=56e9b3d11714c82c05ca6fa59e4891c0&t=1732561129&sid=NPlRw8


作者: bjxiong    时间: 2006-11-21 11:19

3aNeurFB.jpg
图 4 PS配置多片FPGA的硬件连接

图片附件: [用CPU配置FPGA(二)硬件设计] 3aNeurFB.jpg (2006-11-21 11:19, 18.04 KB) / 下载次数 413
http://bbs.eccn.com/attachment.php?aid=287&k=deba67112f5b5de9b2b6269c13a59690&t=1732561129&sid=NPlRw8


作者: bjxiong    时间: 2006-11-21 11:20

3.配置操作过程

CPU按下列步骤操作I/O口线,即可完成对FPGA的配置:

1. nCONFIG="0"、DCLK="0",保持2μS以上。
2. 检测nSTATUS,如果为"0",表明FPGA已响应配置要求,可开始进行配置。否则报错。正常情况下,nCONFIG="0"后1μS内nSTATUS将为"0"。
3. nCONFIG="1",并等待5μS。
4. Data0上放置数据(LSB first),DCLK="1",延时。
5. DCLK="0",并检测nSTATUS,若为"0",则报错并重新开始。
6. 准备下一位数据,并重复执行步骤4、5,直到所有数据送出为止。
7. 此时Conf_done应变成"1",表明FPGA的配置已完成。如果所有数据送出后,Conf_done不为"1",必须重新配置(从步骤1开始)。
8. 配置完成后,再送出10个周期的DCLK,以使FPGA完成初始化。

注意事项:

1. DCLK时钟频率的上限对不同器件是不一样的,具体限制见下表:

型号
最高频率
ACEX1K、FLEX10KE、APEX20K
33MHz
FLEX10K
16MHz
APEXII、APEX20KE、APEX20KC
57MHz
Mercury
50MHz

2. 步骤7中FPGA完成初始化所需要的10个周期的DCLK是针对ACEX 1K和FLEX 10KE的。如果是APEX 20K,则需要40个周期。

3. 在配置过程中,如果检测到nSTATUS为"0",表明FPGA配置有错误,则应回到步骤1重新开始。
 
图 5 操作流程框图

作者: bjxiong    时间: 2006-11-21 11:22

4.实现在线升级


采用本模块的最大优点是可以实现单板FPGA的在线升级。要实现在线升级,单板设计必须考虑以下几个问题:


1. CPU的启动必须不依赖于FPGA,即CPU子系统应在FPGA被配置前可独立运行并访问所需资源。CPU对FPGA进行配置所需的资源很少,一般来说,仅RAM和BootROM的访问而已。
2. FPGA配置前(或配置过程中)必须保证控制的设备处于非工作态或不影响其他设备工作的稳定态。
3. 为了实现FPGA的在线升级,存放FPGA配置数据的存储器器必须是CPU可重写的,且此存储器应是非易失性的,以保证单板断电后,FPGA数据不需从后台重新获得。

具体过程


结合图6的实例,对FPGA在线升级作一具体描述。

图6 FPGA在线升级

1. 使用编译和连接工具,将FPGA的第一个版本与MPC860的工作程序连接在一起,分别占用地址为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为例,电原理图如下:

图7 电原理图






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