使用自动焊接和自动克隆的电路中的连接的交互式布线的制作方法

文档序号:16367593发布日期:2018-12-22 08:30阅读:177来源:国知局
使用自动焊接和自动克隆的电路中的连接的交互式布线的制作方法

本申请要求2016年12月12日提交的美国专利申请第15/376,457号、2016年2月29日提交的标题为“methodtoquicklyperformcomplextrunktypeinteractiveroutingforrowsofmosfettransistors”的美国临时专利申请第62/301,050号、2016年2月29日提交的标题为“methodtoautomaticallyreproduceroutingpatternswheninteractivelyroutingrowsofmosfettransistors”的美国临时专利申请第62/301,048号以及2016年2月29日提交的标题为“methodtoquicklyandintuitivelydrawclonedwireconnectionsbetweenrowsofmosfettransistorsusinginteractiverouter”的美国临时专利申请第62/301,042号的优先权,其全部内容通过引证引入本文。

本公开总体上涉及用于半导体电路的布局涉及,更具体地,涉及使用交互式用户界面为诸如鳍式场效应晶体管(finfet)的电路元件进行布线。

背景技术

电路布局涉及通常在芯片设计工艺期间进行。一些电路布局设计工具使用跟随光标(ftc)交互式布线方法,其允许用户通过在屏幕上移动光标来绘制来自晶体管的布线连接。这种电路布局设计工具可首先绘制水平干线,然后基于用户输入绘制与mosfet晶体管的栅极、源极或漏极的各自连接。

然而,包括finfet的电路设计提出了针对这种ftc交互性布线方法的新挑战。当在电路设计中使用finfet时,数十、甚至数百的连接通向或来自finfet的单行。通过各自的手工鼠标点击来使这样的连接通向或来自finfet是非常耗时且效率低下的。可以应用一些现有的方案,诸如点对点交互式路由器(也已知为“引导布线路由器”)。但是即使这种点对点交互式路由器也在应用上受限,因为实际的布线结果仅在最后的鼠标点击上具体化。此外,非交互式布线工具(如批次路由器)不能为用户提供用于创建与用户想要的精确匹配的互连的精细粒度控制。

此外,针对finfet的行制造的连接通常在finfet的其他行中复制或者以相同形式或以修改形式应用。然而,用户难以提前获知用于finfet的特定连接是否可以相同形式或以修改形式成功地复制到另一finfet,而不引起与电路中的其他部件或连接的任何冲突。因此,会在可以实现可应用于所有finfet的可见配置之前重复多轮迭代,导致时间和成本的浪费。



技术实现要素:

实施例涉及电路中的布线连接。接收电路中的电路元件的初始管脚的选择,然后接收电路元件的终止管脚的选择。电路元件的终止管脚通过电路元件的至少一个中间管脚与初始管脚分离。生成将初始管脚、终止管脚和至少一个中间管脚连接至第一干线的电路的数字表达,而不接收表示至少一个中间管脚的选择的用户输入。

实施例涉及在至少一个电路元件中复制路线。映射信息表示电路中的至少一个电路元件的管脚的映射。接收至少一个电路元件的第一初始管脚的选择。在接收到第一初始管脚的选择之后接收至少一个电路元件的第一终止管脚的选择。映射信息表示至少一个电路元件的第二初始管脚到第一初始管脚的映射以及至少一个电路元件的第二终止管脚到第一终止管脚的映射。生成将第一初始管脚连接至第一终止管脚以及将第二初始管脚连接至第二终止管脚的电路的数字表达,而不接收表示第二初始管脚或第二终止管脚的选择的用户输入。

附图说明

图1是示出根据一个实施例的用于设计和制造集成电路的各种操作的流程图。

图2是示出根据一个实施例的用于执行电路的定制设计的计算设备的示例的高级框图。

图3是示出根据一个实施例的示例性交互式布线系统的框图。

图4a和图4b是出于解释的目的示出与一个或多个电路元件相关联的各种连接元件的示图。

图5a是示出根据一个实施例的基于用户输入通过交互式布线系统进行电路元件上的布线连接的示例性生成的示图。

图5b是根据一个实施例的在与鱼骨型布线结构对应的电路元件上生成布线连接的示例的示图。

图5c是示出根据一个实施例的在与脊椎型布线结构对应的电路元件上生成布线连接的示例的示图。

图6a和图6b是示出根据一个实施例的基于不同的用户输入的电路布局中的两个电路元件之间的干线的不同位置的示例的示图。

图7a和图7b是示出根据一个实施例的通过交互式布线系统自动地克隆布线连接的示例的示图。

图8a和图8b是示出根据一个实施例的当在复制连接的路径中遇到布线障碍时从电路元件镜像复制连接的示例的示图。

图9a至图9h是示出根据一个实施例的电路元件以及根据用户输入的接收建立的电路元件的不同克隆布线连接的示图。

图10a和图10b是示出根据一个实施例的在初始管脚的选择之后以及在电路元件的第二管脚的选择之前基于不同的用户输入由交互式布线系统生成的路线连接的不同示例的示图。

图11a至图11c是示出根据一个实施例的通过交互式布线系统从用户布线的连接克隆的连接的不同示例的示图。

图12a是示出根据一个实施例的通过交互式布线系统向电路元件或者从电路元件布线的多级连接的示例的示图。

图12b和图12c是示出根据一个实施例的通过交互式布线工具向电路元件或者从电路元件布线的多级连接的不同示例的示图。

图13a是示出根据一个实施例的当自动通孔放置功能(autoviadropfunction)被禁用时的连接的示图。

图13b是示出根据一个实施例的当自动通孔放置功能被使能时的连接的示图。

图14是示出根据一个实施例的修改从电路设计数据库接收的物理布局数据的处理的流程图。

