第1章
DDR系统概述
DDR内存的发展历程(SDRAM到DDR5)、DDR的基本工作原理、DDR在FPGA设计中的角色与挑战。
基础架构
第2章
HLS基础回顾
Vivado HLS开发流程、C/C++代码综合、接口综合(ap_fifo、ap_memory、m_axi)、流水线与数据流。
HLS接口
第3章
DDR控制器IP核
Xilinx MIG IP核的配置与生成、DDR4/DDR3的时序参数、初始化与校准流程。
MIGIP
第4章
HLS中的DDR接口
m_axi接口详解、突发传输(Burst)机制、地址映射与对齐、数据位宽匹配。
m_axiBurst
第5章
读写性能指标
带宽(Bandwidth)、延迟(Latency)、吞吐量(Throughput)、效率(Efficiency)的定义与测量方法。
性能测量
第6章
单次读写性能分析
单次读/写操作的延迟构成、影响单次性能的因素、如何通过HLS优化单次访问。
延迟优化
第7章
突发传输优化
Burst Length的选择、Burst对齐的重要性、如何利用HLS生成高效的Burst传输。
Burst对齐
第8章
数据预取与缓存
利用片上BRAM/URAM做缓存、预取策略的设计、缓存命中率对性能的影响。
BRAM预取
第9章
多端口与多通道
多端口DDR控制器的设计、读写通道分离、Bank Group与Bank的利用。
多通道Bank
第10章
地址映射优化
行/列/ Bank地址映射、地址交错(Interleaving)、如何避免Bank冲突。
地址交错
第11章
数据布局与对齐
数据结构对齐、Padding策略、跨行访问的代价。
对齐Padding
第12章
流水线设计
循环流水(Loop Pipelining)、函数流水(Function Pipelining)、数据流(Dataflow)与DDR访问的结合。
流水线Dataflow
第13章
数据流与乒乓操作
双缓冲(Ping-pong Buffer)设计、Stream接口与DDR的桥接、连续数据流的带宽匹配。
乒乓Stream
第14章
读写调度策略
请求重排序(Reordering)、优先级调度、写合并(Write Combining)。
调度写合并
第15章
时序收敛与频率
HLS中的时序约束、关键路径分析、如何通过代码结构调整提升Fmax。
时序Fmax
第16章
AXI总线协议优化
AXI4与AXI4-Stream的区别、Outstanding传输、ID号管理、窄位宽传输。
AXIOutstanding
第17章
DDR带宽测试平台
搭建HLS测试Bench、使用Xilinx ILA/Vivado仿真测量带宽、常见性能瓶颈定位。
测试ILA
第18章
实际案例1:图像帧缓存
视频帧的写入与读取、行缓存设计、帧率与带宽的计算。
图像帧缓存
第19章
实际案例2:矩阵乘法加速
大矩阵的分块(Tiling)、DDR与计算单元的协同、数据复用。
矩阵Tiling
第20章
实际案例3:FFT加速器
多级流水线、蝶形运算的数据访问模式、DDR带宽对FFT性能的影响。
FFT蝶形
第21章
实际案例4:卷积神经网络加速
权重与特征图的DDR访问、输入行缓存、输出累加。
CNN行缓存
第22章
实际案例5:数据排序加速器
外部排序算法、多路归并与DDR访问、中间结果的缓存策略。
排序归并
第23章
高级优化1:HLS中的pragma使用
HLS PIPELINE、HLS UNROLL、HLS ARRAY_PARTITION、HLS DATAFLOW与DDR的配合。
pragma优化
第24章
高级优化2:自定义DDR控制器
在HLS中实现简单的DDR控制器、状态机设计、命令生成。
控制器状态机
第25章
高级优化3:多DDR通道并行
多片DDR的并行访问、通道间同步、负载均衡。
多通道并行
第26章
高级优化4:DDR与HBM的对比
HBM架构简介、HBM与DDR的性能差异、HLS中HBM的使用。
HBM对比
第27章
调试与验证
HLS仿真与C/RTL协同仿真、Vivado逻辑分析仪抓取DDR波形、常见错误排查。
调试仿真
第28章
性能建模与预估
建立DDR性能模型、估算最大带宽、利用模型指导设计决策。
建模预估
第29章
功耗优化
DDR的功耗模型、HLS中的低功耗设计技巧、动态频率调整。
功耗低功耗
第30章
课程总结与展望
DDR调优方法论总结、未来DDR技术趋势(DDR6、CXL)、进一步学习资源。
总结趋势