CN116860589A - 一种寄存器验证方法、装置、电子设备及计算机存储介质 - Google Patents

一种寄存器验证方法、装置、电子设备及计算机存储介质 Download PDF

Info

Publication number
CN116860589A
CN116860589A CN202210310178.0A CN202210310178A CN116860589A CN 116860589 A CN116860589 A CN 116860589A CN 202210310178 A CN202210310178 A CN 202210310178A CN 116860589 A CN116860589 A CN 116860589A
Authority
CN
China
Prior art keywords
function
register
input parameters
language model
test
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
CN202210310178.0A
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.)
Xiangdixian Computing Technology Chongqing Co ltd
Original Assignee
Xiangdixian Computing Technology Chongqing 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 Xiangdixian Computing Technology Chongqing Co ltd filed Critical Xiangdixian Computing Technology Chongqing Co ltd
Priority to CN202210310178.0A priority Critical patent/CN116860589A/zh
Publication of CN116860589A publication Critical patent/CN116860589A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供一种寄存器验证方法、装置、电子设备及计算机存储介质。该方法包括:加载测试用例,测试用例中包含寄存器的通用行为语言模型,行为语言模型中包含接口函数及接口函数对应的索引指针;调用接口函数获得测试用例中所述通用行为语言模型对应的输入参数并传输至适配器;通过适配器获得验证平台中索引指针所指向的预设函数,并根据输入参数和预设函数在所述验证平台中进行寄存器功能测试。在上述技术方案中通过通用语言行为模型和适配器使得测试用例可以在多个验证平台中复用,解决了现有技术中寄存器测试用例开发工作的重复与冗余的技术问题,减少了验证工程师的工作负担,也降低了测试过程中出现错误或者遗漏的概率。

Description