图15是示出根据一个实施例的经由自动焊接生成布线连接的处理的流程图。

图16是示出根据一个实施例的经由自动克隆生成布线连接的处理的流程图。

具体实施方式

附图和以下描述仅通过说明的方式涉及示例性实施例。应该注意,根据以下讨论,本文公开的结构和方法的替代实施例将被容易地识别为可采用的可行替代。

实施例涉及电路中的连接的布线,其中与电路元件(例如,finfet的行)的连接基于用于另一连接的用户输入自动形成。当接收到用于电路元件的初始管脚和终止管脚的连接的用户输入时,自动地形成与电路元件中的中间管脚的连接,而不需要接收用于中间管脚的独立用户输入。附加地或备选地,可以复制与电路中的相同电路元件或不同电路元件的至少一个其他管脚的连接。可以通过考虑管脚的映射以及施加于电路的设计规则或其他限制来智能地执行连接的复制。连接可以是干线和分支的形式,并且随着接收用户输入而交互地显示。在接收到用户输入之后,生成如显示的具有连接的电力的数字表达。通过自动地建立与中间管脚的连接或者自动地复制连接,可以使电路中的连接的布线更加有效且耗时更少。

本文描述的电路元件是指电路布局中的元件。电路元件可以是有源电路元件(例如,晶体管)和无源电路元件(例如,电阻器、电容器和电感器)。在一个示例中,电路元件是具有多个管脚的finfet的行。

本文所述的管脚是指电路元件中可用于建立与相同或不同电路元件的一个或多个端子的连接的端子。管脚包括连接至一个或多个端子的活跃管脚以及连接被禁用的非活跃管脚。

本文描述的初始管脚表示电路元件中首先被用户输入选择(例如,管脚上的鼠标点击)的管脚,用以对自动地连接一个或多个管脚或者复制电路中的一个或多个连接的操作初始化。

本文描述的终止管脚是指选择其以结束通过配对的初始管脚的选择而初始化的自动连接一个或多个管脚或者复制一个或多个连接的操作的管脚。

本文描述的中间管脚是指初始管脚和终止管脚之间的管脚,通过初始管脚和终止管脚的选择自动地建立其连接而无需附加的用户输入。

本文描述的分支是指直接地延伸向管脚或者从该管脚延伸的连接。

本文描述的干线是指连接至多个管脚的连接。干线可以在与相对于与干线连接的分支延伸的方向形成角度(例如,90度)的方向上延伸。干线可以经由对应的分支连接至管脚。

eda设计流程的综述

图1是根据一个实施例的用于设计和制造集成电路的各种操作的流程图。设计处理1000开始于产品理念110的生成,并且在使用电子设计自动化(eda)软件112的设计处理中实现。当完成设计时,其可以下线134。在下线之后,制造136半导体裸片,以在集成电路设计中形成各种对象(例如,栅极、金属线、通孔)。执行封装和组装处理138,得到完成的芯片140。

eda软件112可以在诸如图2的计算设备200的一个或多个计算设备中实施。例如,eda软件112在计算机可读介质中存储为被处理器执行的指令,用于执行下面描述的设计流程的操作114-132。设计流程描述是为了说明的目的。具体地,这种描述不用于限制本公开。例如,实际的集成电路设计可以要求设计者以与本文描述的序列不同的序列来执行设计操作。

在系统设计114期间,设计者描述功能以实施。他们还可以执行假定计划(what-ifplaning)以精炼功能和检查成本。应注意,可以在该阶段发生硬件-软件架构划分。该阶段可使用的来自加州山景城的synopsys公司的示例性eda软件产品包括modelsystem产品。

在逻辑设计和功能验证116期间,写入用于电路中的模块的vhdl或verilog代码,并且检查设计的功能精度。更具体地,检查设计以确保其产生正确的输出。该阶段可使用的来自加州山景城synopsys公司的示例性eda软件产品包括design产品。

在合成以及用于测试的设计118期间,vhdl/verilog被翻译为网表。可以针对目标技术来优化网表。此外,可以设计和实施测试以检查完成的芯片。该阶段可使用的来自加州山景城synopsys公司的示例性eda软件产品包括designphysicaltestpowerfpga产品。

在网表验证120期间,检查网表是否符合定时约束以及是否与vhdl/verilog源代码对应。该阶段可使用的来自加州山景城synopsys公司的示例性eda软件产品包括产品。

在设计计划期间,针对定时和顶层布线构造和分析用于芯片的总体平面图。该阶段可使用的来自加州山景城synopsys公司的示例性eda软件产品包括和ic产品。

在物理实施期间,发生放置(电路元件的定位)和布线(它们的连接)。该阶段可使用的来自加州山景城synopsys公司的示例性eda软件产品包括和ic产品。本文描述的实施例主要涉及物理实施124。

在分析和提取126期间,在晶体管层级处验证电路功能,这又允许精炼。该阶段可使用的来自加州山景城synopsys公司的示例性eda软件产品包括和star产品。

在物理验证128期间,检查设计以确保用于制造、电问题、光刻问题和电路的正确性。该阶段可使用的来自加州山景城synopsys公司的示例性eda软件产品包括产品。

在分辨率增强130期间,执行布局的几何操作,以提高设计的制造性。该阶段使用的来自加州山景城synopsys公司的示例性eda软件产品包括af和产品。

在掩模数据准备132期间,提供用于掩模制造的“下线”数据,以制造完成的芯片。该阶段可使用的来自加州山景城synopsys公司的示例性eda软件产品包括族产品。可以在逻辑设计和功能验证116的阶段执行形式验证。通常在合成和用于测试的设计118或者网表验证120的阶段期间处理低功率设计规则。

示例性计算设备

