CN107533577B - 使用电路模板的生成和实例化的集成电路设计 - Google Patents
使用电路模板的生成和实例化的集成电路设计 Download PDFInfo
- Publication number
- CN107533577B CN107533577B CN201780001297.5A CN201780001297A CN107533577B CN 107533577 B CN107533577 B CN 107533577B CN 201780001297 A CN201780001297 A CN 201780001297A CN 107533577 B CN107533577 B CN 107533577B
- Authority
- CN
- China
- Prior art keywords
- circuit section
- component
- master die
- circuit
- integrated circuit
- 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.)
- Active
Links
- 238000013461 design Methods 0.000 title claims abstract description 155
- 238000010586 diagram Methods 0.000 claims description 101
- 238000000034 method Methods 0.000 claims description 62
- 230000009467 reduction Effects 0.000 claims description 30
- 230000005611 electricity Effects 0.000 claims description 25
- 238000007689 inspection Methods 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 8
- 239000004744 fabric Substances 0.000 claims description 5
- 230000008569 process Effects 0.000 description 30
- 230000006870 function Effects 0.000 description 15
- 238000004519 manufacturing process Methods 0.000 description 10
- 238000004088 simulation Methods 0.000 description 10
- 230000003068 static effect Effects 0.000 description 9
- 238000012360 testing method Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000012854 evaluation process Methods 0.000 description 8
- 239000004065 semiconductor Substances 0.000 description 8
- 239000002184 metal Substances 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 239000013078 crystal Substances 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 241000208340 Araliaceae Species 0.000 description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 235000008434 ginseng Nutrition 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 238000012356 Product development Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013440 design planning Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- 238000012795 verification Methods 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/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
-
- 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
-
- 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/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
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
-
- 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
- G06F2111/00—Details relating to CAD techniques
- G06F2111/12—Symbolic schematics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/08—Intellectual property [IP] blocks or IP cores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/12—Printed circuit boards [PCB] or multi-chip modules [MCM]
-
- 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/20—Design reuse, reusability analysis or reusability optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
实施例涉及使用电路模板的生成和实例化来设计集成电路。电路模板表示电路段的抽象版本。电路模板包括集成电路的部件和节点的连接信息的塌缩版本。通过分析电路段的功能并且在不修改功能的情况下移除或替换电路段的至少一个冗余部件或节点来生成连接信息的塌缩版本。电路模板用于将部件实例化或引用到第二集成电路中。
Description
相关申请的交叉引用
本申请要求于2016年2月25日提交的美国临时申请号62/299,968以及于2016年2月26日提交的美国临时申请号62/300,594的权益,两者均通过引用整体并入。
技术领域
本公开整体涉及集成电路(IC)的设计,并且具体涉及基于电路模板的生成和实例化或引用的IC的设计。
背景技术
IC的设计流程通常包括晶体管级设计和模拟的步骤,以生成清楚的原理图设计。设计流程还包括为布局上的模拟原理图和运行布局-原理图(LVS)检查以及设计规则检查(DRC)创建布局。LVS是指确定特定IC布局是否对应于原始原理图设计,而DRC是指确定特定芯片的物理布局是否满足被称为设计规则的一系列推荐参数。电路设计流程大部分是自定义的,并且缺乏完全自动化。在已经实现IP重新使用的情况下,电路设计流程通常是“静态”或者硬编码的形式,从而将其应用限制在仅与设计源精确匹配的目标位置。模块发生器形式的备选重新使用方法需要来自电子设计自动化(EDA)供应商和/或设计者的显著的编程或脚本技能,并且因此在其应用中也受到同样的限制。
发明内容
实施例涉及经由电路模板为电路设计提供“辅助”自动化,从而促进电路段的重新使用。为了实现基于模板的设计流程的扩散,创建了有用且自检电路模板的库。当电路模板在IC中被实例化或引用时,在没有引入任何附加层级的情况下,可以放置其组成部件和/或布线。
在一个实施例中,为第一IC中的电路段接收连接信息。连接信息指示电路段的部件和第一IC的部件之间的连接。通过分析电路段的功能并且在不修改功能的情况下移除或替换电路段的至少一个冗余部件或节点来塌缩连接信息以为电路段生成减少的连接信息。减少的连接信息表示连接信息的逻辑压缩版本。使用减少的连接信息生成电路模板。电路模板用于将电路段实例化到第二IC中。电路模板表示电路段的抽象版本。在实施例中,电路模板被用于为第二集成电路中的至少一个部件引用信息。
在一个实施例中,连接信息的塌缩可以包括使用单个部件替换电路段的部件的并联堆叠、使用单个部件替换电路段的部件系列、或者置换电路段的一个或多个部件的输入端子。
在一个实施例中,电路模板作为至少一个部件被实例化或引用到第二IC中。至少一个部件的实例化或引用可以包括使用用于模拟第二IC的约束信息来生成模拟器检查。约束信息指示电路段的部件或节点的设计约束。至少一个部件的实例化或引用可以包括使用约束信息来生成对应于电路段的第二IC的至少一部分的布局。
在一个实施例中,约束信息包括针对电路段的部件的电断言。生成模拟器检查包括将电断言转换为用于电路模拟器的模拟器专用电路检查语句。
在一个实施例中,约束信息包括针对电路段的部件的几何断言和连接断言。生成第二IC的至少一部分的布局包括使用几何断言和连接断言来放置第二IC对应于电路段的部件或节点的物理表示并对其布线。
在一个实施例中,从设计者输入命令、被配置为放置电路段的部件和节点的符号物理表示的符号编辑器、或被配置为放置针对电路段的部件和节点的连接布线图案的图案布线接口中的一个或多个来接收约束信息。
在一个实施例中,生成电路模板包括对电路段的部件和节点的名称进行标准化,以包括在电路模板中。
在一个实施例中,将至少一个部件电路模板实例化或引用到第二IC中包括为第二IC生成映射。映射将第二IC的部件和节点的实际名称与电路模板中的标准化名称相关联。
在一个实施例中,在电路段的部件的参数之间确定参数关系。所确定的参数关系被写入电路模板。
在一个实施例中,确定参数关系包括标识电路段的具有参数值的部件,该参数值与包括电路段的另一部件的参数值的聚合表达式匹配。所标识的部件的参数值被替换为聚合表达式。
在一个实施例中,确定参数关系包括从参数数据库中选择电路段的部件的参数子集。在所选择的参数子集中标识具有相同值的参数。
在一个实施例中,确定参数关系包括标识电路段的参数值与所标识的参数的相同值匹配的部件。所标识的部件的参数值被替换为表示相同值的表达式。
在一个实施例中,将至少一个部件电路模板实例化或引用到第二IC中包括通过评估包括电路模板的部件的参数值的聚合表达式来生成第二IC的部件的参数值。
在一个实施例中,电路段对应于一个或多个电路模板。每个电路模板对应于电路段的不同物理实现。
在一个实施例中,在对应于电路段的一个或多个电路模板中搜索匹配标准的电路模板。标准包括所生成的减少的连接信息。标准可以包括针对电路段的部件或节点的约束信息、针对电路段的部件的参数的参数值、电路段的部件的参数之间的参数关系、电路模板的名称或电路模板的描述。
在一个实施例中,电路模板包括所生成的减少的连接信息。电路模板可以包括针对电路段的部件或节点的约束信息、电路段的部件或节点的标准化名称、电路段的部件的参数之间的参数关系、或元数据。元数据可以包括电路模板的名称、电路模板的描述、电路模板的示意预览图像的路径或电路模板的布局预览图像的路径。
附图说明
通过结合附图考虑以下详细描述,可以容易地理解本发明实施例的教导。
图1是根据一个实施例的用于设计和制造IC的各种操作的示例流程图。
图2是示出根据一个实施例的用于设计IC的示例计算设备的高级框图。
图3是示出根据一个实施例的基于电路模板的生成和实例化的IC设计的示例***的框图。
图4是根据一个实施例的示例电路段的电路图。
图5是示出根据一个实施例的针对图4中的电路段的示例塌缩连接信息的电路图。
图6是示出根据一个实施例的针对图5中的电路模板的部件的示例参数关系的电路图。
图7是示出根据一个实施例的将图5的电路模板实例化到示例IC中的电路图。
图8是示出根据一个实施例的用于电路模板的生成和重新使用的示例过程的流程图。
附图仅仅为了图示的目的来描绘本发明的各种实施例。本领域技术人员将从下面的讨论中容易地认识到,在不脱离本文所描述的原理的情况下,可以采用本文所示的结构和方法的备选实施例。
具体实施方式
在以下对实施例的描述中,阐述了许多具体细节以提供更彻底的理解。然而,需注意的是,可以在没有这些具体细节中的一个或多个的情况下实践本发明。在其他情况下,未详细描述众所周知的特征,以避免不必要地使描述复杂化。
本文参考附图描述实施例,其中相同的附图标记表示相同或功能相似的元件。同样在附图中,每个附图标记的最左边的数字对应于首先使用附图标记的图。
实施例涉及经由电路模板为电路设计提供“辅助”自动化,从而促进电路段的重新使用。为了实现基于模板的设计流程的扩散,创建了有用的且自检电路模板的库。针对第一IC中的电路段,选择经连接的部件的集合,并且提供元数据(例如,模板的名称、预期用途的描述或预览图像)。与电路段相关的信息(例如,部件参数、电断言、原理图信息、布局信息或约束信息)可以写入模板中。模板被存储在库数据库中,使得其能够重新使用。当电路模板在IC中被实例化或引用时,在没有引入任何附加的层级的情况下,它们的组成部件和/或布线被放置。
如本文所述的电路模版是指IC段中包含针对电路段的较少的连接信息的表示的设计抽象。电路模板还可以包含设计限制、部件的标准化名称或电路段的部件的参数。电路模板实例化包括从第一IC显式提取或引用IC设计意图,并应用于第二IC,从而允许通过从第一设计学习来实现第二IC设计的元件。
EDA设计流程
图1是示出根据一个实施例的用于设计和制造IC的各种操作的示例流程100。设计过程100从生成产品构想110开始,该产品构想在使用电子设计自动化(EDA)软件112的设计过程期间实现。当设计完成时,其能够被实施流片(taped-out)134。在实施流片134之后,制造136半导体裸片,以形成IC设计中的各个对象(例如,栅极、金属层和通孔)。执行封装和组装过程138,这产生成品芯片140。
可以在一个或多个计算设备(例如,下面参考图2示出和描述的计算设备200)中实现EDA软件112。例如,EDA软件112作为指令存储在由处理器执行的计算机可读介质中,用于执行下面描述的设计流程的操作114-132。该设计流程描述仅用于图示目的。特别地,该描述并不意味着限制本公开。例如,实际的IC设计可能要求设计者以与本文所描述的顺序不同的顺序来执行设计操作。
在***设计114期间,设计者描述要实现的功能。他们还可以执行假设分析计划来改善功能并检查成本。请注意,硬件-软件架构分区可能在此阶段发生。可以在此阶段使用的来自加州山景城Synopsys公司的示例EDA软件产品包括:ModelSystem和产品。
在原理图捕获和验证116期间,写入针对电路中的模块的VHDL或Verilog代码,并检查设计的功能准确性。更具体地,检查设计以确保其产生正确的输出。可在此阶段使用的来自加州山景城Synopsys公司的示例EDA软件产品包括:Custom10和产品。
在针对测试的合成和设计118期间,将VHDL/Verilog转换为网表。该网表可以针对目标技术进行优化。附加地,可以设计并实现测试来检查成品芯片。可以在此阶段使用的来自加州山景城Synopsys公司的示例EDA软件产品包括:CustomDesignPhysicalTestPowerFPGA以及产品。
在网表验证120期间,检查网表是否符合时序约束以及是否对应于VHDL/Verilog源代码。可以在此阶段使用的来自加州山景城Synopsys公司的示例EDA软件产品包括:以及产品。
在设计规划122期间,构建并分析芯片的总体平面图,用于时序和顶层布线。可以在此阶段使用的来自加州山景城Synopsys公司的示例EDA软件产品包括:和IC产品。
在物理实现124期间,发生放置(电路元件的定位)和布线(其连接)。可以在此阶段使用的来自加州山景城Synopsys公司的示例EDA软件产品包括:Custom Compiler、和产品。本文描述的实施例主要涉及物理实现124。
在电路分析126期间,在晶体管级处验证电路功能,这允许精细化。可以在此阶段使用的来自加州山景城Synopsys公司的示例EDA软件产品包括:和Star产品。在物理验证128期间,检查设计以确保以下各项的正确性:制造、电问题、光刻问题和电路。
在解析增强130期间,执行布局的几何操纵,以改善设计的可制造性。可以在此阶段使用的来自加州山景城Synopsys公司的示例EDA软件产品包括:AF和产品。
在掩模数据准备132期间,提供了用于产生掩模以产生成品芯片的“流片”数据。可以在此阶段使用的来自加州山景城Synopsys公司的示例EDA软件产品包括系列产品。
基于电路模板的生成和实例化设计IC的所公开的实施例可以是原理图捕获和验证116、针对测试118的合成和设计、或物理实现124过程等的一部分。
示例计算设备
图2是示出根据一个实施例的用于设计IC的示例计算设备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的类型可以根据实施例和需求而变化。例如,计算设备可以缺少图2所示的显示器、键盘和/或其他设备。
下面参考图3详细描述的电路设计***300可以由计算设备200实现。
针对电路模板的生成和实例化的示例***
图3是示出根据一个实施例的基于对电路模板的引用的生成和实例化或创建的用于设计IC的示例***的框图。重新使用电路模板的设计流程使得电路设计过程能够在IC设计中搜索、过滤、标识以及实例化或创建对相关电路模板的引用,而无需引入附加的层级。当电路模板被实例化或引用时,原理图设计过程可以将物理实现过程指示为“模板化布局”,从而使得在布局实现期间能够随后重新使用与模板相关联的布局和/或约束信息。可以通过修改所包括的部件的参数值来存储所选择的电路模板的未定义的“变体”,用于随后的重新使用。可以指示电路模拟过程自动检查与每个经实例化或引用的电路模板相关联的电约束。
电路设计***300可以通过在接收到设计者输入时显示、建立和修改部件和连接来执行对电路的部件和连接进行实例化或引用和布线的操作等。在实施例中,电路设计***300可以在接收到一系列的设计者输入之后批量处理部件和连接。
为此,电路设计***300与电路设计数据库350通信,并且经由输入设备(例如,键盘210、鼠标214)和输出设备(例如,显示设备218)与设计者交互。由设计者经由输入设备210、214提供的设计者输入可以指示电路设计***300实例化或创建对IC原理图中的电路模板的引用、建立或修改电路段或电路段的节点和部件之间的连接、并在显示器218上显示这样的连接。电路设计***300与部件参数定义数据库360通信,以从部件参数定义数据库360接收参数362。电路设计***300与电路模板数据库370通信,以存储电路模板。
电路设计数据库350是与电路设计***300交互以存储原理图和布局数据352以及经修改的原理图和布局数据354的数据库。如本文所使用的,物理布局数据352包括图案的物理几何布局、原理-布局映射信息(以下称为“映射信息”)、金属层数、以及与制造电路相关联的物理过程。映射信息可以指示一个或多个电路元件中的节点分组为一个或多个节点子集,以及一个或多个电路元件中的节点或部件对应于一个或多个电路中的其他节点或部件等。
经修改的原理图和物理布局数据354是通过交互式电路设计***300相对于原始原理图和物理布局数据352进行修改的电路数据的版本。图案的物理几何布局是例如以GDSII格式的电路的数字表示。经修改的原理图和物理布局数据354包括在物理布局数据352中不存在于图案的物理几何布局中的经布线的连接的图案的经修改的放置、经修改的原理图或物理几何布局。表示新生成的电路连接的附加信息被包括在经修改的物理布局数据354中。
电路设计数据库350可以例如被实现为OpenAccess数据库。尽管电路设计数据库350被描述为与交互式电路设计***300分离的部件,但是电路设计数据库350可以是电路设计***300的一部分。例如,电路设计数据库350可以是存储器206中的模块。
除了其他部件之外,电路设计***300可以包括I/O控制器集线器222、存储器206和图形适配器212。I/O控制器集线器222从输入设备210和214接收设计者输入、并且从交互式电路设计***300外部的电路设计数据库350接收原理图和物理布局数据,处理所接收的设计者输入以及所接收的原理图和物理布局数据,并将经处理的信息提供给存储器206。
除了其他模块之外,存储器206可以包括原理图设计模块304、电路模拟器308、物理实现模块312、模板生成模块316、设计规则检查(DRC)和布局对原理图(LVS)模块324、以及电路模板搜索模块320。存储器206可以包括图3中未示出的其他软件部件(例如,操作***)。存储器206也可以仅包括这些模块的子集。
原理图设计模块304是使用抽象、图形符号和文本表示创建IC(例如,下面参考图7所示的IC 700)的部件、节点和其他元件的表示的软件模块。原理图设计模块304使用符号来创建IC的原理图,以表示部件并强调它们的互连路径。原理图设计模块304可以包括原理图捕获工具和原理图输入工具。原理图设计模块304可以被集成到整个电路设计流程中并且链接到其他EDA工具以用于电路的验证和模拟。原理图设计模块304在如下面参考图7所示和所描述的原理图设计期间在IC的原理图中实例化或引用电路模板。
电路模拟器308是使用数学模型来复制IC的行为的软件模块。电路模拟器308可以是严格模拟的电子电路模拟器,或者可以包括模拟和事件驱动的数字模拟能力(例如,混合模式模拟器)。可以从一个集成原理图驱动整个混合信号分析。电路模拟器308中的数字模型提供IC中部件和节点的传播时间和上升/下降时间延迟的规范。原理图设计模块304经由对电路模板的引用的实例化或创建来将IC中电路段的连接、约束和参数信息相关联。例如,针对电路段的详细寄生效应(基于实际设计布局)可以经由针对电路段的电路模板并入到电路原理图中。电路模拟器308允许在放置电路模板的一个或多个实例的目标设计(例如,放大器或比较器)的预布局模拟中重新使用这样的信息。
物理实现模块312是根据与包括在IC部件中的金属、氧化物或半导体层的图案相对应的平面几何形状来创建IC部分的表示的软件模块。物理实现模块312可以使用电路模板中的设计约束信息来生成IC中包括用于电路段的模版的至少一部分的布局。在实施例中,物理实现模块312可以在批量操作中生成IC的至少一部分的布局。
模板生成模块316是接收针对IC中电路段的连接信息的软件模块。连接信息指示电路段的部件和IC的部件之间的连接。模板生成模块316还可以接收指示针对电路段的部件或节点的设计约束的约束信息。模板生成模块316生成电路模板、电路段中包括针对电路段的减少的连接信息的表示的设计抽象。如下文参考图5和图6所描述的,模板还可以包括针对电路段的部件或节点的约束信息、电路段的部件或节点的标准化名称或电路段的部件的参数之间的参数关系。
部件的参数定义(例如,晶体管的晶体管长度)被存储在部件参数定义数据库360中。部件参数定义数据库360包含参数的定义(例如,参数名称、描述、默认值、值的可能范围等)。部件参数定义数据库360也可以被称为可互操作的部件描述格式(iCDF)数据库。如下面参考图6详细描述的,模板生成模块316可以使用设备364的参数来搜索部件参数定义数据库360。模板生成模块316从部件参数定义数据库360接收参数362。
电路模板数据库370是存储电路模板的数据库。电路模板中的连接信息376被模板生成模块316发送到电路模板数据库370。原理图设计模块304和物理实现模块312可以各自从电路模板数据库接收电路模板372。在实施例中,类似于其他类型的设计单元,电路模板可以作为单元存储在设计库内。可以通过在电路模板单元内存在特殊的“模板网表(stencilNetlist)”分区来标识电路模板,电路模板单元包含文本或网表格式的模板连接。可以将库级目录保持为OpenAccess库属性,该属性列出库内的所有电路模板单元。电路模板信息也可以被存储在关系数据库内。
DRC和LVS检查模块324是确定特定芯片的物理布局是否满足一系列设计规则的软件模块。本领域中已知的设计规则是指由半导体制造商推荐以确保半导体制造商可以制造适当的IC的一般参数。当违反设计规则时,DRC和LVS检查模块324向设计者提示该违反,用于纠正措施或自动修改物理布局来符合设计规则。DRC和LVS检查模块324确定由物理实现模块312创建的特定IC布局是否对应于由原理图设计模块304创建的设计的原理图。DRC和LVS检查模块324使用基于面积的逻辑操作检查在布局期间被绘制为表示电路的层,以通过其构造的层来确定图中所示的半导体部件。DRC和LVS检查模块324将所提取的部件组合成串联和并行组合,并且生成布局数据库的网表表示。DRC和LVS检查模块324在原理图上执行类似的减少。DRC和LVS检查模块324将所提取的布局网表与电路原理图进行比较。
电路模板搜索模块320是使得电路设计***300能够搜索、过滤和标识用于在IC设计内实例化的合适的电路模板的软件模块。电路模板搜索模块320提供搜索和过滤能力,因为可用的可用电路模板的总数可能很大,涵盖大量的公共电路“构建块”拓扑,公共电路“构建块”拓扑具有负金属氧化物半导体(NMOS)和正金属氧化物半导体(PMOS)变化、NPN和PNP双极性变化、可以进一步乘以低电压和高压晶体管变化或其他制造过程特定的变化等。
在一些示例实施例中,图3的***可以具有与上述不同的和/或附加的部件。可以添加附加的部件(例如,专用的放置和布线工具)。自动测试图案生成模块可以与原理图设计模块304结合操作来生成针对IC的测试序列。数据库350、360和370可以被合并到单个数据库中,或者数据库中的任意一个可以是存储器206的一部分。
示例电路段
图4是根据一个实施例的电路段400的示例图。模板生成模块316创建或打开包含感兴趣的电路段(例如,图4中的电路段400)的现有IC设计(其可以是完整的或部分完整的)。在实施例中,可以使用布局设计来代替原理图设计。
电路段400表示电流镜,电流镜通过控制有源器件的另一集合中的电流来复制通过有源器件的一个集合的电流,不论负载如何,均保持输出电流恒定。电路段400包括晶体管404、408、412和416的串联堆叠。晶体管的亚阈值和栅极泄漏电流可以是深亚微米IC中功耗的重要贡献者。如图4所示,晶体管系列堆叠经常被设计在纳米级的IC中,以减少泄漏电流和栅极泄漏与总泄漏的比。
图4中的节点428表示串联堆叠的漏极,并且节点432表示串联堆叠的源极。节点428可以被连接到电源(“Vdd”)。节点432可以用于加载例如放大器中的差分晶体管对。节点424被连接到串联堆叠和晶体管420的栅极。晶体管420表示电流镜400的另一支路。节点436表示晶体管420的漏极,并且节点440表示晶体管420的源极。节点436可以连接到电源(“Vdd”)。节点440可用于加载例如放大器中的差分晶体管对。
模板生成模块316接收针对电路段400的连接信息和(可选地)设计约束信息。连接信息指示电路段的部件(例如,该节点424被连接到串联堆叠和晶体管420的栅极)和IC的部件(例如,该节点432和440可以被连接到IC中的差分对)之间的连接。在一个实施例中,电路段的连接可以以文本格式编码,例如,“m 1 nmos{netl bulk}{net2 gate}{net3 source}{net4 drain}”。该格式以标准化、非图形的形式捕获电路段的电连接。模板生成模块316通过分析电路段的功能并在不修改功能的情况下移除或替换电路段中的至少一个冗余部件或节点来塌缩连接信息,以生成用于电路段的减少的连接信息。减少的连接信息表示连接信息的逻辑压缩版本。
模板生成模块316可以通过以下步骤来塌缩电路段的连接信息:(i)使用单个部件替换电路段的部件的并联堆叠,(ii)使用单个部件替换电路段的部件系列,或(iii)置换电路段的一个或多个部件的输入。例如,功率放大器可以使用共享电流并具有类似散热的输出晶体管的并联堆叠。为了在模板中对这样的电路段进行建模,模板生成模块316可以使用单个部件替换并联堆叠。
参考以下图5,图4中的电路段400的晶体管404、408、412和416的串联堆叠被图5中的电路段500的单个部件504替换。针对图4中的电路段400的连接信息已被塌缩为下面参考图5所示的电路段500的减少的连接信息。晶体管的输入端子(例如,漏极和源极)也可以被置换,以使用网表减少方法来压缩连接。例如,在不修改电路段的功能的情况下,MOS晶体管的源极/漏极端子可以被置换。以生成减少的连接信息。
模板生成模块316还可以接收针对电路段400的设计约束信息。约束信息指示电路段的部件或节点的设计约束,设计约束然后被写入电路模板中。例如,电路模板可以包括约束,使得其捕获设计意图,而不是静态或硬编码的设计信息。这进一步增加了电路模板的重新使用的潜力,因为电路模板可以来自一个设计情境,然后被应用于例如具有不同的晶体管尺寸、鳍(fins)的数量等的其他设计情境中。经由电路模板中的约束并入设计意图与现有技术的“静态”IP共享方法不同。以下参考图5来详细描述电路模板的设计约束。
所生成的电路模板反映了创建并重新使用针对电路段的信息结构的过程。如下面参考图5详细描述的,创建电路模板涉及接收大型数据集(例如,实现的电路段以及具有电路段内的部件选择的寄生效应)、减小大型数据集(例如,塌缩连接信息)、执行推断,以确定所选择的部件之间的感兴趣的关系(例如,参数关系、实例在布局中的相对定位、用于对其布线的图案)、以及然后对命名空间进行标准化来确保存储在模板数据分区中的关系相对于标准化的命名空间。
塌缩连接的示例表示
图5是示出根据一个实施例的图4中的电路段的塌缩连接信息的示例图。电路段500也表示电流镜,然而,图4中的四个串联堆叠的晶体管已被减少为图5中的单个晶体管504。电路段500的其他元件与上述图4中的电路段400中的元件相同。因此,图5表示图4中的电路段400的模板形式。图5中的电路模板表示包括减少的连接信息和(可选地)约束信息。其表示上述图4中的电路段400的抽象版本。在实施例中,电路模板还可以包括静态布局分区,静态布局分区可被实例化或实现为IC设计布局,从而退化为静态形式。在实施例中,电路模板还可以包括可以被实例化或实现为IC设计原理图的静态原理图分区。
电路模板中的约束信息可以包括针对电路段的部件的电断言。可以通过将电断言转换成用于电路模拟器308的模拟器专用电路检查语句来生成模拟器检查。例如,在电流镜500中,晶体管504和420必须处于操作的“饱和”区域,这是功能电流镜的典型布置。在实施例中,可以指定附加的和更复杂的电断言(例如,“两个晶体管的漏极-源极电压差小于阈值”),以避免由于沟道长度调制引起的***失配。模板生成模块316还可以在创建电路模板之前去除约束。
与实例化或引用的电路模板相关联的电断言检查可以被启用,以用于由电路模拟器308进行检查。在IC设计流程中,当由原理图设计模块304为原理图设计选择分级设计时,由原理图设计模块304执行的网表过程检查原理图单元层级的每个级中的实例图形,并以适合于电路模拟器308的格式将它们写入文本网表文件。例如,列出晶体管504和420的预期饱和操作区域的电断言可以在电路模板中创建。为了验证目的,该设计意图被传送到电路模拟器308。因此,原理图设计和模拟流程将扩展为不仅检测原理实例图,还要检测针对实例化或引用的电路模板的原理图。
具体地,针对电断言,经实例化或引用的电路模板被标识并检测。对于每个这样的实例化或引用的电路模板,如果存在电断言,则这些断言被转换成用于电路模拟器308的模拟器专用电路检查语句。作为响应,电路模拟器308连续地检查晶体管504和420确实处于操作的饱和区域,报告与该预期操作区域的任何差异。这种“自检”特征使得能够验证其中电路模板已被实例化或引用的目标IC。
原理图设计模块304可以选择原理图晶体管,然后搜索具有相同对应连接的一个(或多个)匹配电路模板。原理图设计模块304可以从电路模板数据库370中选择电路模板,然后搜索具有相同连接的匹配原理图晶体管的一个(或多个)组。因此,针对IC先前创建的原理图可以因此被“模板化”。可以检测原理图以确定其组成电路段中的任一个是否可被模板的实例或对模板的引用所替换。如下所述,这些“搜索和实现”或“搜索和重新实现”特征也可以由原理图驱动的布局(SDL)生成来执行。
约束信息还可以包括针对电路段的部件的几何断言和连接断言。生成IC部分的布局可以包括使用几何断言和连接断言来对与电路段相对应的IC的部件或节点的物理表示进行放置和布线。例如,当在目标设计中实例化或引用电路模板时,原理图设计模块304可以对将要被创建的布局进行控制以实现目标设计。原理图设计模块304可以允许物理实现模块312在一定程度上控制在实现布局时使用模板的可用布局或约束分区中的哪一个,或者原理图设计模块304可以选择分区并“仅锁定到该分区”,以将物理实现模块312仅限制为模板化的布局分区。在后一种情况下,当实现布局(例如,使用SDL)时,物理实现模块312被约束以遵循在电路模板中指定的布局约束。
在SDL被用于IC布局中实例化模版的实施例中,如上所述,物理实现模块312可以直接选择和放置电路模版。备选地,物理实现模块312可以选择原理图晶体管,然后搜索具有相同对应连接的一个(或多个)匹配电路模板。物理实现模块312可以从电路模板数据库370中选择电路模板,然后搜索具有相同连接的匹配原理图晶体管的一个(或多个)组。
匹配电路模板也可以由自动化放置和布线工具使用。这些工具可以输入例如电路模板约束,并在以自动方式对设备实例进行放置或布线时应用并执行电路模板约束。例如,约束可能需要自动化放置器工具将两个差分对晶体管放置在单个行中,或者将多个匹配项目放置在N行乘以M列等的网格中。电路模板可能要求自动布线工具以对两个网络进行对称布线,使得其寄生效应紧密匹配,等。在存在多个匹配电路模板的实施例中,可以通过自动放置和布线工具一次考虑整个集合。一个实施例还允许对所有电路模板进行迭代,并且对于每个电路模板(其可以具有一个或多个匹配),针对每个匹配,遵循相同的过程。这样可以按批次方式自动化或聚合操作。
模板生成模块316可以例如从以下项接收针对电路段的约束信息:(i)设计者输入命令,(ii)符号编辑器,被配置为放置电路段的部件和节点的符号物理表示,或(iii)图案布线接口,被配置为针对电路段的部件和节点放置连接布线图案。模板生成模块316可以经由I/O控制器集线器222从输入设备210和214的设计者输入接收约束。例如,可以使用在屏幕218上显示的设计者界面对话来创建包括布局图集合和/或约束的初始选择。模板生成模块316可以不仅保存电路模板连接,而且还可以保存经选择的布局图、约束和/或相关联的原理图,以在新创建的模板单元内分离模板分区。可以可选地扩展电路模板元数据对话的“高级”部分,以提供参数化和断言(电约束)信息。可以经由“参数”标签来输入参数化信息,并且可以经由“断言”标签来输入电断言。可以在屏幕218上显示预先填充有感兴趣的典型参数的参数表。模板生成模块316可以选择不通过基于设计者命令直接编辑表的内容来将电路模板参数化,或者继续移除参数、添加新参数或重命名参数。下面参考图6详细描述电路模板的参数化。
符号编辑器是用于数字和模拟电路布局的软件模块。符号编辑器能够为电路段500的多个PMOS和NMOS行对定义约束。当在布局画布上实现时,符号编辑器上的预览窗口可以显示布局的外观。例如,为了使设计更紧凑,可能需要塌缩较大的晶体管。符号编辑器允许设计者通过约束所需的段数或晶体管的宽度阈值来塌缩晶体管。然后,物理实现模块312可以选择适当的器件并将其塌缩,使得晶体管整齐地适配在行中。模拟IC通常对过程变化、噪声和其他制造差异敏感。为了减轻这些差异对关键电路零件的影响,符号编辑器可以指定复杂的交叉指令图案约束。符号编辑器还可以从可用于以特定顺序指配器件的内置图案库来检索约束。
图案布线接口是可以从现有布局推断布线图案、使用约束产生和存储这些图案的软件布线接口。图案布线接口可以检索对应于节点的预先存在的多边形以及被称为预布线的预先存在的布线。图案布线接口可以创建几何约束,使得分配给相同网络的所有节点都被连接,分配给不同网络的节点未被连接,并且遵守所有设计规则。为了正确连接网络,图案布线接口也可能创建约束,使得设计满足定时、不具有串扰问题、满足任何金属密度要求、不受天线影响等。
模板生成模块316对部件的名称和电路段的节点名称进行标准化,以包括在电路模板中。电路模板中的节点和部件可以通过使用下面描述的名称标准化方法将其名称标准化或被“唯一化”。模板生成模块316循环访问包括感兴趣的电路段的IC的节点结构。当遇到每个节点时,将检查其是否是感兴趣的。如果节点与模板的任何部件的直接互连相关联,则该节点是“感兴趣的”。如果节点(例如,在下面的图4中的节点424或428)不与这样的直接互连相关联,则节点是不感兴趣的。如果节点是感兴趣的,则节点被标准化(使用节点映射中的对应值替换其名称)并写入模板,并且过程继续到与该节点相关联的节点元件。检查每个节点元件以查看其字段是否是感兴趣的,如果是,则在写入模版之前再次将“模板化(stencilization)”应用于这些节点字段。在写入模板之前,可以通过将字符串附加到其实例名称来将节点名称唯一化。当所有节点耗尽时,遍历部件。考虑每个感兴趣的部件,并且在写入模板之前,使用来自实例名称映射的对应值对其实例名称进行标准化。此外,其节点字段也与网络名称映射进行比较,并与其他任何节点项进行模板化。
所生成的电路模板包括所生成的减少的连接信息(如图5所示)以及(可选地)约束信息、部件或节点的标准化名称、或电路段的部件的参数之间的参数关系(以下参考图6详细说明和描述的)。电路模板还可以包括元数据,元数据包括电路模板的名称中的一个或多个(例如,“可缩放的电流镜”)、电路模板的描述(例如,“可缩放NMOS电流镜,其中比率参数允许输出电流相对于参考电流被“缩放”)、到电路模板的原理图预览图像的路径、或到电路模板的布局预览图像的路径。如图5所示,可以为电路模板生成、并从电路段单元视图中导出缩略预览图像。在实施例中,设计者可以提供备选图像。如下面参考图7所描述的,预览图像和电路模板“描述”元数据使得能够重新使用电路模板。
电路模板中的示例参数关系
图6是示出根据一个实施例的针对如图5所示的电路段500的部件的参数关系608的示例图。部件的参数是指诸如晶体管长度的晶体管设计参数等,并且被模板生成模块316并入电路模板中。
图6示出了针对晶体管504(从上述图4的串联堆叠减少)的参数604。符号nf表示晶体管504的指状晶体管(fingers)的数量,并用表达式gPar(nfingers)代替。符号l表示晶体管504的晶体管长度,并且在该示例中等于0.lu。符号w表示晶体管504的晶体管长度,并且在该示例中等于0.19u。参数列表612中针对晶体管420的符号nf表示晶体管420的指状晶体管的数量,并已用表达式gPar(nfingers)*gPar(ratio)代替。针对晶体管420的符号l表示晶体管420的晶体管长度,并且在该示例中等于0.1u。针对晶体管420的符号w表示晶体管420的晶体管长度,并且在该示例中等于0.19u。在针对电路模板的参数列表608中,表达式gPar(nfingers)等于2。在参数列表608中,比率值等于4。因此,晶体管420具有晶体管504的指状晶体管的数量的4倍,即4×2=8。
模板生成模块316确定电路段的部件的参数之间的参数关系,并将所确定的参数关系写入电路模板。确定参数关系可以包括从部件参数定义数据库360中选择电路段的部件的参数子集,并且在所选择的参数子集中标识具有相同值的参数。确定参数关系还可以包括标识其参数值与所标识的参数的相同值匹配的电路段的部件,并使用表示相同值的表达式来替换所标识的部件的参数值。
针对电路模板的参数表608最初预先填充有感兴趣的候选参数。再次参考图6所示的电路模板的组成部件,存在具有所显示的参数(nf、l和w)集合的两个晶体管504和420。典型的MOS晶体管或其他器件可以具有比此更多的参数;然而,这三个参数可以默认显示,因为它们倾向于与图6所示的电路的预期功能最直接相关。为组成晶体管的“默认显示”选择的参数子集604和612因此是影响整个电路模板中包括的器件的“组”的相同参数。参数表608可以基于预定属性(例如,针对被包括在电路模板中的晶体管实例(例如,如图6中所示的晶体管实例)的iCDF数据库(部件参数定义数据库360)的“paramLabelSet”属性)被预先填充。
用于标识针对参数预填充过程的最佳候选参数的过程是(i)标识所选择的晶体管实例(例如,晶体管504),(ii)从产品开发套件的iCDF数据库部分找到其iCDF信息,(iii)标识由诸如iCDF的“paramLabelSet”属性的预定义属性指定的公共编辑的参数,以及(iv)确定哪些参数在所标识的参数中具有公共值。针对所确定的参数的iCDF信息被用于预先填充针对电路模板的参数表608。基于初始“种子”集,模板生成模块316可以修改、重命名、删除或添加参数。为了对电路模板添加参数,创建iCDF数据库并将其与电路模板相关联。使用表608中指定的参数定义来填充iCDF数据库,允许电路模板级参数化被持久化。当使用元数据和参数定义来保存表示图6的电路模板时,在电路模板单元内创建新的电路模板原理图视图,以存储图6所示的原理图实例的副本及其连接。电路模板原理图单元视图可以由设计者编辑。
作为创建电路模板原理图单元视图的过程的一部分,遍历组成器件实例(晶体管504和420),并检测其实例参数604和612,以检查它们是否被保留(尽管可能给出不同的名称和默认值)作为表608中的参数。为了执行该检查,表608及其相关联的数据结构还可以包括表示原始器件参数名称和默认值的额外的列。对于图6所示的电路模板原理图单元视图中的那些组成器件(例如,晶体管504和420)(其具有相匹配的器件实例参数(例如,参数1)),对应的器件实例参数值可以使用表608中对应的电路模板参数的gParO引用来代替。例如,图6中的原理图电路模板单元视图可以在所选择的器件实例604上查询“l”参数(具有提示“长度”)的值。作为上述取代过程的结果,实例504上的“l”参数的值可以从0.lu的数值改变为表达式“gPar(l)”。这里,gPar(l)表示对名称为l的“组参数”的引用。
取代的结果在表608中示出。可以对晶体管420进行类似的取代,使得晶体管的长度参数均共享对相同组参数l的引用。如果当电路模板在IC设计中被实例化或引用时,组参数l被分配不同的值,则实例将均采用相同的值,以通过构造正确的方式保持其匹配属性。
模板生成模块316可以标识具有与聚合表达式匹配的参数值的电路段的部件,聚合表达式包括电路段的另一部件的参数值。模板生成模块316可以使用聚合表达式来替换所标识的部件的参数值。例如,在表604中,使用表达式gPar(nfingers)替换晶体管504上的nf参数。在表612中,使用引用两个电路模板组参数的表达式gPar(nfingers)*gPar(ratio)替换晶体管420上的nf参数。使用该表达式,晶体管420被修改为使得其具有等于电路模板的nfingers参数乘以电路模板的ratio参数的乘积的指状晶体管的数量。有效的结果是电流镜电路模板,电流镜电路模板相对于参考支路电流在电流镜支路晶体管中提供经缩放或比例化的电流。当在IC设计中使用时,实际电流比率或缩放因子由经实例化或引用的电路模板ratio参数的值确定。在图6的示例中,gPar(ratio)等于4,并且gPar(nfingers)等于2,并且因此,gPar(nfingers)*gPar(ratio)等于8。当已生成“可缩放的电流镜”电路模板时,将其添加到电路模板数据库370进行实例化。
电路模板并入集成电路中的示例
图7是示出根据一个实施例的图5的电路模板的实例化并入集成电路的示例图。图7示出了示例多级运算放大器的一部分。集成电路700可以被耦合到节点704、708和712处的电源。集成电路700中的节点728、432、440和768可以接地。节点740和756形成到集成电路700的输入。由晶体管716和720形成的电流镜可以向集成电路700提供偏置电流。集成电路700包括由晶体管744和756形成的差分对。集成电路700的第二级由晶体管764组成,晶体管764是主动加载有电流源晶体管724的公共源极放大器。电容器760被包括在第二级的负反馈路径中。集成电路700的输出是节点748。
通过实例化或创建对图5中所示的电路段的模板780的引用而在集成电路700的原理图中创建针对包括晶体管504和420的电流镜的电路段。模板780中针对来自图6的电路段的参数信息在针对集成电路700的原理图中被评估为表772和776。
电路模板单元视图不需要包含任何端子。由于基于电路模板的流程不需要创建任何附加的层级,所以不需要这样的引脚。当生成模板时,来自上述图4的延迟引脚被删除。在一个实施例中,当实现上述图5的原理图形状,同时将模板780实例化到图7所示的IC 700中时,来自图4的选择的任何延迟引脚可以被删除。在模板创建期间,线桩可以被放置、延长或缩短,以便于电路板在如下所述的IC中的放置和连接。当检索电路模板原理图单元视图时,原理图设计模块304可以添加缺失的端子,以完成图7所示的原理图。当所选择的电路模板780被实例化或引用时,基于电路模板数据库370中的信息,其对应的电路模板设计单元视图被确定,库注释及其组成图被复制或生成并放置在复制缓冲器中。在IC设计中,电路模板的形状可以移动,然后才能完成其放置。然后在不创建基于其他附加单元的层级的情况下,将电路模板原理图直接复制到IC原理图中。在实例化期间,可以相对于图7的IC设计中的现有图、以及如图5所示的电路模板本身中的图,生成对准标记。当针对IC中的电路段,电路模板被实例化或引用时,与基于传统标准单元的设计流程不同,在不引入任何附加的层级的情况下,它们的组成器件和/或布线被放置。
IC中电路模板780的重新使用涉及电路模板780的实现。在原理图或布局环境中的标准单元重新使用涉及在IC设计中创建实例,该实例是对被重新使用的整个单元的引用。然而,对于IC中的电路模板的重新使用,不会创建这样的实例。相反,实现电路模板,即在IC设计中直接创建一个或多个附加对象。对于原理图设计,实现是复制操作。原理图设计模块304将原理图形状(网、实例及其相对布局/定位)从电路模板780的原理图分区复制到IC原理图中。此外,部件和节点名称通过映射被重命名。映射将IC的部件和节点的实际名称与电路模板780中的标准化名称相关联。
当电路模板780的一个或多个实例被放置在IC设计(原理图或布局)中时,可以对实例重命名,以防止与IC设计中现有名称的冲突。名称映射信息可以被注释到每个放置的电路模板780实例上。名称映射包含从IC设计中放置的名称到电路模板780中对应的对象名称的映射。图4(其中创建了电路模板780)中的晶体管的名称与用于写入电路模板单元本身(图5)的对象的名称不同,这些名称与实现电路模板780的IC设计(图7)中的对象的名称不同。因此采用两级名称映射。
对于布局设计情境中的电路模板重新使用,可以使用静态复制实现器,这非常类似于原理图设计的情况(其中来自电路模版单元布局的对象再次被复制且被命名映射到IC布局)。此外,可以使用动态实现操作。这里,实现过程涉及针对电路模板单元布局中的每个对象,在IC设计布局中创建多个对象,这不再是电路模板780中的对象和IC布局中的对象之间的1:1的映射。例如,诸如晶体管的翅片数量的参数在IC中可以不同于其在初始电路段中或这些多个对象被塌缩或合并的抽象网表版本中的数量。电路段设计对象和IC设计对象之间可以存在一对多的关系、多对一的关系、或者甚至是多对多的关系,而不仅仅是通常在静态复制或重复使用标准单元的情况下的1:1的关系。在作为实现过程的一部分的IC设计布局中创建这些对象的同时,在经映射的IC设计对象之间也复制或以其他方式实现电路模板780对象之间的各种关系(其被推断为电路模板780创建的一部分)。
在目标设计(原理图或布局)中实现的对象被分组,使得它们可以作为原子单元来操作(例如,原理图晶体管实例的整个组及其连接线可以在单个原子操作中移动),该组被进一步“标记”,将其标识为电路模板,并且在需要稍后重新实现的情况下(例如,在不同的参数值的情况下),利用对电路模板780源极(例如,图4)的引用被进一步标记。
将电路模板780实时化或实现到IC 700中可以包括通过评估包括电路模板780的部件的参数值的聚合表达式来生成针对IC 700的部件的参数值。在来自图5的“ScalableCurrentMirror”电路模板被选择用于IC 700中的实例化之后,可以选择图6所示的电流缩放比率参数的值“4”。在IC 700中放置的“ScalableCurrentMirror”电路模板对准之后,来自原理图电路模板单元视图的形状被复制到IC 700设计中。作为放置操作的一部分,可以设置“instParams”属性来对参数表772和776中每个参数(其值与存储在部件参数定义数据库360和电路模板单元数据库370中的iCDF参数默认值不同)的(参数、值)对的列表进行编码。因此,只有在模板创建期间覆盖其值的电路模板属性才被包含在instParams属性中。这些值被用于下面描述的gPar()解析过程。除了instParams属性之外,表示电路模板本身的库和单元的名称也被注释为附加属性以及“datestamp”属性。
如下描述针对gPar()实例参数值的评估过程,例如图6所示的所选择的晶体管420上的nf参数的gPar(nfingers)*gPar(ratio)表达式。图7中的gPar()解析过程从实例(例如,晶体管504)开始。如果该实例指定了任何实例参数(例如,nf)(其又包含gPar()引用,例如,gPar(nfingers)(参见图6)),则解析过程首先确定该实例是否是参数组的成员。如果是,则使用该组本身(即,与晶体管实例相关联的组)来解析gPar()引用。如果评估过程无法使用晶体管实例的关联组实例来解析对gPar(nf)的引用,则会进一步检查组实例,以查看它是否真实地表示电路模板(并且未经由其他不相关的过程创建)。如果组实例被标识为表示电路模板实例,则评估过程尝试经由基于主电路模板的搜索来对其进行解析。如果基于主模板的搜索尝试也失败,则尝试将gPar()引用解析为基于单元的亲代参数引用。
从存在gPar()引用的实例开始,评估过程遍历实例504所属的组。然后检查组本身是否有任何参数覆盖,参数被编码为组本身的字符串属性“instParams”。如果是,则将该字符串属性解析为(名称、值)对的列表,如果任何对名称与gPar()引用相匹配,则匹配(名称、值)对中的对应值作为针对该实例的gPar()引用的解析值,并且流程终止。
如果未找到覆盖属性,则评估过程尝试使用实例的组的主电路模版来解析gPar()引用。从存在gPar()引用的实例(例如,晶体管504)开始,评估过程遍历实例所属的组。然后检查该组是否具有表示其经由电路模板放置操作而存在的属性。如果是,则使用属性值来标识组的相关联的主单元(即,基于电路模板单元的定义)。然后检查该主单元,以查看其是否具有关联的iCDF数据库(包含gPar())表达式中引用的参数(例如,nf)的描述)。如果是,则使用该参数的iCDF默认值,并且解析过程终止。
在存在基于单元的层级的典型分层设计中,维持可以被查询以确定实例层级的层级数据结构(即,对于任何实例,其子代实例的列表(单元内的所有实例对应于所放置的实例)及其各自的子项)。数据结构也可以被“反向”遍历(允许从实例遍历到其亲代实例)。对gPar()解析的基于单元的亲代引用方法使用该层级数据结构来遍历包含gPar()引用的实例(例如,晶体管504)的亲代实例(如果存在)。如果发现亲代实例,则检查亲代实例,以确定其是否具有指定由gPar()引用的参数值的实例参数设置。如果未找到这样的实例参数设置,则该过程确定包含进行gPar()引用的晶体管实例的主单元,并尝试使用该主单元来解析gPar()引用。
在一个实施例中,根据基于单元的亲代实例对gPar()引用进行解析的评估过程使用层级数据结构来遍历包含gPar()引用的实例的亲代实例(如果存在)。如果找到亲代实例,则针对与gPar()引用的名称相同的参数来查询该亲代实例。可以使用OpenAccess“findParam”实例查询。如果查询找到与gPar()引用的参数的名称相同的参数,则采用其值,并且解析过程成功。
从发现gPar()引用的实例开始,评估过程可以确定针对该实例的主单元。实例对象上的标准OpenAccess getDatabase()查询可以用于此目的。根据该结果对象,使用标准OpenAccess getLibrary()和getCell()数据库对象查询来查询库和单元对象。这确定了针对包含待检查的实例的单元的主单元。然后检查该主单元,以查看其是否具有关联的iCDF数据库(包含gPar()表达式中引用的参数(例如,nf)的描述)。如果具有,则采用该参数的iCDF默认值,并且解析/终止解析过程。如果不存在针对组/电路模板主单元的iCDF数据库,或存在iCDF数据库,但所引用的参数不存在于该数据库中,则解析过程终止。
在一个实施例中,可以允许gPar()引用包括除了所引用的参数名之外的默认参数值。例如,晶体管实例可以指定指状晶体管的数量为gPar(nf,2)。这里,值2表示nf组参数的默认值。如果所有解析过程失败,则意图使用该值。与在没有解析机制成功的情况下生成错误不同,解析过程使用gPar()引用中指定的默认值。针对图6所示的晶体管604的gPar(nfingers)表达式如上所述被解析为等于2。针对图6所示的420的nf参数的gPar(nfingers)*gPar(ratio)表达式被解析为nf=2×4=8。
在一个实施例中,可以在对IC 700的原理图执行模拟之后修改IC 700的原理图。例如,当针对来自图5的电路段的电路模板780的重新使用揭示了模拟期间IC 700中的设计缺陷时,IC 700的原理图可以被修改。
每个电路段(例如,图5中的段500)可以对应于从电路段生成的一个或多个电路模板。每个这样的电路模板对应于电路段的不同物理实现。例如,不同的物理实现可以对应于不同平面几何形状,不同平面几何形状对应于包括在电路段500的部件中的金属、氧化物或半导体层的不同图案。最终集成电路700的行为取决于几何形状的位置和互连。不同的物理实现可以被设计为在性能、大小、密度和可制造性方面满足不同的标准。电路模拟器308可以使用针对对应于电路段500的每个电路模板的不同电路模板来对集成电路700的不同原理图进行模拟。原理图设计模块304可以基于用于在集成电路700的原理图中进行实例化或引用的模拟来选择电路模板中的一个。
可以创建电路模板库来存储电路模板。电路模板库与过程无关(即,其中的电路模板不依赖于任何特定的制造过程)。电路模板库中的电路模板可以仅包括减少的连接、原理图和约束信息,不具有静态布局信息。此外,电路模板的原理图分区包括来自样本部件库的原始部件(其也与过程不相关)。根据电路模板库,可以通过复制电路模板库部件并将其修改为过程特定的电路模板库部件,可以创建过程无关的电路模板库。原理图分区中的原始部件可以由来自制造过程库的特定部件代替,并且除了过程特定的信息(例如,层信息、过程特定晶体管单元库、映射信息等)之外,可以使用减少的连接和电路模板库中的约束来生成布局。
设计者可用的电路模板的总数可以很大,包括具有NMOS和PMOS变化、NPN和PNP双极性变化、低电压和高压晶体管变化、以及其他制造过程特定的变化等的大量的公共电路“构建块”拓扑。在电路模板实例化之前,电路模版搜索模块320可以在电路模板数据库370中搜索合适的电流镜电路模板,以在IC 700设计中重新使用。搜索电路模板可以基于包括所生成的减少的连接信息以及以下项中的一个或多个的标准:(i)约束信息(例如,如上参考图5所述),(ii)电路段的部件的参数之间的参数关系(例如,如上参考图6所述),(iii)电路模板的名称,(iv)或电路模板的描述。当创建目标设计时,设计者可以使用相同的电路模板管理器界面在屏幕218上预览可用设计电路模板的列表。如果目标设计是原理图设计,则列表中包括具有可用原理图分区的电路模板。因此,该列表将包含具有原理图分区的所有可用电路模板的超集,并将基于关系数据库/OpenAccess库注释被填充。可以通过将任何共享数据库/库中的电路模板与设计者个人数据库/库中的电路模板组合来找到可用电路模板的超集。
针对电路模板的生成和重新使用的示例过程
图8是示出根据一个实施例的针对电路模板的生成和重新使用的过程的流程图。在一些示例实施例中,该过程可以具有与结合图8所描述的步骤不同的和/或附加的步骤。该过程的步骤也可以以与结合图8所描述的顺序不同的顺序执行。一些步骤可以并行执行。备选地,可以并行地执行一些步骤,并且顺序地执行一些步骤。备选地,一些步骤可以以管线方式执行,使得在执行先前步骤之前开始步骤的执行。
模板生成模块316接收针对第一集成电路中的电路段的800个连接信息。连接信息指示电路段的部件和第一集成电路的部件之间的连接。模板生成模块316还可以接收约束信息。约束信息指示针对电路段的部件或节点的设计约束。
模板生成模块316通过分析电路段的功能以及在不修改功能的情况下移除或替换电路段中的至少一个冗余部件或节点来将连接信息塌缩804,以生成针对电路段的减少的连接信息。减少的连接信息表示连接信息的逻辑压缩版本。
模板生成模块316使用减少的连接信息和(可选地)约束信息来生成808电路模板。电路模板表示电路段的抽象版本。
原理图设计模块304将对电路模板的引用812实例化或创建到第二集成电路中。实例化或引用可以包括使用由电路模拟器308模拟第二集成电路的约束信息来生成模拟器检查。实例化或引用可以包括使用约束信息由物理实现模块312生成与电路段对应的第二集成电路的至少一部分的布局。
所要求保护的实施例的益处和优点包括:通过经由电路模板的使用提供“辅助”自动化而在电路设计中增加的效率;在不施加用户处理分级接口的负担的情况下,层级和分层设计的优点;以及减少的设计迭代和周转时间。
为了示例的目的,已经呈现了对实施例的前述描述;其不旨在穷举或将本发明限制于所公开的具体形式。可以理解,根据上述公开内容,可以进行许多修改和变化。
最后,本说明书中使用的语言主要是为了可读性和教学目的而选择的,并且其可能没有被选择来描绘或限定本发明的主题。因此,意图是,范围不受该详细描述的限制,而是由基于其的申请发布的任何权利要求限定。因此,实施例的公开内容旨在图示,但不旨在限制所附权利要求中阐述的范围。
Claims (23)
1.一种计算机实现的方法,包括:
接收针对第一集成电路中的电路段的连接信息和约束信息,所述连接信息指示所述电路段的部件和所述第一集成电路的部件之间的连接,所述约束信息指示针对所述电路段的部件或节点的设计约束;
通过分析所述电路段的功能并且在不修改所述功能的情况下移除或替换所述电路段中的至少一个冗余部件或节点来塌缩所述连接信息,以生成针对所述电路段的减少的连接信息,所述减少的连接信息表示所述连接信息的逻辑压缩版本;
使用所述减少的连接信息和所述约束信息来生成电路模板,所述电路模板表示所述电路段的抽象版本;以及
将所述电路模板作为至少一个部件实例化到第二集成电路中,所述实例化包括以下项中的一个或多个:`
使用所述约束信息来生成用于模拟所述第二集成电路的模拟器检查,以及
使用所述约束信息来生成所述第二集成电路的与所述电路段对应的至少一部分的布局。
2.根据权利要求1所述的计算机实现的方法,其中所述连接信息的塌缩包括以下项中的一个或多个:
利用单个部件来替换所述电路段的部件的并联堆叠;
利用单个部件来替换所述电路段的一系列部件;以及
置换所述电路段的一个或多个部件的输入。
3.一种计算机实现的方法,包括:
接收针对第一集成电路中的电路段的连接信息,所述连接信息指示所述电路段的部件和所述第一集成电路的部件之间的连接;
通过分析所述电路段的功能并且在不修改所述功能的情况下移除或替换所述电路段的至少一个冗余部件或节点来塌缩所述连接信息,以生成针对所述电路段的减少的连接信息,所述减少的连接信息表示所述连接信息的逻辑压缩版本;以及
使用所述减少的连接信息来生成电路模板,所述电路模板用于将至少一个部件实例化到第二集成电路中,所述电路模板表示所述电路段的抽象版本。
4.根据权利要求3所述的计算机实现的方法,其中所述连接信息的塌缩包括以下项中的一个或多个:
利用单个部件来替换所述电路段的部件的并联堆叠;
利用单个部件来替换所述电路段的一系列部件;以及
置换所述电路段的一个或多个部件的输入端子。
5.根据权利要求3所述的计算机实现的方法,还包括将所述电路模板作为所述至少一个部件实例化到所述第二集成电路中,所述实例化包括以下项中的一个或多个:
使用约束信息来生成用于模拟所述第二集成电路的模拟器检查,所述约束信息指示针对所述电路段的部件或节点的设计约束;以及
使用所述约束信息生成所述第二集成电路的与所述电路段对应的至少一部分的布局。
6.根据权利要求5所述的计算机实现的方法,所述约束信息包括针对所述电路段的所述部件的电断言,并且所述生成模拟器检查包括将所述电断言转换成用于电路模拟器的模拟器专用电路检查语句。
7.根据权利要求5所述的计算机实现的方法,所述约束信息包括针对所述电路段的所述部件的几何和连接断言,并且生成所述第二集成电路的至少一部分的布局包括使用所述几何和连接断言,对所述第二集成电路的与所述电路段对应的部件和节点的物理表示进行放置和布线。
8.根据权利要求5所述的计算机实现的方法,其中从以下项中的一个或多个接收所述约束信息:
设计者输入命令;
符号编辑器,被配置为放置所述电路段的部件和节点的符号化物理表示;以及
图案布线接口,被配置为放置用于所述电路段的部件和节点的连接布线图案。
9.根据权利要求3所述的计算机实现的方法,其中所述电路模板的生成包括将所述电路段的部件和节点的名称标准化,以包含在所述电路模板中。
10.根据权利要求3所述的计算机实现的方法,其中将所述电路模板实例化到所述第二集成电路中包括:生成所述第二集成电路的映射,所述映射将所述第二集成电路的部件和节点的实际名称与所述电路模板中的标准化名称相关联。
11.根据权利要求3所述的计算机实现的方法,还包括:
确定所述电路段的所述部件的参数之间的参数关系;以及
将所确定的所述参数关系写入所述电路模板。
12.根据权利要求11所述的计算机实现的方法,其中所述参数关系的所述确定包括:
标识所述电路段的具有与聚合表达式匹配的参数值的部件,所述聚合表达式包括所述电路段的另一部件的参数值;以及
利用所述聚合表达式替换所标识的所述部件的所述参数值。
13.根据权利要求11所述的计算机实现的方法,其中所述参数关系的所述确定包括:
从参数数据库中选择所述电路段的所述部件的参数子集;以及
在所选择的所述参数子集中标识具有相同值的参数。
14.根据权利要求13所述的计算机实现的方法,其中所述参数关系的所述确定还包括:
标识所述电路段的参数值与所标识的参数的相同值匹配的部件;以及
利用表示所述相同值的表达式来替换所标识的所述部件的所述参数值。
15.根据权利要求3所述的计算机实现的方法,其中将所述电路模板实例化到所述第二集成电路中包括:通过评估包括所述电路模板的部件的参数值的聚合表达式来生成针对所述第二集成电路的部件的参数值。
16.根据权利要求3所述的计算机实现的方法,其中所述电路段对应于从所述电路段生成的一个或多个电路模板,所述电路模板中的每一个对应于所述电路段的不同物理实现。
17.根据权利要求16所述的计算机实现的方法,还包括在与所述电路段对应的所述一个或多个电路模板中搜索与标准匹配的电路模板,所述标准包括所生成的所述减少的连接信息和以下项中的一个或多个:
针对所述电路段的部件或节点的约束信息;
所述电路段的所述部件的参数之间的参数关系;
所述电路模板的名称;以及
所述电路模板的描述。
18.根据权利要求11所述的计算机实现的方法,其中所述电路模板包括所生成的所述减少的连接信息和以下项中的一个或多个:
针对所述电路段的所述部件或节点的约束信息;
所述电路段的所述部件或节点的标准化名称;
所述电路段的所述部件的所述参数之间的参数关系;以及
元数据,包括以下项中的一个或多个:所述电路模板的名称、所述电路模板的描述、到所述电路模板的原理图预览图像的路径、以及到所述电路模板的布局预览图像的路径。
19.一种计算机实现的方法,包括:
接收针对第一集成电路中的电路段的连接信息,所述连接信息指示所述电路段的部件和所述第一集成电路的部件之间的连接;
通过分析所述电路段的功能并且在不修改所述功能的情况下移除或替换所述电路段的至少一个冗余部件或节点来塌缩所述连接信息,以生成针对所述电路段的减少的连接信息,所述减少的连接信息表示所述连接信息的逻辑压缩版本;以及
使用所述减少的连接信息生成电路模板,所述电路模板用于引用第二集成电路中的至少一个部件,所述电路模板表示所述电路段的抽象版本。
20.根据权利要求19所述的计算机实现的方法,还包括将所述电路模板引用为所述第二集成电路中的所述至少一个部件,所述引用包括以下项中的一个或多个:
使用约束信息来生成用于模拟所述第二集成电路的模拟器检查,所述约束信息指示针对所述电路段的部件或节点的设计约束;以及
使用所述约束信息生成所述第二集成电路中与所述电路段对应的至少一部分的布局。
21.根据权利要求19所述的计算机实现的方法,其中将所述电路模板引用到所述第二集成电路中包括:生成针对所述第二集成电路的映射,所述映射将所述第二集成电路的部件和节点的实际名称与所述电路模板中的标准化的名称相关联。
22.一种非暂时性计算机可读存储介质,在其上存储有指令,所述指令在由处理器执行时使得处理器:
接收针对第一集成电路中的电路段的连接信息,所述连接信息指示所述电路段的部件和所述第一集成电路的部件之间的连接;
通过分析所述电路段的功能并在不修改所述功能的情况下移除或替换所述电路段的至少一个冗余部件或节点来塌缩所述连接信息,以生成针对所述电路段的减少的连接信息,所述减少的连接信息表示所述连接信息的逻辑压缩版本;
使用所述减少的连接信息生成电路模板,所述电路模板用于实例化到第二集成电路中,所述电路模板表示所述电路段的抽象版本。
23.根据权利要求22所述的非暂时性计算机可读存储介质,还在其上存储指令,所述指令在由处理器执行时使得所述处理器将所述电路模板实例化到所述第二集成电路中,所述实例化包括以下项中的一个或多个:
使用约束信息来生成用于模拟所述第二集成电路的模拟器检查,所述约束信息指示针对所述电路段的部件或节点的设计约束;以及
使用所述约束信息来生成所述第二集成电路中与所述电路段对应的至少一部分的布局。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662299968P | 2016-02-25 | 2016-02-25 | |
US62/299,968 | 2016-02-25 | ||
US201662300594P | 2016-02-26 | 2016-02-26 | |
US62/300,594 | 2016-02-26 | ||
PCT/US2017/019466 WO2017147502A1 (en) | 2016-02-25 | 2017-02-24 | Integrated circuit design using generation and instantiation of circuit stencils |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533577A CN107533577A (zh) | 2018-01-02 |
CN107533577B true CN107533577B (zh) | 2019-11-08 |
Family
ID=59679649
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780001297.5A Active CN107533577B (zh) | 2016-02-25 | 2017-02-24 | 使用电路模板的生成和实例化的集成电路设计 |
CN201780001284.8A Active CN107533576B (zh) | 2016-02-25 | 2017-02-24 | 针对使用电路模板的电路设计的提取的布局依赖效应的重用 |
CN202111154817.0A Pending CN114091396A (zh) | 2016-02-25 | 2017-02-24 | 针对使用电路模板的电路设计的提取的布局依赖效应的重用 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780001284.8A Active CN107533576B (zh) | 2016-02-25 | 2017-02-24 | 针对使用电路模板的电路设计的提取的布局依赖效应的重用 |
CN202111154817.0A Pending CN114091396A (zh) | 2016-02-25 | 2017-02-24 | 针对使用电路模板的电路设计的提取的布局依赖效应的重用 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10102324B2 (zh) |
EP (2) | EP3259693B1 (zh) |
KR (4) | KR101832117B1 (zh) |
CN (3) | CN107533577B (zh) |
WO (2) | WO2017147502A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10102324B2 (en) | 2016-02-25 | 2018-10-16 | Synopsys, Inc. | Reuse of extracted layout-dependent effects for circuit design using circuit stencils |
US10354037B1 (en) * | 2016-06-30 | 2019-07-16 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing an electronic design by manipulating a hierarchical structure of the electronic design |
CN106227946B (zh) * | 2016-07-26 | 2019-03-12 | 上海望友信息科技有限公司 | 一种pcb网板制作方法及*** |
US10282505B1 (en) | 2016-09-30 | 2019-05-07 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing legal routing tracks across virtual hierarchies and legal placement patterns |
US10210299B1 (en) | 2016-09-30 | 2019-02-19 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for dynamically abstracting virtual hierarchies for an electronic design |
US10192020B1 (en) | 2016-09-30 | 2019-01-29 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing dynamic maneuvers within virtual hierarchies of an electronic design |
US10409948B1 (en) * | 2017-09-29 | 2019-09-10 | Cadence Design Systems, Inc. | Topology preserving schematic transformations for RF net editing |
US10558780B1 (en) * | 2017-09-30 | 2020-02-11 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing schematic driven extracted views for an electronic design |
US10467370B1 (en) | 2017-09-30 | 2019-11-05 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing a net as a transmission line model in a schematic driven extracted view for an electronic design |
US10678978B1 (en) | 2017-09-30 | 2020-06-09 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for binding and back annotating an electronic design with a schematic driven extracted view |
US10783296B1 (en) | 2018-06-08 | 2020-09-22 | Diakopto, Inc. | Matched net and device analysis based on parasitics |
US10762259B1 (en) | 2018-06-08 | 2020-09-01 | Diakopto, Inc. | Circuit design/layout assistance based on sensitivities to parasitics |
KR102312415B1 (ko) | 2018-09-13 | 2021-10-12 | 주식회사 엘지에너지솔루션 | 배터리 모듈, 이러한 배터리 모듈을 포함하는 배터리 팩 및 이러한 배터리 팩을 포함하는 자동차 |
CN108984992B (zh) * | 2018-09-25 | 2022-03-04 | 郑州云海信息技术有限公司 | 一种电路板设计方法和装置 |
US11232248B2 (en) * | 2018-09-28 | 2022-01-25 | Taiwan Semiconductor Manufacturing Company, Ltd. | Routing-resource-improving method of generating layout diagram and system for same |
US11314914B2 (en) * | 2018-11-29 | 2022-04-26 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method and non-transitory computer readable medium of operating an electronic design automation platform for an optimal intgrated circuit design |
US11144688B1 (en) | 2018-12-17 | 2021-10-12 | Diakopto, Inc. | Virtual repeater insertion |
US10796042B1 (en) * | 2019-04-22 | 2020-10-06 | Cadence Design Systems, Inc. | Partial selection-based model extraction from circuit design layout |
CN110941932B (zh) * | 2019-11-29 | 2021-07-20 | 大连理工大学 | 一种面向硬件逻辑设计的需求建模与验证方法 |
US10997333B1 (en) | 2019-12-05 | 2021-05-04 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for characterizing an electronic design with a schematic driven extracted view |
CN113011125B (zh) * | 2019-12-18 | 2023-01-10 | 海信视像科技股份有限公司 | 印制电路板核查方法、装置、设备及计算机存储介质 |
US11714945B2 (en) | 2020-04-09 | 2023-08-01 | Tokyo Electron Limited | Method for automated standard cell design |
US11550985B2 (en) * | 2020-04-09 | 2023-01-10 | Tokyo Electron Limited | Method for automated standard cell design |
DE102021107950A1 (de) * | 2020-05-28 | 2021-12-02 | Taiwan Semiconductor Manufacturing Co., Ltd. | Verfahren zum fertigen von halbleiterbauelementen mit unterschiedlichen architekturen und damit gefertigte halbleiterbauelemente |
US20230334216A1 (en) * | 2020-09-23 | 2023-10-19 | Silvaco, Inc. | Physical verification workflow for semiconductor circuit designs |
US11347913B1 (en) * | 2021-03-19 | 2022-05-31 | Cadence Design Systems, Inc. | Method of reconstruction of post-layout design for graphical display |
CN112989733B (zh) * | 2021-05-07 | 2021-11-30 | 北京芯愿景软件技术股份有限公司 | 电路分析方法、装置、设备及存储介质 |
US11847392B1 (en) * | 2021-11-30 | 2023-12-19 | Cadence Design Systems, Inc. | Method, product, and system for dynamic design switching for high performance mixed signal simulation |
CN114611452B (zh) * | 2022-03-22 | 2024-07-02 | 成都华大九天科技有限公司 | 基于电路原理图在版图中自动生成Sub Cell的方法 |
CN115658692A (zh) * | 2022-10-28 | 2023-01-31 | 深圳市电巢科技有限公司 | 适用于原理图网表的校对分析方法、分析装置及电子设备 |
CN117436379B (zh) * | 2023-12-21 | 2024-04-09 | 成都行芯科技有限公司 | 一种通孔压缩方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224709A (zh) * | 2014-08-29 | 2016-01-06 | 杭州广立微电子有限公司 | 快速产生多样化环形振荡器的方法和*** |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095441A (en) * | 1986-09-12 | 1992-03-10 | Digital Equipment Corporation | Rule inference and localization during synthesis of logic circuit designs |
US6662149B1 (en) | 1999-05-27 | 2003-12-09 | International Business Machines Corporation | Method and apparatus for efficient computation of moments in interconnect circuits |
AU2001253068A1 (en) * | 2000-03-31 | 2001-10-15 | Cadence Design Systems, Inc. | Method and apparatus to optimize an integrated circuit design using transistor folding |
KR100459731B1 (ko) * | 2002-12-04 | 2004-12-03 | 삼성전자주식회사 | 반도체 집적회로의 시뮬레이션을 위한 인터커넥션 영향을포함한 선택적 연결정보를 생성하는 장치 및 그 방법 |
US7206731B2 (en) * | 2003-06-02 | 2007-04-17 | Agilent Technologies, Inc. | Electromagnetic/circuit co-simulation and co-optimization with parametric layout components |
US7184040B1 (en) | 2003-11-21 | 2007-02-27 | Nvidia Corporation | Early stencil test rejection |
US7620743B2 (en) * | 2004-04-01 | 2009-11-17 | Lsi Corporation | System and method for implementing multiple instantiated configurable peripherals in a circuit design |
US7496884B2 (en) | 2005-09-02 | 2009-02-24 | Synopsys, Inc. | Distributed hierarchical partitioning framework for verifying a simulated wafer image |
US20070268731A1 (en) | 2006-05-22 | 2007-11-22 | Pdf Solutions, Inc. | Layout compiler |
US7579606B2 (en) | 2006-12-01 | 2009-08-25 | D2S, Inc. | Method and system for logic design for cell projection particle beam lithography |
US7877376B2 (en) | 2007-07-18 | 2011-01-25 | Oracle International Corporation | Supporting aggregate expressions in query rewrite |
US8443329B2 (en) * | 2008-05-16 | 2013-05-14 | Solido Design Automation Inc. | Trustworthy structural synthesis and expert knowledge extraction with application to analog circuit design |
US7900174B2 (en) * | 2008-05-19 | 2011-03-01 | Interra Systems Inc | Method and system for characterizing an integrated circuit design |
US8037433B2 (en) | 2008-08-22 | 2011-10-11 | International Business Machines Corporation | System and methodology for determining layout-dependent effects in ULSI simulation |
US8103983B2 (en) * | 2008-11-12 | 2012-01-24 | International Business Machines Corporation | Electrically-driven optical proximity correction to compensate for non-optical effects |
US8112729B2 (en) | 2009-04-20 | 2012-02-07 | International Business Machines Corporation | Method and system for selective stress enablement in simulation modeling |
CN102024066B (zh) * | 2009-09-09 | 2013-02-06 | 中国科学院微电子研究所 | 从模拟电路网表自动生成模拟电路原理图的方法 |
US8533650B2 (en) * | 2009-09-17 | 2013-09-10 | Cadence Design Systems, Inc. | Annotation management for hierarchical designs of integrated circuits |
WO2012067688A1 (en) * | 2010-08-25 | 2012-05-24 | Et International, Inc. | Codeletset representation, manipulation, and execution-methods, system and apparatus |
US8789008B2 (en) | 2010-09-13 | 2014-07-22 | Synopsys Taiwan Co., LTD. | Methods for generating device layouts by combining an automated device layout generator with a script |
US20120066542A1 (en) * | 2010-09-13 | 2012-03-15 | National Tsing Hua University | Method for Node Addition and Removal of a Circuit |
US8316335B2 (en) * | 2010-12-09 | 2012-11-20 | International Business Machines Corporation | Multistage, hybrid synthesis processing facilitating integrated circuit layout |
US8745571B2 (en) | 2011-02-14 | 2014-06-03 | International Business Machines Corporation | Analysis of compensated layout shapes |
US8732640B1 (en) | 2011-10-26 | 2014-05-20 | Cadence Design Systems, Inc. | Methods, systems, and articles for multi-scenario physically-aware design methodology for layout-dependent effects |
US8769456B1 (en) * | 2011-10-26 | 2014-07-01 | Cadence Design Systems, Inc. | Methods, systems, and articles for implementing extraction and electrical analysis-driven module creation |
US8621409B2 (en) * | 2012-04-30 | 2013-12-31 | Taiwan Semiconductor Manufacturing Co., Ltd. | System and method for reducing layout-dependent effects |
US8739124B2 (en) | 2012-06-27 | 2014-05-27 | Sap Ag | Configuring integration capabilities for system integration |
US8745556B2 (en) * | 2012-06-28 | 2014-06-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | Layout method and system for multi-patterning integrated circuits |
US9092589B2 (en) | 2013-11-29 | 2015-07-28 | Taiwan Semiconductor Manufacturing Company, Ltd. | Integrated circuit design flow with device array layout generation |
US9626471B2 (en) * | 2014-02-21 | 2017-04-18 | Dassault Systemes Americas Corp. | Methods and systems for filtering components in hierarchically-referenced data |
US9262578B2 (en) | 2014-04-25 | 2016-02-16 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method for integrated circuit manufacturing |
US20160125115A1 (en) * | 2014-11-05 | 2016-05-05 | International Business Machines Corporation | Generating an electromagnetic parameterized cell for an integrated circuit design |
CN105653744A (zh) | 2014-11-13 | 2016-06-08 | 中芯国际集成电路制造(上海)有限公司 | 版图布局的设计方法及装置 |
US9779193B1 (en) | 2015-03-31 | 2017-10-03 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing electronic design layouts with symbolic representations |
US10127338B2 (en) * | 2015-12-15 | 2018-11-13 | Taiwan Semiconductor Manufacturing Company Ltd. | System, method and associated computer readable medium for designing integrated circuit with pre-layout RC information |
US10102324B2 (en) | 2016-02-25 | 2018-10-16 | Synopsys, Inc. | Reuse of extracted layout-dependent effects for circuit design using circuit stencils |
-
2017
- 2017-02-24 US US15/442,019 patent/US10102324B2/en active Active
- 2017-02-24 KR KR1020177030544A patent/KR101832117B1/ko active IP Right Grant
- 2017-02-24 EP EP17757357.3A patent/EP3259693B1/en active Active
- 2017-02-24 KR KR1020187004535A patent/KR102674709B1/ko active IP Right Grant
- 2017-02-24 WO PCT/US2017/019466 patent/WO2017147502A1/en active Application Filing
- 2017-02-24 CN CN201780001297.5A patent/CN107533577B/zh active Active
- 2017-02-24 EP EP17757322.7A patent/EP3259692A4/en active Pending
- 2017-02-24 KR KR1020187004534A patent/KR102139425B1/ko active IP Right Grant
- 2017-02-24 CN CN201780001284.8A patent/CN107533576B/zh active Active
- 2017-02-24 US US15/442,338 patent/US10078715B2/en active Active
- 2017-02-24 WO PCT/US2017/019401 patent/WO2017147453A1/en active Application Filing
- 2017-02-24 KR KR1020177030543A patent/KR101832116B1/ko active IP Right Grant
- 2017-02-24 CN CN202111154817.0A patent/CN114091396A/zh active Pending
- 2017-11-10 US US15/809,855 patent/US10521535B2/en active Active
- 2017-11-10 US US15/809,869 patent/US10380297B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224709A (zh) * | 2014-08-29 | 2016-01-06 | 杭州广立微电子有限公司 | 快速产生多样化环形振荡器的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
US10102324B2 (en) | 2018-10-16 |
EP3259693A4 (en) | 2018-07-11 |
CN107533577A (zh) | 2018-01-02 |
KR20180109836A (ko) | 2018-10-08 |
WO2017147502A1 (en) | 2017-08-31 |
US20180068036A1 (en) | 2018-03-08 |
EP3259692A4 (en) | 2018-07-04 |
US10380297B2 (en) | 2019-08-13 |
EP3259693A1 (en) | 2017-12-27 |
KR101832116B1 (ko) | 2018-02-23 |
CN107533576B (zh) | 2021-09-24 |
KR20180109837A (ko) | 2018-10-08 |
WO2017147453A1 (en) | 2017-08-31 |
KR20170123708A (ko) | 2017-11-08 |
KR101832117B1 (ko) | 2018-02-23 |
KR102674709B1 (ko) | 2024-06-12 |
EP3259692A1 (en) | 2017-12-27 |
US20180089340A1 (en) | 2018-03-29 |
KR20170122840A (ko) | 2017-11-06 |
CN107533576A (zh) | 2018-01-02 |
KR102139425B1 (ko) | 2020-07-29 |
US10521535B2 (en) | 2019-12-31 |
US10078715B2 (en) | 2018-09-18 |
US20170249416A1 (en) | 2017-08-31 |
EP3259693B1 (en) | 2019-05-29 |
US20170249400A1 (en) | 2017-08-31 |
CN114091396A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107533577B (zh) | 使用电路模板的生成和实例化的集成电路设计 | |
US9798840B1 (en) | Methods, systems, and computer program product for implementing a simulation platform with dynamic device model libraries for electronic designs | |
US20220075920A1 (en) | Automated Debug of Falsified Power-Aware Formal Properties using Static Checker Results | |
US7340697B2 (en) | Integrated computer-aided circuit design kit facilitating verification of designs across different process technologies | |
US11763056B2 (en) | Method and system for custom model definition of analog defects in an integrated circuit | |
US8001503B2 (en) | Method and system for automatically accessing internal signals or ports in a design hierarchy | |
Azam et al. | Analog defect injection and fault simulation techniques: A systematic literature review | |
US7231623B2 (en) | Netlist database | |
US11467851B1 (en) | Machine learning (ML)-based static verification for derived hardware-design elements | |
US12032894B2 (en) | System and method for synchronizing net text across hierarchical levels | |
US10997333B1 (en) | Methods, systems, and computer program product for characterizing an electronic design with a schematic driven extracted view | |
US10909301B2 (en) | Method and apparatus for determining waiver applicability conditions and applying the conditions to multiple errors or warnings in physical verification tools | |
JP4080464B2 (ja) | 検証ベクタ生成方法およびこれを用いた電子回路の検証方法 | |
US11334697B1 (en) | Methods, systems, and computer program product for characterizing an electronic design with efficient cell cloning | |
US12014127B2 (en) | Transforming a logical netlist into a hierarchical parasitic netlist | |
US11416661B2 (en) | Automatic derivation of integrated circuit cell mapping rules in an engineering change order flow | |
US11080450B1 (en) | Calculating inductance based on a netlist | |
TW202138795A (zh) | 基於網路的晶圓檢測 | |
Nancollas | Fully Automatic Standard Cell Creation in an Analog Generator Framework | |
CN117043782A (zh) | 即时生成简化的块模型视图 | |
JP2004213228A (ja) | 集積回路の自動再利用設計装置およびソフトウェア |
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 |