一种模拟电路数据阵列描述方法

xiaoxiao2020-7-22  2

专利名称:一种模拟电路数据阵列描述方法
技术领域
本发明涉及模拟电路设计自动化技术领域,提出一种模拟电路数据阵列描述方法。
背景技术
模拟电路设计周期长,并要求设计者具备足够的电路基础知识和丰富的模拟电路设计经验的特点,成为模拟电路设计发展的障碍。而解决这些障碍的方法之一就是实现模拟电路的自动综合。随之而来的另一个问题就是在模拟电路自动综合中,如何描述模拟电路。
已有电路自动综合算法中,利用遗传算法进行模拟电路自动综合设计时,采用线性数列描述模拟电路;利用神经网络实现模拟电路自动综合设计时,通过代表模拟电路中的器件的神经元之间的连接描述模拟电路。这些描述模拟电路的方法在实现多端器件(例如晶体管)的连接问题时,只能将多端器件简化为两端器件处理,从而难以设计复杂的电路结构,以满足用户对电路的高性能要求。

发明内容
本发明的目的在于,提出一种简单易行的模拟电路描述方法,能描述绝大多数模拟电路,并且能够实现电路拓扑自动生成。这里提出一种模拟电路数据阵列描述方法,能够便利的描述模拟电路;该电路描述方法应用在运放电路自动综合设计中,协同提出的电路设计规则,能便利的解决多端器件的连接问题,并在不生成无效电路结构的前提下,确保电路设计过程闭合,能生成出高质量的电路结构,并且能将生成的电路拓扑结构快捷的转化为网表形式输出。
本发明是一种模拟电路数据阵列描述方法。该电路描述方法的基础是附表a所示的经验子电路集合。通过对大量模拟运放电路的研究总结,归纳提取出16个经验子电路,如附表a所示(表中晶体管以mos晶体管为例,同理可以应用于双极晶体管),表中每个子电路分别用拓扑性质数据阵列、拓扑结构数据阵列和拓扑端口数据阵列进行描述。
拓扑性质数据阵列用矩阵形式描述子电路所包含器件的编号,类型(如果该器件为晶体管器件,还包含每个晶体管器件的长度、宽度比例系数。如果长度、宽度比例系数等于0,例如ga输出级子电路、vf输出级子电路和ga/vf输出级子电路,表示该比例系数无效。),其数据阵列描述语法如表1所示。其中,器件编号为互异的正整数。器件类型码取值为{0,1,2,3,4,5,6},分别对应{0→n沟道晶体管器件,1→p沟道晶体管器件,2→电容,3→电阻,4→二极管,5→独立电压源,6→独立电流源}。
拓扑结构数据阵列描述子电路拓扑连接情况,数据阵列描述语法如表1所示。1~15子电路都包含晶体管器件,在描述电路时,可将晶体管器件作为四端器件或三端器件(衬底与源极相连)处理,分别用4×1矩阵或3×1矩阵表示;在运放电路自动综合设计中,将晶体管器件作为三端器件(衬底与源极相连)处理,用3×1矩阵表示。第16子电路为两端器件子电路,拓扑结构数据阵列用2×1矩阵表示。描述电容(或者电阻)时,矩阵每行元素代表该器件的一个端口;描述二极管(或者独立电源)时,矩阵的第一行元素代表正向电压端(或者电流流入端),第二行元素代表负向电压端(或者电流流出端)。
拓扑端口数据阵列描述子电路的端口性质。1~15子电路拓扑端口性质通过表2中给出的16种端口类型进行描述。1~15子电路拓扑端口数据阵列的格式是根据从上到下,从左到右的顺序依次描述子电路中的每个晶体管器件,并且拓扑端口数据阵列的每行描述子电路一个端口(不包括晶体管的衬底)的性质。其中p/n沟道晶体管有源电阻子电路分别包括两个拓扑端口数据阵列,第一个端口数据阵列描述该子电路作为有源电阻时的端口性质,第二个端口数据阵列描述该子电路与其它子电路组成偏置电路时的端口性质。第16子电路为两端器件子电路,没有端口性质描述,端口性质数据阵列为0。
本发明在应用于运放电路拓扑生成时,使用的拓扑设计规则有如下八点1.进行拓扑设计之前,对用户提出的性能要求进行性能分析,以电路性能要求驱动拓扑设计方向的选择。
运放电路的设计方向共九种,由运放电路输入级、中间级和输出级的结构决定,如表3所示。其中GA(general amplifier)代表共源放大电路;CF(current follower)代表共栅电路;VF(voltage amplifier)代表共漏电路。表3中编号1、2所示设计方向生成两级运放,编号3~8所示设计方向生成三级运放,编号9所示设计方向可生成多级运放。
根据用户提出的电路性能要求,从增益、带宽、噪声、转换速度、电源电压、输出电压范围、负载驱动能力七个方面计算表3中每种运放拓扑设计方向对用户要求的适合度,选择适合度最高的运放输入级、中间级、输出级结构作为电路拓扑生成方向。拓扑适合度的计算公式如下Fi=Σj=17φj(i=1,2,2,...9),]]>其中φj=0fj≤fsminj0.1×(fj-fsminjfsmaxj-fsminj)2+0.9×(fj-fsminjfsmaxj-fsminj)fsminj<fj<fsmaxj1fj≥fsmaxj---(1)]]>Fi代表每种运放结构类型的适合程度,φj代表第j个性能要求的苛刻程度,性能要求越高,φj越接近1。fsminj和fsmaxj分别为第j个性能要求的最小值和最大值,fj为用户定义的第j个性能要求数值。
2.如图2所示,按电路设计方向的指示,依运放输入级、中间级、输出级、电流源/电路阱、有源电阻的顺序生成电路。
依照从输入级到有源电阻的顺序,生成的常规运放拓扑结构如图4所示。但在设计过程中,只有电路的输入级是必须存在的,其它各部分的设计可以根据采用的设计方向进行取舍。例如图6所示的电路只包含输入级、中间级、电流源、电流阱和有源电阻,是一个简单的两级运放电路。
每级运放的拓扑设计流程图如图3所示。首先在可选子电路范围内适当选择若干子电路,并为本级运放拓扑连接电流源/电流阱子电路。然后连接该级运放的输入/输出端口,其中输入端口为上一级运放的输出端口(或者整个运放电路的输入端口),输出端口将作为下一级运放的输入端口(或者整个运放电路的输出端口)。之后连接处理本级运放所包含子电路的全部“直接处理”和部分“后续处理”类型端口,并且将剩余“后续处理”类型端口存入相应的待处理端口数据阵列TXXX等待后续处理。
3.设计电路输入级、中间级、输出级、电路源/阱、有源电阻各部分电路时,遵守可选择子电路范围。参见图3。
电路输入级设计可以选择的子电路是p沟道晶体管差分对和n沟道晶体管差分对;电路中间级设计可以选择的子电路是电流源a、电流源c、电流阱a、电流阱c以及n沟道晶体管和p沟道晶体管;电路输出级设计可以选择的子电路是ga输出级、vf输出级、vf/ga输出级、电流源a、电流阱a以及n沟道晶体管和p沟道晶体管;电路电流源设计可以选择的子电路是电流源a、b和c子电路,以及n沟道晶体管和p沟道晶体管;电路电流阱设计可以选择的子电路是电流阱a、b和c子电路,以及n沟道晶体管和p沟道晶体管;电路有源电阻设计可以选择的子电路是p沟道晶体管有源电阻和n沟道晶体管有源电阻。
4.子电路的选择规则是在遵守子电路选择范围规定的同时,如果可以选择n/p沟道晶体管子电路或者1~13子电路时,以大的概率选择1~13子电路中的一个,以便更好的利用成功电路设计经验,快速准确的实现电路设计。
5.子电路端口的连接类型分为直接处理和后续处理两种。
子电路的端口数据阵列描述该子电路每个端口的性质,依据所描述的性质,可直接对子电路端口进行端口之间的连接处理,也可以将端口的节点号存入对应TXXX待处理端口数据阵列,等待后续处理。例如附表a中p沟道晶体管差分对子电路,端口4的性质为acsi,可以将其存入对应的待处理端口数据阵列Tacsi中等待后续处理。在子电路端口类型表2中,具有端口性质1~10的子电路端口可以进行直接处理,也可以分别存入对应的待处理端口数据阵列TXXX中,等待后续处理;而具有端口性质11~16的子电路端口只能进行直接处理。
6.连接子电路端口时,根据表2所示端口性质,按照如下规则进行连接{acso←→dcso;acsi←→dcsi;anvb←→dnvb;apvb←→dpvb;ang←→dng;apg←→dpg;avdd←→vdd;avss←→vss}即在具有端口性质acso和具有端口性质dcso的端口之间进行连接,其余连接依此类推。
7.在满足规则6的情况下,连接子电路端口时还要考虑以下三种不能进行连接的情况。
第一种情况是在满足规则6的情况下,避免在同一个子电路的端口之间进行连接。例如附表a中电流源a子电路,端口1具有端口性质acso,端口3具有端口性质dcso,两端口性质满足规则6的连接条件,但为避免产生无效电路拓扑结构,这两个端口之间不能进行连接。
第二种情况是同一子电路串内包含的子电路之间不能进行端口连接。在电流源/电流阱设计过程中,依次将设计的电流源/电流阱子电路,以及与之端口连接的其它子电路组成子电路串。例如图5所示子电路串示意图中,pmos子电路的栅极(节点7)与电流源a子电路的栅极(节点3)连接,产生级连的电流源电路,同时pmos子电路和电流源a子电路形成子电路串。级连电流源电路的端口1具有端口性质acso,端口6具有端口性质dcso,两端口性质满足规则6的连接条件,但由于这两个端口在同一个子电路串中,为避免产生无效电路结构,这两个端口之间不能进行端口连接。
第三种情况是具有两种子电路端口性质的端口不能进行两次连接。例如附表a中的电流源a子电路的端口1具有性质acso和avdd,如果该端点已经与电源vdd连接,那么端口性质acso就无效,将该端口从待处理端口数据阵列Tacso中删除。
8.处理悬空端口,确保电路设计过程闭合。
根据图2所示拓扑设计流程图,在输入级、中间级、输出级拓扑生成结束后,检查是否有悬空端口,通过对悬空端口的处理,保证电路拓扑生成过程闭合,从而确保不会产生无效设计。
根据电路设计流程图和子电路端口连接规则的限制,最后剩余的悬空端口类型只可能是avdd、avss、acso、acsi、dcso和dcsi。处理悬空端口时,在遵守第6、7条子电路端口连接规则的前提下,首先以一定概率处理{avdd←→vdd;avss←→vss}之间和{acso←→dcso;acsi←→dcsi}之间的连接;如果还有剩余端口,只能是acsi(或者dcsi),acso(或者dcso)端口,将剩余端口与nmos/pmos有源电阻连接,再与电源vss/vdd相连,直到剩余端口个数为0。
技术方案一种模拟电路的数据阵列电路描述方法,应用包括用数据阵列方式描述模拟电路;该电路描述方法协同电路生成规则可以实现运放电路拓扑结构的自动生成,能便利的解决多端器件的连接问题,并能在不生成无效电路的前提下,确保整个设计过程闭合,最终生成出高质量运放电路拓扑结构,并且以网表形式输出设计的电路拓扑结构,具体实现方案如下1.描述模拟电路的步骤如下参见图1、图2。
1).参照16个子电路,将模拟电路划分为电路模块,每个电路模块和某个子电路拓扑结构相同;2).电路模块套用对应子电路的拓扑性质数据阵列和拓扑结构数据阵列,生成自身拓扑性质数据阵列和拓扑结构数据阵列;2.实现运放电路拓扑结构自动生成的步骤如下1).拓扑形成控制器根据用户要求,选择运放电路设计方向;2).拓扑形成控制器利用拓扑形成规则和16个经典子电路,依次设计运放电路的输入级、中间级和输出级;3).每级运放的设计步骤是首先在可选范围内选择适当子电路,再连接每级电路的电流源/电流阱,并处理每级电路的输入/输出端口,然后根据子电路的端口性质数据阵列连接子电路端口,并将未连接的端口保存到对应待处理端口数据矩阵TXXX,等待后期处理;4).拓扑形成控制器处理电路生成过程中所有的悬空端口,使生成的电路闭合。
经验总结出16个子电路,并用拓扑性质数据阵列,拓扑结构数据阵列和拓扑端口数据阵列分别描述每个子电路的器件性质、拓扑连接关系和子电路端口性质。
该发明采用数据阵列方式描述电路。
该发明用于描述模拟电路时,使用的数据阵列为拓扑性质数据阵列和拓扑结构数据阵列。
该发明应用于运放电路自动生成时,应用拓扑性质数据阵列、拓扑结构数据阵列和拓扑端口数据阵列,共同完成运放电路设计。
本发明能描述绝大多数模拟电路,适用范围广泛。该描述方法应用于运放电路自动综合时,能便利的解决多端器件的连接问题,并能协同提出的电路设计规则,在不生成无效电路结构的前提下,确保电路拓扑生成过程闭合,最终生成出高质量运放电路拓扑,并且能将设计的电路拓扑快捷的转化为网表形式输出。
上述介绍中提及的列表如下表1数据阵列描述语法。
表2拓扑端口类型。
表3电路拓扑设计方向。
表4图6所示运放电路的数据阵列电路描述。
表5运放a和运放b的电路参数配置和性能比较。


