创建和重用可定制的结构化互连的制作方法

文档序号:15739562发布日期:2018-10-23 22:03阅读:196来源:国知局
创建和重用可定制的结构化互连的制作方法

本申请要求于2016年2月29日提交的题为“Method to Create and Reuse Customizable Structured Interconnects”的序列号为62/301,059的美国临时专利申请的权益,其通过引用整体并入本文。

技术领域

本公开一般涉及设计集成电路(IC),并且更具体地涉及可重用的定制结构化互连设计。



背景技术:

布线是集成电路设计的组成部分,但是由于布线问题的棘手属性,批量布线器很少实现真正的最佳结果。相反,它们依靠启发式来实现通常关注诸如成本之类目标的“足够好”的结果。定制布线通常与这些目标不一致,因为它们频繁需要批量布线器不考虑的特征,诸如对称性或冗余度。冗余度尤其是一个问题,因为从批量布线器的角度来看它固有地不是“必要的”,并且因此是应被降低的成本。因此,通常手动执行可定制的布线,这是繁琐且耗时的。此外,针对相似布局重用精心设计的结构化互连通常需要进行大量调整,这些调整同样是耗时的。



技术实现要素:

实施例涉及可定制布线系统,其使设计者能够创建定制连接布局,其可以被存储、导出为模板、重用和定制。这样可以节省设计者的时间,不需要为每个设计手动构建每个定制连接布局,也不需要为相似但不同的电路手动修改。通过根据指定其图案和属性而不是使用精确维度的“结构指令”来描述设计者输入的定制连接布局,除了重新应用于相同的设计之外,可定制布线系统还可以生成可应用于相似设计或将来进一步定制的布局模板。这使设计者能够在具有不同连接性信息的另一设计中进行设计修改或遵循先前设计的结构原理。此外,诸如通过设计约束,通常在布线过程期间实现结构指令,这允许布线器在反映设计者的结构意图的同时(例如,针对成本或线长度)改进设计。

在一个实施例中,可定制布线系统通过接收用于一个或多个电路元件的连接性信息和用户定义的布局来生成定制布局连接,该用户定义的布局示出了一个或多个电路元件之间的连接的物理布局。该连接性信息可以采用示意图或网表的形式。用户定义的布局包括初始结构组件,并且可以经由图形界面或现有视觉表示中的交互式绘制来传达。然后,诸如通过分析布局来确定可以被用来描述连接的物理结构的一个或多个结构指令,可定制布线系统从用户定义的布局中提取一个或多个结构指令。每个结构指令描述一个或多个电路元件之间的连接的物理布局的属性,诸如结构组件(例如,骨架或鱼骨)之间的特定连接图案、特定结构组件的放置、宽度、方向或层、以及结构组件相对于其他结构组件的属性。结构指令可以指定相对于一个或多个行的连接的放置,在所述一个或多个行处布置了所述一个或多个电路元件的至少一个电路元件。例如,可以将连接放置得更靠近对应行而不是一行或多行中的两行之间的通道的中心。可定制布线系统将一个或多个结构指令存储为所接收的连接性信息的布局模板,其然后可以被选择(并且如果期望的话,可以被修改)并被应用于未来的设计。可定制布线系统可以进一步布线一个或多个电路元件,同时保持结构指令所描述的属性。

在一个实施例中,可定制布线系统基于现有布局模板来学习和/或复制定制图案。具体地,可定制布线系统存储一个或多个布局模板,每个布局模板表示源电路的一个或多个源电路元件之间的连接的物理布局。每个布局模板包括描述连接的对应物理布局的属性的结构指令。可定制布线系统标识与用于目标电路的一个或多个目标电路元件的连接性信息相关的一个或多个布局模板。目标电路元件的连接性信息可以匹配用于所标识的一个或多个布局模板中的至少一个布局模板的一个或多个源电路元件的连接性信息。可替代地,目标电路元件的连接性信息可以是连接性信息的缩放版本,其添加或移除所标识的一个或多个布局模板中的至少一个布局模板的(串联或并联的)器件。多个所标识的一个或多个布局模板可以表示用于相同的一个或多个源电路元件的物理布局。可定制布线系统将所标识的一个或多个布局模板的结构指令应用于目标电路的一个或多个目标电路元件,以用于布线一个或多个目标电路元件。可定制布线系统可以通过如下操作来应用所标识的一个或多个布局模板:标识对布局模板的一个或多个修改、根据一个或多个修改来修订所标识的一个或多个布局模板的结构指令并发送修订的结构指令以用于布线一个或多个目标电路元件。修改可以包括添加一个或多个冗余连接。可以通过如下操作来标识修改:确定一个或多个目标电路元件的连接性信息与所标识的一个或多个布局模板的一个或多个源电路元件的连接性信息之间的一个或多个差异,然后考虑该一个或多个差异。可定制布线系统可以进一步将用于目标电路元件的连接性信息划分为多个组块,并且一个或多个布局模板中的每个所标识的布局模板可以对应于多个组块中的一个组块。

附图说明

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

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

图3是图示出根据一个实施例的可定制布线系统的架构的框图。

图4A至图4E是根据一个实施例的对应于各种结构指令的示例连接布局的视觉表示。

图5是图示出根据一个实施例的用于创建布局模板的方法的流程图。

图6A是根据第一实施例的IC的一部分的示意图。

图6B是根据第一实施例的与图6A中的IC的一部分相对应的连接图。

图6C是图示出根据第一实施例的与图6B的连接图相对应的定制连接布局的布局图。

图7A是根据第二实施例的IC的一部分的示意图。

图7B是根据第二实施例的与图7A中的IC的一部分相对应的连接图。

