第1章 开发环境搭建:Vivado/Quartus安装、License配置、开发板驱动安装、第一个LED灯工程
1.1 为什么先讲环境搭建?
说实话,很多初学者容易忽略这一步。他们觉得“不就是装个软件嘛,有啥好学的?”
嗯,我以前也这么想。直到有一次,我在项目交付前三天,发现Vivado的License突然失效了……那滋味,你想想看。
环境搭建看似简单,但坑不少。我见过有人装了三天的Quartus,结果发现是杀毒软件把破解文件给隔离了。也见过有人驱动装不上,板子插上电脑没反应,急得满头大汗。
所以,这一章咱们把基础打牢。后面30章,你才能安心写代码。
核心要点:开发环境 = 软件安装 + License配置 + 驱动安装。缺一个,你的LED灯都点不亮。
1.2 工具选择:Vivado还是Quartus?
这个问题,我几乎每次培训都会被问到。我的回答很简单:
| 对比项 | Vivado(Xilinx) | Quartus(Intel/Altera) |
|---|---|---|
| 适用芯片 | Xilinx 7系列及以后 | Intel Cyclone/Arria/Stratix |
| 安装包大小 | 约30-50GB(全功能) | 约15-25GB(全功能) |
| License获取 | 免费WebPack版够用 | 免费版限制较少 |
| 上手难度 | 稍复杂,但功能强大 | 相对友好,文档清晰 |
| 我的建议 | 做高速设计、Zynq首选 | 入门学习、低成本项目首选 |
我个人习惯是:教学用Quartus,因为界面清爽,学生不容易迷路。但如果你以后想做通信、图像处理这类高速设计,Vivado是绕不开的。
1.3 Vivado安装与License配置
1.3.1 下载与安装
去Xilinx官网下载Vivado HLx。注意选版本——我个人建议用2020.1到2022.2之间的版本。太新的版本,License可能不好找。太老的版本,有些新器件不支持。
安装时,有几点要注意:
- 路径不要有中文——这是老生常谈了,但我每次都能遇到有人装到“D:\开发工具\Vivado”这种路径下,然后报错。
- 选择“Vivado HL WebPACK”——除非你公司买了正版,否则WebPACK版足够你学完整个课程。
- 安装时间很长——大概1-2小时。建议你泡杯茶,或者先看下一章的RTL理论。
小技巧:安装时勾选“Install Cable Drivers”,这样后面就不用单独装下载器驱动了。我当年不知道这个,折腾了半天。
1.3.2 License配置
License配置,说白了就是让软件认识你。有两种方式:
- 在线获取免费License:去Xilinx官网注册账号,申请WebPACK License。邮件收到后,在Vivado里点“Help → Obtain License”导入即可。
- 本地License文件:如果你用的是破解版(我不鼓励,但理解),把.lic文件放到安装目录下,然后在Vivado里设置路径。
我曾经遇到过一个问题:License明明配置好了,但综合时还是报错。后来发现是系统时间被改过,License校验不通过。嗯,这个坑我踩过,你注意一下。
警告:License文件是文本格式,不要用记事本打开并保存,否则可能损坏文件格式。用专门的文本编辑器,比如Notepad++。
1.4 Quartus安装与License配置
1.4.1 下载与安装
Quartus的安装相对友好。去Intel官网下载“Quartus Prime Lite Edition”——这是免费版,功能足够。
安装步骤:
- 运行安装程序,选择“Quartus Prime (includes Nios II EDS)”
- 器件支持包(Device Support)建议全选,反正也不大
- 安装路径同样不要有中文
Quartus安装比Vivado快很多,大概20-30分钟。我经常用它来做快速原型验证。
1.4.2 License配置
Quartus的License配置更简单:
- 免费版不需要License,直接能用
- 如果你用的是Pro版或Standard版,需要把License文件放到环境变量“LM_LICENSE_FILE”指定的路径下
我记得有一次,一个学员说Quartus打不开,报“License Error”。我远程一看,他把License文件放桌面上,然后环境变量指向了桌面……嗯,路径里有空格,Quartus不认。
1.5 开发板驱动安装
驱动安装,是很多人容易忽略的一步。软件装好了,板子插上电脑,设备管理器里一个黄色感叹号——这时候才慌。
1.5.1 Xilinx下载器驱动
如果你用的是Vivado,驱动在安装目录下:
C:\Xilinx\Vivado\2022.1\data\xicom\cable_drivers\nt64\install_drivers.exe
右键以管理员身份运行。注意,一定要先插上下载器,再运行这个程序。
1.5.2 Altera下载器驱动
Quartus的驱动在:
C:\intelFPGA_lite\22.1\quartus\drivers\usb-blaster
打开设备管理器,找到带感叹号的设备,手动更新驱动,指向这个文件夹即可。
避坑指南:我曾经遇到过USB-Blaster驱动死活装不上,最后发现是Windows的驱动程序强制签名问题。解决办法:重启电脑,按F8进入“禁用驱动程序签名强制”模式,再装一次。
1.6 第一个LED灯工程
好了,环境搭好了,驱动装上了。咱们来点个灯吧。
这个工程虽然简单,但五脏俱全。它能帮你验证整个开发流程是否通畅。
1.6.1 创建工程(以Quartus为例)
- 打开Quartus,点击“New Project Wizard”
- 工程名:led_test,路径不要有中文
- 选择器件:比如EP4CE10F17C8(Cyclone IV)
- 选择仿真工具:ModelSim(如果没有,选None也行)
- 点击Finish
1.6.2 编写RTL代码
新建一个Verilog文件,输入以下代码:
module led_test (
input wire clk, // 50MHz时钟
input wire rst_n, // 复位,低有效
output reg [3:0] led // 4个LED
);
reg [24:0] cnt;
// 计数器,每500ms翻转一次
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
cnt <= 25'd0;
else if (cnt == 25'd24_999_999)
cnt <= 25'd0;
else
cnt <= cnt + 1'b1;
end
// LED输出
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
led <= 4'b0001;
else if (cnt == 25'd24_999_999)
led <= {led[2:0], led[3]}; // 循环左移
end
endmodule
这段代码的逻辑很简单:每500ms,LED状态循环左移一次。说白了就是流水灯。
1.6.3 分配引脚
点击“Assignments → Pin Planner”,根据你的开发板原理图,分配引脚:
| 信号名 | FPGA引脚 | 说明 |
|---|---|---|
| clk | PIN_23 | 50MHz时钟输入 |
| rst_n | PIN_24 | 按键复位 |
| led[0] | PIN_3 | LED0 |
| led[1] | PIN_4 | LED1 |
| led[2] | PIN_5 | LED2 |
| led[3] | PIN_6 | LED3 |
提示:不同开发板的引脚定义不同。一定要对照你的原理图来分配,不要照抄上面的表格。我见过有人直接把别人的引脚分配文件拷过来用,结果板子冒烟了……
1.6.4 综合、布局布线、下载
回到Quartus主界面:
- 点击“Start Compilation”——综合+布局布线一步完成
- 如果没有错误,点击“Programmer”
- 选择下载器(USB-Blaster),点击“Start”
下载成功后,你会看到板子上的LED开始流水闪烁。
嗯,这一刻,你算是正式踏入FPGA的大门了。
1.7 本章知识体系
下面这张图,帮你理清本章的核心逻辑:
这张图把本章内容串起来了。你跟着这个流程走一遍,环境搭建就算完成了。
1.8 写在最后
环境搭建这件事,说难不难,说简单也不简单。我见过太多人卡在这一步,然后就放弃了。其实你只要耐心一点,按照上面的步骤来,肯定能搞定。
如果你在安装过程中遇到问题,别慌。先看看错误提示,再去搜索引擎查一下。大概率是路径问题、权限问题或者杀毒软件捣乱。
好了,环境搭好了,下一章咱们开始真正写RTL代码。到时候你会发现,点灯只是开始,后面还有更好玩的东西等着你。