首页> 中国专利> 用于设计上下文感知电路的方法

用于设计上下文感知电路的方法

摘要

本文中公开了用于设计上下文感知电路的方法。所述方法包括:识别将被设计到上下文感知电路中的至少一个单元;识别对所述上下文感知电路的布局相关效应有影响的至少一个上下文参数;为每个单元及每个上下文参数产生与所述单元相关联的多个邻接环境;针对每个单元及每个上下文参数,通过在所述多个邻接环境下产生所述单元的多个电性质值而估测所述单元的至少一个电性质对所述上下文参数的敏感度;以及基于每个单元的所述至少一个电性质的所述敏感度且基于至少一个预定阈值,判断每个上下文参数是否是用于所述上下文感知电路的静态分析的关键上下文参数。

著录项

  • 公开/公告号CN113051859A

    专利类型发明专利

  • 公开/公告日2021-06-29

    原文格式PDF

  • 申请/专利权人 台湾积体电路制造股份有限公司;

    申请/专利号CN202010770678.3

  • 申请日2020-08-04

  • 分类号G06F30/36(20200101);G06F30/373(20200101);G06F30/392(20200101);

  • 代理机构32243 南京正联知识产权代理有限公司;

  • 代理人王素琴

  • 地址 中国台湾新竹科学工业园区新竹市力行六路八号

  • 入库时间 2023-06-19 11:39:06

说明书

技术领域

在本发明的实施例中阐述的技术大体来说涉及电路设计,且更具体来说,涉及用于设计上下文感知电路的方法。

背景技术

集成电路的现代设计工艺广泛使用模块化组件。电路设计者通常在寄存器传输级(register-transfer level,RTL)生成设计描述。RTL源描述(例如,外理罗格(Verilog)代码)被编译成“单元(cell)”的例子。所述单元是电路的基本构件,例如门或存储器位单元(memory bit cell)。单元实施逻辑或其他电子功能。各种代工厂(foundries)及独立的单元库供应商(cell library vendor)提供标准单元库。这些库中的单元已经过建模且取得资格,可用于特定的集成电路技术。电子设计自动化(Electronic Design Automation,EDA)工具可通过将所选择的标准单元布局在集成电路(integrated circuit,IC)平面图(floor plan)中的恰当位置处、并对各种单元之间的互连进行布线以产生IC布局来执行自动布局及布线(automatic place and route,APR)。在产生布局后,执行一系列验证及验收程序(verification and acceptance procedure)。当设计已通过其验证程序时,在设计被定案(taped out)之前执行签核(signoff)。

IC设计者使用在设计给定IC时可用的标准单元库来设计电路。当前的标准单元库假定固定的表征环境(characterization environment),并为每个单元提供标准电信息。然而,给定的单元可能会用于不同的环境或上下文中。传统方法预先表征所有可能的标准单元邻接环境(abutment environment),这是不实际的,因为时间复杂性高。虽然可提取标准单元邻接环境来进行布局后表征(post layout characterization),但所述方式非常耗时,并且在具有大量门数(例如,数百万个)的设计中不切实际。此外,为了保护其知识产权,IC设计者可能不想向其顾客公开其详细布局信息。

因此,现有的电路设计不能完全令人满意地克服上述缺点。

发明内容

本发明实施例提供一种用于设计上下文感知电路的方法,包括:识别将被设计到所述上下文感知电路中的至少一个单元;识别对所述上下文感知电路的布局相关效应有影响的至少一个上下文参数;为所述至少一个单元的每个单元及所述至少一个上下文参数的每个上下文参数产生与所述单元相关联的多个邻接环境;针对所述至少一个单元的每个单元及所述至少一个上下文参数的每个上下文参数,通过在所述多个邻接环境下产生所述单元的多个电性质值而估测所述单元的至少一个电性质对所述上下文参数的敏感度;以及基于所述至少一个单元的每个单元的所述至少一个电性质的所述敏感度且基于至少一个预定阈值,判断所述至少一个上下文参数的每个上下文参数是否是用于所述上下文感知电路的静态分析的关键上下文参数。

附图说明

下面参照以下各图详细阐述本公开的各种示例性实施例。提供图式仅是出于例示目的且这些图式仅绘示本公开的示例性实施例以有助于读者理解本公开。因此,图式不应被视为限制本公开的广度、范围或适用性。应注意,为使例示清楚及容易起见,这些图式并未按比例绘制。

图1示出根据本公开的一些实施例,用于产生上下文感知降额表(context awarederate table)的方法。

图2示出根据本公开的一些实施例,用于收集对布局相关效应(layout dependenteffect,LDE)有影响的每个上下文参数的电性质的方法。

图3示出根据本公开的一些实施例,用于关键上下文参数识别及澄清(clarification)的各种邻接环境。

图4示出根据本公开的一些实施例,用于关键上下文参数识别及提取的方法。

图5示出根据本公开的一些实施例的电性质比率的示例性计算。

图6示出根据本公开的一些实施例,用于产生降额表的算法600的一部分。

图7示出根据本公开的一些实施例,在电路设计中产生上下文感知定时库(timinganalysis)的示例性流程。

图8示出根据本公开的一些实施例,在电路设计中的上下文感知静态定时分析的示例性流程。

图9示出根据本公开的一些实施例,制作具有布局设计的集成电路的方法。

图10是根据一些实施例,用于制作具有布局设计的集成电路的系统1000的方块图。

具体实施方式