图7C是图示出根据第二实施例的与图7B的连接图相对应的定制连接布局的布局图。

图8是图示出根据一个实施例的用于定制现有布局模板的方法的流程图。

图9A和图9B是图示出根据一个实施例的已被进一步定制以供重用的定制连接布局的布局图。

图10A和图10B是图示出根据一个实施例的示意图中示出的IC的定制布局模板集合及其对应部分的示图。

图11是图示出根据一个实施例的用于自动适配现有布局模板以供重用的方法的流程图。

图12A是根据第一实施例的与可用于重用的现有布局模板不同的连接图。

图12B是图示出根据第一实施例的与图12A的连接图相对应的连接布局的布局图。

图13A是根据第二实施例的与可用于重用的现有布局模板不同的连接图。

图13B是图示出根据第二实施例的与图12A的连接图相对应的连接布局的布局图。

具体实施方式

附图和以下描述仅通过说明的方式涉及优选实施例。应当注意,从以下讨论中,将很容易将本文所公开的结构和方法的替代实施例识别为在不脱离所要求保护的原理的情况下采用的可行替代方案。

现在将详细参考若干实施例,其示例在附图中被图示出。注意,在可行的情况下,可以在附图中使用类似或相似的附图标记,并且其可以指示类似或相似的功能性。附图仅出于说明的目的描绘了所公开的系统(或方法)的实施例。本领域技术人员将从以下描述中容易地认识到,可以采用本文所图示的结构和方法的替代实施例而不脱离本文所述的原理。

实施例涉及布局模板,布局模板包括结构指令,结构指令描述结构组件之间的特定连接图案、特定结构组件的布置、宽度、方向或层、以及结构组件相对于其他组件的属性。模板可以由用户生成或通过分析源电路的源电路元件之间的连接的物理布局而自动生成。布局模板可以在没有修改的情况下被应用或者通过修改而应用于目标电路的目标电路元件,以用于执行在目标电路元件之间的布线。

本文所描述的电路元件是指电路布局中的元件。电路元件可以是有源电路元件(例如,晶体管)或无源电路元件(例如,电阻器、电容器和电感器)。

本文所描述的结构组件是指在电路元件的引脚之间创建物理连接的分支(tap-off)、主干(trunk)和脊柱(spine)。分支是指直接延伸到引脚或从引脚直接延伸的连接。主干是指连接到多个引脚的连接。脊柱连接主干和/或其他脊柱。

EDA设计流程的概述

图1是图示出根据一个实施例的用于设计和制造集成电路的各种操作的流程图。设计过程100从产生产品构思110开始,产品构思110在使用电子设计自动化(EDA)软件112的设计过程期间被实现。当设计完成时,可以对其进行流片(tape-out)134。在流片后,制造136半导体管芯以形成在集成电路设计中的各种对象(例如,栅极、金属层、通孔)。执行封装和组装过程138,这导致成品芯片140。

可以在诸如图2的计算设备200之类的一个或多个计算设备中实现EDA软件112。例如,EDA软件112被存储为计算机可读介质中的指令,该指令由处理器执行以用于执行设计流程的操作114-132,这将在下面描述。该设计流程描述是为了说明的目的。特别地,该描述并不意味着限制本公开。例如,实际的集成电路设计可能需要设计者以与本文所述的顺序不同的顺序执行设计操作。

在系统设计114期间,设计者描述要实现的功能性。他们还可以执行“假设计划”(what-if planning)以将功能性精细化并检查成本。注意,硬件-软件架构划分可以在此阶段发生。可以在此阶段使用的来自加利福尼亚州山景城的Synopsys公司的示例EDA软件产品包括:ModelSystem和产品。

在逻辑设计和功能验证116期间,编写用于电路中的模块的VHDL或Verilog代码,并为了功能准确性而检查设计。更具体地说,检查设计以确保它产生正确的输出。可以在此阶段使用的来自加利福尼亚州山景城的Synopsys公司的示例EDA软件产品包括:10和产品。

在用于测试的合成和设计118期间,VHDL/Verilog被转换为网表。该网表可以针对目标技术而被优化。此外,可以设计测试和实施测试以检查成品芯片。可以在此阶段使用的来自加利福尼亚州山景城的Synopsys公司的示例EDA软件产品包括:DesignPhysicalPowerFPGA和产品。

在网表验证120期间,针对与定时约束的符合性以及与VHDL/Verilog源代码的对应性而检查网表。可以在此阶段使用的来自加利福尼亚州山景城的Synopsys公司的示例EDA软件产品包括:和产品。

在设计计划122期间,构建并分析芯片的总体平面图以用于定时和顶级布线。可以在此阶段使用的来自加利福尼亚州山景城的Synopsys公司的示例EDA软件产品包括:和IC产品。

在物理实现124期间,发生放置(电路元件的定位)和布线(其连接)。可以在此阶段使用的来自加利福尼亚州山景城的Synopsys公司的示例EDA软件产品包括:Custom和IC产品。本文所描述的实施例主要涉及物理实现124。

在电路分析126期间,在晶体管级验证电路功能,这允许精细化。可以在此阶段使用的来自加利福尼亚州山景城的Synopsys公司的示例EDA软件产品包括:和Star产品。

在物理验证128期间,检查设计以确保以下方面的正确性:制造、电气问题、光刻问题和电路系统。可以在该阶段使用的来自加利福尼亚州山景城的Synopsys公司的示例EDA软件产品包括产品。

在分辨率增强130期间,执行布局的几何操纵以改善设计的可制造性。可以在该阶段使用的来自加利福尼亚州山景城的Synopsys公司的示例EDA软件产品包括:AF和产品。

