2024年5月28日发(作者:)

第34卷第3期 

制 导 与 引 信 

GUIDANCE 8L FUZE 

Vo1.34 No.3 

Sep.2013 

2013年9月 

文章编号:1671~0576(2013)03—0028—04 

星载电子设备FPGA的动态刷新方法及实现 

张衡 

(上海无线电设备研究所,上海200090) 

摘 要:在分析FPGA空间单粒子效应的基础上,利用CPLD和PROM在星载电子设备 

中实现了FPGA的动态刷新。该方法使用CPLD控制FPGA定期从PROM中读取用户配置 

信息,动态刷新内部配置信息,从而减少FPGA配置存储器发生单粒子翻转的概率,提高星载 

电子设备运行的可靠性。 

关键词:电子设备;动态刷新;存储器 

中图分类号:TN958 文献标识码:A 

A Dynamic Rec0nfigurati0n Method and Implementation of 

FPGA on the Satellite Electronic Equipment 

ZHANG Heng 

(Shanghai Radio Equipment Research Institute,Shanghai 200090,China) 

Abstract:On the analysis of single—event upset,proposes a reliable dynamic reconfigura— 

tion method based on CPLD and PROM.The configuration information is read from the 

PRoM by FPGA through the CPLD to dynamic scrube the configuration memory in FPGA, 

thereby dynamic scrubbing can reduce the probability of single—event upsets and increase the 

reliability of the electronic equipment on the satellite. 

Key words:electronic equipment;dynamic reconfiguration;storage 

响uj。配置存储器是FPGA内部存放配置信息 

0 引言 

Xilinx公司的Virtex 1I系列FPGA具有逻 

的逻辑单元,其内容决定LUT、Block RAM和布 

线矩阵如何设置。如果配置存储器发生单粒子翻 

转,有可能会导致FPGA无法正常工作。 

为了消除FPGA配置存储器内部的错误数 

据,目前采用重新加电、复位FPGA或者回读配 

置数据等方法。重新加电和复位FPGA会造成 

电子设备运行暂停,并且重新加载后会失去FP- 

收藕日期t 2013-05 21 

作者筒介l张衡(1982),男,工程师。硕士,主要从事雷达 

辑资源丰富、可用RAM多和编程容易的特点,在 

星载电子设备中的应用越来越广泛。该FPGA 

采用SRAM工艺,容易受空间单粒子效应影 

GA寄存器保存的数值。采用回读配置数据方法 

来检测错误,需要花费时间读取和解析FPGA的 

信号处理技术的研究。 

第3期 张 衡:星载电子设备FPGA的动态刷新方法及实现 

配置数据,不能够及时发现错误。 

针对以上缺点,本文提出一种实现动态刷新 

的方法,使用CPLD控制FPGA从PROM中加 

载部分配置程序。 

动态刷新时间要求 

表1给出了XQR2V6000CF1144V器件处于 

地球同步轨道时受单粒子影响的情况, 

XQR2V3000采用与XQR2V6000相同的制造工 

艺,所以两者的单粒子效应相似。由于前者的配 

置文件大小为10,494,368 bits而后者大小为 

21,849,504 bits,那么xQR2V3000的配置存储 

器在GEO轨道时单粒子翻转频率为0.9次/h。 

表1 XQR2V6000在GEO轨道受单粒子影响情况 

XQR2V6000— 单位时间平均 时间 

36,000 km 错误次数 单位 

配置存储单元 1.8 h 

Block存储单元 11.8 h 

POR单粒子效应 221 y 

SMAP单粒子效应 181 y 

为了保证动态刷新有效性,刷新频率必须大 

于配置存储器单粒子翻转频率的10倍。 

xQR2V3000的配置存储器单粒子翻转频率为 

0.9次/h,所以可以确定刷新周期不超过6.6 

mln o 

动态刷新FPGA使用SelectMap方式[2],其 

数据宽度为8 bits,默认的配置时钟为4 Mbits/s, 

全部刷新XQR2V3000配置存储器需要0.3 S,可 

以看出刷新FPGA耗费时问远远小于最大刷新 

周期,满足方案设计的最大时间要求。 

2系统方案设计 

该方案硬件电路使用两片PROM存放FP— 

GA的配置程序,其中PROM1存放全部配置程 

序,PROM2存放部分刷新程序,其配置程序不包 

含Block RAM,避免改写FPGA工作时Block 

RAM存储的数据,如图1所示。FPGA配置采 

用SelectMap Slave模式,外部晶振提供配置时 