为进一步说明本发明的技术内容,以下结合实施例及附图、列表,详细说明如后,其中图1拓扑生成步骤图。
图2拓扑设计流程图。
图3每级拓扑设计流程图。
图4电路拓扑模式图。
图5子电路串示意图。
图6运放电路示意图。
图7 ga-cf-ga运放电路示意图。
图8 ga-ga-ga运放电路示意图。
图9数据阵列描述方法描述电路的步骤。
具体实施例方式
1).电路描述实施例。
以图6所示运放电路为例说明用数据阵列电路描述方法描述电路的过程,实现步骤如图9所示。图6电路包含9个mos器件,经过分析得出图6中M1和M2组成的电路模块1的电路结构与附表a中的p沟道晶体管差分对结构吻合,M3和M4组成的电路模块2的电路结构与附表a中电流源a结构吻合,M5和M6组成的电路模块3的电路结构与附表a中电流阱a结构吻合,M7和M8组成的电路模块4的电路结构与附表a中ga输出级结构吻合,剩余的器件M9作为电路模块5,其电路结构与附表a中n沟道晶体管有源电阻子电路结构吻合。将电路中的五个模块对应附表a中子电路的拓扑性质数据阵列和拓扑结构数据阵列进行电路描述,得到图6所示电路的数据阵列电路描述如表4所示。
2).数据阵列电路描述方法应用于运放电路拓扑自动综合的实施例。
利用数据阵列电路描述方法生成电路拓扑结构的步骤如图1所示。控制器根据电路拓扑生成规则,通过对附表a所示子电路的编辑生成整个运放电路的拓扑结构。由于每个子电路通过拓扑性质数据阵列、拓扑结构数据阵列和拓扑端口数据阵列进行描述,所以控制器对子电路的编辑是在分析子电路端口数据阵列的基础上,结合性质数据阵列中描述的每个器件的性质,通过对结构数据阵列的修改,实现整个电路连接,最后以网表形式输出设计的电路。
根据以上介绍的电路生成规则,目标设计两个性能特点不同的运放电路,运放电路a的特点是增益要求高,运放电路b的特点是带宽要求高。用户提出的性能要求如表5所示。
将用户提出的性能要求代入拓扑适合度计算公式(1)运算,得到表3中各拓扑设计方向针对运放电路a性能要求的适合度Fa={0;0;0.8;0.9;0;0;1.9;1;1},针对运放电路b性能要求的适合度Fb={1;0;0.9;0.8;1;1;1;1.9;1}。对照表3,可见与运放电路a适合度最高的拓扑结构编码为7(ga-cf-ga类型),与运放电路b适合度最高的拓扑结构编码为8(ga-ga-ga类型)。
拓扑生成控制器运用拓扑生成规则生成运放电路,如图7和图8所示。表5中对图7和图8所示运放电路进行参数配置,并用spice进行性能仿真,采用0.35u工艺,工作电压5v。

