CN117952045A - 用于静态时序分析的具有图案匹配的延迟计算 - Google Patents

用于静态时序分析的具有图案匹配的延迟计算 Download PDF

Info

Publication number
CN117952045A
CN117952045A CN202311410295.5A CN202311410295A CN117952045A CN 117952045 A CN117952045 A CN 117952045A CN 202311410295 A CN202311410295 A CN 202311410295A CN 117952045 A CN117952045 A CN 117952045A
Authority
CN
China
Prior art keywords
logic
delay
waveform
logic blocks
circuit
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.)
Pending
Application number
CN202311410295.5A
Other languages
English (en)
Inventor
P·泰拉尼
C·D·刘
A·谢贝塔
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 Inc
Original Assignee
Synopsys Inc
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 Inc filed Critical Synopsys Inc
Publication of CN117952045A publication Critical patent/CN117952045A/zh
Pending legal-status Critical Current

Links

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/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • 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/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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/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

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

用于静态时序分析的具有图案匹配的延迟计算
技术领域
本公开总体上涉及一种用于设计集成电路的电子设计自动化(EDA)***,并且更具体地,涉及一种用于提供集成电路的静态时序分析的***和方法。
背景技术
静态时序分析(STA)是一种通过检查信号路径中的所有可能的时序违规来验证电路设计的时序性能的技术。在STA期间,电路设计被划分为多条时序路径。然后针对每条路径计算信号传播延迟,以检查是否违反时序约束。例如,确定信号沿着路径的传播延迟,以检查放置在该路径中的触发器的建立时间和保持时间的可能违规。
将数量不断增加的晶体管和逻辑门集成在集成电路(IC)中,同时降低IC的功耗仍然是一个挑战。为了降低功耗,每个新一代集成电路的工作电压都被降低。然而,工作电压的降低给执行STA带来了困难。例如,诸如正向和反向米勒电容、电阻电容(RC)长尾以及串扰之类的模拟效应的数量会随着工作电压的降低而显著增加。类似地,与扇出到相对大量网络的电路网络相关联的时序的准确计算变得越来越复杂和耗时,从而显著增加了STA运行时间。
发明内容
根据本公开的一个实施例,一种针对电路设计执行静态时序分析的方法,部分地包括:标识电路设计的、与设计图案匹配的多个逻辑块;确定与第一逻辑块相关联的多个电属性的值,第一逻辑块表示多个逻辑块中的每个逻辑块;以及在静态时序分析期间,使用电属性的值来确定与多个逻辑块中的每个逻辑块相关联的延迟。在一个实施例中,多个电属性的值被存储在数据库中。
在一个实施例中,电属性可以是延迟、转换速率、波形和电容中的一者或多者。在一个实施例中,所存储的电容值是归一化电容值。在一个实施例中,该方法还部分地包括:基于小于阈值的时间常数来标识设计图案。在一个实施例中,逻辑块的数量大于阈值数量。
在一个实施例中,在静态时序分析期间施加到第一逻辑块的波形部分地包括失真。在这样的实施例中,该方法还部分地包括:基于失真来生成增强电路;以及进一步根据增强电路,确定第一逻辑块的延迟。在一个实施例中,该方法还部分地包括对所存储的电属性的值执行一个或多个插值,以确定与逻辑块中的每个逻辑块相关联的延迟。
根据本公开的一个实施例的一种***,部分地包括存储指令的存储器;以及与存储器耦合并执行指令的处理器。当指令被执行时,使处理器:标识电路设计的、与设计图案匹配的多个逻辑块;确定与第一逻辑块相关联的多个电属性的值,第一逻辑块表示多个逻辑块中的每个逻辑块;将多个电属性的值存储在数据库中;并且在静态时序分析期间,使用所存储的电属性的值来确定与多个逻辑块中的每个逻辑块相关联的延迟。
在一个实施例中,电属性包括延迟、转换速率、波形和电容中的一者或多者。在一个实施例中,所存储的电容值是归一化电容值。在一个实施例中,指令还使处理器基于小于阈值的时间常数来标识设计图案。在一个实施例中,逻辑块的数量大于阈值数量。
在一个实施例中,在静态时序分析期间施加到第一逻辑块的波形部分地包括失真。在这样的实施例中,指令还使处理器:基于失真来生成增强电路;并且进一步根据增强电路来确定第一逻辑块的延迟。
在一个实施例中,指令还使处理器对所存储的电属性的值执行一个或多个插值,以确定与逻辑块中的每个逻辑块相关联的延迟。
非暂时性计算机可读介质部分地包括存储的指令,指令在由处理器执行时使处理器:标识电路的、与设计图案匹配的多个逻辑块,每个逻辑块具有驱动至少第二逻辑门的实例化的至少第一逻辑门的实例化;确定与第一逻辑块相关联的k*l*m个延迟,第一逻辑块表示多个逻辑块中的每个逻辑块,其中k表示由在第一逻辑块中实例化的至少第一逻辑门所看到的负载的数量,l表示由在第一逻辑块中实例化的至少第二逻辑门所看到的归一化负载的数量,并且m表示与施加到第一逻辑块的波形相关联的转换速率的数量;将k*l*m个延迟值存储在数据库中;以及通过在所存储的延迟值之间进行插值并且根据由在逻辑块中实例化的至少第一逻辑门所看到的负载、由在逻辑块中实例化的至少第二逻辑门所看到的归一化负载、以及施加到逻辑块上的波形,来确定多个逻辑块中的每个逻辑块的延迟,其中k、l和m中的每一项均是大于或等于2的整数。
在一个实施例中,k是3。在这样的实施例中,k的第一计数与多个逻辑块中的至少第一逻辑门所看到的负载中的最小负载相关联,k的第二计数与多个逻辑块中的至少第一逻辑门所看到的负载的平均负载相关联,并且k的第三计数与多个逻辑块中的至少第一逻辑门所看到的负载中的最大负载相关联。
在一个实施例中,归一化负载值为0.0、0.5和1。在一个实施例中,与k个负载中的每个负载相关联的时间常数小于阈值。在一个实施例中,逻辑块的数量大于阈值。
在一个实施例中,在静态时序分析期间施加到第一逻辑块的波形部分地包括失真。在这样的实施例中,指令还使处理器:基于失真来生成增强电路;并且进一步根据增强电路来确定第一逻辑块的延迟。
附图说明
根据下面给出的详细描述以及根据本公开实施例的附图,将更全面地理解本公开。附图被用来提供对本公开的实施例的认识和理解,并且不将本公开的范围限制于这些具体实施例。此外,附图不一定按比例绘制。
图1是在整个电路设计中可以被重复多次的逻辑块的门级示意图。
图2图示了由图1中所示的缓冲器所看到的负载。
图3图示了根据本公开的一个实施例的表示电容性负载的归一化的图表。
图4图示了根据本公开的一个实施例的图案预表征网格的示例。
图5图示了静态时序分析器的各个模块。
图6A图示了用于执行静态时序分析的电路图的示例。
图6B图示了用于分析与图6A的电路图相关联的延迟的电路模型。
图7图示了逻辑单元的标称输入/输出波形和失真输入/输出波形。
图8图示了具有差分输入波形和差分输出波形的时序信号图,差分输入波形用于利用失真输入波形执行分析,差分输出波形是在利用失真输入波形执行分析之后获得的。
图9A图示了利用失真输入波形对单元进行建模的电路图。
图9B图示了利用理想输入波形对单元进行建模的电路图。
图9C图示了用于确定输入波形的失真对输出波形的影响的电路图。
图9D图示了用于确定针对具有两个通道连接块的单元,输入波形的失真对输出波形的影响的电路图。
图10是图示了用于确定接收失真输入波形的单元的输出波形的过程的流程图。
图11是根据本公开的一个实施例的用于执行静态时序分析的流程图。
图12图示了根据本公开的一些实施例的在集成电路的设计和制造期间使用的各种过程的流程图。
图13图示了本公开的实施例可以在其中操作的示例计算机***的图。
具体实施方式
本公开的各方面涉及用于静态时序分析的具有图案匹配的延迟计算。
半导体器件和制造技术的进步继续导致晶体管尺寸的缩小以及随之而来的它们在集成电路中的密度的增加。对包括数十亿个逻辑门的电路执行静态时序分析(STA)仍然是一个挑战,并且可能会遭遇相对较长的运行时间。
根据本公开的一方面,在执行电路的STA之前,首先标识在整个电路中重复的门级设计图案。然后预先计算与所标识的设计图案相关联的详细时序和信号特性数据并将其存储在数据库中。存储在数据库中的数据随后被用于通过插值来确定与设计图案的不同实例化(instantiation)相关联的时序和信号特性。本公开的技术优点包括数据库中的预表征(pre-characterized)数据的有效存储、数据库中存储的数据的相对快速的插值以计算延迟、以及STA的运行时间的显著改善。
图1是可以在整个电路设计中重复多次的电路块10的门级示意图。电路块10被示出为包括2输入“与”门12以及缓冲器14、16,缓冲器14、16两者均由“与”门12的输出来驱动。将“与”门12的输出连接到缓冲器14、16的金属迹线包括在图1中被统称为RC网络20的寄生电容(C)和电阻(R)。RC网络20的时间常数τ可以如下所示来确定:
τ=RtotalxCtotal
其中Rtotal和Ctotal表示驱动器12所看到的RC网络20的总电阻和总电容。
根据本公开的一个方面,如果放置在“与”门(对于图1中所示的示例,在下文中替代地被称为驱动器)和缓冲器(对于图1中所示的示例,在下文中替代地被称为接收器)之间的RC网络的时间常数小于阈值,则以与图1所示的相同方式包括驱动缓冲器对的2输入“与”门的逻辑块的所有实例化被认为是相同图案的一部分。在一个示例中,相关联的阈值时间常数被选择为等于或小于2ps。因此,根据本公开的一个方面,具有相同驱动器和接收器并且其相应的驱动器与接收器之间的RC网络的时间常数小于阈值时间常数的所有逻辑块被认为是相同图案的一部分。在其他实施例中,对于被认为是相同图案的一部分的逻辑块,逻辑块的以下属性应当匹配:驱动器的库名称,以及驱动器的引脚和单元名称;接收器的库名称以及接收器的引脚和单元名称;接收器计数;驱动器和接收器的过程、电压和温度(PVT)设置;接收器的电弧(arc)禁用条件(即,禁用接收器的输入引脚与输出引脚之间的信号路径的逻辑条件);接收器的先行(lookahead)Ceff(下面进一步描述的),以及驱动器所看到的RC寄生。
在一些实施例中,为了提高运行时效率,需要逻辑块的阈值数量的实例化以便形成图案。例如,逻辑块必须重复至少例如1000次(即,1000实例化)才有资格作为图案。这样的限制可以被用于优化图案匹配的运行时益处。
根据本公开的一个方面,使用共形映射技术将接收器14和16中的每一个接收器所看到的负载归一化为0与1之间的值,如下面的等式(1)中所示。图2示出了图1的逻辑块10——除此之外,在图2中还示出了分别由接收器14和16驱动的逻辑元件24和26。图2还示出了存在于接收器14与逻辑元件24之间的寄生RC网络34,以及存在于接收器16与逻辑元件26之间的寄生RC网络36。诸如接收器14和16的接收器所看到的电容性负载在本文中被称为有效先行电容或先行Ceff。
为了执行归一化,在图案预表征阶段期间以及在标识图案时,为每个图案的每个接收器确定先行Ceff的最小值、平均值和最大值。此后,为了减少预表征维度,使用以下表达式将每个接收器的先行Ceff值归一化为0与1之间的值x,其中Cx表示先行Ceff,并且Cl、Cm和Cr分别表示每个接收器的先行Ceff值的最小值、平均值和最大值:
0x1
上述表达式中的参数x是接收器的先行Ceff的归一化值。图3示出了根据上述表达式所确定的归一化先行Ceff值。例如,如果图案包括两个接收器(诸如图1中所示),那么为接收器中的每个接收器计算先行Ceff的归一化值。然后使用例如加权平均技术来组合两个归一化值,以计算该图案的单个归一化先行Ceff。
此外,在图案预表征阶段期间,还确定每个图案的总电容负载Ctotal的最小值、平均值和最大值。Ctotal的最小值、平均值和最大值在本文中被称为Cmin、Cavg和Cmax。
根据本公开的实施例,并且如下文进一步描述的,针对一系列的表征波形的转换速率、归一化先行Ceff值以及Ctotal的最小值、平均值和最大值,对每个所标识的图案进行预表征并将其映射到三维空间中。表征波形被理解为指代用于表征库单元的信号波形。
图4示出了根据本公开的一个实施例的图案预表征网格50的示例。预表征网格100被示出为具有沿x轴与表征波形的转换速率相关联的4个网格点、沿y轴与0.0、0.5和1.0的归一化先行Ceff值相关联的3个网格点,以及沿z轴与Cmin、Cavg和Cmax相关联的3个网格点。尽管图4的预表征网格示出了沿x轴的4个点、沿y轴的3个点以及沿z轴的3个点,但是应当理解,本公开的实施例不限于此,并且同样适用于沿x轴、y轴和z轴的任意数量的点。例如,预表征网格可以具有沿x轴的m个点、沿y轴的l个点和沿z轴的k个点,其中m、l和k中的每一项均是大于或等于3的整数。
在预表征阶段期间,对于每个图案,确定与图4中所示的36个网格点中的每一个点相对应的延迟。例如,对于与预表征网格100相关联的图案,确定与具有Cmin的总电容负载、1.0的归一化先行Ceff值以及具有S1的转换速率的表征波形的图案的实例化相对应的延迟,并将其存储在与网格点102相关联的数据库中。类似地,确定与包括Cavg的总电容负载、0.5的归一化先行Ceff值以及具有S2的转换速率的表征波形的图案的实例化相对应的延迟并将其存储在与网格点104相关联的数据库中。类似地,确定与具有Cmax的总电容负载、0.0的归一化先行Ceff值以及具有S3的转换速率的表征波形的图案的实例化相对应的延迟并将其存储在与网格点106相关联的数据库中。以相同的方式,与图4中所示的其余33个网格点中的每一个网格点相关联的延迟在预表征阶段期间被确定。因此,与每个网格点相关联的是延迟、转换速率、表征波形、归一化先行Ceff和Ctotal
在为设计的所标识的图案中的每个所标识的图案完成预表征过程并生成预表征网格后,为了计算用于图案的实例化的延迟,确定用于图案的实例化的Ctotal值和归一化先行Ceff值、以及被施加到图案的实例化的波形的转换速率。该确定的结果限定了由该图案的预表征网格的8个网格点所界定的空间内的点。这8个网格点之间的插值确定了与图案的实例化相关联的延迟。
例如,假设在延迟计算期间,由网格100所表示的图案的实例化被确定为具有在Cmin与Cavg之间的Ctotal,并且具有由具有在0.5与1之间的值的参数x所表示的归一化先行Ceff。如果被施加到图案的实例化的信号的转换速率具有在转换速率S2与S3之间的值,那么与图案的实例化相对应的延迟由与网格点104、110、112、114、116、118、120和122相关联的延迟来确定。通过执行与网格点104、110、112、114、116、118、120、122相关联的延迟的插值,计算出与图案的实例化相对应的延迟。应当理解,根据本公开的实施例,可以使用多种线性和/或非线性插值技术中的任何一种来使用预表征网格来计算延迟。
以下是根据本公开的一个实施例的用于设计块的预表征的伪代码。参数darc指的是库单元名称。参数arc指的是库单元的输入节点与输出节点之间的信号路径。例如,对于2输入“与”门,在“与”门的第一输入与“与”门的输出之间存在第一电弧,并且在“与”门的第二输入与“与”门的输出之间存在第二电弧。参数arc具有许多属性,诸如延迟表、转换表(slew table)等等。例如,这些表指定了与给定输出负载和输入转换速率的电弧相关联的延迟和输出转换速率。
参数mMrf部分地表示正在被计算的电特性(诸如延迟)的最小(乐观)和最大(悲观)值。参数mMrf还部分地表示信号的方向,从而指示信号是上升(即从低到高转变)还是下降(从高到低转变)。
根据伪代码,为了生成与图案相关联的预表征数据,如由“产生”语句所指定的,与在匹配图案的设计阶段中使用的单元相关联的电弧数据(arc data)以及该阶段的归一化先行Ceff(由参数x表示)、该阶段的总电容Ctotal、输入转换速率以及如上所述的参数mMrf被使用。预表征步骤生成与延迟、转换速率、波形和Ceff相关联的数据,如上所述。预表征步骤还生成参数,如c1c2所示,该参数表示针对施加到接收器负载的波形,该接收器负载的行为。在预表征期间生成的数据在本文中被称为电属性数据或电属性值。
为了解释用于表征图案的波形与在STA期间施加到图案的波形(本文中称为STA波形)之间的差异,STA波形被分解为表示表征波形的第一分量以及表示表征波形与STA波形之间的失真的第二分量。通过确定图案对失真的响应,可以有效地计算图案的延迟和其他电特性,从而使得STA分析的运行时间进一步改善,如下文进一步描述的。
图5是示出了根据一个示例的静态时序分析器的各种模块的***架构图。静态时序分析器310包括诸如电路存储库320、时序存储库330、输出确定模块340、增强电路模块350、输出模块360、波形压缩模块370和串扰分析模块380的模块。
电路存储库320存储被分析的电路的描述,包括网表、各种约束等。在实施例中,电路存储库320可以使用图形表示来表示电路,其中节点对应于电路的各个组件并且边对应于电路之间的连接。输出模块360发送描述时序违规、时序违规的优先级以及与时序违规相关联的原因的信息以呈现给用户。
为了提高静态时序分析的速度,静态时序分析器310使用存储在时序存储库330中的一组预定时序响应。时序存储库330存储用于集成电路中使用的单元的预先计算的时序响应,以用于各种输入波形。
静态时序分析器310标识输入波形,该输入波形被用来通过转变时间预先计算单元的时序响应。如本文中所使用的,转变时间是波形从下转变跳变点(电源电压电平的30%(0.3VDD))转变到上转变跳变点(电源电压电平的70%(0.7VDD))所花费的时间量,或者波形从电源电压电平的70%(0.7VDD)转变到电源电压电平的30%(0.3VDD)所花费的时间量。下转变跳变点和上转变跳变点可以具有其他值,只要上转变跳变点大于下转变跳变点。
给定输入波形,输出确定模块340通过利用标识输入波形的信息查询或查找时序存储库330来确定单元的延迟。输出确定模块340基于标识输入波形的信息从时序存储库330接收延迟值。例如,输出确定模块340基于输入波形的转变时间从时序存储库330接收延迟值。
时序存储库330可以仅存储每个转变时间的一个波形(标称波形)的延迟值。将要被输入到集成电路的单元中的实际波形可能偏离被用来确定那些单元的延迟值的标称波形。由于被输入到集成电路的单元中的实际波形可能以多种不同的方式偏离标称波形,因此,针对每个可能的波形偏差存储由单元产生的输出可能是不可行的。
增强电路模块350构造增强电路,该增强电路用于确定单元针对失真波形的输出。增强电路模块350基于单元的电路模型和与失真波形相对应的理想波形来生成增强电路模型。
波形压缩模块360压缩用于有效地存储数据的电路的时序波形。波形压缩模块360存储被确定为实际波形与标称波形之间的差异的差异波形。波形压缩模块360存储差异波形,因为差异波形与实际波形相比,具有更小的动态范围,因此可以以更高的比率进行压缩。波形压缩模块360可以执行下采样和位压缩。
串扰分析模块380确定这样的波形:该波形可以被用于电路的保守时序分析同时虑及电路中的串扰。串扰分析模块380确定与被用于电路的时序分析的输入非耦合波形相对应的时移波形。串扰分析模块380基于输入单调非耦合(基于假设无串扰)和输入耦合波形(假设串扰)来确定时间延迟值。
图6A图示了用于执行静态时序分析的示例性电路图。图6A的电路图包括单元410A、410B和410C。当单元410B将单元410C作为负载并且接收单元410A的输出作为输入时,静态时序分析器310可以确定单元410B的延迟。
图6B图示了用于分析图6A的单元410B的延迟的电路模型。单元410A被建模为具有时间相关电压波形Ua(t)的电压源。单元410C被建模为电容器Cg。Cs可以是恒定值,或者可以基于输出电压范围而改变。输出单元410B可以通过具有寄生电阻和寄生电容的互连件而连接到单元410C的输入。
图7图示了示例性标称波形510和具有与标称波形510相同的转变时间的示例性失真波形515。图7还图示了具有标称波形510作为输入的单元的标称输出520和具有输入失真波形515的单元的失真输出525。如图7中所图示,输入波形510和515具有相同的转变时间。也就是说,标称输入波形510和失真输入波形515在相同的时间量(tr)内从0.3*VDD转变到0.7*VDD。即使输入波形510和515具有相同的转变时间,标称输入波形510的标称输出波形520和失真输入波形515的失真输出波形525也具有不同的延迟时间。如图7中所图示,标称输出波形520的延迟时间(td1)小于失真输出波形525的延迟时间(td2)。另外,输出波形520和失真输出波形525也可以具有不同的转变时间。
因此,如果在静态时序分析期间,使用由于标称输入波形510引起的延迟td1而不是由于失真输入波形引起的延迟td2,则静态时序分析的结果将不准确。
图8图示了失真输入波形和失真输出波形。失真输入波形630是失真输入波形515与标称输入波形510之间的电压差。失真输出波形625是失真输出波形525与标称输出波形520之间的电压差。
图9A图示了根据一个实施例的用于模拟单元的电路模型。电路图700A包括向单元710提供输入波形515的电压源Ua(t)和向单元710提供负载的电容器Cg。单元710的电路模型包括电容器Cm和电压相关电流源I(Ua,Va)。在电路700A的节点715A处应用基尔霍夫电流定律(KCL),获得以下等式:
图9B图示了用于模拟具有标称输入波形510的单元的电路模型。电路图700B包括电压源Ui(t),该电压源Ui(t)提供具有与图9A的电路模型700A的输入波形Ua(t)相同的转变时间的标称输入波形510和电容器Cg。用于单元720的电路模型包括电容器Cm和电压相关电流源I(Ui,Vi)。在电路700B的节点715B处应用基尔霍夫电流定律(KCL),获得以下等式:
将等式(2)减去等式(3),获得以下等式(4):
将(Ua(t)-Ui(t))替换为Un(t),并且将(Va(t)-Vi(t))替换为Vn(t),获得以下等式(5):
其中等于I(Ui-Un,Vi-Vn)。因此,可以构造由等式(5)表示的增强电路来确定由于输入波形Un(t)中的失真而导致的输出波形Vn(t)的失真。
图9C图示了用于确定由于输入波形中的失真而导致的输出波形中的失真的增强电路图。电路图705A包括提供失真输入波形630的电压源Un(t)和电容器Cg。电路模型还包括电容器Cm、电压相关电流源和电流源I(Ui,Vi)。由于I(Ui,Vi)仅取决于标称值,因此可以预先计算I(Ui,Vi)的值并将其存储在时序存储库330中。
可以求解差分方程(5)来确定由于输入波形的失真而导致的单元的输出波形的失真。由于与标称波形相比,失真波形较小,因此可以使用较大的误差裕度或容差来求解等式(5)和/或电路705A。例如,可以使用10%的误差裕度来求解等式(5)和/或电路705A。结果,与必须通过求解等式(2)和/或电路700A来执行失真输出波形的计算相比,可以使用更少的计算资源并且更快地完成输出中的失真的计算。
图9D是用于具有两个通道连接块的单元的增强电路。例如,图9D的增强电路可以被用来分析诸如缓冲器、NAND门、NOR门等的单元。增强电路图705B包括提供失真输入波形630的电压源Un(t)、电容器Cm1、Cm2、Cg1和Cg2、电压相关电流源 以及增强电流源/>和/>
图10是图示了用于确定具有失真输入波形的单元的输出波形的过程的流程图。静态时序分析器310接收810输入波形515。输入波形515可以是来自集成电路的先前单元的输出波形。静态时序分析器310确定820用于输入波形的转变时间tr。静态时序分析器310将如下时间确定820为转变时间:如果输入波形从低电平状态转变为高电平状态,则转变时间为输入波形从电源电压电平的30%(0.3*VDD)转变到电源电压电平的70%(0.7*VDD)所花费的时间;或者如果输入波形从高电平状态转变为低电平状态,则转变时间为输入波形从电源电压电平的70%(0.7*VDD)转变到电源电压电平的30%(0.3*VDD)所花费的时间。
在830处,静态时序分析器310使用诸如与预表征网格50相关联的数据的电属性数据来执行插值以生成延迟,并且计算输出波形等。静态时序分析器310计算840输入波形失真630。输入波形失真630被确定为输入波形515与具有与输入波形515相同的转变时间的标称输入波形510之间的差。
增强电路模块350确定850增强电路705A。增强电路模块350从时序存储库330获得增强电路705A的组件。例如,增强电路模块350可以从时序存储库330获得仅依赖于标称波形的增强电路的电流源。
使用增强电路705A,输出确定模块340确定860输出波形失真635。输出确定模块340可以使用放宽的误差裕度或粗略时间步长来求解增强电路705A。输出确定模块340基于所确定的输出波形失真635来确定870输出波形525。输出波形是标称输出波形520和输出波形失真635的组合。在确定输出波形525之后,输出确定模块340可以根据所确定的输出波形525和输入波形515来确定单元延迟。例如,单元延迟可以被确定为电压电平等于电源电压电平的50%(0.5*VDD)的输入波形直到电压电平等于电源电压电平的50%(0.5*VDD)的输出波形525之间的时间量。
图11是根据本公开的一个实施例的用于对电路设计执行静态时序分析的流程图900,并且还参考图10的步骤830进行描述。在902处并且在预表征阶段期间,标识与设计图案匹配的逻辑块。在904处,确定与逻辑块(表示在902处标识的逻辑块)相关联的多个电属性的值。在906处,在902处确定的电属性的值被存储在数据库中。在908处,在静态时序分析期间,根据存储在数据库中的电属性的值,确定与被标识为匹配设计图案的每个逻辑块相关联的延迟。其值被存储在数据库中的电属性可以包括延迟、转换速率、波形、有效电容等中的一者或多者。所存储的电容值可以可选地是归一化电容值。为了匹配设计图案,逻辑块可选地具有小于阈值的时间常数。为了形成图案,匹配该图案的逻辑块的数量可选地大于阈值数量。为了解决在静态时序分析期间施加到逻辑块的波形的失真,首先基于失真来生成增强电路。此后,根据增强电路来确定逻辑块的延迟。可选地,可以对数据库中存储的值进行插值以确定逻辑块的延迟。
图12图示了在诸如集成电路的制品的设计、验证和制造期间使用以变换和验证表示该集成电路的设计数据和指令的一组示例过程1100。这些过程中的每一个过程都可以被构建和启用为多个模块或操作。术语“EDA”表示术语“电子设计自动化”。这些过程开始于利用设计者所提供的信息来创建产品创意1110,该信息被变换以创建使用一组EDA过程1112的制品。当设计完成时,设计被流片1134,这是将集成电路的图稿(例如,几何图案)发送到制造设施以制造掩模组的时间,然后掩模组被用于制造集成电路。在流片之后,半导体管芯被制造1136,并且执行封装和组装过程1138以生产成品集成电路1140。
针对电路或电子结构的规范可以从低级晶体管材料布局到高级描述语言。使用硬件描述语言(“HDL”)(诸如VHDL、Verilog、SystemVerilog、SystemC、MyHDL或OpenVera),高级别的表示可以被用来设计电路和***。HDL描述可以被变换为逻辑级寄存器传输级(‘RTL’)描述、门级描述、布局级描述或掩码级描述。作为更详细描述的每个较低表示级别将更多有用的细节添加到设计描述中,例如,用于包含该描述的模块的更多细节。作为更详细描述的较低级别的表示可以由计算机生成、从设计库导出或由另一个设计自动化过程创建。用于指定更详细描述的较低级别的表示语言的规范语言的示例是SPICE,其用于具有许多模拟组件的电路的详细描述。每个级别的表示处的描述都被启用以供该层的对应***(例如,形式验证***)使用。设计过程可以使用图12中描述的序列。所描述的过程由EDA产品(或EDA***)来实现。
在***设计1114期间,指定要制造的集成电路的功能。可以针对期望特性(诸如功耗、性能、面积(物理和/或代码行)以及成本的降低等)优化设计。在这个阶段可以将设计划分为不同类型的模块或组件。
在逻辑设计和功能验证1116期间,以一种或多种描述语言指定电路中的模块或组件,并且检查规范的功能准确性。例如,可以验证电路的组件以生成与被设计的电路或***的规范的要求相匹配的输出。功能验证可以使用模拟器和其他程序,诸如测试平台生成器、静态HDL检查器和形式验证器。在一些实施例中,被称为“仿真器”或“原型***”的专门组件***被用于加速功能验证。
在测试1118的综合和设计期间,HDL代码被变换为网表。在一些实施例中,网表可以是图形结构,其中图形结构的边表示电路的组件,并且其中图形结构的节点表示组件如何互连。HDL代码和网表都是分层的制品,EDA产品可以使用该制品来验证集成电路在制造时是否按照指定的设计运行。可以针对目标半导体制造技术来优化网表。另外,可以测试成品集成电路以验证集成电路满足规范的要求。
在本公开的实施例所应用的网表验证1120期间,检查网表是否符合时序约束以及是否与HDL代码对应。在设计规划1122期间,构建用于集成电路的整体平面图并针对时序和顶层布线进行分析。
在布局或物理实现1124期间,发生物理放置(诸如晶体管或电容器的电路组件的定位)和布线(通过多个导体连接电路组件),并且可以执行从库中选择单元以启用特定逻辑功能。如本文中所使用的,术语“单元”可以指定提供布尔逻辑功能(例如,与(AND)、或(OR)、非(NOT)、异或(XOR))或存储功能(诸如触发器或锁存器)的一组晶体管、其他组件和互连件。如本文中所使用的,电路“块”可以指的是两个或更多单元。单元和电路块都可以称为模块或组件,并且可以作为物理结构并且在模拟中被启用。为所选择的单元(基于“标准单元”)指定诸如尺寸之类的参数,并且使得可以在数据库中访问以供EDA产品使用。
在分析和提取1126期间,在布局级验证电路功能,这允许布局设计的细化。在物理验证1128期间,检查布局设计以确保诸如DRC约束、电气约束、光刻约束的制造约束是正确的,并且电路功能与HDL设计规范相匹配。在分辨率增强1130期间,布局的几何形状被变换以改进电路设计的制造方式。
在流片期间,创建用于生产光刻掩模的数据(如果合适的话,在应用光刻增强之后)。在掩模数据准备1132期间,‘流片’数据被用于产生光刻掩模,该光刻掩模被用于生产成品集成电路。
计算机***(诸如图13的计算机***1200)的存储子***可以被用于存储程序和数据结构,该程序和数据结构被本文描述的一些或所有EDA产品使用,并且被用于开发库的单元以及使用该库的物理和逻辑设计的产品所使用。
图13图示了计算机***1200的示例机器,其中可以执行用于使机器执行本文所讨论的方法中的任何一种或多种的一组指令。在替代实现中,机器可以连接(例如,联网)到LAN、内联网、外联网和/或互联网中的其他机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的能力来操作,在对等(或分布式)网络环境中作为对等机器来操作,或者在云计算基础设施或环境中作为服务器或客户端机器来操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥,或任何能够(顺序或其他)执行一组指令的机器,该指令指定该机器要采取的动作。此外,虽然图示了单个机器,但是术语“机器”也应当被理解为包括单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一种或多种的任何机器集合。
示例计算机***1200包括处理设备1202、主存储器1204(例如,只读存储器(ROM)、闪存、诸如同步动态随机存取存储器(SDRAM)之类的动态随机存取存储器(DRAM)、静态存储器1206(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储设备1218,它们经由总线1230而彼此通信。本公开的实施例可以由处理设备诸如处理设备102来执行。
处理设备1202表示一个或多个处理器,诸如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实现其他指令集的处理器、或实现指令集的组合的处理器。处理设备1202还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备1202可以被配置为执行用于执行本文所描述的操作和步骤的指令1226。
计算机***1200还可以包括网络接口设备1208以通过网络1220进行通信。计算机***1200还可以包括视频显示单元1210(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备1212(例如,键盘)、光标控制设备1214(例如,鼠标)、图形处理单元1222、信号生成设备1216(例如,扬声器)、图形处理单元1222、视频处理单元1228和音频处理单元1232。
数据存储设备1218可以包括机器可读存储介质1224(也被称为非暂时性计算机可读介质),在其上存储了体现本文所描述的任何一个或多个方法或功能的一组或多组指令1226或软件。指令1226在由计算机***1200对其执行期间还可以完全地或至少部分地驻留在主存储器1204内和/或处理设备1202内,主存储器1204和处理设备1202也构成机器可读存储介质。
在一些实现中,指令1226包括用于实现与本公开相对应的功能的指令。虽然机器可读存储介质1224在示例实现中被示为单个介质,但是术语“机器可读存储介质”应当被理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“机器可读存储介质”还应当被理解为包括能够存储或编码一组指令以供机器执行并且使得机器和处理设备1202执行本公开的任何一种或多种方法的任何介质。术语“机器可读存储介质”因此应被理解为包括但不限于固态存储器、光学介质和磁介质。
前述详细描述的一些部分已经按照对计算机存储器内的数据位的操作的算法和符号表示来呈现。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作实质传达给本领域的其他技术人员的方式。算法可以是导致期望结果的一系列操作。这些操作是需要对物理量进行物理操作的操作。这些量可以采取能够被存储、组合、比较和以其他方式操纵的电或磁信号的形式。这样的信号可以被称为位、值、元素、符号、字符、术语、数字等。
然而,应当记住,所有这些和类似的术语都将与适当的物理量相关联,并且仅仅是被应用于这些量的方便标签。除非从本公开中显而易见地另外明确说明,否则应当了解,在整个描述中,某些术语指的是计算机***或类似电子计算设备的动作和过程,其操纵被表示为计算机***的寄存器和存储器内的物理(电子)量的数据并将它们变换为类似地表示为计算机***存储器或寄存器或其他此类信息存储设备内的物理量的其他数据。
本公开还涉及一种用于执行本文的操作的装置。该装置可以为了预期目的而被专门构造,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的计算机。这样的计算机程序可以被存储在计算机可读存储介质中,诸如但不限于任何类型的盘,包括软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或适合存储电子指令的任何类型的介质,其每一个都耦合到计算机***总线。
本文所呈现的算法和显示并不固有地与任何特定计算机或其他装置相关。各种其他***可以与根据本文教导的程序一起使用,或者可以证明构造更专门的装置来执行该方法是方便的。另外,没有参考任何特定的编程语言来描述本公开。应当了解,可以使用多种编程语言来实现如本文所描述的本公开的教导。
本公开可以作为计算机程序产品或软件而被提供,其可以包括在其上存储有指令的机器可读介质,该指令可以被用于对计算机***(或其他电子设备)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备等。
在前述公开中,已经参考本公开的具体示例实现描述了本公开的实现。很显然,在不脱离如所附权利要求中阐述的本公开的更广泛的精神和实施范围的情况下,可以对其进行各种修改。在本公开以单数时态提及一些元素的情况下,可以在附图中描绘多于一个的元素,并且相似的元素用相似的标号来标记。因此,本公开和附图应当被认为是说明性的意义而不是限制性的意义。

Claims (20)

1.一种针对电路设计执行静态时序分析的方法,所述方法包括:
标识所述电路设计的、与设计图案匹配的多个逻辑块;
确定与第一逻辑块相关联的多个电属性的值,所述第一逻辑块表示所述多个逻辑块中的每个逻辑块;以及
在所述静态时序分析期间,使用所述电属性的所述值来确定与所述多个逻辑块中的每个逻辑块相关联的延迟。
2.根据权利要求1所述的方法,其中所述电属性包括以下中的一者或多者:延迟、转换速率、波形和电容。
3.根据权利要求1所述的方法,其中所存储的电容值是归一化电容值。
4.根据权利要求1所述的方法,还包括:基于时间常数来标识所述设计图案,其中所述时间常数小于阈值。
5.根据权利要求1所述的方法,其中所述多个逻辑块大于阈值数量。
6.根据权利要求1所述的方法,其中施加到所述多个逻辑块中的第一逻辑块的波形包括在所述静态时序分析期间的失真,所述方法还包括:
基于所述失真,生成增强电路;以及
进一步根据所述增强电路,确定所述多个逻辑块中的所述第一逻辑块的所述延迟。
7.根据权利要求1所述的方法,还包括:对所存储的所述多个电属性的所述值执行一个或多个插值,以确定与所述多个逻辑块中的每个逻辑块相关联的所述延迟。
8.根据权利要求1所述的方法,还包括:将所述多个电属性的所述值存储在数据库中。
9.一种***,包括:
存储器,存储指令;以及
处理器,与所述存储器耦合并且执行所述指令,所述指令在被执行时使所述处理器:
标识所述电路设计的、与设计图案匹配的多个逻辑块;
确定与第一逻辑块相关联的多个电属性的值,所述第一逻辑块表示所述多个逻辑块中的每个逻辑块;以及
在所述静态时序分析期间,使用所述电属性的所述值来确定与所述多个逻辑块中的每个逻辑块相关联的延迟。
10.根据权利要求9所述的***,其中所述电属性包括以下中的一者或多者:延迟、转换速率、波形和电容。
11.根据权利要求9所述的***,其中所存储的电容值是归一化电容值。
12.根据权利要求9所述的***,其中所述指令还使所述处理器:基于时间常数来标识所述设计图案,其中所述时间常数小于阈值。
13.根据权利要求9所述的***,其中所述多个逻辑块大于阈值数量。
14.根据权利要求9所述的***,其中施加到所述多个逻辑块中的第一逻辑块的波形包括在所述静态时序分析期间的失真,其中所述指令还使所述处理器:
基于所述失真,生成增强电路;以及
进一步根据所述增强电路,确定所述逻辑块的所述延迟。
15.根据权利要求9所述的***,其中所述指令还使所述处理器:对所存储的所述多个电属性的值执行一个或多个插值,以确定与所述多个逻辑块中的每个逻辑块相关联的所述延迟。
16.根据权利要求9所述的***,其中所述指令还使所述处理器:将所述多个电属性的所述值存储在数据库中。
17.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括存储的指令,所述指令在由处理器执行时使所述处理器:
标识电路的、与设计图案匹配的多个逻辑块,每个逻辑块具有驱动至少第二逻辑门的实例化的至少第一逻辑门的实例化;
确定与第一逻辑块相关联的k*l*m个延迟,所述第一逻辑块表示所述多个逻辑块中的每个逻辑块,其中k表示由在所述第一逻辑块中实例化的所述至少第一逻辑门所看到的负载的数量,l表示由在所述第一逻辑块中实例化的所述至少第二逻辑门所看到的归一化负载的数量,并且m表示与施加到所述第一逻辑块的波形相关联的转换速率的数量;
将所述k*l*m个延迟值存储在数据库中;以及
通过在所存储的延迟值之间进行插值,并且根据由在所述逻辑块中实例化的所述至少第一逻辑门所看到的负载、由在所述逻辑块中实例化的所述至少第二逻辑门所看到的归一化负载、以及施加到所述逻辑块上的波形,确定所述多个逻辑块中的每个逻辑块的延迟,其中k、l和m中的每一项是大于或等于2的整数。
18.根据权利要求17所述的非暂时性计算机可读介质,其中k为3,其中k的第一计数与所述多个逻辑块的所述至少第一逻辑门所看到的所述负载中的最小负载相关联,其中k的第二计数与所述多个逻辑块的所述至少第一逻辑门所看到的所述负载的平均负载相关联,并且其中k的第三计数与所述多个逻辑块的所述至少第一逻辑门所看到的所述负载中的最大负载相关联。
19.根据权利要求18所述的非暂时性计算机可读介质,其中所述归一化负载值为0.0、0.5和1。
20.根据权利要求18所述的非暂时性计算机可读介质,其中施加到所述逻辑块的波形包括失真,其中所述指令还使所述处理器:
基于所述失真,生成增强电路;以及
进一步根据所述增强电路,确定所述逻辑块的所述延迟。
CN202311410295.5A 2022-10-31 2023-10-27 用于静态时序分析的具有图案匹配的延迟计算 Pending CN117952045A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/977,809 US20240143878A1 (en) 2022-10-31 2022-10-31 Delay calculation with pattern matching for static timing analysis
US17/977,809 2022-10-31

Publications (1)

Publication Number Publication Date
CN117952045A true CN117952045A (zh) 2024-04-30

Family

ID=90799035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311410295.5A Pending CN117952045A (zh) 2022-10-31 2023-10-27 用于静态时序分析的具有图案匹配的延迟计算

Country Status (2)

Country Link
US (1) US20240143878A1 (zh)
CN (1) CN117952045A (zh)

Also Published As

Publication number Publication date
US20240143878A1 (en) 2024-05-02

Similar Documents

Publication Publication Date Title
US8726211B2 (en) Generating an equivalent waveform model in static timing analysis
US11256845B2 (en) Machine-learning driven prediction in integrated circuit design
US11593543B2 (en) Glitch power analysis with register transfer level vectors
US20220300688A1 (en) Fast synthesis of logical circuit design with predictive timing
US11222155B1 (en) Method and apparatus for reducing pessimism of graph based static timing analysis
US11022634B1 (en) Rail block context generation for block-level rail voltage drop analysis
US20230260591A1 (en) Transforming local wire thru resistances into global distributed resistances
US10216887B1 (en) Methods, systems, and computer program products for implementing an electronic design with time varying resistors in power gating analysis
US11966678B2 (en) Modelling timing behavior using augmented sensitivity data for physical parameters
WO2023150019A1 (en) Memory instance reconfiguration using super leaf cells
US11531797B1 (en) Vector generation for maximum instantaneous peak power
US20220398369A1 (en) Enhanced Cell Modeling for Waveform Propagation
US11893332B2 (en) Global mistracking analysis in integrated circuit design
US20240143878A1 (en) Delay calculation with pattern matching for static timing analysis
US11663384B1 (en) Timing modeling of multi-stage cells using both behavioral and structural models
US11080450B1 (en) Calculating inductance based on a netlist
US20230066423A1 (en) Accounting for steady state noise in bit response superposition based eye diagram simulation
US11526642B1 (en) Clock network power estimation for logical designs
US11568117B2 (en) Generating simulation-friendly compact physical models for passive structures
US12001768B1 (en) Enhanced glitch estimation in vectorless power analysis
US12014127B2 (en) Transforming a logical netlist into a hierarchical parasitic netlist
US20240232486A1 (en) Using surrogate netlists for variation analysis of process variations
US11914939B1 (en) Clock re-convergence pessimism removal through pin sharing during clock tree planning
US11087059B2 (en) Clock domain crossing verification of integrated circuit design using parameter inference
US20230306180A1 (en) Static timing analysis of multi-die three-dimensional integrated circuits

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication