基于布局环境的单元时序特征分析的制作方法

文档序号:24731054发布日期:2021-04-20 13:49阅读:65来源:国知局
基于布局环境的单元时序特征分析的制作方法

1.本发明实施例涉及基于布局环境的单元时序特征分析。


背景技术:

2.在先进半导体技术中,装置大小的持续减小及日益复杂电路布置已使集成电路(ic)的设计及制造更具挑战性且昂贵。在现代电路设计方法论的流程中,所设计的电路在其经递送以供大量生产之前必须经测试以确认其符合设计规范及制造准则。如果并非不可能,那么数百万晶体管装置的此确认难以以有效且精确的方式手动完成。已引入电子设计自动化(eda)工具以辅助设计并检修电子电路以提高设计效率且减少设计误差。此外,提供各种设计库以减少在电路中建置常用功能块的工作量。但是,尽管eda工具已显著进步,但其在许多方面仍不令人满意。举例来说,库通常提供具有比必需更大的余量的参数以便适应尽可能多的互连条件且确保基于库制作的所制造电路正确地起作用。因此,可在能力、面积或性能方面以次优效率制作电路。因此,需要改进eda辅助的设计流程以减少不必要设计余量,同时维持电路性能。


技术实现要素:

3.本发明的实施例涉及一种方法,其由至少一个处理器执行,所述方法包括:存取集成电路(ic)的布局,所述布局包括至少一个单元;基于所述单元的布局环境来确定所述单元的环境群组,所述环境群组与时序表相关联;及对所述布局执行时序分析以根据所述时序表确定所述布局是否遵守时序约束规则。
4.本发明的实施例涉及一种系统,其包括一或多个处理器及包含指令的一或多个程序,所述指令在由所述一或多个处理器执行时导致所述系统:存取集成电路(ic)的布局,所述布局包括单元;基于所述单元的布局环境来确定所述单元的环境群组,所述环境群组与时序表相关联;且对所述布局执行时序分析以根据所述时序表确定所述布局是否遵守时序约束规则。
5.本发明的实施例涉及一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理器执行时执行以下步骤:存取集成电路(ic)的布局,所述布局包括单元;基于所述单元的布局环境来确定所述单元的环境群组,所述环境群组与时序表相关联;及对所述布局执行时序分析以根据所述时序表确定所述布局是否遵守时序约束规则。
附图说明
6.当结合附图阅读时,从以下详细描述最佳理解本发明实施例的方面。应注意,根据产业中的标准实践,各种构件未按比例绘制。事实上,为了清楚论述可任意增大或减小各种构件的尺寸。
7.图1是说明根据本发明实施例的一些实施例的集成电路(ic)的设计流程的示意图。
8.图2是根据本发明实施例的一些实施例的环境分组过程的示意图。
9.图3a是根据本发明实施例的一些实施例的示范性布局。
10.图3b到图3e是根据本发明实施例的一些实施例的单元的各种示范性布局环境。
11.图3f是根据本发明实施例的一些实施例的训练模型的示意图。
12.图4a是根据本发明实施例的一些实施例的环境分组的结果的示意图。
13.图4b是显示根据本发明实施例的一些实施例的不同环境群组的时序延迟分布的图表的示意图。
14.图5a是展示根据本发明实施例的一些实施例的环境感知单元辨识算法的示意图。
15.图5b是展示根据本发明实施例的一些实施例的环境群组的时序表的示意图。
16.图6是根据本发明实施例的一些实施例的环境感知单元辨识算法的方法的流程图。
17.图7是根据一些实施例的实施布局设计的系统的示意图。
具体实施方式
18.在以下详细描述中,陈述众多特定细节以便提供对本发明实施例的透彻理解。但是,所属领域的技术人员将了解,可在没有这些特定细节的情况下实践本发明实施例。在其它例项中,没有详细描述众所周知的方法、过程、组件及电路以免混淆本发明实施例。
19.此外,本发明实施例提供用于实施所提供的目标的不同构件的许多不同实施例或实例。下文描述组件及布置的特定实例以简化本发明实施例。当然,这些仅为实例且非意在限制。举例来说,在以下描述中的第一构件形成于第二构件上方或上可包含其中所述第一构件及所述第二构件经形成为直接接触的实施例,且也可包含其中额外构件可形成在所述第一构件与所述第二构件之间,使得所述第一构件及所述第二构件可不直接接触的实施例。另外,本发明实施例可在各个实例中重复元件符号及/或字母。此重复出于简化及清楚的目的且本身不指示所论述的各个实施例及/或配置之间的关系。
20.此外,为便于描述,例如“在

下面”、“在

下方”、“下”、“在