表1数据阵列描述语法

表2数据阵列端口类型

表3运放拓扑设计方向

表4图6所示运放电路的数据阵列电路描述


表5运放a和运放b的参数配置和性能比较附表a 子电路及其数据阵列拓扑描述



权利要求
1.一种模拟电路的数据阵列电路描述方法,包括用数据阵列描述模拟电路;该电路描述方法协同电路生成规则可以实现运放电路拓扑结构的自动生成,能便利的解决多端器件的连接问题,并能在不生成无效电路的前提下,确保整个设计过程闭合,最终生成出高质量运放电路拓扑结构,并且以网表形式输出设计的电路拓扑结构,其特征在于(1)描述模拟电路的步骤如下1).参照16个子电路,将模拟电路划分为电路模块,每个电路模块和某个子电路拓扑结构相同;2).电路模块套用对应子电路的拓扑性质数据阵列和拓扑结构数据阵列,生成自身拓扑性质数据阵列和拓扑结构数据阵列;(2)实现运放电路拓扑结构自动生成的步骤如下1).拓扑形成控制器根据用户要求,选择运放电路设计方向;2).拓扑形成控制器利用拓扑形成规则和16个经典子电路,依次设计运放电路的输入级、中间级和输出级;3).每级运放的设计步骤是首先在可选范围内选择适当子电路,再连接每级电路的电流源/电流阱,并处理每级电路的输入/输出端口,然后根据子电路的端口性质数据阵列连接子电路端口,并将未连接的端口保存到对应待处理端口数据矩阵TXXX,等待后期处理;4).拓扑形成控制器处理电路生成过程中所有的悬空端口,使生成的电路闭合。
2.根据权利要求1所述的数据阵列电路描述方法,其特征在于,经验总结出16个子电路,并用拓扑性质数据阵列,拓扑结构数据阵列和拓扑端口数据阵列分别描述每个子电路的器件性质、拓扑连接关系和子电路端口性质。
3.根据权利要求1所述的数据阵列电路描述方法,其特征在于,该发明采用数据阵列方式描述电路。
4.根据权利要求1所述的数据阵列电路描述方法,其特征在于,描述电路时所采用的数据阵列为拓扑性质数据阵列和拓扑结构数据阵列。
5.根据权利要求1所述的数据阵列电路描述方法,其特征在于,该发明应用于运放电路自动生成时,应用拓扑性质数据阵列、拓扑结构数据阵列和拓扑端口数据阵列,共同完成运放电路设计。
全文摘要
本发明涉及模拟电路设计自动化技术领域,提出一种模拟电路数据阵列描述方法。1)经验总结出16个子电路,并用拓扑性质数据阵列,拓扑结构数据阵列和拓扑端口数据阵列分别描述每个子电路的器件性质、拓扑连接关系和子电路端口性质;2)描述模拟电路时,参照上述16个子电路,将模拟电路包含的器件划分成若干电路模块;3)该发明应用于运放电路拓扑自动生成设计时,参照16个子电路的拓扑端口数据阵列描述的子电路端口性质和拓扑性质数据阵列描述的子电路器件性质,通过对拓扑结构数据阵列的编辑,实现运放电路拓扑的自动生成。本发明能描述绝大多数模拟电路,适用范围广泛。
文档编号G06F17/50GK1845106SQ20051006387
公开日2006年10月11日 申请日期2005年4月8日 优先权日2005年4月8日
发明者高雪莲 申请人:中国科学院半导体研究所

最新回复(0)