1. HLS是什么?与VHDL/Verilog有什么关系?
- HLS全称高层次综合(high level synthesis),采用C/C++等高级语言描述功能,可以降低FPGA代码的开发时间和验证时间
- VHDL/Verilog两种语言都是用于数字电子系统设计的硬件描述语言,而且都已经是 IEEE 的标准
- HLS与VHDL/Verilog一样都是FPGA的开发语言
2. HLS有哪些关键技术问题?目前存在什么技术局限性?
2.1 HLS的关键技术问题
与Verilog相比,能做到的优化十分有限
- 动态参数:HLS
禁止动态分配指针
,因为硬件设计通常具有多个存储空间,并且该工具必须知道函数打算访问哪个存储空间,以便可以相应地放置电线连接。动态传递函数参数的一种方法是通过静态定义所有可能的函数调用并对每个参数进行硬编码来引入间接层,然后使用条件语句动态选择正确的调用。 - 并行执行:为了确保正确执行,HLS
禁止访问同一数组的函数并行运行
。由于不支持常量参数,因此它包括只读函数,因为无法对它们进行分类。必须拆分或复制数组,或者必须合并函数以启用并行执行。 - 内存过度分配:有两种方法可以将大型阵列合成为多个 BRAM 块链。首先是宽度扩展,它可以在多个