2. Lattice FPGA器件架构与安全特性概览

Lattice FPGA的产品线跨度很大,从超低功耗的iCE40到面向PCIe与高速接口的Certus/Nexus,再到主打视频桥接的CrossLink,以及长期用于系统管理、电源时序与安全启动的MachXO系列。它们并不是同一颗芯片的不同封装,而是在可编程逻辑规模、配置存储器类型、硬核资源、安全模块和访问机制上做了不同的取舍。理解这些差异,是后续做安全控制与可靠性设计的前提:同一套“加密配置+身份认证”的思路,在不同系列上可能落在不同的硬件模块上,访问路径和密钥存放位置也完全不同。

一、主流系列的架构定位与配置存储器

从配置存储器看,Lattice FPGA大致分为两类。iCE40、CrossLink、MachXO2/3、Certus等属于SRAM型FPGA,配置数据在每次上电后从外部非易失存储器(常见为SPI Flash)加载到片内SRAM,掉电即丢失;而MachXO的早期型号(如MachXO1)以及部分平台采用片内Flash配置,属于非易失型FPGA,上电即工作,不需要外部配置器件。这一区别直接决定了安全设计的边界:SRAM型必须考虑外部配置比特流的机密性与完整性,非易失型则更关注片内Flash的读写保护与回读限制。

iCE40系列以极低静态功耗和小封装著称,逻辑规模通常在1K~8K LUT量级,配置接口主要是SPI从模式,支持从外部Flash主动加载。它的安全资源相对精简,早期型号甚至没有硬核AES,配置比特流的保护更多依赖外部Flash的读保护与器件本身的配置访问限制。CrossLink系列在iCE40基础上增加了高速SerDes和视频接口硬核,面向MIPI、LVDS等桥接场景,配置方式类似,但增加了对高速接口的时钟与数据通道管理。Certus-Nexus系列则明显向“安全+可靠”倾斜,片内集成了配置引擎、双配置镜像、SEU(单粒子翻转)检测与纠错、以及硬核加密模块,支持加密比特流和认证启动,适合对启动可信度要求较高的场合。

MachXO系列是系统管理领域的常青树,MachXO2/3在片内集成了用户Flash、配置Flash和硬核I2C/SPI接口,支持双启动(Dual Boot)和Golden/Update镜像机制。它的安全特性包括Flash访问保护、配置比特流加密(部分型号支持AES)、以及通过硬核接口实现的远程更新。MachXO3D进一步加入了硬件信任根(Hardware Root of Trust)和基于ECDSA的身份认证,可以在系统启动前验证配置镜像的签名,这是Lattice在安全启动方向上的重要一步。

Lattice FPGA 配置存储与安全访问路径对比 SRAM 型:iCE40 / CrossLink / Certus / MachXO2-3 外部 SPI Flash 配置比特流 / 密钥 读保护 / 扇区锁 配置引擎 SPI 主/从模式 比特流解密/校验 加载 片内配置 SRAM 掉电丢失 需每次上电重载 安全模块 AES 解密(部分型号) SEU 检测/纠错 用户可编程逻辑 LUT / 寄存器 / 硬核 关键访问机制 上电 → 配置引擎读 Flash → 解密/校验 → 写入 SRAM → 启动 安全边界:Flash 读保护 + 比特流加密 + 配置访问限制 非易失型:MachXO1 / MachXO3D 等 片内配置 Flash Golden / Update 双镜像 上电即工作 硬件信任根 ECDSA 签名验证 安全启动 配置控制逻辑 Flash 访问保护 回读限制 / 双启动 用户可编程逻辑 LUT / 寄存器 / 硬核 关键访问机制 上电 → 信任根验签 → 选择 Golden/Update → 加载 → 启动 安全边界:片内 Flash 锁 + 签名验证 + 回读禁止 外部依赖强,需保护 Flash 与加载链路 片内闭环,信任根在芯片内部

二、安全相关硬件模块与访问机制

把上述系列放在一起看,安全硬件模块可以归为四类。第一类是配置比特流保护:Certus-Nexus和MachXO3D支持AES加密比特流,密钥可以存放在片内一次性可编程(OTP)区域或由外部安全器件提供。第二类是身份认证与安全启动:MachXO3D的硬件信任根在启动时用ECDSA验证配置镜像签名,验证不通过则拒绝加载,这比单纯加密更进一步,能防止恶意镜像替换。第三类是SEU检测与纠错:Certus-Nexus等型号在配置SRAM中加入了ECC,能检测并纠正单比特翻转,同时通过专用引脚或寄存器上报错误状态,这对高可靠场景很关键。第四类是访问控制:包括Flash读保护、配置端口禁用、JTAG锁定、以及回读禁止,目的是防止攻击者通过调试接口或配置接口读出比特流或密钥。

访问机制上,SRAM型器件的启动链路是“外部Flash → 配置引擎 → 片内SRAM”,因此攻击面主要在外部的SPI总线和Flash本身。如果Flash没有读保护,攻击者可以直接读出比特流;如果SPI总线没有加密,中间人可以在加载过程中篡改数据。非易失型器件的启动链路是“片内Flash → 配置控制 → 用户逻辑”,攻击面转向片内Flash的读写接口和调试端口。MachXO3D的信任根在芯片内部,签名验证发生在配置加载之前,因此即使外部Flash被替换,只要签名不匹配就无法启动。

做安全设计时,先确认目标器件属于SRAM型还是非易失型,再确认它是否带硬核加密和信任根。没有硬核信任根的型号,可以通过外部安全芯片或MCU配合实现签名验证,但启动链会变长,需要额外考虑时序和故障切换。

三、选型时的安全与可靠性权衡

如果应用只需要防止比特流被直接复制,iCE40或CrossLink配合带读保护的SPI Flash就能满足,成本低、功耗小。如果需要远程更新且不能变砖,MachXO2/3的双启动机制更合适:Golden镜像保持出厂版本,Update镜像用于升级,升级失败自动回退。如果系统要求启动可信、能抵抗恶意固件,MachXO3D或Certus-Nexus的签名验证和加密比特流是更直接的选择。如果应用处于高辐射环境,Certus-Nexus的SEU纠错和错误上报能显著提升长期可靠性。