CN113139362A - 集成电路布局 - Google Patents
集成电路布局 Download PDFInfo
- Publication number
- CN113139362A CN113139362A CN202010916010.5A CN202010916010A CN113139362A CN 113139362 A CN113139362 A CN 113139362A CN 202010916010 A CN202010916010 A CN 202010916010A CN 113139362 A CN113139362 A CN 113139362A
- Authority
- CN
- China
- Prior art keywords
- cells
- cell
- height
- integrated circuit
- rows
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 description 98
- 230000003542 behavioural effect Effects 0.000 description 21
- 230000004044 response Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 13
- 230000006399 behavior Effects 0.000 description 12
- 230000015572 biosynthetic process Effects 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 10
- 238000004088 simulation Methods 0.000 description 9
- 238000003786 synthesis reaction Methods 0.000 description 9
- 238000002156 mixing Methods 0.000 description 8
- 239000000203 mixture Substances 0.000 description 6
- 239000002184 metal Substances 0.000 description 3
- 238000001465 metallisation Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L27/00—Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
- H01L27/02—Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
- H01L27/0203—Particular design considerations for integrated circuits
- H01L27/0207—Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/12—Sizing, e.g. of transistors or gates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Engineering (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种集成电路布局包括一或多个第一单元行,第一单元行沿第一方向部分地延伸跨越经配置用于集成电路布局的空间。第一单元行中的每一者沿垂直于第一方向的第二方向具有第一高度。集成电路布局包括一或多个第三单元行,第三单元行沿第一方向部分地延伸跨越空间。第三单元行中沿第二方向具有第二高度,第二高度不同于第一高度。
Description
技术领域
本揭示文件的实施例是关于一种布局,特别是关于包含具有不同高度的单元行的集成电路布局。
背景技术
通常,电子设计自动化(electronic design automation;EDA)工具辅助半导体设计者对所需电路进行纯粹的行为描述,且致力于形成准备好制造的电路的最终布局。此过程通常采用电路的行为描述,且将其转换为功能描述,接着将其分解为数个布尔函数(Boolean function),且使用标准单元库将其映射至各别单元行(row)中。一旦映射,便执行合成以将结构设计转换为实体布局,构建时脉树以同步结构元素,且最佳化设计的后期布局(post layout)。
发明内容
本揭示案的实施例是关于一种集成电路布局,其特征在于,包含一或多个第一单元行及一或多个第二单元行。第一单元行沿第一方向部分地延伸跨越经配置用于集成电路布局的空间。第一单元行中的每一者沿垂直于第一方向的第二方向具有第一高度。第二单元行沿第一方向部分地延伸跨越空间。第二单元行中的每一者沿第二方向具有第二高度。第二高度不同于第一高度。
附图说明
当与附图一起阅读时,根据以下详细描述可最佳地理解本揭示案的一实施例的各态样。应注意,根据行业中的标准实践,各种特性未按比例绘制。实际上,为了论述的清楚起见,各种特性的尺寸可任意增大或减小。
图1A说明根据一些实施例的实例集成电路布局的示意图;
图1B说明根据一些实施例的处于特定金属化层级的图1A的集成电路的一部分的示意图;
图1C说明根据一些实施例的包括在图1A的集成电路的一部分中的数个单元的示意图;
图2A说明根据一些实施例的产生包括一或多个均匀高区域及/或一或多个均匀矮区域的集成电路布局的实例方法的流程图;
图2B说明根据一些实施例的产生包括一或多个均匀高区域及/或一或多个均匀矮区域的集成电路布局的另一实例方法的流程图;
图3A说明根据一些实施例的产生包括一或多个均匀高区域及/或一或多个均匀矮区域的集成电路布局的又一实例方法的流程图;
图3B说明根据一些实施例的产生包括一或多个均匀高区域及/或一或多个均匀矮区域的集成电路布局的又一实例方法的流程图;
图4说明根据一些实施例的包括高单元行及矮单元行的网表(netlist)的一部分的示意图;
图5说明根据一些实施例的实例信息处置系统(information handling system;HIS)的方块图。
【符号说明】
100:集成电路
102:空间
103:邻接区域/均匀矮区域
104:邻接区域/均匀高区域
105:邻接区域/均匀矮区域
106:邻接区域/均匀高区域
107:区域
110:单元行
112:单元行
114:单元行
116:单元行
118:单元行
120:单元行
122:单元行
124:单元行
126:单元行
128:单元行
130:单元行
132:单元行
134:单元行
136:单元行
140:单元行
142:单元行
144:单元行
146:单元行
148:单元行
150:单元行
152:单元行
154:单元行
156:单元行
158:单元行
158-1:主动区
158-2:主动区
160:单元行
160-1:主动区
160-2:主动区
160-3:主动区
160-4:主动区
162:单元行
164:单元行
166:单元行
168:单元行
170:单元行
172:单元行
174:单元行
176:单元行
178:单元行
180:单元行
182:单元行
184:单元行
192:单元
193:单元
194:单元
195:单元
196:单元
200:方法
202:输入网表
204:设计约束
206:操作
208:操作
210:操作
212:操作
214:操作/制造工具
216:操作
250:方法
252:行为/功能设计
254:设计约束
256:操作
258:操作
260:操作
262:操作
264:操作
266:操作
268:操作
270:操作
300:方法
302:输入网表
304:设计约束
306:操作
308:操作
310:操作
312:操作
314:操作
316:操作
318:操作
350:方法
352:行为/功能设计
354:设计约束
356:操作
358:操作
360:操作
362:操作
364:操作
366:操作
368:操作
370:操作
372:操作
374:操作
376:操作
400:网表
402:单元行
404:单元行
406:高单元
408:矮单元
410:混合高度单元
500:信息处置系统(IHS)
510:处理单元
512:输入/输出(I/O)组件
514:显示器
516:LAN/WAN
520:CPU
522:记忆体
524:大容量储存装置
526:视频配接器
528:I/O接口
530:总线
540:网络接口
X:方向
Y:方向
VDD:电力轨
VSS:电力轨
具体实施方式
以下揭示内容提供用于实施所提供的主题的不同特征的许多不同的实施例或实例。以下描述组件及配置的特定实例以简化本揭示案的一实施例。当然,此等仅为实例,并不旨在进行限制。举例而言,在下文的描述中在第二特征之上或上的第一特征的形成可包括其中第一特征与第二特征直接接触形成的实施例,且亦可包括其中在第一特征与第二特征之间形成额外特征使得第一特征与第二特征可不直接接触的实施例。另外,本揭示案的一实施例可在各个实例中重复参考数字及/或字母。此重复是出于简单及清楚的目的,且其本身并不指示所论述的各种实施例及/或组态之间的关系。
此外,为了便于描述一个元素或特征与另一(些)元素或特征的关系(如图所示),本文中可使用空间相对术语,诸如“在...下方”、“下方”、“下部”、“上方”、“上部”等。除了在图中描述的定向之外,空间相对术语亦旨在涵盖装置在使用或操作中的不同定向。设备可以其他方式定向(旋转90度或以其他定向),且本文中使用的空间相对描述语同样可相应地进行解释。
为了避免跨越来自各别不同单元库(cell library)的单元的错位(misalignment),通常使用来自标准单元库的单元,其单元高度等于单元行的高度(以下称为“高度”)。由此,通常在相对较早的设计阶段决定使用哪个单一高度用于设计,借此亦固定对应高度。然而,由于仅使用单一高度,必须在电路效能、电路功率与制造制程之间作出一些取舍。举例而言,可通过沿单元行并排设定在(dispose)多个单元来形成以效能为导向的电路,每一单元具有较高数目个主动区(例如,鳍片);可通过沿单元行并排配置多个单元来形成以功率/面积为导向的电路,每一单元具有较少数目个主动区。
由此,为了设计功耗低且占用面积小的电路而不牺牲其效能(例如,以平衡为导向的电路),通常会作出各种设计取舍。举例而言,具有较少数目个鳍片的第一数目个单元交替地设定在具有较高数目个主动区的第二数目个单元之间。此种布局导致第二数目个单元中的一或多个主动区(通常称为“间断(broken)鳍片”,或更通常地称为“间断主动区”)的延伸不连续,此可能不利地降低电路的效能(由于鳍片间断而引起的松弛应变/应力)。
已经提出使用混合高度的概念来缓解此种问题。本质上,给定用于电路设计的空间,此空间可包括数个具有第一高度的第一单元行及数个具有第二不同高度的第二单元行。第一单元行可用于置放(place)具有第一高度的第一类型单元,且第二单元行可用于置放具有第二高度的第二类型单元。应注意,在使用混合高度的现有电路设计技术中,第一单元行及第二单元行中的每一者完全延伸跨越给定空间。换言之,在设计电路时,只能经由沿垂直于第一单元行及第二单元行延伸的第二方向(例如,X方向)的第一方向(例如,Y方向)置放不同数目个第一单元行与第二单元行,来提供设计具有不同功率/时序/效能要求的电路的灵活性。由此,例如,共用类似时序要求(其在集群(cluster)而彼此靠近时可有利地最佳化电路的设计)的一些单元可能被迫分散至不同区域。举例而言,由于互连结构的额外布线(routing),分散的单元可能不利地影响电路的速度。因此,现有电路设计技术可能仍不能完全令人满意。
本揭示案的一实施例提供使用具有第一高度的多个第一单元行及具有不同的第二高度的多个第二单元行来设计集成电路的系统及方法的各种实施例。此外,第一单元行及第二单元行中的每一者可部分地或完全地延伸跨越经配置用于集成电路的设计(例如,集成电路的布局)的给定空间。如本文中所揭示,此系统可识别将由多个单元共用的共同功率/时序/效能要求,且在给定空间中配置由(一或多个)第一行或(一或多个)第二行组成的区域以供置放此些单元。由于不需要第一行及第二行完全延伸跨越给定空间,因此可为此些单元特别地配置此区域,具有至少一个额外灵活性。由此,共用共同功率/时序/效能要求的单元可集群在此区域中,此可有利地解决现有电路设计技术所遇到的问题。
图1A说明根据一些实施例的由本揭示案的一实施例的系统及方法设计的实例集成电路(布局)100的示意图。然而,并非所有所说明的组件皆为必需的,且本揭示案的一实施例可包括图1A中未展示的额外组件。在不脱离本文中所阐述的本揭示案的一实施例的范围的情况下,可进行组件的配置及类型的变化。可包括额外的、不同的或更少的组件。
参考图1A,集成电路100包括相对于经配置用于集成电路100的设计的空间、栅格(grid)或平面规划(floorplan)102而配置(例如,布置(laid out))的多个单元行110、112、114、116、118、120、122、124、126、128、130、132、134、136、140、142、144、146、148、150、152、154、156、158、160、162、164、166、168、170、172、174、176、178、180、182及184。在一些实施例中,集成电路100的单元行110-184可呈现至少两个各别的不同行高度或高度。如图所示,单元行110-114、118、122、126、130、134、158、162、166及170-184可共用基本上类似的行高度,下文称为“高度A”;且单元行116、120、124、128、132、136、140-152、160、164及168可共用基本上类似的行高度,下文称为“高度B”,其中行高度B大于行高度A。此种行高度对应于将在下文论述的待置放在其中的单元(有时称为标准单元)的单元高度。
在一些实施例中,可具有高度A或高度B的一些单元行沿第一方向(例如,X方向)完全延伸跨越空间102,而可具有高度A或高度B的另一单元行沿第一方向部分地延伸跨越空间102。举例而言,具有高度A的单元行110-114及118各自完全延伸跨越空间102,而具有相同高度A的单元行122、126、130、134、154、158、162、166及170-184各自部分地延伸跨越空间102。具有高度B的单元行116、120及140-142完全延伸跨越空间102,而具有相同高度B的单元行124、128、132、136、144-152、156、160、164及168各自部分地延伸跨越空间102。
参考图1B,说明根据一些实施例的处于特定金属化层级(例如,M0层级)的集成电路100的一部分的示意图。如图所示,沿垂直于第一方向(例如,Y方向)的第二方向,每一单元行在各别侧面处由第一金属轨及第二金属轨定界。第一金属轨可为用以向置放在单元行内的每一单元提供VDD的VDD电力轨,且第二金属轨可为用以向置放在单元行内的每一单元提供VSS的VSS电力轨。沿第二方向彼此相邻的单元行可组合、毗连或以其他方式共用相同的VDD电力轨或VSS电力轨。举例而言,在图1B中,单元行110可与单元行112共用相同的VSS电力轨。由于VDD/VSS电力轨可沿对应单元行延伸,因此可了解,一些VDD/VSS电力轨(例如,由单元行110与112共用的VSS电力轨)可沿X方向完全延伸跨越空间102(绘示于图1A),而其他VDD/VSS电力轨(例如,由单元行164与166共用的VDD电力轨)可沿X方向部分地延伸跨越空间102。
如上所述,每一单元行110-184用以置放具有相同高度的一或多个单元。现在参考图1C,示意性地说明集成电路100的一部分(例如,单元行158及160)。单元行158可包括置放在其中的各自具有相同高度A的单元192、193及194,且单元行160可包括置放在其中的各自具有相同高度B的单元195及196。尽管如图1C所示,三个单元(例如,192-194)置放在单元行158中且两个单元(例如,195及196)置放在单元行160中,但可了解,每一单元行,包括单元行158及160,可包括设定在其中的具有相同高度的任何数目个单元。
在一些实施例中,单元行的高度对应于可设定在或形成于单元行中的单元的主动区的数目。举例而言,与具有较矮高度(例如,高度A)的单元行相比,具有较高高度(例如,高度B)的单元行可允许在其中形成更多的主动区。与单元行平行延伸的此种主动区可为一或多个三维场效应晶体管(例如,FinFET、环绕栅极(gate-all-around;GAA)晶体管)的鳍形区或一或多个平面金属氧化物半导体场效应晶体管(metal-oxide-semiconductor field-effect-transistor;MOSFET)的氧化物定义(oxide-definition;OD)区,其中主动区可用作各别晶体管的源极特征或漏极特征。举例而言,在图1A中,设定在单元行158中的单元192-194可具有两个主动区158-1及158-2;且设定在单元行160中的单元195及196可具有四个主动区160-1、160-2、160-3及160-4。
在一些实施例中,如本文中所揭示的实施例,此系统可在空间102中配置一或多个邻接区域,此些区域有时可称为均匀高区域(若构成些区域的所有单元行共用相同的高高度)或均匀矮区域(若构成此区域的所有单元行具有相同的矮高度)。此系统可基于集成电路100的所识别的电路模块来配置此种邻接区域。举例而言,电路模块可基于判定电路模块先前被指定(例如,由使用者指定)为以效能为导向的电路模块而被识别为由高度高的单元组成。在另一实例中,可基于判定电路模块先前被指定为以功率为导向的电路模块来将电路模块识别为由高度矮的单元组成。如本文中所论述,电路模块可指用以执行特定功能的一组电路组件。举例而言,集成电路100可包括中央处理单元(central processing unit;CPU)、图形处理单元(graphic processing unit;GPU)、输入/输出(input/output;I/O)接口及记忆体。由此,多个电路模块可共同形成CPU,每一电路模块可执行特定功能(例如,指令的计算、接收等)。此系统可基于所识别的时序约束、所识别的效能约束或所识别的功率约束中的至少一者来配置此种邻接区域,此些所识别约束可由设定在邻接区域中的单元共用。应了解,此种单元不一定对应于相同的电路模块。在一些实施例中,此种共用的时序/效能/功率约束可由设计指定或通过使用电路模拟器(例如,具有集成电路重点的模拟程序(Simulation Program with Integrated Circuit Emphasis;SPICE)对集成电路100的电路设计执行一或多个模拟来识别。
再次参考图1A,如本文实施例中所揭示,此系统可配置:由单元行110-114组成(或由其扩展)的邻接区域103,每一单元行完全地延伸跨越空间102;由单元行144-152组成(或由其扩展)的邻接区域104,每一单元行部分地延伸跨越空间102;由单元行170-184组成(或由其扩展)的邻接区域105,每一单元行部分地延伸跨越空间102;及由单元行140-142组成(或由其扩展)的邻接区域106,每一单元行完全地延伸跨越空间102。每一邻接区域103-106由具有相同高度的一或多个单元行组成,其有时称为均匀高区域或均匀矮区域。举例而言,邻接区域103及105可各自称为均匀矮区域,且邻接区域104及106可各自称为均匀高区域。均匀高区域可用以群集、聚集(aggregate)或以其他方式整合以效能为导向(例如,经受高效能)、不以面积为取向(例如,较少经受大面积)、不以功率为导向(例如,较少经受高功耗)及/或时间关键(timing-critical)(例如,经受较低延时)的单元;且均匀矮区域可用以群集、聚集或以其他方式整合不以效能为导向(例如,较少经受低效能)、以面积为导向(例如,经受小面积)、以功率为导向(例如,经受低功耗)及/或非时间关键(例如,较少经受高延时)的单元。
除了均匀矮区域103及105以及均匀高区域104及106之外,所揭示的系统可配置各自由具有混合高度或单一高度的单元行组成的一或多个区域。此种区域可设定在由部分延伸的单元行组成的两个均匀矮/高区域之间。举例而言,在图1A中,系统可配置区域107,区域107由具有高度A的单元行158、162及166及具有高度B的单元行160、164及168组成。区域107可设定在均匀高区域104与均匀矮区域105之间。此种区域107可用以群集、聚集或以其他方式整合以平衡为导向的单元,例如,在速度/效能(不过高或过低)与面积/功率效能(其中面积不会过大或过小,且功耗不会过高或过低)之间保持平衡。
图2A说明根据本揭示案的一实施例的产生包括一或多个均匀高区域及/或一或多个均匀矮区域的集成电路布局的实例方法200的流程图。在一些实施例中,方法200可统称为EDA。方法200的操作由图5所说明的各别组件执行。为了论述的目的,将结合图5描述方法200的以下实施例。方法200的所说明实施例仅为实例。因此,应理解,可在保持在本揭示案的一实施例的范围内的同时省略、重新排序及/或添加多种操作中的任一者。
根据一些实施例,方法200以“输入网表202”及“设计约束204”的提供操作开始。输入网表202可为经由合成过程提供的功能上等效的逻辑门级电路描述。合成过程通过使一或多个行为及/或功能与一组单元库中的(标准)单元匹配来形成功能上等效的逻辑门级电路描述。基于施加至集成电路(例如,集成电路100)的总体设计的输入的各种信号或刺激来指定(specify)行为及/或功能,且可用诸如硬件描述语言(hardware descriptionlanguage;HDL)的适当语言来编写行为及/或功能。输入网表202可经由I/O接口528(图5)上载至处理单元510,诸如由使用者在执行EDA的同时建立文件。或者,可将输入网表202上载及/或储存在记忆体522或大容量储存装置524上,或可经由网络接口540自远端使用者上载输入网表202(图5)。在此等情况下,CPU 520将在执行EDA期间存取输入网表202或与之交互。
使用者亦提供设计约束204,以便约束输入网表202的实体布局的总体设计。在一些实施例中,设计约束204可例如经由I/O接口528输入、经由网络接口540下载等。设计约束204可指定时序、过程参数及其他合适的约束,一旦输入网表202实体地形成为集成电路,则必须遵守此些约束。
根据一些实施例,方法200进行至操作206以“识别电路模块”。基于输入网表202及/或设计约束204,所揭示的系统可辨识、识别或以其他方式判定由使用者指定的一或多个电路模块,此一或多个电路模块例如由具有高高度的单元(下文称为“高单元”)、具有矮高度的单元(下文称为“矮单元”)或具有混合高度的单元构成。
举例而言,系统可回应于输入网表202指定第一电路模块为以效能为导向的电路模块(其应由高单元(例如,仅具有高度B的单元)组成)来识别第一电路模块。在另一实例中,系统可回应于输入网表202指定第二电路模块为以功率为导向的电路模块(其应由矮单元(例如,仅具有高度A的单元)组成)来识别第二电路模块。替代地或另外,系统可通过判定对应于电路模块的时序约束、效能约束或功率约束中的至少一者来识别应由高单元或矮单元组成的电路模块。系统可存取设计约束204、与设计约束204通信或以其他方式与设计约束204交互来判定此类时序/效能/功率约束。在一些实施例中,系统可基于输入网表202来识别不应仅由高单元或矮单元组成的一或多个电路模块。继续以上实例,系统可回应于输入网表202指定第三电路模块为以平衡为导向的电路模块(其不应仅由高单元或矮单元组成)来识别第三电路模块。
根据一些实施例,方法200进行至操作208以“配置均匀高/矮区域”。回应于识别将由高单元或矮单元组成的一或多个电路模块(例如,在操作206中),系统可配置对应的均匀高或均匀矮区域。在一些实施例中,均匀高区域可由一或多个部分地延伸跨越空间102的具有高高度(例如,高度B)的单元行(例如,144-152等)或一或多个完全延伸跨越空间102的具有高高度(例如,高度B)的单元行(例如140-142等)组成;均匀矮区域可由一或多个部分地延伸跨越空间102的具有矮高度(例如,高度A)的单元行(例如170-184等)或一或多个完全延伸跨越空间102的具有矮高度的单元行(例如110-114等)组成。在一些其他实施例中,系统可配置均匀高区域,其由具有高高度的部分地延伸跨越空间102的第一组单元行及具有高高度的完全延伸跨越空间102的第二组单元行组成。继续第一电路模块被识别为由高单元组成的以上实例,系统可在空间102中配置均匀高区域(例如,104、106等)以置放高单元。在第二电路模块被识别为由矮单元组成的实例中,系统可在空间102中配置均匀矮区域(例如,103、105等)以置放矮单元。对于已被识别为由高单元及矮单元的混合构成的电路模块(例如,上述第三电路模块),系统可在空间102中配置一区域(例如,107)以置放高单元及矮单元。
根据一些实施例,方法200进行至操作210以“置放及布线”。回应于为各别电路模块配置均匀高及/或矮区域,系统可置放各单元且为其布线以产生总体集成电路的实际实体设计。操作210用以通过自单元库获取所选择的单元且将其置放至各别单元行中来形成实体设计。继续相同实例,系统可基于识别出的第一电路模块自单元库中提取(extract)、撷取(retrieve)或获得一或多个高单元以待置放在均匀高区域104及106的单元行中;且基于识别出的第二电路模块,自相同或不同单元库获得一或多个矮单元以待置放在均匀矮区域103及105的单元行中。每一单元在单元行内的置放及每一单元行相对于其他单元行的置放可由成本函数来指导,以便最小化所得集成电路的布线长度及面积要求。此置放可经由操作210自动完成,或者亦可部分地经由手动过程执行,借此使用者可手动地将一或多个单元插入至单元行中。
根据一些实施例,方法200接着进行至操作212以判定用于总体集成电路的实际实体设计是否“匹配设计要求”。回应于产生总体集成电路的实际实体设计(在操作210中),系统可检查、监视或以其他方式判定是否匹配设计要求。可通过使用电路模拟器(例如具有集成电路重点的模拟程序(SPICE))执行一或多个模拟来检查各种要求,诸如用于总体集成电路的实际实体设计的时序品质、用于总体集成电路的实际实体设计的功率品质、是否存在局部拥塞问题等。
若满足所有设计要求,则方法200继续至“制造工具”的操作214。另一方面,若并非满足所有设计要求,则方法200继续进行至“查找根本原因”的操作216。
系统可执行操作216以在判定操作212中查找导致未能满足设计要求的原因。各种原因可能导致未能满足要求。基于此些原因,方法200可进行至各别操作以重新执行此操作。举例而言,当原因是由于单元行的不正确配置时,方法200可进行至操作(例如,操作204)以重新评估其中指定的约束。当原因是由于不能合成功能上等效的逻辑门级电路描述时,方法200可进行操作(例如,操作204)以重新评估其中指定的约束。当原因是由于不能产生实际的实体设计时,方法200可进行至操作(例如,操作210)以重新置放及/或重新布线。
此系统可执行制造工具214以产生例如光微影遮罩(photolithographic mask),其可用于在实体上制造实体设计。实体设计可经由LAN/WAN 516发送至制造工具214。
图2B说明根据本揭示案的一实施例的产生包括一或多个均匀高区域及/或一或多个均匀矮区域的集成电路布局的实例方法250的流程图。在一些实施例中,方法250可统称为EDA。方法250的操作由图5所示的各别组件执行。为了论述的目的,将结合图5描述方法250的以下实施例。方法250的所说明实施例仅为实例。因此,应理解,可在保持在本揭示案的一实施例的范围内的同时省略、重新排序及/或添加多种操作中的任一者。
根据一些实施例,方法250以“行为/功能设计252”及“设计约束254”的提供操作开始。行为/功能设计252基于施加至集成电路的总体设计的输入的各种信号或刺激来指定集成电路(例如,集成电路100)的期望行为或功能,且可用诸如硬件描述语言(HDL)的语言编写。行为/功能设计252可经由I/O接口528(图5)上载至处理单元510中,诸如由使用者在执行EDA时建立文件。或者,可将行为/功能设计252上载及/或储存在记忆体522或大容量储存装置524上,或可经由网络接口540自远端使用者上载行为/功能设计252(图5)。在此等情况下,CPU 520将在执行EDA期间存取行为/功能设计252。设计约束254的操作基本上类似于操作204,且因此本文中将不再重复论述。
根据一些实施例,方法250进行至操作256以“识别电路模块”。基于行为/功能设计252及/或设计约束254,所揭示的系统可辨识、识别或以其他方式判定由使用者指定或预定义的一或多个电路模块,例如由高单元或矮单元组成。举例而言,系统可回应于行为/功能设计252指定第一电路模块是以效能为导向的电路模块(其应由高单元(例如,具有高度B的单元)组成)而识别第一电路模块。在另一实例中,系统可回应于行为/功能设计252指定第二电路模块是以功率为导向的电路模块(其应由矮单元(例如,具有高度A的单元)组成)而识别第二电路模块。替代地或另外,系统可通过判定与电路模块相对应的共同时序约束、共同效能约束或共同功率约束中的至少一者来识别应由高单元或矮单元组成的电路模块。系统可存取设计约束254、与设计约束254通信或以其他方式与设计约束254交互以判定此类时序/效能/功率约束。在一些实施例中,系统可基于行为/功能设计252来识别不应仅由一种类型的高单元或矮单元组成的一或多个电路模块。继续以上实例,系统可回应于行为/功能设计252指定第三电路模块是以平衡为导向的电路模块(其不应仅由高单元或矮单元组成)而识别第三电路模块。
根据一些实施例,方法250接着进行至“合成”的操作258。回应于识别电路模块(操作256),系统可使行为/功能设计252所需的行为及/或功能与来自一或多个单元库的(标准)单元相匹配,同时满足由设计约束254及由所识别的电路模块指定的单元高度(操作256)指定的约束,以建立功能上等效的逻辑门级电路描述,诸如网表(操作260)。在操作258中,系统可通过为已识别为由高单元或矮单元组成的每一电路模块配置均匀高区域或均匀矮区域来形成网表。在配置均匀高/矮区域的同时,系统可为已识别为由高单元与矮单元的混合构成的每一电路模块配置一或多个区域。操作258有时可称为“具实体意识的(physically aware)”合成。
在一些实施例中,在产生网表的同时,系统可视情况产生参考平面规划(操作262)。参考平面规划可包括数个区域,每一区域配置为均匀高区域、均匀矮区域或具有混合高度的区域。每一区域可包括置放在其中的对应单元。此种参考平面规划可用作后续操作(例如,操作264)的初始值或猜测,此可有利地减少计算(例如,收敛)时间。
方法250的其余操作与关于图2A论述的操作基本上类似。举例而言,操作264、266、268及270分别与操作210、212、214及216基本上类似。因此,本文中将不再重复对此种操作的论述。
图3A说明根据本揭示案的一实施例的产生包括一或多个均匀高区域及/或一或多个均匀矮区域的集成电路布局的实例方法300的流程图。在一些实施例中,方法300可统称为EDA。方法300的操作由图5所示的各别组件执行。为了论述的目的,将结合图5描述方法300的以下实施例。方法300的所说明实施例仅为实例。因此,应理解,可在保持在本揭示案的一实施例的范围内的同时省略、重新排序及/或添加多种操作中的任一者。
根据一些实施例,方法300以“输入网表302”及“设计约束304”的提供操作开始。输入网表302可为经由合成过程提供的功能上等效的逻辑门级电路描述。合成过程通过使一或多个行为及/或功能与一组单元库中的(标准)单元匹配来形成功能上等效的逻辑门级电路描述。基于施加至集成电路(例如,集成电路100)的总体设计的输入的各种信号或刺激来指定行为及/或功能,且可用诸如硬件描述语言(HDL)的适当语言来编写行为及/或功能。输入网表302可经由I/O接口528(图5)上载至处理单元510,例如由使用者在执行EDA的同时建立文件。或者,可将输入网表302上载及/或储存在记忆体522或大容量储存装置524上,或可经由网络接口540自远端使用者上载输入网表302(图5)。在此等情况下,CPU 520将在执行EDA期间存取输入网表302或与之交互。
使用者亦提供设计约束304,以约束输入网表302的实体布局的总体设计。在一些实施例中,设计约束304可例如经由I/O接口528输入、经由网络接口540下载等。设计约束304可指定时序、过程参数及其他合适的约束,一旦输入网表302实体地形成为集成电路,则必须遵守此些约束。
根据一些实施例,方法300进行至“交替混合高度”的操作306。在操作306中,系统可获得、撷取由数个具有高高度(例如,高度B)的第一单元行及数个具有矮高度(例如,高度A)的第二单元行组成的空间或以其他方式与之交互。第一单元行及第二单元行中的每一者完全延伸跨越此空间。有时可将此种空间称为具有交替混合高度的平面规划。
根据一些实施例,方法300接着进行至操作308以“置放及布线”。回应于获得具有交替混合高度的平面规划,系统可执行操作308以产生总体集成电路的实际实体设计。操作308用以通过自单元库获取所选择的单元且将其以交替的高度置放至平面规划的各别单元行中来形成实体设计。举例而言,系统可基于网表(操作302)自单元库提取、撷取或获得一或多个高单元,以待置放在具有高高度的单元行中;且根据网表自相同或不同单元库中获取一或多个矮单元,以待置放在具有矮高度的单元行中。每一单元在单元行内的置放及每一单元行相对于其他单元行的置放可由成本函数来指导,以便最小化所得集成电路的布线长度及面积要求。此置放可经由操作308自动完成,或者亦可部分地经由手动过程执行,借此使用者可手动地将一或多个单元插入至单元行中。
回应于在交替高度的平面规划上产生总体集成电路的实际实体设计(在操作308中),系统可检查、监视或以其他方式判定设计要求是否匹配。可通过使用电路模拟器(例如具有集成电路重点的模拟程序(SPICE))执行一或多个模拟来检查各种要求,诸如用于总体集成电路的实际实体设计的时序品质、用于总体集成电路的实际实体设计的功率品质、是否存在局部拥塞问题等。
根据一些实施例,方法300继续进行至操作310以“配置均匀高/矮区域”。此系统可自模拟来识别空间上的一或多个区域,此一或多个区域包括与预定效能要求的数个冲突。此冲突可能对应于对时序品质要求、电源品质要求等中的至少一者的违反。系统可辨识、识别或以其他方式判定空间上的一或多个区域,其数个冲突满足(例如,超过)预定临限值。在识别出此种区域后,系统可替换或以其他方式更新此空间(由交替混合高度扩展)以由具有不同高度的单元行扩展,但不需要单元行完全延伸跨越此空间。换言之,至少部分地构成此空间的新单元行可包括具有高高度(例如,高度B)的部分延伸跨越此空间的一或多个单元行、具有高高度的完全延伸跨越此空间的一或多个单元行、具有矮高度(例如,高度A)的部分延伸跨越此空间的一或多个单元行,及具有矮高度的完全延伸跨越此空间的一或多个单元行。基于所识别的违反数目过多的区域,系统可在所识别的区域的相同位置周围配置一或多个均匀高或矮区域。举例而言,在模拟之后,回应于识别出此空间上包括一定数目个时序违反的区域,系统可配置均匀高区域(例如,图1A的104、106),其中仅高单元可设定在其中。以此方式,由于置放在均匀高区域中的单元通常具有更好的效能,因此可解决时序冲突。
在一些实施例中,均匀高/矮区域(或待置放在此区域中的单元)共用共同时序约束、共同效能约束或共同功率约束中的至少一者。举例而言,均匀高区域可用以群集、聚集或以其他方式整合以效能为导向(例如,经受高效能)、不以面积为取向(例如,较少经受大面积)、不以功率为导向(例如,较少经受高功耗)及/或时间关键(例如,经受较低延时)的单元;且均匀矮区域可用以群集、聚集或以其他方式整合不以效能为导向(例如,较少经受低效能)、以面积为导向(例如,经受小面积)、以功率为导向(例如,经受低功耗)及/或非时间关键(例如,较少经受高延时)的单元。
根据一些实施例,方法300进行至操作312以“置放及布线”。回应于配置均匀高及/或矮区域,系统可执行操作312以再次产生总体集成电路的实际实体设计。操作312用以通过自单元库获取所选择的单元且将其置放在均匀矮/高区域的各别单元行中来形成实体设计。每一单元在单元行内的置放及每一单元行相对于其他单元行的置放可由成本函数来指导,以便最小化所得集成电路的布线长度及面积要求。此置放可经由操作312自动完成,或者亦可部分地经由手动过程执行,借此使用者可手动地将一或多个单元插入至单元行中。
根据一些实施例,方法300接着进行至操作314以判定用于总体集成电路的实际实体设计是否“匹配设计要求”。回应于产生总体集成电路的实际实体设计(在操作312中),系统可再次检查、监视或以其他方式判定是否匹配设计要求。可通过使用电路模拟器(例如具有集成电路重点的模拟程序(SPICE))执行一或多个模拟来检查各种要求,诸如用于总体集成电路的实际实体设计的时序品质、用于总体集成电路的实际实体设计的功率品质、是否存在局部拥塞问题等。
若满足所有设计要求,则方法300继续至“制造工具”的操作316。另一方面,若并不满足所有设计要求,则方法300继续进行至操作318以“查找根本原因”。
系统可执行操作318以在判定操作314中查找导致未能满足设计要求的原因。各种原因可能导致未能满足要求。基于此些原因,方法300可进行各别操作以重新执行此操作。举例而言,当原因是由于单元行的不正确配置时,方法300可进行至操作(例如,操作304)以重新评估其中指定的约束。当原因是由于不能合成功能上等效的逻辑门级电路描述时,方法300可进行操作(例如,操作304)以重新评估其中指定的约束。当原因是由于不能产生实际的实体设计时,方法300可进行至操作(例如,操作312)以重新置放及/或重新布线。
系统可执行制造工具316以产生例如光微影遮罩,其可用于在实体上制造实体设计。实体设计可经由LAN/WAN 516发送至制造工具316。
图3B说明根据本揭示案的一实施例的产生包括一或多个均匀高区域及/或一或多个均匀矮区域的集成电路布局的实例方法350的流程图。在一些实施例中,方法350可统称为EDA。方法350的操作由图5所示的各别组件执行。为了论述的目的,将结合图5描述方法350的以下实施例。方法350的所说明实施例仅为实例。因此,应理解,可在保持在本揭示案的一实施例的范围内的同时省略、重新排序及/或添加多种操作中的任一者。
根据一些实施例,方法350以“行为/功能设计352”及“设计约束354”的提供操作开始。行为/功能设计352基于施加至集成电路的总体设计的输入的各种信号或刺激来指定集成电路(例如,集成电路100)的期望行为或功能,且可用诸如硬件描述语言(HDL)的适当语言编写。行为/功能设计352可经由I/O接口528(图5)上载至处理单元510中,诸如由使用者在执行EDA时建立文件。或者,可将行为/功能设计352上传及/或储存在记忆体522或大容量储存装置524上,或者可经由网络接口540自远端使用者上载行为/功能设计352(图5)。在此等情况下,CPU 520将在执行EDA期间存取行为/功能设计352。设计约束354的操作基本上类似于图3A中的操作304,且因此本文中将不再重复论述。
根据一些实施例,方法350进行至“交替混合高度”的操作356。在操作356中,系统可获得、撷取由数个具有高高度(例如,高度B)的第一单元行及数个具有矮高度(例如,高度A)的第二单元行组成的空间或以其他方式与之交互。第一单元行及第二单元行中的每一者完全延伸跨越此空间。有时可将此种空间称为具有交替混合高度的平面规划。
根据一些实施例,方法350接着进行至“合成”的操作358。回应于获得具有交替混合高度的平面规划(操作356),系统可使行为/功能设计352所需的行为及/或功能与来自一或多个单元库的(标准)单元相匹配,同时满足由设计约束354指定的约束以建立功能上等效的逻辑门级电路描述,诸如初始网表。
根据一些实施例,方法350进行至操作360以“置放及布线”。回应于产生初始网表,系统可执行操作360以产生总体集成电路的实际实体设计。操作360用以通过自单元库获取所选择的单元且将其置放在具有交替混合高度的平面规划的各别单元行中来形成实体设计。每一单元在单元行内的置放及每一单元行相对于其他单元行的置放可由成本函数来指导,以便最小化所得集成电路的布线长度及面积要求。此置放可经由操作360自动完成,或者亦可部分地经由手动过程执行,借此使用者可手动地将一或多个单元插入至单元行中。
回应于在交替高度的平面规划上产生总体集成电路的实际实体设计(在操作360中),系统可检查、监视或以其他方式判定设计要求是否匹配。可通过使用电路模拟器(例如具有集成电路重点的模拟程序(SPICE))执行一或多个模拟来检查各种要求,诸如用于总体集成电路的实际实体设计的时序品质、用于总体集成电路的实际实体设计的功率品质、是否存在局部拥塞问题等。
根据一些实施例,方法350继续至操作362以“配置均匀高/矮区域”。此系统可自模拟来识别空间上的一或多个区域,此一或多个区域包括与预定效能要求的数个冲突。此冲突可能对应于对时序品质要求、电源品质要求等中的至少一者的违反。系统可辨识、识别或以其他方式判定空间上的一或多个区域,其数个冲突满足(例如,超过)预定临限值。在识别出此种区域后,系统可替换或以其他方式更新此空间(由交替混合高度扩展)以由具有不同高度的单元行扩展,但不需要单元行完全延伸跨越此空间。换言之,至少部分地构成此空间的新单元行可包括具有高高度(例如,高度B)的部分延伸跨越此空间的一或多个单元行、具有高高度的完全延伸跨越此空间的一或多个单元行、具有矮高度(例如,高度A)的部分延伸跨越此空间的一或多个单元行,及具有矮高度的完全延伸跨越此空间的一或多个单元行。基于所识别的违反数目过多的区域,系统可在所识别的区域的相同位置周围配置一或多个均匀高或矮区域。举例而言,在模拟之后,回应于识别出此空间上包括一定数目个时序违反的区域,系统可配置均匀高区域(例如,图1A的104、106),其中仅高单元可设定在其中。以此方式,由于置放在均匀高区域中的单元通常具有更好的效能,因此可解决时序冲突。
在一些实施例中,均匀高/矮区域(或待置放在此区域中的单元)共用共同时序约束、共同效能约束或共同功率约束中的至少一者。举例而言,均匀高区域可用以群集、聚集或以其他方式整合以效能为导向(例如,经受高效能)、不以面积为取向(例如,较少经受大面积)、不以功率为导向(例如,较少经受高功耗)及/或时间关键(例如,经受较低延时)的单元;且均匀矮区域可用以群集、聚集或以其他方式整合不以效能为导向(例如,较少经受低效能)、以面积为导向(例如,经受小面积)、以功率为导向(例如,经受低功耗)及/或非时间关键(例如,较少经受高延时)的单元。
接着,根据一些实施例,方法350进行至“合成”的操作364。回应于配置均匀矮/高区域(操作362),系统可再次使行为/功能设计352所需的行为及/或功能与来自一或多个单元库的(标准)单元匹配,同时满足由设计约束354指定的约束以建立功能上等效的逻辑门级电路描述,诸如第二网表(操作366)。在操作364中,系统可通过为违反数目过多的每一所识别区域配置均匀高或矮区域来形成第二网表。在配置均匀高/矮区域的同时,系统可配置由高单元行与矮单元行的混合构成的一或多个区域。操作364有时可称为“具实体意识的”合成。
在一些实施例中,在产生网表的同时,系统可视情况产生参考平面规划(操作368)。参考平面规划可包括数个区域,每一区域配置为均匀高区域、均匀矮区域或具有混合高度的区域。每一区域可包括置放在其中的对应单元。此种参考平面规划可用作后续操作(例如,操作370)的初始值或猜测,此可有利地减少计算(例如,收敛)时间。
方法350的其余操作与关于图3A论述的操作基本上类似。举例而言,操作370、372、374及376分别与操作312、314、316及318基本上类似。因此,本文中将不再重复对此种操作的论述。
在一些实施例中,在合成期间(例如,操作258、358、364等),如本文中所揭示的系统可允许或以其他方式控制待置放在给定区域中的第一类型单元的密度最高为预定义上限。在判定第一类型单元的密度满足预定义上限时,系统可接着允许或以其他方式控制待置放在给定区域中的第二类型单元的密度最低为预定义下限。此区域可对应于集成电路的某个电路模块。此区域可对应于给定空间或平面规划上经配置用于集成电路布局的某一实体区域。举例而言,系统可将给定空间划分为多个均匀大小的窗口,每一窗口对应于此区域。在合成期间,系统可允许在每一窗口内置放高达一定密度的单元。以此方式,在合成例如用于集成电路布局的网表时,系统可在控制集成电路布局的功率效能区域(powerperformance area;PPA)方面达到平衡。举例而言,在合成期间未设定(set)上限的情况下,一或多个区域中的单元密度可能达到100%,此可能导致后续操作(例如,将网表作为实体设计进行置放及布线时)中的额外步骤。
系统可将高单元的密度定义为(高单元面积+B/(A+B)×混合高度单元面积)/高单元行面积;且矮单元的密度为(矮单元面积+A/(A+B)×混合高度单元面积)/矮单元行面积,其可在图4中更好地说明。如图4所示,网表(合成期间)400的一部分可为上述窗口中的一者,其包括彼此相邻安置的具有高度B的单元行402(即,高单元行)及具有高度A的单元行404(即,矮单元行)。此系统可沿单元行402置放高单元406,沿单元行404置放矮单元408,且沿两个单元行402及404置放混合高度单元410。在一些实施例中,此种混合高度单元可称为具有混合高度的单元。在图4的当前实例中,单元具有一个高度A与一个高度B的混合(即1×A+1×B)。可理解,混合高度单元可具有高度A与B的任何组合(例如1×A+2×B、2×A+1×B、2×A+3×B等),同时保持处于本揭示案的一实施例的范围内。再次参考使用图4的密度的定义,“高单元面积”可称为由一或多个高单元(例如406)所占据的面积;“混合高度单元面积”可称为由一或多个混合高度单元(例如,410)所占据的面积;“高单元行面积”可称为由一或多个高单元行扩展的总面积;“矮单元面积”可称为由一或多个矮单元(例如,408)所占据的面积;且“矮单元行面积”可称为由一或多个矮单元行扩展的总面积。
现在参考图5,根据本揭示案的一实施例,提供信息处置系统(informationhandling system;IHS)500的方块图。IHS 500可为用于实施本文中论述的任何或所有过程以设计集成电路的计算机平台。HIS 500可包含处理单元510,诸如桌上型计算机、工作站、膝上型计算机或为特定应用定制的专用单元。HIS 500可配备有显示器514及一或多个输入/输出(I/O)组件512,诸如鼠标、键盘或印表机。处理单元510可包括连接至总线530的中央处理单元(CPU)520、记忆体522、大容量储存装置524、视频配接器526及I/O接口528。
总线530可为包括记忆体总线或记忆体控制器、周边总线或视频总线的若干总线架构中的任一者或多者。CPU 520可包含任何类型的电子数据处理器,且记忆体522可包含任何类型的系统记忆体,诸如静态随机存取记忆体(static random access memory;SRAM)、动态随机存取记忆体(dynamic random access memory;DRAM)或只读记忆体(read-only memory;ROM)。
大容量储存装置524可包含用以储存数据、程序及其他信息且使数据、程序及其他信息可经由总线530存取的任何类型的储存装置。大容量储存装置524可包含例如硬盘驱动器、磁盘驱动器、光盘驱动器等中的一或多者。
视频配接器526及I/O接口528提供用于将外部输入及输出装置耦接至处理单元510的接口。如图5所示,输入及输出装置的实例包括耦接至视频配接器526的显示器514及耦接至I/O接口528的I/O组件512,诸如鼠标、键盘、印表机等。其他装置可耦接至处理单元510,且可利用额外或更少的接口卡。举例而言,串行接口卡(未展示)可用于为印表机提供串行接口。处理单元510亦可包括网络接口540,此网络接口可为至区域网络(local areanetwork;LAN)或广域网络(wide area network;WAN)516的有线连结及/或无线连结。
应注意,HIS 500可包括其他组件/装置。举例而言,HIS 500可包括电源供应器、电缆、母板、可移除式储存媒体、壳体等。此等其他组件/装置(尽管未展示)被视为HIS 500的一部分。
在本揭示案的一实施例中,电子设计自动化(Electronic Design Automation;EDA)为由CPU 520执行以分析使用者文件以获得集成电路(例如,上述集成电路100)的布局的程序码。此外,在EDA的执行期间,如此项技术中已知,EDA可分析布局的功能组件。CPU520可经由总线530自记忆体522、大容量储存装置524等,或经由网络接口540在远端存取程序码。
在本揭示案的一实施例的一个态样中,提供一种集成电路布局。该集成电路布局,其特征在于,包括一或多个第一单元行,该一或多个第一单元行沿一第一方向部分地延伸跨越经配置用于一集成电路布局的一空间。该一或多个第一单元行中的每一者沿垂直于该第一方向的一第二方向具有一第一高度。该集成电路布局包括一或多个第三单元行,该一或多个第三单元行沿该第一方向部分地延伸跨越该空间。该一或多个第三单元行中的每一者沿该第二方向具有一第二高度,该第二高度不同于该第一高度。
在一些实施例中,该集成电路布局进一步包括一或多个第三单元行及一或多个第四单元行。该一或多个第三单元行沿该第一方向完全延伸跨越该空间,该一或多个第三单元行中的每一者沿该第二方向具有该第一高度。该一或多个第四单元行沿该第一方向完全延伸跨越该空间,该一或多个第四单元行中的每一者沿该第二方向具有该第二高度。
在一些实施例中,该集成电路布局进一步包括一第一组第一标准单元、一第二组该些第一标准单元、一第一组第二标准单元及一第二组该些第二标准单元。该第一组第一标准单元设定在由该一或多个第一单元行扩展的该空间的一第一区域中,该些第一标准单元中的每一者具有该第一高度。该第二组该些第一标准单元设定在由该一或多个第三单元行扩展的该空间的一第二区域中。该第一组第二标准单元设定在由该一或多个第二单元行扩展的该空间的一第三区域中,该些第二标准单元中的每一者具有该第二高度。该第二组该些第二标准单元设定在由该一或多个第四单元行扩展的该空间的一第四区域中。
在一些实施例中,该第一组第一标准单元对应于该集成电路的一第一电路模块,该第二组第一标准单元对应于该集成电路的一第二电路模块,该第一组第二标准单元对应于该集成电路的一第三电路模块,且该第二组第二标准单元对应于该集成电路的一第四电路模块。
在一些实施例中,该第一组与该第二组该些第一标准单元共用一第一时序约束、一第一效能约束或一第一功率约束中的至少一者,且该第一组与该第二组该些第二标准单元中的至少一者共用一第二时序约束、一第二效能约束或一第二功率约束中的至少一者。
在一些实施例中,该空间被划分为多个均匀大小的窗口,该些窗口中的至少一者包括该第一区域的一部分、该第二区域的一部分、该第三区域的一部分及该第四区域的一部分中的至少两者的一组合,且其中该些第一标准单元或该些第二标准单元在该至少一个窗口中的一密度满足一预定临限值。
在一些实施例中,该集成电路布局进一步包括一或多个第五单元行及一或多个第六单元行。该一或多个第五单元行沿该第一方向部分地延伸跨越该空间,该一或多个第五单元行中的每一者沿该第二方向具有该第一高度。该一或多个第六单元行沿该第一方向部分地延伸跨越该空间,该一或多个第六单元行中的每一者沿该第二方向具有该第二高度。该一或多个第五单元行及该一或多个第六单元行沿该第一方向置放在该一或多个第一单元行与该一或多个第三单元行之间。
在一些实施例中,该集成电路布局进一步包括一第三组第一标准单元。该第三组第一标准单元设定在由该一或多个第五单元行及该一或多个第六单元行扩展的该空间的一第五区域中,该第三组第一标准单元中的每一者具有该第一高度,该第三组第二标准单元中的每一者具有该第二高度。
在本揭示案的一实施例的另一态样中,揭示一种产生一集成电路布局的方法。该方法,其特征在于,包括接收一集成电路的一设计。该方法包括自该集成电路的该设计,基于一使用者规范或一第一共同特性来识别该集成电路的一第一电路模块。该方法包括自该集成电路的该设计,基于该使用者规范或一第二共同特性来识别该集成电路的一第二电路模块。该方法包括基于所识别的该第一电路模块及所识别的该第二电路模块,相对于经配置用于该集成电路的该设计的一空间配置一第一邻接区域及一第二邻接区域。该第一区域由一或多个第一单元行组成,该一或多个第一单元行沿一第一方向完全或部分地延伸跨越该空间,沿垂直于该第一方向的一第二方向具有一第一高度。该第二区域由一或多个第二单元行组成,该一或多个第二单元行沿该第一方向完全或部分地延伸跨越该空间,沿该第二方向具有一第二不同高度。
在一些实施例中,该方法进一步包括以下步骤。将具有该第一高度的一组第一标准单元置放至该第一邻接区域中。将具有该第二高度的一组第二标准单元置放至该第二邻接区域中。
在一些实施例中,该方法进一步包括以下步骤。判定对应于该集成电路的该第一电路模块的一第一时序约束、一第一效能约束或一第一功率约束中的至少一者,以识别该第一电路模块。
在一些实施例中,该方法进一步包括以下步骤。判定对应于该集成电路的该第二电路模块的一第二时序约束、一第二效能约束或一第二功率约束中的至少一者,以识别该第二电路模块。
在一些实施例中,当该一或多个第一单元行中的每一者沿该第一方向部分地延伸跨越该空间且该一或多个第二单元行中的每一者沿该第一方向部分地延伸跨越该空间时,该方法进一步包含以下步骤。基于自该设计识别出该集成电路的一第三电路模块,在该空间上配置一第三邻接区域,该第三区域由具有该第一高度的一或多个第三单元行及具有该第二不同高度的一或多个第四单元行扩展。
在一些实施例中,该第三邻接区域沿该第一方向设定在该第一区域与该第二区域之间。
在一些实施例中,该方法进一步包括以下步骤。将具有该第一高度的一组第一标准单元置放至该第三邻接区域的一第一部分中。将具有该第二不同高度的一组第二标准单元置放至该第三邻接区域的一第二部分中。
在本揭示案的一实施例的又一态样中,一种计算机程序产品,其特征在于,包括储存在其上的一计算机可读程序媒体程序码。该程序码在由一处理器执行时使该处理器实施一方法。该方法包括接收一集成电路的一设计。该方法包括识别经配置用于该集成电路的该设计的一空间。该空间由多个第一单元行及多个第二单元行组成,该些第一单元行沿一第一方向完全延伸跨越该空间,沿垂直于该第一方向的一第二方向具有一第一高度,且该些第二单元行沿该第一方向完全延伸跨越该空间,沿该第二方向具有不同于该第一高度的一第二高度。该方法包括基于该设计,将该集成电路的多个电路模块置放在该空间上。该方法包括基于该些电路模块的该些置放,估计该集成电路的效能。该方法包括基于该估计的效能,将一第一邻接区域或一第二邻接区域中的至少一者配置在该空间上。该第一区域由一或多个第三单元行组成,该些第三单元行沿该第一方向完全或部分地延伸跨越该空间,具有该第一高度。该第二区域由一或多个第四单元行组成,该些第四单元行沿该第一方向完全或部分地延伸跨越该空间,具有该第二不同高度。
在一些实施例中,该方法进一步包含以下步骤。将具有该第一高度的一组第一标准单元置放至该第一邻接区域中。
在一些实施例中,该方法进一步包含以下步骤。将具有该第二不同高度的一组第二标准单元置放至该第二邻接区域中。
在一些实施例中,基于该估计的效能将一第一邻接区域或一第二邻接区域中的至少一者配置在该空间上进一步包含以下步骤。基于该估计的效能,识别该空间上对应于与满足一临限值的一预定效能要求的数个冲突的一区域。将该区域判定为该第一邻接区域或该第二邻接区域。
在一些实施例中,该第一邻接区域对应于一第一时序约束、一第一效能约束或一第一功率约束中的至少一者,且该第二邻接区域对应于一第二时序约束、一第二效能约束或一第二功率约束中的至少一者。
前述概述了若干实施例的特征,使得熟悉此项技术者可更好地理解本揭示案的一实施例的态样。熟悉此项技术者应理解,其可容易地将本揭示案的一实施例用实施例作设计或修改其他过程及结构的基础,以实现与本文中介绍的实施例相同的目的及/或达成相同的优点。熟悉此项技术者亦应认识到,此种等效构造不脱离本揭示案的一实施例的精神及范围,且在不脱离本揭示案的一实施例的精神及范围的情况下,其可在本文中进行各种改变、替换及变更。
Claims (1)
1.一种集成电路布局,其特征在于,包含:
一或多个第一单元行,其沿一第一方向部分地延伸跨越经配置用于一集成电路布局的一空间,该一或多个第一单元行中的每一者沿垂直于该第一方向的一第二方向具有一第一高度;及
一或多个第二单元行,其沿该第一方向部分地延伸跨越该空间,该一或多个第二单元行中的每一者沿该第二方向具有一第二高度,该第二高度不同于该第一高度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/746,029 | 2020-01-17 | ||
US16/746,029 US11748542B2 (en) | 2020-01-17 | 2020-01-17 | Systems and methods for integrated circuit layout |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113139362A true CN113139362A (zh) | 2021-07-20 |
Family
ID=76809341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010916010.5A Pending CN113139362A (zh) | 2020-01-17 | 2020-09-03 | 集成电路布局 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11748542B2 (zh) |
CN (1) | CN113139362A (zh) |
TW (1) | TW202129529A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11748542B2 (en) * | 2020-01-17 | 2023-09-05 | Taiwan Semiconductor Manufacturing Company Limited | Systems and methods for integrated circuit layout |
KR20220048666A (ko) * | 2020-10-13 | 2022-04-20 | 삼성전자주식회사 | 비대칭적인 파워 라인을 포함하는 집적 회로 및 이를 설계하는 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102497218B1 (ko) * | 2016-04-29 | 2023-02-07 | 삼성전자 주식회사 | 복합 논리 셀을 포함하는 집적 회로 |
US10733352B2 (en) * | 2017-11-21 | 2020-08-04 | Taiwan Semiconductor Manufacturing Co., Ltd. | Integrated circuit and layout method for standard cell structures |
US11282829B2 (en) * | 2017-11-28 | 2022-03-22 | Taiwan Semiconductor Manufacturing Co., Ltd. | Integrated circuit with mixed row heights |
US10769342B2 (en) * | 2018-10-31 | 2020-09-08 | Taiwan Semiconductor Manufacturing Company Ltd. | Pin access hybrid cell height design |
US11748542B2 (en) * | 2020-01-17 | 2023-09-05 | Taiwan Semiconductor Manufacturing Company Limited | Systems and methods for integrated circuit layout |
-
2020
- 2020-01-17 US US16/746,029 patent/US11748542B2/en active Active
- 2020-09-03 CN CN202010916010.5A patent/CN113139362A/zh active Pending
- 2020-09-03 TW TW109130271A patent/TW202129529A/zh unknown
-
2023
- 2023-07-28 US US18/361,467 patent/US20240020451A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240020451A1 (en) | 2024-01-18 |
US11748542B2 (en) | 2023-09-05 |
US20210224456A1 (en) | 2021-07-22 |
TW202129529A (zh) | 2021-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11152348B2 (en) | Integrated circuit with mixed row heights | |
US7934188B2 (en) | Legalization of VLSI circuit placement with blockages using hierarchical row slicing | |
CN101187957B (zh) | 设计集成电路的公共时钟域中的多个锁存器的布图的系统和方法 | |
CN107918694B (zh) | 用于减少集成电路上的延迟的方法 | |
US10713410B2 (en) | Method for legalizing mixed-cell height standard cells of IC | |
US20240020451A1 (en) | Systems and methods for integrated circuit layout | |
US8234612B2 (en) | Cone-aware spare cell placement using hypergraph connectivity analysis | |
US6976235B2 (en) | Region-based voltage drop budgets for low-power design | |
CN112685988A (zh) | 基于布局环境的单元时序特征分析 | |
US10878157B2 (en) | Variant cell height integrated circuit design | |
US11574106B2 (en) | Method, system, and storage medium of resource planning for designing semiconductor device | |
US11087061B2 (en) | Method and system for improving propagation delay of conductive line | |
US8863062B2 (en) | Methods and apparatus for floorplanning and routing co-design | |
US9047434B2 (en) | Clustering for processing of circuit design data | |
US8966429B2 (en) | Bit slice elements utilizing through device routing | |
KR20170094744A (ko) | 집적 회로 및 상기 집적 회로의 제조를 위한 컴퓨터 구현 방법 | |
US20040003363A1 (en) | Integrated circuit design and manufacture utilizing layers having a predetermined layout | |
US8947120B2 (en) | Latch array utilizing through device connectivity | |
Donze et al. | Masterimage approach to VLSI design | |
US11836000B1 (en) | Automatic global clock tree synthesis | |
TWI738336B (zh) | 邊界單元的布局方法及裝置以及積體電路 | |
JPH09232436A (ja) | 論理合成方法及び装置並びに半導体集積回路設計方法 | |
KR20230114937A (ko) | 반도체 집적 회로의 레이아웃 설계 방법, 이를 이용한 반도체 집적 회로의 설계 방법, 및 이를 수행하는 설계 시스템 | |
Wardle et al. | A declarative design approach for combining macrocells by directed placement and constructive routing | |
JPH096826A (ja) | 半導体集積回路の設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210720 |