在掩模数据准备132期间,提供用于生产掩模以生产成品芯片的“流片”数据。可以在该阶段使用的来自加利福尼亚州山景城的Synopsys公司的示例EDA软件产品包括系列产品。可以在逻辑设计和功能验证116的阶段执行形式验证。通常在针对测试118或网表验证120的阶段合成和设计期间处理低功率设计规范。

可以在一个或多个上述阶段期间使用本公开的实施例。具体地,实施例可以用于设计计划122和物理实现124的过程。

计算设备概述

图2是图示出能够从机器可读介质读取指令并在处理器(或控制器)中执行它们的示例机器的组件的框图。具体地,图2示出了计算机系统200的示例形式的机器的图形表示,在其中可以执行用于致使机器执行本文所讨论的任何一种或多种方法的指令224(例如,软件)。在替代实施例中,机器作为独立设备操作或者可以连接(例如,联网)到其他机器。在联网部署中,机器可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力进行操作,或者作为对等(或分布式)网络环境中的对等机器进行操作。

机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、智能手机、web设备、网络布线器、交换机或网桥、或能够执行指令224(顺序的或以其他方式)的任何机器,所述指令指定机器要采取的动作。此外,虽然仅图示出了单个机器,但术语“机器”还应被视为包括单独或联合执行指令224以执行本文所讨论的任何一种或多种方法的任何机器集合。

示例计算机系统200包括处理器202(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或多个专用集成电路(ASIC)、一个或多个射频集成电路(RFIC)或这些的任何组合)、主存储器204和静态存储器206,它们被配置为经由总线208而彼此通信。计算机系统200还可以包括:图形显示单元210(例如等离子体显示面板(PDP)、液晶显示器(LCD)、投影仪或阴极射线管(CRT))。计算机系统200还可以包括字母数字输入设备212(例如键盘)、光标控制设备214(例如鼠标、轨迹球、操纵杆、运动传感器或其他指向仪器)、存储单元216、信号发生设备218(例如扬声器)和网络接口设备220,它们也被配置为经由总线208而进行通信。

存储单元216包括机器可读介质222,其上存储有体现本文所描述的方法或功能中的任何一个或多个的指令224(例如,软件)。指令224(例如,软件)也可以在其由计算机系统200、主存储器204和处理器202执行期间完全或至少部分地驻留在主存储器204内或处理器202内(例如,在处理器的高速缓存存储器内),所述主存储器204和处理器202也构成机器可读介质。可以经由网络接口设备220在网络226上发送或接收指令224(例如,软件)。

虽然在示例实施例中将机器可读介质222示为单个介质,但是术语“机器可读介质”应当被视为包括能够存储指令(例如,指令224)的单个介质或多个介质(例如,集中式或分布式数据库,或者相关联的高速缓存和服务器)。术语“机器可读介质”还应被视为包括能够存储指令(例如,指令224)以供机器执行并且致使机器执行本文所公开的任何一种或多种方法的任何介质。术语“机器可读介质”包括但不限于固态存储器、光学介质和磁介质形式的数据存储库。

可定制布线系统

图3是图示出根据一个实施例的可定制布线系统300的架构的框图。可定制布线系统300使用户(设计者)能够设计定制的结构化互连,然后可以经由批量布线过程或非批量布线过程来制造所述互连。图3中所示的可定制布线系统300包括电路设计贮存器310、结构指令贮存器320、结构指令提取模块330、布局定制模块340和模板适配模块350。在其他实施例中,可定制布线系统300可以包括用于各种应用的附加的、更少的、或者不同的组件。每个上述组件可以被体现为可定制布线系统300的计算机的存储器204中的模块。诸如网络接口、安全功能、负载平衡器、故障转移服务器、管理和网络操作控制台等等之类的常规组件未被示出以免混淆系统架构的细节。

电路设计贮存器310是存储用于一个或多个电路的物理布局数据的数据库。用于特定电路的物理布局数据包括(物理)连接布局、示意图、示意性布局映射信息、要使用的多个金属层以及与制造电路相关联的物理过程。连接布局是电路引脚之间的连接的物理放置的直观表示。图4A至图4E、图6B、图6C、图7B、图7C、图9A、图9B、图10A、图10B、图12B和图13B包括连接布局的示例,如下面详细描述的。示意性布局映射信息可以指示一个或多个电路元件的引脚分组成一个或多个引脚子集,以及一个或多个电路元件中的引脚与一个或多个电路元件中的其他引脚的对应关系。

电路设计贮存器310还存储“布局模板”,其是结构指令集(在下面结合结构指令贮存器320来描述),其描述与对应的连接性信息相关联的特定连接布局。连接性信息指示哪些引脚是连接的,并且可以通过示意图和示意性布局映射信息导出,或者以网表或其他类似指示的形式而被直接提供。虽然电路设计贮存器310被描述为可定制布线系统300的一部分,但是电路设计贮存器310可以是可定制布线系统300外部的另一系统的一部分。例如,可以将电路设计贮存器310体现为开放访问(OpenAccess)数据库。

结构指令贮存器320是存储描述连接布局中的连接的一般物理结构和放置的“结构指令”的数据库。批量布线系统(其可以是可定制布线系统300的一部分或可以是单独的系统)可以解释和应用结构指令——诸如通过使它们设计约束。例如,结构指令可以描述一行内的或跨在多行中的连接图案。结构指令还可以描述结构组件本身的属性,诸如方向、宽度、放置(诸如在平行于结构组件的轴上)和金属层。结构指令还可以指示正在连接的引脚的类型,诸如扩散、多晶硅或其组合。结合图4A至图4E更详细地讨论结构指令。

