CN115796090B - 电路模型生成方法、电路仿真验证方法及对应装置 - Google Patents
电路模型生成方法、电路仿真验证方法及对应装置 Download PDFInfo
- Publication number
- CN115796090B CN115796090B CN202211604762.3A CN202211604762A CN115796090B CN 115796090 B CN115796090 B CN 115796090B CN 202211604762 A CN202211604762 A CN 202211604762A CN 115796090 B CN115796090 B CN 115796090B
- Authority
- CN
- China
- Prior art keywords
- circuit
- digital
- model
- analog
- names
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000004088 simulation Methods 0.000 title claims abstract description 51
- 238000012795 verification Methods 0.000 title claims abstract description 50
- 239000011159 matrix material Substances 0.000 claims description 55
- 230000015654 memory Effects 0.000 claims description 19
- 238000004458 analytical method Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 abstract description 13
- 238000004891 communication Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 101000650134 Homo sapiens WAS/WASL-interacting protein family member 2 Proteins 0.000 description 4
- 102100027540 WAS/WASL-interacting protein family member 2 Human genes 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100073352 Streptomyces halstedii sch1 gene Proteins 0.000 description 1
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请涉及电路仿真技术领域,提供一种电路模型生成方法、电路仿真验证方法及对应装置。其中,电路模型生成方法包括:获取模拟电路的电路网表;解析电路网表,确定模拟电路中的电路元素的名称及连接关系;根据电路元素的名称确定模拟电路中的输入输出端口的名称,并获取用户配置的输入输出端口的参数;根据电路元素的名称确定模拟电路中的元器件的名称,获取用户配置的元器件的参数,并从器件库中提取出元器件的数字器件模型;根据输入输出端口的名称及参数、元器件的名称及参数、元器件的数字器件模型、电路元素的名称及连接关系生成模拟电路的数字电路模型。利用该方法生成电路模型的过程简单高效,便于对模数接口进行高效的仿真验证。
Description
技术领域
本发明涉及电路仿真技术领域,具体而言,涉及一种电路模型生成方法、电路仿真验证方法及对应装置。
背景技术
模拟电路是指用来对模拟量进行传输、变换、放大、处理、测量和显示等工作的电路,而数字电路是指用数字信号完成对数字量的算术运算和逻辑运算的电路。
在电路设计中,仿真验证是一个重要的环节,它能检查所设计的电路是否符合要求。纯数字电路的仿真验证有着广泛的计算机辅助软件的支持,因此比较容易实现,而对模拟电路及模拟电路与数字电路之间的模数接口进行仿真验证则比较困难,目前比较可行的方案是利用Verilog-A语言对模拟电路进行建模,实现其与数字电路的连接,然后进行相关的仿真验证。但利用Verilog-A语言进行建模的过程十分复杂,并且利用此种方式建立的电路模型进行仿真验证的速度较慢。
发明内容
本申请实施例的目的在于提供一种电路模型生成方法、计算机程序产品、存储介质及电子设备,以改善上述技术问题。
为实现上述目的,本申请提供如下技术方案:
第一方面,本申请实施例提供一种电路模型生成方法,包括:获取模拟电路的电路网表;通过解析所述电路网表,确定所述模拟电路中的电路元素的名称及连接关系;根据所述电路元素的名称确定所述模拟电路中的输入输出端口的名称,并获取用户配置的所述输入输出端口的参数;根据所述电路元素的名称确定所述模拟电路中的元器件的名称,获取用户配置的所述元器件的参数,从器件库中提取出所述元器件的数字器件模型,并获取用户配置的所述元器件的参数;根据所述输入输出端口的名称及参数、所述元器件的名称及参数、所述元器件的数字器件模型、所述电路元素的名称及连接关系生成所述模拟电路的数字电路模型。
上述方法从模拟电路的电路网表中提取模拟电路的相关信息,并基于这些信息反向生成模拟电路的数字电路模型,其建模过程简单高效。并且,由于其所建立的电路模型为数字模型,因此该模型方便与数字电路连接,从而便于对模数接口进行仿真验证,且仿真验证的效率较高。此外,基于该数字电路模型还可以尽早地实现模拟电路的仿真,从而尽早地在逻辑层面对模拟电路进行验证。
在第一方面的一种实现方式中,所述获取模拟电路的电路网表,包括:根据所述模拟电路的电路原理图提取所述电路网表。
在上述实现方式中,直接根据模拟电路的电路原理图提取电路网表,其操作简单,有利于快速生成模拟电路的数字电路模型。
在第一方面的一种实现方式中,所述电路元素包括端口、信号以及线路中的至少一种。
在上述实现方式中,通过端口、信号以及线路三种电路元素,可对模拟电路的结构进行有效描述。
在第一方面的一种实现方式中,所述通过解析所述电路网表,确定所述模拟电路中的电路元素的名称及连接关系,包括:通过解析所述电路网表,确定由所述模拟电路中的电路元素构成的邻接矩阵,所述邻接矩阵的每一行或每一列对应一个电路元素的名称,所述邻接矩阵的每个元素的取值表示该元素所在行对应的电路元素与该元素所在列对应的电路元素之间的连接关系。
在上述实现方式中,利用邻接矩阵这种数据结构,可以对模拟电路中的电路元素的名称及连接关系进行简单且精确的描述。
在第一方面的一种实现方式中,所述模拟电路包括顶层电路,所述顶层电路中包括至少一个电路模块;所述邻接矩阵包括:对应于所述顶层电路中的电路元素的第一邻接矩阵,以及对应于每个电路模块中的电路元素的第二邻接矩阵;所述数字电路模型包括:对应于所述顶层电路的第一数字电路模型,以及对应于每个电路模块的第二数字电路模型。
在上述实现方式中,针对顶层电路和顶层电路内部的电路模块分别构建邻接矩阵,并分别进行数字建模,既有利于描述模拟电路的内部结构,又有利于将模拟电路和数字电路连接。
在第一方面的一种实现方式中,所述从器件库中提取出所述元器件的数字器件模型,包括:根据所述元器件的器件名称确定所述元器件的器件类型,根据所述器件类型从所述器件库中提取出所述元器件的数字器件模型;或者,获取用户配置的所述元器件的器件类型,根据所述器件类型从所述器件库中提取出所述元器件的数字器件模型。
在上述实现方式中,如果元器件的器件名称和器件类型之间存在对应关系,则可以根据元器件的器件名称先确定器件类型,然后再根据器件类型提取出对应的数字器件模型;如果元器件的器件名称和器件类型之间不存在对应关系,则需要用户配置器件类型,然后再根据器件类型提取出对应的数字器件模型。
在第一方面的一种实现方式中,在所述确定所述模拟电路中的电路元素的名称及连接关系之后,所述方法还包括:根据所述模拟电路中的电路元素的名称及连接关系生成中间结果文件,所述中间结果文件为文本文件;其中,生成所述数字电路模型所需的所述模拟电路中的输入输出端口的名称、所述模拟电路中的元器件的名称以及所述电路元素的名称及连接关系从所述中间结果文件中解析得到。
在上述实现方式中,先根据模拟电路中的电路元素的名称及连接关系生成中间结果文件,再基于中间结果文件生成模拟电路的数字电路模型,由于中间结果文件是文本文件,因此便于用户对其内容进行检查或修改。
在第一方面的一种实现方式中,所述模拟电路包括顶层电路,所述顶层电路中包括至少一个电路模块;所述中间结果文件包括:所述顶层电路的输入输出声明,以及,每个电路模块中的每个元器件的端口连接关系。
在上述实现方式中,中间结果文件对顶层电路和顶层电路内部的电路模块分别进行描述,从而能够清楚地表达模拟电路的结构关系,进而便于用户对其内容进行检查或修改,也使得后续步骤从中间结果文件中解析出建模所需的信息(例如,元器件的名称等)变得更加方便。
第二方面,本申请实施例提供一种电路仿真验证方法,所述电路包括模拟电路以及数字电路,所述方法包括:获取所述模拟电路的数字电路模型;其中,所述数字电路模型利用第一方面或第一方面的任意一种实现方式提供的方法生成;将所述模拟电路的数字电路模型与所述数字电路连接,并至少对所述模拟电路和所述数字电路之间的模数接口进行仿真验证。
在上述方法中,由于模拟电路的电路模型为数字模型,因此该模型方便与数字电路连接,从而便于对模数接口进行仿真验证,且仿真验证的效率较高。此外,基于该数字电路模型还可以尽早地实现模拟电路的仿真,从而尽早地在逻辑层面对模拟电路进行验证。
第三方面,本申请实施例提供一种电路模型生成装置,包括:网表获取单元,用于获取模拟电路的电路网表;网表解析单元,用于通过解析所述电路网表,确定所述模拟电路中的电路元素的名称及连接关系;端口配置单元,用于根据所述电路元素的名称确定所述模拟电路中的输入输出端口的名称,并获取用户配置的所述输入输出端口的参数;元器件配置单元,用于根据所述电路元素的名称确定所述模拟电路中的元器件的名称,获取用户配置的所述元器件的参数,从器件库中提取出所述元器件的数字器件模型,并获取用户配置的所述元器件的参数;模型生成单元,用于根据所述输入输出端口的名称及参数、所述元器件的名称及参数、所述元器件的数字器件模型、所述电路元素的名称及连接关系生成所述模拟电路的数字电路模型。
第四方面,本申请实施例提供一种电路仿真验证装置,所述电路包括模拟电路以及数字电路,所述方法包括:模型获取单元,用于获取所述模拟电路的数字电路模型;其中,所述数字电路模型利用第一方面或第一方面的任意一种实现方式提供的方法生成;仿真验证单元,用于将所述模拟电路的数字电路模型与所述数字电路连接,并至少对所述模拟电路和所述数字电路之间的模数接口进行仿真验证。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种实现方式提供的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种实现方式提供的方法。
第七方面,本申请实施例提供一种电子设备,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面或第一方面的任意一种实现方式提供的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种电路模型生成方法的流程;
图2示出了适用图1中方法的一个模拟电路的电路原理图;
图3(A)和(B)示出了解析EDIF文件时括号匹配的不同情况;
图4示出了EDIF文件的一种解析算法的流程;
图5示出了本申请实施例提供的一种电路仿真验证方法的流程;
图6示出了适用图5中方法的一个应用场景;
图7示出了本申请实施例提供的电路模型生成装置可能包含的功能模块;
图8示出了本申请实施例提供的电路仿真验证装置可能包含的功能模块;
图9示出了本申请实施例提供的电子设备可能的结构。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
图1示出了本申请实施例提供的一种电路模型生成方法的流程,该方法可以、但不限于由一电子设备执行,关于该电子设备可能具有的结构可以参照后文关于图9的阐述。参照图1,电路模型生成方法包括:
步骤S110:获取模拟电路的电路网表。
步骤S110中的模拟电路是指要用于生成数字电路模型的模拟电路,其具体的结构不限。
在电路设计中,电路网表主要用于描述电路元器件相互之间连接关系,一般来说可实现为遵循某种语法规范的文本文件。
例如,电子设计交换格式(Electronic Design Interchange Format,简称EDIF)文件就是一种电路网表。EDIF综合了多种格式中的最佳特性,1985年的EDIF100版本提供了门阵列、半导体集成电路设计和布线自动化交换信息的格式,而后的EDIF200版本是不同EDA厂商之间、或者EDA厂商和IC厂商之间交换设计数据的标准格式。
不过应当理解,电路网表并不限于EDIF文件,但为简单起见,后文主要以电路网表是EDIF文件的情况为例。
步骤S110存在多种不同的实现方式,下面列举其中两种:
方式1:先在特定的工具中绘制好模拟电路的电路原理图,然后利用该工具从电路原理图中提取出模拟电路的电路网表。
参照图2,图2示出了适用图1中方法的一个模拟电路的电路原理图。在该电路原理图中,Sch1为电路模块的名称,电路的整体输入端口为A、B,输出端口为E、F,电路内部包含的元器件为与门I0、非门I1以及SR锁存器I2,关于该电路原理图中的其他符号的含义,将在后文的阐述中涉及。例如,可以利用Cadence Virtuoso工具绘制该电路原理图,并将利用该工具将电路原理图保存为EDIF文件。
采用方式1生成电路网表,其操作直观简单,有利于快速生成模拟电路的数字电路模型。
方式2:在步骤S110执行之前,执行步骤S110的电子设备本地的存储器中已经存储了模拟电路的电路网表,则步骤S110可以只是将电路网表从该电子设备的存储器中读取出来。
在方式2中,执行步骤S110的电子设备无需关心电路网表是如何产生的,比如,可能是在其他电子设备上基于电路原理图生成的,然后通过网络或者介质拷贝等方式传输给执行步骤S110的电子设备。
注意,在现有技术中,通常可根据数字电路模型(如Verilog模型)进行综合后得到电路网表(如EDIF文件),但本申请的方案是基于电路网表最终(在步骤S150中)生成数字电路模型,因此是现有技术的一个反向过程。
步骤S110:通过解析电路网表,确定模拟电路中的电路元素的名称及连接关系。
如前所述,由于电路网表通常都遵循特定的语法规范,因此可以按照相应的语法规范解析电路网表的内容,获得模拟电路中的电路元素的名称及连接关系。
例如,EDIF格式的设计既便于人类阅读,也便于机器解析。EDIF文件的语法规范类似于LISP编程语言,使用括号来组织文件的内容,其基本结构如下:
根据EDIF文件的上述结构可知:
1.EDIF文件包含一系列的库(libraries);
2.每个库包含一系列的单元(cells),每个单元具有一个或多个视图(views);
3.视图使用原理图(Schematic)、版图(Layout)、行为(Behaviour)和文档(Document)等视图格式(view type)来描述;
4.每个视图具有一个接口(interface)和一个内容(contents),通过它们来清晰定义视图。cell单元还通过视图映射(viewmap)属性和其他视图关联。
可以看出,EDIF文件中的层次关系和结点的内容,都使用多个层次嵌套或同级并列的括号来实现,对于正常的EDIF文件,这些括号是相互匹配的,即一个左括号必然存在与之对应的一个右括号。括号匹配的存在不同的情况:例如,图3(A)对应括号完全嵌套的情况,此时任何一个左括号之前都不会出现右括号,图3(A)括号下方相同的两个符号表示相互匹配的两个括号;又例如,图3(B)对应括号部分嵌套、部分同级的情况,此时部分左括号之前会出现右括号,图3(B)括号下方相同的两个符号表示相互匹配的两个括号。
将匹配的两个括号之间的部分称为一个节点,可以看出,EDIF文件实际上就是由嵌套或者同级的若干节点构成的,因此解析EDIF文件的过程实际上就是确定括号的匹配关系,然后解析节点内容的过程,其核心算法可以参照图4中给出的流程,下面对该流程中的步骤进行简要描述:
顺序扫描EDIF文件的文本,判断剩余文本中是否存在未处理的括号,若存在未处理的括号,则扫描下一个括号,不妨称为括号a,然后判断括号a是否为左括号,若括号a是左括号,则将左括号a压入栈中,然后继续判断剩余文本中是否存在未处理的括号,若括号a不是左括号(即a是右括号),则判断栈是否为空,若栈为空,则表明不存在与右括号a匹配的左括号(因为左括号都会入栈),即图4中的“右括号单身”,此时括号匹配失败,解析流程结束(EDIF文件存在异常),若栈不为空,则表明可能存在与右括号a匹配的左括号(因为左括号都会入栈),此时将栈顶元素b弹出,并判断栈顶元素b与右括号a是否为匹配的两个括号,若栈顶元素b与右括号a不是匹配的两个括号,即图4中的“左右括号不匹配”,此时括号匹配失败,解析流程结束(EDIF文件存在异常),若栈顶元素b与右括号a是匹配的两个括号,则解析左括号b和右括号a之间的EDIF节点,解析完后继续判断剩余文本中是否存在未处理的括号。
若上述流程中的任意一处判断剩余文本中是否存在未处理的括号的步骤结果为否,则判断栈是否为空,若栈不为空,则表明其中还有残余的左括号(因为左括号都会入栈),即图4中的“左括号单身”,此时括号匹配失败,解析流程结束(EDIF文件存在异常),若栈为空,则表明无需再进行括号匹配,此时EDIF文件解析完成,流程结束。
应当理解,图4的流程针对的仅仅是EDIF文件的解析,对于其他格式的电路网表的解析亦可参考。
步骤S120中提到的电路元素是指构成模拟电路的一些要素,例如,电路元素可以是模拟电路中的端口(PORT)、信号(SIGANL)以及线路(WIRE)中的一种或多种,这些电路元素之间可通过电路连接,从而电路元素的名称结合电路元素之间的连接关系就可以有效地描述模拟电路的结构。关于电路元素,后文会结合图2给出具体的例子。
从电路网表中解析出的电路元素及其连接关系可以利用特定的数据结构进行存储,从而便于在后续步骤中使用。比如,在一种实现方式中,通过解析电路网表,可以确定由模拟电路中的电路元素构成的一个或多个邻接矩阵,这些邻接表达了模拟电路中的电路元素的名称及其连接关系,具体为:邻接矩阵的每一行或每一列对应一个电路元素的名称,邻接矩阵的每个元素的取值表示该元素所在行对应的电路元素与该元素所在列对应的电路元素之间的连接关系(连接或不连接)。之所以可以采用邻接矩阵表示电路网表的解析结果,是由于模拟电路本身可视为电流流经各个电路元素所形成的有向图,而有向图在数学上可以采用邻接矩阵进行表示。
下面给出一个将图2中电路原理图对应的EDIF文件的解析结果表示为邻接矩阵的例子(C语言代码):
为便于理解,将第一邻接矩阵matrix_01和第二邻接矩阵matrix_02用表格的形式表示出来:
表1第一邻接矩阵
表2第二邻接矩阵
为解释上面的例子,首先引出顶层电路和电路模块的概念,一个模拟电路包括一个顶层电路,而顶层电路中包括一个或多个电路模块。其中,顶层电路将模拟电路视为对外提供输入输出端口的黑盒,而电路模块才是模拟电路内部的具体结构。比如,在图2中,如果将粗线方框内部视为一个黑盒,则粗线方框加上输入端口A、B以及输出端口E、F可以视为模拟电路的顶层电路,而粗线方框内部的Sch1则是该顶层电路包含的一个电路模块。注意,图2中的例子比较简单,顶层电路中只包含一个电路模块,但在其他模拟电路中,顶层电路也可能包含更多的电路模块,如后文的图6右侧所示。
在上面的例子中,针对顶层电路中的电路元素构建一个邻接矩阵,称为第一邻接矩阵,针对每个电路模块中的电路元素构建一个邻接矩阵,称为第二邻接矩阵(第二邻接矩阵的数量和电路模块的数量相同,由于图2中只有一个电路模块Sch1,所以这里只有一个第二邻接矩阵)。
在上面的例子中,所定义的电路元素的类型共有端口(PORT)、信号(SIGANL)以及线路(WIRE)三种,但并非每个邻接矩阵都涉及这三种电路元素。
对于顶层电路,其涉及的电路元素包括端口A、B、E、F以及信号P0、P1、P2、P3,这些电路元素对应表1中灰色的单元格,表1中由元素0、1构成的部分为第一邻接矩阵matrix_01,不难看出,第一邻接矩阵的每一行或每一列均对应一个电路元素的名称,比如,第一邻接矩阵的第1行(表1的第2行)对应端口A。第一邻接矩阵中的连接关系都是有向的,对于第一邻接矩阵中的任一元素,连接方向是从该元素所在行对应的电路元素指向该元素所在列对应的电路元素,从而,第一邻接矩阵中所有行对应的电路元素都是作为连接起点的电路元素(表1第1列除首个单元格之外),而所有列对应的电路元素都是作为连接终点的电路元素(表1第1行除首个单元格之外),表1左上角的top表明该表格对应顶层电路。
例如,端口A为顶层电路的一个输入端口,信号P0可以理解为端口A的输出信号(输出给顶层电路内部的电路模块Sch1),从而端口A与信号P0是相互连接的,连接方向从端口A指向信号P0,因此第一邻接矩阵中第1行第3列(表1中的第2行第4列)的元素为1。端口E为顶层电路的一个输出端口,根据图2可知,端口A和端口E之间显然不存在直接的连接关系,因此第一邻接矩阵中第1行第1列(表1中的第2行第2列)的元素为0。对于表1中其他电路元素之间的连接关系,可以类似分析,不再重复。
对于电路模块Sch1,其涉及的电路元素包括端口P0、P1、P2、P3(注意,P0、P1、P2、P3在顶层电路中的类型是信号,在Sch1里的类型则是端口,但二者本质上是相同的),信号I0(out)、I1(out)、I2(Q)、I2(Q~)、I0(In_0)、I0(In_1)、I1(In)、I2(S)、I2(R)以及线路C、D,这些电路元素对应表2中灰色的单元格,表2中由元素0、1构成的部分为第二邻接矩阵matrix_02,不难看出,第二邻接矩阵的每一行或每一列均对应一个电路元素,比如,第二邻接矩阵的第1行(表2的第2行)对应端口P0。第二邻接矩阵中的连接关系都是有向的,对于第二邻接矩阵中的任一元素,连接方向是从该元素所在行对应的电路元素指向该元素所在列对应的电路元素,从而,第二邻接矩阵中所有行对应的电路元素都是作为连接起点的电路元素(表2第1列除首个单元格之外),而所有列对应的电路元素都是作为连接终点的电路元素(表2第1行除首个单元格之外),表2左上角的Sch1表明该表格对应电路模块Sch1。
例如,I0(out)表示与门I0的输出信号(或者,对于I0来说,也可以视为它的输出端口),该输出信号经线路C输入到SR锁存器I2中,从而信号I0(out)与线路C是相互连接的,连接方向从信号I0(out)指向线路C,因此第二邻接矩阵中第3行第4列(表2中的第4行第6列)的元素为1。对于表2中其他电路元素之间的连接关系,可以类似分析,不再重复。
总之,利用邻接矩阵这种数据结构,可以对模拟电路中的电路元素的名称及连接关系进行简单且精确的描述。应当理解的是,根据需要,也不一定要同时构建第一邻接矩阵和第二邻接矩阵,例如,也可以只构建第二邻接矩阵。还应当理解的是,邻接矩阵只是可用于存储从电路网表中解析出的电路元素及其连接关系的一种数据结构,但不是唯一的数据结构。另外,表1和表2中电路元素的名称也仅仅是示例,例如I0(out)的名称也可以是I0.out等等。
在执行完步骤S120之后,可以紧接着执行步骤S130,但是可选的,还可以先根据步骤S120中得到的模拟电路中的电路元素的名称及连接关系生成中间结果文件,然后再基于该中间结果文件执行步骤S130。
该中间结果文件为文本文件(而非二进制文件或者其他难以用文本编辑器查看其内容的文件),生成数字电路模型所需的模拟电路中的输入输出端口的名称(S130、S150)、模拟电路中的元器件的名称(S140、S150)以及电路元素的名称及连接关系(S150)都可以从中间结果文件中解析得到。当然,由于中间结果文件是根据步骤S120中对电路网表的解析结果得到的,所以中间结果文件中包含的信息同样也是包含在步骤S120中获得的解析结果里的(当然,不排除生成中间结果文件时在其中加入一些新的信息,但这些信息并不是生成电路模型所必须的),因此直接在步骤S120的基础上执行后续步骤也是可以的。
该可选方案之所以采用中间结果文件,是因为中间结果文件是文本文件,因此便于用户对其内容进行检查或修改,而步骤S120中的解析结果可能只是一些计算机内存中的数据结构(例如,邻接矩阵),并不方便普通用户对其内容进行检查或修改。
中间结果文件具体采用怎样的格式并不限定,例如,对于模拟电路包括顶层电路,且顶层电路中包括至少一个电路模块的情况,该中间结果文件可以包括:顶层电路的输入输出声明,以及,每个电路模块中的每个元器件的端口连接关系。比如,根据表1和表2中的两个邻接矩阵,可以生成如下中间结果文件:
I0→((P0,In_0),(P1,In_1),(C,Out))
I1→((C,In),(D,Out))
I2→((D,R),(C,S),(P2,Q),(P3,Q~))
Input A,B((A,P0),(B,P1))
Output E,F((E,P2),(F,P3))
其中,Input开头的这一行为顶层电路的输入声明,包括了顶层电路的输入端口A、B,以及输入端口A、B与其他信号的连接关系,即输入端口A与信号P0连接,输入端口B与信号P1连接,当然P0和P1同时也是电路模块Sch1的输入端口。
Output开头的这一行为顶层电路的输出声明,包括了顶层电路的输出端口E、F,以及输出端口E、F与其他信号的连接关系,即输出端口E与信号P2连接,输出端口F与信号P3连接,当然P2和P3同时也是电路模块Sch1的输出端口。
前三行为电路模块Sch1中的每个元器件的端口连接关系,这里分别有3个元器件,I0、I1以及I2,元器件的名称位于符号→之前,符号→之后则是元器件的端口(与其他端口、信号或者线路之间的)连接关系,以I0为例,其输入端口In_0与Sch1的输入端口P0连接,输入端口In_1与Sch1的输入端口P1连接,输出端口Out与线路C连接,I1、I2可类似分析,不再重复阐述。
可以看出,上述中间结果文件对顶层电路和顶层电路内部的电路模块分别进行了描述,从而能够清楚地表达模拟电路的结构关系,不仅便于用户对其内容进行检查或修改,也使得后续步骤从中间结果文件中解析出建模所需的信息变得更加方便。例如,步骤S140要解析元器件的名称,直接取中间结果文件各行中位于→之前的部分即可,而如果要从表2中进行解析,则必须先找到表2中名字带括号的电路元素(比如I0(out)),然后取括号之前的部分才能够得到,相对要麻烦一些。
步骤S130:根据电路元素的名称确定模拟电路中的输入输出端口的名称,并获取用户配置的输入输出端口的参数。
对于不使用中间结果文件的情况,输入输出端口的名称可以直接根据从电路网表中解析出的电路元素的名称、并结合特定的规则确定。对于模拟电路包括顶层电路,而顶层电路又包括至少一个电路模块的情况,步骤S130中的输入输出端口既包括顶层电路的输入输出端口,又包括每个电路模块的输入输出端口。
例如,在表1中,规定顶层电路的输入输出端口的名称采用单个字母的形式,电路模块的输入输出端口的名称采用“字母P+数字”的形式,又由于表1中第1列是作为连接关系起点的电路元素的名称,从而根据表1的第1列,可确定A、B为顶层电路中输入端口的名称,表1中第1行是作为连接关系终点的电路元素的名称,从而根据表1中的第1行,可确定E、F为顶层电路中输出端口的名称。
当然,也不排除在某些实现方式中,要结合电路元素的名称及其他信息才能确定模拟电路中的输入输出端口的名称,这里所说的其他信息可以包括电路元素之间的连接关系和/或电路元素的类型等。
对于使用中间结果文件的情况,输入输出端口的名称可以从中间结果文件中解析得到,但本质上这些名称还是来源于从电路网表中解析出的电路元素的名称。
例如,根据中间结果文件中的以下两行:
Input A,B((A,P0),(B,P1))
Output E,F((E,P2),(F,P3))
可以解析出顶层电路的输入端口为A、B,输出端口为E、F,以及,电路模块Sch1的输入端口为P0、P1,输出端口为P2、P3。
确定好模拟电路中的输入输出端口的名称后,可以进一步获取用户配置的输入输出端口的参数,这些参数可以包括输入输出端口的位宽、延时等一项或多项参数。例如,可以将输入输出端口的名称显示在模型生成工具(一个计算机程序,用于生成模拟电路的数字电路模型)的界面上,用户可以在界面上为输入输出端口配置对应的参数,模型生成工具可以将用户配置的参数保存下来。例如,对于电路模块Sch1的输入输出端口的参数配置过程可以表示为:
Sch1→10ps((P0,1),(P1,1),(P2,1),(P3,1))
其中,10ps为输出延时,(P0,1)中的1表示输入端口P0的位宽,单位为bit,P0的位宽应当如何设置需要根据P0中输入的信号的实际情况来确定,比如该信号只有高低电平两种状态,则可以将位宽设置为1bit。对于P1、P2、P3的参数配置,可以类似分析,不再重复。
步骤S140:根据电路元素的名称确定模拟电路中的元器件的名称,从器件库中提取出元器件的数字器件模型,获取用户配置的元器件的参数。
对于不使用中间结果文件的情况,元器件的名称可以直接根据从电路网表中解析出的电路元素的名称、并结合特定的规则确定。
例如,在表2中,规定与元器件有关的信号采用“元器件名称+左括号+元器件端口名称+右括号”的形式,从而,从表1中第一行或者第1列中找到满足该形式的电路元素的名称,如I0(out)、I1(out)、I2(Q),再取括号之前的部分,就可以得到元器件的名称I0、I1、I2。
当然,也不排除在某些实现方式中,要结合电路元素的名称及其他信息才能确定模拟电路中的元器件的名称,这里所说的其他信息可以包括电路元素之间的连接关系和/或电路元素的类型等。
对于使用中间结果文件的情况,元器件名称可以从中间结果文件中解析得到,但本质上这些名称还是来源于从电路网表中解析出的电路元素的名称。
例如,根据中间结果文件中的以下三行:
I0→((P0,In_0),(P1,In_1),(C,Out))
I1→((C,In),(D,Out))
I2→((D,R),(C,S),(P2,Q),(P3,Q~))
直接取符号→之前的部分,就可以得到元器件的名称为I0、I1、I2。
确定好模拟电路中的元器件的名称后,可以进一步从器件库中提取出元器件的数字器件模型。所谓器件库,可以理解为由一系列元器件的器件模型所构成的仓库,而这些器件模型都是数字化的(因为最终要生成模拟电路的数字模型,所以器件模型也必须是数字的而非模拟的),所以称为数字器件模型。例如,数字器件模型可以是Verilog代码文件,或者Verilog代码文件的片段。在执行步骤S140之前,器件库已经构建好,并且器件库可以根据需要进行更新。
在一种实现方式中,器件库中的元器件(模拟器件)可以分为两类:一类是比较复杂的元器件,例如锁相环(Phase Locked Loop,简称PLL)、模数转换器(Analog-to-DigitalConverter,简称ADC),数模转换器(Digital-to-Analog Converter,简称DAC),这类元器件难以通过基础的门电路建模,从而可以采用行为级描述的方式构建其对应的数字器件模型;一类是比较简单的元器件,例如基础的门电路,则可以采用寄存器级描述的方式构建其对应的数字器件模型。
提取出元器件的数字器件模型存在不同的方式,下面列举其中两种:
方式1:根据元器件的器件名称确定元器件的器件类型,根据器件类型从器件库中提取出元器件的数字器件模型。
如果元器件的器件名称和器件类型之间存在预设的对应关系,则可以采用方式1。例如,事先约定对于与门的命名,均采用“and+数字”的方式,比如,and0、and1,从而在获得元器件名称and0之后,就可以确认该器件为一个与门,进而从器件库中提取出与门的数字器件模型。
方式2:获取用户配置的元器件的器件类型,根据器件类型从器件库中提取出元器件的数字器件模型。
如果元器件的器件名称和器件类型之间不存在预设的对应关系,则可以采用方式2。例如,仅通过器件名称I0,并不清楚其到底是什么元器件,可以在模型生成工具的界面上将器件名称I0显示出来,用户可以在界面上为I0配置器件类型,假设为与门,然后模型生成工具可以根据该器件类型从器件库中提取出与门的数字器件模型。
相对而言,方式1实现起来更简单一些,无需用户介入,但方式2更灵活一些。
用户配置的元器件的参数,可以包括元器件的温度、电压、延时、端口位宽等一项或多项参数。上面方式2中用户配置的器件类型可以视为元器件的参数,也可以不视为元器件的参数。
例如,可以将元器件的名称显示在模型生成工具的界面上,用户可以在界面上为元器件配置对应的参数,模型生成工具可以将用户配置的参数保存下来。例如,对于电路模块Sch1的元器件的参数配置过程可以表示为:
I0→and_2,10ps,((In_0,1),(In_1,1),(Out,1))
I1→not_1,21ps,((In,1),(Out,1))
I2→SR-latch,50ps,((S,1),(R,1),(Q,1),(Q~,1))
以I2为例,其器件类型为SR_latch(SR锁存器),延时为50ps,元器件端口的位宽均为1bit。对于I0、I1的参数配置,可以类似分析,不再重复。
需要注意的是,步骤S130和S140是相互独立的步骤,因此二者的执行顺序并不一定是先S130后S140,也可能是先S140后S130,或者S130和S140并行执行,等等。
步骤S150:根据输入输出端口的名称及参数、元器件的名称及参数、元器件的数字器件模型、电路元素的名称及连接关系生成模拟电路的数字电路模型。
其中,输入输出端口的名称及参数在步骤S130中获得,元器件的名称及参数、元器件的数字器件模型在步骤S140中获得,而电路元素的名称及连接关系在步骤S120中获得(若有中间结果文件,可以从中间结果文件中提取),并且,这些信息都已经数字电路化,比如,端口都配置了位宽,器件模型也是数字器件模型,从而,根据这些信息可以生成模拟电路的数字电路模型。例如,可以利用前文提到的模型生成工具基于这些信息、并按照Verilog语法自动生成模拟电路的数字电路模型,该数字电路模型可以是Verilog文件或者称为Verilog模型。
需要指出,由于模拟电路的输入输出端口本身也是一种电路元素,因此步骤S150中输入输出端口的名称和电路元素的名称可能存在一定的重复,但显然,电路元素并不仅限于输入输出端口。
下面,通过具体的Verilog文件来简单说明数字电路模型的构成:
上述模拟电路的数字电路模型包括第一数字电路模型(module upper_layer)和第二数字电路模型(module Sch1),第一数字电路模型对应于模拟电路的顶层电路,而每个第二数字电路模型则对应于顶层电路中的一个电路模块(由于只有一个电路模块Sch1,所以只有一个第二数字电路模型),针对顶层电路和顶层电路内部的电路模块分别进行数字建模,既有利于描述模拟电路的内部结构,又有利于后续仿真验证时将模拟电路和数字电路通过顶层电路进行连接。
在module upper_layer中,A、B为输入端口(input),E、F为输出端口(output),upper_layer内部包括一个类型为Sch1的元器件U0,实际上就是顶层电路内部的电路模块U0,U0的端口P0与A连接,端口P1与B连接,端口P2与E连接,端口P3与F连接,这是根据电路元素的连接关系可以得到的,不过需要注意upper_layer中可以不用设置参数。
在module Sch1中,代码一开始是输入输出端口的参数和各个器件的参数的声明(参数用parameter表示),例如,
parameter P0_bitwidth=1;
这一行表示Sch的输入端口P0的位宽为1bit。
parameter I0_output_delay=10ps;
这一行表示器件I0的输出延时为10ps。
在参数声明之后是Sch1的输入输出端口的声明,例如,
input[P0_bitwidth-1:0]P0;
这一行表示声明一个位宽为1bit的输入端口P0,下面简单解释:由于之前声明了参数P0_bitwidth=1,所以该行代码实际上是input[0:0]P0,冒号表示取值范围,这里0:0的结果为1,因此该行代码可以进一步简化为input[1]P0,即P0的位宽为1bit。
在输入输出端口声明之后是线路声明,例如,
wire[I0_output_delay-1:0]C;
这一行表示声明一个位宽为1bit的线路C,其中wire也可以使用reg。名称C是可以从电路元素的名称中得到的。
在线路声明之后是元器件声明,例如。
其中,and_2是器件类型(与门),in_0_bitwidth等都是器件参数(符号.表示in_0_bitwidth是and_2的成员),其值被初始化为前面设定的参数值,如I0_in_0_bitwidth等,I0是and_2的一个实例,即一个and_2类型的器件,I0的输入端口包括in0和in1、输出端口包括out,其中in0和Sch1的端口P0连接,in1和Sch1的端口P1连接,out和线路C连接,这些连接关系是根据电路元素之间的连接关系可以得到的。对于and_2内部的具体实现,则位于and_2对应的数字器件模型中,上面的代码并未示出。对于I1、I2的情况可以类似分析,不再重复。
得到模拟电路的数字电路模型后,可以将其用于执行本申请实施例提供的电路仿真验证方法(稍后阐述),但也可以用于其他用途,例如,只是将数字电路模型存储起来,暂不用于仿真验证。
下面简单总结图1中的电路模型生成方法,该方法从模拟电路的电路网表中提取模拟电路的相关信息,并基于这些信息反向生成模拟电路的数字电路模型,其建模过程简单高效。并且,由于其所建立的电路模型为数字模型,因此该模型方便与数字电路连接,从而便于对模数接口进行仿真验证,且仿真验证的效率较高。此外,基于该数字电路模型还可以尽早地实现模拟电路的仿真,从而尽早地在逻辑层面对模拟电路进行验证。
图5示出了本申请实施例提供的一种电路仿真验证方法的流程,该方法可以、但不限于由一电子设备执行,关于该电子设备可能具有的结构可以参照后文关于图9的阐述,但需要主要,执行图5中方法的电子设备和执行图1中方法的电子设备可能是同一台电子设备,也可能不是同一台电子设备。参照图1,电路仿真验证方法包括:
步骤S210:获取模拟电路的数字电路模型。
其中,数字电路模型利用本申请实施例提供的电路模型生成方法(含其任意一种可能的实现方式)生成,具体如何生成可参考前文阐述,不再重复。需要指出的是,生成数字电路模型这一操作可以是在步骤S210中执行,也可以是在步骤S210之前执行,如果为后者,步骤S210可以只是读取已经生成好的数字电路模型。
步骤S220:将模拟电路的数字电路模型与数字电路连接,并至少对模拟电路和数字电路之间的模数接口进行仿真验证。
图6示出了适用图5中方法的一个应用场景,参照图6,某芯片的电路包括数字电路和模拟电路,在芯片的顶层电路之下,左侧为数字电路的顶层电路,右侧为模拟电路的顶层电路,模拟电路的顶层电路中还包括n个电路模块,比如前文的Sch1,可以通过数字电路模型中的第一数字电路模型将模拟电路的顶层电路与数字电路的顶层电路进行连接,具体的连接方式可以是人工修改第一数字电路模型对应的Verilog文件,使得其中的端口与数字电路的顶层电路中的端口对接起来,并且也可能需要同步修改数字电路部分的Verilog文件,当然也不排除自动连接的方式。
连接电路之后,至少可以对模拟电路和数字电路之间的模数接口进行仿真验证。其中,模数接口是指将模拟电路与数字电路连接起来的端口,比如图6中位于数字电路的顶层电路和模拟电路的顶层电路之间的部分就是模数接口,可能包括电源端口、I/O端口等。
虽然将模拟电路转化为数字电路模型的主要目的是对模数接口进行仿真验证,但也不排除对电路的其他部分进行仿真验证(因此步骤S220中说“至少”),例如,也可以在逻辑层面对模拟电路进行仿真验证,或者对模拟电路和数字电路构成的整体进行仿真验证。
下面简单总结图5中的电路仿真验证方法,在该方法中,由于模拟电路的电路模型为数字模型,因此该模型方便与数字电路连接,从而便于对模数接口进行仿真验证,且仿真验证的效率较高。此外,基于该数字电路模型还可以尽早地实现模拟电路的仿真,从而尽早地在逻辑层面对模拟电路进行验证。
图7示出了本申请实施例提供的电路模型生成装置300包含的功能模块。参照图7,电路模型生成装置300包括:
网表获取单元310,用于获取模拟电路的电路网表;
网表解析单元320,用于通过解析所述电路网表,确定所述模拟电路中的电路元素的名称及连接关系;
端口配置单元330,用于根据所述电路元素的名称确定所述模拟电路中的输入输出端口的名称,并获取用户配置的所述输入输出端口的参数;
元器件配置单元340,用于根据所述电路元素的名称确定所述模拟电路中的元器件的名称,从器件库中提取出所述元器件的数字器件模型,并获取用户配置的所述元器件的参数;
模型生成单元350,用于根据所述输入输出端口的名称及参数、所述元器件的名称及参数、所述元器件的数字器件模型、所述电路元素的名称及连接关系生成所述模拟电路的数字电路模型。
在电路模型生成装置300的一种实现方式中,所述网表获取单元310获取模拟电路的电路网表,包括:根据所述模拟电路的电路原理图提取所述电路网表。
在电路模型生成装置300的一种实现方式中,所述电路元素包括端口、信号以及线路中的至少一种。
在电路模型生成装置300的一种实现方式中,所述网表解析单元320通过解析所述电路网表,确定所述模拟电路中的电路元素的名称及连接关系,包括:通过解析所述电路网表,确定由所述模拟电路中的电路元素构成的邻接矩阵,所述邻接矩阵的每一行或每一列对应一个电路元素的名称,所述邻接矩阵的每个元素的取值表示该元素所在行对应的电路元素与该元素所在列对应的电路元素之间的连接关系。
在电路模型生成装置300的一种实现方式中,所述模拟电路包括顶层电路,所述顶层电路中包括至少一个电路模块;所述邻接矩阵包括:对应于所述顶层电路中的电路元素的第一邻接矩阵,以及对应于每个电路模块中的电路元素的第二邻接矩阵;所述数字电路模型包括:对应于所述顶层电路的第一数字电路模型,以及对应于每个电路模块的第二数字电路模型。
在电路模型生成装置300的一种实现方式中,所述元器件配置单元340从器件库中提取出所述元器件的数字器件模型,包括:根据所述元器件的器件名称确定所述元器件的器件类型,根据所述器件类型从所述器件库中提取出所述元器件的数字器件模型;或者,获取用户配置的所述元器件的器件类型,根据所述器件类型从所述器件库中提取出所述元器件的数字器件模型。
在电路模型生成装置300的一种实现方式中,所述装置还包括:中间文件生成单元,用于在所述网表解析单元320确定所述模拟电路中的电路元素的名称及连接关系之后,根据所述模拟电路中的电路元素的名称及连接关系生成中间结果文件,所述中间结果文件为文本文件;其中,生成所述数字电路模型所需的所述模拟电路中的输入输出端口的名称、所述模拟电路中的元器件的名称以及所述电路元素的名称及连接关系从所述中间结果文件中解析得到。
在电路模型生成装置300的一种实现方式中,所述模拟电路包括顶层电路,所述顶层电路中包括至少一个电路模块;所述中间结果文件包括:所述顶层电路的输入输出声明,以及,每个电路模块中的每个元器件的端口连接关系。
本申请实施例提供的电路模型生成装置300,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
图8示出了本申请实施例提供的电路仿真验证装置400包含的功能模块。参照图8,电路仿真验证装置400包括:
模型获取单元410,用于获取所述模拟电路的数字电路模型;其中,所述数字电路模型利用本申请实施例提供的电路模型生成方法(包含其任意一种实现方式)生成;
仿真验证单元420,用于将所述模拟电路的数字电路模型与所述数字电路连接,并至少对所述模拟电路和所述数字电路之间的模数接口进行仿真验证。
本申请实施例提供的电路仿真验证装置400,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
图9示出了本申请实施例提供的电子设备500的一种可能的结构。参照图9,电子设备500包括:处理器510、存储器520以及通信接口530,这些组件通过通信总线540和/或其他形式的连接机构(未示出)互连并相互通讯。
其中,处理器510包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器510可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)或者其他常规处理器;还可以是专用处理器,包括图形处理器(Graphics Processing Unit,GPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(ApplicationSpecific Integrated Circuits,简称ASIC)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器510为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。
存储器520包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read-Only Memory,简称EEPROM)等。
处理器510以及其他可能的组件可对存储器520进行访问,读和/或写其中的数据。特别地,在存储器520中可以存储一个或多个计算机程序指令,处理器510可以读取并运行这些计算机程序指令,以实现本申请实施例提供的电路模型生成方法和/或电路仿真验证方法。
通信接口530包括一个或多个(图中仅示出一个),可以用于和其他设备进行直接或间接地通信,以便进行数据的交互。通信接口530可以包括进行有线和/或无线通信的接口。
可以理解,图9所示的结构仅为示意,电子设备500还可以包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。例如,若电子设备500不需要和其他电子设备通信,则可以不包括通信接口530。
图9中所示的各组件可以采用硬件、软件或其组合实现。电子设备500可能是实体设备,例如PC机、笔记本电脑、平板电脑、服务器、机器人等,也可能是虚拟设备,例如虚拟机、容器等。并且,电子设备500也不限于单台设备,也可以是多台设备的组合或者大量设备构成的集群。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,这些计算机程序指令被处理器读取并运行时,执行本申请实施例提供的电路模型生成方法和/或电路仿真验证方法。例如,计算机可读存储介质可以实现为图9中电子设备500中的存储器520。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序指令,这些计算机程序指令被处理器读取并运行时,执行本申请实施例提供的电路模型生成方法和/或电路仿真验证方法。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种电路模型生成方法,其特征在于,包括:
获取模拟电路的电路网表;
通过解析所述电路网表,确定所述模拟电路中的电路元素的名称及连接关系;
根据所述电路元素的名称确定所述模拟电路中的输入输出端口的名称,并获取用户配置的所述输入输出端口的参数;
根据所述电路元素的名称确定所述模拟电路中的元器件的名称,从器件库中提取出所述元器件的数字器件模型,并获取用户配置的所述元器件的参数;
根据所述输入输出端口的名称及参数、所述元器件的名称及参数、所述元器件的数字器件模型、所述电路元素的名称及连接关系生成所述模拟电路的数字电路模型。
2.根据权利要求1所述的电路模型生成方法,其特征在于,所述获取模拟电路的电路网表,包括:
根据所述模拟电路的电路原理图提取所述电路网表。
3.根据权利要求1所述的电路模型生成方法,其特征在于,所述电路元素包括端口、信号以及线路中的至少一种。
4.根据权利要求1所述的电路模型生成方法,其特征在于,所述通过解析所述电路网表,确定所述模拟电路中的电路元素的名称及连接关系,包括:
通过解析所述电路网表,确定由所述模拟电路中的电路元素构成的邻接矩阵,所述邻接矩阵的每一行或每一列对应一个电路元素的名称,所述邻接矩阵的每个元素的取值表示该元素所在行对应的电路元素与该元素所在列对应的电路元素之间的连接关系。
5.根据权利要求4所述的电路模型生成方法,其特征在于,所述模拟电路包括顶层电路,所述顶层电路中包括至少一个电路模块;
所述邻接矩阵包括:对应于所述顶层电路中的电路元素的第一邻接矩阵,以及对应于每个电路模块中的电路元素的第二邻接矩阵;
所述数字电路模型包括:对应于所述顶层电路的第一数字电路模型,以及对应于每个电路模块的第二数字电路模型。
6.根据权利要求1所述的电路模型生成方法,其特征在于,所述从器件库中提取出所述元器件的数字器件模型,包括:
根据所述元器件的器件名称确定所述元器件的器件类型,根据所述器件类型从所述器件库中提取出所述元器件的数字器件模型;或者,
获取用户配置的所述元器件的器件类型,根据所述器件类型从所述器件库中提取出所述元器件的数字器件模型。
7.根据权利要求1-6中任一项所述的电路模型生成方法,其特征在于,在所述确定所述模拟电路中的电路元素的名称及连接关系之后,所述方法还包括:
根据所述模拟电路中的电路元素的名称及连接关系生成中间结果文件,所述中间结果文件为文本文件;
其中,生成所述数字电路模型所需的所述模拟电路中的输入输出端口的名称、所述模拟电路中的元器件的名称以及所述电路元素的名称及连接关系从所述中间结果文件中解析得到。
8.根据权利要求7所述的电路模型生成方法,其特征在于,所述模拟电路包括顶层电路,所述顶层电路中包括至少一个电路模块;
所述中间结果文件包括:所述顶层电路的输入输出声明,以及,每个电路模块中的每个元器件的端口连接关系。
9.一种电路仿真验证方法,其特征在于,所述电路包括模拟电路以及数字电路,所述方法包括:
获取所述模拟电路的数字电路模型;其中,所述数字电路模型利用如权利要求1-8中任一项所述的方法生成;
将所述模拟电路的数字电路模型与所述数字电路连接,并至少对所述模拟电路和所述数字电路之间的模数接口进行仿真验证。
10.一种电路模型生成装置,其特征在于,包括:
网表获取单元,用于获取模拟电路的电路网表;
网表解析单元,用于通过解析所述电路网表,确定所述模拟电路中的电路元素的名称及连接关系;
端口配置单元,用于根据所述电路元素的名称确定所述模拟电路中的输入输出端口的名称,并获取用户配置的所述输入输出端口的参数;
元器件配置单元,用于根据所述电路元素的名称确定所述模拟电路中的元器件的名称,从器件库中提取出所述元器件的数字器件模型,并获取用户配置的所述元器件的参数;
模型生成单元,用于根据所述输入输出端口的名称及参数、所述元器件的名称及参数、所述元器件的数字器件模型、所述电路元素的名称及连接关系生成所述模拟电路的数字电路模型。
11.一种电路仿真验证装置,其特征在于,所述电路包括模拟电路以及数字电路,所述方法包括:
模型获取单元,用于获取所述模拟电路的数字电路模型;其中,所述数字电路模型利用如权利要求1-8中任一项所述的方法生成;
仿真验证单元,用于将所述模拟电路的数字电路模型与所述数字电路连接,并至少对所述模拟电路和所述数字电路之间的模数接口进行仿真验证。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-9中任一项所述的方法。
13.一种电子设备,其特征在于,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211604762.3A CN115796090B (zh) | 2022-12-13 | 2022-12-13 | 电路模型生成方法、电路仿真验证方法及对应装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211604762.3A CN115796090B (zh) | 2022-12-13 | 2022-12-13 | 电路模型生成方法、电路仿真验证方法及对应装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115796090A CN115796090A (zh) | 2023-03-14 |
CN115796090B true CN115796090B (zh) | 2024-01-26 |
Family
ID=85419991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211604762.3A Active CN115796090B (zh) | 2022-12-13 | 2022-12-13 | 电路模型生成方法、电路仿真验证方法及对应装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115796090B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263479B1 (en) * | 1996-12-25 | 2001-07-17 | Nec Corporation | Method and apparatus for layout of an interface of digital and analog semiconductor integrated circuits based on positions of digital and analog functional blocks |
CN102024066A (zh) * | 2009-09-09 | 2011-04-20 | 中国科学院微电子研究所 | 从模拟电路网表自动生成模拟电路原理图的方法 |
CN105808843A (zh) * | 2016-03-08 | 2016-07-27 | 浪潮集团有限公司 | 一种混合信号验证平台的构造方法 |
CN109684755A (zh) * | 2018-12-28 | 2019-04-26 | 佛山中科芯蔚科技有限公司 | 一种数模混合芯片异步电路全定制方法及系统 |
CN113807041A (zh) * | 2021-10-20 | 2021-12-17 | 中国科学院微电子研究所 | 一种电路系统的仿真方法、装置、电子设备及存储介质 |
CN114626330A (zh) * | 2022-03-21 | 2022-06-14 | 中科芯云微电子科技有限公司 | 一种数模混合电路仿真方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002318829A (ja) * | 2001-04-19 | 2002-10-31 | Matsushita Electric Ind Co Ltd | 回路シミュレーション方法および回路シミュレーション装置、ならびに、回路シミュレーションプログラムおよびそのプログラムを記録したコンピュータ読取可能な記録媒体 |
US20030125921A1 (en) * | 2001-12-27 | 2003-07-03 | Matsushita Electric Industrial Co., Ltd. | Circuit simulation apparatus, circuit simulation method, circuit simulation program, and storage medium storing circuit simulation program |
CN104598659B (zh) * | 2013-10-31 | 2018-09-18 | 格芯公司 | 对数字电路进行仿真的方法和设备 |
-
2022
- 2022-12-13 CN CN202211604762.3A patent/CN115796090B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263479B1 (en) * | 1996-12-25 | 2001-07-17 | Nec Corporation | Method and apparatus for layout of an interface of digital and analog semiconductor integrated circuits based on positions of digital and analog functional blocks |
CN102024066A (zh) * | 2009-09-09 | 2011-04-20 | 中国科学院微电子研究所 | 从模拟电路网表自动生成模拟电路原理图的方法 |
CN105808843A (zh) * | 2016-03-08 | 2016-07-27 | 浪潮集团有限公司 | 一种混合信号验证平台的构造方法 |
CN109684755A (zh) * | 2018-12-28 | 2019-04-26 | 佛山中科芯蔚科技有限公司 | 一种数模混合芯片异步电路全定制方法及系统 |
CN113807041A (zh) * | 2021-10-20 | 2021-12-17 | 中国科学院微电子研究所 | 一种电路系统的仿真方法、装置、电子设备及存储介质 |
CN114626330A (zh) * | 2022-03-21 | 2022-06-14 | 中科芯云微电子科技有限公司 | 一种数模混合电路仿真方法及装置 |
Non-Patent Citations (2)
Title |
---|
Method of modeling analog circuits in verilog for mixed-signal design simulations;Carsten Wegener;《IEEE Xplore》;全文 * |
浅谈仿真软件Multisim及其在数字电路实验中的应用;车沛强;;数字技术与应用(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115796090A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6574779B2 (en) | Hierarchical layout method for integrated circuits | |
US20080015838A1 (en) | Method And System For Designing A Structural Level Description Of An Electronic Circuit | |
US10437946B1 (en) | Using implemented core sources for simulation | |
CN114925647A (zh) | 门级网表迁移方法、机器可读介质及集成电路设计系统 | |
JP3005538B1 (ja) | 機能ブロックのモデル作成によるlsi設計システム及びそのlsi設計方法 | |
US20220147676A1 (en) | Integrated circuit simulation and design method and system thereof | |
JPH07160744A (ja) | 自律進化型ハードウェア設計システム | |
CN115270705A (zh) | 一种设计规则违例预测方法、装置、设备及存储介质 | |
US7496869B1 (en) | Method and apparatus for implementing a program language description of a circuit design for an integrated circuit | |
US20190138684A1 (en) | Method, system, and storage medium for rc extraction using hierarchical modeling architecture | |
CN112733478B (zh) | 用于对设计进行形式验证的装置 | |
US11694016B2 (en) | Fast topology bus router for interconnect planning | |
CN115796090B (zh) | 电路模型生成方法、电路仿真验证方法及对应装置 | |
WO2024091298A1 (en) | Multiply-instantiated block modeling for circuit component placement in integrated circuit | |
US5854926A (en) | Method and apparatus for identifying flip-flops in HDL descriptions of circuits without specific templates | |
US20150254386A1 (en) | System and method for register transfer level autointegration using spread sheet and computer readable recording medium thereof | |
US20200334408A1 (en) | Enforcing simulation-based physical design rules to optimize circuit layout | |
CN114330173A (zh) | 边界节点连接关系获取方法、装置、设备和存储介质 | |
US9268891B1 (en) | Compact and efficient circuit implementation of dynamic ranges in hardware description languages | |
US20240242014A1 (en) | Methods and systems for designing integrated circuits | |
CN113688587B (zh) | 一种电路布图的生成方法、装置、计算机设备及存储介质 | |
US20060123074A1 (en) | Representing Data Having Multi-dimensional Input Vectors and Corresponding Output Element by Piece-wise Polynomials | |
US20240354477A1 (en) | Constant, equal, or opposite registers or ports detection during logic synthesis | |
US7890911B2 (en) | Skeleton generation apparatus and method | |
US20060190230A1 (en) | Method and apparatus for cross simulation data sharing to facilitate higher resolution data measurements for complex designs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |