本课程全面介绍了使用Vivado HLS进行高效硬件设计的方法和技巧,适合希望深入了解HLS技术原理与应用的工程师学习。
从软件工程师的角度来看 FPGA 架构
1. Vivado HLS的工作机制
2. HLS设计流程基本概念
3. 任意精度数据类型
- C语言支持的数据类型
- sizeof()函数使用
- 设置Visual Studio支持任意精度数据类型
4. 数组类型转换
- 变量的定义和初始化
- 定点数据类型的定义和初始化
- 浮点数据类型的定义和初始化
5. Vivado HLS中的复合数据类型
- 结构体
- 枚举类型
6. Vivado HLS中的C++基本运算
7. 测试平台的基本架构
- Test Bench
- C Test Bench
8. 测试激励
9. 测试输出检测与格式控制
- Scoreboard
- 输出格式控制
10. 接口综合基本介绍
- 接口综合概述
- block-level interface protocol和port-level interface protocol
11. 接口综合之数组
12. 接口综合案例演示
- 添加寄存器
- 添加时钟使能信号
- 指令优化
13. for循环优化-基本性能指标
- 基本衡量指标
- for循环pipeline
- for循环UNROLL展开
- for循环变量i
14. for循环优化-循环合并
15. for循环优化-数据流
16. for循环优化-嵌套的for循环优化
- 循环嵌套类型
- Perfect loop nest示例
- Imperfect loop nest示例
17. for循环优化-其他优化方法
- for循环的并行性
- for循环pipeline时的rewind选项
- 当for循环边界是变量时处理方法
18. 数组优化-数组分割
- 数组接口
- 数组分割
19. 数组优化-数组映射和重组
- 数组的映射
- 数组的重组
20. 数组优化-其他优化方法
- 定义ROM
- 数组合成初始化
21. 函数层面优化
- 代码风格
- Inline
- Allocation
- Dataflow
22. 总结分析
- 改善吞吐率(Throughput)
- 改善时延(Latency)
- 改善资源(Area)