CN106326510A - 验证时钟树延迟 - Google Patents

验证时钟树延迟 Download PDF

Info

Publication number
CN106326510A
CN106326510A CN201510373202.5A CN201510373202A CN106326510A CN 106326510 A CN106326510 A CN 106326510A CN 201510373202 A CN201510373202 A CN 201510373202A CN 106326510 A CN106326510 A CN 106326510A
Authority
CN
China
Prior art keywords
zoom factor
fan
clock
buffers
buffer
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.)
Granted
Application number
CN201510373202.5A
Other languages
English (en)
Other versions
CN106326510B (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.)
Synopsys Shanghai Co Ltd
Original Assignee
Synopsys 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 Synopsys Shanghai Co Ltd filed Critical Synopsys Shanghai Co Ltd
Priority to CN201510373202.5A priority Critical patent/CN106326510B/zh
Priority to US15/145,741 priority patent/US10387606B2/en
Publication of CN106326510A publication Critical patent/CN106326510A/zh
Application granted granted Critical
Publication of CN106326510B publication Critical patent/CN106326510B/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/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • 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

验证时钟树延迟
技术领域
本发明总的涉及用于集成电路的计算机辅助设计(CAD)的方法和***,并且具体地涉及时钟树延迟的时序验证。
背景技术
集成电路(IC)时序验证适应于增长的IC密度和复杂性。静态时序分析(STA)通常用于进行针对同步电路设计的验证以及优化的时序分析。STA验证允许设计者做出修改,以便改进电路设计的信度、效率和/或速度。在STA中通常并入了设计余量或悲观(pessimism),由此在设计中通过提供IC中的信号变化之前的额外时间以保证IC的合适功能,从而对设计中的在IC建模、设计和制造中的变化进行了考虑。过度设计或过量悲观会使得IC具有慢速特性,错过速度目标,将设计过于复杂化,和/或延迟准时结束设计。
时钟树是一类表示特殊设计挑战的电路路径,由于可能要求置于树根处的一个时钟驱动电路区块输出或发源能够驱动置于树的叶子处的有时贯穿整个IC的数千个其他逻辑电路区块所接收的输入或时钟汇点(sink)的信号。在一个CAD流程中,时钟树自动合成,包括将多个缓冲电路区块沿时钟树布置,以下称为“缓冲器”,以辅助驱动由叶子处的长电线长度和多个时钟汇点组成的显现于根部的大电容负载。
基于路径的分析(PBA)是一类STA,用于计算开始于输入并且追踪电路路径的输出路径的延迟。由于每个电路路径被分立地分析,PBA CAD计算在分析电路设时序可能较慢。例如,仅输入引脚的沿给定电路路径的转换(slews)在PBA分析中被考虑在内。PBA通常用于在电路设计几乎完成时根据PBA的详尽特性和需要进行PBA的可计算时间量的最优化。相比于在先进以及老一代IC技术中都会出现的诸如例如由于使用非典型的大型晶体管栅极长度制造IC的慢电路区块的***变异,片上变异(OCV)和先进片上变异(AOCV)分析为包括在先进IC制造技术期间制成的逻辑电路区块中的统计变异的PBA类型。
根据上述原因,AOCV通常在时钟树合成(CTS)之后在时钟树上进行,并且可能导致时序中的过量悲观。因此,需要更好的在CTS之前进行AOCT的CAD流程以减少时序中的过量悲观。
发明内容
根据本发明的一个实施例,用于验证时钟树的一种计算机实现的方法包括估算置于时钟树路径内的第一数目的多个第一缓冲器,并且根据第一数目选择第一缩放系数。所述计算机实现方法进一步包括根据所选择的第一缩放系数来缩放与多个第一缓冲器相关联的第一延迟,并且生成由比第一数目更多的第二数目定义的置于时钟树路径内的第二多个第二缓冲器。
根据一个实施例,在缩放第一延迟之后生成第二多个第二缓冲器。根据一个实施例,多个第一缓冲器耦连到在时钟树中生成时钟信号的第一区块和接收时钟信号的第三数目的多个第二区块之间。
根据一个实施例,根据所述第三数目的对数函数来估算所述第一数目。根据一个实施例,估算所述第一数目包括在估算所述第一数目之前,接收时钟树的网络列表,扇出约束,以及电容约束。所述计算机实现方法进一步包括根据所述网络列表、所述扇出约束和所述电容约束来计算第一扇出,并且根据所述第三数目的对数来确定所述第一数目,所述对数是等于所述第一扇出的底数。
根据一个实施例,多个第一缓冲器中的每一个与本质上相等的延迟时间相关联。根据一个实施例,多个第二缓冲器包括具有第一延迟时间的第三缓冲器,且具有与第一延迟时间不同的第二延迟时间的第四缓冲器。
根据一个实施例,所述方法进一步包括根据所述第二数目在缩放第一延迟之后选择小于第一缩放系数的第二缩放系数,以及根据所选择的第二缩放系数缩放与所述多个第二缓冲器相关联的第二延迟。根据一个实施例,选择所述第一缩放系数包括接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括第一数目的多个逻辑深度中的一个相关联,以及在多个逻辑深度中使用所述第一数目进行索引,以选择与所述第一数目相关联的所述第一缩放系数。
根据本发明的一个实施例,一种用于验证时钟树的计算机实现方法包括估算置于时钟树路径中的第一数目的多个第一缓冲器,并且根据所述第一数目选择第一缩放系数。所述多个第一缓冲器耦连到在时钟树中生成时钟信号的第一区块和接收时钟信号的第二数目的多个第二区块之间。根据所述第二数目的对数函数估算所述第一数目。所述计算机实现方法进一步包括根据所述第一数目选择第一缩放系数,以及根据所选择的第一缩放系数来缩放与数个第一缓冲器相关联的第一延迟。
根据一个实施例,估算所述第一数目进一步包括在估算所述第一数目之前接收时钟树的网络列表、扇出约束,以及电容约束。所述计算机实现方法进一步包括根据所述网络列表、所述扇出约束和所述电容约束来计算第一扇出,并且根据所述第三数目的对数来确定所述第一数目,所述对数是等于所述第一扇出的底数。
根据一个实施例,选择所述第一缩放系数进一步包括接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括第一数目的多个逻辑深度中的一个相关联。所述计算机实现方法进一步包括在多个逻辑深度中使用所述第一数目进行索引,以选择与所述第一数目相关联的所述第一缩放系数。
根据本发明的一个实施例,用于验证时钟树的***配置为估算置于时钟树路径内的第一数目的多个第一缓冲器,并且根据第一数目选择第一缩放系数。所述***进一步配置为根据所选择的第一缩放系数来缩放与多个第一缓冲器相关联的第一延迟,并且生成由比第一数目更多的第二数目定义的置于时钟树路径内的第二多个第二缓冲器。
根据一个实施例,所述***进一步配置为在缩放第一延迟之后生成第二多个第二缓冲器。根据一个实施例,多个第一缓冲器耦连到在时钟树中生成时钟信号的第一区块和接收时钟信号的第三数目的多个第二区块之间。
根据一个实施例,所述***进一步配置为根据所述第三数目的对数函数估算所述第一数目。根据一个实施例,所述***进一步配置为在估算所述第一数目之前接收时钟树的网络列表,扇出约束,以及电容约束。所述***进一步配置为根据所述网络列表、所述扇出约束和所述电容约束来计算第一扇出,并且根据所述第三数目的对数来确定所述第一数目,所述对数是等于所述第一扇出的底数。
根据一个实施例,所述***进一步配置为根据所述第二数目在缩放第一延迟之后选择小于第一缩放系数的第二缩放系数。所述***进一步配置为根据所选择的第二缩放系数缩放与所述多个第二缓冲器相关联的第二延迟。根据一个实施例,所述***进一步配置为接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括第一数目的多个逻辑深度中的一个相关联,以及在多个逻辑深度中使用所述第一数目进行索引,以选择与所述第一数目相关联的所述第一缩放系数。
根据本发明的一个实施例,用于验证时钟树的***配置为估算置于时钟树路径内的第一数目的多个第一缓冲器。所述多个第一缓冲器耦连到在时钟树中生成时钟信号的第一区块和接收时钟信号的第二数目的多个第二区块之间。根据所述第二数目的对数函数估算所述第一数目。所述***进一步配置为根据所述第一数目选择第一缩放系数,以及根据所选择的第一缩放系数来缩放与数个第一缓冲器相关联的第一延迟。
根据一个实施例,所述***进一步配置为在估算所述第一数目之前接收时钟树的网络列表,扇出约束,以及电容约束。所述***进一步配置为括根据所述网络列表、所述扇出约束和所述电容约束来计算第一扇出,并且根据所述第三数目的对数来确定所述第一数目,所述对数是等于所述第一扇出的底数。根据一个实施例,所述***进一步配置为接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括第一数目的多个逻辑深度中的一个相关联,以及在多个逻辑深度中使用所述第一数目进行索引,以选择与所述第一数目相关联的所述第一缩放系数。
根据本发明的一个实施例,非暂时性计算机可读存储介质包括在由计算机执行时使得所述计算机来估算置于时钟树路径内的第一数目的多个第一缓存器的指令,并且根据所述第一数目选择第一缩放系数。所述指令进一步使得所述计算机根据所选择的第一缩放系数来缩放与数个第一缓冲器相关联的第一延迟,并且生成由比第一数目更多的第二数目定义的置于时钟树路径内的第二多个第二缓冲器。
根据一个实施例,所述指令进一步使得所述计算机在缩放第一延迟之后生成第二多个第二缓冲器。根据一个实施例,多个第一缓冲器耦连到在时钟树中生成时钟信号的第一区块和接收时钟信号的第三数目的多个第二区块之间。
根据一个实施例,所述指令进一步使得所述计算机根据所述第三数目的对数函数来估算所述第一数目。根据一个实施例,估算所述第一数目进一步使得所述计算机在估算所述第一数目之前接收时钟树的网络列表,扇出约束,以及电容约束。所述指令进一步使得所述计算机来根据所述网络列表、所述扇出约束和所述电容约束来计算第一扇出。所述指令进一步使得所述计算机根据所述第三数目的对数来确定所述第一数目,所述对数是等于所述第一扇出的底数。
根据一个实施例,所述指令进一步使得所述计算机根据所述第二数目在缩放第一延迟之后选择小于第一缩放系数的第二缩放系数,以及根据所选择的第二缩放系数缩放与所述多个第二缓冲器相关联的第二延迟。根据一个实施例,所述指令进一步使得所述计算机来接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括第一数目的多个逻辑深度中的一个相关联,以及在多个逻辑深度中使用所述第一数目进行标引,以选择与所述第一数目相关联的所述第一缩放系数。
根据本发明的一个实施例,非暂时性计算机可读存储介质包括在由计算机执行时使得所述计算机来估算置于时钟树路径内的第一数目的多个第一缓存器的指令。所述多个第一缓存器耦连到在时钟树中生成时钟信号的第一区块和接收时钟信号的第二数目的多个第二区块之间。根据所述第二数目的对数函数估算所述第一数目。所述指令进一步使得所述计算机根据所述第一数目选择第一缩放系数,并根据所选择的第一缩放系数来缩放与数个第一缓冲器相关联的第一延迟。
根据一个实施例,所述指令进一步使得所述计算机在估算所述第一数目之前接收时钟树的网络列表、扇出约束,以及电容约束。所述指令进一步使得所述计算机根据所述网络列表、所述扇出约束和所述电容约束来计算所述第一扇出。所述指令进一步使得所述计算机根据第三数目的对数、底数等于所述第一扇出的对数来确定所述第一数目。根据一个实施例,所述指令进一步使得所述计算机接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括第一数目的多个逻辑深度中的一个相关联,并且在多个逻辑深度中使用所述第一数目进行标引,以选择与所述第一数目相关联的所述第一缩放系数。
参考以下详细描述和附图,可以得到对于本发明的实施例的性质和优势的更好理解。
附图说明
图1描述了本发明的实施例所使用的、集成电路的设计和制造中的简明示例性步骤。
图2描述了图1中描述的物理实现步骤中的简明示例性步骤。
图3描述了本发明的实施例所使用的、在时钟树合成(CTS)之前集成电路的时钟树和数据路径的简明示例性示意图。
图4描述了表示本发明的实施例所用的、与发出路径(launch-path)时序分析相关联的时钟信号的简明示例性时序和波形图。
图5描述了表示本发明的实施例所用的、进一步与启动时间相关联的图4描述的时钟信号的简明示例性时序和波形图。
图6描述了本发明的实施例所使用的、在图3中描述的时钟树合成(CTS)之后的简明示例性示意图.
图7描述了根据本发明的实施例之一的、在图1中描述的物理实现步骤中的简明示例性步骤。
图8描述了根据本发明的一个实施例的、图7中所描述的布置与优化及估算在每个时钟路径中的虚拟缓冲器的数目及AOCV1验证步骤简明示例性步骤。
图9描述了根据本发明的一个实施例的、图8中所描述的确定估算逻辑深度步骤之后、图3中描述的简明示例性示意图。
图10描述了根据本发明的一个实施例的、图8中所描述的计算扇出步骤中的简明示例性步骤。
图11描述了并入本发明的实施例的计算机***的框图。
具体实施方式
图1描述了集成电路的设计和制造中的多个步骤101。进程从产品创意100开始,其可以使用电子设计自动化(EDA)软件110来实现。芯片170可以通过执行制造150和封装及装配160步骤由定型产生。以下描述了使用EDA软件110的示例性设计流程,仅用于阐释目的。例如,实际集成电路设计可能要求设计者在与以下描述的序列不同的序列中完成设计流程步骤。
在***设计112中,设计者描述了要实现的功能。设计者也可以进行假设计划来细化功能并检查成本。进一步的,硬件-软件体系架构划分可以在该步骤处出现。在设计和功能验证114中,硬件描述语言(HDL)设计可以被创建并检查以用于功能准确性。
在合成和设计116中,HDL代码可以翻译为网络列表,其可以优化用于目标技术。进一步的,可以设计并实现测试以检查所完成的芯片。在网络列表验证118中,可以检查该网络列表以符合时序约束并与HDL代码对应。在设计计划120中,可以建立并分析芯片的总体底层计划用于时序和顶层布线。下一步,在物理实现122中,可以执行布置和布线(routing)。
在分析和撷取124中,可以在晶体管层验证电路功能。在物理验证126中,可以检查该设计以纠正任意功能、制造、电气或刻版的问题。在分辨率增强128处,可以在布局上进行几何控制,以改进设计的可制造性。最后,在掩膜数据准备130中,该设计可以是流片成功140,用于产生掩膜以产生完成的芯片。
图2描述了图1中描述的物理实现步骤122中的简明示例性步骤。参考图2,物理实现步骤122开始210布置与优化220,其可以是使用增强的布置与合成CAD技术的迭代进程。布置与优化220生成合法布置用于电路布局单元,即在光掩膜中图形化的几何图形,表示在半导体晶圆上的IC电路元件和互连中将要图形化的结构,以及根据设计网络列表、底层设计、以及设计规则的优化设计。布置与优化220功能可以优化功率、恢复布置区域、最小化布局拥塞,并且最小化时序与设计规则冲突。片上变异(OCV)时序分析可以于布置与优化220期间在布置之后使用,以最小化时序冲突,如以下示例所释。
时钟树合成(CTS)204可以是在网络列表和设计布局中建立每个时钟树的进程。可以建立每个时钟,由此在时钟树根处的时钟源或驱动可以经由直接互连和其他时钟树的电路元件来驱动在时钟树的叶子处的近千个时钟元件。CTS可以通过沿时钟树路径自动生成缓冲器而部分地完成,正如使用一些可用的布局资源满足时序约束所需要的那样。时钟树合成也将时钟树偏差和时钟***延迟最小化,即,来自时钟树的根部的时钟源至时钟树的叶子处的时钟汇点的时钟信号延迟。
下一步,时钟树优化以及AOCV1验证240可以执行时钟树和数据路径优化以用于时序改进。时钟树优化可以通过执行缓冲器大小、缓冲器重定位、门大小、门的重定位、电压水平调整、布置重新配置、信号时序延迟引进、虚拟负载***以及内置时钟延迟的均衡来同时改进时钟偏差和时钟***延迟。AOCV1可以在具有已经就位且使用的缓冲器的合成时钟树上执行,从而部分地使用CAD工具自动化地或者手动地完成上述优化,例如使用设计者介入以减少时序悲观。AOCV1将如以下示例详细描述。
布线和邮路优化以及AOCV2验证250进行全局信号布线、跟踪任务、详细布线、拓扑优化以及工程变更次序(ECO)布线。在步骤250处的AOCV2的结果可以用于减少邮路时序悲观。用于制造的芯片完工和设计260可以执行设计以产生容量(capacities),其可以应用在设计流程的各个阶段以解决在芯片制造过程中碰到的进程设计问题。结束270物理实现步骤122。
图3描述了根据本发明的实施例进行的、在时钟树合成(CTS)230之前集成电路的时钟树和数据路径300的简明示例性示意图。时钟树和数据路径300可以包括一对触发器301、302,下文也对应称为FF1、FF2,一对包括在数据路径中的缓冲器反相器304、306,下文也对应称为U304、U306,一个多工器308,下文也称为MUX 308,以及AND门310。数据路径可以包括FF1的Q输出312,下文也称为FF1/Q 312,其经由串行连接的缓冲器反相器对304,306驱动了FF2的D输入314,下文也称为FF2/D 314。
时钟树可以包括由时钟源驱动的时钟树320的根部(未示出),下文也称为Clk 320,其通过网络CKA直接连接到MUX输入340、FF1的时钟(CLK)输入350,下文也称为FF1/CLK350,以及时钟汇点360。在以下示例中,时钟汇点360可以表示置于网络CKA上的时钟树的各个不同叶子处的多个一千个时钟汇点,但在此处表示时钟汇点360处的单一集总电路。
时钟树可以进一步包括MUX,其输出驱动了直接连接到FF2的时钟(CLK)输入370的网络MXA,下文也称为FF2/CLK370,驱动AND门310的输入的MUX输出330,以及时钟汇点380,其在以下示例中表示置于网络CKA上的时钟树的各个不同叶子处的多个五千个时钟汇点,但在此处表示时钟汇点380处的单一集总电路。时钟树可以进一步包括AND门310,其输出驱动直接连接到时钟汇点390的网络MXB,其在以下示例中表示置于网络MXB上的时钟树的各个不同叶子处的多个六千个时钟汇点,但在此处表示时钟汇点390处的单一集总电路。
网络可以由直接连接的导体定义,诸如金属、多晶硅、或者重掺杂扩散,即直接连接在网络列表中具体化的电路元件的直接连接线,而没有任何干预晶体管、门、或其他网络具体化电路元件。相反的,路径可以包括一个或多个网络的部分,将诸如例如Clk320的信号源连接到接收信号的信号汇点,诸如例如FF1/CLK 350或FF2/CLK 370,可能或可能不包括一个或多个干预晶体管、门、或其他网络具体化电路元件。例如,时钟树可以包括Clk320和FF2/CLK370之间的路径,其包括经由部分网络CKA和MXA的连接的MUX308,并且也可以用符号表示为:
Clk 320→MUX 308→FF2/CLK 370.
例如,时钟树可以进一步包括Clk 320和FF1/CLK 350之间的路径,其为经由部分网络CKA的直接连接,并且也可以用符号表示为:
Clk 320→FF1/CLK 350.
时钟树可以包括多个路径,其将时钟树的根部320或Clk320连接到在时钟树的叶子处的时钟汇点,诸如FF1/CLK 350,时钟汇点360,FF2/CLK 370,时钟汇点380,以及时钟汇点390。因此,时钟树包括的多个路径可以是对于设计和时序分析的挑战。
参考图2和图3,在CTS230之前,触发器301、302,缓冲器反相器对304、306,MUX308,和AND门310以及它们的一些输出驱动的大小可以被优化,以便在布置和优化220期间仿真时序之后满足时序要求。在物理实现122流程期间优化设计越早,设计结果越好,因为当布局资源不容易获得时,在流程的后期阶段通常难以完成设计变更。
静态时序分析(STA)可以用于分析IC设计,从而观察是否满足了时序要求,并且如果没有,则标记该错误路径。使用基于图3的STA时序示例,到达FF2/D 314的数据来自FF1/Q 312。FF1被Clk 320计时。所述到达FF2/D 370的时钟也来源于Clk 320。因此,Clk 320可以被定义为公共点,并且用作时序分析的起始参考。至FF2/D 314的数据经由Clk 320和FF2/D314之间的路径发出,并且可以称为“发出路径”,其也可以用符号表示为:
Clk 320→FF1/CLK 350→FF1/Q 312→U 304→U 306→FF2/D 314.到达FF2/D引脚的数据可以由Clk 320和FF2/CLK 370之间的路径捕获,并且可以称为“捕获路径”,其也可以用符号表示为:
Clk 320→MUX 308→FF2/CLK 370.
有至少两个计时要求,发出路径的延迟和捕获路径的延迟应当满足:早期到达时序要求和晚期到达时序要求。早期到达要求定义与发出路径相关的数据到达不能比在叠加FF2302要求的维持时间的捕获路径上的时钟信号的到达更早。换言之,
发出路径早期到达>捕获路径到达+维持时间.
否则,新数据可以覆写FF2/D 314上的旧数据,使得到达FF2/CLK 370的时钟信号锁存错误数据。称为保持弛豫的时序边界可以定义如下
保持弛豫=发出路径早期到达–(捕获路径到达+保持时间)此处如果保持弛豫>0则没有时序冲突。
晚期到达要求则要求与发出路径相关的数据不能比在减去FF2302要求的启动时间的捕获路径上的下一周期的时钟信号的到达更晚。换言之,
发出路径晚期到达<时钟周期+捕获路径到达–启动时间.
否则,下一时钟周期可能不能及时锁存FF2/D 314上的数据。所述晚期到达要求将在下面讨论。
就STA示例而言,与图3中描述的示例性性元件相关的延迟、启动和保持时间假设在下表1中给出:
表1
元件 时间(ns)和类型
FF1/CLK 350→FF1/Q 312 0.5延迟
U 304 0.11延迟
U 306 0.11延迟
MUX 308 1.0延迟
FF2/CLK 370→FF2/D 314 0.21启动
图4描述了表示本发明的实施例所用的、与发出路径时序分析相关联的时钟信号402的简明示例性时序和波形图400。图4同样描述了这些示例的时间缩放404。同时参考图3、图4和表1,时钟信号402出现在Clk 320处时间0处。因为没有其他在Clk 320FF1/CLK 350之间的电路元件,时钟信号402的上升沿406出现在FF1/CLK 350处零纳秒(ns)处,并且于FF1/Q312处根据FF1中的延迟在0.5ns的延迟时间之后发出数据路径。每对缓冲器反相器304,306贡献了0.11ns的发出路径延迟。发出路径的延迟可以是与发出路径中的每个元件相关联的延迟的总量。
Clk 320→FF1/CLK 350→FF1/Q 312→U 304→U 306→FF2/D 314,并且可以与表1所提供的类似,且对应
0+0.5+0.11+0.11=0.72ns.
对于包括FF2的启动时间的晚期到达要求,发出路径的延迟可以与下一个时钟周期的捕获路径延迟减去FF2的启动时间要求相比较。图5描述了表示本发明的实施例所用的、进一步与FF2的启动时间相关联的图4描述的时钟信号402的简明示例性时序和波形图500。继续相同的示例并且同时参考图3、图5以及表1,第二上升沿506或时钟信号402的下一时钟周期在时钟周期之后出现在FF2/CLK 370,该时钟周期为零时后的四纳秒叠加1ns的根据MUX 308的捕获路径延迟并减去FF2/CLK 370→FF2/D 314给出的0.21ns的启动时间:
4+1.0–0.21=4.79ns,
根据晚期到达要求,其必须比发起路径延迟大。如上述计算的那样,在发起路径上的延迟为0.72ns,其比满足晚期到达要求的4.79ns要小。一类时序边界,启动弛豫时间,可以定义为
启动弛豫=时钟周期+捕获路径到达–启动时间–发出路径晚期到达.在这个示例中,有时序边界或启动弛豫为
4.79–0.72=4.07ns.
在这个示例中满足,如果启动弛豫>0,则没有时序冲突。
在片上变异(OCV)时序分析可以理解一些在制造期间可以影响时序的统计系数。传统上,OCV可以用两个称为“减免”值的数字来建模。一个减免值比1大并且另一个减免值比1小。大于1的减免值被称为“晚期路径减免”并且小于1的减免值被称为“早期路径减免”。为了处理最坏的时序情况,在任何可用情况中,在晚期路径上的延迟值可以乘以“晚期路径减免”值>1,而在早期路径上的延迟值可以乘以“早期路径减免”值<1。
需要理解,启动、保持和时钟周期次数,其为与统计电路变异无关的约束,与***时序分析方式相比,在OCV分析中没有乘以减免值。换言之,相比于诸如门Z/L的***速度变异影响包括时钟周期的所有元件,当可能在路径中有许多这样随机变化速度特性的元件时,OCV会减免电路元件。
使用前述的示例,向前述计算的发出路径延时应用诸如1.2的OCV“晚期路径减免”值提供了:
0*1.2+0.50*1.2+0.11*1.2+0.11*1.2=0.864ns.
使用前述示例,向前述计算的捕获路径延时应用诸如0.8的OCV“早期路径减免”值提供了:
4+1.0*0.8-0.21=4.59ns
OCV的启动弛豫现在给出为
4.59–0.864=3.726ns,
其仍然满足晚期到达和弛豫要求。而,启动弛豫从先前的没有OCV的4.07ns减少为具有OCV的3.72ns。换言之,OCV时序减少了悲观。
当将延迟仅乘以“晚期路径减免”和“早期路径减免”值的OCV方式可能令人满意地工作于130-nm和90-nm技术设计,OCV可以向小型几何设计增加过量和悲观边界,并且可能导致过度设计,例如,过量弛豫、设计边界、或悲观,减少设计性能,以及更长时间来设计周期完工。
用在深亚微米技术的设计中的先进片上变异(AOCV)分析或验证,提供了比OCV更好和更精确的方案,其自然地将OCV分析扩展为将叠加与变异相关的边界的改进方法传送在设计中。AOCV使用智能技术用于特定于上下文的减免,其减免值作为每个被分析的路径的逻辑深度的函数,而不是单一一对全局减免值,由此减少过量设计边界并导致较少的时序冲突。一个路径的逻辑深度与在该路径中的电路元件或布局单元的数目相关联。AOCV表示比OCV边界更加现实和实际方法,并且可以缓和过量边界或悲观所导致的过度设计的忧虑、降低的设计性能、以及更长的时序封闭循环,要求有更多的设计变化清除来自OCV时序分析的更多时序错误。
粗略地说,AOCV可以假设随机统计变异是与要分析的路径的逻辑深度成反比例的。AOCV是基于统计分析的,其示出了更深的路径较少被随机变异所影响——因为贡献影响是随机的,在深路径中的所有单元同时变快或者变慢几乎是不可能的。换言之,路径具有的单元的数目越多,路径越不易感于由OCV影响所导致的时序变异。因此,AOCV通过计数路径中要分析的单元的数目来计算路径深度,并且从可以由仿真器接收的预定特征的AOCV减免列表中选择合适的减免值。
下表2描述了AOCV减免或缩放列表的示例,鉴于发出及捕获路径是根据路径深度确定了,还指出了AOCV的路径深度。例如,如果路径包括一个或多个缓冲器,缩放列表2包括多个减免值或者缩放系数,每个与不同的多个逻辑或与在1.2和1.08之间的不同的多个缩放值相关联的从1到15单元的单元深度相关联。逻辑深度越高,变化的减免或缩放值越低。
表2
逻辑深度(元件数量) 1 2 3 4 5 15
可变的减免值 1.2 1.16 1.14 1.13 1.12 1.08
由于AOCV时序仿真可以在每个路径的缩放列表中的多个逻辑深度中进行索引,AOCV可以要求比OCV技术更多的计算机资源。因此,当网络列表和设计的单元布局更加完整时,AOCV可以用于CTS之后,而OCV可以在某些情况中用于CTS之前。上述设计示例在CTS执行后将继续。
图6描述了本发明的实施例所使用的、在图3中描述的CTS 230之后的简明示例性示意图600。除以下不同外,图6包括与图3相同的元件和功能。图6中描述的示意图600可以进一步包括附加的串行连接的时钟树缓冲器641-645,耦连在Clk 320和MUX输入340之间,串行连接的时钟树缓冲器651-655,耦连在Clk 320和FF1/CLK 350之间,以及串行连接的时钟树缓冲器661-665,耦连在Clk 320和时钟汇点360之间。示意图600可以进一步包括附加的串行连接的时钟树缓冲器671-676,耦连在MUX输出330和FF2/CLK 370之间,串行连接的时钟树缓冲器681-686,耦连在MUX输出330和时钟汇点380之间,以及串行连接的时钟树缓冲器691-696,耦连在AND门的输出310和时钟汇点390之间。
回到先前的AOCV时序示例并且同时参考图2、图6和表2,示例性时钟树缓冲器641-645,651-655,661-665,671-676,681-686,691-696可以在图2中提及的CTS 230期间添加到网络列表和布局设计。正如图6中先前描述的那样,逻辑深度为从置于Clk 320处的公共路径悲观减少(CRPR)的公共点分离的逻辑等级,下文也称为公共路径。AOCV假设在公共路径中的时序变化为零,因为在经过CRPR公共点的公共路径中的发出和捕获信号是相同的信号。因此,在默认情况下,AOCV不包括在公共路径中的网络或单元对象用于AOCV深度计算。
基于示意图600在CTS后的逻辑连接,分立的逻辑深度值可以用于发出路径和捕获路径计算。因此,对于图6中描述的示例,从Clk 320到FF2/D314的发出路径深度为8,即,5个时钟树缓冲器651-655叠加1个FF1,叠加一对缓冲器反相器304、306而没有计数FF2。从Clk 320到FF2/CLK 370的捕获路径深度为12,即,5个时钟树缓冲器641-645叠加1个MUX 308,叠加6个时钟树缓冲器671-676而没有计数FF2。以上描述为8的发出路径深度值和为12的捕获路径深度值被用于减免列表的索引来选择合适的减免值。
在这个示例中,因为为8的发出路径逻辑深度没有在表2中列出,其要求逻辑深度等于或大于15用于选择为1.08的下一低缩放值,等于8的发出路径逻辑深度的索引使用了发出路径减免值,以便为5的逻辑深度选择可变的为1.12的减免值。类似地,由于上述相同的对于发出路径可变减免值的原因,等于12的捕获路径逻辑深度的索引使用了可变的减免值,以便为5的逻辑深度选择可变的为1.12的减免值。
随后在这个示例中,为1.12的AOCV可变减免值被用于单元时序延迟,作为对于发出路径延迟的乘法系数
0*1.12+0.50*1.12+0.11*1.12+0.11*1.12=0.8064ns,
并且对于捕获路径延迟
4+1.0*0.8-0.21=4.59ns.
针对后期CTS电路600的启动弛豫被给出为
4.59–0.8064=3.7836ns.
其仍然满足晚期到达和弛豫要求。相比于上述示例,对于其他电路示例,具有两个不同的可变减免值,分别用于发出路径和捕获路径。
图7描述了根据本发明的实施例之一的、在图1中描述的物理实现步骤122中的简明示例性步骤。除以下例外,图7与图2包括类似的元件和功能。相比于图2,图7描绘了在单元布置之后,优化可以包括估算720置于每个时钟树路径中的多个虚拟缓冲器的数目,随后对每个时钟树路径使用该估算的数目以便进行先于CTS 230的AOCV1验证。相比于在置于布局数据库且在晚期设计步骤中继续的CTS期间产生的缓冲器,就虚拟缓冲器仅用于AOCV1验证目的的意义而言,多个虚拟缓冲器为虚拟的,并且不是永久置于网络列表或设计布局数据库中。运行先于CTS的AOCV1验证更简易地优化了设计并且减少了上述的过量悲观,并且在CTS之后提供了比图2中描述的技术更好的设计优化结果。
在参考图7的一个实施例中,相比于在步骤720中的估算的缓冲器的数目,CTS 230产生了置于每个时钟树路径中的新的不同数目的多个缓冲器。在CTS 230中产生的新的不同数目的多个缓冲器可以定义为比在步骤720中的估算的虚拟缓冲器的数目更大,以便在步骤720处提供比在步骤740处在CTS 230之后的时序检测更悲观的时序检测。时钟树优化和AOCV740跟随CTS 230,其可以在布置CTS缓冲器之后进行第二AOCV或者AOCV2。在步骤720中估算的虚拟缓冲器可以不再在AOCV2中或在步骤720的后续步骤中使用。
在CTS 230中产生的新的不同数目的多个缓冲器可以定义为比在步骤720中的估算的虚拟缓冲器的数目更大,以便在步骤720处为AOCV1验证提供比步骤740处在CTS 230之后的AOCV2验证更悲观的时序。当布局资源更容易获得且由此在后续AOCV2验证中出现较少的时序冲突时,相比AOCV2的AOCV1的更多悲观时序保证了在设计流程中如果需要纠正时序冲突可以更早地改变设计。邮路优化可以包括在步骤750处的第三轮AOCV验证,称为AOCV3,以理解新的布线和结果时序变化的影响。
在一个实施例中,物理实现122的设计流程可以简单包括布置和优化及估算720在每个时钟树路径及AOCV1验证中的缓冲器的数目,而没有CTS 230的后续步骤,时钟树优化740,布线和邮路优化750,以及芯片完工260和制造的设计。当例如知识产权(IP)单元的IC部分在并入片上***(SOC)设计之前被设计和验证时序,可以使用这样的物理实现122的短设计流程。
图8描述了根据本发明的一个实施例的、图7中所描述的布置与优化及估算在每个时钟路径中的虚拟缓冲器的数目及AOCV1验证步骤720的简明示例性步骤。布置和优化220发挥与图2所释的相同功能。在布置和优化220之后但在估算时钟树中的虚拟缓冲器的数目之前,图8描述了可能根据技术设计规则接收时钟树中的网络列表、扇出约束和以及电容约束。
网络列表可以例如包括图3描述的时钟树和数据路径300的示意图。同时参考图3、图8,仿真器可以使用网络列表来寻找时钟汇点群组并计算每个时钟汇点群组的时钟汇点数目M。汇点群组可以定义为直接接收由相同时钟网络驱动的时钟信号的多个电路块,其可以反过来由时钟缓冲器电路对比试块(未示出)产生,其在Clk 320处产生时钟信号。汇点群组名称可以与网络名称相同。在这个示例中,具有3个汇点群组,CKA、MXA和MXB。汇点群组CKA在时钟汇点360处包括MCKA=1k的汇点,汇点群组MXA在时钟汇点380处包括MMXA=5k的汇点,并且汇点群组MXB在时钟汇点390处包括MMXB=6k的汇点。网络列表进一步包括使用的缓冲器电路对比试块和多个虚拟缓冲器中的一个的电子和设计布局特性,如下所述。
根据网络列表、扇出约束和电容约束,仿真器计算830时钟缓冲器电路对比试块的最大允许扇出N。时钟缓冲器电路对比试块的输出负载可以利用电线负载模型来计算。根据M的对数,仿真器确定840多个虚拟缓冲器的估算的逻辑深度数目D,该对数底数等于N,表达为:
D=logN(M),
其中N,M和D为具有整数值的数目,每个均大于或等于1。因此,在一个实施例中,评估了上述表达以便找到D的满足公式的最低整数值:
M≤ND.
图9描述了根据本发明的一个实施例的、图8中所描述的确定估算逻辑深度840之后、图3中描述的简明示例性示意图900。同时参考示例中的图8和图9,假设最大允许扇出N等于8。由此,对于具有等于1k或者1024个汇点的MCKA汇点群组CKA,DCKA的评估使用
1024≤8D.
估算83=512,其小于1024,因此DCKA应当大于3,而84=4096,其大于1024,因此DCKA等于4满足DCKA的要求的公式。由此,要添加到在汇点群组CKA中的每个路径的估算虚拟缓冲器的数目可以是4个缓冲器。类似地,仿真器对具有等于5k或5120个汇点的MMXA的汇点群组MXA和具有等于6k或6144个汇点的MMXB的汇点群组MXB进行估算,因为84=4096,小于5120或6144,所以DMXA和DMXB必须大于4,而85=32768,大于5120或6144,所以DMXA和DMXB等于5满足对DMXA和DMXB的公式。因此,要添加到在汇点群组MXA和MXB中的每个路径的估算虚拟缓冲器的数目可以是5个缓冲器。
除以下不同之外,图9包括与图3相同的元件和功能。根据上述提供等于4的DCKA的对数公式,图9中描述的示意图900可以进一步包括在汇点群组CKA中的置于三个时钟树路径中的每个路径中的四个串行连接的虚拟缓冲器,941-944,951-954,,961-964,分别耦连到Clk 320和MUX输入340之间、Clk 320和FF1/CLK 350之间、和Clk 320和时钟汇点360之间的三个路径中的每个路径。
根据上述提供等于5的DMXA的对数公式,图9中描述的示意图900可以进一步包括在汇点群组MXA中的置于两个时钟树路径中的每个路径中的五个串行连接的虚拟缓冲器,971-975,981-985,分别耦连到MUX输出330和FF2/CLK 370之间、MUX输出330和时钟汇点380之间的两个路径中。根据上述提供等于5的DMXB的对数公式,示意图900可以进一步包括在汇点群组MXB中的置于单个时钟树路径中的五个串行连接的虚拟缓冲器,991-995,耦连在AND门310的输出和时钟汇点390之间。
相比于在CTS期间产生的时钟树缓冲器,虚拟缓冲器被描述为覆盖不间断的时钟树路径而不破坏时钟树路径的虚线,用以表示虚拟缓冲器没有添加到网络列表或者设计布局。进一步的,在一个实施例中,每个虚拟缓冲器941-944,951-954,961-964,971-975,981-985,991-995可以选择具有与从网络列表选择的单个类型的缓冲器相同的电子和设计布局特性。例如,每个虚拟缓冲器可以是一种表示具有多数与网络列表相关的所有单元库中的可用不同缓冲器驱动的平均值本质上相等的电子驱动能力的缓冲器的类型。在一个实施例中,虚拟缓冲器可以与本质上相等的延迟时间相关联。
相比之下,在CTS期间产生的缓冲器,诸如图6中描述的641-645,651-655,661-665,671-676,681-686,691-696,可能会从多个不同的具有不同从单元库中选出的电子和设计布局特性的缓冲器类型中选择出来,以比使用单一缓冲器类型的时钟树驱动方案更好地优化非虚拟时钟树驱动方案。例如,在CTS期间产生的缓冲器可以包括一个具有第一延迟时间的缓冲器和另一个具有与第一延迟时间不同的第二延迟时间的缓冲器。
同时参考图8、图9和表2,在确定840估算每个时钟路径的逻辑深度,仿真器根据上述确定的D值叠加每个时钟路径的接收的网络列表中的现有单元数目来选择850每个时钟路径的缩放系数。继续具有虚拟缓冲器的时钟树的先前示例,发出路径延迟可以表示为:
Clk 320→U 951→U 952→U 953→U 954→FF1/CLK 350→FF1/Q 312→U 304→U 306→FF2/D 314,
假设在这个示例中,每个虚拟缓冲器延迟等于0.1ns,并且另一个电路块延迟可以再一次由表1提供并且分别为
0.1+0.1+0.1+0.1+0.5+0.11+0.11.
仿真器接收缩放列表,诸如例如,表2,包括多个缩放系数或可变减免值,每个与不同的多个逻辑深度中的一个相关联。在发出路径中的估算虚拟缓冲器的数目为DCKA,其等于4叠加在为3的发出路径中的已有单元的数目,例如FF1,以及一对缓冲器304,306,使总逻辑深度成为
4+3=7
下一步,仿真器可以在多个不同的逻辑深度中使用为7的逻辑深度进行索引,以选择缩放系数或可变的1.12的减免因数,其余为7的逻辑深度相关联。在这个实施例中,仿真器选择1.12的值,与在5和14之间的逻辑深度的值相关联,因为表2没有明确列出从6到14的显著逻辑深度,因此仿真器索引下一个列出的逻辑深度小于7,其与1.12的缩放系数明确相关联为5。
仿真器于是根据所选择的缩放系数来缩放860时序延时,例如1.12,对于在AOCV1期间每个时钟路径接收的网络列表中的每个估算的缓冲器和每个已有的单元,诸如本实例所给出的那样。发出路径延迟可以给出为
0.1*1.12+0.1*1.12+0.1*1.12+0.1*1.12+0.5*1.12+0.11*1.12+0.11*1.12=1.2544ns.
捕获路径延迟可以表示为
Clk 320→U 941→U 942→U 943→U 944→MUX 308→U 971→U 972→U 973→U 974→U 975→FF2/CLK 370→FF2/D 314,
需要注意的是时钟周期和启动时间没有通过缩放系数进行缩放,因为时钟周期和启动时间在AOCV分析中不是在统计上受影响的。于是由1.12缩放的延迟时间以及假设表1中示出的相同的4ns时钟周期和FF2启动时间给出了晚期到达时间公式为
4+0.1*1.12+0.1*1.12+0.1*1.12+0.1*1.12+1.0*1.12+0.1*1.12+0.1*1.12+0.1*1.12+0.1*1.12+0.1*1.12-0.21=5.918ns.
AOCV1的预CTS启动弛豫则给出为
5.918-1.2544=4.6636ns,
其大于零且由此满足晚期到达和弛豫要求。需要注意的是正如以上图6得到的那样,来自AOCV1=4.6636ns的启动弛豫时间、边界或悲观大于来自CTS之后的AOCV2=4.1036ns的启动悲观。在AOCV1期间悲观更高,帮助确保更容易在CTS之前完成时序冲突必要的设计变化,并减少CTS之后的时序冲突,帮助确保更快的设计闭合。
图10描述了根据本发明的一个实施例的、图8中所描绘的计算扇出830步骤中的简明示例性步骤。仿真器从为在Clk 320处产生等于所接收的最大扇出约束的时钟信号的时钟缓冲器电路对比试块(未示出)设置最大允许扇出N而开始1010。下一步,时钟缓冲器电路对比试块的负载电容被设置1030为等于N叠加引脚电容的函数。如果1040负载电容少于所接收的最大电容约束,则输出1060N来结束1070对N的计算。如果1040负载电容不少于所接收的最大电容约束,则N被衰减10501,即
N=N-1,
并且负载电容根据N的新值进行了重新计算,作为N叠加引脚电容的函数,重复步骤1030-1050直至负载电容小于所接收的最大电容约束。
图11描述了并入本发明的实施例的计算机***的框图。图11仅描述了并入本如本发明的实施例,并且在引用的权利要求中没有限制发明的范围。本领域的普通技术人员将意识到其他变化、修改和替代。
在一个实施例中,计算机***1100典型地包括监控器1110,计算机1120,用户输出设备1130,用户输入设备1140,通信接口1150及其类似。
如图11中所示,计算机1120可以包括一个或多个处理器1160,其与数个***设备经由总线子***1190进行通信。这些***设备可以包括用户输入设备1130,用户输入设备1140,通信接口1150以及存储子***,诸如随机存取存储器(RAM)1170和磁盘驱动1180。
用户输入设备1130包括用于向计算机***1120输入信息的设备和机制的所有可能类型。它们可以包括键盘、按键、并入显示屏的触摸屏、诸如声音辨识***的音频输入设备、麦克风、和其他类型的输入设备。在各个实施例中,用户输入设备1130典型地呈现为计算机鼠标、轨迹球、轨迹板、操纵杆、无线遥控、绘图板、声音命令***、眼动仪、及其类似。用户输入设备1130典型地允许用户经由诸如按钮点击的命令或其类似来选择出现在监控器1110上的对象、图标、文本及其类似。
用户输出设备110包括用于输出来自计算机1120的信息的设备和机制的所有可能的类型。它们可以包括显示屏(例如,监控器1110),诸如视频输出装置等的非虚拟显示屏。
通信接口1150向其他通信网络或设备提供了接口。通信接口1150可以作为用于从其他***接收数据或向其他***传播数据的接口。通信接口1150的实施例典型地包括以太网卡,调制解调器(电话,卫星,线缆,ISDN),(异步)数字用户专线(DSL)单元,火线接口,USB接口,及其类似。例如,通信接口1150可以耦连到计算机网络,到火线总线及其类似。在其他实施例中,通信接口1150可以物理地集成到计算机1120的母版上,并且可以是软件程序,诸如软DSL及其类似。
在各个实施例中,计算机***1100也可以包括使得诸如HTTP、TCP/IP、RTP/RTSP协议及其类似网络上的通信可用的软件。在本发明的替代实施例中,也可以使用其他通信软件和传输协议,例如IPX、UDP及其类似。
在一些实施例中,计算机1120包括一个或多个来自Intel的Xeon微处理器作为一个或多个处理器1160。进一步的,一个实施例,计算机1120包括基于UNIX的操作***。
RAM 1170和磁盘驱动1180为配置为存储诸如本发明的实施例的数据的有形介质的示例,包括可执行的计算机代码、人工可读代码及其类似。其他类型的有形介质包括软盘、可移动硬盘、诸如CD-ROMS、DVD和条形码的光学存储介质、诸如闪存的半导体存储器、非暂时性只读存储器(ROMS),电池支持的易失存储器,网络存储设备及其类似。RAM 1170和磁盘驱动1180可以配置为存储基本程序和数据结构,其提供了本发明的功能。
提供本发明的功能的软件代码模型和指令可以存储在RAM 1170和磁盘驱动1180中。这些软件模块可以由一个或多个处理器1160、RAM 1170执行,并且磁盘驱动1180也可以根据本发明提供所用的存储数据的库。
RAM 1170和磁盘驱动1180可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM),和其中存储了固定非暂时性指令的只读存储器(ROM)。RAM 1170和磁盘驱动1180可以包括文件存储子***,为程序和数据文件提供长期(非易失性)存储。RAM1170和磁盘存储1180也可以包括可移动存储***,诸如可移动闪存。
总线子***1190提供用于使得计算机1120的各个部件和子***按预期相互进行通信的机制,虽然总线子***1190示意地示出了单一总线,总线子***的替代性实施例可以使用多条总线。
图11示出了能够实施本发明的计算机***。对于本领域的普通技术人员显而易见的是,许多其他硬件和软件配置适用于本发明。例如,计算机可以是台式、便携式、机架式或平板配置。附加的,计算机可以是一系列的网络计算机。进一步的,考虑使用其他微处理器,诸如PentiumTM或ItaniumTM微处理器;来自Advanced Micro Devices有限公司的OpteronTM或AthlonXPTM微处理器及其类似。进一步的,考虑其他类型的操作***,诸如或其来自Microsoft集团的类似,来自Sun Microsystems公司的Solaris,LINUX,UNIX,及其类似。在另一个实施例中,上述技术可以实现在芯片或辅助处理板上。
本发明的各个实施例可以以软件或硬件或两者结合中的逻辑形式来实现。逻辑可以存储在计算机可读或机器可读的非暂时性存储介质中,作为一系列指令,适用于指引计算机***的处理器来进行本发明公开的实施例中的一系列步骤。逻辑可以形成部分计算机程序产品,适用于指引信息处理设备来进行本发明公开的实施例的一系列步骤。基于本公开和本文提供的教导,本领域的普通技术人员将理解用于实现本发明的其他方法和/或方法。
本文描述的数据结构和代码可以部分地或完全地存储在计算机可读存储介质和/或硬件模块和/或硬件装置上。计算机可读存储介质包括但不限于,易失性存储器、非易失性存储器、诸如磁盘驱动的磁和光存储设备、磁带、CD(光碟)、DVD(数字化通用光盘或数字化视频光盘)或其他已知或后期开发的介质,其能够存储代码和/或数据。本文描述的硬件模块或装置包括但不限于,特定用途集成电路(ASICs)、现场可编程门阵列(FPGAs)、专用或共享处理器,和/或其他已知或后期开发的硬件模块或装置。
本文描述的方法和进程可以部分地或完全地实施为存储在计算机可读存储介质或设备中的代码和/或数据,因此当计算机***读取并执行代码和/或数据时,计算机***进行相关联方法和进程。方法和进程也可以部分地或完全地实施在硬件模块或装置中,因此当硬件模块或装置有效时,它们进行相关联的方法和进程。本文公开的方法和进程可能用代码、数据和硬件模块或装置的组合来实施。
本发明的上述实施例为示例性的而非限制性的。可以进行各种替代和等同。虽然本发明参考使用AOCV时序验证的特定设计流程作为示例进行描述,应当理解本发明不受时序分析类型的限制,而也可以应用于其他得益于在验证期间估算信号路径的逻辑深度的时序分析的形式。虽然本发明参考使用CTS的特定设计流程作为示例进行描述,应当理解本发明不受时钟树电路类型的限制,而也可以应用于其他得益于在验证期间估算信号路径的逻辑深度的设计流程。虽然本发明参考示例性时钟树电路作为示例进行描述,应当理解本发明不受所使用的设计流程类型的限制,而设计流程可以得益于对将在树电路设计中例示的缓冲器网络的估算。此外,本发明的技术和***适用于多种设计、测试、和/或由守恒的信号流、等式的数字***或事件来表征的制造***的电子设计自动化(EDA)工具和方法论。本发明的范围因此不应当根据以上说明书确定,而应当根据所附权利要求的全部范围及其等同权利要求而确定。

Claims (39)

1.一种计算机实现方法,用于验证时钟树,所述方法包括:
估算置于时钟树路径内的第一数目的多个第一缓冲器;
根据所述第一数目选择第一缩放系数;
根据所选择的第一缩放系数来缩放与所述多个第一缓冲器相关联的第一延迟;以及
生成由比所述第一数目更多的第二数目定义的置于所述时钟树路径内的第二多个第二缓冲器。
2.根据权利要求1所述的方法,其中产生所述第二多个第二缓冲器在缩放所述第一延迟之后进行。
3.根据权利要求1所述的方法,其中所述多个第一缓冲器耦连到在所述时钟树中生成时钟信号的第一区块和接收所述时钟信号的第三数目的多个第二区块之间。
4.根据权利要求3所述的方法,其中根据所述第三数目的对数函数来估算所述第一数目。
5.根据权利要求3所述的方法,其中估算所述第一数目包括:
在估算所述第一数目之前,接收所述时钟树的网络列表,扇出约束,以及电容约束;
根据所述网络列表、所述扇出约束和所述电容约束来计算第一扇出;以及
根据所述第三数目的对数来确定所述第一数目,所述对数是等于所述第一扇出的底数。
6.根据权利要求3所述的方法,其中所述多个第一缓冲器中的每一个与本质上相等的延迟时间相关联。
7.根据权利要求1所述的方法,其中所述多个第二缓冲器包括:
具有第一延迟时间的第三缓冲器;以及
具有与所述第一延迟时间不同的第二延迟时间的第四缓冲器。
8.根据权利要求1所述的方法,进一步包括:
根据所述第二数目在缩放所述第一延迟之后选择小于所述第一缩放系数的第二缩放系数;以及
根据所选择的第二缩放系数缩放与所述多个第二缓冲器相关联的第二延迟。
9.根据权利要求1所述的方法,其中选择所述第一缩放系数包括:
接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括所述第一数目的多个逻辑深度中的一个相关联;以及
在所述多个逻辑深度中使用所述第一数目进行索引,以选择与所述第一数目相关联的所述第一缩放系数。
10.一种计算机实现方法,用于验证时钟树,所述方法包括:
估算置于时钟树路径中的第一数目的多个第一缓冲器,其中所述多个第一缓冲器耦连到在所述时钟树中生成时钟信号的第一区块和接收所述时钟信号的第二数目的多个第二区块之间,其中根据所述第二数目的对数函数来估算所述第一数目;
根据所述第一数目选择第一缩放系数;以及
根据所选择的第一缩放系数来缩放与所述多个第一缓冲器相关联的第一延迟。
11.根据权利要求10所述的方法,其中估算所述第一数目进一步包括:
在估算所述第一数目之前接收所述时钟树的网络列表、扇出约束,以及电容约束;
根据所述网络列表、所述扇出约束和所述电容约束来计算第一扇出;以及
根据所述第三数目的所述对数来确定所述第一数目,所述对数是等于所述第一扇出的底数。
12.根据权利要求10所述的方法,其中所述多个第一缓冲器中的每一个与本质上相等的延迟时间相关联。
13.根据权利要求10所述的方法,其中选择所述第一缩放系数进一步包括:
接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括第一数目的多个逻辑深度中的一个相关联;以及
在多个逻辑深度中使用所述第一数目进行索引,以选择与所述第一数目相关联的所述第一缩放系数。
14.一种用于验证时钟树的***,配置为:
估算置于时钟树路径内的第一数目的多个第一缓冲器;
根据所述第一数目选择第一缩放系数;
根据所选择的第一缩放系数来缩放与所述多个第一缓冲器相关联的第一延迟;以及
生成由比所述第一数目更多的第二数目定义的置于所述时钟树路径内的第二多个第二缓冲器。
15.根据权利要求14所述的***,进一步配置为在缩放所述第一延迟之后生成所述第二多个第二缓冲器。
16.根据权利要求14所述的***,其中所述多个第一缓冲器耦连到在所述时钟树中生成时钟信号的第一区块和接收所述时钟信号的第三数目的多个第二区块之间。
17.根据权利要求16所述的***,其中根据所述第三数目的对数函数来估算所述第一数目。
18.根据权利要求16所述的***,进一步配置为:
在估算所述第一数目之前,接收所述时钟树的网络列表,扇出约束,以及电容约束;
根据所述网络列表、所述扇出约束和所述电容约束来计算第一扇出;以及
根据所述第三数目的对数来确定所述第一数目,所述对数是等于所述第一扇出的底数。
19.根据权利要求14所述的***,其中所述多个第一缓冲器中的每一个与本质上相等的延迟时间相关联。
20.根据权利要求14所述的***,其中所述多个第二缓冲器包括:
具有第一延迟时间的第三缓冲器;以及
具有与所述第一延迟时间不同的第二延迟时间的第四缓冲器。
21.根据权利要求14所述的***,进一步配置为:
根据所述第二数目在缩放第一延迟之后选择小于所述第一缩放系数的第二缩放系数;以及
根据所选择的第二缩放系数缩放与所述多个第二缓冲器相关联的第二延迟。
22.根据权利要求14所述的***,进一步配置为:
接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括所述第一数目的多个逻辑深度中的一个相关联;以及
在所述多个逻辑深度中使用所述第一数目进行索引,以选择与所述第一数目相关联的所述第一缩放系数。
23.一种用于验证时钟树的***,配置为:
估算置于时钟树路径内的第一数目的多个第一缓冲器,其中所述多个第一缓冲器耦连到在所述时钟树中生成所述时钟信号的第一区块和接收所述时钟信号的第二数目的多个第二区块之间,其中根据所述第二数目的对数函数来估算所述第一数目;
根据所述第一数目选择第一缩放系数;以及
根据所选择的第一缩放系数来缩放与所述多个第一缓冲器相关联的第一延迟。
24.根据权利要求23所述的***,进一步配置为:
在估算所述第一数目之前接收所述时钟树的网络列表,扇出约束,以及电容约束;
根据所述网络列表、所述扇出约束和所述电容约束来计算第一扇出;以及
根据第三数目的所述对数来确定所述第一数目,所述对数是等于所述第一扇出的底数。
25.根据权利要求23所述的***,其中所述多个第一缓冲器中的每一个与本质上相等的延迟时间相关联。
26.根据权利要求23所述的***,进一步配置为:
接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括所述第一数目的多个逻辑深度中的一个相关联;以及
在所述多个逻辑深度中使用所述第一数目进行索引,以选择与所述第一数目相关联的所述第一缩放系数。
27.一种非暂时性计算机可读存储介质,包括在由计算机执行时的指令,使得所述计算机:
估算置于时钟树路径内的第一数目的多个第一缓存器;
根据所述第一数目选择第一缩放系数;
根据所选择的第一缩放系数来缩放与所述多个第一缓冲器相关联的第一延迟;以及
生成由比所述第一数目更多的第二数目定义的置于所述时钟树路径内的所述第二多个第二缓冲器。
28.根据权利要求27所述的非易失性计算机可读存储介质,所述指令进一步使得所述计算机在缩放所述第一延迟之后产生所述第二多个第二缓冲器。
29.根据权利要求27所述的非易失性计算机可读存储介质,其中所述多个第一缓冲器耦连到在所述时钟树中生成时钟信号的第一区块和接收所述时钟信号的第三数目的多个第二区块之间。
30.根据权利要求29所述的非易失性计算机可读存储介质,所述指令进一步使得所述计算机根据所述第三数目的对数函数来估算所述第一数目。
31.根据权利要求29所述的非易失性计算机可读存储介质,所述指令进一步使得所述计算机:
在估算所述第一数目之前,接收所述时钟树的网络列表,扇出约束,以及电容约束;
根据所述网络列表、所述扇出约束和所述电容约束来计算第一扇出;以及
根据所述第三数目的所述对数来确定所述第一数目,所述对数是等于所述第一扇出的底数。
32.根据权利要求27所述的非易失性计算机可读存储介质,其中所述多个第一缓冲器中的每一个与本质上相等的延迟时间相关联。
33.根据权利要求27所述的非易失性计算机可读存储介质,其中所述多个第二缓冲器包括:
具有第一延迟时间的第三缓冲器;以及
具有与所述第一延迟时间不同的第二延迟时间的第四缓冲器。
34.根据权利要求27所述的非易失性计算机可读存储介质,其中所述指令进一步使得所述计算机:
根据所述第二数目在缩放第一延迟之后选择小于所述第一缩放系数的第二缩放系数;以及
根据所选择的第二缩放系数缩放与所述多个第二缓冲器相关联的第二延迟。
35.根据权利要求27所述的非易失性计算机可读存储介质,所述指令进一步使得所述计算机:
接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括所述第一数目的多个逻辑深度中的一个相关联;以及
在所述多个逻辑深度中使用所述第一数目进行索引,以选择与所述第一数目相关联的所述第一缩放系数。
36.一种非暂时性计算机可读存储介质包括指令,在由计算机执行时使得所述计算机:
估算置于时钟树路径内的第一数目的多个第一缓存器,其中所述多个第一缓存器耦连到在所述时钟树中生成所述时钟信号的第一区块和接收所述时钟信号的第二数目的多个第二区块之间,其中根据所述第二数目的对数函数估算所述第一数目;
根据所述第一数目选择第一缩放系数;以及
根据所选择的第一缩放系数来缩放与所述多个第一缓冲器相关联的第一延迟。
37.根据权利要求36所述的非暂时性计算机可读存储介质,所述指令进一步使得所述计算机:
在估算所述第一数目之前,接收所述时钟树的网络列表、扇出约束,以及电容约束;
根据所述网络列表、所述扇出约束和所述电容约束来计算第一扇出;以及
根据第三数目的所述对数来确定所述第一数目,所述对数是等于所述第一扇出的底数。
38.根据权利要求36所述的非暂时性计算机可读存储介质,其中所述多个第一缓冲器中的每一个与本质上相等的延迟时间相关联。
39.根据权利要求36所述的非暂时性计算机可读存储介质,所述指令进一步使得所述计算机:
接收缩放列表,所述缩放列表包括多个缩放系数,每个缩放系数与不同的包括所述第一数目的多个逻辑深度中的一个相关;以及
在所述多个逻辑深度中使用所述第一数目进行索引,以选择与所述第一数目相关联的所述第一缩放系数。
CN201510373202.5A 2015-06-30 2015-06-30 验证时钟树延迟 Active CN106326510B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510373202.5A CN106326510B (zh) 2015-06-30 2015-06-30 验证时钟树延迟
US15/145,741 US10387606B2 (en) 2015-06-30 2016-05-03 Validating a clock tree delay

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510373202.5A CN106326510B (zh) 2015-06-30 2015-06-30 验证时钟树延迟

