CN116205172A - 软硬件协同仿真验证中寄存器修改的方法及装置 - Google Patents
软硬件协同仿真验证中寄存器修改的方法及装置 Download PDFInfo
- Publication number
- CN116205172A CN116205172A CN202310133932.2A CN202310133932A CN116205172A CN 116205172 A CN116205172 A CN 116205172A CN 202310133932 A CN202310133932 A CN 202310133932A CN 116205172 A CN116205172 A CN 116205172A
- Authority
- CN
- China
- Prior art keywords
- register
- software
- configuration data
- hardware
- simulation verification
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/02—CAD in a network environment, e.g. collaborative CAD or distributed simulation
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了软硬件协同仿真验证中寄存器修改的方法及装置,该寄存器修改的方法包括:读取第一寄存器文件,第一寄存器文件中存储有第一数据类型的寄存器配置数据;对第一寄存器文件进行脚本处理,以生成第二寄存器文件,第二寄存器文件中存储有第二数据类型的寄存器配置数据;利用第二数据类型的寄存器配置数据对寄存器进行修改。本发明能够明显地缩短寄存器修改过程耗时、提高寄存器的修改效率,避免软硬件协同仿真验证中手动修改寄存器存在的耗时较长等技术问题。
Description
技术领域
本发明涉及软硬件协同仿真验证技术领域,具体地,本发明涉及软硬件协同仿真验证中寄存器修改的方法及装置。
背景技术
在芯片的研发过程中,技术人员经常使用软硬件协同仿真验证的方法对芯片设计方案进行验证。随着芯片复杂程度越来越高,软硬件协同仿真验证项目版本修改的迭代次数也越来越多,特别是软硬件协同仿真验证中寄存器修改的迭代次数也越来越多,复杂芯片在设计过程中会涉及大量的寄存器,由于寄存器修改所引入的修改工作量越来越大。
现有技术中,依赖技术人员对软硬件协同仿真验证中寄存器进行手动修改,实现软硬件协同仿真验证项目版本的验证迭代;当修改量较小时,手动修改也可以满足迭代需求;但是当修改量较大时,手动修改方式耗时较长,影响芯片研发的进度。而且,寄存器修改量往往随着芯片复杂度和规模的增大而增加,手动修改也容易出现修改不全面或修改错误的问题。
发明内容
为解决现有技术软硬件协同仿真验证中手动修改寄存器存在的一个或多个问题,本发明能够提供软硬件协同仿真验证中寄存器修改的方法及装置,通过对第一寄存器文件进行脚本处理方式生成的第二寄存器文件中的第二数据类型的寄存器配置数据对寄存器进行修改,以达到缩短寄存器修改过程耗时、提高寄存器修改效率及推进芯片研发进度等技术目的。
为实现上述的技术目的,本发明能够提供一种软硬件协同仿真验证中寄存器修改的方法,所述方法包括:读取第一寄存器文件,所述第一寄存器文件中存储有第一数据类型的寄存器配置数据;对所述第一寄存器文件进行脚本处理,以生成第二寄存器文件,所述第二寄存器文件中存储有第二数据类型的所述寄存器配置数据;利用所述第二数据类型的所述寄存器配置数据对寄存器进行修改。
基于上述的技术方案,通过对第一寄存器文件进行脚本处理得到第二寄存器文件,进而通过第二寄存器文件存储的第二数据类型的寄存器配置数据对寄存器进行修改,相比手动修改寄存器的方案,本发明能够明显地缩短寄存器修改过程耗时、提高寄存器的修改效率,避免软硬件协同仿真验证中手动修改寄存器存在的耗时较长等技术问题。
本发明至少一种可选的实施方式中,所述读取第一寄存器文件,包括:读取更新之后的第一寄存器文件;其中,所述更新之后的第一寄存器文件中存储有根据软硬件协同仿真验证项目版本迭代而修改的寄存器配置数据。
基于上述进一步改进的技术方案,本发明能够在项目版本迭代过程中明显提高寄存器修改的效率,从而实现软硬件协同仿真验证中寄存器修改的快速迭代。
本发明至少一种可选的实施方式中,软硬件协同仿真验证中寄存器修改的方法还包括:根据所述第二数据类型的所述寄存器配置数据构建读函数和写函数,所述读函数用于从所述寄存器中读出数据,所述写函数用于向所述寄存器内写入数据。
基于上述进一步改进的技术方案,本发明还能够实现创建用于寄存器的读函数和写函数的功能,可见本实施例根据第二数据类型的寄存器配置数据构建读函数和写函数,读函数和写函数基于第二数据类型的寄存器配置数据实现读功能和写功能,上述方式的好处是在读取初始版本的第一寄存器文件和生成第二数据类型的寄存器配置数据后,所构建的读函数和写函数在后续版本迭代过程中无需再进行修改,进一步减少了软硬件协同仿真验证中技术人员的修改工作量。
本发明至少一种可选的实施方式中,所述第一寄存器文件中存储有按照预设内容格式设置的多项所述寄存器配置数据;所述对所述第一寄存器文件进行脚本处理,包括:根据所述预设内容格式,对所述第一寄存器文件进行脚本处理。
基于上述进一步改进的技术方案,本发明还能够按照预设内容格式对多项寄存器配置数据进行更可靠和更高效地读取,并保证第二数据类型的寄存器配置数据与第一数据类型的寄存器配置数据之间的一致性。
本发明至少一种可选的实施方式中,所述预设内容格式为行与列格式;所述根据所述预设内容格式,对所述第一寄存器文件进行脚本处理,包括:对所述第一寄存器文件进行解析,以从所述多项所述寄存器配置数据中识别出关键字;根据所述关键字所处的行和/或列,从所述第一寄存器文件中获取所述寄存器配置数据;创建所述第二寄存器文件,并按照第二数据类型将获取的寄存器配置数据写入所述第二寄存器文件中。
基于上述进一步改进的技术方案,本发明还通过识别出的每个关键字确定对应的寄存器配置数据,从而进一步提高多项寄存器配置数据读取的可靠性和高效性。
本发明至少一种可选的实施方式中,所述第二数据类型包括结构体类型。基于上述技术方案,本发明在软件环境中使用结构体类型作为寄存器配置信息的存储方式,以便于软硬件协同仿真验证中寄存器的快速修改。
本发明至少一种可选的实施方式中,所述第一数据类型包括字符型和数值型。基于上述技术方案,本发明满足用户对第一寄存器文件进行直接修改和便捷修改的需求,用户无需手动修改软件环境下的寄存器相关信息。
本发明至少一种可选的实施方式中,所述寄存器配置数据包括寄存器地址数据和寄存器域数据。由此,本发明能够实现对寄存器相关的寄存器地址和寄存器域的快速修改。
本发明至少一种可选的实施方式中,所述利用所述第二数据类型的所述寄存器配置数据对寄存器进行修改,包括:利用所述第二数据类型的所述寄存器配置数据,对当前版本的软硬件协同仿真验证项目中的多个寄存器进行修改。
基于上述进一步改进的技术方案,本发明还能够对当前版本的软硬件协同仿真验证项目中的多个寄存器同步地进行修改,进一步提高当前版本的软硬件协同仿真验证项目中寄存器的修改效率。
为实现上述的技术目的,本发明还能够提供一种软硬件协同仿真验证中寄存器修改的装置,所述装置包括:文件读取模块,用于读取第一寄存器文件,所述第一寄存器文件中存储有第一数据类型的寄存器配置数据;脚本处理模块,用于对所述第一寄存器文件进行脚本处理,以生成第二寄存器文件,所述第二寄存器文件中存储有第二数据类型的所述寄存器配置数据;寄存器修改模块,用于利用所述第二数据类型的所述寄存器配置数据对寄存器进行修改。
为实现上述的技术目的,本发明还可提供一种电子设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行本发明任一实施例所述的软硬件协同仿真验证中寄存器修改的方法的步骤。
为实现上述的技术目的,本发明还可提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行本发明任一实施例所述的软硬件协同仿真验证中寄存器修改的方法的步骤。
本发明的有益效果包括:本发明基于对存储有第一数据类型的寄存器配置数据的第一寄存器文件进行脚本处理的方式生成的第二寄存器文件中的第二数据类型的寄存器配置数据对寄存器进行修改,有效避免了现有技术中手动修改寄存器带来的修改过程耗时较长、易出错或修改不全面等问题,即使芯片复杂度和规模不断增大,本发明仍然能够以较高的效率对软硬件协同仿真验证中寄存器进行修改,并能够有效地减少修改不全面或修改错误的情况发生,避免手动修改还需花费大量时间进行排错(debug)的问题,极大地降低了人力成本的投入。本发明提供的软硬件协同仿真验证中寄存器修改的方案有助于推进芯片研发进度,用户满意度较高。
附图说明
图1示出了本发明一个或多个实施例中软硬件协同仿真验证中寄存器修改的方法的一种流程示意图。
图2示出了本发明一个或多个实施例中软硬件协同仿真验证中寄存器修改的方法的另一种流程示意图。
图3示出了本发明一个或多个实施例中根据预设内容格式对第一寄存器文件进行脚本处理的流程示意图。
图4示出了本发明一个或多个实施例中软硬件协同仿真验证中寄存器修改的方法的再一种流程示意图。
图5示出了本发明一个或多个实施例中软硬件协同仿真验证中寄存器修改的装置的结构示意图。
图6示出了本发明一个或多个实施例中电子设备内部结构示意图。
具体实施方式
下面结合说明书附图对本发明提供的软硬件协同仿真验证中寄存器修改的方法及装置进行详细的解释和说明。
在软硬件协同仿真验证的过程中,相比手动修改寄存器的方案存在的问题,本发明能够提供软硬件协同仿真验证中寄存器修改的方法及装置。寄存器修改的方法包括:读取第一寄存器文件,第一寄存器文件中存储有第一数据类型的寄存器配置数据;对第一寄存器文件进行脚本处理,以生成第二寄存器文件,第二寄存器文件中存储有第二数据类型的寄存器配置数据;利用第二数据类型的寄存器配置数据对寄存器进行修改。因此,本实施例基于对存储有第一数据类型的寄存器配置数据的第一寄存器文件进行脚本处理的方式生成的第二寄存器文件中的第二数据类型的寄存器配置数据对寄存器进行修改,有效避免了现有技术中手动修改寄存器带来的修改过程耗时较长、易出错或修改不全面等问题,即使芯片复杂度和规模不断增大,本发明仍然能够以较高的效率对软硬件协同仿真验证中寄存器进行修改,并能够有效地减少修改不全面或修改错误的情况发生,避免手动修改还需花费大量时间进行排错的问题,极大地降低了人力成本的投入。本发明实施例提供的软硬件协同仿真验证中寄存器修改的方案有助于推进芯片研发进度,用户满意度较高。
如图1所示,本发明一个或多个实施例能够提供一种软硬件协同仿真验证中寄存器修改的方法,该寄存器修改的方法包括但不限于步骤S110至步骤S130。
步骤S110,读取第一寄存器文件,第一寄存器文件中存储有第一数据类型的寄存器配置数据。
其中,本实施例中的寄存器配置数据可以包括但不限于一组寄存器的基地址,该组寄存器中的各个寄存器的偏移地址、寄存器域、起始位、结束位、寄存器默认值、读写属性等。
如图2所示,本发明至少一个实施例中,读取第一寄存器文件,包括但不限于步骤S111。
步骤S111,读取更新之后的第一寄存器文件;其中,更新之后的第一寄存器文件中存储有根据软硬件协同仿真验证项目版本迭代而修改的寄存器配置数据。
对于软硬件协同仿真验证项目版本的每次更新,用户只需要修改第一寄存器文件中的内容,保证整个软硬件协同仿真验证项目中寄存器修改的一致性。
本发明上述实施例用于软硬件协同仿真验证项目版本迭代过程中,在需要修改上一版本的寄存器时,本实施例只需要修改第一寄存器文件中的寄存器配置数据即可。由此可以看出,使用本发明的用户能够在无需手动修改软件环境下的寄存器配置信息的前提下实现了寄存器的修改,本发明能够避免用户对软件环境下的寄存器进行修改的过程中容易产生的修改不全面问题以及修改易出错等问题。
应当理解的是,本实施例读取第一寄存器文件还包括:读取初始版本的第一寄存器文件。该步骤在步骤S111之前执行,用于对用户首次编写的第一寄存器文件进行读取。
步骤S120,对第一寄存器文件进行脚本处理,以生成第二寄存器文件,第二寄存器文件中存储有第二数据类型的寄存器配置数据。
本发明使用预设脚本处理所述第一寄存器文件,在软件环境中可自动生成存储于第二寄存器文件中的第二数据类型的寄存器配置数据。
本发明一个或多个实施例中,第二数据类型包括结构体类型。
由此,本实施例实现了使用脚本在软件环境中生成一套与第一寄存器文件中存储的第一数据类型的寄存器配置数据对应的结构体类型的寄存器配置数据。
在软硬件协同仿真验证过程中,本发明在软件环境中使用结构体类型作为寄存器配置信息的存储方式,从而便于软硬件协同仿真验证中寄存器的快速修改。
本发明一个或多个实施例中,第一数据类型包括字符型和数值型。
由此,本发明满足用户对第一寄存器文件进行直接修改和便捷修改的需求,用户无需手动修改软件环境下的寄存器相关信息。
另外,本发明使用的第一寄存器文件能够作为芯片设计和软硬件协同仿真验证的共同输入件,本发明还具有保证验证规格和设计规格的一致性的优点。
如图3所示,本发明一个或多个实施例中,第一寄存器文件中存储有按照预设内容格式设置的多项寄存器配置数据;对第一寄存器文件进行脚本处理,包括但不限于步骤S121。
步骤S121,根据预设内容格式,对第一寄存器文件进行脚本处理。
基于该预设内容格式,本发明还能够按照预设内容格式对多项寄存器配置数据进行更可靠和更高效地读取,并保证第二数据类型的寄存器配置数据与第一数据类型的寄存器配置数据之间的一致性。
本发明至少一个可选的实施例中,预设内容格式为行与列格式;例如第一寄存器文件为表格文件,多项寄存器配置数据按照逐行或者逐列方式存储于表格文件中。
本发明定义第一寄存器文件格式,例如,一组寄存器的基地址、各个寄存器的偏移地址、各个寄存器的各个寄存器域,各个寄存器域的起始位(bit)、结束位(bit),各个寄存器默认值,各个寄存器的读写属性等。
本实施例以PRCM(Power Reset and Clock manage,电源重置和时钟管理)寄存器组为例进行说明,PRCM寄存器组的及地址为0x400_0000,该寄存器组多个寄存器,本实施例以PRCM寄存器组中的demo_clk_cfg寄存器为例,demo_clk_cfg寄存器寄存器有5个寄存器域,域名字分别为postdiv0,postdiv1,postdiv2,postdiv3,fbdiv,clk_en,每个寄存器域分别定义了位宽(Width列),该域的起始位(Low列),结束位(High列),默认值(Defaultvalue列)及描述(Description列),表格文件中的内容例如下表所示。
本发明至少一个可选的实施例中,根据预设内容格式,对第一寄存器文件进行脚本处理,包括:
步骤S1211,对第一寄存器文件进行解析,以从多项寄存器配置数据中识别出关键字。
其中,本实施例可通过预设脚本从第一寄存器文件中解析出关键字,关键字例如BASE_ADDR(该组寄存器的基地址)、Module(模块)、Register(寄存器)、Offset(偏移地址)、Access(存取)、Field(域)、Width(位宽)、High(结束位)、Low(起始位)、Default value(默认值)等,当然并不限于上述的示例。
步骤S1212,根据关键字所处的行和/或列,从第一寄存器文件中获取寄存器配置数据。
以关键字所处的行为例,结合上述表格,例如根据关键字clk_en所处的行获取的寄存器配置数据可包括1、28、28、1'b0,根据关键字fbdiv所处的行获取的寄存器配置数据可包括12、27、16、12'h3c,根据关键字postdiv3所处的行获取的寄存器配置数据可包括4、5、12、4'h7,根据关键字postdiv2所处的行获取的寄存器配置数据可包括4、11、8、4'h5,根据关键字postdiv1所处的行获取的寄存器配置数据可包括4、7、4、4'h4,根据关键字postdiv0所处的行获取的寄存器配置数据可包括4、3、0、4'h2等。
步骤S1213,创建第二寄存器文件,并按照第二数据类型将获取的寄存器配置数据写入第二寄存器文件中。
本实施例获取的寄存器配置数据为寄存器的详细信息,可将其转化至软件代码中,以结构体的方式存储。结合上述的表格,本实施例对转化后的第二数据类型的寄存器配置数据进行示例性说明,struct表示结构体。
a.使用宏定义来确定寄存器组的基地址
1.#define PRCM_ADDR 0x04000000
b.使用Union来定义寄存器组
1.struct PRCM_REG
2.{
3.union DEMO0_CLK_EN_REG demo_clk_en;
4.};
c.使用Struct来定义寄存器,以及内部各个寄存器域的信息
1.struct DEMO0_CLK_EN_REG
2.{
3.Uint32 postdiv0:4;
4.Uint32 postdiv1:4;
5.Uint32 postdiv2:4;
6.Uint32 postdiv3:4;
7.Uint32 fbdiv:12;
8.Uint32 clk_en:1;
9.};
由此可以看出,本发明实施例还通过识别出的每个关键字确定对应的寄存器配置数据,从而进一步提高多项寄存器配置数据读取的可靠性以及高效性。
步骤S130,利用第二数据类型的寄存器配置数据对寄存器进行修改。
本发明对寄存器进行修改是指对软件环境下的寄存器相关信息进行修改,本实施例具体指对软件环境下的寄存器配置信息进行修改。
其中,第二寄存器文件例如可以为代码文件,第二数据类型的寄存器配置数据可以为软件代码,在软件环境下能够被直接使用,从而刷新寄存器相关信息,实现自动对寄存器进行修改。
本发明一个或多个实施例中,寄存器配置数据包括寄存器地址数据和寄存器域数据。由此,本发明能够实现对寄存器相关的寄存器地址和寄存器域的快速修改,当然并不限于此。
如图4所示,本发明一个或多个实施例中,该软硬件协同仿真验证中寄存器修改的方法还包括但不限于步骤S140。
步骤S140,根据第二数据类型的寄存器配置数据构建读函数和写函数,读函数用于从寄存器中读出数据,写函数用于向寄存器内写入数据。
例如,向寄存器如要向寄存器demo0_clk_en中写入0x5a5a,可表示为:1.prcm_reg.demo0_clk_en=0x5a5a。如要读取寄存器demo0_clk_en的值,则可表示为:2.value=prcm_reg.demo0_clk_en。
其中,步骤S140在通过读取的初始版本的第一寄存器文件生成第二寄存器文件之后执行,本发明实施例能够实现根据读函数和写函数自动构建对相应寄存器地址的读功能和写功能。
可见本实施例根据第二数据类型的寄存器配置数据构建读函数和写函数,读函数和写函数基于第二数据类型的寄存器配置数据实现读功能和写功能,上述方式的好处是在读取初始版本的第一寄存器文件和生成第二数据类型的寄存器配置数据后,所构建的读函数和写函数在后续版本迭代过程中无需再进行修改,进一步减少了软硬件协同仿真验证中技术人员的修改工作量。
本发明一个或多个实施例中,利用第二数据类型的寄存器配置数据对寄存器进行修改,包括:利用第二数据类型的寄存器配置数据,对当前版本的软硬件协同仿真验证项目中的多个寄存器进行修改。
其中,多个寄存器为软硬件协同仿真验证项目当前版本迭代过程中待进行修改的多个寄存器。
在待修改的寄存器数量为多个时,本发明还能够对当前版本的软硬件协同仿真验证项目中的多个寄存器同步地进行修改,进一步提高当前版本的软硬件协同仿真验证项目中寄存器的修改效率。
如图5所示,与软硬件协同仿真验证中寄存器修改的基于同一发明技术构思,本发明一个或多个实施例还能够提供一种软硬件协同仿真验证中寄存器修改的装置。其中,本实施例的软硬件协同仿真验证中寄存器修改的装置包括但不限于文件读取模块210、脚本处理模块220及寄存器修改模块230,具体说明如下。
文件读取模块210,用于读取第一寄存器文件,第一寄存器文件中存储有第一数据类型的寄存器配置数据。
脚本处理模块220,用于对第一寄存器文件进行脚本处理,以生成第二寄存器文件,第二寄存器文件中存储有第二数据类型的寄存器配置数据。
寄存器修改模块230,用于利用第二数据类型的寄存器配置数据对寄存器进行修改。
可选地,文件读取模块210,用于读取更新之后的第一寄存器文件;其中,更新之后的第一寄存器文件中存储有根据软硬件协同仿真验证项目版本迭代而修改的寄存器配置数据。
可选地,软硬件协同仿真验证中寄存器修改的装置还可包括函数构建模块。
函数构建模块,用于根据第二数据类型的寄存器配置数据构建读函数和写函数,读函数用于从寄存器中读出数据,写函数用于向寄存器内写入数据。
可选地,脚本处理模块220,用于根据预设内容格式,对第一寄存器文件进行脚本处理。
可选地,脚本处理模块220具体包括文件解析单元、数据获取单元及数据写入单元。
文件解析单元,用于对第一寄存器文件进行解析,以从多项寄存器配置数据中识别出关键字。
数据获取单元,用于根据关键字所处的行和/或列,从第一寄存器文件中获取寄存器配置数据。
数据写入单元,用于创建第二寄存器文件,并按照第二数据类型将获取的寄存器配置数据写入第二寄存器文件中。
可选地,第二数据类型包括结构体类型。
可选地,第一数据类型包括字符型和数值型。
可选地,寄存器配置数据包括寄存器地址数据和寄存器域数据。
可选地,寄存器修改模块230,用于利用第二数据类型的寄存器配置数据,对当前版本的软硬件协同仿真验证项目中的多个寄存器进行修改。
如图6所示,与软硬件协同仿真验证中寄存器修改的基于同一发明技术构思,本发明一个或多个实施例还能够提供一种电子设备,该电子设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行本发明任一实施例中的软硬件协同仿真验证中寄存器修改的方法的步骤。其中涉及的软硬件协同仿真验证中寄存器修改的方法的详细实现过程已在本说明书中有详细的记载,此处不再进行赘述。
如图6所示,与软硬件协同仿真验证中寄存器修改的基于同一发明技术构思,本发明一个或多个实施例还能够提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本发明任一实施例中的软硬件协同仿真验证中寄存器修改的方法的步骤。其中涉及的软硬件协同仿真验证中寄存器修改的方法的详细实现过程已在本说明书中有详细的记载,此处不再进行赘述。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读存储介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM,Random Access Memory),只读存储器(ROM,Read-Only Memory),可擦除可编辑只读存储器(EPROM,Erasable Programmable Read-Only Memory,或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM,Compact Disc Read-Only Memory)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA,Programmable Gate Array),现场可编程门阵列(FPGA,Field Programmable Gate Array)等。
在本说明书的描述中,参考术语“本实施例”、“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明实质内容上所作的任何修改、等同替换和简单改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种软硬件协同仿真验证中寄存器修改的方法,其特征在于,所述方法包括:
读取第一寄存器文件,所述第一寄存器文件中存储有第一数据类型的寄存器配置数据;
对所述第一寄存器文件进行脚本处理,以生成第二寄存器文件,所述第二寄存器文件中存储有第二数据类型的所述寄存器配置数据;
利用所述第二数据类型的所述寄存器配置数据对寄存器进行修改。
2.根据权利要求1所述的软硬件协同仿真验证中寄存器修改的方法,其特征在于,所述读取第一寄存器文件,包括:
读取更新之后的第一寄存器文件;
其中,所述更新之后的第一寄存器文件中存储有根据软硬件协同仿真验证项目版本迭代而修改的寄存器配置数据。
3.根据权利要求1或2所述的软硬件协同仿真验证中寄存器修改的方法,其特征在于,所述方法还包括:
根据所述第二数据类型的所述寄存器配置数据构建读函数和写函数,所述读函数用于从所述寄存器中读出数据,所述写函数用于向所述寄存器内写入数据。
4.根据权利要求1或2所述的软硬件协同仿真验证中寄存器修改的方法,其特征在于,所述第一寄存器文件中存储有按照预设内容格式设置的多项所述寄存器配置数据;
所述对所述第一寄存器文件进行脚本处理,包括:
根据所述预设内容格式,对所述第一寄存器文件进行脚本处理。
5.根据权利要求4所述的软硬件协同仿真验证中寄存器修改的方法,其特征在于,所述预设内容格式为行与列格式;
所述根据所述预设内容格式,对所述第一寄存器文件进行脚本处理,包括:
对所述第一寄存器文件进行解析,以从所述多项所述寄存器配置数据中识别出关键字;
根据所述关键字所处的行和/或列,从所述第一寄存器文件中获取所述寄存器配置数据;
创建所述第二寄存器文件,并按照第二数据类型将获取的寄存器配置数据写入所述第二寄存器文件中。
6.根据权利要求1所述的软硬件协同仿真验证中寄存器修改的方法,其特征在于,
所述第二数据类型包括结构体类型。
7.根据权利要求1或6所述的软硬件协同仿真验证中寄存器修改的方法,其特征在于,
所述第一数据类型包括字符型和数值型。
8.根据权利要求1所述的软硬件协同仿真验证中寄存器修改的方法,其特征在于,
所述寄存器配置数据包括寄存器地址数据和寄存器域数据。
9.根据权利要求1所述的软硬件协同仿真验证中寄存器修改的方法,其特征在于,所述利用所述第二数据类型的所述寄存器配置数据对寄存器进行修改,包括:
利用所述第二数据类型的所述寄存器配置数据,对当前版本的软硬件协同仿真验证项目中的多个寄存器进行修改。
10.一种软硬件协同仿真验证中寄存器修改的装置,其特征在于,所述装置包括:
文件读取模块,用于读取第一寄存器文件,所述第一寄存器文件中存储有第一数据类型的寄存器配置数据;
脚本处理模块,用于对所述第一寄存器文件进行脚本处理,以生成第二寄存器文件,所述第二寄存器文件中存储有第二数据类型的所述寄存器配置数据;
寄存器修改模块,用于利用所述第二数据类型的所述寄存器配置数据对寄存器进行修改。
11.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至9中任一权利要求所述的软硬件协同仿真验证中寄存器修改的方法的步骤。
12.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至9中任一项权利要求所述的软硬件协同仿真验证中寄存器修改的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310133932.2A CN116205172A (zh) | 2023-02-08 | 2023-02-08 | 软硬件协同仿真验证中寄存器修改的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310133932.2A CN116205172A (zh) | 2023-02-08 | 2023-02-08 | 软硬件协同仿真验证中寄存器修改的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116205172A true CN116205172A (zh) | 2023-06-02 |
Family
ID=86512392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310133932.2A Pending CN116205172A (zh) | 2023-02-08 | 2023-02-08 | 软硬件协同仿真验证中寄存器修改的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116205172A (zh) |
-
2023
- 2023-02-08 CN CN202310133932.2A patent/CN116205172A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5202889A (en) | Dynamic process for the generation of biased pseudo-random test patterns for the functional verification of hardware designs | |
US10437574B2 (en) | System and method for providing code completion features for code modules | |
US10380011B2 (en) | Method, apparatus, and computer-readable medium for performing functional testing of software | |
CN111930386B (zh) | 一种pattern文件编译方法、装置及电子设备 | |
CN117009231A (zh) | 基于对话式大语言模型的高可靠单元测试自动生成方法及装置 | |
US8595680B1 (en) | Constrained random error injection for functional verification | |
CN111967209A (zh) | 一种soc仿真验证方法、装置及存储介质 | |
CN115345101A (zh) | 基于uvm的芯片寄存器的验证方法 | |
CN112463633B (zh) | 一种片上存储器的地址译码校验方法、装置、设备及介质 | |
US6671843B1 (en) | Method for providing user definable algorithms in memory BIST | |
CN113138755A (zh) | 一种json序列化和反序列化的优化方法及系统 | |
JP2004030638A (ja) | マイクロプロセッサキャッシュ設計初期化 | |
CN117149209A (zh) | 一种代码增量编译方法、装置、计算机设备及存储介质 | |
CN116205172A (zh) | 软硬件协同仿真验证中寄存器修改的方法及装置 | |
JP2011524039A (ja) | 反復ビット値パターンを決定する方法及び装置 | |
CN109344083A (zh) | 一种程序调试方法、装置、设备及可读存储介质 | |
CN114564396A (zh) | 基于数据路径约束求解的随机指令测试程序生成方法 | |
US20080163180A1 (en) | Dynamic discovery of data segments within instrumented code | |
CN118051443B (zh) | 一种数据注入方法、系统、终端及存储介质 | |
US11971818B1 (en) | Memory view for non-volatile memory module | |
US11966633B1 (en) | Control algorithm generator for non-volatile memory module | |
US7346749B2 (en) | Method for storing register properties in a datastructure and related datastructure | |
CN118092929A (zh) | 寄存器描述文件转换方法、装置、计算机设备和存储介质 | |
CN117406969A (zh) | 一种TypeScript类型声明的生成方法、系统、装置及介质 | |
CN118133742A (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 |