使用来自两个或多个库的标准单元的集成电路的制作方法

文档序号:11063597阅读:300来源:国知局
使用来自两个或多个库的标准单元的集成电路的制造方法与工艺

本发明涉及集成电路,且更具体地,涉及使用来自两个或多个单元库的标准单元的集成电路设计。

现代集成电路(IC)太复杂而不能被人工设计,而是使用电子设计自动化(EDA)工具来设计。专用IC(ASIC)或片上系统(SOC)可具有数千万或亿万计的门。典型地,使用EDA工具的IC设计包括如下步骤:设计团队使用逻辑综合工具执行将硬件描述语言(HDL)中的高级功能性描述(称为寄存器传输级(RTL)设计)精确地转换为物理设计级的技术依赖型网表。

在物理设计级,执行综合以将RTL设计映射为低级逻辑单元,低级逻辑单元诸如是与、或、反向器、触发器、锁存器以及缓冲器。使用标准单元库来在网表中实现RTL设计。标准单元库通常包含每个逻辑功能的多种实施方式,在面积、功率、电流和速度方面有所不同。这种多样性增强了市售的EDA自动综合和布置及布线(SPR)工具的效率,并对执行实现折衷(面积对速度对功耗)给予更大的自由。技术库是标准单元的完备组并且典型地由工厂(fab),经常由代工经营者或第三方设计公司或IP供应商来开发和发布。标准单元在晶体管级是全定制的布图,针对fab的技术水平进行优化。

根据整体的二维平面布图,布置工具为网表中的每个门在芯片上分配具体的位置。最终布置的门网表包含网表的每个标准单元的物理位置,以及将门彼此连接的布线的抽象描述。

按照惯例,给定库的标准单元与其被在IC的2D表面上对齐的行具有相同的“高度”,或者具有该行的整数倍的“高度”。单元或行的“高度”指的是在IC表面的平面布图所见的垂直距离,对应于行的间隔,而“宽度”指的是沿着行、在平面布图中水平的单元的尺寸。对于给定的逻辑功能,标准单元的不同实施方式典型的具有不同的宽度,以及不同的面积、功率、电流和速度。芯片将拥有大量的行(电源和接地线挨着每行延伸)且每行用各种标准单元填充。

按照惯例,在门的相同区域的各行中,或更特别地在相同的块中,所 有单元是从相同的标准单元库中获取,并且都具有如行高度一样的相同的高度(通过线数的测量),或具有行高的整倍数。对于特定单元的速度、功耗和面积的特性是折衷的。例如,可能以低高度的行实现快速单元,但是如果它们以更大高度的行实现时,这些单元使用的面积以及它们的功耗将更大。也可能在高的高度的行中实现慢单元,但是再一次的,如果它们以更低高度的行实现,这些单元使用的面积和它们的功耗将更大。因此,尽管在设计的门的相同区域(SOG)中使用的来自相同库的固定高度的标准单元(通过线数计算,例如N-线)便于布置和布线,但是其将不适合于需要高性能和低功耗的设计。

在相同SOG中使用不同高度的两组或多组的库按照惯例是不可能的。从低速/低功率SOC的库提供较低高度的单元(例如,5-线),而从高速/高功率SOC的库提供更大高度的单元(例如,13-线),而从速度和功率之间折衷的库提供中间单元(例如9-线)。尽管可能在低高度的库中实现高速/高功率单元且反之亦然,但是这将显著降低硅的利用率和增加功耗。

有利的是具有提供更好适应所要求的功率和速度特性的标准单元的IC布图,同时更好的优化半导体面积的使用率。

附图说明

通过参考在附图中示出的对本发明的实施例的以下描述,可以更好地理解本发明连同它的主题和优势。附图中的元件是为了简单和清楚的描述,并不一定按照比例绘制。

附图1和2是传统IC布图的示意性平面布图视图;

附图3是根据本发明的实施例的IC布图的示例的示意性平面布图视图;

附图4是根据本发明的实施例的、诸如附图3中的IC之类的IC物理设计方法的流程图;以及

附图5是用于执行本发明的物理设计方法(诸如附图4中示出的方法)的EDA工具的示意性框图。

具体实施方式

本发明提供一种方法,该方法允许在相同SOG中使用两组或多组不同高度的现有库单元,而无需在功率和速度之间折衷,并同时提供更高的硅利用率。即,本发明是一种在相同的SOG中使用多于一组标准单元库单元的方法, 其中单元被设计成发挥每个库的优势而避免每个库的劣势。例如,一起使用5-线库与9-线库,就可获得高速和低功率以及获得高的硅利用率。在本发明的方法中,每个标准库具有预定高度的单元,所以库“A”具有高度“x”,以及库“B”具有高度“y”,其中x◇y。

