CN117422047B - 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 - Google Patents

一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 Download PDF

Info

Publication number
CN117422047B
CN117422047B CN202311748653.3A CN202311748653A CN117422047B CN 117422047 B CN117422047 B CN 117422047B CN 202311748653 A CN202311748653 A CN 202311748653A CN 117422047 B CN117422047 B CN 117422047B
Authority
CN
China
Prior art keywords
gpu
cpu
verilog
circuit
parameters
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
Application number
CN202311748653.3A
Other languages
English (en)
Other versions
CN117422047A (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.)
Hangzhou Siwei Mapping Software Co ltd
Xinge Shanghai Microelectronics Co ltd
Bayes Electronic Technology Shaoxing Co ltd
Original Assignee
Hangzhou Siwei Mapping Software Co ltd
Xinge Shanghai Microelectronics Co ltd
Bayes Electronic Technology Shaoxing 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 Hangzhou Siwei Mapping Software Co ltd, Xinge Shanghai Microelectronics Co ltd, Bayes Electronic Technology Shaoxing Co ltd filed Critical Hangzhou Siwei Mapping Software Co ltd
Priority to CN202311748653.3A priority Critical patent/CN117422047B/zh
Publication of CN117422047A publication Critical patent/CN117422047A/zh
Application granted granted Critical
Publication of CN117422047B publication Critical patent/CN117422047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种CPU与GPU异构平台的电路仿真方法,同时还提出了一种CPU与GPU异构平台的自动化仿真方法。将Verilog‑A/AMS器件编译成CPU和GPU异构平台上执行的代码时,将涉及器件评估的部分编译成GPU代码,将电路方程的其他部分编译成CPU端的代码。这样可以利用GPU进行大规模器件评估计算,又能联合求解器进行电路仿真,将Verilog‑A/AMS器件自动编译成CPU和GPU异构平台上执行的代码,这样可以利用GPU进行大规模计算,这将有效提高Verilog‑A/AMS器件的仿真效率。

Description

