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

FPGA 入门实战:Quartus II 环境配置与 LED 点亮

介绍 FPGA 开发基础流程,涵盖工程文件夹规划、原理图分析、Quartus II 工程创建、Verilog 代码编写、仿真测试及引脚分配。以野火 Altera EP4CE10 开发板为例,详解从设计到硬件实现的步骤,帮助初学者掌握 FPGA 开发基本方法。

利刃发布于 2026/4/6更新于 2026/7/2365 浏览

FPGA 入门实战:Quartus II 环境配置与 LED 点亮

1. 工程准备

首先建立一个名为 led 的工程文件夹,文件夹下包含 doc、quartus_prj、rtl、sim 四个子文件夹:

[图片]

各文件夹功能如下:

  • doc:主要包含文档资料、数据手册、Visio 波形等,相当于档案库;
  • quartus_prj:主要包括使用 Quartus II 软件新建的工程,相当于操作台;
  • rtl:主要放置生成硬件电路的代码,相当于原材料;
  • sim:放置对生成硬件电路代码的仿真文件,相当于质检室。

这四个文件夹各自完成不同的分工,它们之间通过路径关联和文件引用,形成 FPGA 开发闭环。quartus_prj 作为工程中枢,向上访问 doc 读取说明,向下访问 rtl 获取硬件代码,向外访问 sim 获取仿真脚本;sim 向上访问 rtl 在逻辑上验证硬件代码的正确性。

2. 设计过程

无论使用 FPGA 做什么类型的项目,都要参照具体的流程。这里介绍通用的开发流程:

  1. 看手册和原理图:搞清楚需要实现什么功能,就像做饭时需要看食谱。
  2. 选芯片与建工程:对应选择食材和调料,新建工程并选择对应的开发芯片。本文使用野火的 Altera EP4CE10 征途 Mini 开发板。
  3. 编写代码:运用 Verilog 代码实现电路功能,即'炒菜'。
  4. 编译与仿真:写完代码后,编译代码、写仿真软件测试是否有逻辑错误,即'品尝'。
  5. 引脚分配:测试仿真完成后,分配硬件引脚,使工程能正常跑出来,即'装盘'。

有了具体流程后,按此思路实现 LED 点亮工程。

3. 工程实现

(1)看食谱(原理图分析)

打开开发板的原理图,找到'按键'和'LED'模块,选取 KEY1 与 LED1:

[图片] 按键电路

[图片] LED 电路

分析原理图实现 LED 点亮的逻辑:

  • 当 SW2 按键松开时,1、2 与 3、4 不导通,KEY1 被拉低到 GND 低电平,发出低电平信号 key_in 为 0。FPGA 输入引脚接收 0 信号,给 LED 电路发送 0 信号,led_out 为 0,LED1 不亮。
  • 当 SW2 按键按下时,1、2 与 3、4 导通,KEY1 被拉高到 3V3 高电平,发出高电平信号 key_in 为 1。FPGA 输入引脚接收 1 信号,给 LED 电路发送 1 信号,led_out 为 1,LED1 亮。

接着在 Visio 中绘制 LED 功能框图和波形图,此处不再赘述,理解上述电路解析后容易理解:

[图片] LED 功能框图

[图片] LED 波形图

记得做完后保存到 doc 文件夹中。至此,工程前提工作就绪,接下来新建工程,开始备菜。

(2)备菜(新建工程)

在 Quartus 中新建工程,工程放到 quartus_prj 文件夹中:

[图片]

对于以下页面,官方文档说明较简略,补充解释:将写好的代码文件和新建工程绑定在一起,Quartus 只有在列表里看到该文件,才会读取它生成对应的电路。目前尚未开始写代码,暂时不用添加代码文件。

[图片]

接下来是器件选择,补充解释:

  1. Family:器件族,即使用的哪类芯片,在 FPGA 板芯片上有介绍。本文使用的是 Cyclone IV E 系列芯片。
  2. Package:封装类型。本文选的是 Any QFP 封装。
    • 板载 CPU 型号为 EP4CE10E22C8N,拆解如下:
    • a) EP4CE:产品系列,即 Family 中选择的 Cyclone IV 系列 E 型。
    • b) 10:10k 个逻辑单元。
    • c) E:EQFP 类型封装,归类在 QFP 大类下,故 Package 选择 Any QFP。
    • d) 22:Pin count 中的引脚数量,即 144 个。
    • e) C:工作温度,0-85°。
    • f) 8:速度等级(Speed grade)。
    • g) N:工艺标识,无铅工艺。

看完上述内容,应懂得如何读取 FPGA 芯片型号,同时工程配置已完成。Available devices 不做详细解说。在新建工程中的配置一定要和芯片严格对应,否则影响后续编译结果。