图2是示出根据一个实施例的用于执行电路的定制设计的计算设备200的示例的高级框图。计算设备200包括耦合至芯片集204的至少一个处理器202。芯片集204包括存储器控制中心220和输入/输出(i/o)控制器中心222。存储器206和图形适配器212耦合至存储器控制器中心220,并且显示器218耦合至图形适配器212。存储设备208、键盘210、指向设备214和网络适配器216耦合至i/o控制器中心222。计算设备200的其他实施例具有不同的架构。

存储设备208是非易失性计算机可读存储介质,诸如硬盘驱动器、压缩盘只读存储器(cd-rom)、dvd或固态存储设备。存储器206保持被处理器202使用的指令和数据。指向设备214可以是鼠标、跟踪球或其他类型的指向设备,并且与键盘210组合用于将数据输入计算设备200。图形适配器212在显示器218上显示图像和其他信息。网络适配器216将计算设备200耦合至一个或多个计算机网络。

计算设备200适于执行用于提供本文描述的功能的计算机程序模块。如本文所使用的,术语“模块”是指用于提供特定功能的计算机程序逻辑。因此,可以硬件、固件和/或软件来实施模块。在一个实施例中,程序模块被存储在存储设备208上,加载到存储器206在并且被处理器202执行。所使用的计算设备200的类型可以根据实施例和要求而改变。例如,计算设备可以缺少显示器、键盘和/或图10所示的其他设备。

具体参照图3在下面描述的交互式布线系统300可以通过计算设备200来实施。

交互式布线系统

图3是示出根据一个实施例的示例性交互式布线系统300的框图。交互式布线系统300执行电路的布线连接的操作,在接收到用户输入时交互地显示连接的建立或修改来代替在接收到一系列用户输入之后对连接进行批量处理,并且不需要连接的中间显示。

如本文所使用的,术语“交互式”或“交互地”是指布线系统300的特征,其在接收到用户输入时实时或者近似实时地执行连接的显示。例如,在电路中的电路元件的管脚的第一次选择之后(例如,管脚的第一次鼠标点击),基于用户做出的用户的光标移动,连接的建立或修改被实时显示给用户,而不进行电路元件的另一管脚的进一步选择(例如,另一管脚的鼠标点击)。

为此,交互式布线系统300与电路设计数据库250通信,并且经由输入设备360(例如,键盘、鼠标)和输出设备(例如,显示设备368)与用户交互。在一个实施例中,输入设备360是图2所示的键盘210和指向设备214,并且显示设备368是图2所示的显示器218。经由输入设备210、214由用户提供的用户输入可以指示交互式布线系统300建立或修改通向/来自电路元件(例如,finfet)或者电路元件的管脚之间的连接,并且在显示器218上显示这种连接。

电路设计数据库350与交互式布线系统300交互,以提供物理布局数据352并且接收来自交互式布线系统300的修改物理布局数据354。如本文所使用的,物理布局数据352包括图案的物理几何布局、示意布局映射信息(以下称为“映射信息”)、金属层的数量以及与制造电路相关联的物理处理。

其中,映射信息可以指示一个或多个电路元件中的管脚成组为管脚的一个或多个子集以及一个或多个电路元件中的管脚与一个或多个电路元件中的其他管脚的对应关系。如下面参照图5a至图6b详细描述的,当管脚被指示为成组为管脚子集时,干线的管脚子集中的初始管脚的选择随后会导致相同管脚子集中的其他中间管脚的选择,而管脚的其他子集的中间管脚可以不被选择。

修改的物理布局数据354是通过交互式布线系统300相对于原始物理布局数据352修改的物理布局数据的版本。图案的物理几何布局是例如gdsii格式的电路的数字表达。修改的物理布局数据354包括物理布局数据352中的图案的物理几何布局中不存在的布线连接的图案的物理几何布局。表示电路的新生成连接的附加信息可以包括在修改的物理布局数据354中。

例如,电路设计数据库350可以修改为开放存取数据库。尽管电路设计数据库350被描述为与交互式布线系统300分离的部件,但电路设计数据库350可以是交互式布线系统300的一部分。例如,电路设计数据库350可以是存储器206中的模块。

在其他部件中,交互式布线系统300可以包括i/o控制器中心222、存储器206和图形适配器212。i/o控制器中心222接收来自输入设备360的用户输入以及来自交互式布线系统300外的电路设计数据库350的物理布局数据,处理接收到的用户输入以及接收到的物理布局数据,并且将处理后的信息提供给存储器206。

在其他模块中,存储器206可以包括设计规则检查(drc)模块321、默认布线规则模块322和设计分析模块323。存储器206可以包括图3中未示出的其他软件布局(例如,操作系统)。

drc模块321确定特定芯片的物理布局是否满足一系列设计规则。如本领域已知的,设计规则表示由半导体制造者推荐的一般参数,以确保可以通过半导体制造者制造适当的集成电路。当违反设计规则时,drc模块321将违例(violation)推给用户,用于校正动作或者自动地修改物理布局以符合设计规则。

默认布线规则模块322存储将在连接管脚和电路元件中使用的默认布线规则。例如,默认布线规则可以包括将被使用的默认布线图案(例如,图5b所示的鱼骨型布线结构或者图5c所示的脊椎型布线结构),并且鱼骨/脊椎型布线结构的使用可用作默认值,然后根据用户的选择进行更新。下面参照图5b和图5c详细描述由默认布线规则模块322设置的鱼骨和脊椎型布线结构。可以通过用户来改变存储在默认布线规则模块322中的默认布线规则。

