CN102567557B - 用于构建用于集成电路设计的时钟树的方法和装置 - Google Patents

用于构建用于集成电路设计的时钟树的方法和装置 Download PDF

Info

Publication number
CN102567557B
CN102567557B CN201010612330.8A CN201010612330A CN102567557B CN 102567557 B CN102567557 B CN 102567557B CN 201010612330 A CN201010612330 A CN 201010612330A CN 102567557 B CN102567557 B CN 102567557B
Authority
CN
China
Prior art keywords
clock tree
time
sequential
matrix
path delay
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
Application number
CN201010612330.8A
Other languages
English (en)
Other versions
CN102567557A (zh
Inventor
江国范
林一帆
刘洋
杨浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201010612330.8A priority Critical patent/CN102567557B/zh
Priority to US13/325,102 priority patent/US8484604B2/en
Publication of CN102567557A publication Critical patent/CN102567557A/zh
Application granted granted Critical
Publication of CN102567557B publication Critical patent/CN102567557B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees

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

用于构建用于集成电路设计的时钟树的方法和装置
技术领域
本发明涉及集成电路设计的自动化,具体涉及用于集成电路设计的时钟树的构建和优化,更具体涉及一种用于构建用于集成电路设计的时钟树的方法和装置。
背景技术
大规模集成电路设计中,单个时钟源信号要驱动众多时序器件(寄存器,锁存器,存储器等)。如果用时钟源信号直接驱动时序器件,则驱动负载能力会成为问题,并且从时钟源到寄存器时钟端的布线过长带来的时延过大。因此,目前通常采用时钟分布网络的方式来驱动时序器件,即在时钟源和时序器件之间插入缓冲器或者反相器,形成一个时钟分布网络。目前的时钟分布网络通常采用时钟树的架构。图1示出了通过时钟树来驱动时序器件的示意图。如图所示,由时钟源和多级缓冲器(或者反相器)组成一个时钟树,由作为该时钟树的叶节点的缓存器来驱动各时序器件FF。
建立时间(Setup Time)是指在时钟采集沿到来之前数据从不稳定到稳定所需的时间,如果建立时间不满足要求那么数据不能在这个时钟沿被稳定地打入时序器件。保持时间(Hold Time)是指数据稳定后要保持的时间,如果保持时间不满足要求,数据同样不能被稳定地打入时序器件。图2示出了建立时间和保持时间的示意图。如图所示,第一个时序器件(可称为发送器件)输出的数据信号Data经组合逻辑传送到第二个时序器件(可称为捕获器件)的输入,时钟信号Clock控制第二个时序器件捕获数据信号。为使数据信号被第二时序器件正确地捕获,数据信号应当在时钟沿之前至少Tsetup的时间到达第二时序器件的输入,而在时钟沿之后至少保持Thold的时间。Tsetup即为建立时间,而Thold为保持时间。
数据信号和时钟信号的传输路径中的每个器件都会造成时延。由于工艺、温度、电压等的影响,每个器件的时延是在一定范围[lb,ub]内浮动的。由每个器件的时延浮动的下限lb计算的整个路径的时延被称为早期模式(early mode)的路径时延;由每个器件的时延浮动的上限ub计算的整个路径的时延被称为晚期模式(late mode)的路径时延。
在集成电路中,时钟决定了数据传输和控制的步长,决定了设计所能达到的最大频率。为了保证集成电路中各器件的正确工作,时钟路径的时延与数据路径的时延之间必须满足一定的关系。
然而,目前的时钟树综合(Clock Tree Synthesis)工具多根据时钟偏差(Skew)来度量时钟树质量,并以采用时钟偏差驱动的时钟树综合方法。通常在时钟树综合完成后才能发现共享时钟路径优化不足导致的问题,并进行手工优化。这不但是一个非常耗时的工作,而且,由于集成电路设计中包含大量的需要进行时序检查的时序器件,找到一个能够满足所有时序器件的时序检查要求的共享时钟路径优化方案是非常困难的。
发明内容
根据本发明的一个方面,提出了一种用于构建用于集成电路设计的时钟树的方法,包括:通过对经过布局的网表进行时序分析,提取出该网表中的时序器件之间的路径时延;以及根据所述时序器件之间的路径时延构建驱动所述时序器件的时钟树,使得任意两个时序器件之间的路径时延与该两个时序器件的时钟树分叉权重的乘积之和最小化,其中,两个时序器件的时钟树分叉权重与该两个时钟树相对于该对时序器件的分叉点距离该对时序器件的时钟树级数正相关。
根据本发明的另一个方面,提出了一种用于构建用于集成电路设计的时钟树的装置,包括:提取模块,用于通过对经过布局的网表进行时序分析,提取出该网表中的时序器件之间的路径时延;构建模块,用于根据所述时序器件之间的路径时延构建驱动所述时序器件的时钟树,使得任意两个时序器件之间的路径时延与该两个时序器件的时钟树分叉权重的乘积之和最小化,其中,两个时序器件的时钟树分叉权重与该时钟树相对于该两个时序器件的分叉点距离该对时序器件的时钟树级数正相关。
由于本发明的方法能够根据从网表中提取的时序器件之间的路径时延来构建时钟树,且该时钟树使得时序器件之间的路径时延与时钟树分叉权重的乘积最小化,这样就提出了一种评估集成电路设计的时序器件的共享时钟路径程度的标准,并能够实现针对特定集成电路设计自动生成共享时钟路径优化的时钟树。
附图说明
所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附图阅读下面对说明性实施例的详细说明可更好地理解发明本身以及其优选使用模式、目标、特征以及优点,在附图中:
图1示出了通过时钟树来驱动时序器件的示意图;
图2示出了建立时间和保持时间的示意图;
图3示出了时钟树驱动逻辑器件以及相关时延关系的示意图;
图4示出了由一作为二叉树的时钟树驱动时序器件a、b、c、d的示意图;
图5示出了表示集成电路设计中的任意两个寄存器之间的时钟树分叉权重的时钟树分叉权重矩阵;
图6示出了表示集成电路设计中的任意两个寄存器之间的数据路径时延的数据路径时延矩阵;
图7示出了运输问题中各产地的产量、各销地的销量以及每个产地与每个销地之间的运输单价的表;
图8示出了根据本发明的实施例的用于构建用于集成电路设计的时钟树拓扑的方法的过程;以及
图9示出了根据本发明的实施例的用于构建用于集成电路设计的时钟树的装置。
具体实施方式
下面参照附图来说明本发明的实施例。在下面的说明中,阐述了许多具体细节以便更全面地了解本发明。但是,对于本技术领域内的技术人员明显的是,本发明的实现可不具有这些具体细节中的一些。此外,应当理解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和要素的任意组合来实施本发明,而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。
首先参照附图描述根据本发明的实施例的用于构建用于集成电路设计的时钟树的方法的基本思想。
图3示出了时钟树驱动逻辑器件以及相关时延关系的示意图。如图所示,时钟信号通过包括时钟源、缓冲器buf_0、缓冲器buf_1的时钟路径驱动发送时序器件,通过包括时钟源、缓冲器buf_0、缓冲器buf_2的时钟路径驱动捕获寄存器,发送时序器件输出的数据信号经由组合逻辑传送到捕获寄存器的输入。在该图所示的电路中,为保证器件的正确工作,必须满足以下公式:
L1+Gmax+Tsetup<T+C1
其中,L1是从时钟源到发送寄存器的晚期模式的时延,C1是从时钟源到捕获寄存器的早期模式的时延,Gmax是两个寄存器之间的组合逻辑的晚期模式的时延,Tsetup是建立时间,T为时钟周期。
从以上公式可得:T>(L1-C1)+Gmax+Tsetup。可见,L1和C1之间的差值越小,则所能实现的时钟周期越小,即所能实现的时钟频率越大。在上图中,假定缓冲器buf_1和buf_2是相同类型的缓冲器,有相同的时延。但是在计算L1和C1的时候,buf_1会用晚期模式的时延,即时延上限;buf_2会用早期模式的时延,即时延下限。因为buf_1和buf_2处于不同的路径上。但是buf_0的时延在计算L1和C1时是一样的,因为L1和C1共享了buf_0,而buf_0不可能同时拥有不同的时延。因此可以得到结论,两个有数据传递关系的寄存器,共享的时钟路径(common clock path)越多,L1和C1之间的差值越小,从而对提高时钟频率越有帮助。
在图3所示的电路中,为了保证器件的正确工作,还必须满足以下公式:
L2+Gmin>C2+Thold
其中,L2是从时钟源到发送寄存器的早期模式的时延,C2是从时钟源到捕获寄存器的晚期模式的时延,Gmin是两个寄存器之间的组合逻辑的早期模式的时延。
从以上公式可得:C2-L2<Gmin-Thold。如果C2和L2完全共享时钟路径,那么C2-L2=0,即Gmin>Thold,这是很容易满足的。在计算C2的时候,对于非共享的时钟路径会采用晚期模式的时延;在计算L2的时候,对于非共享的时钟路径会用早期模式的时延。因此,如果C2和L2共享的时钟路径很少,则会导致C2-L2的差值很大,则很难满足C2-L2<Gmin-Thold的时序检查;如果C2-L2的差值超过了时钟周期T,则完全不能满足。这时,同样希望有相关时序检查的时序器件尽可能多地共享时钟路径。
对于集成电路设计中的时序器件(例如,寄存器等)与时序器件之间的每一条数据路径,可得到以下参数:数据路径时延,其可表示为DDly。如果两个时序器件之间没有数据路径,则DDly=0。如果两个时序器件之间存在数据路径,则DDly等于数据信号在该数据路径上传输的时延。两个时序器件之间的数据路径是指两个时序器件之间的直接的数据路径,即由一个时序器件输出的数据经由组合逻辑传送到另一个时序器件的输入。如果两个时序器件之间还包括其他时序器件,则在这两个时序器件并不存在直接的数据路径。该参数可以通过对集成电路设计的网表进行时序分析而得到。
假设已通过时钟树综合将时钟树综合到集成电路设计中,则对于时序器件与时序器件之间的每一条数据路径,可得到以下参数:时钟树分叉权重,其可表示为CKweight。对于给定的时钟树,时序器件与其自身之间的CKweight=0;如果两个时序器件的时钟路径在时钟树的最后一级缓冲器分叉,则CKweight=1;如果两个时序器件的时钟路径在时钟树的倒数第二级时钟缓冲器分叉,则CKweight=2;以此类推。
由于在时钟树综合中,二叉树是被广泛应用的树结构。因此,本发明中假设采用二叉树。图4示出了由一作为二叉树的时钟树驱动时序器件a、b、c、d的示意图。在该图中:
a和b之间的CKweight=1;
a和c之间的CKweight=2;
a和d之间的CKweight=2;
c和d之间的CKweight=1;
任何时序器件到其自身的CKweight=0。
这样,对于集成电路设计中的每两个时序器件之间的路径,可以得到一个乘积:DDly*CKweight。然后,对所有的DDly*CKweight求和。如果该和最小,则认为该时钟树基于最大共享时钟路径是最优的。也就是说,任意两个时序器件之间的路径时延与该两个时序器件的时钟树分叉权重的乘积之和最小化,则时钟路径是最优的,因此,可得到如下公式:
MinF = Σ j = 0 2 t - 1 Σ k = 0 2 t - 1 DDly ( j , k ) × CKweight ( j , k )
其中,DDly(j,k)为第j和第k的时序器件之间的数据路径时延,CKweight(j,k)为第j和第k个时序器件之间的时钟树分叉权重,且假设集成电路设计中包含n=2t个时序器件。如果集成电路设计中的包含的实际时序器件数m小于2t,则假设存在2t-m个虚拟时序器件,且虚拟时序器件与其他时序器件之间没有数据通路,即DDly=0,这样,实际时序器件与虚拟时序器件的总数仍为n=2t
这样,为集成电路设计构建最优的时钟树的任务就成为构建一个这样的时钟树,使其CKweight(j,k)与相应的DDly(j,k)的乘积的和即MinF最小。
可以采用多种方法来获得使所述MinF最小的时钟树。根据本发明的一个实施例,集成电路设计中的任意两个时序器件之间的CKweight(j,k)可表示为如图5所示的矩阵形式,该矩阵可称为时钟树分叉权重矩阵,其元素CKweight(j,k)表示时序器件j与k之间的时钟树分叉权重。
该CKweight矩阵满足如下条件:
1.由于时钟树为二叉树,该CKweight矩阵的每一行或者每一列都包含1个0,1个1,2个2,4个3,8个4,...,2t-1个t。因此,每一行或者每一列的元素的和是:
Σ n = 1 t 2 n - 1 n ;
2.对角线上的元素为0;
3.为对称矩阵,即CKweigh(k,j)=CKweight(j,k)。
对于给定的集成电路设计来说,每一个特定的时钟树对应于一个特定的CKweight矩阵。对应于该集成电路设计的不同时钟树的不同CKweight矩阵的每一行和每一列的元素是相同的,但所述元素在每一行和每一列中的位置是不同的。
因此,为该集成电路构建一个最优时钟树的任务就成为确定一个其元素具有特定位置的特定的CKweight矩阵,也就是说,该矩阵包括哪些元素是已知的,但这些元素在该矩阵中的位置是未知的、需要确定的。
集成电路设计中的任意两个时序器件之间的数据路径时延DDly可以表示为图6所示的矩阵形式,该矩阵可称为数据路径时延矩阵,或DDly矩阵,与CKweight矩阵中的行与列相对应,其元素DDly(j,k)表示时序器件j与k之间的数据路径的时延。如果两个时序器件之间没有数据路径,则元素为0。在矩阵的对角线线上的元素代表时序器件输出到本时序器件输入的时延,由于对应的CKweight为0,因此该元素不需要填充实际时延,可填充任意值,在图中以“M”表示。如本领域的技术人员所知的,集成电路设计可由网表(netlist)来表示。可通过对已经过布局(placement)的网表进行时序分析来得到任何两个时序器件之间的数据路径时延。
现在,为集成电路设计构建最优的时钟树的任务就成为:已知DDly矩阵,构建一个满足上述三个条件的CKweight矩阵,并使两个矩阵的元素的乘积的和最小。
该问题可以采用多种方法来求解。根据本发明的一个实施例,该问题可以通过运筹学中的运输理论来求解。运输理论用来解决运输问题,其可简述如下:
假设A1、A2、...、Am表示某物资的m个产地;B1、B2、...、Bn表示某物质的n个销地;si表示产地Ai的产量;dj表示销地Bj的销量;cij表示把物资为从产地Ai运往销地Bj的单位运价。
则在产销平衡的情况下:
Σ j = 1 n d i = Σ i = 1 m s i
图7以表的形式列出了各产地的产量、各销地的销量以及每个产地与每个销地之间的运输单价。
运输理论试图求解出将物资由各产地运输到各销地的成本最低的运输方案。设xij为从产地Ai运往销地Bj的运输量,则可得到下列运输量问题的模型:
Minf = Σ i = 1 m Σ j = 1 n c ij x ij Σ j = 1 n x ij = s i Σ i = 1 m x ij = d j x ij ≥ 0 ( i = 1,2 , . . . m ; j = 1,2 , . . . , n )
运输理论可使用表上作业法、逐块选优解法、直接算法等等多种已知方法求解上述运输问题。以表上作业法为例,其基本步骤为:1.使用西北角法或最小元素法等找到一个初始基可行解;2.使用闭回路法或位势法等进行最优解的差别,求非基变量的检验数;3.使用闭回路法和调整法确定入基变量与出基变量,找出新的基可行解;4.重复步骤2、3直到得到最优解。由于运输问题的求解方法本身并不属于本发明的内容,故在此不再详述,并可参见以下文献:陈宝林、何坚勇,“运输问题的表上作业法的一个解释”[J],《清华大学学报》(自然科学版),1998,38(12):40-43;蒋宏锋,“运输问题的逐块选优解法”,《科学技术与工程》,2006,8(4):922-925;蒋宏峰,“运输问题的直接算法”,《科学技术与工程》,2010;17(6):4109-4112,等等。
根据本发明的实施例,将求解CKweight矩阵的问题转化为运输问题,从而可使用运输理论来求解。由于CKweight矩阵中的每一行和每一列的元素的和是固定的,这类似于运输问题中每一个产地的产量及每一个销地的销量是固定的。CKweight矩阵中的每一个元素需要和DDly矩阵中的相应元素相乘,这类似于运输问题中产地与销地之间的运输量需要和该产量与销地之间的运输单价相乘。因此,可将CKweight矩阵中行和列分别视为产地和销地或销地和产地,将CKweight矩阵中的每一个元素视为运输问题中由一个产地运往一个销地的运输量,将CKweight矩阵中一行的元素之和视为一个产地的产量或一个销地的销量,将CKweight矩阵中一列的元素之和视为一个销地的销量或一个产地的产量;而将DDly矩阵中的行和列相应地分别视为产地和销地或销地和产地,将DDly矩阵中的每一个元素视为其行列所对应的产地和销地之间的运输单价。这样,求解使CKweight矩阵的每一个元素和DDly矩阵的每一个对应元素的乘积的和最小的问题就转化为求解产地和销地之间运输成本最小的运输方案的问题,从而可使用运输理论中的多种已知方法来进行求解。
当获得CKweight矩阵后,就可以得到由该矩阵表示的时钟树的拓扑结构。然后,可以将该时钟树插入到已经过布局的网表中,并进行时钟布线,从而得到经过时钟树综合的集成电路设计。
以上描述了根据本发明的实施例的用于构建用于集成电路设计的时钟树的方法的基本思想,根据本发明的一实施例,该用于构建用于集成电路设计的时钟树的方法包括如下步骤:通过对经过布局的网表进行时序分析,提取出该网表中的时序器件之间的路径时延;以及根据所述时序器件之间的路径时延构建驱动所述时序器件的时钟树,使得任意两个时序器件之间的路径时延与该两个时序器件的时钟树分叉权重的乘积之和最小化,其中,两个时序器件的时钟树分叉权重与该时钟树相对于该两个时序器件的分叉点距离该对时序器件的时钟树级数正相关。也就是说,任何构建时钟树的方法,只要其所构建的时钟树使得两个时序器件之间的路径时延与该两个时序器件的时钟树分叉权重的乘积之和最小化,都能解决本发明所要解决的技术问题。
在一种优选的实施方式中,将参照附图8描述根据本发明的实施例的用于构建用于集成电路设计的时钟树拓扑的方法的过程。如图所示,该方法包括以下步骤:
在步骤801,获得经过布局的网表。如本领域的技术人员所知的,网表是通常由集成电路设计自动化工具从硬件描述语言中产生的,并在自动化集成电路设计的物理设计阶段中使用。
在步骤802,对经过布局的网表进行时序分析,以提取出网表中的各时序器件之间的数据路径时延。可假设不存在数据通路关系的时序器件之间的数据路径时延为0。如本领域的技术人员所知的,数据路径时延可以由现有的时序分析工具产生。
在步骤803,根据所提取的数据路径时延构建DDly矩阵。其中,该DDly矩阵的行和列表示集成电路设计中的时序器件,其元素表示一对时序器件之间的数据路径时延,其中不存在数据通路关系的一对时序器件之间的路径时延为0。DDly矩阵的行数和列数均为2t。对于网表中包含的时序器件的数量m<2t的情况,则通过设立2t-m个虚拟时序器件来使总的时序器件的数量为2t,其中虚拟时序器件之间以及虚拟时序器件与网表中包含的实际时序器件之间的路径时延均为0。
在步骤804,根据DDly矩阵求解CKweight矩阵,并使得CKweight矩阵的每一个元素与DDly矩阵的相应元素的乘积的和最小化,也就是说,任意两个时序器件之间的路径时延与该两个时序器件的时钟树分叉权重的乘积之和最小化。其中,该CKweight矩阵对应于DDly矩阵中的行和列,其元素为时钟树分叉权重,其表示时钟树相对于一对时序器件的分叉点距离该对时序器件的时钟树级数。由于所述时钟树为二叉树,因此所述CKweight矩阵的每一行或者每一列都包含1个0,1个1,2个2,4个3,8个4,...,2t-1个t;对角线上的元素为0;且为对称矩阵,即CKweigh(k,j)=CKweight(j,k)。
根据本发明的实施例,通过应用运输理论来根据DDly矩阵求解CKweight矩阵,其中,所述DDly矩阵中的行和列被视为分别表示产地和销地或销地和产地,其元素被视为表示产地和销地之间的单位运输成本;所述CKweight矩阵中的行和列与DDly矩阵中的行和列相同,也被视为分别表示与产地和销地或销地和产地,其元素被视为表示相应产地运输到的相应销地的货物量;所述DDly矩阵中的每个元素与所述CKweight矩阵中的相应元素的乘积之和被视为总的运输成本。
在步骤805,根据所求解出的CKweight矩阵构建相应的时钟树。如本领域的技术人员可理解的,CKweight矩阵实际上是时钟树拓扑的矩阵表示。例如,如果CKweight矩阵中的某一个元素为1,则表示该元素所属行和列所分别对应的两个时序器件在时钟树的最低一级缓冲器处分叉;如果某一个元素为2,则表示该元素所属行和列所分别对应的两个时序器件在时钟树的倒数第二级缓冲器处分叉,...,如果某一个元素为i,则表示该元素所属行和列所分别对应的两个时序器件在时钟树的倒数第i级缓冲器处分叉。这样,可以根据CKweight矩阵构建出相应的时钟树。
在步骤806,在经过布局的网表中插入所构建的时钟树,这样就可以通过对所插入的时钟树进行时钟布线,最终得到时钟树综合后的集成电路设计。对插入的时钟树进行时钟布线的方法是本领域中公知的。
以上参照附图描述了根据本发明的实施例的用于构建用于集成电路设计的时钟树的方法。应指出的是,以上描述仅为示例,而不是对本发明的限制。在本发明的其他实施例的,该方法可具有更多、更少或不同的步骤,且各步骤之间的顺序可以与所描述的不同。另外,应指出的是,以上描述中包含了大量的技术细节,以便使本领域的技术人员更好地理解本发明,但本发明的一些实施例中可以不包含这些技术细节中的一些,或可以概括的方式包含这些技术细节。
例如,根据本发明的进一步的实施例,根据所述时序器件之间的路径时延构建驱动所述时序器件的时钟树包括:根据所述时序器件之间的路径时延构建路径时延矩阵DDly,其中,该路径时延矩阵DDly的元素DDly(j,k)表示时序器件j与k之间的路径时延,其中不存在数据通路关系的两个时序器件之间的路径时延为0;根据所述路径时延矩阵求解时钟树分叉权重矩阵CKweight,其中,该时钟树分叉权重矩阵CKweight的元素CKweight(j,k)表示两个时序器件之间的时钟树分叉权重,且其中所述路径时延矩阵DDly的每一个元素DDly(j,k)与所述时钟树分叉权重矩阵CKweight的相应元素CKweight(j,k)的乘积之和最小化;以及根据所述时钟树分叉权重矩阵构建时钟树。
再例如,根据本发明的进一步的实施例,所述时钟树为二叉树,两个时序器件之间的时钟树分叉权重等于所述时钟树相对于该两个时序器件的分叉点距离该两个时序器件的时钟树级数,且一个时序器件与其自身之间的时钟树分叉权重为零。
再例如,根据本发明的进一步的实施例,所述路径时延矩阵DDly和所述时钟树分叉权重矩阵CKweight的行数和列数均为2t,t为正整数,且当所述集成电路设计中的实际时序器件的数量m小于2t时,所述路径时延矩阵DDly和所述时钟树分叉权重矩阵CKweight的行和列还包括表示2t-m个虚拟时序器件,且虚拟时序器件与实际时序器件之间以及虚拟时序器件之间的数据路径时延为0。
再例如,根据本发明的进一步的实施例,所述根据所述路径时延矩阵求解时钟树分叉权重矩阵是通过应用运输理论进行的,其中,所述路径时延矩阵中的行和列被视为分别表示产地和销地或销地和产地,其元素被视为表示产地和销地之间的单位运输成本;所述时钟树分叉权重矩阵中的行和列被视为分别表示产地和销地或销地和产地,其元素被视为表示相应产地运输到的相应销地的货物量;所述路径时延矩阵中的每个元素与所述时钟树分叉权重矩阵中的相应元素的乘积之和被视为总的运输成本;并且,所述时钟树分叉权重矩阵中的每一行和每一列的元素均为1个0,1个1,2个2,4个3,...,2t-1个t。
再例如,根据本发明的进一步的实施例,该方法还包括:将所述时钟树插入所述经过布局的集成电路设计,以便得到经过时钟树综合的集成电路设计。
现参照附图9描述根据本发明的实施例的用于构建用于集成电路设计的时钟树的装置。该装置可以包括在现有的时钟树综合工具之内,作为该时钟树综合工具的一部分;或者,位于现有的时钟树综合工具之外,并与之协同工作,也就是说,该装置可以将所构建的时钟树提供给现有的时钟树综合工具,以便由时钟树综合工具将时钟树插入集成电路设计中。
如图所示,该装置包括:提取模块901,用于通过对经过布局的网表进行时序分析,提取出该网表中的时序器件之间的路径时延;构建模块902,用于根据所述时序器件之间的路径时延构建驱动所述时序器件的时钟树,使得任意两个时序器件之间的路径时延与该两个时序器件的时钟树分叉权重的乘积之和最小化,其中,两个时序器件的时钟树分叉权重与该时钟树相对于该两个时序器件的分叉点距离该对时序器件的时钟树级数正相关。
根据本发明的实施例,所述构建模块902包括:用于根据所述时序器件之间的路径时延构建路径时延矩阵DDly的装置,其中,该路径时延矩阵DDly的元素DDly(j,k)表示时序器件j与k之间的路径时延,其中不存在数据通路关系的两个时序器件之间的路径时延为0;用于根据所述路径时延矩阵DDly求解时钟树分叉权重矩阵CKweight的装置,其中,该时钟树分叉权重矩阵CKweight的元素CKweigh(k,j)表示时序器件j与k之间的时钟树分叉权重,且其中所述路径时延矩阵DDly的每一个元素DDly(j,k)与所述时钟树分叉权重矩阵CKweigh的相应元素CKweigh(k,j)的乘积之和最小化;以及用于根据所述时钟树分叉权重矩阵构建时钟树的装置。
根据本发明的实施例,所述时钟树为二叉树,两个时序器件之间的时钟树分叉权重等于所述时钟树相对于该两个时序器件的分叉点距离该两个时序器件的时钟树级数,且一个时序器件与其自身之间的时钟树分叉权重为零。
根据本发明的实施例,所述路径时延矩阵DDly和所述时钟树分叉权重矩阵CKweight的行数和列数均为2t,t为正整数,且当所述集成电路设计中的实际时序器件的数量m小于2t时,所述路径时延矩阵DDly和所述时钟树分叉权重矩阵CKweight的行和列还包括表示2t-m个虚拟时序器件,且虚拟时序器件与实际时序器件之间以及虚拟时序器件之间的路径时延为0。
根据本发明的实施例,所述用于根据所述路径时延矩阵求解时钟树分叉权重矩阵的装置是通过应用运输理论进行求解的,其中,所述路径时延矩阵中的行和列被视为分别表示产地和销地或销地和产地,其元素被视为表示产地和销地之间的单位运输成本;所述时钟树分叉权重矩阵中的行和列被视为分别表示产地和销地或销地和产地,其元素被视为表示相应产地运输到的相应销地的货物量;所述路径时延矩阵中的每个元素与所述时钟树分叉权重矩阵中的相应元素的乘积之和被视为总的运输成本;并且,所述时钟树分叉权重矩阵中的每一行和每一列的元素均为1个0,1个1,2个2,4个3,...,2t-1个t。
根据本发明的实施例,该装置还包括一可选的插入模块903,用于将所述时钟树插入所述经过布局的集成电路设计,以便得到经过时钟树综合的集成电路设计。在该实施例中,该装置实际上已成为时钟树综合工具的一部分。
以上描述了根据本发明的实施例的用于构建用于集成电路设计的时钟树的装置,应指出的是,以上描述仅为示例,而不是对本发明的限制。在本发明的其他实施例中,该装置可具有更多、更少或不同的模块,且各模块之间的包含和连接等关系可以与所描述的不同。
本发明可以硬件、软件、或硬件与软件的结合的方式实现。本发明可以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描述的方法的任何计算机系统或其它装置都是合适的。一种典型的硬件和软件的组合可以是带有计算机程序的通用计算机系统,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法,并构成本发明的装置。
本发明也可体现在计算机程序产品中,该程序产品包含使能实现本文中描述的方法的所有特征,并且当其被加载到计算机系统中时,能够执行所述方法。
尽管已参照优选实施例具体示出和说明了本发明,但是本领域内的那些技术人员应理解,可在形式和细节上对其进行各种改变而不会背离本发明的精神和范围。

Claims (10)

1.一种用于构建用于集成电路设计的时钟树的方法,包括:
通过对经过布局的网表进行时序分析,提取出该网表中的时序器件之间的路径时延;以及
根据所述时序器件之间的路径时延构建驱动所述时序器件的时钟树,使得任意两个时序器件之间的路径时延与该两个时序器件的时钟树分叉权重的乘积之和最小化,其中,两个时序器件的时钟树分叉权重与该时钟树相对于该两个时序器件的分叉点距离该两个时序器件的时钟树级数正相关;
其中,根据所述时序器件之间的路径时延构建驱动所述时序器件的时钟树包括:
根据所述时序器件之间的路径时延构建路径时延矩阵DDly,其中,该路径时延矩阵DDly的元素DDly(j,k)表示时序器件j与k之间的数据路径的时延,其中不存在数据通路关系的两个时序器件之间的路径时延为0;
根据所述路径时延矩阵求解时钟树分叉权重矩阵CKweight,使得所述路径时延矩阵DDly的每一个元素DDly(j,k)与所述时钟树分叉权重矩阵CKweigh的相应元素CKweigh(k,j)的乘积之和最小化,其中,该时钟树分叉权重矩阵CKweight的元素CKweigh(j,k)表示时序器件j与k之间的时钟树分叉权重;以及
根据所述时钟树分叉权重矩阵构建时钟树。
2.根据权利要求1所述的方法,其中,所述时钟树为二叉树,两个时序器件之间的时钟树分叉权重等于所述时钟树相对于该两个时序器件的分叉点距离该两个时序器件的时钟树级数,且一个时序器件与其自身之间的时钟树分叉权重为零。
3.根据权利要求2所述的方法,其中,所述路径时延矩阵DDly和所述时钟树分叉权重矩阵CKweight的行数和列数均为2t,t为正整数,且当所述网表中的实际时序器件的数量m小于2t时,所述路径时延矩阵DDly和所述时钟树分叉权重矩阵CKweight的行和列还包括表示2t-m个虚拟时序器件,且虚拟时序器件与实际时序器件之间以及虚拟时序器件之间的路径时延为0。
4.根据权利要求3所述的方法,其中,所述根据所述路径时延矩阵求解时钟树分叉权重矩阵是通过应用运输理论进行的,
其中,所述路径时延矩阵中的行和列被视为分别表示产地和销地或销地和产地,其元素被视为表示产地和销地之间的单位运输成本;所述时钟树分叉权重矩阵中的行和列被视为分别表示产地和销地或销地和产地,其元素被视为表示相应产地运输到的相应销地的货物量;所述路径时延矩阵中的每个元素与所述时钟树分叉权重矩阵中的相应元素的乘积之和被视为总的运输成本;并且,所述时钟树分叉权重矩阵中的每一行和每一列的元素均为1个0,1个1,2个2,4个3,…,2t-1个t。
5.根据权利要求1所述的方法,还包括:
将所述时钟树插入所述经过布局的网表,以便得到经过时钟树综合的集成电路设计。
6.一种用于构建用于集成电路设计的时钟树的装置,包括:
提取模块,用于通过对经过布局的网表进行时序分析,提取出该网表中的时序器件之间的路径时延;
构建模块,用于根据所述时序器件之间的路径时延构建驱动所述时序器件的时钟树,使得任意两个时序器件之间的路径时延与该两个时序器件的时钟树分叉权重的乘积之和最小化,其中,两个时序器件的时钟树分叉权重与该时钟树相对于该两个时序器件的分叉点距离该两个时序器件的时钟树级数正相关;
其中,所述构建模块包括:
用于根据所述时序器件之间的路径时延构建路径时延矩阵DDly的装置,其中,该路径时延矩阵DDly的元素DDly(j,k)表示时序器件j与k之间的数据路径的时延,其中不存在数据通路关系的两个时序器件之间的路径时延为0;
用于根据所述路径时延矩阵求解时钟树分叉权重矩阵CKweight的装置,其中,该时钟树分叉权重矩阵CKweight的元素CKweight(j,k)表示时序器件j与k之间的时钟树分叉权重,且其中所述路径时延矩阵DDly的每一个元素DDly(j,k)与所述时钟树分叉权重矩阵CKweight的相应元素CKweight(j,k)的乘积之和最小化;以及
用于根据所述时钟树分叉权重矩阵构建时钟树的装置。
7.根据权利要求6所述的装置,其中,所述时钟树为二叉树,两个时序器件之间的时钟树分叉权重等于所述时钟树相对于该两个时序器件的分叉点距离该两个时序器件的时钟树级数,且一个时序器件与其自身之间的时钟树分叉权重为零。
8.根据权利要求7所述的装置,其中,所述路径时延矩阵DDly和所述时钟树分叉权重矩阵CKweight的行数和列数均为2t,t为正整数,且当所述网表中的实际时序器件的数量m小于2t时,所述路径时延矩阵DDly和所述时钟树分叉权重矩阵CKweight的行和列还包括表示2t-m个虚拟时序器件,且虚拟时序器件与实际时序器件之间以及虚拟时序器件之间的路径时延为0。
9.根据权利要求8所述的装置,其中,所述用于根据所述路径时延矩阵求解时钟树分叉权重矩阵的装置是通过应用运输理论进行求解的,
其中,所述路径时延矩阵中的行和列被视为分别表示产地和销地或销地和产地,其元素被视为表示产地和销地之间的单位运输成本;所述时钟树分叉权重矩阵中的行和列被视为分别表示产地和销地或销地和产地,其元素被视为表示相应产地运输到的相应销地的货物量;所述路径时延矩阵中的每个元素与所述时钟树分叉权重矩阵中的相应元素的乘积之和被视为总的运输成本;并且,所述时钟树分叉权重矩阵中的每一行和每一列的元素均为1个0,1个1,2个2,4个3,…,2t-1个t。
10.根据权利要求6所述的装置,还包括:
插入模块,用于将所述时钟树插入所述经过布局的网表,以便得到经过时钟树综合的集成电路设计。
CN201010612330.8A 2010-12-20 2010-12-20 用于构建用于集成电路设计的时钟树的方法和装置 Expired - Fee Related CN102567557B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010612330.8A CN102567557B (zh) 2010-12-20 2010-12-20 用于构建用于集成电路设计的时钟树的方法和装置
US13/325,102 US8484604B2 (en) 2010-12-20 2011-12-14 Constructing a clock tree for an integrated circuit design

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010612330.8A CN102567557B (zh) 2010-12-20 2010-12-20 用于构建用于集成电路设计的时钟树的方法和装置

Publications (2)

Publication Number Publication Date
CN102567557A CN102567557A (zh) 2012-07-11
CN102567557B true CN102567557B (zh) 2014-07-09

Family

ID=46236198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010612330.8A Expired - Fee Related CN102567557B (zh) 2010-12-20 2010-12-20 用于构建用于集成电路设计的时钟树的方法和装置

Country Status (2)

Country Link
US (1) US8484604B2 (zh)
CN (1) CN102567557B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8593177B2 (en) * 2012-03-19 2013-11-26 Advanced Micro Devices, Inc. Integrated circuit with timing aware clock-tree and method for designing such an integrated circuit
CN102955877B (zh) * 2012-08-16 2015-02-18 清华大学 针对tsv互连的三维集成电路时钟拓扑结构产生方法
US9135386B2 (en) 2012-12-26 2015-09-15 Synopsys, Inc. Multi-mode scheduler for clock tree synthesis
JP6456842B2 (ja) * 2012-12-26 2019-01-23 シノプシス, インコーポレイテッドSyn0Psys, Inc. パワーグリッド(pg)アライメントのためにパワーネットワーク合成(pns)と一体化されたシェーピング
CN103793483B (zh) * 2014-01-16 2017-02-15 清华大学 基于时钟节点结群的时钟树生成方法和系统
CN104090986B (zh) * 2014-07-28 2018-06-01 福建三元达网络技术有限公司 一种无线控制器槽位控制方法、接入设备和无线控制器
CN105701266B (zh) 2014-11-28 2019-05-07 国际商业机器公司 用于电路设计中的静态时序分析的方法和系统
CN105930591A (zh) * 2016-04-26 2016-09-07 东南大学 寄存器聚类在时钟树综合中的实现方法
CN108120917B (zh) * 2016-11-29 2020-05-05 深圳市中兴微电子技术有限公司 测试时钟电路确定方法及装置
CN107688682B (zh) * 2016-12-23 2021-05-14 北京国睿中数科技股份有限公司 一种使用时序路径提取电路拓扑的方法
US10057523B1 (en) 2017-02-13 2018-08-21 Alexander Krymski Image sensors and methods with multiple phase-locked loops and serializers
CN106960087B (zh) * 2017-03-13 2020-05-19 上海华力微电子有限公司 一种时钟分布网络结构及其生成方法
CN109388813B (zh) * 2017-08-03 2023-04-14 深圳市中兴微电子技术有限公司 一种构建用于集成电路设计的时钟树的方法及装置
US10289797B1 (en) * 2017-08-28 2019-05-14 Cadence Design Systems, Inc. Local cluster refinement
US10616103B2 (en) 2017-12-01 2020-04-07 International Business Machines Corporation Constructing staging trees in hierarchical circuit designs
CN110457839B (zh) * 2019-08-15 2023-04-07 中国科学院微电子研究所 一种加速芯片级电路时序分析方法
CN110750954B (zh) * 2019-10-29 2020-12-25 上海安路信息科技有限公司 电路原理图生成方法及生成系统
CN111651402A (zh) * 2020-07-16 2020-09-11 深圳比特微电子科技有限公司 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机
CN114997087B (zh) * 2022-08-03 2022-10-25 飞腾信息技术有限公司 一种时钟树的优化方法、优化装置和相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1627302A (zh) * 2003-09-19 2005-06-15 国际商业机器公司 数字电路的统计计时分析系统和方法
US7020861B2 (en) * 2003-07-17 2006-03-28 International Business Machines Corporation Latch placement technique for reduced clock signal skew
CN1822008A (zh) * 2006-03-30 2006-08-23 复旦大学 一种时钟树的拓扑结构优化方法
CN1831830A (zh) * 2006-04-13 2006-09-13 复旦大学 一种时钟树的拓扑结构优化方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452239A (en) * 1993-01-29 1995-09-19 Quickturn Design Systems, Inc. Method of removing gated clocks from the clock nets of a netlist for timing sensitive implementation of the netlist in a hardware emulation system
US5936877A (en) * 1998-02-13 1999-08-10 Micron Technology, Inc. Die architecture accommodating high-speed semiconductor devices
US20030135836A1 (en) 2001-12-18 2003-07-17 Jui-Ming Chang Gated clock tree synthesis
US6981233B2 (en) 2003-02-24 2005-12-27 Cadence Design Systems, Inc. Method for analyzing path delays in an IC clock tree
JP2008140821A (ja) 2006-11-30 2008-06-19 Matsushita Electric Ind Co Ltd 半導体装置および半導体装置の設計方法
US7882461B2 (en) * 2007-05-29 2011-02-01 Magma Design Automation, Inc. Method for optimized automatic clock gating
US20090064067A1 (en) 2007-08-28 2009-03-05 Silicon Integrated Systems Corp. Method of balancing path delay of clock tree in integrated circuit (ic) layout
US20090217225A1 (en) 2008-02-22 2009-08-27 Mentor Graphics, Corp. 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020861B2 (en) * 2003-07-17 2006-03-28 International Business Machines Corporation Latch placement technique for reduced clock signal skew
CN1627302A (zh) * 2003-09-19 2005-06-15 国际商业机器公司 数字电路的统计计时分析系统和方法
CN1822008A (zh) * 2006-03-30 2006-08-23 复旦大学 一种时钟树的拓扑结构优化方法
CN1831830A (zh) * 2006-04-13 2006-09-13 复旦大学 一种时钟树的拓扑结构优化方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
基于Garfield5设计中时钟树综合技术研究;汪珺;《中国优秀博硕士学位论文全文数据库 (硕士)信息科技辑》;20070415;4.4节 *
汪珺.基于Garfield5设计中时钟树综合技术研究.《中国优秀博硕士学位论文全文数据库 (硕士)信息科技辑》.2007,
石文兰 等.面向芯片计算机集成的时钟树构建.《计算机集成制造系统》.2006,第12卷(第9期),
窦润亮,南国芳.基于模拟退火方法的多级时钟树的构建.《计算机工程》.2007,第33卷(第20期), *
面向芯片计算机集成的时钟树构建;石文兰 等;《计算机集成制造系统》;20060930;第12卷(第9期) *

Also Published As

Publication number Publication date
US20120159416A1 (en) 2012-06-21
US8484604B2 (en) 2013-07-09
CN102567557A (zh) 2012-07-11

Similar Documents

Publication Publication Date Title
CN102567557B (zh) 用于构建用于集成电路设计的时钟树的方法和装置
CN103324774B (zh) 一种基于时钟规划偏差算法的处理器性能优化方法
US7313776B2 (en) Method and apparatus for routing an integrated circuit
US20090271750A1 (en) Timing constraint merging in hierarchical soc designs
CN102395954A (zh) 生成多核通信拓扑的装置及相关方法
US20220398373A1 (en) Multi-stage fpga routing method for optimizing time division multiplexing
CN105243245B (zh) 一种基于Petri网的电路模块故障机理相关关系的可靠性建模方法
CN105701294B (zh) 实现芯片复杂工程修改的方法及系统
US7711513B2 (en) System and method of determining the speed of digital application specific integrated circuits
US9294094B1 (en) Method and apparatus for fast low skew phase generation for multiplexing signals on a multi-FPGA prototyping system
US20220187367A1 (en) Machine learning delay estimation for emulation systems
CN116108783B (zh) 分块逻辑时序分析建模及处理方法、系统、设备及介质
CN101877014B (zh) 一种检测时序约束冲突的方法和装置
US10120019B2 (en) Automated method for analyzing a board having a plurality of FPGA components
CN104992032B (zh) 一种多电压域设计中保持时间的修正方法
US6684374B2 (en) Timing budget designing method
US5724557A (en) Method for designing a signal distribution network
US6941532B2 (en) Clock skew verification methodology for grid-based design
US7559042B2 (en) Layout evaluating apparatus
CN102955869A (zh) 评估时钟偏移的方法和装置
US7073153B2 (en) Route searching method and storage medium thereof
CN117236246A (zh) 一种考虑多输入转换效应的单元时序预测方法、设备及介质
CN115906747A (zh) 一种集成电路设计网表中插入扫描链的方法
Prasad et al. Analysis, Physical Design and Power Optimization of Design Block at Lower Technology Node
Tu et al. Timing driven routing tree construction

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171106

Address after: American New York

Patentee after: Core USA second LLC

Address before: American New York

Patentee before: International Business Machines Corp.

Effective date of registration: 20171106

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

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: 20140709

Termination date: 20211220