HLS高阶综合的定义及挑战

时间:2025-04-28  作者:Diven  阅读:0

HLS高阶综合(high level synthesis)在被使用之前,作为商业技术其实已经存在了20多年。设计团队对于这项技术可以说呈现出两极化的态度:要么坚信是先进技术之翘楚,要么对其持谨慎怀疑态度。

HLS高阶综合的定义及挑战

高级语言IP的优势是显而易见的,例如易维护性、在设计周期早期进行重大变更的能力、以及大大节省产品上市时间等方面的优势都很明显。目前的工具较之前一代工具,已有了大幅的进步:允许一些受欢迎的高级语言(如C和C ++)的准入,这一点让众多软件工程师甘之如饴。与硬件描述语言(如VHDL和Verilog HDL)不同,并不是由一小部分工程师掌握的工具。当然,也有局限性:语言限制,就像非可合成构造(non-synthetIC constructs)一样,必须解决或与特殊代码的问题,这可能对设计性能产生负面影响。

还有更糟糕的,大量可能解决方案都必须经过一一验证。目前的HLS工具是点工具(point tools),解决的是某个具体问题。软件工程师还没有一个生态系统来识别加速至硬件的代码是否需要加速。对于那个工程师而言,这时的高阶综合可能是一个敌人,而不是朋友。如果没有对底层多核平台的全面理解,没有对应用程序进行有效和准确地分析,并且无法从设计空间中提取最佳解决方案,那么盲目断言一个单点的工具可能会导致效率极低的解决方案。

定义

我们先退一步来说说定义。我们说高级综合(HLS),意思是在导出数字电路(digital circuits)的过程里,这个数字电路可以在高级规范的制造过程中合成。这个术语是行为和电子系统的结合:是一门技术,也是一门科学,把设计意图抽象化,抽象视图可以自动地将人类设计者的努力付诸现实。最终生成的设计应遵循一系列要求,包括芯片面积、时钟频率、功耗和时间性能的要求等等。HLS工具的任务应该是基于可移交给物理实现流程的而生成的优秀设计。通常该接口是RTL(寄存器传输级别),其中生成的描述是由数字设计领域的汇编语言VHDL和Verilog组成的,与逻辑综合和物理实现可以接受的后端工具一样高。 RTL描述内容包括生成的电路在状态机、存储器寄存器存储、流水线或多周期操作方面的功能。

一个成功的HLS故事中一部分好像是艺术。作为高级语言代码(通常是C,C ++或SystemC),给出的输入规范必须满足对应该如何编写的某些期望。而另一部分则是科学,因为HLS已经成熟到足以成为硬件工程师库存中的实用工具。尽管设计生态系统还不算是一个理想平台,因为仍不可保证达到可持续生产力的产生。因此每一个成功故事的背后,都包含着更多的不为人知的故事,包括不得不采用老办法时倍感愤怒的团队,因为这样既没有真正利用多核,也没有平台中的FPGA空间。

寻求一个最佳解决方案(包括在面积,功率,时间性能方面)的过程必然充满艰辛。在做设计决策时需要我们的专业知识,用户也必须具有经验,才能为既定的应用程序或程序集进行有效地HLS引擎做正确的决策。

挑战

为了探索解决方案空间,我们必须根据给定的配置合成所得到的电路进行全方位的尝试。使用现在的HLS工具,每种特定配置可能需要几分钟到半小时或更长时间。这显然其实没有帮助用户减轻负担,因为这个过程是手动的、缓慢的、容易出错的,很容易导致明显的非最优解决方案。HLS引擎的常见弱点包括:

- 没有早期的性能估计以及任何违反设计和平台限制的行为

- 没有利用所有可能的数据通信方式

- 没有功能概述,也没有对用户代码进行优化转换

- 支持代码报告得太晚了

- 在某些情况下,工具的高效实施是不可能的,例如当必须将太多的加速器映射到硬件部分时。 HLS工具无法预先检测到这种情况,也无法在用户坚持的情况下尽量减轻其影响。

这些弱点都对设计周期造成损害,因为不允许自动设计空间探索,更不用说为所需解决方案自动生成软件和硬件。

解决办法

