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.

发布评论