结构指令提取模块330从连接布局中提取结构指令。为此,结构指令提取模块330将连接布局与和结构指令相关联的已知图案匹配。例如,结构指令提取模块330可以结合逻辑连接性和过程数据来分析连接布局中存在的物理形状,以确定分支应该从设备的引脚延伸的方向(例如,向上、向下、朝向中心轴)、应该使用多少个主干(例如,单个主干、每三个引脚一个主干)来连接一行的分支、以及(一个或多个)主干应该相对于行(例如,沿着中心轴、在朝向或远离行的方向上偏离中心轴)而被定位。

布局定制模块340生成定制连接布局和布局模板。为了“从头开始”生成定制连接布局,布局定制模块340接收来自设计者的结构组件,诸如通过绘图(例如,现有布局数据或在可定制布线系统300的图形界面中)或文本命令。将结构组件组织为定制连接布局。为了基于现有布局模板生成定制连接布局,布局定制模块340检索布局模板并从设计者接收对结构组件的修改。然后,布局定制模块340基于来自检索到的布局模板的连接布局和用户修改而生成修改的连接布局。布局定制模块340还可以通过将提取的结构指令与对应的逻辑结构(例如,示意性片段)相关联地存储在电路设计贮存器310中以供将来使用,从而从上述任一种类型的定制连接布局生成布局模板。在任一场景中,可以附加地或可替代地发送与连接布局相关联的结构指令以用于批量布线对应的电路元件。

模板适配模块350基于对现有布局模板的适配来生成连接布局。例如,目标电路可以具有与已经与布局模板相关联的一个或多个源电路的相似连接性信息。模板适配模块350不是要求设计者从头开始为目标电路创建另一个连接布局,而是自动修改(如果需要)并将现有布局模板的结构指令应用于目标电路以创建连接布局。

模板适配模块350通过标识图案相似性来适配布局模板,同时不需要相同的物理结构。例如,从(下面进一步讨论的)图4A创建的布局模板表示两行的结构,每行下方的通道中有一个主干。对于具有相似器件图案的四行的结构,模板适配模块350将确定四个主干是所期望的,每个主干被放置在四行中的一行下方的通道中。由模板适配模块350执行的其他适配包括扩展每行的器件数量,以及调整主干或脊柱放置以适合具有不同数量的轨道的设计。在一些实施例中,模板适配模块350可以接收技术之间的映射引导以引导适配。例如,原始布局模板可以指定相对于特定技术的几何维度和/或处理层。可以应用外部映射规范来将原始布局模板的对应部分映射到目标电路,该外部映射规范描述目标电路的层如何对应于与原始布局模板相关联的源电路的层并且提供维度缩小引导。

在一些实施例中,设计者能够通过布局定制模块340进一步定制适配的连接布局。适配的连接布局或进一步定制的连接布局中的任一者(或两者)也可以被存储为布局模板。下面结合图11至图13B进一步讨论适配布局模板。

连接布局属性和结构指令

结构指令描述了连接布局中的结构组件的一般结构特征,并且可以基于它们所描述的结构组件的哪些方面而进行分类。例如,下面讨论的结构指令可以被分组为结构、属性和图案。描述结构的结构指令指示结构组件如何连接,描述属性的结构指令指定结构组件本身的特性,描述图案的结构指令指示结构组件如何被组织在多行引脚上。下面描述的结构指令仅仅是用以指示结构指令如何对应于连接布局的示例,而不是限制。其他实施例或实现可以使用其他结构指令来描述连接布局的相似或附加结构组件。类似地,其他实施例或实现可以描述代替下面讨论的特定结构特征或者除了下面讨论的特定结构特征之外的其他结构特征。结构指令以下在花括号(即{})中被指示,并且可以用分号分隔以在行之间进行描绘。

图4A至图4E是根据一个实施例的对应于各种结构指令的示例FinFET的布局图。示例400a至400e中的每一个示例包括16个引脚的FinFET,其被表示为垂直矩形。16个引脚被组织成每行八个引脚的两行,被称为“顶行”(即,上部FinFET)和“底行”(即,下部FinFET)。顶行和底行由不包含任何引脚的中间通道分隔。在一些示例400a至400e中,在底行下方还存在底部通道,其类似地不包含任何引脚。两行中的暗色引脚代表要被连接的引脚。顶行中的四个中间引脚是暗色的,并被称为“顶部引脚”。底行的每侧上的两个最外面的引脚(即总共四个引脚)也是暗色的,并被称为“底部引脚”。一些示例400a至400e未明确示出顶部引脚连接到底部引脚。实际上,顶部引脚的(一个或多个)主干和底部引脚的(一个或多个)主干可以通过一个或多个脊柱连接。为简单起见,省略了连接顶部引脚和底部引脚的这些脊柱。

图4A至图4D图示出了由结构指令描述的结构的示例。图4A和图4B分别是主结构{骨架}({backbone})和{鱼骨}({fishbone})的示例。图4C和图4D是可以被应用于主结构的结构修改{间歇}({intermittent})和{匹配}({match})的示例。{骨架}、{鱼骨}、{间歇}和{匹配}都是可以被用来描述主干的结构指令,并且在一些实施例中,它们也可以被用来描述脊柱。

图4A的示例400a图示出了{骨架}结构,其特征在于仅从主干的一侧延伸的分支。分支402从四个顶部引脚延伸到中间通道中并且连接到中间通道中的单个主干404。分支406a从最左边的两个底部引脚延伸到底部通道中。分支406b从最右边的两个底部引脚延伸到底部通道中。分支406a和400b都连接到底部通道中的单个主干408。主干404和408仅在一侧上具有分支402以及406a和406b(分别),并且因此将由结构指令{骨架}描述。注意,未修改的{骨架}结构包括每行引脚的单个主干(例如,404和408)——即使引脚不是相邻定位的(例如,底部引脚)。

