首页 > 范文大全 > 正文

在Encounter中实现网格+局部树的时钟设计流程

开篇:润墨网以专业的文秘视角,为您筛选了一篇在Encounter中实现网格+局部树的时钟设计流程范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文提出了一种新的方法,可以在encounter实现全局网格局部树(MLT)流程。通过在时钟设计流程中利用CTS和时钟网格的优势,可以确保MLT具有更小的偏差,并进一步优化网格结构以降低功耗。在全局网格结构中,MLT可以提供真实的负载累加值,而不是估计值。这一流程还有一个特性就是可以为多电源电压(MSV)时钟设计提供基本的支持。

关键词:Encounter;全局网络;局部树

引言

时钟分布网络的设计一直是高性能芯片设计中的一个重大挑战。在集成数千万甚至上亿个晶体管后,要将时钟信号接近零偏差地传输到芯片每一个局部区域是非常困难的。设计者需要强大稳定的时钟设计流程。在SoC Encounter中,有两个工具可用来设计时钟分布:CTS(时钟树综合)和时钟网格。

对于有非常严格的时钟偏差规格的ASIc芯片,普通的CTS或单一时钟网格难以满足客户需求。

本文提出了一种可实践的设计流程,在Encounter中实现MLT(全局网格加局部树)的架构。需要表明,在这一流程中,MLT网络综合可以产生小的偏差以及合适的功耗。这一流程的另一个特性是它对MSV时钟设计提供了基本支持。借此为混合MLT方法建立一个参考性的流程。

MLT架构

在实际的设计中,时钟分布网络通常被划分为两部分:全局的和局部的时钟网络。全局的时钟网络将时钟信号从时钟源传输到局部区域。通常它有一个对称的结构。局部时钟网络进一步将时钟信号传送给局部区域中的大量时钟元素。它的结构通常是非对称的,因为寄存器的位置并不一定是规则的。

如图1所示,MLT时钟网络有一个顶层的网格结构以及以网格为根结点的局部树。

局部树的构建

基于树的架构具有简洁的优势,并且需要的布线资源也更少,因而比基于网格的架构具有更低的功耗。在许多布线和缓冲器插入算法的基础上,CTS可以为时钟分布提供一个良好的结果。由于实现了自动化,CTS还具有缩短ASIC芯片设计循环次数的优点,因此被广泛使用于实际的设计中。

如今,高频和数百万门电路的ASIC芯片(具有高度非标准寄存器分布)需要更严格的时钟偏差,以满足全局的时钟分布。尽管CTS仍然可以很好的处理局部网络,但全局树正变得更加复杂,因此采用单一的方法(CTS)不再能满足设计规格的要求。

全局网格的构建

在高性能系统中,时钟网格更适于降低时钟偏差。在SocEncounter中,半自动化的时钟网格工具可以被用于构建顶层的网格结构。像树型结构一样,时钟网格通常使用一种多级结构将时钟信号从根结点传输至所有的时钟元件(触发器、存储器等)。在Encounter中,网格可以被划分为三部分:顶层链,全局网格,局部分布,如图2所示。

多级网格结构具有如下特点:

1 顶级链为网格的前级驱动提供合适的输入转换时间,或为网格增加额外的插入延迟。这种串联的缓冲器链在整个网格结构中是可选的;

2 局部树也是一个可选部分。使用局部树可能比在主驱动级直接连接网格与触发器更有优势。然而,对于含有大量不规则触发器的大的时钟域,这一部分的定义并没有被规格化,结果是难以预料的。如果不定义局部树的结构,时钟网格会平衡所有网格段的偏差,但这种分析处理的结果未必合适。因此只需专注于全局网格结构,让CTS去完成局部的分布;

3 全局网格使用多个(零或更多)前级驱动级,然后是一次主驱动级。主驱动级用来驱动一个最终的全局网格线网,它是一个规则的网格结构。最终的网格驱动器驱动主干和分支的网格。两个相邻的网格节点之间的网格线被称为网格段,在工程师使用这一工具指定分支和主干的间距时,网格段的尺度是可以被规格化的。

目前有多种网格类型被使用。在Encounter中,全局网格可以使用下列类型来综合:

1 H树

这种类型的优势在于前级驱动是高度对称的,对于有许多触发器的大时钟域可以较好地控制偏差。缺点在于它比其它网格类型需要更高的功耗以及布线资源。

2 鱼骨(Hshbone)

基本Fishbone结构的主级驱动对一个主干线网(脊干)使用了多点驱动,而主干线网则驱动许多正交的分支。被多点驱动的前级驱动的主干构成了前级驱动阶段,并被放置在距离下一级的驱动输入足够近的地方。

为了使功耗更低,也更容易构建,我们决定在实际的设计中采用Fishbone结构。

MLT设计流程

MLT设计流程是一个分两阶段的自底向上的过程,即构建底层接近零偏差的局部树;构建上层零偏差的全局网格。

对于步骤1,本文使用自动的CTS。一旦这些树被构建,步骤2需要更多的考量,因为时钟网格在当前的Encounter中支持半自动化。应当根据网格类型、层次数、驱动器的数量和类型、网格布线的宽度和所在层等因素来决定网格的结构。

图3所示为MLT设计流程的细节。它包括局部树和全局网格的综合,也包括对时钟网络调整时钟偏差的分析。

MLT时钟网络综合

这一部分提出了一个针对具有MLT架构的真实设计(含18479个触发器)的实验,其中全局网格将时钟信号传送至多个局部树。局部树缓冲器直接与合适的网格分支相连。

局部树综合

为获得局部树结构,在Encounter中使用自动化的CTS为MLT架构实现了局部树分布方案。目标是为接下来的全局网格综合创建多个局部树。

与通常的CTS不同的是,根据追踪的报告,首先找到一个新的根部引脚,以缩短时钟源节点与末节点间的路径。这个根部引脚直接与末节点相连,不再是最初规格中创建的时钟信号。因此需要重新定义时钟树规格文件中的根引脚,然后运行CTS。为了得到更平衡的局部分布,目标时钟偏差和延迟在第一阶段的综合中会比单个的CTS流程更为严格,门单元也会被适当地添加以平衡全局网格中的负载,并确保网格结构有更低的总功耗。这些都可被定制化以适应用户需求,也更易于生成网格规格文件,图4所示为局部树综合的步骤。

目前Encounter时钟网格还不支持MSV时钟设计,但CTS可以通过在局部树综合阶段自动插入电平转换器来处理这种设计。因而接下来的全局网格可以构建在这些局部树之上。

全局网格综合

本文提出了一种方法,可以减少CTS中插入的缓冲器,并仍然保 持良好的偏差。基于对CTS结果的分析,会发现局部偏差在优化局部分布后得到了很好的控制,这将有利于全局网格综合。在这一阶段,一些缓冲器可以被移除,时钟网格将确定最终的偏差规格。

全局网格构建可以以图5所示的步骤来实现。

类似于CTS,时钟网格需要一个规格来定义时钟域的范围并控制网格结构。在这一阶段,本设计仅保留CTS插入的最后一级的缓冲器或与触发器直接相连的门单元。定义最后一级的单元(最终阶段缓冲器和门单元)作为网格规格文件中的叶子单元,因而网格综合将保留那些叶子单元和被连接的触发器。下面是Encounter中用来综合网格结构的详细命令:

1 specifyClockMesh-file

//包含叶子引脚定义的文件;

2 deleteClockMesh-mesh

//删除指定的网格;

3 specifyClockMesh-file

//在网格规格文件中没有叶子引脚定义;

4 synthe sizeClockMe sh―globalMesh//全局网格综合;

5 report Clock Mesh―delay_detail//详细的延迟报告。

时钟网格规格文件的创建不能像CTS那样自动化,因为它需要用户手动为规格填写时钟网格模板。

处理MsV设计时,可定义电平转换器之前的缓冲器作为叶子引脚,使网格可以在缺省的功耗域(功耗域I)中成功实现,整个时钟网络可以被搭建。在搭建网格时不需要更多的电平转换器,因为局部树(在功耗域II中)已经被先前的CTs工具搭建。

图6所示为MSV网格一局部树结构。

MLT和单一CTS的比较

目前已经在六个测试例子中应用了本文介绍的时钟设计流程。与单一CTS流程相比,MLT在偏差和插入的驱动缓冲器方面比树形架构更好,特别是对那些大的时钟域设计(见表1)。

结语

本文提出了一种在Encounter中构建混合网格/树形时钟网络的通用流程。这项工作中确立的实验基础可以进一步发展,使搭建并分析基于网格的零偏差时钟结构变得更加容易。MLT流程相对于单一CTS流程可实现更小的偏差以及合适的功耗,同时它也支持MSV时钟设计。在流程中,本文提出了基于定义门单元总数的可定制化设计,它可使网格规格文件更易于生成。此外还提出了一种可靠的方式以实现自动化的网格流程。