上方”、“上”及类似者的空间相对术语可在本文中用于描述一个元件或构件与另一元件或构件的关系,如图中说明。空间相对术语意在涵盖除在图中描绘的定向以外的使用或操作中的装置的不同定向。设备可以其它方式定向(旋转90度或按其它定向)且因此可同样解释本文中使用的空间相对描述词。
21.尽管陈述本发明实施例的广泛范围的数值范围及参数是近似值,但尽可能精确地报告特定实例中陈述的数值。但是,任何数值大体上含有必然由通常在相应测试测量中发现的偏差所引起的某些误差。再者,如本文中使用,术语“大约”、“大体”或“大体上”通常意指在给定值或范围的10%、5%、1%或0.5%内。替代地,术语“大约”、“大体”或“大体上”意指在由所属领域的技术人员考虑时处于平均值的可接受标准误差内。除在操作/工作实例中以外,或除非以其它方式明确指定,否则例如针对本文中揭露的材料的数量、持续时间、温度、操作条件、数量的比率及其类似者的全部数值范围、数量、值及百分比应被理解为在全部例项中由术语“大约”、“大体”或“大体上”修饰。因此,除非相反地指示,否则本发明实施例及所附权利要求书中陈述的数值参数是可视需要变动的近似值。最起码,每一数值参数应至少依据所报告有效数字的数目且通过应用普通舍入技术而理解。可在本文中将范围
表达为从一个端点到另一端点或在两个端点之间。除非另有指定,否则本文中揭露的全部范围皆包含端点。
22.贯穿本发明实施例,术语“作用区”是指半导体装置的表面的平坦区,在所述半导体装置中(或上方)形成半导体晶体管的主要组件。可使用作用区来定义其中形成晶体管装置的栅极或源极/漏极区的区。替代地,可使用例如“氧化物扩散(od)区”、“氧化物定义(od)区”及“作用区”的一些其它术语来指代作用区。作用区从俯视图视角可形成为各种形状(例如矩形形状)且有时可被称为“od带”。在一些实施例中,作用区被电介质材料横向围绕,且因此借此定义作用区的边界。作用区可包含掺杂或无掺杂部分。
23.本发明实施例论述用于在制造半导体ic的设计时间中确定并提供单元的时序参数的单元库特征分析架构。当合成操作用于实施电路设计(例如,电路布局或仅布局)时,通常涉及单元库以支持常用功能块的硅验证电路以促成设计过程。单元库可包含具有从定量视角特性化单元的电气或几何特性且充当单元配置文件(profile)的相关联参数的各种标准单元。在各种单元参数中,时序或延迟参数发挥至关重要的作用用于确保电路的适当运行。举例来说,与单元的引脚相关联的时序参数(例如上升延迟、下降延迟或其它过渡延迟)影响其中涉及单元的信号取样或信号传输的性能及稳定性。
24.在时序表或延迟表中提供单元中的引脚的时序参数以反映由制作芯片中的引脚使用的实际时间周期。这些时序参数取决于单元的详细设计且因此通常由单元设计者(例如,第三方库提供者)预定并提供。与引脚相关联的实际时间延迟进一步受单元附近的电路或耦合到单元的电路的拓扑结构的影响;此效应被称为布局相依效应。在整个本发明实施例中,在单元附近或在耦合到单元的电路构件中的布局相依电路拓扑结构统称为单元的环境。当在布局中使用相同类型的一个以上单元时,个别单元在整个本发明实施例中可被称为所述单元类型的不同单元例项。
25.为解决单元的布局相依效应的问题,库提供者可在缺少关于布局环境的信息的情况下指派一个以上候选时序表集,例如,涵盖引脚的最快及最慢时间延迟条件的时序表。可执行eda工具以基于每一回合中的候选时序表运行多个回合的时序分析任务。但是,通常需要设计布局在提供最快及最慢延迟条件的至少两个时序表下通过时序验证,且最快(或最慢)延迟条件同样适用于布局的不同位置的全部单元例项而不考虑个别单元例项的布局环境。因此,针对特定单元例项提供的时序参数可能过于保守或激进。归因于过于保守时序参数可能发生面积或能力的浪费,且可能需要重新设计以修改过于激进时序参数。因此,限制芯片性能。
26.在本发明实施例中,提出一种经改进单元时序特征分析方法及一种用于实施所述方法的系统。所提出的单元时序特征分析主要包括两个阶段,即,训练阶段及辨识阶段。在训练阶段期间,用模型特定参数建置训练模型或分类模型以将单元的各种环境分类成不同群组。可训练参数以提取每一群组的时序延迟与布局相依效应之间的相关性。举例来说,训练模型可考虑单元周围的布局构件(例如,氧化物扩散(od)区或等效地作用区)的信息。可在辨识阶段中利用训练有素模型,在所述辨识阶段期间,单元例项连同其环境一起通过训练模型分类成适合群组且被指派与所述群组相关联的时序表。因此,所提出的单元时序特征分析方法实施可通过考虑不同布局环境而确定单元例项的不同时序表的环境感知时序参数特征分析架构,且因此比预定时序表更好地匹配实际时间延迟值。因此,所估计的时序
延迟可辅助改进不同单元例项中的引脚的时序延迟的估计且降低归因于由时序表提供的宽范围的延迟值而需要重新设计电路的可能性。另外,显著减少产生用于处理布局相依效应的时序表的长列表的负担。
27.图1是说明根据一些实施例的半导体集成电路(ic)的设计流程10的示意图。用于设计半导体ic或芯片的设计流程10利用一或多个电子设计自动化(eda)工具以在其中执行操作。独立运算装置或运算群集(例如工作站、个人计算机或其群组)通常用于执行设计流程10的方法。设计流程10包含系统设计阶段110、逻辑设计阶段120、合成阶段130、布局前模拟阶段140、放置及布线开发阶段150、参数提取阶段160、时序分析阶段165、布局后模拟阶段170、光掩模产生阶段190及电路制作阶段195。
28.最初,在系统设计阶段110,用高阶描述提供所关注芯片的系统架构。在阶段110期间,根据设计规范确定芯片功能连同性能要求。通常通过相应示意性功能模块或块表示芯片功能。另外,可寻求优化或性能折衷以在成本及能力的可接受水平下达成设计规范。
29.在逻辑设计阶段120,在寄存器转移级(rtl)中使用硬件描述语言来描述功能模块或块。通常使用市售语言工具,例如verilog或vhdl。在一实施例中,在阶段120期间执行初步功能性检查以验证所实施的功能是否符合阶段110中陈述的规范。在一些实施例中,执行时序验证以确定rtl级电路设计是否遵守规范。
30.随后,在合成阶段130,将rtl描述中的模块转换成设计数据(例如,网表数据)的例项,其中建立每一功能模块的电路结构(例如,逻辑门及寄存器)。在实施例中,提供库132(例如,标准单元库)以供应伺服特定布尔逻辑或循序逻辑功能的不同类别的低阶电路(即,标准单元)。在一些实施例中,进行逻辑门及寄存器到标准单元库中的可用单元的技术映射。此外,提供设计数据或网表数据以描述处于门级的芯片的功能关系。可由ic设计者、ic制造公司、eda工具提供者或任何相关第三方提供库132。库132也提供与每一单元相关联的参数,例如时序延迟、功率、电压及类似者。在实施例中,网表数据从门级视图变换为晶体管级视图。在实施例中,当库经提供或更新(如本文中将在后续段落中描述)且并入到eda工具中时,ic设计者可识别设计规则的违规(例如,时序违规)且响应于经识别违规而修订原始网表数据。
31.随后,在布局前模拟阶段140验证门级网表数据。在阶段140的验证过程期间,如果一些功能在模拟中未能通过验证,那么设计流程10可暂时暂停或可返回到阶段110或120以供进一步修改。在布局前模拟阶段140之后,芯片设计已通过初步验证且完成前端设计过程。接着,进行后端物理设计过程。在一些实施例中,也执行时序验证以确定合成网表数据是否遵守规范。
32.在放置及布线阶段150期间,实施在前端过程期间确定的表示芯片的物理架构。尽管未明确陈述,但布局开发可包含在放置及布线阶段150开始时或之前的平面规划阶段,其中所述平面规划阶段用于为二维电路平面中的主要功能块分配空间。随后,布局开发依序涉及放置操作及布线操作。在放置操作中确定平面规划阶段中的主要块的组件的详细结构及相关联几何形状。继放置操作之后对不同组件中的互连件进行布线。执行放置操作及布线操作两者以符合设计规则检查(drc)平台的要求使得满足芯片的制造约束。在实施例中,在数字电路的放置及布线阶段执行时钟树合成操作,其中将时钟产生器及电路并入到设计中。在实施例中,执行时序分析或验证操作以确定试验电路布置是否符合设计规范,且继初
步布线操作之后执行布线后操作以便解决在时序验证操作期间发现的时序问题。一旦完成放置及布线阶段150,便形成放置及布线布局且相应地产生网表连同关于放置及布线的数据。
33.在参数提取阶段160期间,进行布局参数提取(lpe)操作以基于放置及布线阶段150中开发的布局导出布局相依参数(例如寄生电阻及电容)。随后,产生包含布局相依参数的布局后网表数据。
34.随后,在时序分析阶段165执行时序分析或时序验证。阶段165中执行的时序验证可考虑阶段160中提取的布局相依参数,且更好地反映寄生电阻及电容的效应下的电路行为。库132可参与阶段165的时序分析操作。
35.在布局后模拟阶段170期间,考虑先前阶段中获取的参数而执行物理验证。进行晶体管级行为的模拟以检查由布局后网表导出的芯片性能是否符合系统规范。在一些实施例中,执行布局后模拟以最小化芯片制程期间的电气问题或布局困难的可能性。在实施例中,不但针对阶段130而且针对阶段140、150、160、165及170提供库132,使得可利用库132中列出的单元及其它构件的电气或几何参数以在整个设计流程10中模拟电路的真实性能。
36.接着,在阶段180中,确定布局后网表是否符合设计规范。如果布局后模拟的结果是不利的,那么设计流程10循环回到先前阶段以调谐功能性或结构。举例来说,设计流程10可循环回到阶段150,其中重新开发布局以从物理视角解决问题。替代地,在无法在后端过程内解决问题的情况下,设计流程10可退回到较早阶段110或120以从功能级重铸芯片设计。
37.如果布局后网表通过验证,那么接受且接着相应地签核电路设计。根据接受的布局后网表来制造芯片。在实施例中,在阶段190期间,基于阶段170中的经验证布局后网表产生至少一个光掩模。光掩模是图案化掩模,其用于允许光的部分穿过或反射离开光掩模同时阻挡或吸收光的其它部分以便在晶片上的光敏层(例如,光致抗蚀剂层)上形成构件的图案。使用光掩模将经验证布局后网表的图案转印到晶片上。在一些实施例中,多层布局网表可能需要一组光掩模,其中在对应光掩模中建立每一层中的构件图案。因此,光掩模上形成的布局网表的图案通过曝光操作转印到光敏层。
38.在阶段195期间,在晶片上使用阶段190中产生的光掩模上的图案来制作电路。制作可涉及已知半导体制造操作,例如光刻、蚀刻、离子植入、沉积、及热操作。在一些实施例中,可在阶段195的中间或最后阶段中利用测试操作以确保制作电路的物理及功能完整性。在一些实施例中,可使用单粒化操作来将电路晶片分离成个别电路裸片。因此,完成电路的制作。
39.图1中说明的设计流程10是示范性的。对上文提及阶段的修改(例如阶段顺序的变化、阶段的划分、及阶段的删除或添加)在本发明实施例的预期范围内。
40.图2是根据本发明实施例的一些实施例的环境分组过程200的示意图。使用环境分组过程200以基于其布局环境提供目标单元的分类群组。当环境分组过程200开始时,存取或产生包含至少一个单元例项ci的至少一个布局202。布局202可为在后端阶段的不同阶段(例如具有不同完整度的阶段150、160、165、190或195)产生的历史布局数据。在一些实施例中,布局202由其中确定单元附近的布局环境的多个布局形成。举例来说,单元例项ci的布局环境包括电阻器、电容器、电感器、金属线的互连且布局环境可由邻近单元例项ci的构件
(例如氧化物扩散(od)区(或作用区)、栅极区、电介质区、掺杂区及导电区)形成。在一些实施例中,预定定义单元例项的布局环境的边界的环境区域,且仅与环境区域重叠的布局的电路构件被视为环境的内容。在一些实施例中,环境区域具有圆形形状、多边形形状(例如矩形形状)或其它适合形状。
41.在一些实施例中,执行模拟以测量或模拟所关注布局中的个别单元例项的时序延迟。通过考虑每一单元例项的环境信息而跨整个布局或布局的分区进行模拟。单元例项的模拟时序延迟根据不同单元环境而不同且可在时序分析或时序验证操作中用作相应单元例项的时序延迟。
42.提供训练模型204以基于模型设置203通过环境分组过程200将布局数据202中的单元例项ci的历史或预定环境分类成不同群组。在一些实施例中,将布局202的抽象信息(例如布局202的编译参数)馈送到训练模型204中。在一些实施例中,单元附近的电路拓扑结构可变换成一或多个附近图像且将所述附近图像馈送到训练模型204中。在一些实施例中,通过训练模型204识别相同单元类型的全部单元例项ci。此外,包含经识别单元例项ci周围的电路的布局环境经提取且馈送到训练模型204中。
43.训练模型204经配置以在人工智能或机器学习架构下进行环境分组。通过模型结构及所附模型设置203定义训练模型204。在一些实施例中,模型设置203可包含模型类型、包含层、节点、互连及学习算法的模型的阶层、群组数目n(其中n是整数)、及群组中的每一者的时序(延迟)表集。训练模型204的模型类型可为人工神经网络,包含(但不限于)卷积神经网络(cnn)、循环神经网络(rnn)、自动编码器及类似者。在一些实施例中,通过lenet、alexnet、vgg、googlenet、resnet及类似者建构训练模型204。在一些实施例中,模型设置203进一步包含(但不限于)训练模型204的层数目、每一层的节点数目、及使节点互连的边缘的权重值。在一些实施例中,使用无监督学习方法来执行模型训练过程。
44.通过布局202的布局信息(明确来说单元例项ci的电路拓扑结构信息或环境)训练训练模型204。单元例项ci的环境可包含作用区(或等效地od带)、栅极区、电介质区、掺杂区及导电区,其中前述区的形状、定向及距离可能影响单元例项ci的引脚的时序延迟。在一些其它实施例中,单元例项ci的环境包含电阻器、电容器、电感器及金属线,其影响信号的响应时间或传输时间。这些构件的配置、几何形状及材料可确定电气性质,例如由单元例项ci从单元例项ci的引脚看见或经历的电容、电感及电阻。
45.图3a是根据本发明实施例的一些实施例的示范性布局202。在所描绘的实施例中,布局202包含水平延伸的至少六个单元行,其中单元行可具有相同或不同行高度。另外,每一单元行包含彼此隔开预定距离的单元(例如,在所描绘的实施例中为十个单元)。布局202的每一单元行进一步包含水平延伸的作用区(也被称为od带)。在所描绘的实施例中,每一单元行包含延伸于单元上方的顶部作用区带、延伸于单元下方的底部作用区带、及跨单元的两个中间作用区行。但是,应注意,尽管单元相对于作用区带的一般配置在图3a中看起来类似,但每一单元与其邻近作用区带的详细毗连条件可变化。不同单元例项中的环境的微妙差异导致时序延迟的变动。在所提出的架构中,个别地识别、收集并处理具有相同单元类型的单元例项。举例来说,识别示范性单元例项302a及302b,其充当布局202中的单元302的两个例项。仅出于说明性目的展示图3a中的作用区带的数目及配置。其它配置也在本发明实施例的预期范围内。
46.图3b到图3e是根据本发明实施例的一些实施例的单元的各种示范性布局环境。参考图3b,通过彼此毗连的若干单元形成包括六个作用区带及六个栅极带的布局310。单元302a经定位于布局310的中心处,且其它单元(例如单元303、304、305及306)经放置以围绕单元302a。前述单元经布置以实施布局310的多个平行栅极带及平行作用区带。平行栅极带可在不同于平行作用区带延伸的方向的方向上延伸。在一些实施例中,栅极带大体上垂直于作用区带。单元303、302a及304中的每一者分别包含栅极带g1的第一部分、第二部分及第三部分,其中三个部分组成跨单元302a、303及304的边界的连续栅极带。此外,布局310中的一些单元包含作用区带的相应部分,例如,单元305、302a及306中的每一者包含作用区带od1或od2的相应部分且这些部分组成跨单元305、302a及306的边界的连续作用区带。
47.在一些实施例中,围绕单元302a的作用区带的尺寸及位置影响单元302a的时序延迟特性。举例来说,作用区带od1的长度l11及l12包含于单元302a的环境的参数中,其中从作用区带od1的左边界侧到栅极带g1测量长度l11且从作用区带od1的右边界侧到栅极带g1测量长度l12。类似地,作用区带od2的长度l21及l22被视为单元302a的环境的参数,其中从作用区带od2的左边界侧到栅极带g1测量长度l21且从作用区带od2的边界右侧到栅极带g1测量长度l22。
48.参考图3c,布局320由包含定位于布局320的中心处的单元302a的若干单元形成。经布置以实施栅极带及作用区带的组成单元的配置类似于图3b中的配置且为简单起见未在图3c中单独说明。在一些实施例中,布局320进一步包含与至少一些栅极带或作用区带重叠的阱区w1。阱区w1也可为植入区或掺杂区。可跨若干单元(例如单元303、305、306及304)形成阱区w1。在所描绘的实施例中,阱区w1具有大于单元302a的面积的面积且与整个单元302a重叠。在一些实施例中,阱区w1经布置于单元302a的与栅极带或作用区带驻留于其中的单元302a的层相同或不同的层中。
49.在一些实施例中,围绕单元302a的阱区w1的尺寸及位置影响单元302a的时序延迟特性。举例来说,包含阱区w1的边界与单元302a中的构件之间的距离作为环境感知时序计算架构的参数。具体来说,包含距离d1及d2作为单元302a的环境的参数,其中从阱区w1的上边界侧ws1到单元302a中的作用区带od1测量距离d1且从阱区w1的下边界侧ws2到作用区带od1测量距离d2。类似地,包含距离d3及d4作为单元302a的环境的参数,其中从阱区w1的左边界侧ws3到单元302a中的栅极带g1测量距离d3,且从阱区w1的右边界侧ws4到栅极带g1测量距离d4。
50.参考图3d,布局330由包含定位于布局330的中心中的单元302a的若干单元形成。经布置以实施栅极带及作用区带的组成单元的配置类似于图3b中的配置且为简单起见未在图3d中单独说明。在一些实施例中,邻近单元302a的栅极带(例如栅极带g2、g3、g4及g5)的尺寸及位置影响单元302a的时序延迟特性。举例来说,包含间距值s12及s13作为单元302a的环境的参数,其中间距s12经定义为栅极带g1与g2之间的间距,同时间距s13经定义为栅极带g1与g3之间的间距。类似地,包含间距值s24及s35作为单元302a的环境的参数,其中间距s24经定义为栅极带g2与g4之间的间距且间距s35经定义为栅极带g3与g5之间的间距。
51.图3e是具有具相对于图3a的单元302的相关联单元环境的各种单元例项的条目的示意性单元矩阵340。通过单元环境311到319表示单元矩阵340的每一条目。条目中仅展示
围绕单元302的作用区带。经布置以实施作用区带的组成单元的配置类似于图3b中的配置且为简单起见未在图3e中单独说明。每一条目中的布局环境包含相同数目个作用区带但包含不同环境。举例来说,顶部作用区带具有不同配置:在环境311中单元302上方不存在顶部作用区带;在具有各种开口宽度及位置的环境313、314及317中,顶部作用区带延伸于单元302上方;且在环境312、315、316、318及319中,顶部作用区带连续地在单元302上方。在其它案例中,在环境311、312及313中两个中间作用区带在两侧上与单元302的边界直接接触(或与边界隔开小于预定值s1的距离);在环境314、315及316中,两个中间作用区带仅在一侧上与单元302隔开(或与单元302隔开等于或大于预定值s2的距离);且在环境317、318及319中,两个中间作用区带在两侧上与单元302隔开(或与单元302隔开等于或大于预定值s2的距离)。此外,两个中间作用区带在环境319中在两侧上与单元302隔开大体上相等距离s3而在环境317及318中隔开不同距离s4及s5(其中在一些实施例中,s4及s5中的至少一者大于s2)。在一些实施例中,作用区带的条件包含于单元302的环境的参数中,例如,邻近单元302的作用区带是否接触单元302,或作用区带是否在一侧或两侧上与单元302隔开,或单元与其最近作用区带之间的横向距离。
52.图3f是根据本发明实施例的一些实施例的训练模型204的示意图。参考图2及图3f,训练模型204提供环境分组的训练结果。训练模型204具有由通过边缘322互连的多个神经元(节点)325建构的结构。多个节点可形成各个层,例如,包括输入节点321的输入层324、包括输出节点323的输出层326及包括隐藏节点325的一或多个隐藏层328。也可确定训练模型204的参数,例如输入层324、输出层326及隐藏层328中的每一者中的节点数目及边缘322的互连拓扑结构。在实施例中,输出层326可包含单个输出节点323。在本实施例中,将包含多个单元例项ci及相关联环境的一或多个布局202馈送到训练模型204中以触发机器学习过程。在一些实施例中,输入节点321接收布局的作用区带的参数,例如作用区带的数目、每一作用区带的带配置指数(例如,表示完全覆盖单元、部分覆盖单元、不存在于单元、毗连或间隔、及间隔距离的情况的指数)。在一些其它实施例中,输入节点321接收相对于图3b到图3e中的作用区带或栅极带的距离或间距值的参数,例如长度l11、l12、l21及l22、距离d1到d4及间距值s12、s13、s24及s35。在一些实施例中,输出节点323提供与每一群组相关联的参数。执行针对隐藏层328的反复训练过程,直到隐藏节点325的值达到收敛值。
53.其它类型的训练模型204也适用。在一些实施例中,基于图案辨识的训练模型204接收包括多边形构件的二维布局的原始示意图且经配置以响应于训练条件(例如,分类群组数目)而进行图案辨识并产生训练结果而未提取进一步参数。在一些实施例中,确定具有半径或周长的接合区域,在所述接合区域内通过训练模型204考虑二维多边形。
54.往回参考图2,在完成训练过程后,训练模型204提供一组训练有素的模型参数206及充当环境分组的结果的群组数据208,其中群组数据包含单元ci的多个环境群组(例如群组1、群组2、

、群组n),其中群组数据208中的每一环境群组包括分类环境或电路拓扑结构。另外,环境分组过程200提供包含对应于群组数据208中的环境群组的时序表(例如时序表1、时序表2、

、时序表n)的数据库210。在一些实施例中,提供一个以上时序表以对应于群组数据208中的一个环境群组,例如,每一环境群组与时序表集相关联。在一些实施例中,从时序模拟获取键入每一时序表中的时序延迟的值。在一些实施例中,如果环境群组的模拟时序延迟的分布与整个单元例项群体的时序延迟相比展现较小偏差(即,具有更紧密地
分组在一起的值),那么训练过程200被认为是收敛且成功的。模型参数206、群组数据208及数据库210应包含于图1中的库132中。
55.在一些实施例中,库132包含对应于时序表1、时序表2及时序表n的群组识别符。在一些实施例中,每一群组识别符与环境群组的一个以上时序表相关联。在一些实施例中,群组识别符可由布局202存取且用于指示布局202中的单元例项属于哪一环境群组。
56.图4a是根据本发明实施例的一些实施例的环境分组的结果的示意图。结果由环境分组过程200提供且通过群组数据208表示。在一些实施例中,基于从布局202收集的单元矩阵340进行环境分组。在所描绘的实施例中,群组数目设置为4个;但是,取决于设计要求,群组数目的其它值可能适用。环境分组操作产生分别通过环境312;311及313;314、315及316;及317、318及319表示的四个环境群组401、402、403及404。在一些实施例中,基于最小化群组内的时序延迟差的成本函数通过训练模型204将环境311到319分类为对应群组401到404,且训练训练模型204以将单元时序延迟与其拓扑结构之间的相关性存储于模型学习阶层中,例如,图3f的训练模型204中的边缘322的权重。
57.图4b是显示根据本发明实施例的一些实施例的图4a中的环境群组的时序延迟分布的图表400的示意图。在实施例中,以环境群组的顺序展示通过数据库210上的时序模拟获取的单元302的下降延迟值(其它类型的时序延迟也适用但可能展现不同分布曲线)的分布。x轴表示单元例项指数且y轴表示延迟值。图4b中可见,每一群组的延迟值被集中或集群化,且每一群组大体上彼此分离。其意指可基于个别单元例项的布局环境将单元的时序延迟分布成功分类为较精细时序延迟范围的群组。
58.在一些实施例中,从已符合时序验证的要求的一或多个布局数据中的单元302的实际延迟值获取每一环境群组401、402、403或404中的时序延迟。在一些实施例中,从制作电路中的单元302的实际延迟值获取或通过布局202的模拟获取每一环境群组401、402、403或404中的时序延迟。在一些实施例中,如从相应环境群组的组件单元导出的环境群组401、402、403或404的时序表与群组识别符相关联。可使用群组识别符来指示单元例项的环境群组。
59.在一些实施例中,将相应环境群组中的单元例项的模拟延迟值确定为所述环境群组的最佳情况或最坏情况延迟值。举例来说,将单元302相对于环境312的模拟延迟值确定为与环境群组401相关联的时序表中的代表性延迟值。在一些实施例中,基于相应环境群组中的集群延迟值来确定数据库210中的对应环境群组的时序表(例如,图2中的时序表1到时序表n)中的延迟值。举例来说,最佳情况延迟值t1(其为大约环境群组404中的延迟值的最小值)及最坏情况延迟值t2(其为大约环境群组404中的延迟值的最大值)分别确定为与环境群组404相关联的最佳情况及最坏情况时序表中的代表性延迟值。类似地,最佳情况延迟值t2及最坏情况延迟值t3分别被确定为与环境群组403相关联的最佳情况及最坏情况时序表中的代表性延迟值。最佳情况延迟值t3及最坏情况延迟值t4分别被确定为与环境群组402相关联的最佳情况及最坏情况时序表中的代表性延迟值。最佳情况延迟值t4及最坏情况延迟值t5分别被确定为与环境群组401相关联的最佳情况及最坏情况时序表中的代表性延迟值。在一些实施例中,在不同应用中交换环境群组的最坏情况延迟值及最佳情况延迟值的指定。因而,在针对最佳情况案例(或替代地最坏情况案例)的时序验证操作期间,每一单元例项被指派与环境群组相关联的相应最佳情况延迟值,且基于个别单元例项的所指派
延迟值来执行时序分析。
60.在一些实施例中,在环境分组过程200期间基于相应环境群组中的全部单元的延迟值来确定包含最佳情况案例及最坏情况案例的环境群组的代表性延迟值。以环境群组401作为实例,获取对应于环境群组401的代表性延迟值作为环境群组401中的全部单元例项的延迟值的算术平均值或几何平均值。
61.在缺少布局环境的情况下,针对单元指派时序表的现有方法通常将最佳情况延迟值(例如,t1)及最坏情况延迟值(例如,t5)确定为两个代表性时序延迟。清楚地看见延迟值t1与t5之间的范围大于环境群组中的每一者的延迟值范围。但是,如先前论述,针对单元例项中的每一者在实际时序延迟与两个延迟边界值t1及t5的任一者之间观察到大间隙,这是因为保守地确定值t1及t5。固定延迟值t1及t5可能无法适应性地涵盖个别延迟值,从而导致修订布局202的不必要操作或工程变化订单(eco)步骤的进一步步骤。芯片面积及能力的额外资源及针对此布局修订所牺牲的芯片性能将损及从用于增强电路性能的其它努力获取的改进。相比来说,所提出的训练模型204可通过利用围绕单元例项的布局环境而基于一组时序延迟群组来指派所述单元例项的定制时序延迟而非将一体适用时序表盲目地指派给全部单元例项。可在训练模型204的帮助下基于时序验证布局中的环境成功地进行时序延迟指派。
62.图5是根据本发明实施例的一些实施例的环境感知单元辨识算法的示意图500。最初,在阶段502存取布局。在一些实施例中,布局是在设计流程10期间形成的中间状态布局,例如在阶段130、150或160的布局。在一些实施例中,继合成操作之后且在放置及布线操作之前存取布局。在一些实施例中,如在阶段502提供的尚未部分或完全通过时序分析的开发中布局不同于在训练阶段中提供的已证实顺应时序约束规则的时序验证布局202。布局可由各个种类的单元建构,其中单元中的每一者可应用于一个以上例项中。
63.在阶段504,执行布局拓扑结构图案提取操作以收集特定单元的布局环境。在阶段506将环境的参数提供到环境感知单元辨识发动机。在一些实施例中,环境感知单元辨识发动机基于人工智能单元辨识机器(例如卷积神经网络(cnn)、循环神经网络(rnn)、自动编码器及类似者)来执行单元分类。在一些实施例中,通过lenet、alexnet、vgg、googlenet、resnet及其变体建构环境感知单元辨识发动机。在一些实施例中,单元辨识机器具有与训练过程200中相同的模型类型及模型结构,使得通过训练模型204训练的参数可被并入阶段506中。在一些实施例中,图1中的库132提供环境感知单元辨识发动机所需的训练有素的参数,例如学习机器的模型类型,及其相关联配置,包含阶段数目、节点数目、及互连边缘的权重。在一些实施例中,库132也提供用于单元辨识的环境群组的数目及每一环境群组的时序表。在操作期间,阶段506的环境分组过程继续进行,直到完成全部单元例项相对于特定单元类型及全部单元类型的辨识。
64.随后,在阶段508,至少一个时序表经选定到单元例项,且在阶段506通过环境感知单元辨识发动机辨识并分组。此时,更新布局,其中每一单元例项经确定以与至少一个选定时序表相关联。在一些实施例中,针对一个单元例项选择具有一个以上时序表的一个环境群组。举例来说,最佳情况时序表及最坏情况时序表经选定以与一个环境群组相关联。
65.在一些实施例中,布局包含时序表的映射或与时序表的映射相关联。在映射中,时序表被称为群组识别符。在一些实施例中,布局包含指示单元例项的选定时序表的群组识
别符。在一些实施例中,通过时序表集指代单元例项的群组识别符。
66.在阶段510,从选定时序表确定单元例项的延迟值。如先前论述,一旦选定环境群组,每一单元例项便可被指派最佳情况时序表或最坏情况时序表。在一些实施例中,基于布局环境中的实际参数值进一步确定单元例项中的引脚的延迟值。在此情境中,一旦确定单元例项属于特定环境群组,便提供包含延迟值阵列的时序表。
67.图5b展示说明根据本发明实施例的一些实施例的阶段510的图,其中通过来自选定时序表526的选择确定延迟值。在所描绘的实例中,时序表526可为通过训练过程200获取的数据库210中的时序表1、时序表2或时序表n。时序表526可表示各个类型的延迟,例如下降延迟、上升延迟、过渡延迟或类似者。在一些实施例中,环境群组可与具有各个延迟类型的条目的多个时序表526相关联。
68.时序表526可对应于最佳情况案例或最坏情况案例且包含基于表条目的各个值的延迟值阵列。在一些实施例中,从电气网络提取表条目,例如耦合到单元例项的输入/输出节点的有效电容、有效电感、有效电阻或其组合。在一些实施例中,通过单元的电气模拟获取表条目,例如输入电流的回转率。在一些实施例中,从电气网络的拓扑结构及单元的模拟两者获取表条目。在一些实施例中,可由库132提供表条目。图5b展示基于具有三个值p1、p2及p3的第一表条目p及具有三个值q1、q2及q3的第二表条目q来建构时序表526。通过表条目p及q的大小确定时序表526的尺寸。表条目p及q可表示单元例项的输入/输出节点上的有效电容及有效电阻。基于表条目p及q的值的组合进行从时序表526选择延迟值。举例来说,如果确定单元例项耦合到由电容p1及电阻q2形成的网络,那么选定代表性延迟值作为条目t21。在一些实施例中,如果用于单元的表条目的实际值与时序表526中提供的环境参数值不同,那么基于时序表526中的条目通过内插或外推确定代表性延迟值。因此,针对环境感知环境分组顶部上的单元例项的基于数量的延迟值确定进一步辅助时序延迟特征分析的执行。
69.在阶段512,使用时序分析发动机针对更新布局执行时序分析。在阶段512期间,确定每一时序路径的时序行为(例如设置时间及保持时间)是否遵守预定时序约束规则。在阶段514提供或产生时序报告且所述时序报告包含关于布局是否遵守阶段512中执行的时序验证的时序分析的结果。
70.图6是根据本发明实施例的一些实施例的环境感知单元辨识算法的方法600的流程图。在步骤602,存取集成电路(ic)的布局。布局包含至少一个单元。在步骤604,提供具有单元的对应时序表的一组环境群组。在一些实施例中,通过库提供环境群组及时序表。可通过相应群组的一或多个代表性单元上的时序模拟获取存储于库中的每一环境群组的时序表,其中考虑代表性单元的布局相依效应(即,由布局环境导致的效应)。
71.在步骤606,基于单元的环境或单元附近的电路拓扑结构针对单元确定(其包含选择及指派)环境群组及对应时序表。环境群组与时序表相关联。在一些实施例中,从由库提供的一组环境群组选择经确定环境群组。在一些实施例中,将由库提供且与经确定环境群组相关联的时序表的群组识别符指派给单元。
72.在步骤608,基于时序表条目从经确定时序表确定单元的延迟值。在一些实施例中,表条目可包含环境参数,例如电容、电感、电阻或其它电气特性。在一些实施例中,从查找表选择延迟值。在给定表条目作为输入的情况下,从多个查找表(时序表)确定延迟值。
73.在步骤610,对布局执行时序分析以确定所述布局是否遵守时序约束规则。如果肯定,那么布局通过时序验证且方法600继续进行后续步骤,例如其中执行布局后模拟的步骤614。在一些实施例中,步骤614进一步包含响应于在步骤612中确定布局遵守时序约束规则而将布局的图案转印到光掩模。在一些实施例中,步骤进一步包含根据光掩模的图案制作ic。
74.如果确定布局未通过时序验证,例如,存在未能遵守时序约束规则的至少一个单元或一个时序路径,那么方法600继续进行步骤616且返回到先前阶段(例如合成阶段130、平面规划阶段、或放置及布线(p&r)阶段150)以修订布局。
75.图7是根据一些实施例的实施布局设计的系统700的示意图。系统700包含处理器701、网络接口703、输入/输出(i/o)装置705、存储装置707、总线708及存储器709。总线708使网络接口703、i/o装置705、存储装置707、存储器709及处理器701彼此耦合。
76.处理器701经配置以执行程序指令,所述程序指令包含经配置以执行如参考本发明实施例的图描述且说明的方法的工具。因此,工具经配置以执行步骤,例如:接收设计规范及库;执行布局前模拟;产生布局的设计数据;执行布局存取;确定库的时序的参数;执行模型训练算法;确定多个时序表;更新库;执行放置及布线的操作;执行lvs;通过并入参数而产生合并网表;执行环境分组任务且针对布局中的单元例项指派时序表;执行布局后模拟;及验证布局后模拟结果。
77.网络接口703经配置以存取程序指令及通过网络(未展示)远程存储的通过所述程序指令存取的数据。
78.i/o装置705包含经配置用于实现与系统70的用户互动的输入装置及输出装置。在一些实施例中,输入装置包含(举例来说)键盘、鼠标及其它装置。输出装置包含(举例来说)显示器、打印机及其它装置。
79.存储装置707经配置用于存储程序指令及通过所述程序指令存取的数据。在一些实施例中,存储装置707包含非暂时性计算机可读存储媒体,举例来说,存储器、磁盘、光盘或类似者。
80.存储器709经配置以存储待由处理器701执行的程序指令及通过所述程序指令存取的数据。在一些实施例中,存储器709包含随机存取存储器(ram)、一些其它易失性存储装置、只读存储器(rom)、及一些其它非易失性存储装置的任何组合。
81.根据本发明实施例的一个实施例,由至少一个处理器执行方法。存取集成电路(ic)的布局,其中所述布局具有至少一个单元。基于单元的布局环境来确定所述单元的环境群组,其中所述环境群组与时序表相关联。对布局执行时序分析以根据时序表确定所述布局是否遵守时序约束规则。
82.根据本发明实施例的另一实施例,系统包含一或多个处理器及具有指令的一或多个程序,所述指令在由所述一或多个处理器执行时导致所述系统执行以下步骤。存取集成电路(ic)的布局,其中所述布局具有单元。基于单元的布局环境来确定所述单元的环境群组,其中所述环境群组与时序表相关联。对布局执行时序分析以根据时序表确定所述布局是否遵守时序约束规则。
83.根据本发明实施例的另一实施例,非暂时性计算机可读存储媒体包含指令,所述指令在由处理器执行时执行以下步骤。存取集成电路(ic)的布局,其中所述布局具有单元。
基于单元的布局环境来确定所述单元的环境群组,其中所述环境群组与时序表相关联。对布局执行时序分析以根据至少一个时序表确定所述布局是否遵守时序约束规则。
84.前述内容概述若干实施例的特征,使得所属领域的技术人员可更好地理解本发明实施例的方面。所属领域的技术人员应了解,其可容易地使用本发明实施例作为用于设计或修改其它过程及结构的基础以实行本文中介绍的实施例的相同目的及/或实现相同优点。所属领域的技术人员也应了解,这些等效构造不背离本发明实施例的精神及范围,且其可在不背离本发明实施例的精神及范围的情况下在本文中作出各种改变、置换及更改。
85.符号说明
86.10
ꢀꢀꢀ
设计流程
87.110
ꢀꢀ
系统设计阶段
88.120
ꢀꢀ
逻辑设计阶段
89.130
ꢀꢀ
合成阶段
90.132
ꢀꢀ