图4B的示例400b图示出了{鱼骨}结构,其特征在于从躯干两侧延伸的分支。像示例400a中一样,分支402从四个顶部引脚向下延伸并连接到中间通道中的单个主干410。然而,与示例400a不同,底部引脚的分支406a和406b从四个底部引脚向上延伸到中间通道中并且连接到顶部引脚所连接到的相同主干410。主干410具有从两侧延伸以连接到顶行和底行上的引脚的分支,并且因此将由结构指令{鱼骨}描述。

图4C的示例400c图示出了对{骨架}结构的{间歇}修改。{间歇}修改的特征在于基于相邻引脚的群组定义主干的数量和放置。示例400c的顶部引脚的连接与示例400a的那些匹配,但是底部引脚的连接现在包括底部通道中的两个分离的主干410a和410b而不是单个主干408。在示例400a中,单个主干408跨越底部通道的整个长度——包括四个未连接的引脚,以将最左边的两个底部引脚连接到最右边的两个引脚。然而,{间歇}修改将单个主干408分成多个主干412a和412b,每个主干412a和412b仅跨越底部通道的与它们连接的相邻引脚群组相对应的部分。具体地,两个最左边的底部引脚是相邻的,因此对应的分支406a连接到一个主干410a,并且两个最右边的底部引脚是相邻的,因此对应的分支406b连接到另一个主干410a。与示例400a不同,这里第二最左边引脚和第二最右边底部引脚不是经由一个主干连接。

在一些实施例中,为了分组的目的,引脚不需要彼此直接相邻(即,字面上相邻)以被认为是相邻的。例如,彼此在四个引脚内的引脚可以被认为是相邻的并且在{间歇}结构中连接到相同的主干。另外,在一些情况下,相邻性可以仅适用于水平方向,使得不同行中的引脚如果它们在相邻列中则被认为是“相邻的”。因此,根据{间歇}修改器,多行中的主干连接引脚(例如,{鱼骨}结构)可以被分解成多个主干。{间歇}修改器也可能对一些主干没有影响,诸如示例400c中的顶行的那些主干。当连接到主干的所有引脚是相邻定位的(例如,顶部引脚)时,不需要引入多个主干,使得{中间骨架}结构与未修改的{骨架}结构无法区分。

图4D的示例400d图示出了对{骨架}结构的{匹配}修改。{匹配}修改的特征在于,连接布局中的所有主干的公共主干长度由最短主干(例如,连接相邻引脚的最小群组的主干)定义。示例400d和示例400c之间的唯一区别在于,在底行中,示例400c的单个主干404被替换为两个主干414a和414b以匹配主干412a和412b的主干长度,其连接相邻引脚的最小群组。与{间歇}修改类似,在一些情况下,{匹配}修改可能与其他结构无法区分。例如,当仅查看示例400c和400d的底行时,{匹配骨架}结构与{间歇骨架}结构无法区分。

属性结构指令可以与其他结构指令不同,因为属性结构指令不是应用于结构组件群组的一组规则,而是反映(一个或多个)结构元件的特定值。图4E的示例400e图示出了针对{骨架}结构中的主干的<轨道>属性的规范。<轨道>属性指定与该行相关联的(一个或多个)主干所在的通道的“轨道”。相对于可用轨道总数来指定<轨道>属性,从顶部开始计数。在示例400e中,存在第一轨道416和第二轨道418。主干404沿着第一轨道416行进,因此它将由结构指令{轨道1/2}来描述。主干420沿第二轨道418行进,因此它将由结构指令{轨道2/2}描述。如果为<轨道>属性输入了无效值,则可定制布线系统300可以将值四舍五入为最接近的有效值(例如,在适配布局模板时)。例如,如果为仅具有三个轨道的通道输入{轨道3/5},则会将其四舍五入为{轨道2/3}。在一些实施例中,可以将{上方}({over})添加到<轨道>属性以指示轨道在引脚行上方而不是在通道中。例如,结构指令{上方轨道1/3}描述了这样一个主干:它在位于引脚行上方的三个轨道的第一轨道上。

其他属性包括<行>、<宽度>和<层>。<行>属性指定在一个或多个通道上连接到主干的引脚行数。例如,{行所有}指示连接布局的所有行中的引脚连接到单个主干,而{行2}指示前两行中的引脚(来自结构指令所应用的行)连接到单个主干。<行>属性还可以被用来指定主干是位于所连接的行的上方(由{行向上}描述)还是位于所连接的行的下方(由{行向下}描述)。<宽度>属性指示主干的宽度。例如,{宽度0.2}指示主干的宽度应为默认宽度的20%。<层>属性指示在其中要制造主干的金属层。例如,可以将一个主干指定为{层M2},而将另一个主干指定为在{层M1}上。

尽管上面的示例讨论了关于主干的结构指令,但是一些结构指令也可以应用于脊柱或者甚至分支。例如,<宽度>和<层>属性可以另外应用于分支和脊柱。此外,脊柱可以具有描述属性的附加结构指令,例如<列>(相对于分支,类似于用于主干的<行>)或<方向>(例如,{水平}或{垂直})。此外,诸如<偏移>的一般属性可以应用于任何结构元件。

返回图4E,示例400e还示出了{镜像}图案的示例。{镜像}图案的特征在于关于水平轴的反射,并且影响在它们所连接的引脚行的上方或下方的通道中的主干的放置。如结合<轨道>属性的解释所指出的,主干420连接底部引脚并且位于中间通道中的第二轨道上。在其他示例400a至400d中,连接底行引脚的(一个或多个)主干位于底部通道中,这是这些示例400a至400e中的默认行为。因为示例400e包括{镜像}图案,所以针对底部引脚的结构组件(分支406a和400b以及主干420)通过中间通道的中心穿过轴而被反射。此示例由结构指令{骨架镜像}描述。

