CN114169279A - 集成电路设计方法、系统和计算机程序产品 - Google Patents

集成电路设计方法、系统和计算机程序产品 Download PDF

Info

Publication number
CN114169279A
CN114169279A CN202011207868.0A CN202011207868A CN114169279A CN 114169279 A CN114169279 A CN 114169279A CN 202011207868 A CN202011207868 A CN 202011207868A CN 114169279 A CN114169279 A CN 114169279A
Authority
CN
China
Prior art keywords
features
feature
layout
paths
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.)
Pending
Application number
CN202011207868.0A
Other languages
English (en)
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.)
Taiji Telecom Nanjing Co ltd
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Original Assignee
Taiji Telecom Nanjing Co ltd
Taiwan Semiconductor Manufacturing Co TSMC 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 Taiji Telecom Nanjing Co ltd, Taiwan Semiconductor Manufacturing Co TSMC Ltd filed Critical Taiji Telecom Nanjing Co ltd
Priority to CN202011207868.0A priority Critical patent/CN114169279A/zh
Priority to US17/122,769 priority patent/US11379643B2/en
Priority to TW110127043A priority patent/TWI777682B/zh
Publication of CN114169279A publication Critical patent/CN114169279A/zh
Priority to US17/836,954 priority patent/US11727177B2/en
Priority to US18/356,426 priority patent/US20230376660A1/en
Pending legal-status Critical Current

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/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/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • 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
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/02Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]
    • 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
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/18Manufacturability analysis or optimisation for manufacturability
    • 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
    • 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/333Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]

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)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本公开涉及集成电路设计方法、系统和计算机程序产品。一种方法至少部分地由处理器执行,所述方法包括从集成电路(IC)布局图中的多个路径创建路径的多个组。所述多个组中的每个组在所述多个路径的多个特征当中具有主要特征。所述多个组的所述主要特征彼此不同。所述方法还包括测试所述多个组当中的一个组中的至少一个路径。所述方法还包括响应于所述测试指示所述至少一个路径未通过,修改以下各项中的至少一项:所述IC布局图,具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或用于制造与所述IC布局图相对应的IC的制造工艺。

Description