一种CPU与GPU异构平台的电路仿真方法与自动化仿真方法
技术领域
本发明属于集成电路仿真领域,具体涉及一种CPU与GPU异构平台的Verilog-A/AMS电路仿真方法与CPU-GPU异构平台自动化仿真方法。
背景技术
在集成电路领域中,模拟模块的行为模型、新型器件的紧凑模型以及多物理模块的行为模型常常使用Verilog-A/AMS硬件描述语言来建模。对这些模型的仿真则需要先采用Verilog-A/AMS编译程序先把Verilog-A/AMS语言编译成C/C++语言,然后调用C/C++的编译器生成二进制库文件,最后才能参与到电路仿真中去,从程序编译角度来看,存在效率优化的空间。
随着集成电路规模与精度要求的提高,在仿真、调试过程的效率提升难以满足需求,其主要原因如下:1、仿真多基于CPU平台,应用广泛的冯诺依曼架构、哈佛架构等都属于串行处理体系结构,运行速度限制较大;即使采用多核CPU,也受到CPU核芯数量的限制,提升效率有限;2、即使采用具有并行能力的GPU加速,也需要依靠工程师的人工配置优化,缺乏异构平台的自动化协同处理,仿真优化的整体效率较为低下。
本申请人提出的主题名称为“一种Verilog-A的仿真方法”的专利(公开号为:CN114398846A),通过将一些普遍适用的Verilog-A进行优化处理,固化成电路仿真器的固有模型,从而使得后续再遇到此类Verilog-A,电路仿真器能够直接调用优化后的固有模型,从而提高Verilog-A的仿真效率。但其存在如下问题:1、优化逻辑局限于从程序编译、特定器件结构的角度展开,对于整体电路仿真效率的提升还存在不足;2、仍然存在串行计算速度限制、CPU核芯数量有限与异构平台缺乏自动化配置优化的瓶颈。
为解决以上问题,有必要提出一种新的方法。
发明内容
针对现有技术中所存在的不足,本发明提供了一种CPU与GPU异构平台的电路仿真方法,应用于Verilog-A/AMS电路仿真,包含以下步骤:
A、解析电路网表和Verilog-A/AMS器件;
B、根据步骤A得到的电路信息和Verilog-A/AMS器件信息,预先在GPU上分配电性参数所需的内存块,仿真初始化时,将待仿真的Verilog-A/AMS器件所包含的电性参数组传输到GPU;所述电性参数组包含Verilog-A/AMS器件的model参数、instance参数、电压向量和电路拓扑参数;
C、在GPU端进行器件电性参数组的评估计算,评估计算内容包含利用Verilog-A/AMS器件行为的方程式和电压向量重新计算Verilog-A/AMS器件的雅可比矩阵的stamp信息和电流向量以及电荷向量;根据评估计算结果更新电参数雅可比矩阵与电流向量信息/电荷向量信息;
D、从GPU端传更新后电参数雅可比矩阵的stamp信息、电流向量信息或电荷向量信息到CPU端;期间将分散在多个instance参数的雅可比矩阵的stamp信息重组为一段连续的内存数据再往CPU端传输;
E、CPU端基于电参数雅可比矩阵、电压向量、电流向量或电荷向量组成的线性方程组,求解电压向量后更新电压向量;
F、判断步骤E中所得方程组的解的收敛情况:如果收敛则执行下一个仿真点的计算,如果不收敛则将GPU中电性参数组的电压向量替换为步骤E中最新求解的电压向量,继续从步骤C开始执行;
G、判断仿真是否结束:如果仿真未结束,则继续从步骤C开始执行下一个点的仿真计算;如果仿真结束,则程序执行完毕。
进一步的,在步骤A中,利用词法分析器Flex和语法分析器Bsion对Verilog-A/AMS器件和电路网表进行词法解析与语法解析,并生成对应电路模型的语法树。
进一步的,在步骤A中,解析待仿真的Verilog-A/AMS器件的表达式,所述表达式为描述Verilog-A/AMS器件行为的方程式,与节点电压向量有关的表达式分配在GPU上计算,与节点电压向量无关的表达式分配在CPU上计算。
进一步的,对语法树进行递归解析,直至所有的根节点为预先定义的器件参数或本地变量。
进一步的,GPU计算所需的参数信息在连续内存块中进行整体存储。
进一步的,GPU计算所需参数信息的存储包含以下步骤:
A01、解析Verilog-A/AMS器件中的model参数和instance参数定义,统计model参数和instance参数包含的参数名,记为model参数列表和instance参数列表;
B01、解析Verilog-A/AMS器件中的与节点电压向量有关的表达式,统计计算每个表达式值所需的参数;
C01、将步骤B01中涉及与节点电压向量相关的表达式中的model参数组成新的一个数组,记为紧凑型model参数,并通过和步骤A01中解析所得到的model参数名进行匹配,将相对应model参数的值赋值给步骤B01中的model参数名;
D01、将步骤B01中涉及的instance参数组成新的一个数组,记为紧凑型instance参数,并通过和步骤A01中解析所得到的instance参数名进行匹配,将相对应instance参数的值赋值给步骤B01中的instance参数名;
E01、将既不是model参数又不是instance参数的参数记录为本地变量。
本发明还提出了一种CPU与GPU异构平台的自动化仿真方法,包含以下步骤:
A1、检测计算机上GPU计算平台的安装情况;
A2、待仿真的Verilog-A/AMS器件根据GPU计算平台的安装检测识别结果,进行相应的代码编译:当安装有GPU计算平台时,编译为CPU端和GPU端异构平台执行代码,如C/C++代码;
当未安装有GPU计算平台时,编译为CPU端上执行代码,如C/C++代码;并在CPU中以多核并行方式进行计算,如可用TBB进行并行计算;
A3、把Verilog-A/AMS器件编译所得的代码,如C/C++代码,再编译成二进制库,和通用电路仿真器一起组成新的Verilog-A/AMS电路仿真器,进行电路仿真,电路仿真包含所述的一种CPU与GPU异构计算电路的仿真方法。
进一步的,将各GPU型号按照对应的计算资源进行编译配置作为编译配置项,以在步骤A2中,识别所述 GPU计算平台对应的GPU型号之后,选择对应型号的配置项内容进行编译。
进一步的,编译配置包含以下步骤:
A11、解析电路网表,确定待仿真的电路网表中Verilog-A/AMS器件的instance参数的数量,记为N;
A12、查询当前GPU的block和thread最大数目,分别记为BN和GN,并设grid和block均为1维;
A13、当N<BN时,grid设置为1维,block设置为N维;
当BN<N<BN*GN 时,grid设置为N/BN+1维,block设置为BN维;
当1*BN*GN<N<2*BN*GN时,每次进入自定义模型评估时,采用分批次进入GPU进行计算,第1次前BN*GN个instance参数的评估将grid设置为GN维,block设置为BN维;再将剩余的instance参数按照当N<BN或BN<N<BN*GN 时的情景分别设置grid和block的维数数目。
相比于现有技术,本发明将器件信息(instance参数/model参数)、电路拓扑信息和初始电压向量在电路仿真前一次性传入GPU中,避免了在仿真时多次传输;将Verilog-A/AMS编译成CPU和GPU异构平台上执行的代码时,将不同的GPU的编译选项做成配置项,这样可以最大限度的发挥GPU的计算优势,提高了效率。
附图说明
图1为实施例CPU与GPU异构平台Verilog-A/AMS电路仿真流程图。
图2为实施例CPU与GPU异构计算流程图。
图3为实施例对应的紧凑型参数分析流程图。
图4为实施例电路网表示意图。
具体实施方式
以下结合说明书附图对本发明作进一步详细说明,并给出具体实施方式。
本实施例提出了一种CPU与GPU异构平台的电路的仿真方法,如图1、图2所示,包含以下步骤:
A、解析电路网表和Verilog-A/AMS器件;所述解析即利用词法分析器flex和语法分析器bsion对电路网表和Verilog-A/AMS器件进行词法解析与语法解析,并最终生成模型的语法树;所述Verilog-A/AMS器件不仅包含单个紧凑型半导体器件,也包含由若干紧凑型半导体器件组成的电路模块;本实施例中的Verilog-A/AMS器件为UC Berkeley的BSIM3V3器件;电路网表的示例参见图4;
B、根据步骤A得到的电路信息和Verilog-A/AMS器件信息,预先在GPU上分配电性参数所需的内存块,仿真初始化时,将待仿真的Verilog-A/AMS器件所包含的电性参数组传输到GPU;所述电性参数组包含Verilog-A/AMS器件的model参数、instance参数、电压向量和电路拓扑参数;本实施例中,GPU为NVIDIA GPU计算平台,并调用CUDA进行相关计算作业;
C、在GPU端进行器件电性参数组的评估计算,评估计算内容包含利用Verilog-A/AMS器件行为的方程式和电压向量,重新计算器件的雅可比矩阵的stamp信息和电流向量/电荷向量;根据评估计算结果更新电参数雅可比矩阵、电流向量或电荷向量信息;为方便理解,作为一种实施例,Verilog-A/AMS器件行为的方程式包含但不限于电路方程式;
D、从GPU端传更新后电参数雅可比矩阵的stamp信息、电流向量信息或电荷向量信息到CPU端;期间将分散在多个instance参数的电参数雅可比矩阵的stamp信息重组为一段连续的内存数据再往CPU端传输;
E、CPU端基于电压向量、电参数雅可比矩阵、电流向量或电荷向量组成的线性方程组,求解电压向量后更新电压向量;
F、判断步骤E中所得方程组的解的收敛情况:如果收敛则进行下一个仿真点的计算,如果不收敛则将GPU中电性参数组的电压向量替换为步骤E中最新求解的电压向量,继续从步骤C开始执行;
G、判断仿真是否结束:如果步仿真未结束,则继续从步骤C开始执行下一个点的器件评估计算;如果步仿真结束,则程序执行完毕。
在步骤E中,线性方程如下所示:
( 1 )
上式以电参数为电导参数的雅可比矩阵为例,电参数雅可比矩阵中的其中一部分元素就称为stamp,如下式所示即为电导stamp信息示例,是一个2*2的小矩阵,
其中,雅可比矩阵可以是电导矩阵或电容矩阵,右端项可以是电流向量或电荷向量。组成的线性方程组包含电导、电压向量和电流向量组成的方程组,也包含电容、电压向量和电荷向量组成的方程组。
在以上步骤A中,解析待仿真的Verilog-A/AMS器件的表达式,与节点电压向量有关的表达式分配在GPU上计算,与节点电压向量无关的表达式分配在CPU上计算。由此,将Verilog-A/AMS编译成CPU和GPU异构平台上执行的代码时,将涉及模型评估的部分编译成GPU代码,将模型其他部分编译成CPU端的代码,这样可以利用GPU进行大规模模型评估计算,又能联合求解器进行电路仿真,提高仿真效率;基于生成的语法树,对其进行递归解析,直至所有的根节点为预先定义的器件参数或本地变量,通过将与电压向量无关的表达式的计算在CPU上计算,将与电压向相关的表达式在GPU上进行,避免了GPU上重复执行只需计算一次的表达式的值,提高了计算效率。而将包含instance参数、model参数在内的器件信息、电路拓扑信息和初始电压向量在电路仿真前一次性传入GPU中,避免了在仿真时多次的传输,提高了效率。
另外,GPU计算所需的参数信息以更加紧凑的存储方式重新组合,本实施例中,参数信息在连续内存块中进行整体存储以连续方式进行存储;具体的,参见图3,本实施例GPU计算所需参数信息的紧凑式存储包含以下步骤:
A01、解析Verilog-A/AMS器件中的model参数和instance参数定义,统计model参数和instance参数包含的参数名,记为model参数列表和instance参数列表;
B01、解析Verilog-A/AMS器件中的与节点电压向量有关的表达式,所述表达式为描述Verilog-A/AMS器件行为的方程式,统计计算每个表达式计算所需的参数;
C01、将步骤B01中涉及与节点电压向量相关的表达式中的model参数组成新的一个数组,记为紧凑型model参数,并通过和步骤A01中解析所得到的model参数名进行匹配,将相对应model参数的值赋值给步骤B01中的model参数名;
D01、将步骤B01中涉及的instance参数组成新的一个数组,记为紧凑型instance参数,并通过和步骤A01中解析所得到的instance参数名进行匹配,将相对应instance参数的值赋值给步骤B01中的instance参数名;
E01、将既不是model参数又不是instance参数的参数记录为本地变量。
通过将model参数和instance参数紧凑化,提高了GPU上访问内存的效率。
需要在GPU端器件评估完成后进行CPU和GPU传输数据时,将原来分散在多个instance参数的电参数雅可比矩阵的stamp信息数据重新组成一整块连续的内存空间,然后再传输,这样可以减少数据传输的耗时。
本实施例还提出了一种CPU与GPU异构平台的自动化仿真方法,包含以下步骤:
A1、检测计算机上GPU计算平台的安装情况;
A2、待仿真的Verilog-A/AMS器件根据GPU计算平台的安装检测识别结果,进行相应的代码编译:当安装有GPU计算平台时,编译为CPU端和GPU端异构平台执行代码,如C/C++代码;
当未安装有GPU计算平台时,编译为CPU端上执行代码,如C/C++代码,并利用TBB进行多核并行计算,通过并行运算提高计算效率。
A3、把Verilog-A/AMS器件编译所得的C/C++代码,再编译成二进制库,和通用电路仿真器一起组成新的Verilog-A/AMS电路仿真器,进行电路仿真,电路仿真包含如上所述的一种CPU与GPU异构计算电路的仿真方法。
作为一种实施例,检测计算机上是否安装了NVIDIA GPU,可采用如下的命令:
nvidia-smi。
如果返回为空,则没有安装NVIDIA GPU。如果返回不为空,则可以进一步确认是什么型号的NVIDIA GPU。
当确定是什么型号的NVIDIA GPU后则可以确认使用什么编译选项,这里举例如下:
如果是NVIDIA GeForce RTX 4080,则可使用下面的编译选项
-gencode=arch=compute_86,code=sm_86 -rdc=true -O3
如果是NVIDIA GeForce RTX 4080,则可使用下面的编译选项
-gencode=arch=compute_89,code=sm_89 -rdc=true -O3
将不同型号的GPU的编译选项作为软件配置项,当确定GPU型号后即可选用不同的编译选项。通过将Verilog-A/AMS器件自动编译成CPU和GPU异构平台上执行的代码。这样可以利用GPU进行大规模计算,这将有效提高Verilog-A/AMS器件的仿真效率。
进一步的,将各GPU型号按照对应的计算资源进行编译配置,以在步骤A2中,识别所述GPU计算平台对应的GPU型号之后,选择对应型号的配置项进行编译。Verilog-A/AMS器件编译和相关配置包含以下步骤:
A11、解析电路网表,确定待仿真的自定义模型中instance参数的个数,instance数量即为问题规模,记为N;
A12、查询当前GPU的block和thread最大数目,分别记为BN和GN,并设grid和block均为1维;
A13、当N<BN时,grid设置为1,block设置为N;
当BN<N<BN*GN 时,grid设置为N/BN+1,block设置为BN;
当1*BN*GN<N<2*BN*GN时,每次进入Verilog-A/AMS器件评估时,采用分批次进入GPU进行计算,第1次前BN*GN个instance参数的评估将grid设置为GN,block设置为BN;再将剩余的instance参数按照当N<BN或BN<N<BN*GN 时的情景分别设置grid和block的维数。当前线程的索引号计算方式为index = threadIdx.x + blockIdx.x * blockDim.x。gridDim是一个dim3类型,表示网格的大小,一个网格中通常有多个线程块。blockDim是一个dim3类型,表示线程块的大小。上式中blockDim.x表示线程快第一个维度方向上的大小。blockIdx是一个uint3类型,表示一个线程块的索引,一个线程块中通常有多个线程。threadIdx是一个uint3类型,表示一个线程的索引。由此,将Verilog-A/AMS器件编译成CPU和GPU异构平台上执行的代码时,将不同的GPU的编译选项做成配置项,这样可以最大限度的发挥GPU的计算优势。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种CPU与GPU异构平台的电路仿真方法,其特征在于,应用于Verilog-A/AMS电路仿真,包含以下步骤:
A、解析电路网表和Verilog-A/AMS器件;
B、根据步骤A得到的电路信息和Verilog-A/AMS器件信息,预先在GPU上分配电性参数所需的内存,仿真初始化时,将待仿真的Verilog-A/AMS器件所包含的电性参数组传输到GPU;所述电性参数组包含Verilog-A/AMS器件的model参数、instance参数、电压向量和电路拓扑参数;
C、在GPU端进行器件电性参数组的评估计算,评估计算内容包含利用Verilog-A/AMS器件行为的方程式和电压向量,重新计算Verilog-A/AMS器件的电参数雅可比矩阵的stamp信息和电流向量以及电荷向量;根据评估计算结果更新电参数雅可比矩阵与电流向量信息/电荷向量信息;
D、从GPU端传更新后的电参数雅可比矩阵的stamp信息、电流向量信息或电荷向量信息到CPU端;期间将分散在多个instance参数的电参数雅可比矩阵的stamp信息重组为一段连续的内存数据再往CPU端传输;
E、CPU端基于电参数雅可比矩阵、电压向量、电流向量或电荷向量所组成的线性方程组,求解电压向量后更新电压向量;
F、判断步骤E中所得方程组的解的收敛情况:如果收敛则进行下一个仿真点的计算,如果不收敛则将GPU中电性参数组的电压向量替换为步骤E中最新求解的电压向量,继续从步骤C开始执行;
G、判断仿真是否结束:如果仿真未结束,则继续从步骤C开始执行下一个点的仿真计算;如果仿真结束,则程序执行完毕。
2.如权利要求1所述的一种CPU与GPU异构平台的电路仿真方法,其特征在于,在步骤A中,利用词法分析器Flex和语法分析器Bsion对Verilog-A/AMS器件和电路网表进行词法解析与语法解析,并生成对应电路模型的语法树。
3.如权利要求1或2所述的一种CPU与GPU异构平台的电路仿真方法,其特征在于,在步骤A中,解析待仿真的Verilog-A/AMS器件的表达式,所述表达式为描述Verilog-A/AMS器件行为的方程式,与节点电压向量有关的表达式分配在GPU上计算,与节点电压向量无关的表达式分配在CPU上计算。
4.如权利要求3所述的一种CPU与GPU异构平台的电路仿真方法,其特征在于,对语法树进行递归解析,直至所有的根节点为预先定义的器件参数或本地变量。
5.如权利要求3所述的一种CPU与GPU异构平台的电路仿真方法,其特征在于,GPU计算所需的参数信息在连续内存块中进行整体存储。
6.如权利要求5所述的一种CPU与GPU异构平台的电路仿真方法,其特征在于,GPU计算所需参数信息的存储包含以下步骤:
A01、解析Verilog-A/AMS器件中的model参数和instance参数定义,统计model参数和instance参数包含的参数名;
B01、解析Verilog-A/AMS器件中的与节点电压向量有关的表达式,统计每个表达式计算所需的参数;
C01、将步骤B01中涉及与节点电压向量相关的表达式中的model参数组成新的一个数组,并通过和步骤A01中解析所得到的model参数名进行匹配,将相对应model参数的值赋值给步骤B01中的model参数名;
D01、将步骤B01中涉及的instance参数组成新的一个数组,并通过和步骤A01中解析所得到的instance参数名进行匹配,将相对应instance参数的值赋值给步骤B01中的instance参数名;
E01、将既不是model参数又不是instance参数的参数记录为本地变量。
7.一种CPU与GPU异构平台的电路自动化仿真方法,其特征在于,用于Verilog-A/AMS电路的自动化仿真,包含以下步骤:
A1、检测计算机上GPU计算平台的安装情况;
A2、待仿真的Verilog-A/AMS器件根据GPU计算平台的安装检测识别结果,进行相应的代码编译:当安装有GPU计算平台时,编译为CPU端和GPU端异构平台执行代码;
当未安装有GPU计算平台时,编译为CPU端上执行代码;
A3、把Verilog-A/AMS器件编译所得的代码,再编译成二进制库,和通用电路仿真器一起组成新的Verilog-A/AMS电路仿真器,进行电路仿真,电路仿真包含如权利要求1所述的一种CPU与GPU异构平台的电路仿真方法。
8.如权利要求7所述的一种CPU与GPU异构平台的电路自动化仿真方法,其特征在于:在步骤A2中,在CPU中以多核并行方式进行计算。
9.如权利要求7或8所述的一种CPU与GPU异构平台的电路自动化仿真方法,其特征在于:将各GPU型号按照对应的计算资源作为编译配置项,以在步骤A2中,识别所述 GPU计算平台对应的GPU型号之后,选择对应型号的配置项内容进行编译。
10.如权利要求9所述的一种CPU与GPU异构平台的电路自动化仿真方法,其特征在于,编译配置包含以下步骤:
A11、解析电路网表,确定待仿真的电路网表中的Verilog-A/AMS器件的instance参数数量,记为N;
A12、查询当前GPU的block和thread最大数目,分别记为BN和GN,并设grid和block均为1维;
A13、当N < BN时,grid设置为1,block设置为N;
当BN < N < BN*GN 时,grid设置为N/BN+1,block设置为BN;
当1*BN*GN < N < 2*BN*GN时,每次进入自定义模型评估时,采用分批次进入GPU进行计算,第1次前BN*GN个instance参数的评估将grid设置为GN,block设置为BN;再将剩余的instance参数按照当N< BN或BN < N < BN*GN 时的情景分别设置grid和block的数目。
CN202311748653.3A 2023-12-19 2023-12-19 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 Active CN117422047B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311748653.3A CN117422047B (zh) 2023-12-19 2023-12-19 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311748653.3A CN117422047B (zh) 2023-12-19 2023-12-19 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法