{镜像}图案还应用包括在行中的任何结构或属性,所述行是用于镜像到镜像行的基础。例如,结构指令{间歇骨架层M1宽度0.5镜像}将导致:也可以由{间歇骨架层M1宽度0.5}描述的第一行,由{间歇骨架行1向上层M1宽度0.5}描述的第二行,其可以被组合为{间歇骨架层M1宽度0.5;间歇骨架行1向上层M1宽度0.5}。

{镜像}图案也可以用于多行图案,其被表示为用作其自己的线上(即,在分号之后)的{镜像}。当针对多行使用{镜像}图案时,任何其他基于行的图案都通过连接布局的中心通道关于轴而被反射。如果指定的行图案少于中心轴之前的行,则重复指定的行图案。例如,如果{骨架行1向上;间歇骨架行1向下;镜像}将被应用于具有六行的连接布局,第一行将是{骨架行1向上},第二行将是{间歇骨架行1向下},第三行将是{骨架行1向上},第四行将是{骨架行1向下},第五行将是{间歇骨架行1向上},第六行将是{骨架行1向下}。

创建连接布局模板

图5是图示出根据一个实施例的用于创建布局模板的方法500的流程图。图6A至图6C和图7A至图7C图示出了图5的方法500的两个示例应用。可定制布线系统300接收510针对正在设计结构化互连的多个电路元件的连接性信息。连接性指示应连接多个电路元件中的哪些引脚。连接性信息可以以示意图和对应的示意性布局映射信息的形式而被传达到可定制布线系统300。可替代地,设计者可以手动选择引脚或输入指示要连接的引脚的矩阵(或其他类似的表示)。

可定制布线系统300接收520用于连接布局的初始结构组件,诸如来自设计者,以形成定制连接布局。设计者可以通过可定制布线系统300的界面绘制初始结构组件(例如,图4A至图4E中的主干和分支),或者提交另一种类型的视觉表示。在一些实施例中,诸如通过详细图示,连接性信息和初始结构组件可以一起被接收510和520。

可定制布线系统300然后将初始结构组件转换530为结构指令。该转换530可以通过分析定制连接布局中的图案并将它们与结构分析所描述的类似已知图案匹配来完成。可定制布线系统300然后通过关联连接性信息和定制连接布局的结构指令来生成540布局模板,布局模板被存储550以供将来的使用。将来的使用可以包括直接重用(例如,将定制连接布局模板应用于相同的设计)、间接重用(例如,将定制连接布局模板应用于类似设计而不执行任何修改)、或者定制的重用,其分别通过参考图8和图11的方法800和1100来描述。

图6A图示出了IC的一部分的示意图600,而图6B是根据第一实施例的对应于示意图600的物理表示的连接性图。示意图600包括两个晶体管602和604,晶体管602的栅极连接606被突出显示以指示它是连接布局对应的连接。图6B的连接性图是分别由第一通道、第二通道和第三通道分隔的四行引脚的视觉表示。线620反映连接性信息并指示要连接引脚610、612a、612b、614a、614b和616。这些引脚已变暗,以区别于本示例中不需要被连接的引脚。

图6C是根据第一实施例的对应于图6B的连接性图的定制连接布局650。在第一行中,分支652a从最左边的三个引脚610向下延伸以连接到第一通道中的主干654a,并且分支652b从最右边的三个引脚610向下延伸以连接到第一通道中的主干654b。主干654a和654b都位于第一通道中的第一轨道{轨道1/2}上。在第二行中,分支656a从引脚612a向上延伸以连接到第一通道中的主干658a,并且分支656b从引脚612b向上延伸以连接到第一通道中的主干685b。主干658a和658b都位于在第一通道中的第二轨道{轨道2/2}上。在第三行中,分支660a从引脚614a向下延伸并连接到第三通道中的主干662a,分支660b从引脚614b向下延伸并连接到第三通道中的主干662b。主干662a和662b都位于第三通道中的第一轨道{轨道1/2}上。在第四行中,分支664a从最右边的三个引脚616向上延伸以连接到第三通道中的主干660a,分支664a从最右边的三个引脚616向上延伸以连接到第三通道中的主干666b。主干666a和666b都位于第三通道的第二轨道{轨道2/2}上。主干658a和662a经由脊柱668a连接,主干654a和660a经由脊柱670a连接,主干654b和660b经由脊柱670a连接,并且主干658b和662b经由脊柱668b连接。脊柱668a、668b、670a和670b通过水平脊柱672连接。

连接布局650由结构指令{匹配骨架镜像}描述。每个主干654a、654b、658a、658b、662a、622b、666a和666b仅具有从一侧延伸的分支,使其成为{骨架}结构。另外,每个主干654a、654b、658a、658b、662a、662b、666a和666b具有相同的长度,即是主干658a、685b、662a和662b的长度,因为它们连接到引脚的最小群组(即,三个引脚),导致{匹配}修改。最后,第二行中的主干放置是通过第一通道的中心穿过轴的第一行中的主干放置的反射,这是{镜像}图案。更一般地说,主干654a、654b在对应行(第一通道)下方的通道中的轨道x/n上,并且主干656a、656b在对应行(第一通道)上方的通道中的轨道(n-x+1)/n上。然后第三行和第四行具有与第一行和第二行相同的属性,不需要明确描述之,因为结构指令自动重复。也可以通过其他结构指令更明确地描述连接布局650,诸如{匹配主干行1向下轨道1/2;匹配主干行1向上轨道2/2}。

