使用与单元级布局相关的应力效应的单元放置和布线的制作方法

文档序号:19350650发布日期:2019-12-06 21:21阅读:323来源:国知局
使用与单元级布局相关的应力效应的单元放置和布线的制作方法

对其他申请的交叉引用

本申请要求2018年04月25日提交的美国专利申请号15/962277(案卷号:synp3037-3)的优先权,后者要求2017年04月28日提交的美国临时申请号62/491704(案卷号:synp3037-1)的优先权,并且还要求2017年06月06日提交的美国临时申请号62/515642(案号:synp3037-2)的优先权。以上所有申请通过引用以其整体并入本文。

下列美国专利和专利申请的全部教导通过引用并入本文:2018年02月21日提交的美国专利申请号15/901749(案卷号:synp3023-3);2013年03月26日公布的美国专利号8407634(案卷号:synp0693-1);以及1995年10月24日公布的美国专利号5461576。

本发明涉及集成电路制造中的改进,并且更具体地涉及改进用于集成电路设计的放置和布线设施的操作,以便可以针对给定的电路设计制造更好的集成电路器件。



背景技术:

集成电路(ic)是将大量半导体晶体管集成到小芯片中的一组电子电路。最先进的集成电路包括微处理器、存储器芯片、可编程逻辑传感器、电源管理电路等。ic技术的进步已导致晶体管的尺寸减小,从而使能ic芯片中的器件和电路的更高密度和增强的性能。多年来,由于ic设计的复杂性不断增加,ic设计人员越来越依赖于电子设计自动化(eda)工具来辅助他们设计ic。eda工具的协助涵盖了整个设计过程,从综合、布局、布线到布局验证。

设计ic的常用方法要求ic设计人员首先具有电路单元的库以及描述集成电路的功能的设计。单元可以实施基本逻辑功能,诸如or、nand、nor、and、xor、反相器。单元还可以包括时序电路元件,诸如用于存储器要求的锁存器和触发器。电路单元的库可以由制造厂商提供,并且特定于厂商的制造工艺技术。对于大多数单元功能,该库提供了针对不同目的而优化的许多不同单元。

放置和布线是ic设计中的一个阶段,其涉及两个步骤。第一步,放置,涉及决定将单元放置在空间有限的ic布局中的哪个位置。通常基于诸如最小和最大建立和保持时间、单元功耗、单元的尺寸、不同单元之间的布线和互连延迟以及漏电流等因素来对单元放置做出选择。选择在整个模块或芯片上优化的单元是一个反复的过程。放置步骤之后是布线,布线决定连接布局中的所放置的单元所需的所有导线的确切设计。布线步骤在遵循制造工艺的规则和限制的同时,实施所有所需的连接。两步过程的最终产品是最终布局、每个单元的形状和位置的几何描述以及连接它们的每个导线的确切路径。

在较早的技术中,晶体管的尺寸足够大,以使其电学行为与其在最终布局中的位置无关。然而,在具有较小几何尺寸的高度规模化的技术中,晶体管的电性能越来越依赖于其在布局中的位置(约40%-50%)。由于集成电路中使用的各种材料的电子能带变形以及晶体管中电子和空穴迁移率的变化,布局中的有意应力和无意应力以及有意应力的不期望变化都会影响晶体管的电性能。因此,必须考虑晶体管附近各种有意和无意应力生成机制的贡献,以准确地分析其性能。如本文所使用的,“应力生成机制”是一种可以导致一个单元内和其他单元内的应力变化的机制。

改进电子和空穴的迁移率的有意应力生成机制的示例包括:具有合金(其具有比硅更大的晶格常数)的源极/漏极区域、在晶体管区域上生长的具有固有压缩应力或拉伸应力的电介质氮化物膜、沉积和去除牺牲多晶硅栅极和随后的金属栅极沉积、在源极/漏极区域之上的金属接触中包含的应力等。由于在ic制造期间的工艺变化,ic中的有意应力生成机制可能存在变化。

除了有意应力生成机制中的变化之外,布局中的无意应力生成机制还干扰工程固有应力,并导致最终ic中与放置有关的电参数的变化。无意应力生成机制主要可以归因于ic制造工艺期间使用的各种材料的热失配。位于集成电路中的晶体管附近的无意应力的主要来源是浅沟槽隔离或sti(用于隔离布局中的晶体管)、硅通孔或tsv(用于在堆叠的ic之间进行垂直互连)、封装基板与硅裸片之间的不匹配、对finfet中的鳍片的“切割”以将长鳍片分成单独的对或创建隔离的鳍片、finfet中的鳍片边缘效应等。

有意和无意应力生成机制极大地影响了现代集成电路中的设计方法,现代集成电路是由预先表征的单元库构建的。这些单元可能会在最终布局的不同部分中被多次实例化,在这些部分中它们会经历不同的应力变化。由于方向依赖性、材料源中的变化以及对单元的放置的敏感性,布局中的应力效应相对复杂。单元中的每个布局特征(诸如,单元中的晶体管各个部分、sti或tsv的边缘或拐角)都导致应力变化,相互作用范围高达2微米。因此,第一单元中的应力生成机制可以导致第一单元附近(~2微米)的布局中其他单元中的应力变化。在布局中的特定放置处的第一单元的性能不仅取决于第一单元内的内部应力生成机制,而且还取决于相邻单元中的外部应力生成机制。类似地,相邻单元的性能也受第一个单元的内部应力生成机制的影响。例如,很可能的情况是,针对特定功能选择的某个单元插入到布局中的特定位置中,由于相邻单元施加的应力,其性能发生了很大改变,以至于所选择的单元实际上对于特定功能来说,可能是错误的单元。

在上面并入的2018年02月21日提交的,题目为“automatedresistanceandcapacitanceextractionandnetlistgenerationoflogiccells”的美国专利申请号15/901749(案卷号:synp3023-3)中,描述了设计-技术协同优化技术,其目的是基于库单元的gds布局和工艺流程来开发库单元的功率-性能-面积评估。针对库单元的特定3d结构提取了真实的寄生rc值(包括光刻和蚀刻微加载效果),并且使用诸如hspice的电路仿真器对单元进行表征。但是,仅针对标称晶体管提取bsim紧凑型spice模型,这不考虑应力、光刻、蚀刻微负载和可能导致单元性能变化高达30%或更多的其他单元邻近效应。

过去,为了在评估单元性能时考虑单元布局邻近效应,通常使用设计规则检查工具(例如,来自synopsys的icv(集成电路验证器))来测量从单元的每个晶体管到其相邻单元的几百个距离。在查找表中使用这些距离来确定电路中每个特定晶体管的标称bsim参数的修改,诸如vt(阈值电压)的移动或迁移率的改变。这种方法需要付出巨大的努力,包括尝试模仿所有可能的布局配置的数千个测试结构,并且包括校准适当的查询表集合,以及将查询表评估实施在例如hspice的电路分析工具中。使这种方法再次工作的困难性将其可用性限制为仅在作为成熟的工艺设计工具包(pdk)的一部分的技术开发的后期阶段中。它在技术开发的前期阶段不可用,在该阶段,dtco工具流程提供技术和设计的协同优化。



