一种PSRAM相位校准方法及控制器与流程

阅读: 评论:0


一种psram相位校准方法及控制器
技术领域
1.本发明涉及存储器技术领域,具体来说,涉及一种psram相位校准方法及控制器。


背景技术:



2.伪静态随机存储器(pseudo static random access memory,即psram)架构上是一种介于动态随机存取存储器(dynamic random access memory,dram)和静态随机存取存储器(static random access memory,sram)之间的一种设备。对比ddr,psram的io电压为1.8v低于ddr的2.5v,io的驱动能力稍弱;对比ddr2,psram无差分的strobe信号没有odt功能,信号完整性不足。
3.本文提供的背景描述用于总体上呈现本公开的上下文的目的。除非本文另外指示,在该章节中描述的资料不是该申请的权利要求的现有技术并且不要通过包括在该章节内来承认其成为现有技术。


技术实现要素:



4.针对相关技术中的上述技术问题,本发明提出一种psram控制器,其包括:系统控制模块、接口控制模块、相位校准模块,其中系统控制模块,用于控制psram控制器的状态;接口控制模块,用于实现psram协议和时序;
5.其中接口控制模块包括一读延迟链、一写延迟链;写延迟链用以调整写时钟和其他信号的延迟关系,读延迟链用以调整strobe信号和dq之间相位关系;
6.相位校准模块使用突发读写命令,通过向psram设备写入特定的数据后读取比较的方式,根据结果计算调整接口控制模块读延迟链和写延迟链,完成相位校准。
7.具体的,所述读延迟链包括两级延迟链,一级延迟链由上升和下降沿延迟平衡的标准单元串联而成,通过数据选择器输出进行细调整,二级延迟链由多个一级延迟链串联构成,通过数据选择器输出进行粗调。
8.具体的,所述写延迟链与所述读延迟链的一级延迟链相同。
9.具体的,相位校准模块包括:校准状态机、延迟计算模块、读写检测模块和时钟生成模块;校准状态机控制校准流程,包含初始校准流程和实时校准流程;读写检测模块通过向系统控制模块发送特定的突发写和读,并对读数据进行比较判断读写正确与否;延迟计算单元用于根据校准状态以及读数据正确与否的结果给出延迟链的调整;时钟生成模块根据校准状态机控制,实现对输入的原时钟进行无毛刺升降频。
10.具体的,所述时钟生成模块包含:一偶数分频器、一消毛刺的选择器。
11.第二方面,本发明的另一个实施例提供了一种psram相位校准方法,其包括如下步骤:
12.s1,获取psram启动,先进行初始读校准;
13.其中步骤s1包括:s10、采用寄存器默认值配置写延迟链,将strobe和dq的读延迟链配置到0;s11、降低工作时钟频率;s12、将特定数写入psram;s13、恢复时钟频率;s14、从
psram读取特定数获取读回数据;s15、比较读回的数据与特定数;s16、如果正确,则到读延迟链窗口的最小值,并执行步骤s20;s17、否则通过增加dq读延迟链加大strobe和dq之间的相位;s18、判断是否到达读延迟链最大值;s19、如果已经达到了延迟链最大值则说明扫描过一遍也不到能工作的值,进行报错退出;s20、降低工作时钟频率;s21、将特定数写入psram;s22、恢复时钟频率;s23、从psram读取特定数获取读回数据;s24、比较读回的数据与特定数,s25、如果错误,则到读延迟链窗口的最大值,并执行步骤s28;s26、否则通过增加dq读延迟链加大strobe和dq之间的相位;s27、判断是否到达读延迟链最大值,如果是,则到读延迟链窗口的最大值;s28、以窗口最小值和最大值进行平均后作为读延迟链的校准值;
14.s3,进行初始写校准;
15.其中步骤s3包括:s31、将时钟写延迟链配置到延迟链长度的一半,信号写延迟链配置到0;s32、将特定数写入psram;具体的发送写命令将特定数写入psram,具体的写入方式同步骤s1中的方式;s33、从psram读取特定数获取读回数据;s34、比较读回的数据与特定数,s35、如果正确,则到写延迟链窗口的最小值,并执行s38;s36、否则,增加信号写延迟链,s37、判断是否达到延迟链最大值,如果是,则速度超标,进行报错退出;s38、将特定数写入psram;s39、从psram读取特定数获取读回数据;s40、比较读回的数据与特定数,s41、如果错误,则到写延迟链窗口的最大值;s42、如果正确,增加信号写延迟链;s43、判断是否达到延迟链最大值,如果是,则到读延迟链窗口的最大值;s44、以窗口最小值和最大值进行平均后作为写延迟链的校准值;
16.s5、将读延迟链的校准值、写延迟链的校准值作分别应用到读迟链以及写延迟链中。
17.具体的,所述方法还包括:s3’,实时读校准,具体为:s31’、降低工作时钟频率;s32’、将特定数写入psram;s33’、恢复时钟频率;s34’、从psram读取特定数获取读回数据;s35’、比较读回的数据与特定数,s36’、如果正确,延迟链保持当前值,校准完成;s37’、如果错误,减少dq读延迟链;s38’、判断dq读延迟链是否小于设定范围,s39’、如果是,恢复dq读延迟链原值;并执行步骤s31
’‑
34’;s391’、比较读回的数据与特定数,s392’、如果正确,延迟链保持当前值,校准完成;s393’、如果错误,增加dq读延迟链;s394’、判断dq读延迟链是否大于设定范围,s395’、如果是,校准失败。
18.具体的,所述方法还包括:s4’,实时写校准,具体为:s41’、将特定数写入psram;具体的发送写命令将特定数写入psram;s42’、从psram读取特定数获取读回数据;s43’、比较读回的数据与特定数,s44’、如果正确,延迟链保持当前值,校准完成;s45’、否则,减少信号写延迟链,s46’、判断信号写延迟链是否小于设定范围,s47’、如果是,恢复信号写延迟链原值,并执行步骤s41
’‑
s43’;s48’、如果正确,延迟链保持当前值,校准完成;s49’、否则,增加信号写延迟链,s491’、判断信号写延迟链是否大于设定范围,s492’、如果是,校准失败。
19.具体的,所述减小dq读延迟链、增加dq读延迟链、所述减小信号写延迟链、所述增加信号写延迟链均为减少或增加1。
20.本发明的psram相位校准方法及控制器,通过校准流程控制和校准算法提高延迟链精确度,提高与psram设备通讯的最高速度。同时,发明了实时校准,用于补偿芯片工作过程中电压、温度造成设备延迟漂移和延迟链漂移。
21.1)实现了初始读校准和写校准,保证读写延迟链都工作在最佳相位;
22.2)初始读校准采用了二分法加速,减少应用等待时间;
23.3)在实时空闲时进行实时微调校准,补偿电压、温度带来的相位漂移影响,提高稳定性。
附图说明
24.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1是本发明实施例提供的psram控制器示意图;
26.图2是本发明实施例提供的读时序中strobe和dq相位示意图;
27.图3是本发明实施例提供的读延迟链示意图;
28.图4是本发明实施例提供的psram突发写时钟和数据相位示意图;
29.图5是本发明实施例提供的psram相位校准整体流程示意图;
30.图6是本发明实施例提供的初始读校准示意图;
31.图7是本发明实施例提供的初始写校准示意图;
32.图8是本发明实施例提供的实时读校准示意图;
33.图9是本发明实施例提供的实时写校准示意图;
34.图10是本发明实施例提供的读写检测模块和时钟生成模块示意图;
35.图11是本发明实施例提供的读写状态机示意图;
36.图12是本发明实施例提供的消除毛刺状态控制示意图;
37.图13是本发明实施例提供的初始读校准扫描最小值二分法示意图;
38.图14是本发明实施例提供的初始读校准扫描最大值二分法示意图;
39.图15是本发明实施例提供的校准状态机示意图。
具体实施方式
40.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
41.实施例一
42.参考图1,本实施例公开了一种psram控制器,其包括相位校准模块、系统控制模块、接口控制模块,其中接口控制模块包括一读延迟链、一写延迟链;相位校准模块包括一校准状态机、时钟生成模块、延迟计算单元、读写检测模块;其中系统控制模块,用于控制psram控制器的状态;接口控制模块,用于实现psram协议和时序;其中,写延迟链用以调整写时钟和其他信号的延迟关系,读延迟链用以调整strobe信号和dq之间相位关系;相位校准模块使用突发读写命令,通过向psram设备写入特定的数据后读取比较的方式,根据结果计算调整接口控制模块延迟链,完成相位校准过程。
43.相位校准模块与系统控制模块和接口控制模块配合完成相位校准。图1中系统控制模块控制整个psram控制器的状态,支持多种psram设备的上电初始化流程、复位方式、休眠方式等功能。接口控制模块主要用来实现psram协议和时序。其中,接口状态机接收系统控制模块提供的psram命令、地址、数据等,按照psram设备要求的时序发送。写延迟链用以调整写时钟和其他信号的延迟关系,读延迟链用以调整strobe信号和dq之间相位关系。
44.相位校准模块使用突发读写命令,通过向psram设备写入特定的数据后读取比较的方式,根据结果计算调整接口控制模块延迟链,完成相位校准过程。相位校准模块的突发读写命令和数据通过系统控制模块转发给接口控制模块,经过计算的延迟结果发送给接口控制模块中的延迟链。相位校准模块内部有四个模块构成:校准状态机、延迟计算模块、读写检测模块和时钟生成模块。校准状态机控制校准流程,包含初始校准流程和实时校准流程;读写检测模块通过向系统控制模块发送特定的突发写和读,并对读数据进行比较判断读写正确与否;延迟计算模块内部实现了延迟链快速校准算法,根据校准状态和读写结果决定下一次调整方向;时钟生成模块根据校准状态机控制,实现对输入的原时钟进行无毛刺升降频。
45.如图2,根据psram的协议要求,读时序中strobe和dq信号为同相位关系。虽然不同的psram设备对于strobe和dq的时序略有不同,但是经过板级走线和芯片内部走线strobe和dq之间相位关系不能保证,也就不能保证storbe对dq采样有足够的采样窗口。因此,需要使用读延迟链调整二者之间的相位,为了保证在高速下strobe和dq的setup和hold余量足够,通常希望将二者调整为90度。如图3,为了使psram控制器在高速下可以正确采样到数据,在读延迟链中设计了两级延迟链。一级延迟链由上升和下降沿延迟平衡的标准单元串联而成,通过数据选择器输出达到细调的效果。二级延迟链由多个一级延迟链串联构成,通过数据选择器输出达到粗调效果。如图4,根据psram的协议要求突发写时钟中时钟和数据为90度相位,到达psram设备之后用时钟信号采用数据有足够采样窗口。因此,本发明中写延迟链与读延迟链中的一级链采用了相同的结构,校准模块通过微调延迟保证时钟和数据送到芯片的io时仍然保持90度相位。
46.根据读写命令的时序和读写延迟链的特征,本实施例中设计了初始校准和实时校准。初始校准保证正常功能在运行之前读写延迟链在最佳配置,读写的时钟和采样信号之间时序余量最大。实时校准在工作空闲时,用于对延迟链进行微调以抵消电压和温度波动带来的时序变化。因为写时序相位基本保持90度,只需要进行微调而读相位需要从0开始调整,所以先进行读校准保证读正常再进行写校准。如图5,启动后先进行初始读校准再进行初始写校准,然后进入等待状态。实时校准为可选项目,适合于psram设备不是满负荷运行的应用,由芯片主系统通知系统启动实时校准,进行读校准再进行写校准。为了保证读校准能够正确进行,读校准中会采用将写时钟降频的方式在低速下写数据,保证写数据的正确性,然后在恢复原频率进行读操作。各校准的详细流程如下:
47.如图6,首先将采用寄存器默认值配置写延迟链,然后将strobe和dq的读延迟链配置到0。接下来进行降低时钟频率,写数据,恢复时钟频率,读数据的过程,后面简称降频写恢复读。接着对读回的数据进行比较,如果比较结果正确,则到读延迟链窗口的最小值;否则通过增加dq读延迟链加大strobe和dq之间的相位。如果已经达到了延迟链最大值则说明扫描过一遍也不到能工作的值,进行报错退出。到读延迟链窗口的最小值之后继续
进行降频写恢复读的过程。当到第一个读写错误或者延迟链达到最大值时,即到了窗口的最大值。最后,对窗口最小值和最大值进行平均后应用为读延迟链的校准值。
48.如图7,初始写校准的流程和初始读校准类似。因为读校准已经完成,所以不需要降频写恢复读的过程。第一步先将时钟的写延迟链设置到一半将信号写延迟链配置到0,准备从0到最大值扫描延迟链。依次到延迟链窗口的最小和最大值之后,以二者的平均值作为最终数据写延迟链的校准值。
49.实时校准只做微调,在减小和增大一定范围的延迟链中查是否有合适的延迟链值。首先,先向减小的方向扫描尝试到读写正确的延迟。当减小到一定值还无法读写正确,则改变方向向增大的方向进行扫描。如果增大一定值也不到读正确的延迟,则说明外部条件引起延迟链失效,需要报错退出。如图8,实时读校准首先进行降频写恢复读的过程。接着对数据进行比较,如果比较结果正确,则到合适的延迟值,校准完成;如果比较错误,则减小dq读延迟链,再进行降频写恢复读过程。如果dq读延迟链小于设定范围,则先恢复dq读延迟链实时校准前的值,再进行降频写恢复读过程。继续对读数据进行比较,如果比较结果正确,则到合适的延迟值,校准完成;如果比较错误,则增加dq读延迟链,重复降频写恢复读过程。最终,dq读延迟链大于设定范围则校准失败,否则将读写正确时的值应用到延迟链中。
50.如图9,实时写校准首先进行写读过程。接着对读数据进行比较,如果比较结果正确,则到合适的延迟值,校准完成;如果比较错误,则减小信号写延迟链,再进行写读过程。如果信号写延迟链小于设定范围,则先恢复信号写链实时校准前的值,再进行写读的过程。继续对读数据进行比较,如果比较结果正确,则到合适的延迟值,校准完成;如果比较错误,则增加信号写延迟链,重复写读过程。最终,信号写延迟链大于设定范围则校准失败,否则将读写正确时的值应用到延迟链中。
51.上述四种校准过程中都有写数据和读数据比较的过程,这个过程由读写检测模块和时钟生成模块一起实现。如图10,内部有四个子模块:写数据,读数据,数据库和读写状态机。其中,状态机控制时钟生产模块的时钟选择信号。
52.读写检测模块中,写数据模块负责产生写数据命令、地址、长度和请求,通过系统控制模块传递给接口控制模块,产生写时序。写数据模块的数据由寄存器配置从数据库中取出,通常有随机数和01数据串。其中,01数据串是奇数周期8位0、偶数周期8位1的数据序列,发送01数据串使psram相邻周期每个数据位都翻转。读数据模块负责产生读数据命令、地址、长度和请求,通过系统控制模块传递给接口控制模块,产生突发读时序。数据从psram设备读回后,读数据模块会把返回的数据和数据库中的数据一一比较,给出正确和错误信号。
53.如图11,读写状态机如下,通过校准状态机的信号可选的完成:时钟降频-》写数据-》时钟恢复-》读数据或者写数据-》读数据的过程。其中,在时钟降频和时钟恢复状态下输出选择信号控制时钟生成模块的时钟源。时钟生成模块包含了一个偶数分频器和一个消毛刺的选择器。因为设计中只需要完成降低频率的效果,因此在分频器采用了偶数分频来简化设计。通过寄存器配置可选2,4,6,8倍的分频系数,通过计数器实现分频。在分频时钟和原时钟切换的时在时钟线上会产生毛刺,为了消除毛刺在时钟选择器中做了消除毛刺的电路。如图12,采用了如下状态控制,当时钟选择信号改变时,先关闭选择器输出然后切换
时钟源。此时,因为切换时钟造成的毛刺没有输出,所以消除了输出的毛刺。切换之后需要等待一段时间,再开启输出之后选择器输出的是新的时钟。
54.延迟计算模块用来根据四种校准所在的不同状态,以及读数据正确与否的结果给出延迟链的调整。在实时校准中只需要对延迟链进行微调,因此每次判断结果之后只需要将延迟链
±
1。在初始化写校准中,因为发送延迟链较短,所以每次判断结果之后只要将延迟链不断+1对延迟链进行扫描。对于读延迟链,因此延迟链分为两级并且比较长,所以采用了二分法实现。
55.参考图6以及图13,具体的,所述增加dq读延迟链,采用初始读校准扫描最小值二分法的流程。启动后先进行降频写恢复读流程,如果比较结果错误,则说明延迟链不够,先增加二级延迟链重复做降频写恢复读直到比较结果正确。比较结果正确,则说明扫描链的值在当前的一级链中,此时将二级延迟链减一,一级延迟链值配置为最大值一半,调节量配置为最大值1/4。然后继续进行降频写恢复读,如果比较结果错误,一级延迟链为上次写读的延迟链+上次写读的调节量,同时将调节量减半;如果比较结果正确,一级延迟链为上次写读的延迟链-上次写读的调节量,同时将调节量减半。如此循环,直到调节量小于2,则到最佳的一级延迟链值。
56.如图14,初始读校准扫描最大值二分法的流程与最小值查流程类似。区别的是在二级延迟链调节时如果写读过程比较正确则增加二级延迟链,直到到第一次写读结果错误的,即最大延迟链的边界;在一级延迟链二分查时也是当出现写读过程正确时增加延迟链。
57.如图15,校准状态机如下,初始化启动后,先进行初始读校准,再进行初始写校准,之后进入完成状态。在完成状态中,等待实时校准命令,收到命令后先进行实时读校准,再进行实时写校准。校准状态机在向其他三个模块输出当前状态信号,用来进行不同延迟链、以及不同方式的校准。
58.本实施例的psram控制器,通过校准流程控制和校准算法提高延迟链精确度,提高与psram设备通讯的最高速度。同时,本实施还可以进行实时校准,用于补偿芯片工作过程中电压、温度造成设备延迟漂移和延迟链漂移。
59.1)实现了初始读校准和写校准,保证读写延迟链都工作在最佳相位;
60.2)初始读校准采用了二分法加速,减少应用等待时间;
61.3)在实时空闲时进行实时微调校准,补偿电压、温度带来的相位漂移影响,提高稳定性。
62.实施例二
63.本实施例公开了一种psram相位校准方法,其包括如下步骤:
64.s1,获取psram启动,先进行初始读校准;
65.参考图6,其中步骤s1包括:s10、采用寄存器默认值配置写延迟链,将strobe和dq的读延迟链配置到0;s11、降低工作时钟频率;s12、将特定数写入psram;具体的,可以通过发送写命令将特定数写入psram,具体特定数可以是预先设置的固定的数据,在写入psram中时,可以发送地址以及预设设置的固定的数据,例如地址可以是动态分配的也是预先设置的固定地址。s13、恢复时钟频率;本实施例的恢复时钟频率是指将其恢复到高速工作时钟,即降低工作时钟频率之前的工作时钟频率。s14、从psram读取特定数获取读回数据
(s11-s14以下简称为降频写恢复读的过程);具体的,发送读命令从psram读取特定数;s15、比较读回的数据与特定数,s16、如果正确,则到读延迟链窗口的最小值,并执行步骤s20;s17、否则通过增加dq读延迟链加大strobe和dq之间的相位;s18、判断是否到达读延迟链最大值,s19、如果已经达到了延迟链最大值则说明扫描过一遍也不到能工作的值,进行报错退出。s20、降低工作时钟频率;s21、将特定数写入psram;s22、恢复时钟频率;s23、从psram读取特定数获取读回数据;s24、比较读回的数据与特定数,s25、如果错误,则到读延迟链窗口的最大值,并执行步骤s28;s26、否则通过增加dq读延迟链加大strobe和dq之间的相位;s27、判断是否到达读延迟链最大值,如果是,则到读延迟链窗口的最大值;s28、以窗口最小值和最大值进行平均后作为读延迟链的校准值;
66.本实施例在到读延迟链窗口的最小值之后继续进行降频写恢复读的过程。当到第一个读写错误或者延迟链达到最大值时,即到了窗口的最大值。最后,对窗口最小值和最大值进行平均后应用为读延迟链的校准值。
67.s3,进行初始写校准;
68.其中步骤s3包括:s31、将时钟写延迟链配置到延迟链长度的一半,信号写延迟链配置到0;具体的,本实施例中的延迟链长度是根据设计需求改变,但一定电路设计好,则延迟链长度是不变的;本实施例可以将时钟写延迟链配置到写延迟链长度的一半;s32、将特定数写入psram;具体的发送写命令将特定数写入psram,具体的写入方式同步骤s1中的方式;s33、从psram读取特定数获取读回数据;s34、比较读回的数据与特定数,s35、如果正确,则到写延迟链窗口的最小值,并执行s38;s36、否则,增加信号写延迟链,s37、判断是否达到延迟链最大值,如果是,则速度超标,进行报错退出;本实施例延迟链最大值指的是在电路设计时延迟链的长度;因此,在达到延迟链最大值后,将不能在调节延迟链。以下,关于延迟链最大值含义相同。s38、将特定数写入psram;s39、从psram读取特定数获取读回数据;s40、比较读回的数据与特定数,s41、如果错误,则到写延迟链窗口的最大值;s42、如果正确,增加信号写延迟链;s43、判断是否达到延迟链最大值,如果是,则到读延迟链窗口的最大值;
69.本实施例的初始写校准的流程和初始读校准类似。因为读校准已经完成,所以不需要降频写恢复读的过程。第一步先将时钟的写延迟链设置到一半将信号写延迟链配置到0,准备从0到最大值扫描延迟链。依次到延迟链窗口的最小和最大值之后,以二者的平均值作为最终数据写延迟链的校准值。
70.参考图8,进一步的,本实施例的psram相位校准方法,还包括:s3’,实时读校准,具体为:s31’、降低工作时钟频率;s32’、将特定数写入psram;s33’、恢复时钟频率;s34’、从psram读取特定数获取读回数据;s35’、比较读回的数据与特定数,s36’、如果正确,延迟链保持当前值,校准完成;s37’、如果错误,减少dq读延迟链;s38’、判断dq读延迟链是否小于设定范围,s39’、如果是,恢复dq读延迟链原值;并执行步骤s31
’‑
34’;s391’、比较读回的数据与特定数,s392’、如果正确,延迟链保持当前值,校准完成;s393’、如果错误,增加dq读延迟链;s394’、判断dq读延迟链是否大于设定范围,s395’、如果是,校准失败。
71.本实施例的实时读校准首先进行降频写恢复读的过程。接着对数据进行比较,如果比较结果正确,则到合适的延迟值,校准完成;如果比较错误,则减小dq读延迟链,再进行降频写恢复读过程。如果dq读延迟链小于设定范围,则先恢复dq读延迟链实时校准前的
值,再进行降频写恢复读过程。继续对读数据进行比较,如果比较结果正确,则到合适的延迟值,校准完成;如果比较错误,则增加dq读延迟链,重复降频写恢复读过程。最终,dq读延迟链大于设定范围则校准失败,否则将读写正确时的值应用到延迟链中。
72.参考图9,本实施例还包括:s4’,实时写校准,具体为:s41’、将特定数写入psram;具体的发送写命令将特定数写入psram,具体的写入方式同步骤s1中的方式;s42’、从psram读取特定数获取读回数据;s43’、比较读回的数据与特定数,s44’、如果正确,延迟链保持当前值,校准完成;s45’、否则,减少信号写延迟链,s46’、判断信号写延迟链是否小于设定范围,s47’、如果是,恢复信号写延迟链原值,并执行步骤s41
’‑
s43’;s48’、如果正确,延迟链保持当前值,校准完成;s49’、否则,增加信号写延迟链,s491’、判断信号写延迟链是否大于设定范围,s492’、如果是,校准失败。
73.本实施例的实时写校准首先进行写读过程。接着对读数据进行比较,如果比较结果正确,则到合适的延迟值,校准完成;如果比较错误,则减小信号写延迟链,再进行写读过程。如果信号写延迟链小于设定范围,则先恢复信号写链实时校准前的值,再进行写读的过程。继续对读数据进行比较,如果比较结果正确,则到合适的延迟值,校准完成;如果比较错误,则增加信号写延迟链,重复写读过程。最终,信号写延迟链大于设定范围则校准失败,否则将读写正确时的值应用到延迟链中。
74.本实施例的实时校准只做微调,在减小和增大一定范围的延迟链中查是否有合适的延迟链值。首先,先向减小的方向扫描尝试到读写正确的延迟。当减小到一定值还无法读写正确,则改变方向向增大的方向进行扫描。如果增大一定值也不到读正确的延迟,则说明外部条件引起延迟链失效,需要报错退出。
75.在实时校准中只需要对延迟链进行微调,因此每次判断结果之后只需要将延迟链
±
1。在初始化写校准中,因为发送延迟链较短,所以每次判断结果之后只要将延迟链不断+1对延迟链进行扫描。对于读延迟链,因此延迟链分为两级并且比较长,所以采用了二分法实现。
76.如图13,是初始读校准扫描最小值二分法的流程。启动后先进行降频写恢复读流程,如果比较结果错误,则说明延迟链不够,先增加二级延迟链重复做降频写恢复读直到比较结果正确。比较结果正确,则说明扫描链的值在当前的一级链中,此时将二级延迟链减一,一级延迟链值配置为最大值一半,调节量配置为最大值1/4。然后继续进行降频写恢复读,如果比较结果错误,一级延迟链为上次写读的延迟链+上次写读的调节量,同时将调节量减半;如果比较结果正确,一级延迟链为上次写读的延迟链-上次写读的调节量,同时将调节量减半。如此循环,直到调节量小于2,则到最佳的一级延迟链值。
77.本实施例的psram相位校准方法,通过校准流程控制和校准算法提高延迟链精确度,提高与psram设备通讯的最高速度。同时,本实施还可以进行实时校准,用于补偿芯片工作过程中电压、温度造成设备延迟漂移和延迟链漂移。
78.1)实现了初始读校准和写校准,保证读写延迟链都工作在最佳相位;
79.2)初始读校准采用了二分法加速,减少应用等待时间;
80.3)在实时空闲时进行实时微调校准,补偿电压、温度带来的相位漂移影响,提高稳定性。
81.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精
神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:


