一种自动化RAM容量测试装置的制作方法

文档序号:17160168发布日期:2019-03-20 00:34阅读:242来源:国知局
一种自动化RAM容量测试装置的制作方法

本发明属于ram技术领域,涉及一种自动化ram容量测试装置。

可以应用在各类采用ram存储器的硬件系统中。为了解决硬件系统在适配不同容量的ram时无法自动识别ram的容量和宽度的问题。该装置通过对ram位宽和深度采用特定算法进行多次试探性采样确定ram的位宽和深度,在得到正确的位宽和深度参数后计算出ram的容量。该方法可以通过硬件实现模块化并嵌入到硬件电路系统中,使系统具备自动识别ram容量的功能,在系统更换ram后不用更改系统代码和状态,提高了系统的兼容性、易用性和可维护性,具有十分重要的应用意义。



背景技术:

自动化ram容量测试装置是为了解决电路系统在使用过程中需要对ram进行更改或者ram容量发生变化的情况下,系统无法自动识别新的ram容量的问题。在大多数电路系统中,系统使用的ram是系统在硬件设计时由设计人员指定的,ram的容量已经固定好,所有关于ram的程序操作都按照事先定好的ram容量进行操作。但是随着外部条件的变化如设计需求更改、ram芯片停产等,硬件系统会产生更换ram的需求,会导致ram的容量有可能发生变化。但是硬件系统在ram容量发生变化的情况下却不能随着变化做出自动调整,往往需要设计人员重新编写软件程序,耗费了大量的人力和精力,不能很好的实现硬件系统的兼容性和扩展性。

通常在更换ram芯片后,设计人员都需要根据新更换的芯片对系统程序进行重新改写,以适应新的ram的位宽和深度。这种方式在相对直接,但是随着系统版本的升级,芯片不断更换会产生多个版本的软件,在软件维护方面带来了一定的困难。

因此,采用直接修改系统软件来适配新的ram的方式存在着版本较多、难以管理的风险。需要利用一种灵活的、自动测试ram容量的装置来对硬件系统中更换的ram进行容量测试,并将位宽和深度参数提供给系统软件进行更新。



技术实现要素:

本发明的目的在于提供一种自动化ram容量测试装置,针对解决硬件电路系统中更换不同的ram不能自动测试其容量的问题。采用该方法能够使硬件系统自动识别ram的容量,测量其位宽和深度参数并将参数进行上报供系统软件使用,避免了设计人员重新修改系统程序导致的版本混乱的风险。

本发明的技术方案如下:一种自动化ram容量测试装置,其特征在于,主要由ram位宽测试模块、ram深度测试模块、ram容量计算模块和总线接口模块四部分组成;ram位宽测试模块对ram的位宽参数进行测试,将测试的位宽参数发送给ram容量计算模块;ram深度测试模块负责对ram的深度参数进行测试,将测试的深度参数发送给ram容量计算模块;ram容量计算模块接收ram位宽测试模块和ram深度测试模块提供的ram位宽参数和ram深度参数,并通过位宽参数和深度参数来计算出ram的容量,将位宽参数、深度参数和容量参数通过总线接口模块传递给外部处理器进行处理;总线接口模块作为ram容量测试模块和外部处理器的接口,用于数据的传输。

优选地,总线接口模块分别向ram位宽测试模块、ram深度测试模块和ram容量计算模块提供一套总线接口用于数据的传输;ram容量计算模块分别向ram位宽测试模块和ram深度测试模块提供一套独立的参数传输接口用于接收ram位宽测试模块和ram深度测试模块传来的位宽参数和深度参数。

优选地,将待测ram直接连接到fpga的总线接口模块上,总线接口模块连接ram端的位宽不小于256bit。

优选地,ram位宽测试模块和ram深度测试是通过向ram写入特定的数据并进行回读的方式来计算ram的位宽参数和深度参数。

进一步地,对于位宽参数w的测试方式是:位宽参数测试模块向ram写入一包数据并进行回读,测试模块写入的数据位宽为256bit,比较写入数据和读出数据的差异,根据回读数据与写入数据相同部分的宽度确定ram的位宽。

进一步地,位宽参数测试时,在ram的3个不同的地址进行测试,将得到的3个位宽参数进行比较,如果存在不一致的情况,则采用3选2的方式确定位宽参数,即2个相同的值作为位宽参数。

进一步地,对于深度参数d的测试方式是:在确定了位宽参数w后,对深度参数d进行测试;深度测试模块向被测ram地址0开始逐一进行w0、r0、w1、r1操作,在初始情况下,地址记录器的值为0,当对一个地址完成一次w0、r0、w1、r1操作且回读到的数据与写入的数据一致时,地址记录器的值自动加一,模块向ram下一个地址进行操作;当在某个地址完成操作且回读到的数据与写入的数据不一致时,进行坏块判断,如果判断是坏块则地址记录器值加一,继续下一个地址操作;如果判断不为坏块,则地址记录器值不加一并且当前的值为该ram的深度参数,模块也不会继续下一个地址操作。

进一步地,对于坏块判断的方式是:坏块是ram中某一个或几个bit存在常1或常0的情况,在深度测试模块进行数据回读后比较,如果写入数据和回读数据在有限个bit位置,不一致的情况下,则判断是坏块引起的数据不一致,如果回读数据和写入数据全部不一致,则判断其不是坏块引起。

本发明的技术效果在于:

1.可以根据系统当前ram芯片变化实时的动态进行ram容量计算,能够快速的自动计算出ram芯片的容量并能够将参数自动上传,全部流程自动化实现,避免人工操作产生的错误。2.通过该装置可以自动检测更换后的ram芯片的容量、位宽和深度,系统软件可以通过该装置传来的ram容量、位宽和深度参数自行更新,适配新的系统,避免了人工更新软件带来的版本混乱的风险;3.该电路可以封装成为一个标准通用模块,在设计时加入电路之中而不用进行重新设计,具有很好的可重用性;4.该模块采用了可编程逻辑芯片作为算法的实现载体,能够根据使用者的需求加载不同的算法,使用十分灵活方便;5.该模块完全由硬件实现,不需要处理器即可实现ram的容量自动测试,在一定程度上节省了时间和成本。

附图说明

图1为模块整体架构原理图

图2为动态调整流程图

具体实施方式

下面结合附图对本发明做进一步的详细说明。

本发明采用一套智能的采集、调整和计算机制来实现系统自动测量ram容量的功能,架构如图1所示。所有硬件模块都采用一块fpga芯片进行实现,所有模块均采用rtl进行硬件描述。电路部分主要由ram位宽测试模块、ram深度测试模块、ram容量计算模块和总线接口模块四部分组成,四部分均采用rtl代码进行描述,可以在fpga芯片中实现硬件化。

其中模块内部连接关系如下:ram位宽测试模块负责对ram的位宽进行测试,确认更换的ram的位宽参数并提供给ram容量计算模块;ram深度测试模块负责对ram的最大深度进行测试,确认更换的ram的深度参数并提供给ram容量计算模块;ram容量计算模块负责接收ram位宽测试模块和ram深度测试模块提供的位宽参数和深度参数,并根据上述参数计算出ram的容量,将位宽参数、深度参数和容量参数通过总线接口模块传递给硬件系统处理器进行处理;总线接口模块作为ram容量测试模块和外部处理器的接口,负责数据的传输。

本方案各个模块的具体连接方式是总线接口模块分别向ram位宽测试模块、ram深度测试模块和ram容量计算模块提供一套总线接口用于数据的传输;ram容量计算模块分别向ram位宽测试模块和ram深度测试模块提供一套独立的参数传输接口用于接收ram位宽测试模块和ram深度测试模块传来的位宽参数和深度参数。

本方案需要使用一块可编程逻辑芯片,其功能是作为自动化ram测试模块的硬件载体,内部实现ram位宽测试模块、ram深度测试模块、ram容量计算模块和总线接口模块。采用该芯片的好处是:第一、可以灵活的进行算法的配置,在ram容量算法进行更新时不用重新进行模块的电路设计,之需要将新的算法加载到芯片中即可。第二、使得该模块完全由硬件实现,不需要处理器即可实现ram容量的自动计算。

本方案采需要将ram直接连接到fpga的总线接口模块上,由于ram的位宽未知,为了避免由于总线接口位宽小于ram位宽而导致的测量失效的情况,总线接口模块连接ram端的位宽应尽可能大,根据目前常用的ram芯片的位宽进行估计,建议总线接口模块与ram连接的数据位宽不小于256bit。

自动化ram容量检测装置的核心思想是通过检测ram的位宽参数和深度参数来计算ram的容量。在参数检测方面,其核心思想是通过向ram写入特定的数据并进行回读的方式来计算ram的位宽参数和深度参数。

该方法借助fpga可编程逻辑芯片作为硬件载体实现自动化ram容量测试模块。该模块整体架构如图1所示,模块主要由ram位宽测试模块、ram深度测试模块、ram容量计算模块和总线接口模块四大部分组成。其中ram位宽测试模块负责对ram的位宽参数进行采样测试,将测试的位宽参数发送给ram容量计算模块;ram深度测试模块负责对ram的深度参数进行采样测试,将测试的深度参数发送给ram容量计算模块;ram容量计算模块负责接收上述两模块传过来的ram位宽参数和ram深度参数,并通过位宽参数和深度参数来计算出ram的容量,并将这三个参数通过总线接口模块传送给外部主机;总线接口模块作为外部主机、ram芯片与内部通信的接口负责外部与内部之间的数据传输。

自动化ram容量测试算法的核心思想是将检测到的位宽参数w与深度参数d进行乘法操作,得到ram的容量m,用公式表达即:m=w*d,其中m与w的单位是bit。

对于位宽参数w的测试方式是:位宽参数测试的核心思想是位宽参数测试模块向ram写入一包数据并进行回读,通过比较写入数据和读出数据的差异确定位宽。由于测试模块写入的数据位宽大于ram的位宽,因此大于ram位宽的部分数据没有写入到ram中,在进行回读时也就读不到该部分数据(返回的值为全0或者全1),这部分数据采用l进行标记。根据回读数据与写入数据比较相同的部分来确定ram的位宽。具体实现方式举例如下,设定位宽参数测试模块的数据宽度为256bit,确保ram的位宽小于测试模块的位宽(经验条件下目前ram芯片位宽小于256bit)。在位宽参数测试模块向ram进行256bit的w1(所有位写1)、r1(所有位回读1)或w0(所有位写0)、r0(所有位回读0)操作。对于回读情况有两种:1、当l=0(即没有写入的部分回读表现为0)时,模块进行w1、r1操作,回读数据0~(n-1)bit为1,n~255bit为0。这种情况下确定位宽为n;2、当l=1(即没有写入的部分回读表现为1)时,w1操作失效,模块会进行w0、r0操作,回读数据0~(n-1)bit为0,n~255bit为1。这种情况下确定位宽为n。

为了排除位宽最后1bit由于坏块引起的误判,位宽测试会在ram的3个不同的地址进行测试,将得到的3个位宽参数进行比较。如果存在不一致的情况,则采用3选2的方式确定位宽参数,即2个相同的n的值作为位宽参数。

对于深度参数d的测试方式是:在确定了位宽参数w后,对深度参数d进行测试。深度测试模块向被测ram地址0开始逐一进行w0、r0、w1、r1操作,在初始情况下,地址记录器的值为0,当对一个地址完成一次w0、r0、w1、r1操作且回读到的数据与写入的数据一致时,地址记录器的值自动加一,模块向ram下一个地址进行操作;当在某个地址完成操作且回读到的数据与写入的数据不一致时,进行坏块判断,如果判断是坏块则地址记录器值加一,继续下一个地址操作;如果判断不为坏块,则地址记录器值不加一并且当前的值为该ram的深度参数,模块也不会继续下一个地址操作。

对于坏块判断的方式是:坏块是ram中某一个或几个bit存在常1或常0的情况,在深度测试模块进行数据回读后比较,如果写入数据和回读数据在有限个bit位置(不大于ram位宽)不一致的情况下,则判断是坏块引起的数据不一致,如果回读数据和写入数据全部不一致,则判断其不是坏块引起。

ram容量计算模块的工作原理是接收ram位宽测试模块传来的位宽参数w和ram深度测试模块传来的深度参数d,利用m=w*d公式计算出ram的容量为mbit,并将w、d和m通过总线接口模块传送给外部主机。

整个ram的容量计算的动态调整流程图如图2所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1