钟。配置电阻根据上下状态控制刷新周期,默认 

是000,即刷新周期为6 min,如果配置电阻为 

001,则刷新周期为3 min。CPLD刷新控制电路 

完成上电之后加载FPGA全部配置程序,然后读 

取配置电阻状态,最后周期执行刷新操作,使用反 

熔丝芯片A54SX32提高整机抗辐照能力。 

VCC 

{一 嚣I vcc 

CE 

cE1RSTccLK 

CCLK MO 

Xilinx OE 

OE1DATA[0:7] 

D[0:7]M

PRoM1 

CLK1 CF 

PROG BM … 

CLK 

DATA[0:7] 

DATA[0:7] 

Virtex-IJ 

CPLD Slave 

CE 

CE2 

SelectMAP 

)(ilinx OE 0E2 DONE 

D0NE 

IN【T B 

INIT B 

PROM2 RDWR B 

CLK 

CLK2 CS—B 

RDWR B 

CS B 

DATA[0:7】 

DATA2[0:71 

图1硬件电路原理图 

3软件实现及实验结果 

3.1刷新控制电路模块化设计 

CPLD刷新控制电路采用模块化设计思想, 

根据任务要求划分为6个模块,结构框图如图2 

所示。 

图2 CPLD程序示意图 

六个模块功能如下: 

a)PROM1控制模块完成CPLD外部的 

PROM1的读取,其中PROM1芯片存储完整的 

配置程序; 

b)PROM2控制模块完成CPLD外部的 

PROM2的读取,其中PROM2芯片存储部分的 

配置程序; 

c)配置状态机模块完成CPLD整个设计的 

工作状态转换,其中包括IDLe、上电加载、周期刷 

3O 制 导 与 引 信 第34卷 

新和出错状态; 

d)地址译码模块完成外部PROM1和 

PRoM2芯片地址数据总线的切换,保证相应的 

数据写入FPGA配置存储器中; 

e)FPGA配置状态检测模块完成FPGA加 

载状态的检测,发现出错后,发送错误标志; 

f)FPGA控制模块完成FPGA配置程序的 

写入,包括上电配置和周期刷新。 

3.2配置状态机设计 

配置状态机模块是CPLD刷新控制电路的 

核心,负责FPGA上电配置和刷新整个过程控 

制。该状态机上电首先复位FPGA,清空内部配 

置程序,等待配置数据写入;然后加载外部 

PROM1内部的配置程序,等待FPGA正常工作, 

最后读取外部PROM2内部的配置程序,周期刷 

新FPGA配置存储器,消除单粒子效应的影响, 

刷新过程中可以根据配置电阻上拉或者下拉,设 

定刷新的周期,状态流程图如图3所示。 

图3配置状态机模块流程图 

3.3 部分刷新配置文件生成 

使用两片PROM分别存放配置文件,可以简 

化刷新控制电路设计,只需设置BitGen参数就能 

完成部分刷新配置文件生成。下面将详细说明参 

数设置过程和文件写入PROM方法。 

首先使用BitGen默认参数生成全部配置文 

件,然后把BitGen参数设置为一g activerecon— 

fig:yes—g PartialMask0:1 F、F、F、F、F、F、F、F、F、FF’F、FFF、~ 

g PartialMask1:3 F-g PartialMask2:0,DCI Up— 

date Mode设置为continuous,修改Ucf约束文 

件,增加CONFIG STEPPING=“1”约束。。],最后 

运行Bigen程序,所生成的bit文件即为部分刷新 

配置文件。图4即为部分刷新配置文件的结构 

图,对帧内容相同的配置存储单元使用多帧写入 

的方式,最后采用单帧写入的方式完成剩余帧的 

配置。 

FFFFFFFF AA995566 

帧同步字头. 

●…●… 

3000800l 00000007 

复位CRC电路 

300lcOO1 O1040093 

配置MASK 

3000800l 0000000l 

30OO4Oa6....… 

帧内容相同的配 

置存储单元,采 

3000200l 00000000 

用MFWR方式写 

3000800l 00000002 

入 

3000800l 0000000l 

帧内容不同的配 

3000200l 002ElA00 

置存储单元,采 

30004l4C一一一.一.一 

用FDRI方式写入 

●…●… 

300000 01300…. 

写入CRC校验码 

3000800 1 00000D 

让内部配置控制 

器同步失锁 

图4部分刷新配置文件结构图 

Bit文件不支持PROM直接烧写,所以要使 

用IMPAC工具转换成MCS文件 ],该文件可以 

