跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

Quartus Prime FPGA 开发入门:从安装到工程落地

Quartus Prime 是 Intel 推出的 FPGA 开发环境,涵盖软件安装、工程创建、Verilog 代码编写、编译仿真及硬件下载全流程。重点讲解 Cyclone IV 系列器件配置、引脚约束设置及常见错误排查方法,帮助零基础用户快速完成首个 FPGA 项目部署,避免路径中文、器件型号不匹配等典型问题。

ArchDesign发布于 2026/4/7更新于 2026/6/920 浏览
Quartus Prime FPGA 开发入门:从安装到工程落地

概述

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

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

基础认知

为什么选择 Quartus Prime

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

安装准备与步骤

先确认电脑配置

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

安装流程(新手避坑版)
  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' 等核心选项,说明安装成功。

主界面快速熟悉

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

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

从零创建第一个 Quartus 工程

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

工程创建的核心逻辑

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

完整创建步骤

  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,工程就创建好了。

工程文件的基础管理

添加代码文件

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

工程的保存与备份

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

Verilog 代码编写与基础编辑

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

新建 Verilog 代码文件

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

新手易上手的编辑技巧

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

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

以最基础的 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)
        begin // 复位信号有效时,计数器清零
            cnt <= 4'b0000;
        end
        else
        begin // 复位无效时,计数器自增 1
            cnt <= cnt + 1'b1;
        end
    end
endmodule

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

提前做语法检查

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

工程编译与错误排查

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

编译的基本流程

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

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

启动编译的方式

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

看懂编译报告

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

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

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

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

结合 ModelSim 做仿真验证

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

仿真的核心意义

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

编写 Testbench 测试文件

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

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

启动 ModelSim 仿真

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

分析仿真结果

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

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

引脚约束与硬件下载

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

引脚约束的意义

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

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

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

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

下载程序到 FPGA 开发板

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

新手实用技巧与避坑指南

日常使用小技巧

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

新手最容易犯的错误

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

学习资源推荐

  1. 官方文档:Intel 官网的 Quartus Prime Lite 用户指南,虽然是英文,但内容最权威;
  2. 视频教程:在线视频平台搜索相关教程,选择 Cyclone IV 开发板的教程,和新手学习的器件匹配;
  3. 论坛社区:技术论坛或问答社区,遇到问题可以搜索或提问,很多新手问题都有现成解答。

总结

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

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

目录

  1. 概述
  2. 基础认知
  3. 为什么选择 Quartus Prime
  4. 安装准备与步骤
  5. 先确认电脑配置
  6. 安装流程(新手避坑版)
  7. 主界面快速熟悉
  8. 从零创建第一个 Quartus 工程
  9. 工程创建的核心逻辑
  10. 完整创建步骤
  11. 工程文件的基础管理
  12. 添加代码文件
  13. 工程的保存与备份
  14. Verilog 代码编写与基础编辑
  15. 新建 Verilog 代码文件
  16. 新手易上手的编辑技巧
  17. 新手实战:编写 4 位计数器代码
  18. 提前做语法检查
  19. 工程编译与错误排查
  20. 编译的基本流程
  21. 启动编译的方式
  22. 看懂编译报告
  23. 新手常见编译错误及解决方法
  24. 结合 ModelSim 做仿真验证
  25. 仿真的核心意义
  26. 编写 Testbench 测试文件
  27. 启动 ModelSim 仿真
  28. 分析仿真结果
  29. 引脚约束与硬件下载
  30. 引脚约束的意义
  31. 图形化约束引脚(新手推荐)
  32. 下载程序到 FPGA 开发板
  33. 新手实用技巧与避坑指南
  34. 日常使用小技巧
  35. 新手最容易犯的错误
  36. 学习资源推荐
  37. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 英伟达 GTC 2026 发布新推理芯片与 Rubin 架构,AI 智能体时代到来
  • Python 100 个常用函数全面解析
  • LoRA 指令微调核心原理与实战细节
  • Figma + Claude + Weavy AI:构建高效设计工作流
  • MacOS 下通过 HyperKit 运行 Podman 的方法
  • 基于 Vue3 与 Spring Boot 的若依框架快速搭建指南
  • Linux 进程信号处理机制与操作系统运行原理解析
  • Java 与 Kotlin 泛型核心难点解析
  • Ubuntu 20.04 安装 Ollama 及 Open WebUI 部署大语言模型教程
  • LLaMA-Factory YAML 配置详解与参数调优实战
  • AI 编程工具定价对比:Cursor、Windsurf、Kiro、Zed 及 VS Code
  • Spring AI 深入解析 MCP 上下文协议、开发与部署安全实践
  • 小米 MiLoco 本地协同智能助手部署实战
  • Rust 异步代码的测试与调试实践
  • Java 基础进阶:数据类型与面向对象
  • Stable Diffusion 3.5 FP8 在博物馆展览视觉设计中的应用
  • OpenClaw QQ 机器人接入指南
  • OpenClaw QQ 机器人接入完整指南
  • 大语言模型经典论文清单:OpenAI、Google 与开源系列
  • ThreadLocal 原理与内存泄漏机制详解

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online