技术实现要素:

粗略地描述,提供了一种系统和方法,其可以用于选择要放置在目标电路设计布局中的目标位置中的目标单元。然后,目标电路设计将用于集成电路的制造。包括多个单元的单元库被提供给系统。多个单元中的每个单元包括至少一个晶体管、至少一个互连和至少一个引脚的单元布局。对于单元库中的每个单元,单元库指示单元的多个假设边界条件集合的性能参数。由相邻单元施加在某个单元上的每个假设边界条件集合包括源自相邻单元中的任何有意或无意应力生成机制的影响,这可能会导致所述单元中的任何应力变化。

为了产生目标电路设计布局,系统根据所提供的电路设计从单元库中选择目标单元,以将其放置在布局中的目标位置。即,在给定电路设计针对目标位置要求的功能的情况下,系统从单元库中选择执行该功能的单元。在目标电路设计布局中,目标位置在其附近具有一个或多个相邻单元。由系统通过从布局确定由与目标位置相邻的单元中的每个单元施加在目标位置上的边界条件来执行对目标单元的选择。然后,系统根据所确定的相邻单元的边界条件以及基于由相邻单元对该单元施加的边界条件的单元的性能,从单元库中选择最佳目标单元。在一个实施例中,系统可以考虑其他因素(诸如单元功耗、单元尺寸、布线和互连延迟等),来从单元库中选择目标单元。在选择之后,系统将目标单元放置到目标电路设计布局中的目标位置中。在一个实施例中,所选择的目标单元可以在目标电路设计布局中的目标位置的第一相邻单元上施加边界条件,并且可以根据由目标单元在第一相邻单元上施加的边界条件,利用第二相邻单元来代替第一相邻单元。

所公开的发明减少了优化新设计的ic所需的物理测试制造的数量(减少~30%-40%),从而极大地降低了准备用于大规模生产和销售的新ic技术所需的成本和时间。

利用性能信息来预先标注库中的单元,该性能信息是由相邻单元施加的边界条件的函数。例如,可以在单元中标识多个假设边界条件集合,并且对于每个边界条件集合,该单元都提供其所得性能的指示。在一个实施例中,可以通过在晶圆上实际制造库单元中的每个库单元来评估该信息,在多个实例中,每个库单元具有与其邻接的相邻单元的不同的实验组。然后对单元的性能进行测试,并且利用结果来标注库单元。这种方法的一个问题是,制造这种晶圆比较昂贵,并且难以准确地确定其相邻单元对该单元施加了什么应力,该确定是为了概括性能变化以覆盖实际上不在测试晶圆上的相邻单元的其他组合。而且,期望每个单元还标识该单元对其相邻单元施加的边界条件,以在单元是目标位置的相邻单元时使用。如所述的,难以从制造的单元中确定它将施加在其相邻单元上的应力和其他边界条件。

物理制造方法的另一个非常显著的问题是,它不能在新的或升级的制造工艺的开发中的前期使用。集成电路制造厂商不断地升级其工艺或开发新工艺,并且需要尽早向设计人员提供对应的单元库,以便新的或升级的设计能够尽快利用工艺改进的优势。但是在前期阶段,晶圆尚不能被足够可靠地或一致地制造,不能产生有关性能变化的有用信息。

根据本发明的一方面,在一个实施例中,系统针对多个假设边界条件集合,计算单元库中每个主题单元的性能。系统根据所选择的单元的单元布局,标识该单元中所有晶体管的所有端子的位置和互连的位置。系统根据所标识的晶体管、晶体管端子和互连来开发网表。对于每个假设边界条件集合,系统还使用制造工艺仿真工具合成根据单元库中的单元布局和制造工艺制造的单元的3d表示。所表示的器件包括晶体管和互连,以及由假设边界条件集合指示的应力分布。然后,系统单独地评估电路中每个晶体管的操作特性。晶体管的操作特性是特定于晶体管的行为,例如可以通过晶体管的iv曲线来描述。可以根据每个晶体管的形状(光刻和蚀刻效果)和应力分布将操作特性转换为特定于每个晶体管的bsim参数的集合。然后,可以将网表及其特定于晶体管的bsim模型参数用在电路仿真器(诸如hspice)中,以在假设边界条件集合的情况下,通过估计电路时序、功耗等来评估所选择的单元的性能。

即使利用功能强大的现代计算机系统,对单元的3d模型的评估也可能非常耗时。用于确定仅由单个假设边界条件集合引入的性能变化的对一个晶体管的3d模型的评估,可能需要利用先进的软件花费几个小时的密集计算时间。每个库单元包含从2至40个或更多的晶体管,这将成指数地增加执行分析所需的时间。另外,每个库可能具有数百个不同的单元要被评估。

因此,根据本发明的另一方面,在一个实施例中,在仿真制造所选择的单元的3d表示之后,系统将3d表示划分,以将所有单独的晶体管切分成单独的仿真域,而不是将整个结构提供给tcad工具以用于分析和提取特定于晶体管的bsim参数。由于从库单元规模结构得来的应力、光刻和蚀刻效应已经被包括,因此可以使用各个仿真域来准确地确定晶体管中的每个晶体管的iv曲线。例如,可以在3d漂移扩散仿真器中对每个晶体管进行表征,以获得iv曲线,并且可以将特定于晶体管的iv曲线转换为对其应用特定的假设边界条件的该单元中的该晶体管的bsim模型参数。

本发明的一个或多个实施例或其元件可以以包括计算机可读存储介质的计算机产品的形式来实施,该计算机可读存储介质具有用于执行所指示的方法步骤的计算机可用程序代码。另外,本发明的一个或多个实施例或其元件可以以一种装置的形式实施,该装置包括存储器和至少一个处理器,该处理器耦合到该存储器并且可操作以执行示例性方法步骤。更进一步地,在另一方面,本发明的一个或多个实施例或其元件可以以用于执行本文描述的一个或多个方法步骤的装置的形式来实施;该装置可以包括:(i)一个或多个硬件模块,(ii)在一个或多个硬件处理器上执行的一个或多个软件模块,或(iii)硬件和软件模块的组合;(i)-(iii)中的任何一个实施本文阐述的特定技术,并且软件模块存储在非暂态计算机可读存储介质(或多个这种介质)中。

通过结合附图阅读的对本发明的说明性实施例的以下详细描述,本发明的这些和其他特征、方面和优点将变得显而易见。

附图说明

将关于本发明的特定实施例描述本发明,并且将参考附图,其中:

图1图示了用于集成电路设计和制造的eda工具和设计流程。

图2图示了包括目标位置和多个相邻单元的目标电路设计布局的一个实施例的框图。

图3图示了包括本发明的多个方面的单元库数据库的组织。

图4图示了根据本发明的一个实施例的单元放置系统。

图5是图示由图4中的单元放置系统在目标电路设计布局中放置单元的流程图。

图6是图示根据本发明的一个实施例的准备单元库的一个示例方法的流程图。