以下参照附图对本公开的各种示例性实施例进行阐述,以使所属领域中的普通技术人员能够理解并使用本公开。如对所属领域中的普通技术人员将显而易见,在阅读本公开之后,可在不背离本公开的范围的条件下对本文中所述的实例作出各种改变或润饰。因此,本公开并非仅限于本文中所阐述及所示出的示例性实施例及应用。另外,本文中所公开的方法中的步骤的具体次序和/或层级仅为示例性方法。可基于设计偏好而在本公开的范围内对所公开的方法或工艺的步骤的具体次序或层级进行重新排列。因此,所属领域中的普通技术人员应理解,本文中所公开的方法及技术是以样本次序呈现各种步骤或动作,且除非另外明确说明,否则本公开并非仅限于所呈现的具体次序或层级。

此外,为易于说明,本文中可能使用例如“在...之下(beneath)”、“在...下方(below)”、“下部的(lower)”、“在...上方(above)”、“上部的(upper)”等空间相对性用语来阐述图中所示的一个元件或特征与另一(其他)元件或特征的关系。所述空间相对性用语旨在除图中所绘示的取向外还囊括器件在使用或操作中的不同取向。装置可具有其他取向(旋转90度或处于其他取向),且本文中所使用的空间相对性描述语可同样相应地进行解释。除非另外明确阐述,否则例如“附接(attached)”、“固定(affixed)”、“连接(connected)”及“互连(interconnected)”等用语是指其中结构直接地或通过中间结构间接地彼此固定或附接的关系以及指可移动的或刚性的附接或关系两者。

