集成电路设计系统的制作方法

文档序号:18600995发布日期:2019-09-03 22:39阅读:154来源:国知局
集成电路设计系统的制作方法

系统、器件和软件的设计者通常使用版本控制系统。版本控制系统以逻辑和有组织的方式管理对设计信息(诸如文档、代码等)的更改,这有助于修订提议以供审阅和最终接受或拒绝。版本控制系统使得能够容易地了解更改的影响、编辑这些更改以及更正。设计的特定系统越复杂,多个设计人员在系统上工作的可能性就越大。因此,版本控制系统有助于管理多开发人员项目。



技术实现要素:

本说明书描述了涉及使用可编辑组件定义的集成电路设计的技术,每个组件定义定义特定的分立电路组件。

通常,本说明书中描述的主题的一个创新方面可以体现在一种包括以下动作的方法中:通过用户输入生成多个组件定义,其定义用于在电子电路中使用的分立电路组件并包括描述以下的组件元数据:由组件定义定义的分立电路组件的组件类型;几何参数化数据,定义电子电路的一个或多个层中的分立电路组件的物理实现的物理尺寸;以及由组件定义描述的分立电路组件的版本级别;其中,用于相同分立电路组件的组件定义的至少两个版本级别在由它们各自的几何参数化数据定义的物理尺寸上不同;以及在组件定义库中存储组件定义。本方面的其他实施例包括对应的系统、装置和计算机程序,被配置为执行在计算机存储器件上编程的方法动作。

本说明书中描述的主题的另一方面可以体现在一种系统中,其包括:数据处理装置,包括一个或多个处理器;以及与数据处理装置进行数据通信的计算机存储介质和编码指令,用于定义:设计模块,当由数据处理器件执行时,使数据处理器件执行包括以下操作的操作:通过用户输入生成多个组件定义,每个组件定义定义用于在电子电路中使用的组件并包括描述以下的组件元数据:由组件定义定义的组件的组件类型;几何参数化数据,定义电子电路的一个或多个层中的组件的物理实现的物理尺寸;以及由组件定义描述的组件的版本级别;其中,用于相同组件的组件定义的至少两个版本级别在由它们各自的几何参数化数据定义的物理尺寸上不同;以及开发模块,当由数据处理装置执行时,使数据处理装置执行包括以下操作的操作:通过用户输入生成器件设计,该器件设计包括描述以下的器件元数据:器件中包含的组件集合、以及对于每个组件的组件版本级别;以及网络列表,用于为每个组件描述器件中包括的该组件集合的电路连接;以及器件设计的版本级别,每个版本级别定义网络列表、组件集合和组件版本级别的唯一组合;基于器件中包括的组件的电路连接和组件集合,从器件设计生成电路布局,生成电路布局包括针对版本级别物理地验证电路布局。本方面的其他实施例包括对应的系统、装置和计算机程序,被配置为执行在计算机存储器件上编程的方法动作。

本说明书中描述的主题的另一方面可以体现在一种方法中,该方法包括以下动作:访问存储在数据存储中的器件设计,该器件设计包括描述以下的器件元数据:包括在器件中的组件集合,并且对于每个组件,该组件的版本级别,其中每个组件由组件定义定义,每个组件定义定义用于在电子电路中使用的组件并且包括描述由组件定义定义的组件的组件类型的组件元数据、定义电子电路的一个或多个层中的组件的物理实现的物理尺寸的几何参数化数据、由组件定义描述的组件的版本级别,其中用于相同组件的组件定义的至少两个版本级别在由它们各自的几何参数化数据定义的物理尺寸上不同;以及网络列表,用于为每个组件描述器件中包括的组件集合的电路连接;以及器件设计的版本级别,每个版本级别定义网络列表、组件集合和组件版本级别的唯一组合;通过更改定义组件的物理实现的物理尺寸的几何参数化数据,通过用户输入修改所选择的组件,以生成定义组件的物理实现的新物理尺寸的新的几何参数化数据,并基于更改的几何参数化数据生成组件的新版本级别;以及生成作为新组件定义的修改的组件元数据;以及为器件设计生成新版本级别,并针对新版本级别物理验证电路布局。本方面的其他实施例包括对应的系统、装置和计算机程序,被配置为执行在计算机存储器件上编程的方法动作。

