CN114327861A - 执行eda任务的方法、装置、系统和存储介质 - Google Patents

执行eda任务的方法、装置、系统和存储介质 Download PDF

Info

Publication number
CN114327861A
CN114327861A CN202111374748.4A CN202111374748A CN114327861A CN 114327861 A CN114327861 A CN 114327861A CN 202111374748 A CN202111374748 A CN 202111374748A CN 114327861 A CN114327861 A CN 114327861A
Authority
CN
China
Prior art keywords
subtask
computing
eda
subtasks
computing resources
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.)
Granted
Application number
CN202111374748.4A
Other languages
English (en)
Other versions
CN114327861B (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.)
Xinhuazhang Technology Co ltd
Original Assignee
Xinhuazhang 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 Xinhuazhang Technology Co ltd filed Critical Xinhuazhang Technology Co ltd
Priority to CN202111374748.4A priority Critical patent/CN114327861B/zh
Publication of CN114327861A publication Critical patent/CN114327861A/zh
Priority to US17/955,178 priority patent/US20230153158A1/en
Application granted granted Critical
Publication of CN114327861B publication Critical patent/CN114327861B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种执行EDA任务的方法、计算装置、计算系统、以及非暂态计算机可读存储介质。该方法包括:根据所述EDA任务,将所述EDA任务重构为根据给定流程顺序执行的多个子任务,所述多个子任务包括第一子任务和第二子任务;确定与所述多个子任务对应的多个计算资源,所述多个计算资源包括与所述第一子任务对应的第一计算资源和与所述第二子任务对应的第二计算资源;以及根据所述给定流程依次调用所述多个计算资源以执行所述多个子任务。

Description

