基于树结构的模拟电路自动设计方法、装置、设备及介质

文档序号:20521 发布日期:2021-09-21 浏览:58次 >En<

阅读说明:本技术 基于树结构的模拟电路自动设计方法、装置、设备及介质 (Tree structure based automatic design method, device, equipment and medium for analog circuit ) 是由 师心铭 姚新 于 2021-06-25 设计创作,主要内容包括:本发明公开了一种基于树结构的模拟电路自动设计方法、装置、设备及介质。基于树结构的模拟电路自动设计方法包括:设置树结构的最大高度和生长方向;从功能节点库中随机调用节点作为父节点;按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点;若子节点为终端节点,则生成树结构;对树结构进行检查,若树结构满足预设条件,则得到符合电路规则的电路拓扑和器件参数;对电路拓扑和器件参数进行演化,生成模拟电路。本发明达到了使设计出的模拟电路的树结构更加合理的效果。(The invention discloses a method, a device, equipment and a medium for automatically designing an analog circuit based on a tree structure. The tree structure-based analog circuit automatic design method comprises the following steps: setting the maximum height and the growth direction of the tree structure; randomly calling nodes from the functional node library as father nodes; randomly calling nodes from the functional node library and the port node library according to the growth direction as child nodes; if the child node is a terminal node, generating a tree structure; checking the tree structure, and if the tree structure meets preset conditions, obtaining circuit topology and device parameters which accord with circuit rules; and evolving the circuit topology and the device parameters to generate an analog circuit. The invention achieves the effect of making the tree structure of the designed analog circuit more reasonable.)

基于树结构的模拟电路自动设计方法、装置、设备及介质

技术领域

本发明实施例涉及电路自动设计

技术领域

,尤其涉及一种基于树结构的模拟电路自动设计方法、装置、设备及介质。

背景技术

自动电路设计引起了越来越多的关注,由于其涉及到复杂的拓扑结构和参数选择,模拟电路设计自动化尤其具有挑战性。研究模拟电路设计自动化的方法有很多种,包括基于领域知识的方法,进化算法和模拟退火等方法。基于领域的知识的方法对于设计者具有较高的电路知识需求,模拟退火的方法,进化算法凭借其不依赖领域知识的特点得到了在自动设计电路中广泛应用。遗传编程是演化算法中的一类,作为一种全局优化搜索算法,以其简单通用、鲁棒性强,并且对非线性复杂问题建模显示出很强的求解能力,这些特性与模拟电路自动设计的需求不谋而合,因此被成功的应用到了模拟电路自动设计中。

对于基于演化算法的自动电路设计来说,电路表征方式决定了演化算法的搜寻空间,无论对于演化的收敛进程还是演化的最终结果都起到了非常关键的作用。从不同数据结构来说,电路表示可分为三类,分别为基于字符串、基于树和基于图的电路表征方法。

但是,采用字符串的形式表征电路需要耗费较多计算时间,基于图的表示方式不利于进行交叉操作,而现有的基于树的表示方法,是采用电路连接操作来设计树的结构,使得树的结构较大。

发明内容

本发明提供一种基于树结构的模拟电路自动设计方法、装置、设备及介质,以得到更合理的表示电路的树结构。

第一方面,本发明实施例提供了一种基于树结构的模拟电路自动设计方法,基于树结构的模拟电路自动设计方法包括:

设置树结构的最大高度和生长方向;

从功能节点库中随机调用节点作为父节点;

按照所述生长方向从功能节点库和端口节点库中随机调用节点作为子节点;

确定若所述子节点为终端节点时,则生成树结构;

对所述树结构进行检查,确定若所述树结构满足预设条件时,则得到符合电路规则的电路拓扑和器件参数;

对所述电路拓扑和所述器件参数进行演化,生成模拟电路。

可选地,对所述树结构进行检查包括以下中的至少一种:

检查所述树结构的终端节点,判断所述终端节点是否包含预定义的胚胎电路的所有外部端口;

检查所述树结构中是否存在悬挂节点;

检查所述树结构的高度是否超过所述最大高度。

可选地,检查所述树结构中是否存在悬挂节点包括:

检查所述树结构中的同一终端节点的被分配次数是否大于或等于预设次数;若所述树结构中的同一终端节点的被分配次数大于或等于所述预设次数,则所述树结构不存在悬挂节点。

可选地,对所述电路拓扑和所述器件参数进行演化,生成模拟电路包括:

设置种群参数,所述参数至少包括:所述种群的大小、拓扑结构交叉率、值交叉率、变异率和预设迭代次数;

