CN116187268A - 芯片仿真验证方法、装置、设备及存储介质 - Google Patents
芯片仿真验证方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116187268A CN116187268A CN202310220316.0A CN202310220316A CN116187268A CN 116187268 A CN116187268 A CN 116187268A CN 202310220316 A CN202310220316 A CN 202310220316A CN 116187268 A CN116187268 A CN 116187268A
- Authority
- CN
- China
- Prior art keywords
- chip
- data
- verification
- output
- dut
- 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
- 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
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/02—Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Tests Of Electronic Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请公开了一种芯片仿真验证方法、装置、设备及存储介质。本申请通过获取激励数据,将激励数据输入预设的算法模型,得到算法模型输出的第一输出数据;将激励数据输入DUT硬件芯片,得到DUT硬件芯片输出的第二输出数据;将第一输出数据和第二输出数据进行比对,确定DUT硬件芯片的验证结果。通过上述技术手段,解决了现有技术中需要人工参与芯片仿真验证的问题,提高了芯片的验证效率和验证覆盖率,进而保证后续芯片的使用可靠性。
Description
技术领域
本申请涉及芯片技术领域,尤其涉及一种芯片仿真验证方法、装置、设备及存储介质。
背景技术
在芯片仿真验证过程中,手动计算输入激励数据到设定算法例如非对称算法、对称算法和哈希算法等的预期结果,然后将激励数据加入到DUT(design under test)硬件芯片中得到硬件输出结果,将手动计算的预期结果和硬件输出结果进行人工肉眼比对,确定DUT硬件芯片存在的问题并修改。由于人工手动计算各种设定算法对应的预期结果的过程较为复杂,在计算过程中容易出现计算误差,验证相对困难。如果验证过程出现问题,需要大量核对手动计算的结果,大大影响芯片的验证效率。而且芯片仿真验证时需要大量数据验证芯片是否能够完成各种设定算法,人工验证难以通过大量数据全面验证芯片的算法完整性,导致DUT硬件芯片的验证覆盖率较低,在后续投入使用时可能会出现异常,无法保证芯片的使用可靠性。
发明内容
本申请提供一种芯片仿真验证方法、装置、设备及存储介质,解决了现有技术中需要人工参与芯片仿真验证的问题,提高了芯片的验证效率和验证覆盖率,进而保证后续芯片的使用可靠性。
第一方面,本申请提供了一种芯片仿真验证方法,包括:
获取激励数据,将所述激励数据输入预设的算法模型,得到所述算法模型输出的第一输出数据;
将所述激励数据输入DUT硬件芯片,得到所述DUT硬件芯片输出的第二输出数据;
将所述第一输出数据和所述第二输出数据进行比对,确定所述DUT硬件芯片的验证结果。
第二方面,本申请提供了一种芯片仿真验证装置,包括:
软件计算模块,被配置为获取激励数据,将所述激励数据输入预设的算法模型,得到所述算法模型输出的第一输出数据;
硬件计算模块,被配置为将所述激励数据输入DUT硬件芯片,得到所述DUT硬件芯片输出的第二输出数据;
第一验证模块,被配置为将所述第一输出数据和所述第二输出数据进行比对,确定所述DUT硬件芯片的验证结果。
第三方面,本申请提供了一种芯片仿真验证设备,包括:
一个或多个处理器;存储器,存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的芯片仿真验证方法。
第四方面,本申请提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的芯片仿真验证方法。
本申请通过获取激励数据,将激励数据输入预设的算法模型,得到算法模型输出的第一输出数据;将激励数据输入DUT硬件芯片,得到DUT硬件芯片输出的第二输出数据;将第一输出数据和第二输出数据进行比对,确定DUT硬件芯片的验证结果。通过上述技术手段,算法模型可以快速对激励数据作为响应,计算得到第一输出数据,无需用户手动计算算法的期望结果,大大提高了计算效率和计算准确率。算法模型输出的第一输出数据可看作期望结果,DUT硬件芯片输出的第二输出数据是DUT硬件芯片采用算法模型对应的算法时计算的实际结果。将实际结果与期望结果进行比较,可快速确定DUT硬件芯片本轮的验证结果,大大提高了芯片的验证效率。若实际结果与期望结果不同,则可确定DUT硬件芯片的内部硬件结构不能准确执行算法模型对应的算法,即DUT硬件芯片存在问题,进而可对DUT硬件芯片的内部硬件结构进行调整以使得DUT硬件芯片能够准确执行算法模型对应的算法。若实际结果与期望结果相同,则可确定DUT硬件芯片可以准确响应当前输入的激励数据,进而可以通过新的激励数据对DUT硬件芯片进行新一轮的验证,以便能够全面验证DUT硬件芯片的算法完整性,保证DUT硬件芯片的验证覆盖率,提高芯片后续使用的可靠性。
附图说明
图1是本申请实施例提供的一种芯片仿真验证方法的流程图;
图2是本申请实施例提供的转换激励数据的数据类型的流程图;
图3是本申请实施例提供的验证框架的示意图;
图4是本申请实施例提供的Python-C接口的代码示意图;
图5是本申请实施例提供的验证DUT硬件芯片是否准确响应当前输入的激励数据的流程图;
图6是本申请实施例提供的自动对DUT硬件芯片进行全面验证的流程图;
图7是本申请实施例提供的一种芯片仿真验证装置的结构示意图;
图8是本申请实施例提供的一种芯片仿真验证设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
本实施例中提供的芯片仿真验证方法可以由芯片仿真验证设备执行,该芯片仿真验证设备可以通过软件和/或硬件的方式实现,该芯片仿真验证设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。例如芯片仿真验证设备可以是用于测试芯片功能的智能设备,如电脑等。电脑安装有可以执行芯片仿真验证方法的应用程序,因此芯片仿真验证设备也可以是应用程序本身。
为便于理解,本实施例以电脑为执行芯片仿真验证方法的主体为例,进行描述。
在一实施例中,每一DUT硬件芯片可以实现一种算法功能,在设计DUT硬件芯片的硬件结构时会设定其执行的算法,例如非对称算法、对称算法和哈希算法等。芯片仿真验证旨在验证DUT硬件芯片是否能够准确执行对应设定的算法。假设DUT硬件芯片可以执行非对称算法,在芯片仿真验证过程中,在芯片仿真验证过程中,获取固定的激励数据,并由工作人员通过手动方式计算非对称算法响应于该激励数据的预期结果,由电脑将激励数据输入DUT硬件芯片,并获取DUT硬件芯片输出的实际结果。工作人员将DUT硬件芯片输出的实际结果和手动计算的预期结果进行肉眼对比,确定DUT硬件芯片是否能够准确响应该激励数据。如果DUT硬件芯片不能准确响应该激励数据,则工作人员需确定仔细比较DUT硬件芯片的各个硬件子模块输出的结果与预期结果的计算流程中的中间结果,定位DUT硬件芯片出现问题的硬件子模块,进而对硬件子模块的结构进行调整,然后再重新验证DUT硬件芯片是否能够准确响应该激励数据。如果DUT硬件芯片能准确响应该激励数据,则获取新的激励数据,验证DUT硬件芯片是否能够准确响应新的激励数据。由于在一轮验证过程中,工作人员不仅要手动推演复杂的非对称算法对激励数据的预期结果,还要肉眼比对预期结果和实际结果以定位DUT硬件芯片的问题硬件,验证过程相对困难。而且人工计算和比较时容易出现误差,可能要重复验证,验证效率较低。而且芯片仿真验证时需要大量数据验证芯片是否能够完成各种设定算法,人工验证难以通过大量数据全面验证芯片的算法完整性,导致DUT硬件芯片的验证覆盖率较低,在后续投入使用时可能会出现异常,无法保证芯片的使用可靠性。
为解决上述问题,本实施例提供了一种芯片仿真验证方法,提高了芯片的验证效率和验证覆盖率,进而保证后续芯片的使用可靠性。
图1给出了本申请实施例提供的一种芯片仿真验证方法的流程图。参考图1,该芯片仿真验证方法具体包括:
S110、获取激励数据,将激励数据输入预设的算法模型,得到算法模型输出的第一输出数据。
其中,算法模型是指可以运行DUT硬件芯片的设定算法的软件代码,其可以看作DUT硬件芯片的软件仿真芯片。当电脑输入激励数据至算法模型时,电脑运行算法模型以快速准确计算出该激励数据对应的预期结果。第一输出数据即为DUT硬件芯片的设定算法响应于对应输入的激励数据时得到的预期结果。本实施例以DUT硬件芯片的设定算法为非对称算法为例进行描述。工作人员事先在电脑上编写非对称算法的算法模型,在获取到激励数据后,将激励数据输入到非对称算法的算法模型中,运行非对称算法的算法模型,得到第一输出数据。非对称算法算法模型可以快速对激励数据作为响应,计算得到第一输出数据,无需用户手动计算算法的期望结果,大大提高了计算效率和计算准确率。
在一实施例中,通过预先搭建的验证环境产生定向激励数据或随机激励数据,验证环境基于systemverilog进行搭建。其中,验证环境是指DUT硬件芯片和算法模型所处的仿真环境。DUT硬件芯片在实际使用过程中在具备供电电源和接地的环境中工作,为了提高验证的便捷性,本实施例通过systemverilog搭建DUT硬件芯片工作时所需要的仿真环境,以将该仿真环境作为验证DUT硬件芯片的算法功能时的验证环境。进一步的,DUT硬件芯片与对应的软件仿真芯片需处于同一验证环境下,因此该验证环境也为软件仿真芯片也即算法模型的验证环境。在本实施例中,将验证环境设置成自发产生定向激励数据或随机激励数据,以使得DUT硬件芯片和算法模型可以同时输入相同的激励数据,保证自动验证的可行性。其中,定向激励数据是指按照预设的激励序列向DUT硬件芯片和算法模型输入的固定激励,随机激励数据是指通过预选设定的约束随机产生的合理激励。通过定向激励数据和随机激励数据可以分别对芯片进行定向测试和随机测试,以尽量通过较多的数据全面验证芯片的算法完整性,保证DUT硬件芯片的验证覆盖率,进而提高DUT硬件芯片的使用可靠性。
在该实施例中,工作人员事先准备好Python环境,并使用Python语言编写非对称算法的算法模型。由于激励数据是基于systemverilog搭建的验证环境产生的,其数据类型为SV(System Verilog),算法模型无法直接响应SV数据类型的激励数据,因此需对该激励数据进行数据类型的转换。示例性的,图2是本申请实施例提供的转换激励数据的数据类型的流程图。如图2所示,该转换激励数据的数据类型的步骤具体包括S1101-S1103:
S1101、通过DPI-C接口将激励数据从SV数据类型转换为C数据类型。
S1102、通过Python-C接口将C数据类型的激励数据转换为Python数据类型。
S1103、将Python数据类型的激励数据输入算法模型,得到算法模型输出的第一输出数据。
示例性的,图3是本申请实施例提供的验证框架的示意图。如图3所示,验证环境的激励产生端连接DUT硬件芯片的输入端,验证环境的激励产生端通过DPI-C接口和Python-C接口连接非对称算法的算法模型的输入端。算法模型的输出端和DUT硬件芯片的输出端连接比较模块。在本实施例中,比较模块用于比较算法模型和DUT硬件芯片的输出结果;DPI-C接口用于将激励数据从SV数据类型转换为C数据类型;Python-C接口用于将激励数据从C数据类型转换为Python数据类型。在通过DPI-C接口和Python-C接口将SV数据类型的激励数据转换为Python数据类型的激励数据后,算法模型响应于Python数据类型的激励数据,并输出该激励数据对应的预期结果。需要说明的,DPI-C接口和Python-C接口均为实现数据类型转换机制的代码,例如图4示出的是Python-C接口的代码。Python-C接口的代码可以调用python函数,给Python函数输入C变量,并将python函数的返回值输出到C变量,以此实现C数据类型和Python数据类型的转换。
S120、将激励数据输入DUT硬件芯片,得到DUT硬件芯片输出的第二输出数据。
参考图3,将验证环境产生的激励数据输入DUT硬件芯片,DUT硬件芯片响应该激励数据以运行自身设定的非对称算法,输出实际结果。其中,第二输出数据即为DUT硬件芯片响应于对应输入的激励数据时输出的实际结果。可理解,当DUT硬件芯片能够准确运行非对称算法时,其输出的实际结果和算法模型输出的预期结果是相同的,当DUT硬件芯片存在问题而不能准确运行非对称算法时,其输出的实际结果和算法模型输出的预期结果是不同的。因此本实施例通过将DUT硬件芯片输出的实际结果与算法模型输出的预期结果进行比较,确定DUT硬件芯片是否能够准确响应当前输入的激励数据,可快速确定DUT硬件芯片本轮的验证结果,大大提高了芯片的验证效率。
S130、将第一输出数据和第二输出数据进行比对,确定DUT硬件芯片的验证结果。
在一实施例中,第一输出数据和第二输出数据可以是算法模型和DUT硬件芯片输出的最终运算结果。当第一输出数据和第二输出数据不同时,可确定DUT硬件芯片不能准确响应当前输入的激励数据,进而确定DUT硬件芯片的内部硬件结构存在问题,此时可由工作人员比较算法模型和DUT硬件芯片执行对应算法时的中间结果,定位DUT硬件芯片中出现问题的硬件结构,进而对该硬件结构进行调整。当第一输出数据和第二输出数据不同时,可确定DUT硬件芯片不能准确响应当前输入的激励数据可准确响应当前输入的激励数据,此时可通过验证环境产生新的激励数据,以通过新的激励数据验证DUT硬件芯片是否能够准确响应新输入的激励数据,直至DUT硬件芯片能够准确响应大量的激励数据,保证DUT硬件芯片的验证覆盖率。
需要说明的,当DUT硬件芯片对应的设定算法较为复杂时,如果DUT硬件芯片存在问题,其输出的最终运算结果与算法模型输出的最终运算结果大概率是不相同的,因此通过比较DUT硬件芯片和算法模型输出的最终运算结果,可快速得到DUT硬件芯片的验证结果。
当DUT硬件芯片对应的设定算法较为简单时,如果DUT硬件芯片存在问题,其输出的最终运算结果与算法模型输出的最终运算结果可能是相同的,因此通过比较DUT硬件芯片和算法模型输出的最终运算结果并不能确定DUT硬件芯片是否能够准确响应当前输入的激励数据。对此,本实施例提出,将DUT硬件芯片划分成多个硬件子模块,多个硬件子模块按照对应的运算顺序进行连接。基于每个硬件子模块的运算规则和运算顺序,将算法模型划分成多个算法子模型,同样的,多个算法子模型按照对应的运行顺序进行连接,一个算法子模型对应一个硬件子模块。例如某个硬件子模块是加法器,其对应的算法子模型是加法器的仿真软件代码。在本实施例中,第一输出数据包括每个算法子模型输出的第一结果,第二输出数据包括每个算法子模型输出的第二结果,当DUT硬件芯片可以准确响应当前输入的激励数据时,算法子模块输出的第一结果与算法子模型输出的第二结果是相同的,因此可通过逐一比较算法子模块输出的第一结果和对应算法子模型输出的第二结果,验证DUT硬件芯片是否可以准确响应当前输入的激励数据。
在该实施例中,图5是本申请实施例提供的验证DUT硬件芯片是否准确响应当前输入的激励数据的流程图。如图5所示,该验证DUT硬件芯片是否准确响应当前输入的激励数据的步骤具体包括S1301-S1303:
S1301、按照各个算法子模型的运算顺序,依次将算法子模型输出的第一结果与对应硬件子模块输出的第二结果进行比较。
S1302、在第一结果与对应的第二结果不相同时,确定DUT硬件芯片的本次验证不通过,并确定第二结果对应的硬件子模块异常,停止比较剩余的第一结果和第二结果。
S1303、在每个第一结果均与对应的第二结果相同的情况下,确定DUT硬件芯片的本次验证通过。
示例性的,假设DUT硬件芯片可以划分成硬件子模块A、硬件子模块B和硬件子模块C这三个子模块,硬件子模块A、硬件子模块B和硬件子模块C串联形成DUT硬件芯片。当DUT硬件芯片输入激励数据时,硬件子模块A输入该激励数据,硬件子模块B输入硬件子模块A的输出结果,硬件子模块C输入硬件子模块B的输出结果并输出第二输出数据。对应的,算法模型划分成算法子模型A、算法子模型B和算法子模型C,算法子模型A、算法子模型B和算法子模型C依次串联形成算法模型。算法子模型A为应硬件子模块A的仿真软件代码,算法子模型B为硬件子模块B的的仿真软件代码,算法子模型C为硬件子模块C的仿真软件代码。按照算法子模型A、算法子模型B和算法子模型C的运算顺序,先将算法子模型A输出的第一结果与硬件子模块A输出的第二结果进行比较。若算法子模型A输出的第一结果与硬件子模块A输出的第二结果相同,则可确定硬件子模块A不存在问题,然后将算法子模型B输出的第一结果与硬件子模块B输出的第二结果进行比较。若算法子模块B输出的第一结果与硬件子模块B输出的第二结果相同,则可确定硬件子模块B存在问题,进而确定DUT硬件芯片不能准确响应当前输入的激励数据,此时可停止比较算法子模型C输出的第一结果与硬件子模块C输出的第二结果。当工作人员确定硬件子模块B出现问题后,可对硬件子模块B的硬件结构进行调整,加快了调试效率和验证效率。
在对硬件子模块B的硬件结构进行调整后,重新验证DUT硬件芯片是否能够准确响应当前输入的激励数据,直至将DUT硬件芯片调整成能够准确响应当前输入的激励数据,保证DUT硬件芯片的验证可靠性。在该实施例中,当重新验证DUT硬件芯片时,按照各个算法子模型的运算顺序从当前调整的硬件子模块开始,比较剩余硬件子模块的第二结果与对应的算法子模型的第一结果,无需重复验证前面已经验证过没有问题的硬件子模块,加快了调试效率和验证效率。例如当前调整的是硬件子模块B,则将调整后的硬件子模块B输出的第二结果和算法子模型B输出的第一结果进行比较,则该第二结果和第一结果相同时,可确定调整后的硬件子模块B没有问题,然后将硬件子模块C输出的第二结果与算法子模型输出的第一结果进行比较。需要说明的,此时硬件子模块C的输入是调整后的硬件子模块B输出的第二结果,即当调整硬件子模块B后,会将激励数据重新输入调整硬件子模块B后的DUT硬件芯片,以使DUT硬件芯片重新响应该激励数据。
进一步的,在确定每个硬件子模块输出的第二结果与对应算法子模型输出的第一结果均相同时,可确定DUT硬件芯片能够准确响应当前输入的激励数据,进而确定DUT硬件芯片的本次验证通过。
需要说明的,DUT硬件芯片虽然能够准确响应当前输入的激励数据,当改变激励数据时,DUT硬件芯片可能会暴露新的问题,因此为了DUT硬件芯片的算法完整性,需通过大量不同的激励数据对DUT硬件芯片进行多轮次的验证,以全面验证芯片的算法完整性。基于此,本实施例设置了预设次数,通过比较DUT硬件芯片的验证通过次数与预设次数,自动对DUT硬件芯片进行全面验证,直至DUT硬件芯片通过了算法功能的测试。在该实施例中,图6是本申请实施例提供的自动对DUT硬件芯片进行全面验证的流程图。如图6所示,该自动对DUT硬件芯片进行全面验证的步骤具体包括S210-S230:
S210、在确定DUT硬件芯片的本次验证通过后,统计DUT硬件芯片的验证通过次数。
S220、在验证通过次数小于或等于预设次数的情况下,获取新的激励数据,将新的激励数据分别输入算法模型和DUT硬件芯片,根据新的第一输入数据和新的第二输入数据确定DUT硬件芯片的验证结果。
S230、在验证通过次数超过预设次数的情况下,确定DUT硬件芯片通过算法功能的测试。
示例性的,在每次确定DUT硬件芯片可以准确响应当前输入的激励数据后,累计DUT硬件芯片的验证通过次数。由于每次验证时输入的激励数据并不相同,因此验证通过次数越大则表明DUT硬件芯片的验证覆盖率越大。预设次数可根据实际测试需要进行设置,如果是对DUT硬件芯片进行前端测试,一般将预设次数设置为几百次或几千次,如果是对DUT硬件芯片进行后端测试时,一般将预设次数设置为上万次。当验证通过次数超过预设次数,则可确定DUT硬件芯片已经通过了全面验证,进而确定经过全面验证的DUT硬件芯片通过了功能算法测试。当验证通过次数小于或等于预设次数时,则DUT硬件芯片的验证覆盖率还未达标,则通过验证环境产生新的激励数据,通过新的激励数据对当前的DUT硬件芯片进行验证,具体的验证过程可参考步骤S110-S130.
综上,本申请实施例提供的芯片仿真验证方法,通过获取激励数据,将激励数据输入预设的算法模型,得到算法模型输出的第一输出数据;将激励数据输入DUT硬件芯片,得到DUT硬件芯片输出的第二输出数据;将第一输出数据和第二输出数据进行比对,确定DUT硬件芯片的验证结果。通过上述技术手段,算法模型可以快速对激励数据作为响应,计算得到第一输出数据,无需用户手动计算算法的期望结果,大大提高了计算效率和计算准确率。算法模型输出的第一输出数据可看作期望结果,DUT硬件芯片输出的第二输出数据是DUT硬件芯片采用算法模型对应的算法时计算的实际结果。将实际结果与期望结果进行比较,可快速确定DUT硬件芯片本轮的验证结果,大大提高了芯片的验证效率。若实际结果与期望结果不同,则可确定DUT硬件芯片的内部硬件结构不能准确执行算法模型对应的算法,即DUT硬件芯片存在问题,进而可对DUT硬件芯片的内部硬件结构进行调整以使得DUT硬件芯片能够准确执行算法模型对应的算法。若实际结果与期望结果相同,则可确定DUT硬件芯片可以准确响应当前输入的激励数据,进而可以通过新的激励数据对DUT硬件芯片进行新一轮的验证,以便能够全面验证DUT硬件芯片的算法完整性,保证DUT硬件芯片的验证覆盖率,提高芯片后续使用的可靠性。除此之外,本实施例将硬件子模块输出的第二结果与算法子模型输出的第一结果逐一进行比较,不仅可以准确验证DUT硬件芯片是否可以正确响应当前输入的激励数据,还能快速定位出现问题的硬件子模块,加快了调试效率和验证效率。
在上述实施例的基础上,图7为本申请实施例提供的一种芯片仿真验证装置的结构示意图。参考图7,本实施例提供的芯片仿真验证装置具体包括:软件计算模块31、硬件计算模块32和第一验证模块33。
其中,软件计算模块,被配置为获取激励数据,将激励数据输入预设的算法模型,得到算法模型输出的第一输出数据;
硬件计算模块,被配置为将激励数据输入DUT硬件芯片,得到DUT硬件芯片输出的第二输出数据;
第一验证模块,被配置为将第一输出数据和第二输出数据进行比对,确定DUT硬件芯片的验证结果。
在上述实施例的基础上,软件计算模块包括:激励数据产生单元,被配置为通过预先搭建的验证环境产生定向激励数据或随机激励数据,验证环境基于systemverilog进行搭建。
在上述实施例的基础上,软件计算模块包括:第一转换单元,被配置为通过DPI-C接口将激励数据从SV数据类型转换为C数据类型;第二转换单元,被配置为通过Python-C接口将C数据类型的激励数据转换为Python数据类型;第一响应单元,被配置为将Python数据类型的激励数据输入算法模型,得到算法模型输出的第一输出数据;算法模型基于Python进行构建。
在上述实施例的基础上,算法模型包括多个算法子模型,DUT硬件芯片包括多个硬件子模块,一个算法子模型对应一个硬件子模块,第一输出数据包括每个算法子模型输出的第一结果,第二输出数据包括每个硬件子模块输出的第二结果。
在上述实施例的基础上,第一验证模块包括:结果比较单元,被配置为按照各个算法子模型的运算顺序,依次将算法子模型输出的第一结果与对应硬件子模块输出的第二结果进行比较;异常子模块确定单元,被配置为在第一结果与对应的第二结果不相同时,确定DUT硬件芯片的本次验证不通过,并确定第二结果对应的硬件子模块异常,停止比较剩余的第一结果和第二结果。
在上述实施例的基础上,第一验证模块还包括:验证通过确定单元,被配置为在依次将算法子模型输出的第一结果与对应硬件子模块输出的第二结果进行比较之后,在每个第一结果均与对应的第二结果相同的情况下,确定DUT硬件芯片的本次验证通过。
在上述实施例的基础上,芯片仿真验证装置还包括:验证通过次数统计模块,被配置为在确定DUT硬件芯片的本次验证通过之后,统计DUT硬件芯片的验证通过次数;第二验证模块,被配置为在验证通过次数小于或等于预设次数的情况下,获取新的激励数据,将新的激励数据分别输入算法模型和DUT硬件芯片,根据新的第一输入数据和新的第二输入数据确定DUT硬件芯片的验证结果。
上述,本申请实施例提供的芯片仿真验证装置,通过获取激励数据,将激励数据输入预设的算法模型,得到算法模型输出的第一输出数据;将激励数据输入DUT硬件芯片,得到DUT硬件芯片输出的第二输出数据;将第一输出数据和第二输出数据进行比对,确定DUT硬件芯片的验证结果。通过上述技术手段,算法模型可以快速对激励数据作为响应,计算得到第一输出数据,无需用户手动计算算法的期望结果,大大提高了计算效率和计算准确率。算法模型输出的第一输出数据可看作期望结果,DUT硬件芯片输出的第二输出数据是DUT硬件芯片采用算法模型对应的算法时计算的实际结果。将实际结果与期望结果进行比较,可快速确定DUT硬件芯片本轮的验证结果,大大提高了芯片的验证效率。若实际结果与期望结果不同,则可确定DUT硬件芯片的内部硬件结构不能准确执行算法模型对应的算法,即DUT硬件芯片存在问题,进而可对DUT硬件芯片的内部硬件结构进行调整以使得DUT硬件芯片能够准确执行算法模型对应的算法。若实际结果与期望结果相同,则可确定DUT硬件芯片可以准确响应当前输入的激励数据,进而可以通过新的激励数据对DUT硬件芯片进行新一轮的验证,以便能够全面验证DUT硬件芯片的算法完整性,保证DUT硬件芯片的验证覆盖率,提高芯片后续使用的可靠性。除此之外,本实施例将硬件子模块输出的第二结果与算法子模型输出的第一结果逐一进行比较,不仅可以准确验证DUT硬件芯片是否可以正确响应当前输入的激励数据,还能快速定位出现问题的硬件子模块,加快了调试效率和验证效率。
本申请实施例提供的芯片仿真验证装置可以用于执行上述实施例提供的芯片仿真验证方法,具备相应的功能和有益效果。
图8是本申请实施例提供的一种芯片仿真验证设备的结构示意图,参考图8,该芯片仿真验证设备包括:处理器41、存储器42、通信装置43、输入装置44及输出装置45。该芯片仿真验证设备中处理器41的数量可以是一个或者多个,该芯片仿真验证设备中的存储器42的数量可以是一个或者多个。该芯片仿真验证设备的处理器41、存储器42、通信装置43、输入装置44及输出装置45可以通过总线或者其他方式连接。
存储器42作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例的芯片仿真验证方法对应的程序指令/模块(例如,芯片仿真验证装置中的软件计算模块31、硬件计算模块32和第一验证模块34)。存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信装置43用于进行数据传输。
处理器41通过运行存储在存储器42中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的芯片仿真验证方法。
输入装置44可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置45可包括显示屏等显示设备。
上述提供的芯片仿真验证设备可用于执行上述实施例提供的芯片仿真验证方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种芯片仿真验证方法,该芯片仿真验证方法包括:获取激励数据,将激励数据输入预设的算法模型,得到算法模型输出的第一输出数据;将激励数据输入DUT硬件芯片,得到DUT硬件芯片输出的第二输出数据;将第一输出数据和第二输出数据进行比对,确定DUT硬件芯片的验证结果。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的芯片仿真验证方法,还可以执行本申请任意实施例所提供的芯片仿真验证方法中的相关操作。
上述实施例中提供的芯片仿真验证装置、存储介质及设备可执行本申请任意实施例所提供的芯片仿真验证方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的芯片仿真验证方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (10)
1.一种芯片仿真验证方法,其特征在于,包括:
获取激励数据,将所述激励数据输入预设的算法模型,得到所述算法模型输出的第一输出数据;
将所述激励数据输入DUT硬件芯片,得到所述DUT硬件芯片输出的第二输出数据;
将所述第一输出数据和所述第二输出数据进行比对,确定所述DUT硬件芯片的验证结果。
2.根据权利要求1所述的芯片仿真验证方法,其特征在于,所述获取激励数据,包括:
通过预先搭建的验证环境产生定向激励数据或随机激励数据,所述验证环境基于systemverilog进行搭建。
3.根据权利要求2所述的芯片仿真验证方法,其特征在于,所述将所述激励数据输入预设的算法模型,得到所述算法模型输出的第一输出数据,包括:
通过DPI-C接口将所述激励数据从SV数据类型转换为C数据类型;
通过Python-C接口将C数据类型的激励数据转换为Python数据类型;
将Python数据类型的激励数据输入所述算法模型,得到所述算法模型输出的第一输出数据;所述算法模型基于Python进行构建。
4.根据权利要求1所述的芯片仿真验证方法,其特征在于,所述算法模型包括多个算法子模型,所述DUT硬件芯片包括多个硬件子模块,一个所述算法子模型对应一个所述硬件子模块,所述第一输出数据包括每个所述算法子模型输出的第一结果,所述第二输出数据包括每个所述硬件子模块输出的第二结果。
5.根据权利要求4所述的芯片仿真验证方法,其特征在于,所述将所述第一输出数据和所述第二输出数据进行比对,确定所述DUT硬件芯片的验证结果,包括:
按照各个所述算法子模型的运算顺序,依次将所述算法子模型输出的第一结果与对应硬件子模块输出的第二结果进行比较;
在所述第一结果与对应的第二结果不相同时,确定所述DUT硬件芯片的本次验证不通过,并确定所述第二结果对应的硬件子模块异常,停止比较剩余的第一结果和第二结果。
6.根据权利要求4所述的芯片仿真验证方法,其特征在于,在所述依次将所述算法子模型输出的第一结果与对应硬件子模块输出的第二结果进行比较之后,还包括:
在每个所述第一结果均与对应的第二结果相同的情况下,确定所述DUT硬件芯片的本次验证通过。
7.根据权利要求6所述的芯片仿真验证方法,其特征在于,在所述确定所述DUT硬件芯片的本次验证通过之后,还包括:
统计所述DUT硬件芯片的验证通过次数;
在所述验证通过次数小于或等于预设次数的情况下,获取新的激励数据,将所述新的激励数据分别输入所述算法模型和所述DUT硬件芯片,根据新的第一输入数据和新的第二输入数据确定所述DUT硬件芯片的验证结果。
8.一种芯片仿真验证装置,其特征在于,包括:
软件计算模块,被配置为获取激励数据,将所述激励数据输入预设的算法模型,得到所述算法模型输出的第一输出数据;
硬件计算模块,被配置为将所述激励数据输入DUT硬件芯片,得到所述DUT硬件芯片输出的第二输出数据;
第一验证模块,被配置为将所述第一输出数据和所述第二输出数据进行比对,确定所述DUT硬件芯片的验证结果。
9.一种芯片仿真验证设备,其特征在于,包括:
一个或多个处理器;
存储器,存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一所述的芯片仿真验证方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7任一所述的芯片仿真验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310220316.0A CN116187268A (zh) | 2023-03-08 | 2023-03-08 | 芯片仿真验证方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310220316.0A CN116187268A (zh) | 2023-03-08 | 2023-03-08 | 芯片仿真验证方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116187268A true CN116187268A (zh) | 2023-05-30 |
Family
ID=86448663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310220316.0A Pending CN116187268A (zh) | 2023-03-08 | 2023-03-08 | 芯片仿真验证方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116187268A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909935A (zh) * | 2023-09-13 | 2023-10-20 | 沐曦集成电路(上海)有限公司 | 基于单一处理模块接口的芯片联合仿真方法、设备和介质 |
CN117454823A (zh) * | 2023-12-22 | 2024-01-26 | 深圳鲲云信息科技有限公司 | 一种芯片验证多端口激励控制方法、代理器、设备及介质 |
-
2023
- 2023-03-08 CN CN202310220316.0A patent/CN116187268A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909935A (zh) * | 2023-09-13 | 2023-10-20 | 沐曦集成电路(上海)有限公司 | 基于单一处理模块接口的芯片联合仿真方法、设备和介质 |
CN116909935B (zh) * | 2023-09-13 | 2023-12-08 | 沐曦集成电路(上海)有限公司 | 基于单一处理模块接口的芯片联合仿真方法、设备和介质 |
CN117454823A (zh) * | 2023-12-22 | 2024-01-26 | 深圳鲲云信息科技有限公司 | 一种芯片验证多端口激励控制方法、代理器、设备及介质 |
CN117454823B (zh) * | 2023-12-22 | 2024-04-19 | 深圳鲲云信息科技有限公司 | 一种芯片验证多端口激励控制方法、代理器、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116187268A (zh) | 芯片仿真验证方法、装置、设备及存储介质 | |
CN109240924A (zh) | 一种应用程序的测试方法及设备 | |
CN105786695B (zh) | 数据测试方法及系统 | |
CN111897724A (zh) | 一种适用于云平台的自动化测试方法及装置 | |
CN107247827B (zh) | 基于机器学习的虚端子模型建模及自动连线方法 | |
WO2020113526A1 (zh) | 一种芯片验证方法和装置 | |
JP2022540300A (ja) | ニューラルネットワークモデル変換方法、モデル精度位置決め方法、および装置 | |
CN113987840B (zh) | 基于Modelica的模型拆分方法、设备和存储介质 | |
CN110750453A (zh) | 基于html5的智能移动端测试方法、系统、服务器及存储介质 | |
CN114548027A (zh) | 在验证系统中追踪信号的方法、电子设备及存储介质 | |
JP6155050B2 (ja) | 情報処理装置の論理検証方法及びプログラム | |
CN116450484A (zh) | 基于模型开发软件的评估方法、装置、电子设备及介质 | |
CN111679924B (zh) | 构件化软件系统可靠性仿真方法、装置及电子设备 | |
CN112699023B (zh) | 项目接口测试方法、装置、计算机设备及存储介质 | |
CN115034164A (zh) | 验证方法、电子设备及存储介质 | |
CN115658482A (zh) | 数据库测试方法及装置、电子设备及计算机可读存储介质 | |
US20220172074A1 (en) | Verification system and verification method for neural network accelerator hardware | |
CN113254332A (zh) | 一种存储系统多场景测试方法、系统、终端及存储介质 | |
CN112214201A (zh) | 车机系统底层接口认证的方法、装置、设备及存储介质 | |
CN114139403B (zh) | 一种基于概率论的事故规程整定值优化方法、装置和设备 | |
JP6291242B2 (ja) | 情報処理装置の論理検証方法及びプログラム | |
CN116594830B (zh) | 硬件仿真工具、调试方法和存储介质 | |
CN109342917A (zh) | 时钟信号的验证方法和装置 | |
CN117034824B (zh) | 复用测试用例和验证环境的仿真验证系统、方法、终端及介质 | |
CN115510782B (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 |