执行EDA任务的方法、装置、系统和存储介质
技术领域
本申请涉及计算机领域,尤其涉及一种用于执行电子设计自动化(ElectronicDesign Automation,EDA)任务的方法、装置、系统和存储介质。
背景技术
近年来,伴随着芯片设计规模的增大,在验证过程中本地算力在一些情况下会捉襟见肘。此外,验证过程通常涉及多种工具,例如,软件仿真器、形式化验证工具、硬件仿真器(包括原型验证装置)。完整的芯片设计会涉及更多的工具。
因此,在芯片设计行业,一方面存在着部分工具在特定时段的计算资源紧缺,另一方面又存在着由于工具链过于长而导致部分工具无法充分利用计算资源的情况。
如何整合现有EDA工具并且提高计算资源的使用效率是一个亟待解决的问题。
发明内容
有鉴于此,本申请提出了一种执行EDA任务的方法、装置、系统和存储介质。
本申请第一方面,提供了一种用于执行EDA任务的方法,包括:根据所述EDA任务,将所述EDA任务重构为根据给定流程顺序执行的多个子任务,所述多个子任务包括第一子任务和第二子任务;确定与所述多个子任务对应的多个计算资源,所述多个计算资源包括与所述第一子任务对应的第一计算资源和与所述第二子任务对应的第二计算资源;以及根据所述给定流程依次调用所述多个计算资源以执行所述多个子任务。
本申请第二方面,提供了一种执行EDA任务的计算装置,包括:存储器,存储用于多个指令;以及至少一个处理器,用于执行所述多个指令以使得所述计算系统进行如第一方面所述的方法。
本申请第三方面,提供了一种执行EDA任务的计算系统,包括:如第二方面所述的计算装置;以及与所述计算装置通信地连接的本地计算资源,所述本地计算资源包括:服务器或硬件验证工具的至少一种。
本申请的第四方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算装置的一组指令,该组指令用于使所述计算装置执行第一方面所述的方法。
本申请提供的用于执行EDA任务的方法、装置、系统和存储介质,通过重构EDA任务的流程以及生成多个子任务,实现了复杂EDA任务执行的自动化以及计算资源配置的优化。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A示出了根据本申请实施例的一种计算装置的示意图。
图1B示出了根据本申请实施例的一种云系统的示意图。
图1C示出了根据本申请实施例的一种EDA计算系统的示意图。
图2A示出了根据本申请实施例的资源管理器的架构示意图。
图2B示出了根据本申请实施例的重构流程。
图2C示出了根据本申请实施例的又一重构流程。
图3示出了根据本申请实施例的执行EDA任务的方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
相比于普通的软件技术或软件工程可以在极少数工具的协助下就完成软件设计任务,在利用EDA技术实现芯片设计的时候涉及多达数十种EDA工具,并且这众多的EDA工具需要根据EDA任务的进度分别调用。现在通常的做法是,由工程师在使用一款EDA工具完成一个EDA任务之后,将该EDA工具产生的结果手动提供给另一个EDA工具继续下一项EDA任务。
EDA工具的这些固有特点至少导致如下几个问题。
第一,手动调用多种EDA工具效率低下。很显然,手动调用EDA需要工程师时刻关注EDA任务的运行情况,并且手动将前一个工具的任务结果赋予下一个工具。这些操作都是效率低下的。
第二,由于缺乏全局的资源配置,使得部分计算资源(例如,硬件仿真器)的紧缺引起多个EDA任务的等候。普遍的情况下,由于硬件仿真器(例如,芯华章科技股份有限公司的HuaEmu)售价昂贵,所以芯片设计公司只能拥有少量的硬件仿真器。而在一个芯片设计公司内部的多个验证工作小组都需要使用硬件仿真器时,就会出现由于硬件仿真器短缺而导致的等候。这实质上是由于缺乏全局的资源配置造成的。
第三,多个EDA工具之间的任务结果无法复用以及彼此印证。例如,使用软件仿真器(simulator)进行验证产生的波形文件和使用硬件仿真器进行验证产生的波形文件在现有技术的下是无法复用和彼此印证。这本质上是由多个EDA工具彼此之间的隔离产生的。
第四,由于现有的云计算需要用户提供芯片设计的源代码,这降低了用户使用云计算来提供计算弹性的积极性。
本申请提供执行EDA任务的方法、装置、系统和计算机可读介质来构建全新的EDA架构,意图至少部分解决上述多个问题。
本申请在此仅以验证工具和逻辑系统设计的验证为例进行说明,但是可以理解的是,本申请提供的执行EDA任务的方法、装置、系统和计算机可读介质可以适用于各种EDA工具,而不限于验证工具。
图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可以配置为存储数据(例如,指令、TCL对象的列表、计算机代码、对象的属性与属性的值等)。如图1A所示,存储器存储的数据可以包括程序指令(例如,用于实现本申请的显示逻辑系统设计的目标模块的方法的程序指令)以及要处理的数据(例如,存储器可以存储在编译过程产生的临时代码、对象的属性与属性的值等)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向计算装置100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将计算装置100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在计算装置100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述计算装置架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该计算装置架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述计算装置架构中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图1B示出了根据本申请实施例的一种云系统120的示意图。
如图1B所示,云系统120可以包括多个云服务器(122、124)。这些云服务器例如可以是图1A所示的计算装置100或者由云计算服务器提供的计算机。云系统120可以用于提供云计算资源。因此,云系统120在本申请中也被称为云计算资源120。
图1C示出了根据本申请实施例的一种EDA计算系统130的示意图。
本申请的EDA计算系统130可以是一个本地的计算系统,并且可以包括计算装置132以及本地计算资源134。
计算装置132可以是如图1A所示的计算装置100。计算装置132可以向用户提供资源管理器,并提供连接到云系统120的接口和连接到计算资源134a和134b的接口。本地主机132还可以将不同的运算任务相应地分配到云端或本地。相关描述将在下文进一步提供。
本地计算资源134可以向用户提供多种EDA工具以及运行该EDA工具的载体。在一些实施例中,本地计算资源134可以包括服务器134a或硬件验证工具134b的至少一种。
服务器134a可以是如图1A所示的主机100。在一些实施例中,服务器134a可以运行至少一种EDA软件工具(例如,软件仿真器(simulator)、形式验证工具等)。服务器134a还可以作为硬件验证工具134b的主机,用于与硬件验证工具134b协同完成验证任务并读取验证结果。
硬件验证工具134b可以示例性地包括原型验证板、硬件仿真器(emulator)等硬件验证工具。
尽管图1C中仅使出有限数量的本地计算资源134,但是本领域技术人员可以理解任意数量的本地计算资源134可以根据实际需要而提供。也就是说,可以存在多个服务器134a和多个硬件验证工具134b。服务器134a和硬件验证工具134b也不一定采用一一配对的形式来提供。例如,一台服务器134a可以与多台硬件验证工具对接。
图2A示出了根据本申请实施例的资源管理器200的架构示意图。资源管理器200可以由图1C中的计算装置132运行。可以理解的是,尽管图1C中仅以一台计算装置132作为示例,计算装置132可以包括多台计算装置。
如图2A所示,资源管理器200可以包括界面层202、网关层204、以及调度层206。资源管理器200可以进一步连接到本地计算资源134。由资源管理器200和本地计算资源134可以构成一个计算系统201。可以理解的是,该计算系统201可以是一个本地系统,也就说,该系统是由用户直接控制的。
界面层202可以配置为向用户提供交互界面。在一些实施例中,界面层202可以向用户(例如,芯片设计公司的雇员)提供一个命令行控制台/可视化界面,允许用户启动EDA任务(例如,一个仿真任务、一个形式化验证任务之类)、追踪EDA任务的执行以及读取EDA任务的执行结果(例如,波形文件、覆盖率文件等)。
在一些实施例中,界面层202可以向用户提供可视化界面,用于向每个EDA任务配置计算资源。通常,一个芯片设计公司可能同时进行多个芯片设计项目,并且一个设计项目内又存在多个子项目需要进行EDA任务。这些项目/子项目可能会在同一时间争夺该资源管理器200可以控制的有限资源,以进行所需的EDA任务。界面层202可以允许用户对不同的项目或者EDA任务分配资源。例如,可以对一个不同的项目分配不同的级别,每个级别对应于不同的调用资源的权限和允许使用的最大资源量。
界面层202可以将这些来自用户的EDA任务指令(例如,启动EDA任务、配置计算资源的指令)发送给网关层204,从而调动计算资源执行EDA任务。
网关层204可以配置为根据来自界面层202的EDA任务,将该EDA任务重构为一个流程以及根据该流程顺序执行的多个子任务。重构流程可以包括多个子任务的执行顺序,从而允许多个子任务根据重构流程顺序执行。
网关层204还可以配置为与云系统120连接,从而可以将一个或多个子任务发送到云系统120进行计算,从而实现对云计算资源的调用。在一些实施例中,网关层204可以包括一个安全网关2042,以确保属于本地计算系统的网关层204与外部的云系统120的通信是安全。可以理解的是,网关层204可以与多个云服务提供商的云系统进行连接。
在一些实施例中,界面层202和网关层204可以由单独的计算装置132提供。例如,界面层202可以在具体用户的个人计算机上实现,而网关层204则可以由与该个人计算机连接的服务器实现。在一些实施例中,界面层202和网关层204可以由同一台计算装置132实现。
网关层204可以为这些子任务选择对应的EDA工具并且为所选择的EDA工具分配对应的计算资源。可以理解的是,网关层204仅能够在计算资源134中提供的EDA工具中进行选择。在一些实施例中,对于EDA任务需要而计算资源134尚未包括的EDA工具,网关层204可以经由界面层202向用户提供新增EDA工具的建议。
在一些实施例中,来自界面层202的EDA任务可以是对一个芯片设计进行覆盖率测试的任务。响应于接收到该EDA任务,网关层204可以对该任务进行重构,并生成一个重构流程。图2B示出了根据本申请实施例的重构流程210。
如图2B所示,这个进行覆盖率测试的EDA任务可以被分解为由多个子任务构成的重构流程210,包括测试用例的生成212、软件仿真测试214、硬件仿真测试216、覆盖率合并218等。网关层204可以为测试用例的生成212选择例如芯华章科技股份有限公司提供的GalaxPSS工具,为软件仿真测试214选择例如芯华章科技股份有限公司提供的GalaxSim工具,为硬件仿真测试216选择例如芯华章科技股份有限公司提供的HuaEmu工具,而为覆盖率合并218选择调用例如芯华章科技股份有限公司提供的XDB数据库工具。
重构流程210还规定了各个子任务的执行顺序。如图2B所示,在完成测试用例的生成212后,可以并行启动软件仿真测试214和硬件仿真测试216。在一些实施例中,网关层204可以根据多个子任务的执行结果,生成EDA任务的执行结果。在这个例子中,软件仿真测试214和硬件仿真测试216的执行结果需要汇总到覆盖率合并218,以得到最终的覆盖率测试结果。可以理解的是,生成EDA任务的最终执行结果也可以由计算资源134中的某一个服务器来进行。这样,多个EDA工具之间的协同可以得到保证,并且软件仿真测试的结果和硬件仿真测试的结果可以存储到同一个数据库,便于后续进行复用和互相印证。
在一些实施例中,当一个子任务完成后,对应的资源可以被释放,以备其他任务的使用。例如,当硬件仿真测试216完成后,对应的硬件验证工具可以将执行结果返回网关层204,并且释放该硬件验证工具。
在一些实施例中,来自界面层202的EDA任务可以是对一个芯片设计进行形式化验证的任务。响应于接收到该EDA任务,网关层204可以类似地对该任务进行重构,并生成一个重构流程。图2C示出了根据本申请实施例的又一重构流程220。
如图2C所示,这个进行形式化验证的EDA任务可以被分解为由多个子任务构成的重构流程220,包括生成逻辑系统设计的网表222、生成形式验证模型224、基于模型的求解226、根据多个求解器(solver)的结果确定形式化验证的结果228等。网关层204可以为生成逻辑系统设计的网表选择例如芯华章科技股份有限公司提供的GalaxSim工具,为生成形式验证模型以及根据多个求解器的结果确定形式化验证的结果选择例如芯华章科技股份有限公司提供的GalaxFV工具,为基于模型的求解选择例如芯华章科技股份有限公司提供的GalaxFV工具的多种求解器。
重构流程220同样规定了各个子任务的执行顺序。如图2C所示,在顺序执行生成逻辑系统设计的网表222和生成形式验证模型224后,可以执行基于模型的求解226、根据多个求解器的结果确定形式化验证的结果228。
网关层204可以根据每个子任务的特点为该子任务分配计算资源。
在一些实施例中,网关层204可以确定上述多个子任务的每一个是否适合云计算。在传统的云计算概念中,当一个计算任务需要计算弹性时(也就是说,可能在短时间需要大量计算资源),可以认为该计算任务适合云计算。但是在EDA行业,除去计算弹性需求的考虑,用户更加关注芯片设计的源代码安全。因此,在一个示例中,网关层204可以确定每个子任务的输入是否是源代码安全的。这里的源代码是指EDA任务相关的逻辑系统设计的源代码。如果确定一个子任务的输入不是源代码安全的,则可以为该子任务分配本地计算资源作为执行该子任务的计算资源。这样,可以保证该子任务的执行是在本地安全环境下进而,不存在源代码泄露的风险。如果确定一个子任务的输入是源代码安全的,则可以为该子任务分配云计算资源(例如,云系统120)作为执行该子任务的计算资源。这样,可以充分利用云计算的优势,加速EDA任务。
如图2C所示,在上面关于形式化验证的任务中,生成逻辑系统设计的网表222、生成形式验证模型224以及确定形式化验证的结果228的子任务不是源代码安全的(需要先读取逻辑系统设计的源代码),而基于模型的求解226则是源代码安全的(经过建模后的模型与源代码产生了隔离)。另外,在形式化验证的过程中,可以根据逻辑系统设计生成多个模型,而每个模型又可以使用多个求解器进行求解。这使得“基于模型的求解”这一子任务可以被进一步分解为多个孙任务,并且这些孙任务是高度并行的。由于“基于模型的求解”这一子任务同时具有了源代码安全和高度并行这2个特点,网关层204可以确定该子任何适合进行云计算,并且为该子任务分配云计算资源。
又例如,如图2B所示,在上面关于覆盖率测试的任务中,测试用例的生成212、软件仿真测试214、硬件仿真测试216等子任务需要基于逻辑系统设计的源代码进行,因此网关层204可以确定这些子任务的输入不是源代码安全的,并为这些子任务分配本地计算资源。在本地计算资源之中,由于测试用例的生成212和软件仿真测试214是由软件工具完成,因此网关层204可以为这两个子任务分配可以运行相关软件工具的服务器134a作为计算资源。而硬件仿真测试216需要使用硬件验证工具,因此,网关层204可以为这一子任务分配硬件验证工具134b作为计算资源。
回到图2A,调度层206可以配置为根据给定的流程依次调用多个计算资源以执行多个子任务。调度层206可以包括多种调度器,以提供不同的调度方案。例如,调度层206可以包括HPC调度器、Kube调度器、以及其他第三方调度器等。调度层206还可以配置为与计算资源134进行通信,从而获取计算资源134当前的使用率情况、运行中的任务的执行状态、已完成任务的执行结果等。
如上所述,计算资源134可以包括多个服务器134a和多个硬件验证工具134b。其中,每一个服务器134a都可以视作一个计算节点。在一些实施例中,一个服务器134a可以进一步作为主机与一个或多个硬件验证工具134b连接,从而将该一个或多个硬件验证工具134b包括在该计算节点内。每一个计算节点都分别与调度层206的每一个调度器连接。在一些实施例中,调度器对硬件验证工具134b需要经由作为主机的服务器134a来实现。
在一些实施例中,计算资源134采用云原生的方式向资源管理器200提供计算资源。这样,对于底层计算资源(例如,服务器或硬件验证工具)的增减可以不影响整体计算服务的提供。
相比于现有技术仅能够一次启动一个EDA工具完成一个任务(本申请中的子任务),本申请的资源管理器200通过重构流程使得用户无需时刻关注EDA工具的运行,并手动调用下一个EDA工具,从而实现了EDA任务执行的自动化。可以理解的是,现有技术中无法将一个一个EDA任务分解为多个子任务,也无法对一个EDA任务进行流程重构,更无法根据子任务的特点自动分配合适的计算资源。
图3示出了根据本申请实施例的执行EDA任务的方法300的流程图。方法300可以由例如图1C所示的计算装置132执行,更具体地,可以由在计算装置132上运行的图2A的资源管理器200执行。该EDA任务可以是与逻辑系统设计有关的、由EDA工具执行的任务。在本申请中以EDA任务是逻辑系统设计的验证为例进行说明。EDA任务可以由用户经由图2A的界面层202向资源管理器200发出,并由资源管理器200接收。方法300可以包括如下步骤。
在步骤302,根据所述EDA任务,资源管理器200可以将所述EDA任务(例如,进行覆盖率测试的EDA任务、进行形式化验证的EDA任务)重构为根据给定流程(例如,图2B的重构流程210、图2C的重构流程220)顺序执行的多个子任务(例如,图2B的子任务212-218、图2C的子任务222-228)。所述多个子任务可以包括第一子任务和第二子任务。可以理解的是,这里的顺序执行并不指单线程执行,而是可能出现并行的子任务。
在步骤304,资源管理器200可以确定与所述多个子任务对应的多个计算资源(例如,图1C的本地计算资源132、云系统120)。所述多个计算资源可以包括本地计算资源(例如,图1C的本地计算资源132)。所述本地计算资源可以包括:服务器(例如,图1C的服务器134a)或硬件验证工具(例如,图1C的硬件验证工具134b)的至少一种。硬件验证工具可以包括例如硬件仿真器或原型验证板等。在一些实施例中,所述多个计算资源进一步包括:云计算资源(例如,图1C的云系统120)。可以理解的是,在一些实施例中,资源管理器200可以调动的资源可能不包含云计算资源。
在一些实施例中,资源管理器200可以根据当前可用的多个计算资源来重构所述EDA任务为根据给定流程顺序执行的多个子任务。例如,当本地计算资源134有大量空闲服务器时,资源管理器200可以优先分配本地计算资源134用于执行多个子任务。又例如,当EDA任务的时效性要求很高,而本地计算资源无法在目标时间完成计算时,资源管理器200可以优先调用云计算资源120用于执行多个子任务中的至少一部分。因此,即使对于相同的EDA任务,在当前可用的多个计算资源不同时,资源管理器200可以产生不同的给定流程和不同的多个子任务。
所述多个计算资源包括与所述第一子任务对应的第一计算资源和与所述第二子任务对应的第二计算资源。在一些实施例中,第一计算资源和第二计算资源是不同类型的计算资源。例如,所述第一计算资源是所述服务器,所述第二计算资源是硬件验证工具。在一些实施例中,第一计算资源和第二计算资源是相同类型的计算资源。例如,所述第一计算资源是第一服务器,所述第二计算资源是第二服务器。
在一些实施例中,确定与所述多个子任务对应的多个计算资源进一步包括:确定所述第一子任务(例如,图2C的任务222或224)和所述第二子任务(例如,图2C的任务226)的输入是否是源代码安全的;响应于确定所述第一子任务的输入不是源代码安全的,确定与所述第一子任务对应的第一计算资源为所述本地计算资源(例如,本地服务器134a);以及响应于确定所述第二子任务的输入是源代码安全的,确定与所述第二子任务对应的第二计算资源为所述云计算资源(例如,云系统120)。
在一些实施例中,确定与所述多个子任务对应的多个计算资源进一步包括:确定用于分别执行所述多个子任务的多个EDA工具;以及根据所述多个EDA工具确定与所述多个子任务对应的多个计算资源。例如,参考图2B以及图2C的描述。
在一些实施例中,在所述给定流程中,所述第一子任务(例如,图2B的子任务214或216)是所述第二子任务(例如,图2B的子任务218)的前序任务,并且根据所述给定流程依次调用所述多个计算资源以执行所述多个子任务进一步包括:调用所述第一计算资源(例如,服务器134a或硬件验证工具134b)执行所述第一子任务;接收所述第一子任务的第一执行结果作为所述第二子任务的输入;释放所述第一计算资源;以及基于所述第一执行结果,调用所述第二计算资源执行所述第二子任务。
在一些实施例中,所述第二子任务包括多个并行的孙任务。例如,当第二子任务是图2C的基于模型的求解226时,该子任务226可以包括多个并行的孙任务。
在步骤306,资源管理器200可以根据所述给定流程依次调用所述多个计算资源以执行所述多个子任务。在一些实施例中,根据所述给定流程依次调用所述多个计算资源以执行所述多个子任务进一步包括:接收所述第一子任务和第二子任务的子执行结果;以及合并所述子执行结果为单一执行结果。例如,子任务218可以合并子任务214和216的执行结果,并生成单一执行结果。
在步骤308,根据所述多个子任务的执行结果,资源管理器200可以生成所述EDA任务的执行结果。
本申请实施例还提供一种执行EDA任务的计算装置(例如,图1的计算装置100),包括:存储器,存储用于多个指令;以及至少一个处理器,用于执行所述多个指令以使得所述计算系统进行如上所述方法300。
本申请实施例还提供一种执行EDA任务的计算系统(例如,图2A的计算系统201),包括:如上所述计算装置;以及与所述计算装置通信地连接的本地计算资源,所述本地计算资源包括:服务器或硬件验证工具的至少一种。
本申请实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算装置的一组指令,该组指令用于使所述计算装置执行如上所述的方法300。
如上所述,本申请提供的执行EDA任务的方法、装置、系统和存储介质通过重构EDA任务为根据给定流程顺序执行的多个子任务,实现了EDA任务的自动化执行、资源的全局配置、多个EDA任务(或工具)之间的协同以及安全的云计算,从而解决了现有技术中存在的多个问题。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述对本申请特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (13)

1.一种执行电子设计自动化(Electronic Design Automation,EDA)任务的方法,包括:
根据所述EDA任务,将所述EDA任务重构为根据给定流程顺序执行的多个子任务,所述多个子任务包括第一子任务和第二子任务;
确定与所述多个子任务对应的多个计算资源,所述多个计算资源包括与所述第一子任务对应的第一计算资源和与所述第二子任务对应的第二计算资源;以及
根据所述给定流程依次调用所述多个计算资源以执行所述多个子任务。
2.如权利要求1所述的方法,进一步包括:
根据所述多个子任务的执行结果,生成所述EDA任务的执行结果。
3.如权利要求1所述的方法,其中,所述多个计算资源包括本地计算资源,所述本地计算资源包括:服务器或硬件验证工具的至少一种。
4.如权利要求3所述的方法,其中,所述多个计算资源进一步包括:云计算资源。
5.如权利要求4所述的方法,其中,所述EDA任务是逻辑系统设计的验证,确定与所述多个子任务对应的多个计算资源进一步包括:
确定所述第一子任务和所述第二子任务的输入是否是源代码安全的;
响应于确定所述第一子任务的输入不是源代码安全的,确定与所述第一子任务对应的第一计算资源为所述本地计算资源;以及
响应于确定所述第二子任务的输入是源代码安全的,确定与所述第二子任务对应的第二计算资源为所述云计算资源。
6.如权利要求1或5所述的方法,其中,在所述给定流程中,所述第一子任务是所述第二子任务的前序任务,并且根据所述给定流程依次调用所述多个计算资源以执行所述多个子任务进一步包括:
调用所述第一计算资源执行所述第一子任务;
接收所述第一子任务的第一执行结果作为所述第二子任务的输入;
释放所述第一计算资源;以及
基于所述第一执行结果,调用所述第二计算资源执行所述第二子任务。
7.如权利要求5所述的方法,其中,所述第二子任务包括多个并行的孙任务。
8.如权利要求3所述的方法,其中,根据所述给定流程依次调用所述多个计算资源以执行所述多个子任务进一步包括:
接收所述第一子任务和第二子任务的子执行结果;以及
合并所述子执行结果为单一执行结果。
9.如权利要求8所述的方法,其中,所述第一计算资源是所述服务器,所述第二计算资源是硬件验证工具。
10.如权利要求1所述的方法,其中,确定与所述多个子任务对应的多个计算资源进一步包括:
确定用于分别执行所述多个子任务的多个EDA工具;以及
根据所述多个EDA工具确定与所述多个子任务对应的多个计算资源。
11.一种执行EDA任务的计算装置,包括:
存储器,存储用于多个指令;以及
至少一个处理器,用于执行所述多个指令以使得所述计算系统进行如权利要求1-10的任一项所述的方法。
12.一种执行EDA任务的计算系统,包括:
如权利要求11所述的计算装置;以及
与所述计算装置通信地连接的本地计算资源,所述本地计算资源包括:服务器或硬件验证工具的至少一种。
13.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算装置的一组指令,该组指令用于使所述计算装置执行如权利要求1至10任一项所述的方法。
CN202111374748.4A 2021-11-17 2021-11-17 执行eda任务的方法、装置、系统和存储介质 Active CN114327861B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111374748.4A CN114327861B (zh) 2021-11-17 2021-11-17 执行eda任务的方法、装置、系统和存储介质
US17/955,178 US20230153158A1 (en) 2021-11-17 2022-09-28 Method, apparatus, system, and storage medium for performing eda task

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111374748.4A CN114327861B (zh) 2021-11-17 2021-11-17 执行eda任务的方法、装置、系统和存储介质

