Quartus Prime 新手完全使用指南

前言

Quartus Prime 是 Intel(原 Altera)推出的 FPGA/CPLD 集成开发环境,也是数字电路设计、FPGA 开发入门的核心工具。对于刚接触 FPGA 的新手来说,Quartus 的操作流程和功能模块看似复杂,但只要掌握 "工程创建 --- 代码编写 --- 编译验证 --- 硬件下载" 的核心逻辑,就能快速上手。

本指南以 Quartus Prime 20.1 Lite 版本(免费、新手友好)为基础,全程围绕新手的学习节奏和常见疑问展开,不堆砌专业术语,不省略关键操作细节,力求让零基础用户能跟着指南完成从软件安装到第一个 FPGA 工程落地的完整流程。

第一章 Quartus Prime 基础认知

1.1 为什么选择 Quartus Prime

对于新手而言,Quartus Prime 的核心优势在于 "一站式开发"------ 它把 FPGA 开发全流程的工具都整合在了一起,不用在多个软件之间切换。无论是编写 Verilog/VHDL 代码、检查语法错误,还是将设计烧录到硬件开发板,都能在这个环境里完成。而且 Lite 版本完全免费,支持 Cyclone IV、MAX 10 等入门级 FPGA,足够满足课程设计、基础项目开发的需求。

1.2 安装准备与步骤

1.2.1 先确认电脑配置

新手不用追求高端配置,但要满足基础要求:Windows 10/11 64 位系统、8GB 以上内存(推荐 16GB,避免编译时卡顿)、至少 50GB 空闲硬盘空间(安装包和工程文件都比较占空间),显卡支持 OpenGL 2.0 以上即可。

1.2.2 安装流程(新手避坑版)
  1. 下载安装包:从 Intel 官网找到 Quartus Prime Lite 20.1 版本,建议勾选包含 ModelSim-Intel FPGA Starter Edition 的安装包(后续仿真会用到);
  2. 解压与启动:右键解压下载的压缩包,双击 setup.exe 启动安装向导,注意解压路径和安装路径都不要包含中文、空格或特殊字符;
  3. 安装选项选择:选择 "Typical" 典型安装,新手不要选 "Custom" 自定义安装,容易漏掉核心组件;
  4. 许可激活:安装完成后首次启动 Quartus,会弹出许可设置窗口,直接选择 "Free Lite Edition" 即可,免费版无需破解,直接激活使用;
  5. 验证安装:启动 Quartus 后,若界面能正常显示,且菜单栏能找到 "File""Processing" 等核心选项,说明安装成功。

1.3 主界面快速熟悉

启动 Quartus 后,不用一开始就记所有区域,先聚焦 5 个核心部分:

  • 菜单栏:所有操作的入口,比如创建工程、编译、下载都从这里发起;
  • 工具栏:把常用操作做成了快捷按钮,比如新建工程、启动编译、硬件下载,新手可以先记住这几个按钮的图标;
  • 工程管理窗口:显示当前工程里的所有文件,比如 Verilog 代码、约束文件,能直观看到工程的文件结构;
  • 代码编辑窗口:编写和修改 Verilog/VHDL 代码的地方,默认会开启语法高亮,不同类型的代码会显示不同颜色,方便排查错误;
  • 编译报告窗口:编译过程中会显示进度、错误、警告,编译完成后会展示资源占用、时序分析等结果,新手排查问题主要看这个窗口。

第二章 从零创建第一个 Quartus 工程

Quartus 的所有开发工作都围绕 "工程" 展开,新手第一步要掌握工程的创建和基础配置,这是后续所有操作的基础。

2.1 工程创建的核心逻辑

新手可以把 Quartus 工程理解为 "一个项目的文件夹",里面会包含代码文件、器件配置、编译设置、下载文件等所有相关内容。创建工程的核心是确定三个关键信息:工程存放路径、目标 FPGA 器件型号、仿真工具配置。

2.2 完整创建步骤

  1. 启动新建工程向导:点击菜单栏的 File→New Project Wizard,或者直接点工具栏的 "新建工程" 图标;
  2. 设置工程基本信息:第一步先填工程路径和名称,路径选非中文的磁盘分区(比如 D:\Quartus_Projects\Counter),工程名称用英文小写(比如 counter),顶层实体名称和工程名称保持一致,新手这样做能避免后续模块名不匹配的问题;
  3. 添加文件(暂时跳过):这一步新手还没有编写代码,直接点 Next 即可,后续可以手动添加代码文件;
  4. 选择目标器件(关键步骤):先选厂商为 Intel,再选器件系列,新手推荐选 Cyclone IV E(比如 EP4CE6E22C8,这是最常见的入门级 FPGA),一定要选和自己开发板一致的器件型号,选错了后续无法下载;
  5. 配置仿真工具:仿真工具选 ModelSim-Intel FPGA Starter Edition,仿真语言选 Verilog HDL(新手优先学 Verilog,比 VHDL 更易上手);
  6. 确认并完成创建:最后一步核对工程路径、器件型号、仿真配置,确认无误后点 Finish,工程就创建好了。

