CN113919257A - 一种编译仿真文件的方法、装置、设备及存储介质 - Google Patents

一种编译仿真文件的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113919257A
CN113919257A CN202111194420.4A CN202111194420A CN113919257A CN 113919257 A CN113919257 A CN 113919257A CN 202111194420 A CN202111194420 A CN 202111194420A CN 113919257 A CN113919257 A CN 113919257A
Authority
CN
China
Prior art keywords
compiling
compiled
blocks
block
sub
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
Application number
CN202111194420.4A
Other languages
English (en)
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 Eswin Computing Technology Co Ltd
Haining Eswin IC Design Co Ltd
Original Assignee
Beijing Eswin Computing Technology Co Ltd
Haining Eswin IC Design 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 Eswin Computing Technology Co Ltd, Haining Eswin IC Design Co Ltd filed Critical Beijing Eswin Computing Technology Co Ltd
Priority to CN202111194420.4A priority Critical patent/CN113919257A/zh
Publication of CN113919257A publication Critical patent/CN113919257A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种编译仿真文件的方法、装置、设备及存储介质,涉及集成电路芯片的前端研发领域。该方法包括:当接收到编译指令时,根据第一分割策略确定仿真文件集对应的多个待编译分块以及合并信息,其中,每个待编译分块相互独立;根据多个待编译分块进行并行编译操作,得到多个编译结果;根据合并信息和多个编译结果,进行链接操作,得到可执行文件。该方法实现了在芯片的集成规模越大时,编译所需的时间是可以控制在指定时间范围之内,即打破了编译时间和芯片的集成规模之间呈现出的正相关态势。

Description