图7图示了用于确定针对施加在单元上的给定假设边界条件集合的单元的性能的设计技术协同优化流程。

图8图示了图7中的设计技术协同优化流程的布局效果模块。

图9图示了由图8中的仿真域生成器将单元划分为单独的仿真域。

图10是可由图4、图5、图6、图7和图8中的任何功能块使用的示例计算机系统的简化框图。

具体实施方式

呈现以下描述以使本领域技术人员能够制造和使用本发明,并且以下描述是在特定应用及其要求的上下文中提供的。对所公开的实施例的各种修改对于本领域技术人员而言将是显而易见的,并且本文中定义的一般原理可以应用于其他实施例和应用,而不脱离本发明的精神和范围。因此,本发明不旨在受限于所示的实施例,而是与本文公开的原理和特征一致的最宽范围相一致。参考图1-图10提供本发明的实施例的详细描述。

i.整体集成电路设计流程

本发明的方面可以用于支持集成电路设计流程。图1示出了说明性数字集成电路设计流程的简化表示。在高层级,工艺以产品概念(步骤102)开始并且在eda(电子设计自动化)软件设计过程(步骤110)中实现。当设计被最终定下时,可以对其进行流片(tape-out)(步骤127)。在流片之后的某时刻,发生制造过程(步骤150)以及封装与组装过程(步骤160),最终导致成品集成电路芯片(结果170)。

eda软件设计过程(步骤110)自身由为了简单而以线性方式示出的若干步骤112-130组成。在实际的集成电路设计过程中,特定设计可能必须回顾一些步骤直到通过某些测试为止。类似地,在任何实际设计过程中,这些步骤都可以以不同的顺序和组合发生。该描述借助于上下文和一般说明来提供而不是作为用于特定集成电路的具体的或推荐的设计流程。

现在将提供eda软件设计过程(步骤110)的组成步骤的简要描述。

系统设计(步骤112):设计人员描述他们想要实施的功能,他们可以进行假设(what-if)规划以完善功能、检查成本等等。在该阶段可以发生硬件-软件构架划分。在该步骤中可以使用的来自synopsys公司的示例eda软件产品包括modelarchitect、systemstudio以及产品。

逻辑设计和功能验证(步骤114):在该阶段,编写用于系统中的模块的vhdl或verilog代码并且针对功能准确性对设计进行检查。更具体地,检查设计以确保响应于特定的输入激励产生正确的输出。在该步骤中可以使用的来自synopsys公司的示例eda软件产品包括vcs、vera、magellan、formality、esp和leda产品。

综合与用于测试的设计(步骤116):这里,将vhdl/verilog转变成网表。可以针对目标技术将网表优化。另外,测试的设计和实施发生以允许对成品芯片的检查。在该步骤中可以使用的来自synopsys公司的示例eda软件产品包括designphysicalcompiler、dftcompiler、powercompiler、fpgacompiler、tetramax和产品。

网表验证(步骤118):在该步骤中,针对与时序约束的一致性以及针对与vhdl/verilog源代码的对应性对网表进行检查。在该步骤中可以使用的来自synopsys公司的示例eda软件产品包括formality、primetime和vcs产品。

设计规划(步骤120):这里,用于芯片的整体平面图被构造和分析以用于定时和顶层布线。在该步骤中可以使用的来自synopsys公司的示例eda软件产品包括astro和customdesigner产品。

物理实施(步骤122):在该步骤中发生放置(电路元件的定位)和布线(电路元件的连接),在该步骤中也发生根据所确定的相邻单元的边界条件来选择目标单元,以及基于由相邻单元施加在目标单元上的边界条件来确定目标单元的性能。在该步骤中可以使用的来自synopsys公司的示例eda软件产品包括astro、iccompilerii和customdesigner产品。可以在该步骤122期间执行本发明的各方面。

分析和提取(步骤124):在该步骤中,以晶体管级验证电路功能,这又允许了假设(what-if)完善化。在该步骤中可以使用的来自synopsys公司的示例eda软件产品包括astrorail、primerail、primetime和star-rcxt产品。

物理验证(步骤126):在该步骤中,进行各种检查功能以确保针对制造、电气问题、光刻问题和电路装置的正确性。在该步骤中可以使用的来自synopsys公司的示例eda软件产品包括hercules产品。

流片(步骤127):该步骤提供待用于(在应用了光刻增强之后,如果合适的话)生产掩模的“流片”数据,该掩膜用于光刻用途以生产成品芯片。在该步骤中可以使用的来自synopsys公司的示例eda软件产品包括iccompiler和customdesigner产品族。

分辨率增强(步骤128):该步骤涉及布局的几何操控以提高设计的可制造性。在该步骤中可以使用的来自synopsys公司的示例eda软件产品包括proteus、proteusaf和psmgen产品。

掩模数据准备(步骤130):该步骤提供用于生产掩膜的掩模制作就绪的“流片”数据,该掩膜用于光刻用途以生产成品芯片。在该步骤中可以使用的来自synopsys公司的示例eda软件产品包括cats(r)产品族。实际制造掩模的方法可以使用今天已知或将来开发的任何掩模制造技术。作为示例,可以使用在美国专利号6096458、6057063、5246800、5472814和5702847中阐述的技术来印刷掩模,由于其对掩模印刷技术的教导而全部通过引用并入本文。

通常的集成电路工艺开发流程可以包括如本文所述的本发明的多个方面。这种流程通常包括:

(1)开发用于制造集成电路的各个工艺步骤。这可以利用synopsys工具“sentaurusprocess”和“sentaurustopography”来建模。这里的输入信息包括如温度、反应器环境、注入能量等的工艺条件。输出信息是几何形状或掺杂轮廓或应力分布的改变。

(2)将各个工艺步骤集成到完整的工艺流程中。这可以用synopsys工具“sentaurusprocess”来建模。这里的输入信息包括按照适当顺序的过程步骤的集合。输出包括晶体管的几何形状、掺杂轮廓和应力分布以及晶体管之间的空间。

(3)分析利用该工艺流程制造的晶体管的性能。这可以用synopsys工具“sentaurusdevice”来完成。这里的输入信息包括步骤(2)的输出和施加到晶体管端子的偏执。输出信息包括针对每个偏置组合的晶体管的电流和电容。

在步骤(3)中开发的输出信息表征了使用该工艺制造的晶体管的特性,该特性然后被提供给电路仿真器(诸如hspice),以允许设计人员在晶体管级分析电路设计。通过在晶体管级分析电路,设计人员能够开发出更好的设计。

如有必要,修改工艺步骤和工艺流程,以实现所需的晶体管性能。这可以通过使用上面所提及的synopsys工具迭代地完成。如本文所述,可以在循环的任何迭代中构建和分析单元。

在工艺流程准备就绪之后,其就可以用于制造来自各个公司的各种设计人员的多种电路设计。eda流程112-130将由这些设计人员使用。例如,可以在代工厂使用这里描述的工艺开发流程,以开发可以用来制造来自设计人员的设计的工艺流程。工艺流程的组合和由步骤130制作的掩模被用来制造任何特定的电路。

