CN112965722A - 一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质 - Google Patents

一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质 Download PDF

Info

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
Application number
CN202110235664.6A
Other languages
English (en)
Other versions
CN112965722B (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.)
Shenzhen Huada Jiutian Technology Co ltd
Original Assignee
Shenzhen Huada Jiutian 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 Shenzhen Huada Jiutian Technology Co ltd filed Critical Shenzhen Huada Jiutian Technology Co ltd
Priority to CN202110235664.6A priority Critical patent/CN112965722B/zh
Publication of CN112965722A publication Critical patent/CN112965722A/zh
Application granted granted Critical
Publication of CN112965722B publication Critical patent/CN112965722B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Abstract

一种Verilog‑A模型的优化方法、电子设备及计算机可读存储介质,所述方法,包括以下步骤:收集对雅可比矩阵有贡献的变量,对所述变量进行全局编码;对所述变量进行独立编码,建立全局编码到独立编码的映射表;对变量依赖关系进行优化;输出优化后经过独立编码的代码。本发明的Verilog‑A模型的优化方法,通过对模块中的编码优化来减少模型修改时产生的大量改动,在电路仿真器中对Verilog‑A模型的计算进行优化加速的同时,改善模型的可复用性和可维护性。

Description

一种Verilog-A模型的优化方法、电子设备及计算机可读存储 介质
技术领域
本发明涉及集成电路计算机辅助设计技术领域,特别是涉及一种电路仿真器的优化方法。
背景技术
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模型的优化方法的步骤。
CN202110235664.6A 2021-03-03 2021-03-03 一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质 Active CN112965722B (zh)

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)

* Cited by examiner, † Cited by third party
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 福州大学 一种多智能体系统零空间行为控制动态任务优先级规划方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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