系统与设计
的意见

使用HLS FPGA设计的挑战

如何提高生产力在fpga开放他们更广泛的技能。

受欢迎程度

高级合成(HLS)工具,将C / c++源代码Verilog /硬件描述语言(VHDL),商用已经超过15年了。HLS FPGA供应商和EDA工具公司承诺提高生产力,通过一个更高级别的抽象,更快验证和设计迭代。例如,模拟设计C / c++可以10到100倍的速度比模拟在RTL(过户)。此外,图像处理和计算机视觉中的许多应用程序需要一个视觉验证。这样很难验证设置在执行RTL模拟,但可以很容易地实现在C级别。模拟实现增长速度在使用一个基于HLS方法导致更快的设计迭代,大大提高生产力。快速模拟导致更快的设计迭代。

HLS可能打开使用fpga使用更广泛基础的工程师,专门从事嵌入式软件编程。传统方法设计fpga需要非常专业的技能和熟练程度在描述设计等硬件描述语言(HDL) Verilog或硬件描述语言(VHDL)。这个技能非常罕见的嵌入式软件开发人员相比,限制了使用fpga只有那些经验丰富的编码在一个高密度脂蛋白。HLS允许嵌入式软件开发人员(硬件工程师)来实现算法的硬件使用高级语言,如C / c++。

如果使用HLS FPGA设计的好处是如此巨大,为什么没有在C / c++设计FPGA成为标准设计输入方法?

HLS设计方法采用一个简单的答案是,在现实世界中确实会遭遇一些特别的挑战,在设计过程中必须考虑和克服。这些挑战可能导致更多的工作通过设计师因此需要更多的开发时间,开始否定HLS的生产率增长。让我们来看看五个挑战:

1。C / c++代码由HLS non-synthesizable编译器
C / c++编码指南HLS编译器是广泛的,可以超过1000 +页的文档写作时需要理解或重构HLS合成C代码。HLS不支持内存访问作为一个例子,在一个动态变量大小的数组。和给定的FPGA器件内部的内存数量是固定的,这意味着代码动态分配对象的变量大小与调用等功能malloc, calloc和新,不支持。HLS工具必须知道所需的内存资源所需的一种算法在编译时间,为了产生一个高效的硬件实现。

2。“Non-Hardware意识到C / c++代码
创建C / c++代码与各种内存结构、数据类型等硬件实现不因素能产生意想不到的后果,包括膨胀的设备资源和缓慢的性能。必须注意避免使用太大,不需要的数据类型。例如,使用一个32位整数在软件时只需要一个10位的整数是无关紧要的映射到一个标准的处理器寄存器或内存位置已经有一个固定大小的,然而在硬件实现时那些未使用的部分变得昂贵,因为他们消耗宝贵的FPGA资源。

3所示。识别并行性
C / c++代码通常是顺序执行标准处理器但是在逻辑门实现功能允许操作并行执行,在硬件加速的执行代码。确定潜在的并行性存在的设计是非常艰巨的,而且会耗费大量的时间,尤其是在复杂的算法,代码库函数,或增加。

4所示。软件和硬件分区
异构设计与嵌入式处理器在这种情况下(FPGA),识别处理器上运行什么,搬到硬件利用FPGA的并行特性HLS可以花大量的时间和许多织物通过迭代,即使进行pre-synthesis模拟。

5。将HLS编译器语法或指令插入到C / c++代码
为了HLS编译器能够有效地实现软件到硬件的用户必须为编译器提供指导,在语法的形式或指令。确定何时使用语法,如何设置它们的参数,同时插入代码和优化应用程序中的一个系统级的语法是具有挑战性的和费时。

总的来说,这些挑战提出一个重大的障碍,对于那些想利用HLS设计的好处。HLS供应商提供全面的文档和培训教育客户如何应对这些挑战,但它仍是一个手动过程,需要时间去掌握。直到现在…

Silexica基金FPGA的工具,基于10多年的编译器技术的研究,提供了切实可行的解决方案来解决这些挑战本文中讨论的挑战通过HLS设计过程的每一步。

首先,基金FPGA分析C / c++源代码synthesizability并提供自动和引导non-synthesizable代码的代码重构。基金向用户介绍每个部分的代码non-synthesizable并自动转换代码或提供指导如何重构代码synthesizable。

在未来的版本中,基金FPGA将确定non-HW友好的数据结构导致低效的硬件实现。基金工具也将提供一种方法进行快速“如果”分析,看看各种数据类型选项为更高效的实现是可行的。

基金FPGA地址的下一个挑战是分析算法或应用程序的并行性,可以转换顺序执行并行和流水线执行。通过识别并行,基金提供了最有效的硬件实现的C / c++代码。如果使用FPGA嵌入式处理器系统中,FPGA基金还可以提供指导的最有效率的分布SW和HW域之间的代码。

最后,已经定义了SW和HW分区后,基金FPGA语法然后再插入到HLS编译器代码,这样就可以实现在HW优化编译C / c++。

基金FPGA是业内第一个工具直接地址使用HLS设计流的挑战,降低学习曲线通过提供可行的见解将C / c++代码转化为一个优化HW实现。



留下一个回复


(注意:这个名字会显示公开)

Baidu