初始化所述种群,按照所述种群的大小生成待演化的种群个体;

对所述种群个体进行适应值评估;

根据所述适应值通过精英策略从所述种群个体中选择精英个体;

根据所述拓扑结构交叉率判断是否执行个体拓扑交叉,如果执行个体拓扑交叉,通过锦标赛策略从所述精英个体中选择第一父代个体,与所述精英个体进行交叉;

根据所述值交叉率判断是否执行个体值交叉,如果执行个体值交叉,通过锦标赛策略从所述精英个体中选择第二父代个体,与所述精英个体进行交叉;

根据所述变异率判断是否执行个体变异操作,如果执行个体变异操作,随机选择增加或删除节点操作;

更新所述种群,并更新迭代次数;

确定所述迭代次数等于所述预设迭代次数时,迭代结束,生成模拟电路。

可选地,在设置树结构的最大高度和生长方向之前,还包括:

确定功能节点库和终端节点库;

预定义胚胎电路。

可选地,基于树结构的模拟电路自动设计方法还包括:

根据所述树结构生成网表;

利用所述网表进行仿真,得到所述模拟电路的输出曲线。

第二方面,本发明实施例还提供了一种基于树结构的模拟电路自动设计装置,基于树结构的模拟电路自动设计装置包括:

参数设置模块,用于设置树结构的最大高度和生长方向;

父节点确定模块,用于从功能节点库中随机调用节点作为父节点;

子节点确定模块,用于按照所述生长方向从功能节点库和端口节点库中随机调用节点作为子节点;

树结构生成模块,用于确定所述子节点为终端节点时,生成树结构;

树结构检查模块,用于对所述树结构进行检查;

电路拓扑和器件参数生成模块,用于确定所述树结构满足预设条件时,得到符合电路规则的电路拓扑和器件参数;

模拟电路生成模块,用于对所述电路拓扑和所述器件参数进行演化,生成模拟电路。

可选地,所述树结构检查模块包括以下中的至少一种:

终端节点检查单元,用于检查所述树结构的终端节点,判断所述终端节点是否包含预定义的胚胎电路的所有外部端口;

悬挂节点检查单元,用于检查所述树结构中是否存在悬挂节点;

树结构高度检查单元,用于检查所述树结构的高度是否超过所述最大高度。

第三方面,本发明实施例还提供了一种基于树结构的模拟电路自动设计电子设备,基于树结构的模拟电路自动设计电子设备包括:处理器,所述处理器用于在执行计算机程序时实现如第一方面任意所述的基于树结构的模拟电路自动设计方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任意所述的基于树结构的模拟电路自动设计方法。

本发明通过设置树结构的最大高度和生长方向,确定树结构的最大允许高度和生长方向;功能节点库包含了生成模拟电路所需的器件类型和器件参数,端口节点库包含了生成模拟电路所需的器件的端口位置,从功能节点库中随机调用节点作为父节点,按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点,对子节点的数据类型进行判断,如果子节点为终端节点,则树生长结束,生成树结构。如果子节点不是终端节点,则继续按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点,直到子节点为终端节点。从而完成树结构各个分枝的生长,生成树结构。然后对树结构进行检查,如果树结构满足预设条件,表明生成的树结构符合电路规则,从而得到符合电路规则的电路拓扑和器件参数。相比于现有技术中采用电路连接操生成的树结构,本发明实施例直接以器件类型作为功能节点,以器件的端口位置作为终端节点而生成的电路拓扑的树结构较小,树结构更为合理,便于进行后续的演化和网表的生成。最后对电路拓扑和器件参数进行演化,生成模拟电路。本发明解决了现有技术中采用电路连接操作来设计树的结构,使得树的结构较大的问题,达到了使设计出的模拟电路的树结构更加合理的效果。

附图说明

图1是本发明实施例提供的一种基于树结构的模拟电路自动设计方法的流程图;

图2是本发明实施例提供的不同端口定义的等效晶体管的示意图;

图3是本发明实施例提供的一种电路的结构示意图;

图4是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的图3对应的电路拓扑的示意图;

图5是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的图3对应的器件参数的示意图;

图6是本发明实施例提供的另一种基于树结构的模拟电路自动设计方法的流程图;

图7是本发明实施例提供的另一种基于树结构的模拟电路自动设计方法的流程图;

图8是本发明实施例提供的另一种基于树结构的模拟电路自动设计方法的流程图;

图9是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的电压参考电路的结构示意图;

图10是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的网表仿真得到的图9对应的输出曲线和目标曲线的对比图;

图11是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的温度感受器电路的结构示意图;

