CN115017848B - 用于收敛多层次化电路的时序违例的方法和装置 - Google Patents

用于收敛多层次化电路的时序违例的方法和装置 Download PDF

Info

Publication number
CN115017848B
CN115017848B CN202210943988.XA CN202210943988A CN115017848B CN 115017848 B CN115017848 B CN 115017848B CN 202210943988 A CN202210943988 A CN 202210943988A CN 115017848 B CN115017848 B CN 115017848B
Authority
CN
China
Prior art keywords
violation
circuit
timing
time
path
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
CN202210943988.XA
Other languages
English (en)
Other versions
CN115017848A (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.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology 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 Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202210943988.XA priority Critical patent/CN115017848B/zh
Publication of CN115017848A publication Critical patent/CN115017848A/zh
Application granted granted Critical
Publication of CN115017848B publication Critical patent/CN115017848B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • 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

用于收敛多层次化电路的时序违例的方法和装置
技术领域
本公开涉及集成电路设计领域,具体地,涉及一种用于收敛多层次化电路的时序违例的方法和装置、计算设备、计算机可读存储介质以及计算机程序产品。
背景技术
随着半导体工艺的进步和电路功能的日益复杂化,集成电路的规模越来越大,导致集成电路的设计所花费的时间越来越长,层次化设计流程应运而生。在多层次化电路的设计中,普遍存在不同层次间时序不一致的问题。
在相关技术中,可以在电路流片签核(signoff)阶段,对多层次化电路进行静态时序分析(STA)以获取从顶层电路(top)的视角看到的时序违例(timing violations)信息,进而根据这些时序违例信息来人为地对底层电路(block)进行时序修正(ECO)。然而,这些时序违例信息受限于时序分析的时间和包含这些时序违例信息的报告文件的大小,无法提供所有的违例路径和对应的违例时间。另外,在时序违例信息量较大时(例如,由于STA针对的场景(scenario)较多),这种时序修正方法需要耗费较多的人力和机器资源,并且相关操作人员的知识背景和流程熟练度容易对时序修正的效果造成负面影响。
发明内容
有鉴于此,本公开提供了一种用于收敛多层次化电路的时序违例的方法和装置、计算设备、计算机可读存储介质以及计算机程序产品,以缓解、减轻、甚至消除上述问题。
根据本公开的一个方面,提供了一种用于收敛多层次化电路的时序违例的方法,所述多层次化电路至少包括第一电路和第二电路,其中,所述第一电路的层级高于所述第二电路,所述方法包括:对所述多层次化电路进行时序分析以确定第一时序违例信息,所述第一时序违例信息指示与从所述第一电路的视角确定的时序违例相关的第一违例路径集合以及与所述第一违例路径集合对应的第一违例时间集合;从对应于所述第二电路的时序模型数据库中获取与第二违例路径集合对应的第二违例时间集合,其中,所述第二违例路径集合包括所述第一违例路径集合中与所述第二电路的时序违例相关的至少一条违例路径;根据所述第二违例时间集合以及所述第一违例时间集合中与所述第二违例路径集合对应的第三违例时间集合,对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例。
根据本公开的一些实施例,所述从对应于所述第二电路的时序模型数据库中获取与第二违例路径集合对应的第二违例时间集合,包括:从所述时序模型数据库中获取以下中的至少一种以组成所述第二违例时间集合:到所述第二违例路径集合中的违例路径的终点的违例时间;从所述第二违例路径集合中的违例路径的起点到终点的违例时间;以及从所述第二违例路径集合中的违例路径的起点穿过所述第二电路中的预设单元到终点的违例时间。
根据本公开的一些实施例,所述根据所述第二违例时间集合以及所述第一违例时间集合中与所述第二违例路径集合对应的第三违例时间集合,对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例,包括:根据所述第二违例时间集合以及所述第三违例时间集合,确定用于校准所述第二电路的时序违例的校准值集合,其中,所述校准值集合包括至少一个校准值,所述校准值由所述第二违例时间集合中的违例时间与所述第三违例时间集合中对应的违例时间确定;根据所述校准值集合,对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例。
根据本公开的一些实施例,所述校准值通过以下步骤被确定:响应于所述第二违例时间集合中的违例时间大于所述第三违例时间集合中对应的违例时间,将二者之差的绝对值作为所述校准值。
根据本公开的一些实施例,所述校准值通过以下步骤被确定:响应于所述第二违例时间集合中的违例时间小于所述第三违例时间集合中对应的违例时间,将二者之差的绝对值的相反数作为所述校准值。
根据本公开的一些实施例,所述根据所述校准值集合,对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例,包括:将所述校准值集合反标到所述时序模型数据库中;从所述时序模型数据库中获取与所述校准值集合中的校准值对应的、并且与所述第二电路的时序违例相关的违例路径;以及根据与所述第二电路的时序违例相关的所述违例路径与所述校准值集合中对应的校准值,对所述第二电路的时序违例进行校准。
根据本公开的一些实施例,所述将所述校准值集合反标到所述时序模型数据库中,包括:通过以下方式中的至少一种将所述校准值集合反标到所述时序模型数据库中:以违例路径上的裕度的方式进行反标;以不确定性的方式进行反标;以单元延时的方式进行反标;以连线延时的方式进行反标。
根据本公开的一些实施例,所述将所述校准值集合反标到所述时序模型数据库中,包括:将所述校准值集合反标到所述时序模型数据库中的以下对象中:所述时序模型数据库中与所述第二电路的时序违例相关的所述违例路径的起点、终点、以及所经过的单元。
根据本公开的一些实施例,所述根据与所述第二电路的时序违例相关的所述违例路径与所述校准值集合中对应的校准值,对所述第二电路的时序违例进行校准,包括:采用以下方式中的至少一种,对所述第二电路的时序违例进行校准:增加缓冲器、删除缓冲器、增大单元的驱动、减小单元的驱动、调整时钟树。
根据本公开的另一个方面,提供了一种用于收敛多层次化电路的时序违例的装置,所述多层次化电路至少包括第一电路和第二电路,其中,所述第一电路的层级高于所述第二电路,所述装置包括:第一违例信息获取模块,被配置为对所述多层次化电路进行时序分析以确定第一时序违例信息,所述第一时序违例信息指示与从所述第一电路的视角确定的时序违例相关的第一违例路径集合以及与所述第一违例路径集合对应的第一违例时间集合;第二违例信息获取模块,被配置为从对应于所述第二电路的时序模型数据库中获取与第二违例路径集合对应的第二违例时间集合,其中,所述第二违例路径集合包括所述第一违例路径集合中与所述第二电路的时序违例相关的至少一条违例路径;时序违例收敛模块,被配置为根据所述第二违例时间集合以及所述第一违例时间集合中与所述第二违例路径集合对应的第三违例时间集合,对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例。
根据本公开的又一个方面,提供了一种计算设备,包括:存储器,其被配置为存储计算机可执行指令;处理器,其被配置为当所述计算机可执行指令被处理器执行时执行根据本公开的前述方面提供的任一方法。
根据本公开的又一个方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行根据本公开的前述方面提供的任一方法。
根据本公开的又一个方面,提供了一种计算机程序产品,包括计算机可执行指令,其中所述计算机可执行指令被处理器执行时执行根据本公开的前述方面提供的任一方法。
根据本公开提供的收敛多层次化电路的时序违例的方法(所述多层次化电路至少包括第一电路和第二电路,所述第一电路的层级高于所述第二电路),通过对所述多层次化电路进行时序分析以获取从所述第一电路的视角确定的第一时序违例信息,并且通过从时序模型数据库中获取与所述第二电路对应的第二违例时间集合,从而获取了更多的时序违例信息。进而通过所述第二违例时间集合以及所述第一时序违例信息对所述第二电路的时序违例进行校准,以收敛从所述第一电路的视角确定的时序违例。通过该方法,可以在多层次化电路的时序违例的修正过程中简化时序违例的修正流程,减少对机器资源的需求,从而更加高效、安全、准确地对时序违例进行修正以使其收敛。
根据在下文中所描述的实施例,本公开的这些和其他方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的技术方案的更多细节、特征和优点被公开,在附图中:
图1示意性示出了根据本公开的一些实施例的多层次化电路的示例性架构图;
图2示意性示出了根据本公开的一些实施例的收敛多层次化电路的时序违例的方法的示例性流程图;
图3示意性示出了根据本公开的一些实施例的确定用于修正时序违例的校准值的方法的示例性原理图。
图4示意性示出了本公开的另一些实施例的收敛多层次化电路的时序违例的方法的示例性原理图;
图5示意性示出了根据本公开的一些实施例的用于收敛多层次化电路的时序违例的装置的示例框图;
图6图示了示例系统,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备。
具体实施方式
下面将参照附图更详细地描述本公开的若干个实施例以便使得本领域技术人员能够实现本公开的技术方案。本公开的技术方案可以体现为许多不同的形式和目的,并且不应局限于本文所阐述的实施例。提供这些实施例是为了使得本公开的技术方案清楚完整,但所描述的实施例并不限定本公开的保护范围。
除非另有定义,本文中使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员所通常理解的相同含义。将进一步理解的是,诸如那些在通常使用的字典中定义的之类的术语应当被解释为具有与其在相关领域和/或本说明书上下文中的含义相一致的含义,并且将不在理想化或过于正式的意义上进行解释,除非本文中明确地如此定义。
图1示意性示出了根据本公开的一些实施例的多层次化电路100的示例性架构图。如图1所示,多层次化电路100包括处于第一层级的第一电路110(例如,顶层电路)和处于第二层级的第二电路120(例如,底层电路121、122和123),其中,第一层次高于第二层级。需要说明的是,图1所示的多层次化电路100仅仅是多层次化电路的一个示例,根据具体的应用场景和需求,多层次化电路100可以包括更多的层级,并且在同一层级中包括更多的电路。本申请对多层次化电路100的具体架构不做限制。另外,在本说明书中,术语“电路”具有集成电路层次化设计领域所知晓的普遍含义,除非另有相反指示,否则术语“电路”可以和术语“模块”替换地使用。
在层次化设计流程中,需要将设计对象分成多个模块进行分层次的设计,在设计多层次化电路的过程中,在时序方面,需要考虑不同层次(例如,上述第一层级和第二层级)之间的时序、同一层次中不同模块(例如,电路121、电路122和电路123)之间的时序、不同层次的模块(例如,电路110和电路121)之间的时序等,以使得多层次化电路中不同层次的各个模块达到其各自时序方面的设计要求的同时,满足顶层的时序收敛要求。
图2示意性示出了根据本公开的一些实施例的收敛多层次化电路的时序违例的方法(为简洁起见,下文简称为时序收敛方法200)的示例性流程图。其中,所述多层次化电路至少包括第一电路和第二电路,并且所述第一电路的层级高于所述第二电路。示例性地,所述第一电路可以是顶层电路(top),所述第二电路可以是底层电路(block)。
具体地,在步骤210,对所述多层次化电路进行时序分析(例如,静态时序分析STA)以确定第一时序违例信息,所述第一时序违例信息指示与从所述第一电路的视角确定的时序违例相关的第一违例路径集合以及与所述第一违例路径集合对应的第一违例时间集合。示例性地,所述第一电路可以是所述多层次化电路的顶层电路,在采用STA分析所述多层次化电路的时序时,所述第一时序违例信息可以从STA分析产生的时序违例路径报告(timingviolation path report,为简洁起见,下文简称为违例报告)中获取。另外,所述第一违例路径集合包括至少一条违例路径,所述第一违例时间集合包括至少一个违例时间。
需要说明的是,在对所述多层次化电路进行时序分析时,如果存在多个分析的场景(scenario),可以采用STA分析以获取所有场景下的违例报告,即这种情况下所确定的第一时序违例信息包括多个场景下的违例路径和对应的违例时间。另外,可以按照所述第二电路将违例报告切分归类,即将违例报告拆分成多个子报告,每个子报告对应于特定的第二电路(例如,每个子报告对应于多层次化电路100中的电路121、122和123中的一个)。这里使用的术语“场景”具有与本领域技术人员已知的相同含义,其指示多层次化电路所工作的工作条件和模式的特定组合。对多层次化电路的时序分析而言,在签核(signoff)阶段需要使得在所有的场景下多层次化电路的时序收敛。
在步骤220,从对应于所述第二电路(例如,底层电路121)的时序模型数据库(例如,PR工具或者Timing signoff工具的数据库)中获取与第二违例路径集合对应的第二违例时间集合,其中,所述第二违例路径集合包括所述第一违例路径集合中与所述第二电路(例如,底层电路121)的时序违例相关的至少一条违例路径。其中,所述第二违例时间集合可以包括至少一个违例时间。时序模型数据库可以由STA工具(例如美国Synopsys 公司的PrimeTime 工具)提供。另外,以上从时序模型数据库中获取违例时间的过程即为数据库查询过程,其可以通过编写相应的脚本/程序来完成。
在步骤230,根据所述第二违例时间集合以及所述第一违例时间集合中与所述第二违例路径集合对应的第三违例时间集合,对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例。其中,第三违例时间集合可以包括至少一个违例时间。所述第三违例时间集合可以通过编写对应的脚本对违例报告进行解析来获取。由于违例报告的文件大小受到限制(例如,受机器资源的限制),可能导致违例报告无法报告与所述第二电路(例如,底层电路121)的时序违例相关的所有的违例时间,例如,只报告到所述第二违例路径集合中的违例路径的终点的违例时间。而从对应于所述第二电路(例如,底层电路121)的时序模型数据库获取所述第二违例时间集合,可以得到更多与所述第二电路(例如,底层电路121)的时序违例相关的违例时间。
在相关技术中,可以从顶层电路上直接去修正底层电路的时序违例,但是在大规模集成电路设计中,对一颗完整芯片进行整体的时序分析,并产生修正时序违例的脚本(ECO 脚本),需要非常多的机器、人力和时间资源,这会极大的拖慢芯片研发进程。另外,顶层电路上对底层电路内部进行细节处理(比如 don't touch,power domain,以及其他有特殊要求的地方)较为困难。而且,对于不同的底层电路(例如,第二电路121、122和123),需求可能各不相同(例如,第二电路121、122和123对 power domain 的划分各不相同)。对于场景较多的情况,这些步骤会大大增加资源消耗和成本。其中,“don't touch”指示对电路结构改动方面的约束,因为电路设计时,有些特殊的电路结构是不允许后端改动的(改动了就会有电路功能上的风险,所以是“don't touch”);“power domain”指示电源区域的约束,不同的电源需要不同的独立区域,这些区域即为“power domain”。作为对比,在本申请中,步骤230针对处于较低层级的第二电路(例如,底层电路)的时序违例进行校准,从而可以便捷地考虑“power domain”、“don't touch”等相关的电路设计上的约束,从而使得校准过程更加安全、高效。
需要说明的是,“对所述第二电路的时序违例进行校准以收敛所述从所述第一电路的视角确定的时序违例”这一处理可以由本领域技术人员利用普遍适用的技术手段(例如,增加缓冲器、删除缓冲器、增大单元的驱动、减小单元的驱动、调整时钟树等)来完成。替代地,可以将该过程进行编程,从而以脚本的方式自动校准时序违例。替代地,还可以借助第三方成熟的ECO工具(例如,PrimeTime 工具)以physical-aware 或者 non-physical 的方式自动校准时序违例。另外,在所述第二电路包括多个电路(模块)的情况下(例如,第二电路120包括电路121、122和123),可以针对多个电路同步分别校准,可以用脚本自动实现该标准化的流程,从而在缩短校准时间的同时减少人工的操作量,也降低了对机器资源的要求。
通过图2所示的时序收敛方法200,通过对所述多层次化电路进行时序分析以获取从所述第一电路的视角确定的第一时序违例信息,并且通过从时序模型数据库中获取与所述第二电路对应的第二违例时间集合,获取了更多的时序违例信息。进而通过所述第二违例时间集合以及所述第一时序违例信息对所述第二电路的时序违例进行校准,从而收敛从所述第一电路的视角确定的时序违例。通过时序收敛方法200,可以简化多层次化电路的时序违例的修正过程,减少对机器资源的需求,从而更加高效、安全、准确地对多层次化电路的时序违例进行修正以使其收敛。
根据本公开的一些实施例,图2所示的时序收敛方法200中的步骤220包括:从所述时序模型数据库中获取以下中的至少一种以组成所述第二违例时间集合:到所述第二违例路径集合中的违例路径(path)的终点(end point)的违例时间;从所述第二违例路径集合中的违例路径的起点(start point)到终点(end point)的违例时间;以及从所述第二违例路径集合中的违例路径的起点穿过所述第二电路中的预设单元到终点的违例时间。需要说明的是,表述“预设单元”可以是违例路径上的指定的若干单元或所有沿路单元。示例性地,在所述第二违例路径集合中,可以包括与第二电路121对应的违例路径;在所述第二违例时间集合中,可以包括与第二电路121的相应违例路径对应的违例时间。可以将这些与第二电路121对应的违例路径和违例时间以哈希(hash)或字典(dict)的方式存储在预设的存储装置中。
需要说明的是,如果存在多个场景,则需要分别针对所有场景都进行以上操作,以确定分组的hash/dict文本信息(如本领域技术人员已知,hash/dict 是 Python和Tcl 语言中的特定变量工具)。
根据本公开的一些实施例,图2所示的时序收敛方法200中的步骤230包括:根据所述第二违例时间集合以及所述第三违例时间集合,确定用于校准所述第二电路的时序违例的校准值集合,其中,所述校准值集合包括至少一个校准值,所述校准值由所述第二违例时间集合中的违例时间与所述第三违例时间集合中对应的违例时间确定;根据所述校准值集合,对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例。示例性地,如上文所述,所述第三违例时间集合可以通过编写对应的脚本对违例报告进行解析来获取,所述第二违例时间集合可以从对应于所述第二电路(例如,第二电路121)的时序模型数据库中获取。
示例性地,所述第二违例时间集合中的违例时间与所述第三违例时间集合中对应的违例时间可以对应于第二电路121中同一个特定违例路径,而它们的区别在于获取它们的来源不同:所述第二违例时间集合中的违例时间来自于第二电路121对应的时序违例数据库,而所述第三违例时间集合中对应的违例时间来自于违例报告。
此外,所述第二违例时间集合中的违例时间与所述第三违例时间集合中对应的违例时间之间的偏差可以用于指导时序违例的校准,例如,如果所述第二违例时间集合中的违例时间大于所述第三违例时间集合中对应的违例时间,则意味着违例报告中获取的结果偏悲观,需要额外添加更多的裕度(margin)到第二电路121中。而如果所述第二违例时间集合中的违例时间等于所述第三违例时间集合中对应的违例时间,则意味着第一电路110和第二电路121之间没有时序不一致的情况,可以无需进行修正操作(即需要向第二电路121添加的裕度为零)。
另外,如果所述第二违例时间集合中的违例时间小于所述第三违例时间集合中对应的违例时间,则意味着从第二电路121对应的时序违例数据库中获取的结果偏悲观,此时有两种做法:
a) 不做校准,沿用原第二电路121的违例时间情况进入ECO,能够满足signoff 要求,只是会额外过约束的多修些违例时间, 影响PPA(功率、性能和面积),但相对安全;
b) 做校准,将第二电路121的悲观量去掉,还原真实的违例时间进入ECO。
下面结合图3来进一步说明上述处理步骤。图3示意性示出了根据本公开的一些实施例的确定用于修正时序违例的校准值的方法的示例性原理图。如图3所示,由第二违例时间集合中的违例时间T2与第三违例时间集合中对应的违例时间T1确定校准值ΔT的过程300可以具体包括:
i) 响应于T2大于T1,将二者之差的绝对值作为校准值ΔT;
ii) 响应于T2小于T1,将二者之差的绝对值的相反数作为ΔT;
替代地,针对T2小于T1的情形,可以将不同于二者之差的绝对值的相反数的预设数值作为ΔT,此时该预设数值可以用于提示相关操作人员无需进行校准。另外,在T2等于T1时,可以执行上述步骤i)和ii)中的任意一种(替代地,也可以使用另一预设数值作为对这种情形的指示,以使相关操作人员获悉无需进行校准)。
需要说明的是,图3以及上述步骤i)和ii)仅仅是示意性地,本申请确定校准值ΔT的方法并不限于上述方法,凡是可以使得校准值ΔT能够反映T2和T1的大小关系的方法都可以用来确定校准值ΔT。如图3所示,一个或更多个校准值ΔT构成上述校准值集合。
图4示意性示出了本公开的另一些实施例的收敛多层次化电路的时序违例的方法(为简洁起见,下文简称为时序收敛方法400)的示例性原理图。在时序收敛方法400中,所述根据所述校准值集合,对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例,包括:将所述校准值集合反标到所述时序模型数据库中;从所述时序模型数据库中获取与所述校准值集合中的校准值对应的、并且与所述第二电路的时序违例相关的违例路径;以及根据与所述第二电路的时序违例相关的所述违例路径与所述校准值集合中对应的校准值,对所述第二电路的时序违例进行校准。
示例性地,所述将所述校准值集合反标到所述时序模型数据库中,包括:通过以下方式中的至少一种将所述校准值集合反标到所述时序模型数据库中:以违例路径上的裕度(margin)的方式进行反标;以不确定性(uncertainty)的方式进行反标;以单元延时(celldelay)的方式进行反标;以连线延时(net delay)的方式进行反标。
示例性地,所述将所述校准值集合反标到所述时序模型数据库中,包括:将所述校准值集合反标到所述时序模型数据库中的以下对象中:所述时序模型数据库中与所述第二电路的时序违例相关的所述违例路径的起点、终点、以及所经过的单元。
上述反标方式通过将校准值反标回时序模型数据库,借助时序模型数据库中完整的电路结构,可以得到所有真实的时序路径,从而挖掘出更多 违例报告由于报告不完全而忽略掉的违例路径(在现有方法中,每次最多只能修复违例报告中呈现出来的时序违例),从而可以从所述第二电路(例如,第二电路121)里面看到更多由于违例报告文件大小的限制而没有报出来的时序违例,有助于ECO过程中覆盖更多的时序违例,进而大大提高时序违例的修正率(一次ECO修复的时序违例数量)。
根据本公开的一些实施例,在时序收敛方法400中,所述根据与所述第二电路的时序违例相关的所述违例路径与所述校准值集合中对应的校准值,对所述第二电路的时序违例进行校准,包括:采用以下方式中的至少一种,对所述第二电路的时序违例进行校准:增加缓冲器(buffer)、删除缓冲器、增大单元的驱动、减小单元的驱动、调整时钟树(clocktree)。这些校准方法是本领域中用于校准时序违例的普遍适用的方法,需要说明的是,除了上述方法,本领域中用于校准时序违例的其他方法也可以用于对所述第二电路的时序违例进行校准,从而收敛多层次化电路的时序违例。
图5示意性示出了根据本公开的一些实施例的用于收敛多层次化电路的时序违例的装置(为简洁起见,下文简称为时序收敛装置500)的示例框图。其中,所述多层次化电路至少包括第一电路和第二电路,其中,所述第一电路的层级高于所述第二电路。示例性地,时序收敛装置500可以部署在用于时序分析的客户端或者服务器上。如图5所示,时序收敛装置500包括第一违例信息获取模块510、第二违例信息获取模块520、以及时序违例收敛模块530。
具体地,第一违例信息获取模块510可以被配置为对所述多层次化电路进行时序分析以确定第一时序违例信息,所述第一时序违例信息指示与从所述第一电路的视角确定的时序违例相关的第一违例路径集合以及与所述第一违例路径集合对应的第一违例时间集合;第二违例信息获取模块520可以被配置为从对应于所述第二电路的时序模型数据库中获取与第二违例路径集合对应的第二违例时间集合,其中,所述第二违例路径集合包括所述第一违例路径集合中与所述第二电路的时序违例相关的至少一条违例路径;时序违例收敛模块530可以被配置为根据所述第二违例时间集合以及所述第一违例时间集合中与所述第二违例路径集合对应的第三违例时间集合,对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例。
应理解,时序收敛装置500可以以软件、硬件或软硬件相结合的方式实现。多个不同模块可以在同一软件或硬件结构中实现,或者一个模块可以由多个不同的软件或硬件结构实现。
图6图示了示例系统,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备600。计算设备600可以是例如服务提供商的服务器、与服务器相关联的设备、片上系统、和/或任何其他合适的计算设备或计算系统。上面参照图5描述的时序收敛装置500可以采取计算设备600的形式。替代地,时序收敛装置500可以以应用616的形式被实现为计算机程序。
如图6所示的示例计算设备600包括彼此通信耦合的处理系统611、一个或多个计算机可读介质612以及一个或多个I/O接口613。尽管未示出,但是计算设备600还可以包括系统总线或其他数据和命令传送系统,其将各种组件彼此耦合。系统总线可以包括不同总线结构的任何一个或组合,所述总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。还构思了各种其他示例,诸如控制和数据线。
处理系统611代表使用硬件执行一个或多个操作的功能。因此,处理系统611被图示为包括可被配置为处理器、功能块等的硬件元件614。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其他逻辑器件。硬件元件614不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质612被图示为包括存储器/存储装置615。存储器/存储装置615表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置615可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置615可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质612可以以下面进一步描述的各种其他方式进行配置。
一个或多个I/O接口613代表允许用户使用各种输入设备向计算设备600输入命令和信息并且可选地还允许使用各种输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备600可以以下面进一步描述的各种方式进行配置以支持用户交互。
计算设备600还包括应用616。应用616可以例如是时序收敛装置500的软件实例,并且与计算设备600中的其他元件相组合地实现本文描述的技术。
与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。
“计算机可读信号介质”是指被配置为诸如经由网络将指令发送到计算设备600的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其他传输机制的调制数据信号中。信号介质还包括任何信息传递介质。术语“调制数据信号”是指这样的信号,该信号的特征中的一个或多个被设置或改变,从而将信息编码到该信号中。作为示例而非限制,通信介质包括诸如有线网络或直接连线的有线介质以及诸如声、RF、红外和其他无线介质的无线介质。
如前所述,硬件元件614和计算机可读介质612代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其他实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。
前述的组合也可以用于实现本文所述的各种技术和模块。因此,可以将软件、硬件或程序模块和其他程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件614体现的一个或多个指令和/或逻辑。计算设备600可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理系统的计算机可读存储介质和/或硬件元件614,可以至少部分地以硬件来实现将模块实现为可由计算设备600作为软件执行的模块。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备600和/或处理系统611)可执行/可操作以实现本文所述的技术、模块和示例。
在各种实施方式中,计算设备600可以采用各种不同的配置。例如,计算设备600可以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机类设备。
本文描述的技术可以由计算设备600的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。功能还可以通过使用分布式系统、诸如通过如下所述的平台622而在“云”620上全部或部分地实现。
云620包括和/或代表用于资源624的平台622。平台622抽象云620的硬件(例如,服务器)和软件资源的底层功能。资源624可以包括在远离计算设备600的服务器上执行计算机处理时可以使用的应用和/或数据。资源624还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。
平台622可以抽象资源和功能以将计算设备600与其他计算设备连接。平台622还可以用于抽象资源的分级以提供遇到的对于经由平台622实现的资源624的需求的相应水平的分级。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统1600内。例如,功能可以部分地在计算设备600上以及通过抽象云620的功能的平台622来实现。
应当理解,为清楚起见,参考不同的功能单元对本公开的实施例进行了描述。然而,将明显的是,在不偏离本公开的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其他功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本公开可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
将理解的是,尽管第一、第二、第三等术语在本文中可以用来描述各种设备、元件、部件或部分,但是这些设备、元件、部件或部分不应当由这些术语限制。这些术语仅用来将一个设备、元件、部件或部分与另一个设备、元件、部件或部分相区分。
尽管已经结合一些实施例描述了本公开,但是其不旨在被限于在本文中所阐述的特定形式。相反,本公开的范围仅由所附权利要求来限制。附加地,尽管单独的特征可以被包括在不同的权利要求中,但是这些可以可能地被有利地组合,并且包括在不同权利要求中不暗示特征的组合不是可行的和/或有利的。特征在权利要求中的次序不暗示特征必须以其工作的任何特定次序。此外,在权利要求中,词“包括”不排除其他元件,并且术语“一”或“一个”不排除多个。权利要求中的附图标记仅作为明确的例子被提供,不应该被解释为以任何方式限制权利要求的范围。
应当理解,为清楚起见,参考不同的功能单元对本公开的实施例进行了描述。然而,将明显的是,在不偏离本公开的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其他功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本公开可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
本公开提供了一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令在被执行时实现上述的用于收敛多层次化电路的时序违例的方法。
本公开提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述各种可选实现方式中提供的用于收敛多层次化电路的时序违例的方法。
通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除其他元件或步骤,并且“一”或“一个”不排除多个。在相互不同的从属权利要求中记载某些措施的纯粹事实并不指示这些措施的组合不能被有利地使用。

Claims (11)

1.一种用于收敛多层次化电路的时序违例的方法,所述多层次化电路至少包括第一电路和第二电路,其中,所述第一电路的层级高于所述第二电路,所述方法包括:
对所述多层次化电路进行时序分析以确定第一时序违例信息,所述第一时序违例信息指示与从所述第一电路的视角确定的时序违例相关的第一违例路径集合以及与所述第一违例路径集合对应的第一违例时间集合;
从对应于所述第二电路的时序模型数据库中获取与第二违例路径集合对应的第二违例时间集合,其中,所述第二违例路径集合包括所述第一违例路径集合中与所述第二电路的时序违例相关的至少一条违例路径;
根据所述第二违例时间集合以及所述第一违例时间集合中与所述第二违例路径集合对应的第三违例时间集合,确定用于校准所述第二电路的时序违例的校准值集合,其中,所述校准值集合包括至少一个校准值,所述校准值由所述第二违例时间集合中的违例时间与所述第三违例时间集合中对应的违例时间确定;
根据所述校准值集合,对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例。
2.根据权利要求1所述的方法,其中所述从对应于所述第二电路的时序模型数据库中获取与第二违例路径集合对应的第二违例时间集合,包括:
从所述时序模型数据库中获取以下中的至少一种以组成所述第二违例时间集合:
到所述第二违例路径集合中的违例路径的终点的违例时间;
从所述第二违例路径集合中的违例路径的起点到终点的违例时间;以及
从所述第二违例路径集合中的违例路径的起点穿过所述第二电路中的预设单元到终点的违例时间。
3.根据权利要求1所述的方法,其中所述校准值通过以下步骤被确定:
响应于所述第二违例时间集合中的违例时间大于所述第三违例时间集合中对应的违例时间,将二者之差的绝对值作为所述校准值。
4.根据权利要求1所述的方法,其中所述校准值通过以下步骤被确定:
响应于所述第二违例时间集合中的违例时间小于所述第三违例时间集合中对应的违例时间,将二者之差的绝对值的相反数作为所述校准值。
5.根据权利要求1所述的方法,其中,所述根据所述校准值集合,对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例,包括:
将所述校准值集合反标到所述时序模型数据库中;
从所述时序模型数据库中获取与所述校准值集合中的校准值对应的、并且与所述第二电路的时序违例相关的违例路径;以及
根据与所述第二电路的时序违例相关的所述违例路径与所述校准值集合中对应的校准值,对所述第二电路的时序违例进行校准。
6.根据权利要求5所述的方法,其中,所述将所述校准值集合反标到所述时序模型数据库中,包括:
通过以下方式中的至少一种将所述校准值集合反标到所述时序模型数据库中:
以违例路径上的裕度的方式进行反标;
以不确定性的方式进行反标;
以单元延时的方式进行反标;
以连线延时的方式进行反标。
7.根据权利要求5所述的方法,其中,所述将所述校准值集合反标到所述时序模型数据库中,包括:
将所述校准值集合反标到所述时序模型数据库中的以下对象中:
所述时序模型数据库中与所述第二电路的时序违例相关的所述违例路径的起点、终点、以及所经过的单元。
8.根据权利要求5所述的方法,其中,所述根据与所述第二电路的时序违例相关的所述违例路径与所述校准值集合中对应的校准值,对所述第二电路的时序违例进行校准,包括:
采用以下方式中的至少一种,对所述第二电路的时序违例进行校准:增加缓冲器、删除缓冲器、增大单元的驱动、减小单元的驱动、调整时钟树。
9.一种用于收敛多层次化电路的时序违例的装置,所述多层次化电路至少包括第一电路和第二电路,其中,所述第一电路的层级高于所述第二电路,所述装置包括:
第一违例信息获取模块,其被配置为对所述多层次化电路进行时序分析以确定第一时序违例信息,所述第一时序违例信息指示与从所述第一电路的视角确定的时序违例相关的第一违例路径集合以及与所述第一违例路径集合对应的第一违例时间集合;
第二违例信息获取模块,其被配置为从对应于所述第二电路的时序模型数据库中获取与第二违例路径集合对应的第二违例时间集合,其中,所述第二违例路径集合包括所述第一违例路径集合中与所述第二电路的时序违例相关的至少一条违例路径;
时序违例收敛模块,其被配置为根据所述第二违例时间集合以及所述第一违例时间集合中与所述第二违例路径集合对应的第三违例时间集合,确定用于校准所述第二电路的时序违例的校准值集合并且根据所述校准值集合对所述第二电路的时序违例进行校准,以收敛所述从所述第一电路的视角确定的时序违例,其中,所述校准值集合包括至少一个校准值,所述校准值由所述第二违例时间集合中的违例时间与所述第三违例时间集合中对应的违例时间确定。
10.一种计算设备,包括:
存储器,其被配置为存储计算机可执行指令;
处理器,其被配置为当所述计算机可执行指令被处理器执行时执行根据权利要求1至8中的任一项所述的方法。
11.一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行根据权利要求1至8中的任一项所述的方法。
CN202210943988.XA 2022-08-08 2022-08-08 用于收敛多层次化电路的时序违例的方法和装置 Active CN115017848B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210943988.XA CN115017848B (zh) 2022-08-08 2022-08-08 用于收敛多层次化电路的时序违例的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210943988.XA CN115017848B (zh) 2022-08-08 2022-08-08 用于收敛多层次化电路的时序违例的方法和装置

