一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

SRAM通用测速电路的制作方法

2021-01-05 21:00:00 来源:中国专利 TAG:电路 测速 通用 硬件 系统
SRAM通用测速电路的制作方法

本发明属于sram存储硬件系统技术领域,具体涉及一种sram通用测速电路。



背景技术:

sram通用测速电路是为了解决电路系统在使用过程中需要对sram进行更改或者sram版本状态发生变化的情况下,系统无法自动识别新的sram最大读写速度的问题。在大多数电路系统中,系统使用的sram是系统在硬件设计时由设计人员指定的,ram的读写速度已经由设计人员完成设定,但是由于不同设计人员对于硬件系统的理解不同,在对于sram读写速度的设定上会产生差异,导致读写速度不合理的情况发生,存在着读写速度设定较低,无法发挥sram的最佳性能或者读写速度设定较高,在外界条件变化的情况下,超出了sram最大读写速度的情况,对系统造成较大的影响。

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

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



技术实现要素:

(一)要解决的技术问题

本发明要解决的技术问题是:如何解决硬件电路系统中sram不能自动测试其最大读写速度的问题,如何提供一种sram通用测速电路。要求采用该电路能够使硬件系统自动测试sram的最大读写速度,并将测试结果进行上报供系统软件使用,避免了设计人员重新修改系统程序导致的版本混乱的风险。

(二)技术方案

为解决上述技术问题,本发明提供一种sram通用测速电路,所述sram通用测速电路包括:sram读操作测速模块、sram写操作测速模块、sram读写速度综合模块和总线接口模块;其中,

所述sram读操作测速模块用于对sram的不同数据组合下的读取速度进行测试,确认新配置的sram的读操作最大速度参数矩阵并提供给sram读写速度综合模块;所述不同数据组合下表示:数据为全0,全1以及0、1混合的不同数据组合;

所述sram写操作测速模块用于对sram的不同组合下的写入速度进行测试,确认新配置的sram的写操作最大速度参数矩阵并提供给sram读写速度综合模块;所述不同数据组合下表示:数据为全0,全1以及0、1混合的不同数据组合;

所述sram读写速度综合模块用于接收sram读操作测速模块和sram写操作测速模块提供的读操作最大速度参数矩阵和写操作最大速度参数矩阵,并根据读操作最大速度参数矩阵和写操作最大速度参数矩阵合成为读写速度参数矩阵,通过总线接口模块传递给硬件系统处理器进行处理;

所述总线接口模块作为sram读写速度综合模块和外部硬件系统处理器的接口,负责数据的传输。

其中,所述sram读操作测速模块通过设定一个初始读取速度,根据sram能否正确读取数据来不断调整一用于读取速度增加或缩减的步长,直到调整的步长达到预期的步长阈值,该步长阈值情况下的读取速度作为sram的读操作最大速度;

所述sram写操作测速模块通过设定一个初始写入速度,根据sram能否正确写入数据来不断调整一用于写入速度增加或缩减的步长,直到调整的步长达到预期的步长阈值,该步长阈值情况下的写入速度作为sram的写操作最大速度。

其中,所述sram读操作测速模块的工作过程为:

步骤a1:首先检测sram的位宽参数w,根据w开展sram的读取操作;

步骤a2:通过判断读取数据是否正确来决定读取速度的调整方向,如果读取正确,则根据一步长来减小读取时间再进行读取操作,如果读取失败,则同样根据该步长增大读取时间再进行读取操作;其中,根据读取时间与读取速度的关系,用于增加或缩减读取时间的步长实际亦即为用于增加或缩减读取速度的步长;

步骤a3:直到读取出现错误时,回退到上一个读取时间参数,减小步长再次进行测试,直到步长减小到一个预先设定的步长阈值,此时能够正确读取数据的最大的读取速度作为sram的读操作最大速度;

所述sram写操作测速模块的工作过程为:

步骤b1:首先检测sram的位宽参数w,根据w开展sram的读取操作;

步骤b2:通过判断写入数据是否正确来决定写入速度的阈值调整方向,如果写入正确,则根据一步长来减小写入时间再进行写入操作,如果写入失败,则同样根据该步长增大写入时间再进行写入操作;其中,根据写入时间与写入速度的关系,用于增加或缩减写入时间的步长实际亦即为用于增加或缩减写入速度的步长;