一种寄存器验证方法、装置、电子设备及计算机存储介质
技术领域
本公开涉及测试领域,尤其涉及一种寄存器验证方法、装置及计算机存储介质。
背景技术
按照芯片设计过程分类,芯片设计验证包括最初的前端仿真验证即simulation,随后的系统级芯片SOC的固件平台验证即emulation,以及后续的软件平台即CUDA或OPENGL验证。工作于各验证平台的工程师都需要基于自身验证环境开发对应相同芯片设计功能的测试用例,包括寄存器功能测试用例。针对同一份芯片设计,寄存器功能对于各验证平台是基本一致的。进而,各验证平台针对寄存器功能的测试用例,从芯片功能角度上看,也是一致的。但根据不同平台要求编写功能相似或者相同的寄存器测试用例,却无法实现任何资源共享,这样就导致了工作的重复与冗余,不仅极大地增加了验证工程师的工作负担,也增大了测试过程中出现错误或者遗漏的概率。
发明内容
本公开的目的是提供一种寄存器验证方法、装置、电子设备及计算机存储介质,以实现寄存器测试用例在多验证平台之间的共享。
根据本公开的第一方面,提供一种寄存器验证方法,包括:
加载测试用例,所述测试用例中包含寄存器的通用行为语言模型,所述行为语言模型中包含接口函数及所述接口函数对应的索引指针;
调用所述接口函数获得所述测试用例中所述通用行为语言模型对应的输入参数并传输至适配器;
通过所述适配器调用获得验证平台中所述索引指针所指向的预设函数,并根据所述输入参数和所述预设函数在所述验证平台中进行寄存器功能测试。
作为一种可选的实施方式,所述通用行为语言模型包含寄存器的等待操作类和/或分支操作类。
作为一种可选的实施方式,所述通用行为语言模型还包含寄存器的读操作函数、写操作函数以及重置操作函数。
作为一种可选的实施方式,所述通用行为语言模型由C语言编写形成。
作为一种可选的实施方式,所述验证平台为前端仿真平台;
在所述通过所述适配器调用验证平台中所述索引指针所指向的预设函数,之前,所述方法还包括:
通过数据类型映射DPI函数将对所述索引指针和所述输入参数进行语言转换,获得为所述前端仿真平台可识别的索引指针和输入参数支持的编程语言。
作为一种可选的实施方式,所述根据所述输入参数和所述实现函数在所述验证平台中进行寄存器功能测试,包括:
通过所述实现函数调用所述验证平台中的寄存器操作函数对所述输入参数进行转换,将转换后的所述输入参数输入所述寄存器操作函数,以进行寄存器功能测试;或者,
通过所述实现函数获取与所述输入参数和所述通用行为语言模型对应的微指令,在所述验证平台中执行所述微指令,以进行寄存器功能测试。
根据本公开的第二方面,提供一种寄存器验证装置,包括:
加载单元,用于加载测试用例,所述测试用例中包含寄存器的通用行为语言模型,所述行为语言模型中包含接口函数及所述接口函数对应的索引指针;
调用单元,用于调用所述接口函数获得所述测试用例中所述通用行为语言模型对应的输入参数并传输至适配器;
测试单元,用于通过所述适配器调用获得验证平台中所述索引指针所指向的预设函数,并根据所述输入参数和所述预设函数在所述验证平台中进行寄存器功能测试。
作为一种可选的实施方式,所述通用行为语言模型包含寄存器的等待操作类和/或分支操作类。
作为一种可选的实施方式,所述通用行为语言模型还包含寄存器的读操作函数、写操作函数以及重置操作函数。
作为一种可选的实施方式,所述通用行为语言模型由C语言编写形成。
作为一种可选的实施方式,所述验证平台为前端仿真平台;
所述测试单元在所述通过所述适配器调用验证平台中所述索引指针所指向的预设函数之前,还用于:
通过数据类型映射DPI函数对所述索引指针和所述输入参数进行语言转换,获得所述前端仿真平台可识别的索引指针和输入参数。
作为一种可选的实施方式,所述测试单元用于:
通过所述实现函数对所述输入参数进行转换,将转换后的所述输入参数输入所述寄存器操作函数,以进行寄存器功能测试;或者,
通过所述实现函数获取与所述输入参数和所述通用行为语言模型对应的微指令,在所述验证平台中执行所述微指令,以进行寄存器功能测试。
根据本公开的第三方面,提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面中任一项所述的方法。
根据本公开的第四方面,提供一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序运行时控制所述存储介质所在电子设备执行第一方面中任一项所述的方法。
附图说明
图1-1为本公开一个实施例的通用行为语言模型的建立方法流程图;
图1-2为本公开一个实施例的关键字“rif”的泛式代码实现示例示意图;
图2为本公开一个实施例的多平台共享的寄存器验证模型结构示意图;
图3为本公开另一个实施例的寄存器验证方法的流程示意图;
图4为本公开另一个实施例的用于前端仿真平台的适配器adapter示意图;
图5为本公开一个实施例的用于固件emulation平台的适配器adapter的示意图;
图6为本公开一个实施例的用于软件OpenGL平台的适配器adapter示意图;
图7为本公开一个实施例的用于寄存器测试的C数据库示意图;
图8为本公开一个实施例的寄存器扫描测试用例的示意图;
图9为本公开另一个实施例的寄存器验证装置示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
本公开的目的是提供一种寄存器验证方法,通过构建寄存器的通用行为语言模型和适配器,使得验证工程师可以基于通用行为语言编写寄存器测试用例,而该测试用例可以通过适配器转换为验证平台可执行的程序,以在验证平台上进行寄存器功能测试,从而使得同一测试用例可以通过适配器适用于多个验证平台,进而实现寄存器测试用例在多验证平台的共用,解决了现有技术中寄存器测试用例开发工作的重复与冗余的技术问题,减少了验证工程师的工作负担,也降低了测试过程中出现错误或者遗漏的概率。
请参考图1-1,本实施例提供一种通用行为语言模型的构建方法,包括:
S11、根据寄存器行为特性,获得寄存器的通用行为;
S12、基于通用程序编写语言构建所述通用行为对应的通用行为语言模型。
具体实施过程中,S11根据寄存器的行为特性即读和写,获得寄存器在各个验证平台使用频率最高的前N(N≥3)个行为作为寄存器的通用行为,或者,获得寄存器在各个验证平台均会使用到的重要性最高的前N各行为作为寄存器的通用行为。例如,可以将如下五类行为中的任意3-5类作为寄存器的通用行为:
1)寄存器写操作(即write):将特定数值写入寄存器;
2)寄存器读操作(即read):读取寄存器中存储的数值;
3)寄存器重置操作(即reset):寄存器定义中,通常包含此寄存器的默认值,重置操作可以将寄存器中存储的数值恢复回默认值;
4)寄存器等待操作(即wait):由于寄存器之间可能存在依赖关系,所以部分寄存器数值的变更可能依赖于其他寄存器中存储的数值,等待操作会根据用户配置,反复读取指定寄存器中存储的数值,直到其值变为特定值,才变更依赖寄存器的数值。
5)寄存器分支操作(即if…else…):由于芯片的功能特性往往需要多个寄存器协同控制,这些控制寄存器之间就存在着数值依赖关系,即某个寄存器需要在另一个寄存器被赋予某个特定数值后才能被赋予某个数值,在此种场景下,寄存器测试用例就需要依据某个寄存器的特定值,来判断其他寄存器的功能正确性。
S11可以将寄存器的读、写、重置操作作为寄存器的通用行为,以此满足寄存器各个验证平台的基本需求。进一步的,S11还可以将等待操作和分支操作,与读、写、重置操作一起作为寄存器的通用行为。等待操作和分支操作实际是依赖于条件的写操作和读操作,将其作为通用行为可以进一步减少测试程序编写的复杂度,提高编写效率。
基于S11获取的寄存器通用行为,执行S12构建通用行为语言模型。为了提高测试用例的可读性,降低测试程序编写难度,S12可以采用通用程序编写语言如C语言来构建通用行为语言模型。由于前端仿真验证平台采用SystemVerilog语言编写的UVM验证方法学,而固件验证emulation平台和软件验证OpenGL平台均直接采用C语言编写,为此采用C语言编写通用行为语言模型能够提高寄存验证效率。
在基于通用编程语言构建通用行为语言模型时,可以针对寄存器的读操作、写操作及重置操作分别构建读操作函数、写操作函数、以及重置操作函数,针对等待操作和分值操作构建等待操作类和分支操作类,即通用行为语言模型的程序类型包含function和class,如表1所示。例如,寄存器分支操作“rif”需要根据输入地址对应的寄存器中的数值,来判断是否执行其他寄存器操作,所以关键字“rif”采用泛式编程class类型,如图1-2所示。而寄存器写操作只需根据其输入地址,将输入数值写入此地址对应的寄存器中,所以关键字“rwrite”采用function类型,并返回其函数执行状态。
表1
寄存器的通用行为语言模型需要和适配器adapter通信,同时又需要保持对各平台的独立性,为此本实施例为通用行为语言模型设置对接适配器adapter的接口函数。根据前述寄存器的通用行为,接口函数归纳为以下三类,如表2所示:
1)do_write:对接于适配器adapter中的写函数,将特定值写入特定寄存器,
2)do_read:对接于适配器adapter中的读函数,读取特定寄存器中的数值,
3)do_reset:对接于适配器adapter中的重置函数,重置特定寄存器中的数值。
通用行为语言模型针对上述接口函数还提供接口函数的索引指针。适配器adapter则定义接口函数的具体实现函数,并将其指向前述索引指针。例如,对于接口函数do_write,在前端仿真验证平台中要实现写操作需要使用get_reg_by_name函数以及寄存器名,那么适配器adapter中的实现函数则可以由寄存器名称转换和实现get_reg_by_name函数调用的程序构成。适配器adapter中还定义接口函数的具体信息,包括函数名、输入参数、输入参数类型、输出类型、函数描述等,如表2所示。
表2
针对上述寄存器的通用行为语言模型,本实施例还进一步提供适配器adapter,用于将通用行为语言模型转换为各个验证平台支持的寄存器行为,以在各个验证平台上进行寄存器功能测试。具体的,适配器adapter可以设置在各个验证平台上,也可以设置为一个单独装置与各个验证平台进行通信。设置在各验证平台上时可以针对各验证平台提供平台自身对应的适配器adapter。设置为一个单独的装置时,可以集成各个验证平台对应的适配器,这样一个装置可以适配多个验证平台。
基于上述通用行为语言模型和适配器,实现寄存器通用行为的复用,请参考图2,通用行为语言模型Generic Register Behavior Model可以通过API与适配器To-UVMadapter通信,通过适配器适配器To-UVM adapter将其行为转换为与前端仿真验证平台Simulation Platform适配的寄存器行为,以进行测试。类似的,通用行为语言模型也可以通过软件验证平台Software Platform、固件验证平台Emulation Platform等对应的适配器,进行寄存器行为适配,进而完成寄存器功能测试。
请参考图3,针对上述通用行为语言模型和适配器adapter,本实施对应提供一种寄存器验证方法,该方法包括:
S31、加载测试用例,所述测试用例中包含寄存器的通用行为语言模型,所述行为语言模型中包含接口函数及所述接口函数对应的索引指针;
S32、调用所述接口函数获得所述测试用例中所述通用行为语言模型对应的输入参数并传输至适配器;
S33、通过所述适配器获得验证平台中所述索引指针所指向的实现函数,并根据所述输入参数和所述实现函数在所述验证平台中进行寄存器功能测试。
具体实施过程中,S31加载的测试用例是采用C语言基于寄存器的通用行为语言模型编写的寄存器测试用例。测试用例中按照通用行为语言模型的规范携带寄存器通用行为所需的输入参数,如函数rwrite对应的地址address和写入数据data,详情可参考表1。
加载测试用例后,执行S32进行通用行为语言模型与适配器adapter之间的通信。例如,对于写操作,调用do_rwrite函数从rwrite函数中获取寄存器地址address和写入数据data,将寄存器地址address和写入数据data传输至adapter。再例如,对于读操作,调用do_rread函数从rread函数中获取读取地址,将读取地址传输至适配器adapter。其余通用行为,执行过程类似,在此不再赘述。
在S32之后,进一步执行S33,通过适配器根据接口函数的索引指针的指向,调用验证平台中的实现函数,并根据接收到的输入参数和实现函数在验证平台中进行寄存器功能测试。具体的,根据输入参数和实现函数在验证平台中进行寄存器功能测试时,通过实现函数获取与输入参数和通用行为语言模型对应的微指令,在验证平台中执行该微指令,以进行寄存器功能测试;或者,通过实现函数对输入参数进行转换,如数据类型转换、寄存器地址到寄存器名称的转换等,将转换后的输入参数输入寄存器操作函数,以进行寄存器功能测试。例如:对于前端仿真验证平台,平台中提供寄存器读函数rg.read和get_reg_by_name,那么可以通过实现函数do_rread将其输出地址address即转换后的输入参数输入rg.read和get_reg_by_name,由rg.read和get_reg_by_name在前端仿真验证平台中实现寄存器读操作并返回读数据data。
下面分别结合前端仿真验证平台、固件emulation验证平台和软件OpenGL验证平台为例,对适配器adapter的具体实施方式进行举例说明,但此方案并不局限于此三类平台。
首先,以前端仿真验证平台为例,说明adapter装置实现方式。前端仿真验证平台采用SystemVerilog语言编写的UVM验证方法学,而寄存器的通用行为语言模型则采用C语言编写实现,所以adapter装置需要利用SystemVerilog语言中数据类型映射DPI功能实现此跨语言函数调用和数据传输功能。请参考图4,展示了适配器adapter结构和其中的数据类型对应关系。以do_write为例,由于UVM方法学中uvm_reg_block类仅提供get_reg_by_name函数,所以adapter装置中C实现库利用寄存器相关数据结构,将寄存器地址值转换成其对应的寄存器名,并随写入数据一起,通过DPI函数,传递到SystemVerilog程序库一侧。SystemVerilog程序库,通过get_reg_by_name函数,获得寄存器的实例句柄,然后通过调用write函数,将数据写入对应寄存器中。
由于固件emulation验证平台和软件OpenGL验证平台均直接采用C语言编写,适配器adapter无需进行跨语言转换。以固件emulation验证平台C语言寄存器模型为例,适配器adapter需要把寄存器通用行为语言模型中的接口函数索引指向平台中的寄存器模型读写函数。图5展示了固件emulation验证平台对应的适配器adapter的结构。利用验证平台中的C语言寄存器模型,根据输入参数中的地址address,选择对应的寄存器struct实例指针,然后通过其对应的set函数即可触发固件emulation平台对应的功能。
与前述固件emulation验证平台相比,软件验证平台中的适配器adapter功能稍显复杂。针对不同软件平台(OpenGL平台或者CUDA平台),适配器adapter装置内部功能实现也会不同。这里以OpenGL平台为例,阐述软件验证平台中适配器adapter的实现方法。OpenGL软件验证平台实现寄存器操作需要两部分代码组成。其一为OpenGL编程语言,实现顶层OpenGL kernel生成并触发;其二为内核对应的微指令,这些微指令被包含于OpenGLkernel中。以kernel指令中寄存器访问微指令为例,图6展示了针对OpenGL软件验证平台的适配器adapter结构。针对输入参数中的地址address,首先需要将其转换为内核微指令集对应的寄存器符号,并根据寄存器操作行为,生成对应的微指令(即kernel source)。对于不同的寄存器操作行为,OpenGL指令保持不变,只是其kernel source中的内容不同。当前述代码指令准备完毕后,即可在软件OpenGL平台开始运行OpenGL指令,并通过kernel API将指令依次传递到寄存器设计中,以验证寄存器行为。
综上所述,通用寄存器的通用行为语言模型和适配器adapter装置,它们均可被编译成动态链接库,并加载到对应平台中(例如前端仿真平台使用的仿真器)。由此,寄存器测试用例可以实现从前端仿真到顶层软件测试之间的共享。利用寄存器C结构体和寄存器信息通用宏定义,可以构建出寄存器C数据库(如图7所示)。数据库reg_db存储了芯片设计中寄存器模型对应的数据信息。利用此数据库,可以构建出如图8所示的寄存器扫描测试用例。此测试用例即可被前述多平台共享。
基于同一发明构思,针对上述实施例提供的一种寄存器验证方法,本实施例还对应公开一种寄存器验证装置,请参考图9,该装置包括:
加载单元91,用于加载测试用例,所述测试用例中包含寄存器的通用行为语言模型,所述行为语言模型中包含接口函数及所述接口函数对应的索引指针;
调用单元92,用于调用所述接口函数获得所述测试用例中所述通用行为语言模型对应的输入参数并传输至适配器;
测试单元93,用于通过所述适配器调用获得验证平台中所述索引指针所指向的预设函数,并根据所述输入参数和所述预设函数在所述验证平台中进行寄存器功能测试。
作为一种可选的实施方式,所述通用行为语言模型包含寄存器的等待操作类和/或分支操作类。
作为一种可选的实施方式,所述通用行为语言模型还包含寄存器的读操作函数、写操作函数以及重置操作函数。
作为一种可选的实施方式,所述通用行为语言模型由C语言编写形成。
作为一种可选的实施方式,所述验证平台为前端仿真平台;所述测试单元93在所述通过所述适配器调用验证平台中所述索引指针所指向的预设函数之前还用于:
通过数据类型映射DPI函数将对所述索引指针和所述输入参数进行语言转换,获得为所述前端仿真平台可识别的索引指针和输入参数支持的编程语言。
作为一种可选的实施方式,所述测试单元93进行测试时具体用于:通过所述实现函数调用所述验证平台中的寄存器操作函数对所述输入参数进行转换,将转换后的所述输入参数输入所述寄存器操作函数,以进行寄存器功能测试;或者,通过所述实现函数获取与所述输入参数和所述通用行为语言模型对应的微指令,在所述验证平台中执行所述微指令,以进行寄存器功能测试。
上述实施例提供的各个单元的具体实施方式,与对应的实施方法相同,在此不再赘述。
此外,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
本公开实施例所提供的数据采集方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行上述方法的步骤,具体可参见上述方法实施例,在此不再赘述。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