集成电路设计方法、系统和计算机程序产品
技术领域
本公开涉及集成电路设计方法、系统和计算机程序产品。
背景技术
集成电路(IC)通常包括在IC布局图中表示的多个半导体器件。IC布局图是分层的,并且包括根据半导体器件的设计规范执行更高级别功能的模块。这些模块通常由单元的组合构成,每个单元代表被配置为执行特定功能的一个或多个半导体结构。具有预先设计的布局图的单元(有时称为标准单元)存储在标准单元库(在下文中简称为“库”或“单元库”),并可通过各种工具(例如电子设计自动化(EDA)工具)访问,以生成、优化和验证IC的设计。在IC设计过程期间的各个步骤中,执行各种检查和测试,以确保IC能够按照设计要求制造和起作用。
发明内容
根据本公开的一个实施例,提供了一种用于集成电路设计的方法,所述方法至少部分地由处理器执行,所述方法包括:从集成电路IC布局图中的多个路径创建路径的多个组,其中所述多个组中的每个组在所述多个路径的多个特征当中具有主要特征,并且所述多个组的所述主要特征彼此不同;测试所述多个组当中的一个组中的至少一个路径;以及响应于所述测试指示所述至少一个路径未通过,修改以下各项中的至少一项:所述IC布局图,具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或用于制造与所述IC布局图相对应的IC的制造工艺。
根据本公开的另一实施例,提供了一种用于集成电路设计的系统,包括处理器,所述处理器被配置为:提取集成电路IC布局图中的多个路径的多个特征,将所述多个路径聚类成多个集群,对于所述多个集群当中的每个集群,确定所述每个集群的主要特征,所述主要特征被包括在所述多个特征中,基于所述多个集群的所述主要特征,从所述多个集群创建路径的多个组,所述多个组当中的每个组具有所述主要特征中的唯一主要特征,对于所述多个组当中的每个组,执行自动测试模式生成ATPG以生成至少一个测试模式,使用所生成的至少一个测试模式对所述每个组中的至少一个路径执行测试,并且响应于所述测试指示所述至少一个路径未通过,使得修改以下各项中的至少一项:所述IC布局图,具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或用于制造与所述IC布局图相对应的IC的制造工艺。
根据本公开的又一实施例,提供了一种计算机程序产品,包括非暂态计算机可读介质,其中包括指令,所述指令当由处理器执行时使所述处理器执行以下操作:通过以下操作,从集成电路IC布局图中的多个路径创建路径的多个组:将所述多个路径聚类成多个集群,针对所述多个集群当中的每个集群确定主要特征,所述主要特征被包括在所述多个路径的多个特征中,将具有与其他集群的主要特征不同的主要特征的每个集群指定为所述多个组当中的一个组,并且合并具有相同的主要特征的集群以获得所述多个组中的另一个组;执行对所述多个组当中的一个组中的至少一个路径的测试;以及响应于所述至少一个路径未通过所述测试,使得修改以下各项中的至少一项:所述IC布局图,具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或用于制造与所述IC布局图相对应的IC的制造工艺。
附图说明
当与附图一起阅读时,根据以下详细描述将最好地理解本公开的各个方面。要注意的是,根据行业标准惯例,未按比例绘制各种特征。事实上,为了论述的清楚,可以任意增大或减小各种特征的尺寸。
图1是根据一些实施例的IC设计流程的至少一部分的功能流程图。
图2A-2F是根据一些实施例的具有示例路径的IC布局图的各个部分的示意逻辑图。
图2G是根据一些实施例的IC布局图中的路径的各种提取特征的示意图。
图3A是根据一些实施例的特征编码和简化(reduction)操作中的过程的流程图。
图3B是根据一些实施例的第一特征简化操作中的示例特征的示意性数据表示。
图3C是根据一些实施例的包括在第一编码操作中的若干示例路径中具有对应值的各种数值特征和分类特征的表的示意图。
图3D是根据一些实施例的包括在第二编码操作中的若干示例路径中具有对应值的示例特征的表的示意图。
图3E是根据一些实施例的包括在第三编码操作中的若干示例路径中具有对应值的示例特征的表的示意图。
图3F是根据一些实施例的包括在标准化操作中的若干示例路径中具有对应值的各种数值特征和分类特征的表的示意图。
图3G是根据一些实施例的包括在第二特征简化操作中具有对应相关系数的各种特征的表的示意图。
图3H是根据一些实施例的IC布局图中的路径的简化特征集合的示意图。
图4是根据一些实施例的在特征聚类(clustering)和路径分组操作中的过程的流程图。
图5是根据一些实施例的过程的流程图。
图6是根据一些实施例的EDA系统的框图。
图7是根据一些实施例的IC制造系统和与其相关联的IC制造流程的框图。
具体实施方式
以下公开提供了用于实现所提供的主题的不同特征的许多不同实施例或示例。下面描述了组件、材料、值、步骤、操作、材料、布置等的特定示例以简化本公开。当然,这些仅仅是示例,而并不是要进行限制。考虑其他组件、值、操作、材料、布置等。例如,在下面的描述中,在第二特征之上或在第二特征上形成第一特征可以包括第一特征和第二特征直接接触形成的实施例,并且还可以包括可以在第一特征和第二特征之间形成附加特征,使得第一特征和第二特征可以不直接接触的实施例。此外,本公开可以在各种示例中重复附图标记和/或字母。这种重复是为了简单清晰的目的,并且其本身并不指示所讨论的各种实施例和/或配置之间的关系。
此外,为了便于描述,可以在本文中使用空间相关术语,例如“下面”、“下方”、“下”、“上方”、“上”等,来描述如图中所示的一个元素或特征与另一个(或多个)元素或特征的关系。除了图中所描绘的定向之外,空间相关术语还旨在包含正在使用或操作的器件的不同定向。装置可以以其他方式定向(旋转90度或在其他定向上),并且本文使用的空间相对描述符也可以被相应地解释。
在IC设计过程中,执行一个或多个制造前验证或制造后验证,以用于识别IC布局图或根据IC布局图制造的IC(芯片)中的潜在故障。在一些实施例中,IC布局图中的多个路径被分组成多个组。每个组中的路径共享共同的主要特征,例如时序特征、逻辑特征或物理特征。对每个组中的至少一个路径执行测试。当路径未通过测试时,与对应组相关联的主要特征被识别为与系统缺陷相关。基于被识别为与系统缺陷相关的主要特征,对IC布局图、具有IC布局图中所包括的单元的库、或制造过程中的至少一者进行校正以修复故障路径。结果,在至少一个实施例中,可以通过共同的校正策略来修复或改进共享同一主要特征的多条路径。在一个或多个实施例中,通过根据主要特征来分组路径以用于测试,可以识别并校正在其他方法中未识别出的各种系统缺陷。
图1是根据一些实施例的IC设计流程100的至少一部分的功能流程图。IC设计流程100利用一个或多个电子设计自动化(EDA)工具以用于在制造IC之前和/或之后生成、优化和/或验证IC的设计。在一些实施例中,EDA工具是用于由处理器或控制器或编程计算机(例如,系统600(图6))执行以执行所示功能的一组或多组可执行指令。在至少一个实施例中,IC设计流程100由本文针对图7讨论的IC制造系统的设计室执行。
在IC设计生成操作110中,由电路设计者提供IC的设计。在一些实施例中,IC的设计包括IC的IC原理图,即电路图。在一些实施例中,示意图以示意性网表(例如集成电路专用模拟程序(SPICE)网表)的形式生成或提供。用于描述设计的其它数据格式(例如Verilog)在一些实施例中是可用的。在一些实施例中,对设计执行预先布局模拟以确定设计是否符合预定规范。当设计不符合预定规范时,对IC进行重新设计。在至少一个实施例中,省略了预先布局模拟。
在单元布局布线(placement and routing)操作120中,基于IC原理图生成IC的布局图。在至少一个实施例中,单元布局布线操作120被称为自动布局布线(APR)。IC布局图包括IC的各种电路元件的物理位置以及互连电路元件的各种网络(nets)的物理位置。例如,IC布局图以图形设计系统(GDS)文件的形式生成。用于描述IC的设计的其它数据格式(例如设计交换格式(DEF))在各种实施例的范围内。在至少一个实施例中,IC布局图由EDA工具(例如APR工具)生成。如本文所述,APR工具以网表的形式接收IC的设计。APR工具执行用于识别电路元件的布图规划,这些电路元件将彼此电连接并且被置于非常接近彼此的位置,以用于减小IC的面积和/或减少通过将电连接的电路元件连接在一起的互连或网络来传输的信号的时间延迟。在一些实施例中,APR工具执行分区以将IC的设计划分为多个块或组,例如时钟和逻辑组。APR工具的示例操作包括但不限于单元布局操作和布线操作。
在单元布局操作中,APR工具执行单元布局。被配置为提供预定义功能并具有预先设计的布局图的单元存储在一个或多个单元库中,例如,以库交换格式(LEF)。LEF是包括设计规则和库中单元的相关信息的一种规范。在至少一个实施例中,LEF与DEF一起用于表示正在设计的IC的物理布局。APR工具从一个或多个单元库访问各种单元,并以邻接方式放置单元以生成与IC原理图相对应的IC布局图。每个单元包括一个或多个电路元件和/或一个或多个网络。电路元件是有源元件或无源元件。有源元件的示例包括但不限于晶体管和二极管。晶体管的示例包括但不限于金属氧化物半导体场效应晶体管(MOSFET)、互补金属氧化物半导体(CMOS)晶体管、双极结型晶体管(BJT)、高压晶体管、高频晶体管、p沟道和/或n沟道场效应晶体管(PFET/NFET)、FinFET、具有凸起源极/漏极的平面MOS晶体管等。无源元件的示例包括但不限于电容器、电感器、熔丝和电阻器。网络的示例包括但不限于通孔、导电焊盘、导电迹线和导电再分布层等。
在布线操作中,APR工具执行布线,以对互连所放置的电路元件的各种网络进行布线。执行布线以确保所布线的互连或网络满足一组约束。例如,布线操作包括全局布线、轨迹分配和详细布线。在全局布线期间,分配用于互连或网络的布线资源。例如,布线区域被划分为多个子区域,所放置的电路元件的管脚(或端子)映射到子区域,并且网络被构造为子区域的集合,在这些子区域中,互连是物理上可布线的。在轨迹分配期间,APR工具将互连或网络分配给IC布局图的对应导电层。在详细布线期间,APR工具在指定的导电层和全局布线资源内对互连或网络进行布线。例如,详细的物理互连是在全局布线中定义的对应子区域集合内、以及在轨迹分配中定义的导电层中生成的。在布线操作之后,APR工具输出IC布局图,包括所放置的电路元件和所布线的网络。所述APR工具是示例。其他布置在各种实施例的范围内。例如,在一个或多个实施例中,省略了所述操作中的一个或多个,或者在所述操作之前、期间或之后添加一个或多个附加操作。
在一些实施例中,在单元布局布线操作120之后执行一个或多个验证。示例验证包括但不限于布局-示意图(LVS)检查和设计规则检查(DRC)。其他验证过程可用于其他实施例中。
执行LVS检查以确保所生成的IC布局图与IC的设计相对应。具体地说,LVS检查工具(即EDA工具)从所生成的IC布局图的模式中识别电气组件以及它们之间的连接。然后,LVS检查工具生成表示已识别的电气组件和连接的布局网表。通过LVS检查工具,将由IC布局图生成的布局网表与IC设计的原理网表进行比较。如果两个网表在匹配公差内匹配,则通过LVS检查。否则,通过将过程返回到IC设计生成操作110或单元布局布线操作120中的至少一者,对IC布局图或IC的设计中的至少一者进行校正。
例如通过EDA工具执行DRC以确保IC布局图满足某些制造设计规则,即确保IC的可制造性。如果违反了一个或多个设计规则,则通过将过程返回到IC设计生成操作110或单元布局布线操作120中的至少一者,对IC布局图或IC的设计中的至少一者进行校正。设计规则的示例包括但不限于:指定IC布局图中的图案的最小宽度的宽度规则、指定IC布局图中的相邻图案之间的最小间距的间距规则、指定IC布局图中的图案的最小面积的面积规则等。
在电阻和电容(RC)提取操作130中,例如通过EDA工具执行RC提取,以确定IC布局图中的组件的寄生参数,例如寄生电阻和寄生电容,以用于一个或多个后续操作中的时序模拟。
在静态时序分析(STA)操作140中,EDA工具估计IC布局图中的多个路径中的延迟。STA操作140的输入数据包括但不限于IC布局图、由RC提取操作130提取的寄生参数、从具有IC布局图中所包括的单元的一个或多个单元库获得的单元延迟。来自STA操作140的输出数据被包括在本文描述的时序报告中。在至少一个实施例中,STA操作140在未模拟与IC布局图相对应的IC的操作的情况下执行。在至少一个实施例中,当在STA操作140中估计的针对一个或多个路径的延迟无法满足对应的时序要求时,通过将过程返回到IC设计生成操作110或单元布局布线操作120中的至少一者,对IC布局图或IC的设计中的至少一者进行校正。
在自动路径选择和测试(APST)操作150中,IC布局图中的路径被分组,并且针对分组的路径生成测试模式。在一些实施例中,APST操作150至少部分地由EDA工具执行。图1中还示出了根据一些实施例的APST操作150的进一步操作的分解示意图。用于APST操作150的输入数据包括从IC设计生成操作110输出的IC原理图113、从单元布局布线操作120输出的IC布局图123、以及从STA操作140输出的时序报告143中的一者或多者。在图1的示例性配置中,APST操作150包括特征提取操作152、特征编码和简化操作153、特征聚类操作154、集群分析和路径分组操作155以及自动测试模式生成(ATPG)操作156。
在特征提取操作152中,提取IC布局图中的路径的多个特征,如关于图2A-2G所述。
在特征编码和简化操作153中,对所提取的特征进行编码和简化以获得简化的特征集,如关于图3A-3G所述。
在特征聚类操作154中,IC布局图的路径被划分为多个集群,如关于图4所述。
在集群分析和路径分组操作155中,对集群进行分析并将集群分组成具有相关联的唯一主要特征的多个组,如关于图4所述。
在ATPG操作156中,使用一个或多个ATPG方法或算法来针对每个组中的一个或多个路径生成测试模式,如本文所述。
在测试操作160中,使用由ATPG操作156生成的测试模式对每个组中的一个或多个路径执行测试,以确定IC布局图或根据IC布局图制造的实际IC是否符合一个或多个时序要求的预定规范。在至少一个实施例中,测试包括例如由EDA工具执行的布局后模拟,以模拟与IC布局图相对应的IC的操作。在一些实施例中,由具有硬件结构(例如探针)的自动测试设备(ATE)来执行测试以用于测试实际IC的操作,这些硬件结构电耦合到根据IC布局图制造的实际IC(芯片)。在一个或多个实施例中,测试操作160中的测试包括由EDA工具进行的布局后模拟和由ATE对实际IC执行的测试两者。当IC布局图和/或基于IC布局图制造的实际IC通过测试时,将执行附加的验证过程,或基于IC布局图制造IC。
在修改操作170中,当IC布局图和/或基于IC布局图制造的实际IC未通过测试操作160中的测试时,进行校正。在一些实施例中,通过将过程返回到IC设计生成操作110或单元布局布线操作120中的至少一者,来对IC布局图或IC的设计中的至少一者进行校正。在IC设计生成操作110中对IC设计的校正导致在单元布局布线操作120中对IC布局图进行对应的校正。在一些实施例中,对具有IC布局图中所包括的单元的一个或多个单元库进行校正。对一个或多个单元库的校正导致在单元布局布线操作120中对IC布局图进行对应的校正。在一些实施例中,对用于制造与IC布局图相对应的IC的制造过程进行校正。图1中的IC设计流程100是示例。在一些实施例中,IC设计流程100包括一个或多个进一步的操作,和/或省略所述操作中的一个或多个。
图2A-2F是根据一些实施例的具有示例路径的IC布局图的各个部分的示意逻辑图。图2G是示出根据一些实施例的IC布局图中的路径的各种提取特征的示意图。
图2A是根据一些实施例的具有路径1的IC布局图的部分200A的示意逻辑图。部分200A包括多个逻辑门201-204和多个网络(或导线)205-210,这些网络(或导线)205-210将逻辑门201-204彼此耦合并与两个触发器FF1、FF2耦合。为了简单起见,假设每个逻辑门都为单元。路径1包括在触发器FF1、FF2之间串行耦合的网络205、单元201、网络206、单元204和网络207。在至少一个实施例中,在从STA操作140输出的时序报告中识别路径1。路径1的特征包括路径1中的网络205、206、207的特征和单元201、204的特征。
网络的示例特征包括但不限于:“金属层中的物理网络长度”、“总物理网络长度”、“导线(或网络)中的通孔数量”、“网络延迟”、“转换比率(slew-ratio)”、“布局形状”等。特征“金属层中的物理网络长度”表示布置在金属层(例如M0、M1、M2等)中的网络的部分的物理长度。特征“总物理网络长度”表示在其中布置网络的所有金属层中的网络的总物理长度。特征“导线(或网络)中的通孔数量”表示将不同金属层中的不同网络部分耦合在一起的通孔数量。特征“网络延迟”表示由于网络的寄生电容和寄生电阻而行进通过网络的信号的时间延迟。特征“转换比率”表示信号的前沿或后沿上升或下降的快慢。特征“布局形状”表示网络的形状。网络的示例形状包括但不限于L形、I形、T形等。网络的其他特征在各种实施例的范围内。
单元的示例特征包括但不限于:“驱动强度”、“VT类型”、“输入数量”、“输出数量”、“功能类型”、“晶体管数量”、“高度”、“间距”、“布局形状”、“灵敏度延迟”等。特征“驱动强度”表示单元的设计负载。特征“VT类型”表示一种类型的阈值电压(VT),在该阈值电压下,单元中的晶体管被导通或关断。示例VT类型包括但不限于:高阈值电压(HVT)、低阈值电压(LVT)、超低阈值电压(ULVT)、标准阈值电压(SVT)。通常,阈值电压较低的单元比阈值电压较高的单元更快但消耗更多的电力。特征“输入数量”表示单元的输入的数量。特征“输出数量”表示单元的输出的数量。特征“功能类型”表示单元的逻辑类型。示例逻辑类型包括但不限于AOI(AND-OR-反相)、AND、XOR、OR、NAND、NOR、INV(反相)等。特征“晶体管数量”表示单元中晶体管的数量。特征“高度”表示沿着单元中的晶体管的栅极区域的方向上的单元高度。特征“间距”表示相邻栅极区域之间的间距。特征“布局形状”表示单元内的网络的形状。特征“灵敏度延迟”表示行进通过单元的信号的时间延迟。单元的其他特征在各种实施例的范围内。关于图2G描述了路径的进一步示例特征。
图2B是根据一些实施例的具有路径2的IC布局图的部分200B的示意逻辑图。在图2B中的示例配置中,沿着路径2的网络211-214在金属层M3中的物理网络长度分别为50个单位、30个单位、100个单位和200个单位。金属层M3中的物理网络长度211-214大于其他金属层中的物理网络长度。也就是说,沿路径2的网络211-214主要布置在金属层M3中,或者路径2被金属层M3中的网络控制。因为网络211-214主要布置在金属层M3中,与不受金属层M3控制的其他路径相比,路径2将受到金属层M3中的变化的更多影响。当金属层M3中存在变化时,沿路径2中的网络211-214的小延迟将累积成更大、更容易检测的延迟。在如本文所述的一些实施例中,通过基于主要特征(例如用于路径2的金属层M3或关于图2C-2G描述的另一特征)分组路径并且对分组的路径进行测试,可以识别和修复小延迟缺陷(SDD)。
图2C是根据一些实施例的具有路径3的IC布局图的部分200C的示意逻辑图。在图2C的示例配置中,单元215-218沿路径3布置。单元215、216、218从具有低阈值电压(LVT)的晶体管配置,并且单元217从具有标准阈值电压(SVT)的晶体管配置。换句话说,沿路径3的单元主要被配置为LVT单元,或者路径3被LVT单元控制。
图2D是根据一些实施例的具有路径4的IC布局图的部分200D的示意逻辑图。在图2D的示例配置中,单元219-221沿路径4布置。单元219-221中的每一者被配置为具有三个输入。换句话说,沿路径4的单元主要被配置为3输入单元,或者路径4由3输入单元控制。
图2E是根据一些实施例的具有路径5的IC布局图的部分200E的示意逻辑图。在图2E的示例配置中,网络222-226沿路径5布置。网络222-226中的通孔数量分别为5、59、137、8和23。路径5的网络中的通孔总数大于IC布局图的多个路径中的平均通孔总数。换句话说,路径5由路径中的通孔数量控制。
图2F是根据一些实施例的具有路径6的IC布局图的部分200F的示意逻辑图。在图2F的示例配置中,沿路径6布置的网络227-230在金属层M5中的物理网络长度分别为121.3、68.5、259.4和97.6。金属层M5中路径6的网络的总物理网络长度大于其他路径。换句话说,路径6由金属层M5中的物理网络长度控制。
图2G是示出根据一些实施例的IC布局图中的路径的各种提取特征的特征列表200G的示意图。特征列表200G是特征提取操作152的结果的示例。特征列表200G包括时序特征240、逻辑特征250和物理特征260中的一者或多者。特征列表200G不是穷尽的,并且其他特征在各种实施例的范围内。
时序特征240中的一个或多个作为STA操作140的结果而获得,其被包括在提供给APST操作150的时序报告143中,并且然后通过特征提取操作152从时序报告143中提取。示例特性是松紧度(slack)241。路径的松紧度是在违反时序约束之前路径中可容忍的延迟量。松紧度的负值表示路径已经违反了时序约束。松紧度的零值表示与IC布局图相对应的IC是可操作的,但没有可用的时间裕度。松紧度的正值表示IC能够以一定的时间裕度操作。IC设计流程试图在所有路径中实现正的或至少非负的松紧度值。
时序特征240中的一个或多个从库中获得。一个示例是库设置/保持时间242。库设置/保持时间242是单元的预定或已知时序参数,并且从与单元相对应的库中取回。在至少一个实施例中,在特征提取操作152中从库中提取库设置/保持时间242。在一个或多个实施例中,在STA操作140中,将库设置/保持时间242包括在时序报告143中,然后将其发送到APST操作150以在特征提取操作152中提取。
逻辑特征250中的一个或多个从IC原理图113中提取,例如Verilog网表。
物理特征260中的一个或多个从IC布局图123中提取,例如从包含IC布局图123的一个或多个DEF和/或LEF文件中提取。
图3A是根据一些实施例的特征编码和简化操作153中的过程300A的流程图。过程300A包括第一特征简化操作310、特征编码操作320和第二特征简化操作330。
在第一特征简化操作310中,基于IC布局图的多个路径上的特征的数据变化去除通过特征提取操作152提取的多个特征当中的一个或多个特征。本文关于图3B描述第一特征简化操作310。在至少一个实施例中,省略第一特征简化操作310。
在特征编码操作320的开始处,将在第一特征简化操作310之后剩余的特征划分为数值特征321和分类特征322。数值特征是具有数值值的特征。分类特征是具有非数值值的特征。示例非数值值包括但不限于字符串。本文关于图3C描述数值特征和分类特征的示例。因为数值特征321的数值值可以用于进一步计算,所以数值特征321不经受第一至第三编码操作323-325中的一个或多个。相反,分类特征322的非数值值未准备好用于进一步计算,并且在特征编码操作320中的第一到第三编码操作323-325中的一个或多个中被转换或编码以获得相应的转换数值值。
在第一编码操作323中,基于与管脚或实例相关联的一个或多个层级等级,将与管脚或实例(例如,来自网表)的名称相对应的非数值值编码或转换为相应的转换数值值,如关于图3C所述。
在第二编码操作324中,与单元的特征相对应的非数值值被分割成功能类型和工艺参数,并且被编码或转换为相应的转换数值值,如关于图3D所述。
在第三编码操作325中,使用顺序编码,对应于另一特征的非数值值被编码或转换为对应的转换数值值,如关于图3E所述。
在特征编码操作320的标准化操作326中,将数值特征的数值值和分类特征的转换数值值标准化,如关于图3F所述。特征编码操作320中所述的操作是示例。用于将非数值值转换为转换数值值的其他布置在各种实施例的范围内。
在第二特征简化操作330中,基于从标准化操作326输出的标准化的值,根据与松紧度的相关性进一步去除一个或多个特征,如关于图3G所述。结果,获得简化特征集合,如关于图3H所述。
图3B是根据一些实施例的第一特征简化操作310中的示例性特征的示意性数据表示300B。为了简单起见,在图3B中以对应的图311-315的形式示出了有限数量的示例性特征“松紧度”、“时钟不确定性”、“LVT单元”、“网络长度”和“网络面积”的示意性数据表示。每个图311-315的横坐标表示IC布局图的多个路径中的路径数量N。每个图311-315的纵坐标表示N个路径中的每一个的对应特征的值。数据表示用于说明性目的,并且在一个或多个实施例中被省略。
在一些实施例中,分析由特征提取操作152提取的所有特征,以确定特征在IC布局图的多个路径上的变化。在N个路径上没有变化的特征将从进一步的分析中被去除。例如,如图312所示,“时钟不确定性”的值在IC布局图的N个路径上保持不变。因此,“时钟不确定性”从进一步的分析中被去除。其他示例特性“松紧度”、“LVT单元”、“网络长度”和“网络面积”具有在N个路径上不同的值,并且维持这些值以用于进一步分析。在至少一个实施例中,还通过进一步分析去除了具有不完整信息的特征。
在至少一个实施例中,所描述的基于数据变化和/或信息不完整性去除一个或多个特征是用于减少要经受进一步分析的特征的数量,从而减少计算工作负荷的简单方法。
图3C是根据一些实施例的包括各种数值特征340和分类特征345的表300C的示意图,这些数值特征340和分类特征345在IC布局图的N个路径当中的若干示例路径_#1到路径_#4中具有相应的值。数值特征340包括数值特征341-344,数值特征341-344是对应于关于图2C所述的时序特征240中的一个或多个的时序特征。如图3C所示,数值特征341-344具有针对路径_#1到路径_#4中的每一个的数值。在该示例中,数值特征341-344的数值值是延迟时间。分类特征345包括分类特征346-348,分类特征346-348是对应于关于图2C所述的逻辑特征250中的一个或多个的逻辑特征。如图3C所示,分类特征346-348具有以字符串形式呈现的非数值值。在该示例中,分类特征346-348的字符串分别表示管脚或实例名称、单元特征和时钟。图3C中所示的特征列表是一个示例,而并不详尽。
在图3C的放大视图中更详细地示出了分类特征346的非数值值,以提供第一编码操作323中的管脚或实例名称编码的示例。分类特征346的每个非数值值指示路径_#1到路径_#4中对应路径的管脚或实例的名称。每个管脚或实例名称以包含一个或多个斜杠字符“/”的字符串形式呈现,以指示与该管脚或实例相关联的多个层级等级。在图3C中的示例配置中,在分类特征346的每个非数字值值中有9个层级等级349-357。层级等级349是最高等级,其次是等级350,以此类推,一直到最低等级357。根据预定的编码方案,层级等级349-357中的每个等级的字符串段被编码为数字。例如,对于所有路径_#1到路径_#4,层级等级355的字符串段“u12_logic”被编码为数字“1”。类似地,对于所有路径_#1到路径_#4,层级等级349-354中的每个等级的字符串段被编码为数字“1”。在层级等级356、357中,路径_#1到路径_#4中的字符串段是不同的,因此被编码为不同的数字。具体地,在层级等级356中,字符串段“ucpu3_arb”在路径_#1和路径_#2中是相同的,并且在路径_#1和路径_#2中被编码为“21”,而字符串段“uarb_1c”在路径_#3和路径_#4中是相同的,并且在路径_#3和路径_#4中被编码为“10”。在层级等级357中,字符串段在路径_#1和路径_#2中是相同的,并且在路径_#1和路径_#2中被编码为“60”,而路径_#3和路径_#4中的不同字符串段分别被编码为“40”和“50”。作为所述管脚或实例名称编码操作323的结果,路径_#1到路径_#4的分类特征346的非数值值被分别编码为相应的转换数值值“11111112160”、“1111111112160”、“11111111040”和“11111111050”,还如图3F中所示。
图3D是根据一些实施例的包括分类特征347的表300D的示意图,分类特征347的对应的非数值值在第二编码操作324中被编码。分类特征347包括单元的若干特征,并且被分割成分别表示单元的单元功能类型和工艺参数的另外的分类特征360、361。分类特征347的每个非数字值值或字符串还被分割成与分类特征360、361相对应的较短段。例如,分类特征347的非数值值或字符串“DFRPQD4BWP300H8P63PDULVT”被分割成字符串段362“DFRPQ”、字符串段363“D4”、字符串段364“BWP300H8P63PD”和字符串段365“ULVT”。字符串段362“DFRPQ”指示单元功能类型为触发器,并被转换为分类特征360的非数值值366“Flop”。字符串段363“D4”表示单元的驱动强度。在图3D的示例中,为了简单起见,未进一步示出驱动强度。然而,在进一步分析中包括该特征在一个或多个实施例的范围内。字符串段364“BWP300H8P63PD”表示工艺参数,并被转换为分类特征361的非数值值367“BWP300H8P63P”。字符串段365“ULVT”表示单元的阈值电压。在图3D的示例中,为了简单起见,未进一步示出阈值电压。然而,在进一步分析中包括该特征在一个或多个实施例的范围内。类似地,对于第一编码操作323,根据预定的编码方案,非数值值366、367中的每一个被编码为数字。例如,非数值值366“Flop”被编码为对应的转换数值值368“1”,非数值值367“BWP300H8P63P”被编码为相应的转换数值值369“1”。分类特征347的其他非数值值(图3D在370处共同指示)被类似地分割并编码为相应的转换数值值,图3D在371处共同指示。
图3E是根据一些实施例的包括分类特征348的表300E的示意图,分类特征348的对应的非数值值在第三编码操作325中被编码。类似地,对于第一编码操作323,根据预定的编码方案(例如顺序编码),将分类特征348的每个非数值值编码为数字。例如,非数值值“CA72_ACLK”被编码为对应的转换数值值“1”。分类特征348的其他非数值值也被类似地编码,如图3E所示。
图3F是根据一些实施例的包括各种数值特征340和分类特征345的表300F的示意图,数值特征340和分类特征345在标准化操作326中具有对应的数值值和转换数值值。表300F包括图3F在372处共同指示的数值特征340的数值值,以及图3F在373处共同指示的分类特征345的转换数值值。数值特征340的数值值372与表300C中的对应数值值相同。分类特征345的转换数值值373是通过在第一到第三编码操作323-325中对分类特征345的对应非数值值进行编码或转换而得到的,如关于图3C-3E所述。对数值值372和转换数值值373进行标准化以获得相应的标准化值380。例如,对数值特征341(下文中称为特征LIB)的数值值“0.000228”、“0.007996”、“0.005491”和“0.006957”进行标准化,以得到对应的标准化值“0.01502”、“0.08514”、“0.04104”和“0.05694”。
作为标准化操作326的结果,每个特征具有对应于IC布局图的N个路径的多个标准化值。例如,对于路径#_1到路径#_4,特征LIB具有标准化值“0.01502”、“0.08514”、“0.04104”和“0.05694”。同样,对于路径#_1到路径#_4,特性松紧度也具有标准化值(未显示)。在第二特征简化操作330中,特征LIB的这两组标准化值和松紧度被用于确定特征LIB和松紧度之间的相关系数。在至少一个实施例中,选择松紧度作为用于确定与其他特征的相关性的基本特征的原因在于,针对定时验证而进行测试和/或在一个或多个实施例中STA操作140被配置用于松紧度优化。除松紧度之外的用于确定相关性的基本特征在各种实施例的范围内。
在一些实施例中,使用以下公式(1)来计算相关系数
Figure BDA0002757701680000161
其中,rxy是相关系数,xi是在IC布局图的N个路径当中的第i个路径处的松弛度的标准化值,yi是在第i个路径处的另一特征(例如,LIB)的标准化值,
Figure BDA0002757701680000162
是所有N个路径上的松紧度的所有标准化值的平均值,并且
Figure BDA0002757701680000163
是所有N个路径上LIB的所有标准化值的平均值。类似地计算松紧度与其他特征之间的相关系数,并且在图3G中给出示例结果。
图3G是根据一些实施例的包括各种特征的表300G的示意图,这些特征在第二特征简化操作330中具有对应相关系数。如在391所示,在该示例中,如本文所述计算的IC布局图的N个路径上的LIB和松紧度之间的相关系数为“0.178542”。在表300G中,相关系数按降序排序。
从进一步分析中去除与预定范围393内的相关系数相对应的特征。在一些实施例中,预定范围在-0.15和0.15之间。相关系数在该预定范围内大约为零的特征被认为与松紧度相关性很小或没有相关性。当这种特性中存在变化时,例如,在394指示的ViaCount(路径中的通孔数量),由于ViaCount和松紧度之间的相关性很小或没有相关性,因此不太可能影响松紧度。换句话说,在这个具体的示例中,ViaCount由于其与松紧度的低相关性而被认为对松紧度和时序性能几乎没有或没有显著的影响。因此,将从进一步的分析中去除特征ViaCount。在至少一个实施例中,这种去除减少了进一步后续分析的计算工作负荷。用于去除被认为与松紧度相关性很小或没有相关性的特征的其他预定范围在各种实施例的范围内。
与预定范围393之外的相关系数相对应的特征被保留以用于进一步分析。例如,保留与分别高于和低于预定范围393的范围395和396中的相关系数相对应的特征以用于进一步分析。与范围395中的相关系数相对应的特征与松紧度具有正相关性,这意味着当这些特征之一的值增加时,松紧度也有增加的可能性。与范围396中的相关系数相对应的特征与松紧度具有负相关,这意味着当这些特征之一的值增加时,松紧度有减小的可能性。由于与松紧度具有足够的相关性,与范围395、396中的相关系数相对应的特征被认为对松紧度和时序性能具有潜在影响。这些特征被保留以用于进一步分析,并且一起构成简化特征集合,该简化特征集合的示例在图3H中给出。
图3H是示出根据一些实施例的IC布局图中的路径的特征的简化集合300H的示意图。简化集合300H列出了如图2G中的特征列表200G的所有提取特征。然而,已通过第一特征简化操作310基于数据变化去除的、以及通过第二特征简化操作330基于与松紧度的相关性去除的特征在简化集合300H中被指示为删去(stricken through)。简化集合300H是特征编码和简化操作153的示例结果。在至少一个实施例中,特征编码和简化操作153中的编码处理使得能够以类似于本文所述的数值特征的方式来分析分类特征。在至少一个实施例中,特征编码和简化操作153中的特征简化使得能够去除不太可能影响时序性能的特征并减少计算工作负荷。
图4是根据一些实施例的在特征聚类操作154以及集群分析和路径分组操作155中的过程400的流程图。特征聚类操作154包括操作410、420,利用这些操作,IC布局图的路径被聚类或划分为多个集群。集群分析和路径分组操作155包括操作430、440、450,利用这些操作,集群被分析并分组到具有相关联的唯一主要特征的多个组中。
在操作410,确定要将IC布局图的N个路径划分成的集群的数量。在一些实施例中,使用以下公式(2)计算集群的数量k:
Figure BDA0002757701680000181
在操作420,应用聚类算法来聚类N个路径。在一些实施例中,在操作420中应用的聚类算法是K均值聚类。K均值聚类用于无监督学习。其他聚类算法在各种实施例的范围内。
用于K均值聚类的数据包括作为特征编码和简化操作153的结果而获得的m个特征的简化集合300H,以及作为标准化操作326的结果而获得的N个路径中的m个特征的标准化值。每个路径被呈现为包括m个特征的m个标准化值的数据点。K均值聚合的目的是在迭代过程中将N个数据点聚类成k个集群S1…Sk,以实现以下最小化:
Figure BDA0002757701680000182
在操作430,例如,使用以下公式,在k个集群中的每一者中计算m个特征中的每一者的偏置:
CBnx=(CMnx-DSx)/DSx (4)
其中,CBnx是集群n中的特征x的偏置,CMnx是集群n中的路径中的特征x的平均值,以及DSx是所有N个路径中的特征x的平均值。
在操作440,基于在操作430计算的每个集群中的每个特征的偏置,针对每个集群确定主要特征。例如,对于每个集群n,当
Figure BDA0002757701680000183
大于预定阈值X,集群n朝向特征x偏置,并且特征x被确定为集群n的主要特征。在一些实施例中,用于确定集群n是否朝向特征x偏置的阈值X是从40%到60%的值。阈值X的任何其他值在各种实施例的范围内。例如,在一个或多个实施例中,阈值X为70%、85%或90%。在阈值X大于50%的至少一个实施例中,在集群中存在满足条件
Figure BDA0002757701680000191
的一个特征的最大值。在阈值为50%或更低的至少一个实施例中,可能的情况是在集群中存在一个以上的特征满足条件
Figure BDA0002757701680000192
在这样的情况下,集群被确定为由一个以上的特征控制。
当针对特征x没有集群具有大于预定阈值X的
Figure BDA0002757701680000193
时,具有最大
Figure BDA0002757701680000194
的集群被确定为具有特征x作为主要特征。该确定即使在具有最大
Figure BDA0002757701680000195
的集群已经被确定为具有除特征x以外的主要特征时也可适用。集群具有一个以上的主要特征在一个或多个实施例的范围内。特征被确定为一个以上集群的主要特征也在一个或多个实施例的范围内。
作为操作440的结果,k个集群中的每一者具有作为m个特征之一的至少一个主要特征,并且m个特征中的每一者被确定为k个集群中的至少一个的主要特征。
在操作450,从k个集群创建m个路径组,使得每个组具有与其他组的主要特征不同的唯一主要特征。例如,当在k个集群当中第一特征被确定为仅一个集群的主要特征时,则该集群被指定为具有第一特征作为主要导特征的组。此外,当在k个集群当中第二特征被确定为多于一个集群的主要特征时,这样的集群被一起合并到具有第二特征作为主要特征的组中。在一些实施例中,每个路径被包括在一个组中,从而产生多个不重叠的组。在另一示例中,在集群已被确定具有若干主要特征的情况下,该集群被合并成与若干主要特征相对应的若干组。结果,至少一个实施例包括路径被包括在多于一个的组中的潜在情况。
在一些实施例中,作为集群分析和路径分组操作155的操作450的结果,IC布局图的N个路径被分组成具有m个不同的主要特征的m个组,每个主要特征对应于通过特征编码和简化操作153获得的特征的简化集合300H中的m个特征之一。组的主要特征是控制该组中的路径的特征,如关于图2B-2F所述。例如,如关于图2B所述,具有金属层M3作为主要特征的组中的路径由金属层M3控制。
如图4所示,在集群分析和路径分组操作155的操作450之后,过程进行到ATPG操作156,其中使用一个或多个ATPG方法或算法来为已指定了主要特征的每个组中的一个或多个路径生成测试模式。本文描述了具有金属层M3作为主要特征的组的具体示例。
具体地,在从集群分析和路径分组操作155到ATPG操作156的报告(例如,网表)中标识具有金属层M3作为主要特征的组中的路径,以用于随后的测试。实际上,并不是组中的所有路径都是可测试的,因为路径的数量太多或路径的特定性质导致路径无法测试。对于组中的所有可测试路径,ATPG操作156生成对应的测试模式。所生成的测试模式因路径而异,例如这取决于路径上的单元或门的类型和/或数量、测试策略、或用于生成测试模式的ATPG方法或算法。在一个或多个实施例中使用的示例ATPG策略是用于生成强健的和非强健的路径延迟测试模式的路径延迟ATPG。如本文中关于图1所述,所生成的测试模式用于制造之前的IC设计验证的模拟,和/或用于测试实际制造的IC的ATE。
当路径之一未通过测试时,由于APST操作150将未通过路径识别为属于具有主要特征为金属层M3的组,因此在一个或多个实施例中,可以选择与主要特征(即金属层M3)相关的校正策略,以修复或改进未通过路径的时序性能。在至少一个实施例中,预期与金属层M3相关的这种校正策略还将改进由金属层M3控制的同一组中的其他路径的性能。结果,在一些实施例中,可以使用单个校正策略来针对或改进多个路径,从而节省IC设计和/或制造过程中的时间和精力。上述优点不仅可以在签署(signing-off)制造前的模拟、或测试实际的制造集成电路时实现,而且可以在更早期阶段实现。例如,在至少一个实施例中,依赖于具有指定的主要特征的已标识的路径组来限定用于修复由STA操作140发现的时序问题的策略。
有若干方法来基于路径的所标识的主要特征来修复或改进故障路径。在以金属层M3为主要特征的示例中,根据一些实施例的策略是在不同的金属层中重新布线故障路径的至少一部分。另外的策略是调整制造过程以改进金属层M3和/或金属层M3周围的其他金属层中互连的形成。其他校正策略在各种实施例的范围内。所述优点不限于以金属层M3为主要特征的具体示例。在一个或多个实施例中可以获得关于具有其他主要特征的路径和组的类似优点,如关于图2G或3H所述。
与其他方法相比,在一些实施例中,可以标识更多的要测试的路径,从而增加定位和校正小延迟缺陷(SDD)的可能性,同时涵盖SDD的广泛潜在原因。如本文所述,SDD涉及由各种因素引起的小延迟变化,包括但不限于制造工艺变化、电源噪声、串扰等。在某些情况下,尽管各个小区或网络的延迟很小且在规范之内,但多个这种小延迟的累积延迟(尤其是在长路径上)可能会大到导致故障。为了检测潜在的SDD故障,其他方法选择并测试最关键路径,即最长路径和/或具有基于STA时序报告的最小松紧度的路径。这种方法只关注范围很窄的问题,并且可能导致选择少量的路径进行测试和/或被测试,而没有为SDD的各种原因提供足够的涵盖范围。
相比之下,在一个或多个实施例中,因为针对测试识别的路径涉及广泛的特征,如关于图2G和3H所述,更多数量的路径最终被测试,同时涵盖了SDD的各种潜在原因。同时,由其他方法涵盖的关键路径被涵盖在一个或多个实施例中,该一个或多个实施例包括主要特征为时序特征(包括松紧度)的一组或多组路径。
在至少一个实施例中对SDD的潜在原因的广泛涵盖使得能够定位和修复各种系统缺陷,这些缺陷是高级工艺节点中的主要挑战之一。其他方法缺乏这种能力。在一些实施例中,另外的优点包括但不限于SDD的分布式工艺缺陷涵盖、针对任何特定特征和/或工艺问题的能力、工艺节点的独立性。
图5是根据一些实施例的方法500的流程图。在至少一个实施例中,方法500全部或部分由本文所述的处理器执行。
在操作505,提取集成电路(IC)布局图中的多个路径的多个特征。例如,从包含与IC布局图相对应的IC原理图的Verilog网表、包含IC布局图的一个或多个DEF和/或LEF文件、STA的时序报告、或库中的至少一者提取特征,如关于图2G所述。
在操作510,基于多个路径上的至少一个特征与松紧度的相关系数和/或基于没有变化的至少一个特征,从多个特征中去除至少一个特征以获得简化特征集合。例如,计算多个路径上的每个特征与松紧度的相关系数,如关于图3G所述。响应于一个或多个特征的相关系数在预定范围内,从多个特征中去除一个或多个特征,从而得到简化特征集合,如关于图3H所述。例如,在至少一个实施例中,当所有特征具有变化并且多个路径上的所有特征与松紧度的相关系数在关于图3G描述的预定范围之外时,省略操作510。
在操作515,将多个路径被聚类成多个集群。例如,应用聚类算法以将多个路径划分为多个集群,如关于图4中的特征聚类操作154所述。
在操作520,将包括在简化特征集合中的特征确定为多个集群当中的每个集群的主要特征。例如,如关于图4所述,为每个集群确定主要特征。例如,主要特征是控制集群中的路径的特征,如关于图2B-2F所述。
在操作525,具有与其他集群的主要特征不同的主要特征的每个集群被指定为要从多个集群创建的多个路径组当中的路径组,例如,如关于图4中的操作450所述。
在操作530,合并具有相同主要特征的集群以获得多个组中的另一组,例如,如关于图4中的操作450所述。
在操作535,从IC布局图中的多个路径创建多个路径组,其中每个组具有多个路径的多个特征当中的主要特征,并且多个组的主要特征彼此不同,例如,作为操作525、530的结果。
在操作540,针对多个组当中的每个组中的至少一个路径生成至少一个测试模式。例如,执行自动测试模式生成(ATPG)以生成至少一个测试模式,如关于图4中的ATPG操作156所述。
在操作545,测试多个组中的组中的至少一个路径。例如,通过在模拟中使用所生成的至少一个测试模式或通过ATE来测试至少一个路径,如关于图1中的测试操作160所述。
在操作550,响应于测试指示至少一个路径未通过,对IC布局图、具有IC布局图中所包括的单元的至少一个库的至少一部分、或用于制造与IC布局图相对应的IC的制造过程中的至少一者进行修改。例如,当路径未通过时,对IC设计、库、或制造过程中的至少一者进行一个或多个校正,如关于图1中的修改操作170所述。
在至少一个实施例中,所有操作505-550在没有用户输入或干预的情况下自动执行。
所述方法包括示例操作,但不一定要求按照所示顺序执行示例操作。根据本公开的实施例的精神和范围,可以适当地添加操作、替换操作、改变操作的顺序、和/或消除操作。结合不同特征和/或不同实施例的实施例在本公开的范围内,并且在审查本公开之后对于本领域的普通技术人员来说是显而易见的。
在一些实施例中,以上讨论的至少一种(或多种)方法全部或部分由至少一个EDA系统执行。在一些实施例中,EDA系统可用作下文讨论的IC制造系统的设计室的部分。
图6是根据一些实施例的电子设计自动化(EDA)系统600的框图。
在一些实施例中,EDA系统600包括APR系统。本文描述的设计布局图的方法表示根据一个或多个实施例的布线布置是例如根据一些实施例使用EDA系统600可实现的。
在一些实施例中,EDA系统600是包括硬件处理器602和非暂时性计算机可读存储介质604的通用计算设备。除其他外,存储介质604用计算机程序代码606(即,一组可执行指令)编码,即存储计算机程序代码606。由硬件处理器602执行指令606表示(至少部分地)根据一个或多个实施例的实现本文所述的部分或全部方法(下文中,所述过程和/或方法)的EDA工具。
处理器602经由总线608电耦合到计算机可读存储介质604。处理器602还通过总线608电耦合到I/O接口610。网络接口612还经由总线608电连接到处理器602。网络接口612连接到网络614,使得处理器602和计算机可读存储介质604能够经由网络614连接到外部元件。处理器602被配置为执行在计算机可读存储介质604中编码的计算机程序代码606,以便使系统600可用于执行所述过程和/或方法的一部分或全部。在一个或多个实施例中,处理器602是中央处理单元(CPU)、多处理器、分布式处理系统、专用集成电路(ASIC)和/或合适的处理单元。
在一个或多个实施例中,计算机可读存储介质604是电子、磁性、光学、电磁、红外和/或半导体系统(或装置或设备)。例如,计算机可读存储介质604包括半导体或固态存储器、磁带、可移动计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和/或磁盘。在使用光盘的一个或多个实施例中,计算机可读存储介质604包括光盘只读存储器(CD-ROM)、光盘读/写(CD-R/W)和/或数字视频盘(DVD)。
在一个或多个实施例中,存储介质604存储计算机程序代码606,计算机程序代码606被配置为使系统600(其中这样的执行表示(至少部分地)EDA工具)可用于执行所述过程和/或方法的一部分或全部。在一个或多个实施例中,存储介质604还存储有助于执行所述过程和/或方法的一部分或全部的信息。在一个或多个实施例中,存储介质604存储包括本文所公开的这样的标准单元的标准单元的库607。
EDA系统600包括I/O接口610。I/O接口610耦合到外部电路。在一个或多个实施例中,I/O接口610包括键盘、按键、鼠标、轨迹球、触控板、触摸屏和/或光标方向键,以用于将信息和命令传送到处理器602。
EDA系统600还包括耦合到处理器602的网络接口612。网络接口612允许系统600与网络614通信,一个或多个其他计算机系统连接到网络614。网络接口612包括无线网络接口,例如蓝牙、WIFI、WIMAX、GPRS或WCDMA;或有线网络接口,例如以太网、USB或IEEE-1364。在一个或多个实施例中,在两个或更多个系统600中实现所述过程和/或方法的一部分或全部。
系统600被配置为通过I/O接口610接收信息。通过I/O接口610接收到的信息包括用于由处理器602处理的指令、数据、设计规则、标准单元库和/或其他参数中的一者或多者。信息经由总线608传送到处理器602。EDA系统600被配置为通过I/O接口610接收与UI相关的信息。信息通过用户接口(UI)642存储在计算机可读介质604中。
在一些实施例中,所述过程和/或方法的一部分或全部被实现为用于由处理器执行的独立软件应用程序。在一些实施例中,所述过程和/或方法的一部分或全部被实现为作为附加软件应用的一部分的软件应用。在一些实施例中,所述过程和/或方法的一部分或全部被实现为软件应用的插件。在一些实施例中,所述过程或方法中的至少一者被实现为作为EDA工具的一部分的软件应用。在一些实施例中,所述过程和/或方法的一部分或全部被实现为EDA系统600使用的软件应用。在一些实施例中,使用CADENCE DESIGN SYSTEMS公司提供的
Figure BDA0002757701680000251
等工具或另一合适的布局生成工具生成包括标准单元的布局图。
在一些实施例中,过程被实现为存储在非暂时性计算机可读记录介质中的程序的功能。非暂时性计算机可读记录介质的示例包括但不限于外部/可移动和/或内部/内置存储装置或存储单元,例如,光盘(例如DVD)、磁盘(例如硬盘)、半导体存储器(例如ROM、RAM、存储卡等)中的一者或多者。
图7是根据一些实施例的集成电路(IC)制造系统700及与其相关联的IC制造流程的框图。在一些实施例中,基于布局图,使用制造系统700制造以下各项中的至少一者:(A)一个或多个半导体掩模或(B)半导体集成电路层中的至少一个组件。
在图7中,IC制造系统700包括在与制造IC器件760相关的设计、开发和制造周期和/或服务中彼此交互的实体,例如设计室720、掩模室730和IC制造商/制作商(“fab”)750。系统700中的实体通过通信网络连接。在一些实施例中,通信网络是单个网络。在一些实施例中,通信网络是各种不同的网络,例如内联网和因特网。通信网络包括有线和/或无线通信信道。每个实体与一个或多个其他实体交互,并且向一个或多个其他实体提供服务和/或从一个或多个其他实体接收服务。在一些实施例中,设计室720、掩模室730和IC fab 750中的两者或更多者由单个较大的公司拥有。在一些实施例中,设计室720、掩模室730和IC fab750中的两者或更多者共存于公共设施中并使用公共资源。
设计室(或设计团队)720生成IC设计布局图722。IC设计布局图722包括为IC器件760设计的各种几何图案。几何图案对应于构成待制造的IC器件760的各种组件的金属、氧化物或半导体层的图案。各层结合起来形成各种集成电路特征。例如,IC设计布局图722的一部分包括各种IC特征,例如有源区域、栅极电极、源极和漏极、层间互连的金属线或通孔以及用于接合焊盘的开口,以形成在半导体衬底(例如硅晶片)和设置在半导体衬底上的各种材料层中。设计室720实现适当的设计程序以形成IC设计布局图722。设计程序包括逻辑设计、物理设计或布局布线操作中的一者或多者。在具有几何图案信息的一个或多个数据文件中呈现IC设计布局图722。例如,IC设计布局图722可以用GDSII文件格式或DFII文件格式表示。
掩模室730包括数据准备732和掩模制造744。掩模室730根据IC设计布局图722使用IC设计布局图722以制造一个或多个用于制造IC器件760的各层的掩模745。掩模室730执行掩模数据准备732,其中IC设计布局图722被转换成代表性数据文件(“RDF”)。掩模数据准备732向掩模制造744提供RDF。掩模制造744包括掩模刻写机。掩模刻写机将RDF转换为衬底上的图像,例如掩模(刻线)745或半导体晶片753。设计布局图722由掩模数据准备732操纵,以符合掩模刻写机的特定特性和/或IC fab 750的要求。在图7中,掩模数据准备732和掩模制造744被示为单独的元件。在一些实施例中,掩模数据制备732和掩模制作744可统称为掩模数据准备。
在一些实施例中,掩模数据准备732包括光学邻近校正(OPC),该光学邻近校正使用光刻增强技术来补偿诸如由衍射、干涉、其他过程效应等引起的图像误差。OPC调整IC设计布局图722。在一些实施例中,掩模数据准备732包括进一步的分辨率增强技术(RET),例如离轴照明、亚分辨率辅助特性、相移掩模、其他合适的技术等或其组合。在一些实施例中,还使用逆光刻技术(ILT),这将OPC视为逆成像问题。
在一些实施例中,掩模数据准备732包括掩模规则检查器(MRC),该掩模规则检查器检查在OPC中经过过程的IC设计布局图722,其中一组掩模创建规则包含某些几何和/或连接性限制以确保足够的裕度,以说明半导体制造过程中的可变性等。在一些实施例中,MRC修改IC设计布局图722以补偿掩模制造744期间的限制,这可以撤销由OPC执行的修改的部分以满足掩模创建规则。
在一些实施例中,掩模数据准备732包括光刻工艺检查(LPC),其模拟将由IC fab750实现以制造IC器件760的处理。LPC基于IC设计布局图722模拟该处理以创建模拟制造的器件,例如IC器件760。LPC模拟中的工艺参数可以包括与IC制造周期的各种工艺相关联的参数、与用于制造IC的工具相关联的参数和/或制造工艺的其他方面。LPC考虑各种因素,例如航空图像对比度、焦深(“DOF”)、掩模误差增强因素(“MEEF”)、其他合适的因素等或其组合。在一些实施例中,在由LPC创建模拟制造的器件之后,如果模拟的器件在形状上不够接近来满足设计规则,则重复OPC和/或MRC以进一步改善IC设计布局图722。
应当理解,为了清楚起见,对掩模数据准备732的上述描述进行了简化。在一些实施例中,数据准备732包括诸如逻辑操作(LOP)之类的附加特征,以根据制造规则修改IC设计布局图722。另外,在数据准备732期间应用于IC设计布局图722的过程可以以各种不同的顺序执行。
在掩模数据准备732之后和掩模制造744期间,基于修改的IC设计布局图722制造掩模745或一组掩模745。在一些实施例中,掩模制造744包括基于IC设计布局图722执行一个或多个光刻曝光。在一些实施例中,基于经修改的IC设计布局图722,使用电子束(e束)或多个e束的机制在掩模(光掩模或刻线)745上形成图案。掩模745可以用各种技术形成。在一些实施例中,使用二元化(binary)技术形成掩模745。在一些实施例中,掩模图案包括不透明区域和透明区域。用于曝光已涂覆在晶片上的图像敏感材料层(例如,光致抗蚀剂)的辐射光束(例如紫外线(UV)束)被不透明区域阻挡并透过透明区域。在一个示例中,掩模745的二元掩模版本包括透明衬底(例如,熔融石英)和涂覆在二元掩模的不透明区域中的不透明材料(例如铬)。在另一示例中,使用相移技术形成掩模745。在掩模745的相移掩模(PSM)版本中,在相移掩模上形成的图案中的各种特征被配置为具有适当的相位差,以提高分辨率和成像质量。在各种示例中,相移掩模可以是衰减的PSM或交替的PSM。由掩模制造744生成的(一个或多个)掩模用于各种工艺中。例如,在离子注入工艺中用于在半导体晶片753中形成各种掺杂区域、在用于在半导体晶片753中形成各种蚀刻区域的蚀刻工艺、和/或在其它合适的工艺中使用这样的(一个或多个)掩模。
IC fab 750是包括用于制造各种不同的IC产品的一个或多个制造设施的IC制造企业。在一些实施例中,IC Fab 750是半导体铸造厂。例如,可能存在用于多个IC产品的前端制造(前端制程(FEOL)制程)的制造设施,而第二制造设施可提供用于IC产品互连和封装的后端制造(后端制程(BEOL)制造),并且第三家制造设施可以为铸造企业提供其他服务。
IC fab 750包括制造工具752,制造工具752被配置为在半导体晶片753上执行各种制造操作,使得IC器件760根据(一个或多个)掩模(例如掩模745)制造。在各种实施例中,制造工具752包括晶片步进机、离子注入机、光致抗蚀剂涂覆机、工艺室(例如,CVD室或LPCVD炉)、CMP系统、等离子蚀刻系统、晶片清洁系统中的一者或多者,或能够执行本文所述的一种或多种合适制造工艺的其他制造设备。
IC fab 750使用掩模室730制造的(一个或多个)掩模745来制造IC器件760。因此,IC fab 750至少间接地使用IC设计布局图722来制造IC器件760。在一些实施例中,半导体晶片753由IC fab 750使用(一个或多个)掩模745制造以形成IC器件760。在一些实施例中,IC制造包括至少间接地基于IC设计布局图722执行一个或多个光刻曝光。半导体晶片753包括硅衬底或其它适当衬底,其上形成有材料层。半导体晶片753还包括各种掺杂区域、电介质特征、多层互连等中的一者或多者(在随后的制造步骤中形成)。
关于集成电路(IC)制造系统(例如,图7的系统700)以及与其相关联的IC制造流程的详细信息在以下专利中找到:例如在2016年2月9日授权的美国专利号9256709、2015年10月1日公开的美国预授权公开号20150278429、2014年2月6日公开的美国预授权公开号20140040838、以及2007年8月21日授权的美国专利号7260442,这些专利中的每个的整体通过引用并入本文中。
在一些实施例中,一种方法至少部分地由处理器执行,所述方法包括从集成电路(IC)布局图中的多个路径创建路径的多个组。所述多个组中的每个组在所述多个路径的多个特征当中具有主要特征。所述多个组的所述主要特征彼此不同。所述方法还包括测试所述多个组当中的一个组中的至少一个路径。所述方法还包括响应于所述测试指示所述至少一个路径未通过,修改以下各项中的至少一项:所述IC布局图,具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或用于制造与所述IC布局图相对应的IC的制造工艺。
在一些实施例中,一种系统包括处理器。所述处理器被配置为提取集成电路(IC)布局图中的多个路径的多个特征。所述处理器还被配置为将所述多个路径聚类成多个集群。所述处理器还被配置为对于所述多个集群当中的每个集群,确定所述每个集群的主要特征,所述主要特征被包括在所述多个特征中。所述处理器还被配置为基于所述多个集群的所述主要特征,从所述多个集群创建路径的多个组,所述多个组当中的每个组具有所述主要特征中的唯一主要特征。所述处理器还被配置为对于所述多个组当中的每个组,执行自动测试模式生成(ATPG)以生成至少一个测试模式,以及使用所生成的至少一个测试模式对所述每个组中的至少一个路径执行测试。所述处理器还被配置为响应于所述测试指示所述至少一个路径未通过,修改以下各项中的至少一项:所述IC布局图,具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或用于制造与所述IC布局图相对应的IC的制造工艺。
在一些实施例中,一种计算机程序产品包括非态计算机可读介质,其中包括指令。所述指令当由处理器执行时,使所述处理器执行以下操作:通过以下操作,从集成电路(IC)布局图中的多个路径创建路径的多个组:将所述多个路径聚类成多个集群,针对所述多个集群当中的每个集群确定主要特征,所述主要特征被包括在所述多个路径的多个特征中;将具有域其他集群的主要特征不同的主要特征的每个集群指定为所述多个组当中的一个组;并且合并具有的相同主要特征的集群以获得所述多个组中的另一个组。所述指令当由处理器执行时,还使所述处理器执行对所述多个组当中的一个组中的至少一个路径的测试,以及响应于所述至少一个路径未通过所述测试,修改以下各项中的至少一项:所述IC布局图,具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或用于制造与所述IC布局图相对应的IC的制造工艺。
以上概述了若干实施例的特征,以便本领域技术人员可以更好地理解本公开的各个方面。本领域技术人员应当理解,他们可以容易地使用本公开作为设计或修改其他过程和结构的基础,以实现相同的目的和/或实现本文介绍的实施例的相同优点。本领域技术人员还应当认识到,这样的等效结构不背离本公开的精神和范围,并且他们可以在不背离本公开的精神和范围的情况下在本公开中进行各种改变、替换和更改。
示例1.一种用于集成电路设计的方法,所述方法至少部分地由处理器执行,所述方法包括:从集成电路IC布局图中的多个路径创建路径的多个组,其中所述多个组中的每个组在所述多个路径的多个特征当中具有主要特征,并且所述多个组的所述主要特征彼此不同;测试所述多个组当中的一个组中的至少一个路径;以及响应于所述测试指示所述至少一个路径未通过,修改以下各项中的至少一项:所述IC布局图,具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或用于制造与所述IC布局图相对应的IC的制造工艺。
示例2.根据示例1所述的方法,其中所述修改不仅改变未通过所述测试的所述至少一个路径,而且还改变与所述至少一个路径相同的组中的其他路径。
示例3.根据示例1所述的方法,还包括:针对所述组中的所述至少一个路径生成至少一个测试模式,其中,所述测试包括使用所生成的至少一个测试模式来测试所述至少一个路径。
示例4.根据示例1所述的方法,其中:所述多个特征包括以下各项中的至少一项:所述IC布局图的静态时序分析STA的时序报告中的一个或多个时序特征,与所述IC布局图相对应的IC原理图中的一个或多个逻辑特征,或所述IC布局图中的元件的一个或多个物理特征。
示例5.根据示例1所述的方法,还包括:从所述多个特征中去除至少一个特征以获得包括所述多个组的所述主要特征的简化特征集合。
示例6.根据示例5所述的方法,其中:在所述去除中,所去除的至少一个特征包括在所述多个路径上没有变化的特征。
示例7.根据示例5所述的方法,还包括:对于所述多个特征当中的每个特征,确定以下两者之间的相关系数:所述多个路径中的所述特征的值,以及所述多个路径中的松紧度的值,其中,在所述去除中,所去除的至少一个特征包括具有预定范围内的相关系数的特征。
示例8.根据示例7所述的方法,其中:所述多个特征包括:具有数值值的数值特征,以及具有非数值值的分类特征,所述方法还包括:将所述分类特征的非数值值转换为转换数值值;将所述数值特征的数值值和所述分类特征的转换数值值标准化;以及使用所述标准化的值来确定松紧度与所述多个特征当中的每个特征之间的相关系数。
示例9.根据示例8所述的方法,其中:所述分类特征包括:管脚名称或实例名称,在所述转换中,基于与所述管脚名称或实例名称相关联的层级等级,所述管脚名称或实例名称被转换为对应的转换数值值,单元特征,在所述转换中,所述单元特征被分割成单元功能类型和工艺参数,然后所述单元功能类型和所述工艺参数被转换成对应的转换数值值,以及其他特征,在所述转换中,使用顺序编码,所述其他特征被转换成对应的转换数值值。
示例10.根据示例1所述的方法,其中:创建所述多个组包括:将所述多个路径聚类成多个集群,针对所述多个集群当中的每个集群确定所述主要特征,以及在所述多个集群中,将具有与其他集群的主要特征不同的主要特征的每个集群指定为所述多个组当中的一个组,并且合并具有相同的主要特征的集群以获得所述多个组中的另一个组。
示例11.根据示例10所述的方法,其中:针对所述多个集群当中的每个集群确定所述主要特征包括:计算CBnx=(CMnx-DSx)/DSx,其中,CBnx是集群n中的特征x的偏置,CMnx是集群n中路径中的特征x的平均值,以及DSx是多个路径中的特征x的平均值,并且响应于
Figure BDA0002757701680000321
大于预定阈值,确定特征x是集群n的主要特征,其中所述多个特征包括m个特征。
示例12.根据示例11所述的方法,其中:针对所述多个集群当中的每个集群确定所述主要特征还包括:响应于没有集群具有大于所述预定阈值的
Figure BDA0002757701680000322
将特征x指定为具有最大
Figure BDA0002757701680000323
的集群的主要特征。
示例13.根据示例10所述的方法,其中:所述聚类包括K均值聚类。
示例14.一种用于集成电路设计的系统,包括处理器,所述处理器被配置为:提取集成电路IC布局图中的多个路径的多个特征,将所述多个路径聚类成多个集群,对于所述多个集群当中的每个集群,确定所述每个集群的主要特征,所述主要特征被包括在所述多个特征中,基于所述多个集群的所述主要特征,从所述多个集群创建路径的多个组,所述多个组当中的每个组具有所述主要特征中的唯一主要特征,对于所述多个组当中的每个组,执行自动测试模式生成ATPG以生成至少一个测试模式,使用所生成的至少一个测试模式对所述每个组中的至少一个路径执行测试,并且响应于所述测试指示所述至少一个路径未通过,使得修改以下各项中的至少一项:所述IC布局图,具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或用于制造与所述IC布局图相对应的IC的制造工艺。
示例15.根据示例14所述的系统,其中:所述处理器被配置为提取所述多个特征,作为:所述IC布局图的静态时序分析STA的时序报告的一个或多个时序特征,与所述IC布局图相对应的IC原理图的一个或多个逻辑特征,以及所述IC布局图中的元件的一个或多个物理特性。
示例16.根据示例14所述的系统,其中:所述处理器被配置为从所述多个特征中去除在所述多个路径上没有变化的特征。
示例17.根据示例14所述的系统,其中:所述多个特征包括:具有数值值的数值特征,以及具有非数值值的分类特征,所述处理器还被配置为:将所述分类特征的非数值值转换为转换数值值;将所述数值特征的数值值和所述分类特征的转换数值值标准化;使用所述标准化的值来确定松紧度与所述多个特征之间的相关系数;以及从所述多个特征中去除具有预定范围内的所述相关系数的特征。
示例18.一种计算机程序产品,包括非暂态计算机可读介质,其中包括指令,所述指令当由处理器执行时使所述处理器执行以下操作:通过以下操作,从集成电路IC布局图中的多个路径创建路径的多个组:将所述多个路径聚类成多个集群,针对所述多个集群当中的每个集群确定主要特征,所述主要特征被包括在所述多个路径的多个特征中,将具有与其他集群的主要特征不同的主要特征的每个集群指定为所述多个组当中的一个组,并且合并具有相同的主要特征的集群以获得所述多个组中的另一个组;执行对所述多个组当中的一个组中的至少一个路径的测试;以及响应于所述至少一个路径未通过所述测试,使得修改以下各项中的至少一项:所述IC布局图,具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或用于制造与所述IC布局图相对应的IC的制造工艺。
示例19.根据示例18所述的计算机程序产品,其中,所述指令当由所述处理器执行时,还使得所述处理器:通过以下操作,针对所述多个集群当中的每个集群确定所述主要特征:计算CBnx=(CMnx-DSx)/DSx,其中,CBnx是集群n中的特征x的偏置,CMnx是集群n中路径中的特征x的平均值,以及DSx是多个路径中的特征x的平均值,并且响应于
Figure BDA0002757701680000331
大于预定阈值,确定特征x是集群n的主要特征,其中所述多个特征包括m个特征,并且响应于没有集群具有大于所述预定阈值的
Figure BDA0002757701680000332
将特征x指定为具有最大
Figure BDA0002757701680000333
的集群的主要特征。
示例20.根据示例18所述的计算机程序产品,其中,所述指令当由所述处理器执行时,还使得所述处理器:执行K均值聚类以将所述多个路径聚类到所述多个集群中。