1.一种psram控制器,包括:系统控制模块、接口控制模块、相位校准模块,其中系统控制模块,用于控制psram控制器的状态;接口控制模块,用于实现psram协议和时序;其特征在于:接口控制模块包括一读延迟链、一写延迟链;写延迟链用以调整写时钟和其他信号的延迟关系,读延迟链用以调整strobe信号和dq之间相位关系;相位校准模块使用突发读写命令,通过向psram设备写入特定的数据后读取比较的方式,根据结果计算调整接口控制模块读延迟链和写延迟链,完成相位校准。2.根据权利要求1所述的psram控制器,其特征在于,所述读延迟链包括两级延迟链,一级延迟链由上升和下降沿延迟平衡的标准单元串联而成,通过数据选择器输出进行细调整,二级延迟链由多个一级延迟链串联构成,通过数据选择器输出进行粗调。3.根据权利要求2所述的psram控制器,其特征在于,所述写延迟链与所述读延迟链的一级延迟链相同。4.根据权利要求3所述的psram控制器,其特征在于,所述相位校准模块包括:校准状态机、延迟计算模块、读写检测模块和时钟生成模块;校准状态机控制校准流程,包含初始校准流程和实时校准流程;读写检测模块通过向系统控制模块发送特定的突发写和读,并对读数据进行比较判断读写正确与否;延迟计算单元用于根据校准状态以及读数据正确与否的结果给出延迟链的调整;时钟生成模块根据校准状态机控制,实现对输入的原时钟进行无毛刺升降频。5.根据权利要求4所述的psram控制器,其特征在于,所述时钟生成模块包含:一偶数分频器、一消毛刺的选择器。6.一种psram相位校准方法,其特征在于,包括如下步骤:s1,获取psram启动,先进行初始读校准;其中步骤s1包括:s10、采用寄存器默认值配置写延迟链,将strobe和dq的读延迟链配置到0;s11、降低工作时钟频率;s12、将特定数写入psram;s13、恢复时钟频率;s14、从psram读取特定数获取读回数据;s15、比较读回的数据与特定数;s16、如果正确,则到读延迟链窗口的最小值,并执行步骤s20;s17、否则通过增加dq读延迟链加大strobe和dq之间的相位;s18、判断是否到达读延迟链最大值;s19、如果已经达到了延迟链最大值则说明扫描过一遍也不到能工作的值,进行报错退出;s20、降低工作时钟频率;s21、将特定数写入psram;s22、恢复时钟频率;s23、从psram读取特定数获取读回数据;s24、比较读回的数据与特定数,s25、如果错误,则到读延迟链窗口的最大值,并执行步骤s28;s26、否则通过增加dq读延迟链加大strobe和dq之间的相位;s27、判断是否到达读延迟链最大值,如果是,则到读延迟链窗口的最大值;s28、以窗口最小值和最大值进行平均后作为读延迟链的校准值;s3,进行初始写校准;其中步骤s3包括:s31、将时钟写延迟链配置到延迟链长度的一半,信号写延迟链配置到0;s32、将特定数写入psram;具体的发送写命令将特定数写入psram,具体的写入方式同步骤s1中的方式;s33、从psram读取特定数获取读回数据;s34、比较读回的数据与特定数,s35、如果正确,则到写延迟链窗口的最小值,并执行s38;s36、否则,增加信号写延迟链,s37、判断是否达到延迟链最大值,如果是,则速度超标,进行报错退出;s38、将特定数写入psram;s39、从psram读取特定数获取读回数据;s40、比较读回的数据与特定数,s41、如果错
误,则到写延迟链窗口的最大值;s42、如果正确,增加信号写延迟链;s43、判断是否达到延迟链最大值,如果是,则到读延迟链窗口的最大值;s44、以窗口最小值和最大值进行平均后作为写延迟链的校准值;s5、将读延迟链的校准值、写延迟链的校准值作分别应用到读迟链以及写延迟链中。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:s3’,实时读校准,具体为:s31’、降低工作时钟频率;s32’、将特定数写入psram;s33’、恢复时钟频率;s34’、从psram读取特定数获取读回数据;s35’、比较读回的数据与特定数,s36’、如果正确,延迟链保持当前值,校准完成;s37’、如果错误,减少dq读延迟链;s38’、判断dq读延迟链是否小于设定范围,s39’、如果是,恢复dq读延迟链原值;并执行步骤s31
’‑
34’;s391’、比较读回的数据与特定数,s392’、如果正确,延迟链保持当前值,校准完成;s393’、如果错误,增加dq读延迟链;s394’、判断dq读延迟链是否大于设定范围,s395’、如果是,校准失败。8.根据权利要求6所述的方法,其特征在于,所述方法还包括:s4’,实时写校准,具体为:s41’、将特定数写入psram;具体的发送写命令将特定数写入psram;s42’、从psram读取特定数获取读回数据;s43’、比较读回的数据与特定数,s44’、如果正确,延迟链保持当前值,校准完成;s45’、否则,减少信号写延迟链,s46’、判断信号写延迟链是否小于设定范围,s47’、如果是,恢复信号写延迟链原值,并执行步骤s41
’‑
s43’;s48’、如果正确,延迟链保持当前值,校准完成;s49’、否则,增加信号写延迟链,s491’、判断信号写延迟链是否大于设定范围,s492’、如果是,校准失败。9.根据权利要求7或8所述的方法,其特征在于,所述减小dq读延迟链、增加dq读延迟链、所述减小信号写延迟链、所述增加信号写延迟链均为减少或增加1。

技术总结


本发明提供了一种PSRAM相位校准方法及控制器,其控制器包括:系统控制模块、接口控制模块、相位校准模块,其中系统控制模块,用于控制PSRAM控制器的状态;接口控制模块,用于实现PSRAM协议和时序;接口控制模块包括一读延迟链、一写延迟链;写延迟链用以调整写时钟和其他信号的延迟关系,读延迟链用以调整STROBE信号和DQ之间相位关系;相位校准模块使用突发读写命令,通过向PSRAM设备写入特定的数据后读取比较的方式,根据结果计算调整接口控制模块读延迟链和写延迟链,完成相位校准。完成相位校准。完成相位校准。


技术研发人员:

阳志文 邹迎辉 席晨 周宇 李剑新 杨海东 吴晨 朱贤伟 陈南清 李正武

受保护的技术使用者:

湖南兴芯微电子科技有限公司

技术研发日:

2022.11.25

技术公布日:

2023/3/28

本文发布于:2023-03-31 13:42:04,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/84673.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:定数   相位   模块   时钟
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图