CN112989685B - 具有保密功能的集成电路云平台电磁仿真并行方法及装置 - Google Patents

具有保密功能的集成电路云平台电磁仿真并行方法及装置 Download PDF

Info

Publication number
CN112989685B
CN112989685B CN202110459226.8A CN202110459226A CN112989685B CN 112989685 B CN112989685 B CN 112989685B CN 202110459226 A CN202110459226 A CN 202110459226A CN 112989685 B CN112989685 B CN 112989685B
Authority
CN
China
Prior art keywords
integrated circuit
calculation
field
computing
circuit model
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
CN202110459226.8A
Other languages
English (en)
Other versions
CN112989685A (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 Wisechip Simulation Technology Co Ltd
Original Assignee
Beijing Wisechip Simulation 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 Wisechip Simulation Technology Co Ltd filed Critical Beijing Wisechip Simulation Technology Co Ltd
Priority to CN202110459226.8A priority Critical patent/CN112989685B/zh
Publication of CN112989685A publication Critical patent/CN112989685A/zh
Application granted granted Critical
Publication of CN112989685B publication Critical patent/CN112989685B/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/20Design optimisation, verification or simulation
    • G06F30/25Design optimisation, verification or simulation using particle-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level

Landscapes

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

Abstract

本发明提供了一种具有保密功能的集成电路云平台电磁仿真并行方法及装置,包括:将整个集成电路云平台电磁仿真分为两部分:云计算平台和客户端;客户端将需要计算的集成电路模型信息、计算条件提取出来,形成并行粗颗粒发送到云平台;在云平台建立管理进程,通过管理进程并行发起多个独立的计算进程,每个计算进程执行一个计算粗颗粒,各计算进程和管理进程独立异步建立通信。本发明只将客户端提取的并行粗颗粒发送到云平台,而不是将整个集成电路模型的所有信息发送到云平台,从而避免了将集成电路模型通过互联网泄露出去,同时又可以通过云平台对集成电路模型中需要计算的部分进行电磁仿真,具有保密性好、仿真计算成本低和可并行仿真等优点。

Description

具有保密功能的集成电路云平台电磁仿真并行方法及装置
技术领域
本发明涉及集成电路电磁仿真技术领域,具体涉及一种具有保密功能的集成电路云平台电磁仿真并行方法及装置。
背景技术
针对复杂的集成电路模型进行电磁仿真时,传输线法等简单的计算方法不再适用,需要采用数值计算方法以场的方式进行较为精确的模拟,这就需要将集成电路模型所在的复杂的计算场域进行离散,形成离散单元,以离散单元为基础对场进行求解。总体上,离散的单元尺寸越小,仿真结果越精确,但这导致计算的复杂度增加,因此在单元数量和计算精度上需要达到一种最优。另一方面,针对多尺度结构的复杂集成电路进行网格剖分时,不可避免地会采用非结构网格进行剖分,由于被剖分的集成电路模型具有非常强的多尺度结构,网格剖分时集成电路版图多边形顶点插入的顺序的随机性、网格剖分过程中新节点插入坐标产生的误差等都足以改变多尺度结构的复杂集成电路剖分的网格,因此,不同时间、不同计算进程对同一个集成电路模型剖分出的网格都是不一样的。
现有的集成电路电磁仿真并行计算方法大多是将每个最基本的计算任务作为完全独立的计算单元,不同的计算任务之间无任何通信或联系,导致同一集成电路模型不同计算任务使用不同的剖分网格进行计算,从而为集成电路模型的电磁仿真带来随机误差;此外,现有的集成电路电磁仿真并行计算方法大多一次性发起多个对等的计算进程,每个计算进程都完成相同类型的计算粗颗粒,不同计算进程之间需要进行通信,相互之间采用某种方式约定方式判断计算粗颗粒是否已经被某个计算进程处理,避免重复计算,这将大大降低并行计算效率。在研究同一集成电路模型的频率响应曲线、电压-电流响应曲线等问题时,针对不同的计算点采用不同的网格剖分,会因为不同网格带来的随机误差导致计算的响应曲线出现抖动。因此,在采用并行计算方法批量计算大规模集成电路电磁仿真提高计算速度的同时,还需要确保不同计算任务对应的相同的集成电路模型使用的是同样的剖分网格,这样可以消除由于不同计算任务对同一集成电路模型进行网格剖分产生的网格差异带来的随机误差,从而避免集成电路的电磁响应曲线出现抖动。
针对上述问题,发明人提出了一种基于管理进程的集成电路仿真粗颗粒并行方法及装置,可以确保处理同一集成电路模型的不同进程使用相同的网格进行仿真计算,解决了因为不同网格带来的随机误差导致计算的响应曲线出现抖动;还能避免不同进程之间因为通信而带来的计算进程间的等待,提高集成电路仿真并行计算效率。
同时,由于目前网络技术越来越成熟,很多芯片设计客户都不希望自己设计的集成电路模型通过互联网泄露出去,因此部分芯片设计客户选择自己搭建并行计算环境,将所有的仿真均在局域网内并行计算。但是搭建运算能力强的并行计算环境需要较大的建设成本,且需要专人维护,因此,亟需设计既能保证设计的集成电路模型不泄露出去,又能通过云计算的方式低成本、快速进行仿真的方法。
发明内容
针对现有技术存在的上述不足,本发明的目的在于:提供一种具有保密功能的集成电路云平台电磁仿真并行方法及装置,建立管理进程,用于对各个并行独立的计算进程进行管理及仿真计算,各个计算进程分别和管理进程通信连接,各个计算进程之间不传递任何消息;同时,采用管理软件针对需要云平台进行计算的计算进程进行筛选,管理软件只将筛选出的计算进程发送到云平台进行计算,而不是将整个集成电路模型的计算进程发送到云平台。这样,就可以避免将集成电路模型通过互联网泄露出去,同时又可以通过云平台对集成电路模型中需要计算的部分进行电磁仿真,具有保密性好、仿真计算成本低和可快速仿真等优点。
一种具有保密功能的集成电路云平台电磁仿真并行方法,将整个集成电路云平台电磁仿真分为两部分:
第一部分为客户端,用于将集成电路模型转换为需要云平台进行计算的并行粗颗粒并发送到云平台;第二部分为云平台,用于完成所有待仿真集成电路模型的粗颗粒并行计算;所述粗颗粒通过以下方法确定:将整个集成电路模型的电磁仿真分割成多个计算颗粒,获取各计算颗粒的加权CPU时间和总CPU时间,依据所述加权CPU时间和所述总CPU时间的占比确定出计算粗颗粒;所述计算颗粒为需要多次重复执行的计算单元;
电磁仿真并行计算方法如下:
在客户端读取所有需要仿真的集成电路模型,将需要云平台进行计算的集成电路模型信息、计算条件提取出来,形成并行粗颗粒发送到云平台;
在云平台建立管理进程,定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储;
通过所述管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信;每个被发起的计算进程根据收到的管理进程的应答信息,执行完成分配的一个计算粗颗粒或结束该计算进程;
计算进程计算完成后,将对应计算进程的计算结果反馈到所述管理进程;当所有需要计算的并行粗颗粒的计算任务都完成时,所述管理进程收集计算结果并将所有计算任务的计算结果整理生成最终计算结果;
将云平台的最终计算结果传送到客户端,由客户端对最终计算结果进行显示。
进一步地,所述将需要云平台进行计算的集成电路模型信息、计算条件提取出来,形成并行粗颗粒,具体包括:
在客户端将所有读取的集成电路模型的信息转化为实际计算的输入参数,删去所有与集成电路电磁仿真无关但对客户来说需要保密的信息,包括:集成电路模型中版图名称、元器件名称、功能、集成电路模型所用材料的名称,以及集成电路的外部电路名称;
依据实际计算的输入参数,划分出每个待仿真的集成电路模型的电磁仿真中多次重复执行的计算单元作为计算颗粒,将各计算颗粒的加权CPU时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总CPU时间,将所述累加和之中的每个计算颗粒作为一个并行粗颗粒;
所述计算颗粒的加权CPU时间的计算公式为:T weight,i N task,i *T i 式中:T weight,i 为第i个计算颗粒的加权CPU时间,T i 为第i个计算颗粒单次计算的CPU时间,N task,i 为第i个计算颗粒执行的计算任务数;
整个计算过程的总CPU时间的计算公式为:
Figure DEST_PATH_IMAGE001
其中,T为整个计算过程的总CPU时间,m为整个计算程序被划分的计算颗粒数,T weight,i 为第i个计算颗粒的加权CPU时间。
进一步地,所述定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储,具体包括:
针对所有的集成电路模型对应的并行粗颗粒,定义对象M,所述对象M包括并行粗颗粒存储字段、并行粗颗粒计算类型存储字段及所述并行粗颗粒对应的剖分的网格数据文件路径存储字段、并行粗颗粒计算条件存储字段、并行粗颗粒计算状态存储字段和进程的消息内容存储字段;
所述集成电路模型对应的并行粗颗粒存储字段记为Data,该字段存储集成电路模型的与电磁仿真计算相关的所有信息,包括定义集成电路模型的层坐标信息、集成电路各层的版图坐标信息、集成电路各层的介质参数信息、集成电路各层的连接关系以及集成电路的外部电路;
所述集成电路模型对应的并行粗颗粒类型存储字段记为Type,该字段存储所述集成电路模型的仿真类型和集成电路模型的规模;所述集成电路模型的仿真类型包括:多层PCB版图模型、IC封装模型、多层尺度更小的芯片设计模型,以及多个集成电路模型的联合仿真;所述集成电路模型的规模包括:层数在4层以下的小规模集成电路模型、层数在4层以上20层以下的中等规模集成电路模型以及层数在20层以上的大规模集成电路模型;
所述集成电路模型对应的并行粗颗粒对应的剖分的网格数据文件路径存储字段记为Path;
所述集成电路模型对应的并行粗颗粒计算条件存储字段记为Net,该字段存储不同集成电路模型的计算参数,包括:集成电路的直流压降分析和集成电路的电热耦合分析的端口与端口初始温度信息、集成电路电源完整性分析初始条件与仿真频率信息、集成电路信号完整性分析初始条件与仿真频率信息、集成电路电源完整性与信号完整性优化指标与仿真频率信息、集成电路的电磁干扰和电磁兼容分析的仿真频率与仿真端口信息、集成电路的等效电路参数提取的待分析端口信息与集成电路的IBIS模型提取的待分析端口信息;
所述集成电路模型对应的并行粗颗粒计算状态存储字段记为State,该字段存储集成电路模型对应的并行粗颗粒的计算状态,包括以下5种计算状态:未计算且未生成网格,可用C0_M0表示;未计算且正在生成网格,可用C0_M1表示;未计算且生成网格完毕,可用C0_M表示;正在计算且生成网格完毕,可用C1_M表示;完成计算,可用C_M表示;
所述进程的消息内容存储字段记为Message,该字段存储管理进程与计算进程之间发送的消息,发送的消息包括:查询指令,可用Inquire表示;结果更新指令,可用Update表示;进入网格生成指令,可用P_Y表示;不生成网格而是直接读取网格进行计算指令,可用P_N表示;关闭进程指令,可用P_NN表示;
所述针对所有的集成电路模型定义的对象M可以用M[Data][Type][Path][Net][State] [Message]完整表示,所述对象M泛指存储介质中的内存区,可以是连续的或者非连续的,可以是远程数据库记录或者是一个字符串,也可以是json,xml,ini文件。
进一步地,所述通过管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信,具体包括:
S101:建立一个管理进程MK,如果建立成功,进入步骤S102,如果建立失败,进入步骤S109;
S102:定义对象M[Data][Type][Path][Net][State][Message],定义对象M的元素Mi为与并行粗颗粒对应的对象M字段Data、Type、Path、Net、State、Message的具体实例;将集成电路模型对应的并行粗颗粒存入对象M的[Data];归类集成电路模型对应的并行粗颗粒的类型,将其存入对象M的[Type];将所述集成电路模型对应的并行粗颗粒对应的生产剖分的网格数据文件路径存入对象M的[Path]中;将集成电路模型对应的并行粗颗粒的计算条件存入对象M中的[Net];初始化对象M的字段State= C0_M0;初始化对象M的Message为空;初始化进程号Ki=1;
S103:管理进程MK建立第Ki个计算进程,如果第Ki个计算进程建立失败,暂停时间T pause,进入步骤S103;如果第Ki个计算进程建立成功,将第Ki个计算进程置于挂起状态;Ki=Ki+1, 如果Ki=允许创建的最大计算进程数,进入步骤S104,否则进入步骤S103;
S104:管理进程MK进入HTTP网络服务应答状态,查询所有计算进程的工作状态(包括挂起、就绪、退出)及进程池中的计算进程数,如果进程池中的计算进程数小于允许创建的最大计算进程数,进入步骤S103,否则激活所有挂起状态的计算进程进入就绪状态并进入步骤S105;
S105:如果管理进程MK收到任意计算进程Kj(1≤Kj≤允许创建的最大进程数)发的其元素的字段Message=Inquire,进入步骤S106;如果管理进程MK收到任意计算进程Kn(1≤Kn≤允许创建的最大进程数)发的其元素的字段Message=Update,更新该计算进程发送的并行粗颗粒的对象M的计算状态State,进入步骤S104;否则直接进入步骤S104;
S106:管理进程MK查询对象M的所有元素的计算状态,如果对象M的所有元素的字段State=C_M,说明所有计算任务都计算完毕,进入步骤S109;否则进入步骤S107;
S107:如果对象M的某个元素Mi的字段State= C0_M0,更新该元素Mi的字段State=C0_M1,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_Y;如果对象M的某个元素Mi的字段State=C0_M,更新该元素Mi的字段State=C1_M,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_N;如果对象M的某个元素Mi的字段State= C1_M或State= C_M,查询标记指向对象M的字段Net的下一个元素,继续查询属于同一集成电路模型的并行粗颗粒,如果已遍历对象M的字段Net的所有元素,进入步骤S106,否则进入步骤S107;如果对象M的某个元素Mi的字段State= C0_M1,查询标记指向对象M的字段Data的下一个元素,继续查询下一个集成电路模型的并行粗颗粒,如果已遍历对象M的字段Data的所有元素,进入步骤S106,否则进入步骤S107;
S108:进入步骤S104;
S109:向所有计算进程发送P_NN指令,关闭所有计算进程,结束管理进程MK。
进一步地,所述每个被发起的计算进程根据收到的管理进程的应答信息,执行完成分配的一个计算粗颗粒或结束该计算进程,具体包括:
S201:计算进程Ki发送该元素的字段Message=Inquire到管理进程MK;
S202:如果计算进程Ki超过时间T timeout没收到MK返回的消息,进入步骤S204;如果计算进程Ki收到的指令为元素Mi的字段Message=P_NN,该计算进程结束;如果计算进程Ki收到的指令为元素Mi的字段Message=P_N,计算进程Ki基于Path字段定义的路径读取当前集成电路的剖分的网格数据文件,基于Type字段定义的集成电路模型计算条件,进入计算模式,完成Type字段定义的规定计算,计算完毕后更新M的元素Mi的字段State= C_M,发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State= C_M发送到管理进程MK,进入步骤S204;如果计算进程Ki收到的指令为元素Mi的字段Message=P_Y,进入步骤S203;
S203:计算进程Ki针对当前集成电路模型进行网格剖分,如果成功剖分网格,将网格数存储在Path字段定义的网格路径的位置,更新M的元素Mi的字段State=C0_M,发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State=C0_M发送到管理进程MK;如果网格剖分失败, 更新M的元素Mi的字段State= C0_M0, 发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State=C0_M0发送到管理进程MK;
S204:中断时间T pause,进入步骤S201。
一种具有保密功能的集成电路云平台电磁仿真并行装置,包括:
客户端,用于将集成电路模型转换为需要云平台进行计算的并行粗颗粒并发送到云平台;
云平台,用于完成所有待仿真集成电路模型的粗颗粒并行计算;
计算颗粒划分模块,用于将所有待仿真的集成电路模型的电磁仿真分割成多个计算颗粒,获取各计算颗粒的加权CPU时间和总CPU时间,依据所述加权CPU时间和所述总CPU时间的占比确定出计算粗颗粒;所述计算颗粒为需要多次重复执行的计算单元;
集成电路模型提取与保密筛选模块,用于将需要云平台进行计算的并行粗颗粒发送到云平台,而不是将整个集成电路模型的计算进程发送到云平台;
管理进程构建模块,用于在云平台建立管理进程,定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储;
粗颗粒并行计算模块,用于通过所述管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信;每个被发起的计算进程根据收到的管理进程的应答信息,执行完成分配的一个计算粗颗粒或结束该计算进程;
计算结果收集与整理模块,用于计算进程计算完成后,将对应计算进程的计算结果反馈到所述管理进程;当所有需要计算的并行粗颗粒的计算任务都完成时,所述管理进程收集计算结果并将所有计算任务的计算结果整理生成最终计算结果;
计算结果传送模块,用于将云平台的最终计算结果传送到客户端;
计算结果显示模块,用于通过客户端对最终计算结果进行显示。
进一步地,所述将需要云平台进行计算的集成电路模型信息、计算条件提取出来,形成并行粗颗粒,具体包括:
在客户端将所有读取的集成电路模型的信息转化为实际计算的输入参数,删去所有与集成电路电磁仿真无关但对客户来说需要保密的信息,包括:集成电路模型中版图名称、元器件名称、功能、集成电路模型所用材料的名称,以及集成电路的外部电路名称;
依据实际计算的输入参数,划分出每个待仿真的集成电路模型的电磁仿真中多次重复执行的计算单元作为计算颗粒,将各计算颗粒的加权CPU时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总CPU时间,将所述累加和之中的每个计算颗粒作为一个并行粗颗粒;
所述计算颗粒的加权CPU时间的计算公式为:
Figure 574169DEST_PATH_IMAGE002
式中:
Figure DEST_PATH_IMAGE003
为第i个计算颗粒的加权CPU时间,
Figure 329766DEST_PATH_IMAGE004
为第i个计算颗粒单次计算的CPU时间,
Figure DEST_PATH_IMAGE005
为第i个计算颗粒执行的计算任务数;
所述整个计算过程的总CPU时间的计算公式为:
Figure 341935DEST_PATH_IMAGE006
其中,T为整个计算过程的总CPU时间,
Figure DEST_PATH_IMAGE007
为整个计算程序被划分的计算颗粒数,
Figure 152765DEST_PATH_IMAGE008
为第i个计算颗粒的加权CPU时间。
进一步地,所述定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储,具体包括:
针对所有的集成电路模型对应的并行粗颗粒,定义对象M,所述对象M包括并行粗颗粒存储字段、并行粗颗粒计算类型存储字段及所述并行粗颗粒对应的剖分的网格数据文件路径存储字段、并行粗颗粒计算条件存储字段、并行粗颗粒计算状态存储字段和进程的消息内容存储字段;
所述集成电路模型对应的并行粗颗粒存储字段记为Data,该字段存储集成电路模型的与电磁仿真计算相关的所有信息,包括定义集成电路模型的层坐标信息、集成电路各层的版图坐标信息、集成电路各层的介质参数信息、集成电路各层的连接关系以及集成电路的外部电路;
所述集成电路模型对应的并行粗颗粒类型存储字段记为Type,该字段存储所述集成电路模型的仿真类型和集成电路模型的规模;所述集成电路模型的仿真类型包括:多层PCB版图模型、IC封装模型、多层尺度更小的芯片设计模型,以及多个集成电路模型的联合仿真;所述集成电路模型的规模包括:层数在4层以下的小规模集成电路模型、层数在4层以上20层以下的中等规模集成电路模型以及层数在20层以上的大规模集成电路模型;
所述集成电路模型对应的并行粗颗粒对应的剖分的网格数据文件路径存储字段记为Path;
所述集成电路模型对应的并行粗颗粒计算条件存储字段记为Net,该字段存储不同集成电路模型的计算参数,包括:集成电路的直流压降分析和集成电路的电热耦合分析的端口与端口初始温度信息、集成电路电源完整性分析初始条件与仿真频率信息、集成电路信号完整性分析初始条件与仿真频率信息、集成电路电源完整性与信号完整性优化指标与仿真频率信息、集成电路的电磁干扰和电磁兼容分析的仿真频率与仿真端口信息、集成电路的等效电路参数提取的待分析端口信息与集成电路的IBIS模型提取的待分析端口信息;
所述集成电路模型对应的并行粗颗粒计算状态存储字段记为State,该字段存储集成电路模型对应的并行粗颗粒的计算状态,包括以下5种计算状态:未计算且未生成网格,可用C0_M0表示;未计算且正在生成网格,可用C0_M1表示;未计算且生成网格完毕,可用C0_M表示;正在计算且生成网格完毕,可用C1_M表示;完成计算,可用C_M表示;
所述进程的消息内容存储字段记为Message,该字段存储管理进程与计算进程之间发送的消息,发送的消息包括:查询指令,可用Inquire表示;结果更新指令,可用Update表示;进入网格生成指令,可用P_Y表示;不生成网格而是直接读取网格进行计算指令,可用P_N表示;关闭进程指令,可用P_NN表示;
所述针对所有的集成电路模型定义的对象M可以用M[Data][Type][Path][Net][State] [Message]完整表示,所述对象M泛指存储介质中的内存区,可以是连续的或者非连续的,可以是远程数据库记录或者是一个字符串,也可以是json,xml,ini文件。
进一步地,所述通过管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信,具体包括:
S101:建立一个管理进程MK,如果建立成功,进入步骤S102,如果建立失败,进入步骤S109;
S102:定义对象M[Data][Type][Path][Net][State][Message],定义对象M的元素Mi为与并行粗颗粒对应的对象M字段Data、Type、Path、Net、State、Message的具体实例;将集成电路模型对应的并行粗颗粒存入对象M的[Data];归类集成电路模型对应的并行粗颗粒的类型,将其存入对象M的[Type];将所述集成电路模型对应的并行粗颗粒对应的生产剖分的网格数据文件路径存入对象M的[Path]中;将集成电路模型对应的并行粗颗粒的计算条件存入对象M中的[Net];初始化对象M的字段State= C0_M0;初始化对象M的Message为空;初始化进程号Ki=1;
S103:管理进程MK建立第Ki个计算进程,如果第Ki个计算进程建立失败,暂停时间T pause,进入步骤S103;如果第Ki个计算进程建立成功,将第Ki个计算进程置于挂起状态;Ki=Ki+1, 如果Ki=允许创建的最大计算进程数,进入步骤S104,否则进入步骤S103;
S104:管理进程MK进入HTTP网络服务应答状态,查询所有计算进程的工作状态(包括挂起、就绪、退出)及进程池中的计算进程数,如果进程池中的计算进程数小于允许创建的最大计算进程数,进入步骤S103,否则激活所有挂起状态的计算进程进入就绪状态并进入步骤S105;
S105:如果管理进程MK收到任意计算进程Kj(1≤Kj≤允许创建的最大进程数)发的其元素的字段Message=Inquire,进入步骤S106;如果管理进程MK收到任意计算进程Kn(1≤Kn≤允许创建的最大进程数)发的其元素的字段Message=Update,更新该计算进程发送的并行粗颗粒的对象M的计算状态State,进入步骤S104;否则直接进入步骤S104;
S106:管理进程MK查询对象M的所有元素的计算状态,如果对象M的所有元素的字段State=C_M,说明所有计算任务都计算完毕,进入步骤S109;否则进入步骤S107;
S107:如果对象M的某个元素Mi的字段State= C0_M0,更新该元素Mi的字段State=C0_M1,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_Y;如果对象M的某个元素Mi的字段State=C0_M,更新该元素Mi的字段State=C1_M,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_N;如果对象M的某个元素Mi的字段State= C1_M或State= C_M,查询标记指向对象M的字段Net的下一个元素,继续查询属于同一集成电路模型的并行粗颗粒,如果已遍历对象M的字段Net的所有元素,进入步骤S106,否则进入步骤S107;如果对象M的某个元素Mi的字段State= C0_M1,查询标记指向对象M的字段Data的下一个元素,继续查询下一个集成电路模型的并行粗颗粒,如果已遍历对象M的字段Data的所有元素,进入步骤S106,否则进入步骤S107;
S108:进入步骤S104;
S109:向所有计算进程发送P_NN指令,关闭所有计算进程,结束管理进程MK。
进一步地,所述每个被发起的计算进程根据收到的管理进程的应答信息,执行完成分配的一个计算粗颗粒或结束该计算进程,具体包括:
S201:计算进程Ki发送该元素的字段Message=Inquire到管理进程MK;
S202:如果计算进程Ki超过时间
Figure DEST_PATH_IMAGE009
没收到MK返回的消息,进入步骤S204;如果计算进程Ki收到的指令为元素Mi的字段Message=P_NN,该计算进程结束;如果计算进程Ki收到的指令为元素Mi的字段Message=P_N,计算进程Ki基于Path字段定义的路径读取当前集成电路的剖分的网格数据文件,基于Type字段定义的集成电路模型计算条件,进入计算模式,完成Type字段定义的规定计算,计算完毕后更新M的元素Mi的字段State= C_M,发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State= C_M发送到管理进程MK,进入步骤S204;如果计算进程Ki收到的指令为元素Mi的字段Message=P_Y,进入步骤S203;
S203:计算进程Ki针对当前集成电路模型进行网格剖分,如果成功剖分网格,将网格数存储在Path字段定义的网格路径的位置,更新M的元素Mi的字段State=C0_M,发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State=C0_M发送到管理进程MK;如果网格剖分失败, 更新M的元素Mi的字段State= C0_M0, 发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State=C0_M0发送到管理进程MK;
步骤S204:中断时间
Figure 64483DEST_PATH_IMAGE010
,进入步骤S201。
相比于现有技术,本发明具有以下优点:
本发明提供了一种具有保密功能的集成电路云平台电磁仿真并行方法及装置,建立管理进程,用于对各个并行独立的计算进程进行管理及仿真计算,各个计算进程分别和管理进程通信连接,各个计算进程之间不传递任何消息;同时,采用管理软件针对需要云平台进行计算的计算进程进行筛选,管理软件只将筛选出的计算进程发送到云平台进行计算,而不是将整个集成电路模型的计算进程发送到云平台。这样,就可以避免将集成电路模型通过互联网泄露出去,同时又可以通过云平台对集成电路模型中需要计算的部分进行电磁仿真,具有保密性好、仿真计算成本低和可快速仿真等优点。
附图说明
图1为实施例一中具有保密功能的集成电路云平台电磁仿真并行方法的流程图;
图2为实施例一中管理进程MK的管理方法流程图;
图3为实施例一中所有计算进程的计算方法流程图;
图4为实施例二中具有保密功能的集成电路云平台电磁仿真并行装置的框图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。
实施例一:
针对现有的“很多芯片设计客户不希望自己设计的集成电路模型通过互联网泄露出去,因此部分芯片设计客户选择自己搭建并行计算环境,将所有的仿真均在局域网内并行计算。但是搭建运算能力强的并行计算环境需要较大的建设成本,且需要专人维护”等问题,本申请公开了一种具有保密功能的集成电路云平台电磁仿真并行方法及装置,建立管理进程,用于对各个并行独立的计算进程进行管理及仿真计算,各个计算进程分别和管理进程通信连接,各个计算进程之间不传递任何消息;同时,采用管理软件针对需要云平台进行计算的计算进程进行筛选,管理软件只将筛选出的计算进程发送到云平台进行计算,而不是将整个集成电路模型的计算进程发送到云平台。
该申请中,客户通过网络提交到云计算平台的不是整个设计的集成电路模型文件,而是通过安装在客户端的集成电路模型提取软件作为管理软件,将需要计算的信息提取出来,然后,管理软件只发送需要计算的信息到云平台而不是整个集成电路模型的文件,待云平台的计算进程按照发送的计算任务完成计算后,再将计算结果发送到客户端,最终由客户端的管理软件对云平台不同计算进程发送来的计算结果进行收集、整理与显示结果。这样,就可以避免将集成电路模型通过互联网泄露出去,同时又可以通过云平台对集成电路模型中需要计算的部分进行电磁仿真,具有保密性好、仿真计算成本低和可快速仿真等优点。
下面以具体集成电路模型的电磁仿真为实例来说明本申请的并行计算方法,表1为某个电源完整性不达标的集成电路模型,设计工程师基于该不达标的集成电路模型前期的定义的阻抗网络端口的仿真结果,在原来不达标的集成电路模型的基础上进行了不同的修改,给出了10个可能的整改方案,形成了10个新的集成电路模型。
表1 集成电路模型整改方案分析列表
模型名称 模型存储(Data) 模型类型(Type) 模型路径(Path) 计算条件(Net)
IC_design1 IC_design1.dat 多层PCB版图模型;中等规模 Path; Path\ IC_design1 电源完整性分析,频率范围:10 kHz~10 MHz
IC_design2 IC_design2.dat 多层PCB版图模型;中等规模 Path; Path\ IC_design2 电源完整性分析,频率范围:10 kHz~10 MHz
IC_design3 IC_design3.dat 多层PCB版图模型;中等规模 Path; Path\ IC_design3 电源完整性分析,频率范围:10 kHz~10 MHz
IC_design4 IC_design4.dat 多层PCB版图模型;中等规模 Path; Path\ IC_design4 电源完整性分析,频率范围:10 kHz~10 MHz
IC_design5 IC_design5.dat 多层PCB版图模型;中等规模 Path; Path\ IC_design5 电源完整性分析,频率范围:10 kHz~10 MHz
IC_design6 IC_design6.dat 多层PCB版图模型;中等规模 Path; Path\ IC_design6 电源完整性分析,频率范围:10 kHz~10 MHz
IC_design7 IC_design7.dat 多层PCB版图模型;中等规模 Path; Path\ IC_design7 电源完整性分析,频率范围:10 kHz~10 MHz
IC_design8 IC_design8.dat 多层PCB版图模型;中等规模 Path; Path\ IC_design8 电源完整性分析,频率范围:10 kHz~10 MHz
IC_design9 IC_design9.dat 多层PCB版图模型;中等规模 Path; Path\ IC_design9 电源完整性分析,频率范围:10 kHz~10 MHz
IC_design10 IC_design10.dat 多层PCB版图模型;中等规模 Path; Path\ IC_design10 电源完整性分析,频率范围:10 kHz~10 MHz
从上表可以看出,10个集成电路模型的模型类型和计算条件都相同,针对每个集成电路模型的频率范围,拟采用对数刻度进行采样,每10倍频采样20个频率点,由此可以看出每个集成电路模型需要计算58个频率点,则整个计算的对象M的Data字段有10个,Net字段有58个。
参照图1~图3,第一步,客户在客户端提交集成电路模型,客户端可以是电脑、PC等智能设备,由客户端上安装的程序将集成电路模型转换为需要云平台进行计算的并行粗颗粒,然后发送到云平台,从而把集成电路模型的相关信息去掉,起到保密的作用。在客户端将所有读取的集成电路模型的信息转化为实际计算的输入参数,删去所有与集成电路电磁仿真无关但对客户来说需要保密的信息,包括:集成电路模型中版图名称、元器件名称、功能、集成电路模型所用材料的名称,以及集成电路的外部电路名称;依据实际计算的输入参数,划分出所有集成电路模型的整改方案分析中多次重复执行的计算单元作为计算颗粒,将各计算颗粒的加权CPU时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总CPU时间,将所述累加和之中的每个计算颗粒作为一个并行粗颗粒;
所述计算颗粒的加权CPU时间的计算公式为:
Figure DEST_PATH_IMAGE011
式中:
Figure 804031DEST_PATH_IMAGE012
为第i个计算颗粒的加权CPU时间,
Figure 791578DEST_PATH_IMAGE013
为第i个计算颗粒单次计算的CPU时间,
Figure 78203DEST_PATH_IMAGE014
为第i个计算颗粒执行的计算任务数;
所述整个计算过程的总CPU时间的计算公式为:
Figure DEST_PATH_IMAGE015
其中,T为整个计算过程的总CPU时间,
Figure 314535DEST_PATH_IMAGE016
为整个计算程序被划分的计算颗粒数,
Figure DEST_PATH_IMAGE017
为第i个计算颗粒的加权CPU时间。
依据以上原则,将整个集成电路模型的整改方案分析划分为580个并行粗颗粒,每个并行粗颗粒对应一个集成电路的一个频率点的电磁响应分析。然后,将需要云平台进行计算的并行粗颗粒发送到云平台,而不是将整个集成电路模型的计算进程发送到云平台。
第二步,在云平台建立管理进程,定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储:
针对所有的集成电路模型,定义对象M,所述对象M包含以下字段:
集成电路模型存储字段,记为Data,该字段存储集成电路模型的所有信息,包括定义集成电路模型的层信息、集成电路各层的版图信息、集成电路各层的介质信息、集成电路各层的连接关系以及集成电路的外部电路;该字段存储于表1的Data字段对应的数据文件中,字段Data包含10个元素;
集成电路模型类型存储字段,记为Type,该字段存储所述集成电路模型的仿真类型和集成电路模型的规模;所述集成电路模型的仿真类型包括:多层PCB版图模型、IC封装模型、多层尺度更小的芯片设计模型,以及多个集成电路模型的联合仿真;所述集成电路模型的规模包括:层数在4层以下的小规模集成电路模型、层数在4层以上20层以下的中等规模集成电路模型以及层数在20层以上的大规模集成电路模型;如表1所示,所有对象的字段Type均为“多层PCB版图模型;中等规模”;
集成电路模型文件路径存储字段及所述集成电路模型对应的剖分的网格数据文件路径存储字段,记为Path;所有对象的字段Path;如表1所示;
集成电路模型计算条件存储字段,记为Net,该字段存储不同集成电路模型的计算参数,包括:集成电路的直流压降分析和集成电路的电热耦合分析的端口与端口初始温度信息、集成电路电源完整性分析初始条件与仿真频率信息、集成电路信号完整性分析初始条件与仿真频率信息、集成电路电源完整性与信号完整性优化指标与仿真频率信息、集成电路的电磁干扰和电磁兼容分析的仿真频率参数与仿真端口信息、集成电路的等效电路参数提取的待分析端口信息与集成电路的IBIS模型提取的待分析端口信息;如表1所示,所有对象的字段Net均为“电源完整性分析,频率范围:10 kHz~10 MHz”,在此基础上,定义仿真的频率点数为58个,因此字段Net包含58个频率点的元素;
集成电路模型计算状态存储字段,记为State,该字段存储集成电路模型计算状态,包括以下5种计算状态:未计算且未生成网格,可用C0_M0表示;未计算且正在生成网格,可用C0_M1表示;未计算且生成网格完毕,可用C0_M表示;正在计算且生成网格完毕,可用C1_M表示;完成计算,可用C_M表示;
进程的消息内容存储字段,记为Message,该字段存储管理进程与计算进程之间发送的消息,发送的消息包括:查询指令,可用Inquire表示;结果更新指令,可用Update表示;进入网格生成指令,可用P_Y表示;不生成网格而是直接读取网格进行计算指令,可用P_N表示;关闭进程指令,可用P_NN表示;
所述针对所有的集成电路模型定义的对象M可以用M[Data][Type][Path][Net][State] [Message]完整表示,所述对象M泛指存储介质中的内存区,可以是连续的,也可以是非连续的,可以是远程数据库记录也可以是一个字符串,也可能是常用的json,xml,ini文件。
第三步,通过所述管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信,包括以下步骤:
步骤S101:建立一个管理进程MK,如果建立成功,进入步骤S102,如果建立失败,进入步骤S109;
步骤S102:定义对象M[Data][Type][Path][Net][State][Message],定义对象M的元素Mi为与并行粗颗粒对应的对象M字段Data、Type、Path、Net、State、Message的具体实例;将集成电路模型对应的并行粗颗粒存入对象M的[Data];归类集成电路模型对应的并行粗颗粒的类型,将其存入对象M的[Type];将所述集成电路模型对应的并行粗颗粒对应的生产剖分的网格数据文件路径存入对象M的[Path]中;将集成电路模型对应的并行粗颗粒的计算条件存入对象M中的[Net];初始化对象M的字段State= C0_M0;初始化对象M的Message为空;初始化进程号Ki=1;
步骤S103:管理进程MK建立第Ki个计算进程,如果第Ki个计算进程建立失败,暂停时间T pause,进入步骤S103;如果第Ki个计算进程建立成功,将第Ki个计算进程置于挂起状态;Ki=Ki+1, 如果Ki=允许创建的最大计算进程数,进入步骤S104,否则进入步骤S103;
步骤S104:管理进程MK进入HTTP网络服务应答状态,查询所有计算进程的工作状态(包括挂起、就绪、退出)及进程池中的计算进程数,如果进程池中的计算进程数小于允许创建的最大计算进程数,进入步骤S103,否则激活所有挂起状态的计算进程进入就绪状态并进入步骤S105;
步骤S105:如果管理进程MK收到任意计算进程Kj(1≤Kj≤允许创建的最大进程数)发的其元素的字段Message=Inquire,进入步骤S106;如果管理进程MK收到任意计算进程Kn(1≤Kn≤允许创建的最大进程数)发的其元素的字段Message=Update,更新该计算进程发送的并行粗颗粒的对象M的计算状态State,进入步骤S104;否则直接进入步骤S104;
步骤S106:管理进程MK查询对象M的所有元素的计算状态,如果对象M的所有元素的字段State=C_M,说明所有计算任务都计算完毕,进入步骤S109;否则进入步骤S107;
步骤S107:如果对象M的某个元素Mi的字段State= C0_M0,更新该元素Mi的字段State= C0_M1,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_Y;如果对象M的某个元素Mi的字段State=C0_M,更新该元素Mi的字段State=C1_M,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_N;如果对象M的某个元素Mi的字段State=C1_M或State= C_M,查询标记指向对象M的字段Net的下一个元素,继续查询属于同一集成电路模型的并行粗颗粒,如果已遍历对象M的字段Net的所有元素,进入步骤S106,否则进入步骤S107;如果对象M的某个元素Mi的字段State= C0_M1,查询标记指向对象M的字段Data的下一个元素,继续查询下一个集成电路模型的并行粗颗粒,如果已遍历对象M的字段Data的所有元素,进入步骤S106,否则进入步骤S107;
步骤S108:进入步骤104;
步骤S109:向所有计算进程发送P_NN指令,关闭所有计算进程,结束管理进程MK。
第四步,每个被发起的计算进程与管理进程进行通信,根据收到的管理进程的应答信息,执行完成分配的一个计算粗颗粒或结束该计算进程,包括以下步骤:
步骤S201:计算进程Ki发送该元素的字段Message=Inquire到管理进程MK;
步骤S202:如果计算进程Ki超过时间
Figure DEST_PATH_IMAGE019
没收到MK返回的消息,进入步骤S204;如果计算进程Ki收到的指令为元素Mi的字段Message=P_NN,该计算进程结束;如果计算进程Ki收到的指令为元素Mi的字段Message=P_N,计算进程Ki基于Path字段定义的路径读取当前集成电路的剖分的网格数据文件,基于Type字段定义的集成电路模型计算条件,进入计算模式,完成Type字段定义的规定计算,计算完毕后更新M的元素Mi的字段State= C_M,发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State= C_M发送到管理进程MK,进入步骤S204;如果计算进程Ki收到的指令为元素Mi的字段Message=P_Y,进入步骤S203;
步骤S203:计算进程Ki针对当前集成电路模型进行网格剖分,如果成功剖分网格,将网格数存储在Path字段定义的网格路径的位置,更新M的元素Mi的字段State=C0_M,发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State=C0_M发送到管理进程MK;如果网格剖分失败, 更新M的元素Mi的字段State= C0_M0, 发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State=C0_M0发送到管理进程MK;
步骤S204:中断时间
Figure 785837DEST_PATH_IMAGE020
,进入步骤201。
第五步,计算进程计算完成后,将对应计算进程的计算结果反馈到所述管理进程;当所有需要计算的并行粗颗粒的计算任务都完成时,所述管理进程收集计算结果并将所有计算任务的计算结果整理生成最终计算结果;
第六步,将云平台的最终计算结果传送到客户端,由客户端对最终计算结果进行显示。
上述具有保密功能的集成电路云平台电磁仿真并行方法,建立管理进程,用于对各个并行独立的计算进程进行管理及仿真计算,各个计算进程分别和管理进程通信连接,各个计算进程之间不传递任何消息;同时,采用管理软件针对需要云平台进行计算的计算进程进行筛选,管理软件只将筛选出的计算进程发送到云平台进行计算,而不是将整个集成电路模型的计算进程发送到云平台。这样,就可以避免将集成电路模型通过互联网泄露出去,同时又可以通过云平台对集成电路模型中需要计算的部分进行电磁仿真,具有保密性好、仿真计算成本低和可快速仿真等优点。
上述具有保密功能的集成电路云平台电磁仿真并行方法,针对并行粗颗粒的计算方法为:将各计算颗粒的加权CPU时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总CPU时间,将所述累加和之中的每个计算颗粒作为一个并行粗颗粒。
具体的,若将集成电路模型的仿真计算划分为c1、c2、c3共3个计算颗粒,3个计算颗粒可执行整个计算过程的计算任务;若c1执行500个计算任务,c2执行200个计算任务,c3执行5个计算任务;那么共705个计算任务构成整个计算过程,上述整个计算过程只需c1、c2、c3共3个计算颗粒来实现。其中执行整个计算过程依次需要c1、c2、c3这3个计算颗粒执行。
根据各计算颗粒计算所得的加权CPU时间进行大小排序,若c1加权CPU时间为1s,c2加权CPU时间为100s,c3加权CPU时间为20s,则最终排序结果为c2>c3>c1;3个计算颗粒的加权CPU时间从大到小依次相加,即T(c2)+T(c3)+…直到时间和大于总CPU时间的90%为止;如果T(c2)+T(c3)>90%,那就是c2、c3分别作为一个并行粗颗粒;如果T(c2)>90%总CPU时间,那么c2为并行粗颗粒。
这样,采用管理进程对各个并行独立的计算进程进行管理及仿真计算,极大程度减少进程之间的通信及因为同步而产生的等待时间,同时,基于单个管理进程MK建立关于集成电路模型的消息异步传递机制,可以保证处理同一集成电路模型的不同进程使用相同的网格进行仿真计算,解决了因为不同网格带来的随机误差导致计算的响应曲线出现抖动。进一步地,采用管理软件针对需要云平台进行计算的计算进程进行筛选,管理软件只将筛选出的计算进程发送到云平台进行计算,而不是将整个集成电路模型的计算进程发送到云平台。这样,就可以避免将集成电路模型通过互联网泄露出去,同时又可以通过云平台对集成电路模型中需要计算的部分进行电磁仿真,具有保密性好、仿真计算成本低和可快速仿真等优点。
实施例二:
参照图4,一种具有保密功能的集成电路云平台电磁仿真并行装置,包括:
客户端,客户端可以是电脑、PC、手机等智能设备,客户端上安装的程序将集成电路模型转换为需要云平台进行计算的并行粗颗粒,然后发送到云平台,从而把集成电路模型的相关信息去掉,起到保密的作用;
云平台,云平台可以是部署在云端的大规模并行计算机,用于完成所有待仿真集成电路模型的粗颗粒并行计算;
计算颗粒划分模块,用于将所有待仿真的集成电路模型的电磁仿真分割成多个计算颗粒,获取各计算颗粒的加权CPU时间和总CPU时间,依据所述加权CPU时间和所述总CPU时间的占比确定出计算粗颗粒;所述计算颗粒为需要多次重复执行的计算单元;
集成电路模型提取与保密筛选模块,用于将需要云平台进行计算的并行粗颗粒发送到云平台,而不是将整个集成电路模型的计算进程发送到云平台;
管理进程构建模块,用于在云平台建立管理进程,定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储;
粗颗粒并行计算模块,用于通过所述管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信;每个被发起的计算进程根据收到的管理进程的应答信息,执行完成分配的一个计算粗颗粒或结束该计算进程;
计算结果收集与整理模块,用于计算进程计算完成后,将对应计算进程的计算结果反馈到所述管理进程;当所有需要计算的并行粗颗粒的计算任务都完成时,所述管理进程收集计算结果并将所有计算任务的计算结果整理生成最终计算结果;
计算结果传送模块,用于将云平台的最终计算结果传送到客户端;
计算结果显示模块,用于通过客户端对最终计算结果进行显示。
具体地,将所述管理进程定义为管理进程MK,其中,K表示管理进程通信管理的各个计算进程,对象M泛指存储介质中的内存区,可以是连续的,也可以是非连续的,可以是远程数据库记录也可以是一个字符串,也可能是常用的json,xml,ini等文件。对象M包括数据区[MTYPE]、数据区[MName]、数据区[NET]、数据区[STATE]和数据区[Data];
其中,数据区[MTYPE]表示集成电路模型类型存储字段,这个集成电路模型类型,如多层PCB版图模型,IC封装模型,多层尺度更小的芯片设计模型,或者是多个模型的联合仿真,也可以包括集成电路模型的规模信息。
数据区[MName]表示集成电路模型文件路径存储字段及网格文件路径存储字段。
数据区[NET]表示计算条件存储字段,计算条件存储字段主要存储不同集成电路模型的计算参数,包括:如集成电路的直流压降分析和集成电路的电热耦合分析的端口参数、集成电路的电磁干扰和电磁兼容分析的仿真频率参数与仿真端口参数、集成电路的等效电路参数提取的端口参数与端口电压参数等。
数据区[STATE]表示状态存储字段,数据区[STATE]包括五个存储状态,分别为未计算且未生成网格、未计算且正在生成网格、生成网格完毕且未计算、生成网格完毕且正在计算和计算完毕;初始化的对象M中的数据区[STATE]为未计算且未生成网格,初始化的对象M中的数据区[Data]为0。
数据区[Data]表示消息内容存储字段,这个消息内容为管理进程与计算进程之间发送的消息,发送的消息包括:进入网格生成指令,可用P_Y表示;不生成网格而是直接读取网格进行计算指令,可用P_N表示;关闭进程指令,可用P_NN表示。
上述具有保密功能的集成电路云平台电磁仿真并行装置,建立管理进程,用于对各个并行独立的计算进程进行管理及仿真计算,各个计算进程分别和管理进程通信连接,各个计算进程之间不传递任何消息;同时,采用管理软件针对需要云平台进行计算的计算进程进行筛选,管理软件只将筛选出的计算进程发送到云平台进行计算,而不是将整个集成电路模型的计算进程发送到云平台。这样,就可以避免将集成电路模型通过互联网泄露出去,同时又可以通过云平台对集成电路模型中需要计算的部分进行电磁仿真,具有保密性好、仿真计算成本低和可快速仿真等优点。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的保护范围当中。

Claims (6)

1.一种具有保密功能的集成电路云平台电磁仿真并行方法,其特征在于,将整个集成电路云平台电磁仿真分为两部分:
第一部分为客户端,用于将集成电路模型转换为需要云平台进行计算的并行粗颗粒并发送到云平台;第二部分为云平台,用于完成所有待仿真集成电路模型的粗颗粒并行计算;所述粗颗粒通过以下方法确定:将整个集成电路模型的电磁仿真分割成多个计算颗粒,获取各计算颗粒的加权CPU时间和总CPU时间,依据所述加权CPU时间和所述总CPU时间的占比确定出计算粗颗粒;所述计算颗粒为需要多次重复执行的计算单元;
电磁仿真并行计算方法如下:
在客户端读取所有需要仿真的集成电路模型,将需要云平台进行计算的集成电路模型信息、计算条件提取出来,形成并行粗颗粒发送到云平台;
在云平台建立管理进程,定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储;
通过所述管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信;每个被发起的计算进程根据收到的管理进程的应答信息,执行完成分配的一个计算粗颗粒或结束该计算进程;
计算进程计算完成后,将对应计算进程的计算结果反馈到所述管理进程;当所有需要计算的并行粗颗粒的计算任务都完成时,所述管理进程收集计算结果并将所有计算任务的计算结果整理生成最终计算结果;
将云平台的最终计算结果传送到客户端,由客户端对最终计算结果进行显示;
其中,所述定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储,具体包括:
针对所有的集成电路模型对应的并行粗颗粒,定义对象M,所述对象M包括并行粗颗粒存储字段、并行粗颗粒计算类型存储字段及所述并行粗颗粒对应的剖分的网格数据文件路径存储字段、并行粗颗粒计算条件存储字段、并行粗颗粒计算状态存储字段和进程的消息内容存储字段;
所述集成电路模型对应的并行粗颗粒存储字段记为Data,该字段存储集成电路模型的与电磁仿真计算相关的所有信息,包括定义集成电路模型的层坐标信息、集成电路各层的版图坐标信息、集成电路各层的介质参数信息、集成电路各层的连接关系以及集成电路的外部电路;
所述集成电路模型对应的并行粗颗粒类型存储字段记为Type,该字段存储所述集成电路模型的仿真类型和集成电路模型的规模;所述集成电路模型的仿真类型包括:多层PCB版图模型、IC封装模型、多层尺度更小的芯片设计模型,以及多个集成电路模型的联合仿真;所述集成电路模型的规模包括:层数在4层以下的小规模集成电路模型、层数在4层以上20层以下的中等规模集成电路模型以及层数在20层以上的大规模集成电路模型;
所述集成电路模型对应的并行粗颗粒对应的剖分的网格数据文件路径存储字段记为Path;
所述集成电路模型对应的并行粗颗粒计算条件存储字段记为Net,该字段存储不同集成电路模型的计算参数,包括:集成电路的直流压降分析和集成电路的电热耦合分析的端口与端口初始温度信息、集成电路电源完整性分析初始条件与仿真频率信息、集成电路信号完整性分析初始条件与仿真频率信息、集成电路电源完整性与信号完整性优化指标与仿真频率信息、集成电路的电磁干扰和电磁兼容分析的仿真频率与仿真端口信息、集成电路的等效电路参数提取的待分析端口信息与集成电路的IBIS模型提取的待分析端口信息;
所述集成电路模型对应的并行粗颗粒计算状态存储字段记为State,该字段存储集成电路模型对应的并行粗颗粒的计算状态,包括以下5种计算状态:未计算且未生成网格,可用C0_M0表示;未计算且正在生成网格,可用C0_M1表示;未计算且生成网格完毕,可用C0_M表示;正在计算且生成网格完毕,可用C1_M表示;完成计算,可用C_M表示;
所述进程的消息内容存储字段记为Message,该字段存储管理进程与计算进程之间发送的消息,发送的消息包括:查询指令,可用Inquire表示;结果更新指令,可用Update表示;进入网格生成指令,可用P_Y表示;不生成网格而是直接读取网格进行计算指令,可用P_N表示;关闭进程指令,可用P_NN表示;
所述针对所有的集成电路模型定义的对象M可以用M[Data][Type][Path][Net][State] [Message]完整表示,所述对象M泛指存储介质中的内存区,可以是连续的或者非连续的,可以是远程数据库记录或者是一个字符串,也可以是json,xml,ini文件;
并且,其中,所述通过管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信,具体包括:
S101:建立一个管理进程MK,如果建立成功,进入步骤S102,如果建立失败,进入步骤S109;
S102:定义对象M[Data][Type][Path][Net][State][Message],定义对象M的元素Mi为与并行粗颗粒对应的对象M字段Data、Type、Path、Net、State、Message的具体实例;将集成电路模型对应的并行粗颗粒存入对象M的[Data];归类集成电路模型对应的并行粗颗粒的类型,将其存入对象M的[Type];将所述集成电路模型对应的并行粗颗粒对应的生产剖分的网格数据文件路径存入对象M的[Path]中;将集成电路模型对应的并行粗颗粒的计算条件存入对象M中的[Net];初始化对象M的字段State= C0_M0;初始化对象M的Message为空;初始化进程号Ki=1;
S103:管理进程MK建立第Ki个计算进程,如果第Ki个计算进程建立失败,暂停时间T pause,进入步骤S103;如果第Ki个计算进程建立成功,将第Ki个计算进程置于挂起状态;Ki=Ki+1, 如果Ki=允许创建的最大计算进程数,进入步骤S104,否则进入步骤S103;
S104:管理进程MK进入HTTP网络服务应答状态,查询所有计算进程的工作状态及进程池中的计算进程数,如果进程池中的计算进程数小于允许创建的最大计算进程数,进入步骤S103,否则激活所有挂起状态的计算进程进入就绪状态并进入步骤S105;其中所述计算进程的工作状态包括挂起、就绪、退出;
S105:如果管理进程MK收到任意计算进程Kj发的其元素的字段Message=Inquire,进入步骤S106,其中1≤Kj≤允许创建的最大进程数;如果管理进程MK收到任意计算进程Kn发的其元素的字段Message=Update,更新该计算进程发送的并行粗颗粒的对象M的计算状态State,进入步骤S104,其中1≤Kn≤允许创建的最大进程数;否则直接进入步骤S104;
S106:管理进程MK查询对象M的所有元素的计算状态,如果对象M的所有元素的字段State=C_M,说明所有计算任务都计算完毕,进入步骤S109;否则进入步骤S107;
S107:如果对象M的某个元素Mi的字段State= C0_M0,更新该元素Mi的字段State= C0_M1,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_Y;如果对象M的某个元素Mi的字段State=C0_M,更新该元素Mi的字段State=C1_M,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_N;如果对象M的某个元素Mi的字段State= C1_M或State= C_M,查询标记指向对象M的字段Net的下一个元素,继续查询属于同一集成电路模型的并行粗颗粒,如果已遍历对象M的字段Net的所有元素,进入步骤S106,否则进入步骤S107;如果对象M的某个元素Mi的字段State= C0_M1,查询标记指向对象M的字段Data的下一个元素,继续查询下一个集成电路模型的并行粗颗粒,如果已遍历对象M的字段Data的所有元素,进入步骤S106,否则进入步骤S107;
S108:进入步骤S104;
S109:向所有计算进程发送P_NN指令,关闭所有计算进程,结束管理进程MK。
2.根据权利要求1所述的具有保密功能的集成电路云平台电磁仿真并行方法,其特征在于,所述将需要云平台进行计算的集成电路模型信息、计算条件提取出来,形成并行粗颗粒,具体包括:
在客户端将所有读取的集成电路模型的信息转化为实际计算的输入参数,删去所有与集成电路电磁仿真无关但对客户来说需要保密的信息,包括:集成电路模型中版图名称、元器件名称、功能、集成电路模型所用材料的名称,以及集成电路的外部电路名称;
依据实际计算的输入参数,划分出每个待仿真的集成电路模型的电磁仿真中多次重复执行的计算单元作为计算颗粒,将各计算颗粒的加权CPU时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总CPU时间,将所述累加和之中的每个计算颗粒作为一个并行粗颗粒;
所述计算颗粒的加权CPU时间的计算公式为:
Figure 732235DEST_PATH_IMAGE002
式中:
Figure 587059DEST_PATH_IMAGE004
为第i个计算颗粒的加权CPU时间,
Figure 38900DEST_PATH_IMAGE006
为第i个计算颗粒单次计算的CPU时间,
Figure 91168DEST_PATH_IMAGE008
为第i个计算颗粒执行的计算任务数;
整个计算过程的总CPU时间的计算公式为:
Figure 374381DEST_PATH_IMAGE010
其中,T为整个计算过程的总CPU时间,
Figure 774008DEST_PATH_IMAGE012
为整个计算程序被划分的计算颗粒数,
Figure DEST_PATH_IMAGE014
为第i个计算颗粒的加权CPU时间。
3.根据权利要求1所述的具有保密功能的集成电路云平台电磁仿真并行方法,其特征在于,所述每个被发起的计算进程根据收到的管理进程的应答信息,执行完成分配的一个计算粗颗粒或结束该计算进程,具体包括:
S201:计算进程Ki发送某个元素的字段Message=Inquire到管理进程MK;
S202:如果计算进程Ki超过时间T timeout没收到MK返回的消息,进入步骤S204;如果计算进程Ki收到的指令为元素Mi的字段Message=P_NN,该计算进程结束;如果计算进程Ki收到的指令为元素Mi的字段Message=P_N,计算进程Ki基于Path字段定义的路径读取当前集成电路的剖分的网格数据文件,基于Type字段定义的集成电路模型计算条件,进入计算模式,完成Type字段定义的规定计算,计算完毕后更新M的元素Mi的字段State= C_M,发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State= C_M发送到管理进程MK,进入步骤S204;如果计算进程Ki收到的指令为元素Mi的字段Message=P_Y,进入步骤S203;
S203:计算进程Ki针对当前集成电路模型进行网格剖分,如果成功剖分网格,将网格数存储在Path字段定义的网格路径的位置,更新M的元素Mi的字段State=C0_M,发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State=C0_M发送到管理进程MK;如果网格剖分失败, 更新M的元素Mi的字段State= C0_M0, 发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State=C0_M0发送到管理进程MK;
S204:中断时间T pause,进入步骤S201。
4.一种具有保密功能的集成电路云平台电磁仿真并行装置,其特征在于,包括:
客户端,用于将集成电路模型转换为需要云平台进行计算的并行粗颗粒并发送到云平台;
云平台,用于完成所有待仿真集成电路模型的粗颗粒并行计算;
计算颗粒划分模块,用于将所有待仿真的集成电路模型的电磁仿真分割成多个计算颗粒,获取各计算颗粒的加权CPU时间和总CPU时间,依据所述加权CPU时间和所述总CPU时间的占比确定出计算粗颗粒;所述计算颗粒为需要多次重复执行的计算单元;
集成电路模型提取与保密筛选模块,用于将需要云平台进行计算的并行粗颗粒发送到云平台,而不是将整个集成电路模型的计算进程发送到云平台;
管理进程构建模块,用于在云平台建立管理进程,定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储;
粗颗粒并行计算模块,用于通过所述管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信;每个被发起的计算进程根据收到的管理进程的应答信息,执行完成分配的一个计算粗颗粒或结束该计算进程;
计算结果收集与整理模块,用于计算进程计算完成后,将对应计算进程的计算结果反馈到所述管理进程;当所有需要计算的并行粗颗粒的计算任务都完成时,所述管理进程收集计算结果并将所有计算任务的计算结果整理生成最终计算结果;
计算结果传送模块,用于将云平台的最终计算结果传送到客户端;
计算结果显示模块,用于通过客户端对最终计算结果进行显示;
其中,所述定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储,具体包括:
针对所有的集成电路模型对应的并行粗颗粒,定义对象M,所述对象M包括并行粗颗粒存储字段、并行粗颗粒计算类型存储字段及所述并行粗颗粒对应的剖分的网格数据文件路径存储字段、并行粗颗粒计算条件存储字段、并行粗颗粒计算状态存储字段和进程的消息内容存储字段;
所述集成电路模型对应的并行粗颗粒存储字段记为Data,该字段存储集成电路模型的与电磁仿真计算相关的所有信息,包括定义集成电路模型的层坐标信息、集成电路各层的版图坐标信息、集成电路各层的介质参数信息、集成电路各层的连接关系以及集成电路的外部电路;
所述集成电路模型对应的并行粗颗粒类型存储字段记为Type,该字段存储所述集成电路模型的仿真类型和集成电路模型的规模;所述集成电路模型的仿真类型包括:多层PCB版图模型、IC封装模型、多层尺度更小的芯片设计模型,以及多个集成电路模型的联合仿真;所述集成电路模型的规模包括:层数在4层以下的小规模集成电路模型、层数在4层以上20层以下的中等规模集成电路模型以及层数在20层以上的大规模集成电路模型;
所述集成电路模型对应的并行粗颗粒对应的剖分的网格数据文件路径存储字段记为Path;
所述集成电路模型对应的并行粗颗粒计算条件存储字段记为Net,该字段存储不同集成电路模型的计算参数,包括:集成电路的直流压降分析和集成电路的电热耦合分析的端口与端口初始温度信息、集成电路电源完整性分析初始条件与仿真频率信息、集成电路信号完整性分析初始条件与仿真频率信息、集成电路电源完整性与信号完整性优化指标与仿真频率信息、集成电路的电磁干扰和电磁兼容分析的仿真频率与仿真端口信息、集成电路的等效电路参数提取的待分析端口信息与集成电路的IBIS模型提取的待分析端口信息;
所述集成电路模型对应的并行粗颗粒计算状态存储字段记为State,该字段存储集成电路模型对应的并行粗颗粒的计算状态,包括以下5种计算状态:未计算且未生成网格,可用C0_M0表示;未计算且正在生成网格,可用C0_M1表示;未计算且生成网格完毕,可用C0_M表示;正在计算且生成网格完毕,可用C1_M表示;完成计算,可用C_M表示;
所述进程的消息内容存储字段记为Message,该字段存储管理进程与计算进程之间发送的消息,发送的消息包括:查询指令,可用Inquire表示;结果更新指令,可用Update表示;进入网格生成指令,可用P_Y表示;不生成网格而是直接读取网格进行计算指令,可用P_N表示;关闭进程指令,可用P_NN表示;
所述针对所有的集成电路模型定义的对象M可以用M[Data][Type][Path][Net][State] [Message]完整表示,所述对象M泛指存储介质中的内存区,可以是连续的或者非连续的,可以是远程数据库记录或者是一个字符串,也可以是json,xml,ini文件;
并且,其中,所述通过管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信,具体包括:
S101:建立一个管理进程MK,如果建立成功,进入步骤S102,如果建立失败,进入步骤S109;
S102:定义对象M[Data][Type][Path][Net][State][Message],定义对象M的元素Mi为与并行粗颗粒对应的对象M字段Data、Type、Path、Net、State、Message的具体实例;将集成电路模型对应的并行粗颗粒存入对象M的[Data];归类集成电路模型对应的并行粗颗粒的类型,将其存入对象M的[Type];将所述集成电路模型对应的并行粗颗粒对应的生产剖分的网格数据文件路径存入对象M的[Path]中;将集成电路模型对应的并行粗颗粒的计算条件存入对象M中的[Net];初始化对象M的字段State= C0_M0;初始化对象M的Message为空;初始化进程号Ki=1;
S103:管理进程MK建立第Ki个计算进程,如果第Ki个计算进程建立失败,暂停时间T pause,进入步骤S103;如果第Ki个计算进程建立成功,将第Ki个计算进程置于挂起状态;Ki=Ki+1, 如果Ki=允许创建的最大计算进程数,进入步骤S104,否则进入步骤S103;
S104:管理进程MK进入HTTP网络服务应答状态,查询所有计算进程的工作状态及进程池中的计算进程数,如果进程池中的计算进程数小于允许创建的最大计算进程数,进入步骤S103,否则激活所有挂起状态的计算进程进入就绪状态并进入步骤S105,其中所述计算进程的工作状态包括挂起、就绪、退出;
S105:如果管理进程MK收到任意计算进程Kj发的其元素的字段Message=Inquire,进入步骤S106,其中1≤Kj≤允许创建的最大进程数;如果管理进程MK收到任意计算进程Kn发的其元素的字段Message=Update,更新该计算进程发送的并行粗颗粒的对象M的计算状态State,进入步骤S104,其中1≤Kn≤允许创建的最大进程数;否则直接进入步骤S104;
S106:管理进程MK查询对象M的所有元素的计算状态,如果对象M的所有元素的字段State=C_M,说明所有计算任务都计算完毕,进入步骤S109;否则进入步骤S107;
S107:如果对象M的某个元素Mi的字段State= C0_M0,更新该元素Mi的字段State= C0_M1,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_Y;如果对象M的某个元素Mi的字段State=C0_M,更新该元素Mi的字段State=C1_M,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_N;如果对象M的某个元素Mi的字段State= C1_M或State= C_M,查询标记指向对象M的字段Net的下一个元素,继续查询属于同一集成电路模型的并行粗颗粒,如果已遍历对象M的字段Net的所有元素,进入步骤S106,否则进入步骤S107;如果对象M的某个元素Mi的字段State= C0_M1,查询标记指向对象M的字段Data的下一个元素,继续查询下一个集成电路模型的并行粗颗粒,如果已遍历对象M的字段Data的所有元素,进入步骤S106,否则进入步骤S107;
S108:进入步骤S104;
S109:向所有计算进程发送P_NN指令,关闭所有计算进程,结束管理进程MK。
5.根据权利要求4所述的具有保密功能的集成电路云平台电磁仿真并行装置,其特征在于,所述将需要云平台进行计算的集成电路模型信息、计算条件提取出来,形成并行粗颗粒,具体包括:
在客户端将所有读取的集成电路模型的信息转化为实际计算的输入参数,删去所有与集成电路电磁仿真无关但对客户来说需要保密的信息,包括:集成电路模型中版图名称、元器件名称、功能、集成电路模型所用材料的名称,以及集成电路的外部电路名称;
依据实际计算的输入参数,划分出每个待仿真的集成电路模型的电磁仿真中多次重复执行的计算单元作为计算颗粒,将各计算颗粒的加权CPU时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总CPU时间,将所述累加和之中的每个计算颗粒作为一个并行粗颗粒;
所述计算颗粒的加权CPU时间的计算公式为:
Figure 854090DEST_PATH_IMAGE016
式中:
Figure 20367DEST_PATH_IMAGE018
为第i个计算颗粒的加权CPU时间,
Figure 830191DEST_PATH_IMAGE020
为第i个计算颗粒单次计算的CPU时间,
Figure 338402DEST_PATH_IMAGE022
为第i个计算颗粒执行的计算任务数;
整个计算过程的总CPU时间的计算公式为:
Figure 675754DEST_PATH_IMAGE024
其中,T为整个计算过程的总CPU时间,
Figure DEST_PATH_IMAGE026
为整个计算程序被划分的计算颗粒数,
Figure DEST_PATH_IMAGE028
为第i个计算颗粒的加权CPU时间。
6.根据权利要求4所述的具有保密功能的集成电路云平台电磁仿真并行装置,其特征在于,所述每个被发起的计算进程根据收到的管理进程的应答信息,执行完成分配的一个计算粗颗粒或结束该计算进程,具体包括:
S201:计算进程Ki发送某个元素的字段Message=Inquire到管理进程MK;
S202:如果计算进程Ki超过时间T timeout没收到MK返回的消息,进入步骤S204;如果计算进程Ki收到的指令为元素Mi的字段Message=P_NN,该计算进程结束;如果计算进程Ki收到的指令为元素Mi的字段Message=P_N,计算进程Ki基于Path字段定义的路径读取当前集成电路的剖分的网格数据文件,基于Type字段定义的集成电路模型计算条件,进入计算模式,完成Type字段定义的规定计算,计算完毕后更新M的元素Mi的字段State= C_M,发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State= C_M发送到管理进程MK,进入步骤S204;如果计算进程Ki收到的指令为元素Mi的字段Message=P_Y,进入步骤S203;
S203:计算进程Ki针对当前集成电路模型进行网格剖分,如果成功剖分网格,将网格数存储在Path字段定义的网格路径的位置,更新M的元素Mi的字段State=C0_M,发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State=C0_M发送到管理进程MK;如果网格剖分失败, 更新M的元素Mi的字段State= C0_M0, 发送该元素的字段Message=Update到管理进程MK,将更新后的M的元素Mi的字段State=C0_M0发送到管理进程MK;
S204:中断时间T pause,进入步骤S201。
CN202110459226.8A 2021-04-27 2021-04-27 具有保密功能的集成电路云平台电磁仿真并行方法及装置 Active CN112989685B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110459226.8A CN112989685B (zh) 2021-04-27 2021-04-27 具有保密功能的集成电路云平台电磁仿真并行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110459226.8A CN112989685B (zh) 2021-04-27 2021-04-27 具有保密功能的集成电路云平台电磁仿真并行方法及装置

Publications (2)

Publication Number Publication Date
CN112989685A CN112989685A (zh) 2021-06-18
CN112989685B true CN112989685B (zh) 2021-08-24

Family

ID=76341718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110459226.8A Active CN112989685B (zh) 2021-04-27 2021-04-27 具有保密功能的集成电路云平台电磁仿真并行方法及装置

Country Status (1)

Country Link
CN (1) CN112989685B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617067A (zh) * 2013-10-22 2014-03-05 芜湖大学科技园发展有限公司 一种基于云计算的电力软件仿真系统
CN103873321B (zh) * 2014-03-05 2017-03-22 国家电网公司 基于分布式文件系统的仿真分布式并行计算平台及方法
CN104977022B (zh) * 2014-04-04 2018-02-27 西北工业大学 多目标跟踪系统性能评估仿真方法
CN106055768A (zh) * 2016-05-26 2016-10-26 秦晓亮 一种基于云计算的高安全性数值模拟方法、求解器及系统
CN106095574B (zh) * 2016-06-13 2019-01-08 北京唯智佳辰科技发展有限责任公司 海量计算粗颗粒并行实现及计算任务随机动态分配方法

Also Published As

Publication number Publication date
CN112989685A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
CN112102887B (zh) 多尺度集成可视化的高通量自动计算流程及数据智能系统
CN108154237A (zh) 一种数据处理系统及方法
CN101013447A (zh) 数字电路的自动设计设备、自动设计方法和自动设计程序
Muppala et al. Composite performance and availability analysis using a hierarchy of stochastic reward nets
CN113297174B (zh) 基于深度学习的土地利用变化模拟方法
Dai et al. Agent-based model of land system: Theory, application and modelling framework
CN109344969B (zh) 神经网络系统及其训练方法以及计算机可读介质
CN108376183A (zh) 一种基于最大熵原理的城市ca模型构建方法
CN113268665A (zh) 基于随机森林的信息推荐方法、装置、设备及存储介质
Plant et al. Combining expert system and GIS technology to implement a state-transition model of oak woodlands
CN103366033B (zh) 统计电路仿真的方法和系统
Spataro et al. An evolutionary approach for modelling lava flows through cellular automata
CN112989685B (zh) 具有保密功能的集成电路云平台电磁仿真并行方法及装置
Chen et al. Finite-size scaling of geometric renormalization flows in complex networks
CN109117352B (zh) 服务器性能预测方法和装置
CN112988404B (zh) 基于管理进程的集成电路仿真粗颗粒并行方法及装置
Xiao et al. ChoroWare: a software toolkit for choropleth map classification
CN112988403B (zh) 具有保密功能的集成电路仿真多线程管理并行方法及装置
US7093224B2 (en) Model-based logic design
JP4770495B2 (ja) シミュレーションモデルジェネレータ
CN106055577B (zh) 服务化gnss仿真平台中模型智能推荐方法
CN114662286A (zh) 卫星平台参数化建模方法、装置、电子设备及存储介质
CN112559589A (zh) 一种远程测绘数据处理方法及系统
CN116090692B (zh) 一种基于bim技术的工程造价管理系统及方法
DiPrete et al. Reinforcement Learning for Block Decomposition of CAD Models

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