一种编译仿真文件的方法、装置、设备及存储介质
技术领域
本申请涉及集成电路芯片的前端研发领域,具体而言,本申请涉及一种编译仿真文件的方法、装置、设备及存储介质。
背景技术
在集成电路芯片的前端研发阶段,设计和验证密不可分。电子设计自动化(Electronicdesignautomation,EDA)厂商的芯片验证技术人员通过往芯片中发送特定的激励,检测响应信号来判断设计的逻辑和规范是否正常。为了满足大规模测试的需求,芯片验证技术人员一般都会通过仿真软件来验证设计的正确性。在这个过程中,会产生大量仿真文件。开发测试程序中的一个重要的工作就是将集成电路设计中产生的仿真文件编译成可供测试的模式。随着芯片的集成度越来越高,仿真文件也越来越多(可以达到几百个甚至上千个),致使编译操作不仅需要更多的硬件资源,而且所需编译时间也变得更长。
因此,编译所需时间也随着芯片的集成规模变大而增加,从而呈现出一种正相关态势。如何破解这种正相关态势,是现在急需解决的问题。
发明内容
本申请实施例的目的旨在能解决编译所需的时间随着芯片的集成规模变大而增加的技术缺陷。
根据本申请实施例的一个方面,提供了一种编译仿真文件的方法,该方法包括:
当接收到编译指令时,根据第一分割策略确定仿真文件集对应的多个待编译分块以及合并信息,其中,每个待编译分块相互独立;
根据多个待编译分块进行并行编译操作,得到多个编译结果;
根据合并信息和多个编译结果,进行链接操作,得到可执行文件。
根据本申请实施例的另一个方面,提供了一种编译仿真文件的装置,该装置包括:
第一分割模块,用于根据第一分割策略确定仿真文件集对应的多个待编译分块以及合并信息,其中,每个待编译分块相互独立;
并行编译模块,用于根据多个待编译分块进行并行编译操作,得到多个编译结果;
链接模块,用于根据合并信息和多个编译结果,进行链接操作,得到可执行文件。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行计算机程序以实现本申请实施例上述一个方面所示方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现本申请实施例上述一个方面所示方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供了一种编译仿真文件的方法,该方法主要为在接收到编译指令之后,进行的一系列编译操作。具体地,根据第一分割策略对仿真文件进行分割,得到多个待编译分块,以及表述待编译分块之间逻辑关系的合并信息,由于待编译分块是根据第一分割策略自动进行的,避免了人工分块的繁琐以及分块不到位的问题。根据汇总的多个编译结果和合并信息,进行链接操作,得到可执行文件。由于每个待编译分块相互独立,因此,每个待编译分块的编译操作可以并行,而且第一分割策略的优势在于将每个待编译分块的预估编译时间控制在指定时间范围内,因此,并行的多个编译过程,其时间基本上差不多,最终的结果是,整个编译过程所需的时间被控制在指定时间范围内。而且,该方法在芯片的集成规模越大的时候,效果越显著。因此,在芯片的规模越大时,编译所需的时间是可以控制在指定时间范围之内,即打破了编译时间和芯片的集成规模之间呈现出的正相关态势。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种编译仿真文件的方法的流程示意图;
图2a为本申请实施例提供的一种应用场景中整体编译的流程示意图;
图2b为本申请实施例提供的一种编译单个分块的流程示意图;
图2c为本申请实施例提供的一种并行编译的流程示意图;
图3为本申请实施例提供的一种编译仿真文件的装置的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
IC:Integrated Circuit,集成电路。集成电路是一种微型电子器件或部件,采用一定的工艺,把一个电路中所需的晶体管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构,其中所有元件在结构上已组成一个整体。
HDL:Hardware Description language,硬件表述语言,具体指对硬件电路进行行为描述、寄存器传输描述或者结构化描述的一种新兴语言。目前,流传比较广泛的硬件描述语言主要有ABEL语言、AHDL语言、Verilog语言和VHDL语言等。其中,Verilog语言和VHDL语言是目前较为流行的两种语言。由于Verilog语言和VHDL语言是现有技术,因此,可以参考现有技术中对于这两种语言的描述,为描述简便,在此不再赘述。
本申请实施例中针对集成电路的设计所使用的语言可以是现有技术中所列举的任一中硬件描述语言。
目前,针对背景技术中所指出的问题,EDA厂商常用的解决方案是将芯片作为一个整体进行编译,在编译过程中采用增量编译的手段来提高编译效率。然而,对于一个复杂的设计而言,芯片的设计从始至终都朝着功能化方向前进。因此,在芯片设计进入到成熟阶段,前后两次编译的版本中,会存在相当部分的电路逻辑是相同的,即未曾做过修改,尤其是在后一次编译中,可以重复利用前一次编译中未改变部分的编译结果。现有技术中,将在后一次编译中重复利用前一次编译中未改变部分的编译结果视为增量编译。由此可见,增量编译可以大大提高编译效率。此外,EDA厂商还基于功能化的设计思想提供了分块编译的技术手段,来提升编译效率。
由于该增量编译的判断原则是基于部分仿真文件的时间戳,因此并不能准确判断另外一部分仿真文件的内容是否发生变化,并且由于模块之间的耦合关系,导致使用增量编译未必是正确的选择。另外,分块编译技术往往要求人工规划模块边界等问题,导致编译工程的复杂度增加,出现概率的机率大大提高。
因此,编译所需时间也随着芯片的集成规模变大而增加,呈现出一种正相关态势。如何破解这种正相关态势,是现在急需解决的问题。
针对上述技术问题,本申请实施例提供了一种编译仿真文件的方法、装置、设备及存储介质。其中,该方法可以由终端设备/系统实现。本申请实施例涉及的设备/系统能够运行可编译仿真文件的应用,该终端设备/系统连接服务器或者本身包含服务器,该服务器用于编译仿真文件。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供的一种编译仿真文件的方法的流程示意图,如图1所示,该方法包括如下步骤:
S110,当接收到编译指令时,根据第一分割策略确定仿真文件集对应的多个待编译分块以及合并信息,其中,每个待编译分块相互独立。
其中,终端设备/系统在接收到待编译指令之后,读取编译指令中携带的待编译工程的标识,该待编译工程中包括多个仿真文件,多个仿真文件即组成了仿真文件集。该待编译工程具体为一个集成电路的设计工程。该待编译工程中记录了每个仿真文件的存储路径,文件名,以及每个文件之间的引用关系,以及每个文件内部接口或者模块之间引用或者链接的关系。
示例性地,该仿真文件集中可以包括具有以下后缀的文件:.v(由Verilog语言编写的程序,用于描述硬件电路的组成元素、连接关系、电路逻辑等)、.c(C语言,用于硬件电路的建模等)、.vhdl(由VHDL语言编写的程序,用于描述硬件电路的组成元素、连接关系、电路逻辑等)、.sv(Verilog语言,用于描述硬件电路的组成元素、连接关系、电路逻辑,以及芯片验证环境等)、.h(C语言文件对应的头文件,可以包括各种宏定义、引用的库文件,该类型的文件一般参加预编译)、.vh或者.svh(verilog语言对应的头文件,该类型的文件和后缀为.sv的文件一起参与编译)等。应当指出,后缀为.c的文件表示由C语言编写的文件,后缀为.vhdl的文件表示由VHDL语言编写的仿真文件,.v文件表示由Verilog语言编写的仿真文件,其他类型的文件,与该逻辑类似。
S120,根据多个待编译分块进行并行编译操作,得到多个编译结果。
其中,多个编译结果可以由每个待编译分块的编译结果组成,也可以由部分待编译分块的编译结果,以及部分待编译分块对应的待编译子分块的编译结果组成。
S130,根据合并信息和多个编译结果,进行链接操作,得到可执行文件。
本申请实施例提供了一种编译仿真文件的方法,该方法主要为在接收到编译指令之后,进行的一系列编译操作。具体地,根据第一分割策略对仿真文件进行分割,得到多个待编译分块,以及表述待编译分块之间逻辑关系的合并信息,由于分块是根据第一分割策略自动进行的,避免了人工分块的繁琐以及分块不到位的问题。根据汇总的多个编译结果和合并信息,进行链接操作,得到可执行文件。由于每个待编译分块相互独立,因此,每个待编译分块的编译操作可以并行,而且第一分割策略的优势在于将每个待编译分块的预估编译时间控制在指定时间范围内,因此,并行的多个编译过程,其时间基本上差不多,最终的结果是,整个编译过程所需的时间被控制在指定时间范围内。而且,该方法在芯片的集成规模越大的时候,效果越显著。因此,在芯片的集成规模越大时,编译所需的时间是可以控制在指定时间范围之内,即打破了编译时间和芯片的集成规模之间呈现出的正相关态势。
本申请实施例中提供了一种可能的实现方式,在编译之前,需要对仿真文件集进行分割,本申请实施例提供的第一分割策略具体包括两种分割思路,根据该仿真文件集对应的现有的分割信息进行初始分割,或者按照预设策略进行初始分割。因此,本申请实施例具体可以包括S111和S112(图中均未示出),具体地:
S111,当仿真文件集对应的历史分割信息存在时,或者,当仿真文件集对应的人工分割信息存在时,根据历史分割信息或者人工分割信息对仿真文件集进行分割,得到多个待编译分块,以及多个待编译分块中每个待编译分块对应的分割信息。
或者,
S112,当仿真文件集对应的历史分割信息和人工分割信息不存在时,根据分配的服务器资源、每个仿真文件的类型和预估编译时间,对仿真文件集进行分割,得到多个待编译分块,以及每个待编译分块对应的分割信息。
历史分割信息或者人工分割信息都是基于历次编译过程总结的经验或者设计人员的经验获得的,在首次编译时或者集成电路的初期时很难使用到,但是在集成电路设计的成熟期,该分割策略则经常被使用到,可以节省编译时间。
一方面,由于大规模集成电路的设计,一般都朝着功能化的方向去设计,因此,设计出的仿真文件集中可以分为多个模块。另一方面,一般的硬件电路设计过程遵照自顶向下的设计原则,因此,在按照自顶向下的原则分出该仿真文件集的各个文件的层次之后,将顶层或者头几层的文件所代表的功能划分出来,得到几个分块。该仿真文件集中还有一些公用的文件,也可以作为一个分块。
具体地,服务器是编译仿真文件的主要硬件资源,由于多个待编译分块需要进行并行编译(在具体编译时,服务器的一个CPU负责一个待编译分块的编译任务),因此,设计的分块数量应参考提供的服务器的数量以及硬件配置(例如,每个服务器配置的CPU的个数)。由于服务器在编译待编译分块的时候,以串行的方式编译每个仿真文件的,因此每个待编译分块的实际编译时间是该待编译分块中每个仿真文件的实际编译时间的总和。由于每种类型的仿真文件的编译时间都不同,其中,后缀为.vhdl的文件的编译时间相对其他文件要长很多,后缀为.h、.c的文件的编译时间则相对短些,因此,还需要参考仿真文件的类型,来预估每个仿真文件的编译时间。
另外,由于在分割时还参考了自顶向下的原则,因此,所分得的每个待编译分块之间可以保持相互独立。
具体地,该待编译分块对应的分割信息可以包括待编译分块的名称(一般是处于顶层的顶层文件的文件名,顶层文件中第一个运行的函数的名称)。该待编译分块中包括每个仿真文件的名称和存储路径,与其它分块之间的连接关系等。
在一种可能的实现方式中,确定合并信息,包括:根据每个待编译分块对应的分割信息,确定合并信息。
具体地,分割后的待编译文件集,变成了多个相互独立的模块,在后期链接操作中,需要对多个编译结果进行连接,因此,还需要创建每个待编译分块之间的连接关系,即根据每个待编译分块对应的分割信息,确定合并信息。
本申请实施例提供的编译仿真文件的方法中的第一分割策略,包括两种分割思路。在第一种中,第一分割策略中的历史分割信息和人工分割信息充分吸收了以往编译过程中积累的经验和技术人员的技能经验的优势,基于该经验的分割,可以使得分割所得的每个待编译分块的预估编译时间控制在指定时间之内。另一方面,若无以往经验的参考,则根据每个仿真文件的类型及其预估编译时间,以及所分配的服务器资源,来进行合理的分割,同样可以将分割所得的每个待编译分块的预估编译时间控制在的指定范围之内,从而为后面的并行编译提供了良好的基础。在得到每个待编译分块的分割信息之后,还可以根据每个待编译分块的分割信息确定合并信息,以便于在链接操作中,将编译结果进行链接,从而得到可执行文件。
由于本申请实施例中涉及的仿真文件,涉及到的算法复杂,运算量较多,一般普通的计算机设备的硬件不足以支撑该编译过程中所需要的计算。因此,一般将此类仿真文件发送给服务器去编译。
本申请实施例还提供了一种可能的实现方式,根据多个待编译分块进行并行编译操作,得到多个编译结果,包括S121和S122(图中未示出):
S121,为多个待编译分块中每个待编译分块分配服务器;
S122,以并行的方式,针对多个待编译分块中每个待编译分块执行以下操作:当待编译分块符合预设条件时,将待编译分块发送至相应的服务器,以进行编译操作;获取编译操作对应的实际编译时间;根据实际编译时间与预设时间阈值的关系,确定是否将编译操作对应的编译结果确定为多个编译结果之一。
在一种可能的实现方式中,获取编译操作对应的实际编译时间,具体包括:通过终端设备/系统的监控器,获取编译操作对应的实际编译时间。
另外,当该待编译分块不是初次分割所得的分块,则还需要获取相应的分割信息。
其中,预设条件为待编译分块是否不符合增量编译标准。若不符合增量编译标准,则需要发送给服务器进行编译。
在一种可能的实现方式中,当待编译分块符合增量编译条件时,该方法还包括:进行增量编译操作,并将增量编译操作的编译结果确定为多个编译结果之一。
其中,一个仿真文件进行增量编译的判断标准,就是依据该仿真文件的时间戳,该时间戳即为最后一次修改该仿真文件的时间戳,而针对一个待编译分块是否进行增量编译的判断标准,依据待编译分块中所有的仿真文件的时间戳。
具体地,获取该待编译分块最近的一次编译结果,以及得到该编译结果的编译操作的编译时间点。若待编译分块中任一文件的时间戳对应的时间点在该编译时间点之前,则判断符合增量编译标准;若待编译分块中任一文件的时间戳对应的时间点在该编译时间点之后,说明该待编译分块中存在文件被修改的情形,而且该修改操作的时间点在编译时间点之后,则判断不符合增量编译的标准,因此该待编译分块需要重新编译。
在大规模集成电路的设计工程中,可能存在着几千甚至上万个文件。在对某个仿真文件进行增量编译的判断时,不仅要针对该仿真文件的时间戳进行判断,还要判断该仿真文件所关联的其他文件的时间戳,该操作无疑增加了编译的时间。其中,所关联的其他文件中就包括头文件,但是由于头文件(例如,后缀为.h的头文件)在预编译阶段就已经完成了编译,如果头文件被修改了,在正式编译阶段是无法获取该头文件的时间戳,因此,如果除了头文件以外的其他文件都没有修改,只是某个头文件修改了,那么得到的判断结果为可以进行增量编译,这将导致得到错误的编译结果。而本申请提供的增量编译的判断条件中,由于每个待编译分块是一个独立的个体,每个待编译分块的文件并不多,通常为几个或者几十个,因此判断是否符合增量编译条件的范围可以扩大至待编译分块的每一个仿真文件(包括上述后缀为.h的头文件),通过判断待编译分块中所有的仿真文件的时间戳,来确定是否需要进行增量编译。若不需要增量编译,则通过服务器进行编译。相对于现有技术,本申请实施例提供的增量编译的判断方法,提高了编译操作的正确率。应当指出,本申请实施例中涉及到的某个文件的时间戳,具体用于标识该文件最后一次被修改的时间。
示例性地,该修改包括增加了新的代码内容,新的代码内容具体可以为增加了新的元器件、新的电路逻辑等。
本申请实施例提供的编译仿真文件的方法,在服务器执行编译操作的过程中,还可以针对符合增量编译条件的分块进行增量编译操作,即使用历史编译结果,该手段具备地缩短待编译分块的编译时间的技术效果。
虽然按照第一分割策略得到的多个待编译分块,存在一定的合理性。但若是设计人员对某些待编译分块进行的改动太多,依据经验或者预设策略进行分割,还是会导致实际编译时长远大于预估编译时长,因此,第一分割策略在某些情形下,存在缺陷。
本申请实施例还提供了一种可能的实现方式,通过监控器在编译过程中获取的编译时间,进行判断,确定是否需要按照第二分割策略来对该待编译分块进行再次分割,具体地:当实际编译时间小于或者等于第一时间阈值,并且大于预设的第二时间阈值时,将编译操作对应的编译结果确定为多个编译结果之一,其中,第一时间阈值大于第二时间阈值。或者,当实际编译时间大于预设的第一时间阈值时,按照第二分割策略对待编译分块进行分割,得到多个待编译子分块,以及多个待编译子分块中每个待编译子分块的分割信息;根据待编译子分块中每个待编译子分块实际编译时间与预设时间阈值的关系,确定是否根据第二分割策略对相应的待编译子分块进行分割;当相应的待编译子分块不需要进行分割时,将相应的待编译子分块的分割信息更新至合并信息,并确定相应的待编译子分块对应的编译结果为多个编译结果之一。
具体地,在得到多个待编译子分块之后,为分得的每个待编译子分块分配服务器,然后以并行的方式对每个待编译子分块进行编译。在编译过程中,监控器监控每个待编译子分块的编译过程,获取每个待编译子分块的编译结果和对应的分割信息。
具体地,当某个待编译子分块的不需要再进行分割时,可以将该待编译子分块的分割信息更新至合并信息中。在后面的链接操作中,可以根据合并信息记录的子分块与其它分块或者子分块之间的连接关系,确定每个编译结果的连接关系,进而进行链接操作。
在一种可能的实现方式中,当相应的待编译子分块不需要进行分割时,还包括:将该待编译分块的编译结果或者待编译子分块的编译结果,进行存储,并分享至终端设备/系统行的公共区域,以便于其他芯片设计人员需要对该仿真文件集进行编译操作的时候,可以借鉴该编译结果。
以及,将待编译分块对应的分割信息,或者待编译子分块对应的分割信息进行存储,以形成历史分割信息。
在一种可能的实现方式中,在获取每个待编译子分块的实际编译时间之后,还包括:判断实际编译时间是否在第一时间阈值和第二时间阈值之内。
当实际编译时间大于第二时间阈值,且小于或者等于第一时间阈值时,确定待编译子分块不需要进行分割;当实际编译时间大于第一时间阈值时,需要再根据第二分割策略对该待编译子分块进行分割。应当指出,其分割和验证分割是否成功的过程可以参考本申请实施例提供的其他实现方式,为描述简便,在此不再赘述。
另外,在本申请实施例中,针对于待编译分块或者待编译子分块等的分割,需要进行到所分得的子分块的实际编译时间不得大于第一时间阈值为止。
当实际编译时间小于第二时间阈值时,将该待编译子分块并入其他实际编译时间最少的子分块中。
在一种可能的实现方式中,按照第二分割策略对待编译分块进行分割,得到多个待编译子分块,以及多个待编译子分块中每个待编译子分块对应的分割信息。
具体地,确定待编译分块中所有的仿真文件,以及每个仿真文件的预估编译时间;针对所有的仿真文件依次进行组合或者分割操作,得到多个待编译子分块,其中,待编译子分块的预估编译时间大于第二时间阈值,且小于或者等于第一时间阈值,每个待编译子分块之间相互独立。
示例性地,第一时间阈值为2小时,第二时间阈值为20分钟。由于既要控制编译时间不能过长,还要控制编译时间不要过短,编译时间过短则是在浪费编译资源(例如,服务器)。待编译分块中包括100个文件,其中95个文件的编译时间分别为1分钟,另外5个文件的编译时间分别为1小时、30分钟、27分钟、50分钟、48分钟。首先,按照自顶向下的原则,展示将该待编译分块的结构,从顶层的几个文件中,挑选几个文件作为子分块的基础,然后依次在该文件的基础上,将相关的其他文件添加到在子分块中,最后确定每个子分块的预估编译时间,将预估编译时间处于20分钟到2小时之内的子分块,作为待编译子分块,将其他的预估编译时间不在范围之内的子分块,继续拆分,直至拆分的子分块的预估编译时间处于20分钟到2小时之内。
另外,按照自顶向下的原则去分割待编译分块,所分得的每个待编译子分块之间可以保持相互独立。
本申请实施例提供的编译仿真文件的方法在编译过程中,可以检查以按照第一分割策略分割的待编译分块是否是合理的,若不合理,则进行改进。由于按照第一分割策略计算的是预估编译时间,而当前的仿真文件集中部分仿真文件的内容得到更新,因此实际编译时间可能会超过理想编译时间,因此,需要再继续分割,若分割之后还是出现实际编译时间不理想的分块,还是要继续分,直至所有的分块的实际编译时间在理想编译时间范围内,分割完成之后,需要将分割信息更新至合并信息,而分割后的分块的编译结果,也将作为最终的编译结果。
为了更清楚地描述本申请实施例,本申请实施例还提供了图2a、图2b和图2c来做进一步的说明。其中,图2a中的用虚线框标识的并行编译流程,具体指代图2b和图2c的所示的流程;图2c中由分配服务器指向用虚线标识的编译,具体指代图2b中所示的流程;图2c中,具体从分块1-分块N处,开始执行。
参见图2a,本申请实施例还结合上述实施例中提供的一种编译仿真文件的方法,和具体应用示例提供了一种应用场景中整体编译的流程。
在该图中,先判断是否有分割信息。具体地,判断是否有历史分割信息或者人工分割信息。若有,则根据已有的分割信息对仿真文件即进行分割,得到分块1-分块N(对应上述实施例中的多个待编译分块),相应地,生成合并信息文件。若无,则根据服务器资源、仿真文件集中每个仿真文件的文件类型以及预估编译时间,按照自顶向下的原则进行分割,并生成合并信息文件。在并行编译流程中,以并行的方式对分块1-分块N分别进行编译。编译完成之后,得到每个分块的编译结果。按照合并信息文件记录的每个分块之间的连接逻辑,针对每个分块的编译结果进行链接操作,最终得到完成的编译结果,即可执行文件。
其中,在确定多个待编译分块之后,为每个待编译分块分配服务器,再进入并行编译流程。下面,以分块1的编译过程为例,阐述分块编译的过程。
参见图2b,本申请实施例还提供了一种编译单个分块的流程。
判断分块1是否符合增量编译的条件,若符合,则进行增量编译,至此,针对分块1的编译过程结束。其中,以该分块1最近一次编译操作对应的编译结果作为当前编译过程的结果。
若不符合,则将分块1发送至服务器进行编译。
参见图2c,本申请实施例还提供了一种并行编译的流程。
若分块1不符合增量编译的条件,则需要将分块1发送至服务器进行编译。在服务器对分块1进行编译的过程中,通过终端设备/系统的监控器对该编译过程进行监视,并在编译结束之后,获取分块1的实际编译时间和对应的分割信息。判断该实际编译时间是否处于预期时间内(例如,处于20分钟与2小时之间),若处于,则说明分割合理。若实际编译时间不在预期时间内且较大时,则需要再次进行分割。即,将分块1分割成子分块11-子分块1N,每个子分块的预估编译时间都在预期时间内,并且相互独立。然后,再次将每个子分块发送至服务器,以并行的方式,进行编译,再次得到每个子分块的实际编译时间,同样地,再次判断子分块的实际编译时间是否符合预期时间,若符合,则反馈该子分块对应的分割信息并更新合并文件。若不符合,则需针对不符合条件的子分块再次进行分割、编译、判断的操作,直至所得的每个子分块的实际编译时间处于预期时间之内。
参见图3,本申请实施例提供了一种编译仿真文件的装置300,该装置300可以包括:
第一分割模块310,用于根据第一分割策略确定仿真文件集对应的多个待编译分块以及合并信息,其中,每个待编译分块相互独立;并行编译模块320,用于根据多个待编译分块进行并行编译操作,得到多个编译结果;链接模块330,用于根据合并信息和多个编译结果,进行链接操作,得到可执行文件。
本申请实施例还提供了一种可能的实现方式,仿真文件集包括多个仿真文件,第一分割模块310在根据第一分割策略确定仿真文件集对应的多个待编译分块中,具体用于:
当仿真文件集对应的历史分割信息存在时,或者,当仿真文件集对应的人工分割信息存在时,根据历史分割信息或者人工分割信息对仿真文件集进行分割,得到多个待编译分块,以及多个待编译分块中每个待编译分块对应的分割信息;
或者,
当仿真文件集对应的历史分割信息和人工分割信息不存在时,根据分配的服务器资源、每个仿真文件的类型和预估编译时间,对仿真文件集进行分割,得到多个待编译分块,以及每个待编译分块对应的分割信息。
在一种可能的实现方式中,第一分割模块310在确定合并信息中,具体用于:根据每个待编译分块对应的分割信息,确定合并信息。
本申请实施例还提供了一种可能的实现方式,并行编译模块320在根据多个待编译分块进行并行编译操作,得到多个编译结果中,具体用于:为多个待编译分块中每个待编译分块分配服务器;以并行的方式,针对多个待编译分块中每个待编译分块执行以下操作:当待编译分块符合预设条件时,将待编译分块发送至相应的服务器,以进行编译操作;获取编译操作对应的实际编译时间;根据实际编译时间与预设时间阈值的关系,确定是否将编译操作对应的编译结果确定为多个编译结果之一。
在一种可能的实现方式中,并行编译模块320在根据编译时间与预设时间阈值的关系,确定是否将编译操作对应的编译结果确定为多个编译结果之一中,具体用于:当实际编译时间小于或者等于第一时间阈值,并且大于预设的第二时间阈值时,将编译操作对应的编译结果确定为多个编译结果之一,其中,第一时间阈值大于第二时间阈值。
在一种可能的实现方式中,该装置包括第二分割模块340,第二分割模块340具体用于:当实际编译时间大于预设的第一时间阈值时,按照第二分割策略对待编译分块进行分割,得到多个待编译子分块,以及多个待编译子分块中每个待编译子分块的分割信息。
其中,第二分割模块340,具体用于确定待编译分块中所有的仿真文件,以及每个仿真文件的预估编译时间;针对所有的仿真文件依次进行组合或者分割操作,得到多个待编译子分块,其中,待编译子分块的预估编译时间大于第二时间阈值,且小于或者等于第一时间阈值,多个待编译子分块相互独立。
其中,并行编译模块320,还用于根据待编译子分块中每个待编译子分块实际编译时间与预设时间阈值的关系,确定是否根据第二分割策略对相应的待编译子分块进行分割;当相应的待编译子分块不需要进行分割时,将相应的待编译子分块的分割信息更新至合并信息,并确定相应的待编译子分块对应的编译结果为多个编译结果之一。
在一种可能的实现方式中,预设条件为待编译分块是否不符合增量编译标准,并行编译模块320还用于:当待编译分块符合增量编译条件时,进行增量编译操作,并将增量编译操作的编译结果确定为多个编译结果之一。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现本申请实施例中所示的一种编译仿真文件的方法的步骤,与现有技术相比可实现:在芯片的集成规模越大时,编译所需的时间是可以控制在指定时间范围之内,即打破了编译时间和芯片的集成规模之间呈现出的正相关态势。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本技术领域技术人员应该理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”指示实现为“A”,或者实现为“A”,或者实现为“A和B”。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