步骤b3:直到写入出现错误时,回退到上一个写入时间参数,减小步长再次进行测试,直到步长减小到一个预先设定的步长阈值,此时能够正确写入数据的最大的写入速度作为sram的写操作最大速度;

其中,由于sram对于读写0和读写1的速度有差别,因此需要读写不同数据组合,形成读操作最大速度参数矩阵以及写操作最大速度参数矩阵。

其中,所述步骤a1及步骤b1中的检测sram的位宽参数w,对于位宽参数w的测试方式是:向sram写入一包数据并进行回读,通过比较写入数据和读取数据的差异确定位宽;由于写入的数据位宽大于sram的位宽,因此大于sram位宽的部分数据没有写入到sram中,在进行回读时也就读不到该部分数据,即返回的值为全0或者全1,这部分数据采用l进行标记;从而根据回读数据与写入数据比较相同的部分来确定sram的位宽。

其中,所述总线接口模块分别向sram读操作测速模块、sram写操作测速模块和sram读写速度综合模块提供一套总线接口用于数据的传输。

其中,所述sram读写速度综合模块分别向sram读操作测速模块和sram写操作测速模块提供一套独立的参数传输接口用于接收sram读操作测速模块和sram写操作测速模块传来的读操作最大速度参数矩阵和写操作最大速度参数矩阵。

其中,所述sram通用测速电路采用一块可编程逻辑芯片,用作为sram通用测速电路的硬件载体,内部实现sram读操作测速模块、sram写操作测速模块和sram读写速度综合模块和总线接口模块。

其中,将sram直接连接到可编程逻辑芯片内的总线接口模块上,由于sram的位宽未知,为了避免由于总线接口位宽小于sram位宽而导致的测量失效的情况,总线接口模块连接sram端的位宽应尽可能大。

其中,总线接口模块与sram连接的数据位宽不小于256bit。

其中,所述sram读操作测速模块、sram写操作测速模块、sram读写速度综合模块和总线接口模块均采用rtl代码进行描述。

(三)有益效果

与现有技术相比较,本发明提供一种sram通用测速电路,可以应用在各类采用sram存储器的硬件系统中。具体是为了解决硬件系统在适配不同型号的sram时无法自动识别sram的最大读写速度而导致的无法发挥sram最佳性能的问题。该电路通过对sram读写速度采用特定算法进行多次试探性采样确定sram的读写速度。该方法可以通过硬件实现模块化并嵌入到硬件电路系统中,使系统具备自动识别sram读写速度的功能,在系统更换sram后不用更改系统代码和状态,提高了系统的兼容性、易用性和可维护性,具有十分重要的应用意义。

本发明的技术优势在于:

(1)可以根据系统当前sram芯片变化实时的动态进行sram读写最大速度测试,能够快速的自动计算出sram芯片的最大读写速度矩阵并能够将参数自动上传,全部流程自动化实现,避免人工操作产生的错误。

(2)通过该电路可以自动检测更换后的sram芯片的最大读写速度矩阵,系统软件可以通过该装置传来的sram最大读写速度参数矩阵自行更新,适配新的系统,避免了人工更新软件带来的版本混乱的风险;

(3)该电路可以封装成为一个标准通用模块,在设计时加入电路之中而不用进行重新设计,具有很好的可重用性;

(4)该模块采用了可编程逻辑芯片作为算法的实现载体,能够根据使用者的需求加载不同的算法,使用十分灵活方便;

(5)该模块完全由硬件实现,不需要处理器即可实现sram的读写速度自动测试,在一定程度上节省了时间和成本。

附图说明

图1为本方案中模块整体架构原理图。

图2为本方案的动态调整流程图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

为解决现有技术问题,本发明提供一种sram通用测速电路,本发明技术方案采用一套智能的采集、调整和计算机制来实现系统自动测量sram最大读写速度的功能,方案架构如图1所示。所述sram通用测速电路包括:sram读操作测速模块、sram写操作测速模块、sram读写速度综合模块和总线接口模块;其中,

所述sram读操作测速模块用于对sram的不同数据组合下的读取速度进行测试,确认新配置的sram的读操作最大速度参数矩阵并提供给sram读写速度综合模块;所述不同数据组合下表示:数据为全0,全1以及0、1混合的不同数据组合;