2.3 工程文件的基础管理

2.3.1 添加代码文件

工程创建好后,右键工程管理窗口里的 "Files",选择 "Add/Remove Files in Project",找到编写好的 Verilog 文件(.v 格式),点击 Add 就能把文件加入工程,新手要注意文件路径不能有中文。

2.3.2 工程的保存与备份

日常操作中随时点击工具栏的 "保存" 按钮,或者按 Ctrl+S 保存工程。备份工程最简单的方式就是直接复制整个工程文件夹,新手不要只备份代码文件,完整的工程文件夹包含配置信息,复制后能直接打开使用。

第三章 Verilog 代码编写与基础编辑

Quartus 内置了专门的 HDL 代码编辑器,新手掌握基本的编辑技巧和代码规范,能大幅减少后续的错误排查时间。

3.1 新建 Verilog 代码文件

点击菜单栏的 File→New,在弹出的窗口里选择 Verilog HDL File,点击 OK 后会打开空白的代码编辑窗口,接着按 Ctrl+S 保存文件,文件名要和后续编写的模块名一致(比如 counter_4bit.v),保存路径选到刚才创建的工程文件夹里。

3.2 新手易上手的编辑技巧

  • 语法高亮:默认是开启的,关键字(比如 module、always)、注释、数字会显示不同颜色,能一眼看出语法错误,比如忘记写分号的地方颜色会异常;
  • 自动补全:输入 module、always 等关键字后按 Tab 键,编辑器会自动补全代码模板,新手可以利用这个功能减少打字错误;
  • 显示行号:右键代码编辑窗口,勾选 "Show Line Numbers",行号能帮你快速定位错误位置,比如编译报错提示 "第 15 行有问题",能直接找到对应行。

3.3 新手实战:编写 4 位计数器代码

以最基础的 4 位计数器为例,新手跟着写一遍,理解核心语法和逻辑:

verilog

复制代码
// 4位计数器模块:时钟上升沿计数,复位信号低电平清零,计数范围0-15循环
`timescale 1ns / 1ps

module counter_4bit(
    input clk,          // 时钟输入,开发板常用50MHz
    input rst_n,        // 复位信号,低电平有效
    output reg [3:0] cnt // 4位计数器输出
);

// 时序逻辑:计数器核心功能
always @(posedge clk or negedge rst_n) begin
    if(!rst_n) begin    // 复位信号有效时,计数器清零
        cnt <= 4'b0000;
    end else begin      // 复位无效时,计数器自增1
        cnt <= cnt + 1'b1;
    end
end

endmodule

这段代码里要注意几个新手容易错的点:模块名和文件名一致、端口定义的格式、always 块的触发条件、赋值符号用 <=(时序逻辑)。

3.4 提前做语法检查

编写完代码后,不要直接编译,先做 "分析与综合" 排查语法错误。点击菜单栏的 Processing→Start→Start Analysis & Synthesis,这个过程只检查代码语法,速度很快。如果编译报告窗口显示 "Analysis & Synthesis was successful",说明语法没问题;如果显示红色错误提示,双击错误行就能跳转到代码对应位置,常见的错误比如少写分号、模块名拼写错误、端口定义不匹配,新手逐一修正即可。

第四章 工程编译与错误排查

编译是把 Verilog 代码转换成 FPGA 能识别的硬件电路的过程,新手要理解编译的基本流程,能看懂编译报告,排查常见错误。

4.1 编译的基本流程

新手不用深究底层原理,只需要知道编译会自动完成四个步骤:

  1. 分析与综合:把 HDL 代码转换成门级电路网表,检查语法和逻辑错误;
  2. 适配:把电路网表映射到所选 FPGA 的物理资源上,比如把寄存器映射到 FPGA 的触发器上;
  3. 汇编:生成可以下载到 FPGA 的文件(.sof 或.pof 格式);
  4. 时序分析:检查电路能否在设定的时钟频率下稳定运行。

4.2 启动编译的方式

最常用的方式是点击工具栏的 "Start Compilation" 图标,也可以通过菜单栏 Processing→Start Compilation 启动,或者按 Ctrl+L 快捷键。编译过程中会在状态栏显示进度,新手要耐心等待,简单的工程编译只需要几秒钟。

4.3 看懂编译报告

编译完成后,重点看编译报告窗口的三个部分:

  1. 错误和警告:红色的 Errors 必须解决,比如器件型号选错、代码逻辑错误;黄色的 Warnings 部分可以忽略,但新手建议都看一下,比如 "未使用的信号" 可能是自己代码里多定义了变量,提前修正能避免后续问题;
  2. 资源占用:看 Logic Elements(逻辑单元)和 Registers(寄存器)的占用数,比如 4 位计数器只占用 4 个寄存器,占用率很低,说明设计没问题;
  3. 时序分析:看 "最大时钟频率",如果设计的是 50MHz 时钟,报告里显示的最大频率大于等于 50MHz,说明时序满足要求。

4.4 新手常见编译错误及解决方法

  1. "找不到顶层实体":原因是工程设置的顶层实体名称和代码里的模块名不一致,或者顶层实体没添加到工程里,解决方法是核对名称,确保一致;
  2. "端口不匹配":比如代码里定义了 clk 端口,但后续连接时写错成 clck,解决方法是全局搜索端口名,统一拼写;
  3. "器件型号不支持":原因是选的器件型号不在 Lite 版本支持范围内,解决方法是换成 Cyclone IV 或 MAX 10 系列的器件;
  4. "语法错误:unexpected token":大概率是少写分号、括号不匹配,解决方法是看报错行的前后,检查标点符号。

第五章 结合 ModelSim 做仿真验证

仿真是验证代码功能是否正确的关键步骤,新手要掌握编写测试文件、启动仿真、分析仿真结果的基本方法。

5.1 仿真的核心意义

新手容易忽略仿真,直接下载到硬件上测试,但硬件调试很难定位问题。仿真可以在电脑上模拟 FPGA 的运行过程,直观看到每个信号的变化,比如计数器是否从 0 开始计数、复位信号是否能清零,提前发现逻辑错误。

5.2 编写 Testbench 测试文件

Testbench 是用来给设计模块提供激励信号的文件,比如生成时钟、复位信号,以 4 位计数器为例,编写测试文件:

verilog

复制代码
// 4位计数器的测试文件
`timescale 1ns / 1ps

