CN105359149B - 双重结构的时钟树综合(cts) - Google Patents
双重结构的时钟树综合(cts) Download PDFInfo
- Publication number
- CN105359149B CN105359149B CN201480009597.4A CN201480009597A CN105359149B CN 105359149 B CN105359149 B CN 105359149B CN 201480009597 A CN201480009597 A CN 201480009597A CN 105359149 B CN105359149 B CN 105359149B
- Authority
- CN
- China
- Prior art keywords
- clock tree
- clock
- level clock
- upper level
- 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
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/32—Circuit design at the digital level
- G06F30/323—Translation or migration, e.g. logic to logic, hardware description language [HDL] translation or netlist translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- 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/394—Routing
-
- 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
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/04—Clock gating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
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)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
描述了双重结构的时钟树综合(CTS)。一些实施例可以构建上级时钟树的集合,其中每个上级时钟树的每个时钟叶是下级时钟树的根。每个上级时钟树可以被优化以降低片上变异和/或对角变异对于时钟偏差的影响。接下来,针对每个上级时钟树的每个时钟叶,实施例可以构建下级时钟树,以从上级时钟树的时钟叶向时钟宿端的集合分发时钟信号。下级时钟树可以被优化以降低延时、功耗和/或面积。
Description
技术领域
本公开涉及时钟树综合(CTS)。更具体地,本公开涉及双重结构的CTS。
背景技术
CTS指代创建用于向电路设计中的时序电路元件的集合分发时钟信号的时钟分发网络的过程。电路设计可以包括多个时钟域,并且每个时钟域可以包括多个时钟树。由CTS生成的时钟树的质量对于EDA流程中的下游阶段尤其是时序收敛能够具有显著的影响。因此,所需要的是用于CTS的能够有效创建高质量时钟树的***和技术。
发明内容
在此描述的一些实施例提供了用于构建时钟树的***和技术。一些实施例可以构建上级时钟树的集合,并且其中每个上级时钟树的每个时钟叶是较低层时钟树的根,并且其中每个上级时钟树可以被优化以减少片上变异(on-chip-variation,OCV)和/或对角变异(cross-corner variation)对于时钟偏差的影响。接下来,针对每个上级时钟树的每个时钟叶,实施例可以构建较低层时钟树,其中下级时钟树将时钟信号从上级时钟树的时钟叶分发至时钟宿端的集合。下级时钟树可以被优化以降低延时、功耗和/或面积。
在一些实施例中,上级时钟树中的导线可以具有比下级时钟树中的导线更宽的宽度。在一些实施例中,给定的上级时钟树的所有水平导线可以被布线在相同金属层上。在一些实施例中,给定的上级时钟树的所有垂直导线可以被布线在相同金属层上。在一些实施例中,给定上级时钟树中的所有缓冲器可以具有相同大小。
附图说明
图1图示了根据在此描述的一些实施例操作和工艺条件如何能够在芯片上变异。
图2图示了根据在此描述的一些实施例时序约束如何能够考虑OCV变异。
图3A-3B图示了根据在此描述的一些实施例改变时钟树拓扑如何能够影响到OCV时钟偏差。
图4图示了根据在此描述的一些实施例的用于执行OCV和时序临界性可知的CTS的过程。
图5图示了根据在此描述的一些实施例的双重结构的时钟树的逻辑电路图。
图6图示了根据在此描述的一些实施例的上级时钟树的一部分。
图7图示了根据在此描述的一些实施例的用于构建双重结构的时钟树的过程。
图8图示了根据在此描述的一些实施例的计算机***。
具体实施方式
以下描述被呈现以使得本领域技术人员能够制造并使用本发明,并且在特定应用及其需求的上下文中被提供。针对所公开的实施例的各种修改对于本领域技术人员而言将是显而易见的,并且在此定义的总体原则可以被应用于其它实施例和应用而并不偏离本发明的精神和范围。因此,本发明不限于所示的实施例,而是将被赋予与在此公开的原则和特征一致的最宽范围。在本公开中,当术语“和/或”与实体列表一同使用时,其指代该实体列表中的所有可能组合。例如,短语“X、Y和/或Z”覆盖了以下情形:(1)仅X;(2)仅Y;(3)仅Z;(4)X和Y;(6)X和Z;(6)Y和Z;以及(7)X、Y和Z。
电子设计自动化(EDA)流程的概述
EDA流程能够被用来创建电路设计。一旦电路设计完成,其能够进行制造、封装和装配以生产集成电路芯片。EDA流程可以包括多个步骤,并且每个步骤能够涉及到使用一种或多种EDA软件工具。以下描述了一些EDA步骤和软件工具。EDA步骤和软件工具的这些示例仅出于说明的目的而非旨在将实施例限于所公开的形式。
一些EDA软件工具使得电路设计者能够描述电路设计的功能。这些工具还使得电路设计者能够执行假设情景(what-if)规划以完善功能、检查成本等。在逻辑设计和功能验证期间,能够编写针对***中的模块的例如SystemVerilog的HDL(硬件描述语言)代码并且能够检查设计的功能准确性,例如,能够对设计进行检查以确保其产生正确的输出。
在针对测试的综合和设计期间,HDL能够使用一种或多种EDA软件工具将HDL代码翻译为网表(netlist)。进一步地,网表能够针对目标技术被优化,并且能够设计并实施测试以检查所完成的芯片。在网表验证期间,能够针对与时序约束的兼容性以及与HDL代码的对应性来检查网表。
在设计规划期间,芯片的整体平面布局(floorplan)能够被构建以及针对时序和顶层布线而被分析。在物理实施期间,电路元件能够被放置在布局(放置)中并且能够被电耦合(布线)。
在分析和提取期间,能够在晶体管层面来验证电路的功能并且能够提取到寄生效应。在物理验证期间,能够对设计进行检查以确保制造、电气问题、平版印刷问题和电路的正确性。
在分辨率增强期间,可以在布局上形成几何操控以提高设计的可制造性。在掩模数据准备期间,设计能够被“流片(taped-out)”以产生在制造期间被使用的掩模。
OCV和时序临界性可知的CTS
OCV是指芯片上的操作和工艺条件上的变异。图1图示了根据在此描述的一些实施例操作和工艺条件如何能够在芯片上变异。电压、温度和工艺参数(例如,通道长度)可以在芯片102上变异。例如,区域104中的电源、温度和工艺参数可以分别为3.2V、72°F和0.26μ。另一方面,区域106中的电源、温度和工艺参数可以分别为3.4V、68°F和0.24μ。OCV能够影响电路元件的一个或多个特性。例如,由于OCV,区域104中的单元的实例可以具有与区域106中的相同单元的实例不同的延迟特性。
总体上,两个位置之间的OCV的数量随着距离而增大。例如,彼此位置远离的两个完全相同的单元被预期为在其特性(例如,延迟)方面与彼此位置靠近的两个完全相同的单元相比具有更大差异。此外,OCV的数量通常随着路径长度的增加和/或路径中电路元件的数量增加而增大。例如,较长的导线被预期为与较短导线相比具有更为明显的OCV影响。进一步地,拥有更大数量的电路元件的路径被预期为与拥有较少电路元件的路径相比具有更大的OCV影响。
OCV可以影响时钟偏差,因为OCV能够导致电路元件和导线的延迟与其标称值不同。因此,时序约束需要考虑这样的变异。图2图示了根据在此描述的一些实施例时序约束如何能够考虑OCV变异。电路200包括时序电路元件202、时序电路元件204和时序电路元件206。每个时序电路元件具有接收时钟信号的时钟输入“C”,基于该时钟信号发射数据信号的输出“Q”,以及基于该时钟信号捕获数据信号的输入“D”。虽然“D触发器”已经在图2中被用作时序电路元件的示例,但是时序电路元件202、时序电路元件204和时序电路元件206通常可以是使用时钟信号定时的任意电路。
组合逻辑云214和组合逻辑云216可以包括一条或多条导线和/或一个或多个组合逻辑门,但是它们不包括任何时序电路元件。在一个时序电路元件的输出处发射的数据信号在另一时序电路元件的输入处被捕获之前可以通过组合逻辑云。例如,由时序电路元件202的输出“Q”发射的数据信号在时序电路元件204的输入“D”处被捕获之前通过组合逻辑云214(在此其可以与其它数据信号进行逻辑组合)。
时钟信号“CLK”能够使用包括缓冲器208、缓冲器210和缓冲器212的时钟树而被分发至时序电路元件。时钟树包括分支点B1和分支点B2,时钟树拓扑在此分支为多个方向。如以上所解释的,OCV可以使得相同单元或导线的不同实例具有不同延迟。具体地,OCF可以通过使用针对电路元件的延迟范围(与使用单个标称延迟相反)来被建模,例如,通过使用降额因子或者通过针对电路元件使用高延迟值和低延迟值。同样,针对路径而言,可以通过针对路径中的电路元件分别汇总高延迟值和低延迟值来计算高延迟值和低延迟值。
在图2中,电路路径使用虚线进行图示,并且针对电路路径的高延迟值(即,慢速路径)和低延迟值(即,快速路径)分别使用大写字母和小写字母来表示。例如,从分支点B1到时序电路元件202的时钟输入“C”的高延迟值和低延迟值分别为X1和x1。项“X1”中的下标“1”指示该延迟值来自于分支点B1。
数据路径延迟也已经被图示在图2中。例如,从数据信号从时序电路元件202的输出“Q”被发射时到该数据信号在时序电路元件204的输入“D”处被捕获时的高延迟和低延迟为“A”(高延迟值)和“a”(低延迟值)。
在本公开中,对应于高延迟值的大写字母还被用于指代数据路径自身。例如,数据路径“A”指代从时序电路元件202到时序电路元件204的通过组合逻辑云214的数据路径。注意,因为由虚线表示的数据路径延迟包括发射延迟,所以虚线从时序电路元件202的时钟输入“C”开始(与从输出“Q”开始相反),该发射延迟是到达时钟输入“C”的时钟边缘与从输出“Q”发射的数据信号之间的延迟。
使用图2所示的路径延迟,OCV可知的建立时序约束可以被表达如下:
A+X1-y1<ΔA,
B+Y2-z2<ΔB,以及 (1)
C+Z2-y2<ΔC,
其中ΔA、ΔB和ΔC是建立时序要求。同样,OCV可知的保持时序约束能够被表达如下:
a+x1-Y1>δA,
b+y2-Z2>δB,以及 (2)
c+z2-Y2>δC,
其中δA、δB和δC是保持时序要求。
高延迟值和低延迟值可以使用降额因子来表示。令d为降额因子,并且令基本符号(')指示标称延迟值。例如,令x1′为从分支点B1到时序电路元件202的时钟输入“C”的标称路径延迟。因此,高延迟值和低延迟值可以被分别表达为X1=x1′+d·x1′和x1=x1′-d·x1′。针对其它高延迟值和低延迟值可以导出类似表达式。使用等式(1),数据路径“A”、“B”和“C”的时钟偏差CSA、CSB和CSC可以被分别表达如下:
CSA=X1-y1=(x1′-y1′)+d·(x1′+y1′),
CSB=Y2-z2=(y2′-z2′)+d·(y2′+z2′),以及 (3)
CSC=Z2-y2=(z2′-y2′)+d·(z2′+y2′).
注意,右侧的第一项,例如(x1′-y1′),是标称时钟偏差(即,标称路径延迟之间的差异);并且第二项,例如d·(x1′+y1′),表示OCV的影响。针对保持时序约束可以类似地导出时钟偏差表达式。
存在来自等式(3)的几个重要信息。首先,注意,OCV时钟偏差分量仅能够通过最小化来自分支点的总(例如,发射+捕获)路径延时而被最小化,例如,通过使得(x1′+y1′)最小化。第二,将分支点朝向时钟树拓扑的根移动将导致来自分支点的更高的总路径延时,这将导致更高的OCV时钟偏差分量。第三,通过增加***延迟来试图最小化标称时钟偏差将可能使得OCV时钟偏差分量恶化,因为增加***延迟增大了来自分支点的总路径延时。常规的CTS方法通常试图优化标称时钟偏差。基于以上讨论所清楚的是,优化OCV时钟偏差(即,降低OCV对时钟偏差的影响)与在常规CTS中执行的常规时钟偏差优化是截然不同的。
图3A-3B图示了根据在此描述的一些实施例改变时钟树拓扑如何能够影响OCV时钟偏差。图3A-3B中出于清楚和便于公开的目的未示出缓冲器。图3A中所示的电路300包括时钟树拓扑,其中分支点B1距离树的时钟叶更远(并且因此更接近于树的根),而分支点B2更接近于树的时钟叶(并且因此距离树的根更远)。相对地,在图3B所示的电路350中,分支点B2距离树的时钟叶更远,而分支点B1更接近于树的时钟叶。
注意,在电路300中,数据路径“A”的OCV时钟偏差分量大于数据路径“B”和数据路径“C”的OCV时钟偏差分量。这是因为在图3A中(x1′+y1′)>(y2′+z2′)。相反,在电路350中,数据路径“A”的OCV时钟偏差分量小于数据路径“B”和数据路径“C”的OCV时钟偏差分量。这是因为在图3B中(x1′+y1′)<(y2′+z2′)。
在此描述的一些实施例构建降低OCV对于临界时序路径的时钟偏差的影响的时钟树拓扑。例如,如果数据路径“B”和数据路径“C”是临界的(例如,时序松弛为负或接近于零),但是数据路径“A”并不是临界的,则一些实施例可以使用图3A中所示的时钟树拓扑。另一方面,如果数据路径“A”是临界的,但是数据路径“B”和数据路径“C”不是临界的,则一些实施例可以使用图3B中所示的时钟树拓扑。通常,减小给定时序路径的OCV时钟偏差(即,降低OCV对于给定时序路径的时钟偏差的影响)可以包括减小从最接近的分支点(即,最接近于发射时序电路元件和捕获时序电路元件)到发射时序电路元件和捕获时序电路元件的总(即,发射+捕获)路径延时。
图4图示了根据在此描述的一些实施例的用于执行OCV和时序临界性可知的CTS的过程。该过程可以通过针对临界路径的集合中的时序电路元件构建第一时钟树拓扑集合开始,其中所述构建包括优化该第一时钟树拓扑集合以降低OCV对于时钟偏差的影响(操作402)。
时序松弛度和对应的时序路径可以由通过电路设计向后传播要求的时间(即,从时序结束点到时序起始点)以及通过电路设计向前传播到达时间(即,从时序起始点到时序结束点)来确定。接下来,对应于违反时序松弛的时序路径以及可选地对应于接近违反时序松弛的那些时序路径可以被标识为临界路径的集合。在一些实施例中,该过程可以通过基于时序路径的松弛值对其进行排序以及选择预定数量(或预定百分比)的具有最小松弛的路径来确定临界路径集合。
如以上所解释的,每个临界路径在发射时序电路元件的输出处(时序起始点)开始并且在捕获时序电路元件的输入处(时序结束点)结束。例如,在图2中,临界路径可以在时序电路元件202的输出“Q”处开始并且在时序电路元件204的输入“D”处结束。注意,临界路径的集合对应于时序电路元件的集合。例如,在图2中,如果临界路径的集合包括数据路径“B”和数据路径“C”,则临界路径的集合中的时序电路元件将包括时序电路元件202、时序电路元件204和时序电路元件206。另一方面,如果临界路径的集合仅包括数据路径“A”,则临界路径的集合中的时序电路元件将包括时序电路元件202和时序电路元件204,但是将不包括时序电路元件206。
时钟树拓扑的集合可以包括一个或多个时钟树拓扑。例如,图3A中的将时钟信号“CLK”分发至时序电路元件202、时序电路元件204和时序电路元件206的网络是仅包括一个时钟树拓扑的“时钟树拓扑集合”的示例。术语“优化”和其它这样的术语指代试图最小化或最大化给定目标函数的过程。注意,这些优化过程可以在获得该目标函数的全局最小值或全局最大值之前终止。优化时钟树拓扑的集合以降低OCV对于时钟偏差的影响可以包括针对时钟树拓扑中的分支点确定经优化的位置。具体地,该过程可以确定尽可能接近于位于给定临界路径的末端的两个时序电路元件的分支点。
参考图4,该过程然后可以针对不在临界路径集合中的时序电路元件构建第二时钟树拓扑集合,其中所述构建包括优化第二时钟树拓扑集合以降低时钟延时(操作404)。在一些实施例中,量度的组合可以一起被优化。例如,在操作404中,该过程可以试图对时钟树拓扑的延时(例如,使得从时钟树的根到时钟树的时钟叶的最大延迟最小化)、功耗(例如,时钟树的动态功耗和/或泄漏功耗)和/或面积(例如,在时钟树中正在被使用的缓冲器的总单元面积)进行优化。
第二时钟树拓扑集合可以包括完全新的时钟树拓扑和/或可以包括现有时钟树拓扑的增量扩展(例如,在操作402中创建的时钟树拓扑的增量扩展)。例如,在图2中,假设数据路径“A”是临界路径,但是数据路径“B”和数据路径“C”不是临界路径。操作402可以构建将时钟信号“CLK”分发至时序电路元件202和时序电路元件204的时钟输入的时钟树拓扑。接下来,操作404可以通过创建从点B2到时序电路元件206的时钟输入的分支来对该时钟树拓扑进行增量扩展。(注意,操作402未创建该分支,因为顺序电路点206不在临界路径上。)
双重结构时钟树
常规CTS方法以由下向上的方式来构建树,即,这些方法开始于时钟宿端(例如,时序电路元件的时钟输入)并且渐进地朝着时钟源来构建树。不幸地,OCV可以使得时钟偏差在使用常规CTS方法构建的时钟树中显著变化。
与常规CTS方法相比,在此描述的一些实施例使用被称作上级时钟树和下级时钟树的两种类型的时钟树来构建双重结构的时钟树。上级时钟树被构建和优化以便通过相对长的距离向芯片的不同区域分发时钟信号。例如,通过优化上级时钟树以降低OCV和/或对角变异对于时钟偏差的影响,上级时钟树可以被优化为是耐OCV和/或对角变异的。上级时钟树的时钟叶(也称作锚缓冲器)用作下级时钟树的根。具体地,从上级时钟树的每个时钟叶,下级时钟树能够被构建并优化以向靠近于上级时钟树的时钟叶的时钟宿端分发时钟信号。
图5图示了根据在此描述的一些实施例的双重结构的时钟树的逻辑电路图。上级时钟树504从时钟树的根502向上级时钟树504的时钟叶(例如,上级时钟树504的时钟叶508)分发时钟信号。上级时钟树的每个时钟叶可以是时钟缓冲器(在本公开中被称作锚缓冲器)。例如,时钟叶508可以是驱动下级时钟树的锚缓冲器。
下级时钟树506从上级时钟树的时钟叶向时钟宿端的集合分发时钟信号。具体地,每个上级时钟树的每个时钟叶用作下级时钟树的根,其向靠近于上级时钟树的时钟叶的时钟宿端分发时钟信号。例如,时钟叶508用作下级时钟树510的根,时钟叶508向靠近于时钟叶508的例如时钟宿端512的时钟宿端分发时钟信号。
如以上所提到的,上级时钟树可以被优化为容忍OCV,例如,通过优化上级时钟树拓扑以降低OCV对于时钟偏差的影响。此外,在一些实施例中,在上级时钟树中使用的所有缓冲器可以是相同单元的实例,或者可以是具有非常相似的大小的相同类型的单元(例如,如果单元库包括具有大范围的单元大小的单元,则在上级时钟树中使用的单元可以从窄范围的单元大小中选择)的实例。使用具有相同大小的缓冲器能够降低OCV对于时钟偏差的影响,因为相同大小的缓冲器被期望受到OCV的相同方式的影响。此外,上级时钟树的时钟树拓扑可以具有规则的结构,这可以有助于降低OCV对于时钟偏差的影响。在一些实施例中,上级时钟树可以使用比用于下级时钟树的导线宽度更大的导线宽度。更宽的导线的电气特性(例如,电容和电阻)通常比较较窄的导线更能容忍OCV。此外,所有水平导线可以在相同金属层(例如,金属层M4)上被布线,并且同样地,所有垂直导线可以在相同金属层(例如,金属层M3)上被布线,以降低跨金属层的工艺变异的影响。以这种方式,上级时钟树可以被优化以降低OCV对于时钟树的特性(例如,时钟偏差)的影响。
注意,使用完全相同的设备和/或导线宽度不仅降低了OCV的影响,而且还降低了对角变异(也被称作PVT变异)。如以上所解释的,OCV指代芯片的不同区域内的变异。另一方面,对角变异或PVT变异指代影响整个芯片的跨多个角的工艺、电压和温度变异。通常,芯片跨多个角(每个角与标称工艺、电压和温度值相关联)被验证(例如,针对时序),并且使用完全相同的设备和/或导线宽度也有助于降低时钟偏差跨多个PVT角的变异。
图6图示了根据在此描述的一些实施例的上级时钟树的一部分。图6所示的上级时钟树的该部分包括诸如导线604的导线以及诸如缓冲器606的缓冲器。布线网格602可以被用来对时钟树的导线进行布线,并且可以在布线网格602中指定例如阻塞608的阻塞的布线和/或布局。注意,导线604已经被布线为避开阻塞608。此外,注意所有水平导线已经在相同金属层也就是金属层M4中被布线,并且所有垂直导线已经在相同金属层也就是金属层M3中被布线。在一些实施例中,这可以通过创建迫使布线器将上级时钟树的所有水平导线和垂直导线布线在相应的金属层中的布线规则来实现。此外,如图6所示,双重结构的CTS试图尽可能多地分享共用路径以降低OCV对于时钟偏差的影响。
图7图示了根据在此描述的一些实施例的用于构建双重结构的时钟树的过程。该过程通过构建上级时钟树的集合开始,其中每个上级时钟树的每个时钟叶是下级时钟树的根,并且其中每个上级时钟树被优化以降低OCV和/或对角变异对于时钟偏差的影响(操作702)。
上级时钟树的集合可以包括一个或多个上级时钟树。如以上所解释的,上级时钟树总体上具有比下级时钟树更长的导线、针对每个时钟缓冲器具有小的扇出(fanout)、并且在时钟树中具有很少或没有逻辑门。此外,上级时钟树可以优选地为了更好的耐OCV而具有规则的拓扑,并且可以具有相同/相似的时钟缓冲器大小以降低设备变异的影响。此外,上级时钟树可以针对树的不同分支使用匹配的导线长度和金属层以控制互连变异。在构建上级时钟树的同时,该过程可以(1)对跨不同的工艺、电压和温度的角来平衡单元延迟和线路延迟,(2)贯穿时钟树使用相同大小的缓冲器,以及(3)匹配分支的路线。
接下来,针对每个上级时钟树的每个时钟叶,该过程可以构建下级时钟树,其中该下级时钟树将时钟信号从上级时钟树的时钟叶分发至时钟宿端的集合,并且其中该下级时钟树被优化以降低延时、功耗和/或面积(操作704)。
如以上所解释的,下级时钟树通常具有比上级时钟树更短的导线长度、针对每个时钟缓冲器/门具有中到大的扇出、并且由于时钟宿端的不均匀分布和不同的缓冲器大小的门而具有较不规则的结构。通常,下级时钟树的层级越少,时钟树就越能容忍OCV。
在一些实施例中,下级时钟树中的缓冲器层级的最大数量可以被约束以便于降低OCV的影响。具体地,为了满足最大缓冲器层级约束,下级时钟树除了增加缓冲器之外可能需要克隆现有的门(例如,时钟门单元)。在一些实施例中,相同的聚类过程被用于缓冲和门的克隆。在一些实施例中,该过程可以确保下级时钟树是层级平衡的,这能够进一步提高OCV容忍度。
在一些实施例中,下级时钟树中的层级数量被约束为预定的最大数量,即,从下级时钟树的根到下级时钟树的时钟叶的每条路径中的缓冲器数量被约束为小于或等于该预定的最大数量。注意,该最大缓冲器层级约束还限制了下级时钟树的大小。给定预定的最大缓冲器层级约束,该过程可以通过对电路设计中的时钟宿端进行聚类来构建下级时钟树的集合。该过程然后可以标识下级时钟树的暂定锚缓冲器位置。一旦该暂定锚缓冲器位置已经被确定,该过程就可以创建一个或多个上级时钟树以向该锚缓冲器分发时钟信号。通常,如果下级时钟树中允许的层级的数量小,则下级时钟树的数量将会较大。相反,如果下级时钟树中允许的层级的数量大,则下级时钟树的数量将会较小。
计算机***
图8图示了根据在此描述的一些实施例的计算机***。计算机***802包括处理器804、存储器806和存储设备808。计算机***802可以被耦合至显示器814、键盘810和打印设备812。存储设备808可以存储操作***816、应用818和数据620。数据820可以包括由应用818要求的输入和/或由应用818生成的输出。
计算机***802可以自动地(或者利用用户交互)执行本公开中隐含或明确描述的一个或多个过程。具体地,在操作期间,计算机***802可以将应用818加载到存储器806中。然后,应用818可以被用来执行OCV和时序临界性可知的CTS,和/或执行双重结构的CTS。
结论
以下描述被呈现以使得本领域技术人员能够制造并使用本发明。针对所公开的实施例的各种修改对于本领域技术人员而言将是显而易见的,并且在此定义的总体原则可以被应用于其它实施例和应用而并不偏离本发明的精神和范围。因此,本发明不限于所示的实施例,而是将被赋予与在此公开的原则和特征一致的最宽范围。
本公开中所描述的数据结构和代码可以被部分地或完全地存储在非瞬态计算机可读存储介质和/或硬件模块和/或硬件装置上。非瞬态计算机可读存储介质包括所有计算机可读存储介质,仅有的例外是传播中的电磁波或信号。具体地,非瞬态计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁存储设备和光存储设备,诸如磁盘驱动器、磁带、CD(紧凑盘)、DVD(数字多功能盘或数字视频盘),或者目前已知或后续研发的能够存储代码和/或数据的其它媒体。本公开中所描述的硬件模块或装置包括但不限于专用集成电路(ASIC)、现场可编程门阵列(FPGA)、专用或共享处理器,和/或目前已知或后续研发的其它硬件模块或装置。
本公开中所描述的方法和过程可以被部分地或完全地体现为存储在非瞬态计算机可读存储介质或设备中的代码和/或数据,使得当计算机***读取并执行该代码和/或数据时,该计算机***执行相关联的方法和过程。方法和过程还可以被部分地或完全地体现在硬件模块或装置中。注意,方法和处理可以使用代码、数据以及硬件模块或装置的组合来体现。
仅出于说明和描述的目的已经呈现了本发明的实施例的前述描述。它们不旨在是穷举的或者将本发明限于所公开的形式。因此,许多修改和变型对于本领域技术人员将是显而易见的。此外,以上公开不旨在于限制本发明。本发明的范围由所附权利要求限定。
Claims (15)
1.一种用于时钟树综合的方法,所述方法包括:
构建上级时钟树的集合,其中每个上级时钟树的每个时钟叶是下级时钟树的时钟根,并且其中每个上级时钟树被优化以降低片上变异和/或对角变异对于时钟偏差的影响;以及
针对每个上级时钟树的每个时钟叶,构建下级时钟树,其中所述下级时钟树从所述上级时钟树的时钟叶向时钟宿端的集合分发时钟信号,并且其中所述下级时钟树被优化以降低延时、功耗和/或面积。
2.根据权利要求1所述的方法,其中上级时钟树中的导线具有比下级时钟树中的导线更宽的宽度。
3.根据权利要求1所述的方法,其中给定的上级时钟树的所有水平导线被布线在相同金属层上。
4.根据权利要求1所述的方法,其中给定的上级时钟树的所有垂直导线被布线在相同金属层上。
5.根据权利要求1所述的方法,其中给定的上级时钟树中的所有缓冲器具有相同大小。
6.一种存储指令的非瞬态计算机可读存储介质,所述指令当由计算机执行时,使得所述计算机执行一种用于时钟树综合的方法,所述方法包括:
构建上级时钟树的集合,其中每个上级时钟树的每个时钟叶是下级时钟树的时钟根,并且其中每个上级时钟树被优化以降低片上变异和/或对角变异对于时钟偏差的影响;以及
针对每个上级时钟树的每个时钟叶,构建下级时钟树,其中所述下级时钟树从所述上级时钟树的时钟叶向时钟宿端的集合分发时钟信号,并且其中所述下级时钟树被优化以降低延时、功耗和/或面积。
7.根据权利要求6所述的非瞬态计算机可读存储介质,其中上级时钟树中的导线具有比下级时钟树中的导线更宽的宽度。
8.根据权利要求6所述的非瞬态计算机可读存储介质,其中给定的上级时钟树的所有水平导线被布线在相同金属层上。
9.根据权利要求6所述的非瞬态计算机可读存储介质,其中给定的上级时钟树的所有垂直导线被布线在相同金属层上。
10.根据权利要求6所述的非瞬态计算机可读存储介质,其中给定的上级时钟树中的所有缓冲器具有相同大小。
11.一种电子装置,包括:
处理器;和
存储指令的存储介质,所述指令当由所述处理器执行时,使得所述装置执行一种用于时钟树综合的方法,所述方法包括:
构建上级时钟树的集合,其中每个上级时钟树的每个时钟叶是下级时钟树的时钟根,并且其中每个上级时钟树被优化以降低片上变异和/或对角变异对于时钟偏差的影响;以及
针对每个上级时钟树的每个时钟叶,构建下级时钟树,其中所述下级时钟树从所述上级时钟树的时钟叶向时钟宿端的集合分发时钟信号,并且其中所述下级时钟树被优化以降低延时、功耗和/或面积。
12.根据权利要求11所述的装置,其中上级时钟树中的导线具有比下级时钟树中的导线更宽的宽度。
13.根据权利要求11所述的装置,其中给定的上级时钟树的所有水平导线被布线在相同金属层上。
14.根据权利要求11所述的装置,其中给定的上级时钟树的所有垂直导线被布线在相同金属层上。
15.根据权利要求11所述的装置,其中给定的上级时钟树中的所有缓冲器具有相同大小。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361804107P | 2013-03-21 | 2013-03-21 | |
US61/804,107 | 2013-03-21 | ||
US14/221,139 US9053281B2 (en) | 2013-03-21 | 2014-03-20 | Dual-structure clock tree synthesis (CTS) |
US14/221,139 | 2014-03-20 | ||
PCT/US2014/031497 WO2014153538A1 (en) | 2013-03-21 | 2014-03-21 | Dual-structure clock tree synthesis (cts) |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105359149A CN105359149A (zh) | 2016-02-24 |
CN105359149B true CN105359149B (zh) | 2019-05-17 |
Family
ID=51570118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480009597.4A Active CN105359149B (zh) | 2013-03-21 | 2014-03-21 | 双重结构的时钟树综合(cts) |
Country Status (5)
Country | Link |
---|---|
US (1) | US9053281B2 (zh) |
JP (1) | JP6333948B2 (zh) |
CN (1) | CN105359149B (zh) |
DE (1) | DE112014000616T5 (zh) |
WO (1) | WO2014153538A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9330220B1 (en) * | 2014-08-25 | 2016-05-03 | Xilinx, Inc. | Clock region partitioning and clock routing |
US9922157B1 (en) * | 2014-09-30 | 2018-03-20 | Altera Corporation | Sector-based clock routing methods and apparatus |
US10089428B2 (en) * | 2015-05-04 | 2018-10-02 | Samsung Electronics Co., Ltd. | Intelligent cell swapping based on ceiling determination, floor determination, and cell attribute weighting criteria |
US20180006653A1 (en) * | 2016-06-29 | 2018-01-04 | Altera Corporation | Integrated circuits with hybrid fixed/configurable clock networks |
US10325046B2 (en) * | 2016-09-20 | 2019-06-18 | Synopsys, Inc. | Formal method for clock tree analysis and optimization |
CN107342762B (zh) * | 2017-05-31 | 2019-10-25 | 北京时代民芯科技有限公司 | 一种抗单粒子瞬态时钟树结构 |
CN107831824B (zh) * | 2017-10-16 | 2021-04-06 | 北京比特大陆科技有限公司 | 时钟信号传递方法、装置、复用芯片和电子设备 |
CN107817870A (zh) * | 2017-10-16 | 2018-03-20 | 算丰科技(北京)有限公司 | 时钟信号传递方法和装置、时钟树、芯片、电子设备 |
US11176293B1 (en) * | 2018-03-07 | 2021-11-16 | Synopsys, Inc. | Method and system for emulation clock tree reduction |
US10860761B1 (en) * | 2018-06-11 | 2020-12-08 | Ansys, Inc. | Systems and methods for enhanced clock tree power estimation at register transfer level |
CN111950215B (zh) * | 2020-07-21 | 2023-04-28 | 中国科学院计算技术研究所 | 生成面向超导rsfq电路的多扇出时钟信号的方法 |
KR20220055808A (ko) * | 2020-10-27 | 2022-05-04 | 삼성전자주식회사 | 클럭 트리의 배치 방법, 집적 회로 및 집적 회로의 설계 방법 |
CN112217707B (zh) * | 2020-11-10 | 2022-03-04 | 北京百瑞互联技术有限公司 | 集成电路时钟树网络质量评估方法、装置和介质 |
CN114818595B (zh) * | 2022-06-24 | 2022-09-13 | 飞腾信息技术有限公司 | 芯片模块接口时钟构建方法、装置、存储介质及电子设备 |
US20240143880A1 (en) * | 2022-11-01 | 2024-05-02 | Taiwan Semiconductor Manufacturing Company, Ltd. | Integrated circuit design method and system |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039891B2 (en) * | 2003-08-27 | 2006-05-02 | Lsi Logic Corporation | Method of clock driven cell placement and clock tree synthesis for integrated circuit design |
JP2007072995A (ja) | 2005-09-09 | 2007-03-22 | Ricoh Co Ltd | レイアウト装置、自動配置配線方法および半導体集積回路製造方法 |
JP4314233B2 (ja) | 2005-11-07 | 2009-08-12 | 富士通株式会社 | 設計支援装置、設計支援方法、設計支援プログラム、および記録媒体 |
US7509609B2 (en) | 2006-03-15 | 2009-03-24 | Agere Systems Inc. | Methods and apparatus for reducing timing skew |
JP2007336003A (ja) * | 2006-06-12 | 2007-12-27 | Nec Electronics Corp | クロック分配回路、半導体集積回路、クロック分配回路の形成方法及びそのプログラム |
US8365113B1 (en) * | 2007-01-10 | 2013-01-29 | Cadence Design Systems, Inc. | Flow methodology for single pass parallel hierarchical timing closure of integrated circuit designs |
US8640066B1 (en) * | 2007-01-10 | 2014-01-28 | Cadence Design Systems, Inc. | Multi-phase models for timing closure of integrated circuit designs |
JP5167740B2 (ja) | 2007-09-20 | 2013-03-21 | 富士通セミコンダクター株式会社 | 設計支援プログラム、設計支援装置、および設計支援方法 |
JP2009288890A (ja) | 2008-05-27 | 2009-12-10 | Panasonic Corp | 半導体集積回路、および半導体集積回路のレイアウト方法 |
JP2010211302A (ja) * | 2009-03-06 | 2010-09-24 | Toshiba Corp | クロック配線方法 |
JP5696407B2 (ja) * | 2010-09-14 | 2015-04-08 | 株式会社リコー | 半導体集積回路の自動配置配線方法、レイアウト装置、自動配置配線プログラム、及び半導体集積回路 |
JP5533564B2 (ja) * | 2010-10-28 | 2014-06-25 | 富士通セミコンダクター株式会社 | クロックツリー生成装置及びクロックツリー生成方法 |
JP2012194888A (ja) * | 2011-03-17 | 2012-10-11 | Toshiba Corp | クロックツリー設計装置及びクロックツリー設計方法 |
-
2014
- 2014-03-20 US US14/221,139 patent/US9053281B2/en active Active
- 2014-03-21 DE DE112014000616.5T patent/DE112014000616T5/de active Pending
- 2014-03-21 CN CN201480009597.4A patent/CN105359149B/zh active Active
- 2014-03-21 JP JP2016504387A patent/JP6333948B2/ja active Active
- 2014-03-21 WO PCT/US2014/031497 patent/WO2014153538A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US9053281B2 (en) | 2015-06-09 |
CN105359149A (zh) | 2016-02-24 |
WO2014153538A1 (en) | 2014-09-25 |
JP6333948B2 (ja) | 2018-05-30 |
JP2016520895A (ja) | 2016-07-14 |
DE112014000616T5 (de) | 2015-10-29 |
US20140289694A1 (en) | 2014-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105359149B (zh) | 双重结构的时钟树综合(cts) | |
US8572532B1 (en) | Common path pessimism removal for hierarchical timing analysis | |
US9152742B1 (en) | Multi-phase models for timing closure of integrated circuit designs | |
US8977995B1 (en) | Timing budgeting of nested partitions for hierarchical integrated circuit designs | |
US10467365B1 (en) | Systems and methods for calculating common clock path pessimism for hierarchical timing analysis in an electronic design | |
US10318684B2 (en) | Network flow based framework for clock tree optimization | |
US9619609B1 (en) | Integrated circuit chip design methods and systems using process window-aware timing analysis | |
CN104981805B (zh) | 自动时钟树布线规则生成 | |
US8869091B2 (en) | Incremental clock tree synthesis | |
CN105701266B (zh) | 用于电路设计中的静态时序分析的方法和*** | |
US9536036B1 (en) | In-hierarchy circuit analysis and modification | |
US9147030B2 (en) | Multiple-instantiated-module (mim) aware pin assignment | |
US20140289690A1 (en) | On-chip-variation (ocv) and timing-criticality aware clock tree synthesis (cts) | |
WO2014153543A1 (en) | Dynamic power driven clock tree synthesis (cts) | |
US10073944B2 (en) | Clock tree synthesis based on computing critical clock latency probabilities | |
US20140181766A1 (en) | Multi-mode scheduler for clock tree synthesis | |
US9734268B2 (en) | Slack redistribution for additional power recovery | |
US9965581B1 (en) | Fanout optimization to facilitate timing improvement in circuit designs | |
JP2018073150A (ja) | 検証支援プログラム、検証支援方法、および情報処理装置 | |
CN104981806B (zh) | 自动时钟树综合例外生成 | |
US20220327269A1 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
WO2014105980A1 (en) | Multi-mode scheduler for clock tree synthesis | |
US8336013B2 (en) | Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations | |
US9177090B1 (en) | In-hierarchy circuit analysis and modification for circuit instances | |
Xie et al. | Clock tree synthesis and optimization in BES1300 IC Smart Card |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |