跨时钟域的时钟树构建方法和系统、集成电路及制造方法

文档序号:6501203研发日期:2013年阅读:269来源:国知局
技术简介:
本专利针对跨时钟域时钟树因缺乏公共路径导致时钟偏差大的问题,提出通过物理位置共享优化时钟树结构的方案。发明人发现传统方法仅优化单一钟域,无法解决跨域时钟单元间无共享路径的缺陷,创新性地通过调整时钟单元物理布局,使不同钟域的时钟树在物理空间上重叠,减少工艺偏差影响,提升时钟同步精度和芯片性能。
关键词:跨时钟域,时钟树优化
跨时钟域的时钟树构建方法和系统、集成电路及制造方法
【专利摘要】本发明公开了跨时钟域的时钟树构建方法和系统、集成电路及制造方法。根据本发明的一个方面,提供了一种构建时钟树的方法,该方法包括以下步骤:获取描述集成电路的网表,该网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据;以及基于该网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置。根据本发明,能够优化跨时钟域的时钟树,从而提升集成电路的性能。
【专利说明】跨时钟域的时钟树构建方法和系统、集成电路及制造方法

【技术领域】
[0001]本发明涉及集成电路(IC)设计,更具体地,涉及一种构建时钟树的方法和系统、集成电路及其制造方法。

【背景技术】
[0002]典型的数字IC可以包含大量的逻辑元件和其他电路,以实现其逻辑功能。另外,IC芯片可以包含时钟树(B卩,时钟信号分布网络),用于将在其输入端接收的时钟信号分布到由该时钟信号供应时钟的所有时钟接收端(Sink)。时钟树可以包括导线、缓冲器等,以分布控制IC的逻辑元件和其他电路的定时和操作的时钟信号。时钟接收端(或称接收端)指的是IC中包含的由时钟信号控制以增加时钟树的容量的逻辑元件和其他电路,诸如寄存器(触发器)、RAM、锁存器等。接收端可以根据时钟信号脉冲改变状态,IC通过用相同的时钟信号为时钟域中的各个接收端供应时钟来同步它们的状态改变。
[0003]时钟偏差(clock skew)是评价时钟树性能和质量的一个重要方面。时钟偏差一般指的是来自外部时钟源的时钟信号到达任两个时钟接收端的时间之间的差异(延迟)。由于时钟树的各个分支到达不同时钟接收端的路径长度不同,因此各个时钟接收端间会有一定的时钟偏差。此外,为了将时钟信号传输到IC的每个区域,常常在时钟树中插入时钟单元(例如缓冲器)来放大或重发时钟信号。但是,由于时钟单元具有本征延迟,也可能带来一定的时钟偏差。因而,控制或限制时钟树的缓冲器的级数可以作为提高时钟树性能和IC设计质量的手段之一。理论上,如果到达各个时钟接收端的时钟树的各个分支包含的缓冲器的级数越少,且级数相同,则时钟偏差越小。但是,实际的IC设计很多情况下无法满足上述假设。通过随着数字IC设计的技术演进,公共路径(common path)对于改进时钟树中的偏差和定时变得重要。公共路径一般指的是在时钟树中由多个接收端共享的缓冲器构成的路径。公共路径越长,时钟信号传输到输入端的时钟偏差就越小。传统的技术采用了最大化公共路径的方法,即由接收端尽可能多地共享时钟树中的各级缓冲器。原则上,时钟树中的共享缓冲器越多,公共路径就越大,因而时钟树的性能优化,所设计的IC质量越高。其他的优化时钟树的手段包括例如使用能够减小时钟偏差的高性能的时钟单元(元件)等。


【发明内容】

