CN116167331B - 用于构建时钟树的方法、时钟树及芯片 - Google Patents

用于构建时钟树的方法、时钟树及芯片 Download PDF

Info

Publication number
CN116167331B
CN116167331B CN202310460392.9A CN202310460392A CN116167331B CN 116167331 B CN116167331 B CN 116167331B CN 202310460392 A CN202310460392 A CN 202310460392A CN 116167331 B CN116167331 B CN 116167331B
Authority
CN
China
Prior art keywords
clock
delay
port
signal
tree
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.)
Active
Application number
CN202310460392.9A
Other languages
English (en)
Other versions
CN116167331A (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.)
Hanbo Semiconductor Shanghai Co ltd
Original Assignee
Hanbo Semiconductor Shanghai Co ltd
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 Hanbo Semiconductor Shanghai Co ltd filed Critical Hanbo Semiconductor Shanghai Co ltd
Priority to CN202310460392.9A priority Critical patent/CN116167331B/zh
Publication of CN116167331A publication Critical patent/CN116167331A/zh
Application granted granted Critical
Publication of CN116167331B publication Critical patent/CN116167331B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Abstract

本公开提供了一种用于构建时钟树的方法、时钟树及芯片,涉及集成电路领域。用于构建时钟树的方法包括:在时钟树的叶节点处应用时钟驱动组件,时钟驱动组件包括时钟驱动部件,二者之间形成有传输时钟信号的至少两个信号路径的第一时钟端口和第二时钟端口,以及时钟延时部件;通过将时钟驱动组件设置为提供最小延时值,确定时钟信号到达时钟树的每个负载端的初始时钟到达时间;基于初始时钟到达时间确定时钟树的全局时钟偏斜;响应于全局时钟偏斜小于或等于最大延时值:对于初始时钟到达时间更短的负载端,赋予更大的时钟延时;以及基于针对每个负载端赋予的时钟延时,确定对应于负载端的信号路径。

Description

