CN116362198A - 一种提高芯片验证效率的方法、系统、存储介质及计算设备 - Google Patents
一种提高芯片验证效率的方法、系统、存储介质及计算设备 Download PDFInfo
- Publication number
- CN116362198A CN116362198A CN202310304977.1A CN202310304977A CN116362198A CN 116362198 A CN116362198 A CN 116362198A CN 202310304977 A CN202310304977 A CN 202310304977A CN 116362198 A CN116362198 A CN 116362198A
- Authority
- CN
- China
- Prior art keywords
- chip
- subsystem
- verified
- simulation
- module
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3652—Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种提高芯片验证效率的方法,其包括:部署待验证芯片程序;为每一子系统编制对应的测试用例组;选择所述芯片中的本次待验证子系统,将剩余子系统采用对应的黑盒模块替换,形成本次待测试的芯片程序;将本次待测试的芯片程序以及各测试用例组程序进行编译,形成验证测试环境;根据所述验证测试环境进行仿真处理,运行待验证子系统所对应的测试用例组,并获得仿真结果。本发明还提供了相应的系统、存储介质以及计算设备。实施本发明,可以降低芯片验证时的系统编译和仿真的时间,并减少相应的处理资源,提高了芯片验证的效率。
Description
技术领域
本发明涉及芯片前端验证的技术领域,特别是涉及一种提高芯片验证效率的方法、系统、存储介质及计算设备。
背景技术
如图1所示,示出了现有的一种芯片验证系统架构的结构示意图。在图1中,一套验证系统包括芯片代码、验证环境代码和测试用例代码。其中,芯片代码是用于模拟待验证的芯片的代码。验证环境代码包括数据产生器、数据采样器,分别用于给所述芯片输入数据和从芯片接收输出数据。测试用例代码是验证人员根据芯片的每一项功能编写的测试代码,其用于向芯片中输入激励,并用于指示数据产生器产生的数据格式,以及指示数据采样器采集的数据格式。
在现有的技术中,在进行芯片功能验证时,需要将验证系统的全部代码打包后进行编译,采用逻辑仿真工具(Verilog Computer Simulation,VCS)编译成一个可执行文件(即:simv文件)。在仿真工具中运行该可执行文件,并输入用例名称,所述可执行文件会根据测试用例的内容进行芯片功能仿真。
在仿真过程中,会将芯片内部信号的状态实时记录到波形文件(如图2所示),并将验证测试环境对芯片运行的监控情况实时记录到日志文件(如图3所示)。该记录波形文件和日志文件用于验证人员判定当前测试用例通过与否;在测试用例未通过时,这些文件还用于芯片缺陷诊断,以便修复。可以理解的是,波形文件和日志文件需要占用服务器内存和磁盘资源。
重复上述的编译代码、运行编译后的可执行文件、执行所有测试用例,并在仿真结束后,根据仿真结果诊断芯片缺陷并修复缺陷的过程,直到所有芯片缺陷修复完毕,所有测试用例通过,芯片的前端验证工作才算完成。
但是,随着芯片规模增大,验证系统编译所需的时间、仿真所需的时间以及仿真占用的服务器内存和磁盘均呈指数级增加,严重影响芯片验证的效率,有时甚至超过服务器负载,而导致芯片验证工作无法进行。
发明内容
本发明所要解决的技术问题在于,提供一种提高芯片验证效率的方法、系统、存储介质及计算设备。可以降低芯片验证时的系统编译和仿真的时间,并减少相应的处理资源,提高了芯片验证的效率。
为解决上述技术问题,作为本发明的一方面,提供一种提高芯片验证效率的方法,其至少包括如下步骤:
部署待验证芯片程序,将所述待验证芯片划分为多个子系统,为每一子系统设置一个对应的黑盒模块;其中,每一子系统包含至少一芯片模块,所述黑盒模块中包含有所对应的子系统的输入和输出接口信息;
为每一子系统编制对应的测试用例组;
选择所述芯片中的本次待验证子系统,将剩余子系统采用对应的黑盒模块替换,形成本次待测试的芯片程序;
将本次待测试的芯片程序、各测试用例组程序进行编译,形成验证测试环境;
根据所述验证测试环境进行仿真处理,运行待验证子系统所对应的测试用例组,并获得仿真结果,所述仿真结果包括待验证子系统中至少部分芯片模块的波形信息及日志信息。
其中,进一步包括:
为每个芯片模块设置一个开关变量和相应的软件模型,所述软件模型采用软件方式实现对应的芯片模块的功能;
通过所述开关变量设置本次待验证子系统各芯片模块的仿真对象,所述仿真对象为所述芯片模块或与其对应的软件模型。
其中,进一步包括:
为每一芯片模块设置一个记录开关变量,根据所述记录开关变量的值,确定仿真过程中是否记录所述芯片模块验证的波形信息和日志信息。
其中,进一步包括:
在验证测试环境中,设置记录开始时间变量和记录结束时间变量,当仿真时间处于记录开始时间与记录结束时间之间,所述待验证芯片的本次测试子系统中相应的芯片模块的波形信息和日志信息才会被记录。
其中,进一步包括:
为每一芯片模块设置一时钟选择变量,根据所述时钟选择变量选择本次仿真过程中所述芯片模块对应的工作时钟,所述工作时钟包括原生时钟以及高频率时钟。
相应地,本发明的另一方面,还提供一种提高芯片验证效率的系统,其至少包括:
芯片部署单元,用于部署待验证芯片程序,将所述待验证芯片划分为多个子系统,为每一子系统设置一个对应的黑盒模块;其中,每一子系统包含至少一芯片模块,所述黑盒模块中包含有所对应的子系统的输入和输出接口信息;
测试用例组编制单元,用于为每一子系统编制对应的测试用例组;
本次测试程序确定单元,用于选择所述芯片中的本次待验证子系统,将剩余子系统采用对应的黑盒模块替换,形成本次待测试的芯片程序;
编译处理单元,用于将本次待测试的芯片程序、各测试用例组程序进行编译,形成验证测试环境;
仿真测试单元,用于根据所述验证测试环境进行仿真处理,运行待验证子系统所对应的测试用例组,并获得仿真结果,所述仿真结果包括待验证子系统中至少部分芯片模块的波形信息及日志信息。
其中,进一步包括:
软件模型配置单元,用于为每个芯片模块设置一个开关变量和相应的软件模型,所述软件模型采用软件方式实现对应的芯片模块的功能;
仿真对象选择单元,用于通过所述开关变量设置本次待验证子系统各芯片模块的仿真对象,所述仿真对象为所述芯片模块或与其对应的软件模型。
其中,进一步包括:
模块结果存储选择单元,用于为每一芯片模块设置一个记录开关变量,根据所述记录开关变量的值,确定仿真过程中是否记录所述芯片模块验证的波形信息和日志信息。
其中,进一步包括:
记录时间确定单元,用于在验证测试环境中,设置记录开始时间变量和记录结束时间变量,当仿真时间处于记录开始时间与记录结束时间之间,所述待验证芯片的本次测试子系统中相应的芯片模块的波形信息和日志信息才会被记录。
其中,进一步包括:
时钟选择单元,用于为每一芯片模块设置一时钟选择变量,根据所述时钟选择变量选择本次仿真过程中所述芯片模块对应的工作时钟,所述工作时钟包括原生时钟以及高频率时钟。
相应地,本发明的再一方面,还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如前述的方法的步骤。
相应地,本发明的又一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的方法的步骤。
实施本发明实施例,具有如下的有益效果:
本发明提供一种提高芯片验证效率的方法、系统、存储介质及计算设备,通过将待验证的芯片划分为多个子系统,同时编制相应的测试用例组;采用测试用例组来替换现有技术中单个模块对应的测试用例代码,可以缩短编译时间,缩短仿真时间,提高芯片验证工作效率。
同时,在本发明中,测试芯片某个子系统功能时,将芯片的其他子系统用黑盒模块代码来替代,可以减小待编译的总代码量,并缩短仿真时间,提高芯片验证工作效率。
再者,在本发明中,在芯片验证测试环境中,针对每个芯片模块,增加一个软件模型和控制开关,在仿真过程中,可将采用软件模型替代芯片模块完成芯片模块数据处理的工作,可以提高仿真的效率。
另外,在本发明中,针对每个芯片模块增加一个记录开关,以及增加记录开始时间变量和记录结束时间变量,可双选择性地对部分仿真波形信息和日志信息进行存储。这样能够减少占用服务器内存和磁盘资源,提高芯片验证工作效率。
而且,在本发明中,针对低频模块,增加高频时钟生成器和控制开关,在一些场景下,可以对部分芯片模块进行提频,能缩短仿真时间,提高芯片验证工作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据这些附图获得其他的附图仍属于本发明的范畴。
图1为现有的一种芯片验证系统架构的结构示意图;
图2为现有的各模块的仿真波形文件列表示意图;
图3为现有的各模块的仿真日志文件列表示意图;
图4为本发明提供的一种提高芯片验证效率的方法的一个实施例的主流程示意图;
图5为本发明涉及的验证测试环境架构示意图;
图6为本发明涉及的采用黑盒模块替换子系统的原理示意图;
图7为本发明涉及的采用软件模型对模块进行替换的原理示意图;
图8为本发明涉及的设置记录开始时间和记录结束时间的示意图;
图9为本发明中各芯片模块对应的原生时钟的示意图;
图10为本发明各芯片模块中进行时钟选择的示意图;
图11为本发明提供的一种提高芯片验证效率的系统的一个实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
如图4所示,示出了本发明提供的一种提高芯片验证效率的方法的一个实施例的主流程示意图;一并结合图5至图10所示,在本实施例中,所述方法进一步包括如下步骤:
步骤S10,部署待验证芯片程序,将所述待验证芯片划分为多个子系统,为每一子系统设置一个对应的黑盒模块;其中,每一子系统包含至少一芯片模块,所述黑盒模块中包含有所对应的子系统的输入和输出接口信息;
如图5所示,在一个例子中,超大规模芯片包括多个子系统(图中以举例的方式示出了子系统1至3),其中,子系统1包含芯片模块01至芯片模块04,子系统2包含芯片模块11至芯片模块14,子系统3包含芯片模块21至模块24。
并为每个子系统增加一个对应的黑盒代码,黑盒代码只包含该子系统的输入和输出接口,不包含功能代码,可以直接在其中对输出的结果进行赋值;可以理解的,由于黑盒模块中不包含功能代码,故其代码的规模相比于对应的芯片子系统的代码小很多。
步骤S11,为每一子系统编制对应的测试用例组;
将测试用例按照芯片子系统功能划分或编制相应的测试用例组,在本例子中,测试用例组0用于测试芯片整体功能,测试用例组1用于专门测试子系统1的功能,测试用例组2用于专门测试子系统2的功能,测试用例组3用于专门测试子系统3的功能。
步骤S12,选择所述芯片中的本次待验证子系统,将剩余子系统采用对应的黑盒模块替换,形成本次待测试的芯片程序;
如图6所示,在本发明中,在每次测试时,可以只关注其中一个或几个子系统的功能,而不用一次性关注所有子系统的功能。
例如,只采用测试用例组1进行仿真时,可以只关注子系统1的功能,而使子系统2和子系统3处于空闲状态。此时即可以将子系统2和子系统3采用相应的黑盒模块替换。
为了选择所述芯片中的本次待验证子系统,在验证测试环境中增加一个变量group_id,指示当前测试的子系统编号。
在具体的例子中,在运行测试用例组1时,设置变量group_id等于1,用不同的黑盒代码替换子系统2和子系统3的代码;
步骤S13,将本次待测试的芯片程序、各测试用例组程序进行编译,形成验证测试环境;
在前述描述的例子中,将替换黑盒代码后的验证系统代码(包含芯片代码、数据产生器代码、数据采样器代码以及测试用例组代码)打包进行编译,形成可执行文件(如simv文件);
步骤S14,根据所述验证测试环境进行仿真处理,运行待验证子系统所对应的测试用例组,并获得仿真结果,所述仿真结果包括待验证子系统中至少部分芯片模块的波形信息及日志信息。
可以理解的是,在仿真工具中对前述的可执行文件进行仿真处理。由于采用了黑盒模块代码,从而使总代码量缩减,编译和仿真所需时间得以减少,仿真占用的内存资源得以减少,测试用例组1的验证效率得以提升。
上述过程介绍了采用测试用例组1专门验证芯片子系统1的功能的过程,其中,芯片子系统2和子系统3的代码被黑盒代码替换,但并不会影响测试用例组1的验证工作的有效性。
同理,进行测试用例组2或测试用例组3时,可以采用前述的过程实现以提升效率,只不过在进行测试用例组2时,需要将子系统1和子系统3采用相应的黑盒模块进行替换,依次类推。最终,整个芯片的验证工作的整体效率会得到显著的提升。
为了进一步提高本发明的芯片验证过程的效率,在本发明的其他一些实施例中,还作了如下方面的改进:
在一个例子中,所述步骤S10中进一步包括:
为每个芯片模块设置一个开关变量和相应的软件模型,所述软件模型采用软件方式实现对应的芯片模块的功能;
如图7所示,在芯片的子系统3包含芯片模块21至芯片模块24,运行测试用例时,验证测试环境的数据产生器将输入数据从芯片的输入接口送入芯片,数据依次经过芯片模块21至芯片模块24处理,最后从芯片的输出接口发出,到达验证测试环境的数据采样器。
验证测试环境针对每个芯片模块增加一个开关变量sw和一个软件模型。软件模型用软件方式实现模块的功能,仿真时处理数据的速度比芯片模块快很多,同时占用内存更小,并且在实际项目中,模块开发时间不一样长,有些模块完成的时间晚,就可以用软件模型代替,这样验证工作能尽早展开。当开关变量sw设置为on时,数据经芯片原生模块处理后送给下级芯片模块,当开关变量sw设置为off时,数据经软件模型处理,而后送给下级芯片模块。
在所述步骤S12中进一步包括:通过所述开关变量设置本次待验证子系统各芯片模块的仿真对象,所述仿真对象为所述芯片模块或与其对应的软件模型。
验证人员测试该子系统时,可以先将芯片模块21的开关变量sw21设置为on,将其他芯片模块的开关变量sw22至sw24均设置为off模式。此时输入数据经芯片模块21处理后,变成中间数据,此后中间数据依次经过软件模型22至软件模型24处理,最终数据从芯片的输出接口送给数据采样器。由于芯片模块22至芯片模块24的处理过程由软件模型所代替,仿真所需时间和占用内存得以减少。在测试用例失败时,也能够快速定位为芯片模块21的缺陷。
当芯片模块21的所有缺陷修改完成后,测试用例通过。再将芯片模块22的开关变量sw22设置为on,将其他芯片模块对应的开关变量sw21、sw23至sw24设置为off,使用该条测试用例针对芯片模块22进行测试。
同样地,可以使用相同方法,来测试芯片模块23至芯片模块24。
使用模块替换法依次测试芯片模块21至芯片模块24,比不使用该方法依次测试芯片模块21至芯片模块24所需的仿真时间少,仿真占用的内存少,验证效率得以提升。
可以理解的是,上述是以子系统3为例进行说明,同样地,在子系统1和子系统2中也可以采用相同的设置。
在一个例子中,所述步骤S10中进一步包括:
为每一芯片模块设置一个记录开关变量,根据所述记录开关变量的值,确定仿真过程中是否记录所述芯片模块验证的波形信息和日志信息。
具体地,在验证测试环境中,针对每个芯片模块增加一个记录开关变量,当芯片模块的记录开关变量设置为on,仿真过程中,芯片模块的波形信息和日志信息会被持续记录到波形文件和日志文件;当芯片模块的记录开关变量设置为off,仿真过程中,芯片模块的波形信息和日志信息不会被记录。
测试用例时,根据测试情况,将已经测试完善的、已修复全部缺陷的芯片模块的记录开关变量设置为off,将未测试完善的芯片模块的记录开关变量设置为on,可以减少仿真时间,减少磁盘占用,从而提高验证效率。
在一个例子中,所述步骤S10中进一步包括:
在验证测试环境中,设置记录开始时间变量和记录结束时间变量,当仿真时间处于记录开始时间与记录结束时间之间,所述待验证芯片的本次测试子系统中相应的芯片模块的波形信息和日志信息才会被记录。
如图8所示,在验证测试环境中,增加一个记录开始时间变量和一个记录结束时间变量。当仿真时间处于记录开始时间与记录结束时间之间,芯片的波形信息和日志信息会被记录到文件,其他时间不会记录文件。
这样,在运行测试用例时,根据缺陷出现的时机,设置记录开始时间和记录结束时间,能够减少仿真时间,减少磁盘占用,从而提高验证效率。
在一个例子中,所述步骤S10中进一步包括:
为每一芯片模块设置一时钟选择变量,根据所述时钟选择变量选择本次仿真过程中所述芯片模块对应的工作时钟,所述工作时钟包括原生时钟以及高频率时钟。
如图9和图10所示。芯片模块中会存在有多个工作时钟,例如,工作于1Ghz的芯片模块21是高频模块,工作于100Mhz的芯片模块22是低频模块。而测试用例的仿真时间是根据低频模块的时钟频率确定的。
在本发明中,在验证测试环境中增加一个变量sel和一个1Ghz时钟生成器,通过变量sel来选择芯片模块22的时钟来源,当sel设置为low时,芯片模块22的时钟连接到芯片原生的100Mhz时钟生成模块;当sel设置为high时,芯片模块22的时钟连接到验证测试环境的1Ghz时钟生成器。
在执行测试用例时,可以根据具体的测试情况,当模块存在缺陷,急需快速完成一次测试时,将sel设置为high,能够减少仿真时间,从而提高验证效率;当全部缺陷修复完毕,将sel设置为low,使得仿真过程真实模拟芯片实际工作情况。
可以理解的是,上述图7至图10中描述的多种提高芯片验证的措施可以单独设置于一次测试仿真中,也可以结合起来设置于同一次测试仿真过程中。
如图11所示,示出了本发明提供的一种提高芯片验证效率的系统的一个实施例的结构示意图。在本实施例中,所述系统1至少包括:
芯片部署单元10,用于部署待验证芯片程序,将所述待验证芯片划分为多个子系统,为每一子系统设置一个对应的黑盒模块;其中,每一子系统包含至少一芯片模块,所述黑盒模块中包含有所对应的子系统的输入和输出接口信息;
测试用例组编制单元11,用于为每一子系统编制对应的测试用例组;
本次测试程序确定单元12,用于选择所述芯片中的本次待验证子系统,将剩余子系统采用对应的黑盒模块替换,形成本次待测试的芯片程序;
编译处理单元13,用于将本次待测试的芯片程序、各测试用例组程序进行编译,形成验证测试环境;
仿真测试单元14,用于根据所述验证测试环境进行仿真处理,运行待验证子系统所对应的测试用例组,并获得仿真结果,所述仿真结果包括待验证子系统中至少部分芯片模块的波形信息及日志信息。
在本发明的另一个例子中,所述芯片部署单元10进一步包括:
软件模型配置单元,用于为每个芯片模块设置一个开关变量和相应的软件模型,所述软件模型采用软件方式实现对应的芯片模块的功能;
所述本次测试程序确定单元12进一步包括:
仿真对象选择单元,用于通过所述开关变量设置本次待验证子系统各芯片模块的仿真对象,所述仿真对象为所述芯片模块或与其对应的软件模型。
在本发明的另一个例子中,所述芯片部署单元10进一步包括:
模块结果存储选择单元,用于为每一芯片模块设置一个记录开关变量,根据所述记录开关变量的值,确定仿真过程中是否记录所述芯片模块验证的波形信息和日志信息。
在本发明的另一个例子中,所述芯片部署单元10,进一步包括:
记录时间确定单元,用于在验证测试环境中,设置记录开始时间变量和记录结束时间变量,当仿真时间处于记录开始时间与记录结束时间之间,所述待验证芯片的本次测试子系统中相应的芯片模块的波形信息和日志信息才会被记录。
在本发明的另一个例子中,所述芯片部署单元10,进一步包括:
时钟选择单元,用于为每一芯片模块设置一时钟选择变量,根据所述时钟选择变量选择本次仿真过程中所述芯片模块对应的工作时钟,所述工作时钟包括原生时钟以及高频率时钟。
更多的细节,可以参考并结合前述对图4至图10的描述,在此不进行赘述。
相应地,本发明的再一方面,还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如前述图4至图10描述的方法的步骤。更多的细节,可以参考并结合前述对图4至图10的描述,在此不进行赘述。
相应地,本发明的又一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述图4至图10描述的方法的步骤。更多的细节,可以参考并结合前述对图4至图10的描述,在此不进行赘述。
实施本发明实施例,具有如下的有益效果:
本发明提供一种提高芯片验证效率的方法、系统、存储介质及计算设备,通过将待验证的芯片划分为多个子系统,同时编制相应的测试用例组;采用测试用例组来替换现有技术中单个模块对应的测试用例代码,可以缩短编译时间,缩短仿真时间,提高芯片验证工作效率。
同时,在本发明中,测试芯片某个子系统功能时,将芯片的其他子系统用黑盒模块代码来替代,可以减小待编译的总代码量,并缩短仿真时间,提高芯片验证工作效率。
再者,在本发明中,在芯片验证测试环境中,针对每个芯片模块,增加一个软件模型和控制开关,在仿真过程中,可将采用软件模型替代芯片模块完成芯片模块数据处理的工作,可以提高仿真的效率。
另外,在本发明中,针对每个芯片模块增加一个记录开关,以及增加记录开始时间变量和记录结束时间变量,可双选择性地对部分仿真波形信息和日志信息进行存储。这样能够减少占用服务器内存和磁盘资源,提高芯片验证工作效率。
而且,在本发明中,针对低频模块,增加高频时钟生成器和控制开关,在一些场景下,可以对部分芯片模块进行提频,能缩短仿真时间,提高芯片验证工作效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (12)
1.一种提高芯片验证效率的方法,其特征在于,至少包括如下步骤:
部署待验证芯片程序,将所述待验证芯片划分为多个子系统,为每一子系统设置一个对应的黑盒模块;其中,每一子系统包含至少一芯片模块,所述黑盒模块中包含有所对应的子系统的输入和输出接口信息;
为每一子系统编制对应的测试用例组;
选择所述芯片中的本次待验证子系统,将剩余子系统采用对应的黑盒模块替换,形成本次待测试的芯片程序;
将本次待测试的芯片程序以及各测试用例组程序进行编译,形成验证测试环境;
根据所述验证测试环境进行仿真处理,运行待验证子系统所对应的测试用例组,并获得仿真结果,所述仿真结果包括待验证子系统中至少部分芯片模块的波形信息及日志信息。
2.如权利要求1所述的方法,其特征在于,进一步包括:
为每个芯片模块设置一个开关变量和相应的软件模型,所述软件模型采用软件方式实现对应的芯片模块的功能;
通过所述开关变量设置本次待验证子系统各芯片模块的仿真对象,所述仿真对象为所述芯片模块或与其对应的软件模型。
3.如权利要求2所述的方法,其特征在于,进一步包括:
为每一芯片模块设置一个记录开关变量,根据所述记录开关变量的值,确定仿真过程中是否记录所述芯片模块验证的波形信息和日志信息。
4.如权利要求3所述的方法,其特征在于,进一步包括:
在验证测试环境中,设置记录开始时间变量和记录结束时间变量,当仿真时间处于记录开始时间与记录结束时间之间,所述待验证芯片的本次测试子系统中相应的芯片模块的波形信息和日志信息才会被记录。
5.如权利要求4所述的方法,其特征在于,进一步包括:
为每一芯片模块设置一时钟选择变量,根据所述时钟选择变量选择本次仿真过程中所述芯片模块对应的工作时钟,所述工作时钟包括原生时钟以及高频率时钟。
6.一种提高芯片验证效率的系统,其特征在于,至少包括:
芯片部署单元,用于部署待验证芯片程序,将所述待验证芯片划分为多个子系统,为每一子系统设置一个对应的黑盒模块;其中,每一子系统包含至少一芯片模块,所述黑盒模块中包含有所对应的子系统的输入和输出接口信息;
测试用例组编制单元,用于为每一子系统编制对应的测试用例组;
本次测试程序确定单元,用于选择所述芯片中的本次待验证子系统,将剩余子系统采用对应的黑盒模块替换,形成本次待测试的芯片程序;
编译处理单元,用于将本次待测试的芯片程序、各测试用例组程序进行编译,形成验证测试环境;
仿真测试单元,根据所述验证测试环境进行仿真处理,运行待验证子系统所对应的测试用例组,并获得仿真结果,所述仿真结果包括待验证子系统中至少部分芯片模块的波形信息及日志信息。
7.如权利要求6所述的系统,其特征在于,进一步包括:
软件模型配置单元,用于为每个芯片模块设置一个开关变量和相应的软件模型,所述软件模型采用软件方式实现对应的芯片模块的功能;
仿真对象选择单元,用于通过所述开关变量设置本次待验证子系统各芯片模块的仿真对象,所述仿真对象为所述芯片模块或与其对应的软件模型。
8.如权利要求2所述的系统,其特征在于,进一步包括:
模块结果存储选择单元,用于为每一芯片模块设置一个记录开关变量,根据所述记录开关变量的值,确定仿真过程中是否记录所述芯片模块验证的波形信息和日志信息。
9.如权利要求3所述的系统,其特征在于,进一步包括:
记录时间确定单元,用于在验证测试环境中,设置记录开始时间变量和记录结束时间变量,当仿真时间处于记录开始时间与记录结束时间之间,所述待验证芯片的本次测试子系统中相应的芯片模块的波形信息和日志信息才会被记录。
10.如权利要求9所述的系统,其特征在于,进一步包括:
时钟选择单元,用于为每一芯片模块设置一时钟选择变量,根据所述时钟选择变量选择本次仿真过程中所述芯片模块对应的工作时钟,所述工作时钟包括原生时钟以及高频率时钟。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310304977.1A CN116362198A (zh) | 2023-03-21 | 2023-03-21 | 一种提高芯片验证效率的方法、系统、存储介质及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310304977.1A CN116362198A (zh) | 2023-03-21 | 2023-03-21 | 一种提高芯片验证效率的方法、系统、存储介质及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116362198A true CN116362198A (zh) | 2023-06-30 |
Family
ID=86917137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310304977.1A Pending CN116362198A (zh) | 2023-03-21 | 2023-03-21 | 一种提高芯片验证效率的方法、系统、存储介质及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116362198A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117034824A (zh) * | 2023-08-25 | 2023-11-10 | 广州市粤港澳大湾区前沿创新技术研究院 | 复用测试用例和验证环境的仿真验证系统、方法、终端及介质 |
CN117271374A (zh) * | 2023-11-20 | 2023-12-22 | 北京开源芯片研究院 | 芯片的仿真测试方法、装置、设备及存储介质 |
CN117573551A (zh) * | 2023-11-30 | 2024-02-20 | 沐曦集成电路(上海)有限公司 | 基于芯片功能覆盖率多级控制方法、电子设备和介质 |
CN118095148A (zh) * | 2024-03-22 | 2024-05-28 | 深圳市智创芯微电子有限公司 | 一种芯片内部逻辑验证方法和系统 |
-
2023
- 2023-03-21 CN CN202310304977.1A patent/CN116362198A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117034824A (zh) * | 2023-08-25 | 2023-11-10 | 广州市粤港澳大湾区前沿创新技术研究院 | 复用测试用例和验证环境的仿真验证系统、方法、终端及介质 |
CN117034824B (zh) * | 2023-08-25 | 2024-09-20 | 广州市粤港澳大湾区前沿创新技术研究院 | 复用测试用例和验证环境的仿真验证系统、方法、终端及介质 |
CN117271374A (zh) * | 2023-11-20 | 2023-12-22 | 北京开源芯片研究院 | 芯片的仿真测试方法、装置、设备及存储介质 |
CN117573551A (zh) * | 2023-11-30 | 2024-02-20 | 沐曦集成电路(上海)有限公司 | 基于芯片功能覆盖率多级控制方法、电子设备和介质 |
CN117573551B (zh) * | 2023-11-30 | 2024-08-20 | 沐曦集成电路(上海)有限公司 | 基于芯片功能覆盖率多级控制方法、电子设备和介质 |
CN118095148A (zh) * | 2024-03-22 | 2024-05-28 | 深圳市智创芯微电子有限公司 | 一种芯片内部逻辑验证方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116362198A (zh) | 一种提高芯片验证效率的方法、系统、存储介质及计算设备 | |
US5515384A (en) | Method and system of fault diagnosis of application specific electronic circuits | |
US7831863B2 (en) | Method for enhancing the diagnostic accuracy of a VLSI chip | |
US6061283A (en) | Semiconductor integrated circuit evaluation system | |
JP3872954B2 (ja) | 有限状態機械を識別して回路設計を検査するシステムおよび方法 | |
CN112444731B (zh) | 芯片测试方法、装置、处理器芯片及服务器 | |
CN115656792B (zh) | 芯片可测性设计的测试方法及测试平台 | |
CN115684896B (zh) | 芯片可测性设计测试方法、测试平台及其生成方法及装置 | |
CN115656791B (zh) | 芯片可测性设计的测试方法及测试平台 | |
CN114662427B (zh) | 一种逻辑系统设计的调试方法及设备 | |
US7228262B2 (en) | Semiconductor integrated circuit verification system | |
KR20210031111A (ko) | 안전인증 자료 획득 장치 및 그 방법 | |
CN101263498A (zh) | 用于集成电路设计仿真的断言的开发 | |
CN117787155B (zh) | 一种芯片可测性代码动态仿真测试系统及测试方法 | |
CN111859833A (zh) | 可配置系统级验证环境构造方法、系统及介质 | |
JP2002099584A (ja) | 設計検証システム、設計検証方法および設計検証プログラムを格納したコンピュータ読取り可能な記録媒体 | |
CN114398848A (zh) | 一种测试向量生成方法、装置及存储介质 | |
CN113868046B (zh) | 一种pad控制单元的功能验证方法及系统 | |
US20020072889A1 (en) | Efficient array tracing in a logic simulator machine | |
KR100506769B1 (ko) | 고속 테스트 패턴 평가 장치 | |
US20050076282A1 (en) | System and method for testing a circuit design | |
US7277840B2 (en) | Method for detecting bus contention from RTL description | |
CN117607657B (zh) | 基于交织多路模式的芯片自动化测试用alpg测试系统及方法 | |
CN117007947B (zh) | 生成测试向量的方法、装置、电子设备及存储介质 | |
US20030188273A1 (en) | Simulation-based technique for contention avoidance in automatic test pattern generation |
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 |