Flexible H-Tree概述
在多年以前,诸多对国际大厂面对不断增长的高性能和低功耗要求以及日益复杂的芯片时钟结构等难题,在传统的时钟树综合技术(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结构对高性能设计有较明显优势,而在低功耗时钟树设计方面的改善极小甚至对功耗有害,因此在实际设计中还是需要考虑具体情况。
网友评论