可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。在更大的系统设计中,版本控制扩展到分立电路组件设计,使得能够快速评估和分析包含分立电路组件的器件设计。换句话说,虽然整体器件设计本身可能不会在所使用的分立组件的环境中更改,但是可以根据版本级别跟踪通过更改分立电路组件的物理参数对器件设计的影响。这使得能够基于包含针对特定组件类型的分离组件级别的更改的版本来生成电路布局,而不需要在没有可编辑组件定义的情况下需要针对每个分立组件实现的劳动密集型设计更改。下面描述的系统和方法解决了在组成组件的基础上实现版本控制的技术问题。这还简化了实现电路元件的器件的设计处理,所述电路元件非常小并且与介观尺度上的尺寸相关联(例如,具有几微米或更小的临界尺寸),其几何形状是设计因素。这种电路元件的例子包括磁通量子位、磁通耦合电感器,叉指式电容器,共面波导谐振器等。

此外,该系统和方法简化了器件设计的协作,因为文档的同步是自动的,并且不依赖于手动交换特殊设计的组件的文件。

在附图和以下描述中阐述了本说明书中描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求,本主题的其他特征、方面和优点将变得显而易见。

附图说明

图1是实现集成电路设计系统的示例环境的框图。

图2a和2b描绘了由组件定义定义的示例平面电容器。

图3是生成组件定义和使用组件定义的器件设计的示例处理的流程图。

各附图中相同的附图标记和名称指示相同的元件。

具体实施方式

版本控制对于其中组成系统组件容易理解和明确定义的良好建立的系统很有效。这种组成系统组件的示例包括先前定义的集成电路元件,例如mosfet、电阻器等。然而,对于其中组成系统组件各自需要新设计的某些设计,版本控制系统不便于对包含该组成系统组件的器件进行适当的版本控制。这是因为虽然组成系统组件的每个底层设计更改本身可能影响器件的整体设计,但是没有在组成系统组件级别容易用于实现版本控制的能力。

集成电路设计系统有助于用于集成电路设计的版本控制,尤其是集成电路设计,其使用各自定义分立电路组件的可编辑组件定义。该系统允许设计者将电路元件的几何形状修改为单元(例如,电容器板区域、磁通量子位轨迹宽度等),并且电路元件的修改的几何形状应用于将电路元件合并作为组成元件的器件设计中的所有受影响的电路元件。

因此,除了描述器件设计中的元件的节点和连接的网表之外,该系统还合并了各个元件的尺寸几何形状的参数化。当针对版本更改元件的参数时,系统将不仅在连接中而且在几何形状中调整电路布局,并且所得到的掩模将基于几何上的移位来考虑对设计的整体空间影响。

以下更详细地描述这些特征和附加特征。

图1是其中实现集成电路设计系统110的示例环境100的框图。诸如局域网(lan)、广域网(wan)、因特网或其组合的计算机网络102将用户设备106与集成电路设计系统110连接。每个用户设备106是能够通过网络102请求和接收资源的电子设备,并且可以执行与设计系统110进行接口的应用,以允许用户使用由设计系统110提供的功能。示例用户设备106包括个人计算机、平板计算机等。

设计系统110的示例实现包括设计模块112和开发模块114。模块112和114仅是一个示例系统架构,并且也可以使用以不同于所描述的方式来分发下面描述的处理的其他架构。

设计模块112是使得能够创建、管理和修订描述分立电路组件的组件定义的程序元件。组件定义存储在组件定义库120中。如在本说明书中所使用的,组件是由组件定义定义的分立电路组件,并且可以用作器件中的设计元件单元。例如,磁通量子位、平面电容器和波导各自是由组件定义定义的分立电路组件。在下面更详细地描述组件和组件定义。

开发模块114是程序元件,其为一组开发者提供用于设计器件的工具集和用户界面。开发模块将器件设计存储在器件设计库130中。器件设计是从存储在组件定义库120中的组件定义、以及器件器件网络列表中选择的分立电路组件集合,该网络列表描述由器件设计描述的器件中包括的分立电路组件的集合的电路连接。

可以通过修改其组件定义来完成对器件设计中使用的分立电路组件的修改。例如,特定的分立电路组件可以是特殊形状的导线,其通常用于器件设计的许多部分,以及许多其他器件设计中。对组件的更改(例如,修复、增强)存储在组件定义中,使得更改自动传播到所有设计,这提高了从这些共享组件派生的设计的可靠性。

