CN115496035A - 芯片的验证方法、装置、芯片、电子设备和介质 - Google Patents
芯片的验证方法、装置、芯片、电子设备和介质 Download PDFInfo
- Publication number
- CN115496035A CN115496035A CN202211454665.0A CN202211454665A CN115496035A CN 115496035 A CN115496035 A CN 115496035A CN 202211454665 A CN202211454665 A CN 202211454665A CN 115496035 A CN115496035 A CN 115496035A
- Authority
- CN
- China
- Prior art keywords
- register
- chip
- verification
- configuration
- description file
- 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
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
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本公开提供一种芯片的验证方法、装置、芯片、电子设备和介质,涉及芯片技术领域,具体涉及芯片验证领域。实现方案为:执行芯片配置,所述芯片配置包括寄存器配置;以及对配置后的所述芯片执行验证,以得到针对所述芯片的第一验证结果,其中,寄存器配置包括:获取寄存器描述文件,所述寄存器描述文件包括所述多个寄存器中的至少一个第一寄存器和至少一个值之间的映射关系;基于所述寄存器描述文件,配置所述至少一个第一寄存器各自的值;以及针对所述多个寄存器中除所述至少一个第一寄存器以外的至少一个第二寄存器,随机配置所述至少一个第二寄存器各自的值。
Description
技术领域
本公开涉及芯片技术领域,具体涉及芯片验证领域,尤其涉及一种芯片的验证方法、装置、芯片、电子设备、计算机可读存储介质和计算机程序产品。
背景技术
在对包含大量寄存器的芯片进行设计验证时,寄存器配置过程较为复杂,难以实现高效、全面的芯片验证。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
本公开提供了一种芯片的验证方法、装置、芯片、电子设备、计算机可读存储介质和计算机程序产品。
根据本公开的一方面,提供了一种芯片的验证方法,所述芯片包括多个寄存器。该方法包括:执行芯片配置,所述芯片配置包括寄存器配置;以及对配置后的所述芯片执行验证,以得到针对所述芯片的第一验证结果,其中,寄存器配置包括:获取寄存器描述文件,所述寄存器描述文件包括所述多个寄存器中的至少一个第一寄存器和至少一个值之间的映射关系;基于所述寄存器描述文件,配置所述至少一个第一寄存器各自的值;以及针对所述多个寄存器中除所述至少一个第一寄存器以外的至少一个第二寄存器,随机配置所述至少一个第二寄存器各自的值。
根据本公开的另一方面,提供了一种芯片的验证装置,所述芯片包括多个寄存器。该装置包括:配置单元,被配置用于执行芯片配置,所述芯片配置包括寄存器配置;验证单元,被配置用于对配置后的所述芯片执行验证,以得到针对所述芯片的第一验证结果,其中,所述配置单元包括:获取子单元,被配置用于获取寄存器描述文件,所述寄存器描述文件包括所述多个寄存器中的至少一个第一寄存器和至少一个值之间的映射关系;第一配置子单元,被配置用于基于所述寄存器描述文件,配置所述至少一个第一寄存器各自的值;以及第二配置子单元,被配置用于针对所述多个寄存器中除所述至少一个第一寄存器以外的至少一个第二寄存器,随机配置所述至少一个第二寄存器各自的值。
根据本公开的又另一方面,提供了一种芯片,包括上述的装置。
根据本公开的再另一方面,提供了一种电子设备,包括上述的芯片。
根据本公开的再另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使处理器执行上述的方法。
根据本公开的再另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,使处理器执行上述的方法。
根据本公开的一个或多个实施例,能够提升寄存器配置的效率,进而提升芯片的验证效率。
根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示出了根据本公开的示例性实施例的芯片的验证方法的流程图;
图2示出了根据本公开的示例性实施例的芯片的验证方法的流程图;
图3示出了根据本公开的示例性实施例的芯片的验证过程的示意图;
图4示出了根据本公开的示例性实施例的芯片的验证装置的结构框图;
图5示出了根据本公开的示例性实施例的电子设备的结构框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
当芯片中包含大量寄存器时,由于每个寄存器都可能有不同的值,因此芯片总体可以对应大量可能的状态,也就是对应不同的电路运行模式,例如当芯片中包含n个寄存器,每个寄存器具有m个可能的值时,则该芯片具有mn个可能的电路状态。应当理解,在对芯片进行验证时,所验证的芯片电路状态越多,得到的验证结果就越全面和可靠。但是在实际应用场景中,各个寄存器的值之间通常还存在较多的约束关系,在这种情况下,虽然该芯片对应的可能状态的数量减少,但是由于各个寄存器的值之间的约束关系较为复杂,因此难以通过简单的遍历来得到该芯片对应的全部可能状态。
相关技术中,一种验证方式是由人工编写寄存器配置信息,基于此来执行芯片的寄存器配置并执行验证,但是,这种方式的人力成本和错误率较高,所能覆盖的芯片的电路运行模式有限。另一种验证方式是随机生成寄存器配置信息,这种方式的效率较高,但是所得到的寄存器配置信息随机性过强,并且芯片所包括的寄存器的数量较多,难以根据验证需求来建立预期的寄存器的值的概率分布规律,也就难以实现对特定的芯片电路运行模式进行验证,影响验证效果。
基于此,本公开提供了一种芯片的验证方法,利用寄存器描述文件来保存所述芯片包括的多个寄存器中部分寄存器的配置信息,在基于该描述文件来执行部分寄存器的配置的基础上结合随机化配置方式,能够提升寄存器配置的效率,进而提升芯片验证效率。
图1示出了根据本公开示例性实施例的芯片的验证方法100的流程图。如图1所示,方法100包括:
步骤S110,执行芯片配置,所述芯片配置包括寄存器配置;以及
步骤S120,对配置后的所述芯片执行验证,以得到针对所述芯片的第一验证结果,
其中,步骤S110包括:
步骤S111,获取寄存器描述文件,所述寄存器描述文件包括所述多个寄存器中的至少一个第一寄存器和至少一个值之间的映射关系;
步骤S112,基于所述寄存器描述文件,配置所述至少一个第一寄存器各自的值;以及
步骤S113,针对所述多个寄存器中除所述至少一个第一寄存器以外的至少一个第二寄存器,随机配置所述至少一个第二寄存器各自的值。
由此,能够利用寄存器描述文件来保存所述芯片包括的多个寄存器中至少一个第一寄存器的配置信息,基于此来配置第一寄存器,再利用随机化方式配置其他寄存器,进而对配置后的芯片执行验证,能够提升寄存器配置的效率,进而提升芯片验证效率。
在一些示例中,所述寄存器描述文件可以是文本文档,其中存储了至少一个第一寄存器分别对应的寄存器变量名和至少一个值的一一映射关系。例如,当所述寄存器描述文件中包含Reg1、Reg2和Reg3三个第一寄存器时,所述寄存器描述文件中可以存储上述三个寄存器变量名和三个值之间的映射关系,或者是可以存储用于配置上述三个寄存器变量的值的指令语句。由此,能够通过解析所述寄存器描述文件中存储的信息,简便快捷地将其转换为可执行文件,以对至少一个第一寄存器进行配置。寄存器描述文件也可以是其他类型的文件,只要能够实现存储功能即可,对此不作限定。
可以看出,所述寄存器描述文件可以适用于各种类型的芯片验证过程,只要根据实际需求将寄存器描述文件中所存储的信息转换为针对至少一个第一寄存器的配置指令即可,具有较强的通用性。
如前文所描述的,芯片所包括的多个寄存器的值能够决定该芯片电路的状态和运行模式,通过执行寄存器配置,即能够实现对芯片电路功能的设置。当多个寄存器中的部分寄存器的值确定时,即可将芯片电路的运行模式限定在一定的范围内,从而能够更精准地实现对特定功能的验证。
例如,当芯片中包含5个寄存器,每个寄存器具有2个可能的值时,则该芯片具有32个可能的电路状态。在这种情况下,可以利用寄存器描述文件来存储其中3个第一寄存器各自的值,并在芯片的验证过程中基于此对3个第一寄存器进行配置,再通过随机化的方式配置剩余2个第二寄存器的值。可以看出,这一验证过程可以将芯片电路状态精准地限定在4个可能状态的范围内,当需要对这4个可能状态对应的电路功能进行验证时,即无需再遍历全部的32个可能的电路状态,从而能够实现更加高效精确的芯片验证。
在一些示例中,所述寄存器描述文件可以是预先由人工编写的。由此,能够通过人工配置来限定所述多个第一寄存器的值,以实现对芯片电路运行模式的限制,基于此执行芯片验证。
在实际应用过程中,还可以根据验证需求来灵活调整寄存器描述文件所存储的信息,以实现对芯片电路运行模式的灵活配置,从而能够更全面地覆盖芯片的电路运行模式。
根据一些实施例,步骤S111中获取寄存器描述文件包括:从多个候选验证模式中确定目标验证模式,其中,所述多个候选验证模式与多个候选寄存器描述文件一一对应;将与所述目标验证模式对应的候选寄存器描述文件确定为所述寄存器描述文件。由此,能够更加高效地确定所需要的寄存器描述文件,进一步提升寄存器配置的效率。
在一些示例中,可以是预先确定多个候选验证模式,并且针对每个候选验证模式,由人工编写相应的候选寄存器描述文件,利用候选寄存器描述文件中针对至少一个第一寄存器的配置信息来实现对芯片电路运行模式的限制。进一步地,即可将与多个候选验证模式一一对应的多个候选寄存器描述文件及其映射关系存入数据库中,从而能够在基于目标验证模式执行芯片验证时,简便快捷地从数据库中获取相应的寄存器描述文件,提升寄存器配置效率。
上述示例中描述了利用人工编写的方式来得到针对至少一个第一寄存器的寄存器描述文件,但是,芯片中可能包括大量的寄存器,第一寄存器的数量可能较多。在这种情况下,人工编写方式具有较高的成本和错误率,并且每次编写的寄存器描述文件所能覆盖的芯片的电路运行模式有限。
基于此,根据一些实施例,步骤S111中获取寄存器描述文件包括:随机生成所述至少一个第一寄存器各自的值,其中,所述至少一个第一寄存器的值满足预设的概率分布规律。由此,能够提升寄存器描述文件的生成效率,进而提升寄存器配置效率。
应当理解,第一寄存器的数量少于该芯片所包括的全部寄存器的数量,从而可以根据验证需求来建立预期的第一寄存器的值的概率分布规律,以实现对特定的芯片电路运行模式进行验证。
在一些示例中,步骤S120所述的对配置后的所述芯片执行验证可以基于软件或硬件的方式来实现。例如,可以在软件环境中采用Verilog、VHDL(Veri-High-SpeedIntegrate Circuit Hardware Description Language,超高速集成电路硬件描述语言)等硬件描述语言来进行芯片电路的设计和配置,编译生成可以用于仿真的芯片电路网表信息后,基于此执行芯片电路的仿真验证。在一些示例中,可以是在软件环境中得到待验证的芯片电路的RTL(Register Transfer Level,寄存器传输级)代码,以此来描述芯片电路的数据流,进而实现针对该芯片的RTL仿真。在一些示例中,也可以利用其他语言(例如C语言)编写生成硬件描述语言的相应代码,进而得到可以用于仿真的芯片电路网表信息。再例如,也可以是根据硬件描述语言或电路网表信息实现相应的硬件电路,对硬件电路执行验证。
在一些示例中,芯片的验证方法100可以应用于各种数据处理芯片,例如可以包括用于执行深度学习算法的芯片、语音处理芯片、图像处理芯片等。上述数据处理芯片的功能是基于输入数据执行各种算术和/或逻辑操作,以得到对应的输出数据。
基于此,根据一些实施例,步骤S120中对配置后的所述芯片执行验证,以得到针对所述芯片的第一验证结果包括:基于配置后的所述多个寄存器各自的值,确定输入数据和与所述输入数据对应的目标输出数据;基于所述输入数据对配置后的所述芯片执行验证,以得到所述芯片所输出的待验证输出数据;以及基于所述目标输出数据和待验证输出数据,确定所述第一验证结果。由此,能够利用目标输出数据来指示待验证输出数据是否准确,从而得到针对该芯片的第一验证结果。
在一些示例中,可以是通过比较目标输出数据和待验证输出数据,基于比较结果来确定该芯片是否能够正确执行预设的数据处理流程,从而确定第一验证结果。
如前文所描述的,芯片所包括的多个寄存器的值能够决定该芯片电路的运行模式。当待验证的芯片为数据处理芯片时,通过获取配置后的多个寄存器各自的值,能够确定该数据处理芯片的数据处理参数的配置信息,基于此确定输入数据。例如,当待验证的芯片是用于针对输入特征图执行卷积计算时,数据处理参数的配置信息可以包括输入特征图的尺寸、卷积通道数、卷积核的尺寸、卷积步长等,基于此可以确定符合要求的输入特征图,以使得芯片能够基于该输入特征图执行卷积计算,进而基于所得到的卷积计算结果确定针对该芯片的验证结果。
在一些示例中,可以是在确定输入数据后,基于该待验证的数据处理芯片的配置信息同时执行相应的数据处理,以得到与所述输入数据对应的目标输出数据,藉此来指示该芯片所述的待验证输出数据的准确性。例如,可以是利用C语言编写能够实现相应的数据处理功能的模型,利用该模型得到目标输出数据。
根据一些实施例,方法100还包括:将所述至少一个第二寄存器各自的值存入所述寄存器描述文件,以得到更新后的寄存器描述文件。由此,能够利用更新后的寄存器描述文件来保存此次验证过程中芯片寄存器的配置信息,便于对该芯片的寄存器配置进行检查。
在一些示例中,也可以在得到所述至少一个第二寄存器各自的值后,将包括第一寄存器和第二寄存器在内的全部寄存器各自的值全部写入寄存器描述文件,以得到保存有全部寄存器的配置信息的寄存器描述文件。
进一步地,根据一些实施例,方法100还包括:基于更新后的所述寄存器描述文件,重新配置所述多个寄存器各自的值;以及对重新配置后的所述芯片再次执行验证,以得到针对所述芯片的第二验证结果。由此,能够跳过针对所述至少一个第二寄存器的随机配置过程,高效地针对特定的芯片电路运行模式再次执行验证,实现芯片验证过程的复现,充分满足实际应用场景的需求。
根据一些实施例,方法100还包括:对其他芯片执行芯片配置,所述其他芯片包括至少一个第一寄存器和至少一个第二寄存器,其中,基于所述寄存器描述文件,配置所述其他芯片中的至少一个第一寄存器各自的值;以及随机配置所述其他芯片中的至少一个第二寄存器各自的值;以及对配置后的所述其他芯片执行验证,以得到针对所述其他芯片的第三验证结果。由此,能够通过复用所述寄存器描述文件,同时实现对多个芯片的配置和验证,提升芯片验证的效率。
当在软件环境中执行芯片电路的仿真验证时,相关技术中通常是利用修改代码的方式来调整寄存器配置,在这种情况下,每次修改代码均需要重新进行编译,验证效率较低。通过利用本公开所提供的方法100,可以在每次芯片验证过程中通过解析寄存器描述文件来确定芯片的寄存器配置信息,进而得到相应的可执行文件并对第一寄存器进行配置,再通过调用随机化工具对第二寄存器进行配置,从而能够高效简便地执行寄存器配置。应当理解,不同的仿真进程可以同时调用所述寄存器描述文件并解析其中存储的信息,即可以同时实现对多个芯片的配置和验证。
在一些示例中,可以是根据验证需求来灵活调整寄存器描述文件存储的信息,以灵活配置不同的芯片电路运行模式。由此,能够同时对不同的芯片电路运行模式执行验证,进一步提升芯片验证的效率。
图2示出了根据本公开的示例性实施例的芯片的验证方法200的流程图。如图2所示,方法200包括:
步骤S110,执行芯片配置,所述芯片配置包括寄存器配置;以及
步骤S120,对配置后的所述芯片执行验证,以得到针对所述芯片的第一验证结果,
其中,步骤S110包括:
步骤S111,获取寄存器描述文件,所述寄存器描述文件包括所述多个寄存器中的至少一个第一寄存器和至少一个值之间的映射关系;
步骤S112,基于所述寄存器描述文件,配置所述至少一个第一寄存器各自的值;
步骤S113,针对所述多个寄存器中除所述至少一个第一寄存器以外的至少一个第二寄存器,随机配置所述至少一个第二寄存器各自的值;
以及步骤S114,将所述至少一个第二寄存器各自的值存入所述寄存器描述文件,以得到更新后的寄存器描述文件。
步骤S120包括:
步骤S121,基于配置后的所述多个寄存器各自的值,确定输入数据和与所述输入数据对应的目标输出数据;
步骤S122,基于所述输入数据对配置后的所述芯片执行验证,以得到所述芯片所输出的待验证输出数据;
以及步骤S123,基于所述目标输出数据和待验证输出数据,确定所述第一验证结果。
图3示出了根据本公开的示例性实施例的芯片的验证过程的示意图。在这一示例中,是利用仿真软件来实现对数据处理芯片的验证,在软件环境中可以利用硬件描述语言来进行芯片电路的设计,其中包括的多个寄存器与多个寄存器变量名分别唯一对应,并且多个寄存器变量均为随机变量。在这一示例中,寄存器描述文件可以是文本文档,其中存储了至少一个第一寄存器分别对应的寄存器变量名和至少一个值的一一映射关系。当仿真软件读取该寄存器描述文件后,即可将第一寄存器相应的寄存器变量设置为非随机变量,并调用随机化工具来生成所有随机变量的值,即得到至少一个第二寄存器分别对应的值,进而能够得到存储有芯片中全部寄存器的配置信息的寄存器配置文件。随机化工具例如可以是软件环境中预置的随机化函数,例如System Verilog软件中的randomize() with函数,对此不作限定。应当理解,寄存器配置文件与寄存器描述文件可以具有相同的数据格式,在一些示例中,寄存器配置文件也可以是通过将至少一个第二寄存器各自的值存入寄存器描述文件来得到的,即相当于上文中的实施例所描述的更新后的寄存器描述文件。
在此基础上,则可以将寄存器配置文件传入软件环境中建立的数据生成和处理模型,该数据生成和处理模型能够通过获取配置后的多个寄存器各自的值,能够确定该数据处理芯片的数据处理参数的配置信息,基于此确定输入数据,并且能够基于输入数据实现与待验证的芯片电路相同的数据处理功能,以得到与输入数据对应的目标输出数据,作为待验证输出数据的参考值。与此同时,可以将寄存器配置文件和输入数据传入软件环境中建立的芯片电路模型,例如可以是RTL级模型,以实现对芯片电路的初始化配置,在配置芯片以使得其能够相应的数据处理功能的同时,提供用于测试该数据处理功能所需要的输入数据,进而可以编译生成可以用于仿真的芯片电路网表信息,基于此执行运算仿真后得到待验证的输出数据。通过比较目标输出数据和待验证输出数据,即可基于比较结果来确定该芯片是否能够正确执行预设的数据处理流程,从而确定针对该芯片的验证结果。
根据本公开的另一方面,提供了一种芯片的验证装置,所述芯片包括多个寄存器。图4示出了根据本公开的示例性实施例的芯片的验证装置400的结构框图。如图4所示,装置400包括:
配置单元410,被配置用于执行芯片配置,所述芯片配置包括寄存器配置;
验证单元420,被配置用于对配置后的所述芯片执行验证,以得到针对所述芯片的第一验证结果,
其中,配置单元410包括:
获取子单元411,被配置用于获取寄存器描述文件,所述寄存器描述文件包括所述多个寄存器中的至少一个第一寄存器和至少一个值之间的映射关系;
第一配置子单元412,被配置用于基于所述寄存器描述文件,配置所述至少一个第一寄存器各自的值;以及
第二配置子单元413,被配置用于针对所述多个寄存器中除所述至少一个第一寄存器以外的至少一个第二寄存器,随机配置所述至少一个第二寄存器各自的值。
可以理解的是,装置400中的单元410至单元420的操作和技术效果分别和图1中的步骤S110至步骤S120的操作和技术效果类似,在此不做赘述。
根据一些实施例,所述获取子单元411被配置用于:随机生成所述至少一个第一寄存器各自的值,其中,所述至少一个第一寄存器的值满足预设的概率分布规律。
根据一些实施例,所述获取子单元411被配置用于:从多个候选验证模式中确定目标验证模式,其中,所述多个候选验证模式与多个候选寄存器描述文件一一对应;将与所述目标验证模式对应的候选寄存器描述文件确定为所述寄存器描述文件。
根据一些实施例,装置400还包括:更新单元,被配置用于将所述至少一个第二寄存器各自的值存入所述寄存器描述文件,以得到更新后的寄存器描述文件。
根据一些实施例,所述第一配置子单元412还被配置用于基于更新后的所述寄存器描述文件,重新配置所述多个寄存器各自的值,所述验证单元420还被配置用于对重新配置后的所述芯片再次执行验证,以得到针对所述芯片的第二验证结果。
根据一些实施例,所述验证单元420被配置用于:基于配置后的所述多个寄存器各自的值,确定输入数据和与所述输入数据对应的目标输出数据;基于所述输入数据对配置后的所述芯片执行验证,以得到所述芯片所输出的待验证输出数据;以及基于所述目标输出数据和待验证输出数据,确定所述第一验证结果。
根据一些实施例,所述配置单元410还被配置用于对其他芯片执行芯片配置,所述其他芯片包括至少一个第一寄存器和至少一个第二寄存器,其中,所述第一配置子单元412还被配置用于基于所述寄存器描述文件,配置所述其他芯片中的至少一个第一寄存器各自的值,所述第二配置子单元413还被配置用于随机配置所述其他芯片中的至少一个第二寄存器各自的值,所述验证单元420还被配置用于对配置后的所述其他芯片执行验证,以得到针对所述其他芯片的第三验证结果。
根据本公开的另一方面,提供了一种芯片,包括上述芯片的验证装置400。
根据本公开的另一方面,提供了一种电子设备,包括上述的芯片。
根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使处理器执行上述的芯片的验证方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,使处理器执行上述的芯片的验证方法。
图5是示出根据本公开的示例性实施例的电子设备的示例的框图。需要说明的,图5所示出的结构仅是一个示例,根据具体的实现方式,本公开的电子设备可以仅包括图5所示出的组成部分中的一种或多个。
电子设备500例如可以是通用计算机(例如膝上型计算机、平板计算机等等各种计算机)、移动电话、个人数字助理。根据一些实施例,电子设备500可以是云计算设备和智能设备。
根据一些实施例,电子设备500可被配置为对图像、文本和音频中的至少一者进行处理,并且将所述处理结果传输至输出设备而提供给用户。输出设备例如可以为显示屏、包括显示屏的设备,也可以为耳机、扬声器、或振荡器等声音输出设备。例如,电子设备500可被配置为对图像进行目标检测,将目标检测结果传输至显示设备以显示,电子设备500还可被配置为对图像进行增强处理,并将增强结果传输至显示设备以显示。电子设备500还可被配置为对图像中的文本进行识别,并将识别结果传输至显示设备以显示和/或将识别结果转换成声音数据并传输至声音输出设备进行播放。电子设备500还可被配置为对音频进行识别和处理,并将识别结果传输至显示设备以显示和/或将处理结果转换成声音数据并传输至声音输出设备进行播放。
电子设备500可以包括图像处理电路503,图像处理电路503可以被配置为对图像进行各种图像处理。图像处理电路503例如可以被配置为对图像进行以下图像处理中的至少一项:对图像进行降噪、对图像进行几何矫正、对图像进行特征提取、对图像中的对象进行检测和/或识别、对图像进行增强处理、以及对图像中包含的文字进行检测和/或识别等等。
电子设备500还可以包括文字识别电路504,所述文字识别电路504被配置为对图像中的文字区域进行文字检测和/或识别(例如OCR处理),从而获得文字数据。所述文字识别电路504例如可以通过专用芯片实现。电子设备500还可以包括声音转换电路505,所述声音转换电路505被配置为将所述文字数据转换成声音数据。所述声音转换电路505例如可以通过专用芯片实现。
电子设备500还可以包括音频处理电路506,所述音频处理电路506被配置为将音频转换为文字,从而获得音频相应的文字数据。所述音频处理电路506还可被配置为对音频相应的文字数据进行处理,例如可以包括关键字提取、意图识别、智能推荐和智能问答等等。所述音频处理电路506例如可以通过专用芯片实现。所述声音转换电路505还可被配置为将音频处理结果转换为声音数据,以适用于语音助手或虚拟客服等应用场景。
上述的各种电路(例如图像处理电路503、文字识别电路504、声音转换电路505、音频处理电路506中的一个或多个可以使用定制硬件,和/或可以用硬件、软件、固件、中间件、微代码,硬件描述语言或其任何组合来实现。例如,上述的各种电路中的一个或多个可以通过使用根据本公开的逻辑和算法,用汇编语言或硬件编程语言(诸如VERILOG,VHDL,C++)对硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)进行编程来实现。
根据一些实施方式,电子设备500还可以包括输出设备507,所述输出设备507可以是用于呈现信息的任何类型的设备,可以包括但不限于显示屏、具有显示功能的终端、耳机、扬声器、振动器和/或打印机等。
根据一些实施方式,电子设备500还可以包括输入设备508,所述输入设备508可以是用于向电子设备500输入信息的任何类型的设备,可以包括但不限于各种传感器、鼠标、键盘、触摸屏、按钮、控制杆、麦克风和/或遥控器等等。
根据一些实施方式,电子设备500还可以包括通信设备509,所述通信设备509可以是使得能够与外部设备和/或与网络通信的任何类型的设备或系统,可以包括但不限于调制解调器、网卡、红外通信设备、无线通信设备和/或芯片组,例如蓝牙设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
根据一些实施方式,电子设备500还可以包括处理器501。所述处理器501可以是任何类型的处理器,并且可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如特殊处理芯片)。处理器501例如可以是但不限于中央处理单元CPU、图形处理器GPU、或各种专用的人工智能(AI)计算芯片等等。
电子设备500还可以包括工作存储器502和存储设备511。处理器501可以被配置为能够获取并且执行存储在工作存储器502、存储设备511或者其他计算机可读介质中的计算机可读指令,诸如操作系统502a的程序代码、应用程序502b的程序代码等。工作存储器502和存储设备511是用于存储指令的计算机可读存储介质的示例,所存储的指令能够由处理器501执行来实施前面所描述的各种功能。工作存储器502可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等等)。存储设备511可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等等。工作存储器502和存储设备511在本文中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,计算机程序代码可以由处理器501作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
根据一些实施方式,处理器501可以对图像处理电路503、文字识别电路504、声音转换电路505、音频处理电路506以及电子设备500包括的其他各种装置和电路中的至少一个进行控制和调度。根据一些实施方式,图5中所述的各个组成部分中的至少一些可通过总线510而相互连接和/或通信。
软件要素(程序)可以位于所述工作存储器502中,包括但不限于操作系统502a、一个或多个应用程序502b、驱动程序和/或其他数据和代码。
根据一些实施方式,用于进行前述的控制和调度的指令可以被包括在操作系统502a或者一个或多个应用程序502b中。
根据一些实施方式,执行本公开所述的方法步骤的指令可以被包括在一个或多个应用程序502b中,并且上述电子设备500的各个模块可以通过由处理器501读取和执行一个或多个应用程序502b的指令来实现。换言之,电子设备500可以包括处理器501以及存储程序的存储器(例如工作存储器502和/或存储设备511),所述程序包括指令,所述指令在由所述处理器501执行时使所述处理器501执行如本公开各种实施例所述的方法。
根据一些实施方式,图像处理电路503、文字识别电路504、声音转换电路505、音频处理电路506中的至少一个所执行的操作中的一部分或者全部可以由处理器501读取和执行一个或多个应用程序502b的指令来实现。
软件要素(程序)的指令的可执行代码或源代码可以存储在非暂时性计算机可读存储介质(例如所述存储设备511)中,并且在执行时可以被存入工作存储器502中(可能被编译和/或安装)。因此,本公开提供存储程序的计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,致使所述电子设备执行如本公开各种实施例所述的方法。根据另一种实施方式,软件要素(程序)的指令的可执行代码或源代码也可以从远程位置下载。
还应该理解,可以根据具体要求而进行各种变型。例如,也可以使用定制硬件,和/或可以用硬件、软件、固件、中间件、微代码,硬件描述语言或其任何组合来实现各个电路、单元、模块或者元件。例如,所公开的方法和设备所包含的电路、单元、模块或者元件中的一些或全部可以通过使用根据本公开的逻辑和算法,用汇编语言或硬件编程语言(诸如VERILOG,VHDL,C ++)对硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)进行编程来实现。
根据一些实施方式,电子设备500中的处理器501可以分布在网络上。 例如,可以使用一个处理器执行一些处理,而同时可以由远离该一个处理器的另一个处理器执行其他处理。电子设备500的其他模块也可以类似地分布。这样,电子设备500可以被解释为在多个位置执行处理的分布式计算系统。电子设备500的处理器501也可以是云计算系统的处理器,或者是结合了区块链的处理器。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
Claims (14)
1.一种芯片的验证方法,所述芯片包括多个寄存器,其特征在于,所述方法包括:
执行芯片配置,所述芯片配置包括寄存器配置;以及
对配置后的所述芯片执行验证,以得到针对所述芯片的第一验证结果,
其中,寄存器配置包括:
获取寄存器描述文件,所述寄存器描述文件包括所述多个寄存器中的至少一个第一寄存器和至少一个值之间的映射关系;
基于所述寄存器描述文件,配置所述至少一个第一寄存器各自的值;以及
针对所述多个寄存器中除所述至少一个第一寄存器以外的至少一个第二寄存器,随机配置所述至少一个第二寄存器各自的值,
其中,所述获取寄存器描述文件包括:
从多个候选验证模式中确定目标验证模式,其中,所述多个候选验证模式与多个候选寄存器描述文件一一对应;
将与所述目标验证模式对应的候选寄存器描述文件确定为所述寄存器描述文件。
2.如权利要求1所述的方法,其特征在于,还包括:
将所述至少一个第二寄存器各自的值存入所述寄存器描述文件,以得到更新后的寄存器描述文件。
3.如权利要求2所述的方法,其特征在于,还包括:
基于更新后的所述寄存器描述文件,重新配置所述多个寄存器各自的值;以及
对重新配置后的所述芯片再次执行验证,以得到针对所述芯片的第二验证结果。
4.如权利要求1所述的方法,其特征在于,所述对配置后的所述芯片执行验证,以得到针对所述芯片的第一验证结果包括:
基于配置后的所述多个寄存器各自的值,确定输入数据和与所述输入数据对应的目标输出数据;
基于所述输入数据对配置后的所述芯片执行验证,以得到所述芯片所输出的待验证输出数据;以及
基于所述目标输出数据和待验证输出数据,确定所述第一验证结果。
5.如权利要求1所述的方法,其特征在于,还包括:
对其他芯片执行芯片配置,所述其他芯片包括至少一个第一寄存器和至少一个第二寄存器,其中,
基于所述寄存器描述文件,配置所述其他芯片中的至少一个第一寄存器各自的值;以及
随机配置所述其他芯片中的至少一个第二寄存器各自的值;以及
对配置后的所述其他芯片执行验证,以得到针对所述其他芯片的第三验证结果。
6.一种芯片的验证装置,所述芯片包括多个寄存器,其特征在于,所述装置包括:
配置单元,被配置用于执行芯片配置,所述芯片配置包括寄存器配置;
验证单元,被配置用于对配置后的所述芯片执行验证,以得到针对所述芯片的第一验证结果,
其中,所述配置单元包括:
获取子单元,被配置用于获取寄存器描述文件,所述寄存器描述文件包括所述多个寄存器中的至少一个第一寄存器和至少一个值之间的映射关系;
第一配置子单元,被配置用于基于所述寄存器描述文件,配置所述至少一个第一寄存器各自的值;以及
第二配置子单元,被配置用于针对所述多个寄存器中除所述至少一个第一寄存器以外的至少一个第二寄存器,随机配置所述至少一个第二寄存器各自的值,
其中,所述获取子单元被配置用于:
从多个候选验证模式中确定目标验证模式,其中,所述多个候选验证模式与多个候选寄存器描述文件一一对应;
将与所述目标验证模式对应的候选寄存器描述文件确定为所述寄存器描述文件。
7.如权利要求6所述的装置,其特征在于,还包括:
更新单元,被配置用于将所述至少一个第二寄存器各自的值存入所述寄存器描述文件,以得到更新后的寄存器描述文件。
8.如权利要求7所述的装置,其特征在于,
所述第一配置子单元还被配置用于基于更新后的所述寄存器描述文件,重新配置所述多个寄存器各自的值,
所述验证单元还被配置用于对重新配置后的所述芯片再次执行验证,以得到针对所述芯片的第二验证结果。
9.如权利要求6所述的装置,其特征在于,所述验证单元被配置用于:
基于配置后的所述多个寄存器各自的值,确定输入数据和与所述输入数据对应的目标输出数据;
基于所述输入数据对配置后的所述芯片执行验证,以得到所述芯片所输出的待验证输出数据;以及
基于所述目标输出数据和待验证输出数据,确定所述第一验证结果。
10.如权利要求6所述的装置,其特征在于,
所述配置单元还被配置用于对其他芯片执行芯片配置,所述其他芯片包括至少一个第一寄存器和至少一个第二寄存器,其中,
所述第一配置子单元还被配置用于基于所述寄存器描述文件,配置所述其他芯片中的至少一个第一寄存器各自的值,
所述第二配置子单元还被配置用于随机配置所述其他芯片中的至少一个第二寄存器各自的值,
所述验证单元还被配置用于对配置后的所述其他芯片执行验证,以得到针对所述其他芯片的第三验证结果。
11.一种芯片,其特征在于,包括权利要求6-10中任一项所述的装置。
12.一种电子设备,其特征在于,包括如权利要求11所述的芯片。
13.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-5中任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211454665.0A CN115496035B (zh) | 2022-11-21 | 2022-11-21 | 芯片的验证方法、装置、芯片、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211454665.0A CN115496035B (zh) | 2022-11-21 | 2022-11-21 | 芯片的验证方法、装置、芯片、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115496035A true CN115496035A (zh) | 2022-12-20 |
CN115496035B CN115496035B (zh) | 2023-02-21 |
Family
ID=85114790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211454665.0A Active CN115496035B (zh) | 2022-11-21 | 2022-11-21 | 芯片的验证方法、装置、芯片、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115496035B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7178117B1 (en) * | 2004-04-08 | 2007-02-13 | Altera Corporation | Apparatus and method for RTL based full chip modeling of a programmable logic device |
US9063831B1 (en) * | 2012-12-21 | 2015-06-23 | Cadence Design Systems, Inc. | Method and apparatus for optimizing access to control registers in an emulation chip |
CN111259618A (zh) * | 2020-01-10 | 2020-06-09 | 何刚 | 一种基于寄存器流程工具的设计验证芯片方法 |
CN112131829A (zh) * | 2020-09-18 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片寄存器的验证方法、系统及相关装置 |
CN113835945A (zh) * | 2021-09-29 | 2021-12-24 | 深圳大普微电子科技有限公司 | 芯片的测试方法、装置、设备及系统 |
US20220358270A1 (en) * | 2021-05-08 | 2022-11-10 | Realtek Semiconductor Corp. | Chip verification system and verification method therefor |
-
2022
- 2022-11-21 CN CN202211454665.0A patent/CN115496035B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7178117B1 (en) * | 2004-04-08 | 2007-02-13 | Altera Corporation | Apparatus and method for RTL based full chip modeling of a programmable logic device |
US9063831B1 (en) * | 2012-12-21 | 2015-06-23 | Cadence Design Systems, Inc. | Method and apparatus for optimizing access to control registers in an emulation chip |
CN111259618A (zh) * | 2020-01-10 | 2020-06-09 | 何刚 | 一种基于寄存器流程工具的设计验证芯片方法 |
CN112131829A (zh) * | 2020-09-18 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片寄存器的验证方法、系统及相关装置 |
US20220358270A1 (en) * | 2021-05-08 | 2022-11-10 | Realtek Semiconductor Corp. | Chip verification system and verification method therefor |
CN113835945A (zh) * | 2021-09-29 | 2021-12-24 | 深圳大普微电子科技有限公司 | 芯片的测试方法、装置、设备及系统 |
Non-Patent Citations (1)
Title |
---|
方颖立: "基于VMM的寄存器抽象层验证", 《电子设计技术》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115496035B (zh) | 2023-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844400B (zh) | 一种日志数据的校验方法及装置 | |
US8549478B2 (en) | Graphical user interface input element identification | |
CN108845930B (zh) | 界面操作测试方法和装置、存储介质及电子装置 | |
CN108491326B (zh) | 测试行为重组方法、装置及存储介质 | |
CN107329750A (zh) | 应用程序中广告页面的识别方法、跳转方法及移动终端 | |
CN105095078A (zh) | 一种系统自动化测试设备、方法和计算设备 | |
CN111475192B (zh) | 对游戏服务器进行热更的方法、装置、存储介质和系统 | |
CN110888756A (zh) | 一种诊断日志生成方法及装置 | |
CN116991711A (zh) | 一种测试用例的生成方法、装置、终端设备及存储介质 | |
US11137947B2 (en) | Recognizing hard disk movement | |
CN111506362B (zh) | 用于游戏的配置表格的处理方法、装置、存储介质和系统 | |
CN115496035B (zh) | 芯片的验证方法、装置、芯片、电子设备和介质 | |
CN115237831B (zh) | 数据传输方法、装置、芯片、电子设备和介质 | |
CN109189688A (zh) | 一种测试用例脚本的生成方法、生成装置及电子设备 | |
CN112860587A (zh) | Ui自动测试方法和装置 | |
CN110276443B (zh) | 模型转换一致性验证及分析方法、装置及存储介质 | |
CN115391066B (zh) | 用于芯片的数据交互方法、装置和人工智能芯片 | |
CN115599618B (zh) | 寄存器动态改配验证方法、装置、存储介质和处理器 | |
CN109324838B (zh) | 单片机程序的执行方法、执行装置及终端 | |
CN108491325B (zh) | 文件系统测试方法、装置、存储介质及终端 | |
CN111399926A (zh) | 下载启动程序的方法和装置 | |
CN109542837B (zh) | 运算方法、装置及相关产品 | |
CN109543835B (zh) | 运算方法、装置及相关产品 | |
CN109558565B (zh) | 运算方法、装置及相关产品 | |
JP6818568B2 (ja) | 通信装置、通信仕様差分抽出方法及び通信仕様差分抽出プログラム |
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 |