附图1和2描述了传统集成电路(IC)100和200的示例。IC 100和200通过使用逻辑综合工具由高级功能性说明得到。逻辑综合工具将RTL设计的功能性说明转换为物理设计级的技术依赖型网表。在综合期间,RTL设计被映射为逻辑单元的实体,诸如与、或、反向器(INV)、D-触发器(DFF)、锁相器和缓冲器(BUF)。标准单元库被用于在网表中实现RTL设计,包括每个逻辑功能的多种实施方式,不同之处在于面积、功率、电流和速度。

在IC 100中,在门的相同区域(SOG)的行中或更特别地在相同块中的单元,都取自单一标准单元库。库的标准单元都具有与如行102、104、106的高度H相同的高度H或高度H的整数倍数(诸如2H)(D-触发器DFF2),其中行102、104、106在IC 100的2-D表面对齐。对于给定逻辑功能的标准单元的不同实施方式典型的具有不同的宽度,给予不同面积、功率、电流和速度的选择。单元和行的高度被按照线数分类,诸如5-线、9-线或13-线,且应当理解,单元和行的物理高度的比较的近似程度典型的是在这个分类内。

对于IC100中SOG的库的选择,对于单元的一些实体给予最好的折衷,而不是对于所有的实体给予最好的折衷。对于其它单元在速度、功耗和面积的特性上的折衷将是次优的,通常具有额外面积和功耗的不利方面。

在IC200中,SOG的行202、204、206具有高度H1、H2、H3,在行202、204、206中的单元中的一些具有与行202、204、206的高度H1、H2、H3不同的高度H。电源线VDD和VSS的布线是更复杂的且它们占用更大的空间。来自行的不同高度的一些单元(例如行202中的INV)必须被设计成不同库中标准单元的变体或是定制设计,这要求额外的设计成本。混合更高高度的单元造成了末使用的面积(例如在行202和204中的BUF和行206中的OR),在相同的行中具有更矮的单元。

附图3描述了根据本发明的IC 300的示例的布图。IC 300包括单元的实体块,诸如在行302、304、306中至少按照第一和第二高度H1、H2对齐的与、或、反向器(INV)、D-触发器(DFF)、锁相器和缓冲器(BUF)。 单元的实体是从至少第一和第二标准单元库中选择的,根据单元的实体的性能标准,第一和第二标准单元库分别具有第一和第二高度H1、H2的整数倍的高度。从第一和第二库选择的标准单元分别按照第一和第二高度的行302、304、306对齐。第一和第二高度H1和H2的行中的选择的标准单元分别具有高度H1或H2(多数单元)或高度2H1或2H2(D-触发器DFF2)或通常的高度nH1或nH2。尽管为了简单,在附图3中示出单元的三个行302、304、306,应当理解,典型的IC 300将具有许多行,例如几千。

第一和第二高度H1、H2、......Hn的行302、304、306各自的数N1、N2、......Nn,对应于总宽度的比率∑WIDTH1/∑WIDTH2....../∑WIDTHn,该比率是放置用于块中单元的实体的、分别从第一和第二(和第n)库选择的标准单元所需要的。总宽度的比率∑WIDTH1/∑WIDTH2....../∑WIDTHn将被四舍五入至相应的行的整数。

相比IC 100和200,IC 300具有较少的额外面积。单元的实体都可以是标准单元,例如来自由fab提供的两个或多个库。不需要对于标准单元的变体或定制单元设计付出设计努力。在IC300中,对于SOG的库的选择相比于IC100或200可在速度和功耗的特性以及半导体面积占据上给予更好的折衷。在附图3中,单元具有不同的高度(H1,H2,......),但是能被放置在相同SOG的不同行中,其中H1与H2的比率可变化(例如,2∶1)。每行邻接邻近的行(或两行,一行在上一行在下)以获得高的硅效率。

附图4是使用EDA工具用于执行IC(诸如IC 300)的块的物理设计的根据发明实施例的方法400的流程图,。附图5是EDA工具500的简化框图,其包括处理器502和连接到处理器502的存储器504和506。方法400包括在步骤402在存储器504、506中提供具有IC块的单元的实体的硬件描述的RTL设计。在步骤404,方法400至少提供了标准单元的第一和第二库,其分别具有单元的行302、304、306的第一和第二不同高度H1至Hn的整数倍的高度。在步骤406,综合工具根据单元的实体的执行标准为RTL设计中的单元的实体从不同库选择标准单元。在步骤408,布置工具分别将从第一和第二库选择的标准单元按照第一和第二高度的行对齐。注意,这样的综合和布置工具在本领域是公知的并且是市售的。

在步骤410,综合工具可估计第一高度的行的总宽度与第二高度(且 更普遍是第n高度)的行的总宽度的比∑WIDTH1/ΣWIDTH2....../ΣWIDTHn,其是对于块中的单元的实体放置分别从第一和第二(和第n)库中选择的标准单元所需要的。在步骤412,方法400根据比率在平面布图中提供第一和第二高度(以及第n高度)的行的各自的数目。在测试和下线之前,步骤414可以跟随放置步骤408之后进行用于布线以及时序、面积和功耗的优化。

