CN102768696B - 增量式布局分析 - Google Patents

增量式布局分析 Download PDF

Info

Publication number
CN102768696B
CN102768696B CN201210056057.4A CN201210056057A CN102768696B CN 102768696 B CN102768696 B CN 102768696B CN 201210056057 A CN201210056057 A CN 201210056057A CN 102768696 B CN102768696 B CN 102768696B
Authority
CN
China
Prior art keywords
analysis
layout data
data
layout
analysis process
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
CN201210056057.4A
Other languages
English (en)
Other versions
CN102768696A (zh
Inventor
J·M·帕里斯
B·玛歇尔
J·G·菲尔格森
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.)
Siemens Industry Software NV
Original Assignee
Mentor Corp
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 Mentor Corp filed Critical Mentor Corp
Publication of CN102768696A publication Critical patent/CN102768696A/zh
Application granted granted Critical
Publication of CN102768696B publication Critical patent/CN102768696B/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Abstract

公开了的用于增量式分析布局设计数据的技术。通过各种实现方法,可以只针对部分布局设计数据、使用可用分析标准的子集、或二者的某种组合来进行随后的增量式分析。例如,分析可限定在前次分析过程中识别的错误、前次分析过程后布局设计数据中的修改部分、设计者指定的特定区域、或它们的某种组合。进一步地,执行分析过程时,可只使用相关于正被分析的设计数据部分的分析标准的子集、前次分析过程中设计数据没有通过的初始分析标准的子集、设计者选择的初始分析标准的子集、或它们的某种组合。此外,这种增量式分析过程可在前次分析过程完成前启动。

Description