Publications (2)

Publication Number Publication Date
CN114327861A true CN114327861A (zh) 2022-04-12
CN114327861B CN114327861B (zh) 2022-12-02

Family

ID=81047643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111374748.4A Active CN114327861B (zh) 2021-11-17 2021-11-17 执行eda任务的方法、装置、系统和存储介质

Country Status (2)

Country Link
US (1) US20230153158A1 (zh)
CN (1) CN114327861B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115658242A (zh) * 2022-10-21 2023-01-31 芯华章科技股份有限公司 逻辑系统设计的任务处理方法及电子设备
CN116467975A (zh) * 2023-06-16 2023-07-21 英诺达(成都)电子科技有限公司 数据处理方法、装置、电子设备及存储介质
CN116738912A (zh) * 2023-08-09 2023-09-12 中科亿海微电子科技(苏州)有限公司 Eda软件可重构功能自动化方法及电子设备
CN116932174A (zh) * 2023-09-19 2023-10-24 浙江大学 Eda仿真任务动态资源调度方法、装置、终端及介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116339736B (zh) * 2023-05-29 2023-07-28 英诺达(成都)电子科技有限公司 Tcl交互界面的配置方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329834A (zh) * 2017-07-04 2017-11-07 北京百度网讯科技有限公司 用于执行计算任务的方法和装置
US20190347138A1 (en) * 2018-05-08 2019-11-14 Mentor Graphics Corporation Resource provisioning for multiple invocations to an electronic design automation application
CN110704364A (zh) * 2019-06-18 2020-01-17 中国科学院电子学研究所 基于现场可编程门阵列的自动化动态重构方法及系统
CN112016256A (zh) * 2020-08-25 2020-12-01 北京百瑞互联技术有限公司 一种集成电路开发平台、方法、存储介质及设备
CN112486653A (zh) * 2020-12-02 2021-03-12 胜斗士(上海)科技技术发展有限公司 调度多类型计算资源的方法、装置和系统
CN113378498A (zh) * 2021-08-12 2021-09-10 新华三半导体技术有限公司 一种任务分配方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329834A (zh) * 2017-07-04 2017-11-07 北京百度网讯科技有限公司 用于执行计算任务的方法和装置
US20190347138A1 (en) * 2018-05-08 2019-11-14 Mentor Graphics Corporation Resource provisioning for multiple invocations to an electronic design automation application
CN110704364A (zh) * 2019-06-18 2020-01-17 中国科学院电子学研究所 基于现场可编程门阵列的自动化动态重构方法及系统
CN112016256A (zh) * 2020-08-25 2020-12-01 北京百瑞互联技术有限公司 一种集成电路开发平台、方法、存储介质及设备
CN112486653A (zh) * 2020-12-02 2021-03-12 胜斗士(上海)科技技术发展有限公司 调度多类型计算资源的方法、装置和系统
CN113378498A (zh) * 2021-08-12 2021-09-10 新华三半导体技术有限公司 一种任务分配方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115658242A (zh) * 2022-10-21 2023-01-31 芯华章科技股份有限公司 逻辑系统设计的任务处理方法及电子设备
CN115658242B (zh) * 2022-10-21 2024-04-26 芯华章科技股份有限公司 逻辑系统设计的任务处理方法及电子设备
CN116467975A (zh) * 2023-06-16 2023-07-21 英诺达(成都)电子科技有限公司 数据处理方法、装置、电子设备及存储介质
CN116467975B (zh) * 2023-06-16 2023-09-26 英诺达(成都)电子科技有限公司 数据处理方法、装置、电子设备及存储介质
CN116738912A (zh) * 2023-08-09 2023-09-12 中科亿海微电子科技(苏州)有限公司 Eda软件可重构功能自动化方法及电子设备
CN116738912B (zh) * 2023-08-09 2023-10-27 中科亿海微电子科技(苏州)有限公司 Eda软件可重构功能自动化方法及电子设备
CN116932174A (zh) * 2023-09-19 2023-10-24 浙江大学 Eda仿真任务动态资源调度方法、装置、终端及介质
CN116932174B (zh) * 2023-09-19 2023-12-08 浙江大学 Eda仿真任务动态资源调度方法、装置、终端及介质

