使用统一的 RTL-to-GDSII 产品更快地实现更佳的结果

Synopsys Editorial Staff

Apr 14, 2020 / 1 min read

作者:产品营销总监Shekhar Kapoor, 高级技术营销经理Mark Richards

每个新的芯片工艺节点都带来了复杂程度的骤然跃升。

但是,如果要在新的工艺节点上突破性能限制,就要面临一个无比艰巨的挑战。

以前您或许可以将许多交互作为二阶或三阶效应予以忽略,但现在不能这样做了。这些捷径已经无法再利用。因此,您和您的团队完成一项高性能设计所需的时间会随着每一代设计更新而激增。利润空间变得狭小、工艺窗口日益紧迫,而且最终设计中将无法容忍丝毫错误。

好消息!改进您的设计工具将会有所帮助,而且有许多小的改变可以暂缓这些问题。此外,有两个重大改变,可以转变工具的操作方式和设计完成的速度。在设计的早期和后期使用统一的单个数据模型,并紧密地集成使用该模型的引擎,可以大大缩短设计时间。具有单个数据模型的 RTL-to-GDSII 统一的解决方案,通过跨越点工具解决方案中固有的传统界限和孤岛(即每个解决方案都有自己的观点和对设计流程的解读),可以设计更快、实现更出色的结果。

传统流程面临的挑战

制约设计师的一个突出因素:完成设计所耗时间,即结果生成时间,又称 TTR。设计收敛会相当耗时,以至于只要设计结果仅仅达到“过得去”,就会宣告大功告成。团队没有时间进行改进或优化;因为任何更改都会触发一组全新的全流程工具运行,并且会将完工时间推迟太久,从而有可能错过市场窗口期。最终导致工程师们不得不把时间花在管理工具上以获得足够好的结果,而不是去做他们更加擅长的事情:权衡取舍以找到l理想解决方案。

TTR 不佳的原因是端到端流程中涉及的各种点工具之间的收敛效果差。

由于每种工具得到的信息有限,它们都只能尽其所能,以产生最符合其自身成功完成任务的解决方案。这也正是作为点工具它们所需要做的。我们将这些片段放到流程中后,这种“平均成功结果”通常无法收敛,并且会给流程中的后续工具施加压力,使其难以弥补差异。所有这些因素加在一起,延长了整体结果生成时间,也让工程师们摸不着头脑,不知道应该调整流程的哪一部分来改进整体系统响应。

这些工具施加的压力还会造成不稳定,从而影响整体的闭合收敛。像综合引擎这样的工具被推向极限时,微小的变化可能被放大,从而极大地改变最终的结果。很难通过调整工具来扭转结果;蝴蝶效应放大了微小的输入变化,给出了非常不同的输出变化,使收敛成为一场噩梦。

两个主要设计阶段

传统的数字设计流程工作在两个主要阶段:逻辑阶段和物理阶段。

工作从高度抽象的逻辑级别开始,指定在工具转换为逻辑之后的高级行为。工具们使用粗略的预估来加快完成任务。此阶段继续推进工作,在设计和验证之间进行迭代,直到收敛性能、功耗和面积(PPA)。

逻辑阶段完成后,物理阶段随之开始。在这一阶段,RTL 中指定的抽象元素被赋予了物理实例:真实的晶体管、电线和无源器件——全部连接在真实的芯片上。物理阶段使用的是与物理现实紧密相关的模型,其取代了逻辑阶段模型中使用的预估。工具变得更精确,但运行速度也更慢。

与逻辑阶段一样,在这个阶段我们再次在物理设计和验证工具之间进行迭代以实现闭合。如果逻辑阶段使用的数字过于不准确,就需要离开物理阶段并返回逻辑阶段,优化逻辑设计之后,才能回到物理设计阶段。

一旦在物理级别完成收敛,最终的设计必须通过详尽的signoff工具确认为可以投产。这些工具可能要运行几天,因为工具确认必须覆盖当前工艺节点的 200 多个角落 (corner)。在这一紧要关头修复发现的错误,无论是资金还是时间的投入都极为巨大,尤其是当小变化导致巨大电路改变时。

两个主要设计阶段

由于在逻辑阶段和物理阶段内需要进行太多的迭代,并且逻辑阶段和物理阶段之间也要进行太多的迭代,因此设计时间(实际工程花费的时间,即工程需要设计人员进行权衡和折中以优化架构的时间)被迫缩短了。

逻辑阶段对物理阶段的数据一无所知,而物理阶段对逻辑阶段的数据也是一无所知。这就对 TTR 造成了影响。

在传统流程中,收敛之所以如此棘手,主要有两个原因。

由一个工具创建并由后续工具使用的数据,通过文件传输进行传递。前者提取了可能存在于内存中的大量数据,以便仅将必要的部分传递给下一个工具。这是一个效率问题,事实上,点工具必须传递特定的文件格式。这意味着每个工具都只能访问传递给它的文件中的数据。在某一点上可能存在许多其他有用的数据,但是如果不包含在文件中,那么就不能用来获得更好的下游结果。