设计分析模块323通过将与管脚相关联的连接复制到其他管脚的连接来执行自动连接操作。其中,设计分析模块323可以执行以下操作:(i)如下面参照图5a和图5c详细描述的,基于与电路元件的初始管脚相关联的用户输入执行干线型交互式布线,(ii)如下面参照图9a和图10b详细描述的,自动地复制与用户指定的初始布线图案相对应的连接,(iii)自动地确定用于克隆管脚的宽度和长度,以及(iv)如下面参照图8a和图8b详细描述的,当在路径中遇到障碍时改变布线连接(例如,通过镜像连接)。

示例性连接元件

图4a和图4b是出于解释的目的示出与一个或多个电路元件相关联的各种连接元件的示图。更具体地,图4a示出了与具有鱼骨型布线结构410的两个电路元件相关联的各种元件。在图4a中,具有鱼骨型布线结构410的各种元件包括多个管脚412a-412d(统称为“管脚412”)、对应于多个管脚的多个分支414a-414d(统称为“分支414”)以及经由分支连接管脚的干线416。更详细地,对于图4a所示的鱼骨型布线结构410,干线416从对应的电路元件连接位于干线两侧上的分支414。

管脚412可以是不同电路元件的部分。例如,管脚412a来自一个电路元件(这里没有示出完整表示)并且经由位于干线一侧的对应分支414a连接至干线416,并且管脚412b来自另一电路元件(这里没有示出完整表示)并且经由位于干线另一侧的对应分支414b连接至干线。备选地,所有管脚412可以是相同电路元件的部分。

出于说明的目的,图4a仅示出了一个示例性鱼骨型布线结构,其具有管脚412和干线416之间的布线连接,并且三个管脚412经由位于干线每一侧的对应分支414连接至干线416。在未示出的备选实施例中,在鱼骨型布线结构的干线的每一侧,不同数量的管脚和/或位于不同位置的管脚也可以连接至干线。

相反,图4b示出了与具有脊椎型布线结构450的一个电路元件相关联的各种元件。在图4b中,脊椎型布线结构450包括多个管脚462a-462d(统称为“管脚462”)、对应于多个管脚462的多个分支464a-464d(统称为“分支464”)、以及经由分支连接管脚的干线466。更详细地,对于图4b所示的脊椎型布线结构450,干线466连接仅位于一侧的分支464,并且所连接的管脚来自一个电路元件。

如图4b所示,包括在脊椎型布线结构中的管脚462属于单个电路元件。例如,管脚462a来自一个电路元件(这里没有示出完整表示)并且经由位于干线一侧的对应分支464a连接至干线466,并且位于干线另一侧的管脚472没有被选择与干线连接。

出于说明的目的,图4b仅示出了一个示例性脊椎型布线结构,其具有管脚462和干线466之间的布线连接,并且三个管脚462经由位于干线一侧(上侧)的对应分支464连接至干线466。在备选实施例(未示出)中,不同数量的管脚和/或位于不同位置的管脚也可以连接至干线,并且用于与干线连接的管脚可以是位于另一侧(底侧)的管脚。

使用自动焊接的连接

图5a是示出根据一个实施例的基于用户输入通过交互式布线系统300在电路元件510上生成布线连接500的示例的示图。在图5a中,表示finfet的两行的两个电路元件510被示为具有鱼骨型布线结构,并且它们中的每一个都进一步包括多个管脚。在图5a的示例中,finfet行的管脚被划分为两个子集,第一管脚子集502由粗线表示,并且第二管脚子集508由细线表示。如上面参照图3所描述的,在物理布局数据352的映射信息中指示这种管脚的成组,并且在一个实施例中,第一管脚子集502用于连接至干线506以形成布线连接500,而第二管脚子集508不用于连接至干线506。

在接收到表示第一子集中的初始管脚502a的选择的第一用户输入512(由圆圈512示出)之后,初始管脚502a首先经由分支504连接至干线。第一用户输入512可以是用户在初始管脚502a上的点击。作为第一用户输入512的结果,如图5a所示,分支504在相对于干线506的长度方向形成角度(例如,90度)的方向上延伸。

随着后续用户输入(由箭头514表示)被接收,干线506逐渐地延伸,并且与初始管脚502a相同子集的中间管脚502b、502c经由对应分支504与干线连接,而属于第二管脚子集的第二管脚子集508保持不连接至干线506。作为一个示例,随后的用户输入514是使得光标沿着finfet的行的纵向远离初始管脚502a移动的刷屏移动。如上所述,通过后续用户输入514形成与中间管脚502b、502c的连接,而不接收关于中间管脚502b、502c的进一步用户输入(例如,中间管脚502b、502c上的鼠标点击)。用户输入没有明确指示的自动将管脚连接至干线的这种操作在本文被称为“自动焊接”。

图5a所示的布线连接500是不完整的,这意味着布线连接基于光标513的移动或者其他用户输入经受进一步的改变。在接收到进一步的用户输入(例如,鼠标点击)之后,如下面参照图5b所描述的,完成布线连接。

图5b是示出根据一个实施例的在电路元件540a、540b(以下统称为电路元件540)上生成对应于鱼骨型布线结构的布线连接530的示例的示图。电路元件540a、540b表示两个finfet行。与图5a的示例相同,图5b中的finfet行的管脚被划分为两个子集,第一管脚子集532由粗线表示,并且第二管脚子集538由细线表示。类似于图5a,通过与图5b所示的finfet的行相关联的映射信息表示第一管脚子集532和第二管脚子集538的成组,并且第一管脚子集用于连接至干线536以形成布线连接530。

当通过交互式布线系统300接收到初始管脚532a上的第一用户输入(由圆圈546表示)时,生成并显示对应的分支534和干线536。随着后续用户输入(由箭头547表示)被接收到,干线536逐渐地延伸并且自动地经由分支534形成与初始管脚532a相同子集中的中间管脚532b和干线536之间的连接。作为一个示例,后续用户输入是使得光标在finfet的行的纵向上移动的扫描移动。

