
图 1 大多数用于 FPGA 的 ESL 工具均针对以软件为中心的用户群
ESL 的目标受众
ESL 流程对预期 FPGA
用户的主要好处是其生产率和易用性。通过将产生硬件电路的实现细节进行抽象,这些工具向以软件为中心的用户群(图
1)发出了召唤。在更高的抽象级别上工作,使拥有 C
语言等传统软件编程语言技能的设计者能够更快地以硬件探究其想法。以软件为中心的应用程序和算法开发者已将该方法的优点应用于
FPGA,他们包括系统工程师、科学家、数学家、和嵌入式与固件开发者。适合 ESL
方法学的应用程序的特征包括具有大量内循环的计算密集型算法。这些应用程序可以通过硬件中的并发并行执行实现巨大加速。ESL
工具已在音频/视频/图像处理、加密、信号与分组处理、基因排列、生物信息、地球物理和天体物理等应用领域成功帮助进行了项目部署。

图 2 ESL 工具抽象了在 FPGA 中加速处理器应用程序有关的细节
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
工具为您提供了一种基于虚拟平台的验证环境,您可以在其中分析和调整设计的功能和性能属性。这意味着可以更早使用系统的虚拟表示,实现更大的设计探索和假设分析。
您可以评估和改进性能问题,如延迟、吞吐率和带宽,以及选择性的软件/硬件分割策略。一旦设计满足性能目标,就可将其付诸硅实现。
赛灵思 ESL 倡议
赛灵思认为 ESL
工具具有极大地改变硬件和软件设计者创建、优化和验证复杂电子系统方式的潜力。为了将这一新兴技术的全部优点带给客户,和建立一种适用于特别针对
FPGA 的 ESL 技术的公共平台,赛灵思积极联络其生态系统合作伙伴,成立了协作性的联合 ESL 倡议(表 1)。
该倡议的宗旨是加快针对 FPGA 的 ESL
创新步伐,和使该技术更贴近以软件为中心的用户群的需求。作为倡议的一部分,有以下两个重点:
1. 工程协作。赛灵思将与合作伙伴紧密合作,继续进一步提升
ESL产品阵营的价值,包括改进编译器结果质量和增强工具互操作性及总体易用性等工作。
2. ESL 认识与宣传。赛灵思将向当前及预期新客户宣传面向 FPGA 的 ESL
流程的价值和优点。该计划将试图告知和教育用户有关目前已有 ESL
解决方案类型的知识,以及各种产品如何提供解决现有问题的更好方法。目的是帮助用户就各种合作伙伴 ESL
产品满足其专用需求的适合性做出信息全面的决策。

表 1 赛灵思 ESL 合作伙伴采用从高级语言到 FPGA 实现不同方法
结语
面向 FPGA 的 ESL
工具为您提供了通过可编程硬件探索您的想法而无需学习与硬件设计有关的低层细节的能力。今天,您有机会从广泛的创新和生产率增强解决方案中选择专门针对赛灵思
FPGA 优化的解决方案。随着 ESL 倡议的正式发布,赛灵思全面投入与第三方生态系统的合作,力图为当前及潜在未来客户提供最佳的
ESL 工具。面向持续更新和新开发随时做好准备。