Claims (14)

1.一种寄存器验证方法,包括:
加载测试用例,所述测试用例中包含寄存器的通用行为语言模型,所述行为语言模型中包含接口函数及所述接口函数对应的索引指针;
调用所述接口函数获得所述测试用例中所述通用行为语言模型对应的输入参数并传输至适配器;
通过所述适配器获得验证平台中所述索引指针所指向的预设函数,并根据所述输入参数和所述预设函数在所述验证平台中进行寄存器功能测试。
2.如权利要求1所述的方法,所述通用行为语言模型包含寄存器的等待操作类和/或分支操作类。
3.如权利要求2所述的方法,所述通用行为语言模型还包含寄存器的读操作函数、写操作函数以及重置操作函数。
4.如权利要求3所述的方法,所述通用行为语言模型由C语言编写形成。
5.如权利要求4所述的方法,所述验证平台为前端仿真平台;
在所述通过所述适配器调用验证平台中所述索引指针所指向的预设函数之前,所述方法还包括:
通过数据类型映射DPI函数对所述索引指针和所述输入参数进行语言转换,获得所述前端仿真平台可识别的索引指针和输入参数。
6.如权利要求1-5任一所述的方法,所述根据所述输入参数和所述实现函数在所述验证平台中进行寄存器功能测试,包括:
通过所述实现函数对所述输入参数进行转换,将转换后的所述输入参数输入所述寄存器操作函数,以进行寄存器功能测试;或者,
通过所述实现函数获取与所述输入参数和所述通用行为语言模型对应的微指令,在所述验证平台中执行所述微指令,以进行寄存器功能测试。
7.一种寄存器验证装置,包括:
加载单元,用于加载测试用例,所述测试用例中包含寄存器的通用行为语言模型,所述行为语言模型中包含接口函数及所述接口函数对应的索引指针;
调用单元,用于调用所述接口函数获得所述测试用例中所述通用行为语言模型对应的输入参数并传输至适配器;
测试单元,用于通过所述适配器获得验证平台中所述索引指针所指向的预设函数,并根据所述输入参数和所述预设函数在所述验证平台中进行寄存器功能测试。
8.如权利要求7所述的装置,所述通用行为语言模型包含寄存器的等待操作类和/或分支操作类。
9.如权利要求8所述的装置,所述通用行为语言模型还包含寄存器的读操作函数、写操作函数以及重置操作函数。
10.如权利要求9所述的装置,所述通用行为语言模型由C语言编写形成。
11.如权利要求10所述的装置,所述验证平台为前端仿真平台;
所述测试单元在所述通过所述适配器调用验证平台中所述索引指针所指向的预设函数之前,还用于:
通过数据类型映射DPI函数对所述索引指针和所述输入参数进行语言转换,获得所述前端仿真平台可识别的索引指针和输入参数。
12.如权利要求7-11任一所述的装置,所述测试单元用于:
通过所述实现函数对所述输入参数进行转换,将转换后的所述输入参数输入所述寄存器操作函数,以进行寄存器功能测试;或者,
通过所述实现函数获取与所述输入参数和所述通用行为语言模型对应的微指令,在所述验证平台中执行所述微指令,以进行寄存器功能测试。
13.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至6任一项所述的方法。
14.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序运行时控制所述存储介质所在电子设备执行权利要求1至6任一项所述的方法。
CN202210310178.0A 2022-03-28 2022-03-28 一种寄存器验证方法、装置、电子设备及计算机存储介质 Pending CN116860589A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210310178.0A CN116860589A (zh) 2022-03-28 2022-03-28 一种寄存器验证方法、装置、电子设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210310178.0A CN116860589A (zh) 2022-03-28 2022-03-28 一种寄存器验证方法、装置、电子设备及计算机存储介质