Publications (2)

Publication Number Publication Date
CN106326510A true CN106326510A (zh) 2017-01-11
CN106326510B CN106326510B (zh) 2020-02-21

Family

ID=57684256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510373202.5A Active CN106326510B (zh) 2015-06-30 2015-06-30 验证时钟树延迟

Country Status (2)

Country Link
US (1) US10387606B2 (zh)
CN (1) CN106326510B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110383272A (zh) * 2016-09-20 2019-10-25 美商新思科技有限公司 时钟树分析和优化的形式化方法
CN111539176A (zh) * 2019-03-29 2020-08-14 成都海光集成电路设计有限公司 集成电路设计与制造的多实例时间预算
CN111881645A (zh) * 2020-07-03 2020-11-03 广芯微电子(广州)股份有限公司 一种基于噪声时序的时钟树抗干扰方法及装置
CN116306443A (zh) * 2023-03-02 2023-06-23 深圳华大九天科技有限公司 估算spice仿真时序数据ocv效应的方法
CN116521613A (zh) * 2023-07-04 2023-08-01 南京启见半导体科技有限公司 超低延迟的时钟域切换数据传输***

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7448012B1 (en) 2004-04-21 2008-11-04 Qi-De Qian Methods and system for improving integrated circuit layout
US10255396B2 (en) * 2016-04-07 2019-04-09 Mentor Graphics Corporation Graphical analysis of complex clock trees
CN107633129B (zh) * 2017-09-15 2020-04-07 北京华大九天软件有限公司 一种保持原有物理布线拓扑的大线网***方法
US10474779B1 (en) * 2017-09-22 2019-11-12 Juniper Networks, Inc. Bisection methodology for on-chip variation tolerant clock signal distribution in an integrated circuit
US10534878B1 (en) 2017-10-25 2020-01-14 Avatar Integrated Systems, Inc. Circuit place and route optimization based on path-based timing analysis
US10534883B1 (en) * 2017-10-25 2020-01-14 Avatar Integrated Systems, Inc. Local path-based analysis for circuit place and route optimization
KR102567922B1 (ko) * 2018-07-03 2023-08-18 에스케이하이닉스 주식회사 지연회로 및 이를 이용한 반도체시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1281254A (zh) * 2000-08-29 2001-01-24 中国科学院微电子中心 超大规模集成电路的制造方法
US20020105366A1 (en) * 2000-06-19 2002-08-08 Schultz Richard T. Process, voltage and temperature independent clock tree deskew circuitry -temporary driver method
CN1433028A (zh) * 2002-01-09 2003-07-30 三星电子株式会社 同步输入和输出数据的半导体器件、电路和方法
US20100296351A1 (en) * 2009-05-21 2010-11-25 Fujitsu Semiconductor Limited Timing adjustment circuit, timing adjustment method, and correction value computing method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020105366A1 (en) * 2000-06-19 2002-08-08 Schultz Richard T. Process, voltage and temperature independent clock tree deskew circuitry -temporary driver method
CN1281254A (zh) * 2000-08-29 2001-01-24 中国科学院微电子中心 超大规模集成电路的制造方法
CN1433028A (zh) * 2002-01-09 2003-07-30 三星电子株式会社 同步输入和输出数据的半导体器件、电路和方法
US20100296351A1 (en) * 2009-05-21 2010-11-25 Fujitsu Semiconductor Limited Timing adjustment circuit, timing adjustment method, and correction value computing method

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110383272A (zh) * 2016-09-20 2019-10-25 美商新思科技有限公司 时钟树分析和优化的形式化方法
CN110383272B (zh) * 2016-09-20 2023-09-15 美商新思科技有限公司 时钟树分析和优化的形式化方法
CN111539176A (zh) * 2019-03-29 2020-08-14 成都海光集成电路设计有限公司 集成电路设计与制造的多实例时间预算
CN111539176B (zh) * 2019-03-29 2023-04-07 成都海光集成电路设计有限公司 集成电路设计与制造的多实例时间预算
CN111881645A (zh) * 2020-07-03 2020-11-03 广芯微电子(广州)股份有限公司 一种基于噪声时序的时钟树抗干扰方法及装置
CN116306443A (zh) * 2023-03-02 2023-06-23 深圳华大九天科技有限公司 估算spice仿真时序数据ocv效应的方法
CN116306443B (zh) * 2023-03-02 2024-07-09 深圳华大九天科技有限公司 估算spice仿真时序数据ocv效应的方法
CN116521613A (zh) * 2023-07-04 2023-08-01 南京启见半导体科技有限公司 超低延迟的时钟域切换数据传输***
CN116521613B (zh) * 2023-07-04 2023-08-25 南京启见半导体科技有限公司 超低延迟的时钟域切换数据传输***

