3. 开发工具链入门
Lattice Avant 系列 FPGA 的官方开发环境是 Lattice Radiant。与早期 ispLEVER 或 Diamond 不同,Radiant 采用统一的工程数据库与基于 Tcl 的脚本化流程,把综合、映射、布局布线、时序分析和比特流生成整合在同一界面下。本节围绕“装得上、建得起、约束得住、跑得通”四个目标,梳理从安装授权到生成比特流的完整入门路径。
一、安装与授权
Radiant 的安装包按器件系列区分,Avant 器件需要选择支持 Avant-E/Avant-X 的版本(例如 2023.2 及以后版本)。安装时建议勾选“Standalone”模式,避免与已安装的 Diamond 冲突。安装完成后首次启动会弹出 License 配置向导,Lattice 提供两种授权方式:
- Node-Locked 授权:绑定单机网卡 MAC 地址,适合个人开发机。申请时需在 Lattice 官网提交 MAC 地址,获得
license.dat后通过Environment → License Setup指向该文件。 - Floating 授权:由 License Server 统一分发,适合团队。客户端只需在环境变量
LM_LICENSE_FILE中填写端口@服务器IP,例如27000@192.168.1.20。
授权生效后,可在 Help → About 中确认 Avant 器件是否处于“Licensed”状态。若显示为灰色,说明授权未覆盖该器件,需要重新申请或检查 MAC 是否写错。
二、项目创建流程
Radiant 的项目以 .rdf 工程文件为核心,配套目录包括 src(源码)、constraint(约束)、impl(实现结果)和 sim(仿真)。创建流程如下:
- 启动
File → New → Project,填写工程名与路径,路径中避免中文和空格。 - 选择器件:Avant 系列需指定具体型号,例如
LAV-AT-E70-3LFG1156C,其中E70表示逻辑规模,3为速度等级,LFG1156为封装,C为商用温度等级。 - 添加源文件:支持 Verilog、VHDL 和 SystemVerilog。若使用 IP,可通过
IP Catalog生成并自动加入工程。 - 指定顶层模块:在
Project → Active Implementation → Top Module中设置,否则综合会报“no top module”。
constraint 目录纳入版本管理,后续所有引脚与时序约束都放在该目录下,便于团队协作。三、设计约束文件
Radiant 使用 .ldc(Lattice Design Constraints)文件描述引脚分配、时序要求和电气属性。它本质上是 Tcl 语法的约束脚本,常用命令包括:
# 引脚约束
ldc_set_port -iobuf {LOCATION=K5 IO_TYPE=LVCMOS33} clk_50m
ldc_set_port -iobuf {LOCATION=J6 IO_TYPE=LVCMOS33} rst_n
# 时序约束
create_clock -name sys_clk -period 20 [get_ports clk_50m]
set_input_delay -clock sys_clk 3 [get_ports data_in]
set_output_delay -clock sys_clk 4 [get_ports data_out]
# 伪路径
set_false_path -from [get_ports rst_n]
其中 create_clock -period 20 表示 50 MHz 时钟,周期 20 ns。引脚约束必须与原理图一致,否则布局布线阶段会报“LOCATION conflict”。建议先用 Pin Planner 图形化分配,再导出为 .ldc,减少手写错误。
四、综合与布局布线基础
Radiant 的综合引擎为 Synplify Pro,布局布线为 Lattice 自研的 Place & Route。点击 Run All 会依次执行:综合 → 映射 → 布局 → 布线 → 时序分析 → 比特流生成。关键观察点如下:
- 综合报告:关注 LUT、寄存器、EBR 和 DSP 的资源占用率。若超过 80%,需考虑优化代码或更换更大器件。
- 时序报告:在
Timing Analyzer中查看 Setup/Hold 的 WNS(最差负裕量)。WNS 为负表示违例,需通过流水线、降低时钟频率或优化约束解决。 - 布局布线日志:若出现“unrouted nets”,说明布线未完成,通常由引脚冲突或资源拥塞引起。
下面这张图展示了从工程创建到比特流生成的完整数据流与关键检查点,帮助读者建立工具链的整体认知。
完成上述流程后,可在 impl 目录下找到 .bit 文件,通过 Programmer 工具下载到 Avant 开发板。若使用 Avant-E 的硬核 PCIe 或 DDR 控制器,还需在 IP Catalog 中配置对应 IP,并在 .ldc 中补充参考时钟和复位约束。建议每次修改约束后重新运行 Run All,确保时序报告与最终比特流一致。