Publications (1)

Publication Number Publication Date
CN116860589A true CN116860589A (zh) 2023-10-10

Family

ID=88225453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210310178.0A Pending CN116860589A (zh) 2022-03-28 2022-03-28 一种寄存器验证方法、装置、电子设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN116860589A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796634A (zh) * 2014-10-17 2017-05-31 高通股份有限公司 用于硬件流控制的代码指针验证
JP2018156294A (ja) * 2017-03-16 2018-10-04 三菱電機株式会社 ソフトウェア検証装置およびソフトウェア検証プログラム
US20190065347A1 (en) * 2017-08-25 2019-02-28 Microsoft Technology Licensing, Llc Debugging program code at instruction level through emulation
US20200104507A1 (en) * 2018-10-01 2020-04-02 International Business Machines Corporation Cyber security testing for authorized services
CN113505066A (zh) * 2021-07-09 2021-10-15 合肥肇观电子科技有限公司 用于验证被测试模块的方法以及验证系统
US20210349815A1 (en) * 2020-05-11 2021-11-11 International Business Machines Corporation Automatically introducing register dependencies to tests
CN113835945A (zh) * 2021-09-29 2021-12-24 深圳大普微电子科技有限公司 芯片的测试方法、装置、设备及系统
CN114356680A (zh) * 2021-11-25 2022-04-15 北京爱芯科技有限公司 验证方法、装置及电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796634A (zh) * 2014-10-17 2017-05-31 高通股份有限公司 用于硬件流控制的代码指针验证
JP2018156294A (ja) * 2017-03-16 2018-10-04 三菱電機株式会社 ソフトウェア検証装置およびソフトウェア検証プログラム
US20190065347A1 (en) * 2017-08-25 2019-02-28 Microsoft Technology Licensing, Llc Debugging program code at instruction level through emulation
US20200104507A1 (en) * 2018-10-01 2020-04-02 International Business Machines Corporation Cyber security testing for authorized services
US20210349815A1 (en) * 2020-05-11 2021-11-11 International Business Machines Corporation Automatically introducing register dependencies to tests
CN113505066A (zh) * 2021-07-09 2021-10-15 合肥肇观电子科技有限公司 用于验证被测试模块的方法以及验证系统
CN113835945A (zh) * 2021-09-29 2021-12-24 深圳大普微电子科技有限公司 芯片的测试方法、装置、设备及系统
CN114356680A (zh) * 2021-11-25 2022-04-15 北京爱芯科技有限公司 验证方法、装置及电子设备

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
GUANWEN ZHONG: "1024-point pipeline FFT processor with pointer FIFOs based on FPGA", 《2011 IEEE/IFIP 19TH INTERNATIONAL CONFERENCE ON VLSI AND SYSTEM-ON-CHIP》, 17 November 2011 (2011-11-17), pages 1 - 6 *
佚名: "How to Write Test Cases for Registration Page", pages 1 - 9, Retrieved from the Internet <URL:《https://accelatest.com/how-to-write-test-cases-for-registration-page/》> *
佚名: "UVM实战 第七章总结 UVM中的寄存器模型", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/267129017 》, 11 May 2021 (2021-05-11), pages 1 - 10 *
张军: "基于UVM的高效SOC验证环境", 《科技通报》, 26 January 2013 (2013-01-26), pages 70 - 71 *
许政: "交换机网络控制接口设计验证技术研究", 《万方》, 15 March 2016 (2016-03-15), pages 1 - 67 *

Similar Documents

Publication Publication Date Title
US8666723B2 (en) System and methods for generating and managing a virtual device
US5854930A (en) System, method, and computer program product for script processing
US20150355933A1 (en) System and methods for generating and managing a virtual device
US8776024B2 (en) Software application fine-tuning method, system, and corresponding computer program product
CN112232000B (zh) 跨多个验证域的验证系统、验证方法、验证设备
CN103064721A (zh) 多种解释性编程语言间的第一类对象共享
CN115952758B (zh) 芯片验证方法、装置、电子设备及存储介质
US10970449B2 (en) Learning framework for software-hardware model generation and verification
CN114462338A (zh) 一种集成电路的验证方法、装置、计算机设备及存储介质
CN105653268A (zh) 规则引擎调试方法及系统
CN114970411A (zh) 一种仿真验证方法及系统
US9405652B2 (en) Regular expression support in instrumentation languages using kernel-mode executable code
CN112434478B (zh) 仿真逻辑系统设计的虚拟接口的方法及相关设备
US9064042B2 (en) Instrumenting computer program code by merging template and target code methods
CN111176926B (zh) 一种基于双口sram的ip核仿真系统及仿真方法
Di Natale et al. A Model-based approach for the synthesis of software to firmware adapters for use with automatically generated components
CN109271231B (zh) 测试物理硬件装置的方法和仿真物理硬件装置的系统
CN116860589A (zh) 一种寄存器验证方法、装置、电子设备及计算机存储介质
CN104216831B (zh) 一种基于Tcl的FPGA交互式仿真方法
US11651130B2 (en) Method, device, and storage medium for simulating a design
CN116414689A (zh) 一种基于反射机制的接口参数校验方法及系统
CN110737431B (zh) 软件开发方法、开发平台、终端设备及存储介质
CN110327626B (zh) 虚拟服务器创建方法及装置
EP3734491A1 (en) Method, apparatus, device, and medium for implementing simulator
CN114647568A (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