HLS编程实践
一、HLS是什么?与VHDL/Verilog有什么关系?
(一)HLS简介
高层次综合(High-level Synthesis)简称 HLS,指的是使用C、C++、System C 等高层次语言描述电路设计的逻辑结构,以及编写对应的测试激励,借助高层次综合工具,配合高阶约束文件及优化指令自动转换成低抽象级语言(VHDL/Verilog)描述的电路模型的过程。
(二)HLS的特点
使用高层语言对系统建模,可以将代码密度压缩7到10倍
高层语言能促进IP重用的效率
HLS能帮助软件和算法工程师参与、甚至主导芯片或FPGA设计
二、 HLS有哪些关键技术问题?目前存在什么技术局限性?
(一)HLS的关键技术问题
1、字长分析和优化
FPGA 的一个最主要特点就是可以使用任意字长的数据通路和运算。因此,FPGA 的 HLS 工具不需要拘泥于某种固定长度(如常见的 32 位或 64 位)的表达方式,而可以对设计进行全局或局部的字长优化,从而达到性能提升和面积缩减的双重效果。
2、循环优化
循环优化一直是 HLS 优化方法的研究重点和热点,因为这是将原本顺序执行的高层软件循环有效映射到并行执行的硬件架构的重点环节。
一个流行的循环优化方法,就是所谓的多面体模型,即 Polyh