首页> 中国专利> 跨时钟域的时钟树构建方法和系统、集成电路及制造方法

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

摘要

本发明公开了跨时钟域的时钟树构建方法和系统、集成电路及制造方法。根据本发明的一个方面,提供了一种构建时钟树的方法,该方法包括以下步骤:获取描述集成电路的网表,该网表包括描述了属于多个时钟域的时钟接收端在集成电路图形上的物理位置和逻辑连接的数据;以及基于该网表构建跨时钟域的时钟树,使得属于不同的时钟域的时钟单元能够共享更多的物理位置。根据本发明,能够优化跨时钟域的时钟树,从而提升集成电路的性能。

著录项

  • 公开/公告号CN104077427A

    专利类型发明专利

  • 公开/公告日2014-10-01

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201310103413.8

  • 发明设计人 吴列治;徐越;刘洋;陈孙阳;

    申请日2013-03-28

  • 分类号G06F17/50;

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人申发振

  • 地址 美国纽约

  • 入库时间 2023-12-17 01:49:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-03-11

    未缴年费专利权终止 IPC(主分类):G06F17/50 专利号:ZL2013101034138 申请日:20130328 授权公告日:20170322

    专利权的终止

  • 2017-03-22

    授权

    授权

  • 2014-10-29

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20130328

    实质审查的生效

  • 2014-10-01

    公开

    公开

说明书

技术领域

本发明涉及集成电路(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)— 连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供 商来通过因特网连接)。

下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程 图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和 /或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令 可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从 而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装 置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。

也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理 装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的 指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指 令装置(instruction means)的制造品(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) 的网表。在设计集成电路时,会产生集成电路的网表。这个过程通常称为网表 设置(netlist placement)。网表设置一般将网表中的逻辑元件和其他电路分配到 集成电路图形上的物理位置。一般地,网表设置产生的网表并不包含时钟树与 这些元件和电路之间的连接关系。这些元件和电路包括时钟接收端(或称接收 端),即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得出。

MaxF=(Σi=1nΣj=1nRM(i,j)*CL(i,j))---(1)

其中,假设所生成的合并的图形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矩阵本身的限制之外,根据本发明的实施方式,还可以对聚集 方案施加附加的电学限制。原则上,不能在一个集合中聚集过多的节点,因为 总的引脚电容(pin capacitance)会过大。对此,可以产生矢量PL来代表能够 聚集到一个集合中的节点的数目的限制。PL具有用于存储属于图形C的n个节 点的引脚电容的要素。可以根据IC设计的常用技术限定一个集合的最大总引脚 电容PLMax。如以下的式(4)所示,PLMax作为防止一个集合中的总引脚电 容过大的标量。

Σj=1n(CL(i,j)*PL(j))PLMax---(4)

另一方面,不能将距离过大的节点聚集在一个集合中,因为线电容(net  capacitance)会成为问题。对此,可以根据每两个节点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可 以对应于优化聚集方案。

MaxF=(Σi=1nΣj=1n(RM(i,j)*CL(i,j)))

CL(i,j)*CL(i,k)-CL(j,i)*CL(j,k)=0CL(i,j)=CL(j,i)CL(i,j)DIS(i,j)Σj=1n(CL(i,j)*PL(j))PLMaxCL(i,j){0,1}CL(i,i)=1i,j,k=1,2,...n---(6)

如本领域技术人员所理解的,式(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设计、制造 的后续处理。

根据本公开的一个实施方式,还提供一种集成电路,该集成电路包括跨时钟 域的时钟树,并且属于不同的时钟域的时钟单元共享更多(优选地,尽可能多) 的物理位置。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计 算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图 中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段 或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应 当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图 中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它 们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框 图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执 行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与 计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的, 并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的 情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。 本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场 中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露 的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号