新一代高级综合 (HLS) 工具目前用于两个主要目的。首先是出于性能原因在硬件中实现软件。第二个是出于生产力、重用、架构探索和更好的结果质量 (QoR) 的原因,将半导体设计推向更高的抽象级别。
同时,一种新的寄存器传输级 (RTL) 综合方法称为芯片综合,它比以往任何时候都更容易实现对最终性能的快速准确评估,而无需创建完整的物理实现。结合这两种技术,设计人员可以快速改变设计参数,获得正确的性能数字,并在面积、性能和功耗方面达到最佳组合的设计。
更大的马力,更好的抽象
各类嵌入式软件,尤其是高清视频处理等具有高吞吐量要求的软件,经常会遇到性能问题。虽然可以使用一些软件方法来提高性能,但当性能下降几个数量级时,唯一可行的方法是更改运行软件的底层计算结构,这可能就像切换到多核处理器一样简单。然而,通常由于功率或成本的原因,改变计算结构并不是最优的。
HLS 是一种越来越有吸引力的方法,它采用软件的一部分并在硬件中自动实现它,无论是在片上系统 (SoC) 上的原始门中,还是在 FPGA 中更好。AutoESL 的 AutoPilot 是一个将 C、C++ 或 SystemC 作为输入并快速生成 RTL Verilog 或 VHDL 作为输出的工具的示例。
与此同时,SoC 设计人员正在寻找将设计推向更高抽象层次的方法,用 C 或 SystemC 描述他们的算法,自动将其转换为 RTL 代码,并达到面积(成本)的正确权衡点,功率和性能。通过在更高级别上工作,设计人员可以显着提高他们的生产力,并确保 QoR 接近或优于手动编码结果。同样,HLS 工具是执行从输入到 RTL 代码的优化转换的链接。然后,传统的 RTL 实现流程可以接管。
进入评估
说 HLS 使硬件编译像软件的 C 语言编译一样简单可能有些夸张,但它确实使软件到硬件的转换变得简单,尤其是与手动创建复杂的 RTL 实现相比。硬件编译比软件编译更复杂的一个原因是 HLS 工具需要考虑一组更丰富的权衡。
例如,数据路径可以简单地实现、流水线化或复制。这些选项中的每一个都具有不同的性能、面积和功率特性,其变化因子高达 1,000。可以为 HLS 工具提供指令,以将实现导向设计人员想要的最佳位置。但是有一个问题:鉴于 HLS 的输出是 RTL 代码,设计人员如何快速确定特定候选实现的面积、功耗和性能?
缺少的环节是难以评估这些特征并获得有关任何问题的快速反馈。虽然 HLS 工具提供了合理但相当粗略的估计,但通常需要更高的准确性。但是,用于将 RTL 代码缩减为实现的传统工具的性能与 HLS 工具的性能之间存在不匹配。
尽管 HLS 运行速度极快(大约一个小时左右),但减少 RTL 实现以实现准确的性能可能需要半天的综合时间,然后是一天半的物理设计。这几乎不是 HLS 用户想要的快速反馈循环,因为它浪费了每天迭代五到六次的潜力,并将其最小化为每周几次。这些较新的 HLS 工具的功能与语言无关,可以同时优化时序、面积和性能,从而生成高度可实现的 RTL 代码,但被下游 RTL 综合边缘化。
块和芯片
另一个细微差别是,块的详细性能不仅取决于块本身,还取决于它周围的其他块。有时,从高层综合的整个设计包括传统模块、第三方 IP 模块和在 RTL 级别手工设计的模块。当这些块一起实现时,任何特定块的性能都与共享某些相同物理资源的其他块的性能相互关联。
对于传统的 RTL 综合,设计人员面临着一个没有吸引力的选择:快速但粗略的反馈或准确但极慢的反馈。所需要的是一种提供快速和准确反馈的方法。Oasys Design Systems 的 RealTime Designer 等芯片综合工具提供了这种功能组合。
芯片综合通过直接将 RTL 代码简化为布局元素来运行,因此与传统综合相比具有两大优势:布局和布线。这个过程很快,而且时间和尺寸数据与最终实现设计时最终获得的数据有很好的相关性。HLS 和芯片综合的结合使获取大量 C 代码并快速获得性能和面积的出色估计成为可能。这使设计人员可以更有效地专注于最合适的实施位置。此外,由于芯片合成可以快速处理巨大的块,它可以合成正在设计的块以及影响性能的周围块。
区别很明显
芯片合成的工作方式与传统合成不同。一旦 RTL 代码被解析,它就会被分割(基于连通性)成更小的段,最终将被简化为门。每个分区都足够小,不会包含任何长线,这会导致时序的高度可变性,并且足够大,可以包含具有潜在不同区域/时间权衡的实现。每个分区都独立于其他分区。当然,需要所有其他分区的时序编号才能对整个芯片进行计时,但并不需要同时要求每个分区的详细内部结构。因为不再需要在门级同时查看整个芯片,所以减少了内存需求。
RTL 分区方法是芯片综合能够如此快速和有效的主要原因。通过在更高的层次上运行,这种方法一次智能地综合和计时设计一个分区。然后,在满足时序之前,它会重新综合、替换(并更新全局路由)并重新划分设计的各个部分,直到满足约束条件。
使用最新的 HLS 和芯片合成技术在更高水平上工作会产生数量级的更好性能。对于 HLS 创建的典型设计规模,芯片综合的运行时间与 HLS 大致相同。将这两种创新技术结合使用意味着可以在一两个小时内对设计进行迭代,从而每天可以考虑多次试验实施。通过这种方法腾出的额外时间可以用于更紧凑的时间表或探索更丰富的替代空间。
审核编辑:郭婷
-
FPGA
+关注
关注
1626文章
21671浏览量
601914 -
芯片
+关注
关注
454文章
50430浏览量
421887 -
soc
+关注
关注
38文章
4122浏览量
217952
发布评论请先 登录
相关推荐
评论