ii.将与布局有关的应力变化考虑在内的放置和布线技术概述

如所提到的,通常的集成电路设计流程的一部分涉及开发逻辑设计,然后从逻辑设计合成电路设计。如本文所使用的,“电路设计”是在从vhdl或等效物合成之后并且在布局之前的晶体管级设计。另外,将理解,例如,如果此时仅要仿真电路的一部分,则布局不必具有完整的电路设计。使用任何所需的布局软件对电路设计进行布局。电路设计的“电路设计布局”描述了布局“特征”,并且其最终将用于定义晶体管、互连以及最终将出现在集成电路器件上的其他功能和非功能结构。“特征”包括由布局指定而存在于最终集成电路上的边缘、材料、深度等。如果两组布局特征在至少一个方面不同,则在本文中将它们视为“不同”。电路设计布局可以采用几种格式(例如gdsii、oasis、tif)中的任何一种。可从synopsys公司获得的可以用于对电路设计进行布局的示例产品为astro和cosmosle。

电路设计中的逻辑设计参考可用于单元库中的单元的各种单元逻辑功能来表达设计。ic设计人员通常会利用预先设计的标准单元(有时也被称为宏单元)来执行特定的逻辑功能,诸如逻辑门、寄存器、较大的逻辑功能、存储器,甚至整个处理器或系统。这些标准单元在一个库中提供,该库可从各种来源(诸如,代工厂、asic公司、半导体公司、第三方ic提供商、甚至是eda公司)获得,并且在设计较大电路时由设计人员使用。每个标准单元通常包括诸如以下信息:用于示意图的图形符号;用于硬件描述语言(诸如verilog)的文本;网表,描述被包括在电路中的器件、它们之间的互连以及输入和输出节点;一种或多种几何描述语言(诸如gdsii)的电路的单元布局(物理表示);用于供放置和布线系统使用的所包括的几何的抽象;设计规则检查平台;供逻辑仿真器和电路仿真器使用的仿真模型,等。电路设计的“电路设计布局”描述了最终将出现在集成电路器件上的特征,而单元的“单元布局”描述了定义该特定单元的晶体管、互连以及其他功能和非功能结构的特征。ic设计人员描述具有多个单元的电路设计。多个单元的对应单元布局将用于在最终电路设计布局中对电路设计进行布局。

针对每个单元,一些库可以包括更少的信息,而其他库可以包括更多的信息。在一些库中,在分开的文件中提供条目,而在其他库中,它们被组合为单个文件,或者一个文件包含用于多个不同的单元的条目。在所有情况下,文件被存储并分布在计算机可读介质上,或者以电子方式递送并且由用户存储在计算机可读介质上。如本文所使用的术语“计算机可读介质”可以包括一个以上的物理项目,诸如一个以上的磁盘、或ram段或两者。通常,计算机可读介质是非暂态的。

标准单元库通常包含面积、速度和/或功耗不同的相同逻辑功能的多个版本,以便允许设计人员或自动工具在这些特性之间进行折衷。如本文所使用的,如果两个或多个单元执行相同的逻辑功能,则它们被称为具有“共同的逻辑功能”。例如,对于“反相器”逻辑功能,可能有两个不同的单元可用,它们在速度和功耗之间实施不同的折衷。也可以将标准单元库视为标准单元的数据库。如本文所使用的,术语“数据库”不一定暗示任何结构上的统一。例如,当一起考虑时,两个或多个单独的数据库仍然构成“数据库”,本文中使用该术语。如此,定义每个单个标准单元的条目也可以被视为“数据库”。数据库可以存储在硬盘驱动器、存储设备上或存储在存储器位置中,或存储在一个或多个非暂态计算机可读介质中。如本文所使用的,无论数据库被布置在计算机可读介质上还是在计算机可读介质中,不旨在存在区别。

图2图示了实施指定电路设计的电路设计布局200的一个实施例的框图。电路设计布局200已经部分地布置有相邻单元a206、相邻单元b208和相邻单元c210。需要将目标单元202放置在目标位置204中,以便进一步完成指定电路设计的要求。如本文使用的,电路设计布局中的“位置”由其相对于其他单元的拓扑来定义,而不必相对于ic裸片的某个固定的绝对坐标系。因此,在将单元放置在电路设计布局中期间,如果将一个单元移位几微米,而不改变该单元相对于电路设计布局中其他单元的拓扑,则该单元的“位置”(如本文所使用的术语)没有改变。目标位置206是相对于目标位置附近的单元而定义的。在图2中,相邻单元a206在目标位置204的右侧,而相邻单元b208在目标位置204的下方。相对于某个位置的“相邻单元”可能不紧邻该位置,诸如目标位置204的相邻单元c210。

参考图2,可以从标准单元库中选择目标单元204。但是,这些标准单元库中的许多单元库没有考虑到单元内部应力变化的影响以及来自相邻单元的无意和有意应力生成机制的影响。相邻单元a206和相邻单元b208中存在的任何应力生成机制可能会导致放置在目标位置204中的目标单元中的应力变化。即使相邻单元c210不是目标位置204的直接邻居,相邻单元c210仍然会引起放置在目标位置204中的目标单元中的应力变化。由相邻单元施加在目标位置上的应力变化可能会妨碍放置在目标位置的任何单元的性能。目标位置中单元性能的降级又会使整个电路设计的性能降级。如果在电路设计布局中放置单元期间未考虑与布局相关的应力变化,则可能会严重损害ic的性能和设计规则合规性。

本发明的实施例通过一种改进的过程解决了这种不可预测性,该改进的过程至少部分地根据指定的电路设计、单元的目标位置和单元的性能(将由目标位置的相邻单元在单元内部引起的应力变化和单元内部的应力生成机制考虑在内),而在单元库中的可用单元中选择要放置在电路设计布局中的目标单元。放置在目标位置中的单元又可能会导致相邻单元中的应力变化,导致一个或多个相邻单元的性能改变。

来自相邻单元的应力贡献可以被表示为由相邻单元施加在单元上的应力“边界条件”。在一些实施例中,施加在单元上的边界条件可以表示为一组2d向量(在x和y方向上的2d向量,x方向与纵向方向相同,y方向与横向方向相同,并且z方向垂直于纵向和横向,z方向表示到集成电路芯片中的深度)。该组2d向量中的每个向量指示在沿单元边缘的给定点处的应力。在一些实施例中,在单元上施加的边界条件可以表示为一组3d向量(在x、y和z方向上的3d向量)。在一些实施例中,可以将附加的列添加到向量以表示应力之外的变量。在不同的实施例中,可以以不同的粒度水平来提供边界条件,例如,从单元的四个侧面中的每个侧面上一个点到单元的每个侧面上数千个点或更多。

沿着单元边缘的多个点中的每个点处的应力可以如下近似:通过组合由于在当前点周围的某个搜索区域中的各种应力生成机制对在当前点处的应力的近似应力贡献。由于应力随距离而衰减,因此搜索区域应当足够大,以包括单元外部的应力生成机制,但不应当延伸到太大的距离,以至于采样点处的应力贡献可忽略不计。如本文所使用的,多个值的“组合”意指以预定的数学函数一起评估多个值。在本实施例中,假定来自所有来源和所有应力生成机制的应力贡献是可相加的,并且系统简单地将近似应力贡献相加。通过引用并入本文的美国专利号8713510描述了对晶体管的沟道中的点处的应力进行近似的方法,并且出于本文的目的,类似的技术可以用于近似于宏单元的边缘上的点处的应力。

图3图示了包括本发明的方面的单元库数据库300的相关部分的组织。可以看出,在该库中,单元逻辑功能a(也被称为功能块a)具有四个单独的标准单元a1、a2、a3和a4,所有这些标准单元将执行逻辑功能a。类似地,图3中的单元功能b具有三个标准单元b1、b2和b3。为每个逻辑功能提供了多个单元选项,因为每个版本在对电路设计或在电路设计的特定位置中可能至关重要的竞争目标之间进行了不同的折衷。

对于每个单元选项,为多个不同的边界条件集合指定性能参数。在一些实施例中,在单元描述中分别列出多个边界条件集合,每个集合描述在单元的边缘上的多个点中的每个点处现存的假设边界条件集合。单元描述指示对于每个列出的假设边界条件集合,单元的性能参数将是什么。在另一个实施例中,针对一个或多个连续范围的值,公式化地定义多个边界条件集合。单元描述可以具有一个公式来描述作为这些连续范围中的每个连续范围中的边界条件值的函数的单元的性能特性将是什么。在又一个实施例中,通过将来自单元库的特定的其他单元标识为邻居来定义多个边界条件集合。单元描述可以指示对于每个指定的相邻单元,单元的性能参数将是什么。其他实施例对于读者将是显而易见的。

另外,如本文之前所提及的,可以假定许多种类的单元边界条件在单元内部的任何特定点处是可相加的。例如,对于应力、蚀刻微负载、材料沉积的可见性和化学药品的消耗是这种情况。因此,单元描述不必为单元所有四个侧面上的边界条件的所有组合指定单元的性能特性。例如,在单元的北侧、南侧、东侧和西侧单独地为它们指定边界条件的合理范围可能就足够了,由软件决定将在单元内部的任何特定点处的边界条件的效果相加。

对于每个单元id,库数据库还包括该单元在四个方向中的每个方向上施加在其自身相邻单元上的边界条件的指示。

例如,指定的各种性能参数可以是单元延迟、转换时间、电容、扇出、单元面积、漏电流和/或功耗。在各个实施例中,可以以各种形式中的任何一种来表示性能参数。在一个实施例中,它被表示为以时间为单位的单元的延迟和/或转换时间。在另一个实施例中,它被表示为以焦耳为单位的单元的功耗。在另一个实施例中,单元的延迟和功耗都被表示。多个单元选择的可用性为设计人员(或设计软件)提供了针对给定单元功能,对多个性能参数中的一个或多个性能参数折衷以有利于所述多个性能参数中的其他性能参数的能力,以便最佳地满足设计的需求。

从电路设计对电路设计布局进行布局的过程的一部分涉及选择要为电路设计中的单元逻辑功能的每个实例实施哪些可用的标准单元。在一个实施例中,一次考虑一个实例,并且选择单元以针对该实例的需求进行优化。

图4图示了根据本发明的一个实施例的单元放置系统400。单元放置系统400包括单元库300(诸如图3中图示的单元库300)、目标单元选择器410、电路设计414和目标单元设计布局412。图5是图示由图4的目标单元选择器410执行,以根据电路设计414从单元库300中选择单元以放置在目标电路设计布局412中的步骤的流程图。图5中所示的步骤在较大的循环内执行,该较大的循环为整个电路设计选择、放置所有单元并对所有单元进行布线。例如在通过引用并入本文的美国专利号5461576中阐述了更完整的放置和布线算法的一些示例。如同本文的所有流程图一样,将理解,许多步骤可以组合、并行执行或以不同的顺序执行,而不影响所实现的功能。在一些情况下,如读者将理解的,只有也做出某些其他改变,重新安排的步骤才能实现相同的结果。在其他情况下,如读者将理解的,只有满足某些条件,重新安排的步骤才能实现相同的结果。另外,将理解,本文的流程图仅示出了与理解本发明有关的步骤,并且将理解,可以在所示的那些之前、之后和之间执行用于完成其他功能的许多附加步骤。

在步骤502中,单元放置系统400通过查阅电路设计414,选择要在目标电路设计布局412中的目标位置中实施的单元逻辑功能实例。在步骤504中,单元放置系统400确定由目标位置的相邻单元施加在目标位置上的边界条件。在一些实施例中,系统可以确定由目标位置的一个相邻单元施加在目标位置上的边界条件。在一些实施例中,系统可以确定由目标位置的所有相邻单元施加在目标位置上的边界条件。

在步骤506中,单元放置系统400尤其根据要在目标位置中实施的单元逻辑功能(在步骤502中确定)以及由相邻单元施加在目标位置上的边界条件(在步骤504中确定),来选择目标单元。在一个实施例中,系统可以在考虑其他因素(诸如,单元功耗、单元的大小、布线和互连延迟等)的情况下,从单元库中选择目标单元。

来自单元库300的多个单元是可用的,以被选择用于放置在目标位置中,使得所选择的单元执行目标位置所需的单元逻辑功能。给定由目标位置的相邻单元施加在目标位置上的应力边界条件,每个可用单元的性能将彼此不同。在可用的多个单元中,为目标位置选择一个目标单元,使得它将在竞争目标之间提供最佳折衷。该选择可以包括明确的规则,诸如选择性能最佳的解决方案或选择还满足其他指定标准的解决方案。在一些实施例中,将考虑量化所有性能参数的成本函数。成本函数将以根据预先定义的优先级集合,对性能参数进行加权的方式来组合性能参数。例如,所应用的成本函数可以是候选解决方案的延迟和功耗的加权总和。计算每种候选解决方案的成本,然后选择成本最低(或收益最高)的解决方案。

在选择目标单元之后,在步骤508,将目标单元放置在电路设计布局412的目标位置。

在一些实施例中,被放置在目标位置(例如,图2中的位置204)中的所选择的目标单元将在相邻单元(诸如,图2中的相邻单元a206)上施加边界条件,使得相邻单元的性能可能改变。在这种情况下,单元放置系统400可以利用不同的变型来代替相邻单元,当将不同的变型放置在所选择的目标单元旁边时,可以比相邻单元的原始变型更好地满足该实例的目标标准。将理解,新的相邻单元还可以又对目标单元位置204以及相邻单元206周围的其他单元施加不同的边界条件,并且这可能需要对为目标单元202选择的单元以及某些其他附近的单元进行进一步的调整和替换。系统400贯穿整个电路设计(或其一部分)迭代该问题,直到获得令人满意的电路设计布局。

iii.利用设计技术协同优化流程准备单元库

