基于FPGA的PSRAM存储器初始化方法、装置、设备及介质
技术领域
本发明涉及信息技术领域,尤其涉及一种基于FPGA的PSRAM存储器初始化方法、装置、设备及介质。
背景技术
伪静态随机存储器(Pseudo Static Random Access Memory,简称PSRAM)是一种采用动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)的工艺和技术,实现类似于静态随机存取存储器(Static Random-Access Memory,简称SRAM)一样的随机存取存储器(Random Access Memory,简称RAM)。
与传统DRAM存储器相同,PSRAM存储器需要进行初始化,初始完成化后,才能对PSRAM存储器进行读写访问。PSRAM存储器的初始化流程包括长复位、寄存器配置以及读校准。然而,与传统DRAM存储器不同的是,传统DARM存储器在读回数据时,时钟与数据相位的偏差不会很大。而PSRAM存储器由于其自身工艺架构原因,其读回时钟与数据相位的偏差时间较大,容易随温度、工作频率、芯片批次等因素产生较大浮动,从而导致PSRAM存储器的工作状态不稳定,实际使用难度大,不易于实现量产。
因此,寻找一种方法解决现有PSRAM存储器的相位偏差时间大、工作状态不稳定的问题成为本领域技术人员亟需解决的技术问题。
发明内容
本发明实施例提供了一种基于FPGA的PSRAM存储器初始化方法、装置、设备及介质,以解决现有PSRAM存储器的相位偏差时间大、工作状态不稳定的问题。
一种基于FPGA的PSRAM存储器初始化方法,包括:
在对PSRAM存储器执行读校准时,通过FPGA模块向所述PSRAM存储器写入待校验数据;
获取FPGA模块中输入输出延时可调电路的延时参数集;
遍历所述延时参数集中的每一个延时参数,按照所述延时参数执行延时操作,然后读取所述PSRAM存储器中的待校验数据,若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值;
从标记为候选值的所述延时参数中选择最优延时参数,写入所述FPGA模块中的输入输出延时可调电路。
可选地,所述遍历所述延时参数集中的每一个延时参数,按照所述延时参数执行延时操作,然后读取所述PSRAM存储器中的待校验数据,若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值包括:
获取延时参数最小值;
按照所得到的延时参数执行延时操作,然后从PSRAM存储器中读取待校验数据;
将所读取的待校验数据与所写入的待校验数据进行比较;
若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值;
判断所述延时参数是否小于延时参数最大值;
若所述延时参数小于延时参数最大值时,将所述延时参数增加1个步长得到下一个延时参数,按照所述下一个延时参数执行下一次延时操作及参数校验操作;
若所述延时参数大于或等于所述延时参数最大值时,结束遍历过程。
可选地,在将所读取的待校验数据与所写入的待校验数据进行比较后,所述方法还包括:
若所读取的待校验数据与所写入的待校验数据不相同时,调整FPGA模块中的I/O逻辑电路的解串器相位;
按照调整后的解串器相位读取PSRAM存储器中的待校验数据;
将所读取的待校验数据与所写入的待校验数据进行比较;
若所读取的待校验数据与所写入的待校验数据相同,则将所述延时参数标记为候选值;
若所读取的待校验数据与所写入的待校验数据不相同,则继续调整解串器相位,并按照调整后的解串器相位执行下一次参数校验操作。
可选地,所述方法还包括:
在遍历所有解串器相位后,若所读取的待校验数据与所写入的待校验数据仍不相同,则将所述延时参数标记为非候选值。
可选地,所述从标记为候选值的所述延时参数中选择最优延时参数,写入所述FPGA模块中的输入输出延时可调电路包括:
从标记为候选值的所述延时参数中获取候选值连续序列;
选取候选值连续个数最多的候选值连续序列作为最优工作窗口;
选取所述最优工作窗口中的候选值的中值作为最优延时参数;
将所述最优延时参数写入所述FPGA模块中的输入输出延时可调电路。
可选地,所述延时参数集包括从1开始的连续n个正整数。
一种基于FPGA的PSRAM存储器初始化装置,包括:
写入模块,用于在对PSRAM存储器执行读校准时,通过FPGA模块向所述PSRAM存储器写入待校验数据;
参数获取模块,用于获取FPGA模块中输入输出延时可调电路的延时参数集;
候选值获取模块,用于遍历所述延时参数集中的每一个延时参数,按照所述延时参数执行延时操作,然后读取所述PSRAM存储器中的待校验数据,若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值;
最优参数获取模块,用于从标记为候选值的所述延时参数中选择最优延时参数,写入所述FPGA模块中的输入输出延时可调电路。
可选地,所述候选值获取模块包括:
获取单元,用于获取延时参数最小值;
延时单元,用于按照所得到的延时参数执行延时操作,然后从PSRAM存储器中读取待校验数据;
比较单元,用于将所读取的待校验数据与所写入的待校验数据进行比较;
标记单元,用于若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值;
判断单元,用于判断所述延时参数是否小于延时参数最大值;
轮询单元,用于若所述延时参数小于延时参数最大值时,将所述延时参数增加1个步长得到下一个延时参数,按照所述下一个延时参数执行下一次延时操作及参数校验操作;
结束单元,用于若所述延时参数大于或等于所述延时参数最大值时,结束遍历过程。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于FPGA的PSRAM存储器初始化方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于FPGA的PSRAM存储器初始化方法。
本发明实施例基于FPGA构建输入输出延时可调电路架构,将FPGA固有的输入输出延时可调电路应用到PSRAM接口电路中,并根据需求设置延时参数集。在对PSRAM存储器执行读校准时,向所述PSRAM存储器写入待校验数据;然后遍历延时参数集中的每一个延时参数,按照所述延时参数执行延时操作后读取PSRAM存储器中的待校验数据,若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值;最后从标记为候选值的所述延时参数中选择最优延时参数,并将所述最优延时参数写入所述FPGA模块的中,从而完成对PSRAM存储器的读校准操作。相比于传统的读校准方法,本发明实施例实现了动态自适应的初始化读校准功能,能自适应不同温度、不同速度下不同批次的PSRAM存储器,极大地提高了PSRAM存储器的工作稳定性,在实现高速传输的同时使PSRAM存储器工作更加稳定
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中FPGA模块的结构示意图;
图2是本发明一实施例中基于FPGA的PSRAM存储器初始化方法的一流程图;
图3是本发明一实施例中基于FPGA的PSRAM存储器初始化方法中步骤S203的一流程图;
图4是本发明一实施例中基于FPGA的PSRAM存储器初始化方法中步骤S203的另一流程图;
图5是本发明一实施例中基于FPGA的PSRAM存储器初始化方法中步骤S203的另一流程图;
图6是本发明一实施例中基于FPGA的PSRAM存储器初始化方法中步骤S204的一流程图;
图7是本发明一实施例中候选值、非候选值、候选值连续序列的示意图;
图8是本发明一实施例中基于FPGA的PSRAM存储器初始化装置的一原理框图;
图9是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有PSRAM存储器由于自身工艺架构导致的读回时钟与数据相位的偏差时间较大、工作状态不稳定的问题,本发明实施例将FPGA模块中固有的输入输出延时可调电路应用到PSRAM接口电路中,并根据需求设置延时参数集,通过初始化输入输出延时可调电路的延时参数,来实现对PSRAM存储器的初始化,完成PSRAM存储器的读校准。可选地,图1示出了本发明实施例提供的FPGA模块的结构示意图。如图1所示,所述FPGA模块包括输入输出延时可调电路10、I/O逻辑电路20、读校准延时调整电路30以及读数据通路40。其中,所述输入输出延时可调电路10分别与I/O逻辑电路20、读校准延时调整电路30连接,所述I/O逻辑电路20与所述读数据通路40连接。所述输入输出延时可调电路10作为PSRAM接口电路,与外部的PSRAM存储器连接,其作用是完成与PSRAM存储器之间的数据、命令、地址信息的传输;所述I/O逻辑电路20还包括解串器,其作用是对数据通路模块和控制通路模块传递过来的数据、命令、地址信号进行时钟域的转换,以及根据不同的时钟比例选择不同的串行解串器变速电路,并完成clk_x1时钟域转换到clk_xn时钟域(此处n代表时钟比例),从而产生PSRAM需要的信号;所述读校准延时调整电路30用于在读校准过程中调整I/O逻辑电路20中的解串器的相位;所述读数据通路40用于传输从PSRAM存储器中读取的数据。
以下将对本实施例提供的基于FPGA的PSRAM存储器初始化方法进行详细的描述。图2为本发明实施例提供的基于FPGA的PSRAM存储器初始化方法的流程图。如图2所示,所述基于FPGA的PSRAM存储器初始化方法包括:
在步骤S201中,在对PSRAM存储器执行读校准时,通过FPGA模块向所述PSRAM存储器写入待校验数据。
本发明实施例所述的对PSRAM存储器执行初始化主要是涉及对PSRAM存储器的读校准,因此需要在读校准之前通过所述FPGA模块向所述PSRAM存储器写入待校验数据。通过读取PSRAM存储器中的待校验数据,对读回的待校验数据进行调整以保证读取操作的准确性,实现对PSRAM存储器的读校准。可选地,所述待校验数据包括多个数据,此处不对其个数进行限制。
在步骤S202中,获取FPGA模块中输入输出延时可调电路的延时参数集。
在这里,为了适应PSRAM存储器的偏差,本发明实施例将输入输出延时可调电路加入到PSRAM存储器的接口电路中,并根据需要在较大范围内调整延时,选择PSRAM存储器的最优延时参数。输入输出延时可调电路,顾名思义,有一个可调的延时参数,其功能是调节延时大小。因此,PSRAM存储器初始化的对象包括输入输出延时可调电路的延时参数。
可选地,作为本发明的一个优选示例,所述延时参数集包括但不限于从1开始的连续n个正整数。
在步骤S203中,遍历所述延时参数集中的每一个延时参数,按照所述延时参数执行延时操作,然后读取所述PSRAM存储器中的待校验数据,若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值。
本发明实施例采用轮询机制判断输入输出延时可调电路中的每一个延时参数的有效性。所述轮询机制是指遍历延时参数集中的每一个延时参数执行延时操作和参数校验操作。可选地,图3示出了本发明实施例提供的步骤S203的具体实现流程,如图3所示,所述步骤S203包括:
在步骤S301中,获取延时参数最小值。
为了提高轮询机制的效率,本发明实施例从延时参数集中的最小值开始执行延时操作与参数校验操作。可选地,如前所述延时参数集包括但不限于从1开始的连续n个正整数,因此延时参数最小值为1。
在步骤S302中,按照所得到的延时参数执行延时操作,然后从PSRAM存储器中读取待校验数据。
对于当前轮询的延时参数,按照所述延时参数执行延时操作,比如延时参数为1时,等待1个单位时长,延时参数为2时,等待2个单位时长……等待延时参数对应的单位时长后,然后通过PSRAM存储器的接口电路读取PSRAM存储器中已预先写入的待校验数据。
在这里,若步骤S201中写入的待校验数据有X个数据时,则在执行延时操作后,从所述PSRAM存储器中读取X个数据,作为读回的待校验数据。
在步骤S303中,将所读取的待校验数据与所写入的待校验数据进行比较。
本发明实施例将所读取的待校验数据中的X个数据分别与所写入的待校验数据中的X个数据进行比较。
在步骤S304中,若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值。
若所读取的X个数据全部正确,即所读取的待校验数据中的X个数据分别与所写入的待校验数据中的X个数据相同时,表示本次轮询的延时参数下PSRAM存储器的工作是稳定的,则将所述延时参数标记为候选值。
可选地,若所读取的X个数据中有错误时,本发明实施例进一步通过调整I/O逻辑电路中的解串器相位来对所述延时参数进行更深入的参数校验操作。图4示出了本发明实施例提供的步骤S203的另一实现流程。如图4所示,在将所读取的待校验数据与所写入的待校验数据进行比较后,所述方法还包括:
在步骤S401中,若所读取的待校验数据与所写入的待校验数据不相同时,调整FPGA模块中的I/O逻辑电路的解串器相位。
在这里,应用在I/O逻辑电路的解串器包括但不限于2位解串器、4位解串器、8位解串器以及16位解串器。在本发明实施例中,调整解串器相位是指将当前解串器相位增加/减少一个位,得到新的解串器相位。
在步骤S402中,按照调整后的解串器相位读取PSRAM存储器中的待校验数据。
然后将调整后的解串器相位应用到PSRAM存储器的接口电路中,按照调整后的解串器相位读取PSRAM存储器中的待校验数据。
在步骤S403中,将所读取的待校验数据与所写入的待校验数据进行比较。
在步骤S404中,若所读取的待校验数据与所写入的待校验数据相同,则将所述延时参数标记为候选值。
若经解串器相位调整后,所读取的X个数据全部正确,表示在所述解串器相位及所述延时参数下的PSRAM存储器的工作是稳定的,则将所述延时参数标记为候选值。
在步骤S405中,若所读取的待校验数据与所写入的待校验数据不相同,则继续调整解串器相位,并按照调整后的解串器相位执行下一次参数校验操作。
若所读取的X个数据中仍有错误时,即所读取的待校验数据与所写入的待校验数据不相同,本发明实施例通过继续调整I/O逻辑电路中的解串器相位来对所述延时参数执行参数校验操作,重复执行步骤S401至步骤S405。
可选地,为了提高参数校验操作的效率,如图5所示,在图4实施例的基础上,所述方法还包括:
在步骤S406中,在遍历所有解串器相位后,若所读取的待校验数据与所写入的待校验数据仍不相同,则将所述延时参数标记为非候选值。
在这里,遍历所有解串器相位是指将I/O逻辑电路中的解串器的相位均应用到PSRAM存储器的接口电路中执行参数校验操作。可调整的解串器相位个数与I/O逻辑电路中使用的解串类型有关。示例性地,当I/O逻辑电路中使用2位解串器时,可调整的解串器相位有两个,即1和2;当I/O逻辑电路中使用4位解串器时,可调整的解串器相位有四个,即1、2、3和4;其他解串器相位以此类推。
在遍历所有解串器相位后,若所读取的待校验数据与所写入的待校验数据仍不相同,表明本次轮询的延时参数下PSRAM存储器的工作非常不稳定,则结束对本次延时参数的参数校验操作,并将所述延时参数标记为非候选值。在这里,由于根据I/O逻辑电路中使用的解串器类型,可调整的解串器相位是有限的,基于解串器相位的个数来决定对延时参数的参数校验操作次数,有利于提高对延时参数的校验效率,减少重复校验操作带来的内存占用。
在步骤S305中,判断所述延时参数是否小于延时参数最大值。
在完成基于当前轮询的延时参数的延时操作和参数校验操作之后,进一步判断所述延时参数是否小于延时参数最大值,以确认是否结束整个轮询机制。
在步骤S306中,若所述延时参数小于延时参数最大值时,将所述延时参数增加1个步长得到下一个延时参数,按照所述下一个延时参数执行下一次延时操作及参数校验操作。
可选地,若所述延时参数小于延时参数最大值时,表示还有延时参数未执行延时操作和参数校验操作,则在本次轮询的所述延时参数上增加1个步长得到下一个延时参数,返回步骤S302,以执行下一次延时操作及参数校验操作。
在步骤S307中,若所述延时参数大于或等于所述延时参数最大值时,结束遍历过程。
若所述延时参数大于或等于延时参数最大值时,表示完成对所有延时参数执行完延时操作和参数校验操作,则结束本次遍历过程。
通过上述步骤S301至步骤S307,可以从输入输出延时可调电路的延时参数集中筛选出PSRAM存储器的工作状态比较稳定的候选值,以及PSRAM存储器的工作状态不稳定的非候选值,实现从较大的范围内选取候选值和非候选值。
在步骤S204中,从标记为候选值的所述延时参数中选择最优延时参数,写入所述FPGA模块中的输入输出延时可调电路。
候选值集合中包括若干个候选值,本发明实施例进一步从所述候选值集合中选取最优的延时参数用以设置所述输入输出延时可调电路。可选地,如图6所示,步骤S204所述的从标记为候选值的所述延时参数中选择最优延时参数,写入所述FPGA模块中的输入输出延时可调电路包括:
在步骤S601中,从标记为候选值的所述延时参数中获取候选值连续序列。
在这里,所述候选值连续序列是指序列中任意一个候选值的前面和/或后面均与一个候选值相邻的序列。本发明实施例先按照由小到大的顺序或者由大到小的顺序对延时参数集所包括的n个延时参数进行排序,然后根据每一个延时参数标记为候选值还是非候选值,得到候选值连续序列。
在步骤S602中,选取候选值连续个数最多的候选值连续序列作为最优工作窗口。
在所述候选值连续序列中,每一个延时参数均标记为候选值,即在每一个延时参数下所述PSRAM存储器的工作状态都是稳定的。本发明实施例将得到的每一个候选值连续序列作为一个工作窗口。工作窗口中的候选值越多,其覆盖的延时参数越多,所述工作窗口下PSRAM存储的延时范围越宽,PSRAM存储器的工作状态越稳定。本发明实施例选取候选值连续个数最多的候选值连续序列作为最优工作窗口。
在步骤S603中,选取所述最优工作窗口中的候选值的中值作为最优延时参数。
在得到最优工作窗口后,按照平均原则,根据所述最优工作窗口中的候选值计算中值,以所述中值作为最优延时参数,从而得到PSRAM存储器工作状态最稳定的延时参数。
可选地,为了便于理解,以下通过图示的方式对步骤S601至步骤S603所述的筛选最优延时参数的过程进行解释。假设输入输出延时可调电路的延时参数集包括1至n个连续延时参数,经过轮询机制之后得到的候选值和非候选值如图7所示,延时参数为候选值时对应用√标记,延时参数为非候选值时对应用×标记。连续标记√的地方作为一个候选值连续序列,那么图6中包括2个候选值连续序列,分别为候选值连续序列1和候选值连续序列2。其中,候选值连续序列1中包括的标记√最多,即包括的候选值个数最多,作为最优工作窗口。然后根据所述最优工作窗口包括的候选值,选择候选值的中值作为最优延时参数。示例性地,假设最优工作窗口中包括M个候选值,若M为奇数,则选取所述最优工作窗口中排序在中间位置上的候选值作为最优延时参数;若M为偶数,则选取所述最优工作窗口中排序在M/2位置上的候选值作为最优延时参数。
在步骤S604中,将所述最优延时参数写入所述FPGA模块中的输入输出延时可调电路。
最后将所述最优延时参数写入输入输出延时可调电路架构中,从而完成对PSRAM存储器的读校准操作,实现对PSRAM存储器的初始化。本发明实施例通过寻找所述最优延时参数实现读校准操作,有利于提高对PSRAM存储器读校准的准确度和效率。
综上所述,本发明实施例基于FPGA构建输入输出延时可调电路架构,将FPGA固有的输入输出延时可调电路应用到PSRAM接口电路中,并根据需求设置延时参数集。在对PSRAM存储器执行读校准时,遍历延时参数集中的每一个延时参数,按照所述延时参数执行延时操作后读取PSRAM存储器中的待校验数据,若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值,得到候选值集合;最后从所述候选值集合中选择最优延时参数,并将所述最优延时参数写入所述FPGA模块的中,从而完成对PSRAM存储器的读校准操作。相比于传统的读校准方法,本发明实施例实现了动态自适应的初始化读校准功能,能自适应不同温度、不同速度下不同批次的PSRAM存储器,极大地提高了PSRAM存储器的工作稳定性,在实现高速传输的同时使PSRAM存储器工作更加稳定,有利于发挥PSRAM存储器的性能,进而解决PSRAM存储器在实际中的应用难度和量产问题。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种基于FPGA的PSRAM存储器初始化装置,该基于FPGA的PSRAM存储器初始化装置与上述实施例中基于FPGA的PSRAM存储器初始化方法一一对应。如图8所示,该基于FPGA的PSRAM存储器初始化装置包括写入模块81、参数获取模块82、候选值获取模块83、最优参数获取模块84。各功能模块详细说明如下:
写入模块81,用于在对PSRAM存储器执行读校准时,通过FPGA模块向所述PSRAM存储器写入待校验数据;
参数获取模块82,用于获取FPGA模块中输入输出延时可调电路的延时参数集;
候选值获取模块83,用于遍历所述延时参数集中的每一个延时参数,按照所述延时参数执行延时操作,然后读取所述PSRAM存储器中的待校验数据,若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值;
最优参数获取模块84,用于从标记为候选值的所述延时参数中选择最优延时参数,写入所述FPGA模块中的输入输出延时可调电路。
可选地,所述候选值获取模块83包括:
获取单元,用于获取延时参数最小值;
延时单元,用于按照所得到的延时参数执行延时操作,然后从PSRAM存储器中读取待校验数据;
比较单元,用于将所读取的待校验数据与所写入的待校验数据进行比较;
标记单元,用于若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值;
判断单元,用于判断所述延时参数是否小于延时参数最大值;
轮询单元,用于若所述延时参数小于延时参数最大值时,将所述延时参数增加1个步长得到下一个延时参数,按照所述下一个延时参数执行下一次延时操作及参数校验操作;
结束单元,用于若所述延时参数大于或等于所述延时参数最大值时,结束遍历过程。
可选地,所述候选值获取模块83还包括:
相位调整单元,用于若所读取的待校验数据与所写入的待校验数据不相同时,调整FPGA模块中的I/O逻辑电路的解串器相位;
读取单元,用于按照调整后的解串器相位读取PSRAM存储器中的待校验数据;
所述比较单元还用于,将所读取的待校验数据与所写入的待校验数据进行比较;
所述标记单元还用于,若所读取的待校验数据与所写入的待校验数据相同,则将所述延时参数标记为候选值;
所述相位调整单元还用于,若所读取的待校验数据与所写入的待校验数据不相同,则继续调整解串器相位,并按照调整后的解串器相位执行下一次参数校验操作。
可选地,所述标记单元还用于:
在遍历所有解串器相位后,若所读取的待校验数据与所写入的待校验数据仍不相同,则将所述延时参数标记为非候选值。
可选地,所述最优参数获取模块84包括:
序列获取单元,用于从标记为候选值的所述延时参数中获取候选值连续序列;
最优窗口选取单元,用于选取候选值连续个数最多的候选值连续序列作为最优工作窗口;
最优参数选取单元,用于选取所述最优工作窗口中的候选值的中值作为最优延时参数;
参数写入单元,用于将所述最优延时参数写入所述FPGA模块中的输入输出延时可调电路。
可选地,所述延时参数集包括从1开始的连续n个正整数。
关于基于FPGA的PSRAM存储器初始化装置的具体限定可以参见上文中对于基于FPGA的PSRAM存储器初始化方法的限定,在此不再赘述。上述基于FPGA的PSRAM存储器初始化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于FPGA的PSRAM存储器初始化方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
在对PSRAM存储器执行读校准时,通过FPGA模块向所述PSRAM存储器写入待校验数据;
获取FPGA模块中输入输出延时可调电路的延时参数集;
遍历所述延时参数集中的每一个延时参数,按照所述延时参数执行延时操作,然后读取所述PSRAM存储器中的待校验数据,若所读取的待校验数据与所写入的待校验数据相同时,将所述延时参数标记为候选值;
从标记为候选值的所述延时参数中选择最优延时参数,写入所述FPGA模块中的输入输出延时可调电路。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。