当接收到用于与初始管脚532a相同子集中的终止管脚532c的另一用户输入(由圆圈548表示)时,布线连接530被约束或者结束。存在两个终止管脚532c,一个在顶部finfet行中,另一个在底部finfet行中。任一终止管脚532c的选择将产生图5b所示的相同连接。如图5b所示,仅需要电路元件540上的两次点击和扫频运动来生成布线连接530的设计布局。作为通过选择终止管脚532c约束或结束终止管脚532c的结果,交互式布线系统300在电路设计数据库350中存储所显示的连接530。用于选择终止管脚的用户输入可以包括点击指向设备(例如,鼠标)、按压键盘上的特定一个或多个键或者将光标在管脚上浮置多于预定的次数。

图5c是示出根据一个实施例的在电路元件560上生成对应于脊椎型布线结构的布线连接550的示例的示图。基于用户的用户输入,通过交互式布线系统300生成布线连接550。在图5c中,电路元件560表示finfet的单行。与图5a和图5b的示例相同,图5c中的finfet行的管脚被划分为两个子集,第一管脚子集562由粗线表示,并且第二管脚子集567由细线表示。类似于图5a和图5b,通过与图5c所示的finfet的行相关联的映射信息来表示第一管脚子集562和第二管脚子集567的成组,并且第一管脚子集用于连接至干线536以形成布线连接550。

当通过交互式布线系统300接收第一用户输入(由圆圈572表示)时,生成并显示从第一初始管脚562a延伸的对应分支564以及干线566。当接收到后续用户输入(例如,表示沿着电路元件560的纵向且远离第一初始管脚562a的光标移动)时,干线566逐渐地延伸并且自动生成与第一初始管脚562a相同子集中的管脚562与干线566之间经由分支564的连接,而其他管脚子集567保持不连接。通过另一用户输入(由圆圈574表示),选择终止管脚562c,并且完成第一干线566与第一子集中的管脚562的第一组经由分支564的布线连接。

类似于第一干线566,当接收到关于第二初始管脚567a的用户输入(由圆圈576表示)、后续用户输入(表示沿着finfet行的纵向的光标移动)和最后的用户输入(由圆圈578表示)时,显示与第二干线和第二管脚子集567经由分支568相关联的布线连接。最后的用户输入指示选择管脚567c作为通过选择第二初始管脚567a初始化的操作的终止管脚。如图5c所示,只需要四次点击和两次扫频移动来完成finfet的行的管脚的连接。

尽管当选择初始管脚之后的不同后续用户输入表示不同路径时选择相同的初始管脚和终止管脚,可以基于相同的物理布局数据来形成不同的连接。例如,可以基于图6a和图6b所示的后续用户输入来改变干线的位置。图6a和图6b所示的布线连接具有鱼骨布线结构,并且显示两个电路元件(例如,两个晶体管行)。如图6a和图6b所示,第一电路元件610a和干线630之间的距离可以基于后续用户输入表示光标沿着路径622还是路径624移动而改变。更具体地,图6a所示的距离645短于图6b所示的距离655。可以在脊椎布线结构布局中实施与干线的距离的类似改变。

使用自动克隆的连接

图7a和图7b是示出根据一个实施例的通过交互式布线系统300自动地克隆连接的示例的示图。图7a示出了finfet710a和710b的两行,而图7b示出了在接收到用于建立finfet710a的连接的用户输入时用于finfet710b的连接被自动复制。如上面参照图3所描述的,通过映射信息表示finfet710a的管脚与finfet710b的管脚之间的关系。在图7a和图7b的实施例中,假设映射信息指示finfet710a的行中的第n个管脚被映射到finfet710b的行中的第n个管脚。

当交互式布线系统300接收到表示初始管脚722的选择的第一用户输入(例如,由用户操作的光标711在初始管脚722上的点击)时,也通过交互式布线系统300选择第二电路元件710b中的映射管脚732。此后,与初始管脚722相关建立的任何连接也被复制用于与映射管脚732相关联的连接。在说明书中,被复制的连接被称为“复制连接”、“复制布线连接”、“克隆连接”或“克隆布线连接”。基于管脚的映射复制连接而不需要这些连接的特定用户选择(例如,鼠标点击)的这种操作在本文被称为“自动克隆”。

即,在接收到电路元件710a上的第一用户输入(例如,初始管脚722上的点击)时,生成并显示初始分支724和对应干线726(也称为初始干线),同时生成并显示对应于初始分支724的复制分支734以及对应于初始干线726的复制干线736。随着接收到后续用户输入(表示在左方向上远离初始管脚722的水平光标移动),初始干线726和复制干线736同时向右延伸。

图8a和图8b是示出根据一个实施例的当在复制连接的路径中遇到布线障碍时从电路元件镜像复制连接的示例的示图。图8a示出了根据一个实施例的电路元件810a和810b的示例,其中具有与计划的复制连接干涉的布线障碍840。如上文参照图7a和图7b所描述的,基于用户输入生成与电路元件810a相关联的布线连接以及与电路元件810b相关联的复制连接。然而,在图8a中,在复制干线836的路径中存在布线障碍840。示例性布线障碍可以是另一电路元件或者一些其他连接。设计分析模块323检测这种障碍,并且自动地进行下面在图8b中描述的补救措施。

图8b示出了根据一个实施例的响应于检测到布线障碍840通过交互式布线系统300进行镜像克隆的示例。如图8b所示,在设计分析模块323检测到与计划的复制干线836干涉的布线障碍840之后,设计分析模块323相对于电路元件810b的水平轴翻转复制分支856的位置。翻转版本也被称为电路元件810a的布线连接的“镜像克隆”。

