2. 开发环境搭建:安装Lattice Diamond或Radiant软件,创建第一个空白工程,熟悉界面布局

好,咱们正式开始动手了。做FPGA开发,第一步就是把吃饭的家伙给装好。Lattice家目前主流的IDE有两款:DiamondRadiant。选哪个?说白了看芯片。

Diamond是老牌工具,支持MachXO、MachXO2、MachXO3、ECP5这些经典系列。Radiant则是新一代,专门为CrossLink、iCE40 UltraPlus、CertusPro-NX这些较新的器件准备的。我个人习惯是两台都装,因为项目里新旧芯片都可能碰到。

核心结论: 如果你的芯片型号带“NX”后缀,或者属于iCE40 UltraPlus系列,请直接装Radiant。其余情况,Diamond更稳妥。

2.1 软件安装要点

安装过程其实不复杂,但有几个坑我得提前跟你说。我曾经在给团队新同事配环境时,发现有人装了三次都报错,最后发现是路径里有中文。嗯,这里要注意:安装路径绝对不能有中文或空格

具体步骤大致如下:

  1. 去Lattice官网下载安装包(需要注册账号,免费)。Diamond大约2-3GB,Radiant稍大一些。
  2. 双击运行安装程序,选择“Full Installation”完整安装。
  3. License选择“Node-Locked”,后续会生成一个license文件。
  4. 安装完成后,打开License Manager,导入你的license.dat文件。

避坑指南: 我曾经遇到过安装完成后,软件死活打不开,提示“无法找到license”。折腾了半天才发现,是杀毒软件把license文件当病毒隔离了。建议安装时暂时关闭杀毒软件,或者把安装目录加入白名单。

2.2 创建第一个空白工程

装好了,咱们来建个空项目。我以Diamond为例演示,Radiant的操作逻辑几乎一样,只是界面配色更现代一些。

打开Diamond,你会看到启动界面。点击 File → New → Project,弹出新建工程向导。这里需要填几个关键信息:

字段 填写内容 我的建议
Project Name led_blink 名字要有意义,别用test1、test2这种
Location D:\FPGA_Projects\ 路径别太深,也别放桌面
Design Name top 顶层模块名,建议统一用top
Device Family MachXO2 根据你手头的板子选
Device LCMXO2-1200HC-4TG144C 具体型号,板子上有印

点击Finish,工程就创建好了。你会看到左侧的File List面板里空空如也——别急,空白工程就是这样,所有文件都得我们自己加。

小技巧: 我个人习惯在创建工程的同时,就把文件夹结构搭好。比如在工程目录下建好 src(源码)、constraint(约束文件)、sim(仿真文件)三个子文件夹。这样项目一多,找东西不抓瞎。

2.3 界面布局速览

第一次打开Diamond,你可能会觉得界面有点乱。别慌,核心区域就这几个:

  • File List(左上):显示工程里的所有文件,包括源码、约束文件、IP核等。
  • Process(左下):显示综合、布局布线、生成比特流等流程。双击即可运行。
  • Reports(右下):各种报告,比如时序报告、资源利用率报告。这是后期调时序的关键地方。
  • Console(底部):输出编译信息、错误和警告。你想想看,如果综合报错了,第一反应就是看这里。
  • 中央区域:代码编辑器或原理图编辑器,双击文件就会在这里打开。

为什么会这样布局?其实很合理:左边管文件,下边管流程,右边看结果,中间写代码。用习惯了你会发现效率挺高的。

2.4 添加第一个源文件

空工程没法用,咱们加个最简单的Verilog文件。右键点击File List面板的空白处,选择 Add Source File。或者用快捷键 Ctrl+N 新建文件。

输入以下代码——别管它干什么,先让工程能跑起来:

module top (
    input  wire clk,
    output wire led
);

    reg [23:0] counter;

    always @(posedge clk) begin
        counter <= counter + 1;
    end

    assign led = counter[23];

endmodule

保存为 top.v,放到 src 文件夹里。然后在File List里右键点击工程名,选择 Add Source File,把刚才的文件加进来。

注意: 文件名必须和模块名一致。这是Verilog的硬性规定,也是很多新手容易犯的错。我见过有人把模块名叫 led_blink,文件名叫 test.v,结果综合报错找半天原因。

2.5 运行综合测试

文件加好了,咱们试试能不能综合通过。在Process面板里,双击 Synthesize Design。Diamond会开始跑综合,Console窗口会滚动输出信息。

如果一切顺利,你会看到绿色的 “Synthesis completed successfully”。如果不顺利,也别慌——看Console里的错误提示,通常都会告诉你哪一行出了什么问题。

我第一次用Diamond时,综合报了个“Module not found”的错误。检查了半天,发现是文件路径加错了,多了一层文件夹。从那以后,我每次加文件都会确认路径对不对。

2.6 本章知识体系

为了让你更直观地理解本章的内容结构,我画了一张流程图:

开发环境搭建知识体系 软件安装 创建工程 界面熟悉 Diamond vs Radiant License配置 工程参数设置 添加源文件 五大面板介绍 综合测试 目标:能独立创建工程并完成综合 为后续引脚分配和约束编写打好基础 ⚠ 常见坑点:路径含中文、license被拦截、文件名与模块名不一致 建议安装前关闭杀毒软件,路径全英文

这张图把本章的核心内容串起来了。你跟着这个流程走一遍,环境搭建这块基本就稳了。

2.7 写在最后

环境搭建听起来简单,但往往是整个项目中最容易出幺蛾子的环节。我见过太多人卡在安装这一步,最后放弃了整个FPGA学习计划。其实说白了,就是几个小细节没注意到。

你现在已经成功创建了第一个空白工程,并且跑通了综合。接下来,我们就可以往工程里添加真正的逻辑代码了。不过在那之前,我建议你先熟悉一下Diamond的各个面板,点一点、看一看,心里有个数。

嗯,今天就到这儿。记住:工具只是手段,关键是思路。环境搭好了,后面的事就好办了。


专注资料整理