一、什么是HLS?
HLS(High-Level Synthesis),就是将C/C++的功能用RTL来实现,将FPGA的组件在一个软件环境中来开发,这个模块的功能验证在软件环境中来实现,无缝的将硬件仿真环境集合在一起,使用软件为中心的工具、报告以及优化设计,很容易的在FPGA 传统的设计工具中生成IP。
传统的FPGA开发,首先写HDL代码,然后做行为仿真,最后做综合、时序分析等。最后生成可执行文件下载到FPGA使用,开发周期比较漫长。
使用HLS,用高级语言开发可以提高效率。
因为在软件中调试比硬件快很多,在软件中可以很容易的实现指定的功能,而且做RTL仿真比软件需要的时间多上千倍
二、HLS与VHDL/Verilog有什么关系?
随着EDA技术的发展,使用硬件语言设计PLD/FPGA成为一种趋势。目前最主要的硬件描述语言是VHDL和verilog HDL及System Verilog。HLS可以用高级语言进行硬件描述,使软件工程师也可以进行FPGA设计。
三、HLS有哪些关键技术问题?
字长分析和优化
FPGA的一个最主要特点就是可以任意字长的数据通路和运算。因此,FPGA的HLS工具不需要拘泥于某种固定长度的表达方式,而可以对设计进行全局或局部的字长优化,从而达到性能提升和面积缩减的双重结果。
然而,字长分析和优化需要HLS的使用者对待综合的算法和数据集有深入的了解。
循环优化
循环优化一直是HLS优化方法的研究重点和热点,因为这是将原本顺序执行的高层软件循环有效映射到并行执行的硬件架构的重点环节。