图8a和图8b仅示出了布线障碍的一个示例以及通过交互式布线系统300进行的实时分析和响应(例如,镜像克隆)的示例,并且在未示出的备选实施例中,当遇到布线障碍时,可以通过交互式布线系统采取其他类型的补救措施。

图9a至图9h是示出根据一个实施例的电路元件以及根据接收到不同的用户输入建立的电路元件的不同克隆布线连接的示图。图9a至图9h还示出了交互地生成并显示电路元件的不同克隆连接。更具体地,图9a示出了在生成克隆布线连接之前的finfet905的行,以及图9b至图9h示出了根据各个实施例的基于不同用户输入的克隆布线连接的多个示例920至980。finfet905的行包括第一管脚子集903和第二管脚子集904,它们的成组通过与finfet905的行相关联的映射信息来指示。

图9b至图9h所示的示例性920-980示出了基于不同用户输入(例如,由用户指定的初始连接)的不同克隆连接。出于说明的目的,如本文所使用的,术语“初始连接”表示基于用户的输入(例如,初始管脚上的点击以及远离初始管脚的光标移动)由用户指定的连接。例如,初始连接包括初始干线以及连接干线和对应管脚的分支。如本文所使用的,术语“克隆连接”表示通过交互式布线系统300自动生成的克隆连接。例如,克隆连接包括复制干线以及连接对应管脚和复制干线的复制分支。在一个实施例中,在图9b至图9h的每一个中,只有一次鼠标点击用于选择对应电路元件的初始管脚,并且执行和显示克隆连接而无需用于选择终止管脚的又一鼠标点击,这表明基于实时用户输入(例如,光标移动)交互地生成克隆连接。直到选择与初始管脚相对应的终止管脚,初始连接和克隆连接可以根据实时用户输入来改变。在选择终止管脚之后,初始连接和克隆连接被交付,并且交互式布线系统300将它们存储在电路设计数据库350中。

更具体地,图9b所示的示例920示出了由用户输入(例如,点击和光标移动)指定的初始连接922以及多个复制连接928。更具体地,初始连接922横跨两个相邻管脚,并且在finfet的生成初始连接的相同行上存在五个复制连接928。

图9c所示的示例930示出了由另一用户输入(例如,点击和光标移动)指定的另一初始连接932以及多个复制连接938。更具体地,初始连接932横跨三个连续管脚,并且在生成初始连接的相同电路元件上存在三个复制连接938。

图9d所示的示例940示出了由另一用户输入(例如,点击和光标移动)指定的另一初始连接942以及多个复制连接948。更具体地,初始连接942横跨四个连续管脚,并且在生成初始连接942的相同电路元件上存在三个复制连接948a-948c。在三个复制连接948a-948c中,由于第一管脚子集的数量不足,第一和第三复制连接948a和948c均仅横跨两个管脚扩展,并且这两个复制连接948a和948c中的干线的长度具有与初始连接942的干线相同的长度。相反,通过充足的管脚,第二复制连接948b具有与初始连接942相同的长度和配置。

图9e所示的示例950示出了由另一用户输入(例如,点击和光标移动)指定的另一初始连接952以及多个复制连接958。更具体地,初始连接952横跨五个连续管脚,并且由于第一子集不存在其他管脚,只生成一个复制连接958,并且复制连接横跨保留的第一子集的所有五个管脚,并且复制连接958中的干线的长度与初始连接952的干线的长度相同。

图9f所示的示例960示出了由用户输入(例如,点击和光标移动)指定的另一初始连接962以及一个复制连接968。类似于示例950,初始连接962也横跨五个连续管脚,并且由于第一子集不存在其他管脚,只生成一个复制连接958,并且复制连接横跨保留的第一子集的所有五个管脚。示例960与示例950的不同在于,由于进一步的光标移动,初始连接962和复制连接968中的干线的长度长于连接952和958中的干线的长度。

图9g所示的示例970示出了由另一用户输入(例如,点击和光标移动)指定的另一初始连接972以及一个复制连接978。更具体地,初始连接972横跨六个连续管脚,其中第一子集的前五个管脚是连续的且第一子集的第六管脚与前五个通过它们之间的第二子集的管脚分离。此外,由于电路元件905中的第一子集不存在其他管脚,所以只有一个复制连接978横跨所有剩余的第一子集的五个管脚,并且复制连接978和初始连接972中的干线的长度相同。

图9h所示的示例980示出了由用户输入(例如,点击和光标移动)指定的另一初始连接982,没有生成复制连接。更具体地,初始连接982横跨十二个管脚,其中第一子集的前六个管脚是连续的且第一子集的后六个管脚与前六个通过它们之间的第二子集的管脚分离。此外,由于第一子集不充足的管脚,不能够在同一电路元件中生成复制连接978。

在使用交互式布线系统300进行布线处理期间,如图9a至图9h所示,随着用户输入被接收,逐渐地更新初始连接和复制连接。随着光标移动到不同的水平位置,实时地修改初始连接和复制连接,并将它们显示给用户。因此,用户可以直观地并且更加有效地根据需要设计连接。

图10a和图10b是示出根据一个实施例的在选择初始管脚之后且在选择电路元件的第二管脚之前基于不同的用户输入通过交互式布线系统300生成的布线连接的不同示例的示图。图10a和图10b均示出了finfet1005至1008的四行,其中finfet1005和1006的行是通过用户经由光标操作的原始电路元件,并且finfet1007和1008的行是根据原始电路元件1005、1006的布线连接生成的克隆连接的电路元件。如图9a至图9h的示例,finfet1005-1008的行具有第一管脚子集1012和第二管脚子集1013。

