一、HLS是什么?与VHDL/Verilog有什么关系?
- HLS是高层综合(High level Synthesis)是将C或者c++语言编译为FPGA能够读懂和运行的RTL级别的语言
- Verilog可以精准的控制电路实现,但实现起来需要较长的周期,而HLS虽然可快速迭代,但其从软件到硬件翻译无论是面积还是资源均难以控制
- HLS的时钟周期没办法顺利过渡到verilog的时钟控制,不存在哪种良好的转换关系
二、HLS有哪些关键技术问题?目前存在什么技术局限性?
1. HLS关键技术
1、将高级语言转化为RTL电路
2、循环优化,并行处理
2.关键技术问题
- 动态参数:HLS禁止动态分配指针,因为硬件设计通常具有多个存储空间,并且该工具必须知道函数打算访问哪个存储空间,以便可以相应地放置电线连接。动态传递函数参数的一种方法是通过静态定义所有可能的函数调用并对每个参数进行硬编码来引入间接层,然后使用条件语句动态选择正确的调用。
- 并行执行:为了确保正确执行,HLS
禁止访问同一数组的函数并行运行。由于不支持常量参数,因此它包括只读函数,因为无法对它们进行分类。必须拆分或复制数组,或者必须合并函数以启用并行执行。 - 内存过度分配:有两种方法可以将大型阵列合成为多个 BRAM 块链。首先是宽度扩展,它可以在多个 BRAM块之间分配字位,并在每次使用内存的情况下同时激活多个块。第二个是深度扩展,它在每个