开发模块114还包括用于自动生成所有设计共同的特征和验证的软件工具。这种验证包括设计规则检查(drc)、布局与示意图检查(layoutversusschematicchecking,lvs)、电气规则检查(erc)、天线检查和其他适当的物理检查。

在操作中,用户向设计模块112提供输入以生成或修改组件定义。每个组件定义定义了用于在电子电路中使用的分立电路组件。在一个实现方式中,组件定义可以存储为各自包括描述组件的类型、几何形状和版本的组件元数据的文件。

具体地,由组件定义定义的分立电路组件的组件类型描述了组件是什么,例如电容器类型、栅极类型、波导类型等。这允许设计者通过使用设计模块112,按组件定义库120中的类型对组件定义进行分类和组织。

组件定义还包括定义分立电路组件的物理实现的物理尺寸的几何参数化数据。物理尺寸可以限于单个平面,或者可以包括用于分布在两个或更多个层上的电子电路的多个层。参考图2a和2b更详细地描述几何参数化数据的示例。

分立电路组件的版本级别描述了组件定义的设计版本级别。相同组件定义的每个不同版本级别可以描述在物理尺寸上不同的分立组件。例如,如图1所示,示出了两个组件定义集合122和124。第一集合122定义特定组件c1的四个不同版本。第一版本v1由标有c1_v1的顶部文档表示。同样地,第二集合124定义特定组件c2的三个不同版本。

尽管在以上示例中仅描述了组件类型、参数化数据和版本级别,但是其他属性也可以包括在组件定义中。这些属性的示例包括连接点,例如焊盘布局、材料规格(例如金属类型)、以及可以在设计分立电路组件时使用的任何其他适当属性。对特定组件定义中的任何这些属性的更改也可能导致组件定义的新版本。

用户还可以向开发模块114提供输入以定义器件设计。在一个实现方式中,器件设计可以存储为各自包括描述分立电路组件集合的器件元数据、描述其互连的网络列表和版本级别的文件。

该分立电路组件集合列出了从存储在组件定义库120中的组件定义选择的电路组件。该分立电路组件集合是包括在由器件设计描述的器件中的组件。器件设计还包括每个组件的版本级别。

网络列表是描述在器件中包括的分立电路组件集合的电路连接的列表。网络列表描述了器件设计的特定互连和节点。

器件设计的版本级别定义了网络列表、分立电路组件集合和分立电路组件的版本级别的唯一组合。例如,如图1所示,示出了两个器件设计集合132和134。第一集合132定义特定设计d1的四个不同版本。第一版本v1由标记为d1_v1的顶部文档表示。同样地,第二集合134定义特定设计d2的三个不同版本。

与组件定义一样,其他适当的设计属性也可以存储在器件设计中。

在操作中,开发模块114可以基于该器件中包括的分立电路组件的电路连接和分立电路组件集合,从器件设计来生成电路布局。如上所述,生成电路布局包括对版本级别物理地验证电路布局。电路布局定义了构成由器件设计定义的集成电路的组件的金属、氧化物或半导体层的对应图案。如果验证了集成电路布局,则所得到的数据可以以例如图形数据库系统ii(gdsii)的工业标准格式存储,用于代工处理。代工厂处理数据以生成用于器件制造的光掩模(或其他代工处理元件)。

通过使用开发模块114,用户可以从器件设计库130中检出器件设计的当前最佳状态(主器件)或先前状态的快照,并修改设计。执行此操作时,将创建器件设计的新分支或版本。多个用户可以同时处理特定版本。

器件设计可以响应于修改器件中使用的电路组件的数量、位置和连接而更改。然而,器件设计也可以响应于特定电路组件定义的修改而更改。例如,用户可以通过更改定义分立电路组件的物理尺寸的几何参数化数据来修改器件设计中的分立电路组件的组件定义之一的组件元数据。这将导致生成新的几何参数化数据,该数据定义了分立电路组件的新物理尺寸和新版本级别。组件定义的更改可以本地应用于单个器件设计,或者可替代地,可以全局应用于包含受更改影响的分立电路组件的所有器件设计。对于每个受影响的器件设计,生成器件设计的新版本级别,并且开发模块可以物理地验证新版本级别的电路布局。

参考图2a和图2b描述对组件定义的修订,其描绘了由组件定义定义的平面电容器200和220的示例。图2a描绘了由板202和204定义的平面内电容器。电容器由导电迹线和非导电迹线定义。示例几何参数化数据可以是以下形式:

