CN109117518A - 一种寄存器读写访问验证系统及方法 - Google Patents
一种寄存器读写访问验证系统及方法 Download PDFInfo
- Publication number
- CN109117518A CN109117518A CN201810807007.2A CN201810807007A CN109117518A CN 109117518 A CN109117518 A CN 109117518A CN 201810807007 A CN201810807007 A CN 201810807007A CN 109117518 A CN109117518 A CN 109117518A
- Authority
- CN
- China
- Prior art keywords
- register
- read
- write
- bit field
- properties
- 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
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]
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)
- Test And Diagnosis Of Digital Computers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明属于IC设计验证技术领域,特别是涉及一种寄存器读写访问验证系统及方法,通过寄存器模型构建模块构建DUT内部寄存器对应的寄存器模型;通过位域属性解析模块获取寄存器的各位域的读写属性,以及不同读写属性的位域的mask值;通过测试向量构建模块构建寄存器的测试向量和读写访问方式;通过UVM通用验证组件将测试向量驱动至DUT的寄存器配置总线的接口,并获取寄存器的读写值发送至自动读写对比模块;通过自动读写对比模块验证寄存器的读写值是否正确。该方式可以实现不同位域读写属性的寄存器快速读写访问验证,极大地降低了验证人员迭代回归的工作量,提高了验证的完备性和验证收敛的效率,并具有良好的可重用性和可扩展性。
Description
技术领域
本发明属于IC设计验证技术领域,特别是涉及一种寄存器读写访问验证系统及方法。
背景技术
工艺技术和体系结构技术的不断发展推动着芯片的集成度、设计复杂度以及设计规模的不断增长,随之而来的是芯片功能验证的难度也在不断提升。目前,芯片功能验证已占到整个芯片研发周期的60%-70%,现已成为制约集成电路设计发展的主要瓶颈。
大规模集成电路系统中通常集成有上万规模的寄存器,如Control寄存器、Status寄存器、Capability寄存器、计数寄存器等;且各寄存器内部往往具有多个不同的位域,各位域具有不同的读写访问类型,如RW、RO、WO、W1C、RC等。对于万级规模的包含不同读写访问类型位域的寄存器的读写访问验证,验证人员往往需要针对每个寄存器逐一编写测试向量,且需要读写相关日志或波形文件来人工判断寄存器的读写正确性,通常存在着测试用例构建繁琐、迭代回归速度慢等问题,导致验证人员工作量较大,验证效率较低。
目前,UVM(Universal Verification Methodology,通用验证方法学)代表了验证方法学的发展方向。UVM集成了寄存器解决方案RAL,并提供了丰富的系统函数来便于验证人员对系统中的寄存器进行配置和管理,如mirror(镜像操作)、write(写)、read(读)、get_mirrored_value(获取寄存器的镜像值)等。此外,RAL针对DUT内部仅包含RW类型位域的寄存器提供了测试向量自动生成、读写结果自动对比的功能函数,但其无法支持包含其他读写属性位域(如RO、WO、RC、W1C等)的寄存器验证的测试用例自动生成以及测试结果自动对比的实现,而对于这些寄存器仍需逐一编写测试向量并人工判断寄存器读写功能的正确性。
针对上述现有的寄存器读写访问的验证方式工作量较大,验证效率较低的问题,尚未提出有效的解决方案。
发明内容
针对现有技术中存在的问题,本发明提供一种寄存器读写访问验证系统及方法,以降低验证人员迭代回归的工作量,提高验证的完备性和验证收敛的效率。
为了实现上述目的,本发明采用以下的技术方案:
本发明提供了一种寄存器读写访问验证系统,该系统包括:
寄存器模型构建模块,用于构建DUT(Design under Test,待测设计)内部寄存器对应的寄存器模型;其中,所述DUT通常为待测系统的RTL(Register Transfer Level,寄存器传输级)设计代码;所述寄存器模型定义了DUT内部寄存器的相关信息,所述相关信息至少包括各位域的名称、位域的读写属性、位域的起始位置、位域的宽度、位域的复位值、寄存器的地址和寄存器的后门访问路径;
位域属性解析模块,用于根据所述寄存器模型,依次分层解析寄存器模型中定义的各个寄存器块(Reg_block)以及各个寄存器块中的各个寄存器(Reg),并根据各寄存器(Reg)的相关信息获取各个寄存器中各位域(Reg_field)的读写属性,以及不同读写属性的位域的mask值;
测试向量构建模块,用于根据所述寄存器各位域的不同读写属性,分别构建不同的测试向量和读写访问方式;
UVM通用验证组件,用于根据所述测试向量和读写访问方式,依次将测试向量按照一定的时序关系驱动至DUT的寄存器配置总线的接口,并监测DUT寄存器配置总线接口以获取寄存器的读写值;
自动读写对比模块,用于根据所述寄存器各位域的读写属性和所述mask值,执行DUT中寄存器的读写值与寄存器模型中寄存器的镜像值的对比,在各读写属性位域mask值的选择下判别寄存器读写结果的正确性,并生成判别结果。
可选地,所述位域属性解析模块包括:
信息解析单元,用于对所述寄存器模型的层次结构进行分层解析,获得所述寄存器模型定义的各个寄存器块,以及各个寄存器块中各个寄存器的相关信息;
信息提取单元,用于从所述寄存器的相关信息中提取所述寄存器各位域的读写属性,以及不同读写属性位域的mask值。
可选地,所述测试向量构建模块,还用于根据所述寄存器的不同位域读写属性,构建下述测试向量和读写访问方式的一种或者多种组合;
所述测试向量和读写访问方式包括:
(1)前门方式写全1;
(2)前门方式写全0;
(3)后门方式写全1;
(4)后门方式写全0;
(5)前门方式读取;
(6)后门方式读取。
可选地,所述自动读写对比模块包括:
判别单元,用于根据位域属性解析模块发送的所述寄存器各位域的读写属性,以及不同读写属性位域的mask值,依次判别所述寄存器中各个读写属性位域读写功能的正确性,生成判别结果;
Log文件生成单元,用于根据所述寄存器属性信息和所述判别结果,生成log文件。
可选地,所述自动读写对比模块还包括:
Log文件打印控制单元,用于接收外部的控制参数,根据所述控制参数确定待打印的log文件的冗余级别,打印与所述冗余级别相匹配内容的log文件。
可选地,所述UVM通用验证组件包括Sequence、Adapter、Sequencer、Driver和Monitor,上述所有组件均派生自UVM中的类;
所述UVM通用验证组件分别与所述DUT、所述测试向量构建模块以及所述自动读写对比模块相连接;
所述Sequence,用于根据所述测试向量和读写访问方式产生transaction;
所述Adapter,用于将寄存器模型通过Sequence产生的一个uvm_reg_bus_op的变量转换成与所述Sequencer相匹配的形式;
所述Sequencer,用于检测仲裁队列中是否有sequence发送transaction的请求,以及检测driver是否申请transaction;
所述Driver,用于将所述transaction按照设定的时序驱动至所述DUT的寄存器配置总线接口;
所述Monitor,用于监测所述DUT的寄存器配置总线,并获取所述寄存器读写值发送至所述自动读写对比模块。
本发明还提供了一种寄存器读写访问验证方法,该方法应用于上述的寄存器读写访问验证系统;该方法包括:
步骤一,所述寄存器模型构建模块构建DUT内部寄存器对应的寄存器模型;其中,所述DUT为待测系统的RTL设计代码;所述寄存器模型定义了DUT内部寄存器的相关信息,所述相关信息至少包括各位域的名称、位域的读写属性、位域的起始位置、位域的宽度、位域的复位值、寄存器的地址和寄存器的后门访问路径;
步骤二,所述位域属性解析模块根据所述寄存器模型,依次分层解析寄存器模型中定义的各个寄存器块以及各个寄存器块中的各个寄存器,并根据各寄存器的相关信息获取各个寄存器中各位域的读写属性,以及不同读写属性的位域的mask值;
步骤三,所述测试向量构建模块根据所述寄存器各位域的不同读写属性,分别构建不同的测试向量和读写访问方式;
步骤四,所述UVM通用验证组件根据所述测试向量和读写访问方式,依次将测试向量按照一定的时序关系驱动至DUT的寄存器配置总线的接口,并监测DUT寄存器配置总线接口以获取寄存器的读写值;
步骤五,所述自动读写对比模块根据所述寄存器各位域的读写属性和所述mask值,执行DUT中寄存器的读写值与寄存器模型中寄存器的镜像值的对比,在各读写属性位域mask值的选择下判别寄存器读写结果的正确性,并生成判别结果。
可选地,所述步骤二包括:
信息解析单元对所述寄存器模型的层次结构进行分层解析,获得所述寄存器模型定义的各个寄存器块,以及各个寄存器块中各个寄存器的相关信息;
信息提取单元从所述寄存器的相关信息中提取所述寄存器各位域的读写属性,以及不同读写属性位域的mask值。
可选地,所述步骤五包括:
判别单元根据位域属性解析模块发送的所述寄存器各位域的读写属性,以及不同读写属性位域的mask值,依次判别所述寄存器中各个读写属性位域读写功能的正确性,生成判别结果;
Log文件生成单元根据所述寄存器属性信息和所述判别结果,生成log文件。
可选地,所述步骤五还包括:
Log文件打印控制单元接收外部的控制参数,根据所述控制参数确定待打印的log文件的冗余级别,打印与所述冗余级别相匹配内容的log文件。
与现有技术相比,本发明具有以下优点:
本发明提供的一种寄存器读写访问验证系统及方法,通过寄存器模型构建模块构建DUT内部寄存器对应的寄存器模型;通过位域属性解析模块获取寄存器的各位域的读写属性,以及不同读写属性的位域的mask值;通过测试向量构建模块构建寄存器的测试向量和读写访问方式;通过UVM通用验证组件将测试向量驱动至DUT的寄存器配置总线的接口,并获取寄存器的读写值发送至自动读写对比模块;通过自动读写对比模块验证寄存器的读写值是否正确。该方式可以实现不同位域读写属性的寄存器快速读写访问验证,并兼具代码覆盖率统计的验证要求,极大地降低了验证人员迭代回归的工作量,且提高了验证的完备性和验证收敛的效率。
在通过上述方式进行寄存器读写访问验证时,验证人员仅需修改相应的寄存器模型即可方便地扩展至其他的系统验证场景中,具有良好的可重用性和可扩展性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种寄存器读写访问验证系统的结构框图;
图2为本发明实施例一提供的一种寄存器模型的结构框图;
图3为本发明实施例一提供的一种测试向量构建模块的工作原理示意图;
图4为本发明实施例二提供的一种寄存器读写访问验证系统的结构框图;
图5为本发明实施例二提供的一种位域属性解析模块的工作原理示意图;
图6为本发明实施例二提供的一种自动读写对比模块的工作原理示意图;
图7为本发明实施例二提供的一种寄存器读写访问验证系统的信号流向示意图;
图8为本发明实施例三提供的一种寄存器读写访问验证方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到现有的寄存器读写访问的验证方式工作量较大,验证效率较低的问题,本发明实施例提供了一种寄存器读写访问验证系统及方法,下面结合附图和具体实施例对本发明进行详细说明。
实施例一
如图1所示,图1示出了本发明实施例提供的一种寄存器读写访问验证系统的结构框图,该系统包括寄存器模型构建模块10、位域属性解析模块11、测试向量构建模块12、UVM通用验证组件13和自动读写对比模块14。
寄存器模型构建模块10,用于构建DUT内部寄存器对应的寄存器模型;其中,所述DUT通常为待测系统的RTL设计代码;所述寄存器模型定义了DUT内部寄存器的相关信息,所述相关信息至少包括各位域的名称、位域的读写属性、位域的起始位置、位域的宽度、位域的复位值、寄存器的地址和寄存器的后门访问路径。
该寄存器模型构建模块10可以用于构建DUT内部所有寄存器的寄存器模型,具体的说,可以构建SoC(System on Chip,系统级芯片)系统内部所有寄存器的功能模型;该寄存器模型构建模块通过重新定义验证系统与DUT的寄存器接口,可极大地方便验证人员更好地组织和配置寄存器,并为后续包含不同读写属性位域的寄存器读写结果的自动对比实现提供基础。
如图2所示的一种寄存器模型的结构框图;通常,一个系统级DUT的寄存器模型由多个寄存器块Reg block组成,例如,Reg block1、Reg block2、Reg block3、…、Regblockx;每个Reg block中包含多个寄存器,例如,Reg1、Reg2、Reg3、…、Regk;此外,每个Reg根据系统设计需求又可能包含多个寄存器位域reg_field,例如,reg_field0、reg_field1、…、reg_fieldn,各位域reg_field可能具有不同的读写属性。
位域属性解析模块11,用于根据所述寄存器模型,依次分层解析寄存器模型中定义的各个寄存器块以及各个寄存器块中的各个寄存器,并根据各寄存器的相关信息获取各个寄存器中各位域的读写属性,以及不同读写属性的位域的mask值。
测试向量构建模块12,用于根据所述寄存器各位域的不同读写属性,分别构建不同的测试向量和读写访问方式。
UVM寄存器模型支持前门访问(FRONTDOOR)和后门访问(BACKDOOR)两种读写访问方式。前门访问即通过DUT的寄存器配置总线对寄存器进行读写操作;后门访问即通过对DUT进行层次化引用,利用寄存器模型中各寄存器的后门访问路径对寄存器进行读写操作。
具体地,测试向量构建模块接收位域属性解析模块提供的待测寄存器的读写属性以及mask值,并根据寄存器的不同位域读写属性构建不同的测试向量以及读写访问方式;同时,上述读写属性和mask值还输入至下述自动读写对比模块,用于判断各寄存器中不同读写属性位域的读写值在不同测试向量下是否符合预期值。
进一步地,测试向量构建模块还用于根据所述寄存器的不同位域读写属性,构建下述测试向量和读写访问方式的一种或者多种组合;所述测试向量和读写访问方式包括:
(1)前门方式写全1;
(2)前门方式写全0;
(3)后门方式写全1;
(4)后门方式写全0;
(5)前门方式读取;
(6)后门方式读取。
在实际实现时,上述读写属性,也可以称为位域读写访问类型,常见的寄存器位域读写属性有RW、RO、WO、W1C和RC等;针对上述不同的位域读写属性的测试向量和读写访问方式依次列举如下:
(1)RW读写属性位域:采用前门方式写全1、后门方式读取并比较来验证RW位域的“写”功能;采用后门方式写全0、前门方式读取并比较来验证RW位域的“读”功能。
(2)RO读写属性位域:采用后门方式写全1、前门方式读取并比较来验证RO位域的“读”功能;采用后门方式写全0、前门方式读取并比较来验证RO位域的“读”功能;采用前门方式写全1、后门方式读取并比较来验证RO位域的“不可写”。
(3)WO读写属性位域:采用前门方式写全1、后门方式读取并比较来验证WO位域的“写”功能;采用前门方式写全0、后门方式读取并比较来验证WO位域的“写”功能;采用后门方式写全1、前门方式读取并比较来验证WO位域的“不可读”。
(4)W1C读写属性位域:采用后门方式写全1、前门方式读取并比较来验证WIC位域的“读”功能;采用后门方式写全1、前门方式写全0、后门读取并比较来验证WIC位域的“不可写0”功能;采用后门方式写全1、前门方式写全1、后门读取并比较来验证WIC位域的“写1清0”功能。
(5)RC读写属性位域:采用后门方式写全0、前门方式写全1、后门方式读取并比较来验证RC位域的“不可写”;采用后门方式写全1、前门方式读取并比较来验证RC位域的“读”功能;再次以后门方式读取并比较来验证RC位域的“读清”功能。
通过构建上述几种测试向量和读写访问方式的不同组合,可以满足不同读写属性位域的验证需求。
此外,验证人员在实际验证过程中也可以基于上述原则构建其他位域读写属性寄存器的相应测试向量和读写访问方式。
如图3所示的一种测试向量构建模块的工作原理示意图;模块首先接收各种寄存器位域读写属性,例如,RW、RO、WO、RC和W1C等;当寄存器中包含多种读写属性位域时,依次针对不同的位域读写属性构建不同的测试向量和读写访问方式。
UVM通用验证组件13,用于根据所述测试向量和读写访问方式,依次将测试向量按照一定的时序关系驱动至DUT的寄存器配置总线的接口,并监测DUT寄存器配置总线接口以获取寄存器的读写值,并将该读写值发送至自动读写对比模块。
UVM通用验证组件用于将测试向量驱动至DUT的寄存器配置总线(当采用前门访问方式时),并监测寄存器的读写值输出给自动读写对比模块;自动读写对比模块用于根据读写属性和mask值,验证寄存器不同读写属性位域的读写值的正确性。
自动读写对比模块14,用于根据所述寄存器各位域的读写属性和所述mask值,执行DUT中寄存器的读写值与寄存器模型中寄存器的镜像值的对比,在各读写属性位域mask值的选择下判别寄存器读写结果的正确性,并生成判别结果。
具体地,自动读写对比模块根据寄存器各位域读写属性以及对应的mask值,验证寄存器的读写值是否正确。当寄存器中包含多种读写属性位域时,自动读写对比模块需要依次判别各位域读写属性下相应位域读写值的正确性。
本发明实施例提供的一种寄存器读写访问验证系统,通过寄存器模型构建模块构建DUT内部寄存器对应的寄存器模型;通过位域属性解析模块获取寄存器的各位域的读写属性,以及不同读写属性的位域的mask值;通过测试向量构建模块构建寄存器的测试向量和读写访问方式;通过UVM通用验证组件将测试向量驱动至DUT的寄存器配置总线的接口,并获取寄存器的读写值发送至自动读写对比模块;通过自动读写对比模块验证寄存器的读写值是否正确。该方式可以实现不同位域读写属性的寄存器快速读写访问验证,并兼具代码覆盖率统计的验证要求,极大地降低了验证人员迭代回归的工作量,且提高了验证的完备性和验证收敛的效率。
在通过上述方式进行寄存器读写访问验证时,验证人员仅需修改相应的寄存器模型即可方便地扩展至其他的系统验证场景中,具有良好的可重用性和可扩展性。
实施例二
如图4所示,图4示出了本发明另一个实施例提供的一种寄存器读写访问验证系统的结构框图;该系统在实施例一中提供的寄存器读写访问验证系统的基础上实现;该系统包括:寄存器模型构建模块10、位域属性解析模块11、测试向量构建模块12、UVM通用验证组件13和自动读写对比模块14。
进一步地,所述位域属性解析模块11包括:
信息解析单元111,用于对所述寄存器模型的层次结构进行分层解析,获得所述寄存器模型定义的各个寄存器块(Reg_block),以及各个寄存器块中各个寄存器(Reg)的相关信息。
信息提取单元112,用于从所述寄存器(Reg)的相关信息中提取所述寄存器各位域(Reg_field)的读写属性,以及不同读写属性位域的mask值。
具体地,信息解析单元接收来自寄存器模型构建模块的寄存器模型,根据寄存器模型的层次结构分层解析出寄存器模型中的各个寄存器块block以及各寄存器块block中寄存器的相关信息,例如寄存器名称、读写属性、起始位置、位域宽度、复位值、寄存器的地址、寄存器的后门访问路径等;信息提取单元提取出寄存器各位域的读写属性以及不同读写属性位域的mask值,以供后续测试向量构建模块和自动读写对比模块构建高质量的测试向量和执行不同读写属性位域读写结果的自动对比。
如图5所示的一种位域属性解析模块的工作原理示意图;寄存器模型经block解析(相当于上述信息解析单元)后,得到寄存器的各个块,以及各个块对应的寄存器属性信息;再经register解析(相当于上述信息提取单元)后,得到寄存器各个位域的读写属性,以及不同读写属性位域的mask值,例如RW及其对应的mask值、RO及其对应的mask值、WO及其对应的mask值、RC及其对应的mask值和W1C及其对应的mask值。
进一步地,所述自动读写对比模块包括:
判别单元141,用于根据位域属性解析模块发送的所述寄存器各位域的读写属性,以及不同读写属性位域的mask值,依次判别所述寄存器中各个读写属性位域读写功能的正确性,生成判别结果。
Log文件生成单元142,用于根据所述寄存器属性信息和所述判别结果,生成log文件。
Log文件打印控制单元143,用于接收外部的控制参数,根据控制参数确定待打印的log文件的冗余级别,打印与冗余级别相匹配内容的log文件。
具体地,自动读写对比模块中的判别单元接收位域属性解析模块提供的寄存器各位域的读写属性、不同读写属性位域的mask值,以及DUT内部相应寄存器的读写值;根据寄存器各位域的读写属性和mask值,分别依次判别寄存器各位域中读写值在不同测试向量和读写访问方式下的正确性;Log文件生成单元根据寄存器属性信息将判别结果记录在log文件,供验证人员查看确认;Log文件打印控制单元可通过外部的参数进行控制,并根据不同的打印级别控制log文件中信息报告的冗余级别。
如图6所示的一种自动读写对比模块的工作原理示意图;经位域属性解析模块register解析(相当于上述信息提取单元)后,得到寄存器各个位域的读写属性,以及不同读写属性位域的mask值(例如,RW及其对应的mask值、RO及其对应的mask值、WO及其对应的mask值、RC及其对应的mask值和W1C及其对应的mask值)。在不同的位域读写属性下,比较器comparison将针对不同测试向量和读写访问方式下相应位域的读取值(也可以称为实际值Actual Value)和寄存器模型中相应寄存器位域的镜像值(Mirrored Value)进行比较、判别,最终输出log文件。
如图7所示的一种寄存器读写访问验证系统的信号流向示意图;图7中,箭头的方向代表了各个模块、部分之间的信号流向;上述UVM通用验证组件包括:测试序列Sequence131、接口Adapter132、序列发生器Sequencer133、驱动器Driver134和监测仪Monitor135;上述所有组件均派生自UVM中的类(class)。
Sequence131,用于根据测试向量和读写访问方式产生transaction,即产生激励。
Adapter132,用于将寄存器模型通过Sequence产生的一个uvm_reg_bus_op的变量转换成Sequencer可以接受的形式。
Sequencer133,用于检测仲裁队列中是否有某个sequence发送transaction的请求,以及检测driver是否申请transaction。
Driver134,用于将transaction按照一定的时序驱动至DUT的寄存器配置总线接口。
Monitor135,用于监测DUT的寄存器配置总线,并获取寄存器读写值发送至自动读写对比模块。
可以理解的是,上述系统还包括测试中的DUT70。
实施例三
下面对本发明实施例提供的一种寄存器读写访问验证方法进行介绍,下文描述的寄存器读写访问验证方法与上文描述的寄存器读写访问验证系统可相互对应参照。
如图8所示,图8示出了本发明实施例的一种寄存器读写访问验证方法的流程图,该方法应用于实施例一和实施例二所述的寄存器读写访问验证系统,该方法包括如下步骤:
步骤S801,寄存器模型构建模块构建DUT内部寄存器对应的寄存器模型;其中,所述DUT为待测系统的RTL设计代码;所述寄存器模型定义了DUT内部寄存器的相关信息,所述相关信息至少包括各位域的名称、位域的读写属性、位域的起始位置、位域的宽度、位域的复位值、寄存器的地址和寄存器的后门访问路径。
步骤S802,位域属性解析模块根据所述寄存器模型,依次分层解析寄存器模型中定义的各个寄存器块以及各个寄存器块中的各个寄存器,并根据各寄存器的相关信息获取各个寄存器中各位域的读写属性,以及不同读写属性的位域的mask值。
步骤S803,测试向量构建模块根据所述寄存器各位域的不同读写属性,分别构建不同的测试向量和读写访问方式。
步骤S804,UVM通用验证组件根据所述测试向量和读写访问方式,依次将测试向量按照一定的时序关系驱动至DUT的寄存器配置总线的接口,并监测DUT寄存器配置总线接口以获取寄存器的读写值。
步骤S805,自动读写对比模块根据所述寄存器各位域的读写属性和所述mask值,执行DUT中寄存器的读写值与寄存器模型中寄存器的镜像值的对比,在各读写属性位域mask值的选择下判别寄存器读写结果的正确性,并生成判别结果。
进一步地,所述步骤S802包括以下步骤:
信息解析单元对所述寄存器模型的层次结构进行分层解析,获得所述寄存器模型定义的各个寄存器块,以及各个寄存器块中各个寄存器的相关信息。
信息提取单元从所述寄存器的相关信息中提取所述寄存器各位域的读写属性,以及不同读写属性位域的mask值。
进一步地,所述步骤S805包括以下步骤:
判别单元根据位域属性解析模块发送的所述寄存器各位域的读写属性,以及不同读写属性位域的mask值,依次判别所述寄存器中各个读写属性位域读写功能的正确性,生成判别结果。
Log文件生成单元根据所述寄存器属性信息和所述判别结果,生成log文件。
Log文件打印控制单元接收外部的控制参数,根据所述控制参数确定待打印的log文件的冗余级别,打印与所述冗余级别相匹配内容的log文件。
本发明实施例提供的寄存器读写访问验证方法,与上述实施例提供的寄存器读写访问验证系统具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例提供的寄存器读写访问验证系统及方法,可以解决系统级寄存器读写访问验证时测试用例构建繁琐、难以支持不同读写属性位域的自动读写对比、迭代回归速度较慢等问题;本发明实施例提供的寄存器读写访问验证系统,基于UVM验证方法学,在系统级UVM验证系统内部集成寄存器模型构建模块、位域属性解析模块、测试向量构建模块、自动读写对比模块等四个功能模块来实现系统级DUT内部寄存器及其位域读写属性的自动提取、测试向量的自动构建、读写结果的自动比对等功能。其中,寄存器模型构建模块用于构建系统内部所有寄存器的功能模型,如寄存器各位域的名称、位域的读写属性、位域的起始位置、位域的宽度、位域的复位值、寄存器的地址、寄存器后门访问路径等;位域属性解析模块依次分层解析寄存器模型中定义的各个寄存器的相关信息,并获得寄存器中各位域的读写属性以及不同读写属性的位域的mask值;测试向量构建模块用于根据寄存器的不同位域读写属性分别构建不同的测试向量和读写访问方式;自动读写对比模块用于实时对比不同位域发包方式下DUT内部各寄存器中不同位域值与寄存器模型中镜像值的对比结果。
本发明实施例提供的寄存器读写访问验证系统及方法适用于不同位域类型、兼具代码覆盖率要求的寄存器快速读写访问验证,可以极大地降低验证人员迭代回归的工作量、提高验证的效率。同时,兼具良好的重用性和扩展性,基于该方法仅需修改相应的寄存器模型即可方便地将其扩展至其他的系统验证场景中。
与现有技术相比,本发明实施例提供的寄存器读写访问验证系统及方法,优点在于:(1)位域属性解析模块可根据寄存器模型,依次分层解析寄存器模型中定义的各个寄存器的相关信息,并获得各个寄存器中各位域的读写属性以及不同读写属性的位域的mask值。(2)测试向量构建模块用于根据寄存器中各位域的不同读写属性分别构建不同的测试向量和读写访问方式。(3)自动读写对比模块支持包含不同读写属性位域寄存器的自动读写对比,使得验证人员脱离波形跟踪即可方便地定位寄存器读写访问的正确性。(4)在执行寄存器自动读写访问验证时,将同时满足寄存器验证代码覆盖率统计的相关要求,提高验证收敛的速度。(5)具有一定的重用性和扩展性,通过修改系统内部的寄存器模型,可以方便地将其扩展至其他的系统验证场景中。
需要说明的是,在本发明所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的地。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种寄存器读写访问验证系统,其特征在于,该系统包括:
寄存器模型构建模块,用于构建DUT内部寄存器对应的寄存器模型;其中,所述DUT为待测系统的RTL设计代码;所述寄存器模型定义了DUT内部寄存器的相关信息,所述相关信息至少包括各位域的名称、位域的读写属性、位域的起始位置、位域的宽度、位域的复位值、寄存器的地址和寄存器的后门访问路径;
位域属性解析模块,用于根据所述寄存器模型,依次分层解析寄存器模型中定义的各个寄存器块以及各个寄存器块中的各个寄存器,并根据各寄存器的相关信息获取各个寄存器中各位域的读写属性,以及不同读写属性的位域的mask值;
测试向量构建模块,用于根据所述寄存器各位域的不同读写属性,分别构建不同的测试向量和读写访问方式;
UVM通用验证组件,用于根据所述测试向量和读写访问方式,依次将测试向量按照一定的时序关系驱动至DUT的寄存器配置总线的接口,并监测DUT寄存器配置总线接口以获取寄存器的读写值;
自动读写对比模块,用于根据所述寄存器各位域的读写属性和所述mask值,执行DUT中寄存器的读写值与寄存器模型中寄存器的镜像值的对比,在各读写属性位域mask值的选择下判别寄存器读写结果的正确性,并生成判别结果。
2.根据权利要求1所述的寄存器读写访问验证系统,其特征在于,所述位域属性解析模块包括:
信息解析单元,用于对所述寄存器模型的层次结构进行分层解析,获得所述寄存器模型定义的各个寄存器块,以及各个寄存器块中各个寄存器的相关信息;
信息提取单元,用于从所述寄存器的相关信息中提取所述寄存器各位域的读写属性,以及不同读写属性位域的mask值。
3.根据权利要求1所述的寄存器读写访问验证系统,其特征在于,所述测试向量构建模块,还用于根据所述寄存器的不同位域读写属性,构建下述测试向量和读写访问方式的一种或者多种组合;
所述测试向量和读写访问方式包括:
(1)前门方式写全1;
(2)前门方式写全0;
(3)后门方式写全1;
(4)后门方式写全0;
(5)前门方式读取;
(6)后门方式读取。
4.根据权利要求1所述的寄存器读写访问验证系统,其特征在于,所述自动读写对比模块包括:
判别单元,用于根据位域属性解析模块发送的所述寄存器各位域的读写属性,以及不同读写属性位域的mask值,依次判别所述寄存器中各个读写属性位域读写功能的正确性,生成判别结果;
Log文件生成单元,用于根据所述寄存器属性信息和所述判别结果,生成log文件。
5.根据权利要求4所述的寄存器读写访问验证系统,其特征在于,所述自动读写对比模块还包括:
Log文件打印控制单元,用于接收外部的控制参数,根据所述控制参数确定待打印的log文件的冗余级别,打印与所述冗余级别相匹配内容的log文件。
6.根据权利要求1所述的寄存器读写访问验证系统,其特征在于,所述UVM通用验证组件包括Sequence、Adapter、Sequencer、Driver和Monitor,上述所有组件均派生自UVM中的类;
所述UVM通用验证组件分别与所述DUT、所述测试向量构建模块以及所述自动读写对比模块相连接;
所述Sequence,用于根据所述测试向量和读写访问方式产生transaction;
所述Adapter,用于将寄存器模型通过Sequence产生的一个uvm_reg_bus_op的变量转换成与所述Sequencer相匹配的形式;
所述Sequencer,用于检测仲裁队列中是否有sequence发送transaction的请求,以及检测driver是否申请transaction;
所述Driver,用于将所述transaction按照设定的时序驱动至所述DUT的寄存器配置总线接口;
所述Monitor,用于监测所述DUT的寄存器配置总线,并获取所述寄存器读写值发送至所述自动读写对比模块。
7.一种寄存器读写访问验证方法,其特征在于,该方法应用于权利要求1至6任一项所述的寄存器读写访问验证系统;该方法包括:
步骤一,所述寄存器模型构建模块构建DUT内部寄存器对应的寄存器模型;其中,所述DUT为待测系统的RTL设计代码;所述寄存器模型定义了DUT内部寄存器的相关信息,所述相关信息至少包括各位域的名称、位域的读写属性、位域的起始位置、位域的宽度、位域的复位值以及寄存器的地址和寄存器的后门访问路径;
步骤二,所述位域属性解析模块根据所述寄存器模型,依次分层解析寄存器模型中定义的各个寄存器块以及各个寄存器块中的各个寄存器,并根据各寄存器的相关信息获取各个寄存器中各位域的读写属性,以及不同读写属性的位域的mask值;
步骤三,所述测试向量构建模块根据所述寄存器各位域的不同读写属性,分别构建不同的测试向量和读写访问方式;
步骤四,所述UVM通用验证组件根据所述测试向量和读写访问方式,依次将测试向量按照一定的时序关系驱动至DUT的寄存器配置总线的接口,并监测DUT寄存器配置总线接口以获取寄存器的读写值;
步骤五,所述自动读写对比模块根据所述寄存器各位域的读写属性和所述mask值,执行DUT中寄存器的读写值与寄存器模型中寄存器的镜像值的对比,在各读写属性位域mask值的选择下判别寄存器读写结果的正确性,并生成判别结果。
8.根据权利要求7所述的寄存器读写访问验证方法,其特征在于,所述步骤二包括:
信息解析单元对所述寄存器模型的层次结构进行分层解析,获得所述寄存器模型定义的各个寄存器块,以及各个寄存器块中各个寄存器的相关信息;
信息提取单元从所述寄存器的相关信息中提取所述寄存器各位域的读写属性,以及不同读写属性位域的mask值。
9.根据权利要求7所述的寄存器读写访问验证方法,其特征在于,所述步骤五包括:
判别单元根据位域属性解析模块发送的所述寄存器各位域的读写属性,以及不同读写属性位域的mask值,依次判别所述寄存器中各个读写属性位域读写功能的正确性,生成判别结果;
Log文件生成单元根据所述寄存器属性信息和所述判别结果,生成log文件。
10.根据权利要求9所述的寄存器读写访问验证方法,其特征在于,所述步骤五还包括:
Log文件打印控制单元接收外部的控制参数,根据所述控制参数确定待打印的log文件的冗余级别,打印与所述冗余级别相匹配内容的log文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810807007.2A CN109117518B (zh) | 2018-07-21 | 2018-07-21 | 一种寄存器读写访问验证系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810807007.2A CN109117518B (zh) | 2018-07-21 | 2018-07-21 | 一种寄存器读写访问验证系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109117518A true CN109117518A (zh) | 2019-01-01 |
CN109117518B CN109117518B (zh) | 2022-09-20 |
Family
ID=64863287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810807007.2A Active CN109117518B (zh) | 2018-07-21 | 2018-07-21 | 一种寄存器读写访问验证系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109117518B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918256A (zh) * | 2019-03-11 | 2019-06-21 | 中电海康无锡科技有限公司 | 一种寄存器测试方法及系统 |
CN111832237A (zh) * | 2020-07-17 | 2020-10-27 | 北京昂瑞微电子技术有限公司 | 一种知识产权核验证方法及系统 |
CN112131147A (zh) * | 2020-09-21 | 2020-12-25 | 成都海光微电子技术有限公司 | 一种控制器验证方法、装置、系统、电子设备及存储介质 |
CN113515485A (zh) * | 2021-07-12 | 2021-10-19 | 合肥芯荣微电子有限公司 | 一种SoC芯片控制寄存器模块RTL代码自动生成方法 |
CN113961419A (zh) * | 2021-09-24 | 2022-01-21 | 北京百度网讯科技有限公司 | 存储器验证方法、装置、电子设备及存储介质 |
CN114841119A (zh) * | 2022-05-11 | 2022-08-02 | 杭州云合智网技术有限公司 | 多用户模式下的寄存器建模方法、装置、设备及介质 |
CN115081366A (zh) * | 2022-06-13 | 2022-09-20 | 杭州云合智网技术有限公司 | 寄存器突发访问的建模方法 |
CN115934166A (zh) * | 2022-11-08 | 2023-04-07 | 济南新语软件科技有限公司 | 一种基于可动态构建寄存器的高效操作方法及系统 |
CN116627496A (zh) * | 2023-03-08 | 2023-08-22 | 南京金阵微电子技术有限公司 | 基于uvm的寄存器模型构建、验证方法、系统与电子设备 |
CN117709255A (zh) * | 2024-02-04 | 2024-03-15 | 北京燧原智能科技有限公司 | 间接访问寄存器的测试方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402430A (zh) * | 2010-09-14 | 2012-04-04 | 无锡中星微电子有限公司 | 一种利用脚本生成随机测试例方法和系统 |
CN103150228A (zh) * | 2013-02-22 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高速缓冲存储器的可综合伪随机验证方法及装置 |
CN105446844A (zh) * | 2014-09-01 | 2016-03-30 | 上海华虹集成电路有限责任公司 | 基于uvm验证方法学的只读寄存器验证测试平台及验证方法 |
WO2016197711A1 (zh) * | 2015-06-09 | 2016-12-15 | 中兴通讯股份有限公司 | 一种配置寄存器的方法和装置 |
-
2018
- 2018-07-21 CN CN201810807007.2A patent/CN109117518B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402430A (zh) * | 2010-09-14 | 2012-04-04 | 无锡中星微电子有限公司 | 一种利用脚本生成随机测试例方法和系统 |
CN103150228A (zh) * | 2013-02-22 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高速缓冲存储器的可综合伪随机验证方法及装置 |
CN105446844A (zh) * | 2014-09-01 | 2016-03-30 | 上海华虹集成电路有限责任公司 | 基于uvm验证方法学的只读寄存器验证测试平台及验证方法 |
WO2016197711A1 (zh) * | 2015-06-09 | 2016-12-15 | 中兴通讯股份有限公司 | 一种配置寄存器的方法和装置 |
Non-Patent Citations (1)
Title |
---|
龚艳丽等: "基于EraSoC的模块级验证平台的设计", 《微电子学与计算机》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918256A (zh) * | 2019-03-11 | 2019-06-21 | 中电海康无锡科技有限公司 | 一种寄存器测试方法及系统 |
CN111832237A (zh) * | 2020-07-17 | 2020-10-27 | 北京昂瑞微电子技术有限公司 | 一种知识产权核验证方法及系统 |
CN112131147A (zh) * | 2020-09-21 | 2020-12-25 | 成都海光微电子技术有限公司 | 一种控制器验证方法、装置、系统、电子设备及存储介质 |
CN113515485B (zh) * | 2021-07-12 | 2024-04-02 | 合肥芯荣微电子有限公司 | 一种SoC芯片控制寄存器模块RTL代码自动生成方法 |
CN113515485A (zh) * | 2021-07-12 | 2021-10-19 | 合肥芯荣微电子有限公司 | 一种SoC芯片控制寄存器模块RTL代码自动生成方法 |
CN113961419A (zh) * | 2021-09-24 | 2022-01-21 | 北京百度网讯科技有限公司 | 存储器验证方法、装置、电子设备及存储介质 |
CN114841119A (zh) * | 2022-05-11 | 2022-08-02 | 杭州云合智网技术有限公司 | 多用户模式下的寄存器建模方法、装置、设备及介质 |
CN114841119B (zh) * | 2022-05-11 | 2024-04-12 | 云合智网(上海)技术有限公司 | 多用户模式下的寄存器建模方法、装置、设备及介质 |
CN115081366A (zh) * | 2022-06-13 | 2022-09-20 | 杭州云合智网技术有限公司 | 寄存器突发访问的建模方法 |
CN115081366B (zh) * | 2022-06-13 | 2024-04-05 | 云合智网(上海)技术有限公司 | 寄存器突发访问的建模方法 |
CN115934166A (zh) * | 2022-11-08 | 2023-04-07 | 济南新语软件科技有限公司 | 一种基于可动态构建寄存器的高效操作方法及系统 |
CN116627496B (zh) * | 2023-03-08 | 2023-12-29 | 南京金阵微电子技术有限公司 | 基于uvm的寄存器模型构建、验证方法、系统与电子设备 |
CN116627496A (zh) * | 2023-03-08 | 2023-08-22 | 南京金阵微电子技术有限公司 | 基于uvm的寄存器模型构建、验证方法、系统与电子设备 |
CN117709255A (zh) * | 2024-02-04 | 2024-03-15 | 北京燧原智能科技有限公司 | 间接访问寄存器的测试方法、装置、设备及介质 |
CN117709255B (zh) * | 2024-02-04 | 2024-04-30 | 北京燧原智能科技有限公司 | 间接访问寄存器的测试方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109117518B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117518A (zh) | 一种寄存器读写访问验证系统及方法 | |
US5650938A (en) | Method and apparatus for verifying asynchronous circuits using static timing analysis and dynamic functional simulation | |
CN102542110B (zh) | 一种应用于移动存储soc芯片的仿真验证方法 | |
CN102004219B (zh) | 一种红外焦平面阵列探测器模拟装置及模拟方法 | |
CN104376884B (zh) | 一种对反应堆信号全量程自动监测的便携反应性仪及反应性修正方法 | |
CN105738854A (zh) | 智能电表嵌入式应用的模拟存储器测试板系统及测试方法 | |
CN115828839A (zh) | 一种soc芯片系统级验证系统及方法 | |
CN102158728A (zh) | 视频图像处理系统延时检测方法 | |
CN103376340B (zh) | 一种转接板、多平台串行测试系统及方法 | |
CN109783631A (zh) | 社区问答数据的校验方法、装置、计算机设备和存储介质 | |
CN112417798A (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
TW201216048A (en) | Test system | |
CN106326046B (zh) | 存储器控制器的验证环境平台 | |
CN115114875A (zh) | 一种用于仿真的通用芯片验证装置 | |
CN111832237A (zh) | 一种知识产权核验证方法及系统 | |
CN107193738A (zh) | 一种基于功能点覆盖动态调整随机约束的验证方法 | |
CN114168200B (zh) | 多核处理器访存一致性的验证系统及方法 | |
US6477487B1 (en) | Remote terminal emulator | |
CN102565683B (zh) | 一种测试向量的生成与验证方法 | |
CN112462245B (zh) | 边界扫描互联线路的生成方法与装置 | |
CN104678292B (zh) | 一种复杂可编程逻辑器件cpld测试方法和装置 | |
CN109710480A (zh) | 一种内存镜像卡调试方法及其系统 | |
CN114264904A (zh) | 基于仿真和机器视觉的全液晶仪表测试方法及系统 | |
CN110427313A (zh) | 一种自动售票机交易功能的测试系统和方法 | |
CN107179761B (zh) | 一种验钞器测试方法、装置及atm机 |
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 |