面向FPGA的ESL工具
扫描二维码
随时随地手机看文章
逻辑设计领域正在发生根本变化。新一代设计工具帮助软件开发者将其算法表达直接转换成硬件,而无需学习传统的硬件设计技术。
这些工具及相关设计方法学一起被归类为电子系统级 (ESL) 设计,广泛地指从比目前主流的寄存器传输级 (RTL) 更高的抽象级别上开始的系统设计与验证方法学。与硬件语言如 Verilog 和 VHDL比起来,ESL 设计语言在语法和语义上与流行的 ANSI C 比较接近。
ESL 与 FPGA 有何关系?
ESL 工具已经存在了一段时间,而许多人觉得这些工具主要专注于 ASIC 设计流程。然而事实上,越来越多的 ESL 工具提供商正在专注于可编程逻辑;目前,市场上有多种工具支持专为赛灵思® FPGA 而优化的系统设计流程。ESL 流程是对 FPGA 设计工具的一种自然演进,可以使更多和更广泛以软件为中心的用户群更容易地使用可编程硬件的灵活性。
我们来考虑一些由 ESL 和 FPGA 构成重大组合的情景:
1. ESL 工具和可编程硬件一起构成一个基于桌面的硬件开发环境,符合软件开发者的工作流程模型。工具可提供针对特定的基于
FPGA 的参考板的优化支持,软件开发者可以利用这些支持启动项目评估或原型构建。这些板及相应的参考应用程序均使用更高级别的语言编写,这使创建定制的、硬件加速的系统更为快速和容易。实际上,现在软件程序员能够以使用微处理器参考板及工具大体相同的方式,使用基于 FPGA 的参考板及工具。2. 通过使用现在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)。
来源:零八我的爱0次