CN115831209A - 一种兼容ram读写逻辑与ecc逻辑的功能验证装置及系统 - Google Patents
一种兼容ram读写逻辑与ecc逻辑的功能验证装置及系统 Download PDFInfo
- Publication number
- CN115831209A CN115831209A CN202211309367.2A CN202211309367A CN115831209A CN 115831209 A CN115831209 A CN 115831209A CN 202211309367 A CN202211309367 A CN 202211309367A CN 115831209 A CN115831209 A CN 115831209A
- Authority
- CN
- China
- Prior art keywords
- read
- ram
- logic
- write
- data
- 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
Abstract
本发明提出了一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,地址发生模块产生全地址、第一读写使能信号以及待读写数据;所述读写逻辑转换模块在待测RAM的功能验证类型为读写逻辑功能验证时,在第一读写使能信号与第二读写使能信号均为读使能信号或写使能信号时,对待测RAM进行全地址读写;所述ECC纠错验证模块在待测RAM的功能验证类型为ECC逻辑功能验证时,通过随机注错方式,进行ECC逻辑功能验证;所述数据对比模块在待测RAM的功能验证类型为读写逻辑功能验证时,进行读写逻辑功能验证,本发明还提出了一种兼容RAM读写逻辑与ECC逻辑的功能验证系统,有效地提高了RAM存储器功能验证的效率。
Description
技术领域
本发明涉及RAM功能验证领域,尤其是涉及一种兼容RAM读写逻辑与ECC逻辑的功能验证装置及系统。
背景技术
在大数据时代,信息无时无刻都在传输和处理,而RAM(Random Access Memory,随机存取存储器)作为系统内部的临时数据存储器,在它读写速度快的基础上,如何提高数据的可靠性是行业的关注点。
随着行业需求的发展,芯片中集成的控制逻辑越来越复杂,用于对芯片中可逻辑实现功能进行仿真的逻辑验证平台,快速实现如此庞大的功能面临极大的挑战。逻辑验证平台一般根据可逻辑实现功能的激励需求向被测的可逻辑实现的功能传递激励,然后接收经过逻辑处理的结果,通过检查接收到的数据的正确性来达到验证逻辑处理正确性的目的。另外在工业计算机、航空航天电子、数据库中心的应用上,设备均要求在全天候、高负载、复杂电磁环境等苛刻的条件下依然能保持正常运转。
为了保证数据的可靠性,现有技术中,RAM控制器中一般都内置了数据纠错模块。如果操作时序和电路稳定性不存在问题的前提下,RAM出错一般不会造成整个Bank(内存库)或Page(页面)出错、而是整个Page中某一个或者某几个bit出错。内置的数据纠错模块主要使用专用的校验方法ECC(Error Correcting Code),用于纠正单比特错误和检测双比特错误,保证系统运行;但是,现有技术中数据纠错模块仅可以实现ECC逻辑功能校验,无法实现RAM存储器读写逻辑与ECC逻辑的功能验证的兼容,不利于提高RAM存储器功能验证的效率。
发明内容
本发明为了解决现有技术中存在的问题,创新提出了一种兼容RAM读写逻辑与ECC逻辑的功能验证装置及系统,有效解决由于现有技术造成RAM存储器读写逻辑与ECC逻辑的功能验证不能兼容的问题,有效地提高了RAM存储器功能验证的效率。
本发明第一方面提供了一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,与RAM通信连接,包括:地址发生模块、读写逻辑转换模块、ECC纠错验证模块、数据对比模块,所述地址发生模块用于根据待测RAM地址位数产生读或写的全部地址,根据待测RAM的功能验证类型产生用于待测RAM进行读写的第一读写使能信号以及待读写数据;所述读写逻辑转换模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,将多个读写逻辑控制信号的排列组合后的全部组合逻辑信号分别依次判断是否为第二读写使能信号,如果组合逻辑信号为第二读写使能信号,输出用于待测RAM进行读写的第二读写使能信号,并在第一读写使能信号与第二读写使能信号均为读使能信号或写使能信号时,对待测RAM进行全地址读写;所述ECC纠错验证模块在待测RAM的功能验证类型为ECC逻辑功能验证时,根据地址发生模块产生的读或写的全部地址以及第一读写使能信号,对待测RAM进行读写,通过随机注错方式,进行ECC逻辑功能验证;所述数据对比模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,判断对待测RAM进行全地址读写的数据与地址发生模块发送的待读写的数据进行对比,进行读写逻辑功能验证。
可选地,所述地址发生模块还用于接收用户通过通信总线发送的用户功能验证请求信号,根据用户功能验证请求信号确定待测RAM的功能验证类型。
进一步地,根据用户功能验证请求信号确定待测RAM的功能验证类型具体是:根据用户功能验证请求信号、功能验证类型数据库确定待测RAM的功能验证类型,所述功能验证类型数据库存储有用户功能验证请求信号与待测RAM的功能验证类型的对应的关系。
可选地,所述读写逻辑转换模块还用于如果组合逻辑信号不为第二读写使能信号,进行下一组合逻辑信号的判断,直至所有组合逻辑信号均判断完成。
可选地,地址发生模块产生的每个地址上的待读写数据与每个待进行读写的地址数据对应相同。
可选地,所述ECC纠错验证模块包括数据翻转子模块、随机地址发生器、ECC纠错功能组件、状态控制器,所述ECC纠错功能组件用于在初次使能ECC纠错功能时,根据地址发生模块产生的读或写的全部地址以及第一读写使能信号,对待测RAM进行全地址写操作后,确认所有地址都有数据后,在再次使能ECC纠错功能时,对待测RAM进行全地址的读操作,当检测到待测RAM内随机产生的注错地址的数据出错以及写使能有效时,将纠错后的数据写回到原随机产生的注错地址中,在输出过程中,再次检测原随机产生的注错地址的数据是否已经被修复;所述随机地址发生器在关闭ECC纠错功能时,获取输入的注错地址数量,根据输入的注错地址数量,随机产生对应数量的注错地址;所述数据翻转子模块用于将随机产生的注错地址中的数据进行数据翻转后,再次写入随机产生的注错地址中;所述状态控制器用于在ECC纠错功能组件检测到待测RAM内随机产生的注错地址的数据出错时,拉低ECC数据完成信号,触发写使能有效;在ECC纠错功能组件检测到待测RAM中原随机产生的注错地址的数据已经被修复时,拉高ECC数据完成信号,触发写使能无效。
进一步地,所述ECC纠错验证模块还包括编码器以及译码器,所述编码器用于将地址发生模块产生的待写入数据进行编码后写入待测RAM;所述译码器用于将待测RAM中待读取数据进行译码后,输出待读取的数据。
可选地,所述随机地址发生器中获取的输入的注错地址数量为1个比特或2个比特或3个比特。
可选地,还包括时钟复位模块,所述时钟复位模块用于对兼容RAM读写逻辑与ECC逻辑的功能验证装置进行时钟复位。
本发明第二方面提供了一种兼容RAM读写逻辑与ECC逻辑的功能验证系统,包括本发明第一方面所述的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置、RAM、AXI总线,所述一种兼容RAM读写逻辑与ECC逻辑的功能验证装置通过AXI总线获取用户功能验证请求,根据用户功能验证请求信号确定待测RAM的功能验证类型,根据确定待测RAM的功能验证类型对待测RAM分别进行RAM读写逻辑与ECC逻辑的功能验证。
本发明采用的技术方案包括以下技术效果:
1、本发明技术方案中地址发生模块用于产生读或写的全部地址,根据待测RAM的功能验证类型产生用于待测RAM进行读写的第一读写使能信号以及待读写数据;所述读写逻辑转换模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,进行读写逻辑功能验证;所述ECC(Error Correcting Code,纠错码)纠错验证模块在待测RAM的功能验证类型为ECC逻辑功能验证时,通过随机注错方式,进行ECC逻辑功能验证;所述数据对比模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,判断对待测RAM进行全地址读写的数据与地址发生模块发送的待读写的数据进行对比,进行读写逻辑功能验证,有效解决由于现有技术造成RAM存储器读写逻辑与ECC逻辑的功能验证不能兼容的问题,有效地提高了RAM存储器功能验证的效率。
2、本发明技术方案中地址发生模块,通过利用AXI(Advanced eXtensibleInterface),高级扩展接口)总线的User signal(用户功能验证请求信号)进行功能控制,根据用户功能验证请求信号确定待测RAM的功能验证类型,不仅不影响通常通信带宽,而且还可以根据用户请求灵活调整待测RAM的功能验证类型。
3、本发明技术方案中读写逻辑转换模块将多个读写逻辑控制信号的排列组合后的全部组合逻辑信号分别依次判断是否为第二读写使能信号,如果组合逻辑信号为第二读写使能信号,输出用于待测RAM进行读写的第二读写使能信号,如果组合逻辑信号不为第二读写使能信号,进行下一组合逻辑信号的判断,直至所有组合逻辑信号均判断完成,通过增加了对读写逻辑的完整性测试,避免了读写逻辑控制信号组合异常导致的读写失败,提高了RAM读写逻辑功能验证的全面性。
4、本发明技术方案中地址发生模块产生的每个地址上的待读写数据与每个待进行读写的地址数据对应相同,可以使得数据对比模块对比更方便,提高了读写逻辑功能验证的效率。
5、本发明技术方案中不仅增加了RAM全地址的测试,而且在ECC逻辑功能验证时,可以根据随机地址发生器以及水平翻转子模块,模拟随机ram bit翻转,具有随机性强,方案易操作的特点,提高了ECC逻辑功能验证的可靠性。
应当理解的是以上的一般描述以及后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见的,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方案中实施例一装置的结构示意图;
图2为本发明方案中实施例一装置中读写逻辑功能验证示意图;
图3为本发明方案中实施例一装置中ECC逻辑功能验证示意图;
图4为本发明方案中实施例一装置中ECC纠错验证模块内部的通信示意图;
图5为本发明方案中实施例二系统的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
实施例一
如图1-图3所示,本发明提供了一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,与RAM通信连接,包括:地址发生模块、读写逻辑转换模块、ECC纠错验证模块、数据对比模块,所述地址发生模块用于根据待测RAM地址位数产生读或写的全部地址,根据待测RAM的功能验证类型产生用于待测RAM进行读写的第一读写使能信号以及待读写数据;读写逻辑转换模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,将多个读写逻辑控制信号的排列组合后的全部组合逻辑信号分别依次判断是否为第二读写使能信号,如果组合逻辑信号为第二读写使能信号,输出用于待测RAM进行读写的第二读写使能信号,并在第一读写使能信号与第二读写使能信号均为读使能信号或写使能信号时,对待测RAM进行全地址读写;所述ECC纠错验证模块在待测RAM的功能验证类型为ECC逻辑功能验证时,根据地址发生模块产生的读或写的全部地址以及第一读写使能信号,对待测RAM进行读写,通过随机注错方式,进行ECC逻辑功能验证;所述数据对比模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,判断对待测RAM进行全地址读写的数据与地址发生模块发送的待读写的数据进行对比,进行读写逻辑功能验证。
其中,地址发生模块还可以用于接收用户通过通信总线(AXI总线)发送的用户功能验证请求信号(user signal或ram check),根据用户功能验证请求信号确定待测RAM的功能验证类型。
具体地,根据用户功能验证请求信号确定待测RAM的功能验证类型具体是:根据用户功能验证请求信号、功能验证类型数据库确定待测RAM的功能验证类型,所述功能验证类型数据库存储有用户功能验证请求信号与待测RAM的功能验证类型的对应的关系。
例如,如下表一所示
具体地,地址发生模块的作用主要是:当接收到来至AXI总线的逻辑检查的请求(ram check)后,根据测试RAM地址位数n,可知RAM的最大地址为2n-1;根据待测RAM地址位数产生读或写的全部地址,根据待测RAM的功能验证类型(即用户功能验证请求信号,ramcheck)产生用于待测RAM进行读写的第一读写使能信号以及待读写数据。当片选信号使能后,进入一种读写逻辑状态后,判断第一读写使能信号是否有效。当第一读写使能信号为写使能有效时,判断当前地址是否为地址最大值,若不为地址最大值,地址从0进行累加,直到当地址等于地址最大值时停止;当第一读写使能信号为读使能有效时,判断当前地址是否为0,若不等于0,地址将从地址最大值进行累减,直到当地址为0时停止。
其中,读写逻辑转换模块根据读写逻辑控制信号(用于控制读或写的控制信号)的数量x,可计算出信号的排列组合数量最多为2x。当片选信号有效后,将读写逻辑控制信号设为全0作为初始状态S_idle,下一步分别依次判断多个读写逻辑控制信号排列组合后的多个组合逻辑信号是否有效,当组合逻辑信号有效(为第二读写使能信号),则输出用于待测RAM进行读写的第二读写使能信号,并在第一读写使能信号与第二读写使能信号均为读使能信号或写使能信号时,对待测RAM进行全地址读写;若组合逻辑信号无效(不为第二读写使能信号),则进行数据记录,将当前组合逻辑信号记录并标记为无效组合逻辑信号。标记完成后,跳转至下一种组合逻辑信号判断,直到所有组合逻辑信号跳转完毕,则读写逻辑功能验证的完整性测试结束,显示所有组合逻辑信号的测试结果。
其中,数据对比模块:当排列组合后的组合逻辑信号有效(为第二读写使能信号)后,按地址发生模块产生的全地址由低到高进行连读写操作,以数据位宽为32bit,地址位宽为4bit为例,地址范围为0x0–0xF。为了便于数据对比,将地址发生模块产生的每个地址上的待读写数据Write_data与每个待进行读写的地址数据对应相同,即地址0x0上对应的待读写数据同样设为0x0,随地址增加进行递增,则地址0xF对应的数据为0xF;读数据时,地址由高到低进行读取,当读取地址与地址数据大小不一致时,说明此时数据异常,连续统计10个异常数据后,进行错误数据记录,并标记出当前读写使能逻辑。标记完成后,跳转至下一种逻辑组合状态,直到所有状态跳转完毕,则逻辑完整性测试结束,显示所有状态的测试结果。
读写逻辑验证,通常指单个或多个读写逻辑控制信号进行一定的逻辑运算后的结果作为RAM读写端口的使能信号。这些控制信号通常由数字电路中其他模块如DMA(directmemory access),数据缓存单元等进行控制。当有多个模块需要对RAM进行访问时,将逻辑访问的时序信号、读写数据以及地址传递给RAM。通过数据检测组件进行数据对比验证,确定逻辑访问时,根据访问地址和数据判断访问逻辑是否正常。
具体地,用户通过AXI总线的用户功能验证请求信号ram check发出进行读写测试的请求;依据表1中数据对ram check[2:0]进行识别,当检测到ram check[2:0]=001时,对待测ram进行读写测试;
当地址发生模块发出的第一读写使能信号为写使能信号时,地址从0进行累加,直到全地址中的地址最大值,同时将全地址与相应地址要写的数据发送到数据对比模块;当地址发生模块发出的第一读写使能信号为读使能信号时,地址从全地址中的地址最大值进行累减,直到全地址中的0结束,对待测RAM进行全地址读取;
读写逻辑转换模块片在选信号有效后,将读写逻辑控制信号设为全0作为初始状态S_idle,下一步判读写使能信号是否有效;将多个读写逻辑控制信号的排列组合后的全部组合逻辑信号分别依次判断是否为第二读写使能信号,如果组合逻辑信号为第二读写使能信号,输出用于待测RAM进行读写的第二读写使能信号,并在第一读写使能信号与第二读写使能信号均为写使能信号时,对待测RAM进行全地址写,并把全地址数据和待写入数据发送到数据对比模块进行对比;并在第一读写使能信号与第二读写使能信号均为读使能信号时,对待测RAM进行全地址读,并把全地址数据和已读取数据发送到数据对比模块进行对比;如果组合逻辑信号不为第二读写使能信号,则进行数据记录,将当前组合逻辑信号记录并标记为无效组合逻辑信号;并进行下一组合逻辑信号的判断,直至所有组合逻辑信号均判断完成;
数据对比模块,将地址发生模块发送的全地址数据以及待写入数据与读写逻辑转换模块发送来的全地址数据和已读取数据进行对比,地址发生模块发送的全地址数据以及待写入数据与读写逻辑转换模块发送来的全地址数据和已读取数据均一致(即地址发生模块发送的全地址数据与读写逻辑转换模块发送来的全地址数据一致,地址发生模块发送的待写入数据与读写逻辑转换模块发送来的已读取数据均一致),即为测试通过。
其中,如图4所示,ECC纠错验证模块包括数据翻转子模块(level translator)、随机地址发生器(Random_address)、ECC纠错功能组件(Ecc_check)、状态控制器(state_controller),还包含待读写数据输入接口DATA_IN、翻转bit数量ERROR_BIT_CNT、地址ADDRESS、读/写数据总线WR以及片选CS端口。ECC纠错功能组件用于在初次使能ECC纠错功能(Ecc_check_en)时,根据地址发生模块产生的读或写的全部地址(ADDRESS)以及第一读写使能信号(第一读写使能信号为写使能信号,即WR总线),对待测RAM进行全地址写操作后,确认所有地址都有数据后,在再次使能ECC纠错功能时,对待测RAM进行全地址的读操作,当检测到待测RAM内随机产生的注错地址的数据出错以及写使能有效时,将纠错后的数据写回到原随机产生的注错地址中,在输出过程中,再次检测原随机产生的注错地址的数据是否已经被修复;所述随机地址发生器在关闭ECC纠错功能时,获取输入的注错地址数量(ERROR_BIT_CNT),根据输入的注错地址数量,随机产生对应数量的注错地址;所述数据翻转子模块用于将随机产生的注错地址中的数据进行数据翻转后,再次写入随机产生的注错地址中;所述状态控制器用于在ECC纠错功能组件检测到待测RAM内随机产生的注错地址的数据出错时,拉低ECC数据完成信号(ECC_DATA_READY),触发写使能有效;在ECC纠错功能组件检测到待测RAM中原随机产生的注错地址的数据已经被修复时,拉高ECC数据完成信号,触发写使能无效。
进一步地,ECC纠错验证模块还包括编码器(ECC_encoder)以及译码器(ECC_decoder),编码器用于将地址发生模块产生的待写入数据(DATA_IN)进行编码后写入待测RAM;译码器用于将待测RAM中待读取数据(ram_data_out)进行译码后,输出待读取的数据(ECC_DATA_OUT)。
ECC逻辑功能验证(ECC纠错功能验证)将在读写逻辑功能检测完成确认数据读写正常后进行测试。本发明可以实现包括在ECC功能开启后进行RAM全地址写操作;关闭ECC功能后,利用随机函数发生器作为随机地址发生器,在RAM地址范围内随机产生需要人为注错的地址,并将该地址中的bit数据电平进行翻转;开启ECC功能,进行数据读出,进行ECC功能校验。
具体地,系统通过AXI总线的ram check(用户功能验证请求信号)发出进行ECC逻辑功能测试的请求;
地址发生模块依据表1数据对ram check[2:0]进行识别,当检测到ram check[2:0]=010时,进行ram ECC单bit纠错功能测试;在片选信号使能后,使能ECC功能,对待测RAM进行全地址写操作后,确认所有地址都有数据后,ECC纠错功能组件会生成一组对应的ECC校验码。
关闭ECC纠错功能组件,即不再使能ECC_check_start,随机地址发生器(Random_address)会根据输入的注错地址数量(ERROR_BIT_CNT),随机产生对应数量的地址。将注错地址中的数据进行数据翻转(level translator)后(翻转bit数量与输入的注错地址数量对应相同),再次写入注错地址中;
重新打开ECC纠错功能组件,即再次使能ECC功能,对待测RAM进行全地址的读操作。当检测到待测RAM内数据出错时,拉低ECC_DATA_READY信号,然后状态控制器将state_flag置位,写使能有效时;将纠错后的数据correct_data写回到原地址(原随机产生的注错地址)中,然后进行再次输出。
在输出过程中,ECC纠错功能组件会再次检测数据是否有误(原随机产生的注错地址的数据是否已被修复,即再次检测数据生成的校验码与初次使能生成的校验码是否相同,如果相同,则原随机产生的注错地址的数据已被修复,即再次检测数据无误;如果不同,则原随机产生的注错地址的数据未被修复,即再次检测数据有误;),如果此时注错的数据已经被修复,ECC_DATA_READY有效,状态控制器将state_flag拉高,写使能无效,则证明在错误位数满足纠错能力的情况下,可以修复RAM内发生的bit因意外翻转情况。
具体地,随机地址发生器中获取的输入的注错地址数量为1个比特或2个比特或3个比特,可以根据用户功能验证请求信号(ram check)以及表1中,确定输入的注错地址数量为1个比特或2个比特或3个比特。
进一步地,本发明技术方案中的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,还包括时钟复位模块,时钟复位模块用于对兼容RAM读写逻辑与ECC逻辑的功能验证装置进行时钟复位。
需要说明的是,本发明技术方案中一种兼容RAM读写逻辑与ECC逻辑的功能验证装置可以为硬件逻辑检查芯片(RTL芯片),将RAM读写逻辑验证以及ECC逻辑功能验证集成到逻辑检查芯片上的验证平台中,以此检查RTL内部逻辑产生RAM访问时的读写访问是否合法、读写访问是否存在冲突和RAM访问接口信号是否产生不定态。通过利用AXI总线的usersignal(用户请求信号),将其设置为RAM逻辑功能检查信号ram check(用户功能验证请求信号),用于选择逻辑检查的功能,采用随机注错的方式对ECC功能进行验证,提高了RAM控制器的逻辑完整性以及数据可靠性;内部的地址发生模块、读写逻辑转换模块、ECC纠错验证模块、数据对比模块、时钟复位模块均可以通过软件功能模块和/或硬件电路模块实现,本发明在此不做限制。
本发明技术方案中地址发生模块用于产生读或写的全部地址,根据待测RAM的功能验证类型产生用于待测RAM进行读写的第一读写使能信号以及待读写数据;所述读写逻辑转换模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,进行读写逻辑功能验证;所述ECC(Error Correcting Code,纠错码)纠错验证模块在待测RAM的功能验证类型为ECC逻辑功能验证时,通过随机注错方式,进行ECC逻辑功能验证;所述数据对比模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,判断对待测RAM进行全地址读写的数据与地址发生模块发送的待读写的数据进行对比,进行读写逻辑功能验证,有效解决由于现有技术造成RAM存储器读写逻辑与ECC逻辑的功能验证不能兼容的问题,有效地提高了RAM存储器功能验证的效率。
本发明技术方案中地址发生模块,通过利用AXI(Advanced eXtensibleInterface),高级扩展接口)总线的User signal(用户功能验证请求信号)进行功能控制,根据用户功能验证请求信号确定待测RAM的功能验证类型,不仅不影响通常通信带宽,而且还可以根据用户请求灵活调整待测RAM的功能验证类型。
本发明技术方案中读写逻辑转换模块将多个读写逻辑控制信号的排列组合后的全部组合逻辑信号分别依次判断是否为第二读写使能信号,如果组合逻辑信号为第二读写使能信号,输出用于待测RAM进行读写的第二读写使能信号,如果组合逻辑信号不为第二读写使能信号,进行下一组合逻辑信号的判断,直至所有组合逻辑信号均判断完成,通过增加了对读写逻辑的完整性测试,避免了读写逻辑控制信号组合异常导致的读写失败,提高了RAM读写逻辑功能验证的全面性。
本发明技术方案中地址发生模块产生的每个地址上的待读写数据与每个待进行读写的地址数据对应相同,可以使得数据对比模块对比更方便,提高了读写逻辑功能验证的效率。
本发明技术方案中不仅增加了RAM全地址的测试,而且在ECC逻辑功能验证时,可以根据随机地址发生器以及水平翻转子模块,模拟随机rambit翻转,具有随机性强,方案易操作的特点,提高了ECC逻辑功能验证的可靠性。
实施例二
如图5所示,本发明技术方案还提供了一种兼容RAM读写逻辑与ECC逻辑的功能验证系统,包括实施例一中的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置(即逻辑检查单元,logic check)、RAM、AXI总线,所述一种兼容RAM读写逻辑与ECC逻辑的功能验证装置通过AXI总线获取用户通过AXI主设备(AXI master1)发送的用户功能验证请求,根据用户功能验证请求信号确定待测RAM的功能验证类型,根据确定待测RAM的功能验证类型对待测RAM分别进行RAM读写逻辑与ECC逻辑的功能验证。
其中,一种兼容RAM读写逻辑与ECC逻辑的功能验证装置中的地址发生模块还可以用于接收用户通过通信总线(AXI总线)发送的用户功能验证请求信号(user signal或ramcheck),根据用户功能验证请求信号确定待测RAM的功能验证类型。
具体地,根据用户功能验证请求信号确定待测RAM的功能验证类型具体是:根据用户功能验证请求信号、功能验证类型数据库确定待测RAM的功能验证类型,所述功能验证类型数据库存储有用户功能验证请求信号与待测RAM的功能验证类型的对应的关系。
具体地,地址发生模块的作用主要是:当接收到来至AXI总线的逻辑检查的请求(ram check)后,根据测试RAM地址位数n,可知RAM的最大地址为2n-1;根据待测RAM地址位数产生读或写的全部地址,根据待测RAM的功能验证类型(即用户功能验证请求信号,ramcheck)产生用于待测RAM进行读写的第一读写使能信号以及待读写数据。当片选信号使能后,进入一种读写逻辑状态后,判断第一读写使能信号是否有效。当第一读写使能信号为写使能有效时,判断当前地址是否为地址最大值,若不为地址最大值,地址从0进行累加,直到当地址等于地址最大值时停止;当第一读写使能信号为读使能有效时,判断当前地址是否为0,若不等于0,地址将从地址最大值进行累减,直到当地址为0时停止。
其中,读写逻辑转换模块根据读写逻辑控制信号(用于控制读或写的控制信号)的数量x,可计算出信号的排列组合数量最多为2x。当片选信号有效后,将读写逻辑控制信号设为全0作为初始状态S_idle,下一步分别依次判断多个读写逻辑控制信号排列组合后的多个组合逻辑信号是否有效,当组合逻辑信号有效(为第二读写使能信号),则输出用于待测RAM进行读写的第二读写使能信号,并在第一读写使能信号与第二读写使能信号均为读使能信号或写使能信号时,对待测RAM进行全地址读写;若组合逻辑信号无效(不为第二读写使能信号),则进行数据记录,将当前组合逻辑信号记录并标记为无效组合逻辑信号。标记完成后,跳转至下一种组合逻辑信号判断,直到所有组合逻辑信号跳转完毕,则读写逻辑功能验证的完整性测试结束,显示所有组合逻辑信号的测试结果。
其中,数据对比模块:当排列组合后的组合逻辑信号有效(为第二读写使能信号)后,按地址发生模块产生的全地址由低到高进行连读写操作,以数据位宽为32bit,地址位宽为4bit为例,地址范围为0x0–0xF。为了便于数据对比,将地址发生模块产生的每个地址上的待读写数据Write_data与每个待进行读写的地址数据对应相同,即地址0x0上对应的待读写数据同样设为0x0,随地址增加进行递增,则地址0xF对应的数据为0xF;读数据时,地址由高到低进行读取,当读取地址与地址数据大小不一致时,说明此时数据异常,连续统计10个异常数据后,进行错误数据记录,并标记出当前读写使能逻辑。标记完成后,跳转至下一种逻辑组合状态,直到所有状态跳转完毕,则逻辑完整性测试结束,显示所有状态的测试结果。
读写逻辑验证,通常指单个或多个读写逻辑控制信号进行一定的逻辑运算后的结果作为RAM读写端口的使能信号。这些控制信号通常由数字电路中其他模块如DMA(directmemory access),数据缓存单元等进行控制。当有多个模块需要对RAM进行访问时,将逻辑访问的时序信号、读写数据以及地址传递给RAM。通过数据检测组件进行数据对比验证,确定逻辑访问时,根据访问地址和数据判断访问逻辑是否正常。
具体地,用户通过AXI总线的用户功能验证请求信号ram check发出进行读写测试的请求;依据表1中数据对ram check[2:0]进行识别,当检测到ram check[2:0]=001时,对待测ram进行读写测试;
当地址发生模块发出的第一读写使能信号为写使能信号时,地址从0进行累加,直到全地址中的地址最大值,同时将全地址与相应地址要写的数据发送到数据对比模块;当地址发生模块发出的第一读写使能信号为读使能信号时,地址从全地址中的地址最大值进行累减,直到全地址中的0结束,对待测RAM进行全地址读取;
读写逻辑转换模块片在选信号有效后,将读写逻辑控制信号设为全0作为初始状态S_idle,下一步判读写使能信号是否有效;将多个读写逻辑控制信号的排列组合后的全部组合逻辑信号分别依次判断是否为第二读写使能信号,如果组合逻辑信号为第二读写使能信号,输出用于待测RAM进行读写的第二读写使能信号,并在第一读写使能信号与第二读写使能信号均为写使能信号时,对待测RAM进行全地址写,并把全地址数据和待写入数据发送到数据对比模块进行对比;并在第一读写使能信号与第二读写使能信号均为读使能信号时,对待测RAM进行全地址读,并把全地址数据和已读取数据发送到数据对比模块进行对比;如果组合逻辑信号不为第二读写使能信号,则进行数据记录,将当前组合逻辑信号记录并标记为无效组合逻辑信号;并进行下一组合逻辑信号的判断,直至所有组合逻辑信号均判断完成;
数据对比模块,将地址发生模块发送的全地址数据以及待写入数据与读写逻辑转换模块发送来的全地址数据和已读取数据进行对比,地址发生模块发送的全地址数据以及待写入数据与读写逻辑转换模块发送来的全地址数据和已读取数据均一致(即地址发生模块发送的全地址数据与读写逻辑转换模块发送来的全地址数据一致,地址发生模块发送的待写入数据与读写逻辑转换模块发送来的已读取数据均一致),即为测试通过。
其中,如图3所示,ECC纠错验证模块包括数据翻转子模块(level translator)、随机地址发生器(Random_address)、ECC纠错功能组件(Ecc_check)、状态控制器(state_controller),还包含待读写数据输入接口DATA_IN、翻转bit数量ERROR_BIT_CNT、地址ADDRESS、读/写数据总线WR以及片选CS端口。ECC纠错功能组件用于在初次使能ECC纠错功能(Ecc_check_en)时,根据地址发生模块产生的读或写的全部地址(ADDRESS)以及第一读写使能信号(第一读写使能信号为写使能信号,即WR总线),对待测RAM进行全地址写操作后,确认所有地址都有数据后,在再次使能ECC纠错功能时,对待测RAM进行全地址的读操作,当检测到待测RAM内随机产生的注错地址的数据出错以及写使能有效时,将纠错后的数据写回到原随机产生的注错地址中,在输出过程中,再次检测原随机产生的注错地址的数据是否已经被修复;所述随机地址发生器在关闭ECC纠错功能时,获取输入的注错地址数量(ERROR_BIT_CNT),根据输入的注错地址数量,随机产生对应数量的注错地址;所述数据翻转子模块用于将随机产生的注错地址中的数据进行数据翻转后,再次写入随机产生的注错地址中;所述状态控制器用于在ECC纠错功能组件检测到待测RAM内随机产生的注错地址的数据出错时,拉低ECC数据完成信号(ECC_DATA_READY),触发写使能有效;在ECC纠错功能组件检测到待测RAM中原随机产生的注错地址的数据已经被修复时,拉高ECC数据完成信号,触发写使能无效。
进一步地,ECC纠错验证模块还包括编码器(ECC_encoder)以及译码器(ECC_decoder),编码器用于将地址发生模块产生的待写入数据(DATA_IN)进行编码后写入待测RAM;译码器用于将待测RAM中待读取数据(ram_data_out)进行译码后,输出待读取的数据(ECC_DATA_OUT)。
ECC逻辑功能验证(ECC纠错功能验证)将在读写逻辑功能检测完成确认数据读写正常后进行测试。本发明可以实现包括在ECC功能开启后进行RAM全地址写操作;关闭ECC功能后,利用随机函数发生器作为随机地址发生器,在RAM地址范围内随机产生需要人为注错的地址,并将该地址中的bit数据电平进行翻转;开启ECC功能,进行数据读出,进行ECC功能校验。
具体地,系统通过AXI总线的ram check(用户功能验证请求信号)发出进行ECC逻辑功能测试的请求;
地址发生模块依据表1数据对ram check[2:0]进行识别,当检测到ram check[2:0]=010时,进行ram ECC单bit纠错功能测试;在片选信号使能后,使能ECC功能,对待测RAM进行全地址写操作后,确认所有地址都有数据后,ECC纠错功能组件会生成一组对应的ECC校验码。
关闭ECC纠错功能组件,即不再使能ECC_check_start,随机地址发生器(Random_address)会根据输入的注错地址数量(ERROR_BIT_CNT),随机产生对应数量的地址。将注错地址中的数据进行数据翻转(level translator)后(翻转bit数量与输入的注错地址数量对应相同),再次写入注错地址中;
重新打开ECC纠错功能组件,即再次使能ECC功能,对待测RAM进行全地址的读操作。当检测到待测RAM内数据出错时,拉低ECC_DATA_READY信号,然后状态控制器将state_flag置位,写使能有效时;将纠错后的数据correct_data写回到原地址(原随机产生的注错地址)中,然后进行再次输出。
在输出过程中,ECC纠错功能组件会再次检测数据是否有误(原随机产生的注错地址的数据是否已被修复,即再次检测数据生成的校验码与初次使能生成的校验码是否相同,如果相同,则原随机产生的注错地址的数据已被修复,即再次检测数据无误;如果不同,则原随机产生的注错地址的数据未被修复,即再次检测数据有误;),如果此时注错的数据已经被修复,ECC_DATA_READY有效,状态控制器将state_flag拉高,写使能无效,则证明在错误位数满足纠错能力的情况下,可以修复RAM内发生的bit因意外翻转情况。
具体地,随机地址发生器中获取的输入的注错地址数量为1个比特或2个比特或3个比特,可以根据用户功能验证请求信号(ram check)以及表1中,确定输入的注错地址数量为1个比特或2个比特或3个比特。
进一步地,本发明技术方案中的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,还包括时钟复位模块,时钟复位模块用于对兼容RAM读写逻辑与ECC逻辑的功能验证装置进行时钟复位。
需要说明的是,本发明技术方案中一种兼容RAM读写逻辑与ECC逻辑的功能验证装置可以为硬件逻辑检查芯片(RTL芯片),将RAM读写逻辑验证以及ECC逻辑功能验证集成到逻辑检查芯片上的验证平台中,以此检查RTL内部逻辑产生RAM访问时的读写访问是否合法、读写访问是否存在冲突和RAM访问接口信号是否产生不定态。通过利用AXI总线的usersignal(用户请求信号),将其设置为RAM逻辑功能检查信号ram check(用户功能验证请求信号),用于选择逻辑检查的功能,采用随机注错的方式对ECC功能进行验证,提高了RAM控制器的逻辑完整性以及数据可靠性。
本发明技术方案中地址发生模块用于产生读或写的全部地址,根据待测RAM的功能验证类型产生用于待测RAM进行读写的第一读写使能信号以及待读写数据;所述读写逻辑转换模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,进行读写逻辑功能验证;所述ECC(Error Correcting Code,纠错码)纠错验证模块在待测RAM的功能验证类型为ECC逻辑功能验证时,通过随机注错方式,进行ECC逻辑功能验证;所述数据对比模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,判断对待测RAM进行全地址读写的数据与地址发生模块发送的待读写的数据进行对比,进行读写逻辑功能验证,有效解决由于现有技术造成RAM存储器读写逻辑与ECC逻辑的功能验证不能兼容的问题,有效地提高了RAM存储器功能验证的效率。
本发明技术方案中地址发生模块,通过利用AXI(Advanced eXtensibleInterface),高级扩展接口)总线的User signal(用户功能验证请求信号)进行功能控制,根据用户功能验证请求信号确定待测RAM的功能验证类型,不仅不影响通常通信带宽,而且还可以根据用户请求灵活调整待测RAM的功能验证类型。
本发明技术方案中读写逻辑转换模块将多个读写逻辑控制信号的排列组合后的全部组合逻辑信号分别依次判断是否为第二读写使能信号,如果组合逻辑信号为第二读写使能信号,输出用于待测RAM进行读写的第二读写使能信号,如果组合逻辑信号不为第二读写使能信号,进行下一组合逻辑信号的判断,直至所有组合逻辑信号均判断完成,通过增加了对读写逻辑的完整性测试,避免了读写逻辑控制信号组合异常导致的读写失败,提高了RAM读写逻辑功能验证的全面性。
本发明技术方案中地址发生模块产生的每个地址上的待读写数据与每个待进行读写的地址数据对应相同,可以使得数据对比模块对比更方便,提高了读写逻辑功能验证的效率。
本发明技术方案中不仅增加了RAM全地址的测试,而且在ECC逻辑功能验证时,可以根据随机地址发生器以及水平翻转子模块,模拟随机ram bit翻转,具有随机性强,方案易操作的特点,提高了ECC逻辑功能验证的可靠性。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,其特征是,与RAM通信连接,包括:地址发生模块、读写逻辑转换模块、ECC纠错验证模块、数据对比模块,所述地址发生模块用于根据待测RAM地址位数产生读或写的全部地址,根据待测RAM的功能验证类型产生用于待测RAM进行读写的第一读写使能信号以及待读写数据;所述读写逻辑转换模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,将多个读写逻辑控制信号的排列组合后的全部组合逻辑信号分别依次判断是否为第二读写使能信号,如果组合逻辑信号为第二读写使能信号,输出用于待测RAM进行读写的第二读写使能信号,并在第一读写使能信号与第二读写使能信号均为读使能信号或写使能信号时,对待测RAM进行全地址读写;所述ECC纠错验证模块在待测RAM的功能验证类型为ECC逻辑功能验证时,根据地址发生模块产生的读或写的全部地址以及第一读写使能信号,对待测RAM进行读写,通过随机注错方式,进行ECC逻辑功能验证;所述数据对比模块用于在待测RAM的功能验证类型为读写逻辑功能验证时,判断对待测RAM进行全地址读写的数据与地址发生模块发送的待读写的数据进行对比,进行读写逻辑功能验证。
2.根据权利要求1所述的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,其特征是,所述地址发生模块还用于接收用户通过通信总线发送的用户功能验证请求信号,根据用户功能验证请求信号确定待测RAM的功能验证类型。
3.根据权利要求2所述的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,其特征是,根据用户功能验证请求信号确定待测RAM的功能验证类型具体是:根据用户功能验证请求信号、功能验证类型数据库确定待测RAM的功能验证类型,所述功能验证类型数据库存储有用户功能验证请求信号与待测RAM的功能验证类型的对应的关系。
4.根据权利要求1所述的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,其特征是,所述读写逻辑转换模块还用于如果组合逻辑信号不为第二读写使能信号,进行下一组合逻辑信号的判断,直至所有组合逻辑信号均判断完成。
5.根据权利要求1所述的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,其特征是,地址发生模块产生的每个地址上的待读写数据与每个待进行读写的地址数据对应相同。
6.根据权利要求1所述的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,其特征是,所述ECC纠错验证模块包括数据翻转子模块、随机地址发生器、ECC纠错功能组件、状态控制器,所述ECC纠错功能组件用于在初次使能ECC纠错功能时,根据地址发生模块产生的读或写的全部地址以及第一读写使能信号,对待测RAM进行全地址写操作后,确认所有地址都有数据后,在再次使能ECC纠错功能时,对待测RAM进行全地址的读操作,当检测到待测RAM内随机产生的注错地址的数据出错以及写使能有效时,将纠错后的数据写回到原随机产生的注错地址中,在输出过程中,再次检测原随机产生的注错地址的数据是否已经被修复;所述随机地址发生器在关闭ECC纠错功能时,获取输入的注错地址数量,根据输入的注错地址数量,随机产生对应数量的注错地址;所述数据翻转子模块用于将随机产生的注错地址中的数据进行数据翻转后,再次写入随机产生的注错地址中;所述状态控制器用于在ECC纠错功能组件检测到待测RAM内随机产生的注错地址的数据出错时,拉低ECC数据完成信号,触发写使能有效;在ECC纠错功能组件检测到待测RAM中原随机产生的注错地址的数据已经被修复时,拉高ECC数据完成信号,触发写使能无效。
7.根据权利要求6所述的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,其特征是,所述ECC纠错验证模块还包括编码器以及译码器,所述编码器用于将地址发生模块产生的待写入数据进行编码后写入待测RAM;所述译码器用于将待测RAM中待读取数据进行译码后,输出待读取的数据。
8.根据权利要求6所述的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,其特征是,所述随机地址发生器中获取的输入的注错地址数量为1个比特或2个比特或3个比特。
9.根据权利要求1-8任意一项所述的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置,其特征是,还包括时钟复位模块,所述时钟复位模块用于对兼容RAM读写逻辑与ECC逻辑的功能验证装置进行时钟复位。
10.一种兼容RAM读写逻辑与ECC逻辑的功能验证系统,其特征是,包括权利要求1-9任意一项所述的一种兼容RAM读写逻辑与ECC逻辑的功能验证装置、RAM、AXI总线,所述一种兼容RAM读写逻辑与ECC逻辑的功能验证装置通过AXI总线获取用户功能验证请求,根据用户功能验证请求信号确定待测RAM的功能验证类型,根据确定待测RAM的功能验证类型对待测RAM分别进行RAM读写逻辑与ECC逻辑的功能验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211309367.2A CN115831209A (zh) | 2022-10-25 | 2022-10-25 | 一种兼容ram读写逻辑与ecc逻辑的功能验证装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211309367.2A CN115831209A (zh) | 2022-10-25 | 2022-10-25 | 一种兼容ram读写逻辑与ecc逻辑的功能验证装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115831209A true CN115831209A (zh) | 2023-03-21 |
Family
ID=85525377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211309367.2A Pending CN115831209A (zh) | 2022-10-25 | 2022-10-25 | 一种兼容ram读写逻辑与ecc逻辑的功能验证装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115831209A (zh) |
-
2022
- 2022-10-25 CN CN202211309367.2A patent/CN115831209A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5392302A (en) | Address error detection technique for increasing the reliability of a storage subsystem | |
US7565579B2 (en) | Post (power on self test) debug system and method | |
CN108600047B (zh) | 串行传输芯片及serdes电路测试方法 | |
JPS6321223B2 (zh) | ||
KR20090053960A (ko) | 시험 장치 및 시험 방법 | |
US20190051370A1 (en) | Methods, systems and apparatus for in-field testing for generic diagnostic components | |
US8365133B2 (en) | Testing apparatus, testing method, and program | |
US20080294943A1 (en) | Sata interface tester and testing method | |
CN109213703B (zh) | 一种数据检测方法及数据检测装置 | |
CN101923494B (zh) | 一种存储器控制器验证系统、方法及记分板 | |
US20100318874A1 (en) | Electronic memory device and method for error correcting thereof | |
CN114237972A (zh) | 一种用于总线传输的端到端ecc保护装置及方法 | |
CN112068985B (zh) | 带编程指令识别的norflash存储器ecc检纠错方法及系统 | |
CN109933453A (zh) | 错误校正方法和使用其的半导体器件 | |
CN111861858A (zh) | 一种启动图像压缩功能验证的方法、装置及相关设备 | |
WO2015165202A1 (zh) | 一种基于汉明码存取数据的方法及集成随机存取存储器 | |
CN115831209A (zh) | 一种兼容ram读写逻辑与ecc逻辑的功能验证装置及系统 | |
US11550681B2 (en) | System and method for error injection in system-on-chip | |
US11353509B2 (en) | Digital circuit robustness verification method and system | |
US7210079B2 (en) | Apparatus and method for adapting a level sensitive device to produce edge-triggered behavior | |
CN115938451A (zh) | 测试方法及测试系统 | |
CN115910183A (zh) | 测试方法及测试系统 | |
CN113160875A (zh) | 芯片测试系统和测试方法 | |
CN116991651B (zh) | 一种错误注入方法、片上系统、计算机设备及存储介质 | |
CN110991129A (zh) | 一种基于fpga的密码协处理器全自动仿真验证方法 |
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 |