CN113536717A - 一种基于增量编译的电路仿真方法 - Google Patents

一种基于增量编译的电路仿真方法 Download PDF

Info

Publication number
CN113536717A
CN113536717A CN202110797339.9A CN202110797339A CN113536717A CN 113536717 A CN113536717 A CN 113536717A CN 202110797339 A CN202110797339 A CN 202110797339A CN 113536717 A CN113536717 A CN 113536717A
Authority
CN
China
Prior art keywords
simulation
file
compiling
compilation
netlist
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.)
Granted
Application number
CN202110797339.9A
Other languages
English (en)
Other versions
CN113536717B (zh
Inventor
徐启迪
吴大可
周振亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Empyrean Technology Co Ltd
Original Assignee
Beijing Empyrean Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Empyrean Technology Co Ltd filed Critical Beijing Empyrean Technology Co Ltd
Priority to CN202110797339.9A priority Critical patent/CN113536717B/zh
Publication of CN113536717A publication Critical patent/CN113536717A/zh
Application granted granted Critical
Publication of CN113536717B publication Critical patent/CN113536717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种基于增量编译的电路仿真方法,包括以下步骤:1)分析仿真任务并进行分组预编译,将预编译后的仿真任务放入进程池;2)以分布式的方式启动进程池的每个进程;3)对于每个仿真进程,根据组号找到该分组对应的编译信息表;4)根据所述编译信息表分析网表文件并执行增量编译;5)根据所述编译信息表分析仿真选项并执行增量编译;6)对分组中其余的每个任务加上组号构成一个仿真进程,收集所有仿真进程放入进程池,返回执行步骤2)至仿真任务结束。本发明的基于增量编译的电路仿真方法,考虑了不同仿真任务之间数据的相关性,利用增量编译机制共享编译数据从而节省编译时间、降低编译期内存峰值,有效提高整体仿真效率。

Description