所述sram写操作测速模块用于对sram的不同组合下的写入速度进行测试,确认新配置的sram的写操作最大速度参数矩阵并提供给sram读写速度综合模块;所述不同数据组合下表示:数据为全0,全1以及0、1混合的不同数据组合;

所述sram读写速度综合模块用于接收sram读操作测速模块和sram写操作测速模块提供的多种情况下的读操作最大速度参数矩阵和写操作最大速度参数矩阵,并根据读操作最大速度参数矩阵和写操作最大速度参数矩阵合成为读写速度参数矩阵,通过总线接口模块传递给硬件系统处理器进行处理;

所述总线接口模块作为sram读写速度综合模块和外部硬件系统处理器的接口,负责数据的传输。

其中,所述sram读操作测速模块通过设定一个初始读取速度,根据sram能否正确读取数据来不断调整一用于读取速度增加或缩减的步长,直到调整的步长达到预期的步长阈值,该步长阈值情况下的读取速度作为sram的读操作最大速度;

所述sram写操作测速模块通过设定一个初始写入速度,根据sram能否正确写入数据来不断调整一用于写入速度增加或缩减的步长,直到调整的步长达到预期的步长阈值,该步长阈值情况下的写入速度作为sram的写操作最大速度。

其中,所述sram读操作测速模块的工作过程为:

步骤a1:首先检测sram的位宽参数w,根据w开展sram的读取操作;

步骤a2:通过判断读取数据是否正确来决定读取速度的调整方向,如果读取正确,则根据一步长来减小读取时间再进行读取操作,如果读取失败,则同样根据该步长增大读取时间再进行读取操作;其中,根据读取时间与读取速度的关系,用于增加或缩减读取时间的步长实际亦即为用于增加或缩减读取速度的步长;

步骤a3:直到读取出现错误时,回退到上一个读取时间参数,减小步长再次进行测试,直到步长减小到一个预先设定的步长阈值,此时能够正确读取数据的最大的读取速度作为sram的读操作最大速度;

所述sram写操作测速模块的工作过程为:

步骤b1:首先检测sram的位宽参数w,根据w开展sram的读取操作;

步骤b2:通过判断写入数据是否正确来决定写入速度的阈值调整方向,如果写入正确,则根据一步长来减小写入时间再进行写入操作,如果写入失败,则同样根据该步长增大写入时间再进行写入操作;其中,根据写入时间与写入速度的关系,用于增加或缩减写入时间的步长实际亦即为用于增加或缩减写入速度的步长;

步骤b3:直到写入出现错误时,回退到上一个写入时间参数,减小步长再次进行测试,直到步长减小到一个预先设定的步长阈值,此时能够正确写入数据的最大的写入速度作为sram的写操作最大速度;

其中,由于sram对于读写0和读写1的速度有差别,因此需要读写不同数据组合,形成读操作最大速度参数矩阵以及写操作最大速度参数矩阵。

其中,所述步骤a1及步骤b1中的检测sram的位宽参数w,对于位宽参数w的测试方式是:向sram写入一包数据并进行回读,通过比较写入数据和读取数据的差异确定位宽;由于写入的数据位宽大于sram的位宽,因此大于sram位宽的部分数据没有写入到sram中,在进行回读时也就读不到该部分数据,即返回的值为全0或者全1,这部分数据采用l进行标记;从而根据回读数据与写入数据比较相同的部分来确定sram的位宽。

其中,所述总线接口模块分别向sram读操作测速模块、sram写操作测速模块和sram读写速度综合模块提供一套总线接口用于数据的传输。

其中,所述sram读写速度综合模块分别向sram读操作测速模块和sram写操作测速模块提供一套独立的参数传输接口用于接收sram读操作测速模块和sram写操作测速模块传来的读操作最大速度参数矩阵和写操作最大速度参数矩阵。

其中,所述sram通用测速电路采用一块可编程逻辑芯片(fpga),用作为sram通用测速电路的硬件载体,内部实现sram读操作测速模块、sram写操作测速模块和sram读写速度综合模块和总线接口模块。采用该芯片的好处是:第一、可以灵活的进行算法的配置,在sram测速算法进行更新时不用重新进行模块的电路设计,之需要将新的算法加载到芯片中即可。第二、使得该模块完全由硬件实现,不需要处理器即可实现sram测速的自动计算。

