vivado HLS 入门
简介
资料来源于Xilinx官方视频课,由Lauren Gao讲解,共25讲,相比于看user guide,我认为该系列视频更适合入门,内容广泛且实用,很多示例更能帮助理解,本篇主要记录我认为有价值或容易遗忘疏忽的知识点。
视频连接:http://www.eetrend.com/topics/2018-03/100077696.html
1st-8th vivado HLS基本概念
1 Xilinx FPGA架构
我认为 需要有高效的算法测试激励和RTL测试激励同时保证算法的正确性和满足时许与资源约束,猜想他想引出HLS testbench的概念。
2 HLS工作机制
硬件/时钟分配->控制逻辑提取->逻辑映射,这些步骤会由HLS自动完成,开发者要做的是参考生成的summary和利用directive命令进行优化。
3 HLS设计流程
4 Demo
1、一般HLS生成的RTL层级会与C code保持一致,当子函数很简单时会被展开,通过关闭INLINE Directive来关闭内联;
2、动态内存分配和系统层面的某些操作不可被综合;
3、不通Solution的效果可通过Compare Report对比查看;
4、Testbench仿真通过设置返回0,否则返回1;
5 任意精度的数据类型
RTL的bit操作非常灵活高效,因此有必要引入任意精度类型
配置vs支持任意精度类型,这样可以在其他C IDE中专注于算法设计和验证
6 数据类型的转换
7 复合数据类型
结构体struct与枚举enumerated
byte pad:
field _level 元素位宽扩展为8bit的整数倍
struct_level 结构体总位宽扩展为8bit的整数倍
8 基本运算
定点数数据位宽的处理,要保证大数据不溢出,小数据不损失
涉及常数的处理
复数的处理 添加complex头文件
不支持递归