Lattice FPGA烧录实战指南:从SRAM到Flash的完整避坑手册
第一次把玩Lattice FPGA开发板时,我盯着Diamond软件里那个"SRAM Fast Program"按钮犹豫了整整十分钟——这看起来是最显眼的烧录选项,但直觉告诉我事情没这么简单。果然,按下按钮后程序运行正常,可一旦断电重启,所有配置就像被施了魔法般消失无踪。这种"薛定谔的烧录"状态,相信每个FPGA新手都经历过。
1. 烧录模式:易失与非易失的本质区别
FPGA的配置存储就像人类的记忆机制,分为短期记忆和长期记忆两种形态。SRAM模式相当于短期记忆,数据会随着断电(睡眠)而消失;Flash模式则是将信息刻进长期记忆,即使断电也能保持。Lattice FPGA内部其实包含两个存储单元:
| 存储类型 | 保持特性 | 典型用途 | 对应文件格式 | 烧录耗时 |
|---|---|---|---|---|
| SRAM | 易失性 | 调试阶段快速迭代 | .bit | 3-5秒 |
| Flash | 非易失性 | 产品最终固化 | .jed | 20-30秒 |
关键提示:使用MachXO2系列时,Flash烧录前必须执行擦除操作,这与SRAM直接覆盖写入的特性截然不同
在Diamond Programmer界面中,这两种模式的操作路径有着微妙差异:
- SRAM模式:Operation → Static RAM Cell Mode → SRAM Fast Program
- Flash模式:Operation → Flash Programming Mode → Flash Erase → Program → Verify
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 正确烧录流程:以MachXO3LF-6900为例
2.1 硬件准备检查清单
- 确认开发板供电电压与JTAG接口电平匹配(常见3.3V)
- 使用优质USB-Blaster下载器,劣质线缆可能导致时钟抖动
- 检查JTAG链中所有器件的VCCINT电压(特别是多芯片场景)
bash复制# 在Linux下检测JTAG链