在附图5中,EDA工具500也包括显示装置508、输入/输出接口510和软件512。软件512包括操作系统软件514、应用程序516和数据518。应用程序516除了别的之外可以包括在架构设计、功能和逻辑设计、电路设计、物理设计和检验中使用的模块。数据518可以包括架构设计、功能和逻辑设计、电路设计、物理设计、修复或修正物理设计以及标准单元库和其它组件,以及具有不同特性的变体。除了用于实现IC的物理设计的方法的软件,EDA工具500通常在本领域中是公知的。当在处理器502上执行软件或程序时,处理器变成执行在处理器502上运行的应用代码或软件的步骤或指令的“方式”。即,如本领域技术人员所公知的,对于不同指令和与指令相关的不同数据,由于不同的寄存器值等,处理器502的内部电路呈现不同的状态。因此,由于处理器502执行本文公开的方法的步骤,所以本文描述的任何的方式构造涉及处理器502。

本发明也包括存储用于在诸如EDA工具500的EDA工具上执行的指令的非暂态计算机可读存储介质,这导致EDA工具500执行物理设计方法400。

非暂态计算机可读存储介质可以包含用于在计算机系统上运行的计算机程序,程序至少包括代码部分,用于当在可编程的设备(诸如计算机系统)上运行时执行根据本发明的方法的步骤,或用于使得可编程的设备能够执行根据本发明装置或系统的功能。

计算机程序可以内部存储在计算机可读存储介质上,或者通过计算机可读传输介质传输到计算机系统。可以在非暂态计算机可读介质上,永久地、可拆卸地或远程地耦合到信息处理系统来提供计算机程序中的一些或全部。计算机可读介质可以包括,例如但不限于,任何数目的如下:包括磁盘和磁带存储介质的磁性存储介质;如光盘介质(例如,CD ROM,CD R等)和数字视频光盘存储介质的光存储介质;非易失性存储器存储介质,包括基于半导体的 存储器单元,诸如闪存存储器,EEPROM,EPROM,ROM;铁磁数字存储器;MRAM;易失性存储介质,包括寄存器、缓冲器或高速缓存器、主存储器、RAM等;以及数据传输介质,包括计算机网络、点对点电信装备和载波传输介质,仅是举几例。

计算机程序是如特定的应用程序和/或操作系统的指令的列表。计算机程序,例如可以包括以下中的一个或多个:子程序、函数、程序、对象方法、对象实现、可执行的应用、小应用程序、小服务程序、源代码、目标代码,共享的库/动态加载库和/或设计为在计算机系统上执行的指令的其他序列。

在前述说明书中,已经参考本发明的实施例的具体示例描述了本发明。但是,将明显的是,其中可以在不脱离如所附权利要求中阐述的本发明的更广泛的精神和保护范围的情况下做出各种修改和变化。

例如,本文描述的半导体衬底可以是任何半导体材料或材料的组合,诸如砷化镓、硅锗、绝缘体上硅(SOI)、硅、单晶硅之类的,以及上述的组合。

此外,说明书和权利要求书中的术语“前”、“后”、“顶”、“底”、“在...之上”、“在...之下”、“高度”、“宽度”等,如果有的话,是用于说明目的,不一定用于描述永久的相对位置。应当理解的是,相比本文图示的或以其他方式描述的定向,本文中描述的本发明的实施例,例如能够在其它方向上定位和操作。

而且,本领域技术人员将认识到上面描述的操作之间的界线仅仅是说明性的。多个操作可组合成单个操作,单个操作可以分成额外的操作,并且操作可以在时间上至少部分重叠地执行。此外,可替换的实施例可包括具体操作的多个实例,且操作的顺序在各种实施例中可以变化。

在权利要求中,词语“包含”或“具有”并不排出存在除了权利要求中所列出元件或步骤之外的其它元件或步骤。此外,本文所使用的术语“一”或“一个”被定义为一个或多于一个。此外,如在权利要求中的使用的诸如“至少一个”和“一个或多个”之类的引入性的短语,不应被解释为意味着通过不定冠词“一”或“一个”引入的另一权利要求元件将包含这样的引入的权利要求元件的任何具体的权利要求限制为仅包含一个这样的元件的发明,即使相同的权利要求包括引入性短语“一个或多个”或“至少一个”和不定冠词如“一”或“一个”。对定 冠词的使用也同样适用。除非另有规定,诸如“第一”和“第二”的术语是用来任意区分这些术语描述的元件。因此,这些术语不一定是为了表示这些元件的时间或其它优先次序。在相互不同的权利要求中列举的某些措施的这一事实并不表明这些措施的组合不能被有利地利用。

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