图12是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的网表仿真得到的图11对应的输出曲线和目标曲线的对比图;

图13是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的高斯函数产生器电路的结构示意图;

图14是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的网表仿真得到的图13对应的输出曲线和目标曲线的对比图;

图15是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的基于忆阻器的脉冲产生电路的结构示意图;

图16是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的网表仿真得到的图15对应的输出曲线和目标曲线的对比图;

图17是本发明实施例提供的一种基于树结构的模拟电路自动设计装置的结构示意图;

图18是本发明实施例提供的一种基于树结构的模拟电路自动设计电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

图1是本发明实施例提供的一种基于树结构的模拟电路自动设计方法的流程图,本实施例可适用于基于树结构的模拟电路自动设计的情况,参见图1,基于树结构的模拟电路自动设计方法包括:

S110、设置树结构的最大高度和生长方向。

其中,树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为节点)按分支关系组织起来的结构,树结构例如是多叉树结构。在生成树结构之前,先设置树结构的最大高度和生长方向,最大高度是指树结构的最大允许高度,生长方向例如设置为向下。

S120、从功能节点库中随机调用节点作为父节点;按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点。

其中,功能节点库包含了生成模拟电路所需的所有功能节点,功能节点包括器件类型和器件参数,器件参数可以包括算术运算符和浮点数,浮点数是从-1到1的数;端口节点库包含了生成模拟电路所需的所有端口节点,即器件的端口位置,器件的端口位置用整数表示。从功能节点库中随机调用节点作为父节点,再按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点。需要说明的是,具有极性的器件可以用不同的功能节点进行表示,例如忆阻或晶体管等,图2是本发明实施例提供的不同端口定义的等效晶体管的示意图,图2示出了不同端口定义的6种晶体管,这6种晶体管需要用不同的功能节点进行表示,以进行区分。图2中,g'表示晶体管的栅极,s'表示晶体管的源极,d'表示晶体管的漏极,g、s、d分别表示晶体管的三个端口节点。

S130、若子节点为终端节点,则生成树结构。

具体地,对子节点的数据类型进行判断,如果子节点为数字类型,则子节点为终端节点,则树生长结束,生成树结构。如果子节点的数据类型不是数字类型,则继续按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点,直到子节点为终端节点。从而完成树结构各个分枝的生长,生成树结构。利用功能节点库的器件类型和端口节点库的器件端口位置即可生成电路拓扑的树结构,利用功能节点库的器件参数即可生成器件参数的树结构。

S140、对树结构进行检查,若树结构满足预设条件,则得到符合电路规则的电路拓扑和器件参数。

具体地,对树结构进行检查,如果树结构满足预设条件,表明生成的树结构符合电路规则,从而得到符合电路规则的电路拓扑和器件参数。相比于现有技术中采用电路连接操作生成的树结构,本发明实施例直接以器件类型作为功能节点、以器件的端口位置作为终端节点而生成的电路拓扑的树结构较小,树结构更合理,便于进行后续的演化和网表的生成。其中,预设条件可以根据实际情况进行确定,例如根据电路规则进行确定。通过电路拓扑可以确定电路的连接关系,通过器件参数可以计算得出各个器件的参数值。参数值的计算公式为其中,A为可调节参数,可以根据实际情况进行设定,Valuedevice为器件参数值,Valuetree为根据器件参数的树结构计算的值。

图3是本发明实施例提供的一种电路的结构示意图,图4是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的图3对应的电路拓扑的示意图,图5是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的图3对应的器件参数的示意图。参见图3,电路中包括第一晶体管PMOS、电阻R、第二晶体管NMOS和忆阻Mem,电阻R包括端口节点0和3,第一晶体管PMOS包括端口节点1、2和3,第二晶体管NMOS包括端口节点1、4和5,忆阻Mem包括端口节点2和4,器件的端口节点即可以表示器件的端口位置。参见图4,电路拓扑中以第一晶体管PMOS作为父节点,电阻R、第二晶体管NMOS和忆阻Mem为子节点,电阻R、第二晶体管NMOS和忆阻Mem的端口位置为终端节点。参见图5,图5可以是图3中任意一个器件对应的器件参数,器件参数包括算术运算符和浮点数,参见图5,算术运算符包括两个“+”、一个“-”和一个“*”,其中,“+”表示加法运算符,“-”表示减法运算符,“*”表示乘法运算符,浮点数包括0.7、-0.3、-0.2、0.8和0.5。根据图5可以计算出Valuetree,Valuetree=(0.7-(-0.3))+((-0.2)*0.8+0.5)=1.34,因此,通过设置A,即可计算出器件参数值,从而确定每个器件的参数值。需要说明的是,图4只是示意出电路拓扑的一种情况,并不进行限定;图5只是示意出器件参数的一种情况,并不进行限定。

