1. 引言:为什么卫星需要 FPGA
卫星是人类部署在太空中的"电子设备",它要在极端温度、强辐射、真空、无法维修的环境中连续工作 5~15 年。这样一个系统对电子硬件的核心诉求可以概括为四点:高可靠、可重构、强实时、低功耗。
传统的星载电子方案大致有三条路线:
- 纯模拟电路:简单可靠,但功能固定,无法适应复杂信号处理需求;
- 专用集成电路(ASIC):性能与功耗最优,但流片成本高(先进工艺动辄数百万美元)、周期长(12~24 个月)、一旦流片无法修改,且宇航级 ASIC 的供货周期与停产风险极高;
- 通用处理器(CPU/DSP):灵活,但算力密度低、功耗高,难以满足高速信号处理与并行计算需求。
FPGA(Field Programmable Gate Array,现场可编程门阵列)恰好落在三者之间:它具备硬件级并行能力 (接近 ASIC 的算力密度)、可反复重构的灵活性 (接近软件的迭代速度)、可裁剪的功耗 ,并且可以通过抗辐射加固 与在轨重构来应对空间环境的特殊挑战。这使得 FPGA 成为现代卫星电子系统中使用最广泛的器件之一。
从通信卫星的基带处理、遥感卫星的成像压缩、导航卫星的信号生成,到科学卫星的在轨数据处理,FPGA 几乎无处不在。近年来,随着星上 AI 推理 、软件定义卫星 、低轨巨型星座的兴起,FPGA 的角色正在从"胶合逻辑与接口转换"升级为"星载计算的核心引擎"。
本文将从空间环境、器件选型、典型应用、设计流程、可靠性保障、在轨重构、AI 加速、工程实践、发展趋势等多个维度,系统性地介绍 FPGA 在卫星中的应用。全文力求准确、有据、可落地,适合航天电子工程师、FPGA 开发者、卫星系统设计者以及对该领域感兴趣的读者阅读。
2. 空间环境对电子器件的挑战
要理解 FPGA 在卫星中的设计约束,必须先理解空间环境。卫星电子系统面临的威胁与地面设备有本质区别。
2.1 辐射环境
空间辐射是星载电子器件最主要的失效来源,主要分为三类粒子:
| 辐射类型 | 主要来源 | 典型能量/通量 | 对 FPGA 的主要影响 |
|---|---|---|---|
| 质子 | 太阳宇宙线、银河宇宙线、辐射带 | 1 MeV~数百 MeV | 单粒子效应、总剂量累积 |
| 电子 | 地球辐射带(范艾伦带) | 0.1~10 MeV | 总剂量、深层充电 |
| 重离子 | 银河宇宙线、太阳粒子事件 | 高 LET 值 | 单粒子翻转、单粒子锁定、单粒子烧毁 |
总电离剂量(TID, Total Ionizing Dose):器件在任务周期内累积吸收的辐射能量,单位通常用 krad(Si)。低轨(LEO)卫星典型任务剂量为 10~30 krad(Si)(取决于轨道高度、倾角与屏蔽),中轨(MEO)可达 50~100 krad(Si),地球同步轨道(GEO)与深空任务可达 100 krad(Si) 以上。商用级 FPGA 通常只能承受 5~10 krad(Si),工业级约 20~30 krad(Si),宇航级加固器件可达 100~300 krad(Si)。
单粒子效应(SEE, Single Event Effect) 是 FPGA 设计中最需要关注的问题,其子类包括:
- 单粒子翻转(SEU):存储单元(配置存储器、BRAM、触发器)中的比特位发生翻转。对 SRAM 型 FPGA 而言,配置存储器翻转会直接改变电路逻辑功能,是最危险的效应之一。
- 单粒子瞬态(SET):组合逻辑或模拟电路中产生瞬态脉冲,可能被下游触发器捕获形成错误。
- 单粒子功能中断(SEFI):器件进入功能异常状态,需要复位或重配置才能恢复。
- 单粒子锁定(SEL):CMOS 结构中寄生晶闸管导通,形成大电流通路,可能烧毁器件,必须断电重启。
- 单粒子烧毁(SEB):功率器件(如 MOSFET)发生永久性损坏。
单粒子翻转率(SER, Soft Error Rate) 通常用"每比特每天翻转次数"(upsets/bit/day)衡量。在 GEO 轨道,SRAM 型 FPGA 的配置存储器 SER 可达 10⁻⁷~10⁻⁶ upsets/bit/day 量级。一个 1000 万比特配置存储器的 FPGA,每天可能发生数次到数十次配置翻转------这意味着必须设计配置刷新机制,否则卫星可能在数小时内功能失效。
2.2 温度环境
卫星在轨温度极端且变化剧烈:
- 向阳面与背阴面温差可达 200℃ 以上;
- 低轨卫星每 90 分钟经历一次昼夜循环,温度周期性剧烈波动;
- 深空任务(如月球、火星)温度范围更宽。
宇航级 FPGA 通常要求工作温度范围 -55℃~+125℃ (军标级),部分器件扩展至 -55℃~+150℃。温度变化会带来时序漂移、时钟抖动、器件参数漂移等问题,设计中必须做全温度范围时序分析(通常在 -55℃、+25℃、+125℃ 三个角点做 STA)。
2.3 真空与散热
真空中没有空气对流,散热只能依靠热传导与热辐射 。星载 FPGA 的功耗必须严格控制,通常通过导热硅胶、热管、散热板将热量传导至卫星结构。功耗每增加 1W,都可能需要额外的散热设计与电源设计,因此功耗优化是星载 FPGA 设计的核心指标之一。
2.4 其他环境因素
- 振动与冲击:发射阶段的力学环境,要求器件与焊点具备高可靠性(通常需要宇航级筛选与加固封装);
- 真空放电:高压电路在真空中可能发生放电,需要做真空灌封或间距设计;
- 原子氧:低轨(200~600 km)环境中原子氧会腐蚀材料,需表面防护;
- 空间碎片与微流星体:机械防护设计。
3. FPGA 器件类型与星载选型
3.1 FPGA 的基本架构
现代 FPGA 通常包含以下资源:
- 可编程逻辑单元(CLB/LE/LUT):实现组合逻辑与时序逻辑,主流器件采用 4~6 输入查找表(LUT)结构;
- 触发器(FF):与 LUT 配对实现时序逻辑;
- 块存储器(BRAM/URAM):片上大容量存储,用于缓存、FIFO、查找表;
- DSP 切片(DSP48/DSP58):硬件乘法累加单元,用于信号处理;
- 时钟管理单元(MMCM/PLL):时钟生成、分频、倍频、相位调整;
- 高速收发器(SerDes/GT):Gbps 级串行接口,用于高速数据链路;
- I/O 资源:支持 LVDS、LVCMOS、SSTL 等多种电平标准;
- 硬核处理器(可选):如 Xilinx Zynq 的 ARM Cortex-A9/A53、Microchip PolarFire SoC 的 RISC-V 集群;
- 配置存储器接口:用于加载配置比特流。
3.2 按配置存储技术分类
FPGA 按配置存储技术可分为三类,这对星载选型至关重要:
| 类型 | 代表产品 | 配置存储 | 抗辐射特性 | 星载适用性 |
|---|---|---|---|---|
| SRAM 型 | Xilinx Virtex/Kintex、Microchip RT 系列 | 易失性 SRAM | 配置存储器易 SEU,需刷新 | 主流星载方案,需配合刷新与 TMR |
| Flash 型 | Microchip ProASIC3/RT ProASIC3、PolarFire | 非易失 Flash | 配置存储器天然抗 SEU | 高可靠场景优选,无需配置刷新 |
| 反熔丝型 | Microchip RTAX-S/RTAX-DSP | 一次性可编程 | 极高抗辐射,无 SEU | 长寿命、高可靠任务,不可重构 |
SRAM 型 FPGA 灵活性最高、资源最丰富,但配置存储器对 SEU 敏感,必须设计配置刷新(Scrubbing) 机制。Flash 型 FPGA 配置存储器天然抗辐射,上电即工作,无需外部配置存储器,适合对可靠性要求极高、资源需求中等的场景。反熔丝型 FPGA 抗辐射能力最强(TID 可达 300 krad(Si) 以上,几乎无 SEU),但只能编程一次,无法在轨重构,适合长寿命、功能固定的任务。
3.3 主流星载 FPGA 产品
(1)Xilinx(AMD)宇航级产品线
- Virtex-5QV(XQR5VFX130):目前应用最广的高端宇航级 FPGA 之一,采用 65nm 工艺,约 13 万个逻辑单元,内置 PowerPC 440 处理器,TID 耐受约 700 krad(Si)(部分资料标称 1 Mrad),配置存储器做了加固设计,SEL 免疫。广泛用于通信、遥感、导航卫星。
- Kintex-7 / Virtex-7 的宇航筛选版本:通过"upscreening"(升级筛选)将商用器件筛选为宇航可用,成本低于专用宇航级器件,但需要额外的 TMR 与刷新设计。
- Zynq-7000 宇航版本(XQ7Z020 等):集成 ARM 处理器 + FPGA 逻辑,适合软件定义卫星与星上处理。
- Versal 系列:新一代自适应计算平台,集成 AI 引擎(AI Engine),是未来星载 AI 的重要候选,目前宇航级版本正在推进中。
(2)Microchip(原 Microsemi)宇航级产品线
- RTG4:Flash 型 FPGA,采用 65nm 工艺,配置存储器天然抗 SEU,TID 耐受约 100 krad(Si),SEL 免疫,无需配置刷新,适合高可靠场景。
- RT ProASIC3:Flash 型,资源较小,适合控制与接口逻辑。
- PolarFire / PolarFire SoC:新一代 Flash 型 FPGA,集成 RISC-V 处理器,具备较好的抗辐射特性,正在进入星载市场。
- RTAX-S / RTAX-DSP:反熔丝型,抗辐射能力极强,适合长寿命任务。
(3)其他厂商
- NanoXplore(法国):基于 28nm FD-SOI 工艺的抗辐射 FPGA,FD-SOI 工艺天然具备较好的抗辐射特性;
- Frontgrade Gaisler(原 Cobham Gaisler):提供 LEON 处理器与相关 IP,常与 FPGA 配合使用;
- 国内厂商:如紫光同创、复旦微电子、京微齐力等,近年来在宇航级 FPGA 领域持续投入,部分产品已通过宇航级认证。
3.4 选型决策要点
星载 FPGA 选型需要综合考虑:
- 抗辐射指标:TID 耐受、SEL 免疫、SEU 翻转率,是否满足任务轨道与寿命要求;
- 资源规模:逻辑单元、BRAM、DSP、高速收发器数量是否满足算法需求;
- 功耗:静态功耗与动态功耗,是否满足热设计约束;
- 封装与可靠性:是否宇航级封装、是否通过 QML-V 等认证;
- 供货与寿命:器件生命周期是否覆盖任务周期,是否有停产风险;
- 开发工具与生态:EDA 工具是否成熟、IP 是否丰富、是否有宇航级设计流程支持;
- 成本:宇航级 FPGA 单价可达数万至数十万美元,需权衡性能与成本。
4. FPGA 在卫星中的典型应用
4.1 通信卫星:基带处理与波束成形
现代通信卫星(尤其是高通量卫星 HTS 与低轨互联网星座)的核心是星上处理(OBP, On-Board Processing),FPGA 在其中承担关键角色:
- 数字波束成形(DBF):相控阵天线需要对数十至数百个阵元信号进行加权合成,FPGA 通过并行乘法累加实现实时波束赋形,支持多波束、波束跳变;
- 信道化与滤波:将宽带信号分解为多个子信道,FPGA 用多相滤波器组(Polyphase Filter Bank)实现高效信道化;
- 调制解调:DVB-S2/S2X、5G NTN 等协议的基带调制解调,FPGA 实现高速 LDPC 编解码、星座映射、脉冲成形;
- 星间链路处理:激光星间链路的数据路由与交换,FPGA 实现低时延转发;
- 频谱监测与干扰抑制:实时检测干扰信号并自适应调整。
以低轨互联网星座为例,单颗卫星可能需要处理数十 Gbps 的下行数据,FPGA 的并行架构使其成为基带处理的理想选择。
4.2 遥感卫星:成像处理与数据压缩
遥感卫星(光学、SAR、高光谱)产生海量数据,星上处理能力直接决定数据回传效率:
- 图像预处理:辐射校正、几何校正、去噪、坏像元修复;
- 图像压缩:CCSDS 122.0(图像数据压缩)、CCSDS 123.0(无损/近无损压缩)标准的硬件实现,FPGA 可实现实时压缩,压缩比 2~4 倍,大幅降低下传数据量;
- SAR 成像处理:合成孔径雷达的脉冲压缩、距离徙动校正、方位压缩,计算量巨大,FPGA 的并行 DSP 阵列可实现实时或准实时成像;
- 目标检测:在轨舰船检测、云检测、火点检测,结合 AI 推理实现"边拍边处理";
- 高光谱数据降维:波段选择、主成分分析(PCA)的硬件加速。
4.3 导航卫星:信号生成与完好性监测
导航卫星(北斗、GPS、Galileo)对信号质量与完好性要求极高:
- 导航信号生成:FPGA 生成高精度扩频码、载波调制,码相位与载波相位精度要求达到纳秒级;
- 星上原子钟信号处理:原子钟信号的分频、驯服、监测;
- 完好性监测:星上自主完好性监测(RAIM 的星上实现),实时检测信号异常;
- 星间链路测距:Ka 波段星间链路的测距与通信一体化处理。
4.4 科学卫星:在轨数据处理
科学卫星(天文、空间物理、深空探测)的探测器往往产生高速数据流,FPGA 用于:
- 探测器读出与触发:高速 ADC 数据采集、事例触发判选;
- 在轨数据压缩与筛选:减少下传数据量,保留科学价值高的数据;
- 实时科学计算:如粒子鉴别、能谱分析、图像重建;
- 深空探测:由于通信时延大、带宽有限,星上自主处理能力尤为关键。
4.5 平台电子:姿轨控与星务管理
除载荷外,FPGA 在卫星平台电子中也广泛应用:
- 姿轨控计算机(AOCS):传感器数据采集(星敏感器、陀螺、太阳敏感器)、控制律计算、执行机构驱动;
- 星务管理:遥测采集、遥控解码、总线管理(CAN、1553B、SpaceWire);
- 电源管理:太阳能电池阵最大功率点跟踪(MPPT)、电池充放电管理;
- 热控:加热器控制、温度采集。
4.6 典型应用对比
| 应用领域 | 核心功能 | FPGA 关键资源 | 典型指标 |
|---|---|---|---|
| 通信基带 | 波束成形、信道化、调制解调 | DSP、BRAM、高速收发器 | 数十 Gbps 处理能力 |
| 遥感成像 | 压缩、校正、SAR 处理 | DSP、BRAM、大容量逻辑 | 实时压缩比 2~4 倍 |
| 导航信号 | 信号生成、完好性监测 | 高精度时钟、逻辑 | 纳秒级相位精度 |
| 科学载荷 | 数据采集、触发、压缩 | 高速 I/O、DSP | 高速数据流处理 |
| 平台电子 | 姿轨控、星务、电源 | 逻辑、接口 | 高可靠、低功耗 |
5. 星载 FPGA 设计流程
星载 FPGA 的设计流程与地面设计大体一致,但在每个环节都增加了可靠性约束。
5.1 需求分析与架构设计
- 明确功能需求、性能指标(吞吐率、时延、精度)、资源预算、功耗预算;
- 确定抗辐射策略(TMR 范围、刷新机制、EDAC 方案);
- 划分软硬件功能(处理器 vs FPGA 逻辑);
- 确定接口标准(SpaceWire、1553B、CAN、LVDS、SerDes)。
5.2 RTL 设计与编码规范
星载 FPGA 的 RTL 设计需要遵循严格的编码规范,核心原则包括:
- 避免异步逻辑:尽量使用同步设计,异步跨时钟域必须使用同步器(两级触发器)或异步 FIFO;
- 避免锁存器:组合逻辑必须完整赋值,避免推断出锁存器;
- 时钟与复位规范:全局时钟网络、异步复位同步释放;
- 状态机安全:使用 one-hot 或 gray 编码,增加非法状态恢复;
- 资源可控:避免隐式推断大容量存储器或乘法器。
5.3 抗辐射设计:TMR 与 EDAC
三模冗余(TMR, Triple Modular Redundancy) 是星载 FPGA 最常用的抗 SEU 手段:将关键逻辑复制三份,通过多数表决器输出,单份翻转不影响结果。
verilog
// 三模冗余表决器示例
module tmr_voter #(parameter WIDTH = 8) (
input wire [WIDTH-1:0] a,
input wire [WIDTH-1:0] b,
input wire [WIDTH-1:0] c,
output wire [WIDTH-1:0] y
);
assign y = (a & b) | (b & c) | (a & c);
endmodule
TMR 的粒度选择很关键:
- 粗粒度 TMR:对整个模块复制三份,资源开销约 3 倍,实现简单;
- 细粒度 TMR:对触发器、寄存器复制,配合表决器,资源开销更大但覆盖更全;
- 局部 TMR:只对关键路径(状态机、控制逻辑、关键数据通路)做 TMR,平衡资源与可靠性。
Xilinx 提供 TMR Tool (早期)与 Vivado 的 TMR 流程(通过第三方工具如 Synopsys Synplify Premier 的 TMR 功能),可自动插入 TMR 逻辑。Microchip 的 Libero 工具也提供 TMR 支持。
纠错编码(EDAC) 用于保护存储器:
- BRAM 的 SECDED:单比特纠错、双比特检错,Xilinx 的 BRAM 支持内置 ECC;
- 外部存储器的 EDAC:对 SRAM、SDRAM、Flash 数据做汉明码或 RS 码保护;
- 配置存储器的 CRC 校验:定期回读配置存储器,与黄金比特流比对,发现翻转后局部修复。
下面用一张流程图概括星载 FPGA 抗辐射设计的决策路径:
#mermaid-svg-BCZt528tfNfAhgX1{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-BCZt528tfNfAhgX1 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-BCZt528tfNfAhgX1 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-BCZt528tfNfAhgX1 .error-icon{fill:#552222;}#mermaid-svg-BCZt528tfNfAhgX1 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BCZt528tfNfAhgX1 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-BCZt528tfNfAhgX1 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BCZt528tfNfAhgX1 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BCZt528tfNfAhgX1 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-BCZt528tfNfAhgX1 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BCZt528tfNfAhgX1 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BCZt528tfNfAhgX1 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BCZt528tfNfAhgX1 .marker.cross{stroke:#333333;}#mermaid-svg-BCZt528tfNfAhgX1 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BCZt528tfNfAhgX1 p{margin:0;}#mermaid-svg-BCZt528tfNfAhgX1 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-BCZt528tfNfAhgX1 .cluster-label text{fill:#333;}#mermaid-svg-BCZt528tfNfAhgX1 .cluster-label span{color:#333;}#mermaid-svg-BCZt528tfNfAhgX1 .cluster-label span p{background-color:transparent;}#mermaid-svg-BCZt528tfNfAhgX1 .label text,#mermaid-svg-BCZt528tfNfAhgX1 span{fill:#333;color:#333;}#mermaid-svg-BCZt528tfNfAhgX1 .node rect,#mermaid-svg-BCZt528tfNfAhgX1 .node circle,#mermaid-svg-BCZt528tfNfAhgX1 .node ellipse,#mermaid-svg-BCZt528tfNfAhgX1 .node polygon,#mermaid-svg-BCZt528tfNfAhgX1 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BCZt528tfNfAhgX1 .rough-node .label text,#mermaid-svg-BCZt528tfNfAhgX1 .node .label text,#mermaid-svg-BCZt528tfNfAhgX1 .image-shape .label,#mermaid-svg-BCZt528tfNfAhgX1 .icon-shape .label{text-anchor:middle;}#mermaid-svg-BCZt528tfNfAhgX1 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-BCZt528tfNfAhgX1 .rough-node .label,#mermaid-svg-BCZt528tfNfAhgX1 .node .label,#mermaid-svg-BCZt528tfNfAhgX1 .image-shape .label,#mermaid-svg-BCZt528tfNfAhgX1 .icon-shape .label{text-align:center;}#mermaid-svg-BCZt528tfNfAhgX1 .node.clickable{cursor:pointer;}#mermaid-svg-BCZt528tfNfAhgX1 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-BCZt528tfNfAhgX1 .arrowheadPath{fill:#333333;}#mermaid-svg-BCZt528tfNfAhgX1 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-BCZt528tfNfAhgX1 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-BCZt528tfNfAhgX1 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BCZt528tfNfAhgX1 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-BCZt528tfNfAhgX1 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BCZt528tfNfAhgX1 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-BCZt528tfNfAhgX1 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-BCZt528tfNfAhgX1 .cluster text{fill:#333;}#mermaid-svg-BCZt528tfNfAhgX1 .cluster span{color:#333;}#mermaid-svg-BCZt528tfNfAhgX1 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-BCZt528tfNfAhgX1 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-BCZt528tfNfAhgX1 rect.text{fill:none;stroke-width:0;}#mermaid-svg-BCZt528tfNfAhgX1 .icon-shape,#mermaid-svg-BCZt528tfNfAhgX1 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BCZt528tfNfAhgX1 .icon-shape p,#mermaid-svg-BCZt528tfNfAhgX1 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-BCZt528tfNfAhgX1 .icon-shape .label rect,#mermaid-svg-BCZt528tfNfAhgX1 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BCZt528tfNfAhgX1 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-BCZt528tfNfAhgX1 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-BCZt528tfNfAhgX1 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 否:非关键/可容忍错误
是
粗粒度:整模块复制
细粒度:触发器/寄存器级
局部:仅关键路径
是:BRAM/外部存储器
否
是:SRAM 型 FPGA
否:Flash/反熔丝型
识别关键逻辑
是否需要 TMR
是否需要 EDAC
选择 TMR 粒度
插入 TMR 与多数表决器
加入 SECDED / 汉明码 / CRC
是否需要配置刷新
设计 Scrubbing 与 SEM IP
辐射测试验证
故障注入与在轨验证
- 不做 TMR 的分支:适用于非关键的数据通路、可容忍短暂错误的显示/遥测逻辑,资源开销接近 0,但必须配合 EDAC 或上层重传机制兜底。
- 粗粒度 TMR:适合控制状态机、总线接口等模块级逻辑,资源开销约 3 倍,实现简单、验证成本低。
- 细粒度 TMR:适合寄存器密集、翻转敏感的数据通路,资源开销可达 3~4 倍甚至更高,覆盖最全。
- 局部 TMR:只加固关键路径,资源开销通常为 1.3~2 倍,是资源与可靠性折中的主流选择。
- EDAC 与配置刷新:BRAM/外部存储器 EDAC 开销约 10%~30% 存储与少量逻辑;SRAM 型 FPGA 的 Scrubbing 需额外 5%~15% 逻辑与带宽,Flash/反熔丝型可省去该环节。
5.4 综合、实现与约束
- 综合:将 RTL 转换为门级网表,需注意综合工具对 TMR 的支持;
- 布局布线 :星载设计需关注布局布线对 SEU 的影响,避免关键逻辑过于集中;
- 时序约束:全温度范围 STA,通常需要在 -55℃、+25℃、+125℃ 三个角点验证;
- 物理约束:I/O 分配、时钟区域划分、局部重构区域(PR Region)划分。
5.5 验证与仿真
星载 FPGA 验证要求极高,通常包括:
- 功能仿真:RTL 级仿真,覆盖率要求通常 >95%;
- 门级仿真:带时序信息的后仿真;
- 故障注入仿真:模拟 SEU,验证 TMR 与刷新机制的有效性;
- 形式验证:对关键模块做等价性验证;
- 硬件在环(HIL)测试:与真实接口设备联调。
5.6 辐射测试与鉴定
- TID 测试:在钴-60 源或质子加速器上做总剂量辐照,验证器件耐受能力;
- SEE 测试:在重离子加速器(如国内 HI-13、兰州重离子加速器)或质子源上做单粒子测试,测量 SEL、SEU、SEFI 截面;
- 激光测试:用脉冲激光模拟单粒子效应,定位敏感区域;
- 鉴定试验:按 QML-V 或 ESA 标准做鉴定,形成飞行件。
6. 可靠性保障技术
6.1 配置存储器刷新(Scrubbing)
对 SRAM 型 FPGA,配置存储器 SEU 是最主要的失效模式,必须设计刷新机制:
- 外部刷新:由外部处理器(如抗辐射 MCU 或反熔丝 FPGA)定期读取配置存储器,与黄金比特流比对,发现错误后回写正确数据;
- 内部刷新(SEM IP) :Xilinx 提供 SEM(Soft Error Mitigation)IP,可在 FPGA 内部实现配置存储器的持续扫描、纠错与报告,支持 CRC 校验与纠错;
- 刷新周期:需根据 SER 与任务可靠性要求计算,典型刷新周期为数十毫秒至数秒;
- 盲刷新 vs 回读刷新:盲刷新直接周期性重写全部配置(简单但占用带宽),回读刷新先比对再修复(复杂但高效)。
6.2 看门狗与复位管理
- 看门狗定时器:监测 FPGA 运行状态,超时则触发复位或重配置;
- 多级复位:上电复位、看门狗复位、指令复位分级管理;
- 复位同步释放:避免复位释放时的亚稳态。
6.3 存储器保护
- BRAM ECC:内置 SECDED,单比特纠错、双比特检错;
- 外部存储器 EDAC:对 SRAM/SDRAM 数据做汉明码保护;
- FIFO 保护:增加空满标志的冗余校验,防止指针翻转导致数据错乱。
6.4 时钟与复位可靠性
- 时钟监测:监测时钟丢失、频率异常,切换备份时钟;
- PLL 失锁检测:监测 PLL 锁定状态,失锁时切换或复位;
- 复位毛刺过滤:复位信号增加滤波,防止噪声误触发。
6.5 空间环境下的 SEL 防护
- 限流保护:电源输入端增加限流电路,SEL 发生时限制电流,防止烧毁;
- 过流检测与断电重启:检测到异常大电流时切断电源并重启;
- 器件选型:优先选择 SEL 免疫的器件(如深阱工艺、外延衬底工艺)。
7. 在轨重构技术
在轨重构(In-Orbit Reconfiguration)是 FPGA 相对 ASIC 的核心优势之一,允许卫星在轨更新功能、修复缺陷、适应新任务。
7.1 重构类型
- 全重构(Full Reconfiguration):重新加载整个比特流,功能完全替换,简单但中断时间长;
- 局部动态重构(Partial Reconfiguration, PR):只重配置部分区域,其他区域继续运行,实现"不停机升级";
- 多比特流切换(Multi-boot):存储多个比特流,按需切换(如正常模式/安全模式)。
7.2 局部动态重构的实现
Xilinx 的 Partial Reconfiguration 流程支持将 FPGA 划分为静态区域(Static Region)与可重构区域(Reconfigurable Partition),可重构区域可在运行时加载不同功能模块。
tcl
# Vivado 局部重构流程示例(简化)
# 1. 创建工程与静态设计
create_project pr_demo ./pr_demo -part xc7vx690tffg1761-2
# 2. 定义可重构区域
create_pblock rp_region
add_cells_to_pblock rp_region [get_cells rp_inst]
resize_pblock rp_region -add {SLICE_X0Y0:SLICE_X20Y20}
# 3. 设置 HD.RECONFIGURABLE 属性
set_property HD.RECONFIGURABLE true [get_cells rp_inst]
# 4. 综合实现静态设计与各重构模块
# 5. 生成各配置的比特流与部分比特流
局部重构的工程挑战包括:
- 区域划分:可重构区域的大小、位置需提前规划,资源需满足所有重构模块;
- 接口一致性:可重构模块与静态区域的接口必须保持一致;
- 时序收敛:每个重构模块都需独立时序收敛;
- 比特流管理:多个部分比特流的存储、校验、加载。
7.3 在轨重构的工程实践
- 双区备份(Golden Image + Update Image):存储黄金比特流与更新比特流,更新失败可回退;
- 比特流校验:加载前做 CRC 校验,防止比特流损坏;
- 安全加载:加载过程加看门狗,超时回退;
- 地面验证:在轨重构前必须在地面充分验证,包括故障注入测试;
- 测控窗口:重构通常安排在测控可见窗口内,便于监控与回退。
8. 星上 AI 与 FPGA 加速
近年来,星上 AI(On-Board AI)成为热点,FPGA 因其可重构、低功耗、确定性时延的特点,成为星上 AI 推理的重要平台。
8.1 星上 AI 的应用场景
- 遥感图像目标检测:舰船、飞机、车辆、建筑物检测,实现"边拍边处理",只下传有价值数据;
- 云检测与图像筛选:剔除云覆盖图像,提高数据回传效率;
- 变化检测:对比多时相图像,检测地表变化;
- 异常检测:卫星健康监测、故障预警;
- 自主导航:深空探测的自主避障、地形相对导航。
8.2 FPGA 实现 AI 推理的优势
- 确定性时延:硬件流水线保证推理时延确定,适合实时任务;
- 低功耗:相比 GPU,FPGA 在同等算力下功耗更低;
- 可重构:可在轨更新模型与加速器;
- 抗辐射:可通过 TMR 保护关键路径。
8.3 典型实现方案
- CNN 加速器:将卷积、池化、全连接层映射为 FPGA 流水线,使用 DSP 做乘累加,BRAM 缓存特征图;
- 量化与剪枝:将模型量化为 INT8/INT4,减少资源占用;
- 模型压缩:知识蒸馏、剪枝,适配星载资源约束;
- 异构架构:FPGA + 处理器协同,处理器做调度,FPGA 做加速。
verilog
// 简化的卷积计算单元(3x3 卷积,单通道)
module conv3x3 #(parameter WIDTH = 8) (
input wire clk,
input wire [WIDTH-1:0] pixel_in,
input wire [WIDTH*9-1:0] kernel,
output reg [WIDTH*2+3:0] result
);
// 行缓冲与窗口寄存器
reg [WIDTH-1:0] line_buf [0:2][0:2];
integer i, j;
always @(posedge clk) begin
// 移位更新窗口
for (i = 0; i < 3; i = i + 1)
for (j = 2; j > 0; j = j - 1)
line_buf[i][j] <= line_buf[i][j-1];
line_buf[0][0] <= pixel_in;
// 乘累加
result <= 0;
for (i = 0; i < 3; i = i + 1)
for (j = 0; j < 3; j = j + 1)
result <= result + line_buf[i][j] * kernel[(i*3+j)*WIDTH +: WIDTH];
end
endmodule
8.4 星上 AI 的挑战
- 模型可靠性:SEU 可能导致权重翻转,需对权重做 TMR 或 ECC 保护;
- 算力约束:星载 FPGA 资源有限,需模型压缩与硬件协同优化;
- 可解释性:星上 AI 决策需可追溯,便于地面复核;
- 在轨更新:模型更新需与在轨重构流程结合。
9. 工程实践与案例分析
9.1 案例一:遥感卫星图像压缩系统
某光学遥感卫星需要将 4 路 10 Gbps 的图像数据实时压缩后下传。设计方案:
- 前端采集:4 路高速 LVDS 接口,FPGA 做数据对齐与缓存;
- 压缩算法:CCSDS 122.0 标准的离散小波变换(DWT)+ 位平面编码;
- FPGA 实现:DWT 用多级流水线,位平面编码用并行处理,单芯片实现 4 路实时压缩;
- 可靠性:关键控制逻辑 TMR,BRAM 用 ECC,配置存储器用 SEM IP 刷新;
- 功耗:约 15W,通过导热板散热。
9.2 案例二:通信卫星数字波束成形
某高通量卫星需要支持 64 个阵元的数字波束成形,形成 16 个可切换波束。设计方案:
- 阵元信号采集:64 路 ADC 数据经高速 SerDes 进入 FPGA;
- 波束赋形:64×16 复数加权矩阵,FPGA 用 DSP 阵列并行计算;
- 信道化:多相滤波器组实现 8 个子信道;
- 可靠性:波束权重寄存器 TMR,配置刷新,看门狗;
- 性能:单 FPGA 实现 64 阵元实时波束赋形,处理带宽 500 MHz。
9.3 案例三:星上 AI 舰船检测
某海洋监视卫星需要在轨检测舰船目标。设计方案:
- 模型:轻量化 YOLO 变体,INT8 量化,模型大小约 2 MB;
- FPGA 加速:卷积层用 DSP 阵列,池化与激活用逻辑实现,流水线并行;
- 性能:单帧 1024×1024 图像推理时间约 50 ms,功耗约 8W;
- 可靠性:权重存储用 ECC,关键控制 TMR,支持模型在轨更新。
9.4 工程经验总结
- 早期介入:抗辐射设计应在架构阶段就考虑,后期补救成本高;
- 资源预留:TMR 与刷新会占用额外资源,需预留 30%~50% 余量;
- 验证充分:故障注入、辐射测试、在轨验证缺一不可;
- 文档完备:设计文档、测试报告、在轨日志需完整保存,便于问题追溯。
10. 发展趋势与展望
10.1 器件层面
- 先进工艺与抗辐射:28nm FD-SOI、16nm FinFET 等先进工艺逐步进入宇航领域,FD-SOI 天然抗辐射特性受到关注;
- 异构集成:FPGA + 处理器 + AI 引擎的异构 SoC(如 Versal、PolarFire SoC)成为趋势;
- Chiplet 与先进封装:通过 Chiplet 集成不同工艺的芯粒,提升性能与可靠性;
- 国产化:国内宇航级 FPGA 持续突破,逐步实现自主可控。
10.2 架构层面
- 软件定义卫星:通过 FPGA 在轨重构实现功能软件化,卫星在轨可"变身";
- 星上边缘计算:FPGA 作为星上边缘计算节点,与星间链路、地面云协同;
- AI 原生架构:面向 AI 推理优化的星载 FPGA 架构,支持稀疏计算、混合精度。
10.3 设计方法层面
- 高层次综合(HLS):用 C/C++ 描述算法,自动生成 RTL,提升开发效率;
- 自动化 TMR:工具链自动插入 TMR,减少人工错误;
- 形式化验证:对关键模块做形式化验证,提升可靠性;
- 数字孪生:地面数字孪生模型与在轨卫星同步,实现在轨健康管理。
10.4 应用层面
- 低轨巨型星座:数万颗卫星的批量化生产,对 FPGA 的成本、功耗、可靠性提出新要求;
- 深空探测:自主导航、在轨科学处理需求增长;
- 空间态势感知:在轨目标检测与跟踪;
- 太空计算:空间数据中心、在轨云计算。
11. 总结
FPGA 凭借其硬件并行、可重构、低功耗、可加固的特性,成为现代卫星电子系统的核心器件。从通信基带、遥感成像、导航信号到科学载荷与平台电子,FPGA 无处不在;从抗辐射设计、配置刷新、TMR 到在轨重构,星载 FPGA 的工程实践形成了一套完整的方法论。
面向未来,随着先进工艺、异构集成、星上 AI、软件定义卫星的发展,FPGA 在卫星中的角色将从"接口与胶合逻辑"升级为"星载计算的核心引擎"。对于工程师而言,掌握空间环境约束、抗辐射设计方法、在轨重构流程与 AI 加速技术,是进入这一领域的关键。
星载 FPGA 的设计没有"银弹",只有对每一个细节的严谨把控:从器件选型的辐射指标,到 RTL 编码的每一行代码,从刷新周期的计算,到在轨重构的回退策略。正是这些细节,支撑着卫星在太空中数年乃至十余年的可靠运行。
12. 参考资料与延伸阅读
- Xilinx (AMD), Virtex-5QV FPGA Data Sheet: Radiation-Hardened by Design, DS692.
- Xilinx (AMD), Soft Error Mitigation Controller LogiCORE IP Product Guide, PG036.
- Xilinx (AMD), Vivado Design Suite User Guide: Dynamic Function eXchange, UG909.
- Microchip, RTG4 FPGA Data Sheet: Radiation-Tolerant Flash FPGA.
- Microchip, RTAX-S/SL and RTAX-DSP Radiation-Tolerant FPGAs Data Sheet.
- NASA, Space Radiation Effects on Electronic Systems, NASA-HDBK-4002.
- ECSS, Space Engineering: Space Environment, ECSS-E-ST-10-04C.
- CCSDS, Image Data Compression, CCSDS 122.0-B-2.
- CCSDS, Low-Complexity Lossless and Near-Lossless Multispectral and Hyperspectral Image Compression, CCSDS 123.0-B-2.
- 王长龙等,《星载 FPGA 抗辐射设计与验证》,航天器工程。
- 李华等,《FPGA 在卫星通信中的应用与发展》,空间电子技术。
- 张伟等,《星上智能处理技术综述》,宇航学报。