微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 面向FPGA的电子系统级 (ESL) 设计工具

面向FPGA的电子系统级 (ESL) 设计工具

时间:10-07 来源:互联网 点击:
逻辑设计领域正发生着根本变化,新一代设计工具能够帮助软件开发者将其算法表达直接转换成硬件,而无需学习传统的硬件设计技术。这些工具及相关设计方法学一起被归类为电子系统级 (ESL) 设计,广义上指从比目前主流的寄存器传输级 (RTL) 更高的抽象级别上开始的系统设计与验证方法学。与硬件语言如 Verilog 和 VHDL比起来,ESL 设计语言在语法和语义上与流行的 ANSI C 比较接近。

ESL 与 FPGA 的关系

ESL 工具已经存在了一段时间,而许多人觉得这些工具主要专注于 ASIC 设计流程。然而事实上,越来越多的 ESL 工具提供商正在专注于可编程逻辑。ESL 流程是对 FPGA 设计工具的一种自然演进,可以使更多和更广泛以软件为中心的用户群更容易地使用可编程硬件的灵活性。

我们来考虑一些由 ESL 和 FPGA 构成重大组合的情景。

1. ESL 工具和可编程硬件一起构成一个基于桌面的硬件开发环境,符合软件开发者的工作流程模型。工具可提供针对特定的基于 FPGA 的参考板的优化支持,软件开发者可以利用这些支持启动项目评估或原型构建。这些板及相应的参考应用程序均使用更高级别的语言编写,这使创建定制、硬件加速的系统更为快速和容易。实际上,现在软件程序员能够以使用微处理器参考板及工具大体相同的方式,使用基于 FPGA 的参考板及工具。

2. 通过使用现在FPGA 中已很普遍的高性能嵌入式处理器,软件和硬件设计组件可以装入到一个器件中。从系统的软件描述开始,您可以根据应用程序的性能要求,将每个设计块用硬件或软件来实现。ESL 工具支持智能分割和软件功能到等效硬件功能的自动导出,从而增加了价值。ESL 提升了“探测式设计和优化”的概念。ESL 方法学与可编程硬件的结合使用,使尝试大量可能的应用实现以及对极大不同的软件/硬件分割策略快速进行实验成为可能。这种实验的能力——尝试新方法和快速分析性能与尺寸平衡——使 ESL/FPGA 用户能够比使用传统的 RTL 方法以更短的时间实现更高的总体性能。通过在更抽象的级别上工作,您可以使用更少的击键和更少的代码行来表达您的意图。这通常意味着更快地完成设计,和更少的犯错机会,而这些错误将需要繁杂的、低级调试。



图 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 工具为您提供了一种基于虚拟平台的验证环境,您可以在其中分析和调整设计的功能和性能属性。这意味着可以更早使用系统的虚拟表示,实现更大的设计探索和假设分析。

您可以评估和改进性能问题,如延迟、吞吐率和带宽,以及选择性的软件/硬件分割策略。一旦设计满足性能目标,就可将其付诸硅实现。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top