module counter_4bit_tb;

// 定义测试信号
reg clk;
reg rst_n;
wire [3:0] cnt;

// 例化被测模块
counter_4bit u_counter_4bit(
    .clk(clk),
    .rst_n(rst_n),
    .cnt(cnt)
);

// 生成时钟:50MHz,周期20ns
initial begin
    clk = 1'b0;
    forever #10 clk = ~clk;
end

// 生成复位信号:初始复位,100ns后释放复位
initial begin
    rst_n = 1'b0;
    #100;
    rst_n = 1'b1;
    // 仿真2000ns后停止
    #2000;
    $stop;
end

endmodule

这段代码的核心是生成时钟和复位信号,例化被测模块,让仿真能运行起来。

5.3 启动 ModelSim 仿真

  1. 把测试文件添加到 Quartus 工程里;
  2. 点击菜单栏的 Tools→Run Simulation Tool→RTL Simulation,Quartus 会自动启动 ModelSim 并加载工程;
  3. ModelSim 启动后,在波形窗口添加需要观察的信号(比如 clk、rst_n、cnt);
  4. 点击 ModelSim 工具栏的 "Run" 按钮,仿真就会开始运行。

5.4 分析仿真结果

仿真运行后,在波形窗口能看到:

  • 时钟信号 clk 周期性高低变化,周期 20ns;
  • 前 100ns 复位信号 rst_n 为低,计数器 cnt 保持 0;
  • 100ns 后 rst_n 变为高,计数器开始从 0 自增,到 15 后又回到 0 循环;如果波形和预期一致,说明代码功能正确;如果计数器没有自增,要回到代码里检查 always 块的逻辑。

第六章 引脚约束与硬件下载

仿真验证正确后,就可以把设计下载到 FPGA 开发板上测试,这一步的核心是做好引脚约束,把代码里的端口映射到开发板的物理引脚上。

6.1 引脚约束的意义

代码里的 clk、rst_n、cnt 等端口只是逻辑信号,需要告诉 Quartus 这些信号对应开发板上的哪个物理引脚,比如 clk 对应开发板的 50MHz 时钟引脚,rst_n 对应复位按键引脚,否则下载后设计无法正常运行。

6.2 图形化约束引脚(新手推荐)

新手不要用 TCL 脚本约束引脚,用图形化界面更直观:

  1. 点击菜单栏的 Assignments→Pin Planner,打开引脚规划窗口;
  2. 窗口左侧会显示代码里的所有端口(clk、rst_n、cnt 等);
  3. 参考开发板的引脚手册,在 "Location" 列选择对应的引脚号,比如 clk 选 PIN_E1,rst_n 选 PIN_N1;
  4. 约束完成后按 Ctrl+S 保存,会生成一个.qpf 格式的约束文件,自动加入工程。