增量式布局分析
相关申请及交叉引用
本申请是国际申请日为2008年3月9日、国际申请号为PCT/US2008/056356、于2009年10月26日进入中国国家阶段、中国申请号为200880013643.2的PCT国际申请的分案申请。
根据专利法35U.S.C.§119,本申请要求2007年3月9日提交的第60/894,151号美国临时专利申请的优先权,该临时专利申请标题为“增量式设计规则检查”,发明人为JamesParis等人。该临时专利申请以引用方式全部并入本文。
技术领域
本发明用于布局设计数据的增量式分析。本发明的各方面特别有益于基于前次分析的结果,例如设计规则检查分析或设计可制造性分析的结果来分析布局设计数据中的修改。
背景技术
电子电路,例如集成微电路,被使用到汽车、微波、个人计算机等各种产品中。典型的从设计到制造微电路器件过程包括众人所知的“设计流程”的很多步骤。设计流程的特定步骤通常取决于微电路的种类、其复杂性、设计团队和制造微电路的微电路制造商或厂商。通常,软件和硬件“工具”在设计流程的各个步骤,通过运行软件仿真器和/或硬件仿真器,对设计进行验证,并更正设计中的错误或改进设计。
一些步骤在大多数设计流程中是常见的。在初始阶段,一个新电路的技术要求被转换为逻辑设计,有时又称作电路的寄存器传输级(RTL)描述。使用逻辑设计,电路被描述成硬件寄存器之间的信号交换以及对这些信号的逻辑操作。逻辑设计通常利用硬件描述语言(HDL),例如高速集成电路硬件描述语言(VHDL)。然后分析电路的逻辑以确定其将正确执行该电路所期望的功能。这一分析有时被称作“功能验证”。
在确认逻辑设计的正确性后,通过综合软件将逻辑设计转换为器件设计。器件设计通常用原理图或网表的形式来描述电路中使用的特定电子器件(例如晶体管、电阻器和电容器)以及它们之间的互连。器件设计通常相当于常规电路图显示的代表层次。在这一阶段,使用每个器件假设的速度特性,可对部分电路进行初步的时序估算。另外,分析电子器件间的关系以确定器件设计所描述的电路会正确执行所期望的功能。这一分析有时被称作“形式验证”。
当建立电路器件之间的关系后,设计被再次转换为描述特定几何元素的物理设计。这种类型的设计通常被称作“布局”设计。几何元素通常为多边形,其限定将在各种材料中创建的结构以便制造电路。通常,设计者将选择若干组代表电路器件元件(如接触件、栅等)的几何元素并把它们放置在设计区域中。这些几何元素组可以是定制设计的、从以前创建的设计库中选择的、或二者的某种组合。然后在几何元素间走线,这些线组成了用于互连电子器件的布线。布局工具(通常称作“布局布线”工具),如Mentor Graphics的ICStation或Cadence的Virtuoso,经常用于执行这些任务。
对于一个布局设计,电路的每个物理层在设计中均有对应的层表示,层表示中描述的几何元素限定将组成电路器件的电路器件元件的相对位置。因此,注入层表示中的几何元素限定将发生(不发生)掺杂的区域,金属层表示中的几何元素限定在金属层中连接电路器件的导线将形成的位置。
进一步地,可以修改布局设计以利用一个或更多分辨率增强技术(RET)。这些技术改善光刻制造工艺中根据布局设计创建的光罩/掩膜的可用分辨率。一种此类的修改工艺,有时称作光学邻近修正(OPC)工艺,可将诸如衬线或印压之类的特性加入到已有的布局设计数据中,以便改善根据修改后的布局设计数据生成的掩膜的分辨率。例如,光学邻近修正工艺可修改矩形多边形,从而包括“锤头”外形以在多边形拐角处降低光刻图像的圆形程度。
通常设计者会在布局设计数据被定稿以创建光刻掩膜前执行一个或更多过程以对其进行分析。例如,分析布局设计数据以确认其准确地代表电路器件,并且它们之间的关系正如器件设计中所描述的。这种类型的分析通常称为“布局经原理图检查”。分析布局设计数据还可确认其遵从各种设计要求,例如,在几何元素间提供最小间距。这类分析一般称为“设计规则检查”。进一步地,分析布局设计可识别一些可行的修改,以补偿制造过程的局限。例如,使用者可分析布局设计数据以确定是否可移动或更改一个或更多几何元素从而改善其可制造性,或是否可为在制造过程期间有较高可能产生故障的几何元素添加冗余几何元素到设计中作为备份。这类分析一般称作“设计可制造性检查”或“光刻友好设计检查”。类似地,在光学邻近修正工艺之后,设计者可分析布局设计数据以确定任何进一步的增强修改是否必要。
取决于分析过程的结果,设计者可进一步修改布局设计数据。例如,如果设计规则检查分析过程识别出两个几何元素放置得过近,则设计者可通过移动几何元素增加间距来更改布局设计数据。类似地,如果设计可制造性分析过程识别出可复制以增加冗余度的几何元素(例如,对过孔),则设计者可在设计中添加一个或更多复制的几何元素。在对布局设计数据修改之后,设计中可重复进行一个或更多期望的分析过程以确保更改没有产生任何新问题。这种修改和分析的周期可重复多次,直到设计者对布局设计数据分析的结果感到满意。
在布局设计定稿后,其被转换成掩膜或光罩写入工具可利用的格式,从而创建掩膜或光罩以用于光刻制造过程。掩膜和光罩通常通过使用电子或激光束(或电子束或激光束阵列)曝光空白的掩膜或光罩衬底的工具来制造。然而大部分掩膜写入工具只能够“写”某种类型的多边形,例如右三角形、矩形或其它不规则四边形。此外,工具的可用最大束(或束阵列)的尺寸在物理上限制了多边形的尺寸。因此,布局设计中较大的几何元素,或非右三角形、非矩形或非不规则四边形的几何元素(这些通常是布局设计中主要的几何元素)必须“分块”成掩膜或光罩写入工具能够写的较小的、更基本的多边形。这一过程有时称作“掩膜数据准备”。
在布局设计分小块之后,分块的布局设计数据可转换成掩膜或光罩写入工具兼容的格式。这些格式的例子有Applied Materials Company旗下ETEC制造的光栅扫描机所支持的MEBES、用于Nuflare,JEOL和东芝机器的各种向量扫描格式,如VSB 11或VSB 12等。写后的掩膜或光罩继而可被用于光刻过程,通过用光线或其它放射线曝光晶片的选定区域以在晶片上生产所期望的集成电路器件。
如上所述,布局设计者可以重复分析和修改周期多次。然而多次分析过程耗费时间并需要大量的处理资源。即使使用了分布式计算系统,例如,在先进的微处理器设计上运行一次设计规则检查过程的迭代也需要几个小时。此外,使用常规设计规则检查技术,设计者需要运行设计规则检查过程10到15次直至设计满意为止。进一步地,设计者预期未来微电路设计和分析这些设计的标准将继续变得更为复杂。
发明内容
本发明的各方面涉及增量式分析布局设计数据的技术。本发明的某些实现特别适用于在启动了常规分析过程之后,即在使用一套初始分析标准分析了整个布局设计数据之后。使用本发明的各种实施例,随后可仅对布局设计数据的一部分、使用分析标准的子集、或二者的某个组合来执行增量分析。例如,使用本发明的一些实现,分析可限于初始(或其它前次)分析过程中识别的错误、初始(或其它前次)分析过程后做出的布局设计数据中的修改、设计者指定的特别区域、或其某种组合。进一步地,本发明的一些实现可以仅使用相关于所分析的部分设计数据的初始分析标准的子集、设计数据在初始(或其它前次)分析过程中没有通过的初始分析标准的子集、设计者选择的初始分析标准的子集、或其某种组合来执行分析过程。
使用本发明的各种实施例,增量分析过程(也就是,仅使用初始布局设计数据的选定部分、使用初始分析标准的子集、或使用二者的分析过程)可在初始(或其它前次)分析过程结束前启动。例如,设计者可在提供实时分析结果的初始分析过程仍在继续时利用它。当识别出布局设计数据中的错误时,设计者可修改设计以纠正错误。然后设计者可启动增量设计过程以确认错误被纠正,并且/或此修改没有产生新的错误,即便初始分析过程仍然在继续分析布局设计数据。
附图说明
图1示出了根据本发明实施例的包含主计算机及一个或多个远程计算机的计算机网络的框图;
图2示出了根据本发明实施例的处理器单元的框图;
图3示出了根据本发明实施例的增量分析工具的框图;
图4A和图4B示出了根据本发明实施例的增量分析工具的操作的流程图;
图5示出了根据本发明实施例的由用户界面模块提供的用户界面的图示;
图6A-图6C示出了根据本发明实施例的基于布局设计中的错误标记创建光环区域的示例的图示;
图7A-图7D示出了根据本发明实施例的由使用者选择光环区域的尺寸和/或形状的示例的图示;
图8示出了根据本发明实施例的用户界面的图示;以及
图9A-图9B示出了根据本发明实施例的用户界面的图示。
具体实施方式
布局设计数据的组织
如这里所用,术语“设计”的意思包括描述整个微器件的数据,例如集成电路器件或微机电系统(MEMS)器件。不过,这个术语的意思还包括描述整个微电路中一个或更多个组成部分的较小组数据,例如集成电路器件的层,或甚至是集成电路器件的层的一部分。进一步地,术语“设计”的意思还包括描述多个微器件的数据,例如将用于创建掩膜或光罩的数据,以便在单个衬底上同时形成多个微型器件。布局设计数据可以是任何期望的格式,例如,图形数据系统II(GDSII)数据格式或由国际半导体设备与材料(SEMI)提议的开放式工艺图系统交换标准(OASIS)数据格式。其它格式包括Open Access开源格式、Synopsys公司的Milkyway、和Mentor Graphics公司的EDDM。
新集成电路设计可包含在逻辑电路、存储电路、可编程现场阵列和其它电路器件中百万量级的晶体管、电阻器、电容器或其它电子结构之间的互连。为了允许计算机更容易地创建和分析这些大型数据结构(并允许人类使用者更好地理解这些数据结构),它们经常被层次化地组织成通常称为“单元”的较小结构。因此,对于微处理器或闪存设计,构成存储电路中用于存储单个比特的所有晶体管可被分类为单个“比特存储”单元。不用单独列举每个晶体管,构成单比特存储电路的一组晶体管可作为一个独体而被集体引用和操作。类似地,描述一个相对较大的16比特存储寄存器电路的设计数据可被分类为一个单独单元。这个高层次“寄存器单元”继而可包含16个比特存储单元和描述其它各类电路的设计数据,如用于传输数据进出每个比特存储单元的输入/输出电路的设计数据。类似地,描述一个128KB存储阵列的设计数据可简明地描述为仅64000个寄存器单元的组合,并包含描述其自身各类电路的设计数据,如传输数据进出每个寄存器单元的输入/输出电路的设计数据。
通过把微电路设计数据分类成层次化单元,可以对大型数据结构进行更加快速有效的处理。例如,电路设计者通常分析设计,以确定设计中描述的每个电路特性都遵从将要把设计制造成微电路的厂商指定的设计规则。针对上面这个例子,不必分析整个128KB存储阵列的每个特性,设计规则检查过程可分析单个比特单元的特性。检查的结果将适用于所有的单个比特单元。一旦证实单个比特单元的一个实例遵从设计规则,则设计规则检查过程可简单地通过分析寄存器单元的额外各种电路(这些电路也可能由一个或更多层次单元构成)的特性从而完成对该寄存器单元的分析。这个检查的结果将适用于所有的寄存器单元。一旦证实寄存器单元的一个实例遵从设计规则,则设计规则检查软件应用可简单地通过分析128KB存储阵列中额外各种电路的特性从而完成对整个存储阵列的分析。因此,大型数据结构的分析可精简成对相对较少数目的构成数据结构的单元的分析。
使用本发明的各种实施例,布局设计数据将包含两种不同类型的数据:“绘图层”设计数据和“导出层”设计数据.绘图层数据描述用来组成材料层中的结构以产生集成电路的几何特征。绘图层数据通常包含用于构成金属层、扩散层和多晶硅层中的结构的多边形。导出层包含由绘图层数据和其它导出层数据的组合组成的特征。例如,对于上面描述的晶体管栅,描述栅的导出层设计数据将从多晶硅材料层中的多边形与扩散材料层中的多边形的交接处导出。
例如,由设计规则检查模块执行的设计规则检查过程通常执行两种操作:确认设计数据值是否遵从指定参数的“检查”操作和创建导出层数据的“导出”操作。晶体管栅设计数据因此可通过下面所示的导出操作来创建:
栅=扩散层AND多晶硅层
这一操作的结果将是识别扩散层多边形与多晶硅层多边形的所有交接处的“层”数据。同样地,通过在扩散层中掺杂n型材料而形成的p型晶体管栅可通过下面所示的导出操作来识别:
p型栅=n型井AND栅
这一操作的结果将是识别扩散层中的多边形被n型材料掺杂的所有晶体管栅(也就是,扩散层多边形和多晶硅层多边形的交接处)的另一“层”数据。
由设计规则检查模块执行的检查操作将为数据设计值限定参数或参数范围。例如,使用者可能希望确保没有任何金属连接线与另一个连接线的距离小于一个微米。这类分析可通过下面所示的检查操作来执行:
外部金属<1
这一操作的结果将识别金属层设计数据中与同层另一多边形间距小于一个微米的每个多边形。
尽管上述操作利用绘图层数据,但是对导出层数据同样也可执行检查操作。例如,如果使用者希望确认没有晶体管栅与另一个栅之间的距离在一微米之内,则设计规则检查过程可包含下面的检查操作:
外部栅<1
这一操作的结果将识别代表了被放置在与另一栅间距小于一个微米位置的栅的所有栅设计数据。然而,应注意到只有在从绘图层设计数据中识别栅的导出操作被执行后,这个检查操作才可执行。
操作环境
本公开技术包含了在这里以单独方式以及它们的各种组合与子组合方式描述的系统和方法实施例的所有新颖的和非显而易见的特性和特征。公开实施例的特性和特征可以单独方式或相互之间的各种新颖和非显而易见的组合与子组合方式使用。
尽管本公开方法的操作以一种特定次序的方式进行说明以方便展示,但是应当理解这种说明方式包含了次序的重新调整,除非下面的特定语言详细解释要求某种特定次序。例如,以顺序的方式说明的操作在一些情况下可调整次序或并行执行。此外,为了简单起见,公开的流程图和框图通常不显示某些特定的方法可以和另外方法一起使用的各种途径。另外,详细说明有时使用词语如“确定”来说明本公开的方法。这些词语是对执行的实际操作的高度概括。相对于这些术语的实际操作基于特定的实现而不同,并可很容易地被所属领域的技术人员所辨别。
这里说明的方法可使用存储在计算机可读介质并由计算机执行的软件来实现。例如,一些公开的方法可作为电子设计自动化(EDA)工具的一部分来实现。这些方法可在单独的计算机或联网计算机上执行。为清楚起见,只说明与这些公开技术有关的软件部分;省略了所属领域已知的产品细节。
基于本发明实施例的各种电子设计自动化过程的执行可使用通过一个或更多可编程计算设备执行的计算机可执行软件指令来实现。因为本发明的这些实施例可使用软件指令来执行,因此将首先描述可利用本发明各种实施例的通用可编程计算机系统的组件和操作。此外,由于一些电子设计自动化过程的复杂性和许多电路设计的巨大规模,各种电子设计自动化工具被配置运行在可同时运行多处理线程的计算机系统上。将参照图1描述包含主计算机及一个或多个远程或从属计算机的计算机网络的组件和操作。然而这个操作环境只是适用操作环境的一个例子,并不用来限制本发明使用或功能的范围。
在图1中,计算机网络101包括主计算机103。在所显示的例子中,主计算机103是多处理器计算机,其包括多个输入和输出设备105以及存储设备107。输入和输出设备105可包括用于从使用者处接收输入数据或提供输出数据给使用者的任何设备。输入设备可包括,例如,键盘、麦克风、扫描仪或指点设备以接收使用者的输入。输出设备可包括显示器、扬声器、打印机或触觉反馈设备。这些设备及其连接在业界已为所知,因此这里不作详述。
存储设备107可类似地使用主计算机103可存取的计算机可读介质的任何组合来实现。计算机可读介质可包括,例如,微电路存储设备如读写存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)或闪存存储微电路设备、CD-ROM光盘、数字视频光盘(DVD)或其它光存储设备。计算机可读介质还可包括磁碟、磁带、磁盘或其他磁性存储设备、打孔介质、全息存储设备或任何其它可用于存储期望信息的介质。
如同以下将要具体讨论的,主计算机103运行软件应用程序,该程序执行基于本发明各种实施例的一个或多个操作。相应地,存储设备107存储软件指令109A,当这些指令被执行时,其执行软件应用程序以完成一个或多个操作。存储设备107还存储与软件应用程序一起使用的数据109B。在所显示的实施例中,数据109B包含过程数据,软件应用程序使用该过程数据来执行一些操作,这些操作的至少一部分可以是并行的。
主计算机103还包括多个处理器单元111和一个接口设备113。处理器单元111可以是能够被编程以执行软件指令109A的任何种类的处理器设备,不过传统上是微处理器设备。例如,一个或多个处理器单元111可以是商用通用可编程微处理器,如IntelPentium或XeonTM微处理器、Advanced Micro Devices AthlonTM微处理器或Motorola 68K/Coldfire微处理器。可选地或附加地,一个或多个处理器单元111可以是定制制造的处理器,如被设计成可优化执行指定类型的数学运算的微处理器。接口设备113、处理器单元111、存储设备107和输入输出设备105通过总线115连接在一起。
使用本发明的一些实现,主计算设备103可利用一个或多个含有多于一个处理器内核的处理器单元111。相应地,图2显示了可用于本发明各种实施例的多核处理器111的例子。如图所示,处理器单元111包括多个处理器内核201。每个处理器内核201包括计算引擎203和高速存储缓存205。如所属领域普通技术人员所知,计算引擎包含用于执行各种计算功能的逻辑器件,例如提取软件指令和执行所提取指令中指定的动作。这些动作可包括,例如,执行加法、减法、乘法和算术比较,执行逻辑操作如与、或、非或和异或,和提取数据。每个计算引擎203可使用其相应的高速存储缓存205来快速存储和提取数据和/或用于执行的指令。
每个处理器内核201连接到互连207。根据处理器内核201的体系结构,互连207可有不同的构造。对于一些处理器内核201,例如Sony公司、Toshiba公司和IBM公司生产的Cell微处理器,互连207可以实现为互连总线。然而对于其它的处理器内核201,例如位于加利福利亚州Sunnyval的Advanced Micro Devices提供的OpteronTM和AthlonTM双核处理器,互连207可以实现为系统请求接口设备。对于任何一种情况,处理器内核201通过互连207来与输入输出接口209和存储控制器210通信。输入输出接口209在处理器单元201和总线115之间提供通信接口。类似地,存储控制器210控制处理器单元201和系统存储设备107之间的信息交换。在本发明的一些实现中,处理器单元201可包含额外部件,例如处理器内核201可存取共享的高端高速缓冲存储设备。
尽管图2显示了本发明一些实施例可利用的处理器单元201的一种图解,但是应当理解该图解只是一个代表,不应当作为限定。例如,本发明一些实施例可利用具有一个或多个Cell处理器的主计算机103。Cell处理器利用多个输入输出接口209和多个存储控制器210。并且,Cell处理器含有9个不同类型的处理器内核201。特别地,其含有6个或更多协同处理器部件(SPE)和一个动力处理器部件(PPE)。每个协同处理器部件包括一个含有428x428比特寄存器的向量类计算引擎203、4个单精度浮点运算单元、4个整数运算单元、和存储指令与数据的556KB本地存储器。动力处理器部件继而控制协同处理器部件执行的任务。由于这种配置,Cell处理器可执行一些数学操作,例如其快速傅里叶变换(FFT)的计算速度可远远超过许多常规的处理器。
还应当理解,在一些实现中,多核处理器单元111可用来代替多个分离的处理器单元111。例如,不使用6个分离的处理器单元111,本发明的备选实现可利用单个含有6个内核的处理器单元111、每个处理器2个含有3个内核的多内核处理器单元、一个含有4个内核的多内核处理器单元111加上2个分离的单内核处理器单元111,等等。
现在返回图1,接口设备113允许主计算机103通过通信接口与从属计算机117A、117B、117C...117x通信。通信接口可以是任何可用类型的接口,例如包括,常规有线网络连接或光缆传输有线网络连接。通信接口还可以是无线连接,如无线光学连接、射频连接、红外连接或甚至是声学连接。接口设备113根据一个或多个通信协议,如传输控制协议(TCP)、用户数据报协议(UDP)和互联网协议(IP),把来自主计算机103和每个从属计算机117的数据和控制信号翻译成网络消息。这些以及其它常规通信协议在所属领域是公知的,因此在这里不再详述。
每个从属计算机117可包含由系统总线127连接在一起的存储设备119、处理器单元121、接口设备123,和可选的输入输出设备125。如同主计算机103一样,从属计算机117的可选输入输出设备125可包括任何常规输入或输出设备,例如键盘、指点设备、麦克风、显示器、扬声器和打印机。类似地,处理器单元121可以是任何类型的常规或定制制造的可编程处理器设备。例如,一个或多个处理器单元121可以是商用通用可编程微处理器,如IntelPentium或XeonTM微处理器、Advanced Micro Devices AthlonTM微处理器或Motorola68K/Coldfire微处理器。或者,一个或多个处理器单元121可以是定制制造的处理器,如被设计成可优化执行指定类型的数学运算的微处理器。进一步地,一个或多个处理器单元121可包含多个内核,如同上面参考图2的描述。例如,在本发明的一些实现中,一个或多个处理器单元121可以是Cell处理器。存储设备119可使用上述计算机可读介质的任何组合来实现。与接口设备113类似,接口设备123容许从属计算机117通过通信接口与主计算机103通信。
在所显示的例子中,主计算机103是含有多个处理器单元111的多处理器单元计算机,每个从属计算机117含有单个处理器单元121。然而请注意,本发明的备选实现可以使用含有单个处理器单元111的主计算机。进一步地,如同前面的说明,根据一个或多个从属计算机117的使用需要,它们可包含多个处理器单元121。同时,尽管主计算机103和从属计算机只显示了单个接口设备113或123,但是应当注意在本发明的备选实施例中,计算机103、一个或多个从属计算机117、或它们的一些组合均可以使用两个或更多的不同接口设备113或123来通过多个通信接口进行通信。
在本发明的各种例子中,主计算机103可连接到一个或多个外部数据存储设备。这些外部数据存储设备可通过使用主计算机103可存取的计算机可读介质的任何组合来实现。计算机可读介质可以包括,例如,微电路存储设备如读写存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)或闪存存储微电路设备、CD-ROM光盘、数字视频光盘(DVD)或其它光存储设备。计算机可读介质可还包括磁碟、磁带、磁盘或其他磁性存储设备、打孔介质、全息存储设备或任何其它可用于存储期望信息的介质。根据本发明的一些实现,一个或多个从属计算机117可以有选择地或额外地连接到一个或多个外部数据存储设备上。通常,这些外部数据存储设备包括还连接到主计算机103的数据存储设备,但它们也可不同于主计算机103所使用的任何数据存储设备。
还应当理解,图1和图2显示的计算机网络说明只是提供一个例子,并不用来限制本发明可选择实施例的使用或功能的范围。
增量分析工具
图3显示了根据本发明的各种实施例可实现的增量分析工具301的例子。增量分析工具301包括用户界面模块303、布局设计数据选择模块305、分析标准选择模块307、和分析过程模块309。如图所示,增量分析工具301可与布局设计数据存储装置311和分析标准存储装置313协同运作。
用户界面模块303为使用者提供一个或多个用户界面以用于控制布局设计数据选择模块305、分析标准选择模块307和分析过程模块309的操作。如同在此所用,词语“使用者”是指使用增量分析工具301来分析和修改微电路设计的任何单个人或多人。使用者可以是,例如,微电路设计的原始设计者,或是厂商里例如在把设计制造成微电路前试图修改已有微电路设计的使用者。如同下面将要详细讨论的,一个或多个用户界面容许使用者指示布局设计数据选择模块305以确定将在增量分析过程中进行分析的布局设计数据。类似地,一个或多个用户界面容许使用者指示分析标准选择模块307以确定在增量分析过程中用于分析选择的布局设计数据的分析标准。
响应于使用者的指示,布局设计数据选择模块305从布局设计数据存储装置311中选择布局设计数据,然后将其提供给分析过程模块309。类似地,响应于使用者的指示,分析标准选择模块307从分析标准存储装置313中选择分析标准,然后将其提供给分析过程模块309。使用所选择的分析标准,分析过程模块309分析所选择的布局设计数据。增量分析工具301的操作将结合图4A和图4B所示的流程图进行具体的讨论。
分析和校正之前
在步骤401,对布局设计数据进行第一次电子设计自动化分析过程。分析过程可以是任何类型的已知电子设计自动化分析过程,例如布局经原理图检查过程、设计规则检查过程、设计可制造性过程、或光学邻近修正验证过程。使用本发明的各种实施例,该第一次分析过程可由增量分析工具301来执行。然而使用本发明的另外一些实施例,第一次分析过程可由增量分析工具301之外的其它一些分析工具来执行。
如同前面提到的,在某些例子中第一次分析过程将对布局设计数据进行“完整”分析,也就是分析过程将分析布局设计的所有或主要部分(例如一个整层)。对于完整分析,分析过程通常使用大量分析标准来分析布局设计数据。例如,如果分析过程是设计规则检查过程,则完整分析可使用相对较大的列表或“一组”规则,布局设计数据必须遵从该规则才能通过分析。设计规则检查过程的一组规则可包括如下规则,诸如金属层金属线的最小间距、多晶硅层相邻平行线的最大长度、另一金属层中结构的最小密度,等等。这些规则组收集自设计者的经验和工业界的知识,并且通常是谨慎保管的私有秘密。
分析过程将识别布局设计数据中检测到的需要纠正的错误。例如,常规分析过程的分析结果可包括带有错误标记的设计映射表以显示每个检测到的错误的位置。另外,分析结果可识别布局设计数据违反并产生了错误的分析标准(例如,设计规则)。因此,如果布局设计中两条线违反了最小间距规则,则分析结果可包括标示出违规线的错误标记和说明所违反的最小间距规则的文本注释。如果由增量分析工具301来执行分析过程,那么增量分析工具301可存储第一次分析过程的结果。如果分析过程由增量分析工具301之外的不同工具来执行,那么分析过程的结果可提供给增量分析工具301以作后用。
接下来在步骤403中,设计者修改布局设计数据以纠正第一次分析过程识别的一个或多个错误。使用本发明的各种实施例,设计者使用增量分析工具301来修改布局设计数据。例如,用户界面模块303可提供给设计者权限以使用一个或多个布局设计数据编辑工具,如位于俄勒冈州Wilsonville的Mentor Graphics公司提供的Calibre RVE和CalibreInteractive软件工具。可选地,设计者可利用增量分析工具301之外的一个或多个分离的布局设计数据编辑工具来修改布局设计数据。如果增量分析工具301之外的布局设计数据编辑工具被用来修改布局设计数据,那么布局设计数据的修改版本可提供给增量分析工具301以作后用。
布局设计数据的选择
在步骤405,使用者选择增量分析过程将要进行第二次分析的布局设计数据。特别地,使用者利用用户界面模块303提供的一个或多个用户界面来指示布局设计数据选择模块305选择将要分析的布局设计数据。请注意如同在这里所用,术语“选择”包括使用者指示的选择,和使用者确定不作指示选择,而是允许增量分析工具301执行默认的选择。如同此前所述,本发明各种实施例容许使用者根据不同的特征来选择布局设计数据。
更改后的布局设计数据
本发明的一些实施例例如可以容许使用者选择自上一次版本更改后的布局设计数据的一部分。当使用者不是很容易地知道布局设计数据中所做的更改时,这种选择方法特别有用。例如,如果另一设计者使用与增量分析工具301不同的布局设计数据编辑工具在步骤403中修改了布局设计数据,则使用者可能不知道例如在第一次分析过程后,布局设计数据所做的更改。通过指示布局设计数据选择模块305来识别对布局设计数据早期版本的更改,使用者能够保证在第二次分析过程中会对布局设计数据所做的任何更改进行分析。
使用本发明的各种实施例,布局设计数据选择模块305能够使用各种技术来识别布局设计数据中的更改。如果是使用增量分析工具301进行的更改,那么布局设计数据选择模块305(或增量分析工具301的其它模块)可简单地在进行每个更改时把它记录下来。布局设计数据选择模块305可以例如将更改存储到查找表中。本发明的另外一些实施例还可以对布局设计数据的当前版本和布局设计数据的早期版本执行逻辑异或操作。如本领域的技术人员所知,这种逻辑操作将识别布局设计数据的两个版本之间的差别。
如果布局设计数据特别复杂或使用层次结构,则一些实现可利用哈希表来更快地识别布局设计数据两个版本之间的差别。如同以上详细讨论的,布局设计数据经常层次化地组织成单元。每个单元包含两种不同类型的设计组件中的一个:其它单元和几何元素(以及与这些元素相联系的各种数据,如文本数据)。为了确保布局设计数据不同版本中的两个单元实际上是相同的,单元的内容必须被检验以确认它们是相同的。然而把一个单元中的几何元素和另外一个单元中的每个几何元素进行比较直至找到一个匹配(或者直到确定第二个单元不包含匹配的几何元素)是非常耗时的,并且随着要比较的几何元素数量的增加所需时间以指数增长。类似地,把一个单元中的单元实例和另外一个单元中的每个单元实例进行比较直至找到一个匹配(或者直到确定第二个单元不包含匹配)也是非常耗时的,并随着要比较的实例数量的增加所需时间以指数增长。
为了减少把一个单元的内容和另外一个单元的内容进行比较所需的时间和计算资源,本发明的各种实施例将利用哈希操作以在比较前对两个单元中的设计组件进行分类。例如,本发明的一些实施例将创建用于对单元中的每个几何元素进行分类的哈希表。类似地,它们将创建用于对单元中每个单元实例进行分类的另一哈希表。一旦单元的内容被组织成这些哈希表,增量分析工具301就只需要把第一个单元的哈希表的一个“篮子”中的内容(也就是,含有一个索引值)和为潜在匹配的第二个单元创建的哈希表的相应“篮子”中的内容进行比较。
例如,增量分析工具301的一些实现将识别单元中的未处理的几何元素。然后,增量分析工具301将选择该几何元素的一些特征,这些特征可用来通过哈希功能对几何元素进行分类。例如,使用本发明的一些实现,增量分析工具301将在几何元素周围创建一个包围盒。如同所属领域的技术人员所了解的,包围盒的使用容许增量分析工具301甚至为不规则形状的几何元素建立容易比较的特征。然后增量分析工具301将选择包围盒上某个唯一点,例如左下角,并对该点的坐标值应用哈希功能。例如,本发明的一些实施例将通过组合几何元素包围盒左下角的x坐标和y坐标的绝对值来创建一个64比特数字或“哈希值”,然后对该哈希值应用哈希功能。
本发明的各种实施例可对几何元素的特征使用任何期望类型的哈希功能。然而本发明的一些实施例可以基于单元中需要分类的几何元素的数量来选择哈希功能。例如,如果一个单元有N个几何元素,则本发明的一些实施例将对哈希值除以数字S,S是不超过N的最接近N的质数。因此,如果单元有100个几何元素(即,N=100),则本发明的各种实施例将确定值S=97。然后增量分析工具301将对几何元素的哈希值除以S,并指定除法结果的模为该几何元素的索引值。重复这些步骤直到单元中的每个几何元素都被处理,并且将几何元素的唯一信息作为一个或多个键值加到哈希表中。然后,针对与第一个单元进行比较的第二个单元重复这些步骤的每一步,并使用相同的S值。
一旦针对每个单元中的几何元素建立了哈希表,每个单元中具有相同“篮子”或索引值的几何元素就可以进行比较。例如,第一个单元的哈希表有2个几何元素被赋索引值“3”,而第二个单元的哈希表有3个几何元素被赋索引值“3”。第一个哈希表中的第一个几何元素只需要与第二个哈希表中的3个几何元素的每一个进行比较,直到找到(或未找到)匹配。类似地,第一个哈希表中的第二个几何元素只需要与第二个哈希表中的3个几何元素的每一个进行比较,直到找到(或未找到)匹配。如果第一个哈希表中的第一个几何元素与第二个哈希表中的第一个几何元素匹配,并且第一个哈希表中的第二个几何元素与第二个哈希表中的第二个几何元素匹配,那么第二个哈希表中的第三个几何元素可被识别为新的几何元素。使用本发明的各种实施例,可通过使用哈希表中含有唯一标示其相应几何元素的信息的一个或多个键值来比较几何元素。
本发明的各种实施例可以利用任何唯一的特征来比较共享同一个索引值的几何元素。例如,本发明的一些实现可以比较几何元素每个拐角的坐标值来确认它们是否事实上相同。首先,如果坐标值的数量不同(例如一个几何元素有6个拐角,而另外一个几何元素有8个拐角),那么这两个几何元素可以立即被识别是不同的。在一些例子中,即便两个几何元素是相同的,它们的坐标值排列顺序会不同。例如,一个几何元素的拐角坐标值可以以顺时针方式排列,而另一个几何元素的拐角坐标值以逆时针方式排列。因此,本发明的各种例子可以用相同排列方式开始比较坐标值(例如,比较一个几何元素第一个拐角的坐标值和另外一个几何元素第一个拐角的坐标值)。如果坐标值不匹配,那么增量分析工具301将颠倒坐标值的比较顺序(例如,比较一个几何元素第一个拐角的坐标值和另外一个几何元素最后一个拐角的坐标值,比较一个几何元素第二个拐角的坐标值和另外一个几何元素倒数第二个拐角的坐标值,等等)。使用这种方法,可对几何元素的坐标值进行快速比较,而不需要使用需要更多计算的比较算法。
使用本发明的各种实施例,可使用针对几何元素的相同方法对两个单元中的单元实例进行分类和比较。然而由于单元实例包括用于放置单元的特定坐标位置,因此可以省略使用包围盒来确定哈希值的过程。代替地,可以使用单元放置位置的坐标值,而不是上面所述的包围盒左下角的坐标值。一旦两个单元的单元实例和几何元素被分类和比较,第一个单元中不匹配的单元实例就可被识别为删除的单元实例,而第二个单元中不匹配的单元实例可被识别为增加的单元实例。类似地,第一个单元中不匹配的几何元素可被识别为删除的几何元素,而第二个单元中不匹配的几何元素可被识别为增加的几何元素。使用这种方法,可以快速有效地识别两个不同版本的布局设计数据中所做的修改。
请注意,尽管基于哈希的比较技术的各种实现可用来执行此处所讨论的增量式分析,这些实现还可以用在布局设计数据的不同版本需要比较的任何操作或处理中。例如,基于哈希的比较技术的一些实现可用来在大型布局设计数据组中识别特定的部分(例如独有的电路设计)。
布局设计数据中的错误
本发明的一些实施例还可以容许使用者选择布局设计数据中没有通过前次分析过程的部分。因此,如果第一次分析过程的结果可提供给增量分析工具301使用,那么使用者可以指示布局设计数据选择模块305来选择前次结果中识别的一个或多个错误。如同前面所述的,分析过程的结果通常包含标示设计中的错误的错误标记(即布局设计数据中没有通过一个或多个分析标准的部分)。如果这些错误标记可提供给增量分析工具301使用,那么布局设计数据选择模块305能够使用这些标记来选择由这些标记所标示的部分布局设计数据。
使用本发明的一些实施例,使用者可以选择在布局设计数据中所识别的每个错误。也就是说,使用者可以利用用户界面来指示布局设计数据选择模块305识别布局设计数据中被错误标记标示的每个位置。然而,在本发明的另外一些实施例中,使用者可以可选地或额外地被容许仅选择特定类型的错误。例如,使用者可以指示布局设计数据选择模块305只识别违反最小金属层间距规则的那些错误。在一些实现中,使用者可以通过从前次分析过程结果中选择某个类型的错误来选择特定的错误类型。然后布局设计数据选择模块305在布局设计数据中识别这种错误类型的实例。
本发明的另外一些实施例可以有选择地或额外地允许使用者在布局设计数据中只选择“已更正”的那些错误(也就是,布局设计数据中被识别的错误已经被修正或被删除)。特别地,一些布局设计数据编辑工具可以把“已更正”的错误和“未更正”的错误区分开来。这些布局设计数据编辑工具例如在设计者指示错误已经被更正时,更改与错误标记相关联的标志值,在查找表中存储已更正的错误的位置,等等。布局设计数据选择模块305能够使用这一信息来识别并选择这些据称已经更正的错误。这一功能在使用者不用花费大量的时间去分析布局设计数据的其它部分,而只是希望确认特定错误已经被删除时很有用,特别是如果使用者知道很多错误还没有被更正。
通常在设计者知道纠正或“更正”错误所做的更改对标示错误的错误标记来说是本地的时候,基于前次识别的错误来选择布局设计数据可能很有用。如果对错误标记来说更改是本地的,那么分析被错误标记标示的布局设计数据通常会保证这些更改也会被分析。
使用者定义的布局设计数据
本发明的一些实施例可以有选择地或额外地允许使用者人工指定第二次增量分析过程所要分析的布局设计数据的一个或多个部分。例如,用户界面模块303可为使用者提供设计图,使用者可以在图中选择设计中要分析的位置。作为响应,布局设计数据选择模块305将选择布局设计数据中相应于使用者所选位置的部分。例如,如图5所示,使用者可利用用户界面模块303提供的用户界面来指定布局设计数据中一个区域的坐标。布局设计数据选择模块305然后会选择该指定区域内的布局设计数据。
光环
使用本发明的各种实施例,布局设计数据选择模块305会在所选择的布局设计数据周围创建一个“光环”区域。在光环区域内的布局设计数据然后被添加到所选择的布局设计数据以便由增量分析过程进行分析。使用本发明的一些实施例,布局设计数据选择模块305会在所选布局设计周围创建一个包围盒。布局设计数据选择模块305然后会根据包围盒的周边指明一个光环区域。
例如,图6A显示了布局设计中的一对错误标记601。错误标记601可以指示,例如,2个相邻线的间距小于最小间距宽度。如同此前所述,所选择的布局设计数据可以是错误标记如错误标记601标示的数据。如图6B所示,响应于对错误标记601所标示的错误的选择,布局设计数据选择模块305将创建包围盒603以包围错误标记601。下一步,如图6C所示,布局设计数据选择模块305将基于包围盒603的周边创建光环区域605。在所显示的例子中,布局设计数据选择模块305创建的包围盒603为1000μm x 1μm。下一步,布局设计数据选择模块305将指定光环区域为包围盒603的长度和宽度中较大一个(即1000μm)的某个倍数。使用所显示的本发明实现方法,布局设计数据选择模块305指定光环区域每边为包围盒603的长度的三倍,即3000μm x 3000μm。当然,本发明的另外一些实现可以用包围盒最长边的不同倍数,或者使用其它算法一起来确定光环区域。
本发明的各种实施例可以有选择地或额外地允许使用者选择光环区域的尺寸和/或形状。这对于例如阻止增量分析过程探测虚假错误很有用。例如,图7A显示错误标记701在第一个几何元素703和第二个几何元素705之间,这两个几何元素都与第三个几何元素707相邻。如图7B所示,如果布局设计数据选择模块305创建光环区域709,那么光环区域709可能会无意地包围太少的几何元素703至707。由此的结果是,尽管每个几何元素703至707实际上遵从最小宽度要求,但是下一次增量分析过程可能记录违反最小宽度要求的错误(如图7C中,错误标记711至715所指示的)。通过指定一个较大的光环区域(如图7D所示),使用者能够保证随后的增量分析过程不会记录不准确的最小宽度要求违规。
组合及其它选择标准
尽管上面说明了为增量分析选择布局设计数据的特定单独技术,但是应当理解本发明的各种实现可以容许使用者使用这些技术的组合来选择布局设计数据。特别地,本发明的一些实现可以容许使用者选择由任何两个或更多这些技术指定的一组布局设计数据(如同使用逻辑或操作)、容许使用者只选择由任何两个或更多这些技术指定的布局设计数据的重叠部分(如同使用逻辑与操作)、或者两者的组合。例如,本发明的一些实施例可以容许使用者首先选择早期分析过程所识别的错误,然后进一步选择这些区域中被使用者定义的区域包围的子集。另外一些实现可以有选择地或额外地允许使用者既选择早期分析过程所识别的错误又选择自早期版本后布局设计数据中的更改。
还要注意的是,除了上面说明的选择技术,本发明的各种实施例可以容许使用者使用其它技术来选择数据。例如,增量分析工具301的一些实施例可以容许使用者通过如下方式进行选择:选择只在布局设计数据一个特定层中发生的错误或更改、选择特定设计者所做的更改、选择分析过程中一个指定重复中所识别的错误、或任何其它可用于增量分析中辨别布局设计数据各部分的技术。
分析标准的选择
现在回到图4B,在步骤407中使用者选择将用于第二次增量分析过程的分析标准。如此前所述,本发明的各种实现将有选择地或额外地允许使用者选择在增量分析过程中将用于分析布局设计数据的分析标准。例如,使用本发明的一些实现,使用者能够利用用户界面模块303提供的一个或多个用户界面来选择用于分析所选择的布局设计数据的分析标准。然后分析标准选择模块307将为增量分析过程执行使用者的选择。
本发明的各种实现可以在使用者对整个布局设计数据执行了“完整”分析之后使用。此完整分析通常使用大量的分析标准来分析布局设计数据。例如,设计规则检查分析过程中的一个规则组可以包含上百个规则,需要大量的计算机处理时间和资源来执行。本发明的各种实现将容许使用者指定一整套分析标准,诸如把前次对布局设计数据进行“完整”分析的标准使用到随后的增量分析过程中。本发明的一些实现还容许使用者从一个较大组的可用分析标准中选择一个子集以用于增量分析过程。
例如,本发明的一些实现容许使用者指定增量分析过程只使用对在增量分析过程中被分析的布局设计数据适用的分析标准。因此,如果被分析的布局设计数据只包含设计中特定金属层的数据(例如,金属层1),那么分析标准选择模块307将只选择适用于该数据的分析标准。分析标准选择模块307将不会选择,例如,与设计中多晶硅层布局设计数据相关的分析标准。使用本发明的一些实现,分析标准选择模块307甚至不会选择与布局设计中其它金属层相关的分析标准(例如金属层1,填充层1,等等)。
本发明的一些实现可以有选择地或额外地允许使用者指定增量分析过程只使用前次分析过程没有通过的分析标准。例如,如果增量分析正在分析前次分析过程生成的结果,该结果可以通过每个被识别的错误来指出没有通过的分析标准。作为响应,分析标准选择模块307可以识别为增量分析选择的特定错误,确定与每个选择的错误相关联的分析标准,以及选择这些分析标准以供增量分析使用。使用这一功能,使用者能够避免让增量分析过程执行可能不需要的评估。
进一步地,本发明的一些实现可以容许使用者从一个较大的分析标准组中人工选择一个子集。本发明的这些实现可以积极地要求使用者选择哪些特定的标准将用于增量分析过程,被动地应用分析标准组中没有被使用者特别放弃的每个标准,或者两者的某个组合。
请注意本发明的一些实施例可以自动限制一些分析标准被运用到增量分析过程中。例如,如果增量分析过程是设计规则检查分析过程,则分析标准选择模块307可以阻止增量分析过程使用连接性检查。因为增量分析过程可能只分析整个布局设计数据的一部分,被分析的部分不太可能包含足够的数据来精确地执行这类检查。就是说,被分析的部分不太可能包含在目标器件和电源或地连接点之间建立连续的连接所需的所有几何元素。类似地,分析标准选择模块307可以自动地排除需要布局设计数据相当的一部分才能准确评估的其它“片级”分析标准,诸如填充密度检查。
如同布局设计数据的选择一样,本发明的各种实现可以容许使用者组合两种或更多的选择技术来选择分析标准。例如,分析标准选择模块307的一些实施例可以容许使用者选择在选定布局设计数据中的错误没有通过的分析标准和使用者人工指定的额外分析标准。本发明的另外一些例子可以有选择地或额外地允许使用者只选择适用于所选择的布局设计数据的分析标准,然后进一步在此有限的分析标准中人工选择一个特定的子集。
增量分析
在使用者选择了用于增量分析过程的布局设计数据和/或分析标准之后,分析过程模块309使用这些输入在步骤409中执行增量分析过程。然后在步骤411,分析过程模块309输出增量分析过程的结果给使用者。结果可以是任何期望的格式。
如同此前所述,根据本发明各种例子的增量分析过程可以简单地是很多分析过程中的一次迭代。相应地,步骤403-409中的每一步可以重复一到多次,直到对布局设计数据感到满意为止。进一步地,如果期望,可以省略分析前修改布局设计数据的步骤403。例如,使用者可能希望根据第一组分析标准来检查布局设计数据的一部分,然后在更改任何布局设计数据前根据第二组分析标准来检查布局设计数据的另一部分。
一些实现可以容许使用者在前次增量分析过程完成其分析之前重复步骤403-409中的一个或多个。例如,分析过程模块309的一些实施例可以在增量分析过程完成其分析之前开始返回分析结果给使用者。作为响应,使用者可以,例如,纠正增量分析过程中识别的一个或多个错误,并且启动第二次增量分析过程以确认错误被更正。如同上面所详细讨论的,使用者可以使用用户界面来只选择所报告错误中特定的实例以供第二次增量分析过程分析、只选择所报告错误中没有通过的分析标准以供第二次增量分析过程使用、或者两者的组合(包括只选择选定报告的错误没有通过的分析标准的组合)。通过这种方式,使用者能够有效地使用计算系统,例如分布式计算系统,甚至在更长、更耗时的分析过程完成前确认检测到的错误被纠正。
还请注意的是,本发明的一些实现可以省略布局设计数据选择模块305,而本发明的另外一些实现可以省略分析标准选择模块307。也就是说,本发明的一些实现可以容许使用者选择分析标准以用于增量分析过程,但是不选择布局设计数据。另一方面,本发明的一些实现可以容许使用者选择增量分析过程中要使用的布局设计数据而不选择分析标准。
用户界面
初始流程选择用户界面
图8显示了根据本发明的各种例子可以提供的用户界面801的示例。从图中可以看到,用户界面801提供增量分析过程控制按钮803,其容许使用者选择对布局设计数据执行增量分析过程。(在所显示的实施例中,分析过程是设计规则检查。)用户界面801还包括“Complete Flow”(完整流程)控制按钮805、“Design Delta”(设计差分)控制按钮807、和“Previous Result Flow”(前次结果流程)控制按钮809。使用本发明所显示的例子,这些控制的每一个都是互斥的(即,选择一个控制将自动取消选定其它两个控制)。
如果使用者选择“Complete Flow”控制按钮805,那么如同上面所详细讨论的,分析过程模块309将对布局设计数据执行“完整”的分析过程。(本发明的一些实现可以提供进一步的用户界面或控制以容许使用者选择要分析的布局设计数据。)然而,如果使用者选择“Design Delta”控制按钮807,那么用户界面模块303激活“File”(文件)区域控制811和“Cell”(单元)区域控制813。如同上面所详细讨论的,使用这些区域控制,使用者指定包含布局设计数据的文件和将要使用增量分析过程进行分析的布局设计数据的单元。特别地,分析过程模块309将对指定布局设计中基于指定布局设计数据的早期版本的已修改数据执行增量分析过程。
可选地,如果使用者选择“Previous Result Flow”控制按钮809,则用户界面模块303将类似地激活文件区域控制815和“Previous Run”(前次运行)控制按钮817。用户界面模块303还将激活“fixed only”(只有已更正的)控制按钮819、“not waived”(没有放弃的)控制按钮821、和“all results”(所有结果)控制按钮823。使用者能够使用文件区域控制815来指定包含前次分析过程的结果的文件。或者,如果使用者仅仅希望分析用由分析过程模块309提供的结果,则使用者能够选择“previous run”控制按钮817。如同上面所详细讨论的,一旦指定了结果的来源,使用者就能够使用控制按钮819-823来指定哪些结果将要分析。特别地,如果使用者希望分析在前次增量分析过程中产生结果的所有布局设计数据,那么使用者选择“all results”控制按钮823。如果使用者只希望分析自获得结果以来那些据称已更正的错误,那么使用者选择“fixed only”控制按钮819。如果使用者只希望分析在前次增量分析过程中产生结果的布局设计数据的特定部分,那么使用者能够放弃不希望分析的任何布局设计部分,并选择“not waived”控制按钮821。
验证运行用户界面
根据通过用户界面801提交的选择,一旦使用者启动增量分析过程,本发明的各种实施例可以为使用者提供第二个用户界面以显示正在进行的(增量或完整)分析过程的实时结果。例如,本发明的一些实施例可以为使用者提供如图9所示的用户界面901。从图中可见,用户界面901包括结果显示部分903和分析过程状态显示部分905。结果显示部分903显示正在进行的分析过程针对每个分析标准而产生的结果907。从图中可见,结果907显示没有通过相应分析标准的部分布局设计数据的数量。
如同上面所详细讨论的,使用者可以利用用户界面901针对与一个或多个结果907相关的部分布局设计数据启动增量分析过程,即便前次的分析过程仍在进行中。例如,使用者可以修改布局设计数据中与一个或多个结果907(例如结果907A)相关的部分。如果使用者希望对这个结果相关的区域执行增量分析,那么使用者可以选择“incremental area”(增量区域)控制按钮911。使用本发明的各种例子,用户界面模块303将提供用户界面(例如像图5所示的用户界面)以容许使用者指定用于随后增量分析的布局设计数据的一个或多个所期望的部分。然而,如果使用者希望对与结果907A相关的部分布局设计数据重复增量分析过程,那么使用者可以选择该结果,然后启动“start validation run”(开始验证运行)控制按钮909。
响应于“start validation run”控制按钮909的启动,增量分析工具301将对所选择结果相应的部分布局设计数据开始新的增量分析过程。进一步地,用户界面901可以更新结果显示部分903以显示新增量分析过程提供的新结果。如图9B所示,本发明的一些实现可以额外地容许使用者查看与特定分析标准相联系的每个新结果。本发明的各种实现能够提供所需的新结果。例如,如果随后增量分析过程对其布局设计数据的相应部分仍在进行操作,则本发明的一些实现可以用黄色高亮显示结果,如果布局设计数据的这部分已经通过随后增量分析过程的分析标准,结果会以绿色高亮显示,如果布局设计数据的这部分再次没有通过随后增量分析过程的分析标准,结果会以红色高亮显示,如果随后增量分析过程为布局设计数据的这部分返回新的结果,结果会以橙色高亮显示。
当然,可以理解其它类型的用户界面可用于实现此前详细讨论的本发明的各种实施例。
结论
尽管前面详细显示并说明了本发明的特定实施例以展示本发明的原理,但是应当理解本发明可以以其他方式实现而不偏离本发明。因此,尽管使用包括执行本发明目前首选模式的特定例子来说明本发明,但是所属领域的技术人员都理解以上说明的系统和技术有许多变化和组合,它们均落入权利要求书详细说明的本发明的精神和范围之内。