图7A是IC的一部分的示意图700,而图7B是根据第二实施例的对应于示意图700的物理实现的连接性图。示意图700包括两个晶体管602和604,晶体管604的栅极连接706被突出显示以指示它是正在设计连接布局的连接。图7B的连接性图是分别由第一通道、第二通道和第三通道分隔的四行引脚的视觉表示。线720反映连接性信息并指示要连接引脚710a、710b、712、714、716a和716b。这些引脚已变暗,以区别于本示例中不需要被连接的引脚。

图7C是根据第二实施例的对应于图7B的连接性图的定制连接布局750。在第一行中,分支752a从最左边的三个引脚610a向下延伸以连接到第一通道中的主干754a,并且分支752b从最右边的三个引脚710向下延伸以连接到第一通道中的主干754b。主干754a和754b都位于第一通道中的第一轨道{轨道1/2}上。在第二行中,分支756从引脚712向上延伸以连接到第一通道中的主干758。主干758位于第一通道中的第二轨道{轨道2/2}上。在第三行中,分支760从引脚714向下延伸并连接到第三通道中的主干762。主干662位于第三通道中的第一轨道{轨道1/2}上。在第四行中,分支764a从最左边的三个引脚616a向上延伸以连接到第三通道中的主干766a,并且分支764a从引脚616b向上延伸以连接到第三通道中的主干766b。主干766a和766b都位于第三通道的第二轨道{轨道2/2}上。主干754a和766a经由脊柱768a连接,主干754a和660a经由冗余脊柱770a和770b连接,主干754b和760b经由脊柱770a连接,并且主干758和662经由脊柱770a和770b连接。脊柱768a、768b、770a和770b通过水平脊柱772连接。

连接布局750由结构指令{间歇骨架镜像;镜像}描述。每个主干754a、754b、758、762、766a和766b仅具有从一侧延伸的分支,使其成为{骨架}结构。另外,由于{间歇}修改,主干658a、658b、662a和662b是分开的。最后,类似于连接布局650,第二行中的主干放置是通过第一通道的中心穿过轴的第一行中的主干放置的反射,这是{镜像}图案。然后,第三行和第四行是跨连接布局750的中心轴(其通过第二通道的中间)的第一行和第二行的反射。也可以通过其他结构指令更明确地描述连接布局750。

定制连接布局模板以供重用

图8是图示出根据一个实施例的用于定制现有布局模板的方法800的流程图。可定制布线系统300首先接收810对现有布局模板的选择,所述模板将针对特定连接性信息而被修改。在一个实施例中,可以只有一个与该连接性信息相关联的布局模板。在这种情况下,连接性信息的提交构成选择的接收810,因为只有一个选项可用。在其他实施例中,若干布局模板可以与连接性信息相关联,在这种情况下,所接收的810选择可以是多个适用布局模板之间的用户选择或者是基于实现设计目标的自动系统选择。

一旦选择了布局模板,可定制布线系统300就接收820来自设计者的定制——诸如通过图形界面中的绘制。可定制布线系统300然后分析对连接布局的定制,以确定和更新830与布局模板相关联的结构指令。更新的结构指令然后可以被用来布线连接和/或生成840另一个布局模板,该另一个布局模板被存储850以供将来进一步使用或定制。

图9A和图9B是根据一个实施例的已被定制以便使用方法800进行重用的示例定制连接布局900和950。图9A图示出了连接布局900,其是连接布局650的定制版本。该定制被执行以生成连接布局900,该定制包括:移除两个垂直脊柱,移动两个剩余的垂直脊柱,以及延伸主干。具体地,连接布局900包括脊柱918a和918b,脊柱918a和918b被放置在每行的第三引脚和第四引脚之间,以及每行的第九引脚和第十引脚之间。因为现在只有两个垂直脊柱918a、918b,所以主干904a、904b、908a、908b、912a、912b、916a和916b中的每一个都被延伸以便连接到脊柱。类似地,水平脊柱922比原始水平脊柱672短,因为脊柱918a、918b不如脊柱668a、668b、670a和670b那么远。如果每个引脚之间的空间被认为是轨道,则此定制可以被描述为{脊柱轨道3/11 8/11},它定义了所有垂直脊柱(即,连接布局中不存在其他垂直脊柱900)。可替代地,结构指令可以以相对术语来定义定制的垂直脊柱918a、918b,诸如在主干908a/912a和904a/916a之间,以及在主干904b/916b和908b/912b之间。

图9B图示出了连接布局950,其是连接布局750的定制版本。该定制被执行以生成连接布局900,该定制包括:将用于第二行和第三行的主干移动到与第一行和第四行的主干相同的轨道,移动两个外部垂直脊柱,和添加两个附加垂直脊柱。具体地,主干958被放置在{轨道1/2}上而不是{轨道2/2},并且主干962被放置在第三通道中的{轨道2/2}上而不是{轨道1/2}。如果通过每个引脚的中心有一条轨道,则垂直脊柱968a、968b、969a、969b、970a和970b现在被描述为{脊柱轨道1/12 3/12 5/12 8/12 10/12 12/12}。水平脊柱972也较长以容纳最外边的垂直脊柱968a、968b的位置。结构指令可以类似地以相对术语来定义,诸如指定主干958和962分别位于主干754a、754b、764a和764b的默认轨道上,以及修改的垂直脊柱968a、968b、970a和970b位于对应的主干754a、754b、766a和766b的外边缘处。

