面向 FPGA 的 ESL 工具
逻辑设计领域正在发生根本变化。新一代设计工具帮助软件开发者将其算法表达直接转换成硬件,而无需学习传统的硬件设计技术。
这些工具及相关设计方法学一起被归类为电子系统级 (ESL|0">ESL) 设计,广泛地指从比目前主流的寄存器传输级 (RTL) 更高的抽象级别上开始的系统设计与验证方法学。与硬件语言如 Verilog 和 VHDL比起来,ESL 设计语言在语法和语义上与流行的 ANSI C 比较接近。
ESL 与 FPGA 有何关系?
ESL 工具已经存在了一段时间,而许多人觉得这些工具主要专注于 ASIC 设计流程。然而事实上,越来越多的 ESL 工具提供商正在专注于可编程逻辑;目前,市场上有多种工具支持专为赛灵思® FPGA 而优化的系统设计流程。ESL 流程是对 FPGA 设计工具的一种自然演进,可以使更多和更广泛以软件为中心的用户群更容易地使用可编程硬件的灵活性。
我们来考虑一些由 ESL 和 FPGA 构成重大组合的情景:
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 编译器允许通过在 FPGA 的可编程结构中创建定制加速器块,来加速在处理器中运行的时间关键功能或瓶颈功能。
除创建加速器外,这些工具还可以自动推断存储器并生成所需的硬件-软件接口电路,以及实现处理器与硬件加速器块之间通信的软件设备驱动程序(图 2)。与运行在 CPU 中的代码相比,FPGA 加速的代码其运行速度可以快几个数量级,而消耗的功率则大大降低。
- 一种基于FPGA的接口电路设计(11-18)
- 利用Virtex-5 FPGA实现更高性能的方法(03-08)
- 设计性能:物理综合与优化(04-28)
- 使用 PlanAhead Design 工具提高设计性能(04-28)
- 采用灵活的汽车FPGA 提高片上系统级集成和降低物料成本(04-28)
- FPGA协同处理的优势(04-29)