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在安全启动方向上的重要一步。
二、安全相关硬件模块与访问机制
把上述系列放在一起看,安全硬件模块可以归为四类。第一类是配置比特流保护: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被替换,只要签名不匹配就无法启动。
三、选型时的安全与可靠性权衡
如果应用只需要防止比特流被直接复制,iCE40或CrossLink配合带读保护的SPI Flash就能满足,成本低、功耗小。如果需要远程更新且不能变砖,MachXO2/3的双启动机制更合适:Golden镜像保持出厂版本,Update镜像用于升级,升级失败自动回退。如果系统要求启动可信、能抵抗恶意固件,MachXO3D或Certus-Nexus的签名验证和加密比特流是更直接的选择。如果应用处于高辐射环境,Certus-Nexus的SEU纠错和错误上报能显著提升长期可靠性。