CN110162820A - 电子装置及制造半导体芯片的方法 - Google Patents
电子装置及制造半导体芯片的方法 Download PDFInfo
- Publication number
- CN110162820A CN110162820A CN201910053597.9A CN201910053597A CN110162820A CN 110162820 A CN110162820 A CN 110162820A CN 201910053597 A CN201910053597 A CN 201910053597A CN 110162820 A CN110162820 A CN 110162820A
- Authority
- CN
- China
- Prior art keywords
- layout
- port
- unit
- cost function
- pin
- 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.)
- Granted
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 37
- 238000013461 design Methods 0.000 claims abstract description 35
- 238000003780 insertion Methods 0.000 claims description 16
- 230000037431 insertion Effects 0.000 claims description 16
- 239000004744 fabric Substances 0.000 claims description 8
- 230000008859 change Effects 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 85
- 239000002184 metal Substances 0.000 description 44
- 229910052751 metal Inorganic materials 0.000 description 44
- 238000003860 storage Methods 0.000 description 22
- 238000004590 computer program Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000010977 unit operation Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000005252 bulbus oculi Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012790 confirmation 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
- 238000000151 deposition Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 229910052738 indium Inorganic materials 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- 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/31—Design entry, e.g. editors specifically adapted for circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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
-
- 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
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)
- Power Engineering (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Dicing (AREA)
- Die Bonding (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
公开了一种电子装置和一种制造半导体芯片的方法。该方法包括:根据第一布局通过处理器布置将用于设计半导体芯片的目标单元;基于对第一布局中的目标单元的成本函数值和参考值进行对比的结果,通过处理器将第一布局改变为第二布局;以及基于第一布局和第二布局中的一种来制造半导体芯片。
Description
本申请要求于2018年2月14日在韩国知识产权局提交的第10-2018-0018105号韩国专利申请的优先权,该韩国专利申请的公开内容通过引用其全部包含于此。
技术领域
在此描述的发明构思的示例实施例涉及一种用于制造半导体芯片的方法和/或一种被配置为执行该方法的电子装置。例如,至少一些示例实施例涉及一种电子装置和/或一种出于制造半导体芯片的目的而设计半导体芯片的方法。
背景技术
可以设计半导体芯片来制造该半导体芯片。当设计半导体芯片时,布局和布线(P&R)对于制造布置在小区域中的半导体芯片是重要的。可以使用诸如电子设计自动化(EDA)供应商工具的软件来执行R&R。
布局包括在软件方面的空间中布置用来设计半导体芯片的单元。用户可以考虑到包括在单元中的端口和包括在端口中的引脚来布置单元。布线包括连接在布局中布置的单元。在未有效地执行布局的情况下,会发生单元未被布线的问题。在布局不满足某设计规则的情况下,会在P&R步骤之后的操作中出现问题。
当在软件方面的空间中在单元的布局之后执行布线时,会对无效布置的单元执行布线。在布线中检测到的单元的无效布局会造成半导体设计过程的效率降低。
发明内容
发明构思的示例实施例提供了一种电子装置和/或一种用于在对将用来在制造半导体芯片时设计半导体芯片的单元进行布线之前改变单元布局的方法。
至少一些示例实施例涉及一种被配置为制造半导体芯片的电子装置。
在一些示例实施例中,电子装置可以包括处理器和输入装置,处理器被配置为执行以下步骤:布置与设计半导体芯片相关的第一目标单元;基于第一参考值和第一目标单元的布局的第一成本函数值来选择性地翻转第一目标单元,以将第一目标单元的布局反转来产生反转的布局;基于第一成本函数值和第一目标单元的反转的布局的第二成本函数值来选择性地使第一目标单元的反转的布局返回;基于第一成本函数值和第二成本函数值中的一个以及第二参考值来选择性地将空间***第一目标单元与邻近第一目标单元的单元之间;以及基于线端间隔违规的发生来选择性地用与设计半导体芯片相关的第二目标单元替换第一目标单元,输入装置被配置为接收第一参考值和第二参考值的输入。
至少一些示例实施例可以涉及一种制造半导体芯片的方法。
在一些示例实施例中,该方法可以包括:基于第一布局通过处理器布置目标单元,目标单元与设计半导体芯片相关;基于参考值和在第一布局中的目标单元的成本函数值来通过处理器选择性地将第一布局改为第二布局;基于线端间隔违规的发生来通过处理器选择性地将第二布局改为第三布局;以及基于第一布局、第二布局和第三布局中的一种布局来制造半导体芯片。
在一些其它示例实施例中,该方法可以包括:通过处理器布置与设计半导体芯片相关的目标单元;基于第一参考值和目标单元的第一成本函数值来通过处理器选择性地翻转目标单元,以将目标单元的布局反转;基于第二参考值和目标单元的第二成本函数值来通过处理器选择性地在目标单元与邻近目标单元的单元之间***空间;基于线端间隔违规的发生来通过处理器选择性地用另一单元替换目标单元;基于第三参考值和目标单元的第三成本函数值来通过处理器重复所述选择性地反转的步骤、所述选择性地***的步骤和所述选择性地替代的步骤中的至少一个步骤;以及基于目标单元制造半导体芯片。
附图说明
通过参照附图详细地描述发明构思的示例实施例,发明构思的以上和其它目的与特征将变得明显。
图1是示出根据发明构思的示例实施例的用于设计半导体芯片的电子装置的框图。
图2是示出根据发明构思的示例实施例用于通过使用半导体制造装置和图1的电子装置来设计半导体芯片的方法的概念图。
图3是示出通过使用图2的电子装置和半导体制造装置来制造半导体芯片的示例方法的流程图。
图4是示出根据图3的操作而布置的示例单元的概念图。
图5是示出根据图3的操作而布线的示例单元的概念图。
图6是示出通过使用图2的电子装置和半导体制造装置来制造半导体芯片的示例方法的流程图。
图7是示出根据图6的操作而布置的示例单元的概念图。
图8是示出具有根据图6的操作而改变的布局的示例单元的概念图。
图9是示出根据图6的操作而布线的示例单元的概念图。
图10是示出具有根据图6的操作而改变的布局的示例单元的概念图。
图11是示出根据图6的操作而布线的示例单元的概念图。
图12是示出根据图6的操作而布线的示例单元的概念图。
图13是示出根据图6的操作而布置的示例单元的概念图。
图14是示出根据图6的操作而布线的示例单元的概念图。
图15是示出用于执行图6的操作S2200的示例方法的流程图。
图16是示出根据图6的操作而布置的示例单元的概念图。
图17是示出根据图6的操作而布置的示例单元的概念图。
图18是示出用于执行图6的操作S2200的示例方法的流程图。
图19是示出用于执行图6的操作S2200的示例方法的流程图。
具体实施方式
下面,可以以达到使本领域普通技术人员容易地实现发明构思的程度来详细和清楚地描述发明构思的一些示例实施例。
术语“单元(cell)”被用在说明书中。下面,单元可以意为在用于设计半导体芯片的软件方面被配置为执行一个功能的单元块。例如,单元可以包括用于执行逻辑操作等的逻辑门块。术语“端口(port)”被用在说明书中。下面,端口可以意为单元的用于在单元之间输入和输出信号的组件。术语“引脚(pin)”被用在说明书中。下面,引脚可以意为端口的用于连接端口的组件。例如,一个端口可以包括一个或更多个引脚。
术语“布线”被用在说明书中。下面,布线可以意为出于根据用户的指令设计半导体芯片的目的而在软件方面使引脚彼此连接。然而,在说明书中,“连接”可以意为使用于设计半导体芯片的组件在软件方面彼此对应,而不意为物理接触。下面,在说明书中,对端口进行布线可以意为包括在端口中的引脚根据用户的指令在软件方面彼此连接。下面,在说明书中,对单元进行布线可以意为包括在单元中的端口根据用户的指令在软件方面彼此布线。
图1是示出根据发明构思的示例实施例的用于设计半导体芯片的电子装置的框图。
参照图1,电子装置100可以是个人计算机(PC)、工作站、膝上型计算机、移动装置等中的一种。参照图1,电子装置100可以包括处理器110、存储器120、存贮器130、通信装置140、用户接口150和总线160。电子装置100还可以包括未在图1中示出的其它组件(例如,各种传感器和电源)。可选地,电子装置100可以不包括图1中示出的组件中的一种或更多种。
处理器110可以控制电子装置100的全部操作。例如,处理器110可以执行计算机可读代码(例如,软件),当执行计算机可读代码时,处理器110转换为被配置为设计半导体芯片的专用计算机。例如,处理器110可以执行电子设计自动化(EDA)供应商工具。处理器110可以执行用于设计半导体芯片的操作。处理器110可以基于通过用户接口150接收的用户的命令来产生将用于制造半导体芯片的设计信息。将参照图2至图19来描述设计半导体芯片的示例实施例。
例如,处理器110可以是工作站处理器和应用处理器等中的一种。处理器110可以包括单个处理器核,或者可以包括多个处理器核。例如,处理器110可以包括诸如双核、四核或六核等的多核。
存储器120可以存储已被处理器110处理或将要被处理器110处理的数据。例如,存储器120可以存储用于设计半导体芯片的数据。存储器120可以存储与通过处理器110设计的半导体芯片关联的数据。例如,存储器120可以存储通过用户接口150接收的用户的命令。例如,存储器120可以存储将用于制造半导体芯片的数据(参照图2)。
例如,存储器120可以包括易失性存储器(诸如静态随机存取存储器(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)等)或非易失性存储器(诸如闪存、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)等)。可选地,存储器120可以包括异构存储器。
存贮器130可以存储数据而不考虑电源。例如,存贮器130可以存储用于设计半导体芯片的数据。存贮器130可以存储与通过处理器110设计的半导体芯片关联的数据。例如,存贮器130可以存储设计信息(参照图2)。例如,存贮器130可以是包括非易失性存储器(诸如,硬盘驱动器(HDD)、固态驱动器(SSD)、安全数字(SD)卡、通用串行总线(USB)存储器装置等)的存储介质。
通信装置140可以包括发送器和/或接收器。电子装置100可以通过通信装置140与另一电子装置通信以发送和/或接收数据。
用户接口150可以发送命令或者用户与电子装置100之间的数据的输入/输出。例如,用户接口150可以包括诸如输入装置和/或输出装置的物理装置。输入装置可以包括键盘、鼠标、触摸屏、扫描仪、操纵杆、声音识别装置、运动识别装置或眼球识别装置,输出装置可以包括监视器、显示装置、投影仪、扬声器或绘图仪。
例如,用户可以通过用户接口150输入用于设计半导体芯片的命令。电子装置100可以从用户的输入命令获得将用于设计半导体芯片的数据。例如,电子装置100可以通过用户接口150向用户提供关于半导体设计的信息。将参照图2来描述通过用户接口150在用户与电子装置100之间交换的命令与数据的示例。
总线160可以提供电子装置100的组件之间的通信路径。例如,处理器110、存储器120、存贮器130、通信装置140和用户接口150可以通过总线160彼此交换数据。例如,处理器110和存储器120可以通过总线160交换用于设计半导体芯片的数据。总线160可以被配置为支持在电子装置100中使用的各种类型的通信格式。
图2是示出根据发明构思的示例实施例的用于通过使用半导体制造装置和图1的电子装置来设计半导体芯片的方法的概念图。
参照图2,用户10可以出于设计半导体芯片的目的而通过用户接口150将命令输入到电子装置100。电子装置100可以执行用于设计半导体芯片的软件。可以根据用户10的命令在通过电子装置100执行的软件方面设计半导体芯片。电子装置100可以基于设计的半导体芯片产生将用于制造半导体芯片的设计信息INFO。
例如,电子装置100可以基于用户10的命令将包括在半导体芯片中的一个或更多个单元安置在软件上。可以根据用户10的命令通过使用特定的方法来改变单元的布局。将参照图3至图19来描述布置单元的示例和用于改变单元的布局的示例方法。可以根据用户10的命令来对单元进行布线。处理器110可以基于经布线的单元产生将用于制造半导体芯片的设计信息INFO。
存储器120可以存储用于设计半导体芯片的数据。例如,存储器120可以存储将包括在半导体芯片中的单元的库。存储器120可以存储与设计的半导体芯片相关的数据。例如,存储器120可以存储与通过用户接口150接收的用户10的命令相关的信息。例如,存储器120可以存储表示由处理器110产生的设计信息INFO的数据。例如,存储器120可以存储用于布置将包括在半导体芯片中的单元的参考值(参照图15、图18和图19)。
用户10可以通过用户接口150输入将用于设计半导体芯片的值。例如,用户接口150可以包括输入装置。用户10可以输入用于布置将包括在半导体芯片中的单元的参考值(参照图15、图18和图19)。
处理器110和存储器120可以通过用户接口150向用户10提供与半导体芯片有关的信息。例如,用户接口150可以包括诸如显示装置的输出装置。处理器110和存储器120可以通过诸如显示器的输出装置提供与半导体芯片的布局有关的图像信息。
半导体制造装置1000可以基于由电子装置100产生的设计信息INFO在晶圆20上制造半导体芯片。例如,半导体芯片可以包括与通过电子装置100设计的单元对应的物理组件。
图3是示出用于通过使用图2的电子装置和半导体制造装置来制造半导体芯片的示例方法的流程图。将参照图2和图3来描述用于制造半导体芯片的示例方法。
参照图2和图3,在执行操作S1100之前,电子装置100可以从用户10的命令获得将用于操作S1100和操作S1300的信息。例如,电子装置100可以获得与单元的布局有关的信息。例如,电子装置100可以获得与单元的布线有关的信息。
在操作S1100中,电子装置100可以基于在操作S1100之前获得的信息来布置将包括在半导体芯片中的单元。例如,电子装置100可以将单元库存储在存储器120中。可以根据用户10的命令来布置存储在单元库中的单元。
在操作S1300中,电子装置100可以基于在操作S1100之前获得的信息对在操作S1100中布置的单元进行布线。例如,可以通过金属线来对单元进行布线。然而,在说明书中,金属线可以意为在软件方面用于连接单元的端口的组件,而不是意为物理组件。如参照图2所描述的,电子装置100可以基于被布置和布线的单元产生将用于制造半导体芯片的设计信息。
在操作S1400中,电子装置100可以基于设计信息指示半导体制造装置1000在晶圆上制造半导体芯片。例如,半导体制造装置1000可以基于在操作S1100中被布置且在操作S1300中被布线的单元来制造半导体芯片。
示例方法在图3中被示出为包括操作S1100、操作S1300和操作S1400,但发明构思还可以包括图3中未示出的任何其它操作。例如,可以在操作S1300与操作S1400之间执行时钟树综合(CTS)操作。可选择地,如将参照图6所描述的,可以在操作S1100与操作S1300之间执行用于改变单元的布局的操作。
图4是示出根据图3的操作而布置的示例单元的概念图。
参照图4,布局200可以包括第一单元210和第二单元220。第一单元210和第二单元220可以被布置为彼此相邻。第一单元210可以包括端口P11、端口P12和端口P13。第二单元220可以包括端口P21、端口P22和端口P23。
端口P11至P13以及P21至P23中的每个可以分别包括两个引脚。例如,端口P11可以包括引脚PN111。端口P21可以包括引脚PN211。端口P23可以包括引脚PN231和引脚PN232。下面,将描述均包括两个引脚的端口P11至P13以及P21至P23。然而,端口P11至P13以及P21至P23中的每个可以包括一个或更多个引脚。
如参照图2所描述的,端口P11至P13以及端口P21至P23可以基于从用户10接收的命令进行布线。下面,将参照图5来描述用于对端口P11至P13以及端口P21至P23进行布线的示例方法。
图5是示出根据图3的操作而布线的示例单元的概念图。
可以在一层上沿水平方向D1和D3或竖直方向D2对端口P11至P13以及端口P21至P23进行布线。下面,将参照图5来描述用于在一层上沿水平方向D1和D3对端口P11至P13以及端口P21至P23进行布线的示例方法。
参照图5,端口P11可以通过引脚PN111和引脚PN211由金属线M1与端口P21进行布线。如在以上描述中,可以通过对应引脚由金属线对端口P12和P13以及端口P22和P23进行布线。例如,可以通过金属线M2在方向D1上对端口P13进行布线。可以通过金属线M3在方向D1上对端口P22进行布线。端口P22可以通过金属线M4与端口P12进行布线。
在图3的操作S1100之前,电子装置100可以从用户10接收用于在方向D1上连接端口P23的命令。然而,在图5中,由于在先布置的金属线M2和M3,端口P23不能在方向D1上进行连接。例如,远离引脚PN231的方向D1会被金属线M2阻挡。远离引脚PN232的方向D1会被金属线M3阻挡。因此,不可能在方向D1上对端口P23进行布线。
图6是示出用于通过使用图2的电子装置和半导体制造装置来制造半导体芯片的示例方法的流程图。
参照图2和图6,在执行操作S2100之前,电子装置100可以从用户10的命令获得将用于操作S2100至操作S2300的信息。例如,电子装置100可以获得与单元的布局有关的信息。例如,电子装置100可以获得与单元的布线有关的信息。
除了参照图3描述的方法之外,图6的方法还可以包括操作S2200。可以在操作S2100与操作S2300之间执行操作S2200。操作S2100与操作S1100相似,操作S2300与操作S1300相似,并且操作S2400与操作S1400相似。因此,将省略附加描述以避免冗余。
在操作S2200中,电子装置100可以根据用户的命令来改变在操作S2100中布置的单元的布局。即,可以根据用户的命令来改变在操作S2100中制作的布局。电子装置100可以以各种方式来改变单元的布局。例如,电子装置100可以执行使在操作S2100中布置的单元翻转、在操作S2100中布置的单元之间***空间以及替换在操作S2100中布置的单元中的一种或更多种操作。
下面,将参照图7至图14来描述改变在操作S2100中制作的布局以增加可布线性的示例实施例。然而,可以理解的是,可以各种改变或修改用于改变单元的布局的方法,而不限制于随后的示例实施例。
下面,在说明书中,可以针对具体的布局来定义“可布线性”,“可布线性”可以意为与是否能够对包括在具体布局中的单元进行布线相关联的可能性。术语“翻转(flipping)”在说明书中被使用。下面,翻转可以意为在水平方向上(例如,图4和图5的方向D1和/或方向D3)反转(reversing)具体单元的布局。
图7是示出根据图6的操作而布置的示例单元的概念图。
参照图7,布局300a可以包括第三单元330、第四单元340和第五单元350。第三单元330和第四单元340可以被布置为彼此相邻。第四单元340和第五单元350可以被布置为彼此相邻。第三单元330可以包括端口P31、端口P32和端口P33。第四单元340可以包括端口P41、端口P42和端口P43。第五单元350可以包括端口P51、端口P52和端口P53。端口P53可以包括引脚PN531。
下面,为了更好地理解,将描述均包括两个引脚的端口P31至P33、P41至P43以及P51至P53。然而,端口P31至P33、P41至P43以及P51至P53中的每个可以包括一个或更多个引脚。
图7的第四单元340和第五单元350的布局可以分别基本等同于图4和图5的第一单元210和第二单元220的布局。因此,第四单元340的端口P41至P43可以分别对应于第一单元210的端口P11至P13。第五单元350的端口P51至P53可以分别对应于第二单元220的端口P21至P23。
如参照图5所述,在图3的操作S1300中,端口P23不能在方向D1上布线。如以上描述中,在图7中,端口P53不能在方向D1上布线。例如,端口P53不能通过引脚PN531在方向D1上布线。
在操作S2300之前执行的操作S2200中,图1的电子装置100可以基于成本函数(cost function)和是否出现线端间隔违规(line end spacing violation)来改变第三单元330至第五单元350的布局,使得布局300a的全部端口可以被布线。将参照图12来更充分地描述线端间隔违规。将参照图8至图14来描述用于改变布局300a的示例方法。将在下面描述将在用于改变布局300a的示例方法中使用的成本函数和成本函数值。
电子装置100可以针对单元330至350中的每个来根据成本函数计算成本函数值。对于具体单元,成本函数值可以与是否能够进行具体单元的全部布线相关。
对于包括在布局中的具体引脚,成本函数可以与定位在具体引脚与将连接到该具体引脚的引脚之间的布线路径上的引脚的数目“B”相关。可选择地,成本函数可以与包括在布局中的单元之间的距离“L”相关。下面,将参照公式1来描述通过使用“B”表述的成本函数。
[公式1]
在公式1中,“A(port)”可以意为包括在一个单元中的端口(port)的集合。“N(pin)”可以意为包括在一个端口中的引脚的数目。“N(connected)”可以意为在一个端口中包括的引脚之中的将与任何其它引脚连接的引脚的数目。“A(pin)”可以意为包括在一个端口中的全部引脚(pin)的集合。“B”可以意为在图6的操作S2300中位于与一个引脚相关的布线路径上的引脚的数目。下面,将参照第四单元340来更充分地描述公式1。
第四单元340可以包括三个端口P41至P43。三个端口P41至P43中的每个可以包括两个引脚。因此,端口P41至P43中的每个的“N(pin)”可以是“2”。
如参照图6所述,在执行操作S2100之前,电子装置100可以从用户的命令获得与端口P41至P43的布线相关的信息。与端口P41至P43的布线相关的信息可以与哪些端口与端口P41至P43进行布线相关。
例如,根据从用户的命令获得的信息,在第四单元340中,端口P41可以与端口P51进行布线,端口P42可以与端口P52进行布线,端口P43可以与端口P53进行布线。即,第四单元340的端口P41至P43中的每个可以与一个不同的端口进行布线。因此,关于端口P41至P43,可以在包括在一个端口中的引脚之中存在将与任何其它引脚连接的一个引脚。因此,端口P41至P43中的每个的“N(connected)”可以是“1”。因此,与端口P41至P43中的每个相关的可以是“1”。
“B”可以意为位于与具体引脚和将连接到该具体引脚的任何其它引脚相关的布线路径上的引脚的数目。例如,参照图7,引脚PN411可以位于引脚PN431的布线路径上。因此,引脚PN431的“B”可以是“1”。引脚PN412可以位于引脚PN432的布线路径上。因此,引脚PN432的“B”可以是“1”。引脚PN431可以位于引脚PN411的布线路径上。因此,引脚PN411的“B”可以是“1”。引脚PN432可以位于引脚PN412的布线路径上。因此,引脚PN412的“B”可以是“1”。包括在端口P42中的引脚的布线路径上可以不存在引脚。因此,包括在端口P42中的每个引脚的“B”可以是“0”。
因此,与端口P41至P43中的每个的“A(pin)”相关的多个“B”的总和(即,∑pin∈A(pin)B)可以是“2”。与第四单元340的全部端口P41至P43的“A(port)”相关的的总和(即,根据公式1计算的第四单元340的值(成本函数值))可以是“4”。如以上参照图7所描述的方法中,电子装置100可以计算第三单元330和第五单元350中的每个的成本函数值。
下面,将参照公式2来描述通过使用“L”表示的成本函数。
[公式2]
在公式2中,“A(port)”可以意为包括在一个单元中的端口的集合。“N(pin)”可以意为包括在一个端口中的引脚的数目。“N(connected)”可以意为在一个端口中包括的引脚之中的将与任何其它引脚连接的引脚的数目。“A(pin)”可以意为包括在一个端口中的全部引脚的集合。“L”可以意为在图6的操作S2300中在一个引脚与将连接到所述一个引脚的任何其它引脚之间的距离。下面,将参照第四单元340来更充分地描述等式2。
端口P41的第一引脚与端口P51的将连接到端口P41的第一引脚的引脚之间的距离可以是“L2”。端口P42的第二引脚与端口P52的将连接到端口P42的第二引脚的引脚之间的距离可以是“L3”。端口P43的第三引脚与端口P33的连接到端口P43的第三引脚的引脚之间的距离可以是“L1”。因此,与端口P41的第一引脚相关的“L”可以是“L2”,与端口P42的第二引脚相关的“L”可以是“L3”,与端口P43的第三引脚相关的“L”可以是“L1”。
因此,与包括端口P41的全部引脚的“A(pin)”相关的多个“1/L”的总和(即,)可以是“1/L2”。如以上描述中,与包括端口P42的全部引脚的“A(pin)”相关的多个“1/L”的总和可以是“1/L3”,与包括端口P43的全部引脚的“A(pin)”相关的多个“1/L”的总和可以是“1/L1”。
与包括第四单元340的全部端口P41至P43的“A(port)”相关的的总和(即,根据公式2计算的第四单元340的值(成本函数值))可以是“1/L1+1/L2+1/L3”。
如以上参照图7描述的方法中,电子装置100可以计算第三单元330和第五单元350中的每个的成本函数值。下面,为了便于描述,将描述根据公式2的成本函数。然而,可以理解的是,用于获得成本函数值的成本函数的公式可以被各种改变和修改,而不限于公式1和公式2的示例。下面,将参照图8来描述用于改变布局300a和计算与改变的布局的单元相关的成本函数值的方法。
图8是示出具有根据图6的操作改变的布局的示例单元的概念图。
与图7相比,布局300b可以包括翻转的第四单元341,而不是第四单元340。在图6的操作S2200中,电子装置100可以使图7的第四单元340翻转。因此,翻转的第四单元341的端口P41至P43可以分别对应于图7的第四单元340的端口P41至P43。下面,将描述用于根据公式2来获得图8的翻转的第四单元341的成本函数值的方法。
翻转的第四单元341可以包括图7的第四单元340的三个端口P41至P43。因此,翻转的第四单元341的“N(pin)”和“N(connected)”可以分别等于图7的第四单元340的“N(pin)”和“N(connected)”。
在图8的示例中,端口P41的第一引脚与端口P51的将连接到第一引脚的引脚之间的距离可以是“L5”。端口P42的第二引脚与端口P52的将连接到第二引脚的引脚之间的距离可以是“L6”。端口P43的第三引脚与端口P33的将连接到第三引脚的引脚之间的距离可以是“L4”。因此,与端口P41的第一引脚相关的“L”可以是“L5”,与端口P42的第二引脚相关的“L”可以是“L6”,与端口P43的第三引脚相关的“L”可以是“L4”。
因此,与包括端口P41的全部引脚的“A(pin)”相关的多个“1/L”的总和(即,)可以是“1/L5”。如以上描述中,与包括端口P42的全部引脚的“A(pin)”相关的多个“1/L”的总和可以是“1/L6”,与包括端口P43的全部引脚的“A(pin)”相关的多个“1/L”的总和可以是“1/L4”。
与包括翻转的第四单元341的全部端口P41至P43的“A(port)”相关的的总和(即,成本函数值)可以是“1/L4+1/L5+1/L6”。
参照图7和图8,L4可以小于L1,L5可以小于L2,且L6可以小于L3。因此,翻转的第四单元341的成本函数值“1/L4+1/L5+1/L6”可以大于第四单元340的成本函数值“1/L1+1/L2+1/L3”。第四单元340的成本函数值可以通过翻转而增加。
“L”在上面被描述为引脚之间的距离,但“L”还可以意为端口之间的距离。例如,“L1”可以意为端口P33与端口P43之间的距离。例如,“L2”可以意为端口P41与端口P51之间的距离。例如,“L3”可以意为端口P42与端口P52之间的距离。
根据公式2,成本函数值可以与“L”相关。详细地,当“L”增加时,成本函数值可以减小。“L”可以对应于用于对端口进行布线的金属线的长度。因此,当在图6的操作S2300中连接的金属线的长度减小时,成本函数值可以增加。
图9是示出根据图6的操作而布线的示例单元的概念图。
端口P31至P33、端口P41至P43和端口P51至P53可以在一层上在水平方向D1和D3或竖直方向D2上布线。下面,将参照图9来描述用于在一层上沿水平方向D1和D3对端口P31至P33、端口P41至P43和端口P51至P53进行布线的示例方法。
参照图9,可以通过引脚PN531在方向D1上由金属线M13对端口P53进行布线。如以上描述中,可以通过相应引脚由金属线对端口P31至P33、端口P41至P43和端口P51至P53进行布线。例如,端口P43可以通过金属线M11与端口P33进行布线。端口P41可以通过金属线M12与端口P51进行布线。端口P52可以通过金属线M14在方向D1上进行布线。端口P52可以通过金属线M15与端口P42进行布线。
如参照图7和图8描述的,翻转的第四单元341的成本函数值可以大于第四单元340的成本函数值。在图7的布局300a中,端口P53不能在方向D1上进行布线。然而,在图8和图9的布局300b中,端口P53可以在方向D1上进行布线。因此,包括翻转的第四单元341的布局300b的可布线性可以高于包括第四单元340的布局300a的可布线性。
在图6的操作S2200中的翻转第四单元340的操作中,成本函数值可以与布局300a和300b的可布线性相关。详细地,关于翻转第四单元340的操作,当成本函数值增大时,可布线性可以增大。
以上参照图8和图9描述了出于增大可布线性的目的而用于翻转第四单元340的示例方法。然而,发明构思不限于此。例如,发明构思可以包括出于增大可布线性的目的而用于使一个或更多个单元翻转的全部实施例。
图10是示出具有根据图6的操作改变的布局的示例单元的概念图。
下面,将描述用于根据公式2来获得图10的第四单元340的成本函数值的示例方法。参照图7描述了第四单元340的N(pin)和N(connected)。因此,将省略附加的描述以避免冗余。
与图7相比,图10的布局300c还可以在布局300a中包括空间342。在图6的操作S2200中,电子装置100可以在图7的第四单元340与第五单元350之间***空间342。空间342的在方向D1和D3上的宽度可以是“L7”。端口P41的第一引脚与端口P51的将连接到第一引脚的引脚之间的距离可以增大“L7”。端口P42的第二引脚与端口P52的将连接到第二引脚的引脚之间的距离可以增大“L7”。因此,与端口P41的第一引脚相关的“L”可以是“L2+L7”,与端口P42的第二引脚相关的“L”可以是“L3+L7”,与端口P43的第三引脚相关的“L”可以是“L1”。
因此,与包括端口P41的全部引脚的“A(pin)”相关的多个“1/L”的总和(即,)可以是“1/(L2+L7)”。如以上描述中,与包括端口P42的全部引脚的“A(pin)”相关的多个“1/L”的总和可以是“1/(L3+L7)”,与包括端口P43的全部引脚的“A(pin)”相关的多个“1/L”的总和可以是“1/L1”。
与包括第四单元340的全部端口P41至P43的“A(port)”相关的的总和(即,成本函数值)可以是“1/L1+1/(L2+L7)+1/(L3+L7)”。
参照图7和图10,图10的第四单元340的成本函数值“1/L1+1/(L2+L7)+1/(L3+L7)”可以小于图7的第四单元340的成本函数值“1/L1+1/L2+1/L3”。第四单元340的成本函数值可以通过在第四单元340与第五单元350之间的***空间342而减小。如参照图7所述,成本函数值可以与具体布局的可布线性相关。
图11是示出根据图6的操作而布线的示例单元的概念图。
在图11的示例中,端口P31至P33、端口P41至P43和端口P51至P53可以在第一层上在水平方向D1和D3上布线。端口P31至P33、端口P41至P43和端口P51至P53可以在第二层上在竖直方向D2上布线。通孔V531和V532可以将第一层的金属线与第二层的金属线连接。
下面,在说明书中,通孔可以是用于将包括在各个不同层中的组件连接的组件。例如,通孔可以连接包括在各个不同层中的金属线。在说明书中,对通孔进行布线可以意为通孔根据用户的命令通过金属线等与任何其它通孔或端口连接。
参照图11,可以通过金属线M24、金属线M27、金属线M28、通孔V531和通孔V532在方向D1上对端口P53进行布线。详细地,在第一层中,端口P53可以通过引脚PN531利用金属线M24与通孔V531进行布线。第一层中的金属线M24可以通过通孔V531与第二层中的金属线M27连接。在第二层中,通孔V531可以通过金属线M27与通孔V532进行布线。第二层中的金属线M27可以通过通孔V532与第一层中的金属线M28连接。在第一层中,可以通过金属线M28在方向D1上对通孔V532进行布线。
端口P31至P33、端口P41至P43和端口P51和P52可以通过相应的引脚利用金属线进行布线。例如,端口P41可以通过金属线M21与端口P51进行布线。端口P31可以通过金属线M22在方向D1上进行布线。端口P33可以通过金属线M23与端口P43进行布线。端口P52可以通过金属线M25在方向D1上进行布线。端口P52可以通过金属线M26与端口P42进行布线。
如参照图10所述,布局300c中的第四单元340的成本函数值可以小于布局300a中的第四单元340的成本函数值。在图7的布局300a中,端口P53不能在方向D1上布线。然而,在图11的布局300c中,端口P53可以在方向D1上进行布线。因此,布局300c的可布线性可以高于布局300a的可布线性。
在图6的操作S2200中的***空间342的操作中,成本函数值可以与布局300a和300c的可布线性相关。详细地,关于***空间342的操作,当成本函数值减小时,可布线性可以增大。
以上参照图10和图11描述了出于增大可布线性的目的而用于在第四单元340与第五单元350之间***空间的示例方法。然而,发明构思不限于此。例如,发明构思可以包括出于增大可布线性的目的而用于在任何位置处***空间的全部实施例。
图12是示出根据图6的操作而布线的示例单元的概念图。在图12的示例中,端口P31至P33、端口P41至P43和端口P51至P53可以在第一层上在水平方向D1和D3上进行布线。
参照图12,端口P33可以通过金属线M11与端口P43进行布线。端口P41可以通过金属线M12与端口P51进行布线。端口P31可以通过引脚PN311由金属线M13在方向D1上进行布线。端口P32可以通过引脚PN321和引脚PN531由金属线M14与端口P53进行布线。
在图12的示例中,会在端口P31与端口P32之间发生线端间隔违规。在端口之间在水平方向D1和D3上的距离比参考距离小的情况下会发生作为设计规则检查违规中的一种的线端间隔违规。在端口之间在水平方向D1和D3上的距离比参考距离小的情况下,当在图6的操作S2400中制造半导体芯片时,不能充分地确保工艺裕度。
因此,为了确保充分的工艺裕度,在端口之间在水平方向D1和D3上的距离可以比参考距离长。例如,作为引脚PN311与引脚PN321之间的距离的“L8”可以对应于在端口P31与端口P32之间在水平方向D1和D3上的距离。“L8”会比参考距离短。因此,会在端口P31与端口P32之间发生线端间隔违规。
图13是示出根据图6的操作而布置的示例单元的概念图。
图13的布局300d可以包括第六单元360,而不是图12的布局300b的第三单元330。第六单元360可以包括端口P61、端口P62和端口P63。端口P61可以包括引脚PN611,端口P62可以包括引脚PN621。端口P61可以对应于端口P31,端口P62可以对应于端口P32,端口P63可以对应于端口P33。
引脚PN611与引脚PN621之间的距离可以是“L9”。图13的“L9”可以比图12的“L8”长。因此,第六单元360的端口P61与端口P62之间的距离可以比在第三单元330的端口P31与端口P32之间的距离长,端口P31和端口P32分别对应于端口P61和端口P62。图13的第六单元360可以布置在比图12的第三单元330宽的区域中。在图6的操作S2200中,图12的第三单元330可以由图13的第六单元360来替代。
图14是示出根据图6的操作而布线的示例单元的概念图。在图14的示例中,端口P61至P63、端口P41至P43和端口P51至P53可以在一层上在水平方向D1和D3上进行布线。
参照图14,端口P63可以通过金属线M31与端口P43进行布线。端口P41可以通过金属线M32与端口P51进行布线。端口P61可以通过引脚PN611由金属线M33在方向D1上进行布线。端口P62可以通过引脚PN621和引脚PN531由金属线M34与端口P53进行布线。
端口P61与端口P62之间的距离可以对应于作为引脚PN611与引脚PN621之间的距离的“L9”。“L9”可以比与发生线端间隔违规相关的参考距离长。因此,线端间隔违规不会发生在端口P61与端口P62之间。
线端间隔违规会发生在图12的布局300b中,但是线端间隔违规不会发生在图13和图14的布局300d中。因此,布局300d的可布线性可以比布局300b的可布线性高。
图15是示出用于执行图6的操作S2200的示例方法的流程图。下面,将参照图2和图15来描述用于执行图6的操作S2200的示例方法。
参照图6和图15,在执行操作S2210_a之前,用户10可以通过用户接口150的输入装置输入命令。电子装置100可以通过用户接口150接收来自用户10的命令。如参照图3描述的,电子装置100可以从用户10的命令获得用于设计半导体芯片的信息。例如,电子装置100可以获得与单元的布局相关的信息。例如,电子装置100可以从用户10的命令获得与单元的布线相关的信息。
在操作2210_a中,电子装置100可以根据公式1和公式2中的至少一个的成本函数来计算成本函数值Cftn1。下面,将参照图15来描述根据公式1的成本函数计算的成本函数值Cftn1。参照图7描述了用于获得成本函数值的详细方法。因此,将省略附加的描述以避免冗余。
在操作S2220_a中,电子装置100可以对在操作S2210_a中计算的成本函数值Cftn1与第一参考值Dth1进行比较。电子装置100可以基于通过用户接口150的输入装置从用户10接收的命令来获得第一参考值Dth1。图1的存储器120可以存储获得的第一参考值Dth1。
例如,用户10可以考虑可布线性来适当地设置第一参考值Dth1。在具体布局的成本函数值不大于第一参考值Dth1的情况下,用户10可以基于经验确定具体布局具有足够的可布线性。在成本函数值Cftn1不大于第一参考值Dth1的情况下,可以终止操作。在成本函数值Cftn1大于第一参考值Dth1的情况下,可以执行操作S2230_a。
在操作S2230_a中,电子装置100可以使在图6的操作S2100中布置的单元翻转。参照图8描述了用于翻转单元的示例方法。因此,将省略附加的描述以避免冗余。电子装置100可以针对具有通过翻转而改变的布局的单元来计算成本函数值Cftn2。成本函数值Cftn2可以比成本函数值Cftn1大。
在操作S2250_a中,电子装置100可以对在操作S2230_a中计算的成本函数值Cftn2与第二参考值Dth2进行比较。电子装置100可以基于通过用户接口150的输入装置从用户10接收的命令来获得第二参考值Dth2。图1的存储器120可以存储获得的第二参考值Dth2。
例如,用户10可以考虑可布线性来适当地设置第二参考值Dth2。在具体布局的成本函数值不小于第二参考值Dth2的情况下,用户10可以基于经验确定具体布局具有足够的可布线性。
在成本函数值Cftn2不小于第二参考值Dth2的情况下,可以终止操作。如参照图8和图9所述,关于翻转操作,当成本函数值增大时,可布线性可以增大。在成本函数值Cftn2小于第二参考值Dth2的情况下,可以执行操作S2260_a。
在操作S2260_a中,电子装置100可以将空间***到在操作S2230_a中改变的布局的单元之间。参照图10描述了用于***空间的示例方法。因此,将省略附加的描述以避免冗余。
在操作S2270_a中,电子装置100可以确认在操作S2260_a中改变的布局中是否发生线端间隔违规。在没有发生线端间隔违规的情况下,可以终止操作。在发生线端间隔违规的情况下,可以执行操作S2280_a。
在操作S2280_a中,电子装置100可以用任何其它单元来替换在操作S2260_a中改变的布局的单元。例如,在用第二单元替换第一单元的情况下,包括在第二单元中的端口之间的距离可以比包括在第一单元中并且分别与包括在第二单元中的端口对应的端口之间的距离长。参照图10描述了用于替换单元的示例方法。因此,将省略附加的描述以避免冗余。
操作S2230_a和操作S2250_a、操作S2260_a和操作S2270_a以及操作S2280_a在图15中示出为顺序地执行。然而,发明构思可以包括其中按任何顺序来执行操作S2230_a和操作S2250_a、操作S2260_a和操作S2270_a以及操作S2280_a的全部实施例。即,翻转操作、在单元之间***空间的操作以及替换单元的操作可以根据任何顺序来执行。
图15中示出了其中操作S2220_a至操作S2280_a都被执行的示例。然而,发明构思可以包括具有翻转单元操作(操作S2220_a和操作S2250_a)、在单元之间***空间的操作(操作S2260_a和操作S2270_a)以及用任何其它单元替换单元的操作(操作S2280_a)中的至少一个操作的全部实施例。
以上描述了通过在操作S2230_a中的翻转操作使成本函数值增大的示例。下面,将参照图16和图17来描述通过翻转操作使成本函数值减小的示例。
图16是示出根据图6的操作而布置的示例单元的概念图。
图16的布局300e可以包括第七单元370,而不是图8的布局300b的翻转的第四单元341。第七单元370的构造与翻转的第四单元341的构造相似。因此,将省略附加的描述以避免冗余。第七单元370的端口P71至P73可以分别对应于翻转的第四单元341的端口P41至P43。在图8的布局300b中的引脚之间的距离L4至L6可以对应于在图16的布局300e中的引脚之间的距离L10至L12。因此,通过电子装置100计算的第七单元370的成本函数值可以是“1/L10+1/L11+1/L12”。
图17是示出根据图6的操作而布置的示例单元的概念图。
在图6的操作S2200中,电子装置100可以使图16的第七单元370翻转。因此,翻转的第七单元371的端口P71至P73可以分别对应于图16的第七单元370的端口P71至P73。
图17的布局300f可以包括翻转的第七单元371,而不是图7的布局300a的第四单元340。翻转的第七单元371的构造与第四单元340的构造相似。因此,将省略附加的描述以避免冗余。翻转的第七单元371的端口P71至P73可以分别对应于第四单元340的端口P41至P43。在图7的布局300a中的引脚之间的距离L1至L3可以对应于在图17的布局300f中的引脚之间的距离L13至L15。因此,通过电子装置100计算的翻转的第七单元371的成本函数值可以是“1/L13+1/L14+1/L15”。
参照图16和17,“L13”可以比“L10”长,“L14”可以比“L11”长,且“L15”可以比“L12”长。因此,翻转的第七单元371的成本函数值可以小于第七单元370的成本函数值。如参照图9所述,对于翻转具体单元的操作,当成本函数值减小时,可布线性会减小。因此,可布线性会在使第七单元370翻转的过程中减小。即,布局300f的可布线性可以比布局300e的可布线性低。
图18是示出用于执行图6的操作S2200的示例方法的流程图。
图18的操作S2210_b至操作S2230_b以及操作S2250_b至操作S2280_b可以与图15的操作S2210_a至操作S2230_a以及操作S2250_a至操作S2280_a相似。因此,将在下面省略与操作S2210_b至操作S2230_b以及操作S2250_b至操作S2280_b相关的描述。
在操作S2240_b中,电子装置100可以对成本函数值Cftn2与成本函数值Cftn1进行比较。如参照图9所述,针对翻转具体单元的操作,当成本函数值增大时,可布线性可以增大。
因此,在成本函数值Cftn2大于成本函数值Cftn1的情况下,可布线性可以增大。因此,在成本函数值Cftn2大于成本函数值Cftn1的情况下,可以执行操作S2250_b。在成本函数值Cftn2不大于成本函数值Cftn1的情况下,可布线性可以减小或者可以是等同的。在成本函数值Cftn2不大于成本函数值Cftn1的情况下,可以执行操作S2241_b。
在操作S2241_b中,电子装置100可以使在操作S2230_b中翻转的单元的布局返回到在翻转操作之前的布局。即,可以执行操作S2241_b以防止可布线性由于翻转操作而减小。
可以在执行操作S2241_b之后执行操作S2260_b。
图19是示出用于执行图6的操作S2200的示例方法的流程图。
图19的操作S2210_c至操作S2230_c以及操作S2250_c至S2270_c可以与图15的操作S2210_a至操作S2230_a以及操作S2250_a至操作S2270_a相似。因此,将在下面省略与操作S2210_c至操作S2230_c以及操作S2250_c至S2270_c相关的描述。
在操作S2280_c中,在操作S2210_c至操作S2260_c中布置的单元可以由任何其它单元来替代。参照图10描述了用于替换单元的示例方法。因此,将省略附加的描述以避免冗余。电子装置100可以针对替换的单元计算成本函数值Cftn3。成本函数值Cftn3可以小于成本函数值Cftn2和成本函数值Cftn1。
在操作S2290_c中,电子装置100可以对在操作S2280_c中计算的成本函数值Cftn3与第三参考值Dth3进行比较。第三参考值Dth3可以通过用户接口150的输入装置由用户10输入。图1的存储器120可以存储输入的第三参考值Dth3。
例如,用户10可以考虑可布线性来适当地设置第三参考值Dth3。在具体布局的成本函数值不大于第三参考值Dth3的情况下,用户10可以基于经验确认具体布局具有足够的可布线性。因此,在成本函数值Cftn3不大于第三参考值Dth3的情况下,可以终止操作。
在成本函数值Cftn3大于第三参考值Dth3的情况下,可以再次执行操作S2230_c。在即使具体单元通过操作S2280_c被替换而成本函数值Cftn3仍大于由用户10设定的第三参考值Dth3的情况下,包括具体单元的布局的可布线性会低于用户10所期望的可布线性。因此,可以重复操作S2230_c至操作S2290_c。
图19中示出了在操作S2290_c之后重复操作S2230_c至操作S2290_c的实施例。然而,发明构思可以包括翻转单元操作(操作S2230_c和操作S2250_c)、在单元之间***空间的操作(操作S2260_c和操作S2270_c)以及用任何其它单元替换单元的操作(操作S2280_c和操作S2290_c)中的至少一个操作的全部实施例。
根据发明构思的示例实施例,在设计半导体芯片时,可以通过在对单元进行布线之前改变单元的布局来有效地获得可布线单元的布局。
根据一个或更多个示例实施例,可以使用硬件、硬件和软件的组合或者存储软件的非暂时性存储介质(是可执行的以执行软件的功能)来实施上述单元和/或装置(诸如包括处理器110的电子装置100的组件和半导体制造装置1000的组件)。
可以使用诸如但不限于下面的处理电路来实施硬件:一个或更多个处理器、一个或更多个中央处理单元(CPU)、一个或更多个控制器、一个或更多个算术逻辑单元(ALU)、一个或更多个数字信号处理器(DSP)、一个或更多个微型计算机、一个或更多个现场可编程门阵列(FPGA)、一个或更多个片上***(SoC)、一个或更多个可编程逻辑单元(PLU)、一个或更多个微处理器、一个或更多个专用集成电路(ASIC)或者任何其它装置或能够以限定方式响应并执行指令的装置。
软件可以包括用于单独地或共同地指示或配置硬件装置以按需要操作的计算机程序、程序代码、指令或它们的一些组合。计算机程序和/或程序代码可以包括能够通过一种或更多种硬件装置(诸如,以上提及的硬件装置中的一种或更多种)实施的程序或计算机可读指令、软件组件、软件模块、数据文件、数据结构等。程序代码的示例包括由编译器产生的机器代码和使用解释器执行的更高级程序代码两者。
例如,当硬件装置是计算机处理装置(例如,一个或更多个处理器、CPU、控制器、ALU、DSP、微型计算机、微处理器等)时,计算机处理装置可以被配置为根据程序代码通过执行算术、逻辑和输入/输出操作来执行程序代码。一旦程序代码被加载到计算机处理装置中,计算机处理装置就可以被编程为执行程序代码,从而将计算机处理装置转换为专用计算机处理装置。在更具体的示例中,当程序代码被加载到处理器中时,处理器被编程为执行程序代码和与其对应的操作,从而将处理器转换为专用处理器。在另一示例中,硬件装置可以是定制成专用处理电路(例如,ASIC)的集成电路。
硬件装置(诸如计算机处理装置)可以运行操作***(OS)和在OS上运行的一个或更多个软件应用。计算机处理装置还可以响应于软件的执行来存取、存储、操作、处理和创建数据。为了简化,一个或更多个示例实施例可以被例示为一个计算机处理装置;然而,本领域技术人员将领会的是,硬件装置可以包括多个处理元件和多种类型的处理元件。例如,硬件装置可以包括多个处理器或处理器和控制器。另外,其它处理配置是可能的,诸如并行处理器。
软件和/或数据可以永久地或临时地包含在能够向硬件装置提供指令或数据或者由硬件装置解释的任何类型的存储介质中,所述存储介质包括但不限于任何机械、组件、物理或虚拟设备或者计算机存储介质或装置。软件还可以分布于网络耦合的计算机***,使得以分布方式存储和执行软件。具体地,例如,软件和数据可以通过一个或更多个计算机可读记录介质(包括如在此讨论的有形或非暂时计算机可读存储介质)来存储。
根据一个或更多个示例实施例,存储介质还可以包括在单元和/或装置处的一个或更多个存储装置。一个或更多个存储装置可以是有形或非暂时计算机可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、永久大容量存储装置(诸如硬盘驱动)和/或能够存储和记录数据的任何其它类似数据存储机构。一个或更多个存储装置可以被配置为存储用于一个或更多个操作***和/或用于实施在此描述的示例实施例的计算机程序、程序代码、指令或它们的一些组合。计算机程序、程序代码、指令或它们的一些组合还可以使用驱动机构从单独的计算机可读存储介质加载到一个或更多个存储装置和/或一个或更多个计算机处理装置中。这样单独的计算机可读存储介质可以包括通用串行总线(USB)闪存盘、记忆棒、蓝光/DVD/CD-ROM驱动、存储卡和/或其它类似计算机可读存储介质。计算机程序、程序代码、指令或它们的一些组合可以经由网络接口而不是经由计算机可读存储介质从远程数据存储装置加载到一个或更多个存储装置和/或一个或更多个计算机处理装置中。另外,计算机程序、程序代码、指令或它们的一些组合可以从被配置为将计算机程序、程序代码、指令或它们的一些组合传输和/或分布于网络的远程计算***加载到一个或更多个存储装置和/或一个或更多个计算机处理装置中。远程计算***可以经由有线接口、空中接口和/或任何其它类似介质来对计算机程序、程序代码、指令或它们的一些组合进行传输和/或分布。
一个或更多个硬件装置、存储介质、计算机程序、程序代码、指令或它们的一些组合可以出于示例实施例的目的而被专门地设计或构造,或者它们可以是出于示例实施例的目的而被改变和/或修改的已知的装置。
虽然已经参照发明构思的示例实施例描述了发明构思,但是对于本领域普通技术人员将明显地是,在不脱离如权利要求中所阐述的发明构思的精神和范围的情况下,可以对其做出各种改变和修改。
Claims (20)
1.一种电子装置,所述电子装置被配置为制造半导体芯片,所述电子装置包括:
处理器,被配置为执行以下步骤:布置与设计半导体芯片相关的第一目标单元;基于第一参考值和第一目标单元的布局的第一成本函数值来选择性地翻转第一目标单元,以将第一目标单元的布局反转来产生反转的布局;基于第一成本函数值和第一目标单元的反转的布局的第二成本函数值来选择性地使第一目标单元的反转的布局返回;基于第一成本函数值和第二成本函数值中的一个以及第二参考值来选择性地将空间***第一目标单元与邻近第一目标单元的单元之间;以及基于线端间隔违规的发生来选择性地用与设计半导体芯片相关的第二目标单元替换第一目标单元,
输入装置,被配置为接收第一参考值和第二参考值的输入。
2.根据权利要求1所述的电子装置,其中,处理器被配置为对第一目标单元的第一端口和与设计半导体芯片相关的另一单元的第二端口进行布线。
3.根据权利要求2所述的电子装置,其中,处理器被配置为基于第一端口与第二端口之间的距离来计算第一成本函数值,其中
第一成本函数值在距离增大时减小。
4.根据权利要求2所述的电子装置,其中,处理器被配置为基于包括在第一端口中的引脚的数目来计算第一成本函数值,其中
第一成本函数值在引脚的数目增大时减小。
5.根据权利要求1所述的电子装置,其中,包括在第一目标单元中的第一端口之间的距离小于包括在第二目标单元中的分别与第一端口对应的第二端口之间的距离。
6.一种制造半导体芯片的方法,所述方法包括以下步骤:
通过处理器基于第一布局来布置目标单元,目标单元与设计半导体芯片相关;
基于参考值和在第一布局中的目标单元的成本函数值来通过处理器选择性地将第一布局改为第二布局;
基于线端间隔违规的发生来通过处理器选择性地将第二布局改为第三布局;以及
基于第一布局、第二布局和第三布局中的一种布局来制造半导体芯片。
7.根据权利要求6所述的方法,其中,选择性地将第一布局改变为第二布局的步骤包括:
响应于成本函数值比参考值小来将第一布局改变为第二布局。
8.根据权利要求7所述的方法,其中,选择性地将第一布局改变为第二布局的步骤还包括:
通过处理器在目标单元与邻近目标单元的单元之间***空间,以将第一布局改变为第二布局。
9.根据权利要求6所述的方法,其中,选择性地将第一布局改变为第二布局的步骤包括:
响应于成本函数值大于参考值来通过处理器将第一布局改变为第二布局。
10.根据权利要求9所述的方法,其中,选择性地将第一布局改变为第二布局的步骤还包括:
通过处理器使目标单元翻转以通过反转目标单元的布局来将第一布局改变为第二布局。
11.根据权利要求10所述的方法,所述方法还包括:
基于在第一布局中的目标单元的成本函数值和在第二布局中的目标单元的成本函数值来选择性地将第二布局返回到第一布局。
12.根据权利要求6所述的方法,其中,选择性地将第二布局改变为第三布局的步骤还包括:
用于设计半导体芯片相关的另一单元替换目标单元以将第二布局改变为第三布局。
13.根据权利要求12所述的方法,在目标单元中的第一端口之间的距离小于包括在所述另一单元中的分别对应于第一端口的第二端口之间的距离。
14.根据权利要求6所述的方法,所述方法还包括:
基于第一布局、第二布局和第三布局中的一种来对目标单元和与设计半导体芯片相关的另一单元进行布线。
15.根据权利要求14所述的方法,所述方法还包括:
基于目标单元的第一端口与所述另一单元的第二端口之间的距离来计算成本函数值。
16.根据权利要求14所述的方法,所述方法还包括:
基于包括在目标单元中的引脚的数目与所述引脚之中的用来对目标单元和所述另一单元进行布线的引脚的数目之间的差来计算成本函数值。
17.根据权利要求6所述的方法,所述方法还包括:
响应于在第三布局中的目标单元的成本函数值大于参考值来重复选择性地将第一布局改变为第二布局和选择性地将第二布局改变为第三布局。
18.一种制造半导体芯片的方法,所述方法包括以下步骤:
通过处理器布置与设计半导体芯片相关的目标单元;
基于第一参考值和目标单元的布局的第一成本函数值来通过处理器选择性地翻转目标单元,以将目标单元的布局反转;
基于第二参考值和目标单元的第二成本函数值来通过处理器选择性地在目标单元与邻近目标单元的单元之间***空间;
基于线端间隔违规的发生来通过处理器选择性地用另一单元替换目标单元;
基于第三参考值和目标单元的第三成本函数值来通过处理器重复所述选择性地翻转的步骤、所述选择性地***的步骤和所述选择性地替代的步骤中的至少一个步骤;以及
基于目标单元制造半导体芯片。
19.根据权利要求18所述的方法,所述方法还包括:
对目标单元的第一端口与相邻单元的第二端口进行布线;以及
基于位于使第一端口的引脚和第二端口的引脚连接的布线路径上的引脚的数目来计算第一成本函数值。
20.根据权利要求18所述的方法,所述方法还包括:
对目标单元的第一端口与相邻单元的第二端口进行布线;以及
基于第一端口与第二端口之间的距离来计算第一成本函数值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0018105 | 2018-02-14 | ||
KR1020180018105A KR102439861B1 (ko) | 2018-02-14 | 2018-02-14 | 반도체 칩을 제조하기 위한 전자 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162820A true CN110162820A (zh) | 2019-08-23 |
CN110162820B CN110162820B (zh) | 2024-01-09 |
Family
ID=67541749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910053597.9A Active CN110162820B (zh) | 2018-02-14 | 2019-01-21 | 电子装置及制造半导体芯片的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10733349B2 (zh) |
KR (1) | KR102439861B1 (zh) |
CN (1) | CN110162820B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959946A (zh) * | 2005-11-04 | 2007-05-09 | 松下电器产业株式会社 | 半导体装置的封装设计方法及制造方法和布局设计工具 |
US20110093827A1 (en) * | 2009-10-16 | 2011-04-21 | Renesas Electronics Corporaion | Semiconductor device design method |
US20130086544A1 (en) * | 2011-10-03 | 2013-04-04 | International Business Machines Corporation | Consideration of local routing and pin access during vlsi global routing |
US20160172375A1 (en) * | 2009-10-13 | 2016-06-16 | Tela Innovations, Inc. | Methods for Cell Boundary Encroachment and Semiconductor Devices Implementing the Same |
CN105718623A (zh) * | 2014-12-18 | 2016-06-29 | 三星电子株式会社 | 产生半导体电路布局的方法和*** |
CN106407491A (zh) * | 2015-07-30 | 2017-02-15 | 台湾积体电路制造股份有限公司 | 全局连接件布线方法及其执行*** |
US20170344686A1 (en) * | 2016-05-25 | 2017-11-30 | Taiwan Semiconductor Manufacturing Co., Ltd. | Systems and methods for minimum-implant-area aware detailed placement |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6286128B1 (en) | 1998-02-11 | 2001-09-04 | Monterey Design Systems, Inc. | Method for design optimization using logical and physical information |
US7225116B2 (en) | 2002-08-20 | 2007-05-29 | Cadence Design Systems, Inc. | Method for eliminating routing congestion in an IC layout |
US7360190B1 (en) | 2003-07-11 | 2008-04-15 | Altera Corporation | Method and apparatus for performing retiming on field programmable gate arrays |
US7373615B2 (en) | 2004-02-17 | 2008-05-13 | International Business Machines Corporation | Method for optimization of logic circuits for routability |
US7620925B1 (en) | 2006-09-13 | 2009-11-17 | Altera Corporation | Method and apparatus for performing post-placement routability optimization |
US7930668B1 (en) | 2008-04-08 | 2011-04-19 | Xilinx, Inc. | Placement and routing using inhibited overlap of expanded areas |
US8001514B2 (en) | 2008-04-23 | 2011-08-16 | Synopsys, Inc. | Method and apparatus for computing a detailed routability estimation |
US8136072B2 (en) * | 2008-11-03 | 2012-03-13 | Arm Limited | Standard cell placement |
US8495534B2 (en) | 2010-06-08 | 2013-07-23 | International Business Machines Corporation | Post-placement cell shifting |
US8612914B2 (en) | 2011-03-23 | 2013-12-17 | Synopsys, Inc. | Pin routing in standard cells |
US10162928B2 (en) * | 2015-12-02 | 2018-12-25 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method of designing a semiconductor device, system for implementing the method and standard cell |
US10282503B2 (en) | 2016-06-25 | 2019-05-07 | Qualcomm Incorporated | Mitigating length-of-diffusion effect for logic cells and placement thereof |
US10565341B2 (en) * | 2017-05-15 | 2020-02-18 | Taiwan Semiconductor Manufacturing Co., Ltd. | Constrained cell placement |
US20190138682A1 (en) * | 2017-11-07 | 2019-05-09 | Qualcomm Incorporated | Engineering change order (eco) cell architecture and implementation |
-
2018
- 2018-02-14 KR KR1020180018105A patent/KR102439861B1/ko active IP Right Grant
- 2018-09-20 US US16/136,497 patent/US10733349B2/en active Active
-
2019
- 2019-01-21 CN CN201910053597.9A patent/CN110162820B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959946A (zh) * | 2005-11-04 | 2007-05-09 | 松下电器产业株式会社 | 半导体装置的封装设计方法及制造方法和布局设计工具 |
US20160172375A1 (en) * | 2009-10-13 | 2016-06-16 | Tela Innovations, Inc. | Methods for Cell Boundary Encroachment and Semiconductor Devices Implementing the Same |
US20110093827A1 (en) * | 2009-10-16 | 2011-04-21 | Renesas Electronics Corporaion | Semiconductor device design method |
US20130086544A1 (en) * | 2011-10-03 | 2013-04-04 | International Business Machines Corporation | Consideration of local routing and pin access during vlsi global routing |
CN105718623A (zh) * | 2014-12-18 | 2016-06-29 | 三星电子株式会社 | 产生半导体电路布局的方法和*** |
CN106407491A (zh) * | 2015-07-30 | 2017-02-15 | 台湾积体电路制造股份有限公司 | 全局连接件布线方法及其执行*** |
US20170344686A1 (en) * | 2016-05-25 | 2017-11-30 | Taiwan Semiconductor Manufacturing Co., Ltd. | Systems and methods for minimum-implant-area aware detailed placement |
Non-Patent Citations (1)
Title |
---|
朱自然 等: "基于多阶段拆线重布的总体布线算法", 计算机辅助设计与图形学学报, vol. 28, no. 11, pages 2000 - 2008 * |
Also Published As
Publication number | Publication date |
---|---|
KR102439861B1 (ko) | 2022-09-02 |
US10733349B2 (en) | 2020-08-04 |
US20190251222A1 (en) | 2019-08-15 |
KR20190098318A (ko) | 2019-08-22 |
CN110162820B (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103430148B (zh) | 用于元件利用的状态分组 | |
CN105378494B (zh) | 具有用于独立测试多个dut的多个基于fpga的硬件加速器块的测试体系架构 | |
US10719470B2 (en) | Reconfigurable fabric direct memory access with multiple read or write elements | |
CN104246742B (zh) | 用于远程客户端访问存储设备的命令验证的技术 | |
CN108337910A (zh) | 用于软件定义的互连交换机的架构 | |
US9536035B2 (en) | Wide pin for improved circuit routing | |
CN107391421A (zh) | 通过串口传输数据的方法、客户端装置及数据转发装置 | |
CN105988877A (zh) | 基于硬件的设备间资源共享 | |
CN104050118B (zh) | 提供对设备功能的访问的装置、***和方法 | |
CN108025210A (zh) | 芯片上的游戏引擎 | |
US10133594B1 (en) | Flexible physical function and virtual function mapping | |
US10218357B2 (en) | Logical elements with switchable connections for multifunction operation | |
CN104731561B (zh) | 在simd处理单元中的任务执行 | |
CN107430565A (zh) | 具有多个独立微控制器的低接脚微控制器装置 | |
US20150334010A1 (en) | Route mapping at individual nodes of a cluster server | |
JP5894645B1 (ja) | 半導体装置及びその品質管理方法 | |
CN105027504A (zh) | 用于数据中心的可编程物理网络拓扑 | |
CN104729556B (zh) | 传感器校准装置和方法 | |
CN102412247A (zh) | 半导体器件和多层半导体器件 | |
CN105095110A (zh) | 可融合可重构缓存架构 | |
JP5644609B2 (ja) | 配線設計支援装置、配線設計支援方法、及びプログラム | |
CN109582613A (zh) | 用于存储器访问和调度的***、方法和装置 | |
CN105917414A (zh) | 非易失性存储器中冗余信息的管理 | |
US10255399B2 (en) | Method, apparatus and system for automatically performing end-to-end channel mapping for an interconnect | |
CN110162820A (zh) | 电子装置及制造半导体芯片的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |