从零基础到实战专家的完整学习路径
系统化学习路径,理论与实践完美结合
对于FPGA初学者,在完全掌握FPGA前,需要通过基础理论和实验上机的方式,建立硬件逻辑设计的思维模式。掌握FPGA的工作原理和设计流程,学会通过Verilog HDL硬件语言描述电路逻辑功能。
FPGA器件有很多,有国外也有国内的企业,每家FPGA都有其不同的功能和特点,但基本的FPGA工作原理是相同的。因此对于入门阶段,掌握基本电路的设计能力才是重点。
从基础入门到实战专家的完整旅程
掌握FPGA工作原理、设计流程,Verilog语法基础,组合逻辑与时序逻辑设计,建立硬件逻辑思维。
掌握UART、SPI、I²C等通信协议,HDMI显示器接口开发,FPGA内部IP核使用与自定义封装。
深入FPGA内部资源与时序分析,DDR3控制器设计与使用,AXI接口与以太网系统设计。
FPGA深度学习实时视频处理系统,高速视频采集、CNN/YOLO部署、脉动阵列AI加速器设计。
点击展开查看每章节详细内容
FPGA技术简介、类型、应用及主流厂家;FPGA工作原理、工艺结构及特点;FPGA设计流程,包括编译及编译工具使用(Modelsim,VSCode);Xilinx FPGA烧写及下载流程;Debug仿真调试、调试分析及波形查看使用
使用Xilinx FPGA工具创建第一个FPGA工程,下载image到FPGA,观察结果,并使用波形调试工具检查内部逻辑信号变化;认识开发板;FPGA开发软件安装;创建第一个FPGA工程
理解什么是组合逻辑与时序逻辑;Verilog和VHDL的区别;基本语法和结构;逻辑门在FPGA上的实现;组合逻辑电路设计;时序逻辑电路设计;有限状态机(FSM)的概念;Moore和Mealy状态机;状态机设计实例分析;自定向下设计模块例化;FPGA中仿真设计与验证方法;在线逻辑分析调试方法
38译码器设计、计数器设计、流水灯设计、按键消抖、花式跑马灯
锁存器、触发器、寄存器底层逻辑;基础逻辑电路应用:计数器、译码器、存储器;信号边沿检测、奇偶分频电路、同步器
结合代码以及数电知识,查看映射的电路网表
通过时序逻辑和IP完成游戏手柄项目;通过按键发送串口信号实现蓝牙钢琴;通过时序自动发送信号完成PC端信号匹配游戏;结合IP核完成对应项目,掌握IP配置,例化操作,时序逻辑设计思路
简单呼吸灯、呼吸跑马灯、按键控制各种灯的模式切换、舵机控制、音频模块设计PWM实现
数码管显示原理;74HC595驱动原理及设计;数码管驱动测试;数码管静态显示与动态显示
数码管显示数字6;数码管显示数字1234;数码管电子时钟设计
掌握UART协议RTL设计、性能优化及FPGA系统集成,实现稳定可靠的串口通信系统。
UART协议基础;异步通信机制(起始位/数据位/停止位);波特率与时钟误差容忍度计算;数据帧格式:5~9位数据位、奇偶校验位配置
实现9600bps自发自收(回环测试);通过串口实现远程操作舵机
掌握基本IP核(PLL/DCM、RAM、ROM、FIFO)的功能、配置和调用
时钟管理单元、乘法器、触发器等;片内缓存/缓冲模块:单双端RAM和ROM、FIFO等;设计同步FIFO、异步FIFO
通过FPGA工具配置和生成内部的不同IP核,进行例化和仿真,并阅读产品手册,了解内部IP核的功能和使用方法;IP核之PLL实验、ROM实验、RAM实验、FIFO实验
掌握用户定义IP的封装及使用方法
IP核设计概述;设计规范与复用性;Vivado IP封装流程(GUI配置步骤)
UART自定义IP封装测试
掌握SPI驱动时序图;掌握Flash存储芯片工作原理及使用方法
SPI核心原理(四线制标准、工作模式、性能参数分析);FPGA硬件实现(SPI主机设计、SPI从机设计);SPI Flash控制器
SPI主机接口设计;SPI写入OLED
掌握I²C驱动时序图;掌握RTC芯片工作原理及使用方法
I²C核心原理(两线制架构、通信速率模式、协议帧结构);FPGA硬件实现(I²C主机设计、I²C从机设计);三态门功能介绍;EEPROM工作原理;EEPROM芯片底层读写驱动开发
基于FPGA EEPROM芯片读写控制器
掌握VGA/HDMI图像接口设计;掌握VGA控制时序;掌握HDMI图像接口设计;掌握直流平衡;掌握8B/10B编码原理
HDMI协议栈解析(物理层、数据岛周期);视频时序标准(常用分辨率时序参数、色彩空间);FPGA硬件设计(视频时序生成器VTC、TMDS编码器);1080p60视频发生器设计
1080p60视频发生器设计;电脑屏幕采集
FPGA内部逻辑资源介绍;FPGA内部布线资源介绍;FPGA内部时钟结构
时序分析相关概念;FPGA时序分析基本模型;时序约束:主时钟与虚拟时钟的约束、衍生时钟约束、I/O接口约束、时序例外约束、多周期约束、虚假路径约束、最大/最小延时约束;时序报告分析;时序违例修复
通过FPGA的工具检查路径的时序情况
DDR介绍:基本功能,上电及初始化,寄存器定义,Burst等;DDR3命令详解:Activate、Read、Write、Precharge、Refresh等;DDR3功能详解:ODT模式、Calibration、Write levelling、AC时序等;DDR3控制器及Phy;DDR3控制器的性能;FPGA内部DDR控制器的例化及使用
对DDR进行数据读写进行对比测试
AXI协议基础回顾(通道分工、握手时序、基本事务类型);AXI协议针对DDR访问的关键特性(突发长度配置,DDR控制器与AXI接口的集成逻辑);AXI Master接口(DDR控制器方向)设计
使用AXI接口对DDR进行数据读写进行对比测试
以太网理论基础;以太网ARP协议;以太网PHY通信接口及时序;MDIO接口读写;TCP/IP协议及UDP协议;系统方案设计;以太网变换电路设计;FPGA系统顶层模块设计;PHY接口模块设计;MAC核心处理模块设计;硬件、软件及系统测试平台准备和结果分析
以太网MDIO测试;以太网ARP测试;以太网UDP测试
掌握I2C(SCCB)协议及OV5640高级寄存器配置
学习OV5640的上电时序、时钟要求(XCLK);深入理解常用寄存器(分辨率设置、输出格式RGB565/RAW、色彩控制)
编写I2C配置逻辑,通过逻辑分析仪抓取波形,确保成功初始化传感器;通过摄像头采集数据,并显示部分像素在OLED屏幕上
ISP pipeline:去噪、白平衡、对比度增强等基础模块;Sobel算子的3x3卷积核硬件实现;实时视频流的流水线处理与时序同步
在OV5640采集视频流上,实时实现Sobel边缘检测;对比原始视频与边缘检测结果在HDMI上的显示效果;优化流水线时序,保证60fps实时处理
高斯滤波/均值滤波的窗口卷积硬件化;形态学操作的流水线实现;实时视频流的多模块级联与资源优化
对采集视频实现实时高斯滤波去噪;叠加形态学操作,实现目标区域轮廓增强;在FPGA上验证处理后视频的清晰度与实时性
解决多时钟域下的图像数据实时读写冲突
异步FIFO在视频流中的应用;三帧缓冲(Triple Buffering)逻辑防止画面撕裂;设计多端口仲裁器平衡采集、识别与显示的优先级
实现"OV5640->DDR3->HDMI"的完整视频通路,观察高分辨率下的实时显示效果
DDR3/4物理层与协议层原理;MIG IP核配置与接口时序;异步FIFO与DDR的跨时钟域数据交互
搭建OV5640→DDR3→HDMI的完整视频通路;实现1080p@30fps视频的DDR缓存与回放;分析带宽利用率与时序性能
以太网帧结构与MAC控制器;UDP/TCP协议的硬件轻量化实现;AXI-Stream与以太网接口的数据封装
在FPGA上实现UDP协议,将处理后的视频帧传输到PC;测试1Gbps带宽下的传输稳定性与延迟;实现简单的图像数据网络上传功能
SerDes物理层原理与高速信号完整性;PCIe事务层、数据链路层与物理层;Xilinx PCIe IP核的配置与使用
搭建FPGA与PC的PCIe x4链路;实现高速数据块的DMA传输;对比PCIe与以太网的传输带宽与延迟
视频流预处理算法硬件化;图像二值化与目标定位
掌握数字识别前的图像质量优化技术,实现从复杂背景中提取数字目标;RGB888转灰度(Gray)的移位加速实现;3x3窗口生成逻辑;均值滤波或中值滤波降噪
在FPGA上实时实现视频的灰度化和降噪处理,并在HDMI上对比效果;在视频画面中心生成一个采样窗口(框),实时提取框内数字并缩放至固定大小
使用Python训练手写数字识别模型(LeNet变体);权重量化与偏置项定点化处理;生成COE/MIF文件;多通道卷积核并行计算逻辑;激活函数ReLU的硬件实现;最大池化(Max Pooling)逻辑
编写脚本提取Keras/PyTorch权重,并在FPGA ROM中完成数据部署;编写卷积单元Testbench,验证硬件输出与软件仿真结果的一致性
Vitis AI模型优化器、编译器与部署器;DPU核心架构与指令集;多任务AI模型的硬件资源调度
使用Vitis AI将YOLO模型编译为DPU可执行文件;在FPGA上集成DPU,实现AI推理加速;对比纯软件与硬件加速的推理速度与功耗
完成从底层硬件到高层算法的系统级联调
将定位后的数字流送入CNN加速器;全连接层(FC)决策逻辑与Softmax简化
在HDMI屏幕上实时显示OV5640拍摄的数字,并在屏幕指定位置显示识别结果
掌握脉动阵列的计算范式,理解矩阵乘法如何映射到硬件拓扑
冯·诺依曼瓶颈与Memory Wall;空间并行性(Spatial Parallelism)与数据重用;矩阵乘法的三种映射模式:Weight Stationary (WS), Output Stationary (OS), Data Stationary (DS)
"纸上脉动"。手动绘制3x3矩阵在OS模式下的数据流转图,记录每个时钟周期数据的位置
设计高性能PE模块,掌握FPGA内部计算资源的调用
乘加单元(MAC)的RTL实现;流水线寄存器的插入位置对时序(Fmax)的影响;如何通过代码推断(Inference)调用Xilinx DSP48E资源
PE模块设计与仿真。编写参数化PE模块,并在Vivado中观察综合后的电路图,确认其成功映射到DSP资源
攻克脉动阵列最核心的时序难点——数据对齐
为什么需要倾斜(Skewing):确保数据在PE处"准时相遇";基于移位寄存器(Shift Register)的对齐电路设计;输入延迟链的参数化实现
数据预处理模块实现。编写Verilog代码实现矩阵输入的"阶梯状"延迟,通过Testbench验证数据输出波形是否符合对齐要求
学习大型模块的级联方法,掌握generate语句的进阶应用
二维阵列的实例化与连线逻辑;控制信号(如Clear、Enable)的扇出优化;边界PE的特殊处理
4x4矩阵乘法器组装。完成顶层模块编写,进行RTL级全功能仿真,对比Verilog输出结果与Python/Matlab计算结果
实现完整的加速器系统,理解数据搬运对性能的制约
使用BRAM构建输入/输出Buffer;AXI4-Stream接口协议实现;计算与传输重叠(Ping-Pong Buffer)策略
软硬协同实验。将阵列封装为AXI IP核,并在Vivado IPI中通过Zynq PS端发送矩阵数据,观察硬件加速效果
从视频采集到AI推理的完整系统设计
6-8周完整项目,涵盖从底层硬件到AI算法的全栈设计
从入门到进阶,系统化培养FPGA专业人才