一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

自动电路生成的制作方法

2022-02-21 00:29:17 来源:中国专利 TAG:

自动电路生成
1.背景
2.本技术案主张2020年5月22日提出申请的序列号为16/882,217的美国专利申请案的优先权的权益,所述美国专利申请案的内容据此以引用的方式并入本文中。本技术案主张2019年5月30日提出申请的序列号为62/854,848的美国临时专利申请案的优先权的权益,所述美国临时专利申请案的内容据此以引用的方式并入本文中。


背景技术:

3.本公开涉及电子电路,且特定来说,涉及用于自动生成电路示意图及布局的技术。
4.在现代社会中,电子电路已变得无处不在。从智能电话、个人计算机、电视及众多其它消费型电子装置到工业装备、科学仪器、通信系统以及因特网的几乎每一个方面,通常呈集成电路(或“芯片”)形式的电子电路已对人类生存具有巨大的影响。
5.然而,开发电子电路可为耗时且昂贵的。通常,训练有素的电机工程师团队及众多电子电路专业人员花费较长时间周期来设计电路示意图并布局电路系统以形成具有所要功能性的芯片。电路示意图可包含电路中的每一晶体管连同晶体管之间的连接。示意图可用于模拟电子电路将如何操作以确保适当功能性。接下来,将晶体管布局为几何形状。布局(有时称为“掩模设计”)是就平面几何形状来说的集成电路的表示,所述平面几何形状可(举例来说)对应于将在硅中(例如,在然后被切割成个别芯片的晶片上)创建的电路的物理方面。举例来说,布局可表示构成集成电路的物理组件的金属、氧化物或半导体层的图案。
6.设计电路示意图并创建整个电子电路的布局可为冗长且耗时的过程。特定来说,针对模拟电路,通常由经验丰富且训练有素的模拟电路设计专业人员来制备晶体管层级示意图。取决于电路系统的复杂性,从零开始设计示意图可耗费数月。一旦创建设计,模拟电路设计专业人员通常与布局专业人员一起工作来创建布局。布局过程也可耗费数周或甚至数月。
7.发现用于自动生成示意图及布局的技术可减少芯片开发循环时间、简化开发过程且提供宽广范围的其它可能优点。
附图说明
8.图1图解说明根据一个实施例的用于自动电路生成的系统。
9.图2图解说明根据一个实施例的用于自动电路生成的方法。
10.图3a到d图解说明根据各种实施例的自动电路示意图生成的实例。
11.图4a到d图解说明根据另外的实施例的自动电路示意图生成的实例。
12.图5图解说明根据一实施例的生成器的实例性功能块。
13.图6a图解说明根据另一实施例的自动电路生成器的另一实例性框图。
14.图6b图解说明根据一实施例的自动生成电路的实例性过程。
15.图7a到b图解说明根据一个实施例的映射引脚的实例。
16.图8图解说明根据另一实施例的用于自动电路生成的系统。
17.图9图解说明根据一个实施例的用于自动电路生成的方法。
18.图10a到d图解说明根据各种实施例的自动电路布局生成的实例。
19.图11a到d图解说明根据另外的实施例的自动电路布局生成的实例。
20.图12a图解说明根据一个实施例的生成电路布局的实例。
21.图12b图解说明根据一个实施例的生成电路布局的另一实例。
22.图13a图解说明根据一实施例的从不同参数及放置指令生成的实例性电路布局。
23.图13b图解说明根据另一实施例的参数值与放置指令的另一实例性组合。
24.图14图解说明根据一实施例的使用旋转布局放置指令来生成电路布局的另一实例。
25.图15图解说明根据一实施例的使用布局放置指令来生成电路布局的另一实例。
26.图16图解说明根据一实施例的另一实例性设计界面。
27.图17图解说明根据另一实施例的实例性设计及自动电路生成过程。
28.图18图解说明根据另一实施例的实例性设计及自动电路生成系统。
29.图19图解说明根据一实施例的用于不同功能电路组件的符号。
30.图20a图解说明根据一个实施例的实例性生成器软件系统2001。
31.图20b图解说明根据一实施例的生成电路规范的实例性方法。
32.图20c图解说明根据另一实施例的生成电路规范的方法。
33.图21a图解说明根据一个实施例的跨越一定范围的值生成电路组件的方法。
34.图21b图解说明根据另一实施例的跨越一定范围的值生成电路组件的方法。
35.图21c图解说明根据又一实施例的跨越一定范围的值生成电路组件的方法。
36.图22图解说明根据一实施例的用于自动生成电阻器的计算机实施的系统。
37.图23图解说明根据一实施例的生成电阻器的方法。
38.图24图解说明根据另一实施例的生成电阻器的方法。
39.图25a图解说明根据又一实施例的生成电阻器的方法。
40.图25b图解说明根据又一实施例的生成电阻器的方法。
41.图25c图解说明根据又一实施例的生成电阻器的方法。
42.图26图解说明根据一实施例的实例性电阻器示意图及布局。
43.图27a图解说明根据一实施例的针对与两个不同电路一起使用的两个电阻器值生成的实例性布局。
44.图27b图解说明根据一实施例的与同一电路一起使用的两个电阻器值。
45.图28图解说明根据一实施例的针对不同子电路配置的电阻器值生成的实例性布局。
46.图29图解说明根据一实施例的电阻器分段的实例性布局。
47.图30图解说明根据一实施例的电阻器分段的另一实例性布局。
48.图31图解说明根据一实施例传递电阻器属性。
49.图32图解说明根据另一实施例将电阻器属性传递到示意图。
50.图33图解说明根据一实施例的生成用户界面中所规定的电阻器。
51.图34图解说明根据一实施例的用户界面中所规定的电阻器的实例性布局。
52.图35图解说明根据一实施例基于用户界面中所规定的电路参数而生成电阻器。
53.图36图解说明根据一实施例的依据参数确定的电阻器的实例性布局。
54.图37a到c图解说明根据一实施例生成电阻分压器。
55.图38a图解说明根据另一实施例的生成包含子电路的电阻分压器的方法。
56.图38b图解说明具有不同开关配置的电阻分压器的各种实施例。
57.图39图解说明根据一实施例的用于自动生成电容器的计算机实施的系统。
58.图40a图解说明根据一实施例的生成电容器的方法。
59.图40b图解说明根据一实施例的用于确定电容器尺寸的一种实例性技术。
60.图41a到c图解说明根据一实施例的实例性电容器示意图生成。
61.图42图解说明根据各种实施例的实例性电容器布局。
62.图43图解说明根据一实施例生成用户界面中所规定的电容器。
63.图44进一步图解说明根据一实施例的依据参数确定的电容器的实例性布局。
64.图45图解说明根据一实施例的晶体管的自动生成。
65.图46图解说明根据一实施例的用于自动生成晶体管的流程图。
66.图47a到f图解说明根据各种实施例的通过不同参数而生成的实例性晶体管。
67.图48a图解说明根据一实施例的从另一参数值集合生成的另一实例性晶体管。
68.图48b图解说明根据又一实施例的从另一参数值集合生成的另一实例性晶体管。
69.图49a图解说明根据另一实施例的生成晶体管的实例性方法。
70.图49b图解说明根据一实施例的用于将导通电阻(ron)的规定值转换成栅极宽度的实例性方法。
71.图50图解说明根据一实施例生成具有复制装置5001的晶体管。
72.图51图解说明根据一实施例生成具有开尔文(kelvin)连接的晶体管。
73.图52a图解说明根据一实施例的自动生成晶体管的布局的实例。
74.图52b图解说明晶体管布局的纵横比可随着指状部数目增加而改变。
75.图53a到b图解说明根据一实施例的经配置以形成晶体管的晶体管装置单元布局实例的阵列。
76.图54图解说明根据一个实施例生成晶体管的布局。
77.图55图解说明根据一个实施例生成晶体管的布局。
78.图56a图解说明根据一实施例的自动放置布局实例以形成晶体管。
79.图56b图解说明根据一实施例的金属层3的垂直条带。
80.图57图解说明根据一实施例生成布局。
81.图58图解说明根据一实施例的包含自动布局生成器的实例性系统。
82.图59图解说明根据一实施例将电路示意图转换为布局实例及生成布局。
83.图60图解说明根据一实施例的布局脚本。
84.图61图解说明根据一实施例的布局放置指令的实例性放置操作。
85.图62图解说明根据另外的实施例的生成布局的另外的实例。
86.图63a图解说明根据各种实施例的可用于各种布局放置指令中的实例性步长类型。
87.图63b图解说明根据一实施例的用于一些布局放置指令中的另一参数。
88.图63c图解说明根据一实施例的用于一些布局放置指令中的另一参数。
89.图64图解说明根据各种实施例的用于一些布局放置指令中的另一参数。
90.图65图解说明根据一实施例的用于条件布局放置指令的过程。
91.图66图解说明根据一实施例的用于将晶体管并入到布局中的另一布局放置指令。
92.图67图解说明根据特定实施例的实例性计算机系统硬件。
93.图68图解说明可用于特定实施例中的各种计算机系统配置。
94.图69图解说明根据一实施例的制作电路的过程。
具体实施方式
95.本文中描述用于自动电路生成的技术。举例来说,本文中所描述的技术中的一些或所有技术可用于制作集成电路。在以下说明中,出于解释的目的,陈述众多实例及特定细节以便提供对本公开的透彻理解。然而,所属领域的技术人员将显而易见,如在权利要求书中所表达的本公开可单独地或以与下文所描述的其它特征组合的形式包含这些实例中的特征中的一些或所有特征,且可进一步包含本文中所描述的特征及概念的修改及等效内容。
96.在各种实施例及组合中,以下公开内容描述用于使用软件来自动生成电子电路的技术。下文所描述的一些实施例可响应于参数而生成电路示意图或电路布局或者此两者。参数可规定多种电路性质,且软件系统可(举例来说)基于参数针对宽广范围的电路而生成示意图或布局或者此两者。在本文中所描述的一些实施例中,设计界面可允许用户通过选择功能电路组件且规定参数而定义待生成的电路。在一些实施例中,设计界面可为电路的高级表示,例如行为层级表示,与定义例如晶体管层级示意图将需要的电路设计技术的知识或经验相比,所述行为层级表示可需要较少电路设计技术的知识或经验。因此,在一些实例性实施例中,具有少得多或极少电路设计知识或经验的用户可定义电路,且计算机软件可响应于技能欠佳或经验不足的用户的输入而生成示意图或布局或者此两者。另外,使用本文中所描述的自动电路设计技术,可显著减少电路示意图设计及布局开发循环时间(在使用传统方法时,其可为较长的)。本发明技术在模拟电路设计领域中是尤其有利的。下文公开多种创新以供用于本公开的各种实施例中。下文所公开的创新可单独地或以与此处根据各种实施例所描述的其它创新的各种组合形式来实施且用作(举例来说)用于制作集成电路的过程的部分。
97.参数化电路示意图生成
98.图1图解说明根据一个实施例的用于自动电路生成的系统。举例来说,本公开的特征及优点包含能够基于输入参数而自动生成电路示意图的系统,其中不同参数值可致使不同电路示意图自动生成。如图1中所图解说明,生成器软件系统102可接收参数104且产生电路示意图103。生成器软件系统102可在(举例来说)至少一个计算机系统上执行,且包括计算机代码,所述计算机代码在由一或多个计算机执行时致使所述计算机执行用于执行本文中所描述的技术的操作。举例来说,参数可在生成器102中以多种数据格式作为规定待生成的电路系统的信息而接收。
99.举例来说,参数104可包括对应于至少一个功能电路组件101的多个电路规范参数。举例来说,电路规范参数可规定待生成的电路的性质。举例来说,在一些实例性实施例中,电路规范参数可为具有特定值的变量。如下文更详细地图解说明,电路规范参数可规定
待生成的电路的电性质(例如,电压或电流)或可规定待生成的电路的物理性质(例如,输入是使用n型还是p型晶体管,或者电容器或电阻器的物理结构)。在一些实施例中,电路规范参数可对应于特定功能电路组件,例如功能电路组件101。在各种实施例中,举例来说,功能电路组件可为模拟功能电路组件。举例来说,一个电路规范参数集合可对应于一个功能电路组件(例如,比较器)且另一参数集合可对应于不同功能电路组件(例如,延迟电路或振荡器)。因此,比较器可具有与振荡器不同的参数集合,但在一些实施例中,针对不同功能电路组件的不同参数集合可具有相同个别参数中的一或多者(例如,规定输入级类型或供应电压值的参数)。可使用多种技术来实施参数104。在一些实施例中,举例来说,电路规范参数可作为文本而接收,所述文本规定变量名称及值。在其它实施例中,举例来说,电路规范参数可实施为代码(例如,数字代码值或宽广范围的其它编码技术),所述代码用于规定待生成的电路的性质以体现功能电路组件101。将理解,可使用多种编码技术来体现电路规范参数以规定待生成的电路的性质。
100.参数104由生成器102接收。生成器102可基于电路规范参数而选择(即,确定或以其它方式识别)多个子电路示意图110到112。举例来说,所接收电路规范参数的一个值集合(或代码)可致使选择子电路示意图110及子电路示意图111。举例来说,所接收电路规范参数的另一值集合(或另一编码)可致使选择子电路示意图110、子电路示意图111及子电路示意图112。一旦选择适当子电路示意图,便可将所识别子电路示意图组合以形成电路示意图103。因此,电路示意图103实施具有由参数103规定的性质的功能电路组件101。
101.尽管以下公开内容描述组合子电路示意图,但将理解,可在其它实施例中使用其它子电路模型。示意图通常是指描述用于电路中的组件(例如,晶体管、电阻器、电容器、电感器等等)的连接的模型。举例来说,本文中所描述的实施例可并不限于用于表示子电路及电路的特定建模技术。
102.本公开的实施例可尤其有利于生成模拟电路示意图。模拟电路与数字电路的不同之处在于数字电路使用具有基本上完全接通或完全关断的晶体管的简单逻辑电路来处理二进制电压(表示0及1),而模拟电路通常涉及具有可在完全接通与完全关断之间跨越某一范围(例如,跨越线性范围)操作的晶体管的电路系统。举例来说,模拟电路可取决于电路中的特定电压及电流来执行各种各样的操作,其中系统中的组件(例如,电容器、晶体管、电阻器、电感器)跨越电压或电流的范围而进行操作。模拟电路的子集是混合信号电路。混合信号电路是包含与模拟电路系统集成在一起并一起工作的某一数字电路系统的模拟电路。举例来说,混合信号电路将与并未与模拟电路系统集成在一起及/或基本上独立于模拟电路系统而执行功能的数字电路区分开。模拟电路设计(例如,模拟/混合信号电路设计)与数字电路设计之间的差异由所属领域的技术人员已知。
103.本公开的实施例可用于(举例来说)基于电路规范参数而自动生成模拟电路示意图及/或布局。如上文所提及,电路规范参数可对应于一或多个功能模拟电路组件,例如比较器、振荡器、延迟件等。举例来说,电路规范参数可规定待生成的模拟电路的性质,例如具有p型或n型输入的比较器。在一些实例性应用中,电路规范参数可用于选择对应于特定功能模拟电路组件的预定义模拟子电路示意图。举例来说,如下文在更详细实例中所图解说明,生成器101可基于一个参数集合而选择预定义p型比较器子电路示意图、第一预定义磁滞子电路示意图及预定义抗短时脉冲波形干扰(deglitch)子电路示意图以形成针对具有
一个性质集合的比较器功能电路组件的电路示意图,且举例来说,生成器101可使用另一参数集合来选择预定义n型比较器子电路示意图及另一预定义磁滞电路示意图以形成针对具有另一性质集合的比较器功能电路组件的电路示意图。
104.图2图解说明根据一个实施例的用于自动电路生成的方法。举例来说,所述方法可由在一或多个计算机上执行的软件执行。在201处,接收对应于至少一个功能电路组件的多个电路规范参数。举例来说,电路规范参数可以多种方式(例如呈文本或作为代码的变量及值)来表示。如上文所提及,所接收参数可包含与不同功能模拟电路组件相关联的一或多个参数集合(例如,对应于第一功能模拟电路组件的一个参数集合及对应于第二功能模拟电路组件的另一参数集合)。在202处,基于电路规范参数而选择特定子电路示意图。在一个实施例中,不同功能电路组件可具有预定义子电路示意图的不同集合。选择可包含基于电路规范参数而选择对应于功能电路组件的预定义子电路示意图的子集。举例来说,在对应于比较器功能电路组件的示意图集合中,比较器可具有n型比较器子电路示意图、p型比较器子电路示意图及各种其它子电路示意图。举例来说,可基于具有特定值的一或多个参数而选择p型子电路示意图,且可基于具有不同值的一或多个参数而选择n型子电路示意图。在203处,软件系统组合所选择子电路示意图以形成针对功能电路组件的电路示意图。子电路示意图可呈在示意图中具有多种输入及输出端子(或引脚)的功能组件层级电路块(或设计)的形式。因此,举例来说,组合可包含在子电路示意图之间将引脚耦合在一起及/或将子电路示意图的引脚耦合到其它电路示意图的其它引脚。下文更详细地图解说明在子电路示意图之间耦合引脚的实例。
105.图3a到d图解说明根据各种实施例的自动电路示意图生成的实例。如下文各种实例中所图解说明,电路规范参数集合的特定值可对应于特定功能电路组件的特定实例(例如,待生成的具有特定性质的比较器)。举例来说,可存在许多具有不同电路规范参数及从不同所选择子电路形成的对应不同电路示意图的相同功能电路组件。在特定实施例中,一个电路规范参数集合的不同值可生成针对一个对应功能电路组件具有不同电性质的不同模拟电路示意图。举例来说,对应于功能电路组件303的参数302可编码有不同值。在此实例中,将n个参数的集合(其中n是整数)图解说明为具有第一值集合[a1=x1、a2=x2、a3=x3、

、an=xn]的变量a1、a2、a3、

an。生成器软件301接收具有第一值集合的参数302且选择子电路示意图310到315的子集。根据所接收参数而将所选择子电路示意图组合以形成针对功能电路组件303的电路示意图。在此实例中,第一参数值集合致使子电路示意图310到312被选择且经组合以形成电路示意图303a。
[0106]
图3b图解说明具有第二值集合[a1=x1、a2=x2、a3=y3、

、an=xn]的参数302。此处,参数a3的值已从x3改变为y3。因此,所选择的子电路示意图改变。在此实例中,当a3=y3时,子电路示意图312不再被选择且不再与子电路示意图310及311一起包含于电路示意图303b中。
[0107]
图3c图解说明具有第三值集合[a1=y1、a2=x2、a3=x3、

、an=xn]的参数302。此处,参数a1的值已从x1改变为y1且参数a3=x3。因此,所选择的子电路示意图再次改变。在此实例中,当a1=y1时,不再选择子电路示意图310。而是,将子电路示意图313选择并与子电路示意图311及312一起包含于电路示意图303c中。
[0108]
图3d图解说明具有第四值集合[a1=y1、a2=y2、a3=x3、

、an=xn]的参数302。
此处,参数a1及a2分别具有值y1及y2致使子电路示意图314被选择并与子电路示意图311及312一起包含于电路示意图303c中。
[0109]
本公开的一些实施例的特征及优点可包含:接收对应于多个功能电路组件的电路规范参数及基于参数而自动生成实施每一功能电路组件的电路示意图。图4a到d图解说明根据一实施例的生成针对不同功能电路组件的不同电路示意图的不同参数集合(或编码)。参考图4a,在此实例中,生成器软件系统401接收对应于多个功能电路组件402到405(组件c1、c2、c3、c4等等直到cn,其中n是对应于不同功能电路组件的数目的整数)的参数。举例来说,c1到cn可为比较器、振荡器、延迟电路、电流生成器、电压参考或用于模拟电路中的各种各样的其它模拟功能电路组件。在此实例中,生成器401可接收n个电路规范参数集合,其中每一不同功能电路组件具有对应电路规范参数集合。特定来说,第一参数集合451c1_params对应于组件c1 402,第二参数集合452c2_params对应于组件c2 403,第三参数集合453c3_params对应于组件c3 404等等直到最后参数集合454cn_params对应于组件cn 405,其中n是表示功能电路组件的数目的整数,针对所述功能电路组件而生成对应电路示意图(举例来说)。每一参数集合451到454可通过具有不同参数值而规定待产生的电路示意图的性质。在此实例中,参数451具有此处表示为“c1_params_1”的第一值集合。类似地,参数452具有第一值集合“c2_params_1”,参数453具有第一值集合“c3_params_1”等等,针对参数454具有值“cn_params_1”。
[0110]
图4a到d展示实例,所述实例图解说明针对不同对应功能电路组件的不同电路规范参数可具有不同对应预定义子电路示意图集合。举例来说,预定义模拟子电路可存储于图4a中所展示的库460中。在此实例中,存在分别对应于不同功能电路组件402、403、404及405的多个子电路集合410、420、430及440。因此,举例来说,对应于功能电路组件402(c1)的c1_params 451可用于从包括模拟子电路示意图411到416的c1子电路集合(“c1_sc_set”)410选择子电路示意图。类似地,举例来说,对应于功能电路组件403(c2)的c2_params 452可用于从包括模拟子电路示意图421到427的c2子电路示意图集合(“c2_sc_set”)420选择子电路示意图。同样,对应于功能电路组件404(c3)的c3_params 453可用于从c3子电路示意图集合(“c3_sc_set”)430选择子电路示意图等等直到对应于功能电路组件405(cn)的cn_params 454可用于从cn子电路示意图集合(“cn_sc_set”)440(子电路未展示)选择子电路示意图。
[0111]
参数451到454可具有产生对应子电路的不同组合的不同值。在此实例中,每一参数集合451到454接收第一参数值集合(例如,此处利用“_1”、“_2”等来指定特定值)。举例来说,将电路规范参数451的第一值集合指定为c1_params_1,将电路规范参数452的第二值集合指定为c2_params_1等等。在此实例中,生成器401接收参数值c1_params_1且组合来自c1_sc_set 410的子电路示意图c1_sc1 411、c1_sc2 412与c1_sc3 413以产生对应于功能电路组件c1 402的模拟电路示意图406a。类似地,生成器401接收参数值c2_params_1且组合来自c2_sc_set 420的子电路示意图c2_sc1 421、c2_sc2 422、c2_sc3 423与c2_sc4 424以产生对应于功能电路组件c2 403的模拟电路示意图407a。同样,生成器401接收参数值c3_params_1且组合来自c3_sc_set 430的子电路示意图(未展示)以产生对应于功能电路组件c3 404的模拟电路示意图408a。模拟电路示意图408a包括来自c3_sc_set 430的第一子电路示意图子集(c3_sc subseta)431a。最后,生成器401接收参数值cn_params_1且组合
来自cn_sc_set 440的子电路示意图(未展示)以产生对应于功能电路组件cn 405的模拟电路示意图409a。模拟电路示意图409a包括来自cn_sc_set 440的第一子电路示意图子集(cn_sc subsetb)441a。
[0112]
图4b图解说明根据一实施例使用另一参数集合来生成另一电路。在此实例中,参数集合451到454接收不同参数值集合。举例来说,将电路规范参数451的新值集合指定为c1_params_2,将电路规范参数452的新值集合指定为c2_params_2等等。在此实例中,生成器401接收参数值c1_params_2且选择并组合来自c1_sc_set 410的子电路c1_sc4414、c1_sc2 412与c1_sc3 413以产生对应于功能电路组件c1 402的模拟电路示意图406b。类似地,生成器401接收参数值c2_params_2且选择并组合来自c2_sc_set 420的子电路c2_sc5 425、c2_sc6 426、c2_sc3 423与c2_sc4 424以产生对应于功能电路组件c2 403的模拟电路示意图407b。同样,生成器401接收参数值c3_params_2且选择并组合来自c3_sc_set 430的子电路(未展示)以产生对应于功能电路组件c3 404的模拟电路示意图408b。模拟电路示意图408b包括来自c3_sc_set 430的第二子电路示意图子集(c3_sc subseta’)431b。最后,生成器401接收参数值cn_params_2且选择并组合来自cn_sc_set 440的子电路(未展示)以产生对应于功能电路组件cn 405的模拟电路示意图409b。模拟电路示意图409b包括来自cn_sc_set 440的第二子电路示意图子集(cn_sc subsetb’)441b。
[0113]
图4c图解说明根据一实施例使用又一参数集合来生成又一电路。在此实例中,每一参数集合451到454接收第三参数值集合。举例来说,将电路规范参数451的新值集合指定为c1_params_3,将电路规范参数452的新值集合指定为c2_params_3等等。在此实例中,生成器401接收参数值c1_params_3且选择并组合来自c1_sc_set 410的子电路c1_sc4 414与c1_sc2 412以产生对应于功能电路组件c1 402的模拟电路示意图406c。类似地,生成器401接收参数值c2_params_3且选择并组合来自c2_sc_set 420的子电路c2_sc5 425、c2_sc6 426、c2_sc3 423与c2_sc7 427以产生对应于功能电路组件c2 403的模拟电路示意图407c。同样,生成器401接收参数值c3_params_3且选择并组合来自c3_sc_set 430的子电路(未展示)以产生对应于功能电路组件c3 404的模拟电路示意图408c。模拟电路示意图408c包括来自c3_sc_set 430的第三子电路示意图子集(c3_sc subseta”)431c。最后,生成器401接收参数值cn_params_3且选择并组合来自cn_sc_set 440的子电路(未展示)以产生对应于功能电路组件cn 405的模拟电路示意图409c。模拟电路示意图409c包括来自cn_sc_set 440的第三子电路示意图子集(cn_sc subsetb”)441c。
[0114]
图4d图解说明实施例,其中针对不同功能电路组件的不同子电路集合可包含相同子电路。举例来说,在一些实施例中,不同功能电路组件可具有对应唯一预定义子电路示意图集合。参考图4a,子电路集合c1_sc_set 410可为不同于c2_sc_set 420或c3_sc_set430的子电路示意图集合。特定来说,经组合以形成不同比较器的子电路可不同于(举例来说)经组合以形成不同振荡器或不同延迟电路的子电路。因此,每一功能电路组件可具有对应唯一子电路示意图集合。然而,在各种实施例中,即使集合可为唯一的,但一些集合中的一或多个子电路示意图可被共享。举例来说,针对比较器的子电路示意图集合可存取电阻分压器子电路,且电阻分压器子电路也可(举例来说)与针对振荡器的子电路集合相关联。因此,唯一集合可包含仅用于对应功能电路组件的一或多个唯一预定义模拟子电路示意图,或替代地,唯一集合可包含用于多个对应功能电路组件的一或多个预定义模拟子电路示意
图。此在图4d中图解说明,其中子电路示意图c1-2 sc 417包含于集合c1_sc_set 410及c2_sc_set 410中。因此,举例来说,分别针对组件c1及c2的参数451及452可生成均包含c1-2 sc 417的示意图406d及407d。
[0115]
图5图解说明根据一实施例的生成器的实例性功能块。如上文所描述,在特定实例性实施例中,生成器501可接收对应于不同类型的功能模拟电路组件(例如,c1、c2、c3、

、cn)的电路规范参数。举例来说,参数可使用预定义模拟子电路示意图来规定待生成的电路的性质。因此,当参数由生成器501接收时,参数可由确定功能性块502分析,所述确定功能性块确定参数对应于哪一功能组件。块502可接收参数集合,确定适当对应功能电路组件(此处,c1、c2、c3、

、cn;例如,比较器、振荡器、延迟件等),且存取多个不同规则集合510到511中的一者以进一步处理参数。如所描述且在下文另外的实例中的块502及规则集合块510到511可(举例来说)以软件代码实施,或(举例来说)作为软件代码与导入数据(例如,关于参数、不同规则、子电路、电路组合等的数据)的组合实施。
[0116]
在一些实施例中,举例来说,针对不同功能组件的多个电路示意图(例如示意图406a到406d、407a到407d、408a到408d及409a到409d中的一或多者)可以各种组合一起耦合成针对包括功能电路组件的多个参数化实例的电路的示意图。一个电路示意图可包括基于一个参数集合的针对功能电路组件c1 402的示意图(例如,电路示意图406d)、基于一个参数集合的针对功能电路组件c2 403的示意图(例如,电路示意图407c)、基于一个参数集合的针对功能电路组件c3 404的示意图(例如,电路示意图408d)及基于一个参数集合的针对功能电路组件cn 405的示意图(例如,电路示意图409b)。替代地,参数与功能电路组件的组合可生成电路示意图,所述电路示意图包括基于另一参数集合的针对功能电路组件c1 402的示意图(例如,电路示意图406b)、不包括针对功能电路组件c2 403的示意图(例如,不包含c2)、包括基于另一参数集合的针对功能电路组件c3 404的示意图(例如,电路示意图408c)且不包括针对功能电路组件cn 405的示意图(例如,也不包含cn)。举例来说,针对功能电路组件的不同例示的任何参数组合可用于与相同或不同功能电路组件中的一或多者的各种组合自动生成示意图。在一些实施例中,示意图可用于模拟耦合在一起的功能电路组件的整个芯片。示意图可任选地由电子设计自动化(eda)软件系统(例如晶体管示意图及布局编辑工具(例如,mentor 或))处理以产生布局、执行布局与示意图对照(“lvs”)及/或设计规则检查(“drc”),且可将示意图发送到制造设施(例如,半导体制作或“fab”)以(举例来说)产生具有所要性质的集成电路(例如,芯片)。通常,可由模拟电路设计专业人员花费大量时间及精力来设计针对模拟集成电路的示意图。有利地,使用本文中所描述的技术的系统及方法可非常快地且用比在使用传统技术来设计每一电路的情况下将需要的时间基本上少的时间生成针对电子电路(例如,完整芯片)的示意图。
[0117]
生成器501可分析参数以确定应使用的对应规则集合。举例来说,如果参数包含一或多个特定变量或值,那么一个规则集合可为适当的,但如果参数包含一或多个其它特定变量或值,那么另一规则集合可为适当的。在一些实施例中,参数可包含规定功能电路组件的信息。举例来说,由生成器501接收的参数可包含规定功能电路组件(例如,“比较器”、“振荡器”或“电压参考”)的文本或(举例来说)用于唯一地确定应用于对应功能电路组件的规则集合的一或多个标识符(id),例如一或多个代码。举例来说,在其它实施例中,参数集合
中的特定参数的存在可用于确定参数是针对哪些功能电路组件及将从哪一子电路集合进行选择。
[0118]
在此实例中,存在对应于n个不同功能电路组件类型的n个不同规则集合块510到511(其中n是整数,例如,3、4、5等)。对应于不同功能电路组件的参数可具有对应规则集合。举例来说,可使用第一规则集合来处理针对c1的参数451,可使用第二规则集合来处理针对c2的参数,可使用第三规则集合来处理针对c3的参数等等直到可使用第n规则集合来处理针对cn的参数。作为实例,不同规则集合可经配置以分析参数值,从适当子电路集合选择特定子电路(例如,针对每一功能电路组件),且执行一些或所有处理以用于组合子电路来形成针对对应功能电路组件的电路示意图(举例来说)。再次参考图5,c1_params_1调用一个规则集合以用于从集合410选择子电路411、412及413,所述子电路在组合时形成电路示意图406a。类似地,c2_params_1调用第二规则集合以用于从集合420选择子电路421、422、423及424,所述子电路在组合时形成电路示意图407a。同样,c3_params_1调用第三规则集合以用于从集合430选择subseta 431a中的子电路,所述子电路在组合时形成电路示意图408a。最后,cn_params_1调用又一规则集合以用于从集合440选择subsetb 441a中的子电路,所述子电路在组合时形成电路示意图409a。
[0119]
在生成器501的一个实例性实施例中,生成电路规范并将其提供到eda工具。举例来说,电路规范可规定子电路示意图及引脚连接以形成经组合电路。举例来说,电路规范可描述用于形成电路的子电路示意图以及(举例来说)各种子电路示意图节点之间的连接。在一些实例性实施例中,电路规范可包含针对将包含于电路中的特定子电路示意图的标识符(例如,单元名称或实例名称)。电路规范可进一步包含子电路示意图的引脚如何连接的说明(例如,下文所描述的引脚映图)。如下文更详细地描述,一个实例性电路规范是网表,例如verilog.v。eda工具可接收电路规范、基于电路规范而检索所规定子电路示意图,且生成包括所选择子电路示意图的晶体管层级电路示意图。
[0120]
图6a图解说明根据另一实施例的自动电路生成器的另一实例性框图。在此实例中,生成器601包含用以确定功能性610、应用规则612到613、检索子电路示意图614及连接子电路示意图615的程序代码。举例来说,当过程开始时,确定功能性块610可(举例来说)评估一或多个所接收参数集合且确定应用哪一规则集合(例如,比较器规则集合、振荡器规则集合或电压参考规则集合)。生成器601可调用适当规则集合612到613中的一者。在620处图解说明实例性规则集合。在此实例中,举例来说,规则集合620可包含用以检索参数值的(例如,代码的)子块621、用以基于参数值而确定子电路的子块622,及用以生成引脚映图的子块623。举例来说,生成引脚映图可包含从待组合的子电路检索引脚列表。在一个实施例中,引脚映图连接可体现在网表(例如,verilog“.v”文件)中。举例来说,另一块614可检索由块622确定的子电路示意图。块615可映射子电路的示意图引脚。在一个实施例中,举例来说,基于引脚映图而连接示意图引脚。举例来说,可使用多种技术将上文所描述块实施为软件代码。尽管此处出于说明性目的而将生成器601展示为一个块群组,但将理解,构成生成器601的块可(举例来说)使用不同语言、使用不同软件编码技术来实施且可实施为多个不同模块。在下文更详细地描述的一个实例性实施例中,生成器软件系统包括以c 实施的块及以脚本语言实施的其它块。
[0121]
图6b图解说明根据一实施例的自动生成电路的实例性过程。尽管以特定次序呈现
以下过程说明,但将理解,以下内容中的一或多者可以不同次序发生。在601处,针对待处理的参数确定待生成的电路的功能性。功能性可对应于特定功能电路组件,例如比较器、振荡器、电压参考、电流源或其它参数化模拟构建块。在此实例中,可使用标识符(例如功能电路组件名称(例如,“比较器”、“振荡器”、“延迟电路”等))来确定功能性。举例来说,生成器可检索功能电路组件名称,且然后基于名称而选择参数来检索。在602处,检索参数。在603处,举例来说,分析参数以确定将用于形成待生成的电路的子电路。在604处,生成将用于形成电路的子电路的引脚映图。举例来说,如下文更详细地描述,在一些情形中,子电路示意图引脚可映射在一起,且映射到待生成的电路的输入及输出。一些引脚可映射于不同子电路示意图之间,而其它引脚可映射到待生成的电路的输入或输出。举例来说,引脚映图可体现在如上文所描述的电路规范中,所述电路规范规定子电路示意图及引脚之间的映射。在605处,检索待组合的子电路示意图(例如,从已发布子电路的库)。在606处,举例来说,可基于引脚映图而连接子电路示意图引脚。在下文所描述的一个实例性实施例中,生成器软件组件可输出对引脚进行映射的网表(例如,呈verilog“.v”文件的形式)。举例来说,块614及615可实施为电子设计自动化(eda)系统(例如,)的脚本,所述eda系统可检索并组合子电路示意图,如在605及606处所图解说明。
[0122]
图7a到b图解说明根据一个实施例的映射引脚的实例。在此实例中,功能电路组件是比较器电路,且电路规范参数规定输入类型(例如,n型或p型输入级,“n/p-输入_类型”)、磁滞(例如,是或否,“hyst”)及抗短时脉冲波形干扰(例如,是或否)。在此实例中,比较器具有子电路示意图701到705的集合,可基于参数而选择所述子电路示意图以生成具有规定性质(例如,输入类型、磁滞或抗短时脉冲波形干扰)的比较器。举例来说,在此实例中,c1_sc1是n型输入级比较器子电路示意图701,c1_sc2是可与n型子电路示意图701一起操作的磁滞子电路示意图(nhyst)702,c1_sc3是抗短时脉冲波形干扰子电路示意图703,c1_sc4是p型输入级比较器子电路示意图704,且c1_sc5是可与p型子电路示意图704一起操作的磁滞子电路示意图(physt)705。举例来说,子电路示意图701到705中的每一者可包括用于实施特定子电路的功能性的晶体管层级示意图。
[0123]
根据本公开的一些实施例的子电路示意图可具有用于耦合进出每一子电路示意图的电压及电流的多个引脚(包含多个模拟引脚)。在一些实施例中,引脚可经映射使得子电路示意图中的引脚连接到其它子电路示意图的引脚或连接到经组合电路的引脚(例如,所得经组合电路的输入/输出引脚)。在一个实例性实施例中,映射不同子电路示意图的引脚可基于多个引脚映图,其中不同引脚映图规定多个子电路示意图的引脚及/或针对所选择子电路示意图的不同组合的电路示意图的i/o引脚之间的不同连接。举例来说,此些引脚映图可在电路生成器的代码中被定义或在外部(例如,在数据记录中)被定义并导入(例如,作为导入到eda工具中的电路规范的部分)。举例来说,特定映射可基于引脚映图中的一者。用于映射引脚的引脚映图可基于所选择的特定子电路示意图。举例来说,所选择子电路示意图的一个组合可具有一个引脚映图,且所选择子电路示意图的另一组合可具有另一引脚映图。举例来说,每一引脚映图可确保子电路示意图的每一唯一组合连接在一起,使得所得电路示意图视需要跨越所有参数值而进行工作。
[0124]
因此,举例来说,映射可包含规定子电路示意图的一或多个引脚之间的连接。在一些实施例中,映射可包含规定一或多个子电路示意图的一或多个引脚与电路示意图的输入
或输出(例如,由子电路示意图形成的电路示意图的符号的vdd、接地、vin、vout等)之间的连接。在一个实施例中,举例来说,软件可确定将用于形成特定电路的子电路示意图,且然后映射特定子电路示意图的组合所特有的引脚。
[0125]
再次参考图7a,在此实例中,n输入子电路示意图701包括引脚1到6,nhyst子电路示意图702包括引脚1到4,抗短时脉冲波形干扰子电路示意图703包括引脚1到4,p输入子电路示意图704包括引脚1到6,且physt子电路示意图705包括引脚1到4。这些引脚可映射在一起,如下文描述的实例中所图解说明。此实例性比较器仅是可使用本文中所描述的技术来生成的许多类型的功能电路组件的一个实例。举例来说,可使用本文中所描述的技术从参数生成其它功能电路组件(例如振荡器、延迟电路、电压参考、偏置电流等),且其它比较器可具有用于选择其它子电路的其它参数。因此,此实例仅是说明性的。
[0126]
如上文所提及,本公开的特征及优点可基于参数而选择特定子电路示意图并组合子电路示意图。在此实例中,组合子电路示意图包含映射子电路示意图的模拟引脚以形成针对至少一个功能电路组件(例如,比较器)的电路示意图。可通过软件系统而自动完成所述映射。
[0127]
电路示意图710图解说明基于一个参数值集合而生成的一个实例性电路示意图。此处,第一参数值集合(params_1)可为“输入类型=n”、“磁滞=是”且“抗短时脉冲波形干扰=是”。因此,n输入子电路示意图701、nhyst子电路示意图702及抗短时脉冲波形干扰子电路示意图703经选择且经组合以形成电路示意图710。针对此参数组合,映射引脚可包含以下各项:
[0128]
1.将子电路示意图701的引脚1映射到子电路示意图702的引脚1及子电路示意图703的引脚1(在此实例中,引脚1是每一子电路的供应电压输入)且将这些引脚映射到vdd输入引脚。
[0129]
2.将子电路示意图701的引脚2(例如,第一比较器输入引脚)映射到输入引脚in1。
[0130]
3.将子电路示意图701的引脚3(例如,第二比较器输入引脚)映射到输入引脚in2。
[0131]
4.将子电路示意图701的引脚4(例如,磁滞控制输入)映射到子电路702的引脚3(例如,磁滞控制输出)。
[0132]
5.将子电路示意图701的引脚5(例如,比较器输出)映射到子电路702的引脚2(例如,磁滞输入)且映射到子电路703的引脚2(例如,抗短时脉冲波形干扰输入)。
[0133]
6.将子电路示意图701的引脚6、子电路示意图702的引脚4及子电路示意图703的引脚3映射在一起且映射到接地(gnd)引脚。
[0134]
7.将子电路示意图703的引脚4映射到输出引脚(vout)。
[0135]
电路示意图711图解说明基于另一参数值集合而生成的另一实例性电路示意图。此处,第二参数值集合(params_2)可为“输入类型=n”、“磁滞=是”且“抗短时脉冲波形干扰=否”。因此,n输入子电路示意图701及nhyst子电路示意图702经选择(未选择抗短时脉冲波形干扰子电路示意图703)且经组合以形成电路示意图711。针对此参数组合,映射引脚可包含以下各项:
[0136]
1.将子电路示意图701的引脚1映射到子电路示意图702的引脚1(在此实例中,引脚1是每一子电路的供应电压输入)且将这些引脚映射到vdd输入引脚。
[0137]
2.将子电路示意图701的引脚2(例如,第一比较器输入引脚)映射到输入引脚in1。
[0138]
3.将子电路示意图701的引脚3(例如,第二比较器输入引脚)映射到输入引脚in2。
[0139]
4.将子电路示意图701的引脚4(例如,磁滞控制输入)映射到子电路702的引脚3(例如,磁滞控制输出)。
[0140]
5.将子电路示意图701的引脚5(例如,比较器输出)映射到子电路示意图702的引脚2(例如,磁滞输入)且映射到输出引脚vout。
[0141]
6.将子电路示意图701的引脚6及子电路示意图702的引脚4映射在一起且映射到接地(gnd)引脚。
[0142]
电路示意图712图解说明基于另一参数值集合而生成的另一实例性电路示意图。此处,第三参数值集合(params_3)可为“输入类型=p”、“磁滞=是”且“抗短时脉冲波形干扰=是”。因此,p输入子电路示意图704、physt子电路示意图705及抗短时脉冲波形干扰子电路示意图703经选择且经组合以形成电路示意图712。针对此参数组合,映射引脚可包含以下各项:
[0143]
1.将子电路示意图704的引脚1映射到子电路示意图705的引脚1及子电路示意图703的引脚1(在此实例中,引脚1是每一子电路的供应电压输入)且将这些引脚映射到vdd输入引脚。
[0144]
2.将子电路示意图704的引脚2(例如,第一比较器输入引脚)映射到输入引脚in1。
[0145]
3.将子电路示意图704的引脚3(例如,第二比较器输入引脚)映射到输入引脚in2。
[0146]
4.将子电路示意图704的引脚4(例如,磁滞控制输入)映射到子电路示意图705的引脚3(例如,磁滞控制输出)。
[0147]
5.将子电路示意图704的引脚5(例如,比较器输出)映射到子电路示意图705的引脚2(例如,磁滞输入)且映射到子电路示意图703的引脚2(例如,抗短时脉冲波形干扰输入)。
[0148]
6.将子电路示意图704的引脚6、子电路示意图705的引脚4及子电路示意图703的引脚3映射在一起且映射到接地(gnd)引脚。
[0149]
7.将子电路示意图703的引脚4映射到输出引脚(vout)。
[0150]
电路示意图713图解说明基于另一参数值集合而生成的另一实例性电路示意图。此处,第四参数值集合(params_4)可为“输入类型=p”、“磁滞=是”且“抗短时脉冲波形干扰=否”。因此,p输入子电路示意图704及physt子电路示意图705经选择(未选择抗短时脉冲波形干扰子电路示意图703)且经组合以形成电路示意图713。针对此参数组合,映射引脚可包含以下各项:
[0151]
1.将子电路示意图704的引脚1映射到子电路示意图705的引脚1(在此实例中,引脚1是每一子电路的供应电压输入)且将这些引脚映射到vdd输入引脚。
[0152]
2.将子电路示意图704的引脚2(例如,第一比较器输入引脚)映射到输入引脚in1。
[0153]
3.将子电路示意图704的引脚3(例如,第二比较器输入引脚)映射到输入引脚in2。
[0154]
4.将子电路示意图704的引脚4(例如,磁滞控制输入)映射到子电路示意图705的引脚3(例如,磁滞控制输出)。
[0155]
5.将子电路示意图704的引脚5(例如,比较器输出)映射到子电路示意图705的引脚2(例如,磁滞输入)且映射到输出引脚vout。
[0156]
6.将子电路示意图704的引脚6及子电路示意图705的引脚4映射在一起且映射到
接地(gnd)引脚。
[0157]
现在参考图7b,电路示意图714图解说明基于另一参数值集合而生成的另一实例性电路示意图。此处,第五参数值集合(params_5)可为“输入类型=n”、“磁滞=否”且“抗短时脉冲波形干扰=是”。因此,n输入子电路示意图701及抗短时脉冲波形干扰子电路示意图703经选择(未选择nhyst子电路示意图702)且经组合以形成电路示意图714。针对此参数组合,映射引脚可包含以下各项:
[0158]
1.将子电路示意图701的引脚1映射到子电路示意图703的引脚1(在此实例中,引脚1是每一子电路的供应电压输入)且将这些引脚映射到vdd输入引脚。
[0159]
2.将子电路示意图701的引脚2(例如,第一比较器输入引脚)映射到输入引脚in1。
[0160]
3.将子电路示意图701的引脚3(例如,第二比较器输入引脚)映射到输入引脚in2。
[0161]
4.子电路示意图701的引脚4(例如,磁滞控制输入)可为未连接的。
[0162]
5.将子电路示意图701的引脚5(例如,比较器输出)映射到子电路示意图703的引脚2(例如,抗短时脉冲波形干扰输入)。
[0163]
6.将子电路示意图701的引脚6及子电路示意图703的引脚3映射在一起且映射到接地(gnd)引脚。
[0164]
7.将子电路示意图703的引脚4映射到输出引脚vout。
[0165]
电路示意图715图解说明基于另一参数值集合而生成的另一实例性电路示意图。此处,第六参数值集合(params_6)可为“输入类型=p”、“磁滞=否”且“抗短时脉冲波形干扰=是”。因此,p输入子电路示意图704及抗短时脉冲波形干扰子电路示意图703经选择(未选择physt子电路示意图705)且经组合以形成电路示意图715。针对此参数组合,映射引脚可包含以下各项:
[0166]
1.将子电路示意图704的引脚1映射到子电路示意图703的引脚1(在此实例中,引脚1是每一子电路的供应电压输入)且将这些引脚映射到vdd输入引脚。
[0167]
2.将子电路示意图704的引脚2(例如,第一比较器输入引脚)映射到输入引脚in1。
[0168]
3.将子电路示意图704的引脚3(例如,第二比较器输入引脚)映射到输入引脚in2。
[0169]
4.子电路示意图704的引脚4(例如,磁滞控制输入)可为未连接的。
[0170]
5.将子电路示意图704的引脚5(例如,比较器输出)映射到子电路示意图703的引脚2(例如,抗短时脉冲波形干扰输入)。
[0171]
6.将子电路示意图704的引脚6及子电路示意图703的引脚3映射在一起且映射到接地(gnd)引脚。
[0172]
7.将子电路示意图703的引脚4映射到输出引脚vout。
[0173]
电路示意图716图解说明基于另一参数值集合而生成的另一实例性电路示意图。此处,第七参数值集合(params_7)可为“输入类型=n”、“磁滞=否”且“抗短时脉冲波形干扰=否”。因此,n输入子电路示意图701经选择(未选择nhyst子电路示意图702及抗短时脉冲波形干扰子电路示意图703)以形成电路示意图716。针对此参数组合,映射引脚可包含以下各项:
[0174]
1.将子电路示意图701的引脚1映射到vdd输入引脚。
[0175]
2.将子电路示意图701的引脚2(例如,第一比较器输入引脚)映射到输入引脚in1。
[0176]
3.将子电路示意图701的引脚3(例如,第二比较器输入引脚)映射到输入引脚in2。
[0177]
4.子电路示意图701的引脚4(例如,磁滞控制输入)可为未连接的。
[0178]
5.将子电路示意图701的引脚5(例如,比较器输出)映射到输出引脚vout。
[0179]
6.将子电路示意图701的引脚6映射到接地(gnd)引脚。
[0180]
电路示意图717图解说明基于另一参数值集合而生成的另一实例性电路示意图。此处,第八参数值集合(params_8)可为“输入类型=p”、“磁滞=否”且“抗短时脉冲波形干扰=否”。因此,p输入子电路示意图704经选择(未选择physt子电路示意图705及抗短时脉冲波形干扰子电路示意图703)以形成电路示意图717。针对此参数组合,映射引脚可包含以下各项:
[0181]
1.将子电路示意图704的引脚1映射到vdd输入引脚。
[0182]
2.将子电路示意图704的引脚2(例如,第一比较器输入引脚)映射到输入引脚in1。
[0183]
3.将子电路示意图704的引脚3(例如,第二比较器输入引脚)映射到输入引脚in2。
[0184]
4.子电路示意图704的引脚4(例如,磁滞控制输入)可为未连接的。
[0185]
5.将子电路示意图704的引脚5(例如,比较器输出)映射到输出引脚vout。
[0186]
6.将子电路示意图704的引脚6映射到接地(gnd)引脚。
[0187]
在一个实施例中,通过上文所描述的规则而执行映射的至少一部分。举例来说,与特定参数值/所选择子电路相关联的特定规则可确定针对所选择子电路示意图存在哪些引脚。
[0188]
有利地,经映射模拟引脚可具有预定兼容性。举例来说,由于子电路示意图是预定义的,因此不同子电路示意图(及可被连接的子电路示意图引脚)的可操作性可通过设计而具有预定兼容性。举例来说,在图7a到b中所展示的实例中,n输入比较器子电路示意图701可经设计以与n-磁滞子电路示意图702一起使用,且p输入比较器子电路示意图704可经设计以与p-磁滞子电路示意图705一起使用。抗短时脉冲波形干扰子电路示意图可经设计以与n型或p型示意图一起使用。因此,举例来说,子电路的引脚可经设计以自动耦合在一起,以形成如所设计而进行操作的不同电路。举例来说,一个子电路上的输入引脚可经设计以接收特定范围内的电压输入。举例来说,引脚可经设计以具有与另一引脚的预定兼容性,其中一个引脚生成具有特定电压或电流特性的信号且另一引脚经设计以接收并处理所述信号。举例来说,各种引脚可经设计以在经组合电路的操作期间接收跨越特定预定范围的电压或电流(或者此两者)。
[0189]
尽管以上实例图解说明特定预定义模拟子电路示意图,但将理解,可使用各种各样的预定义子电路示意图。在各种实施例中,预定义子电路示意图可包括少到一个组件或许多组件。举例来说,子电路示意图可包括一或多个有源组件(例如,晶体管)或者一或多个无源组件(例如,电阻器、电容器或电感器)。举例来说,根据各种实施例的子电路示意图可包含配置为差分对的两个晶体管、配置为负载的晶体管及/或电阻器、配置为电流镜的晶体管、多种完整或部分叠接结构、各种形式的延迟级、修整电路或(举例来说)甚至单个组件。根据其它实施例的子电路示意图可包含大量组件。较复杂子电路示意图的实例包含能带隙级、比较器或放大器的输入级、调节级或用以执行其它模拟/混合信号功能的其它较复杂组件组合。另外,举例来说,模拟子电路示意图可包括数字电路,包含用以从并入于混合信号电路中的数字电路系统接收数字信号输入或将信号输出提供到数字电路系统的反相器、寄存器、锁存器及多种逻辑门(例如,and、or、nand、nor、xor)。有利地,不同子电路示意图可经
组合以形成具有不同操作功能的不同功能电路(例如,具有或不具有抗短时脉冲波形干扰、修整、磁滞等的比较器)。举例来说,电路设计者可设计各种子电路示意图且确保互操作性以满足一定范围的不同操作功能。软件可然后存取预定义子电路示意图且基于电路规范参数(例如,来自用户)而自动生成模拟电路。在一些实施例中,针对一或多个功能电路组件的子电路示意图可经组合且与针对另一功能电路组件的子电路示意图包含在一起(例如,电压缓冲器功能电路组件可用作针对另一功能电路组件的电路系统中的子电路)。因此,可将各种各样的模拟/混合信号集成电路架构分解成子电路示意图且使用本文中所描述的技术来即时重新组合以自动生成模拟电路系统。各种子电路示意图的特定粒度及组合可为设计选择问题,如模拟电路设计领域的技术人员鉴于本公开将理解。
[0190]
参数化电路布局生成
[0191]
图8图解说明根据另一实施例的用于自动电路生成的系统。本公开的特征及优点包含能够基于输入参数(举例来说,其中不同值可产生不同布局)而自动生成电路布局的系统。如图8中所图解说明,生成器软件系统803可接收参数802且产生电路布局804。生成器软件系统803可在(举例来说)至少一个计算机系统上执行,且包括计算机代码,所述计算机代码在由计算机执行时致使所述计算机执行用于执行本文中所描述的技术的操作。
[0192]
举例来说,参数802包括对应于至少一个功能电路组件801的多个电路规范参数,基本上类似于上文所描述的电路规范参数。举例来说,电路规范参数可规定待生成的电路布局的性质,且(举例来说)可对应于特定功能电路组件(例如,具有特定性质的比较器、具有特定性质的振荡器、具有特定性质的延迟电路等)。可使用参数来基于参数值而生成针对具有不同性质的特定功能电路组件的电路布局(例如,针对具有p型输入级的比较器的布局或针对具有n型输入级的比较器的布局等)。另外,在一个实例性实施例中,一个电路规范参数集合可对应于一个功能电路组件(例如,比较器)且另一参数集合可对应于不同功能电路组件(例如,延迟电路或振荡器)。将理解,可使用多种编码机制来体现电路规范参数以规定待生成的电路的性质。
[0193]
在此实例性实施例中,参数802由生成器803接收。生成器803可基于电路规范参数而使用多个子电路布局810到812来生成电路布局804。举例来说,所接收电路规范参数的一个值集合(或编码)可致使使用子电路布局810及子电路布局811。举例来说,所接收电路规范参数的另一值集合(或另一编码)可致使使用子电路布局810、子电路布局811及布局812。适当子电路布局可经组合以形成电路布局804。因此,电路布局804是针对具有由参数802规定的性质的功能电路组件801的电路布局。布局804继而可用于制造功能电路组件801的物理电路。
[0194]
本公开的实施例可尤其有利于生成模拟电路布局。举例来说,本公开的实施例可用于基于参数而自动生成模拟电路布局。电路规范参数可对应于一或多个功能模拟电路组件,例如比较器、振荡器、延迟件等。举例来说,电路规范参数可规定待生成的模拟电路的性质,例如具有p型或n型输入的比较器。电路规范参数可用于确定对应于功能模拟电路组件的预定义模拟子电路布局。举例来说,如下文在更详细实例中所图解说明,生成器803可使用一个参数集合基于参数而选择预定义p型比较器子电路布局、第一预定义磁滞电路布局及/或预定义抗短时脉冲波形干扰电路布局以形成针对比较器功能电路组件的布局,且生成器803可使用另一参数集合选择预定义n型比较器子电路布局及预定义抗短时脉冲波形
干扰电路布局。使用电路规范参数所识别的预定义模拟子电路布局的子集可经组合以形成针对功能模拟电路组件801的模拟电路布局。
[0195]
图9图解说明根据一个实施例的用于自动电路生成的方法。举例来说,所述方法可由在一或多个计算机上执行的软件执行。在901处,接收对应于至少一个(或多个)功能电路组件的多个电路规范参数。在902处,基于电路规范参数而组合特定子电路布局以形成针对功能电路组件的电路布局。在一个实施例中,每一功能电路组件可具有不同预定义子电路布局集合,且基于电路规范参数而组合对应于功能电路组件的预定义子电路布局的子集。举例来说,比较器可在对应于所述比较器的布局集合中具有n型比较器子电路布局及p型比较器子电路布局。举例来说,可基于具有特定值的一或多个参数而使用p型子电路布局,且可基于具有不同值的一或多个参数而使用n型子电路布局。子电路布局可呈功能电路块的形式,所述功能电路块在布局中具有多种输入及输出端子(或引脚)。因此,组合可(举例来说)包含在子电路布局之间将引脚耦合在一起及/或将子电路布局的引脚耦合到其它电路布局的其它引脚。
[0196]
图10a到d图解说明根据各种实施例的自动电路布局生成的实例。在特定实施例中,电路规范参数的不同值生成针对对应功能电路组件的具有不同性质的不同模拟电路布局。举例来说,对应于功能电路组件1001的参数1002可编码有不同值。在此实例中,将n个参数的集合(其中n是整数)图解说明为具有第一值集合[a1=x1、a2=x2、a3=x3、

、an=xn]的变量a1、a2、a3、

an。生成器软件1003接收具有第一值集合的参数1002且使用子电路布局1010到1015的子集。根据所接收参数而将子电路布局组合以形成针对功能电路组件1001的电路布局1004a。在此实例中,第一参数值集合致使子电路布局1010到1012经组合以形成电路1004a。
[0197]
图10b图解说明具有第二值集合[a1=x1、a2=x2、a3=y3、

、an=xn]的参数1002。此处,参数a3的值已从x3改变为y3。因此,不同子电路布局经组合以形成电路布局1004b。在此实例中,当a3=y3时,子电路布局1012不再与子电路布局1010及1011一起包含于电路布局1004b中。
[0198]
图10c图解说明具有第三值集合[a1=y1、a2=x2、a3=x3、

、an=xn]的参数1002。此处,参数a1的值已从x1改变为y1且参数a3=x3。因此,所使用的子电路再次改变。在此实例中,当a1=y1时,不再使用子电路布局1010。而是,子电路布局1013与子电路布局1011及1012一起包含于电路布局1004c中。
[0199]
图10d图解说明具有第三值集合[a1=y1、a2=y2、a3=x3、

、an=xn]的参数1002。此处,参数a1及a2分别具有值y1及y2致使子电路布局1014与子电路布局1011及1012一起包含于电路布局1004d中。
[0200]
本公开的一些实施例的特征及优点可包含:接收对应于多个功能电路组件的电路规范参数及基于参数而自动生成实施每一功能电路组件的电路布局。图11a到d展示根据一实施例的生成针对不同功能电路组件的不同电路布局的不同参数集合。参考图11a,在此实例中,生成器软件系统1101接收对应于多个功能电路组件1102到1105(组件c1、c2、c3、c4等等直到cn,其中n是对应于功能电路组件的数目的整数,针对所述功能电路组件而生成对应电路)的参数。举例来说,c1到cn可为比较器、振荡器、延迟电路、电流生成器、电压参考或用于模拟电路中的各种各样的其它模拟功能电路组件。在此实例中,生成器1101可接收n个电
路规范参数集合,其中每一不同功能电路组件具有对应电路规范参数集合。特定来说,第一参数集合1151c1_params对应于组件c1 1102、第二参数集合1152c2_params对应于组件c2 1103、第三参数集合1153c3_params对应于组件c3 1104等等直到最后参数集合1154cn_params对应于组件cn 1105(举例来说)。举例来说,每一参数集合1151到1154可通过具有不同参数值而规定待产生的电路的性质。在此实例中,参数1151具有此处表示为“c1_params_1”的第一值集合。类似地,参数1152具有第一值集合“c2_params_1”、参数1153具有第一值集合“c3_params_1”等等,针对参数1154具有值“c4_params_1”。
[0201]
图11a到d图解说明根据另外的实施例的自动电路布局生成的实例。图11a到11d展示实例,所述实例图解说明针对不同对应功能电路组件的不同电路规范参数可具有不同对应预定义子电路布局集合。举例来说,参考图11a,预定义模拟子电路布局可存储于库1160(例如,布局库)中。在此实例中,存在分别对应于不同功能电路组件1102、1103、1104及1105的多个子电路布局集合1110、1120、1130及1140。因此,举例来说,对应于功能电路组件1102(c1)的c1_params 1151可用于组合来自包括模拟子电路布局1111到1116的c1子电路布局集合(“c1_lo_set”)1110的子电路布局。类似地,举例来说,对应于功能电路组件1103(c2)的c2_params 1152可用于组合来自包括模拟子电路布局1121到1127的c2子电路布局集合(“c2_lo_set”)1120的子电路布局。同样,举例来说,对应于功能电路组件1104(c3)的c3_params 1153可用于组合来自c3子电路布局集合(“c3_lo_set”)1130的子电路布局(子电路布局未展示)等等直到对应于功能电路组件1105(cn)的cn_params 1154,其可用于组合来自cn子电路布局集合(“cn_lo_set”)1140的子电路布局(子电路布局未展示)。
[0202]
参数1151到1154可具有产生对应子电路布局的不同组合的不同值。在此实例中,每一参数集合1151到1154接收第一参数值集合(例如,此处利用“_1”、“_2”等来指定特定值)。举例来说,将电路规范参数1151的第一值集合指定为c1_params_1,将电路规范参数1152的第二值集合指定为c2_params_1等等。在此实例中,生成器1101接收参数值c1_params_1且组合来自c1_lo_set 1110的子电路布局c1_lo1 1111、c1_lo2 1112及c1_lo3 1113以产生对应于功能电路组件c1 1102的模拟电路布局1106a。类似地,生成器1101接收参数值c2_params_1且组合来自c2_lo_set 1120的子电路c2_lo1 1121、c2_lo2 1122、c2_lo3 1123及c2_lo4 1124以产生对应于功能电路组件c2 1103的模拟电路布局1107a。同样,生成器1101接收参数值c3_params_1且组合来自c3_lo_set 1130的子电路布局(未展示)以产生对应于功能电路组件c3 1104的模拟电路布局1108a。模拟电路布局1108a包括来自c3_lo_set 1130的第一子电路布局子集(c3_lo subseta)1131a。最后,生成器1101接收参数值cn_params_1且组合来自cn_lo_set 1140的子电路布局(未展示)以产生对应于功能电路组件cn 1105的模拟电路布局1109a。模拟电路布局1109a包括来自cn_lo_set 1140的第一子电路布局子集(cn_lo subsetb)1141a。在一些实施例中,举例来说,针对不同功能组件的多个电路布局(例如布局1106a、1107a、1108a及1109a中的一或多者)可一起耦合成针对包括功能组件的多个参数化实例的电路的布局。
[0203]
图11b图解说明根据一实施例使用另一参数集合来生成另一电路布局。在此实例中,每一参数集合1151到1154接收不同参数值集合。举例来说,将电路规范参数1151的新值集合指定为c1_params_2,将电路规范参数1152的新值集合指定为c2_params_2等等。在此实例中,举例来说,生成器1101接收参数值c1_params_2且组合来自c1_lo_set 1110的子电
路布局c1_lo4 1114、c1_lo2 1112及c1_lo3 1113以产生对应于功能电路组件c11102的模拟电路布局1106b,所述模拟电路布局具有与布局1106a不同的性质。类似地,举例来说,生成器1101接收参数值c2_params_2且组合来自c2_lo_set 1120的子电路布局c2_lo5 1125、c2_lo6 1126、c2_lo3 1123及c2_lo4 1124以产生对应于功能电路组件c2 1103的模拟电路布局1107b,所述模拟电路布局具有与布局1107a不同的性质。同样,举例来说,生成器1101接收参数值c3_params_2且组合来自c3_lo_set 1130的子电路布局(未展示)以产生对应于功能电路组件c3 1104的模拟电路布局1108b,所述模拟电路布局具有与布局1108a不同的性质。模拟电路布局1108b包括来自c3_lo_set 1130的第二子电路布局子集(c3_lo subseta’)1131b。最后,举例来说,生成器1101接收参数值cn_params_2且组合来自cn_lo_set 1140的子电路布局(未展示)以产生对应于功能电路组件cn 1105的模拟电路布局1109b,所述模拟电路布局具有与布局1109a不同的性质。模拟电路布局1109b包括来自cn_lo_set 1140的第二子电路布局子集(cn_lo subsetb’)1141b。
[0204]
图11c图解说明根据一实施例使用又一参数集合来生成又一电路布局。在此实例中,每一参数集合1151到1154接收第三参数值集合。举例来说,将电路规范参数1151的新值集合指定为c1_params_3,将电路规范参数1152的新值集合指定为c2_params_3等等。在此实例中,举例来说,生成器1101接收参数值c1_params_3且组合来自c1_lo_set 1110的子电路布局c1_lo4 1114及c1_lo2 1112以产生对应于功能电路组件c1 1102的模拟电路布局1106c,所述模拟电路布局具有与布局1106a及1106b不同的性质。类似地,生成器1101接收参数值c2_params_3且组合来自c2_lo_set 1120的子电路布局c2_lo51125、c2_lo6 1126、c2_lo3 1123及c2_lo7 1127以产生对应于功能电路组件c2 1103的模拟电路布局1107c。同样,举例来说,生成器1101接收参数值c3_params_3且组合来自c3_lo_set 1130的预定义子电路布局(未展示)以产生对应于功能电路组件c3 1104的模拟电路布局1108c,所述模拟电路布局具有与布局1108a及1108b不同的性质。模拟电路布局1108c包括来自c3_lo_set 1130的第三子电路布局子集(c3_lo subseta”)1131c。最后,举例来说,生成器1101接收参数值cn_params_3且组合来自cn_lo_set1140的子电路布局(未展示)以产生对应于功能电路组件cn 1105的模拟电路布局1109c,所述模拟电路布局具有与布局1109a及1109b不同的性质。模拟电路布局1109c包括来自cn_lo_set 1140的第三子电路布局子集(cn_lo subsetb”)1141c。
[0205]
图11d图解说明实施例,其中针对不同功能电路组件的不同子电路布局集合可包含相同子电路布局。举例来说,在一些实施例中,不同功能电路组件可具有对应唯一预定义子电路布局集合。参考图11a,子电路布局集合c1_lo_set 1110可为不同于c2_lo_set1120或c3_lo_set 1130的子电路布局集合。特定来说,经组合以形成不同比较器的子电路布局可不同于(举例来说)经组合以形成不同振荡器或不同延迟电路的子电路布局。因此,每一功能电路组件可具有对应唯一子电路布局集合。然而,在各种实施例中,即使集合是唯一的,但一些集合中的一或多个子电路布局可被共享。举例来说,针对比较器的子电路布局集合可存取电阻分压器子电路布局,且电阻分压器子电路布局也可(举例来说)与针对振荡器的子电路布局集合相关联。因此,唯一布局集合可包含仅用于对应功能电路组件的一或多个唯一预定义模拟子电路布局,或替代地,唯一布局集合可包含用于多个不同功能电路组件的一或多个预定义模拟子电路布局。在此实例中,子电路布局c1-2_lo 1117包含于c1_
lo_set 1110及c2_lo_set 1120两者中。此外,在此实例中,举例来说,c1_params_1组合c1-2_lo 1117与其它布局1111到1113以形成布局1106d,且c2_params_1组合c1-2_lo 1117与其它布局1121到1124以形成布局1107d。
[0206]
在一些实施例中,举例来说,针对不同功能组件的多个电路布局(例如布局1106a到1106d、1107a到1107d、1108a到1108d及1109a到1109d中的一或多者)可以各种组合一起耦合成针对包括功能组件的多个参数化实例的电路的布局。一个电路布局可包括基于一个参数集合的针对功能电路组件c1 1102的布局(例如,电路布局1106d)、基于一个参数集合的针对功能电路组件c2 1103的布局(例如,电路布局1107c)、基于一个参数集合的针对功能电路组件c3 1104的布局(例如,电路布局1108d)及基于一个参数集合的针对功能电路组件cn 1105的布局(例如,电路布局1109b)。替代地,参数与功能电路组件的组合可生成基于另一参数集合的针对功能电路组件c1 1102的布局(例如,电路布局1106b)、不生成针对功能电路组件c2 1103的布局(例如,不包含c2)、生成基于另一参数集合的针对功能电路组件c3 1104的布局(例如,电路布局1108c)且不生成针对功能电路组件cn 1105的布局(例如,也不包含cn)。举例来说,针对不同功能电路组件的任何参数组合可用于与相同或不同功能电路组件中的一或多者的各种组合自动生成布局。在一些实施例中,布局可用于产生耦合在一起的功能电路组件的整个芯片。举例来说,布局可任选地由eda软件工具中的布局编辑工具(例如,使用例如、mentor或的工具的自动布线特征)进一步处理、执行布局与示意图对照(“lvs”)(例如,当也生成示意图时)及/或设计规则检查(“drc”),且可将布局发送到制造设施(例如,半导体制作或“fab”)以(举例来说)产生具有所要性质的集成电路(例如,芯片)。通常,可由模拟电路设计及布局专业人员花费大量时间及精力来设计针对模拟集成电路的布局。有利地,使用本文中所描述的技术的系统及方法可非常快地且用比在使用传统技术来设计每一电路的情况下将需要的时间基本上少的时间生成针对电子电路(例如,完整芯片)的示意图或布局或者此两者。
[0207]
图12a图解说明根据一个实施例的生成电路布局的实例。在一些实施例中,组合预定义子电路布局可基于用以布置子电路布局以形成电路布局的多个布局放置指令。在此实例中,生成器1200包含布置子电路布局c1_lo1 1111、c1_lo2 1112及c1_lo3 1113的布局放置指令1210。举例来说,每一子电路布局可具有几何形状(例如正方形或矩形),所述几何形状具有高度h及宽度w。更具体来说,在此实例中,c1_lo1 1111具有高度h1及宽度w1,c1_lo2 1112具有高度h2及宽度w2,且c1_lo3 1113具有高度h3及宽度w3。举例来说,不同子电路布局的各种高度及宽度可为相同的,但通常是不同的。在其它实施例中,子电路布局可具有各种各样的其它形状(例如,在形状内具有更多侧面或甚至开放区域以用于放置其它子电路布局)。将理解,此处出于说明性目的而展示简单几何形状。举例来说,放置指令1210可布置子电路布局1111、1112及1113以产生经组合电路布局1250。在一些实例中,布局放置指令1210中的一或多者根据x、y坐标系统而布置子电路布局1111到1113。在此实例中,布局放置指令1210可规定用于布置子电路布局的坐标。仅作为一个实例,放置指令1210可将c1_lo1 1111的左下角放置于(0,0)坐标处,将c1_lo3 1113的左下角放置于(x1=w1,0)处,且将c1_lo2 1112的左下角放置于(0,y2=h3)处。举例来说,经组合子电路布局1111到1113形成电路布局1250,所述电路布局可为用以形成对应于图11a中的功能电路组件c1 1101的电路布局1106a的一个实例性布局放置。电路布局1250可包含介于c1_lo3的高度y2=h3与c1_lo1
的高度y1=h1之间的未使用空间(也称作“空白空间”或“死空间”)1201。举例来说,另一未使用空间可存在于在x2=(w1 w3)处的c1_lo3的右边缘与在x3=w2处的c1_lo2的边缘之间的1202处。一般期望减少集成电路上的未使用空间量。根据各种实施例的放置指令可优化子电路布局的组合以减少未使用空间,如下文实例中所图解说明。
[0208]
图12b图解说明根据一个实施例的生成电路布局的另一实例。在此实例中,布局放置指令1211经执行以组合具有高度h1及宽度w1的子电路布局c2_lo1 1121、具有高度h2及宽度w2的c2_lo2 1122、具有高度h3及宽度w3的c2_lo3 1123以及具有高度h4及宽度w4的c2_lo4 1124。在此情形中,将c2_lo3的左下角布置于(0,0)处,将c2_lo4的左下角布置于(x1=w3,0)处,将c2_lo2的左下角布置于(x1=w3,y1=h4)处,且将c2_lo1的左下角布置于(x1=h3,0)处。所得未使用空间展示于1203处。经组合子电路布局1121到1124形成电路布局1251,所述电路布局是用以形成对应于图11a中的功能电路组件c2 1103的电路布局1107a的一个实例性布局放置。
[0209]
本公开的实施例可布置子电路布局且使用金属化层以及所属领域的技术人员已知的布线技术及工具将子电路布局的节点(或垫)连接在一起。在一个实施例中,举例来说,一个子电路布局的引脚之间的连接可由(例如,金属层或多晶硅层的)预定义布局形成且如本文中所描述而经布置以连接两个子电路布局的引脚。举例来说,可使用相同技术来连接经组合电路布局的引脚,使得减少或消除自动布线工具的使用。图12b图解说明经布置以连接c2_lo3 1123及c2_lo1 1121上的引脚的实例性预定义金属布局1125。
[0210]
将理解,可使用上文所描述技术来生成以多种组合的参数化功能电路组件的任何数目个实例,以形成电路布局。举例来说,图13a图解说明实例性电路布局,所述实例性电路布局从不同参数(例如,c1_params_2)以及针对c1_lo4、c1_lo2及c1_lo3的放置指令1301生成以形成对应于图11b的功能电路组件c1的实例性电路布局1106b。类似地,图13b图解说明参数值与放置指令的另一实例性组合。当参数值再次改变(例如,c1_params_3)时,所得子电路布局1114及1112以及针对c1_lo4及c1_lo2的放置指令1302形成对应于图11c的功能电路组件c1的实例性电路布局1106c。
[0211]
在一个实例性实施例中,可从与不同对应布局放置指令相关联的不同子电路布局集合形成不同电路布局。举例来说,在一个实施例中,当组合子电路布局1111、1112及1113时,使用与子电路布局1111、1112及1113相关联的布局放置指令的特定集合(例如,放置指令1210)来布置子电路布局,如图12a中所图解说明。相反地,当组合子电路布局1121、1122、1123及1124时,使用与子电路布局1121、1122、1123及1124相关联的布局放置指令的另一特定集合(例如,放置指令1211)来布置子电路布局,如图12b中所图解说明。同样,当组合子电路布局1114、1112及1113时,如图13a中所图解说明,使用与子电路布局1111、1112及1113相关联的又一特定布局放置指令集合(例如,放置指令1301)来布置子电路布局。图13b图解说明用于又一参数值集合的与子电路布局c1_lo4 1114及c1_lo2 1112相关联的布局放置指令1302的另一集合。当组合子电路布局1114及1112时,如图13b中所图解说明,使用与子电路布局1114及1112相关联的布局放置指令1302来布置子电路布局。
[0212]
在一些实施例中,可预定义与子电路布局的特定组合相关联的多个布局放置指令。当执行布局放置指令时,将相关联子电路布局布置成经组合电路布局。如下文在实例中所图解说明,举例来说,布局放置指令可对特定子电路布局进行操作以依序定位(或重新定
位)每一子电路布局来形成经组合电路布局。
[0213]
图14图解说明根据一实施例的使用布局放置指令来生成电路布局的另一实例。举例来说,本公开的特征及优点可包含对子电路布局进行旋转的多个布局放置指令。举例来说,在此实例中,图12a中的布局放置指令进一步包含c1_lo3 1113的旋转,如在1113’处所展示。举例来说,通过旋转c1_lo3,可使c1_lo2沿y轴向下更接近于c1_lo1,借此减少未使用空间及整个电路布局面积两者。
[0214]
图15图解说明根据一实施例的使用布局放置指令来生成电路布局的另一实例。在此实例中,生成器软件系统1500可包含从外部数据记录存取放置数据的布局放置指令。举例来说,可在外部数据记录中定义用以布置子电路布局的宽广范围的放置数据。举例来说,外部数据记录可为依序规定特定子电路布局及对应坐标或旋转或者用于布置每一布局的其它放置信息的外部数据文件。在一个实施例中,布局放置指令包括可执行指令,所述可执行指令(举例来说)存取规定子电路布局的布置的数据。在一个实施例中,外部数据记录包含用于布置子电路布局的特定组合的放置数据。举例来说,如果将布置布局a、b及c,那么可存取用于布置布局a、b及c的外部数据记录。替代地,如果将布置布局a、d及e,那么可存取用于布置布局a、d及e的另一外部数据记录。
[0215]
在一个实例性实施例中,在外部数据记录中预定义布局放置指令。在此实例中,外部数据记录可包括一系列布局及将对布局执行的相关联放置指令。此外部数据记录的一个实例是如下:
[0216]
//begin arrangement of lo1,lo2,and lo3
[0217]
place《path》lo1 0 0
[0218]
place《path》lo2 2.2 0 r90
[0219]
place《path》lo3 6.1 0
[0220]
//end
[0221]
以上外部定义的布局放置指令具有以下形式:《cmd》《library/location》《sub-circuit_layout_name="cell_name"》x1 y1 r1,其中《cmd》是布局放置指令(例如,“place”),《library/location》是存储布局的路径,《sub-circuit_layout_name="cell_name"》是将对其进行操作的布局的名称(例如,目录中的文件名称),x1是x坐标,y1是y坐标,且r1是旋转。举例来说,可将以上数据记录读取到生成器软件1500中且用于定义布局放置指令的执行。在此实例中,举例来说,生成器1500接收数据记录且将lo1 1501布置于(0,0)坐标处,然后将lo2 1502在进行90度旋转的情况下布置于(2.2,0)坐标处,且然后将lo3布置于(6.1,0)坐标处,从而形成布局l0-n1504。
[0222]
在一些实施例中,生成器软件1500可包括用于执行本文中所描述的技术的可执行脚本。在下文所描述的一个实施例中,举例来说,脚本可由eda软件(例如,mentor 或)执行,以(举例来说)存取预定义子电路布局且根据预定义放置指令而布置所述预定义子电路布局。
[0223]
设计界面
[0224]
举例来说,一些实施例的额外特征及优点包含允许用户以软件来创建电路设计且产生示意图及/或布局的设计界面。图16图解说明包含此设计界面的实例的另一实例性实施例。在此实例中,设计界面1601可用于规定一或多个功能电路组件c1到cn。在各种实例性
实施例中,设计界面可为图形用户界面(ui)、数据表单(例如,基于文本的)、自然语言界面(例如,接收口说输入),或用以从另一机器接收指令的机器对机器界面。在此实例中,用户可将功能电路组件c1到cn中的任一者从托盘(pallet)1651拖放(或以其它方式选择)到画布(canvas)1652且将组件连接在一起以创建电路。在此实例中,功能电路组件c1、c2、c3及c4已耦合在一起以形成电路。用户可然后通过设定与不同功能电路组件相关联的参数而配置功能电路组件。在1650处展示针对功能电路组件ci(其中i=1到n)的实例性参数集合1654。在一些实例性实施例中,不同功能电路组件可具有用于规定功能电路组件的性质的不同参数集合。如上文所提及,举例来说,比较器可具有用于设定输入级类型、磁滞、抗短时脉冲波形干扰的参数或(举例来说)系统(例如,生成器以及预定义子电路示意图及布局)经设计以支持的任何其它类型的参数。在此实例中,用户已选择并配置两个不同类型的功能电路组件c1(即,c1及c1’)及两个不同类型的功能电路组件c2(例如,c2及c2’)。
[0225]
在一些实施例中,设计界面1601可包含针对参数化功能电路组件的行为模型。举例来说,与用于模拟晶体管层级电路示意图的晶体管层级模型相比,行为模型可为较高层级模型。行为模型可描述电路的功能行为(举例来说,包含电压、电流及信号),但并不捕获电路实施方案的所有物理方面。晶体管(或装置)层级模型试图捕获电路的物理行为(例如,装置的基本物理原理及其实际上将如何工作)。行为模型可描述(或仿真)电路应该做什么,而晶体管层级模型可描述设计中的装置将如何表现。尽管晶体管层级模型可提供关于电路的操作的更多细节,但行为层级模型可更快地生成模拟结果。在一个实例性实施例中,举例来说,行为模型可为针对功能电路组件的基本模型的分段线性模型。
[0226]
本公开的特征及优点包含为参数化功能电路组件提供与特定子电路示意图组合的实际模拟对应的基本可配置行为模型,使得可在设计界面中定义电路且可自动生成经组合示意图及/或布局。举例来说,功能电路组件ci可具有相关联可配置(或参数化)模型1655,使得当参数1654改变时,设计界面中的功能电路组件ci的行为改变。举例来说,设计界面可执行电路的行为模型模拟。参数可然后用于生成具有基本上类似行为的电路示意图及布局。举例来说,经组合以形成电路示意图1604的子电路的装置层级模拟可基本上匹配设计界面中的行为模型模拟。
[0227]
作为一个实例,可通过选择功能电路组件c1且然后选择针对c1的所要参数(例如,a1=x1、a2=x2、a3=x3)而在ui 1601中定义电路。c1的行为模型可为可基于参数而配置的。因此,具有参数(a1=x1、a2=x2、a3=x3)的c1的行为模型可经模拟以产生模拟结果来向用户指示c1将如何操作。有利地,相同参数(a1=x1、a2=x2、a3=x3)用于选择一或多个子电路示意图1610到1612(例如,如上文在各种实施例中所描述),所述一或多个子电路示意图经组合以产生电路示意图1604。举例来说,所选择子电路示意图可经设计及组合(基于参数)以在(此处,c1(a1=x1、a2=x2、a3=x3)的)行为模型模拟与使用参数值a1=x1、a2=x2及a3=x3所选择的子电路的装置模型模拟之间产生基本上匹配的模拟结果,其中与行为模型模拟相比,装置模型模拟是更详细的且可花费更长的时间来获得。另外,举例来说,针对基于参数值而经组合以形成电路示意图1604的子电路示意图中的每一者的一或多个子电路布局1620到1622可然后使用本文中所描述的技术而经组合以自动产生对应布局1605。举例来说,可利用相同或不同参数来选择及配置多种相同或不同功能电路组件,以生成多种电路及布局。
[0228]
因此,用户可选择功能电路组件、利用参数值来配置功能电路组件,且连接组件以在行为层级上获得所要电路功能性,所述行为层级通常不会经受实际装置层级技术挑战及可能的错误。举例来说,所选择功能电路组件中所使用的参数可然后由生成器1603接收以自动生成针对用户的电路的示意图及/或布局。因此,用户可在无需具有通常与模拟及混合信号晶体管层级电路设计及布局相关联的所有技能的情况下定义并生成极先进的模拟及混合信号电路示意图及布局。此外,本发明系统具有如下优点:极快地产生示意图及布局,借此减少模拟及混合信号电路示意图设计及布局循环时间及相关联成本。举例来说,取决于复杂性,一些模拟电路设计及布局循环时间可按月计。举例来说,使用本文中所描述的技术,取决于复杂性,生成模拟电路设计及布局可按天数、小时或甚至分钟计。
[0229]
实例性设计及自动电路生成过程及系统
[0230]
图17图解说明根据另一实施例的实例性设计及自动电路生成过程。将参考图18解释图17中所展示的过程。图18展示根据另一实施例的实例性设计及自动电路生成系统。
[0231]
参考图17,过程可以使用设计界面1801来选择功能电路组件(例如,通过用户)开始。在1702处,针对功能电路组件而选择电路规范参数。举例来说,参数可规定待生成的功能电路组件的特定性质。在图18中,用户已选择并配置五(5)个功能电路组件(例如,c1、c2、c1’、c3及c4,其中c1及c1’是具有不同参数的相同功能组件)。
[0232]
在此实例中,生成器软件包含用于接收及处理电路规范参数、规定符号以及生成网表的生成器软件组件1803。本实例的生成器软件进一步包含用于组合所选择子电路示意图及布置子电路布局的生成器脚本1830。在此实例中,生成器软件可将指令发送到eda系统1805(例如,用于编辑示意图及布局)。举例来说,可用于系统1805的一个实例性系统是来自的eda系统。在其它实例性实施例中,eda系统的功能性可包含于生成器软件中。在1703处,由生成器组件1803接收电路规范参数且针对功能电路组件而规定符号。下文在实例性网表中图解说明符号规范的实例。图19图解说明根据一实施例的针对不同功能电路组件的符号。举例来说,可基于电路规范参数的特定值而创建符号。举例来说,一个参数值集合可用于定义符号1901且另一参数值集合可用于定义符号1902。举例来说,符号可用于囊括(或表示)基于参数值而选择的特定子电路示意图。参考图18,举例来说,生成器组件1803可从所接收参数值确定待使用的子电路示意图且通过eda系统1805而读取那些子电路示意图的所有引脚。如上文所提及,生成器组件1803可规定子电路示意图的引脚之间的连接且可进一步规定子电路示意图的引脚与其对应符号之间的连接(例如,使用引脚映图)。再次参考图17,在1704处,可针对功能电路组件而生成网表1804。网表1804可规定针对每一参数化功能电路组件(例如,比较器)所选择的子电路示意图的引脚之间的连接以及此些引脚与符号的引脚之间的连接。生成器组件1803可进一步基于参数值及待组合的子电路而输出放置数据1808,如下文进一步解释。举例来说,网表1804可提供用于创建符号及连接子电路示意图的引脚的指令,且可包含一或多个子电路示意图的名称、符号的名称以及用于将引脚耦合在一起的信息。在一个实例性实施方案中,举例来说,网表可为verilog“.v”文件。下文展示针对一个子电路示意图及一个符号的实例性输出网表:
[0233]
//参数化功能电路组件电路生成器
[0234]
//功能电路组件:比较器
[0235]
//参数:
[0236]
//名称:comparator_xu0;速度:慢;类型:n;边缘:上升;
[0237]
//磁滞:寄存器;磁滞:20mv;抗短时脉冲波形干扰:无;vmax:6v
[0238]
//1.规定子电路示意图“comparatorinnslow”为
[0239]
//通过eda系统1805存取
[0240]
module comparatorinnslow(v,en,inn,inp,out,g,ip,innhystpbias,risehyst,fallhyst,a,sub);//子电路名称及引脚
[0241]
input risehyst;
[0242]
input v;
[0243]
input inp;
[0244]
output innhystpbias;
[0245]
output out;
[0246]
output [1:0]a;//总线输出
[0247]
input fallhyst;
[0248]
input ip;
[0249]
input inn;
[0250]
input g;
[0251]
input en;
[0252]
input sub;
[0253]
endmodule
[0254]
//2.用以创建参数化功能电路组件的符号的指令
[0255]
module comparator_xu0(enable_comparator,ip,comparator_out,comparator_inp,register_comphysteresis,comparator_inn,g,v,sub);
[0256]
input v;
[0257]
input enable_comparator;
[0258]
input ip;//偏置电流
[0259]
input comparator_inp;
[0260]
input comparator_inn;
[0261]
output comparator_out;
[0262]
input g;
[0263]
input sub;
[0264]
input[1:0]register_comphysteresis;
[0265]
//结束符号规范
[0266]
//定义2导线总线“a”[0267]
wire[1:0]a;
[0268]
//创建子电路“comparatorinnslow”的实例—实例名称“xcompn”[0269]
//规定子电路引脚与符号引脚(或其它子电路引脚)之间的连接
[0270]
comparatorinnslowxcompn(
[0271]
.v(v),//规定stone引脚名称(.v)与符号引脚名称(v)之间的连接
[0272]
.en(enable_comparator),//规定启用引脚之间的连接
[0273]
.inn(comparator_inn),
[0274]
.inp(comparator_inp),
[0275]
.ip(ip),
[0276]
.a({a1,a0}),//比较器的输出总线“a”到上面的导线“a”[0277]
.innhystpbias(n1),//浮动
[0278]
.fallhyst(n2),//浮动
[0279]
.risehyst(n3),//浮动
[0280]
.sub(sub),
[0281]
.out(comparator_out),
[0282]
.g(g)
[0283]
);
[0284]
endmodule
[0285]
举例来说,以上网表可存储于一位置中以供稍后由生成器脚本1830存取。将理解,以上网表仅是用于规定符号及引脚之间的连接的一种实例性技术。也可使用其它技术。
[0286]
一旦生成网表,生成器组件1803便可发信号通知生成器组件1830开始执行脚本1831到1833。在此实例中,可由eda系统1805执行用以生成电路示意图的一或多个脚本1831以在图17中的步骤1705处获得预定义子电路示意图。举例来说,可根据网表1804而连接引脚,如在图17中的步骤1706处所图解说明。举例来说,网表可通过脚本而输入到eda系统1805中以产生经组合电路示意图1807。结果是如上文所描述而创建的一或多个符号,且在每一符号内部(例如,在示意图阶层中向下)是用于形成每一符号的子电路示意图,其中引脚基于网表而耦合在一起。举例来说,符号表示针对具有由生成器接收的参数值的功能电路组件的晶体管(或装置)层级示意图。举例来说,在具有对应参数值集合的多个功能电路组件的情形中,可在eda系统中创建多个符号及对应示意图。
[0287]
再次参考图17,在1707处,使用经组合子电路示意图来存取预定义子电路布局。举例来说,在一个实施例中,每一子电路示意图具有一或多个对应预定义子电路布局。子电路示意图可由生成布局脚本1832使用以使用eda系统1805来检索对应子电路布局。在1708处,基于布局放置指令而布置预定义子电路布局。有利地,放置数据1808可由布置布局脚本1832自动检索以布置每一子电路布局(如上文所描述)且生成电路布局1809。
[0288]
实例性生成器
[0289]
图20a图解说明根据一个实施例的实例性生成器软件系统2001。将理解,以下仅是用于执行本文中所描述的技术的生成器的一个实例性实施方案。可使用其它软件架构来实施本文中所描述的技术中的一些或所有技术。
[0290]
生成器2001可接收规定待生成的模拟电路的参数。参数可对应于一或多个不同功能电路组件。如上文所提及,可以宽广范围的方式接收规定待生成的电路的信息。因此,生成器2001可包含用以接收参数且提取信息的解码器2002。在一个实施例中,参数是作为文本而接收,且解码器2002剖析所述文本并提取参数。生成器2001可包含用以接收参数且确定将生成哪一(些)功能电路组件及将在每一功能电路组件中使用哪些子电路的fcc及子电路确定块。生成器2001可包含用以比较针对各种功能电路组件的参数且确保参数在预定义极限内的极限比较块2004。举例来说,如果参数在极限之外,那么电路可能不工作,且系统
可触发错误信号或默认为其它参数值。
[0291]
在各种实施例中,生成器系统可接收关于待生成的电路的预定义信息以促进自动电路示意图及/或布局生成。举例来说,根据各种实施例的生成器可存取子电路引脚列表、将与特定电路示意图或电路示意图族系相关联的布局脚本、参数极限(上文所描述)、布局参数(例如,各种组件的长度)、过程参数及/或基于所接收参数而生成定制功能电路组件引脚列表。在此实例中,每一功能电路组件具有由生成器2001使用的相关联数据。举例来说,与一个功能电路组件(fcc a)2020相关联的数据可包含针对不同子电路示意图(例如,子电路示意图1a到na)的多个引脚列表2021到2023、针对功能电路组件的引脚列表2024(例如,用于各种版本的fcc a中的所有可能引脚)、与各种版本的fcc a 2020一起使用的一或多个布局脚本2025、针对fcc a的参数极限2026、布局参数2027(例如,针对所计算值的组件长度,下文更详细地描述)及过程参数2028(例如,用于一些所计算值及/或自动布局,如下文更详细地描述)。举例来说,针对其它功能电路组件(例如,fcc b 2030)的其它数据可包含类似数据2031到2038。举例来说,此数据可存储于文件中或存储于可由生成器2001存取的数据库中。在一些实施例中,可将一些数据硬编码成生成器代码。
[0292]
生成器2001可存取针对功能电路组件的数据以执行多种功能。在下文更详细地描述的一些实施例中,生成器2001可包含用于确定电阻器属性、电容器属性及/或晶体管属性的代码(例如,分别在本文中称为所计算值2005的代码块2006到2008)。举例来说,代码块中的一或多者可接收针对特定功能电路组件的布局参数或过程参数,如下文更详细地描述。举例来说,所计算值2005可包含用于从所接收参数中的值导出由块2006到2008使用的各种值的一或多个电路模型(例如,对应于特定功能电路组件)。举例来说,下文出于说明性目的而呈现偏置电流模型及延迟电路模型的实例,但其它电路模型可包含于生成器2001中。所计算值2005可确定组件值(例如,针对电阻器、电容器或晶体管),所述组件值可基于布局参数(例如,供用于布局中的一或多个预定义尺寸)。在各种实施例中,在电路规范中创建多个组件(例如,分段或单位组件)且将所述多个组件连接以形成一个经组合组件。在一个实施例中,将组件值编码于与包含电路规范的多个组件符号相关联的标识符中。在一个实施例中,举例来说,将组件值编码于针对组件的符号名称中,如下文更详细地描述。
[0293]
在各种实施例中,生成器可包含用于基于参数而生成电路规范的代码。在此实例中,举例来说,生成电路规范代码2011包括用于检索将用于待生成的电路中的子电路示意图的引脚的代码2012(获得子电路引脚)、用以生成针对待生成的电路的符号的代码2013及用以连接子电路的引脚与符号的引脚的代码2014(例如,连接引脚)。在此实例中,电路规范中的经连接引脚形成引脚映图,如上文所描述。
[0294]
生成电路规范2011可接收对哪些子电路示意图将包含于电路规范中的指示,且可检索针对那些子电路示意图的引脚列表(例如,引脚列表2021到2023或2031到2033中的一或多者)。在电路规范中生成的针对子电路a的说明性引脚列表是如下:
[0295]
module《sub-circuita》(pin1,

,pinn)
[0296]
input pin1
[0297]

[0298]
output pinn
[0299]
endmodule
[0300]
举例来说,其中以上是针对n个引脚,所述n个引脚中的一些引脚可为输入引脚且其它引脚是输出引脚。在一个实施例中,举例来说,引脚列表可为从eda工具2060接收的子电路示意图的功能视图。
[0301]
另外,在此实例中,生成符号2013可基于参数而确定(例如,针对特定功能电路组件的所有可能引脚当中的)哪些引脚将包含于符号上。举例来说,可接收fcc a引脚2024且参数经评估以确定应将哪些引脚并入到针对待生成的电路的符号中。基于参数而生成的说明性符号是如下:
[0302]
module《symbolname》(pin1,

,pinm)
[0303]
input pin1
[0304]

[0305]
output pinm
[0306]
《sub_circuits&connections》
[0307]
endmodule
[0308]
其中《sub_circuits&connections》规定子电路及连接,如下文所图解说明。连接引脚2014可将一或多个子电路示意图的引脚映射到其它子电路示意图的引脚或符号的引脚。举例来说,映射可包含于用于连接引脚的代码2014中。在一个实施例中,用于连接引脚的代码2014包含针对基于参数而选择的子电路示意图与符号的各种可能组合的串生成器。以下内容图解说明在电路规范中生成的引脚映图是如下:
[0309]
module《symbolname》(pin1,

,pinm)
[0310]
input pin1
[0311]

[0312]
output pinm
[0313]
sub-circuit_1(.subcir1_pin1(symbol/subcir_pin),.subcir1_pin2(symbol/subcir_pin),

,.subcir1_pinx(symbol/subcir_pin))
[0314]
sub-circuit_2(.subcir2_pin1(symbol/subcir_pin),.subcir2_pin2(symbol/subcir_pin),

,.subcir2_piny(symbol/subcir_pin))
[0315]

[0316]
sub-circuit_k(.subcirk_pin1(symbol/subcir_pin),.subcirk_pin2(symbol/subcir_pin),

,.subcirk_pinz(symbol/subcir_pin))
[0317]
endmodule
[0318]
结果是针对符号的电路规范,所述符号包括m个引脚、具有k个子电路。通过“subcir1_pin1(symbol_pin/subcir_pin)”而建立引脚连接。以下内容在子电路“amp”上的引脚“vout”与另一子电路上的引脚“vin”之间建立连接:
[0319]
module example_symbol(in,vcc,out)
[0320]
input in//符号引脚
[0321]
input vcc//符号引脚
[0322]
output out//符号引脚
[0323]
amp_1(
[0324]
.vin(in)//连接amp_1上的vin引脚与符号上的in引脚
[0325]
.vdd(vcc)//连接amp_1上的vdd引脚与符号上的vcc引脚
[0326]
.vout(vin)//连接amp_1的vout引脚与另一子电路(未展示)的vin引脚。
[0327]
endmodule
[0328]
一些实施例的特征及优点可包含生成用于自动电路布局生成的布局脚本。在一个实施例中,可针对体现于电路规范中的特定电路而定制布局脚本。生成器2001可包含用于检索针对基于所接收参数生成的一或多个电路而定制的一或多个预定义布局脚本的代码。举例来说,生成布局脚本代码2015可检索基于所接收参数的特定功能电路组件或者子电路示意图(及所计算电阻器、电容器或晶体管(如果存在))的特定组合或配置的布局脚本。
[0329]
因此,生成器2001可针对响应于所接收参数而生成的每一电路产生电路规范及布局脚本。举例来说,如在2040处针对第一电路(ckt1规范)且在2050处针对第二电路(ckt2规范)所图解说明,电路规范可包含子电路示意图引脚列表2041到4042/2051到2052、符号引脚2043/2053(其可囊括子电路示意图及任何所计算组件)以及规定引脚的连接的引脚映图2044/2054。在各种实施例中,可将一或多个功能电路组件并入到电路规范中。举例来说,一些实施例可包含耦合在一起以形成较复杂电路的多个功能电路组件。
[0330]
电路规范及布局脚本可由eda工具2060接收及处理。举例来说,eda工具可将电路规范作为verilog.v文件而接收且生成符号,所述符号(举例来说)填充有预定义子电路并根据引脚映图而连接在一起。可使用不同电路规范来生成多种电路示意图2070、2072、2074。可将电路示意图转换为布局实例且自动定位以形成布局2071、2073及2075。
[0331]
图20b图解说明根据一实施例的生成电路规范的实例性方法。在此实例中,在2080处,接收规定待生成的电路的信息。举例来说,所述信息可呈(举例来说)可被剖析的参数的形式,或(举例来说)呈可被解码的另一格式。在一些实施例中,系统可检索参数极限且比较一或多个参数与参数极限来验证所述参数。在2081处,可选择子电路示意图引脚列表(例如,基于规定待生成的电路的参数)。举例来说,可基于信息而选择对应于一或多个子电路示意图的一或多个引脚列表。每一引脚列表可包含针对对应子电路示意图的子电路示意图引脚。在一个实施例中,引脚列表及符号可对应于特定功能电路组件。如上文所提及,不同功能电路组件可具有不同相关联子电路示意图引脚列表及功能电路组件符号的预定义引脚。在2082处,基于所述信息而选择符号的预定义引脚的子集。每一功能电路组件的不同表现形式可具有不同引脚(例如,具有关闭的比较器可具有关闭引脚,但不具有关闭的比较器可不具有关闭引脚)。然而,在一些实施例中,针对相同功能电路组件所产生的符号可跨越所有参数而共同具有特定引脚(例如,电压/电流转换器可总是具有电压输入引脚vin、供应电压引脚vdd、接地gnd及电流引脚,所述电流引脚可基于参数而是源或槽(sink))。在2083处,可建立子电路示意图引脚与符号的多个预定义引脚的子集之间的连接。在2084处,生成电路规范。电路规范包含来自一或多个引脚列表的对应于一或多个子电路示意图的子电路示意图引脚、符号的预定义引脚的子集以及子电路示意图引脚与至少一个符号的预定义引脚的子集之间的连接。举例来说,可在eda工具中处理电路规范以产生电路示意图。另外,可基于信息而检索布局脚本,其中布局脚本经配置以自动定位针对从电路规范生成的电路的布局实例来产生布局。系统也可检索过程参数。举例来说,可将布局脚本及过程参数发送到eda工具以用于生成布局。
[0332]
图20c图解说明根据另一实施例的生成电路规范的方法。本公开的特征及优点包
含针对所计算组件值而生成符号,此在下文中更详细地描述。以下内容是用于针对所计算组件值而生成电路规范的一种实例性技术。在2090处,系统接收规定待生成的电子电路的信息。在2091处,系统基于信息而确定针对电子电路的至少一个组件的组件值。在各种实施例中,组件可为电阻器(例如,组件值包括电阻)、电容器(例如,组件值包括电容)或晶体管(例如,fet,其中组件值包括栅极宽度、指状部数目等)。在2092处,系统生成多个组件符号。符号数目可为组件值的计算的部分,如下文针对电阻器、电容器及晶体管所描述。在2093处,系统将组件值编码于与组件符号中的每一者相关联的标识符中。举例来说,标识符可为符号名称,且(举例来说)可将组件值编码于符号名称中。在2094处,系统建立组件符号之间的连接。在2095处,系统生成电路规范以串联或并联或者既串联也并联地配置组件符号。可将电路规范发送到eda工具且用于生成电路示意图。
[0333]
将理解,电路规范可包含针对多个功能电路组件的多个符号。每一符号可包含针对所计算组件值的符号。举例来说,功能电路组件也可以阶层方式配置,其中针对第一功能电路组件的符号由针对第二功能电路组件的符号囊括且针对第一功能电路组件的子电路示意图耦合到第二功能电路组件符号的引脚。因此,常用的功能电路组件(例如,缓冲器、电流镜等)可用作(举例来说)其它功能电路组件的构建块。
[0334]
所计算值
[0335]
本公开进一步涉及自动生成电组件,例如电阻器、电容器或晶体管。
[0336]
在各种实施例中,自动生成其中电阻器、电容器或晶体管值可变化(例如,连续地)的电路可为有利的。举例来说,一个电路可需要具有特定值的电阻器、电容器或晶体管,且电路的另一实例可需要具有另一值的电阻器、电容器或晶体管。因此,本文中公开用于自动生成可跨越一定范围的值而变化的电阻器、电容器或晶体管的技术。
[0337]
图21a图解说明根据一个实施例的跨越一定范围的值生成电路组件的方法。本公开的特征及优点可包含通过配置多个组件(例如,单位组件)以形成经组合组件而跨越一定范围的值生成此些组件。举例来说,在2101处,可由系统接收待生成的组件的总属性值。举例来说,总属性值可分别是待生成的电阻器、电容器或晶体管的总电阻、总电容或总栅极宽度。总属性值可从多种源接收。在一些实施例中,将总属性值作为参数(例如,由用户规定)而接收。在其它实施例中,由系统基于其它参数(例如,电路模型或导通电阻的参数)而确定总属性值。在2102处,可使用总属性值来确定第二属性值,所述第二属性值用于确定将经组合以形成待生成的组件的组件数目(n)(在2103处),使得经组合组件具有总属性值。如在下文针对各种不同组件类型(例如,电阻器、电容器及晶体管)的实例中所图解说明,单位组件(例如,电阻器分段、单位电容器或具有单位栅极长度的晶体管)可经组合以形成具有总属性值(例如,总电阻、总电容或总栅极宽度)的经组合组件。在一个实施例中,至少一个布局参数由系统接收,且基于至少一个布局参数而确定所生成的组件的第二属性值。在各种实施例中,布局参数可规定沿着待生成的组件的尺寸的长度。举例来说,针对电阻器,布局参数可规定电阻器布局分段长度。针对电容器,布局参数可规定沿着单位电容器的第一尺寸的最大长度(例如,最大宽度)。针对晶体管,布局参数可规定单位栅极宽度。有利地,通过并入有规定布局的物理属性的一或多个布局参数,可自动生成电路及布局两者,如在下文实例中进一步图解说明。
[0338]
在2104处,生成电路规范。如上文所提及,电路规范可规定待生成的示意图的组件
以及组件之间的连接。举例来说,如果系统确定具有第二属性值的一定数目(n)个组件可经组合以形成具有总属性值的组件,那么电路规范可规定n个此些组件(例如,n个电阻器:r1、

、rn,n个电容器:c1、

、cn,或n个晶体管:m1、

、mn)。电路规范也可规定连接,使得n个组件组合以形成经组合组件(例如,串联及/或并联连接的电阻器、串联及/或并联连接的电容器,或并联连接的晶体管)的总属性值。
[0339]
在2105处,生成晶体管层级示意图,所述晶体管层级示意图包括利用第二属性值进行配置的多个组件。举例来说,在一个实施例中,电路规范可由eda软件工具接收(例如,作为verilog输入)。eda工具可读取电路规范且针对电路规范中所规定的每一组件生成空符号。在一个实例性实施例中,脚本可用于将组件插入到每一符号中且利用第二属性值来配置组件。然后,组件的端子自动连接到符号的端子。符号可基于电路规范而连接在一起。因此,多个组件形成具有总属性值的经组合组件。在2106处,生成布局。布局可包含与经配置以产生总属性值的组件对应的n个布局实例。在下文所描述的各种实例中,可将每一组件转换为布局实例(例如,电阻器布局组件、电容器布局组件或晶体管布局组件)。举例来说,可使用与正被生成的特定电路相关联的预定义脚本来自动放置布局实例。
[0340]
图21b图解说明根据另一实施例的跨越一定范围的值生成电路组件的方法。如上文所提及,本公开的特征及优点包含当正生成电路时,将布局参数并入到设计流程中。通常,在设计电路之后执行布局。本公开的实施例可作为电路生成过程的部分而并入布局参数以允许自动生成电路示意图及布局。举例来说,在2110处,由系统接收规定待生成的模拟电路的信息。在2111处,基于信息的至少一部分而检索布局参数。举例来说,特定模拟电路的不同表现形式(例如,比较器、电流源、振荡器、功率fet、偏置电流等)可具有基于正生成的电路的参数而大小变化的电阻器、电容器及晶体管。如果电路包含电阻器,那么可检索针对电阻器的布局参数。如果电路包含电容器,那么可检索针对电容器的布局参数。如果电路包含晶体管,那么可检索针对晶体管的布局参数。可基于正生成的特定电路而预定义布局参数,且布局参数与相关联电路一起使用。因此,举例来说,用于生成布局的参数(例如,沿着各种尺寸的预定义长度)可包含于电路生成过程中以使电路及布局生成过程自动化。在2112处,基于规定待生成的模拟电路的信息以及布局参数而确定模拟电路组件的一或多个属性。在2113处,生成模拟电路的晶体管层级示意图,所述晶体管层级示意图包括模拟电路组件中的一或多者,且一或多个模拟电路组件配置有所述属性。在2114处,从晶体管层级示意图生成布局。布局可包含对应于一或多个模拟电路组件的多个布局实例,其中通过布局放置指令而在布局中自动定位每一布局实例。如下文各种实例中所图解说明,可基于模拟电路组件的属性而定位布局实例(例如,可基于电阻器分段长度而放置电阻器,可基于电容器宽度而放置电容器,且可基于栅极宽度而放置晶体管)。在一些实施例中,用于确定组件属性的布局参数也用于定位从组件的电路示意图导出的布局实例。
[0341]
图21c图解说明根据又一实施例的跨越一定范围的值生成电路组件的方法。如上文所提及,本公开的一些实施例的特征及优点可包含用于在可不支持自动模拟电路生成的eda工具中规定及生成模拟电路的技术。举例来说,现有eda工具不具有用于接收模拟电路规范的机制,所述模拟电路规范可用于自动生成晶体管层级模拟电路示意图且自动生成针对复杂参数化模拟功能电路组件的高效模拟电路布局。举例来说,本公开的实施例可生成电路规范且使用预定义脚本来将电路规范转换成晶体管层级示意图及/或布局。
[0342]
电阻器的自动生成
[0343]
本公开的特征及优点包含自动生成电阻器。在一些实施例中,举例来说,可跨越一定范围的值生成电阻器以供用于晶体管层级电路及/或布局中。
[0344]
图22图解说明根据一实施例的用于自动生成电阻器的计算机实施的系统。如本文中所描述的计算机实施的系统可包含在计算机系统2201上执行的软件,所述计算机系统可包含一或多个计算机(例如,服务器计算机)。在此示例中,计算机系统2201执行生成器软件2202以及示意图及布局生成器软件2203。将理解,其它示例性实施方案可以不同方式分割软件(例如,作为执行本文中所描述的功能性的单个软件系统或作为较多软件组件)。
[0345]
举例来说,本公开的特征及优点可基于由系统接收的所规定或所计算电阻器值而自动生成包含电阻器的示意图、布局或此两者。举例来说,根据本公开的系统可接收电阻器值且自动生成针对电阻器的示意图、针对电阻器的布局或此两者。在此示例中,将通过生成器软件2202的电阻器规范生成器组件2212而生成对应于电阻器2210的电阻器值rtotal。在各种实施例中,举例来说,一或多个电阻器值可由用户规定,且由生成器软件2202作为输入参数而接收。在其它实施例中,举例来说,可基于由生成器2202接收的其它参数而计算一或多个电阻器值,如下文更详细地描述。
[0346]
一些实施例的特征及优点包含将电阻器值转换成分段,例如待生成的串联电阻器分段、待生成的并联电阻器分段,或串联与并联电阻器的一或多个组合。举例来说,电阻器规范生成器2212可确定将被串联配置的电阻器分段的第一数目n及/或将被并联配置的电阻器分段的第二数目m,以近似产生电阻器值rtotal。在一个实施例中,举例来说,电阻器分段的电阻可为相同的。举例来说,一旦确定数目n及/或m,便可生成电路规范2213(例如,针对rtotal)以产生示意图、布局或此两者。在此示例中,电阻器规范生成器2212可生成电路规范2213以串联配置第一数目n个电阻器分段及/或并联配置第二数目m个电阻器分段。尽管此处图解说明用于产生rtotal的一个串联电阻器组合及一个并联电阻器组合,但将理解,可(举例来说)在容许容差内使用仅串联组合、仅并联组合或多个串联及/或并联组合来获得rtotal。
[0347]
在各种实施例中,电路规范2213可规定多个组件的配置。在此实例中,组件对应于电阻器分段(例如,如由电阻器分段2214到2218所图解说明),且电路规范2213可规定电阻器分段之间的连接。举例来说,电路规范可为网表(例如如上文所提及的verilog.v文件),其中组件之间的连接是基于网表中的共同所规定节点。
[0348]
本公开的实例性实施例可进一步接收电阻器分段2211的一或多个预定义物理尺寸。举例来说,可设定预定义物理尺寸以有利地优化不同电阻器值的布局,如下文进一步图解说明。举例来说,预定义物理尺寸可为电阻器分段的预定义长度lseg及/或电阻器分段的预定义宽度wseg。预定义物理尺寸可与待生成的电阻器值相关联,使得待生成的特定电阻器可存取预定义物理尺寸。因此,举例来说,当接收到特定电路或项目的特定电阻器值rtotal时,可从已知存储位置(例如,从存储器、文件或数据库)获得特定电阻器的相关联参数,例如lseg及/或wseg。
[0349]
在一些实施例中,将针对不同电阻器值生成的不同电阻器可具有不同对应预定义物理尺寸(例如,长度及/或宽度)。因此,将生成有第一值rtotal1的一个电阻器可具有第一对应预定义长度及/或预定义宽度,且将生成有第二值rtotal2的另一电阻器可具有第二对
应预定义长度及/或预定义宽度。举例来说,如上文所提及下文通过实例方式进一步图解说明,并入有一或多个预定义物理尺寸可用于改善跨越一定范围的电阻器值的电阻器的布局。
[0350]
在一些实施例中,举例来说,电阻器规范生成器2212可进一步接收薄片(sheet)电阻率。
[0351]
以下方程式图解说明基于预定义长度、预定义宽度及薄片电阻率而对n及m的实例性计算:
[0352]
n=串联的电阻器分段2211的数目,可基于rtotal除以分段的电阻rsegment的整数部分(例如,div(rtotal/rsegment,即,rtotal除以rsegment的商)。
[0353]
m=并联的电阻器分段2211的数目,基于rtotal除以分段的电阻rsegment的余数部分(例如,mod(rtotal/rsegment)。在一个实例性实施例中,举例来说,可规定并联电阻器的最大数目且m的值是致使rtotal在容许容差内的并联电阻器数目。
[0354]
lseg存储于bio中;从过程设计规则而计算wseg
[0355]
可将一分段的电阻写为:
[0356]
rseg=ρ(lseg/wseg),
[0357]
其中ρ(rho)是薄片电阻率(称作“薄片rho”,其是由所使用的特定半导体制造过程规定的参数),lseg是分段长度,且wseg是分段宽度(例如,其可基于电流密度及所使用的特定电阻器类型而设定)。因此,电阻器分段的电阻可基于长度、宽度及/或rho。
[0358]
可如下确定总电阻器值rtotal:
[0359]
rtotal=(rseg*m)

仅串联,
[0360]
rtotal=(rseg/n)

仅并联,
[0361]
rtotal=(rseg*m) (rseg/n)

串联与并联的组合。
[0362]
特定实施例的特征及优点可进一步包含基于电路规范而针对电阻器值生成示意图。在此实例中,将电路规范2213从生成器软件系统2202发送到示意图及布局生成器软件系统2203。举例来说,示意图及布局生成器软件系统2203可为如上文所提及的电子设计自动化(eda)软件系统。软件系统2203可包含用以从电路规范2213生成电阻器示意图2221的示意图生成器组件2220。示意图生成器组件2220可(举例来说)接收网表,且(举例来说)将网表转换为示意图符号及示意图符号之间的连接。然而,一些示意图生成器可不能够基于网表而将组件(例如电阻器)的属性设定为特定规定值。因此,在一个实例性实施例中,示意图导入组件2222可(举例来说)分析电路规范2213或所生成示意图2221,且设定所生成示意图中的组件(例如电阻器)的属性。
[0363]
在一个实例性实施例中,电路规范2213可规定对应于电阻器分段的组件,且示意图生成器2220可生成不具有针对此些组件的电阻器分段的示意图符号(例如,如果网表中的组件名称不存在于软件系统2203的库中,那么所生成符号可为空的)。因此,最初,所生成示意图包含多个空符号,其中符号的引脚如在所接收网表中所规定而耦合在一起。示意图导入组件2222可识别空组件且执行用于将电阻器分段插入到符号中的算法。举例来说,示意图导入组件2222可将电阻器分段自动插入于空示意图符号中的每一者中且(举例来说)连接经插入电阻器分段的端子与示意图符号的引脚。
[0364]
在一些实施例中,示意图导入组件2222可包含用于设定电阻器的属性的代码。举
例来说,电阻器的属性可包含电阻器的物理尺寸,例如长度及宽度。属性也可包含电阻器类型(例如,多晶硅、经掺杂多晶硅或金属)。一或多个电阻器的属性可以各种方式在软件组件之间传递。在一个实施例中,规范可包含用于设定属性的信息。举例来说,可将属性编码于电路规范2213中的组件的标识符中(例如,编码于网表中的电阻器的名称中)。因此,当网表中的组件的符号用于创建符号时,所述符号可包含标识符。举例来说,标识符可由示意图导入组件2222读取,且用于将电阻器放置于空符号内。在其它实施例中,举例来说,属性可存储于预定义位置中且由示意图导入组件2222存取。下文出于说明性目的而呈现用于传递电阻器的属性的更详细实例性技术。
[0365]
因此,示意图生成器2220可输出电阻器示意图2221。电阻器示意图2221可包含具有引脚的多个符号。每一符号可在其内嵌入有电阻器分段。如上文所提及,符号以一或多个串联及/或并联配置耦合在一起。举例来说,各自具有内部电阻器分段的经组合符号形成所要的总电阻器值rtotal。在一些实例性实施例中,用于形成一个总电阻器值rtotal的电阻器分段可各自具有相同长度、宽度及电阻器类型。
[0366]
本公开的一些实施例的特征及优点可包含从电阻器示意图自动生成电阻器布局。举例来说,可通过布局生成器2223而将电阻器示意图2221转换成电阻器布局2224。举例来说,布局生成器2223可将示意图的符号内的电阻器分段转换成多边形,其中每一多边形具有针对对应电阻器分段而规定的尺寸。在一个实施例中,可执行布局放置指令以定位布局中的每一多边形,如下文更详细地描述。因此,可将示意图中形成总电阻器值rtotal的电阻器分段自动转换为电阻器布局2224。
[0367]
图23图解说明根据一实施例的生成电阻器的方法。在一个实施例中,本公开包含软件,所述软件在被执行时执行如下方法。在2301处,可接收待生成的电阻器值。在2302处,软件可确定用以产生所接收电阻器值的串联配置的电阻器分段的至少一个数目或并联配置的电阻器分段的至少一个数目(或此两者)。在2303处,生成电路规范。举例来说,电路规范可规定对应于电阻器分段的多个组件的配置。在2304处,基于电路规范而生成示意图。示意图可包含对应于多个组件的多个符号。举例来说,每一符号可包括电阻器分段。符号基于电路规范而自动耦合在一起以产生电阻器值。在2305处,可从电路示意图生成布局。布局可包括对应于每一电阻器分段的多边形。在一个实施例中,通过布局放置指令而自动放置多边形。
[0368]
图24图解说明根据另一实施例的生成电阻器的方法。在此实例中,在2401处,接收待生成的电阻器的电阻器值,且在2402处,接收对应于至少一个电阻器分段的至少一个物理尺寸。举例来说,物理尺寸(例如长度及/或宽度)可有利地用于此实例中以优化产生电阻器值的多个电阻器分段的布局。在2403处,软件可确定用以产生所接收电阻器值的串联配置的电阻器分段的至少一个数目及/或并联配置的电阻器分段的至少一个数目。在2404处,生成电路规范。
[0369]
图25a图解说明根据又一实施例的生成电阻器的方法。在此实例中,在2501处,接收待生成的电阻器的电阻器值,且在2502处,生成电路规范。此处,电路规范规定对应于电阻器分段的组件。在2503处,基于电路规范而生成示意图。示意图包含对应于电路规范中的组件的符号。在此实例中,符号可不具有电阻器分段(例如,符号是空的)。因此,在2504处,将电阻器分段插入到符号中。符号与经插入电阻器分段可在示意图中耦合在一起以产生电
阻器值。
[0370]
图25b图解说明根据又一实施例的生成电阻器的方法。在此实例中,在2510处,接收待生成的电阻器的电阻器值,且在2511处,生成电路规范。此处,电路规范规定与具有一或多个预定义物理尺寸的电阻器分段对应的组件。在2512处,基于电路规范而生成示意图。示意图包括经配置以产生电阻器值的电阻器分段(例如,串联及并联)。在2513处,生成布局。布局包括对应于电阻器分段的多边形。举例来说,多边形可有利地基于电阻器分段的一或多个预定义物理尺寸而放置以产生电阻器的布局。
[0371]
图25c图解说明另一实施例。本公开的各种实施例可以各种组合且在各种不同层级处应用本文中所描述的技术中的一些或所有技术以使电阻器生成自动化。在此实例中,在2520处,确定电阻器值(例如,通过电路生成引擎)。在2521处,可将电阻器值转换成示意图(例如,在中转换成eda晶体管层级电路示意图)。在2522处,继而将示意图转换成多边形。在2523处,可通过布局放置指令而自动放置针对电阻器的多边形。举例来说,正生成的特定电路可与多个布局放置指令相关联,所述多个布局放置指令将针对电阻器的多边形中的每一者定位于布局中的特定位置中。举例来说,布局放置指令可依序放置每一多边形且连接多边形的端子以产生所要的电阻器值。
[0372]
用于生成电阻器的实例性实施例
[0373]
图26图解说明根据一实施例的实例性电阻器示意图及布局。在此实例中,电阻器示意图2610包括串联耦合在一起的n个符号2611到2613及并联耦合在一起的m个符号2614到2616。举例来说,符号可经由引脚而耦合在一起。并联符号与串联配置的符号串联在一起,如所展示。实例性符号2620包含符号引脚2621及2622。符号2620包括具有第一端子2624及第二端子2625的电阻器分段2623rseg。如上文所提及,在一些实施例中,符号2620可生成为不具有电阻器分段(例如,作为空符号)。电阻器分段rseg可已通过软件而被插入于符号2620中。举例来说,软件可进一步将电阻器端子2624连接到符号引脚2621且将电阻器端子2625连接到符号引脚2622。在一个实施例中,举例来说,软件可包括在电子设计自动化(eda)软件系统中执行的脚本(例如,中的skill脚本),所述脚本可(举例来说)检测由响应于接收到网表而生成的示意图产生的空符号实例,且自动插入电阻器。脚本可进一步使用如上文所描述而生成的值来设定经插入电阻器的属性。
[0374]
符号2611到2616中的电阻器分段的经组合电阻可产生待生成的总电阻器值rtotal。如上文所提及,在一些实施例中,电阻器分段可(举例来说)具有相同电阻器分段值rseg、相同预定义长度lseg及相同预定义宽度wseg。针对电阻器分段使用一或多个已知长度及/或宽度可有利地允许高效自动布局。
[0375]
根据各种实施例,实例性布局2690a到2690c图解说明可如何自动生成不同电阻器值。布局2620a包括两(2)个子电路2651及2652以及电阻器,所述电阻器包括多个电阻器布局分段2680。举例来说,电阻器布局分段2680可在布局中对应于多个多边形。举例来说,可从电阻器示意图(例如示意图2610)生成电阻器布局分段2680。因此,在此实例中,符号2611到2616中的电阻器分段2623生成对应多边形2680。在其它实施例中,举例来说,示意图中的单个电阻器可被转换成多个多边形且如本文中所描述而自动放置是可能的。在此实例中,电阻器布局分段2680中的每一者具有相同长度lseg及宽度wseg。电阻器布局分段2680可如所展示而平行地布局(例如,沿着长度或宽度并排)且串联及/或并联耦合在一起(例如,使
用金属或多晶硅)(例如,如示意图2610中所图解说明),因此总电阻是rtotal。
[0376]
如布局2690a到2690c中所图解说明,可使用不同数目个电阻器布局分段2680来产生不同的rtotal值。一些rtotal值可产生较少电阻器布局分段,而其它rtotal值可产生较多电阻器布局分段。布局2620b及2620c图解说明rtotal的两个电阻值。布局2620b具有比布局2620c少的电阻器布局分段。然而,取决于并联及串联电阻器的配置,针对布局2620b的rtotal值可大于或小于针对布局2620c的rtotal值。有利地,可通过并排地放置电阻器布局分段(例如,沿着其长度)且根据串联及/或并联组合的不同数目将所述电阻器布局分段耦合在一起而使跨越不同设计针对不同rtotal值所使用的电阻器布局分段的数目变化,如所展示。如下文更详细地描述,布局放置指令可在针对电阻器布局分段而保留的区域中沿着电阻器布局分段的长度平行地放置所述电阻器布局分段。在此实例中,针对电阻器布局分段2680而在布局中经保留区域2660,所述区域垂直地位于子电路1 2651的布局下方且水平地邻近于子电路2650。布局中的经保留区域2660可包括多边形,所述多边形具有近似等于电阻器分段长度(例如,加上偏移)的一个尺寸(此处,经保留高度hr)及等于宽度的倍数(例如,加上偏移或分段之间的空间)的第二尺寸(此处,经保留宽度wr)以适合跨越总电阻器值rtotal的范围的电阻器布局分段。在一个实例性实施例中,举例来说,经保留宽度wr等于电阻器布局分段宽度的倍数加上偏移以适合最小数目个电阻器布局分段及最大数目个电阻器布局分段来产生从最小总电阻器值rtotal_min到最大总电阻器值rtotal_max的电阻器。
[0377]
图27a图解说明根据一实施例的针对与两个不同电路一起使用的两个电阻器值生成的实例性布局。在此实例中,可通过布局生成器软件2790而将供与第一电路(ckt1)一起使用的第一电阻器值rtotal1转换为布局。在一个实施例中,举例来说,电阻器值(例如,rtotal1)是如上文所描述使用参数而规定的一个功能电路组件(例如,偏置电流生成器)的所计算值。rtotal1可用于产生包括多个电阻器分段的示意图,如上文所描述。举例来说,电阻器分段可具有第一预定义长度lseg1以及与rtotal1及对应电路(ckt1)相关联且包含于示意图中的其它属性。将示意图中的电阻器分段转换为电阻器布局分段2710,其中每一电阻器布局分段具有第一预定义长度lseg1,如布局2701中所图解说明。举例来说,布局2701可进一步包含子电路,所述子电路对应于rtotal1与其一起使用的第一电路的电路系统(例如,电流偏置电路系统)。举例来说,生成器2790可将第一电路实施为子电路布局2751及2752。
[0378]
可通过布局生成器软件2790而将供与第二电路(ckt2)一起使用的第二电阻器值rtotal2转换为布局。此处,举例来说,rtotal2是如上文所描述使用参数而规定的另一功能电路组件(例如,振荡器)的所计算值。rtotal2可用于产生包括多个电阻器分段的示意图,如上文所描述。举例来说,电阻器分段可具有第二预定义长度lseg1以及与rtotal2及第二电路(ckt2)相关联且包含于示意图中的其它属性。将示意图中的电阻器分段转换为电阻器布局分段2720,其中每一电阻器布局分段具有第二预定义长度lseg2,如布局2702中所图解说明。举例来说,布局2702可进一步包含子电路,所述子电路对应于rtotal2与其一起使用的第二电路的电路系统(例如,振荡器电路系统)。举例来说,生成器2790可将第一电路实施为子电路布局2753及2755。
[0379]
图27a中的实例图解说明在一些实施例中,与不同电路一起使用的电阻器值可具有不同预定义物理尺寸。在每一电路的各种实施例中,当rtotal1及rtotal2改变时,可分别
连同电路2751/2752及2753/2754/2755一起使用更多或更少电阻器布局分段2710及2720。然而,分段长度lseg1及lseg2可保持不变。然而,如下文实例中所图解说明,物理尺寸(例如长度)可(举例来说)基于哪些其它子电路包含于电路中而改变以优化布局。
[0380]
图27b图解说明根据一实施例的与同一电路一起使用的两个电阻器值。在此实例中,举例来说,将针对待生成的两个不同电阻器的两个电阻器值rtotal3及rtotal4提供到布局生成器软件2790,所述布局生成器软件产生布局2703。在此实例中,将对应于电路中的第一电阻器的第一所接收电阻器值rtotal3转换为各自具有长度lseg3的电阻器布局分段2730。类似地,将对应于电路中的第二电阻器的第二所接收电阻器值rtotal4转换为各自具有长度lseg4的电阻器布局分段2740。举例来说,生成器2790可生成电路的布局作为子电路布局2756及2757。将理解,在另一些实施例中,rtotal3及rtotal4可(举例来说)使用相同电阻器分段长度lseg。
[0381]
图28图解说明根据一实施例的针对不同子电路配置的电阻器值生成的实例性布局。在一些实施例中,取决于用于布局中的其它电路系统,不同物理尺寸可用于相同电阻器值rtotal。举例来说,当周围电路系统改变时(例如,当不同参数类型或值选择不同子电路时),可使用不同大小的电阻器布局分段来适合于不同开放空间中,以优化所得布局。在此实例中,当电阻器包含于具有子电路2810及2811的电路中(如布局2801中所图解说明)时,可在具有长度lseg1的电阻器布局分段中实施电阻器值rtotal。然而,举例来说,当电阻器包含于具有子电路2811的不同电路中(如布局2802及2803中所图解说明)时,电阻器值rtotal可产生具有不同长度或配置的电阻器布局分段。布局2802图解说明当仅子电路2811在布局中时可使用的一个实例性分段长度lseg2,且替代地,布局2803图解说明也当仅子电路2811在布局中时可使用的另一实例分段长度lseg3。布局2804图解说明当子电路2810到2812的又一组合与rtotal的电阻器布局分段在同一布局中时,可使用另一分段长度lseg4。如从布局2801到2804图解说明,具有不同子电路的不同布局可产生用于布局电阻器分段的不同选项。针对一个子电路组合,一个物理尺寸集合(例如,lseg及/或wseg)可形成更优选布局(例如,较小大小或较佳电性能)。当子电路组合改变时,针对电阻器分段的不同物理尺寸集合可产生更优选布局。在一个实例性实施例中,举例来说,可评估用于一或多个功能电路组件的参数,且可基于参数而存取与电阻器分段相关联的不同预定义物理尺寸,使得电阻器布局分段在布局中的布局及/或放置基于布局中的其它子电路而改变。
[0382]
图29图解说明根据一实施例的电阻器分段的实例性布局。举例来说,本公开的一些实施例的特征及优点可包含自动生成并放置电阻器布局分段(例如,多边形)以产生在软件系统中接收的电阻器值。图29图解说明自动放置多个电阻器布局分段2950以产生电阻器值rtotal。在此实例中,将具有长度lseg及宽度wseg的第一电阻器布局分段2901放置于x、y轴的(0,0)坐标处。将具有相同长度及宽度的第二电阻器布局分段2902沿着第一电阻器布局分段2901的长度平行(即,并排)放置且从分段2901偏移。举例来说,分段2902的所得放置是(x=wseg offset,y=0),其是wseg的函数。将wseg与偏移的和称为“步长”,其可用于迭代地放置每一分段。因此,举例来说,可根据以下方程式基于预定义物理尺寸(例如,此处wseg)而放置此实例中的电阻器布局分段2950:place(i*step,0),其中“i”等于0到(1

电阻器布局分段总数目)且“步长”是基于wseg的放置偏移(例如,wseg加上额外设计规则检查偏移“drc偏移”,可在运行时间期间存储及存取所述“drc偏移”)。在一些实施例中,每一电阻
器布局分段可与唯一标识符(例如,实例名称)相关联,且唯一标识符可经命名使得可对电阻器布局分段进行分类。因此,举例来说,可对电阻器布局分段标识符进行分类(例如,r1、r2、r3

等)且然后可依序放置每一电阻器布局分段(例如,在软件循环中)以产生rtotal的布局。
[0383]
图30图解说明根据一实施例的电阻器分段的另一实例性布局。举例来说,此实例图解说明可使用布局放置指令来将电阻器布局分段放置于布局中的预定义位置处,且此些放置指令可进一步用于旋转电阻器布局分段。举例来说,此处,在邻近于子电路a 3050的布局(例如,在所述布局右侧)且邻近于子电路b 3051的布局(例如,在所述布局上方)的经保留区域中将电阻器布局分段3001放置于x、y轴的x1,y1开始坐标处。举例来说,将电阻器布局分段3001进一步旋转角度θ=90度。
[0384]
将电阻器布局分段3002进一步放置于x1,y1开始坐标处且基于宽度及其它因素(例如,drc)而沿着y轴偏移。如上,将分段3002旋转角度θ=90度。类似地,可放置额外电阻器布局分段以产生总电阻器值rtotal。因此,可根据以下方程式基于预定义物理尺寸(例如,此处wseg)而放置图30中的电阻器布局分段:place(x1,y1,step,r=90
°
,p= ),其中x1是x轴初始放置坐标,y1是y轴初始放置坐标,步长是基于wseg的放置偏移(例如,步长=f(wseg)),“r”是旋转,且“p”是步长的极性(向上或向下/向左或向右)。一般来说,本公开的实例性实施例可包含执行布局放置指令的脚本,所述布局放置指令规定电阻器的放置、开始x坐标、开始y坐标、基于电阻器分段的至少一个物理尺寸的偏移、旋转及极性(例如,p= /-)。在图29及30中,举例来说,沿着x轴(图29)及y轴(图30)(例如,正极性步长)以增加的值依次放置电阻器布局分段,但将理解,步长的极性也可沿负方向。
[0385]
图31图解说明根据一实施例传递电阻器属性。在特定实施例中,接收电阻器属性(例如长度、宽度或电阻器类型)以供用于示意图中可为有利的。在一个实施例中,电路规范用于生成包含电阻器的符号的示意图。然而,特定电子设计自动化(eda)软件系统中的一些示意图生成器可不具有接收规定用于晶体管层级示意图中的电阻器或电阻器的值的网表的能力。因此,在一个实施例中,电路规范可生成有一或多个标识符,所述一或多个标识符可用于设定电阻器的属性。举例来说,一或多个电阻器值可编码于电路规范中的符号的名称中。举例来说,规范3101可包含组件的标识符,例如组件名称。组件标识符可包含一或多个经编码电阻器属性3110。举例来说,电路规范3101中的组件可具有名称“rlpp3000rpo5p22u2p5u”,其中“rlpp3000”对应于特定库,rpo对应于电阻器类型(例如,poly、poly 或金属,此处rpo=“poly”),“5p22u”对应于5.22微米电阻器长度,且“2p5u”对应于2.5微米宽度(举例来说)。以下实例性代码图解说明获取电阻器单元名称且将其拆分以将电阻器参数解码:
[0386]
if(strncmp(cname"rlpp3000rpo"10)==0then
[0387]
rexcompile("rlpp3000rpo")
[0388]
newstring=rexreplace(cname""1)//注解:串变为40p0u2p0u
[0389]
rexcompile("p")
[0390]
newptstring=rexreplace(newstring"."-1)//注解:以“.
”‑
1替换所有“p”,串变为40.0u2.0u
[0391]
paramstring=parsestring(newptstring"u")//注解:串分裂为(“40.0”“2.0”)
[0392]
//注解:先长度后宽度l=40.0w=2.0
[0393]
length=car(paramstring)
[0394]
width=cadr(paramstring)
[0395]
)
[0396]
规范可由示意图生成器组件3121接收以将电路规范转换成示意图3122(例如,晶体管层级示意图)。示意图3122可最初包括对应于电路规范中的电阻器组件的符号。然而,对应于电阻器的符号可最初是空的。示意图导入组件3123可读取示意图中的符号的名称且(i)在示意图中插入电阻器值,(ii)将电阻器端子连接到符号引脚,并且(iii)基于经编码名称而填充电阻器的属性。举例来说,基于以上编码,示意图导入组件3123可选择并在符号中插入(举例来说)来自“rlpp3000”库、具有lseg=5.22um及wseg=2.5um的多晶硅电阻器。
[0397]
电路规范中所规定的实例性串联及并联电阻器是如下:
[0398]
实例1:命名为“rlpp3000rpo7p5u2p0u”的并联连接的电阻器组件:
[0399]
//多晶硅类型:0.20000kohm电阻器
[0400]
module rlpp3000rpo7p5u2p0u(rp,rn);
[0401]
inout rp;
[0402]
inout rn;
[0403]
endmodule
[0404]
rlpp3000rpo7p5u2p0u r0(
[0405]
.rp(rp),
[0406]
.rn(rn),
[0407]
);
[0408]
rlpp3000rpo7p5u2p0u r1(
[0409]
.rp(rp),
[0410]
.rn(rn),
[0411]
);
[0412]
rlpp3000rpo7p5u2p0u r2(
[0413]
.rp(rp),
[0414]
.rn(rn),
[0415]
);
[0416]
实例2:命名为“rlpp3000rpo24p8u2p0u”的串联连接的电阻器组件:
[0417]
module rlpp3000rpo24p8u2p0u(rp,rn);
[0418]
inout rp;
[0419]
inout rn;
[0420]
endmodule
[0421]
rlpp3000rpo24p8u2p0u r4(
[0422]
.rp(rp),
[0423]
.rn(rp_1),
[0424]
);
[0425]
rlpp3000rpo24p8u2p0u r5(
[0426]
.rp(rp_1),
[0427]
.rn(rp_2),
[0428]
);
[0429]
rlpp3000rpo24p8u2p0u r6(
[0430]
.rp(rp_2),
[0431]
.rn(rp_3),
[0432]
);
[0433]
在以上实例1中,第一module语句定义命名为“rlpp3000rpo7p5u2p0u”的具有两个端子rp及rn(例如,正及负)的组件。后面的语句创建组件的命名为r1、r2及r3的3个实例,所述3个实例使其正端子与负端子连接在一起。类似地,在以上实例2中,module语句定义命名为“rlpp3000rpo24p8u2p0u”的组件,其也具有两个端子(正及负)。后面的语句创建组件的命名为r0、r1及r2的三个实例。然而,组件r4、r5及r6的端子串联连接(例如,r0的负端子被指派到节点rp1且r1的正端子也被指派到rp1等

)。因此,在eda工具中(例如,作为verilog输入)接收实例r1、r2及r3可致使在晶体管层级示意图中创建具有符号名称rlpp3000rpo7p5u2p0u以及实例名称r1、r2及r3的3个组件符号。所述符号并联耦合在一起。类似地,接收实例r4、r5及r6可致使在晶体管层级示意图中创建具有符号名称rlpp3000rpo24p8u2p0u以及实例名称r4、r5及r6的3个组件符号。这些符号串联耦合在一起。在每一情形中,可读取符号名称且可插入具有经编码属性的电阻器,如上文所描述。
[0434]
图32图解说明根据另一实施例将电阻器属性传递到示意图。在此实例中,将规范3202从生成器3201发送到示意图生成器3250。举例来说,针对将在示意图中生成的一或多个电阻器的电阻器属性3203可存储于可由示意图导入组件3251存取的位置中。在一个实施例中,可如上将电阻器属性编码,或替代地可不将电阻器属性编码(例如,将所述电阻器属性存储于表中或存储为文本或者以可从可存取计算机存储器位置检索的任何其它方式存储)。举例来说,示意图导入组件3251可读取电阻器属性3203且然后使用示意图生成器3250来用电阻器属性填充示意图。举例来说,所得示意图3252可包含如上文所描述而插入于符号中的电阻器,其中示意图中的电阻器的属性填充有属性3203。
[0435]
如上文所提及,在一个实例性实施例中,生成器是第一程序,所述第一程序可接收电路参数且产生待生成的电路的规范。可将电路规范发送到可包含示意图生成器的电子设计自动化(eda)软件系统。举例来说,示意图导入组件可包括用于执行图31及32中所描述的技术的一或多个脚本。
[0436]
图33图解说明根据一实施例的生成用户界面中所规定的电阻器。在此实例中,用户可在设计用户界面(ui)3301(也称为前端)中设计电路。举例来说,设计ui 3301可执行电路的高层级行为模拟,而非晶体管层级模拟。在此实例中,用户已选择第一功能电路组件3302(例如,比较器或放大器)及电阻器组件3303。在设计界面中,组件3302与3303耦合在一起。举例来说,用户可在用户界面3304中规定电阻器组件3303的电阻器值,且输入rtotal的所要值。在此实例中,rtotal可处于从最小值rmin=100欧姆到最大值rmax=1百万欧姆的预定义范围内。举例来说,功能电路组件3302也可具有用户所选择参数,如上文所描述。来自ui 3301的参数可用于生成示意图3310。所述示意图可包含基于针对功能电路组件3302所接收的参数而选择的一或多个子电路3311。另外,所述示意图可包含rtotal的电阻器示
意图3313。举例来说,电阻器示意图3313可包括各自包含电阻器分段的串联及/或并联配置的多个符号(例如符号3314)。经组合示意图可近似产生由用户输入的rtotal值(例如,在电路的正常功能可接受的误差程度内)。
[0437]
图34图解说明用户界面中所规定的电阻器的实例性布局。在此实例中,功能电路组件3302的参数用于生成子电路布局3401。举例来说,电阻器组件3303的用户输入值(例如,rtotal)用于生成并放置多个电阻器布局分段3403a到3403n,每一电阻器布局分段具有用以以组合形式形成rtotal值3403的预定义分段长度及分段宽度。当rtotal的用户输入值改变时,用于产生rtotal的电阻器布局分段3403a的数目改变。在此实例中,针对任何电阻器值rtotal,可将第一电阻器布局分段以邻近于子电路布局3401的位置(例如,位置(xi,yi)3450)开始放置于布局中,且然后可将后续电阻器布局分段放置于沿着x轴偏移的位置处(例如,此处,沿负x轴方向,使得分段沿着其长度平行地配置并通过偏移间隔开)。
[0438]
图35图解说明根据一实施例基于用户界面中所规定的电路参数而生成电阻器。如上文所提及,一或多个电阻器值rtotal可作为通过生成器软件的计算的结果而接收。在此实例中,用户可在设计用户界面(ui)3501中设计电路,所述电路包含第一功能电路组件3502(例如,此处,偏置电流生成器电路)及一或多个其它功能电路组件3503。在设计界面中,组件3502与3503耦合在一起(例如,偏置电流耦合到其它功能电路组件中的一或多者)。用户可规定每一功能电路组件的参数,所述参数被发送到生成器软件。可使用组件3502的参数来基于模型计算一或多个电阻器值。在此实例中,举例来说,用户可在用户界面3504中针对偏置电流生成器电路3502输入一所要电流。举例来说,用户可在文本字段中输入ibias的所要值。在此实例中,ibias可处于从最小值ibias_min=0.5ua到最大值ibias_max=5ua的预定义范围内。举例来说,其它功能电路组件3503也可具有用户所选择参数。来自ui 3501的参数可用于生成示意图,所述示意图可包含ibias示意图3510及针对其它功能电路组件3503的子电路示意图3511。另外,ibias示意图3510可包含针对rtotal的电阻器示意图3514。举例来说,电阻器示意图3514可包括各自包含电阻器分段的串联及/或并联配置的多个符号,如图33中所图解说明。经组合示意图可近似产生通过生成器软件而计算的rtotal值(例如,在电路的正常功能可接受的误差程度内)。
[0439]
以下实例图解说明通过生成器软件响应于接收到偏置电流生成器功能电路组件3502的参数而进行的一个电阻器计算。如果用户输入介于ibias_min与ibias_max之间的ibias值,那么可如下基于电路模型而计算rbias:
[0440]
ibias=vref/rbias

rbias=vref/ibias。
[0441]
其中vref可为已知参数,所述已知参数(举例来说)是作为功能电路组件3502或3503的部分而被输入、基于另一些参数而被计算或者通过软件基于其它参数(例如,vdd)而被自动设定。因此,针对rbias的以上方程式是实例性电路模型,所述实例性电路模型可用于基于作为参数接收的ibias值而确定rbias。因此,举例来说,用户可输入(例如,连续范围的值中的)一个值作为参数,且生成器软件可将所述值转换成将被实施为示意图、布局或此两者的电阻器值rtotal。如上文所描述,生成器软件可存取电阻器分段的预定义物理尺寸且将rbias转换成具有已知分段电阻rseg、长度lseg及宽度wseg的电阻器的串联及/或并联组合。举例来说,针对rbias的示意图可如上文所描述而生成并耦合到针对晶体管3513及放大器3512的示意图以产生ibias示意图3510。尽管此处在偏置电流生成器电路的上下文中
图解说明计算电阻器值,但将理解,可由模拟/混合信号电路设计领域的技术人员针对宽广范围的其它模拟或混合信号电路而计算电阻器值。
[0442]
图36图解说明根据一实施例的依据参数确定的电阻器的实例性布局。一或多个功能电路组件3503及对应参数可产生布局3601及3602。举例来说,ibias 3502及针对ibias输入的参数(例如,0.5ua到5.0ua)可产生对应于子电路3512及3513的布局3603,以及针对所计算rbias值的电阻器布局分段3604的布局。如上文所描述,每一电阻器布局分段3604a可具有相同电阻器分段值rseg、长度lseg及宽度wseg(举例来说,其组合以形成rbias)。因此,当由用户针对特定电路参数而输入的值跨越连续范围的值改变时,所计算电阻器值改变,且用以产生所计算电阻器值的电阻器布局分段的所得数目改变。举例来说,此些实例性实施例可有利地允许生成器软件接收跨越连续范围的值的参数(例如,从用户)且自动生成模拟电路示意图及/或模拟电路布局以实施所规定电路行为。
[0443]
电阻分压器的自动生成
[0444]
本公开的一些实施例的特征及优点可包含自动生成电阻分压器。图37a到c图解说明根据一实施例生成电阻分压器。举例来说,在各种实施例中,电阻分压器功能电路组件3701可具有对应于总电阻、分接头数目、启用/停用功能等等的参数。可在生成器软件3703中接收经配置电阻分压器功能电路组件的参数值3702,所述生成器软件可包括电阻分压器生成器组件3705。参数可规定待生成的电阻分压器。电阻分压器生成器组件3705可确定与电阻分压器的一或多个输出之间的电阻器对应的多个电阻器值。
[0445]
电阻分压器生成器3705可生成具有不同数目个输出分接头及不同总电阻的宽广范围的电阻分压器。在图37b中图解说明实例性电阻分压器。电阻分压器3707包含两个电阻器及一个输出(或分接头)。电阻分压器3707可在输入端子(顶部)上接收第一参考电压。顶部电阻器3710包含耦合于输入上的第一参考电压与输出分接头之间的端子,且底部电阻器3711包含耦合于输出分接头与底部端子上的第二参考电压(例如,接地)之间的端子。
[0446]
电阻分压器3708包含三(3)个电阻器及两个输出分接头。顶部电阻器3712具有耦合到顶部输入以接收参考电压的端子及耦合到第一分接头(分接头1)的第二端子。中间电阻器3713包含耦合到分接头1的第一端子及耦合到第二输出分接头(分接头0)的第二端子。底部电阻器3714具有耦合到分接头0的第一端子及耦合到底部端子(例如,以接收第二参考电压)的第二端子。
[0447]
电阻分压器3709包含n个输出分接头(其中n是整数)及n 1个电阻器,包含顶部电阻器3715、底部电阻器3716以及多个中间电阻器及分接头(未展示)。
[0448]
图37c图解说明由电阻分压器生成器3705生成的电阻分压器中的每一电阻器可实施为多个串联及/或并联电阻器分段,如上文所描述。举例来说,电阻分压器生成器3705可确定多个电阻器分段以近似产生图37b中所图解说明的多个电阻器值中的每一者。图37b中的每一电阻器值可实施为串联的第一数目个电阻器分段及/或并联的第二数目个电阻器分段。电阻分压器3720展示电阻分压器3707的一个实例性实施方案。在此实例中,顶部电阻器3710实施为经串联及/或并联配置以产生电阻器3710的电阻值的多个电阻器分段3723。类似地,电阻器3711实施为经串联及/或并联配置以产生电阻器3711的电阻值的多个电阻器分段3724。
[0449]
在一些实施例中,电阻分压器生成器软件组件3705可基于分接头的数目及每一分
接头处的电压而确定待生成的电阻分压器的总电阻(例如,串联的电阻器的和)及每一电阻器的值(例如,基于参数中所规定的输出分接头电压)。举例来说,如果将输出分接头规定为输入电压的百分比(例如,分接头1=10%、分接头2=50%、分接头3=70%等

),那么可如下确定n分接头电阻分压器3709中的电阻器的值。以底部电阻器3716开始且使电阻分压器跨越n 1个电阻器而向上移动到顶部电阻器3715:
[0450]
rbottom=r1=rtotal*tap1/100
[0451]
r2=rtotal*(tap2-tap1)/100
[0452]
ri=rtotal*(tap_i

tap_i-1)/100
[0453]
rtop=r_n 1*(1

tapn)/100。
[0454]
因此,在以上实例中,基于分接头的数目以及跨越输入电压、多个分接头电压及底部电压中的两者的电压差而确定电阻器值。可将所述电压差表达为实际电压或表达为输入电压的百分比,如以上实例中所图解说明。
[0455]
在一个实施例中,举例来说,可将电阻分压器中的每一电阻器值作为输入发送到电阻器生成器软件组件3704以确定所述分压器中的每一电阻器的多个电阻器分段的值。因此,电阻分压器中的每一电阻器可实施为多个电阻器分段。
[0456]
一旦确定电阻器分段,便可生成电路规范。生成电路规范以配置电阻器分段中的每一者来形成电阻器值。针对电阻分压器3707,举例来说,电路规范可串联及/或并联配置第一多个电阻器分段以形成顶部电阻器3723,且电路规范可串联及/或并联配置第二多个电阻器分段以形成底部电阻器3724。如上文所提及,举例来说,电路规范可为网表。针对电阻分压器3708,电路规范可串联及/或并联配置第一多个电阻器分段以形成顶部电阻器3725、串联及/或并联配置第二多个电阻器分段以形成底部电阻器3727,且串联及/或并联配置第三多个电阻器分段以形成中间电阻器3726(例如,其中参数规定两个输出分接头)。针对电阻分压器3709,电路规范可串联及/或并联配置第一多个电阻器分段以形成顶部电阻器3728、串联及/或并联配置第二多个电阻器分段以形成底部电阻器3729,且串联及/或并联配置一或多个额外多个电阻器分段以形成一或多个中间电阻器(例如,其中参数规定两个以上输出分接头)。
[0457]
针对电阻分压器的电路规范可用于生成晶体管层级示意图,所述晶体管层级示意图包括经配置以产生所述电阻分压器的电阻器分段。如上文所提及,可针对电阻分压器的电路规范中所规定的每一电阻器分段而生成晶体管层级示意图符号,且可将电阻器插入到符号中并配置以电阻器值及其它属性(例如,runit、lseg、wseg)。电路规范可规定电阻器分段在示意图中如何连接在一起以形成电阻分压器。在图37c中展示电阻分压器示意图的实例,其中电阻分压器3720包含一个输出分接头,电阻分压器3721包含2个输出分接头,且电阻分压器3722包含n个输出分接头。
[0458]
图38a图解说明根据另一实施例的生成包含子电路的电阻分压器的方法。在一些实施例中,在电阻分压器中包含有源电路系统可为有利的。举例来说,针对电阻分压器功能电路组件3801的参数3802可包含用以规定启用功能(例如,启用=是)的参数。因此,生成器软件3803中的电阻分压器软件组件3805可生成电路规范,所述电路规范规定一或多个子电路示意图3807到3808作为电阻分压器的部分以产生电阻分压器示意图3810。举例来说,所规定子电路示意图可经配置以接收要启用或停用电阻分压器的输入。将理解,可使用其它
子电路示意图来将其它功能性并入到电阻分压器中。
[0459]
在一个实施例中,子电路示意图可包括用于启用及停用电阻分压器的开关。图38b图解说明具有不同开关配置的电阻分压器的各种实施例。举例来说,在3820中所展示的一个实施例中,开关3826耦合于电阻分压器的输入与顶部电阻器分段的一或多个端子之间,所述顶部电阻器分段用于产生电阻分压器的电阻r1 3824。由于分压器3820中的每一电阻3824

3825包括可为并联的多个电阻器分段,因此开关可耦合到一个分段的端子或并联的多个分段的端子。开关3826可包含用以启用或停用电阻分压器的启用输入(en)。在此实例中,开关为高电压开关(hv sw),且可包含晶体管,所述晶体管可耐受分压器的顶部处的高输入电压。在分压器3821中,开关3829耦合于电阻分压器的参考输入(例如,接地)与底部电阻器分段的一或多个端子之间,所述底部电阻器分段用于产生电阻分压器的电阻rn 1 3828。在此情形中,开关3829可为不需要耐受施加到分压器的输入的全电压的低电压开关。在分压器3822中,开关3832可耦合于电阻分压器的输出分接头中的一者(此处,分接头1)与电阻分压器的中间电阻器分段(例如,rn 3830中的电阻器分段)的一或多个端子之间。
[0460]
电容器的自动生成
[0461]
本公开的特征及优点包含自动生成电容器。在一些实施例中,举例来说,可跨越一定范围的值而生成电容器以供用于晶体管层级电路及/或布局中。
[0462]
图39图解说明根据一实施例的用于自动生成电容器的计算机实施的系统。举例来说,本公开的特征及优点可基于由系统接收的所规定或所计算电容器值而自动生成包含电容器的示意图、布局或此两者。举例来说,根据本公开的系统可接收电容器值且自动生成电容器的示意图、电容器的布局或此两者。在此实例中,对应于电容器3910的电容器值ctotal将由生成器软件3902的电容器规范生成器组件3912生成。在各种实施例中,一或多个电容器值可(举例来说)由用户规定,且由生成器软件接收作为输入参数。在其它实施例中,举例来说,可基于由生成器软件接收的其它参数而计算一或多个电容器值,如下文更详细地描述。
[0463]
一些实施例的特征及优点包含将电容器值转换成分段,例如待生成的串联单位电容器分段、待生成的并联单位电容器分段或者串联单位电容器与并联单位电容器的一或多个组合。举例来说,电容器规范生成器3912可确定将被串联配置的电容器分段的第一数目s及/或将被并联配置的电容器分段的第二数目p,以近似产生电阻器值ctotal。举例来说,s及p可为大于或等于一(1)的整数。替代地,可将s及/或p表示为n。在一个实施例中,举例来说,单位电容器的电容可为相同的。举例来说,一旦确定串联电容器的数目s及/或并联电容器的数目p,便可生成电路规范3913(例如,针对ctotal)以产生示意图、布局或此两者。在此实例中,电容器规范生成器3912可生成电路规范3913以串联配置第一数目s个电容器分段,或替代地,并联配置第二数目p个电容器分段(或此两者的组合)。尽管此处将一个串联电容器组合及一个并联电容器组合图解说明为用于产生ctotal的替代方案,但将理解,可(举例来说)在容许容差内使用串联与并联电容器的组合来获得ctotal。
[0464]
在各种实施例中,电路规范3913可规定多个组件的配置。在此实例中,组件对应于单位电容器(例如,如由电容器分段3914到3918所图解说明),且电路规范3913可规定电容器分段之间的连接。举例来说,电路规范可为网表(例如上文所提及的verilog.v文件),其中组件之间的连接是基于网表中的共同所规定节点。
[0465]
本公开的实例性实施例可进一步接收电容器分段3911的一或多个预定义物理尺寸。举例来说,可设定预定义物理尺寸以有利地优化不同电容器值的布局,如下文进一步图解说明。举例来说,预定义物理尺寸可为沿着电容器分段的一个尺寸的预定义最大长度(例如,长度lseg)或沿着电容器分段的另一尺寸的预定义最大长度(例如,宽度wseg)。预定义物理尺寸可与待生成的电容器值相关联,使得待生成的特定电容器可存取预定义物理尺寸。因此,举例来说,当接收到特定电路或项目的特定电容器值ctotal时,可从已知存储位置(例如,从存储器、文件或数据库)获得特定电容器的相关联参数,例如lseg或wseg。
[0466]
特定实施例的特征及优点可进一步包含基于电路规范而针对电容器值生成示意图。在此实例中,将电路规范3913从生成器软件系统3902发送到示意图及布局生成器软件系统3903。举例来说,示意图及布局生成器软件系统3903可为如上文所提及的电子设计自动化(eda)软件系统。软件系统3903可包含用以从电路规范3913生成电容器示意图3921的示意图生成器组件3920。示意图生成器组件3920可(举例来说)接收网表,且(举例来说)将网表转换为示意图符号及示意图符号之间的连接。然而,一些示意图生成器可不能够基于网表而将组件(例如电容器)的属性设定为特定规定值。因此,在一个实例性实施例中,示意图导入组件3922可(举例来说)分析电路规范3913或所生成示意图3921,且设定所生成示意图中的组件(例如电容器)的属性。
[0467]
在一个实例性实施例中,电路规范3913可规定对应于多个单位电容器(例如,串联或并联或者既串联又并联配置)的组件,且示意图生成器3920可生成不具有针对此些组件的单位电容器的示意图符号(例如,如果网表中的组件名称不存在于软件系统3903的库中,那么所生成符号可为空的)。因此,最初,所生成示意图可包含多个空符号,其中符号的引脚如在所接收网表中所规定而耦合在一起。示意图导入组件3922可识别空组件且执行用于将电容器插入到符号中的算法。举例来说,示意图导入组件3922可将电容器自动插入于空示意图符号中的每一者中且(举例来说)连接经插入电容器的端子与示意图符号的引脚。
[0468]
在一些实施例中,示意图导入组件3922可包含用于设定电容器的属性的代码。举例来说,电容器的属性可包含电容器的物理尺寸,例如长度及宽度。属性也可包含电容器类型(例如,金属-绝缘体-金属,“mim”)。一或多个电容器的属性可以各种方式在软件组件之间传递。在一个实施例中,规范3913可包含用于设定属性的信息。举例来说,如上文所提及,可将属性编码于电路规范3913中的组件的标识符中(例如,编码于网表中的电容器的名称中)。因此,当网表中的组件的符号用于创建符号时,所述符号可包含标识符。举例来说,标识符可由示意图导入组件3922读取,且用于将电容器放置于空符号内。在其它实施例中,举例来说,属性可存储于预定义位置中且由示意图导入组件3922存取。下文出于说明性目的而呈现用于传递电容器的属性的更详细实例性技术。
[0469]
因此,示意图生成器3920可输出电容器示意图3921。电容器示意图3921可包含具有引脚的多个符号。每一符号内可嵌入有电容器分段。如上文所提及,符号以一或多个串联及/或并联配置耦合在一起。举例来说,各自具有内部电容器分段的经组合符号形成所要的总电容器值ctotal。在一些实例性实施例中,用于形成一个总电容器值ctotal的电容器分段可各自具有相同长度、宽度及电容器类型。
[0470]
本公开的一些实施例的特征及优点可包含从电容器示意图自动生成电容器布局。举例来说,可通过布局生成器3923而将电容器示意图3921转换成电容器布局3924。举例来
说,布局生成器3923可将示意图的符号内的电容器转换成多边形,其中每一多边形具有针对对应电容器分段而规定的尺寸。在一个实施例中,可执行布局放置指令以定位布局中的每一多边形,如下文更详细地描述。因此,可将示意图中形成总电容器值ctotal的电容器分段自动转换为电容器布局3924。
[0471]
图40a图解说明根据一实施例的生成电容器的方法。在4001处,接收待生成的电容器的电容值。电容值可(举例来说)作为由用户在用户界面中定义的输入参数而接收,或可(举例来说)从软件模块接收电容值,所述软件模块基于待生成的电路的参数而确定电容值。在4002处,系统确定具有单位电容的单位电容器的数目n,所述单位电容器将经组合以形成总电容。替代地,可将数目n表示为并联配置的p个(并联)电容器分段或串联配置的s个(串联)电容器分段(或表示为此两者的组合)。在4003处,生成晶体管层级示意图,所述晶体管层级示意图包括具有单位电容的n个单位电容器示意图。n个单位电容器示意图经配置以产生待生成的电容器的总电容。在4004处,生成布局,所述布局包括经配置以产生所述电容器的n个电容器布局元件。
[0472]
图40b图解说明根据一实施例的用于确定电容器尺寸的一种实例性技术。在4010处,接收电容器值(例如,ctotal=25pf)。在一些实施例中,生成器软件中的电容器生成器软件组件可检索预定义电容参数。举例来说,可存储及检索最大电容及最小电容以供用于生成电容器。在一些实施例中,举例来说,不同电容器类型可具有不同预定义最大电容及/或最小电容,且系统可基于关于待生成的电路或电容器的其它信息而选择预定义电容参数集合(例如,基于所规定电容器类型或被自动选择以供用于特定模拟电路中的电容器类型而进行选择)。在此实例中,在4011处,比较所接收电容ctotal与预定义最大电容cmax。如果ctotal》cmax,那么系统可确定将并联配置的数目n(替代地表示为p)个单位电容器cunit,如在4013处所展示。cunit可为电容值,使得n个并联单位电容器组合以形成ctotal。因此,可有利地使用多个单位电容器cunit,使得每一电容器的大小小于预定义最大电容。如果ctotal《cmax,那么在4012处,比较所接收电容ctotal与预定义最小电容cmin。如果ctotal《cmin,那么系统可确定将串联配置的数目n(替代地表示为s)个单位电容器cunit,如在4014处所展示。在此情形中,cunit可为电容值,使得n个串联单位电容器组合以形成ctotal。因此,可有利地使用多个单位电容器,使得每一电容器的大小大于预定义最大电容。在此实例中,如果cmin《ctotal《cmax,那么可使用单个单位电容器。在一些实施例中,可使用并联与串联电容器的组合来获得电容器值。
[0473]
在4015处,系统可确定单位电容器cunit的物理尺寸。举例来说,在一个实施例中,系统可存储及检索沿着第一尺寸的预定义最大长度。在各种实施例中,系统可将对应于n个单位电容器的第一尺寸的第一长度配置为小于或等于沿着第一尺寸的预定义最大长度。此外,系统可至少基于单位电容cunit及第一长度而确定对应于n个单位电容器的第二尺寸的第二长度。在一个实例性实施例中,电路示意图中的单位电容器cunit可具有长度属性lseg及宽度属性wseg。因此,沿着第一尺寸的第一长度可对应于长度属性lseg,且沿着第二尺寸的第二长度可对应于宽度属性wseg。因此,在一个实施例中,可将lseg设定为小于或等于最大长度lmax的值,且系统可确定wseg以获得单位电容器值cunit。举例来说,在一个实施例中,最初可将lseg设定为预定义最大长度lmax。可如下确定wseg:
[0474]
wseg=cunit/[lmax*(电容/um2)]
[0475]
一些实施例的特征及优点可包含设定电容器的纵横比的能力。举例来说,可配置(或可编程)纵横比可有利于优化布局及减小电路面积。在一个实施例中,沿着单位电容器的每一尺寸的长度的比率可经配置以产生预定义纵横比(例如,wseg/lseg)。举例来说,一旦在4015处确定wseg及lseg,系统便可比较所计算wseg/lseg的纵横比与预定义纵横比,所述预定义纵横比可(举例来说)在代码中定义或从存储器检索。如果在4016处纵横比相匹配(例如,在所规定容差内),那么在4017处,系统生成针对单位电容器的网表规范。然而,如果在4016处纵横比不相匹配,那么在4018处,系统可调整尺寸中的一者(例如,wseg或lseg)。举例来说,如果将初始lseg设定为lmax,那么可逐步地减小lseg以产生经调整wseg直到纵横比满足预定纵横比为止(举例来说)。最后,在4017处,可将规定电容器的信息编码于标识符(例如名称)中。举例来说,在串联或并联配置电容器的电路规范网表中的n个电容器组件的名称可为cap_《cap_type》_《lseg》_《wseg》。举例来说,每一电容器符号可放置于命名为cap_《cap_type》_《lseg》_《wseg》_n的复合电容器的符号中,其中“cap_type”是电容器类型(例如,“mim”),lseg是长度属性,wseg是宽度属性,且n是用于创建ctotal的电容器的数目。在各种实施例中,举例来说,可如上文结合图31及32所描述而生成晶体管层级示意图中的组件(包含电容器)。
[0476]
用于生成电容器的实例性实施例
[0477]
图41a到c图解说明根据一实施例的实例性电容器示意图生成。图41a图解说明包括并联耦合在一起的p个符号4101a到4101p的电容器示意图。举例来说,符号可经由引脚耦合在一起。图41b图解说明包括串联耦合在一起的s个符号4102a到4102s的电容器示意图。图41c图解说明包含符号引脚4121及4122的实例性符号4120。符号4120包括具有第一端子4124及第二端子4125的晶体管层级单位电容器4123cunit。如上文所提及,在一些实施例中,符号4120可生成为不具有单位电容器分段(例如,作为空符号)。单位电容器分段cunit可已通过软件而被插入于符号4120中。举例来说,软件可进一步将电容器端子4124连接到符号引脚4121且将电容器端子4125连接到符号引脚4122。在一个实施例中,举例来说,软件可包括在电子设计自动化(eda)软件系统中执行的脚本(例如,中的skill脚本),所述脚本(举例来说)检测由响应于接收到网表而生成的示意图产生的空符号实例,且自动插入电容器。可进一步使用如上文所描述而生成的值来设定经插入电容器的属性。
[0478]
符号4101a到4101p或4102a到4102s中的电容器分段的经组合电容可产生待生成的总电容器值ctotal。如上文所提及,在一些实施例中,单位电容器可(举例来说)具有相同电容器值cunit、相同预定义长度lseg及相同预定义宽度wseg。基于预定义参数(例如,cmin、cmax、lmax或经编程纵横比中的一或多者)而计算单位电容器的长度及宽度可有利地允许高效自动布局。
[0479]
图42图解说明根据各种实施例的实例性电容器布局。实例性布局4210到4214图解说明可如何响应于ctotal(待生成的电容器)的不同值而自动生成电容器电阻器值。举例来说,生成器4201可接收多个电容器值ctotal1到ctotal5且生成包括一或多个电容器布局分段(例如,4210或4220/4221)的布局4210到4214,所述一或多个电容器布局分段具有沿着x轴及y轴的等于lseg及wseg的属性的长度。举例来说,每一电容器布局中的电容器布局分段可对应于多个多边形。每一电容器布局分段集合的多边形可具有不同长度及宽度。举例来说,可从电容器示意图(例如图41a中的示意图4110)生成电容器布局分段。因此,在此实例
中,符号中的电容器分段生成针对电容器布局4210到4214的对应多边形。在其它实施例中,举例来说,示意图中的单个电容器可被转换成多个多边形且如本文中所描述而自动放置是可能的。在此实例中,电容器布局分段中的每一者可在一(1)维或二(2)维阵列中(例如,沿着长度或宽度并排地)布局且串联及/或并联耦合在一起(例如,使用金属或多晶硅)(例如,如图41a或41b中所展示的示意图中所图解说明),因此总电容是ctotal。举例来说,电容器布局分段可布置于一行中直到最大距离,且然后可开始新行。或者举例来说,电容器布局分段可以n
×
m阵列进行配置。电容器布局分段可放置于其它电路系统的部分上方。电容器布局分段可使用金属化层来实施(例如,使用金属3(m3)及介于m3与m4之间的mim层的mim电容器),如所属领域的技术人员已知。
[0480]
如布局4210到4214中所图解说明,具有不同大小的不同数目个电容器布局分段可用于产生不同ctotal值。一些ctotal值可产生较少电容器布局分段,而其它ctotal值可产生较多电容器布局分段。有利地,可通过并排地放置电阻器布局分段(例如,沿着其长度)且根据串联及/或并联组合的不同数目将所述电阻器布局分段耦合在一起而使跨越不同设计针对不同ctotal值所使用的电容器布局分段的数目变化,如所展示。举例来说,如下文更详细地描述,布局放置指令可在针对电容器布局分段而保留的区域(例如,在使用金属化物的子电路的区域上方)中沿着电容器布局分段的长度平行地放置所述电容器布局分段。
[0481]
图43图解说明根据一实施例生成用户界面中所规定的电容器。在此实例中,总电容是作为对应于电容器功能电路组件的参数而接收。举例来说,用户可在设计用户界面(ui)4301(也称为前端)中设计电路。举例来说,设计ui 4301可执行电路的高层级行为模拟,而非晶体管层级模拟。在此实例中,用户已选择第一功能电路组件4302(例如,比较器或放大器)及电容器功能电路组件4303。在设计界面中,组件4302与4303耦合在一起。举例来说,用户可在用户界面4304中规定电容器组件4303的电容器值,且输入ctotal的所要值。在此实例中,ctotal可处于从最小可选择ui值cmin=100毫微微法拉(femtofarad)(ff)到最大可选择ui值cmax=50微微法拉(picofarad)(pf)的预定义范围内。举例来说,功能电路组件4302也可具有用户所选择参数,如上文所描述。来自ui 4301的参数可用于生成示意图4310。所述示意图可包含基于针对功能电路组件4302所接收的参数而选择的一或多个子电路4311。另外,示意图可包含ctotal的电容器示意图4312。举例来说,电容器示意图4312可包括各自包含单位电容器(cunit)的串联及/或并联配置的多个符号(例如符号4314)。经组合示意图可近似产生由用户输入的ctotal值(例如,在电路的正常功能可接受的误差程度内)。
[0482]
图43进一步图解说明用户界面中所规定的电容器的实例性布局。在此实例中,功能电路组件4302的参数用于生成子电路布局4320。举例来说,电容器组件4312(例如,ctotal)的用户输入值用于生成并放置多个电容器布局分段(例如,电容器布局分段4321a),每一电容器布局分段具有相同单位电容cunit、分段长度lseg及分段宽度wseg,从而以组合形式形成ctotal值4312。当ctotal的用户输入值改变时,用于产生ctotal的电容器布局分段4321的数目及此些分段的尺寸(wseg、lseg)改变。在此实例中,电容器布局分段间隔开一偏移而以二维阵列进行配置且配置于子电路布局4320上方(例如,针对电容器板使用不同金属化层)。
[0483]
在一些实施例中,可基于规定待生成的电路的信息而产生总电容。举例来说,图44
图解说明根据一实施例基于用户界面中所规定的电路参数而生成电容器。可基于针对待生成的电路的预定义电路模型而产生总电容。举例来说,一或多个电容器值ctotal可作为通过生成器软件的计算的结果而接收。在此实例中,用户可在设计用户界面(ui)4401中设计电路,所述电路包含功能电路组件4402(例如,此处,延迟电路)以及一或多个其它功能电路组件(fcc)4403及4404。在设计界面中,组件4402、4403与4404耦合在一起(例如,延迟电路从fcc 4403接收信号且将信号输出到fcc 4404)。用户可规定每一功能电路组件的参数。组件4402的参数可用于计算一或多个电容器值。在此实例中,举例来说,用户可在用户界面4405中输入延迟电路4402的所要时间延迟。举例来说,用户可在文本字段中输入时间延迟的所要值。在此实例中,时间延迟可在从最小值delay_min=0.5us到最大值delay_max=200us的预定义范围内。举例来说,其它功能电路组件4403/4404也可具有用户所选择参数。来自ui 4401的参数可用于生成晶体管层级示意图,所述晶体管层级示意图可包含延迟示意图4410以及分别针对其它功能电路组件4403及4404的子电路示意图4411及4412。另外,延迟示意图4410可包含ctotal的电容器示意图4413、偏置电流示意图(ibias)4414及针对其它电路系统(未展示)的示意图。此处将电容器4413及ibias 4414图解说明为符号,但将理解,针对ibias的晶体管层级示意图将包含晶体管层级组件(例如,n型或p型晶体管、电阻器或电容器)的配置。举例来说,电容器示意图4413可包括各自包含单位电容器的串联及/或并联配置的多个符号(如图41a或41b中所图解说明)。经组合示意图可近似产生由生成器软件计算的ctotal值(例如,在电路的正常功能可接受的误差程度内)。
[0484]
以下实例图解说明通过生成器软件响应于接收到延迟电路功能电路组件4402的参数而进行的一个电容器计算。如果用户输入介于delay_min与delay_max之间的延迟值,那么可计算ctotal(例如,使用针对延迟电路的电路模型)。在此实例中,延迟可基于由ibias生成的去往ctotal中的电压斜坡信号的斜率。在4406处图解说明此电路的波形。去往ctotal中的电流ibias可在节点a处产生电压斜率。举例来说,当接收到输入in时,电压斜率可开始。当电压斜率达到特定值时,触发输出(其它电路系统未展示)。针对较短延迟,可在节点a处使用较陡电压斜率。针对较长延迟,电压斜率可为较低的。通过以下方程式而给出电压斜率:
[0485]
电压斜率=dv/dt=ibias/ctotal,或
[0486]
ctotal=(ibias*延迟)/vth
[0487]
其中vth可为节点a处的阈值电压,(举例来说)在所述阈值电压下触发输出。因此,针对ctotal的以上方程式是可用于基于作为参数接收的延迟值而确定ctotal的实例性电路模型。因此,举例来说,用户可输入(例如,连续范围的值中的)一个值作为参数,且生成器软件可将所述值转换成将被实施为示意图、布局或此两者的电容器值ctotal。如上文所描述,生成器软件可存取单位电容器的预定义物理尺寸且将ctotal转换成电容器的串联及/或并联组合。举例来说,针对ctotal的示意图可如上文所描述而生成并耦合到针对ibias 4414的示意图(及其它延迟电路示意图)以产生延迟电路示意图4410。尽管此处在延迟电路的上下文中图解说明计算电容器值,但将理解,可由模拟/混合信号电路设计领域的技术人员针对宽广范围的其它模拟或混合信号电路而计算电容器值。
[0488]
图44进一步图解说明根据一实施例的依据参数确定的电容器的实例性布局。一或多个功能电路组件4402到4404及对应参数可产生布局4420到4422。举例来说,延迟件4402
及针对延迟件输入的参数(例如,0.5us到200us)可产生对应于ibias 4414的子电路及其它延迟子电路(未展示)的布局4420,以及针对所计算ctotal值的电容器布局分段4423的布局。如上文所描述,每一电容器布局分段(例如,电容器布局分段4423a)可具有相同单位电容器值cunit、长度lseg及宽度wseg(举例来说,其组合以形成ctotal)。因此,当由用户针对特定电路参数而输入的值跨越连续范围的值改变时,所计算电容器值改变,且用以产生所计算电容器值的电容器布局分段的所得数目改变。举例来说,此些实例性实施例可有利地允许生成器软件接收跨越连续范围的值的参数(例如,从用户)且自动生成模拟电路示意图及/或模拟电路布局以实施所规定电路行为。
[0489]
自动生成晶体管
[0490]
本公开的各种实施例的特征及优点可进一步包含自动生成晶体管,例如场效应晶体管(fet)。
[0491]
图45图解说明根据一实施例的晶体管(例如,场效应晶体管(fet))的自动生成。在此实例中,生成器软件4504可接收规定待生成的晶体管的信息作为参数4502。举例来说,待生成的晶体管可为信号fet或功率fet。功率fet是指配置以通常以较大电流的形式递送功率的晶体管,而信号fet是经配置以在电路的各种节点之间耦合信号的晶体管。在一些实施例中,可从用户配置的fet功能电路组件4501生成参数,其中用户输入针对fet期望的特征且此些特征体现于参数4502中并被发送到生成器软件4504。举例来说,生成器软件4504可自动生成具有不同掺杂剂类型(例如,n型或p型)、最大电压(例如,最大漏极到源极电压vds_max,或最大栅极到源极电压vgs_max)的晶体管。举例来说,本文中所描述的各种实施例可自动生成具有复制装置及/或开尔文连接的晶体管。基于规定待生成的晶体管的所接收信息,生成器软件4504可产生电路规范4505。举例来说,电路规范4505可为网表,其规定特定晶体管(例如,n型、p型、vds_max、vgs_max)中的一或多者,且可(举例来说)进一步规定额外连接及元件以形成复制晶体管或开尔文连接。
[0492]
电路规范4505可用于生成晶体管示意图。如上文所提及,在一些实施例中,电路规范4505可由电子设计自动化(eda)软件接收且被转换成晶体管层级示意图,可(举例来说)在装置层级处模拟所述晶体管层级示意图。在此实例中,n种不同参数值组合(例如,params_1、

、params_n,其中n是整数)可产生n种不同fet晶体管示意图4530到4532。可将晶体管示意图4530到4532转换为fet布局4540到4542。
[0493]
图46图解说明根据一实施例的用于自动生成晶体管的流程图。在4601处,接收规定待生成的晶体管的信息(例如,通过生成器软件104)。在4602处,可依据信息确定晶体管属性。属性可包含n型或p型装置、最大电压、复制装置或者开尔文连接,如上文所描述。在一些实施例中,用户可规定导通电阻(例如,漏极到源极导通电阻,“rds_on”或仅“ron”)且其它属性可被自动确定,例如宽度除以长度的比率(w/l)、指状部数目及装置单元数目,如下文更详细地描述。在一些实施例中,举例来说,特定晶体管配置的已知布局参数可被检索且用于确定待生成的晶体管的一或多个属性(例如,栅极宽度或纵横比)。在4603处,生成电路规范。电路规范可包含经配置以产生待生成的所规定晶体管的一或多个装置。在4604处,从电路规范生成晶体管层级示意图,且在4605处,生成针对所规定晶体管的布局。
[0494]
图47a到47e图解说明根据各种实施例的通过不同参数而生成的实例性晶体管。在图47a中,第一参数集合(params_1)产生电路规范,所述电路规范包括耦合到节点a、b及c的
一个fet装置m1。举例来说,装置m1可进一步与n型6伏特装置相关联。举例来说,所接收参数可包含rds_on,所述rds_on可用于确定第一栅极宽度w=w1、栅极长度l=l1、特定指状部数目f=f1及乘数属性(m)(此处,m=1),其中(举例来说)w1及l1是值(例如,w1=2.8um且l1=200.0nm)且f1是整数(例如,f1=2)。举例来说,乘数属性(m)是可用于规定装置单元数目的一种技术。一般来说,在以下实例中,下文在图47b到47e及48a到48b中的实例性晶体管中的w《i》、l《i》及f《i》表示分别针对宽度、长度及指状部的不同值。在此实例中,电路规范参数用于生成针对nmos晶体管4701的晶体管层级示意图。电路规范可用于选择6v n型晶体管4701(例如,从晶体管库),所述6v n型晶体管然后(举例来说)配置有包含栅极宽度w=w1、栅极长度l=l1、指状部数目f=f1及乘数属性m=1的属性。晶体管4701可放置于示意图中且耦合到其它电路系统,如本文中所描述。
[0495]
图47b图解说明第二参数集合(params_2),其产生电路规范,所述电路规范包括耦合到节点a、b及c的一个fet装置m1。举例来说,装置m1也可与n型vds_max=6伏特装置相关联。举例来说,所接收参数可包含不同rds_on,所述不同rds_on可用于确定第二栅极宽度w=w2、栅极长度l=l1(例如,其可为相同最小栅极长度)、相同指状部数目f=f1及乘数属性m=1。电路规范可用于选择6v n型晶体管4702,所述6v n型晶体管然后配置有若干属性且放置于晶体管层级示意图中,如图47b中所展示且上文所描述。
[0496]
图47c图解说明第三参数集合(params_3),其产生电路规范,所述电路规范包括耦合到节点a、b及c的一个fet装置m1。举例来说,装置m1也可与n型vds_max=6伏特装置相关联。举例来说,所接收参数可包含rds_on的又一值,所述rds_on的又一值可用于确定第三栅极宽度w=w3、相同栅极长度l=l1、不同指状部数目f=f2及乘数属性m=1。电路规范可用于选择6v n型晶体管4703,所述6v n型晶体管然后配置有若干属性且放置于晶体管层级示意图中,如图47c中所展示且上文所描述。
[0497]
图47d图解说明第四参数集合(params_4),其产生针对与n型vds_max=6伏特装置相关联的装置m4的规范。举例来说,所接收参数可包含rds_on的又一值,所述rds_on的又一值可用于确定第四栅极宽度w=w4、相同栅极长度l=l1、相同指状部数目f=f2(与装置m3一样)及乘数属性m=1。电路规范可用于选择6v n型晶体管4704,所述6v n型晶体管然后配置有若干属性且放置于晶体管层级示意图中,如图47d中所展示且上文所描述。
[0498]
从以上实例可见,可基于不同参数值而生成具有宽度与指状部的一定范围的组合的宽广范围的装置。
[0499]
图47e图解说明从第五参数值集合(params_5a)生成的另一实例性晶体管。在具有较大栅极宽度的一些实施例中,可期望生成多个装置单元。在一个实例性实施例中,params_5a可产生针对n型mos晶体管的电路规范,所述n型mos晶体管具有vds_max=6伏特、栅极宽度w=w4(例如,晶体管单位栅极宽度wunit)、栅极长度l=l1、指状部数目f=f3及乘数属性(m=p1,其中p1是规定装置单元数目的大于1的整数值)。当将电路规范转换为晶体管示意图时,结果是具有宽度w4及并联配置的指状部数目f3以及乘数m=p1的晶体管4710。漏极耦合到节点a、栅极耦合到节点b且源极耦合到节点c。
[0500]
图47f图解说明另一参数集合(params_5b),其可产生针对p型mos晶体管的电路规范,所述p型mos晶体管具有栅极宽度w1、长度l1、指状部数目f2及乘数m=p1。电路规范用于生成针对pmos晶体管4706的晶体管层级示意图,所述pmos晶体管具有如电路规范中所规定
的属性,如图47f中所展示。
[0501]
图48a图解说明从另一参数值集合(例如,params_6)生成的另一实例性晶体管。图48a图解说明用于生成多个装置单元的替代技术。举例来说,替代在单个晶体管的属性中设定m》1以获得多个装置单元,将基于param_6而生成的晶体管可被实施为并联的p(整数)个晶体管。举例来说,电路规范可规定耦合到节点a、b及c的p个mosfet晶体管m1、m2、

、mp。晶体管可为n型、vds_max=6v、单位栅极宽度w=w6、栅极长度l=l1且指状部数目f=f3。在此实例中,将每一晶体管的乘数m属性设定为1。当将电路规范转换为晶体管层级示意图时,选择且并联配置具有vds_max=6v、宽度=w6、长度=l1、指状部数目f=f6及乘数m=1的p(整数)个n型mos晶体管4820(1)到4820(p)。针对每一装置,漏极耦合到节点a、栅极耦合到节点b且源极耦合到节点c。每一晶体管可(举例来说)配置于符号4810(1)到4810(p)中的一者中,且符号4810(a)到4810(p)可(举例来说)嵌入于具有所规定特性的复合晶体管的符号4800中。
[0502]
图48b图解说明从另一参数值集合(例如,params_7)生成的另一实例性晶体管。在此实例中,params_7产生电路规范,所述电路规范规定具有vds_max=12v、单位栅极宽度w=w7、栅极长度l=l1、指状部数目f=f7及乘数属性m=1的耦合到节点a、b及c的p(整数)个p型mosfet晶体管m1、m2、

、mp。当将电路规范转换为晶体管示意图时,选择且并联配置p(整数)个vds_max=12v的p型mos晶体管4821(1)到4821(p),其中属性值设定为宽度w=w7、长度l=l1、指状部数目f=f7及m=1。针对每一装置4821(1)到4821(p),漏极耦合节点c、栅极耦合到节点b且源极耦合到节点a。每一晶体管可(举例来说)配置于符号4811(1)到4811(p)中的一者中,且符号4811(1)到4811(p)可(举例来说)嵌入于具有所规定特性的复合晶体管的符号4801中。
[0503]
图49a图解说明根据另一实施例的生成晶体管的实例性方法。在4901处,由在计算机系统上执行的生成器软件接收规定待生成的晶体管的信息。所述信息可包括描述待生成的mos晶体管的特征的参数,例如n型或p型、vds_max(例如,2v、6v、12v、20v、24v、30v)、vgs_max(例如,2v、6v)、导通电阻(ron)、开尔文(是/否)、复制(是/否)或测试(是/否)。在4902处,确定待生成的晶体管的总宽度(wtotal)。举例来说,可检索(例如,从存储器、数据库或文件)栅极长度。下文在图49b中描述用于确定晶体管的宽度的一种实例性技术。
[0504]
在一个实例性实施例中,可生成具有单位宽度wunit的晶体管,其中晶体管可具有多个指状部及/或一定数目(p)个装置单元(例如,基于乘数属性m或并联装置),如上文所描述。在4903处,可确定单位宽度wunit、指状部数目f及并联配置的装置单元数目p。举例来说,在一个实施例中,可依据总宽度确定最大宽度(wmax)、最大指状部数目(fmax)及装置单元数目(p)。举例来说,如果总宽度是200,000um、fmax=120且wmax=200um,那么p=9将产生以下指状部数目(f):
[0505]
f=wtotal/(wmax*p)=200kum/(200um*9)=111
[0506]
举例来说,生成器软件可跨越不同p值而依次确定不同值f,直到发现致使f《fmax的f及p的值为止。在一个特定实例性实施例中,将p设定为完全平方(即,p的平方根是正整数),这有利地在布局中产生装置单元的n
×
n阵列,如下文更详细地描述。
[0507]
本公开的特征及优点可进一步包含设定单位宽度,使得多个晶体管装置单元具有矩形区域。举例来说,x尺寸与y尺寸的比率(例如,x/y或y/x,其中x是单元在x方向上的长度
且y是所述单元在y尺寸上的长度)可介于约2/3与约3/4之间,这产生有利于定位布局结构及优化半导体电路的区域的矩形布局结构。在一个实例性实施例中,x/y=0.75。举例来说,可依据布局参数确定晶体管的y及x,其中x是指状部数目的函数x=f1(f),且y是单位宽度的函数y=f2(wunit)。在此实例中,由于可从wtotal、wmax及p(上述)获得指状部数目f,因此可如下表达单位宽度wunit:
[0508]
wunit=f
2-1
(y)=f
2-1
(x/0.75)=f
2-1
(f1(f)/0.75)
[0509]
其中x=f1(f)及y=f2(wunit)是基于预定义晶体管布局参数(其可针对不同晶体管是不同的)的预定义函数。因此,在计算机系统上执行的生成器软件可基于规定待生成的晶体管的信息(例如,基于针对n型或p型、vds_max、vgs_max或来自用于特定电路规范中的晶体管库的特定晶体管的参数)而选择x=f1(f)及y=f2(wunit)的不同方程式。下文图解说明针对n型及p型晶体管的实例性方程式x=f1(f)及y=f2(wunit)。
[0510]
因此,以上技术可用于获得待生成的晶体管的属性—w、l及f。举例来说,装置单元数目p可配置为m=p或配置为并联配置的p个晶体管。因此,在4904处,可生成电路规范。在4905处,可使用电路规范来生成示意图,且在4906处,从电路示意图生成布局。
[0511]
本公开的特征及优点包含接收导通电阻(ron)的值且使用ron来确定晶体管的栅极宽度(例如,wtotal)。在一个实例性实施例中,可通过以下操作而确定ron与wtotal之间的关系:针对特定晶体管(例如,vds_max=6v nmos或vds=24v pmos)生成栅极到源极电压(vgs)、栅极宽度(w)及温度(t)的不同值(举例来说)与ron对照的模拟数据,这可产生与特定晶体管的特定曲线对应的数据点。可通过曲线拟合算法(例如,回归算法)而获得针对所述曲线的方程式。在一个实施例中,可从数据集合的回归获得以下曲线的系数,所述数据集合包括跨越vgs、w及t的不同值的ron值:
[0512]
ron=vgs
k1
*w
k2
*t
k3
*c。
[0513]
可如下获得给定ron所需要的晶体管的宽度:
[0514][0515]
举例来说,以上方程式可使用预定义栅极长度。在一个实施例中,可使用一个装置单元(例如,m=1)的宽度(例如,w=200um)且数据集合可使用不同m值(例如,扫描vgs、m及t对ron)。
[0516]
图49b图解说明根据一实施例的用于将导通电阻(ron)的规定值转换成栅极宽度(例如,wtotal)的实例性方法。在4910处,针对多个晶体管类型生成栅极宽度(w)的不同值的数据集合,从而产生不同ron值。举例来说,各种实施例可跨越栅极宽度及其它晶体管操作参数(例如,栅极到源极电压(vgs)及/或温度(t))而确定ron值。因此,不同晶体管类型可具有不同对应数据集合。举例来说,具有不同漏极到源极最大电压(vds_max)及不同栅极到源极最大电压(vgs_max)的不同晶体管类型(例如,p型、n型、信号fet或功率fet)可具有不同对应数据集合。在4911处,针对每一晶体管类型生成多个回归系数。在上文所提及的一个实例性实施例中,回归系数可包括vgs系数(k1)、栅极宽度系数(k2)、温度系数(k3)及常数(c)。在一些实施例中,举例来说,可跨越多个晶体管类型而使用相同回归方程式及对应系数。在4912处,与规定晶体管类型的信息一起接收ron值。举例来说,生成器软件组件可接收ron值、vds_max值及vgs_max值。vds_max及vgs_max的值可用于从晶体管库选择特定晶体管
类型(例如,6v nmos晶体管),所述晶体管库可具有如上文所描述的ron对宽度数据集合以及系数。在4913处,可基于所规定晶体管类型而选择回归系数。在4914处,可基于所接收ron值及所选择回归系数而确定晶体管栅极宽度。举例来说,所得栅极宽度可为总栅极宽度wtotal。
[0517]
图50图解说明根据一实施例生成具有复制装置5001的晶体管。在此实例中,参数(例如,params_8)的值可规定待生成的晶体管将包含复制晶体管(例如,复制=是)。在此实例中,生成器接收params_8且生成电路规范,所述电路规范包括具有宽度w=w4、长度l=l1、指状部数目f=f3及乘数m=1的一个vds_max=6v nmos晶体管5002(例如,“n_type_6v”)m1。电路规范将m1配置为具有耦合到节点a的漏极、耦合到节点b的栅极及耦合到节点c的源极。当将生成复制装置时,电路规范进一步包含复制晶体管mr5001,在此实例中所述复制晶体管是与m1相同的装置类型(vds_max=6v nmos,此处,“n_type_6v”)。长度可为相同的(l=l1),但宽度及指状部数目可为不同的。在此实例中,宽度是w=wr,指状部数目f=1,且乘数m=1。在一个实例性实施例中,参数可规定复制增益。因此,举例来说,生成器可设定复制晶体管的宽度的值以获得由参数规定的增益。举例来说,如果将复制增益设定为1000:1,那么m1的总宽度与mr的宽度的比率wtotal/wreplica=1000/1。
[0518]
图51图解说明根据一实施例生成具有开尔文连接的晶体管。在此实例中,参数(例如,params_9)的值可规定待生成的晶体管将包含开尔文连接(例如,开尔文=是)。在此实例中,生成器接收params_9且生成电路规范,所述电路规范包括具有宽度w=w4、长度l=l1、指状部数目f=f3及乘数m=1的一个vds_max=6v nmos晶体管(例如,“n_type_6v”)m1。电路规范将m1配置为具有耦合到节点d的漏极(例如,(d)rain)、耦合到节点g的栅极(例如,(g)ate)及耦合到节点s的源极(例如,(s)ource)。另外,电路规范经配置以产生分别从集成电路中接近于漏极及/或源极的点沿着次要导电路径耦合到漏极及/或源极的额外端子(例如,(d)rain_(k)elvin,“dk”及/或(s)ource_(k)elvin,“sk”)。相对于沿着主要导电路径(例如,介于漏极与连接到d端子的电路系统之间的路径或介于源极与连接到s端子的电路系统之间的路径)流动的电流,次要导电路径可汲取极低电流。因此,举例来说,dk及sk端子可感测电压,同时使沿着漏极及/或源极与s及d端子之间的主要导电路径经历的电流相关电压降最小化。在一个实例性实施例中,生成器可进一步包含位于次要导电路径中的电阻器(例如,以进一步减少在次要导电路径中流动的电流)。因此,在此实例中,电路规范包含耦合于节点d与dk之间的第一电阻器r1=100毫欧姆(mohm),及耦合于节点s与sk之间的第二电阻器r2=100毫欧姆。可将电路规范转换成晶体管示意图5100,所述晶体管示意图包含如所展示而配置的nmos晶体管5101以及电阻器5102及5103。举例来说,可从晶体管示意图生成布局,其中次要路径紧接近于漏极或源极而耦合到晶体管。
[0519]
图52a图解说明根据一实施例的自动生成晶体管的布局的实例。图52a图解说明晶体管的具有不同指状部数目f的替代布局5200(1)到5200(n)。晶体管布局5200(1)包含两(2)个指状部,在此情形中,所述两个指状部是具有宽度w的两个栅极5201及5202。晶体管布局5200(1)进一步包含两(2)个源极5203及5204以及单个漏极5205。图52a图解说明当指状部数目改变时,晶体管的x尺寸(例如,水平)长度改变,但y尺寸(例如,垂直)长度可不改变。晶体管的总y轴长度可由晶体管栅极宽度w以及位于栅极、源极及/或漏极结构的相对边缘上方及下方的布局结构设定。在此实例中,长度c(位于栅极/源极/漏极上方)及d(位于栅
极/源极/漏极下方)连同宽度w一起设定总y轴长度y。指状部数目及其它x轴长度可设定总x轴长度x。
[0520]
举例来说,如果f=4个指状部,那么可添加额外栅极、漏极、栅极及源极分段,借此改变沿着x轴的长度,但沿着y轴的长度保持不变。举例来说,x轴长度可为第一长度a、第二长度(或间距)p及第三长度b的函数(例如,x=[(f/2)*(p)itch] xoffset,其中xoffset=a b)。y轴长度可为单位栅极宽度wunit以及长度c及d的函数(例如,y=w yoffset,其中yoffset=c d)。在一个实例性实施例中,vds_max=6v nmos晶体管的布局参数可为:(p)itch=3.3um、xoffset=2.33um且yoffset=8.33um。当vds_max增加时,xoffset及yoffset可为不变的,但间距可增加。举例来说,以下是其它nmos晶体管的实例性(vds_max,p(pitch))元组:[(12v,4.1um),(20v,4.9um),(24v,5.3um),(40v,7.9um)]。举例来说,长度a可包含与晶体管的第一边缘相关联的各种布局结构(例如基体材料)、沿着晶体管的第一边缘配置的第一源极以及其它布局结构。长度b可包含沿着晶体管的第二边缘配置的各种布局结构(例如基体材料)及其它布局结构。举例来说,长度c及d可包含各种布局结构(例如基体材料)及过程特定缩进部(setback)。长度(p)itch可包含在额外图包含于电路中时进行重复的布局结构。举例来说,当f=4时,可包含额外分段5210以产生布局5200(2),所述额外分段包括第二栅极/漏极/栅极/源极。x轴长度增加达另一量p,但a及b可保持恒定。如布局5200(n)中所图解说明,针对f=n,a及b保持恒定且存在n个(p)itch长度。将理解,布局结构可针对不同晶体管是不同的,且因此a、b、(p)itch、xoffset及yoffset可针对不同晶体管是不同的。然而,相同类型的晶体管(例如,n型mosfet,vds_max=6v、vgs_max=6v)可针对晶体管的不同实例具有相同布局结构以及a、b、(p)itch、xoffset及yoffset值。举例来说,图52a的实例展示布局5200(1)到5200(n)的针对一个y轴长度的x轴长度与f对照的变化,所述一个y轴长度对应于相同栅极宽度w。
[0521]
图52a用于图解说明可如何确定晶体管层级示意图中的晶体管的属性。随着单位宽度及指状部数目改变,可使用不同装置单元数目(p)(例如,5200(1)到(n))来形成复合晶体管。在一个实例性实施例中,可使用从所规定ron计算的总宽度wtotal来针对给定最大单位宽度wunit_max、最大指状部数目fmax及p(装置单元数目)确定指状部数目f。举例来说,可基于wtotal、p=1、fmax及wunit_max而计算指状部数目f。如果不可获得解,那么可增加p。可将装置单元数目迭代地增加到依次变大的装置单元数目直到针对f发现一解为止。可将装置单元数目限制于能够形成二维阵列的值,所述二维阵列具有介于0.5与1之间的经组合纵横比(例如,矩形)。在一个实施例中,可将装置单元数目有利地设定为完全平方(例如,1、4、9、16、

)。举例来说,一旦针对给定wtotal及wunit_max发现指状部数目f(f《fmax)及装置单元数目p,便可针对所规定比率(x/y或y/x)而确定每一晶体管的最终宽度。
[0522]
在一个实施例中,可基于最大宽度及最大指状部数目而确定单位栅极宽度(wunit)、指状部数目(f)及装置单元数目(p)。最大宽度(wmax)及最大指状部数目(fmax)可为包含于生成器软件中或从外部存储位置(例如,文件或数据库)存储及接收的预定义值。在一个实施例中,生成器软件可通过以下操作而确定装置单元数目(p)及指状部数目(f):跨越多个增加的值来增加装置单元数目(p)以确定可基于每一依次增加的当前装置单元数目(p)、最大宽度(wmax)及最大指状部数目(fmax)而获得的指状部数目(f)。此方法可有利地产生最少装置单元数目(p)及经减小电路面积。
[0523]
举例来说,以总宽度(wtotal)开始,生成器软件可跨越多个值而迭代地增加装置单元数目(p)。针对p=完全平方的情形,可将p迭代地设定为1、4、9等

。在p的每一当前值下,系统可确定是否可从p的当前值、最大宽度(wmax)及最大指状部数目(fmax)获得总宽度(wtotal)。举例来说,针对wtotal=200,000um、wmax=200um且fmax=120,p=1产生f=wtotal/(wmax*p)=1000,所述f大于fmax。因此,不可从p的当前值、wmax及fmax获得总宽度。因此,将p递增到下一值(此处,4)。针对p=4,f=250,所述f仍大于fmax。因此,将p递增到下一值(此处,9)。针对p=9,f=111,所述f小于fmax。因此,可从p=9、f=111及wmax=200um获得wtotal=200,000um,且可使用这些值来设定晶体管属性。
[0524]
本公开的特征及优点可进一步包含基于一或多个布局参数而设定晶体管属性。举例来说,如上文所提及,装置单元的可配置纵横比可用于设定装置单元的x轴及y轴长度,其可(举例来说)设定单位栅极宽度wunit。举例来说,可基于指状部数目(f)及预定义偏移值(例如,p(pitch)及xoffset的布局参数)而确定沿着装置单元的x尺寸的长度x—x=((f/2)*间距) xoffset。如上文所提及,可基于晶体管类型(例如,掺杂剂类型p型/n型、vdsmax、vgsmax中的一或多者)而选择预定义偏移值,且不同晶体管类型可(举例来说)具有针对间距、xoffset及yoffset的不同布局参数值。接下来,可基于长度x及纵横比而确定沿着装置单元的y尺寸的长度y(y=ar*x,其中ar是可编码于生成器软件中或从外部存储位置检索的可编程纵横比)。一旦确定单元的长度y,便可基于长度y及预定义偏移值yoffset而确定最终单位栅极宽度wunit—y=wunit yoffset。在一些实施例中,生成器软件可比较基于总宽度及长度而计算的面积与基于最终单位栅极宽度(wunit)、装置单元数目(p)及指状部数目(f)而计算的面积。举例来说,如果所述面积在可接受误差裕度内,那么设计及各种布局参数可为有效的。
[0525]
图52b图解说明晶体管布局的纵横比可随着指状部数目增加而改变。在一个实例性实施例中,改变指状部数目可产生晶体管装置单元宽度的改变以维持纵横比(例如,维持恒定或维持在一范围内)。此处,生成第一装置单元5250的装置单元布局实例,其具有f=f1个指状部及宽度w=w1,从而产生0.75的y/x比率。可生成另一装置单元布局实例5251,其具有指状部f=f2及宽度w=w2以及0.75的y/x比率。类似地,可生成又一装置单元布局实例5252,其具有指状部数目f=f3及宽度w=w3,同时维持0.75的y/x比率。最后,可生成又一装置单元布局实例5253,其具有指状部数目f=f4及宽度w=w4,具有0.75的比率。如上文所提及,指状部数目可用于确定晶体管的宽度。因此,在一些实例性实施例中,当指状部数目增加时,晶体管的宽度也可增加。晶体管装置单元5250到5253依次增加。针对给定晶体管类型,额外指状部可产生较大栅极宽度以将纵横比维持处于特定值或维持在一范围内。举例来说,尽管此处展示0.75的纵横比,但将理解,可使用其它矩形纵横比。在一些实施例中,举例来说,纵横比可为可编程的。各种实例性实施例可包含大于或等于(》=)0.5且小于1的纵横比。举例来说,一些实施例可包含从约2/3到约3/4的纵横比。另外,尽管图52b图解说明y/x的纵横比,但将理解,也可使用x/y纵横比。举例来说,矩形纵横比(例如,x《》y)可为有利的,从而允许布局例程操纵一或多个晶体管以通过允许系统旋转晶体管的布局来适合于布局上的不同可用空间中而优化放置并减小半导体电路的面积。
[0526]
图53a到b图解说明根据一实施例的经配置以形成晶体管的晶体管装置单元布局实例的阵列。如上文所提及,举例来说,可将图52a中所图解说明的晶体管装置单元布局实
例组合于mxn阵列中(其中m及n是整数)以形成单个复合装置(例如,乘数属性m=p》1或使用其中m=1的并联的p个晶体管)。举例来说,图53a图解说明具有2/3的比率y/x的3x4阵列5301(未按比例绘制)。装置单元布局实例可以偶数步长sx沿着x轴间隔开且以偶数步长sy沿着y轴间隔开。在一些实施例中,sx与sy可为相同的。
[0527]
图53b图解说明根据另一实施例的经配置以形成晶体管的晶体管装置单元布局实例的阵列。图53b图解说明一实例,其中将装置单元数目(p)设定为完全平方(例如,1、4、9、16、25、36、

)以产生nxn阵列。在此实例中,举例来说,9个装置单元布局实例5302配置于具有3/4=0.75的比率y/x的3x3阵列中(未按比例绘制)。单元可以偶数步长sx沿着x轴间隔开且以偶数步长sy沿着y轴间隔开,所述步长可为相同的,如上文所提及。
[0528]
以下是用于放置装置单元布局实例以形成晶体管的实例性布局放置指令:
[0529]
placefet x y xstep ystep#columns#rows
[0530]
举例来说,其中每一晶体管类型可具有用于以上布局放置指令中的唯一布局参数值。在以上布局放置指令中,x及y是第一装置单元布局实例将定位的位置。另外,“xstep”及“ystep”指示沿着x轴及y轴针对下一布局实例的位置的偏移。最后,可规定列及行的数目。举例来说,基于以上公开内容,xstep、ystep、列编号及行编号可在执行期间被计算并由布局放置指令接收。
[0531]
图54图解说明根据一个实施例生成晶体管的布局。在此实例中,所接收参数用于生成电路规范,所述电路规范包含四个装置单元(p=4),所述四个装置单元各自是具有栅极长度w=w1、长度l=l1、指状部f=f1及乘数m=1的n型vds_max=6v mos晶体管。电路规范用于生成包括并联配置的晶体管5401到5404的晶体管层级示意图。示意图用于生成布局。举例来说,可将每一晶体管5401到5404自动转换为装置单元布局实例5410。使用布局放置指令来自动放置装置单元布局实例。举例来说,可将第一装置单元布局实例放置于开始位置(例如,布局环境的x=0、y=0位置)处。可基于x步长及y步长而沿着x轴及y轴依次放置装置单元布局实例。所述x步长是基于x轴长度x加上x单元偏移(“xcell_offset”),且所述y步长是基于y轴长度y加上y单元偏移(“ycell_offset”)。
[0532]
图55图解说明根据一个实施例生成晶体管的布局。在此实例中,所接收参数用于生成电路规范,所述电路规范包含具有栅极长度w=w2、长度l=l1、指状部f=f2及乘数m=25(也称为p=25个装置单元)的n型vds_max=6v mos晶体管。电路规范用于生成包括晶体管5501的晶体管层级示意图。示意图用于生成布局。举例来说,可将晶体管5501自动转换为25个装置单元布局实例5510。使用布局放置指令来自动放置装置单元布局实例。举例来说,可将第一装置单元布局实例放置于开始位置(例如,布局环境的x=0、y=0位置)处。可基于x步长及y步长而沿着x轴及y轴依次放置装置单元。所述x步长是基于x轴长度x加上x单元偏移(“xcell_offset”),且所述y步长是基于y轴长度y加上y单元偏移(“ycell_offset”)。
[0533]
图54及55图解说明其中将数目p设定为完全平方的实例,如上文所提及。
[0534]
本公开的一些实施例的特征及优点可包含自动放置布局实例(例如,多边形)以形成晶体管的布局。举例来说,图56a图解说明自动放置布局实例以形成mos晶体管。在此实例中,装置单元数目p等于4,且所得布局包含晶体管装置单元布局实例5650到5653的2x2阵列。单元5650到5653各自包括并联配置为垂直条带的多个源极(s)(例如,源极5602)、栅极(g)(例如,栅极5601)及漏极(d)(例如,漏极5603)。用于形成晶体管的完整布局的装置单元
布局实例的自动放置可基于多个参数,可基于晶体管类型而选择所述多个参数中的一些参数且可计算其它参数。举例来说,不同晶体管类型可选择不同所存储参数来使用布局放置指令执行自动布局。举例来说,与具有vgs_max=6v、vds_max=6v的nmos晶体管相比,针对具有vgs_max=6v、vds_max=12v的nmos晶体管的自动布局可(举例来说)选择不同所存储布局参数、执行不同放置计算且执行不同布局算法。因此,针对晶体管的自动布局可包含基于晶体管类型而选择布局参数。一旦选择布局参数,便可通过运行针对所述晶体管类型的定制脚本而计算额外参数。所选择及所计算参数可被包含为用于布局放置指令的参数以动态地构建特定晶体管。举例来说,可依据晶体管属性(例如,上文所描述的w、l、f、m)确定源极、漏极及栅极尺寸以及放置位置,且可(举例来说)基于所选择及所计算参数而将布局元件(例如,多边形)自动定位于布局中。举例来说,如图56a中所图解说明且如上文所提及,所选择参数可包含用于将特定布局元件放置在预定义位置(例如初始位置或通过间距而被调整的初始位置)中的多个偏移。
[0535]
图56a图解说明根据一实施例的金属层的自动布局。本实例图解说明根据一实施例的所存储及所计算参数。在此实例中,多个金属层以覆盖装置单元布局实例阵列的水平条带进行配置,例如水平金属层5620及5621。举例来说,金属层5620到5621有时被称为“金属2”,其可为位于多晶硅层上方的第二金属层。金属层可具有宽度,所述宽度被设定为针对金属2最大宽度(“m2wmax”)的所存储参数。在一些过程中,当金属化物宽度超过特定预定义值时,可需要插入狭槽(例如,以减轻应力)。可将m2wmax宽度设定为略低于需要狭槽的宽度。在另一实施例中,举例来说,可存储狭槽宽度且可通过定制布局放置脚本而将m2wmax计算为狭槽宽度减去某一预定量。举例来说,布局放置脚本可进一步基于晶体管的栅极宽度来确定可跨越单元的特定行而适合的水平金属条带的数目。可将初始m2条带放置于单元的上部边缘(或等效初始参考)下方的偏移m2os处,且可依次放置具有宽度m2wmax的所计算数目个水平m2条带(例如,其通过预定义间隙分开,所述预定义间隙可为过程相依所存储参数)。图56a进一步图解说明配置于装置单元的行之间的栅极金属化物5625。举例来说,装置单元可通过另一所存储参数“ygap”分开,且m2栅极金属5625可配置于间隙的中心处。本公开的实施例可进一步图解说明根据一实施例的通孔(例如,通孔5610)的自动放置,所述通孔将m2连接到布局中的下伏结构。在此实例中,可基于晶体管的所存储参数中的一或多者、晶体管的属性(例如,栅极宽度)及/或偏移而自动放置通向m2条带的源极、漏极及栅极通孔。举例来说,可基于源极y轴偏移(syos)及源极x轴偏移(sxos)而放置一或多个初始源极通孔5610。可从初始放置位置以预定义步长(例如,基于m2wmax的x轴间距长度及y轴间距长度)放置额外源极通孔。类似地,可基于漏极y轴偏移(dyos)及漏极x轴偏移(dxos)而放置一或多个初始漏极通孔5611。可从初始放置位置以预定义步长放置额外漏极通孔。同样,栅极通孔可根据栅极步长将栅极5601耦合到m2栅极金属5625。在此实例中,栅极到栅极间距(pgg)、栅极-源极-栅极间距(pgsg)及漏极到漏极间距(pdd)可为所存储参数。在此实例中,举例来说,栅极对之间的源极可具有较大x轴长度,且因此pgsg尺寸可用于恰当地定位晶体管的布局元件。如可见,源极通孔以初始值(例如,基于sxos及syos)开始且跨越每一单元沿着x轴及y轴进行重复。类似地,漏极通孔以初始值(例如,基于dxos及dyos)开始且跨越每一单元沿着x轴及y轴进行重复。举例来说,可针对特定晶体管类型而存储及检索devstep参数以设定一个单元中的最后源极与邻近单元中的第一源极之间的x轴距离,使得布局元件可
沿着x轴跨越若干单元进行重复。类似地,举例来说,y间隙及装置的宽度可用于沿着y轴跨越若干单元使布局元件的位置偏移。图56a还图解说明针对每一连接点5610,可放置多个通孔。如在5650处所图解说明,举例来说,m2wmax可用于计算可在m2条带与源极、栅极或漏极的相交点处自动放置的通孔的数目。在一个实施例中,m2条带的水平边缘以及源极、栅极或漏极的垂直边缘可具有缩进部过程参数。举例来说,m2wmax可减去2*缩进部且使剩余距离用于计算可串联放置(如在5650处所图解说明)的通孔的数目。最后,图56b图解说明位于m2上方的金属层3 5690的垂直条带,所述垂直条带可(举例来说)用于连接m2源极、m2漏极与m2栅极。
[0536]
集成电路的自动布局
[0537]
本公开的各种实施例的特征及优点可进一步包含自动生成集成电路的布局。在一些实例性实施例中,晶体管层级示意图可具有相关联布局脚本。当将示意图转换为布局(例如,在eda工具中)时,与示意图相关联的布局脚本可用于定位从示意图生成的布局实例。本公开的实例性实施例可包含针对每一晶体管层级示意图而定制的布局脚本,以自动产生电路的简洁高效布局。
[0538]
图57图解说明根据一实施例生成布局。此处,布局生成器软件组件5700将电路示意图5701转换成多个布局实例(例如,实例5710、5711、5712、5713)以形成电路布局5703。举例来说,电路示意图5702可定义模拟或混合信号电路的晶体管层级电路系统。布局生成器5700可针对电路示意图5701中的各种电路组件产生布局实例(例如,多边形)。最初,举例来说,布局实例可为分散的且并未基于连接性、电路性能及为节约面积而最优地配置。有利地,布局生成器5700可接收与电路示意图5701相关联的布局脚本5702。在一个实施例中,举例来说,可针对特定电路示意图而定制及预定义布局脚本5702以优化布局。如下文更详细地描述,布局脚本5702可包括用于自动放置从电路示意图5701生成的布局实例的指令集合。如布局5703中所图解说明,布局脚本5702的执行(例如,通过计算机系统)可致使定位多个布局实例(例如,实例5710、5711、5712、5713)以产生电路布局5703。
[0539]
在各种实施例中,布局实例可对应于来自电路示意图的多种组件,且在一些情形中,对应于添加到布局的额外结构,所述额外结构可(举例来说)在电路实施于半导体中时用于电路的操作。在一个实例性实施例中,布局实例可为如上文所提及的针对子电路示意图的预定义布局(例如,与比较器、放大器、振荡器、能带隙电路、电流镜、晶体管布局(例如信号fet或功率fet布局)或者各种各样的其它模拟或混合信号电路相关联的预定义布局)。因此,布局脚本可包含对其中存储一或多个布局实例的库(例如,其中存储针对电路示意图的一或多个预定义布局的库)的参考(例如,库名称)。在其它实例性实施例中,布局实例可为无源布局组件,例如电阻器布局组件或电容器布局组件。有利地,在特定实例性实施例中,布局脚本针对从电路示意图5701生成的多个布局实例中的每一者产生特定放置且可进一步并入及自动定位额外布局结构(例如,通孔、保护环、基体连接)。因此,在一些实例性实施例中,可自动定位用于形成电路布局(例如,及掩模)的所有布局实例以产生电路布局。
[0540]
图58图解说明根据一实施例的包含自动布局生成器的实例性系统。此处,功能电路组件5801可经配置以生成执行共同电路功能的多个电路示意图。举例来说,功能电路组件5801可用于生成针对比较器、振荡器、放大器、电流镜、gm电路、电压/电流转换器、电压缓冲器或者宽广范围的其它模拟或混合信号电路功能中的任一者的电路系统。特定功能电路
组件5801可根据多种参数(例如,输入装置类型、增益、箝位等)而实施特定功能(例如,电压/电流转换器)。生成器软件5800可接收参数值且生成网表以产生电路示意图5802(1),如上文所描述。举例来说,生成器5800可响应于接收到参数值的各种组合而产生多个不同电路示意图5802(1)到5802(n)。基于不同参数值,功能电路组件可产生针对具有不同特性的振荡器、放大器等的电路示意图。如上文所描述,可从可存储于库5805中的预定义子电路示意图生成电路示意图5802(1)到5802(n)。举例来说,库5805可存储用以跨越不同参数值而产生功能电路组件5801的电路示意图及布局的子电路示意图及子电路布局。
[0541]
本公开的一些实施例的特征及优点进一步包含产生布局脚本5803的生成器5800。布局脚本5803可与多个电路示意图5802(1)到5802(n)中的一或多者相关联,所述一或多者可执行共同功能且是从相同参数的不同值生成。在一些实施例中,布局脚本5803经配置以定位针对多个电路示意图中的每一者的布局实例。举例来说,在图58中,单个布局脚本5803经配置以产生针对多个电路示意图5802(1)到5802(n)的布局。在一些实施例中,布局脚本可对来自不同电路示意图的布局实例执行多个放置操作(例如,对来自示意图5802(1)的布局实例执行放置操作且对来自示意图5802(2)到5802(n)的其它布局实例执行其它放置操作)。如下文在各种实例中所描述,可对与电路示意图5802(1)对应的布局实例执行放置操作(例如,当生成电路示意图5802(1)且将其转换为布局时)且不对与其它电路示意图对应的布局实例执行放置操作(例如,当生成电路示意图5802(1)且将其转换为布局时)。仅作为一个实例,如果特定电路示意图经转换以产生布局实例xu1且另一电路示意图经转换以产生布局实例xu2,那么布局脚本可包含对xu1及xu2两者的放置操作,但可仅在布局实例存在于布局画布中的情况下对所述布局实例执行放置操作。因此,在一些实施例中,单个布局脚本可包含(举例来说)仅在将特定电路示意图转换为布局时执行的放置操作。
[0542]
布局生成器5806可接收布局脚本5803及任何电路示意图5802(1)到5802(n)且生成对应布局。此处,布局生成器5806接收布局脚本5803及电路示意图1 5802(1)且产生布局5808。类似地,布局生成器5806接收布局脚本5803及电路示意图n 5802(n)且产生布局5809。举例来说,可类似地自动生成针对电路示意图5802(1)到5802(n)中的任一者的布局。
[0543]
尽管目前所描述自动布局技术可应用于图58中所描述的系统上及本公开的其它部分,但将理解,这些技术可(举例来说)用于使用eda工具在eda环境中将示意图转换成布局。
[0544]
图59图解说明根据一实施例将电路示意图转换为布局实例及生成布局。在此实例中,在5902处,将电路示意图5901转换为布局实例5910到5913。在各种实施例中,布局实例可对应于电路示意图中的不同组件。举例来说,布局实例可对应于无源布局组件,例如电阻器布局组件或电容器布局组件。在此实例中,举例来说,布局实例5913可为对应于电路5901中的多个电阻器分段的电阻器布局分段,所述多个电阻器分段经配置以产生一个总电阻器值rtotal。在下文其它实例中,举例来说,布局实例可为对应于电路示意图中的多个单位电容器的电容器布局分段,所述多个单位电容器经配置以产生一个总电容值ctotal。如上文所提及,电路示意图5901的不同参数化实例可包括不同预定义子电路示意图。在此实例中,布局实例5910、5911及5912是三(3)个预定义子电路示意图布局。将理解,可根据本文中所描述的技术将电路示意图5901中的任何一或多个组件转换为布局实例且进行定位。
[0545]
最初,布局实例可以非最优方式放置于布局环境中(例如,跨越画布而分散)。布局
脚本5902可将布局实例定位到特定位置处以产生更优布局。在此实例中,布局脚本5902在5914处将布局实例定位到特定位置中以产生布局5930。有利地,举例来说,布局脚本5902可经定制使得可将来自一或多个对应电路示意图的每一布局实例自动放置于任何位置中以产生经优化布局。
[0546]
尽管图59中及下文另外的实例中所展示的实例图解说明在通过布局脚本进行最终定位之前将布局实例最初定位于布局画布上,但将理解,可通过布局脚本而将布局实例直接放置于最终经定制位置中而无需在画布上的此初始放置。
[0547]
图60图解说明根据一实施例的布局脚本。一些实施例的特征及优点可包含包括多个布局放置指令的布局脚本。布局放置指令可规定针对一或多个对应布局实例的放置位置(例如,在布局环境中)。因此,布局放置指令可有利地用于定位布局实例中的一或多者。在此实例中,布局脚本6000包含多个布局指令6001到6003。布局放置指令6001到6003可包括用于实施对应于每一布局放置指令的特定功能的代码。举例来说,代码可实施为脚本,例如eda环境中的脚本(例如,中的skill脚本)。在此实例中,布局放置指令可对一或多个实例进行操作。另外,布局放置指令可(举例来说)接收布局参数以控制对布局实例执行的各种操作。
[0548]
在各种实施例中,脚本6000可包含多个布局放置指令6001到6003,且布局放置指令的子集可包含对特定布局实例的参考。如下文各种实例中所图解说明,在一些实施例中,所述参考是单元名称(例如,place《cell_name》)。在其它实施例中,所述参考是实例名称(例如,place《instance_name》)。在一些应用中,多个布局实例可具有相同单元名称但具有不同实例名称。因此,可有利地针对不同情景而编制布局放置指令,其中基于单元名称的放置或基于实例名称的放置可为较高效的。
[0549]
下文进一步详细地展示多种实例性布局放置指令。
[0550]
图61图解说明根据一实施例的布局放置指令的实例性放置操作。在一些实施例中,一或多个布局放置指令规定特定布局实例、用于定位所述特定布局实例的x轴坐标及y轴坐标。在此实例中,将布局实例6101放置于如在6101a处所图解说明的(x,y)坐标(0,0)处(例如,“place《cell_name》0 0”)。替代地,可将布局实例6101放置于如在6101b处所图解说明的另一(x,y)坐标(x1,y1)处(例如,“place《cell_name》x1 y1”;其中x1可为第一规定值且y1可为第二规定值)。图61还图解说明一些实施例的另一特征,其中一或多个布局放置指令进一步规定特定布局实例的旋转。在此实例中,布局放置指令可将布局实例6101b旋转90度(例如,place《cell_name》x1 y1 90)。在一些实施例中,使布局放置指令进一步规定其中存储特定布局实例的库名称可为有利的。举例来说,其中存储预定义子电路布局实例的库可包含为布局放置指令中的参数(例如,“place《library_name》《cell_name》0 0 0”;可将来自特定库的特定单元以0旋转放置于(x,y)=(0,0)处)。
[0551]
图62图解说明根据另外的实施例的生成布局的另外的实例。在一些实施例中,布局放置指令可定位多个布局实例。图62中所展示的实例是说明性的。此处,可利用单个布局放置指令来放置针对相同类型的单元的多个布局实例(例如,具有不同实例名称)。在此实例中,布局实例6201a到6201b对应于第一布局实例类型(例如,一个预定义子电路布局或无源组件),布局实例6202a到6202d对应于第二布局实例类型(例如,电阻器布局组件),且布局实例6203a到6203c对应于第三布局实例类型(例如,电容器布局组件)。
[0552]
在一个实施例中,可利用单个布局放置指令来放置布局实例6201a到6201b。举例来说,以下指令可放置此两个布局实例,其中放置在开始位置处开始且然后在由步长界定的另一位置处:“placestep《cell_name》x y step stepdirection rotation”。此实例性布局放置指令图解说明可包含于各种实施例中的多个特征。首先,可将第一布局实例《cell_name》放置于特定(x,y)坐标处,且将(举例来说)具有相同《cell_name》的连续布局实例放置于从所规定(x,y)坐标偏移一“步长”量的位置处。此外,可在布局放置指令中规定步长方向(例如, x、-x、 y或-y)。最后,旋转包含于此实例性布局放置指令中。因此,对以下布局放置指令的执行可致使将布局实例6201a到6201b定位成在(0,0)处开始且然后以90度旋转而沿着 x方向在“0 《cell_width》”处:“placestep《cell_name_6201》0 0《cell_width_6201》x 90”,其中《cell_name_6201》是单元名称且《cell_width_6201》是布局实例6201a到6201b的宽度(此处,沿着x轴的长度)。类似地,可使用单个布局放置指令来将布局实例6202a到6202d依次放置为在(x1,0)处开始且可使用单个布局放置指令来将6203a到6203c依次放置为在(0,y1)处开始。在一些实例性实施例中,电阻器可具有专用布局放置指令(例如,placeres)且电容器可具有专用布局放置指令(例如,placecap),下文更详细地描述此两者。
[0553]
图63a图解说明根据各种实施例的可用于各种布局放置指令中的实例性步长类型。图63a图解说明布局实例6301a到6301d可与布局实例6302a到6302d不同地步进。举例来说,在一个实施例中,步长可规定布局实例的邻近边界之间的距离。此在6300a处图解说明,其中将布局实例6302a到6302d放置于以(0,0)开始并以距离步长(step)依次沿着 x轴的位置处,所述步长介于每一布局实例的垂直侧壁边界之间。在此情形中,布局放置指令可基于在所述指令中所规定的步长值与布局实例沿着一个轴(例如,此处,x轴)的长度的和而定位每一布局实例。举例来说,规定邻近布局实例之间的距离可对于可在大小上变化的布局实例(例如对于电阻器布局组件或电容器布局组件)是有利的。
[0554]
替代地,步长可规定间距,其中将连续放置定位于初始位置加上所述间距处(例如,x=xinit (i*间距))。因此,一些布局放置指令可将步长设定为大于或等于沿着待定位的布局实例的子集的第一轴的边界的长度。在图63a中,布局实例6301a到6301d具有设定为沿着x轴的长度的步长且每一布局实例经放置使得邻近垂直边界接触。举例来说,此步长类型也可用于设定每一布局实例之间的空间。
[0555]
图63b图解说明根据一实施例的用于一些布局放置指令中的另一参数。在一些实施例中,单个布局放置指令可用于放置布局实例的多个群组(例如,电阻器布局分段的多个子群组)。在此实例中,布局放置实例包括布局放置实例6303a到6303d的至少第一子群组及布局放置实例6304a到6304d的第二子群组。布局放置指令可规定第一子群组及第二子群组中的布局实例之间的步长。在一些实施例中,举例来说,子群组可具有不同名称(例如,电阻器布局实例名称或单元名称)且布局放置指令可使用第一空间(或步长)来定位同一群组中的布局实例,并且布局放置指令可定位两个子群组,使得在两个群组之间存在第二空间(或步长)。在此实例中,布局放置指令可将布局实例6303a到6303d依次定位成在(0,0)处开始并沿着x轴通过“步长”分开。然后将布局实例6304a到6304d依次定位成在沿着x轴的位置处开始,所述位置与群组6303a到6303d的最后布局实例的邻近边界分开达“群组步长”。然后将布局实例6304a到6304d依次定位成通过“步长”分开。用于放置电阻器布局实例的实例性
布局放置指令是如下:placeres x y step_btwn_same_name_res step_btwn_diff_name_res rotation directionx directiony distance。下文结合图63更详细地论述“距离”特征的进一步论述。
[0556]
在一些实施例中,一个布局放置指令可跟随另一布局放置指令。后面的布局放置指令可将一或多个布局实例放置于从先前布局放置指令的最后位置开始的位置处。举例来说,这可在相对于先前放置布局实例而依次放置不同布局实例时是有利的。图63c图解说明两个不同实例。在布局6300c中,举例来说,利用第一布局放置指令(例如,placestep)来依次放置布局实例6306a到6306d,且利用从先前布局放置指令结束处继续的第二布局放置指令(例如,placestepcontinue)来依次放置布局实例6305a到6305d。在一些实施例中,第二布局放置指令可包含针对步长方向及旋转的布局放置参数,如上文所描述。布局6300d图解说明第二布局放置指令以-90度旋转沿着-y方向而从先前布局放置指令结束处继续依次放置布局实例6305a到6305d,在此实例中,这(举例来说)将布局实例放置于经填充区6390的周界周围。以下是根据一实施例的可跟随先前布局放置指令并维持先前布局放置指令的x、y坐标的布局放置指令的实例:
[0557]“placestepcell libraryname cellname rotation”//在从先前指令以来的下一步长x y处(可跟随placestep)放置来自“libraryname”的“cellname”的布局实例(其可并非从示意图转换而来且并未在布局画布上)。
[0558]
placestepcontinue libraryname cellname stepdirection stepdistance rotation//在从先前指令以来的下一步长x y处(可跟随placestep)放置布局实例
[0559]
图64图解说明根据各种实施例的用于一些布局放置指令中的另一参数。在此情形中,布局放置指令进一步规定距离。所述距离可规定沿着一个轴(例如,x轴)的最大距离,其中将超过所述距离的布局实例的放置定位成在沿着另一轴(例如,y轴)的不同位置处开始且沿着第一轴(例如,x轴)继续进行直到所述距离。因此,可基于所述距离沿着第一轴而从开始位置依次放置布局实例直到第二位置。当布局实例的第一部分横跨开始位置与第二位置之间的空间时,基于所述距离沿着第一轴而在第三位置与第四位置之间依次放置布局实例的第二部分,所述第三位置沿着第二轴从最终位置偏移。图64图解说明针对距离参数的不同值的布局实例6401a到6401c及6402的多个不同布局。
[0560]
布局6400a图解说明第一距离d1可设定为参数。因此,沿着x轴从(0,0)开始依次放置布局实例6401a到6401c。一旦放置实例6401c,即在距离d1内存在(举例来说)6402a的空间。一旦布局实例6401a到6401c及6402c横跨距离d1,下一放置位置便移动到新位置,所述新位置沿着y轴从实例6402a的结束位置偏移等于实例6401a到6401c或6402c的厚度(此处,其是相同厚度)的量,且沿着x轴在-x方向上重新开始。在此示例中,放置6402的所有剩余实例。然而,如果将放置额外实例,那么每当距离d1被填充时,放置就将沿y轴递增。在布局6400b中图解说明此情况,其中小于d1的距离d2致使最后两个布局实例6402g到6402f绕回x轴以形成沿着y轴的第三行。在各种实施例中,布局分段的自动蛇形(“来回”或“交替”)定位可有利地减小一些示例性应用中的分段之间的连接长度。
[0561]
布局6400c到6400d图解说明一些实施例的另一特征。在布局6400c中,如果布局实例无法适合于剩余距离d3内,那么所述布局实例偏移(此处,沿y轴向上)且开始位置是在距离d3处。在布局6400d中,布局实例可一起向左对齐到x=0。
[0562]
布局6400e到6400f图解说明一些实施例的另一特征。此示例图解说明可规定对距离参数的“严格”或“宽松”遵守的另一参数。举例来说,如布局6400e中所图解说明,在一些情形中,在继续于偏移位置处进行放置之前允许超过距离d4的一些小的延伸可为有利的。如布局6400f中所图解说明,系统“严格地”应用距离d4作为最大值,且布局实例6401c定位于沿y轴向上的下一行中,以便不超过距离d4。
[0563]
布局6400g图解说明根据一实施例的布局放置指令的另一参数。在一个实施例中,布局放置指令可使距离与布局实例中的一者相关联。在此示例中,将距离设定为等于d5,即最长电阻器布局组件的长度。因此,放置最长电阻器布局组件的一个实例,且下一位置移动到下一位置(此处,沿y轴向上)。举例来说,如上文所描述而放置连续布局分段直到放置所有电阻器布局组件以形成布局6400g。
[0564]
一些实施例的特征及优点可进一步包含包括条件语句的布局放置指令。图65图解说明用于条件布局放置指令的过程。在6501处,评估与布局放置指令相关联的条件。多种条件可与布局放置指相关联令,包含表示式(逻辑或算术)或基于与布局本身有关的因素的条件,下文呈现其实例。在6502处,可评估条件。如果条件是真,那么可在6503处执行一或多个布局放置指令。如果条件是假,那么可在6504处执行其它布局放置指令。尽管图65图解说明执行替代布局放置指令(例如,if《condition=true》then《layout placement instruction 1》,else《layout placement instruction 2》),但将理解,可仅在条件是真或假的情况下执行布局放置指令,否则条件语句结束(例如,if《condition=true》then《layout placement instruction》,else continue;或if《condition=false》then《layout placement instruction》,else continue)。
[0565]
在一个实施例中,条件布局放置指令确定位置是否被占用。在一些应用中,布局脚本可用于相同类型(或族系;例如,具有不同参数的相同功能电路组件)的多个电路。针对一些参数,特定布局实例可占用布局上的空间。因此,确定特定位置是否被占用可有利地指示正生成族系中的哪一电路。因此,可基于位置是否被占用而规定不同布局实例及/或不同位置,这可(举例来说)致使针对具有不同参数的相同类型的电路执行不同布局放置指令。举例来说,以下实例性布局放置指令可确定布局实例是否在特定位置处:placetap x y。如果位置(x,y)被占用,那么指令可在placetap之后执行布局放置指令。替代地,如果位置未被占用,那么指令可执行不同布局放置指令(例如,通过跳过placetap之后的行)。替代地,以下条件布局放置指令基于位置(x,y)=(10,10)是否被占用而将“cellname1”或“cellname2”放置于不同位置处:
[0566]
placetap 10 10
[0567]
place cellname1 0 5.5 r0
[0568]
place cellname2 4.9 5.5 r0
[0569]
如上文所提及,“cellname1”可用于具有一个参数集合的电路(例如,具有高电压开关的电路)且“cellname2”可用于具有不同参数集合的相同电路(例如,具有低电压开关的相同电路)。由于不同电路可具有不同布局间隔,因此不同单元可有利地定位于不同位置中。
[0570]
另一实例性条件布局放置指令可评估布局实例的属性且基于结果而执行不同布局放置指令。举例来说,条件布局放置指令可确定一或多个所规定布局实例是否包含于布
局中。如果所规定实例包含于布局中,那么可执行一或多个第一布局放置指令,且如果一或多个所规定布局实例并未在布局中,那么可执行一或多个第二布局放置指令。举例来说,可通过基于单元名称或实例名称来评估条件而执行确定布局实例是否包含于布局中。以下是根据一实施例的实例性条件布局放置指令:placeif《cell or instance name》《not-opt》contains《char(s) wildcards》。此指令可在“placeif”命令之后执行布局放置指令直到到达“placeend”命令为止。以下是“placeif”命令的实例:
[0571]
placeif cellnamecontains amp*//如果单元名称含有“amp《any》”,那么放置放大器。
[0572]
place amplifier_highgain 1.23 2.23 r0
[0573]
place amplifier_lowgain 4.3 0 r0
[0574]
placeend
[0575]
placeif instancenamecontains osc_res*//如果实例名称含有“osc_res《any》”,那么放置开关及多路复用器单元。
[0576]
place osc_resistor_switch1 1.23 2.23 r0
[0577]
place osc_res_mux 4.3 0 r0
[0578]
placeend
[0579]
placeif instancenamenotcontains osc_res*//如果实例名称不含有“osc_res《any》”,那么放置电阻器。
[0580]
placeres 0 0 0.56 0.8 r0 x y 85
[0581]
placeend
[0582]
其中“*”是通配符。其它通配符可包含:用于“或”的||;用于评估替代变量的&&(例如,“res*&&cap*”或“ch*3&&ch*5”)。将理解,各种各样的通配符运算子可用于(举例来说)构建条件布局放置指令的表示式。在一个实施例中,条件句可包含placeif及placeelse两者。实例是如下:
[0583]
placeif instancenamenotcontains osc_res*//如果实例名称不含有“osc_res《any》”,那么放置电阻器。
[0584]
placeres 0 0 0.56 0.8 r0 x y 85
[0585]
placeelse
[0586]
placetap 101 30
[0587]
placeres
ꢀ‑
3.14 9.75.56 0.8 r90
ꢀ‑
x y 31
[0588]
placeres 8.85 69.655 0.56 0.8 r0 x y 131h
[0589]
其中“31”是上文所描述的距离参数且“131h”是也如上文所描述的具有严格遵守的另一距离参数。
[0590]
图66图解说明根据一实施例的用于将晶体管并入到布局中的另一布局放置指令。如上文所提及,可从多个晶体管布局元件(例如晶体管布局元件6601到6604)形成晶体管。可使用一或多个布局放置指令来定位晶体管布局元件6601到6604以形成晶体管布局组件6610(例如,针对单个复合fet晶体管的布局组件)。在各种实施例中,可通过将晶体管布局组件6601与对应于其它电路系统(例如,在布局中向上的下一层级处)的多个其它布局实例一起定位而将晶体管布局组件6601并入到电路的布局中。如图66中所图解说明,将晶体管
布局组件6601与布局实例6611(例如,对应于子电路示意图)、布局实例6612(例如,对应于电容器)及布局实例6613a到6613h(例如,对应于电阻器分段)一起并入于布局中。布局放置指令可对每一布局实例6610到6613进行操作。在6600处图解说明针对自动生成的电阻器、自动生成的电容器、自动生成的晶体管及预定义子电路的自动生成的电路布局的实例。
[0591]
在各种实施例中,执行不同功能的多个不同类型的布局放置指令可形成放置集合(例如,放置语言),所述放置集合可用于自动定位布局实例以产生布局。以下仅是一个实例性布局放置指令集合:
[0592]
place libraryname cellname x y rotation//从示意图放置单元。
[0593]
placeinst instance_name x y rotation//基于实例名称而非单元名称而进行放置。
[0594]
placestep libraryname cellname x y stepdirection stepdistance rotation//放置并步进示意图中的单元;步长距离=间距(例如,预定义x或y长度 任选偏移间隔)。
[0595]
placestepcontinue libraryname cellname stepdirection stepdistance rotation//从以上单元步长放置于下一步长处,即最后步长x y处;跟随placestep。
[0596]
placestepcell libraryname cellname rotation//将非现有单元从上一单元步长放置于下一步长x y处;跟随placestep(例如,放置并未从示意图转换的布局实例)。
[0597]
placecell libraryname cellname x y rotation//放置并非在示意图中的单元(例如,将并非从示意图转换的单元以旋转放置于x y处)。
[0598]
placeres x y step_btwn_same_name_res step_btwn_diff_name_res rotation directionx directiony distanceforres(h hard stop or maxl)//从示意图放置多个电阻器;distanceforres设定针对一个电阻器行的最大距离,末尾的“h”字段定义硬停止,无%fudge因子;“maxl”字段替代数字将最大电阻器设定为距离。
[0599]
placecap x y step rotation distance_available_for_step//针对给定距离在示意图中将电容器放置成若干行。
[0600]
placefet x y xstep ystep#columns#rows//将晶体管(例如,m》1或并联)的晶体管布局元件放置于若干列与若干行的阵列中;从针对装置类型的公式计算xstep ystep。
[0601]
placetap x y//分接x,y,并且如果未发现任何事物(无其它实例占用位置(x,y)),那么执行下一行,且在于分接点处发现某事物之后执行所述行。
[0602]
placeif《cellnamecontains,instnamecontains,cellnamenotcontains,instnamenotcontains》《cellname or string, wildcards》//执行所有布局放置指令直到到达placeend为止。实例性用途:在不同基本单元之间进行区分。
[0603]
placeifelse《cellnamecontains,instnamecontains,cellnamenotcontains,instnamenotcontains》《cellname or string, wildcards》//如果满足准则,那么执行所有布局放置指令直到placeelse为止。如果未满足准则,那么运行命令btwn placeelse及placeend。实例性用途:单元的添加是否改变其它单元的放置。
[0604]
moveorigin shift_direction;finds prboundary and moves 0,0to lowest y,leftist x or both xy。用途:在定位之后,将0,0复位到预定义角(例如,左下角)以将经组合布局实例定位于较高层级布局中。
[0605]
以下是用于生成电阻器电路的布局的一个实例性布局脚本。以下实例性布局脚本可用于布局具有不同参数的电阻器的族系,其中布局实例中的一些布局实例可针对一些电阻器电路而存在且针对其它电阻器电路而不存在:
[0606]
layout,resistor
[0607]
//如果在电路中发现以下开关,那么放置所述开关中的一者。
[0608]
place generate stoneresistorswitchh 14.89 58.005 r180
[0609]
place generate stoneresistorswitchhb 14.89 58.005 r180
[0610]
place generate stoneresistorswitcht 0 0 r0
[0611]
place generate stoneresistorswitchtb 0 0 r0
[0612]
//检查x,y=10,10且基于其是否被占用而进行放置。
[0613]
placetap 10 10
[0614]
placeinstxkelvinp
ꢀ‑
1.675
ꢀ‑
4.83 r0
[0615]
placeinstxkelvinp 86.03 19.4 r270
[0616]
placetap 10 10
[0617]
placeinstxkelvinn 5.55
ꢀ‑
4.83 r0
[0618]
placeinstxkelvinn 61.9 20.335 r270
[0619]
placetap 10 10
[0620]
placestep generate stoneresistorswitchl 0 7.87x 7.99 r0
[0621]
placestep generate stoneresistorswitchl 158.4 7.87 x 7.99 r0
[0622]
placestepcontinue generate stoneresistorswitchlb x 7.99 r0
[0623]
//放置预定义多路复用器布局
[0624]
place generate stoneresistorimux0p125 42.345 49.635 r0
[0625]
place generate stoneresistorimux0p25 42.345 49.635 r0
[0626]
place generate stoneresistorimux0p5 42.345 49.635 r0
[0627]
place generate stoneresistorimux4 42.345 49.635 r0
[0628]
place generate stoneresistorimux8 42.345 49.635 r0
[0629]
place generate stoneresistorimux2 42.345 49.635 r0
[0630]
//基于已放置哪些开关(if)及放置于何处(tap)而放置电阻器
[0631]
placeifelse cellnamenotcontains switcht&&switchl
[0632]
placeres 0 0 0.56 0.8 r0 x y 85//如果“switcht”及“switchl”未在画布上,那么此处放置电阻器。
[0633]
placeelse
[0634]
placetap 101 20//否则基于101,20是否被占用(可取决于族系中的特定电路)而放置电阻器
[0635]
placeres
ꢀ‑
2.19 8.85 .56.8 r90
ꢀ‑
x y 31
[0636]
placeres 8.85 59.655 0.56 0.8 r0 x y 131h
[0637]
placeend
[0638]
moveorigin x//复位x以供较高层级使用
[0639]
moveorigin y//复位y以供较高层级使用
[0640]
endlayoutbio
[0641]
以上实例性布局放置指令仅是可使用的布局脚本及布局放置指令的一个实例性实施例。将理解,在本公开及权利要求书的范围内也可使用其它实施方案。
[0642]
实例性计算机系统
[0643]
图67图解说明根据特定实施例的实例性计算机系统硬件。本公开的各种实施例可以计算机可执行代码(软件)实施以用于执行本文中所描述的各种技术。图67图解说明根据各种实施例的用于执行软件的计算机的经简化实例。可使用一或多个此些计算机来执行本文中所描述的技术。如图67中所展示,计算机系统6700可包含一或多个处理器6701,例如多处理器cpu(例如,来自或)。处理器6701可从计算机可读存储媒体加载可执行程序代码,所述可执行代码在被执行时执行本文中所描述的技术中的一些或所有技术。处理器6701可耦合到此处表示为总线6705的一或多个总线,以与各种子系统进行通信。在此说明性实例中,处理器6701可与存储装置6702进行通信(例如,以检索可执行代码),所述存储装置可(举例来说)包括磁性存储装置、光学存储装置或固态存储装置。处理器6701可进一步经由总线6705而与存储器6703进行通信。存储器6703可表示若干种存储器,包含(举例来说)用于在程序执行期间存储指令及数据的随机存取存储器(ram)以及其中存储固定指令的只读存储器(rom)820。在一些实施例中,处理器6701可与可装卸式媒体(例如,cd-rom、dvd、蓝光(blu-ray)等)、基于可装卸式快闪存储器的驱动器或卡及/或此项技术中已知的其它类型的存储媒体进行通信。
[0644]
举例来说,处理器6701可经由总线6705而与网络接口6704进行通信。举例来说,网络接口6704可允许计算机系统6700与网络6710进行通信,所述网络可与其它计算机系统进行通信以执行本文中所描述的技术。在各种实施例中,举例来说,网络接口6704可包含用以支持多种以太网速率连接(例如,在办公室、服务器室或数据中心中)的以太网卡、wi-fi、基于ieee 802的系统及/或蜂窝式适配器、调制解调器(电话、卫星、缆线、isdn等)、数字订户线(dsl)单元及/或其它数据通信系统(举例来说)。
[0645]
在一些实施例中,可对一或多个服务器计算机执行本文中所描述的技术。在其它实施例中,举例来说,可对膝上型或桌上型计算机或者可包含输入/输出接口6705的其它计算机系统执行本文中所描述的技术中的一些或所有技术。输入/输出接口6705可包含用于从输入装置(例如,鼠标、键盘、触摸垫等等)接收信息及/或将信息提供到输出装置(例如,显示器)的硬件。
[0646]
虽然此处将总线6705表示为单个总线,但将理解,总线6705可包括多个总线。
[0647]
所属领域的技术人员将了解,计算机系统6700是说明性的且具有比系统6700多或少的组件的许多其它配置是可能的。
[0648]
在一些实施例中,本文中所描述的特征及技术可以在远程计算机系统上执行的软件(例如,在云中执行的软件即服务)来体现。图68图解说明可用于特定实施例中的各种计算机系统配置。在此实例中,可对经由网络6810(例如局域网(lan)、广域网(wan)或其它网络(例如,因特网))而耦合在一起的一或多个服务器计算机执行用于执行本文中所公开的技术中的一些或所有技术的可执行代码。举例来说,可对单个服务器或多个服务器6811到6813执行用于执行本文中所公开的技术中的一些或所有技术的计算机可执行代码。服务器6811到6813可具有如图67中所描述的计算机架构。根据各种实施例的软件可由服务器直接
执行或在虚拟机器上运行,所述虚拟机器(举例来说)在计算机系统硬件上执行,如所属领域的技术人员已知。在一些实施例中,举例来说,可在是数据中心6820到6821的部分的一或多个服务器上执行本公开的实施例。
[0649]
如上文所提及,本文中所描述的一些实施例可从用户接收输入。因此,举例来说,用户可与计算机系统6830到6832交互,所述计算机系统继而经由网络6810与一或多个服务器计算机6811到6814进行通信以执行本文中所描述的技术。
[0650]
图69图解说明根据一实施例的制作电路的过程。如上文所提及,本文中所描述的技术中的一些或所有技术可用作用于制作集成电路的过程的部分。举例来说,在6901处,在软件系统(例如,根据上文所描述的各种实施例的生成器软件系统)中接收规定待生成的电路的信息。在6902处,软件系统可生成示意图。在6903处,生成布局。在6904处,可使用布局来制作电路。举例来说,布局可被转换为用于表示布局中的几何形状的文件格式且用于创建光掩模或者加载到半导体制作工具中且用于制作物理半导体电路。在6905处,封装电路。举例来说,可将半导体晶片划分成个别半导体裸片(也称为“芯片”),且可封装半导体芯片中的一或多者。
[0651]
另外的实例性实施例
[0652]
各种实施例的特征及优点可关于根据如下单独或以组合形式的以下技术而自动生成电路。
[0653]
在各种实施例中,本文中所描述的技术可体现于计算机实施的方法、系统、设备以及存储机器(例如,计算机)可执行指令的计算机可读媒体中。
[0654]
以下内容是根据各种实施例的各种实例性方法。将理解,以下实例可以多种不同组合来进行组合。另外,将理解,鉴于本公开,其它实例性组合是可能的。因此,以下实例是说明性的且是非限制性的。
[0655]
实施例1.一种生成电路的计算机实施的方法,其包括:生成电路规范,所述生成电路规范包括:接收规定待生成的电路的参数;基于所述参数而选择将包含于所述电路中的预定义子电路示意图;基于所述参数而确定所述子电路示意图之间的连接;生成针对所述待生成的电路的电路规范,所述电路规范规定所述子电路示意图及所述子电路示意图之间的所述连接;及生成与所述待生成的电路相关联的布局脚本;以及将所述电路规范转换成电路示意图及电路布局,所述转换包括:选择所述电路规范中所规定的预定义子电路示意图;连接所述预定义子电路示意图以形成所述电路示意图;将所述电路示意图转换成多个布局实例;及基于与所述待生成的电路相关联的所述布局脚本而定位所述布局实例以产生所述电路布局。
[0656]
实施例2.根据实施例1所述的方法,其中所述预定义子电路示意图包括预定义模拟子电路示意图。
[0657]
实施例3.根据实施例1所述的方法,其中所述参数规定一或多个功能电路组件,且其中所述一或多个功能电路组件具有对应预定义子电路示意图。
[0658]
实施例4.根据实施例3所述的方法,其进一步包括生成对应于所述一或多个功能电路组件的一或多个符号,其中所述符号囊括所述所选择预定义子电路示意图。
[0659]
实施例5.根据实施例1所述的方法,其中所述布局脚本包括多个布局放置指令。
[0660]
实施例6.根据实施例1所述的方法,其中所述布局脚本经配置以定位来自多个电
路示意图的布局实例。
[0661]
实施例7.根据实施例6所述的方法,其中所述多个电路示意图与相同功能电路组件相关联。
[0662]
实施例8.根据实施例1所述的方法,其中在第一软件系统上执行所述生成电路规范且在第二软件系统上执行所述将所述电路规范转换为电路示意图及电路布局。
[0663]
实施例9.根据实施例8所述的方法,其中所述第二软件系统是电子设计自动化软件系统。
[0664]
实施例10.一种用于生成电路的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:生成电路规范,所述生成电路规范包括:接收规定待生成的电路的参数;基于所述参数而选择将包含于所述电路中的预定义子电路示意图;基于所述参数而确定所述子电路示意图之间的连接;生成针对所述待生成的电路的电路规范,所述电路规范规定所述子电路示意图及所述子电路示意图之间的所述连接;及生成与所述待生成的电路相关联的布局脚本;以及将所述电路规范转换成电路示意图及电路布局,所述转换包括:选择所述电路规范中所规定的预定义子电路示意图;连接所述预定义子电路示意图以形成所述电路示意图;将所述电路示意图转换成多个布局实例;及基于与所述待生成的电路相关联的所述布局脚本而定位所述布局实例以产生所述电路布局。
[0665]
根据实施例10所述的计算机系统与实施例2到9中的任何一或多个实施例组合。
[0666]
实施例11.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:生成电路规范,所述生成电路规范包括:接收规定待生成的电路的参数;基于所述参数而选择将包含于所述电路中的预定义子电路示意图;基于所述参数而确定所述子电路示意图之间的连接;生成针对所述待生成的电路的电路规范,所述电路规范规定所述子电路示意图及所述子电路示意图之间的所述连接;及生成与所述待生成的电路相关联的布局脚本;以及将所述电路规范转换成电路示意图及电路布局,所述转换包括:选择所述电路规范中所规定的预定义子电路示意图;连接所述预定义子电路示意图以形成所述电路示意图;将所述电路示意图转换成多个布局实例;及基于与所述待生成的电路相关联的所述布局脚本而定位所述布局实例以产生所述电路布局。
[0667]
根据实施例11所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例2到9中的任何一或多个实施例。
[0668]
实施例12.一种生成电路的计算机实施的方法,其包括:由在至少一个计算机上执行的至少一个软件系统接收对应于至少一个功能电路组件的多个电路规范参数;由所述至少一个软件系统基于所述电路规范参数而选择多个子电路示意图;及由所述至少一个软件系统组合所述子电路示意图以形成针对所述至少一个功能电路组件的电路示意图。
[0669]
实施例13.根据实施例12所述的方法,其中所述子电路示意图包括模拟子电路示意图。
[0670]
实施例14.根据实施例12所述的方法,其中所述子电路示意图包括预定义模拟子
电路示意图。
[0671]
实施例15.根据实施例14所述的方法,其中所述所选择多个子电路示意图是第二多个预定义模拟子电路示意图的子集。
[0672]
实施例16.根据实施例15所述的方法,其中所述第二多个预定义模拟子电路示意图对应于所述至少一个功能模拟电路组件。
[0673]
实施例17.根据实施例15所述的方法,其中所述多个子电路示意图包含用于使用不同电路系统来执行相同功能的替代子电路示意图。
[0674]
实施例18.根据实施例12所述的方法,所述子电路示意图包括具有不同电特性的多个模拟引脚。
[0675]
实施例19.根据实施例18所述的方法,其中所述不同电特性是不同电压或电流操作范围。
[0676]
实施例20.根据实施例12所述的方法,所述子电路示意图包括多个引脚,所述组合包括对所述子电路示意图的所述引脚进行映射。
[0677]
实施例21.根据实施例20所述的方法,其中所述多个引脚中的一或多个引脚是模拟引脚。
[0678]
实施例22.根据实施例20所述的方法,其中所述映射是基于至少一个引脚映图。
[0679]
实施例23.根据实施例22所述的方法,其中不同引脚映图规定针对所选择子电路示意图的不同组合的所述多个子电路示意图引脚之间的连接。
[0680]
实施例24.根据实施例22所述的方法,其中所述至少一个引脚映图是基于所述所选择子电路示意图。
[0681]
实施例25.根据实施例22所述的方法,其中所述引脚映图规定所述子电路示意图的引脚之间的连接。
[0682]
实施例26.根据实施例22所述的方法,其中所述引脚映图规定所述子电路示意图的引脚与所述电路示意图的输入或输出之间的连接。
[0683]
实施例27.根据实施例20所述的方法,其中经连接引脚具有预定兼容性。
[0684]
实施例28.根据实施例20所述的方法,其中对所述引脚进行映射包括在所述电路示意图中连接所述引脚。
[0685]
实施例29.根据实施例20所述的方法,其中由所述至少一个软件系统基于多个预定义规则而自动完成所述映射。
[0686]
实施例30.根据实施例12所述的方法,其中所述电路规范参数的不同值生成针对所述至少一个功能电路组件具有不同性质的不同模拟电路示意图。
[0687]
实施例31.根据实施例12所述的方法,其中针对不同对应功能电路组件的不同电路规范参数集合具有不同对应预定义子电路示意图集合。
[0688]
实施例32.根据实施例31所述的方法,其中不同电路规范参数集合的不同值从对应于不同功能电路组件的多个预定义子电路示意图集合中的一者选择预定义子电路示意图的不同子集。
[0689]
实施例33.根据实施例12所述的方法,所述多个电路规范参数包括以下各项中的一或多者:规定物理性质的参数或规定电性质的参数。
[0690]
实施例34.根据实施例12所述的方法,其进一步包括生成规定所选择子电路的网
表。
[0691]
实施例35.根据实施例34所述的方法,其中所述网表是verilog文件。
[0692]
实施例36.根据实施例12所述的方法,其中根据与所述至少一个功能电路组件相关联的规则集合而组合所述子电路示意图以形成针对所述至少一个功能电路组件的所述电路示意图。
[0693]
实施例37.根据实施例12所述的方法,其中使用不同相关联规则集合来处理对应于不同功能电路组件的不同电路规范参数以用于组合不同子电路示意图集合。
[0694]
实施例38.根据实施例12所述的方法,其中不同功能电路组件具有对应唯一预定义子电路示意图集合。
[0695]
实施例39.根据实施例38所述的方法,其中每一唯一预定义子电路示意图集合包括仅用于所述对应功能电路组件的一或多个唯一预定义模拟子电路示意图。
[0696]
实施例40.根据实施例38所述的方法,其中每一唯一预定义子电路示意图集合包括用于多个对应功能电路组件的一或多个预定义模拟子电路示意图。
[0697]
实施例41.根据实施例12所述的方法,所述电路规范参数包括变量及对应值。
[0698]
实施例42.根据实施例41所述的方法,其中所述变量及值是作为文本而接收。
[0699]
实施例43.根据实施例12所述的方法,其中所述电路规范参数包括规定所述电路示意图的性质的代码。
[0700]
实施例44.根据实施例43所述的方法,其中所述代码的不同值选择不同子电路示意图。
[0701]
实施例45.一种用于生成电路的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:由在至少一个计算机上执行的至少一个软件系统接收对应于至少一个功能电路组件的多个电路规范参数;由所述至少一个软件系统基于所述电路规范参数而选择多个子电路示意图;及由所述至少一个软件系统组合所述子电路示意图以形成针对所述至少一个功能电路组件的电路示意图。
[0702]
根据实施例45所述的计算机系统与实施例12到44中的任何一或多个实施例组合。
[0703]
实施例46.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:由在至少一个计算机上执行的至少一个软件系统接收对应于至少一个功能电路组件的多个电路规范参数;由所述至少一个软件系统基于所述电路规范参数而选择多个子电路示意图;及由所述至少一个软件系统组合所述子电路示意图以形成针对所述至少一个功能电路组件的电路示意图。
[0704]
根据实施例46所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例12到44中的任何一或多个实施例。
[0705]
实施例47.一种用于生成电路的系统,其包括:用于由在至少一个计算机上执行的至少一个软件系统接收对应于至少一个功能电路组件的多个电路规范参数的构件;用于由所述至少一个软件系统基于所述电路规范参数而选择多个子电路示意图的构件;及用于由所述至少一个软件系统组合所述子电路示意图以形成针对所述至少一个功能电路组件的电路示意图的构件。
[0706]
实施例48.一种生成电路的计算机实施的方法,其包括:由在至少一个计算机上执行的至少一个软件系统接收对应于至少一个功能电路组件的多个电路规范参数;及由所述至少一个软件系统基于所述电路规范参数而组合多个子电路布局以形成针对所述至少一个功能电路组件的电路布局。
[0707]
实施例49.根据实施例48所述的方法,其中所述子电路布局是模拟子电路布局。
[0708]
实施例50.根据实施例48所述的方法,其中所述子电路布局是预定义模拟子电路布局。
[0709]
实施例51.根据实施例50所述的方法,其中所述多个预定义模拟子电路布局的子集对应于所述至少一个功能模拟电路组件。
[0710]
实施例52.根据实施例48所述的方法,其中所述多个子电路布局包含用于使用不同电路系统来执行相同功能的替代子电路布局。
[0711]
实施例53.根据实施例48所述的方法,其中所述电路规范参数的不同值生成针对所述至少一个功能电路组件具有不同性质的不同模拟电路布局。
[0712]
实施例54.根据实施例48所述的方法,其中针对不同对应功能电路组件的不同电路规范参数集合具有不同对应预定义子电路布局集合。
[0713]
实施例55.根据实施例54所述的方法,其中每一电路规范参数集合的不同值组合来自对应于不同功能电路组件的多个预定义子电路布局集合中的一者的预定义子电路布局的不同子集。
[0714]
实施例56.根据实施例48所述的方法,所述多个电路规范参数包括以下各项中的一或多者:规定物理性质的参数或规定电性质的参数。
[0715]
实施例57.根据实施例48所述的方法,其中所述电路规范参数包括变量及对应值。
[0716]
实施例58.根据实施例57所述的方法,其中所述电路规范参数包括作为文本而接收的变量及值。
[0717]
实施例59.根据实施例48所述的方法,其中所述电路规范参数包括规定所述电路布局的性质的代码。
[0718]
实施例60.根据实施例59所述的方法,其中所述代码的不同值选择不同子电路布局。
[0719]
实施例61.根据实施例48所述的方法,其中所述组合是基于用以在所述电路布局中布置所述子电路布局的多个布局放置指令。
[0720]
实施例62.根据实施例61所述的方法,其中所述子电路布局中的至少一者具有第一高度及第一宽度,且其它子电路布局中的至少一者具有不同于所述第一高度的第二高度及不同于第二宽度的第二宽度。
[0721]
实施例63.根据实施例61所述的方法,其中所述布局放置指令是预定义的。
[0722]
实施例64.根据实施例61所述的方法,其中所述布局放置指令从外部数据记录存取放置数据。
[0723]
实施例65.根据实施例61所述的方法,其中在外部数据记录中预定义所述布局放置指令。
[0724]
实施例66.根据实施例61所述的方法,其中所述布局放置指令根据x、y坐标系统而布置所述子电路布局。
[0725]
实施例67.根据实施例61所述的方法,其中可从与不同对应布局放置指令相关联的不同子电路布局集合形成不同电路布局。
[0726]
实施例68.根据实施例61所述的方法,所述多个布局放置指令包括将一或多个子电路布局布置于特定坐标处的一或多个布局放置指令。
[0727]
实施例69.根据实施例61所述的方法,所述多个布局放置指令包括旋转一或多个子电路布局的一或多个布局放置指令。
[0728]
实施例70.根据实施例61所述的方法,其中所述多个布局放置指令是在序列中,其中基于所述布局放置指令的所述序列而连续布置特定子电路布局。
[0729]
实施例71.根据实施例61所述的方法,其中所述多个布局放置指令包括可执行指令,所述可执行指令存取规定所述子电路布局的所述布置的数据。
[0730]
实施例72.根据实施例71所述的方法,其中所述数据规定将针对每一子电路布局而执行的一或多个布局放置指令。
[0731]
实施例73.根据实施例71所述的方法,其中所述数据规定用以放置多个所述子电路布局的x轴及y轴坐标。
[0732]
实施例74.根据实施例71所述的方法,其中所述数据规定所述子电路布局中的一或多者的旋转。
[0733]
实施例75.根据实施例61所述的方法,其中所述电路规范参数的不同值使用对应布局放置指令来组合不同子电路布局,且其中所执行的特定布局放置指令是特定于从特定电路规范参数值生成的特定模拟电路布局。
[0734]
实施例76.根据实施例61所述的方法,其进一步包括基于特定子电路布局组合而执行多个布局放置指令集合中的一者以形成所述电路布局,其中不同子电路布局组合具有对应不同布局放置指令。
[0735]
实施例77.一种用于生成电路的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:由在至少一个计算机上执行的至少一个软件系统接收对应于至少一个功能电路组件的多个电路规范参数;及由所述至少一个软件系统基于所述电路规范参数而组合多个子电路布局以形成针对所述至少一个功能电路组件的电路布局。
[0736]
根据实施例77所述的计算机系统与实施例48到76中的任何一或多个实施例组合。
[0737]
实施例78.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:由在至少一个计算机上执行的至少一个软件系统接收对应于至少一个功能电路组件的多个电路规范参数;及由所述至少一个软件系统基于所述电路规范参数而组合多个子电路布局以形成针对所述至少一个功能电路组件的电路布局。
[0738]
根据实施例78所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例48到76中的任何一或多个实施例。
[0739]
实施例79.一种用于生成电路的系统,其包括:用于由在至少一个计算机上执行的至少一个软件系统接收对应于至少一个功能电路组件的多个电路规范参数的构件;及用于
由所述至少一个软件系统基于所述电路规范参数而组合多个子电路布局以形成针对所述至少一个功能电路组件的电路布局的构件。
[0740]
实施例80.一种生成电路的计算机实施的方法,其包括:生成待生成的电路的第一模型;生成对应于所述第一模型的电路规范参数;基于所述电路规范参数而选择多个子电路示意图;及组合所述子电路示意图以形成针对所述待生成的电路的电路示意图,其中所述经组合子电路示意图形成对应于所述第一模型的晶体管层级模型。
[0741]
实施例81.根据实施例80所述的方法,其中所述第一模型是行为模型。
[0742]
实施例82.根据实施例80所述的方法,其中所述第一模型的多个行为层级模拟基本上匹配所述晶体管层级模型的对应多个晶体管层级模拟。
[0743]
实施例83.根据实施例80所述的方法,其中所述第一模型可基于所述电路规范参数而配置以产生针对所述第一模型的多个行为,且其中当所述第一模型与所述晶体管层级模型具有相同参数时,所述第一模型的模拟与所述晶体管层级模型的模拟基本上匹配。
[0744]
实施例84.根据实施例80所述的方法,其中所述第一模型的多个行为层级模拟匹配所述晶体管层级模型的对应多个晶体管层级模拟。
[0745]
实施例85.根据实施例80所述的方法,其中所述子电路示意图包括预定义模拟子电路示意图。
[0746]
实施例86.根据实施例80所述的方法,其进一步包括:将所述电路示意图转换为多个布局实例;及基于布局脚本而定位所述布局实例以产生电路布局。
[0747]
实施例87.一种用于生成电路的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:生成待生成的电路的第一模型;生成对应于所述第一模型的电路规范参数;基于所述电路规范参数而选择多个子电路示意图;及组合所述子电路示意图以形成针对所述待生成的电路的电路示意图,其中所述经组合子电路示意图形成对应于所述第一模型的晶体管层级模型。
[0748]
实施例88.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:生成待生成的电路的第一模型;生成对应于所述第一模型的电路规范参数;基于所述电路规范参数而选择多个子电路示意图;及组合所述子电路示意图以形成针对所述待生成的电路的电路示意图,其中所述经组合子电路示意图形成对应于所述第一模型的晶体管层级模型。
[0749]
根据实施例87所述的计算机系统与实施例80到86中的任何一或多个实施例组合。
[0750]
根据实施例88所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例80到86中的任何一或多个实施例。
[0751]
实施例89.一种用于生成电路的系统,其包括:用于生成待生成的电路的第一模型的构件;用于生成对应于所述第一模型的电路规范参数的构件;用于基于所述电路规范参数而选择多个子电路示意图的构件;及用于组合所述子电路示意图以形成针对所述待生成的电路的电路示意图的构件,其中所述经组合子电路示意图形成对应于所述第一模型的晶体管层级模型。
[0752]
实施例90.一种生成电路的计算机实施的方法,其包括:接收规定待生成的电路的
信息;基于所述信息而选择对应于一或多个子电路示意图的一或多个引脚列表,每一引脚列表包括用于对应子电路示意图的子电路示意图引脚;基于所述信息而选择至少一个符号的多个预定义引脚的子集;在所述子电路示意图引脚与所述至少一个符号的所述多个预定义引脚的所述子集之间建立连接;及生成电路规范,所述电路规范包括:来自对应于一或多个子电路示意图的所述一或多个引脚列表的子电路示意图引脚;所述至少一个符号的所述多个预定义引脚的所述子集;及所述子电路示意图引脚与所述至少一个符号的所述多个预定义引脚的所述子集之间的所述连接。
[0753]
实施例91.根据实施例90所述的方法,其进一步包括在eda工具中处理所述电路规范以产生电路示意图。
[0754]
实施例92.根据实施例90所述的方法,其中所述引脚列表及所述符号对应于第一功能电路组件。
[0755]
实施例93.根据实施例92所述的方法,其中不同功能电路组件具有不同相关联子电路示意图引脚列表以及功能电路组件符号的预定义引脚。
[0756]
实施例94.根据实施例90所述的方法,其进一步包括基于所述信息而检索布局脚本,其中所述布局脚本经配置以针对从所述电路规范生成的电路而自动定位布局实例。
[0757]
实施例95.根据实施例90所述的方法,其中所述信息包括参数。
[0758]
实施例96.根据实施例95所述的方法,其进一步包括:检索参数极限;及将所述参数与所述参数极限进行比较以验证所述参数。
[0759]
实施例97.根据实施例90所述的方法,其进一步包括:确定组件值;及将所述组件值编码于与多个组件符号相关联的标识符中,其中所述电路规范进一步包括所述多个组件符号。
[0760]
实施例98.一种用于生成电路的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收规定待生成的电路的信息;基于所述信息而选择对应于一或多个子电路示意图的一或多个引脚列表,每一引脚列表包括用于对应子电路示意图的子电路示意图引脚;基于所述信息而选择至少一个符号的多个预定义引脚的子集;在所述子电路示意图引脚与所述至少一个符号的所述多个预定义引脚的所述子集之间建立连接;及生成电路规范,所述电路规范包括:来自对应于一或多个子电路示意图的所述一或多个引脚列表的子电路示意图引脚;所述至少一个符号的所述多个预定义引脚的所述子集;及所述子电路示意图引脚与所述至少一个符号的所述多个预定义引脚的所述子集之间的所述连接。
[0761]
实施例99.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收规定待生成的电路的信息;基于所述信息而选择对应于一或多个子电路示意图的一或多个引脚列表,每一引脚列表包括用于对应子电路示意图的子电路示意图引脚;基于所述信息而选择至少一个符号的多个预定义引脚的子集;在所述子电路示意图引脚与所述至少一个符号的所述多个预定义引脚的所述子集之间建立连接;及生成电路规范,所述电路规范包括:来自对应于一或多个子电路示意图的所述一或多个引脚列表的子电路示意图引脚;所述至少一个符号的所述多个预定义引脚的所述子集;及所述子电路示意图引脚与所述至少一个符号的所述多个
预定义引脚的所述子集之间的所述连接。
[0762]
根据实施例98所述的计算机系统与实施例90到97中的任何一或多个实施例组合。
[0763]
根据实施例99所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例90到97中的任何一或多个实施例。
[0764]
实施例100.一种用于生成电路的系统,其包括:用于接收规定待生成的电路的信息的构件;用于基于所述信息而选择对应于一或多个子电路示意图的一或多个引脚列表的构件,每一引脚列表包括用于对应子电路示意图的子电路示意图引脚;用于基于所述信息而选择至少一个符号的多个预定义引脚的子集的构件;用于在所述子电路示意图引脚与所述至少一个符号的所述多个预定义引脚的所述子集之间建立连接的构件;及用于生成电路规范的构件,所述电路规范包括:来自对应于一或多个子电路示意图的所述一或多个引脚列表的子电路示意图引脚;所述至少一个符号的所述多个预定义引脚的所述子集;及所述子电路示意图引脚与所述至少一个符号的所述多个预定义引脚的所述子集之间的所述连接。
[0765]
实施例101.一种生成电路组件的计算机实施的方法,其包括:接收待生成的组件的总属性值;至少基于所述总属性值而确定所述待生成的组件的第二属性值;确定具有所述第二属性值的所述组件的至少一个数目n,所述组件将经组合以形成具有所述总属性值的所述组件;生成晶体管层级示意图,所述晶体管层级示意图包括配置有所述第二属性值的多个组件;及生成布局,其中所述布局包括与经配置以产生所述总属性值的所述组件对应的n个布局实例。
[0766]
实施例102.根据实施例101所述的方法,其中所述待生成的组件是以下各项中的一者:晶体管、电阻器或电容器。
[0767]
实施例103.根据实施例101所述的方法,其进一步包括生成电路规范,所述电路规范规定用以产生所述总属性值的所述n个组件的配置,其中基于所述电路规范而生成所述晶体管层级示意图。
[0768]
实施例104.根据实施例101所述的方法,其进一步包括接收至少一个布局参数,其中基于所述至少一个布局参数而确定所生成的所述组件的所述第二属性值。
[0769]
实施例105.根据实施例104所述的方法,其中布局参数规定沿着所述待生成的组件的至少一个尺寸的长度。
[0770]
实施例106.根据实施例104所述的方法,其中布局参数规定电阻器布局分段长度。
[0771]
实施例107.根据实施例104所述的方法,其中布局参数规定沿着单位电容器的第一尺寸的预定义最大长度。
[0772]
实施例108.根据实施例101所述的方法,其中所述总属性值是待生成的电阻器的总电阻。
[0773]
实施例109.根据实施例101所述的方法,其中所述总属性值是待生成的电容器的总电容。
[0774]
实施例110.根据实施例101所述的方法,其中所述总属性值是基于待生成的晶体管的导通电阻而确定的总栅极宽度。
[0775]
实施例111.一种用于生成电路组件的计算机系统,其包括:一或多个处理器;及非
暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收待生成的组件的总属性值;至少基于所述总属性值而确定所生成的所述组件的第二属性值;确定具有所述第二属性值的所述组件的至少一个数目n,所述组件将经组合以形成具有所述总属性值的所述组件;生成晶体管层级示意图,所述晶体管层级示意图包括配置有所述第二属性值的多个组件;及生成布局,其中所述布局包括与经配置以产生所述总属性值的所述组件对应的n个布局实例。
[0776]
实施例112.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收待生成的组件的总属性值;至少基于所述总属性值而确定所生成的所述组件的第二属性值;确定具有所述第二属性值的所述组件的至少一个数目n,所述组件将经组合以形成具有所述总属性值的所述组件;生成晶体管层级示意图,所述晶体管层级示意图包括配置有所述第二属性值的多个组件;及生成布局,其中所述布局包括与经配置以产生所述总属性值的所述组件对应的n个布局实例。
[0777]
根据实施例111所述的计算机系统与实施例101到110中的任何一或多个实施例组合。
[0778]
根据实施例112所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例101到110中的任何一或多个实施例。
[0779]
实施例113.一种用于生成电路组件的系统,其包括:用于接收待生成的组件的总属性值的构件;用于至少基于所述总属性值而确定所生成的所述组件的第二属性值的构件;用于确定具有所述第二属性值的所述组件的至少一个数目n的构件,所述组件将经组合以形成具有所述总属性值的所述组件;用于生成晶体管层级示意图的构件,所述晶体管层级示意图包括配置有所述第二属性值的多个组件;及用于生成布局的构件,其中所述布局包括与经配置以产生所述总属性值的所述组件对应的n个布局实例。
[0780]
实施例114.一种生成电路的计算机实施的方法,其包括:接收规定待生成的模拟电路组件的信息;基于所述信息的至少一部分而检索布局参数;基于所述信息及所述布局参数而确定所述待生成的模拟电路组件的属性;生成包括所述模拟电路组件中的一或多者的模拟电路的晶体管层级示意图,其中所述一或多个模拟电路组件配置有所述属性;及从所述晶体管层级示意图生成布局,其中所述布局包括对应于所述一或多个模拟电路组件的多个布局实例,且其中基于所述模拟电路组件的所述属性通过布局脚本而在所述布局中自动定位每一布局实例。
[0781]
实施例115.一种用于生成电路的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收规定待生成的模拟电路组件的信息;基于所述信息的至少一部分而检索布局参数;基于所述信息及所述布局参数而确定所述待生成的模拟电路组件的属性;生成包括所述模拟电路组件中的一或多者的模拟电路的晶体管层级示意图,其中所述一或多个模拟电路组件配置有所述属性;及从所述晶体管层级示意图生成布局,其中所述布局包括对应于所述一或多个模拟电路组件的
多个布局实例,且其中基于所述模拟电路组件的所述属性通过布局脚本而在所述布局中自动定位每一布局实例。
[0782]
实施例116.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收规定待生成的模拟电路组件的信息;基于所述信息的至少一部分而检索布局参数;基于所述信息及所述布局参数而确定所述待生成的模拟电路组件的属性;生成包括所述模拟电路组件中的一或多者的模拟电路的晶体管层级示意图,其中所述一或多个模拟电路组件配置有所述属性;及从所述晶体管层级示意图生成布局,其中所述布局包括对应于所述一或多个模拟电路组件的多个布局实例,且其中基于所述模拟电路组件的所述属性通过布局脚本而在所述布局中自动定位每一布局实例。
[0783]
实施例117.一种用于生成电路的系统,其包括:用于接收规定待生成的模拟电路组件的信息的构件;用于基于所述信息的至少一部分而检索布局参数的构件;用于基于所述信息及所述布局参数而确定所述待生成的模拟电路组件的属性的构件;用于生成包括所述模拟电路组件中的一或多者的模拟电路的晶体管层级示意图的构件,其中所述一或多个模拟电路组件配置有所述属性;及用于从所述晶体管层级示意图生成布局的构件,其中所述布局包括对应于所述一或多个模拟电路组件的多个布局实例,且其中基于所述模拟电路组件的所述属性通过布局脚本而在所述布局中自动定位每一布局实例。
[0784]
实施例118.一种生成电子组件示意图的计算机实施的方法,其包括:接收规定待生成的电子电路的信息;基于所述信息而确定所述电子电路的至少一个组件的组件值;生成多个组件符号;将所述组件值编码于与所述组件符号中的每一者相关联的标识符中;在所述组件符号之间建立连接;及生成电路规范以串联或并联配置所述组件符号。
[0785]
实施例119.根据实施例118所述的方法,其中所述标识符包括符号名称。
[0786]
实施例120.根据实施例118所述的方法,其中所述组件是电阻器,且其中所述组件值包括电阻。
[0787]
实施例121.根据实施例118所述的方法,其中所述组件是电容器,且其中所述组件值包括电容。
[0788]
实施例122.根据实施例118所述的方法,其中所述组件是晶体管,且其中所述组件值包括栅极宽度。
[0789]
实施例123.根据实施例122所述的方法,其中所述组件值进一步包括指状部数目。
[0790]
实施例124.一种用于生成电子组件示意图的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收规定待生成的电子电路的信息;基于所述信息而确定所述电子电路的至少一个组件的组件值;生成多个组件符号;将所述组件值编码于与所述组件符号中的每一者相关联的标识符中;在所述组件符号之间建立连接;及生成电路规范以串联或并联配置所述组件符号。
[0791]
实施例125.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收规定待生成的电子电路的信息;基于所述信息而确定所述电子电路的至少一个组件的组件值;生成多个组件符号;将所述组件值编码于与所述组件符号中的每一者相关联的标识符中;在所述组件
符号之间建立连接;及生成电路规范以串联或并联配置所述组件符号。
[0792]
根据实施例124所述的计算机系统与实施例118到123中的任何一或多个实施例组合。
[0793]
根据实施例125所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例118到123中的任何一或多个实施例。
[0794]
实施例126.一种用于生成电子组件示意图的系统,其包括:用于接收规定待生成的电子电路的信息的构件;用于基于所述信息而确定所述电子电路的至少一个组件的组件值的构件;用于生成多个组件符号的构件;用于将所述组件值编码于与所述组件符号中的每一者相关联的标识符中的构件;用于在所述组件符号之间建立连接的构件;及用于生成电路规范以串联或并联配置所述组件符号的构件。
[0795]
实施例127.一种生成电子组件示意图的计算机实施的方法,其包括:接收规定一或多个组件的电路规范,所述电路规范包括一或多个对应标识符;生成所述一或多个组件的一或多个示意图符号,其中所述一或多个示意图符号与所述一或多个对应标识符相关联;读取与所述一或多个符号相关联的所述标识符;及将所述组件的示意图表示插入到每一符号中,其中基于与所述符号相关联的所述标识符而设定所述组件的所述示意图表示的一或多个属性。
[0796]
实施例128.根据实施例127所述的方法,其中所述标识符将属性值编码。
[0797]
实施例129.根据实施例127所述的方法,其中所述标识符包括符号名称。
[0798]
实施例130.根据实施例129所述的方法,其中所述符号名称将属性值编码。
[0799]
实施例131.根据实施例127所述的方法,其中所述组件是电阻器,且其中所述一或多个属性包括电阻。
[0800]
实施例132.根据实施例127所述的方法,其中所述组件是电容器,且其中所述一或多个属性包括电容。
[0801]
实施例133.根据实施例127所述的方法,其中所述组件是晶体管,且其中所述一或多个属性包括栅极宽度。
[0802]
实施例134.根据实施例133所述的方法,其中所述一或多个属性进一步包括指状部数目。
[0803]
实施例135.一种用于生成电子组件示意图的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收规定一或多个组件的电路规范,所述电路规范包括一或多个对应标识符;生成所述一或多个组件的一或多个示意图符号,其中所述一或多个示意图符号与所述一或多个对应标识符相关联;读取与所述一或多个符号相关联的所述标识符;及将所述组件的示意图表示插入到每一符号中,其中基于与所述符号相关联的所述标识符而设定所述组件的所述示意图表示的一或多个属性。
[0804]
实施例136.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收规定一或多个组件的电路规范,所述电路规范包括一或多个对应标识符;生成所述一或多个组件的一或多
个示意图符号,其中所述一或多个示意图符号与所述一或多个对应标识符相关联;读取与所述一或多个符号相关联的所述标识符;及将所述组件的示意图表示插入到每一符号中,其中基于与所述符号相关联的所述标识符而设定所述组件的所述示意图表示的一或多个属性。
[0805]
根据实施例135所述的计算机系统与实施例127到134中的任何一或多个实施例组合。
[0806]
根据实施例136所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例127到134中的任何一或多个实施例。
[0807]
实施例137.一种用于生成电子组件示意图的系统,其包括:用于接收规定一或多个组件的电路规范的构件,所述电路规范包括一或多个对应标识符;用于生成所述一或多个组件的一或多个示意图符号的构件,其中所述一或多个示意图符号与所述一或多个对应标识符相关联;用于读取与所述一或多个符号相关联的所述标识符的构件;及用于将所述组件的示意图表示插入到每一符号中的构件,其中基于与所述符号相关联的所述标识符而设定所述组件的所述示意图表示的一或多个属性。
[0808]
实施例138.一种生成电阻器的计算机实施的方法,其包括:接收第一电阻器值;将所述电阻器值转换成多个电阻器布局分段;及基于一或多个布局放置指令而自动放置所述多个电阻器布局分段以形成所述第一电阻器值。
[0809]
实施例139.根据实施例138所述的方法,其中将第一电阻器布局分段放置于初始位置处,且将其它电阻器布局分段放置于从所述初始位置偏移的位置处。
[0810]
实施例140.根据实施例139所述的方法,其中所述偏移是基于每一电阻器布局分段的宽度。
[0811]
实施例141.根据实施例140所述的方法,其中所述偏移进一步基于邻近的布局分段之间的预定义间隔。
[0812]
实施例142.根据实施例141所述的方法,其中所述预定义间隔是基于设计规则检查(drc)值。
[0813]
实施例143.根据实施例139所述的方法,其中沿着每一电阻器布局分段的长度并联放置电阻器布局分段。
[0814]
实施例144.根据实施例139所述的方法,其中使电阻器布局分段旋转在所述一或多个布局放置指令中所规定的量。
[0815]
实施例145.根据实施例139所述的方法,其中根据在所述一或多个布局放置指令中所规定的极性而沿着一轴依次放置电阻器布局分段。
[0816]
实施例146.根据实施例138所述的方法,其中每一电阻器布局分段具有唯一标识符,所述方法进一步包括基于所述唯一标识符而对所述电阻器布局分段进行分类并依次放置每一电阻器布局分段。
[0817]
实施例147.根据实施例138所述的方法,其中串联配置所述电阻器布局分段的第一部分且并联配置所述电阻器布局分段的第二部分。
[0818]
实施例148.根据实施例138所述的方法,其中至少第一多个所述电阻器布局分段具有相同长度及宽度。
[0819]
实施例149.一种用于生成电阻器的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收第一电阻器值;将所述电阻器值转换成多个电阻器布局分段;及基于一或多个布局放置指令而自动放置所述多个电阻器布局分段以形成所述第一电阻器值。
[0820]
实施例150.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收第一电阻器值;将所述电阻器值转换成多个电阻器布局分段;及基于一或多个布局放置指令而自动放置所述多个电阻器布局分段以形成所述第一电阻器值。
[0821]
根据实施例149所述的计算机系统与实施例138到148中的任何一或多个实施例组合。
[0822]
根据实施例150所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例138到148中的任何一或多个实施例。
[0823]
实施例151.一种用于生成电阻器的系统,其包括:用于接收第一电阻器值的构件;用于将所述电阻器值转换成多个电阻器布局分段的构件;及用于基于一或多个布局放置指令而自动放置所述多个电阻器布局分段以形成所述第一电阻器值的构件。
[0824]
实施例152.一种生成电阻器的计算机实施的方法,其包括:接收第一电阻器值;确定以下各项中的一者或两者:规定将被串联配置的第一多个电阻器分段的第一数目;及规定将被并联配置的第二多个电阻器分段的第二数目,以近似产生所述第一电阻器值;以及生成电路规范以串联配置所述第一数目个电阻器分段及/或并联配置所述第二数目个电阻器分段。
[0825]
实施例153.根据实施例152所述的方法,其中所述第一电阻器值跨越一定范围的值而变化。
[0826]
实施例154.根据实施例152所述的方法,其中所述第一电阻器值是作为具有相关联电阻器组件类型的参数而接收。
[0827]
实施例155.根据实施例152所述的方法,其进一步包括接收电阻器分段的至少一个预定义物理尺寸,其中所述第一多个电阻器分段及所述第二多个电阻器分段各自具有所述至少一个预定义物理尺寸,且其中所述确定将被串联配置的电阻器分段的所述第一数目及将被并联配置的电阻器分段的所述第二数目是基于所述至少一个预定义物理尺寸。
[0828]
实施例156.根据实施例155所述的方法,其中所述至少一个预定义物理尺寸包含预定义电阻器分段长度。
[0829]
实施例157.根据实施例156所述的方法,其中所述至少一个预定义物理尺寸包含预定义电阻器分段宽度。
[0830]
实施例158.根据实施例155所述的方法,其中所述电阻器分段的所述至少一个预定义物理尺寸与所述第一电阻器值相关联。
[0831]
实施例159.根据实施例152所述的方法,其中具有不同电阻器值的不同电阻器具有不同对应预定义电阻器分段长度。
[0832]
实施例160.根据实施例152所述的方法,其进一步包括接收与所述第一电阻器值
相关联的电阻率,其中所述确定将被串联配置的电阻器分段的所述第一数目及将被并联配置的电阻器分段的所述第二数目是基于所述电阻率。
[0833]
实施例161.根据实施例152所述的方法,其中所述第一电阻器值是由用户规定。
[0834]
实施例162.根据实施例152所述的方法,其进一步包括接收一或多个参数,其中基于所述参数而确定所述第一电阻器值。
[0835]
实施例163.根据实施例152所述的方法,其中所述电路规范规定对应于所述多个电阻器分段的多个组件及所述多个组件之间的连接。
[0836]
实施例164.根据实施例163所述的方法,其中所述电路规范是网表。
[0837]
实施例165.根据实施例152所述的方法,其进一步包括将所述电路规范从第一软件系统发送到第二软件系统,所述第二软件系统基于所述电路规范而生成示意图。
[0838]
实施例166.根据实施例165所述的方法,其进一步包括由所述第二软件系统接收所述多个电阻器分段的预定义长度及预定义宽度,所述预定义长度及所述预定义宽度编码于所述电路规范中与所述电阻器分段对应的组件的标识符中。
[0839]
实施例167.根据实施例166所述的方法,其中所述标识符是符号名称。
[0840]
实施例168.根据实施例166所述的方法,其中所述标识符进一步将电阻器类型编码。
[0841]
实施例169.根据实施例165所述的方法,其进一步包括由所述第二软件系统从第一存储位置接收所述多个电阻器分段的预定义长度及预定义宽度。
[0842]
实施例170.根据实施例152所述的方法,其进一步包括基于所述电路规范而生成示意图,所述示意图包括针对所述第一数目个电阻器分段及所述第二数目个电阻器分段的示意图符号。
[0843]
实施例171.根据实施例170所述的方法,其中所述示意图符号是包括多个引脚的空示意图符号,所述方法进一步包括将电阻器自动插入于所述示意图符号中的每一者中且连接所述电阻器的端子与所述示意图符号的所述引脚。
[0844]
实施例172.根据实施例170所述的方法,其进一步包括将示意图符号名称映射到所述电阻器的属性。
[0845]
实施例173.根据实施例152所述的方法,其进一步包括生成布局,所述布局包括针对串联的所述第一数目个电阻器分段及并联的所述第二数目个电阻器分段的多个多边形。
[0846]
实施例174.根据实施例173所述的方法,其进一步包括执行多个预定义布局放置指令以在所述布局中定位所述多边形。
[0847]
实施例175.一种用于生成电阻器的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收第一电阻器值;确定以下各项中的一者或两者:规定将被串联配置的第一多个电阻器分段的第一数目;及规定将被并联配置的第二多个电阻器分段的第二数目,以近似产生所述第一电阻器值;以及生成电路规范以串联配置所述第一数目个电阻器分段及/或并联配置所述第二数目个电阻器分段。
[0848]
实施例176.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收第一电阻器值;
确定以下各项中的一者或两者:规定将被串联配置的第一多个电阻器分段的第一数目;及规定将被并联配置的第二多个电阻器分段的第二数目,以近似产生所述第一电阻器值;以及生成电路规范以串联配置所述第一数目个电阻器分段及/或并联配置所述第二数目个电阻器分段。
[0849]
根据实施例175所述的计算机系统与实施例152到174中的任何一或多个实施例组合。
[0850]
根据实施例176所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例152到174中的任何一或多个实施例。
[0851]
实施例177.一种用于生成电阻器的系统,其包括:用于接收第一电阻器值的构件;用于确定以下各项中的一者或两者以近似产生所述第一电阻器值的构件:规定将被串联配置的第一多个电阻器分段的第一数目;及规定将被并联配置的第二多个电阻器分段的第二数目;及用于生成电路规范以串联配置所述第一数目个电阻器分段及/或并联配置所述第二数目个电阻器分段的构件。
[0852]
实施例178.一种生成电阻器的计算机实施的方法,其包括:接收电阻器值;生成规定多个组件的配置的电路规范;基于所述电路规范而生成与基于所述电路规范而耦合在一起的所述多个组件对应的多个示意图符号,其中所述多个示意图符号生成为不具有电阻器分段;及将电阻器分段自动插入于所述示意图符号中的每一者中并连接所述电阻器的端子与所述示意图符号的引脚,其中所述多个组件与所述经插入电阻器分段形成针对具有所述电阻器值的电阻器网络的示意图。
[0853]
实施例179.根据实施例178所述的方法,其中所述符号响应于所述电路规范而生成为空符号。
[0854]
实施例180.根据实施例178所述的方法,其进一步包括将属性指派给所述电阻器。
[0855]
实施例181.根据实施例180所述的方法,其中将所述电阻器的属性编码于所述电路规范中。
[0856]
实施例182.根据实施例180所述的方法,其中从存储位置检索所述电阻器的属性。
[0857]
实施例183.根据实施例178所述的方法,其中所述电路规范是由第一软件系统生成且所述示意图是由第二软件系统生成。
[0858]
实施例184.根据实施例183所述的方法,其中所述第二软件系统是电子设计自动化软件系统。
[0859]
实施例185.一种用于生成电阻器的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收电阻器值;生成规定多个组件的配置的电路规范;基于所述电路规范而生成与基于所述电路规范而耦合在一起的所述多个组件对应的多个示意图符号,其中所述多个示意图符号生成为不具有电阻器分段;及将电阻器分段自动插入于所述示意图符号中的每一者中并连接所述电阻器的端子与所述示意图符号的引脚,其中所述多个组件与所述经插入电阻器分段形成针对具有所述电阻器值的电阻器网络的示意图。
[0860]
实施例186.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,
所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收电阻器值;生成规定多个组件的配置的电路规范;基于所述电路规范而生成与基于所述电路规范而耦合在一起的所述多个组件对应的多个示意图符号,其中所述多个示意图符号生成为不具有电阻器分段;及将电阻器分段自动插入于所述示意图符号中的每一者中并连接所述电阻器的端子与所述示意图符号的引脚,其中所述多个组件与所述经插入电阻器分段形成针对具有所述电阻器值的电阻器网络的示意图。
[0861]
根据实施例185所述的计算机系统与实施例178到184中的任何一或多个实施例组合。
[0862]
根据实施例186所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例178到184中的任何一或多个实施例。
[0863]
实施例187.一种用于生成电阻器的系统,其包括:用于接收电阻器值的构件;用于生成规定多个组件的配置的电路规范的构件;用于基于所述电路规范而生成与基于所述电路规范而耦合在一起的所述多个组件对应的多个示意图符号的构件,其中所述多个示意图符号生成为不具有电阻器分段;及用于将电阻器分段自动插入于所述示意图符号中的每一者中并连接所述电阻器的端子与所述示意图符号的引脚的构件,其中所述多个组件与所述经插入电阻器分段形成针对具有所述电阻器值的电阻器网络的示意图。
[0864]
实施例188.一种生成电阻器的计算机实施的方法,其包括:接收第一电阻器值;生成规定多个组件的配置的电路规范,其中所述多个组件对应于具有至少一个预定义物理尺寸的电阻器分段;基于所述电路规范而生成包括与所述多个组件对应的所述电阻器分段的示意图,所述多个组件基于所述电路规范而耦合在一起以产生所述第一电阻器值;及基于所述示意图而生成包括与所述电阻器分段对应的多个多边形的布局,其中基于所述电阻器分段的所述至少一个预定义物理尺寸而在所述布局中自动放置所述多个多边形。
[0865]
实施例189.一种用于生成电阻器的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收第一电阻器值;生成规定多个组件的配置的电路规范,其中所述多个组件对应于具有至少一个预定义物理尺寸的电阻器分段;基于所述电路规范而生成包括与所述多个组件对应的所述电阻器分段的示意图,所述多个组件基于所述电路规范而耦合在一起以产生所述第一电阻器值;及基于所述示意图而生成包括与所述电阻器分段对应的多个多边形的布局,其中基于所述电阻器分段的所述至少一个预定义物理尺寸而在所述布局中自动放置所述多个多边形。
[0866]
实施例190.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收第一电阻器值;生成规定多个组件的配置的电路规范,其中所述多个组件对应于具有至少一个预定义物理尺寸的电阻器分段;基于所述电路规范而生成包括与所述多个组件对应的所述电阻器分段的示意图,所述多个组件基于所述电路规范而耦合在一起以产生所述第一电阻器值;及基于所述示意图而生成包括与所述电阻器分段对应的多个多边形的布局,其中基于所述电阻器分段的所述至少一个预定义物理尺寸而在所述布局中自动放置所述多个多边形。
[0867]
实施例191.一种用于生成电阻器的系统,其包括:用于接收第一电阻器值的构件;
用于生成规定多个组件的配置的电路规范的构件,其中所述多个组件对应于具有至少一个预定义物理尺寸的电阻器分段;用于基于所述电路规范而生成包括与所述多个组件对应的所述电阻器分段的示意图的构件,所述多个组件基于所述电路规范而耦合在一起以产生所述第一电阻器值;及用于基于所述示意图而生成包括与所述电阻器分段对应的多个多边形的布局的构件,其中基于所述电阻器分段的所述至少一个预定义物理尺寸而在所述布局中自动放置所述多个多边形。
[0868]
实施例192.一种生成电容器的计算机实施的方法,其包括:接收待生成的电容器的总电容;确定将经组合以形成所述总电容的具有单位电容的单位电容器的数目n;生成包括具有所述单位电容的n个单位电容器示意图的晶体管层级示意图,其中所述n个单位电容器示意图经配置以产生所述总电容;及生成包括n个电容器布局元件的布局,所述n个电容器布局元件经配置以产生所述电容器。
[0869]
实施例193.根据实施例192所述的方法,其中基于规定待生成的电路的信息而产生所述总电容。
[0870]
实施例194.根据实施例193所述的方法,其中基于所述待生成的电路的预定义电路模型而产生所述总电容。
[0871]
实施例195.根据实施例192所述的方法,其中所述总电容是作为对应于电容器功能电路组件的参数而接收。
[0872]
实施例196.根据实施例192所述的方法,其进一步包括将所述总电容与预定义最大电容进行比较,其中当所述总电容大于所述预定义最大电容时,并联配置所述n个单位电容器示意图。
[0873]
实施例197.根据实施例192所述的方法,其进一步包括将所述总电容与预定义最小电容进行比较,其中当所述总电容小于所述预定义最小电容时,串联配置所述n个单位电容器示意图。
[0874]
实施例198.根据实施例192所述的方法,其中单位电容器的所述数目n是大于或等于一(1)的整数。
[0875]
实施例199.根据实施例192所述的方法,其进一步包括:将对应于所述n个单位电容器的第一尺寸的第一长度配置为小于或等于沿着所述第一尺寸的预定义最大长度;以及至少基于所述单位电容及所述第一长度而确定对应于所述n个单位电容器的第二尺寸的第二长度。
[0876]
实施例200.根据实施例199所述的方法,其中将所述第一长度设定为沿着所述第一尺寸的所述预定义最大长度。
[0877]
实施例201.根据实施例199所述的方法,其中所述第一长度及所述第二长度经配置以产生所述第一长度与所述第二长度的预定义纵横比。
[0878]
实施例202.根据实施例199所述的方法,所述方法进一步包括迭代地调整所述第一长度以产生经调整第二长度直到所述第一长度与所述第二长度的纵横比满足预定纵横比为止。
[0879]
实施例203.根据实施例202所述的方法,其中所述第一长度最初是所述预定义最大长度且迭代地减小所述第一长度。
[0880]
实施例204.根据实施例199所述的方法,其进一步包括生成电路规范,所述电路规
范包括对应于所述n个单位电容器的n个组件。
[0881]
实施例205.根据实施例204所述的方法,其中所述电路规范是网表。
[0882]
实施例206.根据实施例204所述的方法,其中将所述n个单位电容器的一或多个属性编码于所述电路规范中。
[0883]
实施例207.根据实施例199所述的方法,其中所述n个单位电容器示意图具有设定为所述第一长度的第一属性及设定为所述第二长度的第二属性。
[0884]
实施例208.根据实施例199所述的方法,其中所述n个电容器布局元件包括多边形,所述多边形具有等于所述第一长度的第一尺寸及等于所述第二长度的第二尺寸。
[0885]
实施例209.根据实施例192所述的方法,所述生成晶体管层级示意图包括:生成n个示意图符号;及将电容器符号组件自动插入到所述n个示意图符号中的每一者中。
[0886]
实施例210.一种用于生成电容器的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收待生成的电容器的总电容;确定将经组合以形成所述总电容的具有单位电容的单位电容器的数目n;生成包括具有所述单位电容的n个单位电容器示意图的晶体管层级示意图,其中所述n个单位电容器示意图经配置以产生所述总电容;及生成包括n个电容器布局元件的布局,所述n个电容器布局元件经配置以产生所述电容器。
[0887]
实施例211.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收待生成的电容器的总电容;确定将经组合以形成所述总电容的具有单位电容的单位电容器的数目n;生成包括具有所述单位电容的n个单位电容器示意图的晶体管层级示意图,其中所述n个单位电容器示意图经配置以产生所述总电容;及生成包括n个电容器布局元件的布局,所述n个电容器布局元件经配置以产生所述电容器。
[0888]
根据实施例210所述的计算机系统与实施例192到209中的任何一或多个实施例组合。
[0889]
根据实施例211所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例192到209中的任何一或多个实施例。
[0890]
实施例212.一种用于生成电容器的系统,其包括:用于接收待生成的电容器的总电容的构件;用于确定将经组合以形成所述总电容的具有单位电容的单位电容器的数目n的构件;用于生成包括具有所述单位电容的n个单位电容器示意图的晶体管层级示意图的构件,其中所述n个单位电容器示意图经配置以产生所述总电容;及用于生成包括n个电容器布局元件的布局的构件,所述n个电容器布局元件经配置以产生所述电容器。
[0891]
实施例213.一种生成电阻分压器的计算机实施的方法,其包括:接收规定待生成的电阻分压器的参数;确定与在所述电阻分压器的一或多个输出分接头之间的电阻器对应的多个电阻器值;针对每一电阻器值,确定用以产生所述多个电阻器值中的每一者的多个电阻器分段;生成电路规范以配置每一多个电阻器分段来形成所述多个电阻器值;及生成包括所述多个电阻器分段的晶体管层级示意图以产生所述电阻分压器。
[0892]
实施例214.根据实施例213所述的方法,其中确定多个电阻器分段包括确定至少
一个第一数目,所述至少一个第一数目规定将被串联配置的第一多个电阻器分段。
[0893]
实施例215.根据实施例213所述的方法,其中确定多个电阻器分段包括确定至少一个第一数目,所述至少一个第一数目规定将被并联配置的第一多个电阻器分段。
[0894]
实施例216.根据实施例213所述的方法,其中确定多个电阻器分段包括确定至少一个第一数目及至少一个第二数目,所述至少一个第一数目规定将被串联配置的第一多个电阻器分段,所述至少一个第二数目规定将被并联配置的第二多个电阻器分段。
[0895]
实施例217.根据实施例213所述的方法,其中所述参数规定所述电阻分压器的总电阻,且其中基于所述电阻分压器的所述总电阻而确定所述多个电阻器值。
[0896]
实施例218.根据实施例213所述的方法,其中所述参数规定一或多个输出分接头,其中所述多个电阻器值等于输出分接头的数目加上一(1)。
[0897]
实施例219.根据实施例218所述的方法,其中所述参数规定每一输出分接头处的电压,其中基于输出分接头的数目及每一输出分接头处的所述电压而确定所述多个电阻器值。
[0898]
实施例220.根据实施例218所述的方法,其中所述参数将每一输出分接头处的电压规定为一或多个百分比,其中基于输出分接头的数目及跨越以下各项中的两者的百分比差而确定所述多个电阻器值:输入、多个输出分接头及底部。
[0899]
实施例221.根据实施例213所述的方法,其中所述参数规定启用,所述方法进一步包括在所述电路规范中规定一或多个子电路示意图,其中所述所规定子电路示意图经配置以接收输入来启用或停用所述电阻分压器。
[0900]
实施例222.根据实施例221所述的方法,其中所述子电路示意图包括开关。
[0901]
实施例223.根据实施例222所述的方法,其中所述开关耦合于所述电阻分压器的输入与所述电阻分压器的顶部电阻器分段的一或多个端子之间。
[0902]
实施例224.根据实施例222所述的方法,其中所述开关耦合于所述电阻分压器的参考输入与所述电阻分压器的底部电阻器分段的一或多个端子之间。
[0903]
实施例225.根据实施例222所述的方法,其中所述开关耦合于所述电阻分压器的输出分接头与所述电阻分压器的中间电阻器分段的一或多个端子之间。
[0904]
实施例226.一种用于生成电阻分压器的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收规定待生成的电阻分压器的参数;确定与在所述电阻分压器的一或多个输出分接头之间的电阻器对应的多个电阻器值;针对每一电阻器值,确定用以产生所述多个电阻器值中的每一者的多个电阻器分段;生成电路规范以配置每一多个电阻器分段来形成所述多个电阻器值;及生成包括所述多个电阻器分段的晶体管层级示意图以产生所述电阻分压器。
[0905]
实施例227.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收规定待生成的电阻分压器的参数;确定与在所述电阻分压器的一或多个输出分接头之间的电阻器对应的多个电阻器值;针对每一电阻器值,确定用以产生所述多个电阻器值中的每一者的多个电阻器分段;生成电路规范以配置每一多个电阻器分段来形成所述多个电阻器值;及生成包括所述多个电阻器分段的晶体管层级示意图以产生所述电阻分压器。
[0906]
根据实施例226所述的计算机系统与实施例213到225中的任何一或多个实施例组合。
[0907]
根据实施例227所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例213到225中的任何一或多个实施例。
[0908]
实施例228.一种用于生成电阻分压器的系统,其包括:用于接收规定待生成的电阻分压器的参数的构件;用于确定与在所述电阻分压器的一或多个输出分接头之间的电阻器对应的多个电阻器值且针对每一电阻器值确定用以产生所述多个电阻器值中的每一者的多个电阻器分段的构件;用于生成电路规范以配置每一多个电阻器分段来形成所述多个电阻器值的构件;及用于生成包括所述多个电阻器分段的晶体管层级示意图以产生所述电阻分压器的构件。
[0909]
实施例229.一种生成晶体管的计算机实施的方法,其包括:接收规定待生成的晶体管的信息,所述信息包括所述待生成的晶体管的导通电阻;至少基于所述导通电阻而确定所述待生成的晶体管的栅极的总宽度;基于所述总宽度而确定第一宽度、指状部数目(f)及装置单元数目(p);生成包括一或多个晶体管的晶体管层级示意图,所述一或多个晶体管配置有所述第一宽度及所述指状部数目(f);及生成布局,其中所述布局包括p个装置单元,每一装置单元包括对应于所述指状部数目(f)的多个栅极,每一栅极具有所述第一宽度,其中所述装置单元以二维阵列进行配置。
[0910]
实施例230.根据实施例229所述的方法,其中晶体管层级示意图包括具有等于所述装置单元数目(p)的乘数属性(m)的一个晶体管。
[0911]
实施例231.根据实施例229所述的方法,其中晶体管层级示意图包括并联配置的p个晶体管。
[0912]
实施例232.根据实施例229所述的方法,其中所述p个装置单元具有可编程纵横比。
[0913]
实施例233.根据实施例232所述的方法,其中所述纵横比大于0.5且小于1。
[0914]
实施例234.根据实施例232所述的方法,其中所述纵横比介于约2/3与约3/4之间。
[0915]
实施例235.根据实施例229所述的方法,其中所述二维阵列包括装置单元的相等数目个行及列。
[0916]
实施例236.根据实施例229所述的方法,其中所述装置单元数目(p)是完全平方。
[0917]
实施例237.根据实施例229所述的方法,其中基于最大宽度及最大指状部数目而确定所述第一宽度、第一指状部数目及所述装置单元数目(p)。
[0918]
实施例238.根据实施例237所述的方法,其进一步包括通过以下操作而确定所述装置单元数目(p)及所述指状部数目(f):跨越多个增加的值来增加所述装置单元数目(p)以基于当前装置单元数目、所述最大宽度及所述最大指状部数目而确定可获得的所述指状部数目(f)。
[0919]
实施例239.根据实施例237所述的方法,所述方法进一步包括:跨越多个值而迭代地增加所述装置单元数目(p);确定是否可从p的当前值、所述最大宽度及所述最大指状部数目获得所述总宽度;如果不可从p的所述当前值、所述最大宽度及所述最大指状部数目获得所述总宽度,那么增加p的所述值,且重复所述确定步骤;及如果可从p的所述当前值、所
述最大宽度及所述最大指状部数目获得所述总宽度,那么将所述装置单元数目(p)设定为p的所述当前值且基于所述最大宽度及p的所述当前值而设定所述指状部数目(f)。
[0920]
实施例240.根据实施例238所述的方法,其进一步包括基于所述指状部数目(f)及第一多个预定义偏移值而确定沿着装置单元的第一尺寸的第一长度。
[0921]
实施例241.根据实施例240所述的方法,其中基于晶体管类型而选择所述多个预定义偏移值。
[0922]
实施例242.根据实施例240所述的方法,其进一步包括基于所述第一长度及预定义纵横比而确定所述装置单元的第二长度。
[0923]
实施例243.根据实施例242所述的方法,其中所述纵横比是可编程的。
[0924]
实施例244.根据实施例242所述的方法,其进一步包括基于所述第二长度及至少一个第二预定义偏移值而确定所述第一宽度。
[0925]
实施例245.根据实施例237所述的方法,其中所述最大宽度及所述最大指状部数目是预定义值。
[0926]
实施例246.根据实施例229所述的方法,其进一步包括生成规定具有所述第一宽度及所述指状部数目(f)的一或多个晶体管的电路规范,其中所述电路规范用于生成所述晶体管层级示意图。
[0927]
实施例247.根据实施例246所述的方法,其中规定待生成的晶体管的所述信息规定装置类型,且其中所述电路规范基于所述装置类型而规定一或多个p型晶体管或n型晶体管。
[0928]
实施例248.根据实施例246所述的方法,其中规定待生成的晶体管的所述信息规定最大漏极到源极电压,且其中所述电路规范基于所述最大漏极到源极电压而规定多个晶体管中的一者。
[0929]
实施例249.根据实施例246所述的方法,其中规定待生成的晶体管的所述信息规定最大栅极到源极电压,且其中所述电路规范基于所述最大栅极到源极电压而规定多个晶体管中的一者。
[0930]
实施例250.根据实施例229所述的方法,其中至少基于所述导通电阻而确定所述待生成的晶体管的所述栅极的所述总宽度包括:基于所述待生成的晶体管的晶体管类型而选择多个回归系数集合中的一个集合;基于所述导通电阻及所述所选择回归系数集合而确定所述总宽度。
[0931]
实施例251.根据实施例250所述的方法,其中所述晶体管类型是功率晶体管。
[0932]
实施例252.根据实施例250所述的方法,其中所述晶体管类型是信号晶体管。
[0933]
实施例253.根据实施例229所述的方法,其中规定待生成的晶体管的所述信息规定复制晶体管,且其中所述晶体管层级示意图包括复制晶体管,所述复制晶体管具有耦合到所述一或多个晶体管的一或多个栅极的栅极及耦合到所述一或多个晶体管的一或多个漏极的漏极。
[0934]
实施例254.根据实施例253所述的方法,其中规定待生成的晶体管的所述信息规定复制增益,且其中基于所述待生成的晶体管的所述总宽度而确定所述复制晶体管的宽度。
[0935]
实施例255.根据实施例229所述的方法,其中规定待生成的晶体管的所述信息规
定开尔文连接,且其中所述晶体管层级示意图包括耦合到所述一或多个晶体管的一或多个源极的开尔文源极端子及耦合到所述一或多个晶体管的一或多个漏极的开尔文漏极端子。
[0936]
实施例256.根据实施例255所述的方法,其中所述晶体管层级示意图进一步包括配置于所述开尔文源极端子与所述一或多个晶体管的所述一或多个源极端子之间的第一电阻器,及配置于所述开尔文漏极端子与所述一或多个晶体管的所述一或多个漏极之间的第二电阻器。
[0937]
实施例257.根据实施例229所述的方法,其中所述生成布局包括执行一或多个布局放置指令,其中所述布局放置指令将所述p个装置单元依次放置于初始位置及p-1个其它位置处,所述其它位置从所述初始位置偏移整数个x轴偏移及y轴偏移。
[0938]
实施例258.根据实施例257所述的方法,其中所述所执行布局放置指令是基于晶体管类型而执行。
[0939]
实施例259.根据实施例257所述的方法,其中基于所述第一宽度及所述指状部数目(f)而计算所述x轴偏移及所述y轴偏移。
[0940]
实施例260.根据实施例257所述的方法,其中所述生成布局进一步包括跨越装置单元的所述二维阵列而自动放置多个金属化条带。
[0941]
实施例261.根据实施例260所述的方法,其中基于所述第一宽度及预定义最大条带宽度而确定跨越每一装置单元的金属化条带的数目。
[0942]
实施例262.根据实施例260所述的方法,其中基于预定义偏移而放置所述金属化条带,基于所述待生成的晶体管的晶体管类型而选择所述预定义偏移。
[0943]
实施例263.一种用于生成晶体管的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收规定待生成的晶体管的信息,所述信息包括所述待生成的晶体管的导通电阻;至少基于所述导通电阻而确定所述待生成的晶体管的栅极的总宽度;基于所述总宽度而确定第一宽度、指状部数目(f)及装置单元数目(p);生成包括一或多个晶体管的晶体管层级示意图,所述一或多个晶体管配置有所述第一宽度及所述指状部数目(f);及生成布局,其中所述布局包括p个装置单元,每一装置单元包括对应于所述指状部数目(f)的多个栅极,每一栅极具有所述第一宽度,其中所述装置单元以二维阵列进行配置。
[0944]
实施例264.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收规定待生成的晶体管的信息,所述信息包括所述待生成的晶体管的导通电阻;至少基于所述导通电阻而确定所述待生成的晶体管的栅极的总宽度;基于所述总宽度而确定第一宽度、指状部数目(f)及装置单元数目(p);生成包括一或多个晶体管的晶体管层级示意图,所述一或多个晶体管配置有所述第一宽度及所述指状部数目(f);及生成布局,其中所述布局包括p个装置单元,每一装置单元包括对应于所述指状部数目(f)的多个栅极,每一栅极具有所述第一宽度,其中所述装置单元以二维阵列进行配置。
[0945]
根据实施例263所述的计算机系统与实施例229到262中的任何一或多个实施例组合。
[0946]
根据实施例264所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行
指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例229到262中的任何一或多个实施例。
[0947]
实施例265.一种用于生成晶体管的系统,其包括:用于接收规定待生成的晶体管的信息的构件,所述信息包括所述待生成的晶体管的导通电阻;用于至少基于所述导通电阻而确定所述待生成的晶体管的栅极的总宽度的构件;用于基于所述总宽度而确定第一宽度、指状部数目(f)及装置单元数目(p)的构件;用于生成包括一或多个晶体管的晶体管层级示意图的构件,所述一或多个晶体管配置有所述第一宽度及所述指状部数目(f);及用于生成布局的构件,其中所述布局包括p个装置单元,每一装置单元包括对应于所述指状部数目(f)的多个栅极,每一栅极具有所述第一宽度,其中所述装置单元以二维阵列进行配置。
[0948]
实施例266.一种生成晶体管的计算机实施的方法,其包括:接收规定待生成的晶体管的信息,所述信息包括导通电阻;从导通电阻计算面积;基于所述面积及预定义长度而确定总宽度;基于所述总宽度、预定义最大宽度及预定义最大指状部数目而确定装置单元数目(p)及指状部数目(f);基于所述指状部数目(f)而确定沿着装置单元的第一尺寸的第一长度;基于所述第一长度与沿着所述装置单元的第二尺寸的第二长度的经编程比率而确定所述第二长度;基于所述第二尺寸而确定第一栅极宽度;及利用所述第一栅极宽度及所述指状部数目(f)来配置晶体管层级示意图中的一或多个晶体管。
[0949]
实施例267.根据实施例266所述的方法,其中所述晶体管层级示意图包括具有等于所述装置单元数目(p)的乘数属性(m)的一个晶体管。
[0950]
实施例268.根据实施例266所述的方法,其中所述晶体管层级示意图包括并联配置的p个晶体管。
[0951]
实施例269.根据实施例266所述的方法,其中所述装置单元数目(p)是完全平方。
[0952]
实施例270.一种用于生成电路的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收规定待生成的晶体管的信息,所述信息至少包括导通电阻;从导通电阻计算面积;基于所述面积及预定义长度而确定总宽度;基于所述总宽度、预定义最大宽度及预定义最大指状部数目而确定装置单元数目(p)及指状部数目(f);基于所述指状部数目(f)而确定沿着装置单元的第一尺寸的第一长度;基于所述第一长度与沿着所述装置单元的第二尺寸的第二长度的经编程比率而确定所述第二长度;基于所述第二尺寸而确定第一栅极宽度;及利用所述第一栅极宽度及所述指状部数目(f)来配置晶体管层级示意图中的一或多个晶体管。
[0953]
实施例271.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收规定待生成的晶体管的信息,所述信息至少包括导通电阻;从导通电阻计算面积;基于所述面积及预定义长度而确定总宽度;基于所述总宽度、预定义最大宽度及预定义最大指状部数目而确定装置单元数目(p)及指状部数目(f);基于所述指状部数目(f)而确定沿着装置单元的第一尺寸的第一长度;基于所述第一长度与沿着所述装置单元的第二尺寸的第二长度的经编程比率而确定所述第二长度;基于所述第二尺寸而确定第一栅极宽度;及利用所述第一栅极宽度及所述指状部数目(f)来配置晶体管层级示意图中的一或多个晶体管。
[0954]
根据实施例270所述的计算机系统与实施例266到269中的任何一或多个实施例组
合。
[0955]
根据实施例271所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例266到269中的任何一或多个实施例。
[0956]
实施例272.一种用于生成晶体管的系统,其包括:用于接收规定待生成的晶体管的信息的构件,所述信息包括导通电阻;用于从导通电阻计算面积的构件;用于基于所述面积及预定义长度而确定总宽度的构件;用于基于所述总宽度、预定义最大宽度及预定义最大指状部数目而确定装置单元数目(p)及指状部数目(f)的构件;用于基于所述指状部数目(f)而确定沿着装置单元的第一尺寸的第一长度的构件;用于基于所述第一长度与沿着所述装置单元的第二尺寸的第二长度的经编程比率而确定所述第二长度的构件;用于基于所述第二尺寸而确定第一栅极宽度的构件;及用于利用所述第一栅极宽度及所述指状部数目(f)来配置晶体管层级示意图中的一或多个晶体管的构件。
[0957]
实施例273.一种计算机实施的方法,其包括:生成针对多个晶体管的多个数据集合,每一数据集合包括针对所述多个晶体管中的特定晶体管的多个栅极宽度而获得的导通电阻的值;基于应用于所述多个数据集合中的每一者的回归方程式而生成包括一或多个回归系数的多个系数集合;接收规定导通电阻以及所述多个晶体管中的晶体管的信息;基于所述多个晶体管中的所述所规定晶体管而选择所述多个系数集合中的一个系数集合;及基于所述导通电阻及所述所选择系数集合而确定栅极宽度。
[0958]
实施例274.一种用于生成电路的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:生成针对多个晶体管的多个数据集合,每一数据集合包括针对所述多个晶体管中的特定晶体管的多个栅极宽度而获得的导通电阻的值;基于应用于所述多个数据集合中的每一者的回归方程式而生成包括一或多个回归系数的多个系数集合;接收规定导通电阻以及所述多个晶体管中的晶体管的信息;基于所述多个晶体管中的所述所规定晶体管而选择所述多个系数集合中的一个系数集合;及基于所述导通电阻及所述所选择系数集合而确定栅极宽度。
[0959]
实施例275.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:生成针对多个晶体管的多个数据集合,每一数据集合包括针对所述多个晶体管中的特定晶体管的多个栅极宽度而获得的导通电阻的值;基于应用于所述多个数据集合中的每一者的回归方程式而生成包括一或多个回归系数的多个系数集合;接收规定导通电阻以及所述多个晶体管中的晶体管的信息;基于所述多个晶体管中的所述所规定晶体管而选择所述多个系数集合中的一个系数集合;及基于所述导通电阻及所述所选择系数集合而确定栅极宽度。
[0960]
实施例276.一种用于生成电路的系统,其包括:用于生成针对多个晶体管的多个数据集合的构件,每一数据集合包括针对所述多个晶体管中的特定晶体管的多个栅极宽度而获得的导通电阻的值;用于基于应用于所述多个数据集合中的每一者的回归方程式而生成包括一或多个回归系数的多个系数集合的构件;用于接收规定导通电阻以及所述多个晶体管中的晶体管的信息的构件;用于基于所述多个晶体管中的所述所规定晶体管而选择所述多个系数集合中的一个系数集合的构件;及用于基于所述导通电阻及所述所选择系数集
合而确定栅极宽度的构件。
[0961]
实施例277.一种生成晶体管的计算机实施的方法,其包括:接收规定待生成的晶体管的信息;基于所述信息的至少一部分而检索预定义布局参数;基于所述信息及所述布局参数而确定所述待生成的晶体管的属性,所述属性包括宽度、指状部数目及装置单元数目;生成所述待生成的晶体管的晶体管层级示意图,所述晶体管层级示意图包括一或多个晶体管示意图,其中基于所述属性而配置所述一或多个晶体管示意图;及从所述晶体管层级示意图生成所述待生成的晶体管的布局,其中所述布局包括所述装置单元数目,且其中基于所述属性通过布局放置指令而在所述布局中自动定位每一装置单元。
[0962]
实施例278.一种用于生成晶体管的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:接收规定待生成的晶体管的信息;基于所述信息的至少一部分而检索预定义布局参数;基于所述信息及所述布局参数而确定所述待生成的晶体管的属性,所述属性包括宽度、指状部数目及装置单元数目;生成所述待生成的晶体管的晶体管层级示意图,所述晶体管层级示意图包括一或多个晶体管示意图,其中基于所述属性而配置所述一或多个晶体管示意图;及从所述晶体管层级示意图生成所述待生成的晶体管的布局,其中所述布局包括所述装置单元数目,且其中基于所述属性通过布局放置指令而在所述布局中自动定位每一装置单元。
[0963]
实施例279.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:接收规定待生成的晶体管的信息;基于所述信息的至少一部分而检索预定义布局参数;基于所述信息及所述布局参数而确定所述待生成的晶体管的属性,所述属性包括宽度、指状部数目及装置单元数目;生成所述待生成的晶体管的晶体管层级示意图,所述晶体管层级示意图包括一或多个晶体管示意图,其中基于所述属性而配置所述一或多个晶体管示意图;及从所述晶体管层级示意图生成所述待生成的晶体管的布局,其中所述布局包括所述装置单元数目,且其中基于所述属性通过布局放置指令而在所述布局中自动定位每一装置单元。
[0964]
实施例280.一种用于生成晶体管的系统,其包括:用于接收规定待生成的晶体管的信息的构件;用于基于所述信息的至少一部分而检索预定义布局参数的构件;用于基于所述信息及所述布局参数而确定所述待生成的晶体管的属性的构件,所述属性包括宽度、指状部数目及装置单元数目;用于生成所述待生成的晶体管的晶体管层级示意图的构件,所述晶体管层级示意图包括一或多个晶体管示意图,其中基于所述属性而配置所述一或多个晶体管示意图;及用于从所述晶体管层级示意图生成所述待生成的晶体管的布局的构件,其中所述布局包括所述装置单元数目,且其中基于所述属性通过布局放置指令而在所述布局中自动定位每一装置单元。
[0965]
实施例281.一种生成晶体管布局的计算机实施的方法,其包括:基于一或多个晶体管的属性而将所述晶体管转换成多个布局实例;及执行预定义布局脚本,所述预定义布局脚本将所述多个布局实例定位为二维阵列以形成针对所述晶体管的布局。
[0966]
实施例282.根据实施例281所述的方法,其中所述布局脚本与包含所述晶体管的电路示意图相关联。
[0967]
实施例283.根据实施例281所述的方法,其中晶体管是场效应晶体管。
[0968]
实施例284.根据实施例283所述的方法,其中晶体管是功率场效应晶体管。
[0969]
实施例285.根据实施例281所述的方法,其进一步包括基于所述晶体管的总栅极宽度而确定第一栅极宽度、指状部数目(f)及装置单元数目(p)。
[0970]
实施例286.根据实施例281所述的方法,其中所述一或多个晶体管是具有相同的所述属性的并联配置的多个晶体管,且其中每一晶体管的乘数属性等于1。
[0971]
实施例287.根据实施例281所述的方法,其中所述一或多个晶体管是具有大于1的乘数属性的单个晶体管。
[0972]
实施例288.根据实施例281所述的方法,其中所述布局实例的数目(p)是完全平方。
[0973]
实施例289.根据实施例281所述的方法,其中所述布局实例的纵横比是可编程的。
[0974]
实施例290.根据实施例281所述的方法,其中所述布局脚本包括规定第一布局实例的初始位置的至少一个布局放置指令。
[0975]
实施例291.根据实施例290所述的方法,其中单个布局放置指令放置所述多个布局实例。
[0976]
实施例292.根据实施例290所述的方法,其中所述至少一个布局放置指令规定所述布局实例之间的x步长及y步长。
[0977]
实施例293.根据实施例290所述的方法,其中所述至少一个布局放置指令规定所述二维阵列的列数目及行数目。
[0978]
实施例294.一种用于生成晶体管布局的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:基于一或多个晶体管的属性而将所述晶体管转换成多个布局实例;及执行预定义布局脚本,所述预定义布局脚本将所述多个布局实例定位为二维阵列以形成针对所述晶体管的布局。
[0979]
实施例295.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:基于一或多个晶体管的属性而将所述晶体管转换成多个布局实例;及执行预定义布局脚本,所述预定义布局脚本将所述多个布局实例定位为二维阵列以形成针对所述晶体管的布局。
[0980]
根据实施例294所述的计算机系统与实施例281到293中的任何一或多个实施例组合。
[0981]
根据实施例295所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例281到293中的任何一或多个实施例。
[0982]
实施例296.一种用于生成晶体管布局的计算机系统,其包括:用于基于一或多个晶体管的属性而将所述晶体管转换成多个布局实例的构件;及用于执行预定义布局脚本的构件,所述预定义布局脚本将所述多个布局实例定位为二维阵列以形成针对所述晶体管的布局。
[0983]
实施例297.一种生成电路布局的计算机实施的方法,其包括:规定将被转换为所述电路布局的电路示意图;接收与所述电路示意图相关联的布局脚本,所述布局脚本经配置以定位从所述电路示意图生成的多个布局实例;将所述电路示意图转换成所述多个布局
实例;及基于所述布局脚本而定位所述多个布局实例以产生所述电路布局。
[0984]
实施例298.根据实施例297所述的方法,其中所述电路示意图是模拟电路或混合信号电路的晶体管层级电路示意图。
[0985]
实施例299.根据实施例297所述的方法,其中所述多个布局实例中的一或多者是针对子电路示意图的预定义布局。
[0986]
实施例300.根据实施例299所述的方法,其中所述布局脚本包括对其中存储特定布局实例的库的参考。
[0987]
实施例301.根据实施例297所述的方法,其中所述多个布局实例的第一子集对应于多个电阻器。
[0988]
实施例302.根据实施例297所述的方法,其中所述多个布局实例的第一子集对应于多个电容器。
[0989]
实施例303.根据实施例297所述的方法,其中所述布局脚本规定针对所述多个布局实例中的每一者的特定放置。
[0990]
实施例304.根据实施例297所述的方法,其中所述电路示意图对应于多个电路示意图中的第一电路示意图,且其中所述布局脚本经配置以针对所述多个电路示意图中的每一者而定位布局实例。
[0991]
实施例305.根据实施例304所述的方法,其中所述多个电路示意图执行第一功能。
[0992]
实施例306.根据实施例304所述的方法,其中所述布局脚本对来自不同电路示意图的布局实例执行多个放置操作,且其中对与所述第一电路示意图对应的布局实例执行放置操作并且不对与其它电路示意图对应的布局实例执行放置操作。
[0993]
实施例307.根据实施例297所述的方法,其中所述布局脚本包括用以定位所述布局实例中的一或多者的多个布局放置指令。
[0994]
实施例308.根据实施例307所述的方法,其中所述多个布局放置指令包括用于实施对应于每一布局放置指令的放置操作的对应代码。
[0995]
实施例309.根据实施例308所述的方法,其中所述代码是布局放置指令脚本。
[0996]
实施例310.根据实施例307所述的方法,其中所述布局放置指令接收定位参数,所述定位参数规定所述一或多个布局实例的放置。
[0997]
实施例311.根据实施例307所述的方法,其中所述布局放置指令的子集包括对所述多个布局实例中的特定布局实例的参考。
[0998]
实施例312.根据实施例311所述的方法,其中所述参考是单元名称。
[0999]
实施例313.根据实施例311所述的方法,其中所述参考是实例名称。
[1000]
实施例314.根据实施例307所述的方法,其中一或多个布局放置指令规定所述多个布局实例中的一或多个对应布局实例的放置位置。
[1001]
实施例315.根据实施例307所述的方法,其中一或多个布局放置指令规定特定布局实例、用于定位所述特定布局实例的x轴坐标及y轴坐标。
[1002]
实施例316.根据实施例315所述的方法,其中一或多个布局放置指令进一步规定其中存储所述特定布局实例的库名称。
[1003]
实施例317.根据实施例315所述的方法,其中一或多个布局放置指令进一步规定所述特定布局实例的旋转。
[1004]
实施例318.根据实施例307所述的方法,其中所述多个布局放置指令中的第一布局放置指令定位所述多个布局实例的第一子集。
[1005]
实施例319.根据实施例318所述的方法,其中所述多个布局实例的所述第一子集是针对子电路示意图的预定义布局。
[1006]
实施例320.根据实施例318所述的方法,其中所述多个布局实例的所述第一子集是无源布局组件。
[1007]
实施例321.根据实施例320所述的方法,其中所述多个无源布局组件是电阻器布局组件。
[1008]
实施例322.根据实施例320所述的方法,其中所述多个无源组件是电容器布局组件。
[1009]
实施例323.根据实施例318所述的方法,其中第一布局放置指令规定沿着多个轴中的一者的步长方向。
[1010]
实施例324.根据实施例318所述的方法,其中所述第一布局放置指令规定开始位置以及布局实例的所述第一子集之间的步长。
[1011]
实施例325.根据实施例324所述的方法,其中所述步长规定布局实例的所述第一子集的邻近边界之间的距离。
[1012]
实施例326.根据实施例324所述的方法,其中所述步长大于或等于沿着布局实例的所述第一子集的第一轴的边界的长度。
[1013]
实施例327.根据实施例318所述的方法,其中所述第一布局放置指令进一步规定用于沿着一轴依次放置布局实例的最大距离。
[1014]
实施例328.根据实施例327所述的方法,其中所述最大距离与所述多个布局实例中的一者的长度相关联。
[1015]
实施例329.根据实施例327所述的方法,其中基于所述距离而从所述开始位置沿着第一轴依次放置所述布局实例直到第二位置,且当所述布局实例的第一部分横跨所述开始位置与所述第二位置之间的空间时,基于所述距离而沿着所述第一轴在第三位置与第四位置之间依次放置所述布局实例的第二部分,所述第三位置沿着第二轴而从所述开始位置偏移。
[1016]
实施例330.根据实施例318所述的方法,其中布局放置实例的所述第一子集至少包括布局放置实例的第一子群组及布局放置实例的第二子群组,且其中所述第一布局放置指令进一步规定布局实例的第一子群组与第二子群组之间的步长。
[1017]
实施例331.根据实施例318所述的方法,其中在所述第一布局放置指令之后的第二布局放置指令将所述多个布局实例中的一或多个布局实例放置于从所述第一布局放置指令的最终位置开始的一或多个位置处。
[1018]
实施例332.根据实施例307所述的方法,其中所述布局放置指令中的一或多者包括条件语句。
[1019]
实施例333.根据实施例332所述的方法,其中至少一个布局放置指令确定位置是否被占用。
[1020]
实施例334.根据实施例333所述的方法,其中如果所述位置被占用,那么执行一或多个第一布局放置指令。
[1021]
实施例335.根据实施例333所述的方法,其中如果所述位置未被占用,那么执行一或多个第一布局放置指令。
[1022]
实施例336.根据实施例332所述的方法,其中至少一个布局放置指令确定一或多个所规定布局实例是否包含于所述布局中,且其中如果所述所规定实例包含于所述布局中,那么执行一或多个第一布局放置指令,且其中如果所述一或多个所规定布局实例不在所述布局中,那么执行一或多个第二布局放置指令。
[1023]
实施例337.一种用于生成电路布局的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:规定将被转换为所述电路布局的电路示意图;接收与所述电路示意图相关联的布局脚本,所述布局脚本经配置以定位从所述电路示意图生成的多个布局实例;将所述电路示意图转换成所述多个布局实例;及基于所述布局脚本而定位所述多个布局实例以产生所述电路布局。
[1024]
实施例338.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:规定将被转换为所述电路布局的电路示意图;接收与所述电路示意图相关联的布局脚本,所述布局脚本经配置以定位从所述电路示意图生成的多个布局实例;将所述电路示意图转换成所述多个布局实例;及基于所述布局脚本而定位所述多个布局实例以产生所述电路布局。
[1025]
根据实施例337所述的计算机系统与实施例297到336中的任何一或多个实施例组合。
[1026]
根据实施例338所述的非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统执行实施例297到336中的任何一或多个实施例。
[1027]
实施例339.一种用于生成电路布局的计算机系统,其包括:用于规定将被转换为所述电路布局的电路示意图的构件;用于接收与所述电路示意图相关联的布局脚本的构件,所述布局脚本经配置以定位从所述电路示意图生成的多个布局实例;用于将所述电路示意图转换成所述多个布局实例的构件;及用于基于所述布局脚本而定位所述多个布局实例以产生所述电路布局的构件。
[1028]
实施例340.一种生成电路布局的计算机实施的方法,其包括:在布局画布中接收从示意图生成的多个布局实例;接收与所述示意图相关联的布局脚本,其中所述布局脚本包括用于放置从所述示意图生成的多个布局实例的多个布局放置指令;及使用所述多个布局放置指令来定位所述多个布局实例。
[1029]
实施例341.一种用于生成电路布局的计算机系统,其包括:一或多个处理器;及非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述计算机系统执行时致使所述计算机系统执行包括以下各项的方法:在布局画布中接收从示意图生成的多个布局实例;接收与所述示意图相关联的布局脚本,其中所述布局脚本包括用于放置从所述示意图生成的多个布局实例的多个布局放置指令;及使用所述多个布局放置指令来定位所述多个布局实例。
[1030]
实施例342.一种非暂时性计算机可读存储媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机系统执行时致使所述计算机系统:在布局画布中接收从
示意图生成的多个布局实例;接收与所述示意图相关联的布局脚本,其中所述布局脚本包括用于放置从所述示意图生成的多个布局实例的多个布局放置指令;及使用所述多个布局放置指令来定位所述多个布局实例。
[1031]
实施例343.一种用于生成电路布局的系统,其包括:用于在布局画布中接收从示意图生成的多个布局实例的构件;用于接收与所述示意图相关联的布局脚本的构件,其中所述布局脚本包括用于放置从所述示意图生成的多个布局实例的多个布局放置指令;及用于使用所述多个布局放置指令来定位所述多个布局实例的构件。
[1032]
以上说明图解说明本公开的各种实施例连同可如何实施特定实施例的方面的实例。以上实例不应被认为是仅有实施例,而是经呈现以图解说明如由所附权利要求书所定义的特定实施例的灵活性及优点。基于以上公开内容及所附权利要求书,可在不背离如由权利要求书所定义的本公开的范围的情况下采用其它布置、实施例、实施方案及等效形式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献