Claims (10)

1.一种编译仿真文件的方法,其特征在于,包括:
当接收到编译指令时,根据第一分割策略确定仿真文件集对应的多个待编译分块以及合并信息,其中,每个待编译分块相互独立;
根据所述多个待编译分块进行并行编译操作,得到多个编译结果;
根据所述合并信息和所述多个编译结果,进行链接操作,得到可执行文件。
2.根据权利要求1所述的方法,其特征在于,所述仿真文件集包括多个仿真文件,所述根据第一分割策略确定仿真文件集对应的多个待编译分块,包括:
当所述仿真文件集对应的历史分割信息存在时,或者,当所述仿真文件集对应的人工分割信息存在时,根据所述历史分割信息或者所述人工分割信息对所述仿真文件集进行分割,得到所述多个待编译分块,以及多个待编译分块中每个待编译分块对应的分割信息;
或者,
当所述仿真文件集对应的历史分割信息和所述人工分割信息不存在时,根据分配的服务器资源、每个仿真文件的类型和预估编译时间,对所述仿真文件集进行分割,得到所述多个待编译分块,以及所述每个待编译分块对应的分割信息。
3.根据权利要求2所述的方法,其特征在于,所述确定所述合并信息,包括:
根据所述每个待编译分块对应的分割信息,确定所述合并信息。
4.根据权利要求1-3任一所述的方法,其特征在于,所述根据所述多个待编译分块进行并行编译操作,得到多个编译结果,包括:
为所述多个待编译分块中每个待编译分块分配服务器;
以并行的方式,针对所述多个待编译分块中每个待编译分块执行以下操作:
当所述待编译分块符合预设条件时,将所述待编译分块发送至相应的服务器,以进行编译操作;
获取所述编译操作对应的实际编译时间;
根据所述实际编译时间与预设时间阈值的关系,确定是否将所述编译操作对应的编译结果确定为所述多个编译结果之一。
5.根据权利要求4所述的方法,其特征在于,所述根据所述编译时间与预设时间阈值的关系,确定是否将所述编译操作对应的编译结果确定为所述多个编译结果之一,包括:
当所述实际编译时间小于或者等于第一时间阈值,并且大于预设的第二时间阈值时,将所述编译操作对应的编译结果确定为所述多个编译结果之一,其中,所述第一时间阈值大于所述第二时间阈值;
或者,
当所述实际编译时间大于预设的第一时间阈值时,按照第二分割策略对所述待编译分块进行分割,得到多个待编译子分块,以及所述多个待编译子分块中每个待编译子分块的分割信息;
根据所述待编译子分块中每个待编译子分块实际编译时间与所述预设时间阈值的关系,确定是否根据所述第二分割策略对相应的待编译子分块进行分割;
当所述相应的待编译子分块不需要进行分割时,将所述相应的待编译子分块的分割信息更新至所述合并信息,并确定所述相应的待编译子分块对应的编译结果为所述多个编译结果之一。
6.根据权利要求5所述的方法,其特征在于,所述按照第二分割策略对所述待编译分块进行分割,得到多个待编译子分块,以及所述多个待编译子分块中每个待编译子分块的分割信息,包括:
确定所述待编译分块中所有的仿真文件,以及每个仿真文件的预估编译时间;
针对所述所有的仿真文件依次进行组合或者分割操作,得到所述多个待编译子分块,其中,所述待编译子分块的预估编译时间大于所述第二时间阈值,且小于或者等于所述第一时间阈值,所述多个待编译子分块相互独立。
7.根据权利要求4所述的方法,其特征在于,所述预设条件为所述待编译分块是否不符合增量编译标准,所述方法还包括:
当所述待编译分块符合增量编译条件时,进行增量编译操作,并将所述增量编译操作的编译结果确定为所述多个编译结果之一。
8.一种编译仿真文件的装置,其特征在于,所述装置包括:
第一分割模块,用于根据第一分割策略确定仿真文件集对应的多个待编译分块以及合并信息,其中,每个待编译分块相互独立;
并行编译模块,用于根据所述多个待编译分块进行并行编译操作,得到多个编译结果;
链接模块,用于根据所述合并信息和所述多个编译结果,进行链接操作,得到可执行文件。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
CN202111194420.4A 2021-10-13 2021-10-13 一种编译仿真文件的方法、装置、设备及存储介质 Pending CN113919257A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111194420.4A CN113919257A (zh) 2021-10-13 2021-10-13 一种编译仿真文件的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111194420.4A CN113919257A (zh) 2021-10-13 2021-10-13 一种编译仿真文件的方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN113919257A true CN113919257A (zh) 2022-01-11