S150、对电路拓扑和器件参数进行演化,生成模拟电路。

具体地,生成的电路拓扑可能不是最优的连接方式,可能会出现连接错乱的情况,生成的器件参数可能也不是最优的器件参数值,所以还需对电路拓扑和器件参数进行演化,例如通过遗传算法进行演化,最后生成模拟电路,这时生成的模拟电路的连接方式和器件参数更为合理。

本实施例的技术方案,通过设置树结构的最大高度和生长方向,确定树结构的最大允许高度和生长方向;功能节点库包含了生成模拟电路所需的器件类型和器件参数,端口节点库包含了生成模拟电路所需的器件的端口位置,从功能节点库中随机调用节点作为父节点,按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点,对子节点的数据类型进行判断,如果子节点为终端节点,则树生长结束,生成树结构。如果子节点不是终端节点,则继续按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点,直到子节点为终端节点。从而完成树结构各个分枝的生长,生成树结构。然后对树结构进行检查,如果树结构满足预设条件,表明生成的树结构符合电路规则,从而得到符合电路规则的电路拓扑和器件参数。相比于现有技术中采用电路连接操生成的树结构,本发明实施例直接以器件类型作为功能节点、以器件的端口位置作为终端节点而生成的电路拓扑的树结构较小,树结构更为合理,便于进行后续的演化和网表的生成。最后对电路拓扑和器件参数进行演化,生成模拟电路。本实施例的技术方案解决了现有技术中采用电路连接操作来设计树的结构,使得树的结构较大的问题,达到了使设计出的模拟电路的树结构更加合理的效果。

在上述实施方案的基础上,S140中,对树结构进行检查包括以下中的至少一种:

检查树结构的终端节点,判断终端节点是否包含预定义的胚胎电路的所有外部端口。

其中,胚胎电路代表待演化电路的初始回路配置,该配置已预先定义,并将在演化过程中固定。一般的胚胎电路包括电压源、地和负载电阻等,并且模拟电路中的这一部分将不会被演化。具体地,检查树结构的终端节点,判断树结构的终端节点是否包含胚胎电路的所有外部端口,即检查树结构的终端节点是否与胚胎电路的所有外部端口连接,从而避免胚胎电路出现未连接的端口,避免后续生成的胚胎电路中存在悬挂节点,避免在演化过程中出现无效电路。

检查树结构中是否存在悬挂节点。

具体地,检查树结构中是否存在悬挂节点,即检查树结构中的器件的端口是否都连接到电路中,避免生成的模拟电路中存在断路,导致模拟电路无法正常工作。

可选地,检查树结构中是否存在悬挂节点包括:

检查树结构中的同一终端节点的被分配次数是否大于或等于预设次数;若树结构中的同一终端节点的被分配次数大于或等于预设次数,则树结构不存在悬挂节点。

具体地,检查树结构中是否存在悬挂节点可以是检查树结构的同一终端节点的被分配次数,即检查树结构的同一终端节点的出现次数,如果同一终端节点的被分配次数大于或等于预设次数,则证明树结构的终端节点均连接,没有存在未连接的终端节点,即不存在悬挂节点,从而确保生成的模拟电路不存在断路现象。其中,预设次数可以根据具体的器件类型和器件连接关系确定,预设次数可以为2,也可以是3,也可以是其他数值,这里并不进行限定。

检查树结构的高度是否超过最大高度。

具体地,检查树结构的高度,避免树结构的高度超过最大高度,从而避免树结构出现膨胀现象,从而可以保证生成的树结构过大,使得树结构更加合理。可选地,如果树结构的高度超过最大高度可以将超过的部分替换为其左终端节点,从而使得树结构提前生长到终端节点,减小树结构的高度。

在上述技术方案的基础上,图6是本发明实施例提供的另一种基于树结构的模拟电路自动设计方法的流程图,可选地,参见图6,基于树结构的模拟电路自动设计方法包括:

S201、设置树结构的最大高度和生长方向。

S202、从功能节点库中随机调用节点作为父节点;按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点。

S203、若子节点为终端节点,则生成树结构。

S204、对树结构进行检查,若树结构满足预设条件,则得到符合电路规则的电路拓扑和器件参数。

S205、设置种群参数,参数至少包括:种群的大小、拓扑结构交叉率、值交叉率、变异率和预设迭代次数。

具体地,首先设置种群的参数,种群的大小即种群中个体的数量;拓扑结构交叉率即拓扑结构的交叉率,拓扑结构交叉率可以是随机设定的,也可以是根据公式计算的,这里并不进行限定;值交叉率是指器件参数的树结构的交叉率,值交叉率可以是随机设定的,也可以是根据公式计算的,这里并不进行限定;变异率可以是随机设定的,也可以是根据公式计算的,这里并不进行限定;预设迭代次数即种群需要迭代的次数,预设迭代次数可以根据实际情况确定,例如可以根据演化时间来确定,也可以根据其他条件来确定,这里并不进行限定。

S206、初始化种群,按照种群的大小生成待演化的种群个体。

具体地,初始化种群,初始化方法包括M类随机方法、定值设定法、两步式方法、混合方法和具体应用法,具体的初始化方法可以根据实际需求进行选择。按照种群的大小生成种群个体,以进行后续的演化。

S207、对种群个体进行适应值评估。

具体地,适应值指在某种环境条件下,某已知基因型的个体将其基因传递到其后代基因库中的相对能力,是衡量个体存活和生殖机会的尺度。计算种群个体的适应值,对每个种群中的个体进行评估,判断种群中每个个体的优劣,便于后续对种群中的个体进行选择。

S208、根据适应值通过精英策略从种群个体中选择精英个体;

具体地,精英策略是把群体在进化过程中迄今出现的最好个体(称为精英个体,elitist)不进行配对交叉而直接复制到下一代中。从种群个体中选择适应值最好的个体,从而选择出精英个体,精英个体可以为多个。

S209、根据拓扑结构交叉率判断是否执行个体拓扑交叉,如果执行个体拓扑交叉,则执行S210、通过锦标赛策略从精英个体中选择第一父代个体,与精英个体进行交叉;如果不执行个体拓扑交叉,则直接执行S211。

具体地,从0到1之间产生一个随机数,将随机数与拓扑结构交叉率进行对比,如果随机数小于拓扑结构交叉率,则执行个体拓扑交叉,通过锦标赛策略从精英个体中选择第一父代个体,与精英个体进行交叉。其中,锦标赛策略是每次从种群中取出一定数量个体(放回抽样),然后选择其中最好的一个进入子代种群,重复该操作,直到新的种群规模达到原来的种群规模。几元锦标赛就是一次性在总体中取出几个个体,然后在这些个体中取出最优的个体放入保留到下一代种群的集合中。锦标赛策略例如可以是n元锦标赛策略,n的具体取值可以根据实际需求确定,这里并不进行限定。

S211、根据值交叉率判断是否执行个体值交叉,如果执行个体值交叉,则执行S212、通过锦标赛策略从精英个体中选择第二父代个体,与精英个体进行交叉;如果不执行个体值交叉,则直接执行S213。

具体地,值交叉率即为器件参数的交叉率,从0到1之间产生一个随机数,将随机数与值交叉率进行对比,如果随机数小于值交叉率,则执行个体值交叉,通过锦标赛策略从精英个体中选择第二父代个体,与精英个体进行交叉。

S213、根据变异率判断是否执行个体变异操作,如果执行个体变异操作,则执行S214、随机选择增加或删除节点操作。如果不执行个体变异操作,则直接执行S215。

具体地,从0到1之间产生一个随机数,将随机数与变异率进行对比,如果随机数小于变异率,则执行个体变异操作,随机选择增加或删除节点操作,即可以是增加节点,也可以是删除节点,可以随机选择。

S215、更新种群,并更新迭代次数;

具体地,种群个体变异后,更新种群,并更新迭代次数,即每次迭代结束后,将迭代次数加1,从而实时记录迭代次数。

S216、确定迭代次数等于预设迭代次数时,迭代结束,生成模拟电路。

具体地,不断进行迭代,直到迭代次数等于预设迭代次数时,迭代结束,从而演化完成,即可生成模拟电路。通过演化生成的模拟电路的连接关系更加合理,不会出现连接错综复杂的情况,演化完成的器件参数的值也更为合理,从而得到合理的模拟电路。

在上述实施方案的基础上,图7是本发明实施例提供的另一种基于树结构的模拟电路自动设计方法的流程图,可选地,参见图7,基于树结构的模拟电路自动设计方法包括:

S310、确定功能节点库和终端节点库。

具体地,根据需要设计的模拟电路,确定所需的所有器件类型和器件参数,器件参数可以包括算术运算符和浮点数,定义功能节点库,将所有的器件类型和器件参数放入功能节点库。定义终端节点库,对所有的器件的端口位置进行编号,将器件的端口位置编号放入终端节点库。

S320、预定义胚胎电路。

具体地,根据需要设计的模拟电路,确定所需的电压源、地和负载电阻,将所需的电压源、地和负载电阻形成胚胎电路,胚胎电路可以表示待演化电路的初始回路配置。

S330、设置树结构的最大高度和生长方向。

S340、从功能节点库中随机调用节点作为父节点;按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点。

S350、若子节点为终端节点,则生成树结构。

S360、对树结构进行检查,若树结构满足预设条件,则得到符合电路规则的电路拓扑和器件参数。

S370、对电路拓扑和器件参数进行演化,生成模拟电路。

在上述实施方案的基础上,图8是本发明实施例提供的另一种基于树结构的模拟电路自动设计方法的流程图,可选地,参见图8,基于树结构的模拟电路自动设计方法包括:

S410、设置树结构的最大高度和生长方向。

S420、从功能节点库中随机调用节点作为父节点;按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点。

S430、若子节点为终端节点,则生成树结构。

S440、对树结构进行检查,若树结构满足预设条件,则得到符合电路规则的电路拓扑和器件参数。

S450、对电路拓扑和器件参数进行演化,生成模拟电路。

S460、根据树结构生成网表。

具体地,根据生成的电路拓扑和器件参数的树结构生成网表,网表例如为SPICE网表。表1是利用基于树结构的模拟电路自动设计方法生成的图4对应的网表。参见表1,网表中包含了器件类型和器件的端口位置,参见图4,树结构也是包含了器件类型和器件的端口位置,所以本发明实施例的树结构是与网表一一对应的,因此,可以减少树结构转换为网表的时间,转换的时间复杂度小,可以提高转换效率。因此,即使定义三端口的器件,也可以进行树结构和网表的快速转换,而不用像现有技术中为了提高转换效率,只定义两端口的器件,所以本发明实施例的树结构既可以适用于两端口器件,也可以适用于三端口器件。

表1利用基于树结构的模拟电路自动设计方法生成的图4对应的网表

S470、利用网表进行仿真,得到模拟电路的输出曲线。

具体地,利用网表进行仿真,即可得到模拟电路的输出曲线,通过将模拟电路的输出曲线与模拟电路的目标曲线进行对比,可以得出利用基于树结构的模拟电路自动设计方法生成的模拟电路是否合适,从而保证得到合理的模拟电路。

示例性的,图9是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的电压参考电路的结构示意图,图10是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的网表仿真得到的图9对应的输出曲线和目标曲线的对比图。参见图9,利用基于树结构的模拟电路自动设计方法生成的电压参考电路包括15个器件,其中电阻包括R1、R2、R3、R4、R5、R6、R7、R8和R9,晶体管包括Q1、Q2、Q3、Q4、Q5和Q6,电压参考电路中的端口节点包括0、2、3、5、12、13、18、19和23,电压参考电路中的端口节点即为电路拓扑中的终端节点,Rin和RL可以是胚胎电路中的器件。参见图9,通过端口节点0输入电压Vin,即可在端口节点3输出电压Vout。根据器件参数的树结构可以得出电阻的阻值,例如,R1=16954.5Ω、R2=461.2Ω、R3=200000Ω、R4=7.2Ω、R5=13757.5Ω、R6=382.6Ω、R7=6057.7Ω、R8=2357.2Ω及R9=2.7Ω,这里只是示出了电阻参数值的一种情况,并不进行限定。如图9所示,利用基于树结构的模拟电路自动设计方法生成的电压参考电路的连接合理,没有出现连接错乱的现象,也没有出现悬挂节点,而且还得出了各个器件的参数值,而且生成的器件个数为15个,器件个数也很合理,没有多余的器件,可以减小电路的功耗。参见图10,不同温度下的电压参考电路的输出曲线与目标曲线较为接近,所以,验证了基于树结构的模拟电路自动设计方法生成的电压参考电路的合理性。

示例性的,图11是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的温度感受器电路的结构示意图,图12是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的网表仿真得到的图11对应的输出曲线和目标曲线的对比图。参见图11,利用基于树结构的模拟电路自动设计方法生成的温度感受器电路包含21个器件,其中电阻包括R1、R2、R3、R4、R5、R6和R7,晶体管包括Q1、Q2、Q3、Q4、Q5、Q6、Q7、Q8、Q9、Q10、Q11、Q12、Q13和Q14,温度感受器电路中的端口节点包括0、2、3、5、14、20、22、24、26和29,温度感受器电路中的端口节点即为电路拓扑中的终端节点,Rin1、Rin2和RL可以是胚胎电路中的器件。参见图11,通过输入电压Vin1和Vin2,即可在端口节点3输出电压Vout。根据器件参数的树结构可以得出电阻的阻值,例如,R1=1565.3Ω、R2=6.9Ω、R3=18985.9Ω、R4=50.5Ω、R5=200000Ω、R6=6617.2Ω及R7=127614.9Ω,这里只是示出了电阻参数值的一种情况,并不进行限定。参见图11,利用基于树结构的模拟电路自动设计方法生成的温度感受器电路的连接合理,没有出现连接错乱的现象,也没有出现悬挂节点,而且还得出了各个器件的参数值,而且生成的器件个数为21个,器件个数也很合理,没有多余的器件,可以减小电路的功耗。参见图12,温度感受器电路的输出曲线与目标曲线几乎重叠,所以,验证了基于树结构的模拟电路自动设计方法生成的温度感受器电路的合理性。

示例性的,图13是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的高斯函数产生器电路的结构示意图,图14是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的网表仿真得到的图13对应的输出曲线和目标曲线的对比图。参见图13,利用基于树结构的模拟电路自动设计方法生成的高斯函数产生器电路包含30个器件,其中电阻包括R1、R2、R3、R4、R5、R6、R7、R8、R9、R10、R11、R12、R13、R14、R15、R16、R17、R18、R19和R20,晶体管包括M1、M2、M3、M4、M5、M6、M7、M8、M9和M10,高斯函数产生器电路中的端口节点包括0、1、2、3、5、7、9、13、14、15、17、22、23和26,高斯函数产生器电路中的端口节点即为电路拓扑中的终端节点,Rin可以是胚胎电路中的器件。参见图13,通过输入电压Vin1和Vin2,即可在端口节点4输出电流Iout。根据器件参数的树结构可以得出电阻的阻值,例如,R1=3624.1Ω、R2=922.5Ω、R3=7175.7Ω、R4=14412.9Ω、R5=10069.9Ω、R6=38163.2Ω、R7=109958.7Ω、R8=2357.2Ω、R9=5761.1Ω、R10=6389.2Ω、R11=500Ω、R12=470185.6Ω、R13=6868.7Ω、R14=11735.7Ω、R15=500Ω、R16=1000Ω、R17=1979.1Ω、R18=18332.6Ω、R19=11664.2Ω及R20=1258.2Ω,这里只是示出了电阻参数值的一种情况,并不进行限定。参见图13,利用基于树结构的模拟电路自动设计方法生成的高斯函数产生器电路的连接合理,没有出现连接错乱的现象,也没有出现悬挂节点,而且还得出了各个器件的参数值,而且生成的器件个数为30个,器件个数也很合理,没有多余的器件。参见图14,高斯函数产生器电路的输出曲线与目标曲线几乎重叠,所以,验证了基于树结构的模拟电路自动设计方法生成的高斯函数产生器电路的合理性。

示例性的,图15是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的基于忆阻器的脉冲产生电路的结构示意图,图16是本发明实施例提供的利用基于树结构的模拟电路自动设计方法生成的网表仿真得到的图15对应的输出曲线和目标曲线的对比图。参见图15,利用基于树结构的模拟电路自动设计方法生成的基于忆阻器的脉冲产生电路包含25个器件,其中电阻包括R1、R2、R3、R4、R5和R6,晶体管包括M1、M2、M3、M4、M5、M6、M7、M8、M9、M10和M11,忆阻器包括Mem1、Mem2、Mem3、Mem4、Mem5、Mem6、Mem7和Mem8,基于忆阻器的脉冲产生电路中的端口节点包括0、1、2、3、4、10、13、14、17和19,基于忆阻器的脉冲产生电路中的端口节点即为电路拓扑中的终端节点,Rin可以是胚胎电路中的器件。参见图15,通过输入电压Vin、Vcc和Vdd,即可输出电压Vout。根据器件参数的树结构可以得出电阻的阻值,例如,R1=2021.9Ω、R2=200.0Ω、R3=200KΩ、R4=200Ω、R5=31710.1Ω及R6=46823.1Ω,这里只是示出了电阻参数值的一种情况,并不进行限定。参见图15,利用基于树结构的模拟电路自动设计方法生成的基于忆阻器的脉冲产生电路的连接合理,没有出现连接错乱的现象,也没有出现悬挂节点,而且还得出了各个器件的参数值,而且生成的器件个数为25个,器件个数也很合理,没有多余的器件。参见图16,基于忆阻器的脉冲产生电路的输出曲线与目标曲线几乎重叠,所以,验证了基于树结构的模拟电路自动设计方法生成的基于忆阻器的脉冲产生电路的合理性。

图17是本发明实施例提供的一种基于树结构的模拟电路自动设计装置的结构示意图,参见图17,基于树结构的模拟电路自动设计装置包括:

参数设置模块510,用于设置树结构的最大高度和生长方向;

父节点确定模块520,用于从功能节点库中随机调用节点作为父节点;

子节点确定模块530,用于按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点;

树结构生成模块540,用于确定子节点为终端节点时,生成树结构;

树结构检查模块550,用于对树结构进行检查;

电路拓扑和器件参数生成模块560,用于确定树结构满足预设条件时,得到符合电路规则的电路拓扑和器件参数;

模拟电路生成模块570,用于对电路拓扑和器件参数进行演化,生成模拟电路。

本实施方案提供的基于树结构的模拟电路自动设计装置为实现上述实施例的基于树结构的模拟电路自动设计方法,本实施例提供的基于树结构的模拟电路自动设计装置实现原理和技术效果与上述实施方案类似,此处不再赘述。

可选地,树结构检查模块550包括以下中的至少一种:

终端节点检查单元,用于检查树结构的终端节点,判断终端节点是否包含预定义的胚胎电路的所有外部端口。

悬挂节点检查单元,用于检查树结构中是否存在悬挂节点。

可选地,悬挂节点检查单元具体用于检查树结构中的同一终端节点的被分配次数是否大于或等于预设次数;若树结构中的同一终端节点的被分配次数大于或等于预设次数,则树结构不存在悬挂节点。

树结构高度检查单元,用于检查树结构的高度是否超过最大高度。

可选地,模拟电路生成模块570包括:

种群参数设置单元,用于设置种群参数,参数至少包括:种群的大小、拓扑结构交叉率、值交叉率、变异率和预设迭代次数;

种群个体生成单元,用于初始化种群,按照种群的大小生成待演化的种群个体;

适应值评估单元,用于对种群个体进行适应值评估;

精英个体选择单元,用于根据适应值通过精英策略从种群个体中选择精英个体;

第一交叉单元,用于根据拓扑结构交叉率判断是否执行个体拓扑交叉,如果执行个体拓扑交叉,通过锦标赛策略从精英个体中选择第一父代个体,与精英个体进行交叉;

第二交叉单元,用于根据值交叉率判断是否执行个体值交叉,如果执行个体值交叉,通过锦标赛策略从精英个体中选择第二父代个体,与精英个体进行交叉;

变异单元,用于根据变异率判断是否执行个体变异操作,如果执行个体变异操作,随机选择增加或删除节点操作;

种群更新单元,用于更新种群,并更新迭代次数;

模拟电路生成单元,用于确定迭代次数等于预设迭代次数时,迭代结束,生成模拟电路。

可选地,基于树结构的模拟电路自动设计装置还包括:

节点库确定模块,用于确定功能节点库和终端节点库;

胚胎电路预定义模块,用于预定义胚胎电路。

可选地,基于树结构的模拟电路自动设计装置还包括:

网表生成模块,用于根据树结构生成网表;

模拟电路仿真模块,用于利用网表进行仿真,得到模拟电路的输出曲线。

图18是本发明实施例提供的一种基于树结构的模拟电路自动设计电子设备的结构示意图,如图18所示,该设备包括处理器70、存储器71、输入装置72和输出装置73;设备中处理器70的数量可以是一个或多个,图18中以一个处理器70为例;设备中的处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图18中以通过总线连接为例。

存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于树结构的模拟电路自动设计方法对应的程序指令/模块(例如,基于树结构的模拟电路自动设计装置中的参数设置模块510、父节点确定模块520和子节点确定模块530等)。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的基于树结构的模拟电路自动设计方法。

存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置72可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示设备。

本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种基于树结构的模拟电路自动设计方法,该方法包括:

设置树结构的最大高度和生长方向;

从功能节点库中随机调用节点作为父节点;

按照生长方向从功能节点库和端口节点库中随机调用节点作为子节点;

若子节点为终端节点,则生成树结构;

对树结构进行检查,若树结构满足预设条件,则得到符合电路规则的电路拓扑和器件参数;

对电路拓扑和器件参数进行演化,生成模拟电路。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于树结构的模拟电路自动设计方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述基于树结构的模拟电路自动设计装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

28页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:集成电路装置设计仿真方法、装置、设备和可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类