用于构建时钟树的方法、时钟树及芯片
技术领域
本公开涉及集成电路领域,尤其涉及大规模集成电路设计,特别是涉及一种用于构建时钟树的方法、时钟树及芯片。
背景技术
在大规模集成电路设计中,电路中所有的时序逻辑器件,例如触发器,计数器,寄存器等,都需要依赖于顶层全局时钟的信号来进行正常工作,这对于时钟树的构建提出了很高的要求。随着芯片电路设计规模不断扩大,时钟网络的规模也随之扩大,同时由于芯片电路设计性能的提高,时钟信号的频率也得到了大幅提升,对于时钟树的构建提出了极大的挑战。如何降低大规模集成电路中时钟树的构建难度,以及如何更有效地提升时钟树的性能,仍然是业界的研究热点和难点之一。
发明内容
本公开提供了一种用于构建时钟树的方法、时钟树和芯片。
根据本公开的一方面,提供了一种用于构建时钟树的方法,包括:在时钟树的叶节点处应用时钟驱动组件,其中,时钟驱动组件包括:时钟驱动部件,被配置为对输入至时钟驱动组件的时钟信号进行驱动;第一时钟端口和第二时钟端口,第一时钟端口和第二时钟端口之中的一个时钟端口被配置为将时钟信号输入至时钟驱动组件以由时钟驱动部件进行驱动,另一个时钟端口被配置为输出由时钟驱动部件驱动的时钟信号,其中,第一时钟端口与第二时钟端口之间形成有用于传输时钟信号的至少两个信号路径;以及时钟延时部件,时钟延时部件被配置为产生分别对应于至少两个信号路径的至少两个延时,至少两个延时分别作用于在至少两个信号路径上传输的时钟信号,其中,时钟驱动组件具有用于对时钟信号进行延时的可调节延时范围,可调节延时范围由时钟驱动组件中的至少两个信号路径的数量和时钟延时部件确定,且可调节延时范围具有最小延时值和最大延时值;通过将时钟驱动组件设置为提供最小延时值,确定时钟信号到达时钟树的每个负载端的初始时钟到达时间;基于初始时钟到达时间确定时钟树的全局时钟偏斜;响应于全局时钟偏斜小于或等于最大延时值:对于初始时钟到达时间更短的负载端,赋予更大的时钟延时;以及基于针对每个负载端赋予的时钟延时,确定对应于负载端的信号路径。
根据本公开的另一方面,提供了一种时钟树,其中,时钟树是根据本公开如上所提供的方法构建的。
根据本公开的另一方面,提供了一种芯片,包括根据本公开如上所提供的方法所构建的时钟树。
根据本公开的一个或多个实施例,可以降低大规模集成电路中时钟树的构建难度,以及更有效地提升时钟树的质量。
根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1是示出根据示例性实施例的时钟驱动组件的配置图;
图2是示出根据另一实施例的时钟驱动组件的配置图;
图3是示出根据另一实施例的时钟驱动组件的配置图;
图4是示出根据另一实施例的时钟驱动组件的配置图;
图5是示出根据另一实施例的时钟驱动组件的配置图;
图6是示出根据示例性实施例的时钟树的结构图;
图7是示出根据示例性实施例的用于构建时钟树的方法的流程图;
图8是示出根据示例性实施例的调整全局时钟偏斜的示意图;
图9是示出根据示例性实施例的方法构建的时钟树的结构图;
图10是示出根据另一实施例的方法构建的时钟树的结构图;
图11是示出根据示例性实施例的时钟驱动组件的示例参数表;
图12是示出根据示例性实施例的调整全局时钟偏斜的参数实验数据表。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。如本文使用的,术语“多个”意指两个或更多,并且术语“基于”应解释为“至少部分地基于”。此外,术语“和/或”以及“……中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
在大规模集成电路设计中,电路中所有的时序逻辑器件,例如触发器,计数器,寄存器等,都需要依赖于顶层全局时钟的信号来进行正常工作。但时钟从时钟源到每个寄存器(或负载端)的路径延迟不一样,因此信号到达时钟端的时间也不一样,时钟信号到达不同寄存器的时间差可以被称为时钟偏斜,时钟偏斜是衡量时钟树性能的重要参数。为了满足高性能芯片的时钟设计,时钟偏斜在时钟设计中应当尽可能的小,以为后续的物理设计及静态时序分析提供足够的时序余量。
同时因为时钟信号的高反转率,时钟信号在整体芯片中的功耗占比也非常大。因此时钟规划不仅是芯片是否能正常工作的基础,也与芯片性能息息相关,这对于时钟树的构建提出了很高的要求。
在目前的大规模集成芯片中,顶层的时钟树需要依赖芯片顶层的整体设计,在芯片中搭建复杂的环境,这对芯片设计工程师对于时钟整体的把握与设计经验提出了较高的要求,工程师很难在较短的时间内交付一个满足芯片设计要求的顶层时钟树。另一方面,传统的时钟树的迭代一般需要在芯片顶层设计中额外做时钟树绕线绕路,这部分绕路的时钟金属线会额外占用芯片整体的电路网络,降低芯片电源网络的可靠性或降低芯片电源网络的通流能力,从而对芯片的可靠性和性能产生不利影响。
为了简便地对时钟树中负载端的时钟信号到达时间进行动态调节,以尽可能减小时钟偏斜,为芯片的物理设计及静态时序分析提供足够的时序余量,本公开提供了一种用于时钟树的时钟驱动组件。
下面结合附图详细描述本公开的示例性实施例。
图1是示出根据示例性实施例的时钟驱动组件100的配置图。
参考图1,时钟驱动组件100包括:时钟驱动部件120,被配置为对输入至时钟驱动组件100的时钟信号进行驱动;第一时钟端口110和第二时钟端口140,第一时钟端口110和第二时钟端口140之中的一个时钟端口被配置为将时钟信号输入至时钟驱动组件100以由时钟驱动部件120进行驱动,另一个时钟端口被配置为输出由时钟驱动部件120驱动的时钟信号,其中,第一时钟端口110与第二时钟端口140之间形成有用于传输时钟信号的两个信号路径151和152;以及时钟延时部件130,时钟延时部件130被配置为产生分别对应于两个信号路径151和152的两个延时,两个延时分别作用于在两个信号路径151和152上传输的时钟信号。
在示例中,时钟驱动组件100还可以包括用于连接电源以进行供电的端口160,以及用于接地的端口170。
在示例中,时钟驱动部件120可以对位于时钟驱动组件100后级的负载例如锁存器、触发器等提供驱动能力。时钟驱动部件120可以由单个的时钟驱动缓冲器构成,也可以由并联的多个时钟驱动缓冲器构成。
在示例中,第一时钟端口110可以用于输入时钟信号,也可以用于输出时钟信号。当第一时钟端口110用于输入时钟信号时,第二时钟端口140可以用于输出时钟信号。当第一时钟端口110用于输出时钟信号时,第二时钟端口140可以用于输入时钟信号。
在示例中,第一时钟端口110可以包括一个第一时钟子端口,第二时钟端口140可以包括多个第二时钟子端口;也可以是第一时钟端口110包括多个第一时钟子端口,第二时钟端口140包括一个第二时钟子端口;还可以是第一时钟端口110包括多个第一时钟子端口,第二时钟端口140也包括多个第二时钟子端口。
在如图1所示的示例中,第一时钟端口110与第二时钟端口140之间形成有用于传输时钟信号的两个信号路径151和152。时钟信号可以在第一时钟端口110与第二时钟端口140之间沿信号路径151传输以经过时钟驱动部件120和时钟延时部件130,且当时钟信号在信号路径151上传输时,时钟延时部件130产生对应于信号路径151的延时以作用于该时钟信号。类似地,时钟信号可以在第一时钟端口110与第二时钟端口140之间沿信号路径152传输以经过时钟驱动部件120和时钟延时部件130,且当时钟信号在信号路径152上传输时,时钟延时部件130产生对应于信号路径152的延时以作用于该时钟信号。
在示例中,时钟延时部件130可以包括分布地设置在信号路径151和152上的一个或多个时钟延时元件,以产生分别对应于信号路径151和152的两个延时。可以通过在信号路径151和152其中一个信号路径上设置一个时钟延时元件,另一个信号路径上不设置时钟延时元件,来产生分别对应于这两个信号路径的两个延时;也可以通过在信号路径151和152这两个信号路径上分别设置能产生不同延时的两个时钟延时元件,来产生分别对应于这两个信号路径的两个延时;还可以通过使信号路径151和152这两个信号路径共用一个时钟延时部件,并在其中一个信号路径上设置另一个时钟延时部件,来产生分别对应于这两个信号路径的两个延时。
在示例中,信号路径151和152可以分别对应于两个不同的延时,例如时钟延时部件130可以在信号路径152上产生比信号路径151更大的延时。
在示例中,可以将时钟驱动组件100设置在时钟树电路中的时钟源与负载之间,并且时钟树电路中的时钟信号通过时钟驱动组件100的至少一个信号路径传输。由于信号路径151和152可以对应有两个不同的延时,因此当时钟树电路中的时钟信号通过信号路径151传输时,时钟信号到达时钟树的负载端的时间点可以不同于当时钟信号通过信号路径152传输时时钟信号到达时钟树的负载端的时间点。例如当时钟延时部件130在信号路径152上产生比信号路径151更大的延时时,时钟信号通过信号路径152传输时时钟信号到达时钟树的负载端的时间点可以晚于当时钟信号通过信号路径151传输时时钟信号到达时钟树的负载端的时间点。这样,便可以通过将时钟驱动组件100的不同信号路径接入时钟树电路,实现对时钟信号到达时钟树的负载端的时间点的动态调整。
为了便于理解,图1仅描绘出两个信号路径151和152。然而在实际应用中,时钟驱动组件可以具有更多的信号路径以使得时钟延时部件130能够产生分别对应于这些信号路径的多个延时,从而使得时钟树的时钟信号到达负载端的时间点具有更大的调整范围。
应当注意的是,虽然时钟驱动部件120和时钟延时部件130在图1的时钟驱动组件100中被描绘为具有特定的顺序,但是这不应理解为要求这些部分必须以所示的特定顺序连接。即,时钟驱动部件120可以位于时钟延时部件130部件的上游或下游。
根据本公开的实施例,通过利用时钟延时部件在信号路径中产生不同的延时,工程师可以通过在时钟树的时钟源和负载端之间接入时钟驱动组件的对应的信号路径以获得所需的延时,于是可以非常简便地对负载端的时钟到达时间进行调整。当时钟树的多个负载端的时钟到达时间分布范围较大时(例如有的负载端的时钟到达时间相对较短,有的负载端的时钟到达时间相对较长,由此导致全局时钟偏斜较大),通过时钟驱动组件对这些负载端所在的信号路径赋予合适的延时来对负载端的时钟到达时间进行调整,能够使得时钟信号到达每个负载端的优化后的时钟到达时间分布更加紧密,即,时钟信号到达每个负载端的优化后的时钟到达时间的最大差值被减小,也即全局时钟偏斜被减小,使得时钟树的每个负载之间的时钟同步性得以提升。
以下进一步描述根据本公开实施例的时钟驱动组件的各个方面。
根据一些实施例,第一时钟端口可以包括一个第一时钟子端口,第二时钟端口可以包括至少两个第二时钟子端口,且这些信号路径可以分别形成在该一个第一时钟子端口与该至少两个第二时钟子端口之间。替代地,第一时钟端口可以包括至少两个第一时钟子端口,第二时钟端口可以包括一个第二时钟子端口,且这些信号路径可以分别形成在该至少两个第一时钟子端口与该一个第二时钟子端口之间。替代地,第一时钟端口可以包括至少两个第一时钟子端口,第二时钟端口可以包括至少两个第二时钟子端口,且这些信号路径可以分别形成在该至少两个第一时钟子端口与该至少两个第二时钟子端口之间。
图2是示出根据另一实施例的时钟驱动组件200的配置图。
如图2所示,时钟驱动组件200可以包括第一时钟端口和第二时钟端口,第一时钟端口可以包括一个第一时钟子端口210,第二时钟端口可以包括两个第二时钟子端口241和242。时钟驱动组件200还可以包括时钟驱动部件220,以及包括两个时钟延时元件231和232的时钟延时部件。
在示例中,在第一时钟子端口210与第二时钟子端口241之间可以形成包括时钟驱动部件220和时钟延时元件231的信号路径251;在第一时钟子端口210与第二时钟子端口242之间可以形成包括时钟驱动部件220和时钟延时元件232的信号路径252。
在示例中,两个时钟延时元件231和232可以产生不同的延时,于是信号路径251和信号路径252也可以对应不同的延时。
在示例中,可以将第一时钟子端口210配置为将时钟信号输入至时钟驱动组件200,将第二时钟子端口241和242配置为输出时钟信号,那么将时钟驱动组件200接入时钟树电路中时,可以将时钟源设置在靠近第一时钟子端口210的一侧,将负载端设置在靠近第二时钟子端口241或者第二时钟子端口242的一侧;也可以将第二时钟子端口241和242配置为将时钟信号输入至时钟驱动组件200,将第一时钟子端口210配置为输出时钟信号,那么将时钟驱动组件200接入时钟树电路中时,可以将负载端设置在靠近第一时钟子端口210的一侧,将时钟源设置在靠近第二时钟子端口241或者第二时钟子端口242的一侧。也就是说,实际上可以通过将第二时钟子端口241和242中的一个接入时钟树电路来确定接入时钟树电路的信号路径。具体地,如果将第二时钟子端口241接入时钟树电路,那么接入时钟树电路的信号路径可以为信号路径251,该信号路径中的时钟信号到达负载端的时间点便能够比原本的时钟到达时间晚了与信号路径251对应的延时值;如果将第二时钟子端口242接入时钟树电路,那么接入时钟树电路的信号路径可以为信号路径252,该信号路径中的时钟信号到达负载端的时间点便能够比原本的时钟到达时间晚了与信号路径252对应的延时值。这样,便可以通过将时钟驱动组件200的不同第二时钟子端口接入时钟树电路来实现对时钟信号到达时钟树的负载端的时间点的动态调整。
可以理解的是,图2仅为一种示例,示出了一种具有一个第一时钟子端口和两个第二时钟子端口的时钟驱动组件。在实际应用中,时钟驱动组件也可以具有更多的第二时钟子端口。例如时钟驱动组件可以具有四个第二时钟子端口,第一时钟子端口与四个第二时钟子端口之间可以分别形成四个对应不同延时值的信号路径。这样,通过将时钟驱动组件的四个不同第二时钟子端口接入时钟树电路,也就将对应的信号路径接入了时钟树电路,从而实现了对时钟信号到达时钟树的负载端的时间点的动态调整。
图3是示出根据另一实施例的时钟驱动组件300的配置图。
如图3所示,时钟驱动组件300可以包括第一时钟端口和第二时钟端口,第一时钟端口可以包括两个第一时钟子端口311和312,第二时钟端口可以包括一个第二时钟子端口340。时钟驱动组件300还可以包括时钟驱动部件和时钟延时部件,时钟驱动部件可以包括两个时钟驱动元件321和322,时钟延时部件可以包括两个时钟延时元件331和332。
在示例中,在第一时钟子端口311与第二时钟子端口340之间可以形成包括时钟驱动元件321和时钟延时元件331的信号路径351;在第一时钟子端口312与第二时钟子端口340之间可以形成包括时钟驱动元件322和时钟延时元件332的信号路径352。
在示例中,两个时钟延时元件331和332可以产生不同的延时,于是信号路径351和信号路径352也可以对应不同的延时。
在示例中,可以将第一时钟子端口311和312配置为将时钟信号输入至时钟驱动组件300,将第二时钟子端口340配置为输出时钟信号;也可以将第二时钟子端口340配置为将时钟信号输入至时钟驱动组件300,将第一时钟子端口311和312配置为输出时钟信号。与如图2所示的时钟驱动组件200类似,可以通过将时钟驱动组件300的第一时钟子端口311和312中的一个接入时钟树电路来确定接入时钟树电路的信号路径为信号路径351还是信号路径352。于是,通过将时钟驱动组件300的不同第一时钟子端口接入时钟树电路,也就将对应的信号路径接入了时钟树电路,从而实现了对时钟信号到达时钟树的负载端的时间点的动态调整。
可以理解的是,图3仅为一种示例,示出了一种具有两个第一时钟子端口和一个第二时钟子端口的时钟驱动组件。在实际应用中,时钟驱动组件也可以具有更多的第一时钟子端口,这些第一时钟子端口与第二时钟子端口之间可以分别形成相同数量的对应不同延时值的信号路径,以用于调整时钟到达时间。
图4是示出根据另一实施例的时钟驱动组件400的配置图。
如图4所示,时钟驱动组件400可以包括第一时钟端口和第二时钟端口,第一时钟端口可以包括两个第一时钟子端口411和412,第二时钟端口可以包括两个第二时钟子端口441和442。时钟驱动组件400还可以包括时钟驱动部件和时钟延时部件,时钟驱动部件可以包括两个时钟驱动元件421和422,时钟延时部件可以包括两个时钟延时元件431和432。
在示例中,在第一时钟子端口411与第二时钟子端口441之间可以形成包括时钟驱动元件421和时钟延时元件431的信号路径451;在第一时钟子端口412与第二时钟子端口442之间可以形成包括时钟驱动元件422和时钟延时元件432的信号路径452。
在示例中,两个时钟延时元件431和432可以产生不同的延时,于是信号路径451和信号路径452也可以对应不同的延时。
在示例中,可以将第一时钟子端口411和412配置为将时钟信号输入至时钟驱动组件400,将第二时钟子端口441和442配置为输出时钟信号;也可以将第二时钟子端口441和442配置为将时钟信号输入至时钟驱动组件400,将第一时钟子端口411和412配置为输出时钟信号。与如图2所示的时钟驱动组件200和如图3所示的时钟驱动组件300类似,可以通过将时钟驱动组件400的第一时钟子端口411和第二时钟子端口441同时接入时钟树电路,或者第一时钟子端口412和第二时钟子端口442同时接入时钟树电路,来确定接入时钟树电路的信号路径为信号路径451还是信号路径452。通过将时钟驱动组件400的不同第一时钟子端口和第二时钟子端口接入时钟树电路,也就将对应的信号路径接入了时钟树电路,从而实现了对时钟信号到达时钟树的负载端的时间点的动态调整。
可以理解的是,图4仅为一种示例,示出了一种具有两个第一时钟子端口和两个第二时钟子端口的时驱动组件。在实际应用中,时钟驱动组件也可以具有更多的第一时钟子端口和/或第二时钟子端口。
根据本公开的实施例,通过令第一时钟端口包括至少两个第一时钟子端口和/或令第二时钟端口包括至少两个第二时钟子端口,能够在时钟驱动组件中形成多个不同的信号路径,在时钟延时部件的搭配设置下,可以提供多个延时值的的选择,于是工程师能够通过对接入电路的端口进行选择来调整时钟信号在传输过程中的延时,以方便地对负载端的时钟到达时间进行调整,从而优化整个时钟树的全局时钟偏斜,提高负载之间的时钟同步性。
图5示出根据另一实施例的时钟驱动组件500的配置图。
如图5所示,时钟驱动组件500可以包括用于时钟信号输入的第一时钟端口和用于时钟信号输出的第二时钟端口(例如,在图5中时钟信号的流向可以是从左至右),第一时钟端口可以包括一个第一时钟子端口510,第二时钟端口可以包括四个第二时钟子端口541、542、543和544。时钟驱动组件500还可以包括时钟驱动部件和时钟延时部件,时钟延时部件可以包括四个时钟延时元件521、522、523和524,时钟驱动部件可以包括四个时钟驱动元件531、532、533和534。
在示例中,在第一时钟子端口510与第二时钟子端口541之间可以形成包括时钟延时元件521和时钟驱动元件531的信号路径551;在第一时钟子端口510与第二时钟子端口542之间可以形成包括时钟延时元件521和522以及时钟驱动元件532的信号路径552;在第一时钟子端口510与第二时钟子端口543之间可以形成包括时钟延时元件521、522和523以及时钟驱动元件533的信号路径553;在第一时钟子端口510与第二时钟子端口544之间可以形成包括时钟延时元件521、522、523和524以及时钟驱动元件534的信号路径554。
在示例中,四个时钟驱动元件531、532、533和534可以是相同的时钟驱动元件。
根据一些实施例,对应于各个信号路径的延时的时间长度可以递增或递减。
在示例中,参见图5,信号路径551中包括一个时钟延时元件521,信号路径552中包括两个时钟延时元件521和522,因此信号路径552对应的延时比信号路径551对应的延时的时间长度更长,且两个延时的时间长度之差是由时钟延时元件522产生的。信号路径553比信号路径552增加了一个时钟延时元件523,因此信号路径553对应的延时比信号路径552对应的延时的时间长度更长,且两个延时的时间长度之差是由时钟延时元件523产生的。同样的,信号路径554比信号路径553进一步增加了一个时钟延时元件524,因此信号路径554对应的延时比信号路径553对应的延时的时间长度更长,且两个延时的时间长度之差是由时钟延时元件524产生的。在这样的设置下,信号路径551、552、553和554对应的延时的时间长度递增。
可以理解,图5仅为一种在信号路径中实现递增的延时的示例,在实际应用中,时钟驱动组件也可以通过类似的时钟延时元件设置方式在信号路径中实现递减的延时。
根据本公开的实施例,四个信号路径551、552、553和554对应的延时的时间长度可以递增,例如,这四个信号路径551、552、553和554可以分别对应于最小延时、较小延时、较大延时和最大延时。当将负载端分别与第二时钟子端口541、542、543和544连接时,利用这四个信号路径551、552、553和554调整后的时钟到达时间也可以是最短、较短、较长、最长。例如,为了调整多个负载端的时钟到达时间,工程师可以对时钟到达时间最早的负载端赋予最大的时钟延时,即,将信号路径调整为对应于最大延时的信号路径554。替代地,对时钟到达时间较早的负载端赋予较大的时钟延时,即,将信号路径调整为对应于较大延时的信号路径553。替代地,对时钟到达时间较晚的负载端赋予较小的时钟延时,即,将信号路径调整为对应于较小延时的信号路径552。替代地,对时钟到达时间最晚的负载端赋予最小的时钟延时,即,将信号路径调整为对应于最小延时的信号路径551(例如,实际应用中可以对应于不进行路径调整的情况)。以这样的规律调整多个负载端的时钟到达时间,优化后的时钟到达时间分布便能够更加紧密,时钟树的每个负载之间的时钟同步性便能得以提升。
根据一些实施例,时钟延时部件可以包括分别设置在至少两个信号路径上的至少两个时钟延时元件。
参见图5,时钟延时部件可以包括四个时钟延时元件521、522、523和524。在信号路径551上设置有一个时钟延时元件521,在信号路径552上串联地设置有两个时钟延时元件521和522,在信号路径553上串联地设置有三个时钟延时元件521、522和523,在信号路径554上串联地设置有四个时钟延时元件521、522、523和524。
也就是说,信号路径521、522、523和524共用了同一个时钟延时元件521,信号路径522、523和524又进一步共用了同一个时钟延时元件522,信号路径523和524还共用了同一个时钟延时元件523。
可以理解,图5仅为一种示例,在实际应用中,时钟驱动组件也可以去除时钟延时元件521,同样能够使得四个信号路径具有不同的延时。时钟驱动组件还可以在至少两个信号路径中的每一个信号路径中分别设置一个具有不同延时值的时钟延时元件,以使四个信号路径具有不同的延时。
根据本公开的实施例,通过在四个信号路径上设置四个时钟延时元件,能够借助于一种或几种规格的时钟延时元件的组合产生各种不同的延时值,从而使得时钟驱动组件能够将负载端的时钟到达时间调整至各种所需的时间点。
根据一些实施例,各个时钟延时元件可以产生彼此相同或不同的延时。
在示例中,参见图5,四个时钟延时元件521、522、523和524可以产生相同的延时,也可以产生不同的延时。当四个时钟延时元件521、522、523和524产生相同的延时时,信号路径551和552之间,信号路径552和553之间,以及信号路径553和554之间对应的延时的时间长度差也相同,即,相邻的信号路径之间可以提供步进延时(step delay)。在这样的设置下,信号路径551、552、553和554对应的延时的时间长度为递增的以步进延时的时间长度为公差的等差数列。
根据本公开的实施例,若各个时钟延时元件产生彼此相同的延时,那么通过如图5所示的类似的连接方法,能够使得四个信号路径具有不同的延时。若各个时钟延时元件产生彼此不同的延时,那么通过直接在至少两个信号路径中的每一个信号路径中分别设置一个时钟延时元件,也能够使得四个信号路径具有不同的延时。这样,各信号路径便能够具有彼此不同的延时值,工程师也就能够借助于时钟驱动组件将负载端的时钟到达时间调整至各种所需的时间点。
根据一些实施例,每个时钟延时元件可以包括晶体管或者金属中的至少一种。
在示例中,当时钟延时元件包括金属时,金属可以被定制为高层或低层的金属线网络,以达到预期的延时效果。
在示例中,时钟延时元件的选择可以依据以下因素,诸如芯片制造工艺对于时钟延时元件的要求、时钟树的时钟偏斜要求、后续的时钟驱动元件的大小及个数。
根据本公开的实施例,通过利用晶体管构成时钟延时元件,能够简化时钟延时元件,降低成本。通过利用金属构成时钟延时元件,能够更精确地设计时钟延时元件所产生的延时,从而使得动态调节时钟到达时间的过程更加可靠。
根据一些实施例,时钟驱动部件可以包括分别设置在各个信号路径上的时钟驱动元件。
参见图5,时钟驱动部件可以包括四个时钟驱动元件531、532、533和534。在信号路径551上设置有一个时钟驱动元件531,在信号路径552上设置有一个时钟驱动元件532,在信号路径553上设置有一个时钟驱动元件533,在信号路径554上设置有一个时钟驱动元件534。
可以理解,图5仅为一种示例,在实际应用中,多个信号路径也可以共用同一个时钟驱动元件,例如信号路径551和552可以共用一个时钟驱动元件,信号路径553和554可以共用一个时钟驱动元件。
在示例中,时钟驱动元件的选择可以依据以下因素,诸如芯片制造工艺对于时钟驱动元件的要求、后续的负载电容大小。
根据本公开的实施例,通过在不同的信号路径分别设置时钟驱动元件,每一个信号路径可以保持其独立性,避免了信号路径之间的相互干扰,能够提高时钟驱动组件的精度,从而使得动态调节时钟到达时间的过程更加可靠。
根据本公开的另一方面,还提供一种时钟树。时钟树包括:根据上文描述的任一实施例的时钟驱动组件,其中,时钟驱动组件位于时钟树的叶节点处。
在示例中,时钟树的叶节点,也称为tap点,可以是指时钟树的最后一个层级,时钟负载可以连接到时钟树的该层级。
图6是示出根据示例性实施例的时钟树600的结构图。
如图6所示,时钟树600可以包括:时钟源610,用于产生时钟信号;连接到时钟源610的顶层时钟树电路620;位于时钟树600的叶节点处的多个时钟驱动组件631、632和633,时钟驱动组件631、632和633为根据上文描述的任一实施例的时钟驱动组件。所述多个时钟驱动组件631、632和633可以分别连接到多个时钟负载641、642和643。
在示例中,以时钟驱动组件631为例,时钟源610产生的时钟信号可以经由顶层时钟树电路620传输至时钟驱动组件631的第一时钟端口和第二时钟端口中的一个时钟端口(例如第一时钟端口用于时钟信号输入),并输入至其中的时钟驱动部件进行驱动。时钟信号在时钟驱动组件631中可以经由其中的一个信号路径进行传输,再通过第一时钟端口和第二时钟端口中的另一个时钟端口(例如第二时钟端口用于时钟信号输出)输出至时钟负载641。类似地,时钟源610产生的时钟信号被传输至时钟负载642和643以及未示出的其他时钟负载的过程也可以与上述时钟源610产生的时钟信号被传输至时钟负载641的过程类似。
在示例中,时钟信号经由时钟驱动组件631、632和633到达负载641、642和643的时间可能是不同的。即,对于每个时钟负载而言,初始时钟到达时间可能是不同的。相应地,所有时钟负载的初始时钟到达时间之中的最大初始到达时间与最小初始到达时间之间的差值(即,全局时钟偏斜)可能较大。
在示例中,这些具有不同初始到达时间的时钟负载中的每一个可以应用一个时钟驱动组件,对这些时钟负载可以根据其初始到达时间的大小确定连接的时钟驱动组件的第二时钟子端口。具体地,对初始时钟到达时间非常短(即初始时钟延时非常小)的时钟负载,可以给该时钟负载对应的负载端赋予最大的时钟延时,即,将时钟负载连接在时钟驱动组件的第二时钟子端口544(如在图5中示出的,下同)上,对应于具有最大延时的信号路径554。替代地,对初始时钟到达时间较短(即初始时钟延时较小)的时钟负载,可以给该时钟负载对应的负载端赋予较大的时钟延时,即,将时钟负载连接在时钟驱动组件的第二时钟子端口543上,对应于具有较大延时的信号路径553。替代地,对初始时钟到达时间较长(即初始时钟延时较大)的时钟负载,可以给该时钟负载对应的负载端赋予较小的时钟延时,即,将时钟负载连接在时钟驱动组件的第二时钟子端口542上,对应于具有较小延时的信号路径552。替代地,对初始时钟到达时间非常长(即初始时钟延时非常大)的时钟负载,可以给该时钟负载对应的负载端赋予最小的时钟延时,即,将时钟负载连接在时钟驱动组件的第二时钟子端口541上,对应于具有最小延时的信号路径551(例如,实际应用中可以对应于不进行路径调整的情况)。以这样的规律调整多个负载端的时钟到达时间,优化后的时钟到达时间分布便能够更加紧密,时钟树的每个负载之间的时钟同步性便能得以提升。
根据本公开的实施例,通过在时钟树中设置时钟驱动组件,可以使得时钟信号到达时钟树的每个负载端的优化后的时钟到达时间分布更加紧密,即,优化后的全局时钟偏斜,被大幅度减小,每个负载之间的时钟同步性得以提升,时钟树所应用的芯片性能也得以提高。通过将时钟驱动组件设置在时钟树的叶节点处,能够避免顶层电路对调整后的时钟到达时间产生干扰,提高了对全局时钟偏斜的调整的准确性。
根据本公开的另一方面,还提供了一种芯片,其包括根据上文描述的任一实施例的时钟树。
根据本公开的另一方面,还提供了一种用于构建时钟树的方法。
图7是示出根据示例性实施例的用于构建时钟树的方法700的流程图。
参考图7,在步骤710,在时钟树的叶节点处应用时钟驱动组件。时钟驱动组件是上文描述的任一实施例的时钟驱动组件。因此,时钟驱动组件具有用于对时钟信号进行延时的可调节延时范围。可调节延时范围由时钟驱动组件中的信号路径的数量和时钟延时部件确定。可调节延时范围具有最小延时值和最大延时值。
在示例中,可以通过选择时钟驱动组件中的信号路径来提供不同的延时值。例如,在时钟驱动组件具有四个信号路径的情况下,时钟驱动组件中的时钟延时部件可以产生分别对应于四个信号路径的四个延时,诸如以等间隔递增的四个延时值,如对应于第一路径的最小延时值、对应于第二路径的较小延时值、对应于第三路径的较大延时值、对应于第四路径的最大延时值。相应地,这四个延时值分别用于在这四个信号路径上传输的时钟信号。因此,在选择了时钟驱动组件中的特定信号路径时,时钟驱动组件就可以提供特定的延时值。
在示例中,还可以进一步在叶节点所在的最后一个层级之上的更高层级设置时钟驱动组件。
在步骤720,通过将时钟驱动组件设置为提供最小延时值,确定时钟信号到达时钟树的每个负载端的初始时钟到达时间。
在示例中,最小延时值也可以为零。相应地,对应于该最小延时值的信号路径上可以不设置时钟延时元件。
在示例中,时钟信号到达时钟树的每个负载端的初始时钟到达时间也可以用时钟信号从每个时钟驱动组件输出而到达对应负载端的时间表示。在实际设计中,该时间可以通过仿真来获得。
在步骤730,基于初始时钟到达时间确定时钟树的全局时钟偏斜。
在示例中,时钟树的全局时钟偏斜可以用时钟信号到达时钟树的每个负载端的初始时钟到达时间的最大差值来表示。
在步骤740,响应于全局时钟偏斜小于或等于最大延时值:执行步骤741,对于初始时钟到达时间更短的负载端,赋予更大的时钟延时;以及步骤742,基于针对每个负载端赋予的时钟延时,确定对应于负载端的时钟驱动组件的信号路径。
由于最大延时值表示时钟驱动组件的可调节延时范围的上限,当全局时钟偏斜小于或等于最大延时值,可以通过改变时钟驱动组件中的信号路径而对每个负载端的初始时钟到达时间赋予额外的时钟延时(即,有用的时钟偏斜),以减小所有负载端的初始时钟到达时间之中的最大时钟到达时间与最小时钟到达时间之间的差值,从而减小全局时钟偏斜。
在示例中,可以将每个负载端的初始时钟到达时间按照时间长短划分为四个区间,例如分别代表初始时钟到达时间最短、较短、较长、最长。因此,对于初始时钟到达时间最短的负载端,可以赋予最大的时钟延时,即,将信号路径调整为对应于该负载端的时钟驱动组件中提供最大延时值的信号路径(例如四个信号路径中的第四信号路径)。同理,对于初始时钟到达时间较短的负载端,可以赋予较大的时钟延时,即,将信号路径调整为对应于该负载端的时钟驱动组件中提供较大延时值的信号路径(例如四个信号路径中的第三信号路径)。反之,对于初始时钟到达时间较长的负载端,可以赋予较小的时钟延时,即,将信号路径调整为对应于该负载端的时钟驱动组件中提供较小延时值的信号路径(例如四个信号路径中的第二信号路径)。同理,对于初始时钟到达时间最长的负载端,可以赋予最小的时钟延时。此时,由于初始时钟到达时间本身是在时钟驱动组件提供最小延时值时(例如对应于四个信号路径中的第一信号路径)得到的,因此可不再对信号路径进行调整。
图8是示出根据示例性实施例的调整全局时钟偏斜的示意图。
为了便于描述,图8是以全局时钟偏斜等于时钟驱动组件的可调节延时范围中的最大延时值的情况举例说明的。对于全局时钟偏斜小于该最大延时值的情况,也可以采用类似的方法。
在示例中,为了调整全局时钟偏斜而被应用在时钟树中的时钟驱动组件可以例如是如图5所示的时钟驱动组件500,时钟驱动组件500的第一时钟端口可以包括一个第一时钟子端口510,第二时钟端口可以包括四个第二时钟子端口541、542、543和544,并且在第一时钟端口与第二时钟端口之间形成有四个信号路径551、552、553和554。
如前所述,由于时钟驱动组件的可调节延时范围由时钟驱动组件中的信号路径的数量和时钟延时部件确定,因此,如图5所示的时钟驱动组件500的可调延时范围可以是例如x ps ~ 4x ps,其中x表示每个时钟延时元件521、522、523、524提供的延时,亦即时钟驱动组件500的步进延时。即,当信号路径551上设置一个时钟延时元件521时,时钟驱动组件500的可调延时范围中的最小延时值可以为x ps。当在信号路径551、552、553和554上如图5所示地依次增设与时钟延时元件521相同的时钟延时元件522、523和524时,时钟驱动组件500的可调延时范围中的最大延时值可以为4x ps。
参考图8,在时间轴800上,时间点801可以表示所有负载端的初始时钟到达时间中的最短时钟到达时间Tmin。类似地,时间点805可以表示所有负载端的初始时钟到达时间中的最长时钟到达时间Tmax。在图8的示例中,如前所述,以全局时钟偏斜Tmax-Tmin等于时钟驱动组件500的可调节延时范围中的最大延时值4x ps为例进行描述。因此,从时间点801到时间点805的时间间隔850可以表示时钟驱动组件800的可调节延时范围在时间轴800上的时间跨度。
在示例中,为了确定针对每个负载端所要赋予的时钟延时以减小全局时钟偏斜,可以将每个负载端的初始时钟到达时间按照时间长短划分为四个区间,如图8所示的时间点801与时间点802之间的时间间隔810(即,(Tmin ~ Tmin+x) ps)、时间点802与时间点803之间的时间间隔820(即,(Tmin+x ~ Tmin+2x) ps)、时间点803与时间点804之间的时间间隔830(即,(Tmin+2x ~ Tmin+3x) ps),时间点804与时间点805之间的时间间隔840(即,(Tmin+3x ~ Tmin+4x) ps)。即,时间间隔810、820、830、840可以分别指示初始时钟到达时间的先后。例如,落在时间间隔810之中的初始时钟到达时间可以认为是最短的,落在时间间隔820之中的初始时钟到达时间可以认为是较短的,落在时间间隔830之中的初始时钟到达时间可以认为是较长的,落在时间间隔840之中的初始时钟到达时间可以认为是最长的。
由此,对于初始时钟到达时间落在时间间隔810之中的负载端,可以赋予最大的时钟延时。对于初始时钟到达时间落在时间间隔820之中的负载端,可以赋予较大的时钟延时。对于初始时钟到达时间落在时间间隔830之中的负载端,可以赋予较小的时钟延时。对于初始时钟到达时间落在时间间隔840之中的负载端,可以赋予最小的时钟延时。
在示例中,当负载端的初始时钟到达时间落在时间间隔810(即,(Tmin ~ Tmin+x)ps)之中时,可以将负载端调整为连接在时钟驱动组件500的第二时钟子端口544,于是时钟信号到达该负载端的时钟到达时间被调整为落在时间间隔840(即,(Tmin+3x ~ Tmin+4x)ps)之中。当负载端的初始时钟到达时间落在时间间隔820(即,(Tmin+x ~ Tmin+2x) ps)之中时,可以将负载端调整为连接在时钟驱动组件500的第二时钟子端口543,于是时钟信号到达该负载端的时钟到达时间也能够被调整为落在时间间隔840(即,(Tmin+3x ~ Tmin+4x) ps)之中。当负载端的初始时钟到达时间落在时间间隔830(即,(Tmin+2x ~ Tmin+3x)ps)之中时,可以将负载端连接在时钟驱动组件500的第二时钟子端口542,于是时钟信号达到该负载端的时钟到达时间同样能够被调整为落在时间间隔840(即,(Tmin+3x ~ Tmin+4x) ps)之中。当负载端的初始时钟到达时间本身就落在时间间隔840之中时,可以不调整时钟信号到达该负载端的时钟到达时间。
换句话说,对于初始时钟到达时间落在时间间隔860之中的负载端,通过时钟驱动组件500的优化,可以将时钟信号到达每个负载端的时钟到达时间调整至时间间隔540之中以减小各个时钟到达时间之间的差值,由此可以将时钟树的全局时钟偏斜减少到初始全局时钟偏斜的1/4。
可以理解,图8是为了便于描述而以如图5所示的时钟驱动组件500为例进行描述的,但本公开的范围不局限于此。实际上对于落入本公开的范围内的时钟驱动组件,都可以通过在时钟树中应用该时钟驱动组件来实现减小时钟树的全局时钟偏斜的目的。假设时钟驱动组件中的时钟延时部件的各个时钟延时元件可提供的延时为x ps,时钟驱动组件的第一时钟端口与第二时钟端口之间的信号路径的数量为 n,可以将初始全局时钟偏斜减少(n-1)*x ps。
根据本公开的实施例,通过利用时钟驱动组件,给初始时钟到达时间更短的负载所在的路径更大的时钟延时,给初始时钟到达时间更长的负载所在的路径更小的时钟延时,可以使得时钟信号到达时钟树的每个负载端的优化后的时钟到达时间分布更加紧密,即,时钟信号到达时钟树的每个负载端的优化后的时钟到达时间的最大差值(也可以被称为优化后的全局时钟偏斜)被大幅度减小,每个负载之间的时钟同步性得以提升,时钟树所应用的芯片性能也得以提高。
根据一些实施例,构建时钟树的方法还可以包括:响应于全局时钟偏斜大于最大延时值:在时钟树的叶节点所在的层级之上的至少一个层级应用时钟驱动组件;对于初始时钟到达时间更短的负载端,赋予更大的时钟延时;以及基于针对每个负载端赋予的时钟延迟,确定位于每个层级中的与负载端对应的时钟驱动组件的信号路径。
图9是示出根据示例性实施例的方法构建的时钟树900的结构图。
如图9所示,构建的时钟树900可以包括:时钟源910,用于产生时钟信号;顶层电路920;以及多个时钟驱动组件,包括一级时钟驱动组件931、932和933,以及二级时钟驱动组件941、942、943、944、945和946,一级时钟驱动组件931、932和933,以及二级时钟驱动组件941、942、943、944、945和946均为根据上文描述的任一实施例的彼此相同的时钟驱动组件。
在示例中,时钟源910产生的时钟信号可以经由顶层电路920传输至各时钟驱动组件,再输出至负载(未示出)。
在示例中,时钟信号到达一级时钟驱动组件931、932和933以及未示出的其他一级时钟驱动组件的时间可以不同。经过时钟驱动组件的优化,时钟信号到达每一个负载的时间的最大差值可以小于时钟信号到达每一个一级时钟驱动组件的时间的最大差值。
根据上述说明,对于每一级的时钟驱动组件,假设时钟驱动组件中的时钟延时部件的各个时钟延时元件可提供的延时为x ps,时钟驱动组件的第一时钟端口与第二时钟端口之间的信号路径的数量为 n,可以将初始全局时钟偏斜减少(n-1)*x ps。也就是说,通过一级时钟驱动组件的调整,可以将初始全局时钟偏斜减少(n-1)*x ps,接着通过二级时钟驱动组件的调整,可以将初始全局时钟偏斜进一步减少(n-1)*x ps,相当于将初始全局时钟偏斜总共减少了(2n-2)*x ps。因此,两级时钟驱动组件的可调延时范围可以是x ps ~(2n-1)*x ps。
当初始全局时钟偏斜过大,利用如图9所示的时钟树不能获得理想的优化结果时,还可以在上级(例如一级)中使用宽幅时钟驱动组件,即,步进延时更大的时钟驱动组件,下级(例如二级)使用时钟驱动组件,即,步进延时更小的时钟驱动组件。
图10是示出根据另一实施例的方法构建的时钟树1000的结构图。
如图10所示,构建的时钟树1000可以包括:时钟源1010,用于产生时钟信号;顶层电路1020;以及多个时钟驱动组件,包括一级时钟驱动组件1031、1032和1033,以及二级时钟驱动组件1041、1042、1043、1044、1045和1046,一级时钟驱动组件1031、1032和1033,以及二级时钟驱动组件1041、1042、1043、1044、1045和1046均为根据上文描述的任一实施例的时钟驱动组件,并且一级时钟驱动组件1031、1032和1033具有比二级时钟驱动组件1041、1042、1043、1044、1045和1046更大的步进延时。一级时钟驱动组件1031、1032和1033可以为彼此相同的时钟驱动组件,二级时钟驱动组件1041、1042、1043、1044、1045和1046也是彼此相同的时钟驱动组件。
在示例中,时钟源1010产生的时钟信号可以经由顶层电路1020传输至各时钟驱动组件,再输出至负载(未示出)。时钟信号到达一级时钟驱动组件1031、1032和1033以及未示出的其他一级时钟驱动组件的时间可以不同。经过时钟驱动组件的优化,时钟信号到达每一个负载的时间的最大差值可以小于时钟信号到达每一个一级时钟驱动组件的时间的最大差值。
在示例中,一级时钟驱动组件的可调节延时范围中的最大延时值可以等于全局时钟偏斜,并且其时钟延时部件的各个时钟延时元件提供相同的延时,第一时钟端口与第二时钟端口之间的信号路径的数量为 n,因此一级时钟驱动组件可以提供1/n的调节步长(即宽幅)。二级时钟驱动组件的第一时钟端口与第二时钟端口之间的信号路径的数量也可以为 n,因此二级时钟驱动组件可以提供1/n2的调节步长(即窄幅)。根据上述说明,对于每一级的时钟驱动组件,假设时钟驱动组件中的时钟延时部件的各个时钟延时元件提供相同的延时,时钟驱动组件的第一时钟端口与第二时钟端口之间的信号路径的数量为 n,可以将初始全局时钟偏斜减少至原本的1/n。也就是说,通过一级时钟驱动组件的调整,可以将初始全局时钟偏斜减少至原本的1/n,接着通过二级时钟驱动组件的调整,可以将初始全局时钟偏斜进一步减少至原本的1/n2
根据本公开的实施例,通过对全局时钟偏斜大于时钟驱动组件的最大延时值的时钟树应用多级时钟驱动组件,能够扩大可调节延时范围,使得全局时钟偏斜非常大的时钟树也能够被调整至理想的全局时钟偏斜。另一方面,对于大规模芯片的时钟设计,如果时钟的频率较高,那么对于时钟树整体的要求也会较高,时钟树需要较低的全局时钟偏差。通过应用多级时钟驱动组件,可以在上级进行全局时钟偏斜的初步收敛,在下级再用较小可调节延时范围的时钟驱动组件进行最终收敛,可以获得较小的全局时钟偏斜的时钟树,为后续的静态时序分析及收敛提供更大的时序余量。
根据一些实施例,响应于全局时钟偏斜大于最大延时值,还可以增加信号路径的数量和/或由时钟延时部件产生的延时。
根据本公开的实施例,通过对全局时钟偏斜大于时钟驱动组件的最大延时值的时钟树增加信号路径的数量和/或由时钟延时部件产生的延时,能够进一步缩短时钟树的全局时钟偏斜。
图11是示出根据示例性实施例的时钟驱动组件的示例参数表。
参见图11,该时钟驱动组件可以例如是如图5所示的时钟驱动组件500,该时钟驱动组件包括一个用于输入时钟信号的第一时钟子端口和四个用于输出时钟信号的第二时钟子端口,即形成有四个信号路径。四个第二时钟子端口在图11中分别表示为输出端口1、输出端口2、输出端口3和输出端口4。该时钟驱动组件的时钟延时部件可以包括四个相同的时钟延时元件,该四个时钟延时元件可以提供分别对应于四个信号路径的四个延时。
在示例中,当该时钟驱动组件工作在ssg(Slow NMOS Slow PMOS,慢NMOS慢PMOS)工作模式,并且工作电压为0.675V,环境温度为0摄氏度时,时钟延时部件的各个时钟延时元件可以提供12ps的延时,时钟延时部件的可调节延时范围中的最大延时值可以为48ps。当该时钟驱动组件工作在typical(传统)工作模式,并且工作电压为0.75V,环境温度为25摄氏度时,时钟延时部件的各个时钟延时元件可以提供11ps的延时,时钟延时部件的可调节延时范围中的最大延时值可以为44ps。当该时钟驱动组件工作在typical(传统)工作模式,并且工作电压为0.95V,环境温度为85摄氏度时,时钟延时部件的各个时钟延时元件可以提供10ps的延时,时钟延时部件的可调节延时范围中的最大延时值可以为40ps。当该时钟驱动组件工作在ffg(Fast NMOS Fast PMOS,快NMOS快PMOS)工作模式,并且工作电压为1.045V,环境温度为0摄氏度时,时钟延时部件的各个时钟延时元件可以提供10ps的延时,时钟延时部件的可调节延时范围中的最大延时值可以为40ps。
图12是示出根据示例性实施例的调整全局时钟偏斜的参数实验数据表。
在示例中,图12所示的实验中应用的时钟驱动组件的参数表可以如图11所示。
在示例中,时钟负载网络中具有十一个负载,即表中的“负载#1”、“负载#2”、“负载#3”、“负载#4”、“负载#5”、“负载#6”、“负载#7”、“负载#8”、“负载#9”、“负载#10”和“负载#11”。这十一个负载所对应的时钟初始到达时间分别为276.71 ps、312.55 ps、289.36 ps、279.57 ps、299.15 ps、305.89 ps、288.38 ps、298.87 ps、313.28 ps、285.49 ps和279.67ps。相应地,在未经过本公开的时钟驱动组件优化的情况下,该时钟负载网络的全局时钟偏斜为36.57ps。而经过本公开的时钟驱动组件优化后,这十一个负载所对应的时钟到达时间分别被调整为312.87 ps、312.55 ps、313.27 ps、314.49 ps、311.52 ps、317.18 ps、312.31 ps、311.12 ps、313.28 ps、309.16 ps和313.47 ps。因此,经过本公开的时钟驱动组件优化后,该时钟负载网络的全局时钟偏斜被缩短为了8.02ps,约为原全局时钟偏斜的1/4。
虽然在附图和前面的描述中已经详细地说明和描述了本公开,但是这样的说明和描述应当被认为是说明性的和示意性的,而非限制性的;本公开不限于所公开的实施例。通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除未列出的其他元件或步骤,不定冠词“一”或“一个”不排除多个,术语“多个”是指两个或两个以上,并且术语“基于”应解释为“至少部分地基于”。在相互不同的从属权利要求中记载了某些措施的仅有事实并不表明这些措施的组合不能用来获益。