Also Published As

Publication number Publication date
CN106326510B (zh) 2020-02-21
US10387606B2 (en) 2019-08-20
US20170004249A1 (en) 2017-01-05

Similar Documents

Publication Publication Date Title
CN106326510A (zh) 验证时钟树延迟
US11960811B2 (en) Partitioning in post-layout circuit simulation
US7890915B2 (en) Statistical delay and noise calculation considering cell and interconnect variations
US7788613B2 (en) Border-enhanced sliding window scheme (SWS) for determining clock timing in a mesh-based clock architecture
Cong et al. Interconnect performance estimation models for design planning
Zheng et al. Fast and effective placement and routing directed high-level synthesis for FPGAs
US10846455B2 (en) Automatic definition and extraction of functional coverage metric for emulation-based verification
US10325046B2 (en) Formal method for clock tree analysis and optimization
US20160070844A1 (en) Selectively reducing graph based analysis pessimism
TWI575394B (zh) 透過考量不同電路拓撲之輸入波形產生來特徵化元件
US11763053B2 (en) Coherent observability and controllability of overlaid clock and data propagation in emulation and prototyping
CN110785761B (zh) 存在时钟动态重编程时仿真时间线的压缩方法
US10489536B2 (en) Method and apparatus for modeling delays in emulation
KR20210129071A (ko) 상관된 샘플 생성 및 효율적인 통계적 시뮬레이션을 사용하여 타이밍 수율 및 수율 병목을 컴퓨팅하기 위한 신규한 방법
US8495544B2 (en) Statistical delay and noise calculation considering cell and interconnect variations
US11327790B1 (en) Event-level parallel simulation using dynamic synchronization
US20200104443A1 (en) Hardware simulation systems and methods for reducing signal dumping time and size by fast dynamical partial aliasing of signals having similar waveform
US10599800B2 (en) Formal clock network analysis, visualization, verification and generation
US8739093B1 (en) Timing characteristic generation and analysis in integrated circuit design
US7272808B1 (en) On-chip variability impact simulation and analysis for circuit performance
CN101794328B (zh) 针对门输出负载的快速且准确的估计
US9311441B2 (en) Switch cell
Sinha et al. TAU 2013 variation aware timing analysis contest
US9892227B1 (en) Systems, methods and storage media for clock tree power estimation at register transfer level
Lim et al. A statistical approach to the estimation of delay-dependent switching activities in CMOS combinational circuits

Legal Events

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