更具体地,在图10a中,当接收到第一用户输入1025(例如,初始管脚1012a上的点击)时,生成并显示与初始管脚1012a和第一子集中的其他管脚1012b相对应的分支1014以及经由分支1014与第一管脚子集连接的干线1016。同时,对于finfet1007的行,实时地通过交互式布线系统300自动生成并显示映射至初始管脚1012a的管脚1032以及包括复制分支1044和复制干线1046的复制连接。

类似地,随着接收到表示远离分支1014且沿着路径1021的光标移动的后续用户输入,生成并显示包括finfet1005的行的六个管脚的布线连接,同时通过交互式布线系统300自动地生成和显示包括第一子集的六个管脚的用于finfet1007的复制连接。在图10a中,不生成针对电路元件1006和1008的连接。

在图10b中,对于与图10a中的电路元件相同的具有第一子集的管脚1012和第二子集的管脚1013的相同四个电路元件1005-1008,当用户输入指示在电路元件1006下方下拉光标时,布线连接横跨电路元件1005和1006扩展。更具体地,在接收到第一用户输入1065(例如,初始管脚1012a上的点击)之后,后续用户输入表示首先远离初始管脚1012a通过分支1054并通过电路元件1006中的管脚1012b、然后沿着电路元件1006的纵向远离管脚1012b的光标移动。因此,在电路元件1006下方形成干线1056。图10b示出了由用户输入指定的布线连接横跨两个电路元件1005和1006。

响应于用户输入指定的布线连接,同时,实时地通过交互式布线系统300自动生成并显示横跨电路元件1007和1008的克隆连接。更详细地,自动地选择映射到电路元件1005中的初始管脚1012a的管脚1072,并且实时地自动生成并显示对应于分支1054的复制分支1074和对应于干线1056的复制干线1076。

如上文参照图10a和图10b所描述的,通过改变在选择终止管脚之前得到的路径,可以通过不同的布线配置来连接相同组的电路元件(例如,电路元件1005-1008)。这种不同的配置可以随着光标移动实时显示,从而有利于与布线连接相关联的操作。

图11a至图11c是示出根据一个实施例的通过交互式布线系统300从用户布线的连接克隆的连接的不同示例的示图。通过用户输入(未示出)指定图11a至图11c所示的初始连接1110,并且通过交互式布线系统300生成以及显示。

图11a示出了根据一个实施例的自动克隆配置,其中在finfet的不同行之间生成两个克隆连接1130。图11a中使用的映射信息指示finfet的每一行的第n个管脚到finfet的每一行的第(n+6m)个管脚的映射,其中m和n是整数。因此,作为初始管脚的finfet的上行中的第一管脚的选择导致为克隆连接选择作为初始管脚的finfet的上行中的第7个和第13个管脚,并且作为终止管脚的finfet的下行中的第4个管脚的选择导致为克隆连接选择作为终止管脚的finfet的下行中的第10个和第16个管脚。

图11b示出了根据一个实施例的自动克隆,其中与具有初始连接1110的一对finfet行不同的另一对finfet行之间生成一个克隆连接1150。初始连接1100的生成使得克隆连接1150被生成。图11b中使用的映射信息指示finfet的四行的管脚与用户布线的连接不同对的元件中的克隆连接的映射。更具体地,finfet的第m行中的第n个管脚被映射到finfet的第(m+3)行中的第n个管脚,其中m和n表示整数。

图11c示出了根据一个实施例的自动克隆,其中在finfet的多个管脚和多行之间生成五个克隆连接1170。图11c中使用的映射信息指示finfet的第i行的第n个管脚映射到finfet的第i行的第(n+6m)个管脚以及finfet的第(i+2)行的第(n+6m)个管脚,其中m、n和i表示整数。

图11a至图11c仅示出了基于用户指定的相同初始连接1110的不同自动配置的三个示例,并且在未示出的备选实施例中,可以示出基于初始连接1110的其他自动配置,并且作为一个示例,生成并显示克隆连接。

多级连接

图12a是示出根据一个实施例的通过交互式布线系统通向/来自电路中的电路元件布线的多级连接的示例的示图。本文描述的多级连接是指电路中的连接的等级集合,其具有位于一个或多个电路元件的管脚之间的多个第一级连接以及至少连接多个第一级连接的子集的至少一个第二级连接。

在图12a中,示出了第一级连接1210、在第一级连接1210的顶部上生成的第二级连接1220以及在第二级连接1220的顶部上生成的第三级连接1230。在生成第一级连接1210以提供管脚p之间的连接之后,第一级连接变为用于形成第二级连接1220的基础。

类似地,在生成第二级连接1220之后,第二级连接被用作用于生成第三级连接1230的基础。更详细地,作为一个示例,第一级连接1210可以是经由分支连接至管脚1202的干线,第二级连接1220是桥接两个第一级连接1210的连接,并且第三级连接1230是桥接两个第二级连接1220的另一连接。

图12b和图12c是示出根据一个实施例的通过交互式布线系统300通向/来自电路中的电路元件布线的多级连接的不同示例的示图。更具体地,图12b和图12c示出了根据一个实施例的基于第一级连接1240的第二级连接1250和第三级连接1260的自动克隆配置1200、1201的示例。

图12b和图12c均示出了包括finfet1232、1234、1236和1238的多行(例如,晶体管行)的自动克隆配置1200,每一行都进一步包括被成组为不同子集的用于连接的管脚1241、1242。在图12b和图12c中,第一级连接1240可以包括由用户输入指定的初始连接1240a,并且通过交互式布线系统300自动地生成克隆连接1240b、1240c和1240d。在图12b中,第二级连接1250包括由用户输入指定的初始第二级连接1250a。即,在接收到由圆圈1252表示的第一用户输入之后(例如,所选第一级连接1240a上的点击),通过交互式布线系统300自动地选择映射到初始第一级连接1240a的第一级连接1240b-1240d。随着接收到表示向上光标移动的后续用户输入(由箭头1253表示),初始第二级连接1250a横跨三个第一级连接1240a、1240e和1240f延伸,并且初始第二级连接用于连接三个第一级连接。同时,通过交互式布线系统300实时地自动生成并显示与映射的第一级连接1240b-1240d相对应的三个克隆第二级连接1250b-1250d,并且每个克隆第二级连接均连接第一级连接的对应集合。

