可左右滑动选省市

一种基于谐波平衡的电路仿真方法、装置及存储介质

更新时间:2024-09-24
一种基于谐波平衡的电路仿真方法、装置及存储介质 专利申请类型:发明专利;
地区:广东-深圳;
源自:深圳高价值专利检索信息库;

专利名称:一种基于谐波平衡的电路仿真方法、装置及存储介质

专利类型:发明专利

专利申请号:CN202210421916.9

专利申请(专利权)人:深圳市比昂芯科技有限公司
权利人地址:广东省深圳市南山区桃源街道长源社区学苑大道1001号南山智园C2栋1701

专利发明(设计)人:王正卓,欧阳凌云

专利摘要:本发明涉及电路仿真领域,具体是涉及一种基于谐波平衡的电路仿真方法、装置及存储介质。获取原始矩阵,所述原始矩阵中的元素与电路所涉及到的参数相对应;对所述原始矩阵进行分块处理,得到分块目标矩阵;对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果。本发明对原始矩阵进行分块处理,得到一个一个的分块目标矩阵,以此实现将原始矩阵化整为零。谐波平衡算法在每次迭代运算时通过对分块目标矩阵的操作,能够实现分块目标矩阵快速的存取操作,从而提高了运算速度,进而提高了通过谐波平衡算法得到电路仿真结果的速度。另外,本发明的电路仿真程序是在GPU上进行运行的,能够进一步提高本发明的电路仿真运行速度。

主权利要求:
1.一种基于谐波平衡的电路仿真方法,其特征在于,包括:获取电路所对应的参数;
依据所述参数,建立原始矩阵;
对所述原始矩阵进行分块处理,得到分块目标矩阵;
对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果;
所述对所述原始矩阵进行分块处理,得到分块目标矩阵,包括:依据所述原始矩阵,得到所述原始矩阵中的雅可比矩阵;
设定方形矩阵的尺寸;
按照所述方形矩阵的尺寸对所述雅可比矩阵进行分块,得到各个分块矩阵;
依据各个所述分块矩阵所对应的值,将各个所述分块矩阵划分成零矩阵和非零矩阵,零矩阵即矩阵中的各个元素均为零;
统计各个所述非零矩阵所包含的零元素总量;
调整所述方形矩阵的尺寸之后对所述雅可比矩阵进行分块,计算每次分块所得到的各个所述非零矩阵所包含的零元素总量;
从所有的所述零元素总量中挑选出最少的所述零元素总量;
依据最少的所述零元素总量,得到与最少的所述零元素总量所对应的所述分块目标矩阵;
所述对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果,包括:依据所述分块目标矩阵,得到所述分块目标矩阵所包含的分块目标零矩阵和分块目标非零矩阵,所述分块目标零矩阵中的各个元素均为零;
依据所述分块目标非零矩阵,得到所述分块目标非零矩阵的内部非零元素排列信息;
依据所述非零元素排列信息,得到所述分块目标非零矩阵所包含的全块矩阵、对角块矩阵、半对角块矩阵,所述全块矩阵中的所有元素都是非零元素;所述对角块矩阵的对角线上元素均为非零元素,且对角线两侧的元素均为零;所述半对角块矩阵的对角线上元素均为非零元素,且对角线其中一侧的的元素为零;
将所述全块矩阵、所述对角块矩阵、所述半对角块矩阵分别保存至CPU不同位置处;
将所述全块矩阵、所述对角块矩阵、所述半对角块矩阵移动至GPU上,在GPU的高级单元、低级单元、GPU内核上进行谐波平衡算法的迭代运算,得到电路仿真结果。
2.一种基于谐波平衡的电路仿真装置,其特征在于,所述装置包括如下组成部分:数据采集模块,用于获取原始矩阵,所述原始矩阵中的元素与电路所涉及到的参数相对应;
数据处理模块,用于对所述原始矩阵进行分块处理,得到分块目标矩阵;
电路仿真模块,用于对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果;
所述对所述原始矩阵进行分块处理,得到分块目标矩阵,包括:依据所述原始矩阵,得到所述原始矩阵中的雅可比矩阵;
设定方形矩阵的尺寸;
按照所述方形矩阵的尺寸对所述雅可比矩阵进行分块,得到各个分块矩阵;
依据各个所述分块矩阵所对应的值,将各个所述分块矩阵划分成零矩阵和非零矩阵,零矩阵即矩阵中的各个元素均为零;
统计各个所述非零矩阵所包含的零元素总量;
调整所述方形矩阵的尺寸之后对所述雅可比矩阵进行分块,计算每次分块所得到的各个所述非零矩阵所包含的零元素总量;
从所有的所述零元素总量中挑选出最少的所述零元素总量;
依据最少的所述零元素总量,得到与最少的所述零元素总量所对应的所述分块目标矩阵;
所述对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果,包括:依据所述分块目标矩阵,得到所述分块目标矩阵所包含的分块目标零矩阵和分块目标非零矩阵,所述分块目标零矩阵中的各个元素均为零;
依据所述分块目标非零矩阵,得到所述分块目标非零矩阵的内部非零元素排列信息;
依据所述非零元素排列信息,得到所述分块目标非零矩阵所包含的全块矩阵、对角块矩阵、半对角块矩阵,所述全块矩阵中的所有元素都是非零元素;所述对角块矩阵的对角线上元素均为非零元素,且对角线两侧的元素均为零;所述半对角块矩阵的对角线上元素均为非零元素,且对角线其中一侧的的元素为零;
将所述全块矩阵、所述对角块矩阵、所述半对角块矩阵分别保存至CPU不同位置处;
将所述全块矩阵、所述对角块矩阵、所述半对角块矩阵移动至GPU上,在GPU的高级单元、低级单元、GPU内核上进行谐波平衡算法的迭代运算,得到电路仿真结果。
3.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的基于谐波平衡的电路仿真程序,所述处理器执行所述基于谐波平衡的电路仿真程序时,实现如权利要求1所述的基于谐波平衡的电路仿真方法的步骤。
4.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于谐波平衡的电路仿真程序,所述基于谐波平衡的电路仿真程序被处理器执行时,实现如权利要求1所述的基于谐波平衡的电路仿真方法的步骤。 说明书 : 一种基于谐波平衡的电路仿真方法、装置及存储介质技术领域[0001] 本发明涉及电路仿真领域,具体是涉及一种基于谐波平衡的电路仿真方法、装置及存储介质。背景技术[0002] 电路仿真器是大多数电子设计自动化(EDA)工具的组成部分。现代电路仿真器中通常需要进行密集的数值计算任务,例如瞬态时域仿真、直流工作点计算和具有周期性激励的电路稳态分析等,而现有技术常采用谐波平衡方法(电路稳态分析的其中一个方法)通过对线路涉及到的矩阵进行运算而得到电路稳态响应的结果。[0003] 谐波平衡方法将稳态问题表述为非线性方程组,用傅里叶级数表示电路波形,其傅里叶系数为未知数,谐波平衡方法计算任务是每次迭代时对电路所涉及到的矩阵进行运算。直接对矩阵进行运算会降低每次迭代计算速度,从而增加了得到电路仿真结果所需要的仿真时间。[0004] 综上所述,现有技术的谐波平衡的电路仿真速度较慢。[0005] 因此,现有技术还有待改进和提高。发明内容[0006] 为解决上述技术问题,本发明提供了一种基于谐波平衡的电路仿真方法、装置及存储介质,解决了现有技术的谐波平衡的电路仿真速度较慢的问题。[0007] 为实现上述目的,本发明采用了以下技术方案:[0008] 第一方面,本发明提供一种基于谐波平衡的电路仿真方法,其中,包括:[0009] 获取电路所对应的参数;[0010] 依据所述参数,建立原始矩阵;[0011] 对所述原始矩阵进行分块处理,得到分块目标矩阵;[0012] 对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果。[0013] 在一种实现方式中,所述对所述原始矩阵进行分块处理,得到分块目标矩阵,包括:[0014] 依据所述原始矩阵,得到所述原始矩阵中的雅可比矩阵;[0015] 对所述雅可比矩阵按照方形矩阵进行分块,得到所述分块目标矩阵。[0016] 在一种实现方式中,所述对所述雅可比矩阵按照方形矩阵进行分块,得到所述分块目标矩阵,包括:[0017] 设定所述方形矩阵的尺寸;[0018] 按照所述方形矩阵的尺寸对所述雅可比矩阵进行分块,得到各个分块矩阵;[0019] 依据各个所述分块矩阵所对应的值,将各个所述分块矩阵划分成零矩阵和非零矩阵,零矩阵即矩阵中的各个元素均为零;[0020] 统计各个所述非零矩阵所包含的零元素总量;[0021] 调整所述方形矩阵的尺寸之后对所述雅可比矩阵进行分块,计算每次分块所得到的各个所述非零矩阵所包含的零元素总量;[0022] 从所有的所述零元素总量中挑选出最少的所述零元素总量;[0023] 依据最少的所述零元素总量,得到与最少的所述零元素总量所对应的所述分块目标矩阵。[0024] 在一种实现方式中,所述对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果,包括:[0025] 依据所述分块目标矩阵,得到所述分块目标矩阵所包含的分块目标零矩阵和分块目标非零矩阵,所述分块目标零矩阵中的各个元素均为零;[0026] 将所述分块目标非零矩阵保存至CPU中;[0027] 应用谐波平衡算法时从CPU中调取所述分块目标非零矩阵,得到电路仿真结果。[0028] 在一种实现方式中,所述将所述分块目标非零矩阵保存至CPU中,包括:[0029] 依据所述分块目标非零矩阵,得到所述分块目标非零矩阵的内部非零元素排列信息;[0030] 依据所述非零元素排列信息,将所述分块目标非零矩阵保存至CPU中。[0031] 在一种实现方式中,所述依据所述非零元素排列信息,将所述分块目标非零矩阵保存至CPU中,包括:[0032] 依据所述非零元素排列信息,所述分块目标非零矩阵所包含的全块矩阵、对角块矩阵、半对角块矩阵,所述全块矩阵中的所有元素都是非零元素;所述对角块矩阵的对角线上元素均为非零元素,且对角线两侧的元素均为零;所述半对角块矩阵的对角线上元素均为非零元素,且对角线其中一侧的的元素为零;[0033] 将所述全块矩阵、所述对角块矩阵、所述半对角块矩阵分别保存至CPU不同位置处。[0034] 在一种实现方式中,所述应用谐波平衡算法时从CPU中调取所述分块目标非零矩阵,得到电路仿真结果,包括:[0035] 将所述全块矩阵、所述对角块矩阵、所述半对角块矩阵移动至GPU上,在GPU上进行谐波平衡算法的迭代运算,得到电路仿真结果。[0036] 第二方面,本发明实施例还提供一种基于谐波平衡的电路仿真装置,其中,所述装置包括如下组成部分:[0037] 数据采集模块,用于获取原始矩阵,所述原始矩阵中的元素与电路所涉及到的参数相对应;[0038] 数据处理模块,用于对所述原始矩阵进行分块处理,得到分块目标矩阵;[0039] 电路仿真模块,用于对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果。[0040] 第三方面,本发明实施例还提供一种终端设备,其中,所述终端设备包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的基于谐波平衡的电路仿真程序,所述处理器执行所述基于谐波平衡的电路仿真程序时,实现上述所述的基于谐波平衡的电路仿真方法的步骤。[0041] 第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于谐波平衡的电路仿真程序,所述基于谐波平衡的电路仿真程序被处理器执行时,实现上述所述的基于谐波平衡的电路仿真方法的步骤。[0042] 有益效果:本发明对原始矩阵进行分块处理,得到一个一个的分块目标矩阵,以此实现将原始矩阵化整为零,谐波平衡算法在每次迭代运算时通过对分块目标矩阵的操作,能够实现分块目标矩阵快速的存取操作,从而提高了运算速度,进而提高了通过谐波平衡算法得到电路仿真结果的速度。附图说明[0043] 图1为本发明的整体流程图;[0044] 图2为本发明的谐波平衡算法流程图;[0045] 图3为BKLU主要计算任务的CPU占比示意图;[0046] 图4为本发明实施例提供的终端设备的内部结构原理框图。具体实施方式[0047] 以下结合实施例和说明书附图,对本发明中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0048] 经研究发现,电路仿真器是大多数电子设计自动化(EDA)工具的组成部分。现代电路仿真器中通常需要进行密集的数值计算任务,例如瞬态时域仿真、直流工作点计算和具有周期性激励的电路稳态分析等,而现有技术常采用谐波平衡方法(电路稳态分析的其中一个方法)通过对线路涉及到的矩阵进行运算而得到电路稳态响应的结果。谐波平衡方法将稳态问题表述为非线性方程组,用傅里叶级数表示电路波形,其傅里叶系数为未知数,谐波平衡方法计算任务是每次迭代时对电路所涉及到的矩阵进行运算。直接对矩阵进行运算会降低每次迭代计算速度,从而增加了得到电路仿真结果所需要的仿真时间。[0049] 为解决上述技术问题,本发明提供了一种基于谐波平衡的电路仿真方法、装置及存储介质,解决了现有技术的谐波平衡的电路仿真速度较慢的问题。具体实施时,获取原始矩阵,所述原始矩阵中的元素与电路所涉及到的参数相对应;对所述原始矩阵进行分块处理,得到分块目标矩阵;对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果。能够实现分块目标矩阵快速地存取操作,从而提高了运算速度,进而提高了通过谐波平衡算法得到电路仿真结果的速度。[0050] 举例说明,原始矩阵是10x10的矩阵,将该矩阵划分成4个5x5的分块目标矩阵,这样就可以在CPU上并行同时进行对这4个分块目标矩阵的存储,从而加速了谐波平衡算法的运算速度。[0051] 示例性方法[0052] 本实施例的一种基于谐波平衡的电路仿真方法可应用于终端设备中,所述终端设备可为具有电路仿真功能的终端产品,比如电脑等。在本实施例中,如图1中所示,所述基于谐波平衡的电路仿真方法具体包括如下步骤:[0053] S100,获取原始矩阵,所述原始矩阵中的元素与电路所涉及到的参数相对应。[0054] 本实施例获取电路所对应的参数,再依据参数,建立原始矩阵,原始矩阵中的每一个元素都是根据电路所对应的参数计算而来的。[0055] 本实施例中的原始矩阵为雅可比矩阵,而雅可比矩阵,是由频域线性子电路电压初始值向量乘以傅里叶逆矩阵,再通过非线性矩阵隐式运算,同傅里叶矩阵相乘,再加上电导代数矩阵所得。即雅可比矩阵是由误差函数对线性子电路电压(频域)的偏导数构成,而误差函数由线性部分端口电压(电流)和非线性部分端口电压(电流)构成。[0056] S200,对所述原始矩阵进行分块处理,得到分块目标矩阵。[0057] 本实施例的原始矩阵为雅可比矩阵,而雅可比矩阵为方形矩阵,因此在对雅可比矩阵进行分块时必须按照方形矩阵进行划分,才能保证后续的计算。[0058] 步骤S200包括如下的步骤S201、S202、S203、S204、S205、S206、S207:[0059] S201,设定所述方形矩阵的尺寸。[0060] 本实施例先将尺寸设置为最小尺寸,即2x2的方形矩阵。当依据2x2的方形矩阵分割出来的分块矩阵达不到要求时,再逐渐增大方形矩阵的尺寸,直至最后得到的分块矩阵能够达到要求为止。[0061] S202,按照所述方形矩阵的尺寸对所述雅可比矩阵进行分块,得到各个分块矩阵。[0062] S203,依据各个所述分块矩阵所对应的值,将各个所述分块矩阵划分成零矩阵和非零矩阵,零矩阵即矩阵中的各个元素均为零。[0063] S204,统计各个所述非零矩阵所包含的零元素总量。[0064] S205,调整所述方形矩阵的尺寸之后对所述雅可比矩阵进行分块,计算每次分块所得到的各个所述非零矩阵所包含的零元素总量;[0065] S206,从所有的所述零元素总量中挑选出最少的所述零元素总量;[0066] S207,依据最少的所述零元素总量,得到与最少的所述零元素总量所对应的所述分块目标矩阵。[0067] 举例说明步骤S201‑步骤S207的详细过程:[0068][0069] 当以4x4对矩阵J进行分块时,得到的是如下矩阵:[0070][0071] 四个非零矩阵中共包含了41个0元素,当以2x2对矩阵J进行分块时,矩阵J变化为如下的矩阵形式:[0072][0073] 其中:[0074][0075] 四个非零矩阵A、两个非零矩阵B、一个非零矩阵C共包含了5个0元素,5个0元素相对于以4x4对矩阵J进行分块而在分块矩阵中产生的41个0元素而言少了太多的0元素,因此选择将矩阵J按照2x2进行分块,这样得到的分块目标矩阵就包含了很少的0元素。而对于谐波平衡算法而言,每次迭代过程中只要求对非0元素进行存储和提取即可,因此选择含有很少0元素的分块矩阵对矩阵J进行分块,得到目标分块矩阵A、B、C、O,存储时只要对非零矩阵A、B、C进行存储,而不存储全0元素矩阵O,从而减轻了CPU的存储压力,进而提高了谐波平衡算法的运算速度。[0076] 本实施例中像矩阵A这样所有的元素都是非0元素称之为全块矩阵;像矩阵B这样只有对角线上的元素为非0元素,其它位置的元素都是0元素,称之为对角块矩阵;像矩阵C这样角线及对角线一边为非0元素,对角线另一边为0元素,称之为半对角块矩阵。在存储各个分块目标矩阵时,将全块矩阵全部存储在指定的CPU一个位置,将对角块矩阵全部存储在指定的CPU另一个位置,将半对角块矩阵全部存储在指定的CPU其它位置处,这样进行分类型存储能够加速CPU的存储速度。[0077] 本实施例将矩阵分块处理后,记录块的大小、所在行、所在列及块的类型等信息,以及块本身的内部元素,将之存储起来。在进行基础KLU算法时再根据上述信息来调取所需块的内部元素,进一步对矩阵LU分解,避免了全零值矩阵对内存存储及调取的浪费,并最大限度地保存了原有矩阵的内部元素信息,在节省内存的同时加速了原有KLU算法。[0078] S300,对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果。[0079] 本实施例是将谐波平衡算法运行在含有CPU和GPU的混合平台上进行运算,其中着重利用GPU的并行计算优势,以提高整体的计算速度。在谐波平衡运算中,适合并行运算的矩阵乘法占主导地位,而分块后的矩阵也更适合并行运算,这些正是GPU发挥其优势的基础。同传统算法中只使用CPU这单一计算平台相比,本实施例引入使用GPU这高性能计算平台,并根据运算类型的不同合理分配CPU/GPU的使用,最大程度上解放了混合平台的计算性能。[0080] 在进行谐波平衡算法时,将存储在CPU上的各个分块目标矩阵从CPU主机内存复制到GPU全局内存,以在GPU上利用GPU的高效并行运算能力进行谐波平衡算法。在GPU上利用GPU的高级单元、低级单元、GPU内核完成谐波平衡算法的运行,下面分别介绍高级单元、低级单元、GPU内核的具体功能:[0081] 高级单元:主要驻留在CPU主机内存上,其上主要可调用块状矩阵进行求逆运算、块状矩阵间的加减法运算、块状矩阵同向量组的乘法运算以及块状矩阵间的乘法运算,以及在GPU上的不同缓冲区之间复制矩阵,或从GPU到CPU主机内存移动矩阵。[0082] 低级单元:是上述高级单元更具针对性的版本,针对所操作的特定类型块状矩阵。较高级别的单元通常根据操作中涉及的块状矩阵的类型调用较低级别的单元。[0083] GPU内核:它是一组在GPU上执行实际块状矩阵操作的OpenCL内核。这些内核由程序在运行时编译,并由GPU硬件调度程序实例化为GPU计算单元上的工作项和工作组。[0084] 在执行本实施例的谐波平衡算法最外层迭代期间,每个高级单元在算法的适当阶段被激活,然后将要操作的块或块的索引传递给该单元(即将各个分块目标矩阵对应的索引传递到GPU的高级单元上,该高级单元通过索引号在CPU上找到对应的分块目标矩阵,然后将该分块目标矩阵调取至GPU上)。激活的单元决定操作是在主机CPU上执行还是需要加载到GPU上以获得更好的性能,该决定取决于输入块的类型以及操作产生的块的类型(即根据分块目标矩阵是全块矩阵、对角块矩阵还是半对角块矩阵决定是在CPU上进行运算还是在GPU上进行运算,以及每个分块矩阵是进行乘法运算还是加法孙算或者是求逆以决定是在CPU上进行还是在GPU上进行)。[0085] 如果根据输入和输出块的类型(输出块的类型即分类矩阵进行运算之后所对应的矩阵)判断操作最好在GPU上执行,则单元启动以下动作。它首先计算缓冲区的偏移量,即缓冲区对应于操作中所需的参数块的索引。然后将这些偏移量发送到较低级别的单元,以将块操作数设置为专用OpenCL内核的内核参数。下层单元在GPU命令队列上放置一个命令,指示它执行指定的内核。根据内核的类型,该单元可以等待内核执行完成,或者可以立即将控制权返回给更高级别的单元。后一种情况允许CPU和GPU计算重叠,而前一种情况需要在CPU和GPU之间的某些同步点上完成计算。[0086] 本实施例中,基于谐波平衡算法对电路进行仿真以得到电路的稳态响应的原理如下:[0087] 如图2所示,谐波平衡方法将电路系统分为线性部分和非线性部分。对于线性部分,使用频域代数方程来描述线性部分的特性。而非线性部分,通常不可能在频域中直接建立非线性分量的模型,为了克服这个问题,谐波平衡方法在时域中对非线性分量进行评估。使用傅里叶逆变换将频域电压转换为时域,在时域中评估非线性分量(电流、电荷等),再使用傅里叶变换将电流或电荷转换回频域。达到平衡时,经傅里叶逆变换成时域的线性部分端口电压和电流应匹配非线性部分端口电压和电流,同样傅里叶变换成频域的非线性部分端口电压和电流应匹配线性部分端口电压和电流。因此,设定最大谐波数,建立一个线性部分端口电压(电流)和非线性部分端口电压(电流)的误差函数(误差函数是建立雅可比矩阵的基础),建立雅可比矩阵之后,再通过多次迭代,实现稳态的线性部分和非线性部分的谐波平衡。[0088] 在迭代过程中,关键问题即确定误差函数的雅可比矩阵,用初始值减去雅可比矩阵的逆矩阵同误差函数的乘积,得到新的迭代初始值,完成频域线性子电路电压初始值的更新。而雅可比矩阵,是由频域线性子电路电压初始值向量乘以傅里叶逆矩阵,再通过非线性矩阵隐式运算,同傅里叶矩阵相乘,再加上电导代数矩阵所得。其最终形式为涉及矩阵求逆、矩阵‑矩阵乘法、矩阵加减法以及隐式矩阵运算的综合矩阵形式,计算过程较为复杂,故需要通过矩阵分解以加速收敛过程。[0089] 通过本实施例对雅可比矩阵进行分块得到分块目标矩阵之后,谐波平衡算法在运行过程中会对各个分块目标矩阵进行矩阵求逆(MINV)、矩阵‑矩阵乘法(MMUL)、矩阵加减法(MSUB)以及一些隐式矩阵运算(other)。本实施例中各部分计算任务CPU占比如图3所示。图3中从下至上依次为矩阵‑矩阵乘法占用的CPU内存、矩阵求逆占用的CPU内存、移动矩阵块和缩放矩阵块占用的CPU内存、矩阵加减法占用的CPU内存、隐式矩阵运算占用的CPU内存。从图3可以看出,矩阵‑矩阵乘法在计算任务中占主导地位,尤其是对于较大的块矩阵乘法;矩阵求逆在总计算量中也占有重要地位;另外,整个计算操作的一小部分用于非矩阵间任务,例如移动矩阵块和缩放它们(MSCALE)。因为BKLU算法的大部分计算是以矩阵‑矩阵乘法的形式发生的,表现出了并行性的巨大潜力,非常适合在包含GPU的混合平台上实现。[0090] 综上,本发明对原始矩阵进行分块处理,得到一个一个的分块目标矩阵,以此实现将原始矩阵化整为零,谐波平衡算法在每次迭代运算时通过对分块目标矩阵的操作,能够实现分块目标矩阵快速地存取操作,从而提高了运算速度,进而提高了通过谐波平衡算法得到电路仿真结果的速度。[0091] 示例性装置[0092] 本实施例还提供一种基于谐波平衡的电路仿真装置,所述装置包括如下组成部分:[0093] 数据采集模块,用于获取原始矩阵,所述原始矩阵中的元素与电路所涉及到的参数相对应;[0094] 数据处理模块,用于对所述原始矩阵进行分块处理,得到分块目标矩阵;[0095] 电路仿真模块,用于对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果。[0096] 基于上述实施例,本发明还提供了一种终端设备,其原理框图可以如图4所示。该终端设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该终端设备的处理器用于提供计算和控制能力。该终端设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于谐波平衡的电路仿真方法。该终端设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该终端设备的温度传感器是预先在终端设备内部设置,用于检测内部设备的运行温度。[0097] 本领域技术人员可以理解,图4中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端设备的限定,具体的终端设备以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。[0098] 在一个实施例中,提供了一种终端设备,终端设备包括存储器、处理器及存储在存储器中并可在处理器上运行的基于谐波平衡的电路仿真程序,处理器执行基于谐波平衡的电路仿真程序时,实现如下操作指令:[0099] 获取原始矩阵,所述原始矩阵中的元素与电路所涉及到的参数相对应;[0100] 对所述原始矩阵进行分块处理,得到分块目标矩阵;[0101] 对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果。[0102] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。[0103] 综上,本发明公开了一种基于谐波平衡的电路仿真方法、装置及存储介质,所述方法包括:获取原始矩阵,所述原始矩阵中的元素与电路所涉及到的参数相对应;对所述原始矩阵进行分块处理,得到分块目标矩阵;对所述分块目标矩阵应用谐波平衡算法,得到电路仿真结果。能够提高仿真速度。[0104] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

专利地区:广东

专利申请日期:2022-04-21

专利公开日期:2024-07-26

专利公告号:CN114925641B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
电话咨询
读内容
搜本页
回顶部