CN114157654B - 一种集成电路协同设计***和方法 - Google Patents
一种集成电路协同设计***和方法 Download PDFInfo
- Publication number
- CN114157654B CN114157654B CN202111265414.3A CN202111265414A CN114157654B CN 114157654 B CN114157654 B CN 114157654B CN 202111265414 A CN202111265414 A CN 202111265414A CN 114157654 B CN114157654 B CN 114157654B
- Authority
- CN
- China
- Prior art keywords
- eda
- service
- compiling
- task
- component
- 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
Links
- 238000013461 design Methods 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004891 communication Methods 0.000 claims abstract description 13
- 238000012795 verification Methods 0.000 claims description 28
- 230000002085 persistent effect Effects 0.000 claims description 5
- 238000009877 rendering Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 17
- 238000011084 recovery Methods 0.000 abstract description 5
- 235000009392 Vitis Nutrition 0.000 description 6
- 241000219095 Vitis Species 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种集成电路协同设计***和方法,***包括:客户端和EDA云平台;其中,客户端和EDA云平台通信连接;其中,客户端,用于当接收到集成电路的操作请求时,将操作请求转发至EDA云平台;EDA云平台,用于根据接收的操作请求确定是否创建集成电路编译任务,并基于集成电路编译任务进行自动化编译。由于本申请将EDA工具部署到云端实现EDA开发,可以在性能上用最优的配置满足复杂的芯片设计场景,其次能做到成本优化,做到快速扩容和回收,最后能保障芯片设计各层级的安全,从而降低了集成电路的开发成本,提升了集成电路的开发效率。
Description
技术领域
本发明涉及集成电路设计技术领域,特别涉及一种集成电路协同设计***和方法。
背景技术
EDA(Electronic Design Automation,电子设计自动化)是完成超大规模集成电路芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。
在传统的集成电路设计步骤中,电路设计师的设计通常从集成电路应发挥哪些功能这种概念性的想法上出发。然后电路设计师再在电脑(通常被称作服务器)上进行电路设计,之后在该服务器上运行一个或多个电子设计自动化(EDA)工具验证该电路,保证它能如愿运行。当前的集成电路变得越来越复杂,电路设计师需要大量的计算力量来帮助完成计算任务以此运行这些电子设计自动化(EDA)工具。传统EDA行业开发EDA时存在诸多问题,例如:硬件成本高、灵活性差、一次性采购投入大、研发周期长、投入和风险高等,由于硬件开发门槛高,代价大,时间长也让很多用户望而却步。同时,随着市场对于芯片需求的长足增长,以及产品迭代速度的加快,要求芯片设计的周期更短。随着工艺的不断演进,芯片设计的总成本也不断增加,EDA软件成本和验证成本占据了大部分的整体成本,验证和仿真时间使研发时间大大延长。
发明内容
本申请实施例提供了一种集成电路协同设计***和方法。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
第一方面,本申请实施例提供了一种集成电路协同设计***,***包括:
客户端和EDA云平台;其中,
客户端和EDA云平台通信连接;其中,
客户端,用于当接收到集成电路的操作请求时,将操作请求转发至EDA云平台;
EDA云平台,用于根据接收的操作请求确定是否创建集成电路编译任务,并基于集成电路编译任务进行自动化编译。
可选的,EDA云平台包括任务分析模块、环境协同模块以及编译模块;其中,
任务分析模块、环境协同模块以及编译模块电连接;其中,
EDA云平台运行在Docker环境中,任务分析模块、环境协同模块以及编译模块以Docker镜像的方式进行一键部署。
可选的,任务分析模块包括EDA网页端、调度服务、Redis组件以及ETCD组件;其中,
EDA网页端、调度服务、Redis组件以及ETCD组件电连接。
可选的,EDA网页端,用于接收来自客户端发送的集成电路的操作请求,并基于操作请求确定是否将操作请求发送至调度服务;
调度服务,用于当操作请求为创建编译任务时,创建编译任务,并将编译任务的状态实时更新至ETCD组件,以及生成调用指令发送至云服务,并当接收到来自云服务发送的连接地址和验证信息时,将连接地址和验证信息发送至EDA服务。
可选的,基于操作请求确定是否将操作请求发送至调度服务,包括:
解析操作请求,生成解析信息;
从解析信息中获取请求用户的身份信息;
针对身份信息进行识别;
对识别后的身份信息进行权限鉴别,得到鉴别结果;
当鉴别结果为预设鉴别通过的标识符时,将操作请求发送至调度服务。
可选的,环境协同模块包括云服务以及EDA服务;其中,
云服务以及EDA服务通信连接。
可选的,云服务,用于当接收到来自调度服务的调用指令时,获取编译任务的参数,并基于参数创建编译任务的运行环境,并生成连接地址和验证信息发送至调度服务;
EDA服务,用于当接收到来自调度服务发送的连接地址和验证信息时,根据连接地址和验证信息渲染出可供EDA代理服务进行获取的输入文件,并将输入文件发送至EDA代理服务,以及实时获取EDA代理服务发送的日志信息转发至Redis组件。
可选的,编译模块包括EDA代理服务、哨兵服务、编译组件集合以及对象存储组件;
其中,EDA代理服务、哨兵服务、编译组件集合以及对象存储组件通信连接。
可选的,EDA代理服务,用于接收来自EDA服务发送的输入文件,并基于编译任务的任务类型从编译组件集合中获取目标编译组件,并根据输入文件创建云服务器实例,以及根据目标编译组件执行云服务器实例后生成执行结果和日志信息,以及将执行结果发送至对象存储组件中进行持久化存储,以及将日志信息实时转发至EDA服务;
哨兵服务,用于当检测到云服务器实例执行结束后,销毁云服务器实例。
可选的,编译组件集合包括VIVADO编译器、VITIS编译器以及HLS编译器。
第二方面,本申请实施例提供了一种集成电路协同设计方法,方法包括:
客户端当接收到集成电路的操作请求时,将操作请求转发至EDA云平台;
EDA云平台根据接收的操作请求确定是否创建集成电路编译任务,并基于集成电路编译任务进行自动化编译。
本申请实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,客户端当接收到集成电路的操作请求时,将操作请求转发至EDA云平台,EDA云平台根据接收的操作请求确定是否创建集成电路编译任务,并基于集成电路编译任务进行自动化编译。由于本申请将EDA工具部署到云端实现EDA开发,可以在性能上用最优的配置满足复杂的芯片设计场景,其次能做到成本优化,做到快速扩容和回收,最后能保障芯片设计各层级的安全,从而降低了集成电路的开发成本,提升了集成电路的开发效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本申请实施例提供的一种集成电路协同设计***的***结构示意图;
图2是本申请实施例提供的一种集成电路协同设计方法的流程示意图;
图3是本申请实施例提供的一种电子设备的结构示意图;
图4是本申请实施例提供的一种存储介质的示意图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请提供了一种集成电路协同设计方法、装置、存储介质及终端,以解决上述相关技术问题中存在的问题。本申请提供的技术方案中,由于本申请将EDA工具部署到云端实现EDA开发,可以在性能上用最优的配置满足复杂的芯片设计场景,其次能做到成本优化,做到快速扩容和回收,最后能保障芯片设计各层级的安全,从而降低了集成电路的开发成本,提升了集成电路的开发效率,下面采用示例性的实施例进行详细说明。
请参见图1,为本申请实施例提供了一种集成电路协同设计***的结构示意图。如图1所示,本申请实施例的***可以包括:客户端和EDA云平台;其中,客户端和EDA云平台通信连接;其中,客户端,用于当接收到集成电路的操作请求时,将操作请求转发至EDA云平台;EDA云平台,用于根据接收的操作请求确定是否创建集成电路编译任务,并基于集成电路编译任务进行自动化编译。
在本实施例中,EDA云平台包括任务分析模块、环境协同模块以及编译模块;其中,任务分析模块、环境协同模块以及编译模块电连接;其中,EDA云平台运行在Docker环境中,任务分析模块、环境协同模块以及编译模块以Docker镜像的方式进行一键部署。
具体的,客户端支持WEB界面和SDK两种使用方式,为用户提供了交互接口和可编程SDK,与EDA云平台通过HTTP,WebSocket协议进行通信。
具体的,EDA云平台同时支持公有云与私有云部署。
在本实施例中,任务分析模块包括EDA网页端、调度服务、Redis组件以及ETCD组件;其中,EDA网页端、调度服务、Redis组件以及ETCD组件电连接。
进一步地,EDA网页端,用于接收来自客户端发送的集成电路的操作请求,并基于操作请求确定是否将操作请求发送至调度服务;调度服务,用于当操作请求为创建编译任务时,创建编译任务,并将编译任务的状态实时更新至ETCD组件,以及生成调用指令发送至云服务,并当接收到来自云服务发送的连接地址和验证信息时,将连接地址和验证信息发送至EDA服务。
进一步地,在基于操作请求确定是否将操作请求发送至调度服务时,首先解析操作请求,生成解析信息,再从解析信息中获取请求用户的身份信息,然后针对身份信息进行识别,再对识别后的身份信息进行权限鉴别,得到鉴别结果,最后当鉴别结果为预设鉴别通过的标识符时,将操作请求发送至调度服务。
具体的,EDA网页端是对***外部组件(例如客户端)提供统一的服务接口,方便对接多种前端客户端,如:Web界面和命令行等。
具体的,EDA网页端主要交互组件为调度服务和Redis组件。例如在得到的操作指令是进行创建编译任务或查询编译任务时,EDA网页端在做好用户识别和鉴权通过之后,通过RPC协议转发操作请求到调度服务,实现编译任务的创建和查询;EDA网页端同时也集成了Redis组件,用于实时监听编译任务的日志信息。
具体的,调度服务在接收到操作请求后,统筹管理编译任务的执行,并根据编译任务类别和任务流下端组件上报的状态信息来分步执行复杂的编译任务。
具体地,调度服务的主要是云服务、EDA服务、ETCD组件以及EDA网页端。调度服务在接收到操作请求后,统筹管理编译任务的执行时,与EDA网页端之间的主要交互为编译任务的创建、查询和删除等,对外提供***中编译任务进度的查询接口。任务的当前状态被统一更新到ETCD组件中。对内而言,不同的编译任务需要不同的运行环境,其会调用云服务的接口,创建任务所需的运行环境;待运行环境准备就绪后,会搜集运行环境的连接方法和验证信息并告知EDA服务。同时调度服务还负责编译任务执行的预校验,不同组件上报错误的处理和重试等功能。
在本实施例中,环境协同模块包括云服务以及EDA服务;其中,云服务以及EDA服务通信连接。
具体地,云服务,用于当接收到来自调度服务的调用指令时,获取编译任务的参数,并基于参数创建编译任务的运行环境,并生成连接地址和验证信息发送至调度服务;EDA服务,用于当接收到来自调度服务发送的连接地址和验证信息时,根据连接地址和验证信息渲染出可供EDA代理服务进行获取的输入文件,并将输入文件发送至EDA代理服务,以及实时获取EDA代理服务发送的日志信息转发至Redis组件。
具体的,云服务是准备任务执行的运行环境,同时支持公有云和私有云场景。会根据***部署的场景分别创建运行着EDA-Agent组件的ECS云主机和Docker容器。在创建可执行的任务环境之后,会向调度服务告知任务运行环境的连接地址等信息。任务执行完毕之后其还负责销毁运行环境。
进一步地,编译模块包括EDA代理服务、哨兵服务、编译组件集合以及对象存储组件;
其中,EDA代理服务、哨兵服务、编译组件集合以及对象存储组件通信连接。
进一步地,EDA代理服务,用于接收来自EDA服务发送的输入文件,并基于编译任务的任务类型从编译组件集合中获取目标编译组件,并根据输入文件创建云服务器实例,以及根据目标编译组件执行云服务器实例后生成执行结果和日志信息,以及将执行结果发送至对象存储组件中进行持久化存储,以及将日志信息实时转发至EDA服务;哨兵服务,用于当检测到云服务器实例执行结束后,销毁云服务器实例。
具体的,哨兵服务用来做安全守护,如果有云计算实例没有及时被销毁,哨兵服务会检测到并且强制销毁该实例。
具体的,EDA服务负责编译任务的输入准备、执行和实时任务日志转发。在连接EDA代理服务之前,需要准备渲染完成可供EDA代理服务获取输入文件。待相关文件主备完毕之后,把相关请求发送给EDA代理服务执行编译任务,并实时转发任务的编译日志。同时任务的相关输入文件会被记录到ETCD组件。
具体的,EDA代理服务是每个编译任务的具体执行组件。根据不同的任务类型会在获取输入文件之后,调用VIVADO、VITIS或HLS相关组件执行任务;同步日志到指定频道,待任务执行完毕后,把重要的编译产物上传到对象存储组件中进行持久化存储,后续供用户访问。
进一步地,编译组件集合包括VIVADO编译器、VITIS编译器以及HLS编译器。
具体的,VIVADO编译器、VITIS编译器以及HLS编译器支持进行VIVADO,VITIS,HLS的编译(综合,布局,布线)。
具体的,Redis组件负责实时日志信息频道的订阅和发布,ETCD组件负责任务执行状态的存储和通知,对象存储组件负责需要持久化数据的存储,包括日志信息,用户提交的源文件等。
在本实施例中,云服务器实例的容器为EDA软件的运行环境,EDA代理服务,VIVADO编译器,VITIS编译器,HLS编译器均运行在该环境中。预置的软件通过文件***以只读方式挂载进运行环境,达到了编译软件预置安装效果。该组件启动后,会立即运行EDA代理服务,并对外暴露服务端口。每执行一个新的任务,就会新建一个云服务器实例进行具体的任务执行工作,执行完成以后,云服务器实例就会被销毁,这样既节约了资源又节省了成本。
需要说明的是,EDA云平台的各个组件都做成了Docker镜像,可以运行在Docker环境中。在公有云环境下,EDA云平台可以用Docker进行一键部署;私有云环境中可以用k8s进行Doker镜像的一键部署。
需要说明的是,EDA云平台还需要同时部署Redis,ETCD和Postgresql组件,为平台提供基础服务,这些基础服务也被做成了标准的Docker镜像,整个EDA云平台支持基于Docker的一键部署,部署和后期的维护非常便捷。
在本申请实施例中,客户端当接收到集成电路的操作请求时,将操作请求转发至EDA云平台,EDA云平台根据接收的操作请求确定是否创建集成电路编译任务,并基于集成电路编译任务进行自动化编译。由于本申请将EDA工具部署到云端实现EDA开发,可以在性能上用最优的配置满足复杂的芯片设计场景,其次能做到成本优化,做到快速扩容和回收,最后能保障芯片设计各层级的安全,从而降低了集成电路的开发成本,提升了集成电路的开发效率。
请参见图2,为本申请实施例提供了一种集成电路协同设计方法的方法流程示意图。如图2所示,本申请实施例的方法包括以下步骤:
S101,客户端当接收到集成电路的操作请求时,将操作请求转发至EDA云平台;
S102,EDA云平台根据接收的操作请求确定是否创建集成电路编译任务,并基于集成电路编译任务进行自动化编译。
在一种可能的实现方式中,在进行自动化编译结束后,可生成所需的编译文件,将编译文件可挂载到预设设置在EDA云平台中的FPGA中进行运行后得到运行结果。
在本申请实施例中,客户端当接收到集成电路的操作请求时,将操作请求转发至EDA云平台,EDA云平台根据接收的操作请求确定是否创建集成电路编译任务,并基于集成电路编译任务进行自动化编译。由于本申请将EDA工具部署到云端实现EDA开发,可以在性能上用最优的配置满足复杂的芯片设计场景,其次能做到成本优化,做到快速扩容和回收,最后能保障芯片设计各层级的安全,从而降低了集成电路的开发成本,提升了集成电路的开发效率。
本申请实施方式还提供一种电子设备,以执行上述电子设备的集成电路协同设计方法。请参考图3,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图3所示,电子设备4包括:处理器400,存储器401,总线402和通信接口403,处理器400、通信接口403和存储器401通过总线402连接;存储器401中存储有可在处理器400上运行的计算机程序,处理器400运行计算机程序时执行本申请前述任一实施方式所提供的电子设备的集成电路协同设计方法。
其中,存储器401可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口403(可以是有线或者无线)实现该装置网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线402可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。其中,存储器401用于存储程序,处理器400在接收到执行指令后,执行程序,前述本申请实施例任一实施方式揭示的电子设备的集成电路协同设计方法可以应用于处理器400中,或者由处理器400实现。
处理器400可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器400中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器400可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器401,处理器400读取存储器401中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的电子设备提供的集成电路协同设计方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的集成电路协同设计方法对应的计算机可读存储介质,请参考图4,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),计算机程序在被处理器运行时,会执行前述任意实施方式所提供的集成电路协同设计方法。
需要说明的是,计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的集成电路协同设计方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,集成电路协同设计的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (3)
1.一种集成电路协同设计***,其特征在于,所述***包括:
客户端和EDA云平台;其中,
所述客户端和所述EDA云平台通信连接;其中,
所述客户端,用于当接收到集成电路的操作请求时,将所述操作请求转发至所述EDA云平台;
所述EDA云平台,用于根据接收的所述操作请求确定是否创建集成电路编译任务,并基于所述集成电路编译任务进行自动化编译;其中,
所述EDA云平台包括任务分析模块、环境协同模块以及编译模块;其中,
所述任务分析模块、环境协同模块以及编译模块电连接;其中,
所述EDA云平台运行在Docker环境中,所述任务分析模块、环境协同模块以及编译模块以Docker镜像的方式进行一键部署;其中,
所述任务分析模块包括EDA网页端、调度服务、Redis组件以及ETCD组件;其中,Redis组件负责实时日志信息频道的订阅和发布,ETCD组件负责任务执行状态的存储和通知;
所述EDA网页端、调度服务、Redis组件以及ETCD组件电连接;其中,
所述EDA网页端,用于接收来自客户端发送的集成电路的操作请求,并基于所述操作请求确定是否将所述操作请求发送至调度服务;
所述调度服务,用于当所述操作请求为创建编译任务时,创建编译任务,并将所述编译任务的状态实时更新至所述ETCD组件,以及生成调用指令发送至云服务,并当接收到来自所述云服务发送的连接地址和验证信息时,将所述连接地址和验证信息发送至EDA服务;其中,
所述环境协同模块包括云服务以及EDA服务;其中,
所述云服务以及EDA服务通信连接;其中,
所述云服务,用于当接收到来自所述调度服务的调用指令时,获取所述编译任务的参数,并基于所述参数创建所述编译任务的运行环境,并生成连接地址和验证信息发送至所述调度服务;
所述EDA服务,用于当接收到来自所述调度服务发送的连接地址和验证信息时,根据所述连接地址和验证信息渲染出可供EDA代理服务进行获取的输入文件,并将所述输入文件发送至所述EDA代理服务,以及实时获取所述EDA代理服务发送的日志信息转发至所述Redis组件;其中,
所述编译模块包括EDA代理服务、哨兵服务、编译组件集合以及对象存储组件;
其中,所述EDA代理服务、哨兵服务、编译组件集合以及对象存储组件通信连接;其中,
所述EDA代理服务,用于接收来自所述EDA服务发送的输入文件,并基于所述编译任务的任务类型从所述编译组件集合中获取目标编译组件,并根据所述输入文件创建云服务器实例,以及根据所述目标编译组件执行所述云服务器实例后生成执行结果和日志信息,以及将所述执行结果发送至所述对象存储组件中进行持久化存储,以及将所述日志信息实时转发至EDA服务;
所述哨兵服务,用于当检测到所述云服务器实例执行结束后,销毁所述云服务器实例。
2.根据权利要求1所述的一种集成电路协同设计***,其特征在于,所述基于所述操作请求确定是否将所述操作请求发送至调度服务,包括:
解析所述操作请求,生成解析信息;
从所述解析信息中获取请求用户的身份信息;
针对所述身份信息进行识别;
对识别后的身份信息进行权限鉴别,得到鉴别结果;
当所述鉴别结果为预设鉴别通过的标识符时,将所述操作请求发送至调度服务。
3.一种集成电路协同设计方法,其特征在于,所述方法包括:
客户端当接收到集成电路的操作请求时,将所述操作请求转发至EDA云平台;
EDA云平台根据接收的所述操作请求确定是否创建集成电路编译任务,并基于所述集成电路编译任务进行自动化编译;其中,
所述EDA云平台包括任务分析模块、环境协同模块以及编译模块;其中,
所述任务分析模块、环境协同模块以及编译模块电连接;其中,
所述EDA云平台运行在Docker环境中,所述任务分析模块、环境协同模块以及编译模块以Docker镜像的方式进行一键部署;其中,
所述任务分析模块包括EDA网页端、调度服务、Redis组件以及ETCD组件;其中,Redis组件负责实时日志信息频道的订阅和发布,ETCD组件负责任务执行状态的存储和通知;
所述EDA网页端、调度服务、Redis组件以及ETCD组件电连接;其中,
所述EDA网页端,用于接收来自客户端发送的集成电路的操作请求,并基于所述操作请求确定是否将所述操作请求发送至调度服务;
所述调度服务,用于当所述操作请求为创建编译任务时,创建编译任务,并将所述编译任务的状态实时更新至所述ETCD组件,以及生成调用指令发送至云服务,并当接收到来自所述云服务发送的连接地址和验证信息时,将所述连接地址和验证信息发送至EDA服务;其中,
所述环境协同模块包括云服务以及EDA服务;其中,
所述云服务以及EDA服务通信连接;其中,
所述云服务,用于当接收到来自所述调度服务的调用指令时,获取所述编译任务的参数,并基于所述参数创建所述编译任务的运行环境,并生成连接地址和验证信息发送至所述调度服务;
所述EDA服务,用于当接收到来自所述调度服务发送的连接地址和验证信息时,根据所述连接地址和验证信息渲染出可供EDA代理服务进行获取的输入文件,并将所述输入文件发送至所述EDA代理服务,以及实时获取所述EDA代理服务发送的日志信息转发至所述Redis组件;其中,
所述编译模块包括EDA代理服务、哨兵服务、编译组件集合以及对象存储组件;
其中,所述EDA代理服务、哨兵服务、编译组件集合以及对象存储组件通信连接;其中,
所述EDA代理服务,用于接收来自所述EDA服务发送的输入文件,并基于所述编译任务的任务类型从所述编译组件集合中获取目标编译组件,并根据所述输入文件创建云服务器实例,以及根据所述目标编译组件执行所述云服务器实例后生成执行结果和日志信息,以及将所述执行结果发送至所述对象存储组件中进行持久化存储,以及将所述日志信息实时转发至EDA服务;
所述哨兵服务,用于当检测到所述云服务器实例执行结束后,销毁所述云服务器实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111265414.3A CN114157654B (zh) | 2021-10-28 | 2021-10-28 | 一种集成电路协同设计***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111265414.3A CN114157654B (zh) | 2021-10-28 | 2021-10-28 | 一种集成电路协同设计***和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114157654A CN114157654A (zh) | 2022-03-08 |
CN114157654B true CN114157654B (zh) | 2024-03-19 |
Family
ID=80458493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111265414.3A Active CN114157654B (zh) | 2021-10-28 | 2021-10-28 | 一种集成电路协同设计***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114157654B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114938279A (zh) * | 2022-06-16 | 2022-08-23 | 浪潮集团有限公司 | 一种基于云平台带安全认证的量子芯片eda设计方法 |
CN115081369B (zh) * | 2022-08-16 | 2022-11-15 | 中国电子科技集团公司信息科学研究院 | 一种微***协同设计方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263823A (zh) * | 2011-07-25 | 2011-11-30 | 中兴通讯股份有限公司 | 一种基于云计算的通信方法及通信设备 |
CN104539487A (zh) * | 2015-01-20 | 2015-04-22 | 成都益联科创科技有限公司 | 一种基于云平台的***测试及可靠性评估方法 |
CN106095523A (zh) * | 2016-06-03 | 2016-11-09 | 北京奇虎科技有限公司 | 一种实现安卓编译隔离的方法和*** |
CN108121543A (zh) * | 2017-11-30 | 2018-06-05 | 北京奇安信科技有限公司 | 一种软件代码编译处理方法及装置 |
CN109240662A (zh) * | 2018-08-09 | 2019-01-18 | 赛尔网络有限公司 | 一种基于云平台的软件开发方法、云平台、设备及介质 |
CN110955432A (zh) * | 2019-11-20 | 2020-04-03 | 中国联合网络通信集团有限公司 | 持续集成的发布方法、装置及*** |
CN111240686A (zh) * | 2020-01-09 | 2020-06-05 | 江苏满运软件科技有限公司 | 云编译方法和***、终端设备、云端服务器及存储介质 |
CN111273960A (zh) * | 2020-01-20 | 2020-06-12 | 山东汇贸电子口岸有限公司 | 一种实现云原生的mips架构容器云的方法 |
CN111381829A (zh) * | 2020-03-06 | 2020-07-07 | 北京达佳互联信息技术有限公司 | 在线编程方法、装置、电子设备和存储介质 |
CN111984261A (zh) * | 2019-05-24 | 2020-11-24 | 北京京东尚科信息技术有限公司 | 编译方法与编译*** |
CN112328301A (zh) * | 2020-10-28 | 2021-02-05 | 北京百度网讯科技有限公司 | 维护运行环境一致性的方法、装置、存储介质及电子设备 |
CN113467857A (zh) * | 2020-08-20 | 2021-10-01 | 深圳市洲明科技股份有限公司 | 基于用户定制的fpga***、固件生成方法及显示设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8539464B2 (en) * | 2008-10-30 | 2013-09-17 | International Business Machines Corporation | Distributed just-in-time compilation |
US10140399B2 (en) * | 2016-12-21 | 2018-11-27 | Arm Limited | Corner database generator |
-
2021
- 2021-10-28 CN CN202111265414.3A patent/CN114157654B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263823A (zh) * | 2011-07-25 | 2011-11-30 | 中兴通讯股份有限公司 | 一种基于云计算的通信方法及通信设备 |
CN104539487A (zh) * | 2015-01-20 | 2015-04-22 | 成都益联科创科技有限公司 | 一种基于云平台的***测试及可靠性评估方法 |
CN106095523A (zh) * | 2016-06-03 | 2016-11-09 | 北京奇虎科技有限公司 | 一种实现安卓编译隔离的方法和*** |
CN108121543A (zh) * | 2017-11-30 | 2018-06-05 | 北京奇安信科技有限公司 | 一种软件代码编译处理方法及装置 |
CN109240662A (zh) * | 2018-08-09 | 2019-01-18 | 赛尔网络有限公司 | 一种基于云平台的软件开发方法、云平台、设备及介质 |
CN111984261A (zh) * | 2019-05-24 | 2020-11-24 | 北京京东尚科信息技术有限公司 | 编译方法与编译*** |
CN110955432A (zh) * | 2019-11-20 | 2020-04-03 | 中国联合网络通信集团有限公司 | 持续集成的发布方法、装置及*** |
CN111240686A (zh) * | 2020-01-09 | 2020-06-05 | 江苏满运软件科技有限公司 | 云编译方法和***、终端设备、云端服务器及存储介质 |
CN111273960A (zh) * | 2020-01-20 | 2020-06-12 | 山东汇贸电子口岸有限公司 | 一种实现云原生的mips架构容器云的方法 |
CN111381829A (zh) * | 2020-03-06 | 2020-07-07 | 北京达佳互联信息技术有限公司 | 在线编程方法、装置、电子设备和存储介质 |
CN113467857A (zh) * | 2020-08-20 | 2021-10-01 | 深圳市洲明科技股份有限公司 | 基于用户定制的fpga***、固件生成方法及显示设备 |
CN112328301A (zh) * | 2020-10-28 | 2021-02-05 | 北京百度网讯科技有限公司 | 维护运行环境一致性的方法、装置、存储介质及电子设备 |
Non-Patent Citations (2)
Title |
---|
基于云计算技术的在线编译平台的设计分析;黄诤杰 等;安全模型、算法与编程;第0-3节 * |
嵌入式***可视化编译平台设计;陈凡;电子技术与软件工程;第1-3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN114157654A (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114157654B (zh) | 一种集成电路协同设计***和方法 | |
CN110704518B (zh) | 基于Flink引擎的业务数据处理方法及装置 | |
CN108346028B (zh) | 一种业务审批处理方法、装置及*** | |
WO2019072110A1 (zh) | 应用程序的生成方法、装置、***、设备和介质 | |
CN109766099B (zh) | 前端源码编译方法、装置、存储介质及计算机设备 | |
CN110673923A (zh) | Xwiki***配置方法、***及计算机设备 | |
CN103178996A (zh) | 分布式包交换芯片模型验证***及验证方法 | |
CN111414391A (zh) | 一种访问多数据源的方法及*** | |
CN110806970A (zh) | 一种基于模拟服务端响应的客户端测试方法、装置和电子设备 | |
CN113590595A (zh) | 一种数据库多写方法、装置及相关设备 | |
CN111858376A (zh) | 请求报文生成方法和接口测试方法 | |
AU2020264292A1 (en) | Systems, apparatuses, and methods of processing and managing web traffic data | |
CN114816761A (zh) | 基于eBPF的云服务网格资源优化方法、***及介质 | |
US20210377129A1 (en) | Network building apparatus, network building method, non-transitory computer readable medium storing program | |
WO2019222941A1 (zh) | 用于评估应用部署的方法、设备、计算机程序产品和可读介质 | |
CN114285774B (zh) | 流量录制方法、装置、电子设备及存储介质 | |
CN113282347B (zh) | 插件运行方法、装置、设备及存储介质 | |
US20230096947A1 (en) | Solution provision method and system for smart factory | |
KR102183786B1 (ko) | 마이그레이션 제어 방법 및 마이그레이션 제어 시스템 | |
US20170286181A1 (en) | Deployment and execution of sensing and computational tasks in a network of computing devices | |
JP6988997B2 (ja) | 情報処理装置、並びに、テスト管理方法及びプログラム | |
US20170242677A1 (en) | Automatic software gathering device and method | |
CN113608996B (zh) | 一种镜像编译测试方法、***、装置及可读存储介质 | |
CN113010424B (zh) | 接口自动化测试处理方法、***、计算机设备与存储介质 | |
CN117172205B (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 |