CN112965722A - 一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质 - Google Patents
一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112965722A CN112965722A CN202110235664.6A CN202110235664A CN112965722A CN 112965722 A CN112965722 A CN 112965722A CN 202110235664 A CN202110235664 A CN 202110235664A CN 112965722 A CN112965722 A CN 112965722A
- Authority
- CN
- China
- Prior art keywords
- variables
- verilog
- model
- optimizing
- encoding
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Abstract
一种Verilog‑A模型的优化方法、电子设备及计算机可读存储介质,所述方法,包括以下步骤:收集对雅可比矩阵有贡献的变量,对所述变量进行全局编码;对所述变量进行独立编码,建立全局编码到独立编码的映射表;对变量依赖关系进行优化;输出优化后经过独立编码的代码。本发明的Verilog‑A模型的优化方法,通过对模块中的编码优化来减少模型修改时产生的大量改动,在电路仿真器中对Verilog‑A模型的计算进行优化加速的同时,改善模型的可复用性和可维护性。
Description
技术领域
本发明涉及集成电路计算机辅助设计技术领域,特别是涉及一种电路仿真器的优化方法。
背景技术
Verilog-A语言是一种高级语言,它使用模块来描述模拟系统及其组件的结构和行为。要指定各个模块的行为,需要定义它们的输入和输出信号之间的数学关系。定义了系统的结构和行为之后,电路仿真器从模块派生出一组描述性的方程式,求解方程组,获得系统响应。从器件模块到建立方程组的过程中,需要将Verilog-A构建的电路模块转换成电路仿真器可以调用的C++代码接口。
随着先进工艺的快速迭代,器件模型复杂度快速增长,同时也带来了模型计算过程中计算量的大幅提升。因此,需要使用一系列的优化算法对计算过程进行优化,从而降低时间复杂度,加快仿真过程。通常,优化算法会收集模块中所有的变量,然后优化变量间的依赖关系,从而去除冗余的计算。这样一来,在Verilog-A模型进行更新和迭代时,就算只是少有的几处改动,都会对整体C++模型代码产生巨大的影响。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质,通过在电路仿真器中对Verilog-A模型的计算进行优化加速的同时,改善模型的可复用性和可维护性。
为实现上述目的,本发明提供的一种Verilog-A模型的优化方法,包括以下步骤:
收集对雅可比矩阵有贡献的变量,对所述变量进行全局编码;
对所述变量进行独立编码,建立全局编码到独立编码的映射表;
对变量依赖关系进行优化;
输出优化后经过独立编码的代码。
进一步地,所述收集对雅可比矩阵有贡献的变量,对所述变量进行全局编码的步骤,还包括,遍历电路模块中所有对雅各比矩阵有贡献的变量,保存变量被赋值时的导数依赖关系,按照变量在电路模块中被赋值的顺序进行编码并标记。
进一步地,所述对所述变量进行独立编码,建立全局编码到独立编码的映射表的步骤,还包括,根据电路模块中同名变量被赋值的顺序,对同名变量进行单独编码并标记,建立从全局编码的变量到独立编码的变量的映射表。
进一步地,所述对变量依赖关系进行优化的步骤,还包括,通过导数优化算法对变量导数的依赖关系进行优化。
进一步地,所述输出优化后经过独立编码的代码的步骤,还包括,将电路模块转换成电路仿真器调用的代码接口,根据所述映射表,将通过全局编码的变量转换为独立编码的变量,并输出对应的导数计算表达式。
为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的Verilog-A模型的优化方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的Verilog-A模型的优化方法的步骤。
本发明的Verilog-A模型的优化方法,具有以下有益效果:
1)对同名变量独立编码,并建立全局编码变量到独立编码变量的映射关系,在进行计算优化时按照全局编码变量来进行优化,保证变量被复制的顺序和模块中完全一致。同时,在最后输出导数计算表达式时,通过映射表,将输出的表达式中全局编码变量转换为独立编码变量。如此,即使对Verilog-A模块进行了小幅改动,转换出来的C++代码也只会产生轻微的变化,大幅改善模型的可复用性和可维护性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的Verilog-A模型的优化方法流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为根据本发明的Verilog-A模型的优化方法流程图,下面将参考图1,对本发明的Verilog-A模型的优化方法进行详细描述。
首先,在步骤101,收集对雅可比矩阵有贡献的变量,对变量进行全局编码。
本发明实施例中,对雅可比矩阵有贡献的变量,是指Verilog-A模型中与端口电压或者端口电流有联系的变量,会对雅克比矩阵有贡献。有贡献的变量关系指这些变量之间赋值与被赋值的一种层级关系。
本发明实施例中,遍历模块中所有对雅各比矩阵有贡献的变量,将其保存并按照其在Verilog-A模型的模块中被赋值的顺序对其编码(称为全局编码),并在其尾部加上该编码。
本发明实施例中,保证每一个变量都是独一无二的,同时也可以明确变量出现的先后顺序。Verilog-A模块中所有变量都会通过编码被视为不同的变量,这样处理的目的是方便计算优化。并保存变量被赋值时的导数依赖关系。
在步骤102中,对变量进行独立编码,建立全局编码到独立编码的映射表。
优选地,根据模块中同名变量在模块中被赋值的顺序,对同名变量按这个变量出现的次数单独编码(称为独立编码),并在其尾部加上该编码,同时建立从全局编码的变量到独立编码的变量的映射表,以供查询转换。
在步骤103中,对变量依赖关系进行优化。
优选地,通过导数优化算法,对变量导数的依赖关系进行优化,大幅减少冗余的导数计算过程。
本发明实施例中,导数优化算法,通过将变量从局部和整体上进行逐次展开,使变量导数的依赖关系最简化,从而大幅减少冗余的导数计算过程。
在步骤104中,输出优化后经过独立编码的代码。
优选地,导数优化完成后,将Verilog-A构建的电路模块转换成电路仿真器可以调用的C++代码接口,在输出对雅各比矩阵有贡献的变量的导数计算表达式时,通过建立的映射表,将通过全局编码的变量转换为独立编码的变量,并输出对应的导数计算表达式。
实施例2
下面结合一具体实施例对本发明的Verilog-A模型的优化方法做进一步的说明。
遍历模块中所有对雅各比矩阵有贡献的变量,将其保存并按照其在模块中被赋值的顺序对其编码(称为全局编码),并在其尾部加上该编码,保证每一个变量都是独一无二的,同时也可以明确变量出现的先后顺序。比如,(A,B,C,A,C,D,E,C)为一个简单模块中变量赋值顺序的简单抽象表示,其中(A,B,C,D,E)为五个不同的变量,根据全局编码的方式对其进行编码,则可以表示为(A1,B2,C3,A4,C5,D6,E7,C8)。若此时该模块需要进行迭代升级,对其中的部分语句进行调整,比如现在需要将B2变量删除,则模块可以表示为(A1,C2,A3,C4,D5,E6,C7)。从该例子可以看出,当对模块局部进行细微调整时,也会对整体代码产生巨大的改动,不利于维护更新。
本实施例中,改善电路仿真器中Verilog-A模型的可复用性和可维护性的方法,通过两种对变量编码的转换减少模型迭代升级的代码改动量,具体要求如下:(1)对变量先进行全局编码,再进行独立编码;(2)对两种编码之间建立对应的映射关系,从而实现转换。
所以,本发明在对变量进行全局编码的同时,采取对每个变量出现的顺序进行独立编码,则对上述例子中T调整前的模块变量可以简单表示为(A1,B1,C1,A2,C2,D1,E1,C3)。同时建立对应的全局编码变量到局部编码变量的映射表(A1-A1,B2-B1,C3-C1,A4-A2,C5-C2,D6-D1,E7-E1,C8-C3),在变量依赖关系优化完毕以后,输出实际代码时对将全局编码的变量替换为独立编码的变量。假如现在需要将变量删除,则模块可以表示为(A1,C1,A2,C2,D1,E1,C3)。从该例子可以看出,当对模块局部进行细微调整时,仅会影响同名的变量,而不会对整体代码产生大量影响。
本发明通过对同名变量独立编码,并建立全局编码变量到独立编码变量的映射关系,在进行计算优化时按照全局编码变量来进行优化,保证变量被复制的顺序和模块中完全一致。同时,在最后输出导数计算表达式时,通过映射表,将输出的表达式中全局编码变量转换为独立编码变量。如此,即使对Verilog-A模块进行了小幅改动,转换出来的C++代码也只会产生轻微的变化,大幅改善模型的可复用性和可维护性。
随着先进工艺的快速迭代,器件模型变得越来越复杂,所以需要采取对应优化算法来降低模型的计算量。但是,优化之后会极大的降低模型的可复用性,提升维护成本。
本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的Verilog-A模型的优化方法的步骤。
本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的Verilog-A模型的优化方法的步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种Verilog-A模型的优化方法,其特征在于,包括以下步骤:
收集对雅可比矩阵有贡献的变量,对所述变量进行全局编码;
对所述变量进行独立编码,建立全局编码到独立编码的映射表;
对变量依赖关系进行优化;
输出优化后经过独立编码的代码。
2.根据权利要求1所述的Verilog-A模型的优化方法,其特征在于,所述收集对雅可比矩阵有贡献的变量,对所述变量进行全局编码的步骤,还包括,遍历电路模块中所有对雅各比矩阵有贡献的变量,保存变量被赋值时的导数依赖关系,按照变量在电路模块中被赋值的顺序进行编码并标记。
3.根据权利要求1所述的Verilog-A模型的优化方法,其特征在于,所述对所述变量进行独立编码,建立全局编码到独立编码的映射表的步骤,还包括,根据电路模块中同名变量被赋值的顺序,对同名变量进行单独编码并标记,建立从全局编码的变量到独立编码的变量的映射表。
4.根据权利要求1所述的Verilog-A模型的优化方法,其特征在于,所述对变量依赖关系进行优化的步骤,还包括,通过导数优化算法对变量导数的依赖关系进行优化。
5.根据权利要求1所述的Verilog-A模型的优化方法,其特征在于,所述输出优化后经过独立编码的代码的步骤,还包括,将电路模块转换成电路仿真器调用的代码接口,根据所述映射表,将通过全局编码的变量转换为独立编码的变量,并输出对应的导数计算表达式。
6.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行权利要求1至5任一项所述的Verilog-A模型的优化方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序运行时执行权利要求1至5任一项所述的Verilog-A模型的优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110235664.6A CN112965722B (zh) | 2021-03-03 | 2021-03-03 | 一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110235664.6A CN112965722B (zh) | 2021-03-03 | 2021-03-03 | 一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112965722A true CN112965722A (zh) | 2021-06-15 |
CN112965722B CN112965722B (zh) | 2022-04-08 |
Family
ID=76276791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110235664.6A Active CN112965722B (zh) | 2021-03-03 | 2021-03-03 | 一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965722B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485619A (en) * | 1993-12-29 | 1996-01-16 | International Business Machines Corporation | Array variable transformation system employing subscript table mapping to scalar loop indices |
CN104932886A (zh) * | 2015-06-12 | 2015-09-23 | 卡斯柯信号有限公司 | 一种基于平行签名唯一性的多维度的冗余编码方法 |
CN106340887A (zh) * | 2016-09-18 | 2017-01-18 | 国网福建省电力有限公司 | 计及控制状态转换的交直流输电系统无功优化方法 |
CN107886163A (zh) * | 2017-12-01 | 2018-04-06 | 广东工业大学 | 基于agn及cnn的单目标优化问题寻优方法及装置 |
CN107895096A (zh) * | 2017-12-21 | 2018-04-10 | 北京华大九天软件有限公司 | 电路仿真器中Verilog‑A模型的计算优化方法 |
CN110390103A (zh) * | 2019-07-23 | 2019-10-29 | 中国民航大学 | 基于双编码器的短文本自动摘要方法及系统 |
CN110489585A (zh) * | 2019-07-08 | 2019-11-22 | 南京邮电大学 | 基于监督学习的分布式图像搜索方法 |
CN110543243A (zh) * | 2019-09-05 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN110728075A (zh) * | 2019-10-25 | 2020-01-24 | 山西应用科技学院 | 一种利用moa算法优化深冷工艺参数的方法 |
CN111882184A (zh) * | 2020-07-14 | 2020-11-03 | 福州大学 | 一种多智能体系统零空间行为控制动态任务优先级规划方法 |
-
2021
- 2021-03-03 CN CN202110235664.6A patent/CN112965722B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485619A (en) * | 1993-12-29 | 1996-01-16 | International Business Machines Corporation | Array variable transformation system employing subscript table mapping to scalar loop indices |
CN104932886A (zh) * | 2015-06-12 | 2015-09-23 | 卡斯柯信号有限公司 | 一种基于平行签名唯一性的多维度的冗余编码方法 |
CN106340887A (zh) * | 2016-09-18 | 2017-01-18 | 国网福建省电力有限公司 | 计及控制状态转换的交直流输电系统无功优化方法 |
CN107886163A (zh) * | 2017-12-01 | 2018-04-06 | 广东工业大学 | 基于agn及cnn的单目标优化问题寻优方法及装置 |
CN107895096A (zh) * | 2017-12-21 | 2018-04-10 | 北京华大九天软件有限公司 | 电路仿真器中Verilog‑A模型的计算优化方法 |
CN110489585A (zh) * | 2019-07-08 | 2019-11-22 | 南京邮电大学 | 基于监督学习的分布式图像搜索方法 |
CN110390103A (zh) * | 2019-07-23 | 2019-10-29 | 中国民航大学 | 基于双编码器的短文本自动摘要方法及系统 |
CN110543243A (zh) * | 2019-09-05 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN110728075A (zh) * | 2019-10-25 | 2020-01-24 | 山西应用科技学院 | 一种利用moa算法优化深冷工艺参数的方法 |
CN111882184A (zh) * | 2020-07-14 | 2020-11-03 | 福州大学 | 一种多智能体系统零空间行为控制动态任务优先级规划方法 |
Non-Patent Citations (3)
Title |
---|
YI JIN 等: "Optimized Variable Degree Matched Mapping for Proto graph LDPC Coded Modulation with 16QAM", 《THE 2010 6TH INTERNATIONAL SYMPOSIUM ON TURBO CODES & ITERATIVE INFORMATION PROCESSING》 * |
张剑 等: "基于无向图所有生成树的网络重构遗传算法", 《电力自动化设备》 * |
陈晨 等: "无线网络编码感知路由综述", 《软件学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112965722B (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210081019A1 (en) | Power Optimization In An Artificial Intelligence Processor | |
CN113344218B (zh) | 机器学习模型的部署方法、装置、电子设备及存储介质 | |
CN115809063A (zh) | 一种存储过程编译方法、系统、电子设备和存储介质 | |
CN112965722B (zh) | 一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质 | |
CN107895096B (zh) | 电路仿真器中Verilog-A模型的计算优化方法 | |
CN107610210B (zh) | 骨骼动画系统优化方法、装置及骨骼动画系统 | |
CN116644804B (zh) | 分布式训练系统、神经网络模型训练方法、设备和介质 | |
CN112527304B (zh) | 基于异构平台的自适应节点融合编译优化方法 | |
CN117170681A (zh) | 核函数生成方法、装置、电子设备及存储介质 | |
CN112906328A (zh) | Fpga原型验证系统生成方法及系统、fpga原型验证方法及系统 | |
CN113705798A (zh) | 处理单元、计算装置及深度学习模型的计算图优化方法 | |
CN111310897A (zh) | 一种神经网络终端部署微调训练方法 | |
CN115167868B (zh) | 代码编译方法、装置、设备及计算机存储介质 | |
CN104408232A (zh) | 一种高层次综合中的组合逻辑优化方法及系统 | |
US20230004563A1 (en) | Method and system for providing a context-sensitive, non-intrusive data processing optimization framework | |
CN115587480A (zh) | 数字化仿真方法以及数字化仿真装置 | |
EP3742283A1 (en) | Arithmetic processing device, method for controlling arithmetic processing device, and program for controlling arithmetic processing device | |
CN112486671A (zh) | 基于gpu的grapes系统优化方法、系统、介质及设备 | |
CN109062566B (zh) | 数字航天器波道遥测源代码人工智能书写方法 | |
CN113076332A (zh) | 一种数据库预编译查询语句的执行方法 | |
CN112100749A (zh) | 一种汽车智能化开发系统及其构建和应用方法 | |
CN111273901A (zh) | 一种可快捷上线部署的机器学习模型的文件格式及部署方法 | |
CN117436546A (zh) | 一种基于存算一体的深度学习模型终端优化部署方法 | |
CN111882073B (zh) | 一种分布式计算图修改的方法和设备 | |
CN111401400B (zh) | 一种可编程控制器视觉功能块fbd的内部变量优化方法 |
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 |