Publications (2)

Publication Number Publication Date
CN117422047A CN117422047A (zh) 2024-01-19
CN117422047B true CN117422047B (zh) 2024-03-15

Family

ID=89528855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311748653.3A Active CN117422047B (zh) 2023-12-19 2023-12-19 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法

Country Status (1)

Country Link
CN (1) CN117422047B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012221389A (ja) * 2011-04-13 2012-11-12 Fuji Electric Co Ltd 回路シミュレーション方法および回路シミュレーション装置
CN103034750A (zh) * 2011-09-30 2013-04-10 济南概伦电子科技有限公司 可重复电路仿真的方法和系统
CN105205191A (zh) * 2014-06-12 2015-12-30 济南概伦电子科技有限公司 多速率并行电路仿真
US9348957B1 (en) * 2010-10-01 2016-05-24 ProPlus Design Solutions, Inc. Repetitive circuit simulation
CN114741204A (zh) * 2022-05-10 2022-07-12 吉林大学 一种仿真模型的任务分解与并行求解的方法
CN116151073A (zh) * 2023-02-16 2023-05-23 厦门大学 一种基于混合有限元法的集成电路仿真方法及其装置
CN116384312A (zh) * 2023-04-20 2023-07-04 山东大学 一种基于并行异构计算的电路良率分析方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9348957B1 (en) * 2010-10-01 2016-05-24 ProPlus Design Solutions, Inc. Repetitive circuit simulation
JP2012221389A (ja) * 2011-04-13 2012-11-12 Fuji Electric Co Ltd 回路シミュレーション方法および回路シミュレーション装置
CN103034750A (zh) * 2011-09-30 2013-04-10 济南概伦电子科技有限公司 可重复电路仿真的方法和系统
CN105205191A (zh) * 2014-06-12 2015-12-30 济南概伦电子科技有限公司 多速率并行电路仿真
CN114741204A (zh) * 2022-05-10 2022-07-12 吉林大学 一种仿真模型的任务分解与并行求解的方法
CN116151073A (zh) * 2023-02-16 2023-05-23 厦门大学 一种基于混合有限元法的集成电路仿真方法及其装置
CN116384312A (zh) * 2023-04-20 2023-07-04 山东大学 一种基于并行异构计算的电路良率分析方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Analog RFmodel development with Verilog-A;Troyanovsky等;《RadioFrequency integrated Circuits(RFIC)Symposium》;20051231;全文 *
基于Verilog-A的模拟电路行为模型及仿真;朱樟明, 张春朋, 杨银堂, 付永朝;电子器件;20040115(04);全文 *
基于Verilog-A的流水线型ADC数字校正技术仿真平台;宫月红;张少君;罗敏;王明雨;刘冰冰;;微处理机;20180415(02);全文 *
基于单片机的SM3算法优化及Verilog模型验证;曾小波;唐忠彪;焦歆;;电子科技;20150215(02);全文 *