Claims (10)

1.一种用于集成电路设计的方法,所述方法至少部分地由处理器执行,所述方法包括:
从集成电路IC布局图中的多个路径创建路径的多个组,其中
所述多个组中的每个组在所述多个路径的多个特征当中具有主要特征,并且
所述多个组的所述主要特征彼此不同;
测试所述多个组当中的一个组中的至少一个路径;以及
响应于所述测试指示所述至少一个路径未通过,修改以下各项中的至少一项:
所述IC布局图,
具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或
用于制造与所述IC布局图相对应的IC的制造工艺。
2.根据权利要求1所述的方法,其中
所述修改不仅改变未通过所述测试的所述至少一个路径,而且还改变与所述至少一个路径相同的组中的其他路径。
3.根据权利要求1所述的方法,还包括:
针对所述组中的所述至少一个路径生成至少一个测试模式,
其中,所述测试包括使用所生成的至少一个测试模式来测试所述至少一个路径。
4.根据权利要求1所述的方法,其中:
所述多个特征包括以下各项中的至少一项:
所述IC布局图的静态时序分析STA的时序报告中的一个或多个时序特征,
与所述IC布局图相对应的IC原理图中的一个或多个逻辑特征,或
所述IC布局图中的元件的一个或多个物理特征。
5.根据权利要求1所述的方法,还包括:
从所述多个特征中去除至少一个特征以获得包括所述多个组的所述主要特征的简化特征集合。
6.根据权利要求5所述的方法,其中:
在所述去除中,所去除的至少一个特征包括在所述多个路径上没有变化的特征。
7.根据权利要求5所述的方法,还包括:
对于所述多个特征当中的每个特征,确定以下两者之间的相关系数:
所述多个路径中的所述特征的值,以及
所述多个路径中的松紧度的值,
其中,在所述去除中,所去除的至少一个特征包括具有预定范围内的相关系数的特征。
8.根据权利要求7所述的方法,其中:
所述多个特征包括:
具有数值值的数值特征,以及
具有非数值值的分类特征,
所述方法还包括:
将所述分类特征的非数值值转换为转换数值值;
将所述数值特征的数值值和所述分类特征的转换数值值标准化;以及
使用所述标准化的值来确定松紧度与所述多个特征当中的每个特征之间的相关系数。
9.一种用于集成电路设计的系统,包括处理器,所述处理器被配置为:
提取集成电路IC布局图中的多个路径的多个特征,
将所述多个路径聚类成多个集群,
对于所述多个集群当中的每个集群,确定所述每个集群的主要特征,所述主要特征被包括在所述多个特征中,
基于所述多个集群的所述主要特征,从所述多个集群创建路径的多个组,所述多个组当中的每个组具有所述主要特征中的唯一主要特征,
对于所述多个组当中的每个组,
执行自动测试模式生成ATPG以生成至少一个测试模式,
使用所生成的至少一个测试模式对所述每个组中的至少一个路径执行测试,并且
响应于所述测试指示所述至少一个路径未通过,使得修改以下各项中的至少一项:
所述IC布局图,
具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或
用于制造与所述IC布局图相对应的IC的制造工艺。
10.一种计算机程序产品,包括非暂态计算机可读介质,其中包括指令,所述指令当由处理器执行时使所述处理器执行以下操作:
通过以下操作,从集成电路IC布局图中的多个路径创建路径的多个组:
将所述多个路径聚类成多个集群,
针对所述多个集群当中的每个集群确定主要特征,所述主要特征被包括在所述多个路径的多个特征中,
将具有与其他集群的主要特征不同的主要特征的每个集群指定为所述多个组当中的一个组,并且
合并具有相同的主要特征的集群以获得所述多个组中的另一个组;执行对所述多个组当中的一个组中的至少一个路径的测试;以及
响应于所述至少一个路径未通过所述测试,使得修改以下各项中的至少一项:
所述IC布局图,
具有包括在所述IC布局图中的单元的至少一个库的至少一部分,或
用于制造与所述IC布局图相对应的IC的制造工艺。
CN202011207868.0A 2020-11-03 2020-11-03 集成电路设计方法、系统和计算机程序产品 Pending CN114169279A (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202011207868.0A CN114169279A (zh) 2020-11-03 2020-11-03 集成电路设计方法、系统和计算机程序产品
US17/122,769 US11379643B2 (en) 2020-11-03 2020-12-15 Integrated circuit design method, system and computer program product
TW110127043A TWI777682B (zh) 2020-11-03 2021-07-22 積體電路設計方法、積體電路設計系統、以及電腦程式產品
US17/836,954 US11727177B2 (en) 2020-11-03 2022-06-09 Integrated circuit design method, system and computer program product
US18/356,426 US20230376660A1 (en) 2020-11-03 2023-07-21 Integrated circuit design method, system and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011207868.0A CN114169279A (zh) 2020-11-03 2020-11-03 集成电路设计方法、系统和计算机程序产品

Publications (1)

Publication Number Publication Date
CN114169279A true CN114169279A (zh) 2022-03-11

Family

ID=80476145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011207868.0A Pending CN114169279A (zh) 2020-11-03 2020-11-03 集成电路设计方法、系统和计算机程序产品

Country Status (3)

Country Link
US (3) US11379643B2 (zh)
CN (1) CN114169279A (zh)
TW (1) TWI777682B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114169279A (zh) * 2020-11-03 2022-03-11 台湾积体电路制造股份有限公司 集成电路设计方法、系统和计算机程序产品

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4621201A (en) * 1984-03-30 1986-11-04 Trilogy Systems Corporation Integrated circuit redundancy and method for achieving high-yield production
US5812561A (en) * 1996-09-03 1998-09-22 Motorola, Inc. Scan based testing of an integrated circuit for compliance with timing specifications
US6519749B1 (en) * 1998-01-09 2003-02-11 Silicon Perspective Corporation Integrated circuit partitioning placement and routing system
JPH11260931A (ja) * 1998-03-15 1999-09-24 Toshiba Microelectronics Corp 半導体集積回路装置の市場故障率推定方法、半導体集積回路装置の製造方法及びテスト用半導体集積回路装置
US6779162B2 (en) * 2002-01-07 2004-08-17 International Business Machines Corporation Method of analyzing and filtering timing runs using common timing characteristics
US7412637B2 (en) * 2003-01-10 2008-08-12 Syntest Technologies, Inc. Method and apparatus for broadcasting test patterns in a scan based integrated circuit
JP2004287681A (ja) * 2003-03-20 2004-10-14 Hitachi Ltd 配線設計支援システム、および、配線設計支援方法
US7260442B2 (en) 2004-03-03 2007-08-21 Taiwan Semiconductor Manufacturing Co., Ltd. Method and system for mask fabrication process control
US7487419B2 (en) * 2005-06-15 2009-02-03 Nilanjan Mukherjee Reduced-pin-count-testing architectures for applying test patterns
US7984410B2 (en) * 2007-07-27 2011-07-19 Springsoft Usa, Inc. Hierarchy-based analytical placement method for an integrated circuit
US7971176B2 (en) * 2008-03-18 2011-06-28 International Business Machines Corporation Method for testing integrated circuits
US7904870B2 (en) * 2008-04-30 2011-03-08 International Business Machines Corporation Method and apparatus for integrated circuit design model performance evaluation using basic block vector clustering and fly-by vector clustering
JP4580006B2 (ja) * 2008-07-10 2010-11-10 パナソニック株式会社 半導体集積回路のマスクレイアウト設計データの検証方法
US8381050B2 (en) * 2009-11-25 2013-02-19 International Business Machines Corporation Method and apparatus for increased effectiveness of delay and transition fault testing
US8578226B2 (en) * 2010-08-17 2013-11-05 Eigenix Apparatus and system for implementing variable speed scan testing
US8386866B2 (en) * 2010-08-17 2013-02-26 Eigenix Methods for implementing variable speed scan testing
US8850366B2 (en) 2012-08-01 2014-09-30 Taiwan Semiconductor Manufacturing Company, Ltd. Method for making a mask by forming a phase bar in an integrated circuit design layout
US9256709B2 (en) 2014-02-13 2016-02-09 Taiwan Semiconductor Manufacturing Company, Ltd. Method for integrated circuit mask patterning
US9465906B2 (en) 2014-04-01 2016-10-11 Taiwan Semiconductor Manufacturing Company, Ltd. System and method for integrated circuit manufacturing
US10296691B2 (en) * 2016-06-24 2019-05-21 International Business Machines Corporation Optimizing the layout of circuits based on multiple design constraints
US10222850B2 (en) * 2016-10-06 2019-03-05 International Business Machines Corporation Voltage and frequency balancing at nominal point
WO2018170027A1 (en) * 2017-03-13 2018-09-20 Universities Space Research Association System and method to hardcode interger linear optimization problems on physical implementations of the ising model
KR102066463B1 (ko) 2017-03-31 2020-01-15 울산과학기술원 융합기술 추출을 위한 빅데이터 처리 방법
US11334703B2 (en) * 2017-06-29 2022-05-17 Taiwan Semiconductor Manufacturing Co., Ltd. Integrated circuit layouts with fill feature shapes
US10803227B2 (en) * 2017-08-29 2020-10-13 Taiwan Semiconductor Manufacturing Co., Ltd. Integrated circuit layouts with line-end extensions
US10509881B2 (en) * 2017-09-28 2019-12-17 Taiwan Semiconductor Manufacturing Co., Ltd. Method for coloring circuit layout and system for performing the same
US10592625B1 (en) * 2017-10-30 2020-03-17 Mentor Graphics Corporation Cell-aware root cause deconvolution for defect diagnosis and yield analysis
US11361248B2 (en) * 2018-01-17 2022-06-14 Siemens Industry Software Inc. Multi-stage machine learning-based chain diagnosis
US10846453B1 (en) * 2018-09-20 2020-11-24 Synopsys, Inc. Generating interrelated path groups by using machine learning
US10943049B2 (en) * 2018-09-28 2021-03-09 Taiwan Semiconductor Manufacturing Co., Ltd. Rule check violation prediction systems and methods
US11023650B2 (en) * 2019-06-18 2021-06-01 Samsung Electronics Co., Ltd. Apparatus and method for circuit timing fixing using extension metal sections and alternate vias
KR20210015331A (ko) * 2019-08-01 2021-02-10 삼성전자주식회사 상태 쉐이핑 동작을 수행하기 위한 메모리 장치, 메모리 컨트롤러 및 이를포함하는 메모리 시스템
US20220215146A1 (en) * 2020-08-18 2022-07-07 Anaglobe Technology, Inc. Method for recognizing analog circuit structure
US11568113B2 (en) * 2020-08-26 2023-01-31 Duke University Variation-aware delay fault testing
CN114169279A (zh) * 2020-11-03 2022-03-11 台湾积体电路制造股份有限公司 集成电路设计方法、系统和计算机程序产品

Also Published As

Publication number Publication date
US20220138385A1 (en) 2022-05-05
TW202219814A (zh) 2022-05-16
US11727177B2 (en) 2023-08-15
US11379643B2 (en) 2022-07-05
US20220300689A1 (en) 2022-09-22
TWI777682B (zh) 2022-09-11
US20230376660A1 (en) 2023-11-23

Similar Documents

Publication Publication Date Title
US8516407B1 (en) Methods for quantitatively evaluating the quality of double patterning technology-compliant layouts
US11205032B2 (en) Integrated circuit design method, system and computer program product
US11275886B2 (en) Integrated circuit and method of forming same and a system
US11928415B2 (en) Hard-to-fix (HTF) design rule check (DRC) violations prediction
CN110852032A (zh) 产生集成电路元件的布局图的方法
US20240126973A1 (en) Post-Routing Congestion Optimization
CN115544941A (zh) 集成电路器件设计方法和系统
CN114201939A (zh) 用于修复布局违规的方法和系统
US20230376660A1 (en) Integrated circuit design method, system and computer program product
US20210248297A1 (en) Integrated circuit design method, system and computer program product
CN114912399A (zh) 制程技术评估的方法、系统及用于制程技术评估的方法
US20230274072A1 (en) Method of reducing design rule violations due to ir drops
US20220335200A1 (en) Electrically aware routing for integrated circuits
US20240176945A1 (en) Hard-to-fix (htf) design rule check (drc) violations prediction
Maynard et al. High-value design techniques for mitigating random defect sensitivities

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