在图12c中,第三级连接1260包括由用户输入指定的初始第三级连接1260a。即,在接收到由圆圈1262表示的第一用户输入之后(例如,所选第二级连接1250a上的点击),通过交互式布线系统300实时地自动选择映射的第二级连接1250b-1250d。随着接收到表示水平光标移动的后续用户输入(由箭头1263表示),初始第三级连接1260a延伸,并且初始第三级连接用于将第二级连接1250a连接至另一个或另一集合的第二级连接(图12c中未示出)。同时,还通过交互式布线系统300自动地生成并显示与映射的第二级连接1250b-1250d相对应的三个克隆第三级连接1260b-1260d,并且每一个克隆第三级连接都用于将对应的第二级连接与另一第二级连接或另一集合的第二级连接相连。

自动通孔放置功能

图13a是示出根据一个实施例的当禁用自动通孔放置功能时的连接的示图。在一些实施例中,交互式布线系统300能够实现两种模式的布线连接:能够在更高级布线连接横穿更低级布线连接的同时进行通孔放置的模式以及通孔放置不被使能的另一模式。如图13a所示,自动通孔放置功能被关闭,在这种情况下,在更高级连接1340横穿更低级连接1320之后,没有在两个连接之间的交点处添加通孔。

自动通孔放置功能允许交互式布线系统300以节省的时间和成本方便、快速且自动地将通孔添加至可能的位置(例如,两个或更多个不同连接之间的交点)。

图13b是示出根据一个实施例的当自动通孔放置功能被使能时的连接的示图。在这种情况下,在更高级连接1340横穿更低级连接1320之后,通孔1350被添加至两个连接之间的交点。

自动焊接或自动克隆的示例性处理

图14是示出根据一个实施例的通过交互式布线系统300修改从电路设计数据库350接收的物理布局数据的处理的流程图。初始地,交互式布线系统300接收来自电路设计数据库350的识别原始电路设计布局的物理布局数据(1410)。

交互式布线系统300接收来自用户的用户输入(1420)。交互式布线系统300通过自动焊接和/或自动克隆基于接收到的用户输入修改接收到的物理布局数据(1430)。

交互式布线系统300将修改的物理布局数据354输出回到电路设计数据库350(1440)。在一个实施例中,接收来自用户的用户输入(1420)和修改接收到的物理布局数据(1430)的处理可以重复多次。可以通过用户输入的接收(1420)实时地执行物理布局数据的这种修改。在其他实施例中,可以在修改接收到的物理布局数据(1430)之前,接收批量的用户输入(1420)。

图14所示的流程图仅仅是一个示例。例如,可以在接收到用户输入(1420)和修改接收到的物理布局数据(1430)之后执行设计规则的执行合规的附加处理。

图15是示出根据一个实施例的经由自动焊接生成布线连接的处理的流程图。初始地,交互式布线系统300显示电路中的电路元件(例如,fet的行)(1510)。

响应于接收电路元件的初始管脚的选择(1520),交互式布线系统300显示从初始管脚延伸的第一分支(1530)。交互式布线系统300接收表示远离第一分支的移动的用户输入(1540),并且基于用户输入显示从第一分支延伸的干线(1550),第一分支将初始管脚连接至第一干线。

交互式布线系统300还基于表示移动的第一用户输入显示将电路元件的中间管脚连接至干线的至少第二分支(1560)。在不接收选择中间管脚的独立用户输入的情况下建立第二分支和干线之间的连接。

交互式布线系统300还接收电路元件的终止管脚的选择(1565)。终止管脚通过至少一个中间管脚与初始管脚分离。

交互式布线系统300生成具有与所显示的电路元件相关联的连接的电路的数字表达(1570)。电路的数字表达可保存在数据库中。

图15所示的流程图仅仅是一个示例,并且在备选实施例中,一些步骤是不需要的或者需要包括附加或不同的步骤。作为一个示例,对于接收到的要求图12a至图12c所示的多级连接的物理布局数据来说,可以执行附加步骤来生成第二级或第三级连接。

图16是示出根据一个实施例的通过交互式布线系统300经由自动克隆生成布线连接的处理的流程图。交互式布线系统300接收指示电路中的至少一个电路元件的管脚的映射的映射信息(1610)。

交互式布线系统300接收至少一个电路元件的第一初始管脚的选择(1620),其中映射信息指示至少一个电路元件的第二初始管脚到第一初始管脚的映射。

在接收到第一初始管脚的选择之后,交互式布线系统300接收至少一个电路元件的第一终止管脚的选择(1630),映射信息指示至少第一电路元件的第二终止管脚到第一终止管脚的映射;以及

交互式布线系统300生成电路的数字表达(1640),其将第一初始管脚连接至第一终止管脚并且将第二初始管脚连接至第二终止管脚而不接收表示第二初始管脚或第二终止管脚的选择的用户输入。电路的数字表达可保存在数据库中。

图16所示的流程图仅仅是一个示例,并且在备选实施例中,一些步骤是不需要的或者需要包括附加或不同的步骤。

在不背离如所附权利要求限定的本发明的精神和范围的情况下,可以在本文公开的本公开的方法和装置的布置、操作和细节中进行本领域技术人员明白的各种其他修改、改变和变化。因此,应该通过所附权利要求及其等效物来确定本发明的范围。

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