2. 开发环境搭建:Quartus II / ISE 安装与配置、驱动安装与下载器验证、第一个工程(点亮LED)

说实话,很多初学者在CPLD上栽跟头,不是电路没画对,而是开发环境没搭好。我见过太多人花了两天时间折腾驱动,结果发现是下载线接触不良。这一章,咱们就把这些坑提前填上。

2.1 开发工具的选择:Quartus II 还是 ISE?

先说说这两个工具的区别。Quartus II 是 Intel(原 Altera)家的,ISE 是 Xilinx 家的。你选哪个,取决于你手头的芯片。

我个人习惯用 Quartus II,因为它的界面更清爽,编译速度也快一些。但如果你用的是 Xilinx 的 XC9500 系列,那就得老老实实用 ISE。

对比项 Quartus II ISE
适用芯片 MAX 3000A / MAX II / MAX V 等 XC9500 / CoolRunner / Spartan 等
最新版本 Quartus II 13.0sp1(经典稳定版) ISE 14.7(最后一个版本)
操作系统兼容性 Win7/Win10(需补丁) Win7(Win10 需虚拟机)
下载器 USB-Blaster Platform Cable USB II
我的建议:如果你刚开始学,优先选 Quartus II + MAX II 系列。这套组合资料最多,遇到问题也容易搜到答案。

2.2 安装与配置:别让版本坑了你

安装过程其实不复杂,但有几个细节你得注意。

2.2.1 Quartus II 安装要点

我推荐用 13.0sp1 版本。为什么?因为这是最后一个支持 MAX II 系列且不需要 license 破解的版本(Web Edition 免费)。

  1. 下载安装包:去 Intel 官网找 Quartus II 13.0sp1 Web Edition
  2. 安装路径:不要有中文!不要有空格!我习惯用 C:\altera\13.0sp1
  3. 选择组件:勾选 Cyclone II / MAX II 器件支持,其他可以不选
  4. 安装 USB-Blaster 驱动:这一步很多人会忘
注意:Win10 系统安装 Quartus II 13.0 时,可能会提示“不兼容”。别慌,右键安装包 → 属性 → 兼容性 → 勾选“以 Windows 7 模式运行”,就能正常安装了。

2.2.2 ISE 安装要点

ISE 14.7 是最后一个版本,之后 Xilinx 就全面转向 Vivado 了。如果你用的是老芯片,只能用它。

嗯,这里要特别提醒:ISE 在 Win10 上问题很多。我曾经折腾了一整天,最后发现还是虚拟机最省心。

  • 推荐方案:VMware + Win7 虚拟机
  • 安装顺序:先装 ISE,再装驱动
  • 许可证:需要申请免费的 WebPack 许可证

2.3 驱动安装与下载器验证

环境装好了,下一步就是让电脑认识你的下载器。这一步卡住了很多人。

2.3.1 USB-Blaster 驱动安装

USB-Blaster 是 Altera/Intel 的下载器,市面上有原装的和山寨的。说实话,山寨的也能用,但驱动安装方式略有不同。

  1. 插上 USB-Blaster,打开设备管理器
  2. 找到带黄色感叹号的未知设备
  3. 右键 → 更新驱动程序 → 浏览我的电脑
  4. 路径指向:C:\altera\13.0sp1\quartus\drivers\usb-blaster
  5. 选择“始终安装此驱动程序”
验证方法:打开 Quartus II → Tools → Programmer → 点击 Hardware Setup。如果看到“USB-Blaster [USB-0]”,说明驱动安装成功。

2.3.2 山寨下载器的特殊处理

如果你用的是几十块钱的山寨 USB-Blaster,可能会遇到驱动签名问题。Win10 默认不允许安装未签名的驱动。

我曾经被这个问题卡了整整一个下午。后来发现解决方法很简单:

  • 重启电脑,按 F8 进入“禁用驱动程序签名强制”模式
  • 或者用 Zadig 工具替换驱动
小技巧:如果你经常用山寨下载器,建议永久关闭驱动签名验证。具体方法:cmd 输入 bcdedit /set testsigning on,重启即可。

2.4 第一个工程:点亮 LED

环境搭好了,驱动也认了,咱们来写第一个程序。这是硬件工程师的“Hello World”——点亮一个 LED。

2.4.1 新建工程

以 Quartus II 为例,咱们一步步来:

  1. File → New Project Wizard
  2. 工程名:led_test,路径不要有中文
  3. 选择器件:比如 EPM240T100C5(MAX II 系列)
  4. 选择仿真工具:None(咱们先不搞仿真)
  5. Finish

2.4.2 编写代码

新建一个 Verilog 文件:File → New → Verilog HDL File。输入以下代码:

module led_test (
    input   wire    clk,      // 时钟输入(如果有)
    input   wire    rst_n,    // 复位(低有效)
    output  reg     led       // LED 输出
);

// 简单的分频计数器
reg [23:0] cnt;

always @(posedge clk or negedge rst_n) begin
    if (!rst_n)
        cnt <= 24'd0;
    else
        cnt <= cnt + 1'b1;
end

// 取最高位驱动 LED,实现闪烁
always @(posedge clk or negedge rst_n) begin
    if (!rst_n)
        led <= 1'b0;
    else
        led <= cnt[23];  // 约 0.5 秒闪烁一次(50MHz 时钟)
end

endmodule
注意:如果你的板子上没有时钟晶振,可以把 LED 直接接到 VCC 或 GND 上测试。但那样就看不到闪烁效果了。我建议至少加个简单的 RC 振荡器或直接用板载晶振。

2.4.3 引脚分配

代码写完了,得告诉编译器 LED 接到了哪个引脚上。

  1. Assignments → Pin Planner
  2. 在 Location 列输入引脚号,比如 LED 接在 Pin 18 上
  3. 如果有时钟输入,也分配好引脚
  4. 关闭 Pin Planner,保存

2.4.4 编译与下载

引脚分配完,就可以编译了:

  1. Processing → Start Compilation(或者直接点那个紫色三角形)
  2. 等进度条跑完,看底部信息:如果显示“Full Compilation was successful”,就 OK 了
  3. Tools → Programmer
  4. 点击 Auto Detect,选择芯片型号
  5. 加载 .pof 文件(在 output_files 文件夹里)
  6. 勾选 Program/Configure,点击 Start
验证:下载完成后,LED 应该开始闪烁。如果不亮,先检查电源和引脚分配。我遇到过最蠢的错误——把 LED 插反了。

2.5 知识体系总览

这一章的内容比较多,我画了个图帮你理清思路:

开发环境搭建知识体系 工具选择 安装与配置 驱动与下载器 Quartus II vs ISE 芯片型号决定工具 版本兼容性检查 安装路径与组件 Win10兼容性设置 虚拟机方案(ISE) USB-Blaster驱动 山寨下载器处理 驱动签名问题 第一个工程:点亮LED

说白了,这一章的核心就三件事:选对工具、装好驱动、跑通第一个程序。这三步走通了,后面的学习就顺了。

最后提醒一句:别急着往下学。我建议你花点时间把下载器验证这一步做扎实。插拔几次,换几个 USB 口试试,确保每次都能正常识别。否则后面调试时,你分不清是代码问题还是硬件连接问题。

公众号:蓝海资料掘金营,微信deep3321