[0004]本公开的发明人发现传统技术的优化时钟树的上述方案都是针对同一时钟域(clock domain)的时钟树优化。但是,在实际应用中,IC的不同单元或模块在很多情况下需要不同的时钟频率、相位和波形,从而工作在不同的时钟域下。存在跨时钟域的许多数据通信。在这种情况下,由于时钟源完全不同,从逻辑角度看在多个不同时钟域之间根本没有公共路径。最大化同一个时钟域的公共路径的传统手段没有考虑这种情形,不能解决跨时钟域的时钟树性能优化的课题。
[0005]因此,本发明人认识到IC逻辑设计存在跨时钟域的时钟树优化的重要需求。
[0006]根据本发明的一个方面,提供了一种构建时钟树的方法,该方法包括以下步骤:获取描述集成电路的网表,该网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据;以及基于该网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
[0007]根据本发明的另一个方面,提供了一种构建时钟树的系统,包括:获取模块,被配置为获取描述集成电路的网表,该网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据;以及构建模块,被配置为基于该网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
[0008]根据本公开的另一方面,还提供一种制造集成电路的方法,该方法采用如根据上述实施方式的构建时钟树的方法来构建集成电路的时钟树。进而,基于网表和所构建的时钟树,采用本领域常用的和工具和方式进行IC设计、制造的后续处理。
[0009]根据本发明的方面,能够优化跨时钟域的时钟树,从而提升集成电路的性能。

【专利附图】

【附图说明】
[0010]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0011]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
[0012]图2示出了根据本发明实施方式的构建时钟树的方法的流程图。
[0013]图3示出了根据本发明实施方式的构建时钟树的方法中的处理的示例性实施例的流程图。
[0014]图4示出了根据本发明实施方式的构建时钟树的方法中的处理的示例性实施例的流程图。
[0015]图5示出了根据本发明实施方式的构建时钟树的方法中的处理的示例性实施例的流程图。
[0016]图6示出了图解根据本发明实施方式的构建时钟树的方法中的处理的示意图。
[0017]图7示出了图解根据本发明实施方式构建的时钟树的示例的示意图。
[0018]图8示出了根据本发明实施方式的构建时钟树的系统的配置的框图。
[0019]图9示出了图8所示的根据本发明实施方式的构建时钟树的系统的进一步配置的框图。
[0020]图10示出了图9所示的根据本发明实施方式的构建时钟树的系统的进一步配置的框图。
[0021]图11示出了图9所示的根据本发明实施方式的构建时钟树的系统的进一步配置的框图。

