FPGA 入门 3 个月学习计划表

FPGA 入门 3 个月学习计划表

FPGA 入门 3 个月学习计划表

这份计划表按 "基础认知→工具实操→项目实战" 的逻辑推进,每周聚焦 1-2 个核心目标,配套具体资源和任务,可直接落地执行。

第 1-2 周:数字电路与 Verilog 基础

核心目标

掌握数字电路核心概念,入门 Verilog 语法,能写简单组合逻辑代码。

学习内容

  1. 数字电路:重点学组合逻辑(与或非门、编码器、译码器)和时序逻辑(D 触发器、寄存器、计数器),无需深入数学推导,理解逻辑功能即可。
  2. Verilog 语法:掌握模块定义(module/endmodule)、端口声明、信号类型(reg/wire)、赋值语句(assign/always),了解门级建模和行为级建模的区别。

推荐资源

  • 视频:B 站 "小梅哥 FPGA 设计思想与验证方法" 第 1-5 讲
  • 书籍:《Verilog HDL 数字设计与综合》(只看前 3 章)

每周任务

  • 第 1 周:画出门级电路原理图(如 2-4 译码器),并用 Verilog 门级建模实现。
  • 第 2 周:用 Verilog 行为级建模写 1 个 4 位计数器代码,明确计数使能和复位功能。

第 3-4 周:仿真工具(ModelSim)实操

核心目标

熟练使用 ModelSim,能写 Testbench 激励文件,通过波形图验证代码逻辑。

