FPGA开发全流程问题解决手册
📚 共计 30 章节
01
FPGA基础概念与开发环境搭建
FPGA是什么?与CPU/GPU的区别,主流厂商介绍,Vivado/Quartus安装与License配置,第一个LED闪烁工程。
入门
环境
02
硬件描述语言基础 (Verilog/VHDL)
模块化设计,wire/reg,运算符,assign与always,组合逻辑与时序逻辑区别。
Verilog
VHDL
03
仿真与测试平台 (Testbench) 编写
$display/$monitor,initial/always仿真用法,波形查看,常见仿真错误。
仿真
Testbench
04
组合逻辑电路设计
多路选择器、译码器、加法器、乘法器,case与if-else优先级,LUT资源利用。
组合逻辑
LUT
05
时序逻辑电路设计
DFF原理,同步/异步复位,寄存器级联,计数器,分频器实现。
时序
计数器
06
状态机设计 (FSM)
Moore/Mealy型,三段式写法,状态编码,跑飞与恢复。
FSM
状态机
07
时钟域与跨时钟域处理 (CDC)
单比特同步器,多比特同步(FIFO/握手),亚稳态,xpm_cdc_fifo。
CDC
亚稳态
08
时序约束入门
create_clock/set_input_delay/set_output_delay,时序路径,WNS/TNS。
约束
时序
09
静态时序分析 (STA) 进阶
Setup/Hold检查,时钟抖动偏移,false_path,multicycle_path,OCV。
STA
时序收敛
10
综合与实现 (Synthesis & Implementation)
综合策略,网表生成,布局布线,拥塞问题与解决。
综合
布局布线
11
IP核的生成与使用
Clocking Wizard(MMCM/PLL),Block Memory,FIFO Generator,例化与调试。
IP核
MMCM
12
片上调试工具 (ILA/VIO)
ILA触发条件,VIO虚拟IO,调试探针插入,数据深度与采样率。
调试
ILA
13
存储器设计
BRAM与分布式RAM,单口/双口/真双口RAM,ROM,FIFO深度与空满标志。
BRAM
FIFO
14
高速接口设计 (1) DDR3/DDR4
MIG IP使用,读写时序,校准,带宽计算。
DDR
MIG
15
高速接口设计 (2) SerDes & GTP/GTX
眼图测试,时钟恢复(CDR),链路初始化与复位。
SerDes
GTX
16
PCIe接口设计
TL/DL/PHY层次,DMA传输,BAR空间,MSI/MSI-X中断。
PCIe
DMA
17
以太网接口设计
GMII/RGMII时序,UDP/IP协议栈,ARP/ICMP,MAC与PHY配置。
以太网
UDP
18
数字信号处理基础 (DSP48)
乘加运算,FIR滤波器,CORDIC,定点数与位宽截断。
DSP
FIR
19
HLS (高层次综合) 入门
C/C++转RTL,流水线与数据流,AXI4-Stream接口,与手写RTL对比。
HLS
C++
20
功耗分析与优化
动态/静态功耗,时钟门控,操作数隔离,电压岛,Xilinx Power Estimator。
功耗
优化
21
比特流生成与下载
比特流加密(AES),SPI Flash配置,MultiBoot,回退机制。
比特流
AES
22
板级调试与硬件验证
示波器/逻辑分析仪,JTAG边界扫描,电源完整性,信号完整性(SI)。
调试
SI
23
版本控制与团队协作
Git在FPGA项目,IP版本管理,仿真库管理,目录结构规范。
Git
协作
24
脚本化设计流程 (Tcl)
Vivado Tcl命令,自动化综合实现,报告生成,自定义IP封装。
Tcl
自动化
25
FPGA安全设计
比特流加密认证,防篡改,安全启动,JTAG安全锁定。
安全
加密
26
常见逻辑错误与调试技巧
Latch意外生成,竞争冒险,仿真与硬件不一致,时序违规定位。
调试
Latch
27
AXI4总线协议详解
AXI4-Full/Lite/Stream区别,VALID/READY握手,突发传输,地址对齐。
AXI4
总线
28
SoC与Zynq平台开发
PS与PL协同,AXI互联,中断控制器,DMA,Linux驱动与FPGA交互。
Zynq
SoC
29
FPGA在AI加速中的应用
CNN加速器架构,量化定点化,数据复用,OpenCL/XRT框架。
AI
加速
30
项目实战:从需求到交付
需求分析,架构设计,模块划分,集成测试,时序收敛,文档验收。
实战
全流程