【具体实施方式】
[0022]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0023]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0024]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0025]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0026]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0027]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言一诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0028]下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0029]也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruct1nmeans)的制造品(manufacture)。
[0030]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0031]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0032]如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0033]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0034]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0035]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0036]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0037]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0038]如前所述,本公开的发明人发现传统技术的优化时钟树的上述方案都是针对同一时钟域的时钟树优化,不能解决跨时钟域的时钟树性能优化的课题。因此,本发明人认识到IC逻辑设计存在跨时钟域的时钟树优化的重要需求。
[0039]如本领域技术人员所理解的,存在许多影响IC的单元之间定时关系的偏差(例如工艺,温度,电压)。单元的时钟偏差可以包括单元的本征延迟以及工艺偏差。工艺偏差又可以包括系统偏差和随机偏差。其中本征延迟可以认为是呈正态分布的采样误差,理论上是不可控的。而工艺偏差,特别是系统偏差,与IC的制造工艺有关,可以通过IC设计的优化进行控制来消减。
[0040]就此,本发明人想到即使逻辑上属于不同时钟域的时钟树不能合并,也可以通过将属于不同时钟域的时钟单元放置为在物理上彼此靠近来减少时钟偏差。即,不同的时钟树之间的物理位置共享可以作为减少偏差(特别是系统偏差)的手段。
[0041]本公开旨在提供使得各个时钟域的时钟树可以在物理上彼此重叠较多(优选地,尽可能彼此重叠)的方案。该方案可以考虑物理和电学规则。在各个时钟域的时钟树在物理上尽可能彼此重叠的情况下,多个时钟域的时钟单元的部件工作在几乎相同的条件(例如工艺,温度,电压)下,这有助于减少时钟域之间的时钟延迟偏差。
[0042]现在参看图2,图2示出了根据本公开实施方式的构建时钟树的方法200示例性流程图。
[0043]如图2,方法200开始于步骤S204。在步骤S204,获取描述集成电路(IC)的网表。在设计集成电路时,会产生集成电路的网表。这个过程通常称为网表设置(netlistplacement)。网表设置一般将网表中的逻辑元件和其他电路分配到集成电路图形上的物理位置。一般地,网表设置产生的网表并不包含时钟树与这些元件和电路之间的连接关系。这些元件和电路包括时钟接收端(或称接收端),即IC中包含的由时钟信号控制的逻辑元件和其他电路,诸如寄存器(触发器)、RAM、锁存器等。因而,该网表包括集成电路的逻辑元件和其他电路的物理位置及其逻辑连接关系的描述。在实践中,这些时钟接收端通常属于多个不同的时钟域。因而,在步骤S204可以获取包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据。
[0044]接着,在步骤S208,基于在步骤S204所获取的网表中的描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据,构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置。即,与未使用本公开方案的各个时钟域的时钟树相比,使用本公开方案构建的时钟树的属于不同时钟域的时钟单元能够共享更多的物理位置。优选地,在步骤S208构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享尽可能多的物理位置。如前所述,本发明人认识到IC逻辑设计存在跨时钟域的时钟树优化的重要需求。就此,构思和提出了构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多(优选地,尽可能多)的物理位置的手段。因而,使得所构建的时钟树消减了不同时钟域之间的时钟偏差。
[0045]作为示例,图3示出了图2所示的构建时钟树的方法200中的构建时钟树处理(S208 )的示例性实施例的流程图。在此以构建跨两个时钟域的时钟树为例进行描述。本领域技术人员理解本发明可以按相似的方式构建跨两个以上时钟域的时钟树。
[0046]首先,在步骤S302,基于网表生成第一时钟域(也称为时钟域A)的第一时钟接收端分布图形拓扑(也称为图A)和第二时钟域(也称为时钟域B)的第二时钟接收端分布图形拓扑(也称为图形B)。如上所述,网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据。利用从网表提取的分别属于时钟域A和B的时钟接收端的物理位置的数据,可以构建属于时钟域A的时钟接收端的分布图形拓扑(图形A)以及属于时钟域B的时钟接收端的分布图形拓扑(图形B)。图形A和图形B的示例参见将在后面进一步解释的图6。上述生成图形A和图形B的处理可以利用本领域已知的时钟树合成工具(CTS)来完成。
[0047]接着,可选地,在步骤S303,确定所生成的图形A和图形B是否至少部分重叠。如前所述,本发明的构思包括使得属于不同的时钟域的时钟单元能够共享更多(优选地,尽可能多)的物理位置。为此,在图形A和图形B根本不重叠的情况下,认为实施本发明的方案将不是优选的。因而,如果步骤S303确定图形A和图形B不重叠,则将结束根据本发明的构建跨时钟域的时钟树的处理。注意,尽管这里以包括步骤S303的方案作为示例进行描述,但是在实践中,原则上无论图形A和图形B是否重叠,均可以通过下面描述的对图形A和图形B进行变换来生成合并的图形C,因而步骤S303是可选的,在本公开的其它方案中可以省略。
[0048]如果在步骤S303确定所生成的图形A和图形B有重叠,则处理前进到步骤S304。在步骤S304,通过对图形A和图形B中的至少一个进行变换,生成合并的第三图形拓扑(也称为图形C)。即,通过变换,使得时钟域A的第一时钟接收端分布图形拓扑和时钟域B的第二时钟接收端分布图形拓扑合并到单个图形拓扑。进而,可以在后续处理中按照类似于单个时钟域的方式构建跨时钟域A和时钟域B的时钟树。
[0049]生成合并的图形C使得构建跨时钟域的时钟树的课题变为单个时钟域的课题,并且大多数时钟合成工具能够支持单个时钟域的时钟树合成。此外,可以避免或减小同一时钟域内的时钟树性能下降。以图形B物理上覆盖图形A、且图形B的分布大约是图形A的10倍的情况为例。假设如果单独构建时钟域A和B的时钟树,则时钟域A的时钟树有4级而时钟域B的时钟树有10级。在没有如本发明实施例生成合并的图形C的情况下,一起构建时钟域A和时钟域B的时钟树,则时钟域A和时钟域B的时钟树都将是10级,时钟域A的时钟树的时钟延迟将急剧增加。相对照地,利用如本发明实施例生成合并的图形C以单个时钟域的方式生成钟域A和时钟域B的时钟树,有可能使得构建的时钟域A的时钟树的级数4级而时钟域B的时钟树有10级。即,根据本发明实施例的方案,能够改进时钟树的整体性能。
[0050]一般地,上述对图形的变换可以通过三种方式进行。第一种方式是聚集(cluster)且偏移(bias),使得当前图形向特定方向聚集;第二种方式是聚集,使得当前图形向其中心聚集;第三种方式是偏移,使得当前图形向特定方向移动。作为示例,如在下面进一步详述的,这三种方式中的任一种可以通过在图形A和图形B中插入诸如缓冲器的时钟单元来实现。经过上述方式中的至少一种的有限次的迭代执行,生成合并的图形C。
[0051]图6示出了图解对图形A和图形B进行变换而生成图形C的处理的示意图。一般地,为了生成合成的第三图形拓扑,选择第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑中的边界区域(bounding area)较大的一个进行变换。在图6所示的说明性示例中,图形B与图形A部分重叠,且图形B的边界区域大于图形A的边界区域。对图形B进行聚集且偏移,使得图形B向靠近图形A的方向聚集。此外,对图形A进行偏移,使得图形A向靠近图形B的方向聚集。图中以虚线和箭头示出上述变换。最终,经过有限次的迭代,生成合并的图形C。
[0052]然后,在步骤S306,基于合并的第三图形拓扑(图形C)构建时钟树。即,以类似于构建单个时钟域的时钟树的方式构建时钟域A和时钟域B的时钟树,从而使得属于时钟域A的时钟单元和时钟域B的时钟单元能够共享更多(优选地,尽可能多)的物理位置。
[0053]图4示出了图3所示的根据本公开实施方式的构建时钟树的方法中的生成合并的第三图形拓扑的处理(S304)的示例性优选实施例的流程图。
[0054]如图4所示,在步骤S402,在第一时钟接收端分布图形拓扑(例如图形A)和第二时钟接收端分布图形拓扑(例如图形B)中插入至少一个第一级时钟单元,例如缓冲器,执行第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑的变换。用该缓冲器来分别驱动多个时钟接收端。所插入的第一级时钟单元代替其驱动的相应时钟接收端作为所变换的第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑的至少一个中的节点,以使第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑中的至少一个执行向其中心聚集和朝使第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑彼此靠近的方向偏移这两个动作中的至少一个。即,通过插入诸如缓冲器的时钟单元,实现了本申请上文中所描述的聚集且偏移,聚集,和偏移这三种对时钟接收端分布图形拓扑进行变换的方式中的至少一种。
[0055]然后,在步骤S404,判断变换后的第一和第二时钟接收端分布图形拓扑的边界区域是否相似且中心满足重叠条件。例如,该重叠条件可以是变换后的第一和第二时钟接收端分布图形拓扑的中心之间的偏差小于预定的阈值。如本领域普通技术人员可以理解的,该阈值可以根据具体情况来设置和调整,以优化时钟树和集成电路的性能。如果步骤S404判断的结果为是,则处理前进到步骤S406。如果步骤S406判断的结果为否,则返回步骤S402继续进行变换处理,直到变换后的第一时钟接收端分布图形拓扑的边界区域和第二时钟接收端分布图形拓扑的边界区域相似且中心满足重叠条件。
[0056]接着,在步骤S406,生成包括所插入的时钟单元的合并的第三图形拓扑。具体地,生成包括所插入的至少一个第一级时钟单元作为节点的合并的第三图形拓扑。
[0057]注意,在本申请的上下文中,术语“节点”指的是沿时钟树从时钟源到时钟接收端的路径上的所有部件。因而,节点包括在生成第三图形拓扑的过程中以及后面描述的聚合第三图形拓扑以及基于聚合的第三图形拓扑构建时钟树的过程中所插入的时钟单元。
[0058]也就是说,根据本发明实施例生成的合并的第三图形拓扑(例如图形C)的边界区域包括在第一时钟接收端分布图形拓扑(例如图形A)和第二时钟接收端分布图形拓扑(例如图形B)的至少一个中所插入的至少一个第一级时钟单元作为节点。在所插入的时钟单元驱动的时钟接收端没有包括全部时钟接收端的情况下,构成图形C的边界区域的节点还可以包括来自图形A和/或图形B的未被插入的时钟单元驱动的时钟接收端。
[0059]另外,根据本发明的实施例,可以根据相应的时钟域的性能要求而对要合并的不同的时钟接收端分布图形拓扑设定的不同优先级而进行所述变换,使得其中优先级较高的时钟域的接收端分布图形拓扑在变换的过程中偏移相对较小。需要注意,不同的时钟域可能具有不同的时钟树质量要求,例如不同的工作频率。而偏移图形的中心总会引入一定的时钟树延迟。因而,优选使得工作频率较高的时钟域的分布图形拓扑尽可能地较少偏移。在进行图形合并时,可以对不同的时钟域设定不同的优先级。例如,假定时钟域A的工作频率为IGhz,而时钟域B的工作频率为10Mhz。由于时钟域A的性能要求高于时钟域B,则时钟域A的图形A相对于时钟域B的图形B应该偏移相对较小。可以为时钟域A的图形A设定高于时钟域B的图形B的优先级。如果将时钟域A的优先级值设定为“1”,将时钟域B的优先级值设定为“4”,则意味着在需要偏移时钟域A的图形A时,时钟域B的图形B已经偏移了 4次。
[0060]例如,在进行图形合并时,可以使用3个矢量:
[0061]l)p_all= “B B B B A”
[0062]2)p_a= “O O O A”
[0063]3) p_b= “B B B B”
[0064]其中,p_a、p_b和p_all分别代表时钟域A、时钟域B和二者总体的优先级值。
[0065]接下来描述基于合并的第三图形拓扑构建时钟树的优选实施方式。图5示出了图3所示的根据本公开实施方式的基于合并的第三图形拓扑构建时钟树的处理(S306)的示例性优选实施例的流程图。
[0066]如图5所示,在步骤S502,对合并的第三图形拓扑(例如图形C)应用预定的物理和电学限制条件求解优化聚集方案。特别地,将预定的物理和电学限制条件应用于合并的第三图形拓扑,以求解指示所驱动的接收端彼此通信的数目最大的节点之间应该聚集的优化聚集方案,从而使得物理公共路径最大化。例如,该优化聚集方案可以通过求解下述式(I)的目标函数MaxF得出。
[0067]

