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. 学习社区

说明:

  • 工具安装建议优先看配套教程,避免版本兼容问题;
  • 代码建议先看懂逻辑再修改,结合仿真波形理解每一行的作用。
相关推荐
weixin_405023373 小时前
webpack 学习
前端·学习·webpack
大白的编程日记.4 小时前
【Linux学习笔记】线程同步与互斥之生产者消费者模型
linux·笔记·学习
好奇龙猫4 小时前
AI学习:SPIN -win-安装SPIN-工具过程 SPIN win 电脑安装=accoda 环境-第五篇:代码修复]
人工智能·学习
MIXLLRED4 小时前
YOLO学习——训练进阶和预测评价指标
深度学习·学习·yolo
Chunyyyen5 小时前
【第十八周】自然语言处理的学习笔记03
笔记·学习·自然语言处理
心.c5 小时前
如何学习Lodash源码?
前端·javascript·学习
FserSuN5 小时前
构建基于大语言模型的智能数据可视化分析工具的学习总结
学习·信息可视化·语言模型
im_AMBER5 小时前
React 02
前端·笔记·学习·react.js·前端框架
Nebula_g5 小时前
Java哈希表入门详解(Hash)
java·开发语言·学习·算法·哈希算法·初学者