除非另有定义,否则本文使用的所有用语(包括技术及科学用语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。还应理解,用语(例如那些在常用词典中定义的用语)应被解释为具有与其在相关技术及本公开的上下文中的含义一致的含义,且除非在本文中明确定义,否则不应以理想化或过于正式的意义来解释。

现在将详细参考本公开的当前实施例,这些实施例的实例在附图中示出。在图式及说明书中尽可能使用相同的参考编号来指代相同或相似的部件。

本公开提供用于上下文感知电路设计的系统及方法,以允许设计签核以简化及安全的格式感知单元上下文,以保护知识产权(intellectual property,IP),同时保持更快速及准确地评估电路电性质的波动(例如,泄漏、功率或定时信息)的能力。在一个实施例中,所公开的系统可在自动布局及布线(APR)或签核阶段期间自适应性地调谐电性质信息,感知每个单元的实际周围环境,以便用最少的关键上下文信息进行准确的设计签核。

本公开提供一种打开及关闭布局效应的方法,以获得电性质响应于不同的布局或不同的邻接环境的敏感度。基于所述敏感度,识别决定性的布局效应或关键上下文参数以进行提取。基于所提取的关键上下文参数,计算电性质值以产生参数化的上下文感知降额表,所述降额表用于在APR或签核阶段期间关于布局效应的定时和/或功率估测。基于参数化的上下文感知降额表的电路设计基于查找和/或插值提供对真实情形中的邻接环境的更好适应,而不是仅考虑最好及最坏情形中的邻接环境。

所公开的方法可帮助设计者在定案阶段之前识别布局中的弱点,此在芯片设计水平上、例如在功率或面积消耗方面改善了整体性能。此外,所公开的方法可使向终端用户的IP信息暴露最小化,同时保持关于布局效应的电性质估测的高精度,此减少了由于最坏或最好情形的标准单元表征而导致的任意容限不准确性(arbitrary margin inaccuracy)。

图1示出根据本公开的一些实施例,用于产生上下文感知降额表的方法100。如图1所示,方法100包括基于敏感度的关键上下文识别及澄清112,随后是关键上下文参数提取114。执行基于敏感度的关键上下文识别及澄清112以基于电性质对标准单元的子集110中的单元的上下文参数的敏感度来识别上下文参数是否是关键上下文参数。执行关键上下文参数提取114以提取在操作112处识别的关键上下文参数。

根据各种实施例,上下文参数可包括与以下相关的信息:与单元相关联的有源区(active region,AR)间隔效应、与单元相关联的多晶硅节距(poly pitch)或多晶硅长度。根据各种实施例,在本文中提到的电性质可包括与以下相关的信息:上升延迟、下降延迟、约束、泄漏或与单元相关联的功率。在一个实施例中,判断上下文参数是否是关键上下文参数包括:为每个单元判断所述单元的电性质的敏感度是否超过预定阈值;以及当任一单元的电性质的敏感度超过预定阈值时,将上下文参数识别为关键上下文参数。

如图1所示,方法100包括上下文感知设计包产生(context aware design kitgeneration)122及上下文感知降额表130。基于标准单元120及所提取的关键上下文参数,执行上下文感知设计包产生122以产生一个或多个上下文感知单元库。可基于在操作114处提取的关键上下文参数及在122处产生的一个或多个上下文感知单元库来产生上下文感知降额表130。以下将示出对图1中的这些操作的详细说明。

图2示出根据本公开的一些实施例,用于收集对布局相关效应有影响的每个上下文参数的电性质的方法200。在操作210处,收集可能对电路的布局相关效应(LDE)有影响的多个上下文参数。在操作220处,基于单元布局数据库202,为所述多个上下文参数中的一者的各种邻接环境产生指南。

在一个实施例中,即使布局相关效应可能需要相对长的距离来饱和(在10到20个多晶硅节距的范围内),标准单元库也可被设计成使得APR中的任何给定单元仅看到比10到20个多晶硅节距小得多的子集。在阐述到器件的左右侧的AR间隔的AR间隔效应(ARspacing effect,ARSE)的情形中,可设计标准单元库,使得任何给定的单元将仅看到小于2CPP的AR间隔。各种邻接环境的指南阐述了在实际的APR使用中可看到的布局相关效应的实际范围。此可有助于缩小布局相关效应的范围,并有助于使降额表更集中于最相关的APR邻接范围。根据各种实施例,布局相关效应可为阈值电压、定时延迟或依赖于布局的其他电路效应。

在操作230处,为来自单元布局数据库202的所述多个上下文参数中的一者及来自单元网表数据库204的单元中的一者产生各种邻接环境。在一个实施例中,单元网表是示出具有晶体管连通性(transistor connectivity)及晶体管大小调整(transistor sizing)的输入及输出引脚的抽象视图。此抽象视图可用于RC提取,以创建交叉参考网名称(crossreference net name)。

然后在操作240处,针对特定上下文参数及特定单元的各种邻接环境来估测所关注的单元的电性质。然后在操作250处,判断是否覆盖了所有单元进行电性质估测。如果覆盖了所有单元,则工艺继续到操作260;如果并非覆盖了所有单元,则工艺进行到操作255以继续前进到下一单元,并返回操作230以产生下一单元的各种邻接环境。

在操作260处,判断是否覆盖了所有上下文参数进行电性质估测。如果覆盖了所有上下文参数,则工艺继续到操作270;如果并非覆盖了所有上下文参数,则工艺进行到操作265以继续前进到下一上下文参数,并返回操作220以基于下一上下文参数产生各种邻接环境。以这种方式,收集了对LDE有影响的每个上下文参数的电性质。在操作270处,工艺继续前进到关键上下文参数识别及提取,稍后将参照图4阐述其详细操作。

图3示出根据本公开的一些实施例,用于关键上下文参数识别及澄清的各种邻接环境。如图3所示,AR间隔效应被用作示例性上下文参数,关于所述参数收集不同邻接环境的电性质值,并将所述电性质值与无AR间隔的基线邻接环境的电性质值进行比较。

所关注的单元301的左侧及右侧的AR间隔可不同,并且在图3中考虑了所述两者。如图3所示,单元301可为具有电源接地区域305及OD区域306的反相器。单元301被虚拟单元302围绕,其中在图3所示的不同邻接环境中,在相对于单元301的不同位置具有AR间隔303。举例来说,在图3所示的邻接环境312中,AR间隔303仅位于单元301的左侧,并且具有等于1的间隔节距,其意指一个单元的间隔距离。在邻接环境314中,AR间隔仅位于反相器单元的右侧,并且具有等于1的间隔节距。在邻接环境316中,节距等于1的AR间隔位于反相器单元的左右两侧。在图3的第二行中,除了邻接环境322、324、326中的AR间隔具有等于2的间隔节距(其意指两个单元的间隔距离)之外,邻接环境322、324、326分别类似于邻接环境312、314、316。按照这种方式,可获得额外的邻接环境(图3中未示出),其中AR间隔的数量扩展到n。

对于图3所示的每个列出的邻接环境来说,可运行模拟来估测所关注的单元301的电性质值进行电路设计。在芯片实施期间,所关注的单元301可被在APR阶段之前功能未知的其他单元包围,以形成所关注的单元301的具体邻接环境。所述具体邻接环境可与图3中列出的邻接环境中的一者相同或相似。因此,可在芯片实施及签核阶段期间识别对应于特定邻接环境的估测电性质值。

也可对其他所关注的单元执行类似的工艺。尽管在图3中将所关注的单元的左侧及右侧上的AR间隔用作示例性上下文参数,但在一些实施例中,可将所关注的单元上方及下方的AR间隔用作另一示例性上下文参数。

图4示出根据本公开的一些实施例,用于关键上下文参数识别及提取的方法400。在操作410处,收集对LDE有影响的每个上下文参数的电性质值。在一个实施例中,操作410可包括图2所示的详细操作。在图4中的操作420处,针对上下文参数计算对应于不同邻接环境的每个电性质值与对应于与所关注的单元相关联的基线邻接环境的电性质值之间的比率。举例来说,如图3所示,当使用AR间隔作为上下文参数(关于所述参数收集不同邻接环境的电性质值)时,基线邻接环境可为在所关注的单元周围无AR间隔的情形。因此,操作420产生多个比率,所述多个比率中的每一者对应于与单元相关联的邻接环境中的一者。

在操作430处,为单元且为上下文参数识别所述多个比率中的最大比率及最小比率。在操作440处,将最大比率及最小比率与预定阈值进行比较。举例来说,将最大比率与第一预定阈值进行比较;并将最小比率与第二预定阈值进行比较。在操作450处,判断是否超过所述阈值中的任一者。也就是说,在操作450处检查两个条件:最大比率是否大于或等于第一预定阈值,以及最小比率是否小于或等于第二预定阈值。如果满足任一条件,则工艺进行到操作455,以将所述上下文参数识别为关键上下文参数。否则,如果不满足任何条件,则工艺进行到操作460。

在操作460处,判断是否覆盖了所有上下文参数。如果覆盖了所有上下文参数,则工艺进行到操作470,以基于所有所识别的关键上下文参数来配置设计包产生。如果并非覆盖了所有上下文参数,则工艺进行到操作465以继续前进到下一上下文参数,并返回到操作420以计算下一上下文参数的电性质比率。

此处的电性质值的所述多个比率表示所关注单元的电性质对上下文参数的敏感度。因此,方法400基本上基于所关注单元的电性质的敏感度且基于一些预定阈值来判断每个上下文参数是否是关键上下文参数。

在一个实施例中,可针对从用于设计电路的标准单元的子集中选择的每个所关注的单元来执行操作420到440。在操作450到455处,当任一所关注的单元满足与当前上下文参数相关联的上述阈值条件时,将当前上下文参数识别为关键上下文参数。

在一个实施例中,在操作410处,为每个上下文参数收集不同类型的电性质的电性质值。举例来说,可收集与上升延迟、下降延迟、约束、泄漏及功率相关的值。在这种情形中,可针对每种类型的电性质来执行操作420到440。在操作450到455处,分别关于每一电性质将当前上下文参数评估为关键上下文参数。也就是说,方法400可基于所选择单元的相应电性质的敏感度来判断每个上下文参数是否分别为每个电性质的关键上下文参数。

图5示出根据本公开的一些实施例的电性质比率的示例性计算。如上所述,可通过判断对LDE有影响的不同邻接环境下的单元的不同电性质值、并判断每个电性质值与基线邻接环境下的基线电性质值之间的比率来测量电性质的敏感度。在图5所示的实施例中,所关注的单元是反相器;使用AR间隔效应(ARSE)作为上下文参数的实例,关于所述参数可获得所关注的反相器单元周围的不同邻接环境;并且使用反相器的上升延迟作为要测量的电性质的实例。

如图5所示,为反相器示出了基线邻接环境510及LDE受影响的(LDE impacted)邻接环境520两者。在基线邻接环境510中,反相器被虚拟单元包围,其中在反相器的左侧或右侧无任何AR间隔。也就是说,在反相器的左右两侧上,反相器的ARSE节距都是0。在LDE受影响的邻接环境520中,反相器被虚拟单元包围,其中在反相器的左侧具有一个虚拟单元的AR间隔,而在反相器的右侧无任何AR间隔。具体来说,在反相器的左侧,ARSE节距为1,且在反相器的右侧,ARSE节距为0。在这种情形中,可通过在基线邻接环境510下创建实际邻接情形来获得反相器的第一上升延迟;并且可通过在LDE受影响的邻接环境520下创建实际邻接情形来获得反相器的第二上升延迟。也就是说,为测试情形520及510创建邻接环境,以通过模拟获得实际延迟。然后可计算两种情形之间的延迟比率,例如为1.05。

然后,可计算第二上升延迟与第一上升延迟之间的电性质比率,即将从LDE受影响的邻接环境520估测的第二上升延迟除以从基线邻接环境510估测的第一上升延迟。如上所述,不同的AR间隔环境可能对所关注的单元具有布局相关效应。也就是说,不同的AR间隔环境510、520可导致所关注的反相器相对于同一电性质具有不同的值,例如不同的上升延迟。因此,第一上升延迟可能不同于第二上升延迟。在图5所示的实例中,第二上升延迟是第一上升延迟的1.05倍,即图5中计算的电性质比率等于1.05。

尽管图5示出计算一个LDE受影响的邻接环境(即,ARSE左侧节距=1且ARSE右侧节距=0)的电性质比率,但可为不同的LDE受影响的邻接环境(例如,图3所示不同的AR间隔环境)计算不同的电性质比率。可基于这些电性质比率形成降额表,其中降额表中的每个元素是对应邻接环境下的单元的电性质的比率。

图6示出根据本公开的一些实施例,用于产生降额表的算法600的一部分。如图6所示,分别为单元的两种电性质(即,反相器的上升延迟及下降延迟)产生两个降额表610、620。每个降额表包括代表不同ARSE节距环境下的电性质比率的元素。

如图6所示,在产生每个降额表期间,考虑了ARSE左侧节距的三种情形(分别等于0、1、3);并且考虑了ARSE右侧节距的三种情形(分别等于0、1、3)。因此,每个降额表具有3×3的结构,共有9个元素,所述9个元素中的每一者对应于所考虑的ARSE左侧节距及ARSE右侧节距的组合。举例来说,在图6所示的上升延迟降额表610中,第一行及第二列的元素是1.05,这是如图5所示计算的上升延迟比率。上升延迟降额表610中的每个元素是通过将对应于所考虑的ARSE左侧节距及ARSE右侧节距的相应组合(即,ARSE左侧节距=0及ARSE右侧节距=0的组合)的上升延迟除以对应于固定基线环境的上升延迟而计算的比率。因此,第一行及第一列的元素是1,因为所考虑的ARSE节距的各组合(即,ARSE左侧节距=0及ARSE右侧节距=0的组合)与基线环境相同。

在一个实施例中,从每个降额表中识别最大比率及最小比率,并与预定阈值进行比较。举例来说,图6中上升延迟降额表的最大比率是1.05,并与第一阈值进行比较;图6中上升延迟降额表的最小比率是0.9,并与第二阈值进行比较。当最大比率1.05大于或等于第一预定阈值、或者最小比率0.9小于或等于第二预定阈值时,系统将把ARSE节距识别为关于上升延迟的关键上下文参数。举例来说,当第一预定阈值为1.1并且第二预定阈值为0.9时,将ARSE节距识别为关于上升延迟的关键上下文参数,因为最小比率0.9等于第二预定阈值0.9。此指上升延迟对ARSE节距的敏感度足够高,使得ARSE节距成为关于上升节距的关键上下文参数。

在另一实施例中,只有当最大比率1.05大于或等于第一预定阈值时,系统才会将ARSE节距识别为关于上升延迟的关键上下文参数。在这种情形中,当第一预定阈值为1.1时,不将ARSE节距识别为关于上升延迟的关键上下文参数,因为最大比率1.05不大于或等于第一预定阈值1.1。此指上升延迟对ARSE节距的敏感度不够高,不足以使ARSE节距成为关于上升节距的关键上下文参数。

在又一实施例中,只有当最大比率1.05大于或等于第一预定阈值、并且最小比率0.9小于或等于第二预定阈值时,系统才会将ARSE节距识别为关于上升延迟的关键上下文参数。在这种情形中,当第一预定阈值为1.1并且第二预定阈值为0.9时,不将ARSE节距识别为关于上升延迟的关键上下文参数,因为最大比率1.05不大于或等于第一预定阈值1.1。此指上升延迟对ARSE节距的敏感度不够高,不足以使ARSE节距成为关于上升节距的关键上下文参数。

关于下降延迟降额表620,图6中下降延迟降额表620的最大比率是1.15,并与第三阈值进行比较;图6中下降延迟降额表620的最小比率是1.00,并与第四阈值进行比较。当最大比率1.15大于或等于第三预定阈值、或者最小比率1.00小于或等于第四预定阈值时,系统将把ARSE节距识别为关于下降延迟的关键上下文参数。举例来说,当第三预定阈值为1.1并且第四预定阈值为0.9时,将ARSE节距识别为关于下降延迟的关键上下文参数,因为最大比率1.15大于第三预定阈值1.1。此指下降延迟对ARSE节距的敏感度足够高,使得ARSE节距成为关于下降节距的关键上下文参数。

在另一实施例中,只有当最大比率1.15大于或等于第三预定阈值时,系统才会将ARSE节距识别为关于下降延迟的关键上下文参数。在这种情形中,当第三预定阈值为1.1时,将ARSE节距识别为关于下降延迟的关键上下文参数,因为最大比率1.15大于第三预定阈值1.1。在又一实施例中,只有当最大比率1.15大于或等于第三预定阈值且最小比率1.00小于或等于第四预定阈值时,系统才会将ARSE节距识别为关于下降延迟的关键上下文参数。在这种情形中,当第三预定阈值为1.1且第四预定阈值为0.9时,不将ARSE节距识别为关于下降延迟的关键上下文参数,因为最小比率1.00不小于或等于第四预定阈值0.9。

在一个实施例中,下降延迟的第三预定阈值可不同于上升延迟的第一预定阈值;并且下降延迟的第四预定阈值可不同于上升延迟的第二预定阈值。在一个实施例中,判断上下文参数是否是每个所关注的单元的关键上下文参数。在另一实施例中,一旦将一个上下文参数确定为一个单元的关键上下文参数,便将所述上下文参数识别为任何单元的关键上下文参数。在又一实施例中,通过在对应于所有所关注的单元(其可为用于设计电路的标准单元的子集)的一种类型的降额表的所有比率中选择最大比率、并且将所述最大比率与预定阈值进行比较来判断上下文参数是否是关键上下文参数。类似地,也可通过在对应于所有所关注的单元的一种类型的降额表的所有比率中选择最小比率、并且将所述最小比率与预定阈值进行比较来判断上下文参数是否是关键上下文参数。

图6中的ARSE节距与所关注的单元左侧及右侧的AR间隔相关。在一个实施例中,与所关注的单元上方及下方的AR间隔相关的另一ARSE节距也可为将被评估是否是关键上下文参数的上下文参数。

在确定上下文参数是关键上下文参数时,系统可基于与关键上下文参数相关联的不同邻接环境并基于对应于不同邻接环境的比率,为每个单元产生至少一个降额表。举例来说,当ARSE节距被识别为相对于上升延迟的关键上下文参数时,可产生如图6所示的上升延迟降额表,并在电路设计的APR和/或签核阶段期间提供所述降额表用于电路的静态分析。如图6所示,每个降额表可为将与单元相关联的AR间隔值映射到与单元相关联的时间延迟值的查找表;并且每个时间延迟比率是对应于相应AR间隔值的时间延迟值与当单元无AR间隔时对应于基线AR间隔值的基线时间延迟值之间的比率。

在一个实施例中,关于每个电性质判断上下文参数是否是关键上下文参数。举例来说,如图6所示,可分别相对于上升延迟及下降延迟判断ARSE节距是否是关键上下文参数。在另一实施例中,一旦将一个上下文参数确定为一个电性质的关键上下文参数,便将所述上下文参数识别为任何电性质的关键上下文参数。

在一个实施例中,例如通过从不同类型的降额表中产生最大比率的组合、并将所述组合与预定阈值进行比较而关于所有电性质判断上下文参数是否是关键上下文参数。所述组合可为总和或平均值。举例来说,图6中的两个降额表中的最大比率1.05及1.15的平均值被计算为1.10,并且等于预定阈值1.1。因此,ARSE节距被识别为关于上升延迟及下降延迟两者、或者说关于包括上升延迟及下降延迟的总时间延迟的关键上下文参数。在这种情形中,通过取图6所示的两个降额表中每两个对应元素的平均值,可为上升延迟及下降延迟两者产生单个降额表。一般来说,当关于所有电性质将上下文参数确定为关键上下文参数时,可基于单元的所有电性质产生单个降额表,并在电路设计的APR和/或签核阶段期间提供所述单个降额表用于电路的静态分析。

在一个实施例中,在基于敏感度的关键上下文识别及澄清操作期间,不需要产生降额表,只要可识别最大比率和/或最小比率并将其与用于关键上下文识别的预定阈值进行比较即可。可在识别关键上下文参数之后、并且仅关于与所识别的关键上下文参数相关联的邻接环境产生并提供降额表。

图7示出根据本公开的一些实施例,在电路设计中产生上下文感知定时库的示例性流程700。上下文感知定时库是包括库中单元的上下文信息(例如,如上所述的上下文感知降额表)的单元库。如图7所示,基于数据库710中标准单元的子集,在操作720处执行邻接表征,以识别可能对布局相关效应有影响的不同上下文参数。数据库710可具有gds格式的单元及单元网表,单元网表是示出具有晶体管连通性及晶体管大小调整的输入及输出引脚的抽象视图。

这些上下文参数可被称为候选上下文参数。在操作730处,执行基于敏感度的关键上下文识别及分类,以识别候选上下文参数中的关键上下文参数。因此,候选上下文参数被分类为关键组及非关键组。然后,在操作740处提取关键上下文参数。

在操作750处,基于标准单元数据库745产生不同的邻接环境。在一个实施例中,基于在操作740处提取的关键上下文参数来产生不同的邻接环境。然后在操作760处,对邻接环境进行表征以产生上下文感知工具包(context aware kit)。所述工具包包括具有上下文感知降额表的单元库,以用于在APR及签核阶段期间的电路设计。举例来说,可基于在定时延迟方面具有最好情形的邻接环境的标准单元来产生快速库(fast library)770;并且可基于在定时延迟方面具有最坏情形的邻接环境的标准单元来产生慢速库(slowlibrary)780。如上所述,每个单元库产生有上下文感知降额表,并在APR和/或签核阶段期间提供所述单元库用于上下文感知静态定时分析。

一般来说,可相对于单元的任何电性质(例如,定时延迟、功耗、泄漏、约束等)来产生单元库及上下文感知降额表。因此,单元库及上下文感知降额表可用于电路的任何静态分析,例如静态定时分析或静态功率分析。

在一个实施例中,电路的上下文感知静态分析包括:确定与电路相关联的电性质的基线值;获得所述电路的设计布局;基于所述基线值、所述设计布局及降额表产生所述电性质的上下文感知值;以及基于所述电性质的上下文感知值执行所述电路的静态分析。如上所述,所述降额表包括与所述电性质对与所述设计布局相关联的上下文参数的敏感度相关的信息。可基于电路的输入转换及输出负载来确定电性质的基线值。可基于输入信号从预定电压增加到另一预定电压的转变时间(transition time)来判断输入转换。

在一个实施例中,产生电性质的上下文感知值包括:提取电路中的单元的至少一个关键上下文参数;基于所述电路的设计布局,为至少一个关键上下文参数中的每一者确定与所述单元相关联的邻接环境;基于降额表及所述邻接环境确定电性质比率;以及通过将所述电性质比率与基线值相乘来产生电性质的上下文感知值。如上所述,所述降额表提供用于将单元的邻接环境映射到相应的电性质比率的查找表。因此,可通过以下中的至少一者来判断电性质比率:基于邻接环境搜索降额表;以及基于插值法计算电性质比率。根据各种实施例,可基于连接电路中的多个单元的路径或图形来执行静态分析,以基于电性质的上下文感知值来产生报告。

图8示出根据本公开的一些实施例,在电路设计中的上下文感知静态定时分析的示例性流程800。如图8所示,在操作850处,基于电路的设计网表820及设计布局830,为路径或图形中的每个单元提取关键上下文参数。然后在操作860处,基于具有上下文感知降额表810的快速库及慢速库、设计网表820、所提取的关键上下文参数850及设计互连模型840来执行静态定时分析。

在一个实施例中,设计网表820及设计互连模型840是APR运行的最终结果。设计网表820阐述了APR块(APR block)的输入及输出引脚以及各种标准单元之间的连通性。设计互连模型840示出用于每个标准单元之间的金属布线(metal routing)的寄生RC。

如上所述,静态定时分析可基于电路的期望设计布局将每个单元的定时延迟关于所述单元的关键上下文参数的敏感度考虑在内,并且通过用从降额表确定的比率来调谐定时延迟的基线值,使用上下文感知降额表来确定定时延迟的上下文感知值。操作860产生一个或多个定时报告870,所述定时报告870可基于电路的期望设计布局准确地反映所关注的路径或图形的定时延迟信息。

图9示出根据本公开的一些实施例,制作具有布局设计的集成电路的方法900。在操作910处,为电路的每个单元确定至少一个关键上下文参数。在一个实施例中,为电路中的一部分单元确定至少一个关键上下文参数。在操作920处,基于与关键上下文参数相关联的邻接环境,为每个单元产生至少一个降额表。在操作930处,利用至少一个降额表来执行电路设计的静态分析。在操作940处,基于静态分析产生包括关于定时延迟及最大频率的信息的定时报告。在操作950处,根据定时报告产生电路布局。在操作960处,基于电路布局制作集成电路。图2、图4及图9中的每一者中的操作顺序可根据本教示内容的各种实施例来改变。

图10是根据一些实施例,用于制作具有布局设计的集成电路的系统1000的方块图。系统1000包括一个或多个编程处理器1010。在一些实施例中,布局设计由两个或更多个应用程序执行,每个应用程序在单独的处理器上操作。在其他实施例中,布局设计的操作都使用一个处理器来执行。尽管图10示出将各种任务分配到具体模块,但此仅为一个实例。可将所述各种任务指派到不同的模块,以改善性能或改善编程的容易度。

在此实例中,系统1000包括电子设计自动化(“EDA”)工具,所述工具可包括布局及布线工具1012。EDA工具是通过从非瞬态计算机可读存储媒体1020检索所存储的程序指令并在通用处理器1010上执行这些指令而形成的专用计算机。因此,指令将处理器1010的逻辑电路配置为充当EDA工具。非瞬态计算机可读存储媒体1020的实例包括但不限于硬盘驱动器(hard disk drive,HDD)、只读存储器(“read only memory,ROM”)、随机存取存储器(“random access memory,RAM”)、闪存等。有形的、非瞬态机器可读存储媒体1020被配置成存储由布局及布线工具1012产生的数据。布局及布线工具1012的路由器能够从媒体1020接收所存储的布局1026作为电路设计的模板。路由器1012可配备有一组用于布局设计的默认IC设计规则1022及技术文件1024。

根据各种实施例,系统1000还可包括:上下文分析器1014,被配置用于基于与电路的每个单元的关键上下文参数相关联的邻接环境来判断关键上下文参数并产生降额表;以及布局调整模块1016,被配置用于利用降额表来调整芯片位置及个别单元或块,以产生电路布局及相应的定时报告。新设计的布局可存储在非暂时性机器可读存储媒体1020中。系统1000还可包括制作工具1040,其可以物理方式将经调整的布局实施于集成电路中。

如图10所示,系统1000还包括输入/输出(input/output,I/O)1030,其被配置成接收输入并将输出发送到外部电路。输入/输出1030通过总线1002电连接到一个或多个编程处理器1010、存储器1020及制作工具1040。

在一些实施例中,公开了一种设计上下文感知电路的方法。所述方法包括:识别将被设计到所述上下文感知电路中的至少一个单元;识别对所述上下文感知电路的布局相关效应有影响的至少一个上下文参数;为所述至少一个单元的每个单元及所述至少一个上下文参数的每个上下文参数产生与所述单元相关联的多个邻接环境;针对所述至少一个单元的每个单元及所述至少一个上下文参数的每个上下文参数,通过在所述多个邻接环境下产生所述单元的多个电性质值而估测所述单元的至少一个电性质对所述上下文参数的敏感度;以及基于所述至少一个单元的每个单元的所述至少一个电性质的所述敏感度且基于至少一个预定阈值,判断所述至少一个上下文参数的每个上下文参数是否是用于所述上下文感知电路的静态分析的关键上下文参数。

在相关实施例中,判断所述至少一个上下文参数的每个上下文参数是否是所述关键上下文参数包括:针对所述至少一个单元的每个单元及所述上下文参数,计算所述多个电性质值中的每一者与对应于与所述单元相关联的基线邻接环境的电性质值之间的比率以产生多个比率,所述多个比率中的每一者对应于与所述单元相关联的所述多个邻接环境中的一者。

在相关实施例中,判断所述至少一个上下文参数的每个上下文参数是否是所述关键上下文参数还包括:针对所述至少一个单元的每个单元及所述上下文参数,识别所述多个比率中的最大比率及最小比率;将所述最大比率与第一预定阈值进行比较;将所述最小比率与第二预定阈值进行比较;以及在以下条件中的至少一者下将所述上下文参数识别为所述关键上下文参数:所述最大比率大于或等于所述第一预定阈值,以及所述最小比率小于或等于所述第二预定阈值。

在相关实施例中,所述的方法还包括:在确定所述上下文参数是所述关键上下文参数时,针对所述至少一个单元的每个单元,基于与所述关键上下文参数相关联的所述多个邻接环境且基于对应于所述多个邻接环境的所述多个比率而产生至少一个降额表。

在相关实施例中,所述至少一个电性质包括多个电性质;以及所述至少一个降额表包括多个降额表,所述多个降额表中的每一者是针对所述单元的所述多个电性质中的相应一者产生的。

在相关实施例中,所述至少一个电性质包括多个电性质;以及所述至少一个降额表是基于所述单元的所有所述多个电性质产生的单个表。

在相关实施例中,所述的方法还包括:在以下电路设计阶段中的至少一者期间利用所述至少一个降额表来执行对所述上下文感知电路的所述静态分析:自动布局及布线以及签核。

在相关实施例中,判断所述至少一个上下文参数的每个上下文参数是否是所述关键上下文参数包括:针对所述至少一个单元的每个单元,判断所述单元的所述至少一个电性质的所述敏感度是否超过所述至少一个预定阈值;以及当所述至少一个单元的任一单元的所述至少一个电性质的所述敏感度超过所述至少一个预定阈值时,将所述上下文参数识别为所述关键上下文参数。

在相关实施例中,所述至少一个上下文参数包括与以下中的至少一者相关的信息:与所述至少一个单元的每个单元相关联的有源区间隔效应、以及与所述至少一个单元的每个单元相关联的多晶硅长度。

在相关实施例中,所述至少一个电性质包括与以下中的至少一者相关的信息:与所述至少一个单元的每个单元相关联的上升延迟、下降延迟、约束、泄漏及功率。

在相关实施例中,所述至少一个单元是被配置用于设计所述上下文感知电路的标准单元的子集;以及所述多个邻接环境是基于所有所述标准单元而产生的。

在一些实施例中,公开了另一种用于设计上下文感知电路的方法。所述方法包括:确定与所述上下文感知电路相关联的电性质的基线值;获得所述上下文感知电路的设计布局;基于所述基线值、所述设计布局及降额表产生所述电性质的上下文感知值,其中所述降额表包括与所述电性质对与所述设计布局相关联的上下文参数的敏感度相关的信息;以及基于所述电性质的所述上下文感知值执行所述上下文感知电路的静态分析。

在相关实施例中,基于所述上下文感知电路的输入转换及输出负载来确定所述电性质的所述基线值。

在相关实施例中,产生所述电性质的所述上下文感知值包括:提取所述上下文感知电路中的单元的至少一个关键上下文参数;基于所述上下文感知电路的所述设计布局,为所述至少一个关键上下文参数中的每一者确定与所述单元相关联的邻接环境;基于所述降额表及所述邻接环境确定电性质比率;以及通过将所述电性质比率与所述基线值相乘来产生所述电性质的所述上下文感知值。

在相关实施例中,确定所述电性质比率包括以下中的至少一者:基于所述邻接环境搜索所述降额表;以及基于插值法计算所述电性质比率。

在相关实施例中,所述上下文感知电路的所述静态分析包括以下中的至少一者:静态定时分析及静态功率分析;以及基于连接所述上下文感知电路中的多个单元的路径或图形来执行所述静态分析,以基于所述电性质的所述上下文感知值来产生报告。

在相关实施例中,基于所述降额表及与所述上下文感知电路相关联的至少一个单元库来执行所述静态分析;以及在以下电路设计阶段中的至少一者期间执行所述静态分析:自动布局及布线及签核。

在一些实施例中,公开了一种用于设计上下文感知电路的系统。所述系统包括:用指令集编码的非暂时性存储媒体;以及硬件处理器,与所述非暂时性存储媒体以通信方式耦合,并被配置成执行所述指令集,所述指令集被配置成使所述硬件处理器:识别被配置用于设计所述上下文感知电路的标准单元的子集;基于所述子集中的多个单元的至少一个电性质对至少一个关键上下文参数的敏感度,确定所述多个单元的所述至少一个关键上下文参数;基于所述多个单元的所述至少一个电性质对所述至少一个关键上下文参数的所述敏感度,产生至少一个降额表;以及提供至少一个单元库以及所述至少一个降额表,用于执行所述上下文感知电路的静态分析。

在相关实施例中,所述至少一个降额表中的一者是查找表,所述查找表将与所述多个单元中的单元相关联的有源区间隔值映射到与所述单元相关联的时间延迟比率。

在相关实施例中,所述时间延迟比率中的每一者是对应于相应的有源区间隔值的时间延迟值与当所述单元无有源区间隔时对应于基线有源区间隔值的基线时间延迟值之间的比率。

尽管以上已阐述了本公开的各种实施例,然而应理解,所述实施例仅作为实例呈现而非用于进行限制。同样,各个图式可绘示示例性架构或配置,提供所述示例性架构或配置是为了使所属领域中的普通技术人员能够理解本公开的示例性特征及功能。然而,所属领域中的普通技术人员应理解,本公开并非仅限于所示出的示例性架构或配置,而是可使用各种替代架构及配置来实施。另外,如所属领域中的普通技术人员应理解,一个实施例的一个或多个特征可与本文中所述的另一实施例的一个或多个特征进行组合。因此,本公开的广度及范围不应受上述示例性实施例中的任一示例性实施例限制。

还应理解,本文中每当使用例如“第一”、“第二”等称谓来提及元件时均不是笼统地限制所述元件的数量或次序。而是,本文中使用这些称谓作为区分两个或更多个元件或区分元件的实例的便捷手段。因此,提及“第一元件”和“第二元件”并不意味着仅可采用两个元件或者第一元件必须以某种方式在第二元件之前。

另外,所属领域中的普通技术人员应理解,可使用各种不同的技术及技法中的任一种来表示信息及信号。举例来说,数据、指令、命令、信息、信号、位及符号(举例来说,在以上说明中可能提及的)可由电压、电流、电磁波、磁场或磁性粒子、光学场或光学粒子或其任意组合来表示。

所属领域中的普通技术人员还应理解,结合本文所公开的各个方面阐述的各种例示性逻辑区块、模块、处理器、构件、电路、方法及功能中的任一者可由电子硬件(例如,数字实施形式、模拟实施形式或两者的组合)、固件、包含指令的各种形式的程序或设计代码(为方便起见,在本文中可被称为“软件”或“软件模块”)或这些技术的任意组合来实施。

为清楚地例示硬件、固件及软件的此种可互换性,以上已对各种例示性组件、区块、模块、电路及步骤在其功能方面进行了大体阐述。此种功能是被实施为硬件、固件还是软件、抑或被实施为这些技术的组合取决于具体应用及施加于整个系统的设计约束条件。所属领域中的技术人员可针对每一具体应用以各种方式实施所阐述的功能,但此种实施决策不会导致脱离本公开的范围。根据各种实施例,处理器、器件、组件、电路、结构、机器、模块等可被配置成执行本文中所述的功能中的一个或多个功能。本文中针对规定操作或功能使用的用语“被配置成”或“被配置用于”是指处理器、器件、组件、电路、结构、机器、模块、信号等被实体构造成、编程成、排列成和/或格式化成执行规定操作或功能。

此外,所属领域中的普通技术人员应理解,本文中所述的各种例示性逻辑区块、模块、器件、组件及电路可在集成电路(IC)内实施或由集成电路(IC)执行,所述集成电路可包括数字信号处理器(digital signal processor,DSP)、应用专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field programmable gatearray,FPGA)或其他可编程逻辑器件、或其任意组合。逻辑区块、模块及电路还可包括天线和/或收发器,以与网络内或器件内的各种组件进行通信。被编程成执行本文中的功能的处理器将变成专门编程的或专用的处理器,且可被实施为计算器件的组合,例如DSP与微处理器的组合、多个微处理器、一个或多个微处理器与DSP核的结合、或者执行本文中所述的功能的任何其他合适的配置。