作为参考,在每个平面电极202和204的左下顶点中描绘原始点。由于设计者可以使用电容器200的定义,并且基于模拟或原型测试,可以确定在电极202和204之间需要导电垫以增强电容。得到的几何形状如图2b所示,并且对应的几何参数化数据可以是以下形式:

因此,通过简单地修改几何参数化数据,用户可以生成可以在单个或多个器件设计中使用的现有组件定义的新版本。

图3是使用组件定义生成组件定义和器件设计的示例过程300的流程图。过程300可以用在图1的设计系统100中,并且在一个或多个计算机中实现。

过程300生成组件定义,每个组件定义定义用于在电子电路中使用的组件,并且包括描述组件类型、几何参数化和版本号的组件元数据(302)。每个组件是分立电路组件。几何参数化数据定义了电子电路的一个或多个层中的分立电路组件的物理实现的物理尺寸。

过程300生成器件设计,该器件设计包括描述组件集合、每个组件的版本级别、网络列表和器件设计的版本级别的元数据(304)。从在组件定义库120中存储的组件定义中选择该分立电路组件集合。该器件设计包括每个组件的版本级别。网络列表描述了器件中包括的分立电路组件集合的电路连接。器件设计的版本级别定义了网络列表、分立电路组件集合和分立电路组件的版本级别的唯一组合。

过程300基于器件中包括的组件的电路连接和组件集合从器件设计生成电路布局(306)。该生成包括器件设计的验证。

过程300选择器件设计的组件之一(308)。例如,用户可以选择器件设计中使用的组件之一来更改组件的几何形状。

过程300修改所选择的组件的组件元数据并生成新组件定义(310)。例如,如图2中所示,用户可以通过修改几何参数化数据,在平面内电容器的电极之间添加导电垫。过程300可以为器件设计生成新的版本级别并且针对新版本级别物理地验证电路布局(312)。

本说明书中描述的主题和操作的实施例可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物、或者其一个或更多的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,其编码在计算机存储介质上,用于由数据处理装置执行或控制数据处理装置的操作。

计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也可以是或包括在一个或多个单独的物理组件或介质(例如,多个cd、盘或其他存储设备)中。

本说明书中描述的操作可以实现为由数据处理装置对在一个或多个计算机可读存储设备上存储或从其他源接收的数据执行的操作。

术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机、片上系统、或前述的多个或组合。该装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或其中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础结构,例如web服务、分布式计算和网格计算基础结构。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适用于在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。可以部署计算机程序以在一个计算机上、或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。

本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))执行,并且装置也可以实现为专用逻辑电路。

作为示例,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合以从用于存储数据的一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,所述大容量存储设备例如磁盘、磁光盘或光盘。但是,计算机不必然具有这样的设备。

适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移除磁盘;磁光盘;以及cdrom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,所述计算机具有显示设备,例如crt(阴极射线管)或lcd(液晶显示器)监视器,用于向用户显示信息;以及键盘和指示设备(例如,鼠标或轨迹球),用户可通过该设备向计算机提供输入。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求将网页发送到用户的用户设备上的web浏览器。

本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件,例如作为数据服务器;或者包括中间件组件,例如应用服务器;或者包括前端组件,例如,具有图形用户界面或web浏览器的用户计算机,用户可通过该图形用户界面或浏览器与本说明书中描述的主题的实现进行交互;或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过数字数据通信的任何形式或介质(例如通信网络)互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网(例如,因特网)和对等网络(例如,adhoc对等网络)。

计算系统可包括用户和服务器。用户和服务器通常彼此远离,并且通常通过通信网络进行交互。用户和服务器的关系借助于在各个计算机上运行并且彼此具有用户-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,html页面)发送到用户设备(例如,用于向与用户设备交互的用户显示数据和从与用户设备交互的用户接收用户输入的目的)。可以从服务器处的用户设备接收在用户设备处生成的数据(例如,用户交互的结果)。

虽然本说明书包含许多具体实现细节,但这些细节不应被解释为对任何特征或可要求保护的范围的限制,而是作为特定实施例特有的特征的描述。在本说明书中在单独实施例的中描述的某些特征也可以在单个实施例的组合中实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在某些情况下可以从组合中去除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应当被理解为要求以所示的特定顺序或按顺序次序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或打包成多个软件产品。

因此,已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的过程不必然需要所示的特定顺序或顺序次序来实现期望的结果。在某些实现方式中,多任务和并行处理可以是有利的。

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