逻辑阶段和物理阶段都有在自己的阶段内提供收敛的引擎。例如,综合工具会有一个计时器、一个寄生参数估计器/提取器,或具有合法化器的定位器,以及全局路由器或拥塞建模器。物理级别的布局和布线则会有自己的此类引擎版本。但是每一组工具由不同的团队创建,每个团队都是自行决定在传输文件中提取哪些数据。因此,操作方式虽然相似,却并不完全相同。这些差异可能导致在阶段内部和阶段之间产生额外的迭代。每一套工具本身都非常好用。只是难以相互协作。

网

使用统一的数据模型

针对这个问题,我们做出的第一个重大改变是使用单一数据模型。无论是逻辑模型还是物理模型,在任何时候都对所有工具可用,无论是逻辑工具还是物理工具。这意味着逻辑引擎可以从物理参数中获得一些线索来改进它们的结果;同样,物理工具可以从设计过程的早期挖掘架构和逻辑意图,从而交付更好的整体解决方案

一个特别有趣的情况是在设计过程的早期阶段,我们正在进行层级规划或评估总体设计的“可实现性”;如能获得目标流程的物理信息,就意味着我们可以创建一个更好的高层布局,一个可以考虑到流程物理特征的布局。在我们继续推进流程时,这个早期的布局自然会得到改进。

另一个例子是时钟综合。由于 ARM 架构依赖跨逻辑分区的周期借用,诸如并发时钟和数据 (CCD) 优化之类的新技术,在高效闭合服务器级 ARM® 内核时至关重要。如果不了解要使用的时钟和数据驱动程序,就无法有效地完成。这就是逻辑阶段所需的物理数据的一个范例。如果没有这些特定的数据,这些工具将不得不对时钟驱动程序的潜力及其隐含的拓扑结构做出假设。如果经过证明,这些假设与实际相去甚远,我们将不得不回到之前,重新规划甚至重新构建整个 CPU 子系统。

集成一组普适的引擎

通过在逻辑和物理阶段使用相同的引擎,我们在方法、算法和假设方面不会再有差异。在设计流程的早期使用的引擎将与以后用于改进和闭合设计的引擎相同,它们依赖于相同的成本计算方法、相同的优化轨迹,以及对整个数据集及其最佳优化方式的相同视角。

请注意,与将不同工具放置在单个集成设计环境 (IDE) 下“统一”流程相比,这种做法则大不相同。IDE 没有为所有工具提供完整的数据访问,也没有确保仅使用一组引擎。一套统一的流程可能包括一个 IDE,但不是负责改进 TTR 和 PPA 结果的 IDE。

两个主要设计阶段 2

统一的模型和流程促进产生更好的结果

采用这种方法设计出来的结果令人鼓舞。例如:

  • 在 7 纳米节点上的数百万个实例设计减少了 10% 的漏电、10% 的总负余量 (TNS)、5% 的动态功耗和 3% 的面积。
  • 在 7 纳米节点上设计了 400 – 600 万个实例,也节省了 6-8% 的功耗,并且 TTR 降低了 40% 以上。
  • 在一个 16 纳米节点上拥有 200 – 500 万个实例的模块减少了三分之一的最差负余量 (WNS),时序违反路径总数 (NVP) 也减少了一半。面积缩
  • 超过 10%,而且集成门控时钟的数量和逆变器/缓冲器的数量也明显下降。TTR 缩短了 90%。
  • 在 28 纳米工艺中拥有 200 – 700 万个实例的模块,其 WNS 和 TNS 减少了一半,面积减少了 10%,标准 VT 晶体管数量减少了 30%,换来了节能 7% 的高 VT 晶体管 (pre-CTS)。
  • 设计 500 – 1000 万个实例可节省 22-37% 的功耗。
  • 一个 ECO 操作的时间从 2 周减少到 1 天,ECO 迭代的数量从 12 减少到 0,并且在不降低结果质量的情况下减少了 2% 的实例。

当然,这其中的一些成就得归功于对特定工具的改进。但很大一部分的这些改进都是由于,仅仅由于,统一的数据模型使每个引擎都可以访问所有内容而取得。

从异构的整合数据模型组转变为单一的统一模型,并在统一的 RTL-to-GDSII 流程中使用单一的引擎组,可能会对 TTR 和 PPA 结果产生重大影响。获取所有数据,使得算法可以变得更加有效。由于逻辑和物理结果之间具有良好的相关性,迭代可以显著减少。

如果我们缩短通过流程管理设计所花费的时间,就可以加快上市速度。同时,我们也可以多花时间去优化结果。我们甚至可以同时实现这两个目标:更快地推出更具竞争力的产品。这也是设计师们最终想要并且应该做的事情。

Continue Reading