前言
Quartus Prime 是 Intel(原 Altera)推出的 FPGA/CPLD 集成开发环境,也是数字电路设计、FPGA 开发入门的核心工具。对于刚接触 FPGA 的新手来说,Quartus 的操作流程和功能模块看似复杂,但只要掌握'工程创建 — 代码编写 — 编译验证 — 硬件下载'的核心逻辑,就能快速上手。
是 Quartus Prime FPGA 开发环境的新手入门指南,涵盖软件安装、工程创建、Verilog 代码编写、编译验证、ModelSim 仿真及硬件下载全流程。重点介绍了 Cyclone IV 系列器件的配置、引脚约束方法及常见错误排查技巧,帮助零基础用户快速掌握从设计到落地的核心逻辑,适合课程设计与基础项目开发参考。

Quartus Prime 是 Intel(原 Altera)推出的 FPGA/CPLD 集成开发环境,也是数字电路设计、FPGA 开发入门的核心工具。对于刚接触 FPGA 的新手来说,Quartus 的操作流程和功能模块看似复杂,但只要掌握'工程创建 — 代码编写 — 编译验证 — 硬件下载'的核心逻辑,就能快速上手。
本指南以 Quartus Prime 20.1 Lite 版本(免费、新手友好)为基础,全程围绕新手的学习节奏和常见疑问展开,不堆砌专业术语,不省略关键操作细节,力求让零基础用户能跟着指南完成从软件安装到第一个 FPGA 工程落地的完整流程。
对于新手而言,Quartus Prime 的核心优势在于'一站式开发'——它把 FPGA 开发全流程的工具都整合在了一起,不用在多个软件之间切换。无论是编写 Verilog/VHDL 代码、检查语法错误,还是将设计烧录到硬件开发板,都能在这个环境里完成。而且 Lite 版本完全免费,支持 Cyclone IV、MAX 10 等入门级 FPGA,足够满足课程设计、基础项目开发的需求。
新手不用追求高端配置,但要满足基础要求:Windows 10/11 64 位系统、8GB 以上内存(推荐 16GB,避免编译时卡顿)、至少 50GB 空闲硬盘空间(安装包和工程文件都比较占空间),显卡支持 OpenGL 2.0 以上即可。
启动 Quartus 后,不用一开始就记所有区域,先聚焦 5 个核心部分:
Quartus 的所有开发工作围绕'工程'展开,新手第一步要掌握工程的创建和基础配置,这是后续所有操作的基础。
新手可以把 Quartus 工程理解为'一个项目的文件夹',里面会包含代码文件、器件配置、编译设置、下载文件等所有相关内容。创建工程的核心是确定三个关键信息:工程存放路径、目标 FPGA 器件型号、仿真工具配置。
工程创建好后,右键工程管理窗口里的'Files',选择'Add/Remove Files in Project',找到编写好的 Verilog 文件(.v 格式),点击 Add 就能把文件加入工程,新手要注意文件路径不能有中文。
日常操作中随时点击工具栏的'保存'按钮,或者按 Ctrl+S 保存工程。备份工程最简单的方式就是直接复制整个工程文件夹,新手不要只备份代码文件,完整的工程文件夹包含配置信息,复制后能直接打开使用。
Quartus 内置了专门的 HDL 代码编辑器,新手掌握基本的编辑技巧和代码规范,能大幅减少后续的错误排查时间。
点击菜单栏的 File→New,在弹出的窗口里选择 Verilog HDL File,点击 OK 后会打开空白的代码编辑窗口,接着按 Ctrl+S 保存文件,文件名要和后续编写的模块名一致(比如 counter_4bit.v),保存路径选到刚才创建的工程文件夹里。
以最基础的 4 位计数器为例,新手跟着写一遍,理解核心语法和逻辑:
// 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)
cnt <= 4'b0000;
else
cnt <= cnt + 1'b1;
end
endmodule
这段代码里要注意几个新手容易错的点:模块名和文件名一致、端口定义的格式、always 块的触发条件、赋值符号用<=(时序逻辑)。
编写完代码后,不要直接编译,先做'分析与综合'排查语法错误。点击菜单栏的 Processing→Start→Start Analysis & Synthesis,这个过程只检查代码语法,速度很快。如果编译报告窗口显示'Analysis & Synthesis was successful',说明语法没问题;如果显示红色错误提示,双击错误行就能跳转到代码对应位置,常见的错误比如少写分号、模块名拼写错误、端口定义不匹配,新手逐一修正即可。
编译是把 Verilog 代码转换成 FPGA 能识别的硬件电路的过程,新手要理解编译的基本流程,能看懂编译报告,排查常见错误。
新手不用深究底层原理,只需要知道编译会自动完成四个步骤:
最常用的方式是点击工具栏的'Start Compilation'图标,也可以通过菜单栏 Processing→Start Compilation 启动,或者按 Ctrl+L 快捷键。编译过程中会在状态栏显示进度,新手要耐心等待,简单的工程编译只需要几秒钟。
编译完成后,重点看编译报告窗口的三个部分:
仿真是验证代码功能是否正确的关键步骤,新手要掌握编写测试文件、启动仿真、分析仿真结果的基本方法。
新手容易忽略仿真,直接下载到硬件上测试,但硬件调试很难定位问题。仿真可以在电脑上模拟 FPGA 的运行过程,直观看到每个信号的变化,比如计数器是否从 0 开始计数、复位信号是否能清零,提前发现逻辑错误。
Testbench 是用来给设计模块提供激励信号的文件,比如生成时钟、复位信号,以 4 位计数器为例,编写测试文件:
// 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
这段代码的核心是生成时钟和复位信号,例化被测模块,让仿真能运行起来。
仿真运行后,在波形窗口能看到:
仿真验证正确后,就可以把设计下载到 FPGA 开发板上测试,这一步的核心是做好引脚约束,把代码里的端口映射到开发板的物理引脚上。
代码里的 clk、rst_n、cnt 等端口只是逻辑信号,需要告诉 Quartus 这些信号对应开发板上的哪个物理引脚,比如 clk 对应开发板的 50MHz 时钟引脚,rst_n 对应复位按键引脚,否则下载后设计无法正常运行。
新手不要用 TCL 脚本约束引脚,用图形化界面更直观:
Quartus Prime 的使用核心是'工程化思维',新手从创建第一个简单工程开始,逐步掌握代码编写、编译、仿真、下载的完整流程,遇到错误不要慌,先看编译报告和报错提示,大部分新手错误都是语法、配置或引脚约束的问题。
刚开始学习时可以从简单的小项目(计数器、流水灯、按键消抖)入手,熟悉每个操作步骤后,再尝试更复杂的设计。记住,FPGA 开发是'多练多试'的过程,哪怕是重复做同一个小项目,也能加深对 Quartus 和 FPGA 设计的理解。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online