如果以软件的形式实施,则所述功能可作为一个或多个指令或代码存储在计算机可读媒体上。因此,本文中所公开的方法或算法的步骤可被实施为存储在计算机可读媒体上的软件。计算机可读媒体包括计算机存储媒体及通信媒体二者,包括任何可能够将计算机程序或代码从一个地方传递到另一地方的任何媒体。存储媒体可为可由计算机存取的任何可用媒体。作为示例而非限制,这种计算机可读媒体可包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disk-ROM,CD-ROM)或其他光盘存储器器件、磁盘存储器器件或其他磁性存储器器件、或者可用于以指令或数据结构的形式存储所期望的程序代码且可由计算机存取的任何其他媒体。

在本文件中,本文使用的用语“模块”是指用于执行本文中所述的相关功能的软件、固件、硬件以及这些元件的任意组合。另外,为便于论述,各种模块被阐述为离散模块;然而,对于所属领域中的普通技术人员来说显而易见的是,可将两个或更多个模块组合形成单个模块,由所述单个模块执行根据本公开的实施例的相关功能。

对本公开中所述的实施方式的各种修改对于所属领域中的技术人员来说将显而易见,且在不背离本公开的范围的条件下,本文中所定义的一般原理也可应用于其他实施方式。因此,本公开并非旨在仅限于本文中所示的实施方式,而是符合与在以上权利要求书中所述的本文所公开新颖特征及原理一致的最宽广范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号