Claims (11)

1.一种用于构建时钟树的方法,包括:
在时钟树的叶节点处应用时钟驱动组件,其中,所述时钟驱动组件包括:
时钟驱动部件,被配置为对输入至所述时钟驱动组件的时钟信号进行驱动;
第一时钟端口和第二时钟端口,所述第一时钟端口和所述第二时钟端口之中的一个时钟端口被配置为将所述时钟信号输入至所述时钟驱动组件以由所述时钟驱动部件进行驱动,另一个时钟端口被配置为输出由所述时钟驱动部件驱动的所述时钟信号,其中,所述第一时钟端口与所述第二时钟端口之间形成有用于传输所述时钟信号的至少两个信号路径;以及
时钟延时部件,所述时钟延时部件被配置为产生分别对应于所述至少两个信号路径的至少两个延时,所述至少两个延时分别作用于在所述至少两个信号路径上传输的所述时钟信号,
其中,所述时钟驱动组件具有用于对所述时钟信号进行延时的可调节延时范围,所述可调节延时范围由所述时钟驱动组件中的所述至少两个信号路径的数量和所述时钟延时部件确定,且所述可调节延时范围具有最小延时值和最大延时值;
通过将所述时钟驱动组件设置为提供所述最小延时值,确定所述时钟信号到达所述时钟树的每个负载端的初始时钟到达时间;
基于所述初始时钟到达时间确定所述时钟树的全局时钟偏斜;
响应于所述全局时钟偏斜小于或等于所述最大延时值:
对于所述初始时钟到达时间更短的所述负载端,赋予更大的时钟延时;以及
基于针对每个负载端赋予的所述时钟延时,确定对应于所述负载端的信号路径。
2.根据权利要求1所述的方法,其中,
所述第一时钟端口包括一个第一时钟子端口,所述第二时钟端口包括至少两个第二时钟子端口,且所述至少两个信号路径分别形成在所述一个第一时钟子端口与所述至少两个第二时钟子端口之间;
所述第一时钟端口包括至少两个第一时钟子端口,所述第二时钟端口包括一个第二时钟子端口,且所述至少两个信号路径分别形成在所述至少两个第一时钟子端口与所述一个第二时钟子端口之间;或
所述第一时钟端口包括至少两个第一时钟子端口,所述第二时钟端口包括至少两个第二时钟子端口,且所述至少两个信号路径分别形成在所述至少两个第一时钟子端口与所述至少两个第二时钟子端口之间。
3.根据权利要求1或2所述的方法,其中,所述至少两个延时的时间长度递增或递减。
4.根据权利要求1或2所述的方法,其中,所述时钟延时部件包括设置在所述至少两个信号路径上的至少两个时钟延时元件以产生分别对应于所述至少两个信号路径的至少两个延时。
5.根据权利要求4所述的方法,其中,所述至少两个时钟延时元件产生彼此相同或不同的延时。
6.根据权利要求4所述的方法,其中,每个时钟延时元件包括晶体管或者金属中的至少一种。
7.根据权利要求1或2所述的方法,其中,所述时钟驱动部件包括分别设置在所述至少两个信号路径上的至少两个时钟驱动元件。
8.根据权利要求1或2所述的方法,还包括:响应于所述全局时钟偏斜大于所述最大延时值:
在所述时钟树的叶节点所在的层级之上的至少一个层级应用所述时钟驱动组件;以及
对于所述初始时钟到达时间更短的所述负载端,赋予更大的时钟延时;以及
基于针对每个负载端赋予的所述时钟延时,确定位于每个层级中的与所述负载端对应的信号路径。
9.根据权利要求1或2所述的方法,响应于所述全局时钟偏斜大于所述最大延时值:
增加所述至少两个信号路径的数量和/或由所述时钟延时部件产生的延时。
10.一种包括时钟树的器件,其中,所述时钟树是根据权利要求1-9中任一项所述的方法构建的。
11.一种芯片,包括根据权利要求1-9中任一项所述的方法所构建的时钟树。
CN202310460392.9A 2023-04-26 2023-04-26 用于构建时钟树的方法、时钟树及芯片 Active CN116167331B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310460392.9A CN116167331B (zh) 2023-04-26 2023-04-26 用于构建时钟树的方法、时钟树及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310460392.9A CN116167331B (zh) 2023-04-26 2023-04-26 用于构建时钟树的方法、时钟树及芯片

