CN114925644A - 在边缘系统验证逻辑系统设计的方法、边缘系统 - Google Patents
在边缘系统验证逻辑系统设计的方法、边缘系统 Download PDFInfo
- Publication number
- CN114925644A CN114925644A CN202210391096.3A CN202210391096A CN114925644A CN 114925644 A CN114925644 A CN 114925644A CN 202210391096 A CN202210391096 A CN 202210391096A CN 114925644 A CN114925644 A CN 114925644A
- Authority
- CN
- China
- Prior art keywords
- edge system
- cloud server
- edge
- task
- verification
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本公开涉及一种在边缘系统验证逻辑系统设计的方法、边缘系统。所述方法包括:接收云服务器发送的所述逻辑系统设计的验证任务;经由所述云服务器接收与所述验证任务对应的计算容器镜像;获取所述逻辑系统设计的描述信息,将所述描述信息载入所述计算容器镜像;运行所述计算容器镜像,通过资源映射器连接所述计算容器镜像和硬件仿真工具,利用所述计算容器镜像和硬件仿真工具执行所述验证任务。采用本方法能够对级联的硬件仿真工具或设备进行管理,在网络出现问题时仍可以继续执行验证任务,提高了用户的使用体验。
Description
技术领域
本公开涉及仿真验证技术领域,特别是涉及一种在边缘系统验证逻辑系统设计的方法、边缘系统。
背景技术
在电子产业中,由于半导体产业的规模日益扩大,EDA(Electronic designautomation)扮演越来越重要的角色。使用这项技术的厂商多是从事半导体器件制造的代工制造商。
目前EDA行业通常使用云平台的弹性计算能力,所以通常通过HPC(HighPerformance Computing)方式上云较多。目前EDA行业中通常要使用原型验证,进而确保功能模块的可靠性和稳定性。
然而,目前原型验证和云平台进行结合存在如下问题:对于EDA行业的原型验证来说,需要使用自己的FPGA(Field Programmable Gate Array)设备,但是每个公司对应的FPGA设备不相同,并且均存在各自对应的拓扑连接设计。目前的云平台数据因为兼容各家的硬件产品,很难考虑各个公司设备的各种情况。如GPU、FPGA设备等,这些设备是插在服务器或者物理机中的,并不是通过网络与平台连接的。而通常情况下云平台是和服务器或者物理机连接,所以目前的云平台未考虑各个设备之间的级联情况,无法对级联的硬件仿真工具或设备进行管理。
发明内容
基于此,有必要针对上述技术问题,提供一种能够对级联的硬件仿真工具或设备进行管理的在边缘系统验证逻辑系统设计的方法、边缘系统。
第一方面,本公开提供了一种在边缘系统验证逻辑系统设计的方法。所述方法包括:
接收云服务器发送的所述逻辑系统设计的验证任务;
经由所述云服务器接收与所述验证任务对应的计算容器镜像;
获取所述逻辑系统设计的描述信息,将所述描述信息载入所述计算容器镜像;
运行所述计算容器镜像,通过资源映射器连接所述计算容器镜像和硬件仿真工具,利用所述计算容器镜像和硬件仿真工具执行所述验证任务。
在其中一个实施例中,所述经由所述云服务器接收与所述验证任务对应的计算容器镜像进一步包括:
经由云服务器确定执行所述验证任务所需的预估资源;
经由云服务器确定所述边缘系统是否满足所述预估资源;
响应于所述边缘系统满足所述预估资源,向所述边缘系统发送所述计算容器镜像。
在其中一个实施例中,所述经由所述云服务器接收与所述验证任务对应的计算容器镜像进一步包括:
响应于所述边缘系统不满足所述预估资源,所述方法还包括:
将所述验证任务加入待执行队列。
在其中一个实施例中,所述计算容器镜像包括下述中的至少一项:运行所述验证任务所需的软件、运行环境、或配置。
在其中一个实施例中,所述将所述描述信息载入所述计算容器镜像,包括:
将所述逻辑系统设计的描述信息所在的目录载入所述计算容器镜像,所述目录包括本地目录或者所述云服务器的云端目录。
在其中一个实施例中,所述资源映射器至少包括:
配置文件解析单元,配置为用于解析与所述硬件仿真工具关联的配置文件;
驱动单元,配置为用于根据所述配置文件经由所述边缘系统的接口来驱动所述硬件仿真工具;
事件处理单元,配置为用于经由所述边缘系统的接口向所述硬件仿真工具发送与所述验证任务关联的第一信息以及经由所述边缘系统的接口从所述硬件仿真工具接收与所述验证任务的执行结果关联的第二信息。
在其中一个实施例中,所述第一信息以第一格式存储,所述第二信息以第二格式存储;所述资源映射器还配置为用于将以第一格式存储的第一信息转换为所述第二格式,以及将以第二格式存储的第二信息转换为所述第一格式。
第二方面,本公开还提供了一种边缘系统,所述边缘系统包括:
接口,用于连接硬件仿真工具;
存储器,存储一组计算机指令;以及
至少一个处理器,用于执行所述计算机指令以使得所述边缘系统执行上述所述的方法。
第三方面,本公开还提供了一种逻辑系统设计的验证云计算系统,所述云计算系统包括:
云服务器,用于从用户主机处接收所述逻辑系统设计的验证任务,将所述验证任务发送至边缘系统;以及
如上所述的边缘系统,其中,所述云服务器与所述用户主机处于同一个私有网络中。
第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本公开提出的一种在边缘系统验证逻辑系统设计的方法、边缘系统,通过边缘系统运行计算容器镜像能够避免云平台在峰值时期因计算、网络、或存储等负载过大,出现卡顿体验不佳等问题。并且因为计算容器镜像是在边缘系统运行的,所以验证任务在网络出现问题时仍可以继续运行,提高了用户的使用体验。并且在进行验证任务时,计算容器镜像可以通过资源映射器访问硬件仿真工具,能够实现对硬件仿真工具的管理。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本公开实施例中电子设备的示意图;
图1B为本公开实施例中云服务器的示意图;
图1C为本公开实施例中云计算系统的示意图;
图2A为本公开实施例中云服务器的架构示意图;
图2B为本公开实施例中边缘系统的架构示意图;
图2C为本公开实施例中资源映射器的架构示意图;
图3A为本公开实施例中循环流程示意图;
图3B为本公开实施例中验证流程示意图;
图4为本公开实施例中在边缘系统验证逻辑系统设计的方法的流程示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在本公开存在的技术术语中,
上云:指企业以互联网为基础进行信息化基础设施、管理、业务等方面应用,并通过互联网与云计算手段连接社会化资源、共享服务及能力的过程。
原型验证(验证任务):是SOC基于FPGA的一种验证方式,一般是在前端RTL(Register Transfer Level)设计和RTL仿真之后。FPGA和ASIC前端代码都是基于VerilogHDL开发的,所以ASIC代码理论上是可以在FPGA平台上跑起来的。在流片之前,原型验证是尽可能的去确定芯片功能的正确性的一种验证方式。
VNC(Virtual Network Console):它是虚拟网络控制台的缩写。
目前EDA上云通常针对的是传统的云计算平台,但是传统的云计算平台一般运行于数据中,基于良好的计算、存储和网络条件才可以正常应用,并且通常情况下考虑的是通用的应用场景的需求,适合不需要使用异构设备,以及对数据安全性不高的应用。传统的云计算平台对于和原型验证结合来说还存在如下问题:
(1)由于进行原型验证的软件通常使用Qt编写的界面,且通过VNC连接远端的服务器使用该软件。而上云后,云平台采用应用集中管控的方式,并且云平台受到云服务器算力、网络等条件的制约,一旦服务器负载过高或者网络出现问题,会影响用户体验,如VNC卡顿,显示不清晰等问题。当大量云计算平台连接的终端同时启动,达到业务高峰期时,云平台和终端会因为瞬时且高并发的业务处理请求出现响应缓慢的问题,进而影响用户的体验,且可能会出现原型验证中断等问题,影响工作效率。
(2)EDA软件中使用的设计文件(例如,RTL文件)是较为重要的,而在原型验证时,若将设计文件放在云平台上,则可能会存在安全性的问题。
本公开提供的一种在边缘系统验证逻辑系统设计的方法、边缘系统,提供了一种边缘系统和云服务器之间的全新进行验证任务的方法,意图至少部分地解决上述多个问题。
需要理解的是,本公开实施例中的验证任务仅仅以原型验证进行举例说明,实际上还可以包括电子设计自动化时的其他任务,在本公开中不进行限制验证任务的具体类型。
图1A为本公开实施例中电子设备100的示意图。
如图1A所示,电子设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在计算机设备内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路。处理器102可以用于执行与本公开描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1A所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令、逻辑系统设计的描述信息等)。如图1A所示,存储器存储的数据可以包括程序指令(例如,用于实现本公开的在边缘系统验证逻辑系统设计的方法的程序指令)以及要处理的数据(例如,存储器可以存储在执行验证任务中产生的数据等)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向电子设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将电子设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。在一些实施例中,该外围接口108可以和硬件仿真工具连接。在一些实施例中,电子设备100可以通过资源映射器和硬件仿真工具连接。
总线110可以被配置为在电子设备100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述电子设备100的构成架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该电子设备100的构成架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述电子设备100的构成架构中也可以仅包含实现本公开实施例方案所必需的组件,而不必包含图中所示的全部组件。
可以理解的是,图1A的电子设备100可以用作云服务器或者是边缘系统的主机。
图1B示出了本公开实施例提供的一种云服务器120的示意图。
如图1B所示,云服务器120可以包括多个云服务器(122、124)。这些云服务器例如可以是图1A所示的电子设备100。云服务器120可以用于提供云计算资源、计算容器镜像以及逻辑系统设计的描述信息。
图1C示出了本公开实施例提供的一种云计算系统的示意图。
如图1C所示,本公开的云计算系统可以包括云服务器120和边缘系统130。
在一些实施例中,云服务器120可以从用户主机接收逻辑系统设计的验证任务,以及将验证任务发送至边缘系统130中。逻辑系统设计通常可以是利用电子设计自动化(Electronic design automation,EDA)工具实现的芯片设计。
边缘系统130可以包括边缘主机134和硬件仿真工具134a。
边缘主机134可以是如图1A所示的电子设备100。边缘主机134可以与硬件仿真工具134a连接以执行验证任务,并提供连接到云服务器120的接口和连接到硬件仿真工具134a的接口。在一些实施例中,边缘主机134可以包括用户实际操作的主机,例如,可以向云服务器120发送验证任务。硬件仿真工具134a可以包括原型验证工具、与原型验证工具连接的子卡、硬件仿真器(emulator)等。
尽管图1C中仅示出有限数量的边缘系统130,但是本领域技术人员可以理解任意数量的边缘系统130可以根据实际需要而提供。边缘主机134和硬件仿真工具134a也不一定采用一一配对的形式来提供。例如,一台边缘主机134可以与多台硬件验证工具134a对接。
图2A为本公开实施例中云服务器120的架构示意图。云服务器120中可以包括控制台220、数据存储系统240。通常情况下用户可以通过控制台220控制云服务器120。
控制台220可以配置为用户提供控制云服务器120的交互界面。在一些实施例中,控制台220可以向用户(例如,芯片设计公司的雇员)提供一个命令行控制台/可视化界面,允许用户选择进行验证任务的边缘系统130、确定逻辑系统设计的描述信息(例如,设计文件、RTL文件等)、以及确定验证任务对应的计算容器镜像。控制台220还可以允许用户通过本地主机发送验证任务至云服务器120。可以理解的是,尽管控制台220运行在云服务器120上,但是控制台220的命令行控制台/可视化界面可以显示在用户的本地主机上。
计算容器镜像至少包括下述中的一项:运行验证任务所需的软件、运行环境、或参数配置等。在一些实施例中,参数配置可以定义在边缘系统130中需要调用的资源,例如,CPU资源、内存资源、以及硬件仿真工具资源等。
数据存储系统240可以存储用户需要进行逻辑系统设计的描述文件、仿真数据等。
控制台220还可以包括接口2201。通过接口2201,云服务器120可以与边缘系统130进行连接,将逻辑系统设计的描述(例如,源代码)和与验证任务对应的计算容器镜像通过接口2201发送至边缘系统130。可以理解的是,该接口2201可以和多个边缘系统130连接,该接口通常为软件类接口。
在一些实施例中,控制台220还可以包括分析器2202,配置为申请边缘主机的使用权,以确保执行验证任务的边缘系统130能够满足验证任务所需的预估资源(例如,执行验证任务时所占用的网络流量数据、空间数据、CPU数据、内存数据等等)。分析器2202还可以配置为在预先设置的时间点,申请边缘系统130的使用权。
在一些实施例中,分析器2202可以确定验证任务所需的预估资源,并确定与云服务器120连接的一个或多个边缘系统130中是否存在满足所需预估资源的边缘系统130。若存在满足预估资源的边缘系统130,云服务器120可以占用该边缘系统130并指示该边缘系统130执行该验证任务。云服务器120也可以设置在预先设置的时间点,申请边缘系统130的使用权限,占用该边缘系统130执行该验证任务,在该时间点时该边缘系统130不执行其他验证任务。
若未存在满足预估资源的边缘系统130,且在与云服务器120连接的所有边缘系统130均不满足预估资源的情况下,上述验证任务还需执行。此时分析器2202可以创建待执行队列,将验证任务加入待执行队列,进而执行循环流程。
图3A为本公开实施例中循环流程300的示意图。
循环流程300可以包括:分析器2202创建待执行队列302、将验证任务加入待执行队列中304、当任意一个边缘系统130满足所述待执行队列中验证任务的预估资源时,发送计算容器镜像至满足预估资源的边缘系统130,使该边缘系统130执行所述待执行队列中的验证任务306。可以理解的是,上述提及的边缘系统130均是与云服务器120连接的边缘系统。
进一步地,在一些实施例中,在分析器2202确定未存在满足验证任务的预估资源的边缘系统130的情况下,分析器2202可以创建待执行队列,将无法执行的验证任务加入待执行队列中。经过一段时间后(该一段时间可以是10分钟、5分钟等,本领域技术人员可根据实际场景进行设置,在本公开的实施例中不进行限制具体时间),分析器2202确定待执行队列中的验证任务所需的预估资源。待执行队列中的验证任务可以为一个或多个,且均可以按照加入待执行队列的时间倒序顺序或者正序顺序进行排列(通常情况下可以按照加入时间顺序倒序进行排列,进而可以保证先加入待执行队列的验证任务先执行,以保证优先级)。分析器2202继续确定与云服务器120连接的每个边缘系统130是否存在任意一个满足上述待执行队列中验证任务的预估资源的边缘系统130。若存在,则占用该边缘系统130。若不存在,则:“分析器2202继续确定与云服务器120连接的每个边缘系统130是否存在任意一个满足上述待执行队列中验证任务的预估资源的边缘系统130,”直至分析器2202确定存在满足待执行队列中验证任务的预估资源的边缘系统130,占用该边缘系统130执行验证任务。分析器2202将执行的验证任务从待执行队列中删除,得到第一待执行队列。进而分析器2202判断第一待执行队列中是否还存在验证任务,若存在,则:“分析器2202继续确定与云服务器132连接的每个边缘系统130是否存在任意一个满足上述待执行队列中验证任务的预估资源的边缘系统130”,直至分析器2202确定第一待执行队列中未存在所述验证任务。
控制台220还可以包括分发器2203,配置为将数据存储系统240中存储的进行逻辑系统设计的描述信息,或,在本地主机中存储的进行逻辑系统设计的描述信息下发至执行验证任务的边缘系统130,及将计算容器镜像发送至执行验证任务的边缘系统130,以及发送验证任务至边缘系统130。
在一些实施例中,分发器2203将验证任务发送至边缘系统130后,分析器2202可以确定边缘系统130是否能够执行该验证任务,并进行验证流程。
图3B示出了根据本公开实施例的提供的验证流程310的示意图。验证流程310可以包括:分析器2202可以确定边缘系统130执行所述验证任务所需的预估资源312、分析器2202可以确定边缘系统130是否满足所述预估资源314、响应于边缘系统130满足所述预估资源,则分发器2203可以向该边缘系统130发送计算容器镜像316。进而该边缘系统130执行验证任务。分析器2202确定与云服务器120连接的边缘系统130不满足预估资源的情况,可能包括边缘系统130未满足执行验证任务时所占用的网络流量数据、空间数据、CPU数据等等任意一种或多种。也可能包括该边缘系统130被占用,在执行其他的任务(该任务可以包括:芯片设计时的其他验证任务或者设计任务)。响应于边缘系统130不满足所述预估资源,则分析器2202可以将该验证任务加入待执行队列318,以执行上述的循环流程300。
图2B为本公开实施例中边缘系统130的架构示意图。如图2B所示,边缘系统130中可以包括下载器202、接收器204、运行器206、接口208,其中,下载器202、接收器204、运行器206可以通过一个或者多个处理器来实现。
下载器202,可以配置为将进行验证任务的计算容器镜像下载至边缘系统130中。
接收器204,可以配置为接收分发器2203发送的进行逻辑系统设计的描述信息的所在目录,以及,接收云服务器120发送的逻辑系统设计的验证任务,且接收云服务器120发送的与验证任务对应的计算容器镜像。
运行器206,可以配置为将描述信息载入边缘系统130下载的计算容器镜像中,并运行该计算容器镜像。
接口208中可以包括与硬件仿真工具134a连接的接口2082、与云服务器120连接的接口2804。
在一些示例性的实施例中,在运行器206中运行计算容器镜像时,本地主机可以通过远程控制软件(例如,VNC(Virtual Network Console))连接计算容器镜像暴露出的仿真入口(例如,ip或port),进而利用计算容器镜像和硬件仿真工具134a执行验证任务。
在一些实施例中,运行器206可以将逻辑系统设计的描述信息所在的目录挂载至计算容器镜像中。挂载可以是指由操作系统使一个存储设备(诸如硬盘、CD-ROM或共享资源)上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。挂载后,计算容器镜像可以读取逻辑系统设计的描述信息。该逻辑系统设计的描述信息可以存储在本地主机中,也可以存储在云服务器120中。相应地,该逻辑系统设计的描述信息所在的目录可以包括:本地主机的本地目录或者云服务器的云端目录。
运行器206中还可以包括资源映射器,配置为连接计算容器镜像和硬件仿真工具134a。
图2C示出了本公开实施例中资源映射器162的架构示意图。
如图2C所示,资源映射器162至少包括以下单元,以实现连接和控制硬件仿真工具134a。
配置文件解析单元1621,可以用于解析与所述硬件仿真工具134a关联的配置文件,读取配置文件中配置信息,进而可以通过配置信息管理硬件仿真工具134a。
驱动单元1623,可以用于根据配置文件中的配置信息并通过边缘系统130的接口2082连接并驱动硬件仿真工具134a。驱动硬件仿真工具134a可以包括:初始化硬件仿真工具134a、读写硬件仿真工具134a、以及配置硬件仿真工具134a的状态。状态可以包括连接状态和初始状态等。
事件处理单元1625,可以用于经过边缘系统130的接口2082向硬件仿真工具134a发送与验证任务关联的第一信息。该第一信息通常可以指的是验证任务对应的信息。事件处理单元1625还可以经过边缘系统130的接口2082从硬件仿真工具134a接收与验证任务的执行结果关联的第二信息。该第二信息通常可以指的是硬件仿真工具134a返回至边缘系统130的执行结果信息。通常情况下,发送的验证任务对应的信息和接收的验证任务的结果信息格式不相同,所以称之为第一信息和第二信息。
在一些实施例中,该第一信息以第一格式存储,该第二信息以第二格式存储。需要说明的是,第一格式和第二格式可以根据实际情况进行选择设置,在本实施例中不进行限制具体的格式。当边缘系统130通过资源映射器162控制硬件仿真工具134a时,可能会存在边缘系统130中的与验证任务关联的第一信息在硬件仿真工具134a中识别不出的情况;也可能会存在硬件仿真工具134a进行验证任务后返回的第二信息在边缘系统130中识别不出的情况。所以,资源映射器162还可以将第一信息和第二信息进行转换格式,例如,将以第一格式存储的第一信息转换为第二格式,以及将以第二格式存储的第二信息转换为第一格式。
在一些示例性的实施例中,资源映射器162可以通过Mapper公共代码SDK来开发,以实现配置文件解析单元1621、驱动单元1623、事件处理单元1625的功能。
在一些实施例中,云服务器120可以通过Kubernetes构建,并保留Kubernetes的特性。因此云服务器120能够管理连接的边缘系统130上的容器化的应用。云服务器120和边缘系统130中均可以部署KubeEdge中的组件。
在一些实施例中,通过资源映射器162将硬件仿真工具134a与边缘系统130中的计算容器镜像连接后,云服务器120可以通过KubeEdge中的组件,如DeviceController对硬件仿真工具134a进行管理,比如针对硬件仿真工具134a的状态下发对应管理动作,在边缘系统130执行验证任务的时候可以实时查看硬件仿真工具134a的状态等等。云服务器120还可以为验证任务分配、释放和保留特定的硬件仿真工具134a。
图4示出了根据本公开实施例提供的在边缘系统验证逻辑系统设计的方法400的流程图。方法400可以由如图1A所示的电子设备100执行。验证任务在本公开中可以包括原型验证,通常是确定芯片功能的正确性的一种验证方式。需要理解的是,本公开仅仅以原型验证进行举例说明,实际上还可以包括电子设计自动化时的其他任务,在本公开中不进行限制验证任务的具体类型。验证任务可以由用户通过本地主机发送到云服务器120中,并由云服务器120接收,进而云服务器120将验证任务发送至边缘系统130。方法400可以包括如下步骤:
在步骤S402,边缘系统(例如,图2B中的边缘系统130)可以接收云服务器(例如,图1B、图1C或图2A中的云服务器120)发送的所述逻辑系统设计的验证任务。
在一些实施例中,云服务器(例如,图1C中的云服务器120)可以通过Kubernetes构建,并保留Kubernetes的特性。因此云服务器能够管理连接的边缘系统(例如,图1C中的边缘系统130)上的容器化的应用。云服务器和边缘系统中均可以部署KubeEdge中的组件,因此云服务器可以允许多个边缘系统的接入。通常情况下,云服务器中可以部署KubeEdge中的CloudCore组件,进而可以通过CloudCore组件与边缘系统通信。进一步地,云服务器可以基于websocket或者quic协议连接多个边缘系统。该CloudCore组件可以保障当云服务器和边缘系统间的链路存在问题的时候,业务不受到影响。边缘系统可以部署KubeEdge中的EdgeCore组件,进而可以通过EdgeCore组件与云服务器进行通信。在需要进行验证任务时,用户可以将验证任务输入至云服务器中。云服务器可以找到与之连接的多个边缘系统中可以进行验证任务的边缘系统,将逻辑系统设计的验证任务发送至进行验证任务的边缘系统。该边缘系统可以接收云服务器发送的验证任务。
在步骤S404,边缘系统经由所述云服务器可以接收与所述验证任务对应的计算容器镜像。
在一些实施例中,云服务器中通常情况下可以存储大量的用于电子设计的不同类型的容器镜像。所以边缘系统接收到该验证任务后,可以在云服务器中确定与上述验证任务对应的计算容器镜像,并将该计算容器镜像下载至边缘系统中。或者,云服务器可以确定与上述验证任务对应的计算容器镜像,并将该计算容器镜像发送至边缘系统。所述计算容器镜像可以包括运行所述验证任务所需的软件、运行环境、或配置中的至少一项。
在一些实施例中,所述边缘系统经由所述云服务器接收与所述验证任务对应的计算容器镜像,进一步包括:经由云服务器可以确定执行所述验证任务所需的预估资源(例如,图3B中的步骤312);经由云服务器可以确定所述边缘系统是否满足所述预估资源(例如,图3B中的步骤314);响应于所述边缘系统满足所述预估资源,可以向所述边缘系统发送所述计算容器镜像(例如,图3B中的步骤316);响应于所述边缘系统不满足所述预估资源,可以将所述验证任务加入待执行队列(例如,图3B中的步骤318)。本实施例中的具体操作步骤可以参照图3B的描述。加入待执行队列后,云计算系统(例如,图1C所示的云计算系统)可以执行循环流程(例如,图3A中的循环流程300)。
这样,通过确定执行所述验证任务所需的预估资源,进而确定所述边缘系统是否满足所述预估资源,确定能够执行验证任务的边缘系统,后续可以使用该边缘系统执行验证任务。在执行验证任务前,云计算系统能够直接确定执行该验证任务的边缘系统,进而在执行验证任务时直接找到对应的边缘系统,提升执行验证任务时的处理速度。
在一些实施例中,循环流程可以包括:云服务器可以创建待执行队列(例如,图3A中的步骤302),将所述验证任务加入待执行队列(例如,图3A中的步骤304),当任意一个边缘系统满足所述待执行队列中验证任务的预估资源时,发送计算容器镜像至满足预估资源的边缘系统,使该边缘系统执行所述待执行队列中的验证任务(例如,图3A中的步骤306)。本实施例中的具体操作步骤可以参照图3A的描述。
这样,在边缘系统不满足预估资源,即不能执行验证任务的情况下,云服务器可以创建待执行队列,并且将验证任务加入待执行队列。进而不断循环,直至验证任务通过边缘系统执行以及待执行队列中不存在验证任务。由此能够确保边缘系统可以执行每个验证任务。
在步骤S406,边缘系统可以获取所述逻辑系统设计的描述信息,将所述描述信息载入所述计算容器镜像。在一些实施例中,边缘系统(例如,图2B中的边缘系统130)可以将所述逻辑系统设计的描述信息所在的目录载入边缘系统的计算容器镜像中。所述目录包括本地目录或者所述云服务器的云端目录。当逻辑系统设计的描述存储在本地主机的本地目录中时,可以保证设计文件的安全性。当逻辑系统设计的描述存储在云服务器的云端目录中时,其他地区的边缘系统也可使用该设计文件,能够提升执行验证任务的灵活性。
在步骤S408,边缘系统可以运行所述计算容器镜像,通过资源映射器(例如,图2C中的资源映射器162)连接所述计算容器镜像和硬件仿真工具(例如,图1C或图2B中的硬件仿真工具134a),利用所述计算容器镜像和硬件仿真工具执行所述验证任务。
边缘系统执行验证任务后,可以得到验证结果。用户可以选择是否从边缘系统中下载验证结果,或者是否将验证结果上传至云服务器,以及是否删除逻辑系统设计的描述信息以及计算容器镜像。
在一些实施例中,所述资源映射器(例如,图2C中的资源映射器162)可以包括:
配置文件解析单元(例如,图2C中的配置文件解析单元1621),可以配置为用于解析与所述硬件仿真工具关联的配置文件。
驱动单元(例如,图2C中的驱动单元1623),可以配置为用于根据所述配置文件经由边缘系统的接口(例如,图2B中的接口2082)驱动所述硬件仿真工具。
事件处理单元(例如,图2C中的事件处理单元1625),可以配置为用于经由所述边缘系统的接口(例如,图2B中的接口2082)向所述硬件仿真工具发送与所述验证任务关联的第一信息,以及,经由所述边缘系统的接口(例如,图2B中的接口2082)从所述硬件仿真工具接收与所述验证任务的执行结果关联的第二信息。
在一些实施例中,所述第一信息可以以第一格式存储,所述第二信息可以以第二格式存储。所述资源映射器还可以配置为用于将以第一格式存储的第一信息转换为所述第二格式,以及将以第二格式存储的第二信息转换为所述第一格式。
上述在边缘系统验证逻辑系统设计的方法中,云服务器和边缘系统中均部署KubeEdge,能够保障当云服务器和边缘系统间的链路存在问题的时候,业务可以不受到影响。并且通过边缘系统运行计算容器镜像能够避免云平台在峰值时期因计算,网络,或存储等负载过大,出现卡顿体验不佳等问题。
因为计算容器镜像是在边缘系统运行的,所以验证任务在网络出现问题时仍可以继续运行,提高了用户的使用体验。在进行验证任务时,计算容器镜像可以通过资源映射器访问硬件仿真工具,实现对硬件仿真工具的管理。进行验证任务后,用户可以选择是否从边缘系统中下载验证结果或者是否将验证结果上传至云服务器,以及是否删除逻辑系统设计的描述信息以及计算容器镜像,以实现对验证结果的集中管理。删除逻辑系统设计的描述信息以及计算容器镜像能够保证安全性。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
本公开实施例还提供了一种边缘系统(例如,图2B中的边缘系统130),所述边缘系统可以包括:
接口(例如,图2B所示的接口2082),可以用于连接硬件仿真工具(例如,图1C、图2B、图2C中的硬件仿真工具134a)。
存储器,可以存储一组计算机指令。
以及至少一个处理器,可以用于执行所述计算机指令以使得所述边缘系统执行与本公开一致的在边缘系统验证逻辑系统设计的方法,诸如上述示例性方法之一(例如,图3A所示的方法300或图3B所示的方法310或图4所示的方法400)。
本公开实施例还提供了一种云计算系统(例如,图1C所示的云计算系统130),云计算系统可以包括云服务器(例如,如图1B的云服务器122、124)和边缘系统(例如,如图2B的边缘系统130)。
云服务器,可以用于从用户主机(例如,上述提及的本地主机)处接收所述逻辑系统设计的验证任务,将所述验证任务发送至边缘系统。
以及边缘系统,其中,所述云服务器与所述用户主机处于同一个私有网络中,以保证安全性。
用户主机可以是私有网络中的任何电脑或者服务器,也可以包括云服务器。
本公开还提供了一种计算机可读存储介质,其上可以存储有计算机程序。该计算机程序被处理器执行时实现与本公开一致的在边缘系统验证逻辑系统设计的方法,诸如上述示例性方法之一(例如,图3A所示的方法300或图3B所示的方法310或图4所示的方法400)。
本公开还提供了一种计算机程序产品,可以包括计算机程序。该计算机程序被处理器执行时实现与本公开一致的在边缘系统验证逻辑系统设计的方法,诸如上述示例性方法之一(例如,图3A所示的方法300或图3B所示的方法310或图4所示的方法400)。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本公开所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本公开所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本公开专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开的保护范围应以所附权利要求为准。
Claims (10)
1.一种在边缘系统验证逻辑系统设计的方法,其特征在于,所述方法包括:
接收云服务器发送的所述逻辑系统设计的验证任务;
经由所述云服务器接收与所述验证任务对应的计算容器镜像;
获取所述逻辑系统设计的描述信息,将所述描述信息载入所述计算容器镜像;
运行所述计算容器镜像,通过资源映射器连接所述计算容器镜像和硬件仿真工具,利用所述计算容器镜像和硬件仿真工具执行所述验证任务。
2.如权利要求1所述的方法,其特征在于,所述经由所述云服务器接收与所述验证任务对应的计算容器镜像进一步包括:
经由云服务器确定执行所述验证任务所需的预估资源;
经由云服务器确定所述边缘系统是否满足所述预估资源;
响应于所述边缘系统满足所述预估资源,向所述边缘系统发送所述计算容器镜像。
3.根据权利要求2所述的方法,其特征在于,所述经由所述云服务器接收与所述验证任务对应的计算容器镜像进一步包括:
响应于所述边缘系统不满足所述预估资源,所述方法还包括:
将所述验证任务加入待执行队列。
4.如权利要求1所述的方法,其特征在于,所述计算容器镜像包括下述中的至少一项:运行所述验证任务所需的软件、运行环境、或配置。
5.如权利要求1所述的方法,其特征在于,所述将所述描述信息载入所述计算容器镜像,包括:
将所述逻辑系统设计的描述信息所在的目录载入所述计算容器镜像,所述目录包括本地目录或者所述云服务器的云端目录。
6.如权利要求1所述的方法,其特征在于,所述资源映射器至少包括:
配置文件解析单元,配置为用于解析与所述硬件仿真工具关联的配置文件;
驱动单元,配置为用于根据所述配置文件经由边缘系统的接口驱动所述硬件仿真工具;
事件处理单元,配置为用于经由所述边缘系统的接口向所述硬件仿真工具发送与所述验证任务关联的第一信息,以及,经由所述边缘系统的接口从所述硬件仿真工具接收与所述验证任务的执行结果关联的第二信息。
7.如权利要求6所述的方法,其特征在于,所述第一信息以第一格式存储,所述第二信息以第二格式存储;所述资源映射器还配置为用于将以第一格式存储的第一信息转换为所述第二格式,以及将以第二格式存储的第二信息转换为所述第一格式。
8.一种边缘系统,其特征在于,所述边缘系统包括:
接口,用于连接硬件仿真工具;
存储器,用于存储一组计算机指令;以及
至少一个处理器,用于执行所述计算机指令以使得所述边缘系统实现如权利要求1-7中任一项所述的方法。
9.一种云计算系统,其特征在于,所述云计算系统包括:
云服务器,用于从用户主机处接收所述逻辑系统设计的验证任务,将所述验证任务发送至边缘系统;以及
如权利要求8所述的边缘系统,其中,所述云服务器与所述用户主机处于同一个私有网络中。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210391096.3A CN114925644A (zh) | 2022-04-14 | 2022-04-14 | 在边缘系统验证逻辑系统设计的方法、边缘系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210391096.3A CN114925644A (zh) | 2022-04-14 | 2022-04-14 | 在边缘系统验证逻辑系统设计的方法、边缘系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114925644A true CN114925644A (zh) | 2022-08-19 |
Family
ID=82806145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210391096.3A Pending CN114925644A (zh) | 2022-04-14 | 2022-04-14 | 在边缘系统验证逻辑系统设计的方法、边缘系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114925644A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115442374A (zh) * | 2022-11-07 | 2022-12-06 | 阿里巴巴(中国)有限公司 | 信令传输方法及设备 |
CN115495198A (zh) * | 2022-09-26 | 2022-12-20 | 中科芯集成电路有限公司 | 一种跨平台的集成电路设计环境构建方法 |
CN115983192A (zh) * | 2022-12-02 | 2023-04-18 | 芯华章科技(北京)有限公司 | 验证系统及配置验证系统的外设子卡资源的方法 |
CN117112135A (zh) * | 2023-08-25 | 2023-11-24 | 合芯科技有限公司 | 一种基于容器的芯片设计平台及平台架构方法 |
-
2022
- 2022-04-14 CN CN202210391096.3A patent/CN114925644A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115495198A (zh) * | 2022-09-26 | 2022-12-20 | 中科芯集成电路有限公司 | 一种跨平台的集成电路设计环境构建方法 |
CN115495198B (zh) * | 2022-09-26 | 2024-07-12 | 中科芯集成电路有限公司 | 一种跨平台的集成电路设计环境构建方法 |
CN115442374A (zh) * | 2022-11-07 | 2022-12-06 | 阿里巴巴(中国)有限公司 | 信令传输方法及设备 |
CN115983192A (zh) * | 2022-12-02 | 2023-04-18 | 芯华章科技(北京)有限公司 | 验证系统及配置验证系统的外设子卡资源的方法 |
CN115983192B (zh) * | 2022-12-02 | 2023-12-26 | 芯华章科技(北京)有限公司 | 验证系统及配置验证系统的外设子卡资源的方法 |
CN117112135A (zh) * | 2023-08-25 | 2023-11-24 | 合芯科技有限公司 | 一种基于容器的芯片设计平台及平台架构方法 |
CN117112135B (zh) * | 2023-08-25 | 2024-09-03 | 合芯科技有限公司 | 一种基于容器的芯片设计平台及平台架构方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114925644A (zh) | 在边缘系统验证逻辑系统设计的方法、边缘系统 | |
CN107506258B (zh) | 用于数据备份的方法和设备 | |
US10599599B2 (en) | Selectable peripheral logic in programmable apparatus | |
CN108028833B (zh) | 一种nas数据访问的方法、系统及相关设备 | |
US10031760B1 (en) | Boot and configuration management for accelerators | |
WO2013128648A1 (ja) | 情報処理装置及び電子制御ユニット及び情報処理方法及びプログラム | |
CN109417488A (zh) | 虚拟网络功能资源管理的方法和设备 | |
CN106095622A (zh) | 数据备份方法及装置 | |
CN114327861A (zh) | 执行eda任务的方法、装置、系统和存储介质 | |
CN110119304A (zh) | 一种中断处理方法、装置及服务器 | |
CN109451098A (zh) | Fpga加速卡mac地址配置方法、装置及加速卡 | |
CN114706690B (zh) | 一种Kubernetes容器共享GPU方法及系统 | |
CN117909031A (zh) | 用于数据处理单元的报文处理方法、计算机设备及介质 | |
CN111143033B (zh) | 基于可伸缩操作系统的操作执行方法及装置 | |
CN116724543A (zh) | 容器集群的管理方法和装置 | |
CN113296878A (zh) | 一种容器处理方法、装置、电子设备及系统 | |
CN117149406A (zh) | 资源调度方法、装置、系统、计算机设备及存储介质 | |
EP4407467A1 (en) | Autosar software verification method and apparatus, device, and storage medium | |
CN109218259B (zh) | 许可管理方法及装置、applm功能实体及计算机可读存储介质 | |
JP5884566B2 (ja) | バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラム | |
CN115016862A (zh) | 基于Kubernetes集群的软件启动方法、装置、服务器及存储介质 | |
CN114827177A (zh) | 一种分布式文件系统的部署方法、装置及电子设备 | |
CN111371606A (zh) | 一种使用rook部署ceph集群时指定monitor ip的方法 | |
US20240362303A1 (en) | Method, device and storage media for managing a license | |
CN117172206B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 1840, Hatching Building, No. 99 Tuanjie Road, Nanjing Area, China (Jiangsu) Pilot Free Trade Zone, Nanjing, Jiangsu, 211899 Applicant after: Xinhuazhang Technology Co.,Ltd. Address before: Room 1840, hatch Eagle building, No. 99, Tuanjie Road, Nanjing area, China (Jiangsu) pilot Free Trade Zone, Suzhou, Jiangsu 215000 Applicant before: Xinhuazhang Technology Co.,Ltd. |