为了在整体生态系统中有效地整合高级综合,需要更高级别的工具。 SilexICa的SLX是唯一真正支持多核自动生成软件的生态系统,无论是硬连线(hardwired),还是在FPGA上实现的软核(如果有的话)。在我们的例子中,SLX解决方案中的分析功能保证用户可以选择适当时机切入设计。使用底层平台的模型,包括硬连线处理器和软处理器,现在正在扩展到FPGA的硬件加速器。 SLX了解数据通信的可能方式及其成本。可以分析用户代码以识别执行热点。使用快速估算引擎,在数秒或数分钟而不是数天和数周内,为实际工业问题进行设计空间探索。

为了从具有FPGA加速器的异构多核系统中获得最佳效果,SLX面临着有趣的挑战。目前正在扩展FPGA资源的高级模型,以便如何组织硬件加速。该模型将允许灵活地在每个应用程序的基础上进行架构决策,因此非常适合HLS感知流程。还将实现更准确的性能评估,这对于有效探索解决方案空间非常重要。 SLX工具扩展用于自动HLS感知C代码生成,将无缝切换到HLS工具,最后一步实现使用SLX进行FPGA加速的端到端自动化流程。

HLS是我们应该善待的朋友,也不应该承载我们错误的期望。为了使HLS成为一个方便且不可少的工具,我们需要提高设计抽象和自动化的水平。SLX通过经过检查的应用程序及其输入数据,以及底层平台的描述,即可帮助用户以最小的努力获得最佳设计。通过FPGA加速器实现异构多核编程的完全集成流程的要求为Silexica工程师提供了有趣的问题,敬请期待。

作者介绍:Nikilaos Kavvadias

Nikilaos来自于希腊,于2008年毕业于希腊塞萨洛尼基亚里士多德大学(AUTH)的电子物理学专业,博士研究方向为定制处理器设计方法。从2008年到2012年担任伯罗奔尼撒大学计算机科学与技术系的讲师。2012年1月到2015年7月,加入了Ajax编译器,并帮助实现了高级综合技术的商业化。2015年1月,Kavvadias博士加入Silexica,并担任研发工程师。 研究兴趣包括多核架构的自动软件并行化、高阶综合、特定于应用的处理器设计以及FPGA的系统设计。

编辑:hfy

猜您喜欢

6801贴片电阻,这个小小的元器件在电子电路中扮演着重要的角色。它究竟代表多少阻值呢?简单来说,6801表示的是4.7kΩ的阻值。这个数值是如何得出的呢?其实,...
2024-11-26 11:29:23

在现代科技日益发展的今天,集线器和转接头成为了我们日常生活中不可少的工具。主要优势体现在以下几个方面。集线器和转接头能够有效扩展设备的连接端口,使得用户可以同时...
2008-10-22 00:00:00

折射仪是用于测量物质折射率的重要仪器,其规格尺寸因不同类型和用途而异。实验室常用的折射仪主要分为手动折射仪和自动折射仪两种。手动折射仪的尺寸通常较小,便于携带,...
2020-02-26 00:00:00

贴片电阻R001表示其阻值为0欧姆,也常被称为「零欧姆电阻」或「跳线电阻」。它并非真正意义上的零电阻,实际上仍然存在微小的阻值,通常在几十毫欧以内。那么,既然阻...
2024-11-26 11:29:25

贴片电阻作为电子电路中很重要的元件,其封装方法直接影响着电路板的空间利用率和生产效率。目前市面上常见的贴片电阻封装方法主要有以下几种:首先是01005、0201...
2024-11-29 10:25:49

在现代生活中,检测用品是重要的配件,帮助我们确保产品质量和安全性。无论是食品、化妆品还是工业材料,检测用品都能提供可靠的检测结果。常见的检测用品包括pH试纸、温...
2015-05-27 00:00:00

压敏电阻是具有非线性电阻特性的电子元件,应用于电路保护和信号处理领域。的主要功能是根据施加的电压变化而改变其电阻值,从而在电路中起到限制电流、保护元件的作用。本...
2025-04-15 05:30:03

数字化时代,网络技术的发展日新月异。其中,DFN10(DeutschesForschungsnetz10)作为德国研究网络的重要组成部分,以其高效的传输能力和广...
2025-02-21 12:33:20

贴片电阻,作为电子电路中不可或缺的元件,其型号规格繁多,常常让工程师和电子爱好者在选型时感到困惑。为了方便查找,我们整理了这份贴片电阻型号规格表大全,涵盖了常用...
2025-04-14 15:02:22

肖特基二极管是应用于电子电路中的元件,由于其低正向压降和快速开关特性,常被用于整流、开关电源和信号处理等领域。在实际使用中,肖特基二极管可能会因为过载、温度过高...
2025-03-28 20:30:34