Also Published As

Publication number Publication date
CN117422047A (zh) 2024-01-19

Similar Documents

Publication Publication Date Title
US8677334B2 (en) Parallelization method, system and program
CN109143952B (zh) 可编程逻辑控制器编程语言转换系统
US9377998B2 (en) Code generation for control design
JP4931978B2 (ja) 並列化処理方法、システム、及びプログラム
CN110149800B (zh) 一种用于处理与源程序的源代码相关联的抽象语法树的装置
US7194726B2 (en) Method for automatically decomposing dynamic system models into submodels
CN109032056B (zh) 可编程逻辑控制器编程语言转换方法
Sottile et al. Semi-automatic extraction of software skeletons for benchmarking large-scale parallel applications
CN112765031A (zh) 一种群智化漏洞挖掘任务的分解方法
US20110209129A1 (en) Parallelization method, system and program
CN110347588B (zh) 软件验证方法、装置、计算机设备和存储介质
CN114896755A (zh) 一种支持模型属性量化评估的指标验证技术
CN117422047B (zh) 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法
Sottile et al. Static analysis techniques for semiautomatic synthesis of message passing software skeletons
CN110210046B (zh) 应用程序及专用指令集处理器一体化敏捷设计方法
CN116893960A (zh) 代码质量检测方法、装置、计算机设备和存储介质
CN112783736B (zh) 软件组件的运行体时间监测方法、装置及电子设备
Balbo et al. On the computation of performance characteristics of concurrent programs using GSPNs
US20170109457A1 (en) Verification of system assertions in simulation
Bataineh Verifying worst-case execution time of timed automata models with cyclic behaviour
CN114153750B (zh) 代码检查方法及装置、代码编写方法、电子设备
US20240201965A1 (en) Method for generating source code
Sharma et al. Study and Estimation of Existing Software Quality Models to Predict the Reliability of Component-Based Software
CN117313373A (zh) Emt仿真方法、装置、上位机及emt仿真系统
CN117453222A (zh) 一种多参数公式编译方法及其编译器

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