8月10日,Cadence中国的用户大会在上海举行。小编有幸也去凑了凑热闹,顺便看看后端技术方面有什么新东西。Flexible H-tree作为Cadence后端工具Innovus的新功能,出现在多个主题演讲中,可以说是今年后端主题无可争议的热点。今天我们来谈谈它到底是什么,以及它的实现方法和具体效果到底如何。
● Flexible H-Tree概述
其实这个概念本身并不新,小编在至少三年前的资料中就看到过这个名词。但是至于为什么今年火起来,小编猜测可能和Innovus在市场上的口碑不错,使用者逐渐增多有关;加上技术可能也日渐成熟,Cadence有意大力推广。
在多年以前,诸多对国际大厂面对不断增长的高性能和低功耗要求以及日益复杂的芯片时钟结构等难题,在传统的时钟树综合技术(CTS)的基础上,开发出了多种特殊的时钟树综合技术,其中最有名的就是以下三种:H-Tree、Fishbone和Mesh。它们的逻辑结构、物理结构、实现难度以及实际效果均各有不同。以下是三种时钟树典型的逻辑结构和物理结构示意图:
在此我们不过多地讨论其他两种,只看H-Tree的结构。H-Tree因其物理形态与字母H相似而得名。其主要特点在于,每一级的driver在物理上通过H形态的金属网络相连,从clock root逐渐扩大并覆盖全部的sink。那么Flexible H-Tree与H-Tree有什么关系,又有什么不同呢?
所谓Flexible H-Tree,简而言之就是Cadence的后端工具Innovus的一个功能,可以使用户更方便快捷地实现H-Tree结构的时钟树综合。在此之前,除了传统CTS之外,包括上述所有的clock手法都需要用户做大量的工作,包括时钟规划、脚本编写、结果确认与改善,虽然可以一定程度上实现自动化,但仍然无法避免大量的手动工作。而Flexible H-tree这种功能可以通过简单地定义几个参数就可以快速实现H-Tree的结构。基本流程如下:
简单来说就是两部:定义H-Tree和进行Flexible H-Tree时钟树综合。在设置中有几个概念需要解释一下,在这里直接借用一下Innovus的官方解释:
上图中主要解释了四个不太容易区分的参数,用户可以在指定这几个参数的基础上方便地实现H-Tree:
有了这些设置,就可以在几乎不需要手动工作的前提下实现H-Tree结构的时钟树。而以此方法实现的H-Tree,默认情况下在Skew、Latency、Clock Power以及其他方面与一般的H-Tree比较应该是没有什么区别的。实际上在现场也有演讲者提到了Flexible H-Tree的PPA等结果,不同corner下latency会比传统CTS有10-20%的改善,timing方便的改善还会更明显一些。
尽管如此,我们仍然需要注意,现场发布出来的结果无疑是针对特定design,在特定工艺下并经过多次尝试得到的结果,无法确保在其他design或者工艺下出现类似或者更好的结果。除此之外,H-Tree结构对高性能设计有较明显优势,而在低功耗时钟树设计方面的改善极小甚至对功耗有害,因此在实际设计中还是需要考虑具体情况。
相关文章
如果大家有任何后端技术与职业发展方面的问题,抑或关于数字后端感兴趣的技术话题想要了解和探讨,欢迎关注我的知乎专栏: 数字IC后端设计工程师修炼之路同时欢迎关注微信公众号:数字后端芯讲堂,一起探讨技术,共同提升!
本极术专栏也会同步更新芯片设计后端的技术干货,也请关注数字IC后端设计工程师修炼之路。