6.3 下载程序到 FPGA 开发板

  1. 连接硬件:用 USB 线把开发板和电脑连接,打开开发板电源,确保电脑能识别到开发板;
  2. 启动下载工具:点击 Quartus 工具栏的 "Programmer" 图标,或者菜单栏 Tools→Programmer;
  3. 配置下载工具:
    • 点击 "Hardware Setup",选择对应的下载器(比如 USB-Blaster);
    • 勾选要下载的文件(.sof 格式),勾选 "Program/Configure";
  4. 开始下载:点击 "Start" 按钮,下载进度完成后,开发板上的电路就会按照设计运行,比如计数器对应的 LED 灯会循环亮灭。

第七章 新手实用技巧与避坑指南

7.1 日常使用小技巧

  1. 常用快捷键:Ctrl+S 保存、Ctrl+L 编译、Ctrl+F 搜索代码,熟练使用能提高效率;
  2. 代码注释:关键逻辑一定要加注释,比如复位条件、计数规则,过一段时间再看代码时能快速回忆;
  3. 工程命名:用 "项目名_功能_日期" 的格式命名工程文件夹,比如 "counter_4bit_20250101",方便后续查找;
  4. 关闭无关功能:Quartus 启动时会加载很多插件,新手可以关闭不需要的功能(比如 SignalTap II),减少软件卡顿。

7.2 新手最容易犯的错误

  1. 路径包含中文:工程路径、文件名、保存路径有中文,会导致编译失败或下载出错;
  2. 器件型号选错:选的器件和开发板不一致,下载时会提示 "器件不匹配";
  3. 忘记加复位:代码里只写计数逻辑,没加复位信号,下载后计数器初始值随机,不符合预期;
  4. 赋值符号用错:时序逻辑用 = 赋值,组合逻辑用 <= 赋值,新手容易搞反,导致逻辑错误;
  5. 引脚约束错误:把时钟信号约束到普通引脚,下载后设计无法运行。

7.3 学习资源推荐

  1. 官方文档:Intel 官网的 Quartus Prime Lite 用户指南,虽然是英文,但内容最权威;
  2. 视频教程:B 站搜索 "Quartus 新手教程",选择 Cyclone IV 开发板的教程,和新手学习的器件匹配;
  3. 论坛社区:电子发烧友、知乎 FPGA 板块,遇到问题可以搜索或提问,很多新手问题都有现成解答。

总结

Quartus Prime 的使用核心是 "工程化思维",新手从创建第一个简单工程开始,逐步掌握代码编写、编译、仿真、下载的完整流程,遇到错误不要慌,先看编译报告和报错提示,大部分新手错误都是语法、配置或引脚约束的问题。

刚开始学习时可以从简单的小项目(计数器、流水灯、按键消抖)入手,熟悉每个操作步骤后,再尝试更复杂的设计。记住,FPGA 开发是 "多练多试" 的过程,哪怕是重复做同一个小项目,也能加深对 Quartus 和 FPGA 设计的理解。

相关推荐
仲南音14 小时前
Xilinx FPGA——时钟IP核MMCM、PLL
fpga开发
I'm a winner1 天前
基于Xilinx FPGA的LVDS高速串行通信系统(三)--数据训练及握手机制【文末源码】
fpga开发
upper20201 天前
coremark移植坑之-nostartfiles -nostdlib参数
学习·fpga开发·coremark移植·riscv设计
Eloudy2 天前
Vivado 纯命令行构建 FPGA 项目教程
fpga开发
Rambo.xia2 天前
AXI跨时钟域与数据一致性——CDC FIFO深度不够、写后读冒险、多Master仲裁、乱序返回,出了Bug根本查不出来
fpga开发·bug
upper20202 天前
FPGA部署卷积神经网络识别MINST图片
fpga开发·卷积神经网络·minst·minst识别·部署神经网络·神经网络识别图片
你是我的解忧王子2 天前
嵌入式 ADC采样 原始数据分析上层(平均值 波动率 正态分布 线性补偿 系统误差)
fpga开发·数据挖掘·数据分析
9527华安3 天前
FPGA纯verilog代码ISP图像处理培训教程,基于IMX214,提供工程源码+视频教程+FPGA开发板
图像处理·fpga开发·isp·imx214·mipi
千寻xun3 天前
二、实战篇-NVME SSD控制之ZYNQ实现(六)-读写NVME SSD硬盘数据
fpga开发·nvme·nvme ssd
千寻xun3 天前
二、实战篇-NVME SSD控制之ZYNQ实现(三)
fpga开发·nvme ssd·nvme协议