Publications (2)

Publication Number Publication Date
CN116167331A CN116167331A (zh) 2023-05-26
CN116167331B true CN116167331B (zh) 2023-07-28

Family

ID=86413639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310460392.9A Active CN116167331B (zh) 2023-04-26 2023-04-26 用于构建时钟树的方法、时钟树及芯片

Country Status (1)

Country Link
CN (1) CN116167331B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100955267B1 (ko) * 2008-04-30 2010-04-30 주식회사 하이닉스반도체 반도체 메모리장치 및 이의 동작 방법
US20140176215A1 (en) * 2012-12-21 2014-06-26 Samsung Electronics Co., Ltd. Method of implementing clock skew and integrated circuit adopting the same
CN109376467B (zh) * 2018-11-19 2022-12-06 武汉工程大学 集成电路中时钟树布局流程方法和时钟树偏差补偿装置
CN113326672B (zh) * 2021-05-31 2022-11-01 东南大学 一种针对近阈值时钟偏差优化的时钟树综合构建方法
CN115964984B (zh) * 2023-03-16 2023-05-16 瀚博半导体(上海)有限公司 用于数字芯片版图平衡绕线的方法和装置

Also Published As

Publication number Publication date
CN116167331A (zh) 2023-05-26

Similar Documents

Publication Publication Date Title
US7571406B2 (en) Clock tree adjustable buffer
US7319351B2 (en) Delay generator with symmetric signal paths
KR100218125B1 (ko) 타이밍 신호 발생 회로
US8779820B2 (en) Uniform-footprint programmable-skew multi-stage CMOS cell
EP0747802A2 (en) Hierarchial clock distribution system and method
JP4512158B2 (ja) 可変遅延回路網
CN103107808A (zh) 占空比失真校正电路系统
KR20070061956A (ko) 디지털 지연셀 및 이를 구비하는 지연 라인 회로
US7042269B2 (en) Method for dynamic balancing of a clock tree
US6073246A (en) Clock generating apparatus for skew control between two-phase non-overlapping clocks
US6255879B1 (en) Digital programmable delay element
JP4336702B2 (ja) チェーン−チョッピング電流ミラー及び出力電流安定化方法
JP2002245109A (ja) 半導体集積回路の設計方法及び設計システム
US5585754A (en) Integrated digital circuit
CN116167331B (zh) 用于构建时钟树的方法、时钟树及芯片
JP2013179598A (ja) 減少された挿入遅延を持つプログラマブル遅延回路
KR20100047983A (ko) 동작영역이 넓은 디지털제어발진기
JP2003216269A (ja) 半導体装置
EP0865160A2 (en) Interpolating circuit
JP2005184262A (ja) 半導体集積回路及びその製造方法
US20070291559A1 (en) Semiconductor device with delay section
JP2001156598A (ja) 多段パイプラインラッチ回路及びその製造方法
CN114244323A (zh) 一种可控的时钟脉宽补偿方法电路
CN116979936A (zh) 一种总线控制的时钟延时电路
JP2000307411A (ja) 同時動作制御回路及びその制御方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant