3. 星载FPGA器件与开发流程
星载FPGA的选型与地面商用FPGA有本质区别:空间辐射环境中的单粒子翻转(SEU)、单粒子锁定(SEL)、总剂量效应(TID)会直接改变配置位、逻辑状态甚至烧毁器件。因此,星载FPGA开发流程必须把“抗辐射”作为贯穿选型、配置、综合、时序收敛全过程的约束条件,而不是最后再补的附加项。
一、抗辐射FPGA选型:先看配置存储类型
选型的第一分水岭是配置存储器的物理类型,它决定了器件对SEU的敏感程度和刷新策略。
- SRAM型FPGA:配置位存于SRAM,逻辑容量大、可重构性强,但配置位对SEU敏感,必须配合外部配置存储器和定期刷新。典型代表如Xilinx XQR系列、Microsemi RTG4(RTG4为闪存型,此处仅作对比)。
- 反熔丝型FPGA:配置为一次性编程,配置位天然免疫SEU,但不可重构、逻辑规模小,适合小规模、高可靠的固定逻辑。典型如Microsemi AX系列、Actel RTAX系列。
- 闪存型FPGA:配置位存于浮栅,抗SEU能力优于SRAM,但存在总剂量累积导致的阈值漂移,需关注TID指标。典型如Microsemi RTG4、NanoXplore NG-Ultra。
选型时需同时核对以下参数:TID耐受(通常要求≥100 krad(Si))、SEL阈值(LET≥80 MeV·cm²/mg为佳)、SEU翻转率(错误/位/天)、逻辑资源(LUT、DSP、BRAM)、可用I/O数量、封装与功耗。以某低轨遥感载荷为例,若逻辑规模约50万门、需在轨重构,则SRAM型FPGA是合理选择,但必须配套刷新机制;若仅实现固定接口协议且规模小于10万门,反熔丝型可显著降低系统复杂度。
二、配置存储器与刷新机制
SRAM型FPGA上电后需从外部非易失存储器加载配置位流。星载场景中,配置存储器通常选用抗辐射PROM或经过TID筛选的Flash,位流需做CRC校验和回读比对。
刷新机制的核心是“检测—纠正—重载”闭环。常用方案有三类:
- 周期全刷新:按固定周期(如每100 ms)重写全部配置帧。实现简单,但刷新期间逻辑可能短暂中断,需配合“冻结—刷新—恢复”时序。
- 回读比对刷新:通过SelectMAP或JTAG回读配置帧,与黄金位流逐帧比对,仅重写不一致帧。开销小,但需要FPGA支持回读且回读通路本身要抗SEU。
- ECC+局部刷新:在配置帧中嵌入纠错码,单比特错误由ECC自动纠正,双比特错误触发局部重载。Xilinx 7系列及UltraScale均支持FRAME_ECC原语。
三、HDL/高层次综合流程
星载FPGA开发通常采用“HDL为主、HLS为辅”的混合流程。HDL(VHDL/Verilog)用于时序敏感、接口协议、刷新控制等底层逻辑;HLS(C/C++)用于算法密集型模块,如图像滤波、矩阵运算,可显著缩短开发周期。
典型流程如下:
需求分析 → 算法建模(C/MATLAB) → HLS综合(C→RTL)
→ HDL顶层集成 → 功能仿真 → 综合(合成)
→ 实现(布局布线) → 静态时序分析 → 位流生成
→ 配置存储器烧录 → 板级验证 → 辐射试验
HLS使用时需注意:星载环境不推荐使用动态内存分配和复杂指针;循环展开和流水线指令要结合DSP资源评估;生成的RTL需与手写HDL一样通过时序约束和辐射加固检查。例如,一个3×3卷积核在HLS中可用#pragma HLS PIPELINE II=1实现每周期输出一个像素,但需确认DSP48数量不超过器件上限。
四、时序收敛与资源评估方法
时序收敛的目标是满足建立时间(Setup)和保持时间(Hold)约束,并留出辐射导致的路径延迟余量。星载FPGA通常要求时序余量(Slack)不低于正余量的10%~20%,以应对TID引起的延迟漂移。
资源评估分三步:
- 逻辑资源:统计LUT、FF、BRAM、DSP的占用量,建议不超过器件总量的70%,为刷新逻辑和后续修改留余量。
- 布线资源:关注全局时钟资源、时钟区域(Clock Region)和长线占用,避免局部拥塞导致时序恶化。
- 功耗与热:估算动态功耗和静态功耗,结合封装热阻判断结温是否在降额范围内。
时序收敛的常用手段包括:插入流水线寄存器、复制高扇出信号、使用时钟使能代替多路时钟、对跨时钟域路径做同步处理。静态时序分析报告需重点检查WNS(最差负余量)、TNS(总负余量)、WHS(最差保持余量)和THS(总保持余量)。
整个流程中,抗辐射约束不是独立环节,而是渗透在每一步:选型决定刷新策略,刷新逻辑占用逻辑和布线资源,HLS生成的RTL需通过时序收敛验证,时序余量又要为辐射延迟漂移留出空间。实际工程中建议在综合前先做资源预算表,在实现后逐项核对WNS、TNS和资源占用率,任何一项不达标都应回到RTL或约束层面调整,而不是强行生成位流。