[图片]

[图片]

(3)炒菜(编写代码)

看完食谱备好食材后,开始写代码。在 Notepad++ 中,于 rtl 文件夹下新建一个名为 led.v 的文本文件:

[图片]

回想第一步中对 quartus_prj 文件夹的介绍:'quartus_prj 作为工程中枢.....向下访问 rtl 获取硬件代码'。编写完代码后,需让 quartus_prj 访问提取使用。回到 Quartus 软件,将编写的代码(led.v 文本文件)添加到工程中,这样 quartus_prj 就可以访问 rtl 获取硬件代码了。具体步骤参考官方文档。至此,炒菜部分完成。

(4)品尝(编译与仿真)

菜炒好以后,要对代码进行编译和仿真。任务栏(Task)功能如下:

  • Start Project:工程初始化,包含新建工程、选择芯片型号、添加源文件等。
  • Create Design:设计输入与文件管理的核心入口,可新建或打开代码文件。
  • Assign Constraints:导入约束文件、进行引脚分配等。
  • Compile Design:负责代码语法检查、布局布线、生成下载文件、时序分析等。
  • Verify Design:工程收尾操作,负责打包整个工程,归档并导出工程数据库。

[图片]

查看 RTL 视图,即将代码转换成硬件电路:

[图片]

可以看出,RTL 视图与 Visio 软件中设计的 LED 电路一致,且代码编译没有问题。之后进行仿真测试。RTL 视图将代码综合成硬件电路,但无法知道电路输入输出的状态,因此需要跑仿真证明代码逻辑在实际运行中正确。

输出网表的概念:把代码翻译成 FPGA 能读懂的硬件电路。'输出网表的语言格式'是 Verilog,'输出网表的时间单位'是仿真时的时间单位。

[图片] 仿真波形

得到仿真波形后,对比 Visio 中绘制的波形图,完全一致。RTL 视图和 Modelsim 的仿真,无论是硬件电路还是输入输出波形都与初始设计高度吻合,'品尝'这一步已完成。

(5)装盘(引脚分配)

仿真无误后,分配引脚,即具体看按键 SW1 和 LED1 在电路板上的哪些引脚。因为 EP4CE10E22C8N 型芯片是把 key_in 和 led_out 分配到 IOBANK_3 里面,因此引脚配置如下:

  • key_in @ IOBANK_3
  • led_out @ IOBANK_3

[图片]

最后提醒,分配引脚时一定参考手册或者原理图,不然轻则工程无法实现,重则芯片烧毁。至此,已装盘,后续步骤参考官方文档。

目录

  1. FPGA 入门实战:Quartus II 环境配置与 LED 点亮
  2. 1. 工程准备
  3. 2. 设计过程
  4. 3. 工程实现
  5. (1)看食谱(原理图分析)
  6. (2)备菜(新建工程)
  7. (3)炒菜(编写代码)
  8. (4)品尝(编译与仿真)
  9. (5)装盘(引脚分配)
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • Claude 官方技能集:现代前端、Git 工作树与自动化测试
  • 7 款实用的 Python 身份验证与授权库推荐
  • OpenClaw 跨平台 AI 助手完全使用指南:从入门到进阶
  • AI 产品经理转型指南:职责、薪资与核心能力模型
  • 从零开始将本地项目代码推送到 GitHub 仓库指南
  • 三年前端转 CS 硕士:我在韩国亚大的留学复盘与回归前端
  • 基于 SSM 和 Vue 的 Web 在线投稿系统设计与实现
  • AI 提示词工程:核心原理、设计策略与实战指南
  • OpenClaw 实战:AI 摄像头访问与 WSL2 解决方案
  • 腾讯 QClaw 本地 AI Agent 框架安装与使用指南
  • MetaAPP 前端一面面经:Vue 原理、CSS 动画与 JS 特性解析
  • OpenClaw 本地部署指南:快速搭建自托管 AI 助手
  • ComfyUI 节点工作流 AI 绘画工具解析
  • 基于 1300+ 招聘数据分析:自学 Python 的就业门槛与要求
  • Android WebView 开发指南:AgentWeb 完整使用
  • Jenkins 实战:多仓库集成、自动构建与公网远程部署
  • AI 无人机智慧巡检平台:架构、功能与应用场景
  • VS Code 内置聊天与 GitHub Copilot Chat 的区别及使用指南
  • 从 PX4 到 Gazebo:无人机视角跟随技术的演进与优化策略
  • 人工智能:大语言模型(LLM)原理与应用实战

相关免费在线工具

  • 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