为了提供用于以上单元选择方法的性能信息,本发明的另一方面是根据可以施加在单元上的多个边界条件集合来预先分析每个库单元的性能。

图6是图示了由一个实施例中的计算机系统执行以开发单元和性能信息的步骤的流程图600。

在步骤610中,系统开始遍历库中所有单元的循环。这包括时序单元和组合单元。

在步骤612中,系统开始遍历可以施加在步骤610中选择的单元上的多个假设边界条件集合的循环。在一些实施例中,多个假设边界条件集合可以是一系列边界条件。

在步骤614中,如果尚未在库中提供,则系统执行仿真以根据在步骤612中选择的假设边界条件集合来估计所选择的单元的性能参数。

在步骤616中,将在步骤614中估计的单元性能参数写到单元库数据库300中。在一个实施例中,该数据库与原始库分开存储,并且在这种情况下,每个条目可以指示诸如以下信息:标识条目所描述的特定单元的单元id、所选择的假设边界条件集合以及在步骤614中确定的性能参数。在另一个实施例中,性能参数与原始库集成在一起,并且与该库一起存储在计算机可读介质上。

在步骤618中,系统确定是否存在更多的假设边界条件集合要分析,如果是,则系统返回步骤612以分析下一个假设边界条件集合。如果否,则系统将由所有假设边界条件集合导致的所选择的单元的估计性能合并到所选择的单元的性能对边界条件的依赖性的单个标识中。该合并步骤将取决于单元库标识这种依赖性的形式。它可能涉及数学运算,或者可能涉及简单地将它们分别收集到库单元中指定的一个或多个空间中。而且,合并可以在步骤618之后发生,或者它可以在进行中发生(例如,作为步骤616的一部分)。在不同的实施例中,其他变化将是显而易见的。

在步骤619中,系统估计所选择的单元将施加在其自身邻居上的边界条件,并将其与所选择的单元相关联地写入单元库。两组分析都可以利用tcad系统执行。在步骤620中,系统确定是否有更多的单元要分析,如果是,则系统返回到步骤610以分析下一个单元。尽管图6的实施例分析了库中的所有单元,但是将理解,另一个实施例可以确定这些单元中的一些单元的性能参数。在另一个实施例中,并非必须分析库中的所有单元。

图7图示了用于针对施加在单元上的给定假设边界条件集合确定单元的性能的设计技术协同优化流程(步骤614)。在本发明的方面中,设计技术协同优化(dtco)流程用于基于单元的单元布局、测试中的制造工艺的描述以及施加在单元上的应力和其他边界条件来获得单元的性能评估。dtco是可以执行的一系列技术的通用名称,这些技术通常用于开发新的或改进的制造工艺。dtco流程的目标是使技术开发和设计团队能够使用从晶圆预研究阶段开始的设计技术协同优化方法,来评估各种晶体管和工艺选项。使用本文所述的技术,dtco流根据单元的布局并考虑寄生互连电阻和电容以及工艺变化的影响生成spice模型,工艺变化是由于蚀刻微负载、材料沉积的可见性、化学药品的局部消耗、光刻、蚀刻、由于各种内部和外部应力生成机制引起单元的掺杂和应力变化而引起。可以利用dtco流程来评估新的或经显著修改的ic制造技术的性能、功率、面积和成本。(此后,在本文中,“新”和“显著修改”类型的制造技术有时都被简称为“新”制造技术。)实现新ic技术的晶体管性能和功率目标需要考虑新的材料选择,并且有时还需要考虑新的器件架构。在新技术的性能评估期间,要考虑互连的寄生电阻和电容以及由于光刻、蚀刻、掺杂和应变引起的工艺变化的影响。

参考图7,本文的dtco流程从单元702的布局开始。单元布局702包括至少一个电子器件、至少一种导体和至少一个引脚。电子器件是用于控制电流流动以进行信息处理、信息存储和系统控制的部件。电子器件的示例包括晶体管、二极管、电容器和隧道结。电子器件通过它们的端子(例如,晶体管的栅极、源极和漏极)连接到单元电路。为了简化讨论,在本文示例中讨论的唯一一种电子器件是晶体管。将理解,本文描述的概念同样适用于具有其他类型的电子器件的电路设计。

单元中的引脚从和/向其他单元和电源线传递信号。单元中的晶体管和引脚通过本文称为互连的金属导体连接,其中晶体管端子和引脚充当互连的端点。如本文所使用的,“导体”是比“互连”更宽泛的术语。设计可能包括一个金属区域(导体),该区域不将一个端子或引脚互连到另一个端子或引脚。该系统未确定这种导体中的寄生电阻,但仍将其包括在内,因为它们仍然会影响寄生电容。同样如本文所使用的,互连具有一个或多个“端点”。端点包括晶体管和其他电子器件的端子以及“引脚”,“引脚”是可用于进一步连接到电源或其他电路块的端点。

ic中的互连可以跨越几层,每个层通过电介质与前一层分离。在需要从一层到另一层的互连的情况下,穿过中间的电介质层形成开口并且利用导电材料填充。这种结构有很多变化。如果层之间的互连将两个金属互连层互连,则其有时被称为‘过孔’。如果层之间的互连将第一金属互连层连接到晶体管中的硅层或栅极层,则其有时被称为“接触”。金属的第一层在本文中被称为“金属0”,或简称为m0。为了简化讨论,本文在“接触”和“过孔”之间没有区别,并且这两个术语在本文可互换使用。在制造期间,在底层电介质上形成m0层,然后对其图案化以形成单独的导体。然后在m0上方形成下一个电介质层,根据需要在该层中打开过孔,然后形成金属1(m1)层并对其图案化。该过程一直持续到m3、m4等,直到最高的金属层。

如本文所使用的,术语“互连”包括至少两个端点。具有一个端点的导体不能将信号或电流从一个端子或引脚运载到另一个端子或引脚,但是它仍然能够影响单元的整体寄生电容。在大多数实施例中,互连具有两个端点,例如,将引脚vdd连接到反相器中的p型晶体管的漏极端子的互连。在另一个实施例中,互连可以具有两个以上的端点(例如,扇出或功率分配)。

参考图7,布局标识器模块704从单元布局702提取前端处理(feol)结构、标识所有的晶体管端子并且对它们进行标记。它还从布局文件的较高层提取后端处理(beol)结构,并且将晶体管端子与金属接触引脚匹配。布局标识器模块704从单元布局702提取引脚位置和标签。布局标识器模块704输出带标注的单元布局708,其中所有的晶体管端子和引脚都被标记。如本文其他地方所解释的,引脚和晶体管端子的标签和位置可以用于标识对应的互连端点。布局标识器模块704还从相同信息导出晶体管网表706。在一个实施例中,所导出的晶体管网表706仅列出晶体管(包括沟道宽度和栅极长度)。在电路设计中包括finfet的另一个实施例中,每个finfet晶体管的鳍的数量也被包括在晶体管网表706中。网表是对单元中不同部件(诸如晶体管端子和引脚)之间的连接性的文字描述。标称网表可以采用几种格式中的任何一种(例如edif、ascii、rinf、edif2、padspcb、protel等)。

