2. Lattice FPGA器件选型与开发环境搭建
Lattice FPGA 在工业控制与实时接口系统中的优势,很大程度来自“器件定位清晰、工具链轻量、功耗与成本可控”。但这也意味着选型不能只看逻辑单元数量,而要把接口类型、SerDes 需求、封装、功耗、温度等级和工具链支持一起考虑。Lattice 目前常用的三条主线是 MachXO、ECP5 和 CrossLink,它们分别面向控制与桥接、通用逻辑与高速接口、视频与高速差分链路。
2.1 三条产品线的定位差异
MachXO 系列(如 MachXO2、MachXO3、MachXO3D)以非易失配置、瞬时启动和低功耗见长,适合做上电即用的控制逻辑、电源时序、GPIO 扩展、总线桥接和系统监控。MachXO3D 还集成了安全配置与双启动机制,适合对固件保护有要求的工业设备。它的逻辑规模通常不大,但胜在稳定、低静态功耗和丰富的 I/O 电平支持。
ECP5 系列面向更高逻辑密度和高速接口,带有 SerDes 通道,适合工业以太网、EtherCAT、PCIe 桥接、图像采集和实时控制算法。ECP5 的 LUT 规模从约 12K 到 85K 不等,部分型号支持 270 Mbps 到 3.2 Gbps 的 SerDes,适合需要多路高速差分链路的场景。它的配置方式较灵活,可用外部 SPI Flash 启动,也支持从主机加载。
CrossLink 系列主要面向视频与高速差分接口,内置 MIPI D-PHY 等硬核,适合摄像头桥接、显示接口转换、工业相机和低功耗视频链路。它不追求大逻辑规模,而是把高速串行接口和低功耗做到极致。
选型时可以先问三个问题:第一,系统是否需要 SerDes 或 MIPI 这类硬核接口;第二,逻辑规模和 I/O 数量是否足够;第三,是否要求非易失、瞬时启动或安全配置。若只是做电源时序和低速总线桥接,MachXO 往往更合适;若需要高速接口和较大逻辑,ECP5 更合适;若核心任务是视频差分链路,CrossLink 更直接。
2.2 Diamond 与 Radiant 工具链的选择
Lattice 的工具链分为 Diamond 和 Radiant 两条线。Diamond 是较早期的统一平台,支持 MachXO2、MachXO3、ECP5 等器件,界面成熟、资料多,适合维护既有工程。Radiant 是新一代工具,主要支持 MachXO3D、CrossLink、ECP5 的部分新器件以及后续产品,流程更现代,综合与布局布线效率更好,也更容易与新版 IP 配合。
实际选择时,先确认目标器件在哪个工具链的支持列表中。例如 MachXO3D 和 CrossLink 通常要用 Radiant;MachXO2 和早期 MachXO3 多用 Diamond;ECP5 在两者中都有支持,但新工程建议优先用 Radiant。若团队已有 Diamond 工程和脚本,迁移前要评估 IP 核、约束文件和烧录流程的兼容性。
2.3 安装与授权
安装前先确认操作系统版本,Diamond 和 Radiant 对 Windows 与 Linux 的支持范围不同。以 Windows 为例,建议使用官方推荐的 Win10/Win11 64 位版本,关闭杀毒软件对安装目录的实时扫描,避免综合阶段误报。安装包通常包含主程序、器件库和编程器驱动,安装路径不要带中文和空格。
授权方面,Lattice 提供免费的许可证文件,需要在官网申请后导入。Diamond 在 Help → Lattice License Manager 中加载 .lic 文件;Radiant 在启动时选择许可证或通过环境变量 LM_LICENSE_FILE 指定。若只做小规模器件开发,免费授权通常够用;若使用某些高速 IP 或大器件,需要确认授权是否覆盖。
2.4 工程创建与烧录流程
以 Radiant 为例,新建工程时依次选择器件系列、具体型号、封装、速度等级和温度等级。工业控制场景建议优先选工业级温度范围(-40℃~+100℃ 结温),并确认封装与 PCB 一致。工程创建后,添加 Verilog/VHDL 源文件、约束文件(.ldc)和 IP 核。
约束文件至少包含时钟定义、引脚分配和时序例外。例如:
create_clock -name clk_50m -period 20 [get_ports clk_50m]
ldc_set_location -site {P3} [get_ports {led[0]}]
ldc_set_location -site {P4} [get_ports {led[1]}]
综合与布局布线完成后,查看时序报告中的建立时间和保持时间是否为正裕量。若时序不满足,先检查时钟约束是否完整,再考虑流水线或降低逻辑级数。生成比特流后,用 Programmer 工具连接下载器。Lattice 常用下载器为 HW-USBN-2B 或 FTDI 方案,接口为 JTAG。烧录到外部 SPI Flash 时,选择 External Flash 模式并指定 .bin 或 .mcs 文件;烧录到内部配置存储器时,选择对应器件模式。
2.5 一个可执行的选型与搭建检查清单
| 检查项 | 判断依据 | 示例 |
|---|---|---|
| 硬核接口 | 是否需要 SerDes / MIPI / PCIe | 视频链路选 CrossLink,以太网选 ECP5 |
| 逻辑与 I/O | LUT、寄存器、I/O 数量是否留 20% 余量 | 控制逻辑 3K LUT 可选 MachXO3 |
| 配置方式 | 是否需要瞬时启动或安全启动 | 上电即用选 MachXO,安全启动选 MachXO3D |
| 温度等级 | 工业现场是否要求 -40℃ 起 | 选 I 级或工业级型号 |
| 工具链 | 器件是否在 Diamond / Radiant 支持列表 | CrossLink 用 Radiant |
| 授权 | 许可证是否覆盖目标器件与 IP | 导入 .lic 后确认无红色告警 |
| 烧录 | JTAG 与 Flash 两种模式是否都验证 | 先 JTAG 验证,再写外部 SPI Flash |
完成以上步骤后,建议保留一份工程模板:固定器件型号、约束文件框架、烧录脚本和版本记录。这样后续做同类工业控制项目时,可以直接复制模板,把精力放在接口逻辑和实时性验证上,而不是重复搭建环境。