一种基于增量编译的电路仿真方法
技术领域
本发明涉及集成电路设计技术领域,特别是涉及一种利用增量式编译进行集成电路分布式仿真的方法。
背景技术
传统模拟集成电路仿真器的一般工作流程为:1.读取电路网表进行词法、语法分析(Parsing);2.计算参数、建立电路拓扑结构、拓扑约减(Elaboration);3.划分电路(Partition);4.建立矩阵、求解方程(Solving);5.输出。流程1、2、3与4、5是相对独立的,可把1、2、3看作编译或解释,4、5看作运行。对于规模较大的电路,虽然运行部分占据仿真时间的大头,但编译所占用的绝对时间和内存峰值是相当可观的:可分别达到几十个小时、上百GB。对于规模较小的电路,运行时间一般很短,通常只有几秒,然而编译的相对时间消耗便突显出来:和运行相当甚至是运行的几倍。由此可见,无论是大规模还是小规模电路的仿真,编译的时间与内存峰值对性能都有很大影响,如果能把这部分影响降到最小则可有效提高整体仿真的效率。
一种解决方案是把编译的结果保存下来,当输入网表不变或只有少量改变时通过增量编译复用之前的编译数据从而达到节省时间和降低内存峰值的目的。
传统仿真器把编译和运行做成不可中断的串行流水线,即一个仿真任务从编译到运行是一个进程,且不同任务之间没有通信,因此做不到编译共享。实际应用中,可共享编译的情形是很多的:对于大规模电路,在一次仿真后往往希望调整某个选项或某个参数再进行第二次仿真来对比结果或debug,输入网表保持不变;对于小规模电路,有时希望对电路单元、物理模型、参数等做各种组合,每种组合进行一次仿真,仿真次数可达几百万次,而这些仿真的输入数据有大量的重叠(如建model库的场景)。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种基于增量编译的电路仿真方法,考虑了不同仿真任务之间数据的相关性,利用增量编译机制共享编译数据从而节省编译时间、降低编译期内存峰值,有效提高整体仿真效率。
为实现上述目的,本发明提供的一种基于增量编译的电路仿真方法,包括以下步骤:
1)分析仿真任务并进行分组预编译,将预编译后的仿真任务放入进程池;
2)以分布式的方式启动进程池的每个进程;
3)对于每个仿真进程,根据组号找到该分组对应的编译信息表;
4)根据所述编译信息表分析网表文件并执行增量编译;
5)根据所述编译信息表分析仿真选项并执行增量编译;
6)对分组中其余的每个任务加上组号构成一个仿真进程,收集所有仿真进程放入进程池,返回执行步骤2)至仿真任务结束。
进一步地,所述步骤1)分析仿真任务并进行分组预编译,将预编译后的仿真任务放入进程池的步骤,还包括,
仿真任务的输入由网表文件和仿真选项两部分组成;
将网表文件和选项值相似的分为一组,每组选一个任务并记录组号构成一个仿真进程,收集所有仿真进程放入进程池。
进一步地,所述步骤3)对于每个仿真进程,根据组号找到该分组对应的编译信息表的步骤,还包括,
每个分组对应一张编译信息表,每张编译信息表由编译信息网表文件和编译信息仿真选项文件两个子表组成;
以至少一个网表文件模块为单位进行编译,编译结果为一个目标数据块,所有目标数据块构成编译数据集;
当前仿真任务所需的所有目标数据块构成工作数据集,初始时当前任务的工作数据集为空。
进一步地,所述每个分组对应一张编译信息表,每张编译信息表由编译信息网表文件和编译信息仿真选项文件两个子表组成的步骤,还包括,
所有分组的编译信息表均以文件形式保存,每张编译信息网表文件保存了该分组相关文件不同版本中模块与目标数据块的一一映射;
每张编译信息仿真选项文件保存了该分组网表不同版本的选项与目标数据块的一一映射。
进一步地,所述步骤4)根据所述编译信息表分析网表文件并执行增量编译的步骤,还包括,根据网表文件的文件名和时间戳将所有文件分为三个集合,包括:
无改动的文件集合:文件名和时间戳在编译信息网表文件中有对应的项;
新增的文件集合:文件名在编译信息网表文件中没有对应的项;
改动的文件集合:文件名在编译信息网表文件中有对应的项,但文件名下的时间戳没有对应的项。
进一步地,还包括,
对所述无改动的文件集合中的每个文件,根据文件名和时间戳查询编译信息网表文件得到对应的模块,将模块对应的目标数据块加入工作数据集;
对所述新增的文件集合中的每个文件,进行词法、语法分析得到网表文件模块,对所述网表文件模块进行编译得到目标数据块,在编译信息网表文件中增加相关的映射并将目标数据块加入工作数据集;
对所述改动的文件集合中的每个文件,首先,进行词法、语法分析得到网表文件模块;然后,将这些模块和编译信息网表文件中该文件名下所有版本的模块字节进行匹配;再后,计算每个版本匹配模块的字节占比,选出占比最大的版本并记录最大字节占比;
所述计算每个版本匹配模块的字节占比,选出占比最大的版本并记录最大字节占比的步骤,还包括,若所述最大字节占比大于或等于设定的阈值,则当前文件可以和版本共享,否则当前文件不存在可共享的版本。
进一步地,所述步骤5)根据所述编译信息表分析仿真选项并执行增量编译的步骤,还包括,根据所述编译信息表将仿真选项分为四个不相交集合,包括:
与编译无关只与运行有关的选项集合;
新增的选项集合:编译信息仿真选项文件中当前网表、时间戳下没有该选项;
无改动选项的集合:编译信息仿真选项文件中当前网表、时间戳下有该选项,且值相同;
改动选项的集合:编译信息仿真选项文件中当前网表、时间戳下有该选项,但值不同。
更进一步地,还包括,
对于所述与编译无关只与运行有关的选项集合,无需操作;
对于所述新增的选项集合,执行该选项相关的编译操作,生成目标数据块,将所述目标数据块加入工作数据集;
对于所述无改动选项的集合,利用编译信息仿真选项文件将对应的目标数据块加入工作数据集;
对于所述改动选项的集合,执行该选项相关的编译操作,生成目标数据块,将所述目标数据块加入工作数据集。
为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的基于增量编译的电路仿真方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的基于增量编译的电路仿真方法的步骤。
本发明的基于增量编译的电路仿真方法、电子设备及计算机可读存储介质,具有以下有益效果:
1)考虑了不同仿真任务之间数据的相关性,利用增量编译机制共享编译数据从而节省编译时间、降低编译期内存峰值;
2)无论对大规模电路仿真任务还是小规模电路多次仿真任务都能有效提高整体仿真效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的基于增量编译的电路仿真方法流程图;
图2为根据本发明的实施例一执行增量编译流程示意图;
图3为根据本发明的实施例一编译信息网表文件示意图;
图4为根据本发明的实施例一编译信息仿真选项文件示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为根据本发明的基于增量编译的电路仿真方法流程图,下面将参考图1,对本发明的基于增量编译的电路仿真方法进行详细描述。
首先,在步骤101,分析仿真任务并进行分组预编译。该步骤中,分组预编译的目的是先从有代表性的任务组中每组选一个进行编译,将编译数据保存以便后续任务共享。
优选地,用户预分析仿真任务,仿真任务的输入由网表文件和仿真选项两部分组成。
优选地,根据仿真任务的相似程度进行分组,即网表文件和选项值相似的为一组。每组选一个case并记录组号(group-id)构成一个仿真进程,收集所有仿真进程放入进程池。
在步骤102,以分布式的方式启动进程池的每个进程。
在步骤103,对于每个仿真进程,根据组号找到该分组对应的CIT(CompilationInformation Table,编译信息表)。
优选地,每个分组对应一张编译信息表,每张编译信息表由两个子表组成:CIT.file和CIT.option,如果没有则新建空表。
优选地,所有分组的CIT均以文件形式保存在磁盘,每张CIT.file(如图3所示)保存了该分组相关文件不同版本(以文件名+时间戳标识)中模块与目标数据块的一一映射。
优选地,每张CIT.option(如图4所示)保存了该分组网表不同版本(以网表主文件名+所有相关文件的时间戳标识)的选项(选项名+值)与目标数据块的一一映射。
优选地,仿真器以一个或多个网表文件模块为单位进行编译,编译结果为一个目标数据块,所有目标数据块构成CDB(Compilation Data Base,编译数据集)。
优选地,当前仿真任务所需的所有目标数据块构成其WCD(Working CompilationData,工作数据集),供“运行”阶段使用。
优选地,初始时当前任务的WCD为空,后续将逐一往里添加。
在步骤104,分析网表文件并执行增量编译。
优选地,分析网表文件,根据文件时间戳和CIT将文件分为三个集合。
优选地,网表文件由一个主文件和0至多个间接包含文件(在一个文件中可通过include语句把其它文件包含进来)组成,每个文件由若干模块组成。首先根据文件名和时间戳将所有文件分为三个集合:(a).无改动的文件集合:文件名和时间戳在CIT.file中有对应的项;(b).新增的文件集合:文件名在CIT.file中没有对应的项;(c).改动的文件集合:文件名在CIT.file中有对应的项,但文件名下的时间戳没有对应的项。
优选地,对(a)中的每个文件,根据文件名、时间戳查询CIT.file得到对应的模块,将模块对应的目标数据块加入WCD。
优选地,对(b)中的每个文件,首先进行词法、语法分析得到网表文件模块,对模块进行编译得到目标数据块。在CIT.file中增加相关的映射:“文件名、时间戳、模块”→“目标数据块”,将目标数据块加入WCD。
优选地,对(c)中的每个文件,首先进行词法、语法分析得到网表文件模块。将这些模块和CIT.file中该文件名下所有版本(不同时间戳)的模块做匹配:匹配以模块为单位,模块所有字节均相同则认为匹配。对每个版本计算匹配模块的占比r:
Figure BDA0003163318500000061
选出占比最大的一个版本,记为vmax,对应的占比为rmax
优选地,若rmax大于或等于用户设定的阈值,则认为当前文件可以和版本vmax共享,否则当前文件没有可共享的版本。
优选地,对于没有版本可共享的情况,处理方法和(4.3)一样;对于有版本可共享的情况,对匹配的模块,根据CIT.file将对应的目标数据块加入WCD,而对没有匹配的模块,编译后将目标数据块加入WCD。由于编译只需作用在未匹配的模块上,故名增量编译。
在步骤105,分析仿真选项并执行增量编译。
优选地,利用CIT.option将仿真选项分为四个不相交集合:(a).与编译无关只与运行有关的选项集合:例如微分方程求解时的数值积分方法、收敛容差等;(b).新增的选项集合:CIT.option中当前网表、时间戳下没有该选项;(c).无改动选项的集合:CIT.option中当前网表、时间戳下有该选项,且值相同;(d).改动选项的集合:CIT.option中当前网表、时间戳下有该选项,但值不同。
优选地,对于(a),选项无需生成目标数据块,也无需更新WCD,故无需操作。
优选地,对于(b),执行该选项相关的编译操作,生成目标数据块。在CIT.option中增加一条新映射:“网表、时间戳、(选项,值)”→“目标数据块”,将目标数据块加入WCD。
优选地,对于(c),利用CIT.option,将对应的目标数据块加入WCD。
优选地,对于(d),执行该选项相关的编译操作,生成目标数据块。在CIT.option中增加一条新映射:“网表、时间戳、(选项,值)”→“目标数据块”,将目标数据块加入WCD。
在步骤106,利用WCD中的目标数据块加上步骤5(a)中的选项,执行后续的“运行”流程:建立矩阵、求解方程、输出。
在步骤107,构建增量编译任务并执行。
优选地,对分组中剩余的每个任务加上group-id构成一个仿真进程,收集所有仿真进程放入进程池,依次执行步骤102至步骤106至所有仿真任务结束。清理CIT、CDB或保留至后续使用。
实施例2
下面结合一具体实施例对本发明的基于增量编译的电路仿真方法做进一步的说明。
根据本发明实施例的另一方面,结合两种应用场景对本发明的实施进行说明。
场景1:先后对同一个大规模后仿真电路进行仿真,仿真选项不同。
任务1:输入主文件:netlist1,选项:数值积分方法=方法1
任务2:输入主文件:netlist1,选项:数值积分方法=方法2
Step0:分组预编译。任务1和任务2网表文件相同,仅仿真选项不同,分在同一组group-id=1。将任务1放入进程池,执行流程Step2-Step6,如图2所示。该步骤生成CDB数据集,CIT分别建立“netlist1”、“数值积分方法=方法1”到CDB相关目标数据块的映射。
Step1:构建增量编译任务并执行。将任务2放入进程池,执行流程Step2-Step6,如图2所示。执行完毕后再执行Step7,具体如下。
Step2:从进程池取任务2并启动进程。
Step3:用group-id=1找到该组的CIT,将WCD置空。
Step4:分析网表文件并执行增量编译。收集netlist1的所有相关文件,对于每个文件用文件名、时间戳在CIT.file中查询,得知均为历史无改动文件,因此查得对应的目标数据块加入WCD,无需编译。
Step5:分析仿真选项并执行增量编译。用“数值积分方法=方法2”在CIT.option中查询,得知仿真选项为历史选项,选项值发生变化,但该选项为编译无关选项,因此无需编译,WCD无更新。
Step6:运行。利用WCD中的目标数据块和选项“数值积分方法=方法2”建立矩阵、求解方程、输出。
Step7;销毁进程池,保留CIT、CDB给后续仿真使用。
场景2:每个仿真任务较小,但任务数多,任务个数T=100万。
任务1:输入主文件:netlist1;选项集1
任务2:输入主文件:netlist2;选项集2
任务T:输入主文件:netlistT;选项集T
Step0:分组预编译。分析仿真任务,将任务分组,网表数据和选项值重叠度高的为一组。每组选一个case并记录组号(group-id)构成一个仿真进程。收集所有仿真进程放入进程池,执行流程Step2-Step6,如图2所示。完毕后再执行Step1。
Step1:构建增量编译任务并执行。对每组剩余的每个任务加上group-id构成一个仿真进程。收集所有仿真进程并放入进程池,执行流程Step2-Step6,如图2所示。最后执行Step7。
Step2:以分布式的方式启动进程池的每个进程,执行Step3。
Step3:对于每个仿真进程,根据group-id找到该分组对应的CIT,如果没有则新建。将WCD置空。执行Step4。
Step4;分析网表文件并执行增量编译。
(4.1).首先根据文件名和时间戳将所有文件分为三个集合:(a).无改动的文件集合;(b).新增的文件集合;(c).改动的文件集合。对(a)、(b)、(c)分别执行(4.2)、(4.3)、(4.4)。
(4.2).对(a)中的每个文件,根据文件名、时间戳查询CIT.file得到对应的模块,将模块对应的目标数据块加入WCD。
(4.3).对(b)中的每个文件,首先进行词法、语法分析得到文件中的模块,对模块进行编译得到目标数据块。在CIT.file中增加相关的映射:“文件名、时间戳、模块”“目标数据块”,将目标数据块加入WCD。
(4.4).对(c)中的每个文件,首先进行词法、语法分析得到文件中的模块。将这些模块和CIT.file中该文件名下所有版本(不同时间戳)的模块做匹配:匹配以模块为单位,模块所有字节均相同则认为匹配。对每个版本计算匹配模块的占比r,选出占比最大的一个版本,记为v_max,对应的占比为r_max。若r_max大于或等于用户设定的阈值,则认为当前文件可以和版本v_max共享,否则当前文件没有可共享的版本。对于没有版本可共享的情况,处理方法和(4.3)一样;对于有版本可共享的情况,对匹配的模块,根据CIT.file将对应的目标数据块加入WCD,而对没有匹配的模块,进行编译后将目标数据块加入WCD。
Step5:分析仿真选项并执行增量编译。
(5.1).利用CIT.option将仿真选项分为四个不相交集合:(a).与编译无关只与运行相关的选项集合;(b).新增的选项集合;(c).无改动选项的集合;(d).改动选项的集合。对这些集合分别执行(5.2)~(5.5)。
(5.2).对于(a),选项无需生成目标数据块,也无需更新WCD,故无需操作。
(5.3).对于(b),执行该选项相关的编译操作,生成目标数据块。在CIT.option中增加一条新映射:“网表、时间戳、(选项,值)”“目标数据块”,将目标数据块加入WCD。
(5.4).对于(c),利用CIT.option,将对应的目标数据块加入WCD。
(5.5).对于(d),和(5.3)相同。
Step6:利用WCD中的目标数据块和Step5的集合(a)执行“运行”流程:建立矩阵、求解方程、输出。
Step7:销毁进程池,保留CIT、CDB给后续仿真使用。
本发明提出了一种支持增量编译、分布式的仿真方法,利用不同仿真任务输入网表数据和选项的高度相关性,提出一种基于增量编译的、分布式的仿真方法,提高仿真效率。
本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的基于增量编译的电路仿真方法的步骤。
本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的基于增量编译的电路仿真方法的步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于增量编译的电路仿真方法,其特征在于,包括以下步骤:
1)分析仿真任务并进行分组预编译,将预编译后的仿真任务放入进程池;
2)以分布式的方式启动进程池的每个进程;
3)对于每个仿真进程,根据组号找到该分组对应的编译信息表;
4)根据所述编译信息表分析网表文件并执行增量编译;
5)根据所述编译信息表分析仿真选项并执行增量编译;
6)对分组中其余的每个任务加上组号构成一个仿真进程,收集所有仿真进程放入进程池,返回执行步骤2)至仿真任务结束。
2.根据权利要求1所述的基于增量编译的电路仿真方法,其特征在于,所述步骤1)分析仿真任务并进行分组预编译,将预编译后的仿真任务放入进程池的步骤,还包括,
仿真任务的输入由网表文件和仿真选项两部分组成;
将网表文件和选项值相似的分为一组,每组选一个任务并记录组号构成一个仿真进程,收集所有仿真进程放入进程池。
3.根据权利要求1所述的基于增量编译的电路仿真方法,其特征在于,所述步骤3)对于每个仿真进程,根据组号找到该分组对应的编译信息表的步骤,还包括,
每个分组对应一张编译信息表,每张编译信息表由编译信息网表文件和编译信息仿真选项文件两个子表组成;
以至少一个网表文件模块为单位进行编译,编译结果为一个目标数据块,所有目标数据块构成编译数据集;
当前仿真任务所需的所有目标数据块构成工作数据集,初始时当前任务的工作数据集为空。
4.根据权利要求3所述的基于增量编译的电路仿真方法,其特征在于,所述每个分组对应一张编译信息表,每张编译信息表由编译信息网表文件和编译信息仿真选项文件两个子表组成的步骤,还包括,
所有分组的编译信息表均以文件形式保存,每张编译信息网表文件保存了该分组相关文件不同版本中模块与目标数据块的一一映射;
每张编译信息仿真选项文件保存了该分组网表不同版本的选项与目标数据块的一一映射。
5.根据权利要求1所述的基于增量编译的电路仿真方法,其特征在于,所述步骤4)根据所述编译信息表分析网表文件并执行增量编译的步骤,还包括,根据网表文件的文件名和时间戳将所有文件分为三个集合,包括:
无改动的文件集合:文件名和时间戳在编译信息网表文件中有对应的项;
新增的文件集合:文件名在编译信息网表文件中没有对应的项;
改动的文件集合:文件名在编译信息网表文件中有对应的项,但文件名下的时间戳没有对应的项。
6.根据权利要求5所述的基于增量编译的电路仿真方法,其特征在于,还包括,
对所述无改动的文件集合中的每个文件,根据文件名和时间戳查询编译信息网表文件得到对应的模块,将模块对应的目标数据块加入工作数据集;
对所述新增的文件集合中的每个文件,进行词法、语法分析得到网表文件模块,对所述网表文件模块进行编译得到目标数据块,在编译信息网表文件中增加相关的映射并将目标数据块加入工作数据集;
对所述改动的文件集合中的每个文件,首先,进行词法、语法分析得到网表文件模块;然后,将这些模块和编译信息网表文件中该文件名下所有版本的模块字节进行匹配;再后,计算每个版本匹配模块的字节占比,选出占比最大的版本并记录最大字节占比;所述计算每个版本匹配模块的字节占比,选出占比最大的版本并记录最大字节占比的步骤,还包括,若所述最大字节占比大于或等于设定的阈值,则当前文件可以和版本共享,否则当前文件不存在可共享的版本。
7.根据权利要求1所述的基于增量编译的电路仿真方法,其特征在于,所述步骤5)根据所述编译信息表分析仿真选项并执行增量编译的步骤,还包括,根据所述编译信息表将仿真选项分为四个不相交集合,包括:
与编译无关只与运行有关的选项集合;
新增的选项集合:编译信息仿真选项文件中当前网表、时间戳下没有该选项;
无改动选项的集合:编译信息仿真选项文件中当前网表、时间戳下有该选项,且值相同;
改动选项的集合:编译信息仿真选项文件中当前网表、时间戳下有该选项,但值不同。
8.根据权利要求7所述的基于增量编译的电路仿真方法,其特征在于,还包括,
对于所述与编译无关只与运行有关的选项集合,无需操作;
对于所述新增的选项集合,执行该选项相关的编译操作,生成目标数据块,将所述目标数据块加入工作数据集;
对于所述无改动选项的集合,利用编译信息仿真选项文件将对应的目标数据块加入工作数据集;
对于所述改动选项的集合,执行该选项相关的编译操作,生成目标数据块,将所述目标数据块加入工作数据集。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行权利要求1至8任一项所述的基于增量编译的电路仿真方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序运行时执行权利要求1至8任一项所述的基于增量编译的电路仿真方法的步骤。
CN202110797339.9A 2021-07-14 2021-07-14 一种基于增量编译的电路仿真方法 Active CN113536717B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110797339.9A CN113536717B (zh) 2021-07-14 2021-07-14 一种基于增量编译的电路仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110797339.9A CN113536717B (zh) 2021-07-14 2021-07-14 一种基于增量编译的电路仿真方法