【权利要求】
1.一种构建时钟树的方法,该方法包括以下步骤:获取描述集成电路的网表,所述网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据;以及基于所述网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
2.根据权利要求1所述的方法,其中基于所述网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享尽可能多的物理位置的步骤进一步包括:基于所述网表生成第一时钟域的第一时钟接收端分布图形拓扑和第二时钟域的第二时钟接收端分布图形拓扑;通过对所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的至少一个进行变换,生成合并的第三图形拓扑;以及基于合并的第三图形拓扑,构建所述时钟树使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
3.根据权利要求2所述的方法,其中,响应于所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑至少部分重叠,进行生成合并的第三图形拓扑的步骤;并且在基于合并的第三图形拓扑构建所述时钟树的步骤中,构建所述时钟树使得属于不同的时钟域的时钟单元能够共享尽可能多的物理位置。
4.根据权利要求2所述的方法,其中,生成合并的第三图形拓扑的步骤包括:在所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中插入至少一个第一级时钟单元来分别驱动多个时钟接收端,所插入的所述第一级时钟单元代替其驱动的相应时钟接收端作为所变换的所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑的所述至少一个中的节点,以执行使所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的所述至少一个向其中心聚集和使所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑向彼此靠近的方向偏移这两个动作中的至少一个,从而进行所述变换,直到变换后的所述第一时钟接收端分布图形拓扑的边界区域和所述第二时钟接收端分布图形拓扑的边界区域相似且中心满足重叠条件;以及生成包括所插入的所述至少一个第一级时钟单元作为节点的所述合并的第三图形拓扑。
5.根据权利要求4所述的方法,其中,在生成合并的第三图形拓扑的步骤中:选择所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的边界区域较大的一个进行所述变换;以及根据相应的时钟域的性能要求而对所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑设定的不同优先级而进行所述变换,使得其中优先级较高的时钟域的接收端分布图形拓扑在所述变换的过程中偏移相对较小。
6.根据权利要求4所述的方法,其中,基于合并的第三图形拓扑构建所述时钟树的步骤进一步包括: 将预定的物理和电学限制条件应用于所述合并的第三图形拓扑,以求解指示所驱动的接收端彼此通信的数目最大的节点之间应该聚集的优化聚集方案;通过在所述合并的第三图形拓扑中插入至少一个第二级时钟单元来分别驱动基于所求解的优化聚集方案要聚集的相应的一个以上的节点,聚集所述合并的第三图形拓扑,其中所插入的所述第二级时钟单元代替所述要聚集的相应的一个以上的节点作为所聚集的所述合并的第三图形拓扑中的节点,基于所聚集的所述合并的第三图形拓扑以单个时钟域的方式构建时钟树;以及复制所述时钟树中的驱动多个时钟域的节点的时钟单元,并将所复制的时钟单元移动到原始时钟单元的附近,使得一个时钟单元仅驱动相应一个时钟域的节点。
7.根据权利要求6所述的方法,其中,所插入和所复制的时钟单元包括缓冲器。
8.根据权利要求6所述的方法,还包括:利用导线连接所插入和所复制的时钟单元,以完成与不同时钟域对应的各个时钟树。
9.根据权利要求6所述的方法,其中,求解优化聚集方案的步骤进一步包括:解如下的目标函数MaxF以得出MaxF为最大值时的优化矩阵CL
其中,η表示所述合并的第三图形拓扑所具有的节点的数目;i和j代表所述合并的第三图形拓扑中的任意两个不同的节点,k代表第三图形拓扑中的除i和j之外的另一节点;CL代表待解矩阵,代表i和j是否应该聚集在一起,I代表是,O代表否;RM矩阵代表节点之间的逻辑连接数,其等于i节点包含的时钟接收端和j节点包含的时钟接收端之间的逻辑连接的总数;PL代表能够聚集到一个集合中的节点的数目的限制,PLMax是防止一个集合中的总引脚电容过大的标量;DIS代表能够聚集到一个集合中的节点之间的距离限制,如果由i和j之间的距离确定将i和j聚集在一起不会违反线电容限制,则DIS (i,j)取1,否则取O。
10.一种构建时钟树的系统,包括:获取模块,被配置为获取描述集成电路的网表,所述网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据;以及构建模块,被配置为基于所述网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
11.根据权利要求10所述的系统,其中,所述构建模块进一步包括:第一生成模块,被配置为基于所述网表生成第一时钟域的第一时钟接收端分布图形拓扑和第二时钟域的第二时钟接收端分布图形拓扑;第二生成模块,被配置为通过对所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的至少一个进行变换,生成合并的第三图形拓扑;以及时钟树构建模块,被配置为基于合并的第三图形拓扑,构建所述时钟树使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
12.根据权利要求11所述的系统,其中, 第二生成模块进一步被配置为响应于所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑至少部分重叠,进行生成合并的第三图形拓扑的处理;并且所述时钟树构建模块进一步被配置为构建所述时钟树使得属于不同的时钟域的时钟单元能够共享尽可能多的物理位置。
13.根据权利要求11所述的系统,其中,所述第二生成模块进一步包括:变换模块,被配置为在所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中插入至少一个第一级时钟单元来分别驱动多个时钟接收端,所插入的所述第一级时钟单元代替其驱动的相应时钟接收端作为所变换的所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑的所述至少一个中的节点,以执行使所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的所述至少一个向其中心聚集和使所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑向彼此靠近的方向偏移这两个动作中的至少一个,从而进行所述变换,直到变换后的所述第一时钟接收端分布图形拓扑的边界区域和所述第二时钟接收端分布图形拓扑的边界区域相似且中心满足重叠条件;以及生成子模块,被配置为生成包括所插入的所述至少一个第一级时钟单元作为节点的所述合并的第三图形拓扑。
14.根据权利要求13所述的系统,其中,所述变换模块被配置为:选择所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的边界区域较大的一个进行所述变换;以及根据相应的时钟域的性能要求而对所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑设定的不同优先级而进行所述变换,使得其中优先级较高的时钟域的接收端分布图形拓扑在所述变换的过程中偏移相对较小。
15.根据权利要求13所述的系统,其中,所述时钟树构建模块进一步包括:聚集方案求解模块,被配置为将预定的物理和电学限制条件应用于所述合并的第三图形拓扑,以求解指示所驱动的接收端彼此通信的数目最大的节点之间应该聚集的优化聚集方案;聚集模块,被配置为通过在所述合并的第三图形拓扑中插入至少一个第二级时钟单元来分别驱动基于所求解的优化聚集方案要聚集的相应的一个以上的节点,聚集所述合并的第三图形拓扑,其中所插入的所述第二级时钟单元代替所述要聚集的相应的一个以上的节点作为所聚集的所述合并的第三图形拓扑中的节点,时钟树构建子模块,被配置为基于所聚集的所述合并的第三图形拓扑以单个时钟域的方式构建时钟树;以及复制模块,被配置为复制所述时钟树中的驱动多个时钟域的节点的时钟单元,并将所复制的时钟单元移动到原始时钟单元的附近,使得一个时钟单元仅驱动相应一个时钟域的节点。
16.根据权利要求15所述的系统,其中,所插入和所复制的时钟单元包括缓冲器。
17.根据权利要求15所述的系统,还包括:连接模块,被配置为利用导线连接所插入和所复制的时钟单元,以完成与不同时钟域对应的各个时钟树。
18.根据权利要求15所述的系统,其中,聚集方案求解模块进一步被配置为:解如下的目标函数MaxF以得出MaxF为最大值时的优化矩阵CL
其中,η表示所述合并的第三图形拓扑所具有的节点的数目;i和j代表所述合并的第三图形拓扑中的任意两个不同的节点,k代表第三图形拓扑中的除i和j之外的另一节点;CL代表待解矩阵,代表i和j是否应该聚集在一起,I代表是,O代表否;RM矩阵代表节点之间的逻辑连接数,其等于i节点包含的时钟接收端和j节点包含的时钟接收端之间的逻辑连接的总数;PL代表能够聚集到一个集合中的节点的数目的限制,PLMax是防止一个集合中的总引脚电容过大的标量;DIS代表能够聚集到一个集合中的节点之间的距离限制,如果由i和j之间的距离确定将i和j聚集在一起不会违反线电容限制,则DIS (i,j)取1,否则取O。
19.一种制造集成电路的方法,包括利用根据权利要求1-9中任一权利要求所述的方法构建所述集成电路的时钟树。
【文档编号】G06F17/50GK104077427SQ201310103413
【公开日】2014年10月1日 申请日期:2013年3月28日 优先权日:2013年3月28日
【发明者】吴列治, 徐越, 刘洋, 陈孙阳 申请人:国际商业机器公司
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!