Publications (2)

Publication Number Publication Date
CN115017848A CN115017848A (zh) 2022-09-06
CN115017848B true CN115017848B (zh) 2022-10-25

Family

ID=83065210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210943988.XA Active CN115017848B (zh) 2022-08-08 2022-08-08 用于收敛多层次化电路的时序违例的方法和装置

Country Status (1)

Country Link
CN (1) CN115017848B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115796093B (zh) * 2023-01-03 2023-08-08 摩尔线程智能科技(北京)有限责任公司 电路时序优化方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934921B1 (en) * 2002-01-04 2005-08-23 Cisco Technology, Inc. Resolving LBIST timing violations
CN107862154A (zh) * 2017-11-29 2018-03-30 成都锐成芯微科技股份有限公司 一种时序调整方法
CN112069763A (zh) * 2020-09-29 2020-12-11 上海兆芯集成电路有限公司 修正电路的方法
CN112232005A (zh) * 2020-09-25 2021-01-15 山东云海国创云计算装备产业创新中心有限公司 一种保持时间违例修复方法、系统、设备及存储介质
CN112597716A (zh) * 2020-12-14 2021-04-02 南京华大九天科技有限公司 一种基于sta与spice模型仿真筛选瓶颈单元的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934921B1 (en) * 2002-01-04 2005-08-23 Cisco Technology, Inc. Resolving LBIST timing violations
CN107862154A (zh) * 2017-11-29 2018-03-30 成都锐成芯微科技股份有限公司 一种时序调整方法
CN112232005A (zh) * 2020-09-25 2021-01-15 山东云海国创云计算装备产业创新中心有限公司 一种保持时间违例修复方法、系统、设备及存储介质
CN112069763A (zh) * 2020-09-29 2020-12-11 上海兆芯集成电路有限公司 修正电路的方法
CN112597716A (zh) * 2020-12-14 2021-04-02 南京华大九天科技有限公司 一种基于sta与spice模型仿真筛选瓶颈单元的方法