Publications (2)

Publication Number Publication Date
CN113536717A true CN113536717A (zh) 2021-10-22
CN113536717B CN113536717B (zh) 2022-05-24

Family

ID=78099275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110797339.9A Active CN113536717B (zh) 2021-07-14 2021-07-14 一种基于增量编译的电路仿真方法

Country Status (1)

Country Link
CN (1) CN113536717B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023123111A1 (zh) * 2021-12-29 2023-07-06 华为技术有限公司 编译方法以及用于编译的装置
CN118410769A (zh) * 2024-06-28 2024-07-30 贝叶斯电子科技(绍兴)有限公司 电路性能指标的仿真计算方法、装置、电子设备及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9619096D0 (en) * 1996-09-12 1996-10-23 Sharp Kk Method of and apparatus for designing an intergrated circuit and an intergrated circuit
CN103150438A (zh) * 2013-03-12 2013-06-12 青岛中星微电子有限公司 一种电路编译方法及装置
CN104143024A (zh) * 2014-07-29 2014-11-12 西安电子科技大学 一种并行高速链路系统的快速时域仿真方法
US20160139898A1 (en) * 2014-11-14 2016-05-19 XPLIANT, Inc Algorithm to achieve optimal layout of instruction tables for programmable network devices
CN108416077A (zh) * 2017-02-10 2018-08-17 三星电子株式会社 用于通过考虑后段制程来设计集成电路的方法和计算系统
CN111553122A (zh) * 2020-05-15 2020-08-18 深圳探科技术有限公司 集成电路仿真同步处理的方法、模块、存储介质及系统
CN111814415A (zh) * 2020-07-09 2020-10-23 长沙海格北斗信息技术有限公司 用于芯片验证的高效回归测试方法
CN112100952A (zh) * 2020-09-14 2020-12-18 海光信息技术股份有限公司 一种集成电路后仿真方法、装置、电子设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9619096D0 (en) * 1996-09-12 1996-10-23 Sharp Kk Method of and apparatus for designing an intergrated circuit and an intergrated circuit
CN103150438A (zh) * 2013-03-12 2013-06-12 青岛中星微电子有限公司 一种电路编译方法及装置
CN104143024A (zh) * 2014-07-29 2014-11-12 西安电子科技大学 一种并行高速链路系统的快速时域仿真方法
US20160139898A1 (en) * 2014-11-14 2016-05-19 XPLIANT, Inc Algorithm to achieve optimal layout of instruction tables for programmable network devices
CN108416077A (zh) * 2017-02-10 2018-08-17 三星电子株式会社 用于通过考虑后段制程来设计集成电路的方法和计算系统
CN111553122A (zh) * 2020-05-15 2020-08-18 深圳探科技术有限公司 集成电路仿真同步处理的方法、模块、存储介质及系统
CN111814415A (zh) * 2020-07-09 2020-10-23 长沙海格北斗信息技术有限公司 用于芯片验证的高效回归测试方法
CN112100952A (zh) * 2020-09-14 2020-12-18 海光信息技术股份有限公司 一种集成电路后仿真方法、装置、电子设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANUPAMA J. THUBAGERE等: "Compiler-aided systematic construction of large-scale DNA strand displacement circuits using unpurified components", 《NATURE COMMUNICATION》 *
刘萌等: "基于SystemVerilog的网络处理器验证平台设计", 《电子器件》 *
孙书娟: "高性能DSP内核的综合优化与验证", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023123111A1 (zh) * 2021-12-29 2023-07-06 华为技术有限公司 编译方法以及用于编译的装置
CN118410769A (zh) * 2024-06-28 2024-07-30 贝叶斯电子科技(绍兴)有限公司 电路性能指标的仿真计算方法、装置、电子设备及介质
CN118410769B (zh) * 2024-06-28 2024-09-27 贝叶斯电子科技(绍兴)有限公司 电路性能指标的仿真计算方法、装置、电子设备及介质

Also Published As

Publication number Publication date
CN113536717B (zh) 2022-05-24

Similar Documents

Publication Publication Date Title
CN113536717B (zh) 一种基于增量编译的电路仿真方法
Böhm et al. xSim: The extreme-scale simulator
Huai et al. DOT: a matrix model for analyzing, optimizing and deploying software for big data analytics in distributed systems
CN111324610A (zh) 一种数据同步的方法及装置
Ke et al. Optimus: a dynamic rewriting framework for data-parallel execution plans
US20160154896A1 (en) Processing a data flow graph of a hybrid flow
CN104662514A (zh) 基于模型关联关系的遗产软件系统的现代化
Wang et al. A framework for distributed data-parallel execution in the Kepler scientific workflow system
JP2018510445A (ja) プログラム性能を向上させる領域特化システムおよび方法
CN113553313A (zh) 一种数据迁移方法及系统、存储介质、电子设备
CN111367893A (zh) 数据库版本迭代的方法及装置
Nagavaram et al. A cloud-based dynamic workflow for mass spectrometry data analysis
Zou et al. Lachesis: automatic partitioning for UDF-centric analytics
CN110888876A (zh) 生成数据库脚本的方法、装置、存储介质及计算机设备
CN103530369A (zh) 一种去重方法及系统
CN116228515A (zh) 硬件加速系统、方法及相关装置
CN116976252A (zh) 一种回归仿真方法、装置、设备、介质及程序产品
CN114168151A (zh) 基于容器的程序编译方法、装置、电子设备及存储介质
CN115888114A (zh) 游戏数据的处理方法及装置、存储介质、终端
KR101916960B1 (ko) 복수의 소스 코드들을 자동적으로 결합하는 방법
CN112597169A (zh) 一种工业软件多租户数据隔离的实现方法
Naguib et al. Speeding up SystemC simulation through process splitting
US8694293B2 (en) Simulation support method, computer-readable storage medium storing simulation support program, and simulation support apparatus
CN111400396A (zh) 数据同步脚本的生成方法、装置及计算机可读存储介质
Štill State space compression for the DiVinE model checker

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