可以用来实施布局标识器模块704的来自synopsys公司的示例eda软件产品包括“icworkbenchedit/viewplus”(icwbev+)工具。

带标注的单元布局708被提供给制造工艺仿真器710,其仿真目标工艺712的各种制造步骤以仿真根据布局708的器件的制造。工艺712提供对目标制造工艺的充分描述,以便可以在仿真器中对其进行仿真。可以用作制造工艺仿真器710的来自synopsys公司的示例eda软件产品包括“sentaurusprocessexplorer”。在另一个实施例中,可以使用精确度更高的工艺仿真器,例如sentaurusprocess。

制造工艺仿真器710的输出是制造工艺完成之后单元的3-d单元表示714的表示。3-d单元表示714指示结构中不同材料之间的表面和界面,并且考虑了来自光刻图案化和蚀刻的线边缘变化和拐角圆化。

3-d单元表示714被提供给寄生电阻和电容估计器716。寄生电阻和电容估计器716可以包括场求解器,其通过仿真流过3-d单元表示714中的互连端点的电流来计算寄生电阻和电容720。可以用于寄生电阻和电容估计器716的来自synopsys公司的示例eda软件产品包括“raphael”。

3-d单元表示714也被提供给布局效果估计器718。布局效果估计器718以伯克利短沟道igfet(bsim)模型724的参数的形式来表征3维单元表示714中的每个晶体管。在本文其他地方更详细描述的布局效果估计器718考虑了在掺杂期间发生的工艺变化以及施加在单元上的假设边界条件集合730。

然后,将来自寄生电阻和电容估计器716的寄生电阻和电容720和来自布局效果估计器718的bsim参数724提供给网表标注器722。网表标注器722组装电阻和电容寄生720,并且将其包括到晶体管网表706中以形成带标注的网表726,其中包括所有rc寄生的真实值。由现在对晶体管中每个晶体管特定的bsim参数724来描述带标注的网表726中的晶体管中的每个晶体管的行为。带标注的网表726可以被存储在硬盘驱动器、存储设备上或存储位置中,或者被存储在一个或多个非暂态计算机可读介质中。带标注的网表可以采用多种格式中的任何一种(例如edif、ascii、rinf、edif2、padspcb、protel等)。

然后,将带标注的网表726应用于电路仿真器728(诸如hspice),以表征在整个单元级别的单元性能。通过使用针对当前假设边界条件集合730仿真的晶体管操作特性,加上单元中所有rc寄生的真实值,为当前的单元确定了特别是在当前的假设边界条件集合730下的真实的性能参数集合。

参考图7,可以由流程控制器734自动控制布局标识器704、制造工艺仿真器710、寄生电阻和电容估计器716、布局效果估计器718、网表标注器722、甚至电路仿真器728的操作的顺序。流程控制器734可以是执行脚本以按图7中阐述的顺序调用单独的处理模块中的每个处理模块并且定义在它们之间的数据流的模块。流程控制器可以例如利用可从synopsys公司获得的sentaurusworkbench来实施。

图8是图7中的设计技术协同优化流程的布局效果估计器718的流程图细节。在布局效果估计器718中,将3-d单元表示714和当前假设边界条件集合730提供给应力分布器802。应力分布器802将机械应力分析804添加到3-d单元表示714。可以用作应力分析器802的来自synopsys公司的示例eda软件产品包括“sentaurusprocess”。应力分析器802的输出包括器件结构的表示,并在其上施加了节点的网格。每个节点包括有关紧接该节点周围的体积区域的各种详细信息,包括应力变化。在本文描述的实施例中,做出应力在节点“中”的近似。

然后,来自3-d单元表示714的具有应力分布804的各个晶体管被仿真域生成器806划分为单独的仿真域808(体积区域)。图9图示了具有由不同的灰色阴影表示的局部应力分布的3-d单元表示900。最暗的阴影表示布局中的最高应力区域。最浅的阴影表示布局中的最低应力区域。具有四个晶体管902、904、906和908的3-d单元表示900被划分为四个仿真域,每个域仅包含一个晶体管。数据库808中的每个仿真域包含其各自的应力分布,以及由于光刻、掺杂和微负载蚀刻效应而引起的变化。

在器件仿真器810中对808中的每个仿真域进行表征,并且晶体管的操作特性被保存在数据库812中。在一些实施例中,晶体管的“操作特性”可以是晶体管的电流-电压特性。在一些实施例中,晶体管的“操作特性”可以是晶体管的瞬态特性。可以用作器件仿真器810的来自synopsys公司的示例eda软件产品是“garand”。garand是3d漂移扩散仿真器,其可以以花费大量的计算时间为代价来产生高精确度的iv曲线。在步骤806中将整个器件结构划分为较小的仿真域,可以使仿真在合理的时间段内完成,并且不会丢失精确度,因为3d模型中包括的应力分布是从全尺寸的器件结构生成的。

然后,由参数提取器814将特定于晶体管的操作特性转换为每个仿真域808的bsim模型参数714。可以用作参数提取器814的来自synopsys公司的示例eda软件产品是“mystic”。

dtco流程的许多修改和变化对于本领域技术人员将是显而易见的。在一些实施例中,dtco流程可以用于在考虑任何工艺变化(诸如,掺杂波动)的情况下来评估单元性能。制造工艺具有内置的固有随机性和系统性可变性。制造期间的工艺变化会导致晶体管参数(诸如阈值电压、栅极长度或沟道宽度)的变化,这会影响晶体管的驱动强度、功耗和延迟。随着晶体管尺寸的缩小,工艺变化的影响增加。可以具有小于20nm的栅极长度的现代晶体管的工艺变化的来源中的一个来源是随机掺杂物波动。在具有小于20nm的沟道长度的晶体管沟道中需要少于100个掺杂剂原子来实现1019原子/cm3的沟道掺杂剂浓度。仅几个掺杂剂的位移或缺失会导致阈值电压变化。工艺变化的另一个来源是光刻图案化。光刻用于在ic芯片制造工艺期间,在硅晶圆上创建图案。印刷图案对地形改变、覆盖误差、聚焦和剂量变化以及随机颗粒缺陷高度敏感。印刷图案的边缘表现出5nm规模的粗糙度。对于栅极长度小于50nm的晶体管尺寸,这种线边缘粗糙度(ler)变得显著。除了ler之外,由于拐角圆滑造成的图像效果导致关键尺寸也会变化。具有尖的拐角的印刷图案在超出光刻系统分辨率的空间频率下会表现出对特征的圆化,从而影响拐角附近的特征的宽度。晶体管特征的不规则性也可能是由蚀刻期间的微负载效应引起的。

iv.硬件实施方式

图10是可以用于实施本文的任何方法和系统的计算机系统1010的简化框图。特别地,它可以用于实施图4的目标单元选择器410和/或图7中的dtco流程。在各种实施例中,它还包括或访问单元库数据库300。