其中,将sram直接连接到可编程逻辑芯片内的总线接口模块上,由于sram的位宽未知,为了避免由于总线接口位宽小于sram位宽而导致的测量失效的情况,总线接口模块连接sram端的位宽应尽可能大。

其中,根据目前常用的sram芯片的位宽进行估计,建议总线接口模块与sram连接的数据位宽不小于256bit。

其中,所述sram读操作测速模块、sram写操作测速模块、sram读写速度综合模块和总线接口模块均采用rtl代码进行描述。

实施例1

本实施例中,sram通用测速电路的核心思想是通过检测sram读写不同数据组合的最大速度来确定sram的整体最大工作速度。在参数检测方面,其核心思想是设定一个初始读写速度,根据sram能否正确读写数据来不断调整读写速度的增加(缩减)的阈值,直到调整的阈值达到预期的极限值,该阈值情况下的读写速度作为sram的最大读写速度。

sram通用测速电路算法的核心思想是首先检测sram的位宽w,根据w开展sram的读写操作。然后通过判断读写数据是否正确来决定读写速度的阈值调整方向,如果读写正确(失败),则减小(增大)读写时间再进行读写操作,直到读写出现错误(正确)时,回退到上一个读写时间参数,减小步长再次进行测试,直到步长减小到一个预先设定的值,此时能够正确读写数据的最大的读写速度作为sram的最大读写速度参数。由于sram对于读写0和读写1的速度有差别,因此需要读写多组数据组合,形成读写速度参数矩阵。

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

对于读操作最大速度的测试方式是:在确定了位宽参数w后,对读操作最大速度参数r进行测试。测试步骤如下:

1、sram读操作测速模块首先配置读写速度,将写入速度配置成最慢(保证能够正确写入),将读取时间配置成初始预设值的值tr0。

2、向sram中完成一次w0操作,完成w0操作后发起一次基于tr0时间下的r0操作,判断读取数据,根据读取数据是否正确决定下一步操作。如果读取数据正确,则减小tr0,得到新的读操作时间trr0=tr0–t,其中t为步长。

3、重复步骤2(其中tr0更新为trr0),直到出现读操作错误,则回退到上一次正确的trr0,增加步长t的时间,继续进行步骤2操作。

4、当步长t减小到预先设置的值后,最后一次正常读操作的trr0作为r0操作的最大读取时间,则相应的读取速度vrr0=1/trr0。

在完成vrr0测试后,需要对sram读取数据1的最大速度vrr1进行测试,操作方式同vrr0操作(将w0和r0操作变为w1和r1操作)。sram读操作测速模块将测试好的vrr0和vrr1以参数矩阵的方式发送给sram读写速度综合模块。

对于写操作最大速度的测试方式是:在确定了位宽参数w后,对写操作最大速度参数w进行测试。测试步骤如下:

1、sram写操作测速模块首先配置读写速度,将写入速度配置成初始预设值的值tw0,将读取时间配置成最慢(保证能够正确读出)。

2、向sram中完成一次基于tw0时间下w0操作,完成w0操作后发起一次r0操作,判断读取数据,根据读取数据是否正确决定下一步操作。如果读取数据正确,则减小tw0,得到新的写操作时间tww0=tw0–t,其中t为步长。

3、重复步骤2(其中tw0更新为tww0),直到出现写操作错误,则回退到上一次正确的tww0,增加步长t的时间,继续进行步骤2操作。

4、当步长t减小到预先设置的值后,最后一次正常读操作的tww0作为w0操作的最大读取时间,则相应的读取速度vww0=1/tww0。

在完成vww0测试后,需要对sram写入数据1的最大速度vww1进行测试,操作方式同vww0操作(将w0和r0操作变为w1和r1操作)。sram写操作测速模块将测试好的vww0和vww1以参数矩阵的方式发送给sram读写速度综合模块。

sram读写速度综合模块的工作原理是接收sram读操作测速模块传来的vrr0和vrr1参数矩阵和sram写操作测速模块传来的vww0和vww1参数矩阵,选取vrr0和vrr1中较小的值作为读最大速度vrmax,选取vww0和vww1中较小的值作为写最大速度vwmax,并将vrmax和vwmax通过总线接口模块传送给外部主机。

整个sram的速度测试的流程如图2所示:

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