Also Published As

Publication number Publication date
CN115017848A (zh) 2022-09-06

Similar Documents

Publication Publication Date Title
US11138521B2 (en) System and method for defining and using different levels of ground truth
WO2019174186A1 (zh) 诗歌自动生成方法、装置、计算机设备及存储介质
US10489498B2 (en) Digital document update
KR102436880B1 (ko) 정적 타이밍 분석의 타이밍 디레이트 조정방법
US9892220B2 (en) Method and apparatus for adjusting a timing derate for static timing analysis
AU2019200085A1 (en) Incremental learning of pointwise mutual information (pmi) word-vector embedding for text/language modeling
US8196077B2 (en) Cell-library-for-statistical-timing-analysis creating apparatus and statistical-timing analyzing apparatus
CN115017848B (zh) 用于收敛多层次化电路的时序违例的方法和装置
US20120123745A1 (en) Adaptive Content-aware Aging Simulations
CN109902318B (zh) 生成标准延时格式文件的方法和装置
US20220075920A1 (en) Automated Debug of Falsified Power-Aware Formal Properties using Static Checker Results
US20180060471A1 (en) Addressing of process and voltage points
US10437946B1 (en) Using implemented core sources for simulation
CN114138597A (zh) 一种操作系统性能调优装置、方法、设备及存储介质
US11087505B2 (en) Weighted color palette generation
CN116501415B (zh) 命令执行方法及装置、电子设备、计算机可读存储介质
US9679092B1 (en) Constraint handling for parameterizable hardware description language
US20190384868A1 (en) Method and apparatus for adaptive voltage scaling to eliminate delay variation of whole design
US20230385495A1 (en) Efficient circuit simulation method and apparatus, device, and storage medium
US8849440B2 (en) Manufacturing control based on a final design structure incorporating both layout and client-specific manufacturing information
US8818784B1 (en) Hardware description language (HDL) incorporating statistically derived data and related methods
WO2022113175A1 (ja) 処理方法、処理システム及び処理プログラム
US11037645B2 (en) Dynamic boosting techniques for memory
US8732638B1 (en) Verifying proper representation of semiconductor device fingers
JP2023536765A (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