计算机系统1010通常包括处理器子系统1014,该处理器子系统1014通过总线子系统1012与多个外围设备进行通信。这些外围设备可以包括:包括存储器子系统1026和文件存储子系统1028的存储子系统1024、用户界面输入设备1022、用户接口输出设备1020和网络接口子系统1016。输入和输出设备允许用户与计算机系统1010交互。网络接口子系统1016提供到外部网络的接口,包括到通信网络1018的接口,并且经由通信网络1018耦合到其他计算机系统中的对应接口设备。通信网络1018可以包括许多互连的计算机系统和通信链路。这些通信链路可以是有线链路、光学链路、无线链路或任何其他信息通信机制,但是通常它是基于ip的通信网络。虽然在一个实施例中,通信网络1018是因特网,但是在其他实施例中,通信网络1018可以是任何合适的计算机网络。

网络接口的物理硬件组件有时被称为网络接口卡(nic),尽管它们不必以卡的形式出现:例如,它们可以以集成电路(ic)和直接安装到主板上的连接器的形式出现,或者以宏单元的形式与计算机系统的其他组件一起制造在单个集成电路芯片上。

用户界面输入设备1022可以包括键盘、指示设备(诸如鼠标、轨迹球、触摸板或图形输入板)、扫描仪、包含在显示器中的触摸屏、音频输入设备(诸如语音标识系统、麦克风),和其他类型的输入设备。通常,术语“输入设备”的使用旨在包括将信息输入计算机系统1010中或计算机网络1018上的所有可能类型的设备和方式。

用户接口输出设备1020可以包括显示子系统、打印机、传真机或诸如音频输出设备的非可视显示器。显示子系统可以包括阴极射线管(crt)、诸如液晶显示器(lcd)的平板设备、投影设备或其他用于创建可视图像的机构。显示子系统还可以诸如经由音频输出设备来提供非视觉显示。通常,术语“输出设备”的使用旨在包括从计算机系统1010向用户或另一个机器或计算机系统输出信息的所有可能类型的设备和方式。

存储子系统1024存储提供本发明某些实施例的功能的基本编程和数据构造。例如,实施本发明的某些实施例的功能的各种模块可以被存储在存储子系统1024中。这些软件模块通常由处理器子系统1014执行。数据库300、706、708、712、720、724、726、804、808和812可以驻留在存储子系统1024中。存储子系统1024还表示其上存储了本文提到的各种数据库的计算机系统可访问的存储装置。在另一个实施例中,一些或全部数据库位于可经由网络1018被计算机系统访问的存储装置上。

存储器子系统1026通常包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)1030和其中存储有固定指令的只读存储器(rom)1032。文件存储子系统1028为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、cdrom驱动器、光盘驱动器或可移动介质盒。实施本发明的某些实施例的功能的数据库和模块可以已经在诸如一个或多个cd-rom的计算机可读介质上提供,并且可以由文件存储子系统1028存储。例如,图3、图4、图7和图8中的数据库中的每个数据库可以被包括在存储子系统1028中。主机存储器1026尤其包含计算机指令,当该计算机指令由处理器子系统1014执行时,使计算机系统操作或执行本文所述的功能。如本文所使用的,响应于包括这些指令和数据的任何其它本地或远程存储的主机存储器子系统1026中的计算机指令和数据,在处理器子系统1014上执行据说在“主机”或“计算机”中或上运行的过程和软件。

总线子系统1012提供了一种机制,用于使计算机系统1010的各种组件和子系统按预期的方式相互通信。尽管总线子系统1012被示意性地示为单个总线,但是总线子系统的备选实施例可以使用多个总线。

计算机系统1010本身可以是各种类型,包括个人计算机、便携式计算机、操作站、计算机终端、网络计算机、电视、大型机、服务器场,或任何其他数据处理系统或用户设备。由于计算机和网络的不断改变的性质,因此对图10中所描绘的计算机系统1010的描述仅旨在作为用于说明本发明的优选实施例的具体示例。计算机系统1010的许多其它配置可能具有比图10所示的计算机系统更多或更少的组件。

另外,尽管已经在完全起作用的数据处理系统的上下文中描述了本发明,但是本领域普通技术人员将理解,本文的数据库和过程能够以指令和数据的非暂态计算机可读介质的形式来被分布,并且不管实际用于执行分发的信号承载介质的具体类型如何,本发明都同样适用。例如,根据本文描述的技术开发的单元库可以被转发(直接地或经由用户)到放置和布线设备,然后,放置和布线设备可以使用该库来改进放置和布线系统的操作。如本文使用的,计算机可读介质是其上可以由计算机系统存储和读取信息的介质。示例包括软盘、硬盘驱动器、ram、cd、dvd、闪存、usb驱动器等。计算机可读介质可以按照编码的格式来存储信息,该编码的格式被解码以用于在特定数据处理系统中的实际使用。作为本文使用的术语,单个计算机可读介质还可以包括一个以上的物理项目,诸如多个cd-rom或多个ram段,或者几个不同种类的介质的组合。如本文使用的,该术语不包括其中信息以信号随时间变化的方式被编码的仅时变的信号。

如本文使用的,对信息项的“标识”不一定要求对该信息项的直接指定。可以通过一层或多层间接引用实际信息,或者通过标识一起足以确定实际信息项的一项或多项不同信息来“标识”信息。另外,本文使用术语“指示”来意指与“标识”相同。

同样如本文使用的,如果之前值影响给定值,则给定值“响应”于之前值。如果存在中间处理步骤,则给定值仍然可以“响应”于之前值。如果中间处理步骤组合了一个以上的值,则认为该处理步骤的输出“响应”于值输入中的每个值输入。如果给定值与之前值相同,则这仅仅是退化情况,其中给定值仍被认为“响应”于之前值。给定值对另一个值的“依赖性”被类似地定义。

申请人在此分离地公开了本文描述的每个单独的特征,以及两个或多个这种特征的任何组合(在这种特征或组合能够根据本领域技术人员的公知常识基于本说明书在整体上被执行的程度上),不管这种特征或特征的组合是否解决了本文公开的任何问题,并且不限制可能被包括的任何权利要求的范围。申请人指出,本发明的方面可以包括任何这种特征或特征的组合。鉴于前述描述,对于本领域技术人员显而易见的是,在本发明的范围内可以进行各种修改。

已经出于说明和描述的目的而提供了对本发明的优选实施例的前述描述。其并不旨在是穷举的或将本发明限制为所公开的精确形式。很显然,许多修改和变型对于本领域技术人员将是显而易见的。具体地并且非限制性地,在本专利申请的背景技术部分中通过引用来描述、建议或并入的任何和所有变型通过引用而被特别地并入到对本发明的实施例的本文的描述中。另外,本文关于任何一个实施例通过引用来描述、建议或并入的任何和所有变型也将被认为是相对于所有其它实施例的教导。为了最好地解释本发明的原理及其实际应用,选择和描述了本文描述的实施例,由此使得本领域技术人员能够理解本发明的各种实施例,并且各种修改适于预期的特定用途。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1