图10A和图10B是图示出根据一个实施例的定制布局模板集合及其对应的示意性部分的示图。每个示意性部分(或其他类型的连接性信息)可以与多个布局模板相关联。图10A指示示意性部分600与连接布局650和900相关联,因为连接布局650和900都连接图6B的相关联的连接性图的相同引脚。可以将示意性部分600以及连接布局650和900共同地视为布局模板,或者将与连接布局650配对的示意性部分600视为一个布局模板,并且将与连接布局900配对的示意性部分600视为另一布局模板。图10B指示示意性部分700与连接布局750和950相关联,因为连接布局750和950都连接图7B的相关联的连接性图的相同引脚。类似地,可以将示意性部分700以及连接布局750和950共同地视为一个布局模板或者在示意性部分连接布局配对中视为一个布局模板。

自动调整连接布局模板以供重用

图11是图示出根据一个实施例的用于自动适配现有布局模板以供重用的方法1100的流程图。带有虚线的框指示那些步骤(1120、1140、1150和1170)是可选的。

可定制布线系统300接收1110针对目标电路的多个目标电路元件的连接性信息。在一些实施例中,可定制布线系统300将针对电路元件的连接性信息分离1120为多个组块,这些组块可以重叠或不重叠。每个组块表示针对目标电路元件的连接性信息的子集,并且可以用于将连接性信息与多个现有布局模板匹配,这些布局模板可以被组合以实现目标电路元件的连接性。图13B图示出了示例组块。

可定制布线系统300标识1130可以应用于多个目标电路元件(或组块)的一个或多个相似布局模板。例如,通过具有连接性信息,一个或多个相似布局模板可以是“相似的”,所述连接性信息匹配或可以缩放以匹配目标电路元件或其组块的连接性信息。图12A图示出了缩放的示例。如果需要,可定制布线系统300确定一个或多个相似布局模板之间的连接性差异,并更新1140用于布局模板的结构指令。

可定制布线系统将结构指令(或更新1140的结构指令,如果适用的话)应用1150于所接收1110的连接性信息,该连接性信息随后可以被用来布线1160多个电路元件。

图12A是根据第一实施例的连接性图1200,其不同于可用于重用的现有布局模板的连接性图。连接性图1200具有四行,每行16个引脚。线1220指示要连接引脚1210、1212a、1212b、1214a、1214b和1216。可定制布线系统300接收该连接性图1200,连接性图1200与前面提到的连接性图中的任何一个都不匹配。然而,可定制布线系统300可以分析该连接性信息,并确定它是图6B的连接性图的水平缩放版本。

在此上下文中,水平缩放意味着一般连接性图案和行数保持相同,但每行的引脚数量以缩放方式增加。例如,在连接性图1200中,每组四个引脚对应于图6B的连接性图中的每组三个引脚。具体地,存在对应于六个引脚610的八个引脚1210,对应于三个引脚612a的四个引脚1212a,对应于三个引脚1212b的四个引脚1212b,对应于三个引脚614a的四个引脚1214a,对应于三个引脚1214b的四个引脚1214b,和对应于六个引脚610的八个引脚1216。因此,连接性图1200相对于图6B的连接性图在水平方向(引脚数)上缩放4/3。可以类似地基于行数而不是每行的引脚数在垂直方向上缩放连接性图。

基于该分析和确定,定制批量布线器系统300可以适配与图6B的连接性图相对应的布局模板。使用具有连接布局900的布局模板,可定制布线系统300确定其需要进行的主结构调整是将{垂直脊柱3/11,8/11}改变为{垂直脊柱4/15,11/15}。可替代地,脊柱可以以相对术语(诸如结合图9A和图9B描述的那些)来定义,在这种情况下,不需要进行结构调整。

可定制布线系统300相应地更新结构指令并产生对应的连接布局1250,如图12B中所示。

图12B的连接布局1250以4/3水平缩放重复连接布局900。分支1252a、1252b、1256a、1256b、1260a、1260b、1264a和1264b分别对应于分支652a、652b、656a、656b、660a、660b、664a和664b。主干1254a、1254b、1258a、1258b、1262a、1262b、1266a和1266b分别对应于主干904a、904b、908a、908b、912a、912b、916a和916b。脊柱1268a、1268b和1272分别对应于脊柱918a、918b和922。尽管连接布局1250具有与连接布局900不同的尺寸(并因此具有不同的连接性信息),但是连接布局1250保持连接布局900的结构方面。具体地,连接布局1250仅具有两个垂直脊柱1268a、1268b,这两个垂直脊柱1268a、1268b位于(1)主干1256a/1262a和主干1254a/1266a之间,以及(2)主干1254a/1266b和1258b/1262b之间。

图13A是根据第二实施例的另一连接性图1200,其不同于可用于重用的现有布局模板的连接性图。连接性图1300具有四行24个引脚。可定制布线系统300分析连接性图1300并确定它可以将其分成两个组块1310和1320,每个组块对应于现有布局模板。组块1310匹配图6B的连接性图的连接性,并且组块1320匹配图7B的连接性图的连接性。可定制布线系统300检索针对对应连接布局900和950的结构指令,确定它需要应用的唯一修改是组合水平脊柱922和972并适当地修改结构指令。然后,通过将连接布局900应用于组块1310以生成连接布局1350的一半1360、将连接布局950应用于组块1320以生成连接布局1350的另一半1370、并连接两个水平脊柱,可定制布线系统300生成图13B的连接布局1350。

已经出于说明的目的呈现了本发明的实施例的前述描述;它并非旨在穷举或将本发明限制于所公开的精确形式。相关领域的技术人员可以理解,鉴于以上公开内容,许多修改和变化是可能的。

说明书中使用的语言主要是出于可读性和指导目的而选择的,并且可能未选择它来描绘或限制本发明的主题。因此,本发明的范围旨在不受该详细描述的限制,而是受基于此处的申请发布的任何权利要求的限制。因此,本发明的实施例的公开内容旨在说明而非限制本发明的范围,本发明的范围在所附权利要求中阐述。

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