91.140
ꢀꢀ
布局前模拟阶段
92.150
ꢀꢀ
放置及布线开发阶段
93.160
ꢀꢀ
参数提取阶段
94.165
ꢀꢀ
时序分析阶段
95.170
ꢀꢀ
布局后模拟阶段
96.180
ꢀꢀ
阶段
97.190
ꢀꢀ
光掩模产生阶段
98.195
ꢀꢀ
电路制作阶段
99.200
ꢀꢀ
环境分组过程/训练过程
100.202
ꢀꢀ
布局
101.203
ꢀꢀ
模型设置
102.204
ꢀꢀ
训练模型
103.206
ꢀꢀ
模型参数
104.208
ꢀꢀ
群组数据
105.210
ꢀꢀ
数据库
106.302a 单元例项/单元
107.302b 单元例项
108.303
ꢀꢀ
单元
109.304
ꢀꢀ
单元
110.305
ꢀꢀ
单元
111.306
ꢀꢀ
单元
112.310
ꢀꢀ
布局
113.311
ꢀꢀ
单元环境
114.312
ꢀꢀ
单元环境
115.313
ꢀꢀ
单元环境
116.314
ꢀꢀ
单元环境
117.315
ꢀꢀ
单元环境
118.316
ꢀꢀ
单元环境
119.317
ꢀꢀ
单元环境
120.318
ꢀꢀ
单元环境
121.319
ꢀꢀ
单元环境
122.320
ꢀꢀ
布局
123.321
ꢀꢀ
输入节点
124.322
ꢀꢀ
边缘
125.323
ꢀꢀ
输出节点
126.324
ꢀꢀ
输入层
127.325
ꢀꢀ
隐藏节点
128.326
ꢀꢀ
输出层
129.328
ꢀꢀ
隐藏层
130.330
ꢀꢀ
布局
131.340
ꢀꢀ
单元矩阵
132.400
ꢀꢀ
图表
133.401
ꢀꢀ
环境群组
134.402
ꢀꢀ
环境群组
135.403
ꢀꢀ
环境群组
136.404
ꢀꢀ
环境群组
137.500
ꢀꢀ
示意图
138.502
ꢀꢀ
阶段
139.504
ꢀꢀ
阶段
140.506
ꢀꢀ
阶段
141.508
ꢀꢀ
阶段
142.510
ꢀꢀ
阶段
143.512
ꢀꢀ
阶段
144.514
ꢀꢀ
阶段
145.526
ꢀꢀ
时序表
146.600
ꢀꢀ
方法
147.602
ꢀꢀ
步骤
148.604
ꢀꢀ
步骤
149.606
ꢀꢀ
步骤
150.608
ꢀꢀ
步骤
151.610
ꢀꢀ
步骤
152.612
ꢀꢀ
步骤
153.614
ꢀꢀ
步骤
154.616
ꢀꢀ
步骤
155.700
ꢀꢀ
系统
156.701
ꢀꢀ
处理器
157.703
ꢀꢀ
网络接口
158.705
ꢀꢀ
输入/输出(i/o)装置
159.707
ꢀꢀ
存储装置
160.708
ꢀꢀ
总线
161.709
ꢀꢀ
存储器
162.d1
ꢀꢀꢀ
距离
163.d2
ꢀꢀꢀ
距离
164.d3
ꢀꢀꢀ
距离
165.d4
ꢀꢀꢀ
距离
166.g1
ꢀꢀꢀ
栅极带
167.g2
ꢀꢀꢀ
栅极带
168.g3
ꢀꢀꢀ
栅极带
169.g4
ꢀꢀꢀ
栅极带
170.g5
ꢀꢀꢀ
栅极带
171.l11
ꢀꢀ
长度
172.l12
ꢀꢀ
长度
173.l21
ꢀꢀ
长度
174.l22
ꢀꢀ
长度
175.od1
ꢀꢀ
作用区带
176.p
ꢀꢀꢀꢀ
第一表条目
177.q
ꢀꢀꢀꢀ
第二表条目
178.s1
ꢀꢀꢀ
预定值
179.s12
ꢀꢀ
间距值
180.s13
ꢀꢀ
间距值
181.s2
ꢀꢀꢀ
预定值
182.s24
ꢀꢀ
间距值
183.s3
ꢀꢀꢀ
距离
184.s4
ꢀꢀꢀ
距离
185.s5
ꢀꢀꢀ
距离
186.s35
ꢀꢀ
间距值;间距
187.w1
ꢀꢀꢀ
阱区
188.ws1
ꢀꢀ
上边界侧
189.ws2
ꢀꢀ
下边界侧
190.ws3
ꢀꢀ
左边界侧
191.ws4
ꢀꢀ
右边界侧
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1