Claims (6)

1.一种纠正布局设计数据的方法,包括:
使用第一组分析标准对布局设计数据执行第一分析过程;
选择与所述第一组分析标准不同的第二组分析标准;
使用所述第二组分析标准对所述布局设计数据的已识别部分执行第二分析过程,所述第二分析过程是所述第一分析过程的增量过程,其中所述第二分析过程在所述第一分析过程完成之前启动;
识别所述布局设计数据的第二部分,所述第二部分包括在纠正信息中提供的新数据;以及
在所述第二分析过程仍在针对所述布局设计数据的所述已识别部分继续执行并且所述第一分析过程仍在针对所述布局设计数据的第三部分继续执行的同时,对所述布局设计数据中已被识别的所述第二部分启动第二次增量分析过程。
2.根据权利要求1所述的方法,其中所述第二组分析标准与所述第一组分析标准不完全重叠。
3.根据权利要求1所述的方法,进一步包括:
识别所述布局设计数据的一个或多个部分;以及
只对所述布局设计数据的已识别部分执行第二分析过程。
4.一种纠正布局设计数据的设备,包括:
用于使用第一组分析标准对布局设计数据执行第一分析过程的装置;
用于选择与所述第一组分析标准不同的第二组分析标准的装置;
用于使用所述第二组分析标准对所述布局设计数据的已识别部分执行第二分析过程的装置,所述第二分析过程是所述第一分析过程的增量过程,其中所述第二分析过程在所述第一分析过程完成之前启动;
用于识别所述布局设计数据的第二部分的装置,所述第二部分包括在纠正信息中提供的新数据;以及
用于在所述第二分析过程仍在针对所述布局设计数据的所述已识别部分继续执行并且所述第一分析过程仍在针对所述布局设计数据的第三部分继续执行的同时,对所述布局设计数据中已被识别的所述第二部分启动第二次增量分析过程的装置。
5.根据权利要求4所述的设备,其中所述第二组分析标准与所述第一组分析标准不完全重叠。
6.根据权利要求4所述的设备,进一步包括:
用于识别所述布局设计数据的一个或多个部分的装置;以及
用于只对所述布局设计数据的已识别部分执行第二分析过程的装置。
CN201210056057.4A 2007-03-09 2008-03-09 增量式布局分析 Active CN102768696B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US89415107P 2007-03-09 2007-03-09
US60/894,151 2007-03-09
CN200880013643.2A CN101669121B (zh) 2007-03-09 2008-03-09 增量式布局分析

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200880013643.2A Division CN101669121B (zh) 2007-03-09 2008-03-09 增量式布局分析

Publications (2)

Publication Number Publication Date
CN102768696A CN102768696A (zh) 2012-11-07
CN102768696B true CN102768696B (zh) 2017-04-26

Family

ID=39522333

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201510679816.6A Active CN105426567B (zh) 2007-03-09 2008-03-09 增量式布局分析
CN201210056057.4A Active CN102768696B (zh) 2007-03-09 2008-03-09 增量式布局分析
CN200880013643.2A Active CN101669121B (zh) 2007-03-09 2008-03-09 增量式布局分析

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201510679816.6A Active CN105426567B (zh) 2007-03-09 2008-03-09 增量式布局分析

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN200880013643.2A Active CN101669121B (zh) 2007-03-09 2008-03-09 增量式布局分析

Country Status (5)

Country Link
US (1) US20120047479A1 (zh)
EP (1) EP2135184A2 (zh)
JP (2) JP2010521035A (zh)
CN (3) CN105426567B (zh)
WO (1) WO2008112605A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10089432B2 (en) * 2008-11-03 2018-10-02 Mentor Graphics Corporation Rule-check waiver
US20110145772A1 (en) * 2009-05-14 2011-06-16 Pikus Fedor G Modular Platform For Integrated Circuit Design Analysis And Verification
US8984458B2 (en) * 2009-07-22 2015-03-17 Synopsys, Inc. Dynamic rule checking in electronic design automation
US20110246331A1 (en) * 2010-04-06 2011-10-06 Luther Erik B Online Custom Circuit Marketplace
US9128733B2 (en) * 2010-11-12 2015-09-08 Microsoft Technology Licensing, Llc Display and resolution of incompatible layout constraints
US8458631B2 (en) * 2011-08-11 2013-06-04 Taiwan Semiconductor Manufacturing Company, Ltd. Cycle time reduction in data preparation
US8694926B2 (en) * 2012-05-30 2014-04-08 Freescale Semiconductor, Inc. Techniques for checking computer-aided design layers of a device to reduce the occurrence of missing deck rules
US20140173548A1 (en) * 2012-09-17 2014-06-19 Texas Instruments Incorporated Tool For Automation Of Functional Safety Metric Calculation And Prototyping Of Functional Safety Systems
US9292652B2 (en) * 2014-05-06 2016-03-22 International Business Machines Corporation Generic design rule checking (DRC) test case extraction
WO2016085445A1 (en) * 2014-11-24 2016-06-02 Hewlett Packard Enterprise Development Lp Detection of user interface layout changes
US9922154B2 (en) 2016-05-20 2018-03-20 International Business Machines Corporation Enabling an incremental sign-off process using design data
US10331843B1 (en) * 2016-09-27 2019-06-25 Altera Corporation System and method for visualization and analysis of a chip view including multiple circuit design revisions
US11023648B2 (en) 2017-12-12 2021-06-01 Siemens Industry Software Inc. Puzzle-based pattern analysis and classification
US10671793B1 (en) * 2018-07-31 2020-06-02 Cadence Design Systems, Inc. Editing of layout designs for fixing DRC violations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862546A (zh) * 2006-06-15 2006-11-15 清华大学 一个快速的集成电路可布性分析方法

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756652B2 (ja) * 1992-03-24 1995-06-14 インターナショナル・ビジネス・マシーンズ・コーポレイション 動画像のフレーム列の検索
JPH05289312A (ja) * 1992-04-06 1993-11-05 Ricoh Co Ltd 半導体集積回路のマスクパターン処理方法および処理装置
US6155725A (en) * 1994-04-19 2000-12-05 Lsi Logic Corporation Cell placement representation and transposition for integrated circuit physical design automation system
US6493658B1 (en) * 1994-04-19 2002-12-10 Lsi Logic Corporation Optimization processing for integrated circuit physical design automation system using optimally switched fitness improvement algorithms
US5694593A (en) * 1994-10-05 1997-12-02 Northeastern University Distributed computer database system and method
JPH09148441A (ja) * 1995-11-20 1997-06-06 Hitachi Ltd レイアウト検証方法および装置
US6286128B1 (en) * 1998-02-11 2001-09-04 Monterey Design Systems, Inc. Method for design optimization using logical and physical information
GB9811574D0 (en) * 1998-05-30 1998-07-29 Ibm Indexed file system and a method and a mechanism for accessing data records from such a system
US20040230566A1 (en) * 1999-08-20 2004-11-18 Srinivas Balijepalli Web-based customized information retrieval and delivery method and system
US6425113B1 (en) * 2000-06-13 2002-07-23 Leigh C. Anderson Integrated verification and manufacturability tool
JP2002189768A (ja) * 2000-12-21 2002-07-05 Toshiba Microelectronics Corp Lsiレイアウト検証処理方法及びlsiレイアウト検証システム
JP2002197134A (ja) * 2000-12-27 2002-07-12 Nec Microsystems Ltd 階層レイアウトパターンのデザインルールチエック方法
US6505327B2 (en) * 2001-04-13 2003-01-07 Numerical Technologies, Inc. Generating an instance-based representation of a design hierarchy
US6668365B2 (en) * 2001-12-18 2003-12-23 Cadence Design Systems, Inc. Quadratic programming method for eliminating cell overlap and routing congestion in an IC layout
JP2003337843A (ja) * 2002-05-20 2003-11-28 Nec Micro Systems Ltd 半導体集積回路のレイアウト検証方法および検証プログラム
DE10226915A1 (de) * 2002-06-17 2004-01-08 Infineon Technologies Ag Verfahren zum Verändern von Entwurfsdaten für die Herstellung eines Bauteils sowie zugehörige Einheiten
US20030236658A1 (en) * 2002-06-24 2003-12-25 Lloyd Yam System, method and computer program product for translating information
US6904587B2 (en) * 2002-12-20 2005-06-07 Synopsys, Inc. Incremental lithography mask layout design and verification
US6898770B2 (en) * 2003-01-09 2005-05-24 Lsi Logic Corporation Split and merge design flow concept for fast turnaround time of circuit layout design
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US7266790B2 (en) * 2003-03-07 2007-09-04 Cadence Design Systems, Inc. Method and system for logic equivalence checking
US7676788B1 (en) * 2003-03-25 2010-03-09 Electric Cloud, Inc. Architecture and method for executing program builds
US20040260527A1 (en) * 2003-06-19 2004-12-23 Stanculescu Alexandru G. Compact and effective representation of simulation results
US20050004954A1 (en) * 2003-07-01 2005-01-06 Hand Held Products, Inc. Systems and methods for expedited data transfer in a communication system using hash segmentation
US7523429B2 (en) * 2004-02-20 2009-04-21 Takumi Technology Corporation System for designing integrated circuits with enhanced manufacturability
JP2005293056A (ja) * 2004-03-31 2005-10-20 Elpida Memory Inc レイアウト検証ルールファイル自動生成装置、自動生成用テンプレート及び自動生成方法
US7661078B1 (en) * 2005-02-28 2010-02-09 Cadence Design Systems, Inc. Method and system for implementing metal fill
US20060253813A1 (en) * 2005-05-03 2006-11-09 Dan Rittman Design rule violations check (DRC) of IC's (integrated circuits) mask layout database, via the internet method and computer software
JP2006318978A (ja) * 2005-05-10 2006-11-24 Toshiba Corp パターン設計方法
US7617464B2 (en) * 2005-05-20 2009-11-10 Synopsys, Inc. Verifying an IC layout in individual regions and combining results
US7243315B2 (en) * 2005-05-31 2007-07-10 Altera Corporation Methods for producing structured application-specific integrated circuits that are equivalent to field-programmable gate arrays
US7305647B1 (en) * 2005-07-28 2007-12-04 Transmeta Corporation Using standard pattern tiles and custom pattern tiles to generate a semiconductor design layout having a deep well structure for routing body-bias voltage
US7657852B2 (en) * 2005-08-16 2010-02-02 Pulsic Limited System and technique of pattern matching and pattern replacement
US7568174B2 (en) * 2005-08-19 2009-07-28 Cadence Design Systems, Inc. Method for checking printability of a lithography target
JP4744980B2 (ja) * 2005-08-25 2011-08-10 株式会社東芝 パターン検証方法、そのプログラム、半導体装置の製造方法
US7496884B2 (en) * 2005-09-02 2009-02-24 Synopsys, Inc. Distributed hierarchical partitioning framework for verifying a simulated wafer image
JP2007109138A (ja) * 2005-10-17 2007-04-26 Matsushita Electric Ind Co Ltd 集積回路のタイミング解析システム及びタイミング解析方法
JP2007164536A (ja) * 2005-12-14 2007-06-28 Toshiba Corp 半導体集積回路の設計支援システム、半導体集積回路の設計方法、半導体集積回路の設計支援プログラム及び半導体集積回路の製造方法
US7490303B2 (en) * 2006-03-03 2009-02-10 International Business Machines Corporation Identifying parasitic diode(s) in an integrated circuit physical design
US7503029B2 (en) * 2006-03-31 2009-03-10 Synopsys, Inc. Identifying layout regions susceptible to fabrication issues by using range patterns
US8336002B2 (en) * 2006-05-15 2012-12-18 Taiwan Semiconductor Manufacturing Company, Ltd. IC design flow enhancement with CMP simulation
US8516418B2 (en) * 2006-06-30 2013-08-20 Oracle America, Inc. Application of a relational database in integrated circuit design
US7908276B2 (en) * 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US7657856B1 (en) * 2006-09-12 2010-02-02 Cadence Design Systems, Inc. Method and system for parallel processing of IC design layouts
US7512927B2 (en) * 2006-11-02 2009-03-31 International Business Machines Corporation Printability verification by progressive modeling accuracy
US8612919B2 (en) * 2006-11-20 2013-12-17 Mentor Graphics Corporation Model-based design verification
US20080235497A1 (en) * 2006-11-26 2008-09-25 Tomblin Jimmy J Parallel Data Output
US20080127028A1 (en) * 2006-11-27 2008-05-29 Dan Rittman Integrated circuits verification checks of mask layout database, via the internet method and computer software
US7617467B2 (en) * 2006-12-14 2009-11-10 Agere Systems Inc. Electrostatic discharge device verification in an integrated circuit
EP2006784A1 (en) * 2007-06-22 2008-12-24 Interuniversitair Microelektronica Centrum vzw Methods for characterization of electronic circuits under process variability effects
JP2010278189A (ja) * 2009-05-28 2010-12-09 Renesas Electronics Corp 半導体集積回路の設計方法及び設計システム
US8316342B1 (en) * 2010-06-02 2012-11-20 Cadence Design Systems, Inc. Method and apparatus for concurrent design of modules across different design entry tools targeted to a single layout

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862546A (zh) * 2006-06-15 2006-11-15 清华大学 一个快速的集成电路可布性分析方法

Also Published As

Publication number Publication date
EP2135184A2 (en) 2009-12-23
WO2008112605A9 (en) 2009-02-05
JP2013149286A (ja) 2013-08-01
WO2008112605A3 (en) 2008-12-18
CN101669121A (zh) 2010-03-10
CN101669121B (zh) 2017-04-05
CN102768696A (zh) 2012-11-07
JP5619210B2 (ja) 2014-11-05
US20120047479A1 (en) 2012-02-23
CN105426567A (zh) 2016-03-23
CN105426567B (zh) 2018-12-07
JP2010521035A (ja) 2010-06-17
WO2008112605A2 (en) 2008-09-18

Similar Documents

Publication Publication Date Title
CN102768696B (zh) 增量式布局分析
US10643015B2 (en) Properties in electronic design automation
US8516399B2 (en) Collaborative environment for physical verification of microdevice designs
US8572533B2 (en) Waiving density violations
US20140337810A1 (en) Modular platform for integrated circuit design analysis and verification
US20100257496A1 (en) Design-Rule-Check Waiver
US10796070B2 (en) Layout pattern similarity determination based on binary turning function signatures
US20130198703A1 (en) Virtual Flat Traversal Of A Hierarchical Circuit Design
US20230153514A1 (en) Integrated circuit device design method and system
US10089432B2 (en) Rule-check waiver
US20110145770A1 (en) Device Annotation
US9262574B2 (en) Voltage-related analysis of layout design data
US20130263074A1 (en) Analog Rule Check Waiver
US10360331B2 (en) Scoped simulation for electrostatic discharge protection verification
US20100229133A1 (en) Property-Based Classification In Electronic Design Automation
US20100023897A1 (en) Property-Based Classification In Electronic Design Automation
US20110265054A1 (en) Design-Rule-Check Waiver
US20120054703A1 (en) Virtual Flat Traversal Of A Hierarchical Circuit Design
US11727186B2 (en) Automatic identification of hierarchical cells based on selected properties for layout verification
US11704468B2 (en) Puzzle-based pattern analysis and classification
US20230385515A1 (en) Silicon photonics system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210806

Address after: American Texas

Patentee after: SIEMENS INDUSTRY SOFTWARE N.V.

Address before: oregon

Patentee before: Mentor Co.

TR01 Transfer of patent right