2、开发环境搭建:Quartus II / Vivado安装、License配置、下载器驱动安装、第一个工程创建

好,咱们正式开始动手了。这一章说白了就是「磨刀」——把开发环境搭好,后面才能砍柴。我见过不少新手卡在安装和配置上,一卡就是半天,挺冤的。所以我把常见坑都踩一遍,你照着来就行。

2.1 选哪个工具?Quartus II 还是 Vivado?

这取决于你用什么芯片。简单粗暴:

  • Altera(现属Intel)的CPLD/FPGA → 用 Quartus II
  • Xilinx(现属AMD)的CPLD/FPGA → 用 Vivado

我个人习惯是两套都装。因为项目里经常要换芯片,今天用Altera的MAX II,明天可能就切到Xilinx的XC9500系列了。你如果刚开始学,先装一个就行,别贪多。

小提示: 如果你用的是老款CPLD(比如Altera MAX 3000/7000系列),Quartus II 13.0sp1 是最后支持这些器件的版本。新版Quartus Prime已经砍掉了对老CPLD的支持。我当年就吃过这个亏——装了最新版,结果发现器件库里找不到MAX 7000,又得重装旧版。

2.2 Quartus II 安装与License配置

2.2.1 下载与安装

去Intel官网找「Quartus II Web Edition」——这是免费版,功能足够学CPLD了。注意选对版本:

  • Windows 10/11 用户:建议用 Quartus II 13.0sp1 或 17.0
  • Linux 用户:Quartus II 对Linux支持一般,我建议用Windows

安装步骤其实很简单,一路Next就行。但有两点要注意:

  1. 安装路径不要有中文 —— 我见过有人装到「D:\软件\Quartus」结果编译报错,改回英文路径就好了。
  2. 勾选「Device」支持 —— 安装时记得选上你用的CPLD系列,比如MAX II、MAX 3000A。默认可能只装了Cyclone系列。

2.2.2 License配置

Quartus II 免费版需要申请一个License文件。流程如下:

  1. 打开 Quartus II,点击 Tools → License Setup
  2. 记下你的「NIC ID」(就是网卡MAC地址)
  3. 去Intel官网注册账号,申请免费License
  4. 把收到的License文件放到一个固定目录(比如 D:\altera\license.dat)
  5. 在License Setup页面指定这个文件路径
注意: 如果你电脑有多个网卡(比如无线+有线),Quartus II 可能读到错误的NIC ID。我遇到过这种情况——明明申请了License,但软件还是提示未授权。后来发现是它读到了虚拟机的网卡地址。解决办法:在环境变量里加一个 LM_LICENSE_FILE,强制指定License文件路径。

2.3 Vivado 安装与License配置

2.3.1 下载与安装

Vivado 现在叫「Vivado ML Edition」。去AMD/Xilinx官网下载「Vivado HLx WebPACK」——这是免费版,支持中小型器件。

安装时注意:

  • Vivado 体积很大(完整版要30GB+),WebPACK版小一些,但也得预留20GB空间
  • 安装过程会下载很多文件,建议用有线网络,别用WiFi——我试过WiFi下到一半断了,又得重来
  • 选择安装内容时,只勾选你需要的器件系列。比如你学CPLD,就只勾选「Spartan-7」或「Artix-7」

2.3.2 License配置

Vivado WebPACK 是免费的,但也要申请License:

  1. 打开 Vivado,点击 Help → Obtain License
  2. 登录Xilinx账号,申请免费WebPACK License
  3. 下载License文件,放到本地
  4. 在 Vivado 里指定License路径:Help → Manage License → Load License
小技巧: Vivado 的License可以同时用于多个版本。我电脑上装了2019.1和2022.2,共用同一个License文件,没问题。

2.4 下载器驱动安装

这是最容易出问题的一步。下载器(也叫编程器、JTAG调试器)连不上,后面什么都干不了。

2.4.1 Altera USB-Blaster 驱动

USB-Blaster 是Altera/Intel的官方下载器。市面上有很多兼容版(几十块钱那种),驱动安装方法一样:

  1. 插上USB-Blaster,Windows会提示「设备未识别」
  2. 打开设备管理器,找到带黄色感叹号的设备
  3. 右键 → 更新驱动程序 → 浏览我的电脑
  4. 路径选到 Quartus II 安装目录下的 drivers\usb-blaster
  5. 如果系统提示「不推荐安装」,选择「仍然安装」
避坑指南: 我曾经买过一个便宜的USB-Blaster,插上后驱动死活装不上。折腾了两小时,最后发现是Windows 10的驱动签名问题。解决办法:重启电脑,按F8进入「禁用驱动程序签名强制」模式,再装一次就好了。嗯,这招现在也管用。

2.4.2 Xilinx Platform Cable USB 驱动

Xilinx的下载器驱动安装相对简单:

  1. 安装Vivado时,驱动会自动装好
  2. 如果没装成功,去 Vivado安装目录\data\xicom\cable_drivers\nt64\ 下找安装脚本
  3. 右键以管理员身份运行 install_drivers.exe

插上下载器后,设备管理器里应该能看到「Xilinx USB Cable」设备。如果显示黄色感叹号,多半是驱动没装对,重装一次就好。

2.5 第一个工程创建

环境搭好了,咱们跑一个最简单的例子——点亮LED。说白了就是让CPLD的一个引脚输出高电平。

2.5.1 在 Quartus II 中创建工程

  1. 打开 Quartus II,点击 File → New Project Wizard
  2. 输入工程名(比如 led_test),选好保存路径
  3. 选择器件:比如 Altera MAX II 系列下的 EPM240T100C5
  4. 选择仿真工具(暂时不选,用默认)
  5. 完成创建

然后新建一个Verilog文件:

// led_test.v
module led_test (
    input  wire clk,    // 时钟输入(如果有)
    output wire led     // LED输出
);

assign led = 1'b1;      // 输出高电平

endmodule

保存后,右键文件 → Set as Top-Level Entity。然后点击 Processing → Start Compilation。编译通过后,打开 Programmer,选择下载器,点击 Start 就能把程序烧进CPLD了。

提示: 第一次编译可能会报错,说找不到器件。别慌,检查一下工程设置里的器件型号是否选对了。我刚开始学的时候,选了EPM240但实际用的是EPM570,编译当然过不了。

2.5.2 在 Vivado 中创建工程

  1. 打开 Vivado,点击 Create Project
  2. 输入工程名,选 RTL Project
  3. 选择器件:比如 Xilinx Spartan-7 下的 XC7S15
  4. 完成创建

添加源文件:

// led_test.v
module led_test (
    input  wire clk,
    output wire led
);

assign led = 1'b1;

endmodule

然后点击 Generate Bitstream,生成烧录文件。最后打开 Hardware Manager,连接下载器,烧录进去。

2.6 常见问题与解决

问题 原因 解决办法
License报错 NIC ID不对或路径错误 检查环境变量,重新指定License文件
下载器连不上 驱动没装好或USB口供电不足 换USB口,重装驱动,禁用签名
编译报错「No device」 器件型号选错或没安装器件库 重新安装对应器件支持包
烧录后LED不亮 引脚约束没加或管脚分配错误 检查Pin Planner,确认管脚映射

嗯,这一章内容不少,但都是实打实的操作。你照着做一遍,环境就搭好了。下一章咱们开始写真正的逻辑代码,到时候你就知道今天这些功夫没白费。