Also Published As

Publication number Publication date
CN114327861B (zh) 2022-12-02
US20230153158A1 (en) 2023-05-18

Similar Documents

Publication Publication Date Title
CN114327861B (zh) 执行eda任务的方法、装置、系统和存储介质
EP3754496B1 (en) Data processing method and related products
JP6045134B2 (ja) アプリケーション性能試験のための並列作業負荷シミュレーション
Lin et al. ABS-YARN: A formal framework for modeling Hadoop YARN clusters
WO2023017350A1 (en) Socket transferring for hpc networks using kernel tracing
US8938712B2 (en) Cross-platform virtual machine and method
CN110532044A (zh) 一种大数据批处理方法、装置、电子设备及存储介质
US8711160B1 (en) System and method for efficient resource management of a signal flow programmed digital signal processor code
CN116414518A (zh) Kubernetes上的大数据的数据局部性
US20200274758A1 (en) Provisioning hybrid cloud resources in an operating environment
CN112434478B (zh) 仿真逻辑系统设计的虚拟接口的方法及相关设备
JP2012234260A (ja) 車両制御シミュレーションシステム
CN112997156A (zh) 用于电子设计自动化操作的计算资源的动态分配
CN116738901A (zh) 一种芯片验证方法及装置
CN115034164A (zh) 验证方法、电子设备及存储介质
CN112764729B (zh) 应用软件开发方法、装置、计算机设备及可读存储介质
CN112130962B (zh) 持续交付平台及利用持续交付平台部署应用系统的方法
CN110705191B (zh) 一种多形态模拟仿真验证环境的构建方法
Liu et al. A concurrent approach for improving the efficiency of Android CTS testing
Mulahuwaish et al. Improving datacenter utilization through containerized service-based architecture
Morman et al. The Future of GNU Radio: Heterogeneous Computing, Distributed Processing, and Scheduler-as-a-Plugin
US20230315517A1 (en) Central randomized scheduler for hypothesis-based workloads
CN117742891A (zh) 带vDPA设备的虚拟机的创建方法、装置、设备及存储介质
CN114925105A (zh) 保险业务的造数方法及相关设备
CN117873678A (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