Family

ID=79240017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111194420.4A Pending CN113919257A (zh) 2021-10-13 2021-10-13 一种编译仿真文件的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113919257A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115828805A (zh) * 2022-10-21 2023-03-21 芯华章科技(北京)有限公司 分割逻辑系统设计的方法、设备及存储介质
CN117521569A (zh) * 2023-12-07 2024-02-06 摩尔线程智能科技(北京)有限责任公司 芯片功能仿真方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115828805A (zh) * 2022-10-21 2023-03-21 芯华章科技(北京)有限公司 分割逻辑系统设计的方法、设备及存储介质
CN117521569A (zh) * 2023-12-07 2024-02-06 摩尔线程智能科技(北京)有限责任公司 芯片功能仿真方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US7529655B2 (en) Program product for defining and recording minimum and maximum event counts of a simulation utilizing a high level language
CN106940428B (zh) 芯片验证方法、装置及系统
US7206732B2 (en) C-API instrumentation for HDL models
US7120559B1 (en) System and method for performing automated system management
US7203881B1 (en) System and method for simulating system operation
TWI468950B (zh) 執行硬體模擬及驗證解決方案的方法與設備
US8375350B1 (en) Methods for reduced test case generation
US8560985B1 (en) Configuration-based merging of coverage data results for functional verification of integrated circuits
CN113919257A (zh) 一种编译仿真文件的方法、装置、设备及存储介质
US10354031B2 (en) Information processing by interpenetrating signal transmission channel in design for testability of chip
US7158924B2 (en) Dynamic loading of C-API HDL model instrumentation
US6934885B2 (en) Fail thresholding in a batch simulation farm network
CN114239453A (zh) 仿真验证平台构建方法、仿真验证方法、装置及设备
US7925489B2 (en) Defining and recording threshold-qualified count events of a simulation by testcases
US7454325B2 (en) Method, system and program product for defining and recording threshold-qualified count events of a simulation by testcases
US8050902B2 (en) Reporting temporal information regarding count events of a simulation
US6775810B2 (en) Boosting simulation performance by dynamically customizing segmented object codes based on stimulus coverage
CN101872324B (zh) 一种系统测试方法及装置
US8756575B2 (en) Installing and testing an application on a highly utilized computer platform
CN115629928B (zh) 一种面向类脑处理器的软硬协同验证方法及系统
CN115879409B (zh) 验证方法、验证装置、介质及电子设备
CN116629015A (zh) 数字孪生任务的处理方法、装置、设备及存储介质
Cantoro et al. Automated test program reordering for efficient SBST
CN112988565B (zh) 接口自动化测试方法、装置、计算机设备及存储介质
CN115587048A (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

Address after: Room 263, block B, science and technology innovation center, 128 Shuanglian Road, Haining Economic Development Zone, Haining City, Jiaxing City, Zhejiang Province, 314400

Applicant after: Haining yisiwei IC Design Co.,Ltd.

Applicant after: Beijing ESWIN Computing Technology Co.,Ltd.

Address before: Room 263, block B, science and technology innovation center, 128 Shuanglian Road, Haining Economic Development Zone, Haining City, Jiaxing City, Zhejiang Province, 314400

Applicant before: Haining yisiwei IC Design Co.,Ltd.

Applicant before: Beijing yisiwei Computing Technology Co.,Ltd.

CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: 314499 Building 1, Juanhu Science and Technology Innovation Park, No. 500 Shuiyueting East Road, Xiashi Street, Haining City, Jiaxing City, Zhejiang Province (self declared)

Applicant after: Haining Yisiwei Computing Technology Co.,Ltd.

Applicant after: Beijing ESWIN Computing Technology Co.,Ltd.

Address before: Room 263, block B, science and technology innovation center, 128 Shuanglian Road, Haining Economic Development Zone, Haining City, Jiaxing City, Zhejiang Province, 314400

Applicant before: Haining yisiwei IC Design Co.,Ltd.

Country or region before: China

Applicant before: Beijing ESWIN Computing Technology Co.,Ltd.

CB02 Change of applicant information