千兆以太网FPGA开发全流程实战

📚 共计 30 章节
01
千兆以太网概述
从10M到1000M的演进史 · OSI模型与TCP/IP协议栈 · 以太网帧结构详解 · 物理层与MAC层分工
基础演进
02
开发环境搭建
Vivado/Vivado ML安装 · Modelsim/Questa配置 · 开发板选型(Artix-7) · 必备工具链
工具环境
03
GMII与RGMII接口详解
GMII信号定义与时序 · RGMII双沿采样 · IDELAY/IODELAY原语 · 接口时序约束
接口时序
04
PCS/PMA层与SERDES
8B/10B编码 · SERDES结构 · GTX Transceiver配置 · 线速率与参考时钟
编码高速
05
MII管理接口 (MDIO)
MDIO帧格式 · PHY寄存器映射 · MDIO控制器Verilog · PHY初始化流程
管理PHY
06
MAC层设计(一) 发送通路
MAC发送状态机 · CRC32实现 · IFG控制 · 全双工/半双工处理
MAC发送
07
MAC层设计(二) 接收通路
MAC接收状态机 · FCS校验 · 地址过滤与MAC学习 · 接收FIFO管理
MAC接收
08
AXI4-Stream接口
AXI4-Stream握手 · TDATA/TKEEP/TLAST · 数据对齐 · AXI4-Stream FIFO
总线
09
DMA控制器设计
描述符环原理 · TX/RX描述符 · DMA状态机 · 中断与轮询对比
DMA高性能
10
DDR3/DDR4缓存设计
MIG IP配置 · 用户接口时序 · 读写状态机 · 跨时钟域同步
存储DDR
11
ARP协议实现
ARP请求/响应 · 缓存表设计 · 封装与解析 · 超时老化
网络地址
12
IP层协议实现
IP首部格式 · 校验和计算 · 分片重组 · TTL与协议字段
网络层路由
13
ICMP协议实现
ICMP类型与代码 · Ping请求/响应 · 不可达消息 · 校验和计算
诊断Ping
14
UDP协议实现
UDP首部 · 伪首部校验和 · 发送/接收状态机 · 端口绑定
传输无连接
15
TCP协议实现(一)
TCP首部 · 三次握手状态机 · 序号确认号 · 窗口流量控制
传输可靠
16
TCP协议实现(二)
重传RTO · 拥塞控制(慢启动/拥塞避免) · 快速重传 · 连接关闭
拥塞重传
17
网络协议栈整合
分层架构 · 数据包流向 · 模块接口 · 优先级与QoS
架构整合
18
时钟域与复位策略
多时钟域划分 · 异步复位同步释放 · CDC处理 · 全局复位网络
时钟复位
19
时序约束与收敛
主时钟/生成时钟约束 · 输入输出延迟 · 伪路径/多周期 · 时序报告
时序约束
20
仿真验证策略
UVM框架 · 测试用例(正常/异常/边界) · 覆盖率 · 自动化回归
验证UVM
21
板级调试技巧
ILA/VIO核 · ChipScope · 抓取波形 · 硬件问题定位
调试硬件
22
性能优化与资源评估
吞吐量计算 · 资源利用率 · 流水线优化 · 关键路径重定时
优化性能
23
低功耗设计
时钟门控 · 动态频率调整 · 模块使能 · 功耗分析工具
低功耗节能
24
安全特性
MACsec · IPsec基础 · CRC/FCS安全 · 防MAC欺骗/ARP攻击
安全加密
25
多端口交换设计
交换架构(Crossbar/共享内存) · MAC地址表查找 · VLAN · 广播风暴抑制
交换多端口
26
时间敏感网络(TSN)入门
IEEE 802.1AS时间同步 · 802.1Qbv门控调度 · 802.1CB冗余 · FPGA实现挑战
TSN实时
27
高速接口实战
SFP+光模块 · 10G/25G升级 · PAM4与NRZ · SerDes链路调优
高速光模块
28
FPGA与CPU协同
AXI-Lite寄存器 · 中断控制器 · Linux网络驱动 · DPDK加速
协同驱动
29
项目实战:简易网络测试仪
需求分析 · 模块划分 · RTL编码 · 仿真验证 · 板级调试 · 性能测试
项目测试仪
30
项目实战:UDP卸载引擎(UOE)
UDP/IP校验和卸载 · TSO大包分割 · RSS接收侧缩放 · 性能基准
卸载UOE