面向 FPGA 的 ESL 工具
逻辑设计领域正在发生根本变化。新一代设计工具帮助软件开发者将其算法表达直接转换成硬件,而无需学习传统的硬件设计技术。
这些工具及相关设计方法学一起被归类为电子系统级 (ESL|0">ESL) 设计,广泛地指从比目前主流的寄存器传输级 (RTL) 更高的抽象级别上开始的系统设计与验证方法学。与硬件语言如 Verilog 和 VHDL比起来,ESL设计语言在语法和语义上与流行的 ANSI C 比较接近。
ESL与FPGA有何关系?
ESL 工具已经存在了一段时间,而许多人觉得这些工具主要专注于 ASIC 设计流程。然而事实上,越来越多的 ESL 工具提供商正在专注于可编程逻辑;目前,市场上有多种工具支持专为赛灵思®FPGA而优化的系统设计流程。ESL 流程是对FPGA设计工具的一种自然演进,可以使更多和更广泛以软件为中心的用户群更容易地使用可编程硬件的灵活性。
我们来考虑一些由 ESL 和 FPGA 构成重大组合的情景:
- ESL 工具和可编程硬件一起构成一个基于桌面的硬件开发环境,符合软件开发者的工作流程模型。工具可提供针对特定的基于 FPGA 的参考板的优化支持,软件开发者可以利用这些支持启动项目评估或原型构建。这些板及相应的参考应用程序均使用更高级别的语言编写,这使创建定制的、硬件加速的系统更为快速和容易。实际上,现在软件程序员能够以使用微处理器参考板及工具大体相同的方式,使用基于 FPGA 的参考板及工具。
- 通过使用现在FPGA 中已很普遍的高性能嵌入式处理器,软件和硬件设计组件可以装入到一个器件中。从系统的软件描述开始,您可以根据应用程序的性能要求,将每个设计块用硬件或软件来实现。ESL 工具支持智能分割和软件功能到等效硬件功能的自动导出,从而增加了价值。
ESL 提升了“探测式设计和优化”的概念。ESL 方法学与可编程硬件的结合使用,使尝试大量可能的应用实现以及对极大不同的软件/硬件分割策略快速进行实验成为可能。这种实验的能力——尝试新方法和快速分析性能与尺寸平衡——使 ESL/FPGA 用户能够比使用传统的 RTL 方法以更短的时间实现更高的总体性能。
此外,通过在更抽象的级别上工作,您可以使用更少的击键和更少的代码行来表达您的意图。这通常意味着快得多的设计完成,和更少的犯错机会,而这些错误将需要繁杂的、低级调试。
ESL 的目标受众
ESL 流程对预期 FPGA 用户的主要好处是其生产率和易用性。通过将产生硬件电路的实现细节进行抽象,这些工具向以软件为中心的用户群(图 1)发出了召唤。在更高的抽象级别上工作,使拥有 C 语言等传统软件编程语言技能的设计者能够更快地以硬件探究其想法。在大多数情况下,您可以无需经验丰富的硬件设计者的帮助而完成整个设计的硬件实现。
以软件为中心的应用程序和算法开发者已将该方法的优点应用于 FPGA,他们包括系统工程师、科学家、数学家、和嵌入式与固件开发者。
适合 ESL 方法学的应用程序的特征包括具有大量内循环的计算密集型算法。这些应用程序可以通过硬件中的并发并行执行实现巨大加速。ESL 工具已在音频/视频/图像处理、加密、信号与分组处理、基因排列、生物信息、地球物理和天体物理等应用领域成功帮助进行了项目部署。
ESL 设计流程
与 FPGA 相关的 ESL 工具包含两个主要设计流程:
1、高级语言 (HLL) 综合。HLL 综合覆盖算法或行为综合,可从 C 或C类的软件语言生成硬件电路。各种合作伙伴解决方案采用不同的方法将高级设计描述转换为 FPGA 实现。如何完成这一点构成了各种 ESL 产品之间的根本不同。
您可以将 HLL 综合用于各种应用情况,包括:
- 模块生成。在这种使用模式下,HLL 编译器可以将以 C 表示的功能块(例如一个 C 子程序)转换成相应的硬件块。生成的硬件块随后被收入整个硬件/软件设计。这样,HLL 编译器生成了整个设计的一个子模块。
模块生成通过快速生成,然后集成算法硬件组件,允许软件工程师参与整个系统的设计。那些寻求以更快的方式构建新的、以计算为导向的硬件块的硬件工程师们,也可以使用模块生成。 - 处理器加速。在这种使用模式下,HLL 编译器允许通过在 FPGA 的可编程结构中创建定制加速器块,来加速在处理器中运行的时间关键功能或瓶颈功能。
除创建加速器外,这些工具还可以自动推断存储器并生成所需的硬件-软件接口电路,以及实现处理器与硬件加速器块之间通信的软件设备驱动程序(图 2)。与运行在 CPU 中的代码相比,FPGA 加速的代码其运行速度可以快几个数量级,而消耗的功率则大大降低。
2、系统建模。对于大型设计,或处理器用作整个设计的一部分时,使用传统的 RTL 模型进行系统仿真可能会非常慢。一种流行的新兴 ESL 方法采用了高速事务级模型,通常使用 C++ 编写,以大大加快系统仿真速度。
ESL 工具为您提供了一种基于虚拟平台的验证环境,您可以在其中分析和调整设计的功能和性能属性。这意味着可以更早使用系统的虚拟表示,实现更大的设计探索和假设分析。
您可以评估和改进性能问题,如延迟、吞吐率和带宽,以及选择性的软件/硬件分割策略。一旦设计满足性能目标,就可将其付诸硅实现。
![]() |
图 1:大多数用于 FPGA 的 ESL 工具均针对以软件为中心的用户群。 |
图 2:ESL 工具抽象了在 FPGA 中加速处理器应用程序有关的细节。 |
ESL 工具提供商面临的挑战
相对而言,面向 FPGA 的 ESL 工具对市场来说是新生事物;客户接受仍然是一个关键挑战。ESL 工具提供商面临的最大挑战之一,是需要克服人们对 ESL 和 FPGA 能够做什么,已存在哪些解决方案和功能,以及该技术的实际用途和优点等问题的普遍性认识不足。其他挑战还包括用户对结果质量的理解和关注以及与 ESL 接受相关的学习曲线。
尽管一些如由 ESL 引入的范例转换,需要长时间才可为现有 FPGA 用户社区完全接受,我们仍需要解决目前阻碍接受的一些关键问题。这一点尤为重要,因为今天的 ESL 技术已做好准备,向潜在的大量目标受众提供重大实践价值。
赛灵思 ESL 倡议
赛灵思认为 ESL 工具具有极大地改变硬件和软件设计者创建、优化和验证复杂电子系统方式的潜力。为了将这一新兴技术的全部优点带给客户,和建立一种适用于特别针对 FPGA 的 ESL 技术的公共平台,赛灵思积极联络其生态系统合作伙伴,成立了协作性的联合 ESL 倡议(表 1)。
![]() |
表 1:赛灵思 ESL 合作伙伴采用从高级语言到 FPGA 实现的不同方法。 |
该倡议的宗旨是加快针对 FPGA 的 ESL 创新步伐,和使该技术更贴近以软件为中心的用户群的需求。作为倡议的一部分,有以下两个重点:
- 工程协作。赛灵思将与合作伙伴紧密合作,继续进一步提升 ESL 产品阵营的价值。这将包括改进编译器结果质量和增强工具互操作性及总体易用性等工作。
- ESL 认识与宣传。赛灵思将向当前及预期新客户宣传面向 FPGA 的 ESL 流程的价值和优点。该计划将试图告知和教育用户有关目前已有 ESL 解决方案类型的知识,以及各种产品如何提供解决现有问题的更好方法。目的是帮助用户就各种合作伙伴 ESL 产品满足其专用需求的适合性做出信息全面的决策。更大的认识将导致客户接受度提高,反过来又会促进可持续的面向 FPGA 的合作伙伴 ESL 生态系统。
开始使用 ESL
作为构筑各种面向 FPGA 的 ESL 努力的更大认识的第一步,赛灵思已组合各种资源推出了一个全面的 ESL 网站。其内容涵盖目前市场上每个合作伙伴 ESL 解决方案的专门及独特方面,旨在帮助您决定哪个(若有的话)可用解决方案最适合您的应用。要开始您的 ESL 导向,请访问 www.xilinx.com/esl。
此外,赛灵思还开设了一个新的面向 FPGA 的 ESL 论坛,地址为:http://toolbox.xilinx.com/cgi-bin/forum。在这里,您可以参与针与面向 FPGA 的 ESL 设计有关的各种主题的讨论。
结论
面向 FPGA 的 ESL 工具为您提供了通过可编程硬件探索您的想法而无需学习与硬件设计有关的低层细节的能力。今天,您有机会从广泛的创新和生产率增强解决方案中选择专门针对赛灵思 FPGA 优化的解决方案。随着 ESL 倡议的正式发布,赛灵思全面投入与第三方生态系统的合作,力图为当前及潜在未来客户提供最佳的 ESL 工具。面向持续更新和新开发随时做好准备。
作者:Milan Saini 技术营销经理 赛灵思公司 @xilinx.com">milan.saini@xilinx.com
评论