学习内容

  1. ModelSim 操作:掌握创建工程、添加文件、编译代码、启动仿真的全流程。
  2. Testbench 编写:学会生成时钟(always #5 clk = ~clk)、复位(initial begin rst_n = 0; #10 rst_n = 1; end)和输入激励信号。

推荐资源

  • 视频:B 站 "正点原子 FPGA 开发指南" 中 "ModelSim 仿真" 相关章节
  • 文档:ModelSim 官方快速入门手册(网上可搜 "ModelSim Quick Start Guide")

每周任务

  • 第 3 周:用 Testbench 验证第 2 周写的 4 位计数器,通过波形图确认计数、复位功能是否正常。
  • 第 4 周:写 1 个 8 位数据比较器的 Verilog 代码,并用 Testbench 覆盖所有输入场景(A>B、A=B、A<B),验证逻辑正确性。

第 5-6 周:开发工具(Vivado/Quartus)实操

核心目标

熟练使用目标厂商开发工具,完成 "代码→比特流→下载到开发板" 的全流程。

学习内容

  1. 工具选择:若用 Xilinx 芯片(如 Artix-7)选 Vivado;若用 Altera 芯片(如 Cyclone IV)选 Quartus。
  2. 操作流程:掌握创建工程(选择芯片型号)、添加代码、综合、布局布线、生成比特流、连接开发板下载程序的步骤。

推荐资源

  • 视频:对应开发板官方教程(如 "正点原子 Artix-7 开发板 Vivado 教程" 第 1-3 讲)
  • 工具文档:Vivado 官方手册 "UG910"(只看 "Creating a Project" 和 "Generating a Bitstream" 章节)

每周任务

  • 第 5 周:在 Vivado/Quartus 中创建工程,导入之前写的 4 位计数器代码,完成综合和布局布线,解决简单的语法错误。
  • 第 6 周:连接开发板,将计数器代码生成的比特流下载到芯片,用示波器或开发板 LED 观察计数输出(若开发板有 LED,可将计数器输出接 LED)。

第 7-8 周:基础项目 1(流水灯 + 按键消抖)

核心目标

结合仿真与板级调试,完成第一个完整 FPGA 项目,理解时序逻辑在实际硬件中的应用。

学习内容

  1. 流水灯设计:用计数器产生延时,控制多个 LED 按 "左移→右移→闪烁" 的顺序切换。
  2. 按键消抖:了解机械按键的抖动原理,用 "延时采样法"(如检测按键稳定 20ms 后再采样)实现消抖逻辑。

推荐资源

  • 视频:B 站 "野火 FPGA 开发实战指南" 中 "流水灯" 和 "按键消抖" 项目讲解
  • 参考代码:开发板配套例程(重点看消抖模块的实现逻辑)

每周任务

  • 第 7 周:完成流水灯代码编写与仿真,确保 LED 切换顺序正确,下载到开发板验证实际效果。
  • 第 8 周:在流水灯基础上加入按键控制,用消抖模块处理按键信号,实现 "按 1 次按键切换流水灯模式" 的功能,完成板级调试。

第 9-10 周:基础项目 2(UART 串口通信)

核心目标

掌握异步串行通信协议,实现 FPGA 与电脑的双向数据传输,理解跨时钟域基础概念。

学习内容

  1. UART 协议:了解波特率(如 9600bps)、数据位(8 位)、停止位(1 位)、校验位(无校验)的定义,明确收发时序。
  2. 跨时钟域:若 FPGA 系统时钟(如 50MHz)与 UART 波特率时钟(如 9600bps 对应约 104us 周期)不同,需用寄存器打两拍的方式处理信号,避免亚稳态。

推荐资源

  • 视频:B 站 "小梅哥 FPGA 串口通信" 专题讲解
  • 工具:串口调试助手(如 SSCOM),用于与 FPGA 通信

每周任务

  • 第 9 周:编写 UART 发送模块,实现 FPGA 向电脑发送固定数据(如 "Hello FPGA"),用串口助手接收并验证。
  • 第 10 周:编写 UART 接收模块,实现电脑向 FPGA 发送指令(如发送 "1" 点亮 LED,发送 "0" 熄灭 LED),完成双向通信调试。

第 11-12 周:项目整合与复盘

核心目标

整合前 10 周所学,完成一个综合项目,复盘知识漏洞,为后续进阶打基础。

学习内容

  1. 项目整合:将流水灯、按键消抖、UART 模块整合,实现 "电脑通过串口指令控制流水灯模式,FPGA 向电脑反馈当前模式" 的功能。
  2. 知识复盘:梳理 Verilog 语法、仿真流程、板级调试中遇到的问题,记录解决方案(如语法错误、时序不满足、下载失败等)。

每周任务

  • 第 11 周:完成综合项目的代码编写、仿真与板级调试,确保所有功能正常运行。
  • 第 12 周:整理 3 个月学习笔记,列出未掌握的知识点(如时序约束、Block RAM 使用),为后续学习明确方向。

要不要我帮你整理一份 **"FPGA 入门常用资源包"**?里面包含计划表中提到的视频链接、工具安装包、参考代码和常用手册,方便你直接获取,不用再花时间搜索。

===============================================================

以下是整理好的「FPGA 入门常用资源包」,包含视频、工具、代码、手册等核心资料,按学习阶段分类,直接直接下载或跳转学习:

一、基础理论与语法资源

  1. 数字电路基础

  2. Verilog 语法入门

二、工具安装包与教程

  1. 仿真工具(ModelSim)

  2. 开发工具(Vivado/Quartus)

三、实战项目代码与资料

  1. 基础项目源码(带注释 + Testbench)

  2. 开发板参考资料

四、辅助工具与社区

  1. 串口调试助手 :SSCOM5.13(轻量好用,支持 ASCII / 十六进制发送)链接:https://pan.baidu.com/s/1pZ7G6cQwZ6YJ9tq5vF8dw 提取码:sscm

  2. 学习社区

说明:

  • 工具安装建议优先看配套教程,避免版本兼容问题;
  • 代码建议先看懂逻辑再修改,结合仿真波形理解每一行的作用。
相关推荐
西岸行者6 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
ZPC82106 天前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82106 天前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
悠哉悠哉愿意6 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码6 天前
嵌入式学习路线
学习
毛小茛6 天前
计算机系统概论——校验码
学习
babe小鑫6 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms6 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下6 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。6 天前
2026.2.25监控学习
学习