CN112613254B - 一种处理器内部镜像控制模块注错验证系统及方法 - Google Patents
一种处理器内部镜像控制模块注错验证系统及方法 Download PDFInfo
- Publication number
- CN112613254B CN112613254B CN202011377474.XA CN202011377474A CN112613254B CN 112613254 B CN112613254 B CN 112613254B CN 202011377474 A CN202011377474 A CN 202011377474A CN 112613254 B CN112613254 B CN 112613254B
- Authority
- CN
- China
- Prior art keywords
- request
- read response
- value
- read
- 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.)
- Active
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
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)
Abstract
本发明公开了一种处理器内部镜像控制模块注错验证系统及方法,该系统包括:注错模块,用来根据配置的敏感地址位以及请求的来源,生成不同状态的读响应;每一个注错模块和一个镜像控制模块相连;软件测试模块,用于根据注错模块配置的敏感地址位,构造与敏感地址位相匹配的不同读写请求报文激励发往互为镜像的一组镜像控制模块,并配合注错模块构造包含各种错误类型的验证场景,实现对镜像控制模块功能的验证。该方法可以基于上述系统来实现。本发明具有原理简单、使用方便、灵活性好、适用范围广等优点。
Description
技术领域
本发明主要涉及到集成电路功能验证技术领域,特指一种处理器内部镜像控制模块注错验证方法及系统。
背景技术
随着集成电路技术的快速发展,集成电路规模越来越大,成本也越来越高,一次流片的代价很大,因此芯片中有专门用于增强其可靠性和鲁棒性的功能部件,对这类部件的设计及验证工作尤为重要。
芯片的一般功能模块是为了实现某种具体功能,而这种为了提高可靠性和鲁棒性所设计的功能模块更注重于对各种错误情况的容错处理,其作用是保证芯片发生某一种特定错误时候,芯片仍然可以不受影响地稳定运行,大大减少了芯片因为出错而报废的几率。
镜像控制模块是一种增强芯片可靠性的模块,其功能是增强访存的可靠性。如图1所示,在存储控制模块0和存储控制模块1的上一级分别连接所述镜像控制模块0和镜像控制模块1;一个存储控制模块及与其相连的镜像控制模块构成一条访存通路并与一个内存相连,镜像控制模块0和存储控制模块0构成访存通路0并与内存0相连,镜像控制模块1和存储控制模块1构成访存通路1并与内存1相连。
两条访存通路上的镜像控制模块0和镜像控制模块1互为一组镜像,互为镜像是指这两条访存通路上的内存模块存储相同的数据、互为备份,其作用在于通过减少一半的可用内存容量来换取数据的可靠性。
镜像控制模块的工作原理是,当CPU(Central Processing Unit,中央处理器)通过访存通路0读取内存0的某个地址的数据出现错误,镜像控制模块可以再一次或多次发送读请求以获取正确数据;当出现错误次数达到设定的阈值时,可以去内存1获取正确的数据,同时对应内存0的错误地址计数值加1;当出现错误地址计数值达到设定的阈值时,可以判定内存0出现故障,后续读请求不再通过访存通路0访问内存0,而是切换到访存通路1,通过访存通路1访问内存1以获取正确数据。
一般模块的模块级验证工作,主要是开发参考模型用于功能比对并快速定位错误,开发验证组件和测试激励以驱动并监测接口报文信息,构造覆盖率模型以收集功能覆盖率确保验证的完备性。但是,对于专用于增强可靠性的模块,其模块功能更多用于对各种错误类型的处理。除了开发上述的验证组件外,还需要开发用于验证其容错处理功能的注错模型以构造多种错误场景,而这些错误场景无法单独通过激励来构造。对于镜像控制模块验证来说,构造错误场景的关键在于配合注错模型构造发往镜像控制模块的包含错误状态的读响应信号,因此需要设计一种注错模型及其相关方法以实现对镜像控制模块的验证。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、使用方便、灵活性好、适用范围广的处理器内部镜像控制模块注错验证系统及方法。
为解决上述技术问题,本发明采用以下技术方案:
一种处理器内部镜像控制模块注错验证系统,其包括:
注错模块,用来根据配置的敏感地址位以及请求的来源,生成不同状态的读响应;每一个注错模块和一个镜像控制模块相连;
软件测试模块,用于根据注错模块配置的敏感地址位,构造与敏感地址位相匹配的不同读写请求报文激励发往互为镜像的一组镜像控制模块,并配合注错模块构造包含各种错误类型的验证场景,实现对镜像控制模块功能的验证。
作为本发明系统的进一步改进:所述读响应包括以下一种或多种:
a)针对同一地址生成多次包含错误状态的读响应信号;
b)针对同一地址先生成错误状态读响应信号,再生成正确状态读响应信号;
c)针对同一地址生成随机的读响应信号,以构造包含各种错误类型的验证场景。
作为本发明系统的进一步改进:所述注错模块配置的敏感地址位是可配置的,由例化注错模块时的参数决定,根据不同工作场景定义配置。
作为本发明系统的进一步改进:所述注错模块设置L位敏感位,L位敏感位来源于请求地址中[C+L-1:C]位,L和C是可配置的,C取值范围是地址中从第0位到最高地位-L中的任意数值。
作为本发明系统的进一步改进:所述注错模块包含:
请求接收解析模块,用于接收来自镜像控制模块发送来的读请求报文,并从所述读请求报文中解析出请求地址敏感位数值、请求ID和请求突发长度值;
读响应随机值生成模块,用来根据所述请求地址敏感位数值、请求ID和请求突发长度生成不同的读响应数值;
读响应存储模块,用来根据请求ID作为索引,将所述读响应随机值生成模块生成的读响应数值和请求突发长度值存入所述读响应存储模块中;
读响应处理模块,用来当接收到存储控制模块读响应数据返回时,根据所述ID从读响应存储模块中取出读响应数值并替换原有存储控制模块返回的读响应数值,然后发送给镜像控制模块。
作为本发明系统的进一步改进:所述请求ID来源于所述的镜像控制模块的请求ID,所述请求ID最高位为1和0,其中最高位为0的ID为注错模块连接的镜像控制模块ID,1为另一访存通路上的镜像控制模块ID;所述注错模块通过请求ID判断接收到的请求报文来源于哪一个镜像控制模块。
作为本发明系统的进一步改进:所述请求地址敏感位数值来源于所述注错模块连接的镜像控制模块的请求地址中敏感地址位对应的数值。
作为本发明系统的进一步改进:所述请求突发长度值来源于所述注错模块连接的镜像控制模块的请求突发长度信号。
作为本发明系统的进一步改进:所述请求接收解析模块的工作步骤如下:
步骤S10:监测接口是否收到请求报文,若收到则执行步骤S11,否则继续监测;
步骤S11:从请求报文中解析出其类型,如果是写请求或者写响应则执行步骤S10,如果是读请求则跳转到步骤S12,如果是读响应,跳转到步骤S14;
步骤S12:从读请求报文中解析请求ID、请求地址敏感位数值和请求突发长度值;
步骤S13:将请求ID的最高1位、请求地址敏感位数值以及请求突发长度值进行组合,作为读响应随机值生成模块的输入;
步骤S14:解析读响应对应的ID,转入读响应处理模块,从读响应存储模块中取出读响应数据并替换原有存储控制模块返回的读响应数值,然后发送给镜像控制模块。
作为本发明系统的进一步改进:写请求、读请求、写数据均来自镜像控制模块;读响应、写响应均来自存储控制模块。
作为本发明系统的进一步改进:所述读响应随机值生成模块用来生成不定长度、不同状态的读响应数值,每一拍读数据对应2位的读响应数值,最多支持N拍数据;所述读响应数值有4种不同类型,为00时候标记读数据为正确数据,其他数值标记不同错误类型的读数据。
作为本发明系统的进一步改进:所述读响应随机值生成模块的工作步骤包括:
步骤S21:根据输入信号进行判断;
步骤S22:根据请求突发长度值N决定生成N*2位随机读响应数值;
步骤S23:生成一个[N*2-1:N*2-2]为2’10,其他N*2-2位为0的N*2位读响应数值;
步骤S24:生成一个其他位均为0,最低2位为2’b10的N*2位读响应数值;
步骤S25:生成N个2’b10的读响应数值。
作为本发明系统的进一步改进:所述步骤S21中包括以下情形:
若输入值为’h50或’h59,生成N*2位全0的读响应数值;
若输入值为’h50~’h5a,’h5d,则跳转到步骤S22;
若输入值为‘h5c,则跳转到步骤S23;
若输入值为‘h5e,则跳转到步骤S24;
若输入值为‘h5f,则跳转到步骤S25;
若输入值为’h70~’h73,’h78,’h7e生成N*2位全0的读响应数值;
若输入值为’h74~’h76’h79~’h7a,’h7d,则跳转到步骤S25;
若输入值为’h77,则跳转到步骤S23;
若输入值为’h7c,则跳转到步骤S24;
若输入值为’h7f,则跳转到步骤S25。
作为本发明系统的进一步改进:所述读响应处理模块的工作步骤如下:
步骤S31:接收到一个读数据报文;
步骤S32:根据读响应报文计数器的值及报文有效位信息,判断所述接收到的读响应报文是新的读响应报文还是之前未完成的、属于同一个请求ID的读响应报文,如果读响应计数器值为0表示是新的读响应报文,执行步骤S33,否则执行步骤34;
步骤S33:以读数据报文中的ID作为索引,取出所述读响应存储模块中对应的读响应数值和请求突发长度,并将读响应数值最低2位赋值给读响应信号,同时将读响应数值右移2位后寄存到读响应标记寄存器中;
步骤S34:将读响应标记寄存器中的最低2位赋值给读响应信号并将读响应标记寄存器右移2位,读响应报文计数器减1。
作为本发明系统的进一步改进:所述读响应报文计数器是一个C位的计数器,用于记录一个读响应返回的个数,最大值等于请求突发发长度,复位后值为0。
作为本发明系统的进一步改进:所述读响应标记寄存器是一个N*2位循环移位寄存器,用于保存读响应数值。
作为本发明系统的进一步改进:所述软件测试模块包含测试激励单元和仿真测试单元,所述测试激励单元用来描述测试激励部分,所述仿真测试单元用来仿真测试部分的功能,包括与前面的注错模型的交互关系。
作为本发明系统的进一步改进:所述测试激励单元包括多个事务包,所述事务包包括请求类型、请求地址、请求ID、写数据、写数据有效、请求突发类型、请求突发长度和请求突发长度大小、读响应标记9个字段。
作为本发明系统的进一步改进:所述请求地址生成规则是根据参数例化传递的参数获知地址的敏感地址位,发送和敏感地址位相匹配的地址对应的读写请求;所述请求类型、请求突发类型、请求突发长度和请求突发大小通过固定和随机生成的方式产生。
作为本发明系统的进一步改进:所述请求ID中,如果是写请求ID固定为0,读请求ID从请求ID中队列中按照先进先出原则选取产生;请求ID队列产生规则,首先会根据ID位宽计算最大ID值S,将0~S的所有数值存入ID队列,每发送一个读请求消耗一个数值,每回收一个读响应,释放存入一个ID;写数据和写数据有效位随机产生,读响应标记字段固定为0;如首先会根据ID位宽7计算最大ID值为128,将0~128的所有数值存入ID队列,每发送一个读请求消耗一个数值,每回收一个读响应,释放存入一个ID。
作为本发明系统的进一步改进:所述仿真测试单元用于将所述测试激励部分的事务包发送到镜像控制模块,镜像控制模块会根据其当前状态,将所述事务包送到其所在的访存通路对应的内存或者另一访存通路对应的内存,当请求到达对应的注错模块时,注错模块解析事务包,并根据事务包中所述请求地址等信息生成对应的读响应并存储,当内存的读数据到达注错模块后,取出对应的读响应返回给镜像控制模块,镜像控制模块会根据返回的读响应进行不同错误处理并进入各种错误状态,实现对镜像控制模块的功能验证。
作为本发明系统的进一步改进:所述软件测试模块的工作步骤如下:
步骤S41:通过参数例化方式将注错模块bind到存储控制模块;
步骤S42:根据注错模块的敏感地址位编写地址约束的随机读写报文激励,同时编写互为镜像的两组激励报文,开发镜像控制模块的功能覆盖率模型;
步骤S43:运行测试激励,分析覆盖率统计结果,未达到100%跳转到步骤S44;达到100%,跳转到S45
步骤S44:继续修改约束增加测试定向和随机的测试激励,跳转到S43;
步骤S45:镜像控制模块各种错误处理功能完全覆盖。
本发明进一步提供一种处理器内部镜像控制模块注错验证方法,其包括:
步骤S1000:根据配置的敏感地址位以及请求的来源,生成不同状态的读响应;
步骤S2000:根据注错模块配置的敏感地址位,构造与敏感地址位相匹配的不同读写请求报文激励发往互为镜像的一组镜像控制模块,并配合注错模块构造包含各种错误类型的验证场景,实现对镜像控制模块功能的验证。
作为本发明方法的进一步改进:所述读响应包括以下一种或多种:
a)针对同一地址生成多次包含错误状态的读响应信号;
b)针对同一地址先生成错误状态读响应信号,再生成正确状态读响应信号;
c)针对同一地址生成随机的读响应信号,以构造包含各种错误类型的验证场景。
作为本发明方法的进一步改进:所述步骤S1000包括:
接收发送来的读请求报文,并从所述读请求报文中解析出请求地址敏感位数值、请求ID和请求突发长度值;
根据所述请求地址敏感位数值、请求ID和请求突发长度生成不同的读响应数值;
根据请求ID作为索引,将生成的读响应数值存入存储模块中;
当接收到读响应数据返回时,取出读响应数值并替换原有存储模块返回的读响应数值,然后发送给镜像控制模块。
作为本发明方法的进一步改进:所述步骤S2000包括:
步骤S41:通过参数例化方式将注错模块bind到存储控制模块;
步骤S42:根据注错模块的敏感地址位编写地址约束的随机读写报文激励,同时编写互为镜像的两组激励报文,开发镜像控制模块的功能覆盖率模型;
步骤S43:运行测试激励,分析覆盖率统计结果,未达到100%跳转到步骤S44;达到100%,跳转到步骤S45;
步骤S44:继续修改约束增加测试定向和随机的测试激励,跳转到步骤S43;
步骤S45:镜像控制模块各种错误处理功能完全覆盖。
与现有技术相比,本发明的优点在于:
1、本发明的处理器内部镜像控制模块注错验证方法及系统,可随机生成代表不同状态的读响应信号来替代存储控制模块返回的读响应信号,更加灵活地产生任意地址的各种读响应状态。通过开发的注错模块生成各种随机读响应,并结合随机及定向激励的测试,实现镜像模块的充分验证。同时,本发明具有广泛地适用性,既可以用于软模拟仿真平台,也可以用于硬件仿真加速器平台。
2、本发明的处理器内部镜像控制模块注错验证方法及系统,可以有效控制测试激励,根据地址可以构造定向或者随机的错误类型,快速实现镜像控制模块的各种错误类型以及本地、对方镜像控制模块出现正常/故障四种组合的测试,快速达到验证的全收敛。
附图说明
图1是镜像控制模块的位置示意图。
图2是本发明系统在具体应用实例中的结构原理示意图。
图3是本发明系统在具体应用实例中注错模块的结构原理示意图。
图4是本发明系统在具体应用实例中请求接收解析模块的处理流程示意图。
图5是本发明系统在具体应用实例中读响应输出模块的处理流程示意图。
图6是本发明系统在具体应用实例中软件测试模块的处理流程示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图2所示,本发明的一种处理器内部镜像控制模块注错验证系统,其包括:
注错模块,用来根据配置的敏感地址位以及请求的来源,生成不同状态的读响应;每一个注错模块和一个镜像控制模块相连;
软件测试模块,用于根据注错模块配置的敏感地址位,构造与敏感地址位相匹配的不同读写请求报文激励发往互为镜像的一组镜像控制模块,并配合注错模块构造包含各种错误类型的验证场景,实现对镜像控制模块功能的验证。
本发明上述系统中的注错模块可随机生成不同状态的读响应信号来替代存储控制模块返回的读响应信号,更加灵活地产生任意地址的各种读响应状态。通过开发的注错模块生成各种随机读响应,并结合随机及定向激励的测试,实现镜像模块的充分验证。同时,本发明具有广泛地适用性,既可以用于软模拟仿真平台,也可以用于硬件仿真加速器平台。
在具体应用实例中,所述读响应包括以下一种或多种:
a)针对同一地址生成多次包含错误状态的读响应信号;
b)可针对同一地址先生成错误状态读响应信号,再生成正确状态读响应信号;
c)也可针对同一地址生成随机的读响应信号,以构造包含各种错误类型的验证场景。
在具体应用实例中,注错模块配置的敏感地址位是可配置的,由例化注错模块时的参数决定,可根据不同工作场景定义配置;进一步,本发明可以可设置L位敏感位,L位敏感位来源于请求地址中[C+L-1:C]位,L和C是可配置的,C取值范围是地址中从第0位到最高地位-L中的任意数值。如设置5位敏感位,选取地址中的[20:16]作为地址敏感位。
参见图3,在具体应用实例中,所述注错模块包含请求接收解析模块、读响应随机值生成模块、读响应存储模块和读响应处理模块。所述请求接收解析模块用于接收来自镜像控制模块发送来的读请求报文,并从所述读请求报文中解析出请求地址敏感位数值、请求ID和请求突发长度。所述读响应随机值生成模块根据所述请求地址敏感位数值、请求ID和请求突发长度生成不同的读响应数值。所述读响应模块根据请求ID作为索引,将所述读响应随机值生成模块生成的读响应数值存入所述读响应存储模块中。所述读响应处理模块当接收到存储控制模块读响应数据返回时,根据所述ID从读响应存储模块中取出读响应数值并替换原有存储控制模块返回的读响应数值,然后发送给镜像控制模块。
在具体应用实例中,所述请求接收解析模块用于接收读请求报文,并解析出读请求报文中的请求ID、请求地址敏感位数值和请求突发长度值。
在具体应用实例中,所述请求ID来源于所述的镜像控制模块的请求ID,请求ID最高位为1和0,其中最高位为0的ID为注错模块连接的镜像控制模块ID,1为另一访存通路上的镜像控制模块ID。注错模块通过请求ID可以判断,接收到的请求报文来源于哪一个镜像控制模块。
在具体应用实例中,所述请求地址敏感位数值来源于所述注错模块连接的镜像控制模块的请求地址中敏感地址位对应的数值。
在具体应用实例中,所述请求突发长度值来源于所述注错模块连接的镜像控制模块的请求突发长度信号。
在具体应用实例中,参见图4,所述请求接收解析模块的工作步骤如下:
步骤S10:监测接口是否收到请求报文,若收到则执行步骤S11,否则继续监测;
步骤S11:从请求报文中解析出其类型,如果是写请求或者写响应则执行步骤S10,如果是读请求则跳转到步骤S12,如果是读响应,跳转到步骤S14;
步骤S12:从读请求报文中解析请求ID、请求地址敏感位数值和请求突发长度值;
步骤S13:将请求ID的最高1位、请求地址敏感位数值以及请求突发长度值进行组合,作为读响应随机值生成模块的输入。
步骤S14:解析读响应对应的ID,转入读响应处理模块,从读响应存储模块中取出读响应数据并替换原有存储控制模块返回的读响应数值,然后发送给镜像控制模块。
上述写请求、读请求、写数据均来自镜像控制模块;上述读响应、写响应来自存储控制模块。
在具体应用实例中,所述读响应随机值生成模块用来根据请求地址敏感位数值、请求突发长度值和请求ID的最高位作为输入,生成不定长度、不同状态的读响应数值,每一拍读数据对应2位的读响应数值,最多可支持N拍数据,读响应数值有4种不同类型,为00时候标记读数据为正确数据,其他数值标记不同错误类型的读数据。
参见图5,在具体应用实例中,所述读响应随机值生成模块的工作步骤包括:
步骤S21:根据输入信号进行判断;
若输入值为’h50或’h59,生成N*2位全0的读响应数值;
若输入值为’h50~’h5a,’h5d,则跳转到步骤S22;
若输入值为‘h5c,则跳转到步骤S23;
若输入值为‘h5e,则跳转到步骤S24;
若输入值为‘h5f,则跳转到步骤S25;
若输入值为’h70~’h73,’h78,’h7e生成N*2位全0的读响应数值;
若输入值为’h74~’h76’h79~’h7a,’h7d,则跳转到步骤S25;
若输入值为’h77,则跳转到步骤S23;
若输入值为’h7c,则跳转到步骤S24;
若输入值为’h7f,则跳转到步骤S25;
步骤S22:根据请求突发长度值N决定生成N*2位随机读响应数值;
步骤S23:生成一个[N*2-1:N*2-2]为2’10,其他N*2-2位为0的N*2位读响应数值。
步骤S24:生成一个其他位均为0,最低2位为2’b10的N*2位读响应数值。
步骤S25:生成N个2’b10的读响应数值。
在具体应用实例中,所述读响应存储模块用于根据请求报文中的请求ID作为索引,将读响应随机值生成模块生成的读响应数值和请求突发长度值存入读响应存储模块中。
在具体应用实例中,所述读响应处理模块用于将接收到的读数据报文和所述读响应存储模块中存储的读响应数值进行匹配,其工作步骤如下:
步骤S31:接收到一个读数据报文;
步骤S32:根据读响应报文计数器的值及报文有效位信息,判断所述接收到的读响应报文是新的读响应报文还是之前未完成的、属于同一个请求ID的读响应报文,如果读响应计数器值为0表示是新的读响应报文,执行步骤S33,否则执行步骤34;
步骤S33:以读数据报文中的ID作为索引,取出所述读响应存储模块中对应的读响应数值和请求突发长度,并将读响应数值最低2位赋值给读响应信号,同时将读响应数值右移2位后寄存到读响应标记寄存器中;
步骤S34:将读响应标记寄存器中的最低2位赋值给读响应信号并将读响应标记寄存器右移2位,读响应报文计数器减1;
在具体应用实例中,所述读响应报文计数器是一个C位的计数器,用于记录一个读响应返回的个数,最大值等于请求突发发长度,复位后值为0。
在具体应用实例中,所述读响应寄存器是一个N*2位循环移位寄存器(如4位循环移位寄存器),用于保存读响应数值。
在具体应用实例中,所述软件测试模块包含测试激励单元和仿真测试单元,所述测试激励单元用来描述测试激励部分,所述仿真测试单元用来仿真测试部分的功能,特别是与前面的注错模型的交互关系。
在具体应用实例中,所述测试激励单元包括多个事务包,所述事务包包括请求类型、请求地址、请求ID、写数据、写数据有效、请求突发类型、请求突发长度和请求突发长度大小、读响应标记9个字段。所述请求地址生成规则是根据参数例化传递的参数获知地址的敏感地址位,从而发送和敏感地址位相匹配的地址对应的读写请求。所述请求类型、请求突发类型、请求突发长度和请求突发大小可以通过固定和随机生成的方式产生。请求ID,如果是写请求ID固定为0,读请求ID从请求ID中队列中按照先进先出原则选取产生。请求ID队列产生规则,首先会根据ID位宽计算最大ID值S,将0~S的所有数值存入ID队列,每发送一个读请求消耗一个数值,每回收一个读响应,释放存入一个ID。写数据和写数据有效位随机产生,读响应标记字段固定为0。如首先会根据ID位宽7计算最大ID值为128,将0~128的所有数值存入ID队列,每发送一个读请求消耗一个数值,每回收一个读响应,释放存入一个ID。
在具体应用实例中,所述仿真测试单元用于将所述测试激励部分的事务包发送到镜像控制模块,镜像控制模块会根据其当前状态,将所述事务包送到其所在的访存通路对应的内存或者另一访存通路对应的内存,当请求到达对应的注错模块时,注错模块解析事务包,并根据事务包中所述请求地址等信息生成对应的读响应并存储,当内存的读数据到达注错模块后,取出对应的读响应返回给镜像控制模块,镜像控制模块会根据返回的读响应进行不同错误处理并进入各种错误状态,从而实现对镜像控制模块的功能验证。
参见图6,在具体应用实例中,所述软件测试模块的工作步骤如下:
步骤S41:搭建针对镜像控制模块的验证环境,两个镜像控制模块相互连接组成一个大的设计DUT。
步骤S42:环境搭建调试完成后,开发所述的注错模块,并将所述的注错模块0和1通过bind方式分别与存储控制器0和1相连,参数化实例化传递敏感地址最高位和最低位数值。
步骤S43:注错模块连接到设计后,获取注错模型20和16最高和最低敏感位。
步骤S44:根据注错模型[20:16]5位敏感地址位约束地址,生成随机读写报文激励,分别构造针对镜像模块0和1的两个测试事物包,两个测试包的地址最高位分别约束为0和1。所述事务包包含请求类型、请求ID、请求地址、请求突发长度,请求突发大小,请求突发类型,读写数据,响应字段。同时开发镜像控制模块的功能覆盖率模型。
步骤S45:运行测试激励,所述事务包经过镜像控制模块后进入存储控制模块和注错模块进行处理并返回到镜像控制模块。
步骤S46:分析覆盖率统计结果,未达到100%跳转到步骤S44;达到100%,跳转到S45。
步骤S47:继续修改约束增加测试定向和随机的测试激励,跳转到步骤S43。
步骤S48:镜像控制模块各种错误处理功能完全覆盖。
本发明进一步提供一种处理器内部镜像控制模块注错验证方法,其包括:
步骤S1000:根据配置的敏感地址位以及请求的来源,生成不同状态的读响应;
步骤S2000:根据注错模块配置的敏感地址位,构造与敏感地址位相匹配的不同读写请求报文激励发往互为镜像的一组镜像控制模块,并配合注错模块构造包含各种错误类型的验证场景,实现对镜像控制模块功能的验证。
在具体应用实例中,所述读响应包括以下一种或多种:
a)针对同一地址生成多次包含错误状态的读响应信号;
b)针对同一地址先生成错误状态读响应信号,再生成正确状态读响应信号;
c)针对同一地址生成随机的读响应信号,以构造包含各种错误类型的验证场景。
在具体应用实例中,所述步骤S1000包括:
接收发送来的读请求报文,并从所述读请求报文中解析出请求地址敏感位数值、请求ID和请求突发长度值;
根据所述请求地址敏感位数值、请求ID和请求突发长度生成不同的读响应数值;
根据请求ID作为索引,将生成的读响应数值存入存储模块中;
当接收到读响应数据返回时,取出读响应数值并替换原有存储模块返回的读响应数值,然后发送给镜像控制模块。
在具体应用实例中,所述步骤S2000包括:
步骤S41:通过参数例化方式将注错模块bind到存储控制模块;
步骤S42:根据注错模块的敏感地址位编写地址约束的随机读写报文激励,同时编写互为镜像的两组激励报文,开发镜像控制模块的功能覆盖率模型;
步骤S43:运行测试激励,分析覆盖率统计结果,未达到100%跳转到步骤S44;达到100%,跳转到步骤S45;
步骤S44:继续修改约束增加测试定向和随机的测试激励,跳转到步骤S43;
步骤S45:镜像控制模块各种错误处理功能完全覆盖。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (26)
1.一种处理器内部镜像控制模块注错验证系统,其特征在于,包括:
注错模块,用来根据配置的敏感地址位以及请求的来源,生成不同状态的读响应;每一个注错模块和一个镜像控制模块相连;
软件测试模块,用于根据注错模块配置的敏感地址位,构造与敏感地址位相匹配的不同读写请求报文激励发往互为镜像的一组镜像控制模块,并配合注错模块构造包含各种错误类型的验证场景,实现对镜像控制模块功能的验证。
2.根据权利要求1所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述读响应包括以下一种或多种:
a)针对同一地址生成多次包含错误状态的读响应信号;
b)针对同一地址先生成错误状态读响应信号,再生成正确状态读响应信号;
c)针对同一地址生成随机的读响应信号,以构造包含各种错误类型的验证场景。
3.根据权利要求1所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述注错模块配置的敏感地址位是可配置的,由例化注错模块时的参数决定,根据不同工作场景定义配置。
4.根据权利要求3所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述注错模块设置L位敏感位,L位敏感位来源于请求地址中[C+L-1:C]位,L和C是可配置的,C取值范围是地址中从第0位到最高地位-L中的任意数值。
5.根据权利要求1-4中任意一项所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述注错模块包含:
请求接收解析模块,用于接收来自镜像控制模块发送来的读请求报文,并从所述读请求报文中解析出请求地址敏感位数值、请求ID和请求突发长度值;
读响应随机值生成模块,用来根据所述请求地址敏感位数值、请求ID和请求突发长度生成不同的读响应数值;
读响应存储模块,用来根据请求ID作为索引,将所述读响应随机值生成模块生成的读响应数值和请求突发长度值存入所述读响应存储模块中;
读响应处理模块,用来当接收到存储控制模块读响应数据返回时,根据所述ID从读响应存储模块中取出读响应数值并替换原有存储控制模块返回的读响应数值,然后发送给镜像控制模块。
6.根据权利要求5所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述请求ID来源于所述的镜像控制模块的请求ID,所述请求ID最高位为1和0,其中最高位为0的ID为注错模块连接的镜像控制模块ID,1为另一访存通路上的镜像控制模块ID;所述注错模块通过请求ID判断接收到的请求报文来源于哪一个镜像控制模块。
7.根据权利要求5所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述请求地址敏感位数值来源于所述注错模块连接的镜像控制模块的请求地址中敏感地址位对应的数值。
8.根据权利要求5所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述请求突发长度值来源于所述注错模块连接的镜像控制模块的请求突发长度信号。
9.根据权利要求5所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述请求接收解析模块的工作步骤如下:
步骤S10:监测接口是否收到请求报文,若收到则执行步骤S11,否则继续监测;
步骤S11:从请求报文中解析出其类型,如果是写请求或者写响应则执行步骤S10,如果是读请求则跳转到步骤S12,如果是读响应,跳转到步骤S14;
步骤S12:从读请求报文中解析请求ID、请求地址敏感位数值和请求突发长度值;
步骤S13:将请求ID的最高1位、请求地址敏感位数值以及请求突发长度值进行组合,作为读响应随机值生成模块的输入;
步骤S14:解析读响应对应的ID,转入读响应处理模块,从读响应存储模块中取出读响应数据并替换原有存储控制模块返回的读响应数值,然后发送给镜像控制模块。
10.根据权利要求9所述的处理器内部镜像控制模块注错验证系统,其特征在于,写请求、读请求、写数据均来自镜像控制模块;读响应、写响应均来自存储控制模块。
11.根据权利要求5所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述读响应随机值生成模块用来生成不定长度、不同状态的读响应数值,每一拍读数据对应2位的读响应数值,最多支持N拍数据;所述读响应数值有4种不同类型,为00时候标记读数据为正确数据,其他数值标记不同错误类型的读数据。
12.根据权利要求11所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述读响应随机值生成模块的工作步骤包括:
步骤S21:根据输入信号进行判断;
步骤S22:根据请求突发长度值N决定生成N*2位随机读响应数值;
步骤S23:生成一个[N*2-1:N*2-2]为2’b10,其他N*2-2位为0的N*2位读响应数值;
步骤S24:生成一个其他位均为0,最低2位为2’b10的N*2位读响应数值;
步骤S25:生成N个2’b10的读响应数值。
13.根据权利要求12所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述步骤S21中包括以下情形:
若输入值为’h50或’h59,生成N*2位全0的读响应数值;
若输入值为’h50~’h5a,’h5d,则跳转到步骤S22;
若输入值为‘h5c,则跳转到步骤S23;
若输入值为‘h5e,则跳转到步骤S24;
若输入值为‘h5f,则跳转到步骤S25;
若输入值为’h70~’h73,’h78,’h7e生成N*2位全0的读响应数值;
若输入值为’h74~’h76’h79~’h7a,’h7d,则跳转到步骤S25;
若输入值为’h77,则跳转到步骤S23;
若输入值为’h7c,则跳转到步骤S24;
若输入值为’h7f,则跳转到步骤S25。
14.根据权利要求5所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述读响应处理模块的工作步骤如下:
步骤S31:接收到一个读数据报文;
步骤S32:根据读响应报文计数器的值及报文有效位信息,判断所述接收到的读响应报文是新的读响应报文还是之前未完成的、属于同一个请求ID的读响应报文,如果读响应计数器值为0表示是新的读响应报文,执行步骤S33,否则执行步骤34;
步骤S33:以读数据报文中的ID作为索引,取出所述读响应存储模块中对应的读响应数值和请求突发长度,并将读响应数值最低2位赋值给读响应信号,同时将读响应数值右移2位后寄存到读响应标记寄存器中;
步骤S34:将读响应标记寄存器中的最低2位赋值给读响应信号并将读响应标记寄存器右移2位,读响应报文计数器减1。
15.根据权利要求14所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述读响应报文计数器是一个C位的计数器,用于记录一个读响应返回的个数,最大值等于请求突发发长度,复位后值为0。
16.根据权利要求14所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述读响应标记寄存器是一个N*2位循环移位寄存器,用于保存读响应数值。
17.根据权利要求1-4中任意一项所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述软件测试模块包含测试激励单元和仿真测试单元,所述测试激励单元用来描述测试激励部分,所述仿真测试单元用来仿真测试部分的功能,包括与前面的注错模型的交互关系。
18.根据权利要求17所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述测试激励单元包括多个事务包,所述事务包包括请求类型、请求地址、请求ID、写数据、写数据有效、请求突发类型、请求突发长度和请求突发长度大小、读响应标记9个字段。
19.根据权利要求18所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述请求地址生成规则是根据参数例化传递的参数获知地址的敏感地址位,发送和敏感地址位相匹配的地址对应的读写请求;所述请求类型、请求突发类型、请求突发长度和请求突发大小通过固定和随机生成的方式产生。
20.根据权利要求19所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述请求ID中,如果是写请求ID固定为0,读请求ID从请求ID中队列中按照先进先出原则选取产生;请求ID队列产生规则,首先会根据ID位宽计算最大ID值S,将0~S的所有数值存入ID队列,每发送一个读请求消耗一个数值,每回收一个读响应,释放存入一个ID;写数据和写数据有效位随机产生,读响应标记字段固定为0;如首先会根据ID位宽7计算最大ID值为128,将0~128的所有数值存入ID队列,每发送一个读请求消耗一个数值,每回收一个读响应,释放存入一个ID。
21.根据权利要求17所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述仿真测试单元用于将所述测试激励部分的事务包发送到镜像控制模块,镜像控制模块会根据其当前状态,将所述事务包送到其所在的访存通路对应的内存或者另一访存通路对应的内存,当请求到达对应的注错模块时,注错模块解析事务包,并根据事务包中请求地址等信息生成对应的读响应并存储,当内存的读数据到达注错模块后,取出对应的读响应返回给镜像控制模块,镜像控制模块会根据返回的读响应进行不同错误处理并进入各种错误状态,实现对镜像控制模块的功能验证。
22.根据权利要求17所述的处理器内部镜像控制模块注错验证系统,其特征在于,所述软件测试模块的工作步骤如下:
步骤S41:通过参数例化方式将注错模块bind到存储控制模块;
步骤S42:根据注错模块的敏感地址位编写地址约束的随机读写报文激励,同时编写互为镜像的两组激励报文,开发镜像控制模块的功能覆盖率模型;
步骤S43:运行测试激励,分析覆盖率统计结果,未达到100%跳转到步骤S44;达到100%,跳转到S45;
步骤S44:继续修改约束增加测试定向和随机的测试激励,跳转到S43;
步骤S45:镜像控制模块各种错误处理功能完全覆盖。
23.一种处理器内部镜像控制模块注错验证方法,其特征在于,包括:
步骤S1000:根据配置的敏感地址位以及请求的来源,生成不同状态的读响应;
步骤S2000:根据注错模块配置的敏感地址位,构造与敏感地址位相匹配的不同读写请求报文激励发往互为镜像的一组镜像控制模块,并配合注错模块构造包含各种错误类型的验证场景,实现对镜像控制模块功能的验证。
24.根据权利要求23所述的处理器内部镜像控制模块注错验证方法,其特征在于,所述读响应包括以下一种或多种:
a)针对同一地址生成多次包含错误状态的读响应信号;
b)针对同一地址先生成错误状态读响应信号,再生成正确状态读响应信号;
c)针对同一地址生成随机的读响应信号,以构造包含各种错误类型的验证场景。
25.根据权利要求23所述的处理器内部镜像控制模块注错验证方法,其特征在于,所述步骤S1000包括:
接收发送来的读请求报文,并从所述读请求报文中解析出请求地址敏感位数值、请求ID和请求突发长度值;
根据所述请求地址敏感位数值、请求ID和请求突发长度生成不同的读响应数值;
根据请求ID作为索引,将生成的读响应数值存入存储模块中;
当接收到读响应数据返回时,取出读响应数值并替换原有存储模块返回的读响应数值,然后发送给镜像控制模块。
26.根据权利要求23所述的处理器内部镜像控制模块注错验证方法,其特征在于,所述步骤S2000包括:
步骤S41:通过参数例化方式将注错模块bind到存储控制模块;
步骤S42:根据注错模块的敏感地址位编写地址约束的随机读写报文激励,同时编写互为镜像的两组激励报文,开发镜像控制模块的功能覆盖率模型;
步骤S43:运行测试激励,分析覆盖率统计结果,未达到100%跳转到步骤S44;达到100%,跳转到步骤S45;
步骤S44:继续修改约束增加测试定向和随机的测试激励,跳转到步骤S43;
步骤S45:镜像控制模块各种错误处理功能完全覆盖。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011377474.XA CN112613254B (zh) | 2020-11-30 | 2020-11-30 | 一种处理器内部镜像控制模块注错验证系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011377474.XA CN112613254B (zh) | 2020-11-30 | 2020-11-30 | 一种处理器内部镜像控制模块注错验证系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112613254A CN112613254A (zh) | 2021-04-06 |
CN112613254B true CN112613254B (zh) | 2022-01-25 |
Family
ID=75228241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011377474.XA Active CN112613254B (zh) | 2020-11-30 | 2020-11-30 | 一种处理器内部镜像控制模块注错验证系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112613254B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080330A (zh) * | 2022-06-30 | 2022-09-20 | 山东华芯半导体有限公司 | 一种用于加密Nand Flash仿真模型的注错系统及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105185413A (zh) * | 2015-09-24 | 2015-12-23 | 中国航天科技集团公司第九研究院第七七一研究所 | 用于片上存储管理单元容错结构的自动验证平台与方法 |
CN108763148A (zh) * | 2018-05-31 | 2018-11-06 | 西安微电子技术研究所 | 一种支持上注的容错存储器控制器 |
CN108766501A (zh) * | 2018-05-31 | 2018-11-06 | 西安微电子技术研究所 | 一种具有edac容错的存储器故障注入设计及验证方法 |
CN110134557A (zh) * | 2019-05-17 | 2019-08-16 | 深圳忆联信息系统有限公司 | 一种读Flash接口数据随机注错的验证方法及其系统 |
CN110704234A (zh) * | 2019-09-12 | 2020-01-17 | 无锡江南计算技术研究所 | 一种存控数据传输错误注入方法 |
CN110825640A (zh) * | 2019-11-08 | 2020-02-21 | 苏州浪潮智能科技有限公司 | Dubal BIOS的测试方法、测试装置及测试系统 |
CN111563578A (zh) * | 2020-04-28 | 2020-08-21 | 河海大学常州校区 | 基于TensorFlow的卷积神经网络故障注入系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN208938101U (zh) * | 2017-12-25 | 2019-06-04 | 河海大学常州校区 | 一种快速评估电路软错误率的系统 |
CN109101680B (zh) * | 2018-06-26 | 2022-11-25 | 飞腾信息技术有限公司 | 基于GitLab-CI的FPGA原型自动验证方法及系统 |
CN111400119B (zh) * | 2020-03-24 | 2021-04-20 | 天津飞腾信息技术有限公司 | 多项目与多平台自适应的芯片设计fpga原型验证方法及系统 |
-
2020
- 2020-11-30 CN CN202011377474.XA patent/CN112613254B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105185413A (zh) * | 2015-09-24 | 2015-12-23 | 中国航天科技集团公司第九研究院第七七一研究所 | 用于片上存储管理单元容错结构的自动验证平台与方法 |
CN108763148A (zh) * | 2018-05-31 | 2018-11-06 | 西安微电子技术研究所 | 一种支持上注的容错存储器控制器 |
CN108766501A (zh) * | 2018-05-31 | 2018-11-06 | 西安微电子技术研究所 | 一种具有edac容错的存储器故障注入设计及验证方法 |
CN110134557A (zh) * | 2019-05-17 | 2019-08-16 | 深圳忆联信息系统有限公司 | 一种读Flash接口数据随机注错的验证方法及其系统 |
CN110704234A (zh) * | 2019-09-12 | 2020-01-17 | 无锡江南计算技术研究所 | 一种存控数据传输错误注入方法 |
CN110825640A (zh) * | 2019-11-08 | 2020-02-21 | 苏州浪潮智能科技有限公司 | Dubal BIOS的测试方法、测试装置及测试系统 |
CN111563578A (zh) * | 2020-04-28 | 2020-08-21 | 河海大学常州校区 | 基于TensorFlow的卷积神经网络故障注入系统 |
Non-Patent Citations (3)
Title |
---|
SRAM型FPGA中SEM IP核的验证与自动注错方法;张皓 等;《半导体检测与设备》;20171231;223-228页 * |
一种基于贝叶斯网络的随机测试方法在Cache一致性验证中的设计与实现;艾阳阳 等;《计算机工程与科学》;20170831;1397-1402页 * |
基于Cadence CHI 和IVD VIP的多核SoC系统数据一致性验证;范君健 等;《微电子技术》;20200806;72-76页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112613254A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Khan et al. | Dustminer: troubleshooting interactive complexity bugs in sensor networks | |
US7461312B2 (en) | Digital signature generation for hardware functional test | |
CN112035314B (zh) | 内存泄漏的监控方法、装置及电子设备 | |
Jin et al. | Fate and FreeWill in error traces | |
US20060256879A1 (en) | Rapid I/O Traffic System | |
US20060271347A1 (en) | Method for generating commands for testing hardware device models | |
CN112613254B (zh) | 一种处理器内部镜像控制模块注错验证系统及方法 | |
CN105074656A (zh) | 管理并发谓词表达式的方法和装置 | |
US20070157134A1 (en) | Method for testing a hardware circuit block written in a hardware description language | |
Bogdanov et al. | Testing methods for X-machines: a review | |
US6516306B1 (en) | Model checking of message flow diagrams | |
US6615378B1 (en) | Method and apparatus for holding failing information of a memory built-in self-test | |
US6052808A (en) | Maintenance registers with Boundary Scan interface | |
US6845440B2 (en) | System for preventing memory usage conflicts when generating and merging computer architecture test cases | |
EP0955551A2 (en) | Testing of semiconductor device and a manufacturing process of a semiconductor device including a testing process | |
US20060282719A1 (en) | Unique Addressable Memory Data Path | |
US20060268724A1 (en) | Using Open Vera Assertions to verify designs | |
US20060256877A1 (en) | Rapid I/O Compliant Message Mapper | |
CN114116488A (zh) | 测试覆盖率信息获取方法、装置、设备及存储介质 | |
Khan et al. | Finding symbolic bug patterns in sensor networks | |
US20060268714A1 (en) | Rapid I/O Compliant Congestion Control | |
US20060256878A1 (en) | Out of Order Message Completion Management | |
CN117521570B (zh) | 总线的超时检测电路、方法、芯片及电子设备 | |
CN110377467A (zh) | 服务器开机过程的故障定位方法、装置、设备及存储介质 | |
US7496792B2 (en) | Repeat digital message transmission between a microprocessor monitoring circuit and an analyzing tool |
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 | ||
CB02 | Change of applicant information |
Address after: 300452 Building 5, Xin'an pioneer Plaza, Binhai New Area marine high tech Development Zone, Tianjin Applicant after: Feiteng Information Technology Co.,Ltd. Address before: 300452 Building 5, Xin'an pioneer Plaza, Binhai New Area marine high tech Development Zone, Tianjin Applicant before: TIANJIN FEITENG INFORMATION TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |