第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配置,说白了就是让软件认识你。有两种方式:

  1. 在线获取免费License:去Xilinx官网注册账号,申请WebPACK License。邮件收到后,在Vivado里点“Help → Obtain License”导入即可。
  2. 本地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为例)

  1. 打开Quartus,点击“New Project Wizard”
  2. 工程名:led_test,路径不要有中文
  3. 选择器件:比如EP4CE10F17C8(Cyclone IV)
  4. 选择仿真工具:ModelSim(如果没有,选None也行)
  5. 点击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章 开发环境搭建知识体系 FPGA开发环境搭建 软件安装 • Vivado HLx WebPACK • Quartus Prime Lite • 路径不要有中文 • 安装时间较长 License配置 • 在线获取免费License • 本地License文件导入 • 注意系统时间 • 不要用记事本编辑 驱动安装 • USB-Blaster驱动 • JTAG下载器驱动 • 禁用驱动签名强制 • 管理员权限运行 第一个LED灯工程 创建工程 → 编写RTL → 分配引脚 → 综合下载

这张图把本章内容串起来了。你跟着这个流程走一遍,环境搭建就算完成了。

1.8 写在最后

环境搭建这件事,说难不难,说简单也不简单。我见过太多人卡在这一步,然后就放弃了。其实你只要耐心一点,按照上面的步骤来,肯定能搞定。

如果你在安装过程中遇到问题,别慌。先看看错误提示,再去搜索引擎查一下。大概率是路径问题、权限问题或者杀毒软件捣乱。

好了,环境搭好了,下一章咱们开始真正写RTL代码。到时候你会发现,点灯只是开始,后面还有更好玩的东西等着你。