CN104077427B - 跨时钟域的时钟树构建方法和系统、集成电路及制造方法 - Google Patents
跨时钟域的时钟树构建方法和系统、集成电路及制造方法 Download PDFInfo
- Publication number
- CN104077427B CN104077427B CN201310103413.8A CN201310103413A CN104077427B CN 104077427 B CN104077427 B CN 104077427B CN 201310103413 A CN201310103413 A CN 201310103413A CN 104077427 B CN104077427 B CN 104077427B
- Authority
- CN
- China
- Prior art keywords
- clock
- receiving terminal
- distribution pattern
- topology
- terminal distribution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了跨时钟域的时钟树构建方法和系统、集成电路及制造方法。根据本发明的一个方面,提供了一种构建时钟树的方法,该方法包括以下步骤:获取描述集成电路的网表,该网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据;以及基于该网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置。根据本发明,能够优化跨时钟域的时钟树,从而提升集成电路的性能。
Description
技术领域
本发明涉及集成电路(IC)设计,更具体地,涉及一种构建时钟树的方法和系统、集成电路及其制造方法。
背景技术
典型的数字IC可以包含大量的逻辑元件和其他电路,以实现其逻辑功能。另外,IC芯片可以包含时钟树(即,时钟信号分布网络),用于将在其输入端接收的时钟信号分布到由该时钟信号供应时钟的所有时钟接收端(sink)。时钟树可以包括导线、缓冲器等,以分布控制IC的逻辑元件和其他电路的定时和操作的时钟信号。时钟接收端(或称接收端)指的是IC中包含的由时钟信号控制以增加时钟树的容量的逻辑元件和其他电路,诸如寄存器(触发器)、RAM、锁存器等。接收端可以根据时钟信号脉冲改变状态,IC通过用相同的时钟信号为时钟域中的各个接收端供应时钟来同步它们的状态改变。
时钟偏差(clock skew)是评价时钟树性能和质量的一个重要方面。时钟偏差一般指的是来自外部时钟源的时钟信号到达任两个时钟接收端的时间之间的差异(延迟)。由于时钟树的各个分支到达不同时钟接收端的路径长度不同,因此各个时钟接收端间会有一定的时钟偏差。此外,为了将时钟信号传输到IC的每个区域,常常在时钟树中插入时钟单元(例如缓冲器)来放大或重发时钟信号。但是,由于时钟单元具有本征延迟,也可能带来一定的时钟偏差。因而,控制或限制时钟树的缓冲器的级数可以作为提高时钟树性能和IC设计质量的手段之一。理论上,如果到达各个时钟接收端的时钟树的各个分支包含的缓冲器的级数越少,且级数相同,则时钟偏差越小。但是,实际的IC设计很多情况下无法满足上述假设。通过随着数字IC设计的技术演进,公共路径(common path)对于改进时钟树中的偏差和定时变得重要。公共路径一般指的是在时钟树中由多个接收端共享的缓冲器构成的路径。公共路径越长,时钟信号传输到输入端的时钟偏差就越小。传统的技术采用了最大化公共路径的方法,即由接收端尽可能多地共享时钟树中的各级缓冲器。原则上,时钟树中的共享缓冲器越多,公共路径就越大,因而时钟树的性能优化,所设计的IC质量越高。其他的优化时钟树的手段包括例如使用能够减小时钟偏差的高性能的时钟单元(元件)等。
发明内容
本公开的发明人发现传统技术的优化时钟树的上述方案都是针对同一时钟域(clock domain)的时钟树优化。但是,在实际应用中,IC的不同单元或模块在很多情况下需要不同的时钟频率、相位和波形,从而工作在不同的时钟域下。存在跨时钟域的许多数据通信。在这种情况下,由于时钟源完全不同,从逻辑角度看在多个不同时钟域之间根本没有公共路径。最大化同一个时钟域的公共路径的传统手段没有考虑这种情形,不能解决跨时钟域的时钟树性能优化的课题。
因此,本发明人认识到IC逻辑设计存在跨时钟域的时钟树优化的重要需求。
根据本发明的一个方面,提供了一种构建时钟树的方法,该方法包括以下步骤:获取描述集成电路的网表,该网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据;以及基于该网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
根据本发明的另一个方面,提供了一种构建时钟树的系统,包括:获取模块,被配置为获取描述集成电路的网表,该网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据;以及构建模块,被配置为基于该网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
根据本公开的另一方面,还提供一种制造集成电路的方法,该方法采用如根据上述实施方式的构建时钟树的方法来构建集成电路的时钟树。进而,基于网表和所构建的时钟树,采用本领域常用的和工具和方式进行IC设计、制造的后续处理。
根据本发明的方面,能够优化跨时钟域的时钟树,从而提升集成电路的性能。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2示出了根据本发明实施方式的构建时钟树的方法的流程图。
图3示出了根据本发明实施方式的构建时钟树的方法中的处理的示例性实施例的流程图。
图4示出了根据本发明实施方式的构建时钟树的方法中的处理的示例性实施例的流程图。
图5示出了根据本发明实施方式的构建时钟树的方法中的处理的示例性实施例的流程图。
图6示出了图解根据本发明实施方式的构建时钟树的方法中的处理的示意图。
图7示出了图解根据本发明实施方式构建的时钟树的示例的示意图。
图8示出了根据本发明实施方式的构建时钟树的系统的配置的框图。
图9示出了图8所示的根据本发明实施方式的构建时钟树的系统的进一步配置的框图。
图10示出了图9所示的根据本发明实施方式的构建时钟树的系统的进一步配置的框图。
图11示出了图9所示的根据本发明实施方式的构建时钟树的系统的进一步配置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
如前所述,本公开的发明人发现传统技术的优化时钟树的上述方案都是针对同一时钟域的时钟树优化,不能解决跨时钟域的时钟树性能优化的课题。因此,本发明人认识到IC逻辑设计存在跨时钟域的时钟树优化的重要需求。
如本领域技术人员所理解的,存在许多影响IC的单元之间定时关系的偏差(例如工艺,温度,电压)。单元的时钟偏差可以包括单元的本征延迟以及工艺偏差。工艺偏差又可以包括系统偏差和随机偏差。其中本征延迟可以认为是呈正态分布的采样误差,理论上是不可控的。而工艺偏差,特别是系统偏差,与IC的制造工艺有关,可以通过IC设计的优化进行控制来消减。
就此,本发明人想到即使逻辑上属于不同时钟域的时钟树不能合并,也可以通过将属于不同时钟域的时钟单元放置为在物理上彼此靠近来减少时钟偏差。即,不同的时钟树之间的物理位置共享可以作为减少偏差(特别是系统偏差)的手段。
本公开旨在提供使得各个时钟域的时钟树可以在物理上彼此重叠较多(优选地,尽可能彼此重叠)的方案。该方案可以考虑物理和电学规则。在各个时钟域的时钟树在物理上尽可能彼此重叠的情况下,多个时钟域的时钟单元的部件工作在几乎相同的条件(例如工艺,温度,电压)下,这有助于减少时钟域之间的时钟延迟偏差。
现在参看图2,图2示出了根据本公开实施方式的构建时钟树的方法200示例性流程图。
如图2,方法200开始于步骤S204。在步骤S204,获取描述集成电路(IC)的网表。在设计集成电路时,会产生集成电路的网表。这个过程通常称为网表设置(netlistplacement)。网表设置一般将网表中的逻辑元件和其他电路分配到集成电路图形上的物理位置。一般地,网表设置产生的网表并不包含时钟树与这些元件和电路之间的连接关系。这些元件和电路包括时钟接收端(或称接收端),即IC中包含的由时钟信号控制的逻辑元件和其他电路,诸如寄存器(触发器)、RAM、锁存器等。因而,该网表包括集成电路的逻辑元件和其他电路的物理位置及其逻辑连接关系的描述。在实践中,这些时钟接收端通常属于多个不同的时钟域。因而,在步骤S204可以获取包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据。
接着,在步骤S208,基于在步骤S204所获取的网表中的描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据,构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置。即,与未使用本公开方案的各个时钟域的时钟树相比,使用本公开方案构建的时钟树的属于不同时钟域的时钟单元能够共享更多的物理位置。优选地,在步骤S208构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享尽可能多的物理位置。如前所述,本发明人认识到IC逻辑设计存在跨时钟域的时钟树优化的重要需求。就此,构思和提出了构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多(优选地,尽可能多)的物理位置的手段。因而,使得所构建的时钟树消减了不同时钟域之间的时钟偏差。
作为示例,图3示出了图2所示的构建时钟树的方法200中的构建时钟树处理(S208)的示例性实施例的流程图。在此以构建跨两个时钟域的时钟树为例进行描述。本领域技术人员理解本发明可以按相似的方式构建跨两个以上时钟域的时钟树。
首先,在步骤S302,基于网表生成第一时钟域(也称为时钟域A)的第一时钟接收端分布图形拓扑(也称为图A)和第二时钟域(也称为时钟域B)的第二时钟接收端分布图形拓扑(也称为图形B)。如上所述,网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据。利用从网表提取的分别属于时钟域A和B的时钟接收端的物理位置的数据,可以构建属于时钟域A的时钟接收端的分布图形拓扑(图形A)以及属于时钟域B的时钟接收端的分布图形拓扑(图形B)。图形A和图形B的示例参见将在后面进一步解释的图6。上述生成图形A和图形B的处理可以利用本领域已知的时钟树合成工具(CTS)来完成。
接着,可选地,在步骤S303,确定所生成的图形A和图形B是否至少部分重叠。如前所述,本发明的构思包括使得属于不同的时钟域的时钟单元能够共享更多(优选地,尽可能多)的物理位置。为此,在图形A和图形B根本不重叠的情况下,认为实施本发明的方案将不是优选的。因而,如果步骤S303确定图形A和图形B不重叠,则将结束根据本发明的构建跨时钟域的时钟树的处理。注意,尽管这里以包括步骤S303的方案作为示例进行描述,但是在实践中,原则上无论图形A和图形B是否重叠,均可以通过下面描述的对图形A和图形B进行变换来生成合并的图形C,因而步骤S303是可选的,在本公开的其它方案中可以省略。
如果在步骤S303确定所生成的图形A和图形B有重叠,则处理前进到步骤S304。在步骤S304,通过对图形A和图形B中的至少一个进行变换,生成合并的第三图形拓扑(也称为图形C)。即,通过变换,使得时钟域A的第一时钟接收端分布图形拓扑和时钟域B的第二时钟接收端分布图形拓扑合并到单个图形拓扑。进而,可以在后续处理中按照类似于单个时钟域的方式构建跨时钟域A和时钟域B的时钟树。
生成合并的图形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级。即,根据本发明实施例的方案,能够改进时钟树的整体性能。
一般地,上述对图形的变换可以通过三种方式进行。第一种方式是聚集(cluster)且偏移(bias),使得当前图形向特定方向聚集;第二种方式是聚集,使得当前图形向其中心聚集;第三种方式是偏移,使得当前图形向特定方向移动。作为示例,如在下面进一步详述的,这三种方式中的任一种可以通过在图形A和图形B中插入诸如缓冲器的时钟单元来实现。经过上述方式中的至少一种的有限次的迭代执行,生成合并的图形C。
图6示出了图解对图形A和图形B进行变换而生成图形C的处理的示意图。一般地,为了生成合成的第三图形拓扑,选择第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑中的边界区域(bounding area)较大的一个进行变换。在图6所示的说明性示例中,图形B与图形A部分重叠,且图形B的边界区域大于图形A的边界区域。对图形B进行聚集且偏移,使得图形B向靠近图形A的方向聚集。此外,对图形A进行偏移,使得图形A向靠近图形B的方向聚集。图中以虚线和箭头示出上述变换。最终,经过有限次的迭代,生成合并的图形C。
然后,在步骤S306,基于合并的第三图形拓扑(图形C)构建时钟树。即,以类似于构建单个时钟域的时钟树的方式构建时钟域A和时钟域B的时钟树,从而使得属于时钟域A的时钟单元和时钟域B的时钟单元能够共享更多(优选地,尽可能多)的物理位置。
图4示出了图3所示的根据本公开实施方式的构建时钟树的方法中的生成合并的第三图形拓扑的处理(S304)的示例性优选实施例的流程图。
如图4所示,在步骤S402,在第一时钟接收端分布图形拓扑(例如图形A)和第二时钟接收端分布图形拓扑(例如图形B)中插入至少一个第一级时钟单元,例如缓冲器,执行第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑的变换。用该缓冲器来分别驱动多个时钟接收端。所插入的第一级时钟单元代替其驱动的相应时钟接收端作为所变换的第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑的至少一个中的节点,以使第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑中的至少一个执行向其中心聚集和朝使第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑彼此靠近的方向偏移这两个动作中的至少一个。即,通过插入诸如缓冲器的时钟单元,实现了本申请上文中所描述的聚集且偏移,聚集,和偏移这三种对时钟接收端分布图形拓扑进行变换的方式中的至少一种。
然后,在步骤S404,判断变换后的第一和第二时钟接收端分布图形拓扑的边界区域是否相似且中心满足重叠条件。例如,该重叠条件可以是变换后的第一和第二时钟接收端分布图形拓扑的中心之间的偏差小于预定的阈值。如本领域普通技术人员可以理解的,该阈值可以根据具体情况来设置和调整,以优化时钟树和集成电路的性能。如果步骤S404判断的结果为是,则处理前进到步骤S406。如果步骤S406判断的结果为否,则返回步骤S402继续进行变换处理,直到变换后的第一时钟接收端分布图形拓扑的边界区域和第二时钟接收端分布图形拓扑的边界区域相似且中心满足重叠条件。
接着,在步骤S406,生成包括所插入的时钟单元的合并的第三图形拓扑。具体地,生成包括所插入的至少一个第一级时钟单元作为节点的合并的第三图形拓扑。
注意,在本申请的上下文中,术语“节点”指的是沿时钟树从时钟源到时钟接收端的路径上的所有部件。因而,节点包括在生成第三图形拓扑的过程中以及后面描述的聚合第三图形拓扑以及基于聚合的第三图形拓扑构建时钟树的过程中所插入的时钟单元。
也就是说,根据本发明实施例生成的合并的第三图形拓扑(例如图形C)的边界区域包括在第一时钟接收端分布图形拓扑(例如图形A)和第二时钟接收端分布图形拓扑(例如图形B)的至少一个中所插入的至少一个第一级时钟单元作为节点。在所插入的时钟单元驱动的时钟接收端没有包括全部时钟接收端的情况下,构成图形C的边界区域的节点还可以包括来自图形A和/或图形B的未被插入的时钟单元驱动的时钟接收端。
另外,根据本发明的实施例,可以根据相应的时钟域的性能要求而对要合并的不同的时钟接收端分布图形拓扑设定的不同优先级而进行所述变换,使得其中优先级较高的时钟域的接收端分布图形拓扑在变换的过程中偏移相对较小。需要注意,不同的时钟域可能具有不同的时钟树质量要求,例如不同的工作频率。而偏移图形的中心总会引入一定的时钟树延迟。因而,优选使得工作频率较高的时钟域的分布图形拓扑尽可能地较少偏移。在进行图形合并时,可以对不同的时钟域设定不同的优先级。例如,假定时钟域A的工作频率为1Ghz,而时钟域B的工作频率为100Mhz。由于时钟域A的性能要求高于时钟域B,则时钟域A的图形A相对于时钟域B的图形B应该偏移相对较小。可以为时钟域A的图形A设定高于时钟域B的图形B的优先级。如果将时钟域A的优先级值设定为“1”,将时钟域B的优先级值设定为“4”,则意味着在需要偏移时钟域A的图形A时,时钟域B的图形B已经偏移了4次。
例如,在进行图形合并时,可以使用3个矢量:
1)p_all=“B B B B A”
2)p_a=“0 0 0 A”
3)p_b=“B B B B”
其中,p_a、p_b和p_all分别代表时钟域A、时钟域B和二者总体的优先级值。
接下来描述基于合并的第三图形拓扑构建时钟树的优选实施方式。图5示出了图3所示的根据本公开实施方式的基于合并的第三图形拓扑构建时钟树的处理(S306)的示例性优选实施例的流程图。
如图5所示,在步骤S502,对合并的第三图形拓扑(例如图形C)应用预定的物理和电学限制条件求解优化聚集方案。特别地,将预定的物理和电学限制条件应用于合并的第三图形拓扑,以求解指示所驱动的接收端彼此通信的数目最大的节点之间应该聚集的优化聚集方案,从而使得物理公共路径最大化。例如,该优化聚集方案可以通过求解下述式(1)的目标函数MaxF得出。
其中,假设所生成的合并的图形C中具有n个的属于不同时钟域(例如时钟域A和时钟域B)的节点。在本实施方式中将图形C视为单个时钟域,并在进行图形C的节点的聚集时以节点之间的逻辑关系(通信数)为第一优先级。可以由矩阵RM代表节点之间的逻辑关系。
假设以i和j代表图形C中的任意两个不同的节点;节点i具有x个接收端,节点j具有y个接收端。在i节点包含的x时钟接收端和j节点包含的y时钟接收端之间没有逻辑连接(即,没有通信)的情况下RM(i,j)取0值,否则取大于等于1的值。显然,RM(i,j)能取的最大值是x*y,即i节点包含的x时钟接收端和j节点包含的y时钟接收端彼此之间都有逻辑连接的情况。RM(i,j)值意味着应该将i和j放到一个集合中的优先级。显然,RM(i,j)值越大,将应该将i和j放到一个集合中的优先级越高,因为从减少时钟延迟和增大共享路径的角度看是有利的。以下的表1给出了一个矩阵RM的示例。注意,表1仅仅用于帮助理解RM矩阵,并不代表实际的逻辑连接实例,更不构成对本发明的任何限制。
表1
一旦获得了RM矩阵,就可以建立如式(1)的要解的目标函数MaxF。优化的聚集方案将对应于目标函数的优化结果。可以将聚集方案存储到矩阵CL中。CL代表节点i和节点j是否应该聚集在一起。CL(i,j)=1代表节点i和节点j应该聚集在一起,CL(i,j)=0代表节点i和节点j不应该聚集在一起。即,待解矩阵CL是目标函数取最大值的解。
除上述逻辑关系的限制之后,聚集方案还有其他的限制条件。例如,矩阵CL本身有一定的条件。一个节点总是能够与其本身聚集,因此CL(i,i)=1总是对的。另一个限制条件是所聚集的集合之间彼此不应该有任何交叉(聚集排他原则),这意味着图形C的节点i只能属于一个集合。换言之,如果节点i和节点j聚集在一起,则节点i与图形C中的除i和j之外的任一其他节点k的聚集方案应该与节点j与节点k的聚集方案完全相同,如以下的式(2)所表示的。
CL(i,j)*CL(i,k)-CL(j,i)*CL(j,k)=0 (2)
矩阵CL为对称矩阵,如果节点i能够与节点j聚集,则节点j节点当然能够与节点i聚集,如以下的式(3)所表示的。
CL(i,j)=CL(j,i) (3)
除了对CL矩阵本身的限制之外,根据本发明的实施方式,还可以对聚集方案施加附加的电学限制。原则上,不能在一个集合中聚集过多的节点,因为总的引脚电容(pincapacitance)会过大。对此,可以产生矢量PL来代表能够聚集到一个集合中的节点的数目的限制。PL具有用于存储属于图形C的n个节点的引脚电容的要素。可以根据IC设计的常用技术限定一个集合的最大总引脚电容PLMax。如以下的式(4)所示,PLMax作为防止一个集合中的总引脚电容过大的标量。
另一方面,不能将距离过大的节点聚集在一个集合中,因为线电容(netcapacitance)会成为问题。对此,可以根据每两个节点i和j之间的物理距离来检查是否能将它们聚集在一个集合中,并将结果存储在矩阵DIS中。DIS代表能够聚集到一个集合中的节点之间的距离限制。如果确定将i和j聚集在一起不会违反线电容限制(可以由i和j之间的距离确定),则DIS(i,j)取1,否则取0。线电容限制可以根据IC设计的常用技术限定。因而,可以得出以下的式(5)。
CL(i,j)≤DIS(i,j) (5)
综合上述逻辑关系限制和其他物理和电学限制,可以列车如下式(6)所示的步骤S502中优化聚集方案的目标函数和限制函数。解如下的目标函数和限制函数以得出MaxF为最大值时的优化矩阵CL。在本实施例中,优化矩阵CL可以对应于优化聚集方案。
如本领域技术人员所理解的,式(6)是一个典型的非线性0-1编程问题,可以通过多种算法来求解该问题,例如隐含枚举法(implicit enumeration method)、Hungarian法、粒子集群优化(particle swarm optimization,PSO)法等。经过本发明人的实践,PSO法可能是更为适宜的方法。由于非线性0-1编程问题的求解方法本身并不是本发明的主旨,且其内容为本领域技术人员所知,因此在此对其不做详述。
一旦在步骤S502中获得聚集方案的优化矩阵CL,则在步骤S504,利用优化聚集方案聚集合并的第三图形拓扑。具体地,通过在合并的第三图形拓扑(例如图形C)中插入至少一个第二级时钟单元(例如缓冲器)来分别驱动基于所求解的优化聚集方案要聚集的相应的一个以上的节点,聚集合并的第三图形拓扑。从而,获得聚集的第三图形拓扑。所插入的第二级时钟单元代替要聚集的相应的一个以上的节点作为所聚集的第三图形拓扑中的节点。
接着,在步骤S506,基于聚集的第三图形拓扑以单个时钟域的方式构建时钟树。该处理可以利用本领域常用的时钟合成工具进行。通常,该处理沿时钟树的流向(时钟信号从时钟源传输到各个节点的方向)以自上而下(top down)的方式进行,停止于所聚集的图形C。尽管聚集后的图形C包含两个时钟域(时钟域A和时钟域B)的节点,根据本实施方式可以单个时钟域的方式构建时钟树。其中,该处理通常涉及插入时钟单元(例如缓冲器),以将时钟信号传输到所有节点。
然后,在步骤S508,复制并移动时钟树中的驱动多个时钟域的时钟接收端的时钟单元。具体地,复制时钟树中的驱动多个时钟域的节点的时钟单元,并将所复制的时钟单元移动到原始时钟单元的附近,使得一个时钟单元仅驱动相应一个时钟域的节点。
此外,根据本发明的实施例,构建跨时钟域的时钟树的方法还可以包括布线处理(未示出)。该布线处理可以通过本领域已知的技术进行。例如,利用导线连接在之前的处理(生成合并的图形C、基于优化聚集方案聚集图形C、基于聚集的第三图形拓扑以单个时钟域的方式构建时钟树、复制属于不同时钟域的时钟单元等)中所插入和所复制的时钟单元,以完成与不同时钟域对应的各个时钟树。
图7示出了图解根据本公开实施方式构建的时钟树的示例的示意图。注意,图7仅仅用于帮助理解根据本公开实施方式构建的时钟树的形式,并不代表实际的时钟树实例,更不构成对本发明的任何限制。
如图7所示,根据本公开的实施例构建的时钟树包括在生成合并的图形C、基于优化聚集方案聚集图形C、基于聚集的第三图形拓扑以单个时钟域的方式构建时钟树、复制属于不同时钟域的时钟单元等处理中所插入和所复制的时钟单元。在此,以仅对时钟域B进行变换而生成图形C的情形为例示出所构建的时钟树。其中,由附图标记702B表示属于时钟域B的多个时钟接收端(例如寄存器(DFF)、锁存器、RAM等)。附图标记704、706和708分别表示在生成合并的图形C的处理(S304)中所插入的分别驱动时钟域B的多个时钟接收端的诸如缓冲器的第一级时钟单元。该插入以沿时钟树的流向以自下而上(bottom up)的方式进行。
由附图标记702A表示属于时钟域A的多个时钟接收端。附图标记714B表示在基于优化聚集方案聚集图形C的处理(S504)中所插入的分别驱动作为节点的第一级时钟单元704和时钟域A的多个时钟接收端702A中的一部分的诸如缓冲器的第二级时钟单元(集合1)。类似地,附图标记712B表示在基于优化聚集方案聚集图形C的处理(S504)中所插入的驱动作为节点的第一级时钟单元706和时钟域A的多个时钟接收端702A中的另一部分的诸如缓冲器的第二级时钟单元(集合2)。附图标记710表示在基于优化聚集方案聚集图形C的处理(S504)中所插入的驱动作为节点的第一级时钟单元708的诸如缓冲器的第二级时钟单元(集合3)。
附图标记716、720B、718B表示基于聚集的第三图形拓扑以单个时钟域的方式构建时钟树的处理中插入的时钟单元(缓冲器)。而附图标记720A、718A、714A和712A表示在复制属于不同时钟域的时钟单元的处理(步骤S508)中所复制的属于时钟域A的时钟单元(缓冲器)。
在图7所示的示意图中,时钟域A和时钟域B共享3级的物理位置(物理位置接近),如虚线框所示。因此,这有助于降低时钟域A和时钟域B之间的时钟偏差,并有助于提高时钟树乃至IC芯片的性能。
以下将描述根据本发明的实施例的构建时钟树的系统。为了简洁起见,对于与之前参考图2-7描述的相同的内容,有可能省略其赘述。
图8示出了根据本公开实施方式的构建时钟树的系统800的配置的框图。如图8所示,系统800包括:获取模块810,被配置为获取描述集成电路的网表,该网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据。系统800还包括与获取模块810耦合的构建模块820,被配置为基于网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多(优选地,尽可能多)的物理位置。
图9示出了根据本公开实施方式的构建时钟树的系统800中的构建模块820的进一步配置的框图。构建模块820可以进一步包括:第一生成模块910,被配置为基于由获取模块810获取的网表生成第一时钟域的第一时钟接收端分布图形拓扑和第二时钟域的第二时钟接收端分布图形拓扑。构建模块820还包括:与第一生成模块910耦合的第二生成模块920,被配置为通过对第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑中的至少一个进行变换,生成合并的第三图形拓扑。优选地,第二生成模块920进一步被配置为响应于第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑至少部分重叠,进行生成合并的第三图形拓扑的处理。构建模块820还包括:与第二生成模块920耦合的时钟树构建模块930,被配置为基于合并的第三图形拓扑,构建时钟树使得属于不同的时钟域的时钟单元能够共享更多(优选地,尽可能多)的物理位置。
图10示出了根据本公开实施方式的第二生成模块920的进一步配置的框图。如图所示,第二生成模块920可以包括:变换模块922,被配置为通过在第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑中插入至少一个第一级时钟单元(例如缓冲器)来分别驱动多个时钟接收端。所插入的第一级时钟单元代替其驱动的相应时钟接收端作为所变换的第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑的至少一个中的节点,以使第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑中的至少一个执行向其中心聚集和朝使第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑彼此靠近的方向偏移这两个动作中的至少一个,从而进行变换,直到变换后的第一时钟接收端分布图形拓扑的边界区域和第二时钟接收端分布图形拓扑的边界区域相似且中心满足重叠条件。第二生成模块920还可以包括:与变换模块922耦合的生成子模块926。
其中,变换模块922被配置为选择第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑中的边界区域较大的一个进行变换。此外,变换模块922被配置为根据相应的时钟域的性能要求而对第一时钟接收端分布图形拓扑和第二时钟接收端分布图形拓扑设定不同的优先级,使得其中优先级较高的时钟域的接收端分布图形拓扑在变换的过程中偏移相对较小。
图11示出了图9所示的根据本公开实施方式的时钟树构建模块930的进一步配置的框图。如图所示,时钟树构建模块930可以包括:聚集方案求解模块932,被配置为将预定的物理和电学限制条件应用于合并的第三图形拓扑,以求解指示所驱动的接收端彼此通信的数目最大的节点之间应该聚集的优化聚集方案。具体的处理与参考步骤S502描述的处理相似,在此不再赘述。时钟树构建模块930还可以包括:与聚集方案求解模块932耦合的聚集模块934,被配置为通过在合并的第三图形拓扑中插入至少一个第二级时钟单元(例如缓冲器)来分别驱动基于所求解的优化聚集方案要聚集的相应的一个以上的节点,聚集合并的第三图形拓扑。其中,所插入的第二级时钟单元代替要聚集的相应的一个以上的节点作为所聚集的合并的第三图形拓扑中的节点。时钟树构建模块930还可以包括:与聚集模块934耦合的时钟树构建子模块936,被配置为基于以所求解的优化聚集方案聚集的第三图形拓扑以单个时钟域的方式构建时钟树。时钟树构建模块930还可以包括:与时钟树构建子模块936耦合的复制模块938,被配置为复制时钟树中的驱动多个时钟域的节点的时钟单元(例如缓冲器),并将所复制的时钟单元移动到原始时钟单元的附近,使得一个时钟单元仅驱动相应一个时钟域的节点。
此外,本领域技术人员理解,系统800还可以包括连接模块(未示出),被配置为利用导线连接所插入和所复制的时钟单元,以完成与不同时钟域对应的各个时钟树。
根据本公开的一个实施方式,还提供一种制造集成电路的方法,该方法采用如根据上述实施方式的构建时钟树的方法来构建集成电路的时钟树。进而,基于网表和所构建的时钟树,采用本领域常用的和工具和方式进行IC设计、制造的后续处理。
根据本公开的一个实施方式,还提供一种集成电路,该集成电路包括跨时钟域的时钟树,并且属于不同的时钟域的时钟单元共享更多(优选地,尽可能多)的物理位置。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (17)
1.一种构建时钟树的方法,该方法包括以下步骤:
获取描述集成电路的网表,所述网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据;以及
基于所述网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置,该步骤包括:
基于所述网表生成第一时钟域的第一时钟接收端分布图形拓扑和第二时钟域的第二时钟接收端分布图形拓扑;
通过对所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的至少一个进行变换,生成合并的第三图形拓扑;以及
基于合并的第三图形拓扑,构建所述时钟树使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
2.根据权利要求1所述的方法,其中,响应于所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑至少部分重叠,进行生成合并的第三图形拓扑的步骤;并且
在基于合并的第三图形拓扑构建所述时钟树的步骤中,构建所述时钟树使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
3.根据权利要求1所述的方法,其中,生成合并的第三图形拓扑的步骤包括:
在所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中插入至少一个第一级时钟单元来分别驱动多个时钟接收端,所插入的所述第一级时钟单元代替其驱动的相应时钟接收端作为所变换的所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑的所述至少一个中的节点,以执行使所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的所述至少一个向其中心聚集和使所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑向彼此靠近的方向偏移这两个动作中的至少一个,从而进行所述变换,直到变换后的所述第一时钟接收端分布图形拓扑的边界区域和所述第二时钟接收端分布图形拓扑的边界区域相似且中心满足重叠条件;以及
生成包括所插入的所述至少一个第一级时钟单元作为节点的所述合并的第三图形拓扑。
4.根据权利要求3所述的方法,其中,在生成合并的第三图形拓扑的步骤中:
选择所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的边界区域较大的一个进行所述变换;以及
根据相应的时钟域的性能要求而对所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑设定的不同优先级而进行所述变换,使得其中优先级较高的时钟域的接收端分布图形拓扑在所述变换的过程中偏移相对较小。
5.根据权利要求3所述的方法,其中,基于合并的第三图形拓扑构建所述时钟树的步骤进一步包括:
将预定的物理和电学限制条件应用于所述合并的第三图形拓扑,以求解指示所驱动的接收端彼此通信的数目最大的节点之间应该聚集的优化聚集方案;
通过在所述合并的第三图形拓扑中插入至少一个第二级时钟单元来分别驱动基于所求解的优化聚集方案要聚集的相应的一个以上的节点,聚集所述合并的第三图形拓扑,其中所插入的所述第二级时钟单元代替所述要聚集的相应的一个以上的节点作为所聚集的所述合并的第三图形拓扑中的节点,
基于所聚集的所述合并的第三图形拓扑以单个时钟域的方式构建时钟树;以及
复制所述时钟树中的驱动多个时钟域的节点的时钟单元,并将所复制的时钟单元移动到原始时钟单元的附近,使得一个时钟单元仅驱动相应一个时钟域的节点。
6.根据权利要求5所述的方法,其中,所插入和所复制的时钟单元包括缓冲器。
7.根据权利要求5所述的方法,还包括:利用导线连接所插入和所复制的时钟单元,以完成与不同时钟域对应的各个时钟树。
8.根据权利要求5所述的方法,其中,求解优化聚集方案的步骤进一步包括:
解如下的目标函数MaxF以得出MaxF为最大值时的优化矩阵CL
其中,n表示所述合并的第三图形拓扑所具有的节点的数目;
i和j代表所述合并的第三图形拓扑中的任意两个不同的节点,k代表第三图形拓扑中的除i和j之外的另一节点;
CL代表待解矩阵,代表i和j是否应该聚集在一起,1代表是,0代表否;
RM矩阵代表节点之间的逻辑连接数,其等于i节点包含的时钟接收端和j节点包含的时钟接收端之间的逻辑连接的总数;
PL代表能够聚集到一个集合中的节点的数目的限制,PLMax是防止一个集合中的总引脚电容过大的标量;
DIS代表能够聚集到一个集合中的节点之间的距离限制,如果由i和j之间的距离确定将i和j聚集在一起不会违反线电容限制,则DIS(i,j)取1,否则取0。
9.一种构建时钟树的系统,包括:
获取模块,被配置为获取描述集成电路的网表,所述网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据;以及
构建模块,被配置为基于所述网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置,其中,所述构建模块进一步包括:
第一生成模块,被配置为基于所述网表生成第一时钟域的第一时钟接收端分布图形拓扑和第二时钟域的第二时钟接收端分布图形拓扑;
第二生成模块,被配置为通过对所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的至少一个进行变换,生成合并的第三图形拓扑;以及
时钟树构建模块,被配置为基于合并的第三图形拓扑,构建所述时钟树使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
10.根据权利要求9所述的系统,其中,
第二生成模块进一步被配置为响应于所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑至少部分重叠,进行生成合并的第三图形拓扑的处理;并且
所述时钟树构建模块进一步被配置为构建所述时钟树使得属于不同的时钟域的时钟单元能够共享更多的物理位置。
11.根据权利要求9所述的系统,其中,所述第二生成模块进一步包括:
变换模块,被配置为在所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中插入至少一个第一级时钟单元来分别驱动多个时钟接收端,所插入的所述第一级时钟单元代替其驱动的相应时钟接收端作为所变换的所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑的所述至少一个中的节点,以执行使所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的所述至少一个向其中心聚集和使所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑向彼此靠近的方向偏移这两个动作中的至少一个,从而进行所述变换,直到变换后的所述第一时钟接收端分布图形拓扑的边界区域和所述第二时钟接收端分布图形拓扑的边界区域相似且中心满足重叠条件;以及
生成子模块,被配置为生成包括所插入的所述至少一个第一级时钟单元作为节点的所述合并的第三图形拓扑。
12.根据权利要求11所述的系统,其中,所述变换模块被配置为:
选择所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑中的边界区域较大的一个进行所述变换;以及
根据相应的时钟域的性能要求而对所述第一时钟接收端分布图形拓扑和所述第二时钟接收端分布图形拓扑设定的不同优先级而进行所述变换,使得其中优先级较高的时钟域的接收端分布图形拓扑在所述变换的过程中偏移相对较小。
13.根据权利要求11所述的系统,其中,所述时钟树构建模块进一步包括:
聚集方案求解模块,被配置为将预定的物理和电学限制条件应用于所述合并的第三图形拓扑,以求解指示所驱动的接收端彼此通信的数目最大的节点之间应该聚集的优化聚集方案;
聚集模块,被配置为通过在所述合并的第三图形拓扑中插入至少一个第二级时钟单元来分别驱动基于所求解的优化聚集方案要聚集的相应的一个以上的节点,聚集所述合并的第三图形拓扑,其中所插入的所述第二级时钟单元代替所述要聚集的相应的一个以上的节点作为所聚集的所述合并的第三图形拓扑中的节点,
时钟树构建子模块,被配置为基于所聚集的所述合并的第三图形拓扑以单个时钟域的方式构建时钟树;以及
复制模块,被配置为复制所述时钟树中的驱动多个时钟域的节点的时钟单元,并将所复制的时钟单元移动到原始时钟单元的附近,使得一个时钟单元仅驱动相应一个时钟域的节点。
14.根据权利要求13所述的系统,其中,所插入和所复制的时钟单元包括缓冲器。
15.根据权利要求13所述的系统,还包括:
连接模块,被配置为利用导线连接所插入和所复制的时钟单元,以完成与不同时钟域对应的各个时钟树。
16.根据权利要求13所述的系统,其中,聚集方案求解模块进一步被配置为:
解如下的目标函数MaxF以得出MaxF为最大值时的优化矩阵CL
其中,n表示所述合并的第三图形拓扑所具有的节点的数目;
i和j代表所述合并的第三图形拓扑中的任意两个不同的节点,k代表第三图形拓扑中的除i和j之外的另一节点;
CL代表待解矩阵,代表i和j是否应该聚集在一起,1代表是,0代表否;
RM矩阵代表节点之间的逻辑连接数,其等于i节点包含的时钟接收端和j节点包含的时钟接收端之间的逻辑连接的总数;
PL代表能够聚集到一个集合中的节点的数目的限制,PLMax是防止一个集合中的总引脚电容过大的标量;
DIS代表能够聚集到一个集合中的节点之间的距离限制,如果由i和j之间的距离确定将i和j聚集在一起不会违反线电容限制,则DIS(i,j)取1,否则取0。
17.一种制造集成电路的方法,包括利用根据权利要求1-8中任一权利要求所述的方法构建所述集成电路的时钟树。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310103413.8A CN104077427B (zh) | 2013-03-28 | 2013-03-28 | 跨时钟域的时钟树构建方法和系统、集成电路及制造方法 |
US14/225,813 US9053277B2 (en) | 2013-03-28 | 2014-03-26 | Clock tree construction across clock domains |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310103413.8A CN104077427B (zh) | 2013-03-28 | 2013-03-28 | 跨时钟域的时钟树构建方法和系统、集成电路及制造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104077427A CN104077427A (zh) | 2014-10-01 |
CN104077427B true CN104077427B (zh) | 2017-03-22 |
Family
ID=51598681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310103413.8A Expired - Fee Related CN104077427B (zh) | 2013-03-28 | 2013-03-28 | 跨时钟域的时钟树构建方法和系统、集成电路及制造方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9053277B2 (zh) |
CN (1) | CN104077427B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105989197B (zh) * | 2015-01-28 | 2019-06-11 | 京微雅格(北京)科技有限公司 | 基于sat算法的时钟树布线方法 |
US9779197B1 (en) * | 2015-02-13 | 2017-10-03 | Microsemi Solutions (U.S.), Inc. | Method and system of merging memory cells into multi-bit registers in an integrated circuit layout |
CN105138735B (zh) * | 2015-07-30 | 2018-05-25 | 中山大学 | 一种多宏单元多时钟芯片的时钟树综合方法 |
CN107300948A (zh) * | 2016-04-14 | 2017-10-27 | 飞思卡尔半导体公司 | 具有多位时钟门控单元的集成电路 |
CN106446366B (zh) * | 2016-09-09 | 2019-09-10 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种大规模数字集成电路时钟网格分布方法 |
US10318693B1 (en) * | 2017-08-29 | 2019-06-11 | Cadence Design Systems, Inc. | Balanced scaled-load clustering |
US10474779B1 (en) * | 2017-09-22 | 2019-11-12 | Juniper Networks, Inc. | Bisection methodology for on-chip variation tolerant clock signal distribution in an integrated circuit |
CN108256189B (zh) * | 2018-01-06 | 2021-08-03 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计高效时钟树物理位置优化方法 |
CN110377922B (zh) * | 2018-04-12 | 2023-06-30 | 龙芯中科技术股份有限公司 | 保持时间违例修复方法、装置及设备 |
CN110658885B (zh) * | 2018-06-28 | 2021-08-17 | 瑞昱半导体股份有限公司 | 时钟树合成方法 |
US10740532B1 (en) * | 2018-12-20 | 2020-08-11 | Cadence Design Systems, Inc. | Route driven placement of fan-out clock drivers |
CN109800495B (zh) * | 2019-01-14 | 2023-05-02 | 深圳忆联信息系统有限公司 | 基于ddr phy物理实现的时钟树优化方法和装置 |
CN110007713B (zh) * | 2019-04-16 | 2020-07-31 | 中国人民解放军国防科技大学 | 跨时钟域信号动态调整检查参数的时序检查方法及系统 |
TWI758720B (zh) | 2020-04-30 | 2022-03-21 | 創意電子股份有限公司 | 電路信號偏移的調整裝置以及調整方法 |
TWI780471B (zh) * | 2020-08-20 | 2022-10-11 | 大陸商信泰光學(深圳)有限公司 | 模型建立及預測系統及方法,及相關電腦程式產品 |
CN113191112A (zh) * | 2021-03-25 | 2021-07-30 | 西安紫光国芯半导体有限公司 | 一种芯片的时钟树规划方法以及芯片 |
CN113486611B (zh) * | 2021-06-30 | 2023-04-25 | 海光信息技术股份有限公司 | 芯片设计方法、芯片设计装置及非暂时性存储介质 |
CN118569195A (zh) * | 2023-02-22 | 2024-08-30 | 中兴通讯股份有限公司 | 时钟树自动生成方法、系统和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5638291A (en) * | 1994-10-14 | 1997-06-10 | Vlsi Technology, Inc. | Method and apparatus for making integrated circuits by inserting buffers into a netlist to control clock skew |
CN101187957A (zh) * | 2006-10-31 | 2008-05-28 | 国际商业机器公司 | 设计集成电路的公共时钟域中的多个锁存器的布图的系统和方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434704B1 (en) * | 1999-08-16 | 2002-08-13 | International Business Machines Corporation | Methods for improving the efficiency of clock gating within low power clock trees |
US6536024B1 (en) * | 2000-07-14 | 2003-03-18 | International Business Machines Corporation | Method for making integrated circuits having gated clock trees |
US6782519B2 (en) | 2001-12-18 | 2004-08-24 | Cadence Design Systems, Inc. | Clock tree synthesis for mixed domain clocks |
US7117143B2 (en) * | 2003-12-11 | 2006-10-03 | Fortelink, Inc. | Clock distribution in a circuit emulator |
US9310831B2 (en) | 2008-02-06 | 2016-04-12 | Mentor Graphics Corporation | Multi-mode multi-corner clocktree synthesis |
US8572418B2 (en) | 2009-03-12 | 2013-10-29 | Qualcomm Incorporated | Moving clock gating cell closer to clock source based on enable signal propagation time to clocked storage element |
US8316333B2 (en) * | 2010-07-22 | 2012-11-20 | International Business Machines Corporation | Implementing timing pessimism reduction for parallel clock trees |
-
2013
- 2013-03-28 CN CN201310103413.8A patent/CN104077427B/zh not_active Expired - Fee Related
-
2014
- 2014-03-26 US US14/225,813 patent/US9053277B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5638291A (en) * | 1994-10-14 | 1997-06-10 | Vlsi Technology, Inc. | Method and apparatus for making integrated circuits by inserting buffers into a netlist to control clock skew |
CN101187957A (zh) * | 2006-10-31 | 2008-05-28 | 国际商业机器公司 | 设计集成电路的公共时钟域中的多个锁存器的布图的系统和方法 |
Non-Patent Citations (3)
Title |
---|
Multi-Domain Clock Skew Scheduling;Ravindran K, Kuehlmann A, Sentovich E.;《Proceedings of the 2003 IEEE/ACM international conference on Computer-aided design. IEEE Computer Society, 2003》;20031230;801-808 * |
Register Relocation to Optimize Clock Network for Multi-Domain Clock Skew Scheduling;Yang L, Fan B, Cong M, et al.;《Proceedings of 2010 IEEE International Symposium on Circuits and Systems. IEEE, 2010》;20101230;3180-3183 * |
The Implementation and Design Methodology of a Quad-core Version Godson-3 Microprocessor;Fan B, Yang L, Gao Z, et al.;《52nd IEEE International Midwest Symposium on Circuits and Systems. IEEE, 2009》;20091230;1167-1170 * |
Also Published As
Publication number | Publication date |
---|---|
US20140298283A1 (en) | 2014-10-02 |
CN104077427A (zh) | 2014-10-01 |
US9053277B2 (en) | 2015-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104077427B (zh) | 跨时钟域的时钟树构建方法和系统、集成电路及制造方法 | |
US8484601B2 (en) | Optimizing cell libraries for integrated circuit design | |
US6530073B2 (en) | RTL annotation tool for layout induced netlist changes | |
US11281828B1 (en) | Automated analog layout | |
US7559040B1 (en) | Optimization of combinational logic synthesis through clock latency scheduling | |
US8977994B1 (en) | Circuit design system and method of generating hierarchical block-level timing constraints from chip-level timing constraints | |
WO2004102657A1 (ja) | 回路内信号線の最適化方法、最適化装置および最適化プログラムを格納した記憶媒体並びに回路設計方法および回路設計用プログラムを格納した記憶媒体 | |
US20050268268A1 (en) | Methods and systems for structured ASIC electronic design automation | |
US7404161B2 (en) | Fullchip functional equivalency and physical verification | |
US8255196B2 (en) | Constructing a replica-based clock tree | |
US20070067751A1 (en) | Computer program product, method, and system for hardware model conversion | |
US7519927B1 (en) | Wiring methods to reduce metal variation effects on launch-capture clock pairs in order to minimize cycle-time overlap violations | |
CN108073762B (zh) | 用于利用经延迟的初始化来验证经重定时的电路的方法 | |
WO2009100237A2 (en) | Optimization of integrated circuit design and library | |
CN105359149A (zh) | 双重结构的时钟树综合(cts) | |
US20050268267A1 (en) | Methods and systems for mixed-mode physical synthesis in electronic design automation | |
US7207024B2 (en) | Automatic insertion of clocked elements into an electronic design to improve system performance | |
US20130239075A1 (en) | Method and system for repartitioning a hierarchical circuit design | |
US9058450B1 (en) | Efficiently using cell libraries with a large number of cells | |
US7441212B1 (en) | State machine recognition and optimization | |
JP3923920B2 (ja) | 集積回路の設計システム及び集積回路の設計方法 | |
Tan et al. | Clustering of flip-flops for useful-skew clock tree synthesis | |
Xu et al. | Automatic synthesis of computation interference constraints for relative timing verification | |
US6931610B1 (en) | Method for rapid estimation of wire delays and capacitances based on placement of cells | |
US7131095B2 (en) | Routed layout optimization with geotopological layout encoding for integrated circuit designs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170322 Termination date: 20210328 |