通过烧录设备BPM写入一次性配置芯片中,本 

方案使用Xilinx公司的XQR17V16配置芯片,该 

芯片容量为16 Mbits,支持SelectMap Slave模 

式,满足方案设计要求。 

在项目研制前期,为了方便调试,使用 

XCF16P代替XQR17V16芯片,前者具有可重配 

置的特点,容量为16 Mbits,外部接口兼容后者。 

采用菊花链的方式和FPGA连接,通过JTAG方 

式可以访问链上的全部芯片,直接读取bit文件, 

无需转换成MCS文件。 

3.4验证结果 

图5为刷新控制电路在FPGA上电时加载 

全部配置程序的仿真验证波形,从图中可以看出, 

第3期 张 衡:星载电子设备FPGA的动态刷新方法及实现 31 

CPLD从PROM1配置存储芯片中读取原始程 取部分刷新配置文件,然后写入FPGA中。通过 

序,然后写入FPGA中;图6为刷新控制电路在 

仿真验证,说明该刷新控制电路软件设计满足方 

FPGA运行时动态刷新的仿真验证波形,从图中 案要求。 

可以看出,CPLD从PROM2配置存储芯片中读 

Prom 

clk 

Ce 

} 一 

J L ,]L~』~

j 

乙』寸1

j }

L一厂 Lr L 一广LrL

 }

~j寸1一厂tj 

i; l{ 

Oe 

} 5 fl {5  {i i 

i { l  i; 

l 

FPGA 

00 l f l  lF i j IAA I99 器5 Ia0{加0 I80 toit 10ol 

data 

i 

prog_b 

init b 

i i 

rdwr b 

L j 

CS b 

L { 

cclk 

r 1—广L~厂~L_ 广1 1 r 』~L厂乙 jl1一九 

data 

00 F  rIAA — r嚣5 玷6 跨 ——  

J 

f]^

一 

{ } 

图5 FPGA上电加载程序仿真验证波形 

兰#;三# i {广 

… ~

=~ 

一~ 』 厂乙卜一 』一I厂 扣]~扣』卜, 

l  5l i

l ; 

艟且 { 璐5 B 310一 ∞0 f瑁0 l口l md 

i i  i}  {{ j 

一~ — … 

; 

—。一 .… 

』l.  …— —。一 1 {… … .上{ …… — il ….—…』  i.。. 一一 ,…~一 l 一…一十……一  li ……一'}

 {

一一…}……~

l 

卜--…一}一…~

} 

 

…~…一

}…… ÷……一 ~…—一{一一~~ ……… 【

,rL一』

f 

 L—r j

 !i 

~』 !一一r L~}rL一厂 —

 j{ ; 

j一一 jJ一一

} 

|L-. 

1I0 } : }  !f l F r {I 厩广___]辱— ]l ——奄 ——璇广—]面 

图6 FPGA动态刷新仿真验证波形 

该方案应用于星载电子设备原理样机研制 

的不同,调整配置电阻修改刷新周期。该方法具 

中,使用Xilinx公司的XRQ2V3000芯片,配置文 

有简单灵活的特点,具有一定的应用价值。 

件大小为10.5 Mbits,选用的配置时钟为4 MHz, 

刷新速率为32 Mbits/s,刷新配置时间约为 

参考文献 

0.3 S。经测试上电配置之后FPGA的DONE管 

[1]Michael Caffrey etc. Single—Event Upsets in 

脚成功变高,并且在动态刷新过程中,FPGA工作 

SRAM FPGAs[-J].Military and Aerospace Appli— 

正常,所以成功实现了动态重配置功能。 

cations of Programmable Logic:Laurel MD, 

USA,2002. 

4 结论 

[2]Xilinx Company.QPro Virtex-II 1.5V Radiation- 

Hardened QML Platform FPGAs[EB/0L]. 

DS124(v1.2),2006. 

随着FPGA的空间应用越来越广泛,由于 

[3]Brendan Bridgford.ete.Correcting Single-Event 

FPGA用户配置信息敏感于单粒子效应,为了提 

Upsets in Virtex-II Platform FPGA Configuration 

高抗单粒子效应能力,本文提出了一种动态刷新 

Memory.[-EB/OL]XAPP779(v1.1),2007. 

的方法。该方法在实现过程中,只需直接读取配 

[4]周盛雨.基于FPGA的动态部分重构系统实现 

置程序,就能完成刷新工作,也可以根据运行轨道 

ED].北京:中国科学院研究生院,2008.