一种调整时钟的方法及控制器转让专利

申请号 : CN201510781814.8

文献号 : CN106708167B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王斌

申请人 : 北京兆易创新科技股份有限公司

摘要 :

本发明实施例提供了一种调整时钟的方法及控制器,其中的方法具体包括:进行存储器的读写测试,以得到使控制器从所述存储器中准确采样数据的延时长度;设置配置寄存器的延时参数为所述延时长度;控制读数据采样电路根据所述延时参数生成实际采样时钟,以根据所述实际采样时钟从所述存储器中采样数据。本发明实施例能够使控制器可以准确从存储器中采样数据,并且可以降低芯片设计流程的难度,减小开发时间且降低生产成本。

权利要求 :

1.一种调整时钟的方法,其特征在于,应用于控制器,所述控制器包括配置寄存器、信号产生电路、读写预处理电路以及读数据采样电路,所述读数据采样电路包括异步处理模块、时钟门控电路和时钟延时电路,所述时钟门控电路与所述配置寄存器和所述信号产生电路分别相连,所述时钟延时电路与所述配置寄存器和时钟门控电路分别相连,所述异步处理模块分别与时钟延时电路、存储器相连;包括:进行存储器的读写测试,以得到使控制器从所述存储器中准确采样数据的延时长度;

设置配置寄存器的延时参数为所述延时长度;

控制读数据采样电路根据所述延时参数生成实际采样时钟,以异步处理模块根据所述实际采样时钟从所述存储器中采样数据,并对所述存储器的数据进行采样得到的采样结果进行缓存,确认采样结果稳定后将采样结果根据所述控制器的工作时钟,返回至所述读写预处理电路;

其中,控制读数据采样电路根据所述延时参数生成实际采样时钟,包括:

所述时钟延时电路接收理想采样时钟,并接收所述配置寄存器配置的延时参数,以使所述理想采样时钟根据所述延时参数对理想采样时钟进行延时,产生实际采样时钟,所述配置寄存器配置的延时参数为所述延时长度;

其中,所述理想采样时钟是按照以下方式得到的:

所述时钟门控电路接收所述控制器的工作时钟,并接收所述信号产生电路传递的读数据有效标志,使该工作时钟根据该读数据有效标识产生与采样结果个数相同的上升沿,以得到理想采样时钟,其中,所述读数据有效标志根据存储器发送的地址信息和命令信息产生。

2.根据权利要求1所述的方法,其特征在于,所述进行存储器的读写测试,以得到使控制器从所述存储器中准确采样数据的延时长度的步骤,包括:向存储器中写入测试数据;

在当前延时参数下,通过控制器从所述存储器中采样所述测试数据;

在所述控制器的采样结果与所述测试数据不同时,按预设幅度对所述当前延时参数进行调整;

将调整后的延时参数作为当前延时参数输出至所述在当前延时参数下,通过控制器从所述存储器中采样所述测试数据的步骤;

在所述控制器的采样结果与所述测试数据相同时,将所述当前延时参数确定为第一延时长度。

3.根据权利要求2所述的方法,其特征在于,所述在当前延时参数下,通过控制器从所述存储器中采样所述测试数据的步骤,包括:读数据采样电路根据当前延时参数对采样时钟进行延时,得到实际采样时钟;其中,所述读数据采样电路为所述控制器中对所述存储器进行数据采样的电路;

所述读数据采样电路根据所述实际采样时钟对所述存储器中的数据进行采样。

4.根据权利要求2所述的方法,其特征在于,所述进行存储器的读写测试,以得到使控制器从所述存储器中准确采样数据的延时长度的步骤,还包括:在所述第一延时长度的基础上按预设幅度对延时参数进行调整,得到新的当前延时参数;

在当前延时参数下,通过控制器从所述存储器中采样所述测试数据;

在所述控制器的采样结果与所述测试数据相同时,按预设幅度对所述当前延时参数进行调整;

将调整后的延时参数作为当前延时参数输出至所述在当前延时参数下,通过控制器从所述存储器中读取所述测试数据的步骤;

在所述控制器的采样结果与所述测试数据不同时,将所述当前延时参数的前一次延时参数确定为第二延时长度;

将介于所述第一延时长度与所述第二延时长度之间的值确定为延时长度。

5.根据权利要求4所述的方法,其特征在于,所述延时长度为所述第一延时长度与所述第二延时长度的平均值。

6.根据权利要求2或4所述的任一方法,其特征在于,所述在所述控制器的采样结果与所述测试数据不同时,按预设幅度对所述当前延时参数进行调整的步骤,包括:通过粗调方式和/或微调方式调整所述延时参数,所述延时参数包括粗调延时和微调延时;其中,所述通过所述粗调方式调整的所述粗调延时以所述控制器的一个工作时钟为时间单位;所述通过所述微调方式调整的所述微调延时以一个标准库单元为时间单位。

7.一种控制器,其特征在于,包括:配置寄存器、读写预处理电路和读数据采样电路;

所述配置寄存器设置延时参数为延时长度;其中,所述延时长度为通过存储器的读写测试得到的、使所述控制器从存储器中准确采样数据的延时长度;

所述读数据采样电路与所述配置寄存器和存储器相连,根据所述延时参数生成实际采样时钟,异步处理模块根据所述实际采样时钟对所述存储器的数据进行采样,并对所述存储器的数据进行采样得到的采样结果进行缓存,确认采样结果稳定后将采样结果根据所述控制器的工作时钟,返回至所述读写预处理电路;

所述控制器还包括信号产生电路;所述读数据采样电路包括:异步处理模块、时钟门控电路和相连的时钟延时电路;

其中,所述时钟门控电路与所述信号产生电路相连,其接收控制器的工作时钟,接收所述信号产生电路传递的读数据有效标志,使所述工作时钟根据所述读数据有效标识产生与采样结果个数相同的上升沿,以得到理想采样时钟,其中,所述读数据有效标志根据存储器发送的地址信息和命令信息产生;

所述时钟延时电路与所述配置寄存器相连,其接收所述理想采样时钟,接收所述配置寄存器配置的所述延时参数,以使所述理想采样时钟根据所述延时参数对理想采样时钟进行延时,产生实际采样时钟。

8.根据权利要求7所述的控制器,其特征在于,所述配置寄存器配置的延时参数包括粗调延时和微调延时,其中,所述粗调延时以所述控制器的一个工作时钟为时间单位;所述微调延时以一个标准库单元为时间单位。

9.根据权利要求8所述的控制器,其特征在于,所述控制器还包括信号产生电路;所述读数据采样电路包括:时钟门控电路和相连的时钟延时电路;

其中,所述时钟门控电路与所述信号产生电路和所述配置寄存器相连,其接收控制器的工作时钟,接收所述信号产生电路传递的读数据有效标志,以使所述工作时钟根据所述读数据有效标识产生与采样结果个数相同的上升沿;其接收所述配置寄存器配置的所述粗调延时,并根据所述粗调延时对所述时钟进行延时,以得到第一采样时钟;

所述时钟延时电路与所述配置寄存器相连,其接收所述第一采样时钟,接收所述配置寄存器配置的所述微调延时,以根据微调延时对所述第一采样时钟进行延时,产生实际采样时钟。

说明书 :

一种调整时钟的方法及控制器

技术领域

[0001] 本发明涉及电子技术领域,特别是涉及一种调整时钟的方法及一种控制器。

背景技术

[0002] SDRAM(同步动态随机访问存储器,Synchronous Dynamic Random Access Memory)存储器具有价格低,容量大,性能好等优点,因而被广泛的应用于各种电子设备中;而SDRAM控制器是对SDRAM存储器进行数据写入和读取的功能模块。
[0003] SDRAM控制器对SDRAM存储器进行数据读取操作分为两个步骤:SDRAM控制器向SDRAM存储器发送读取命令和地址信息,以对上述SDRAM存储器进行读取功能操作;SDRAM存储器接收到上述读取命令和地址信息后,在接收的来自SDRAM控制器的时钟信号的有效沿,经过一定的延时后,产生读数据,并向上述SDRAM控制器返回读数据。SDRAM控制器产生时钟信号至读数据返回到上述SDRAM控制器的延时的长度取决于多种因素,具体可以包括:工作环境、存储器型号、系统实现以及芯片实现等等。
[0004] 为了使上述SDRAM控制器可以适应各种长度的延时,也即在多种条件下都可以进行正确的读取操作,现有技术的第一种方案是在芯片的内部控制上述延时的长度,即采用先进的制作工艺而使延时减小;第二种方案是在系统实现时控制上述延时的长度,即在开发板上对芯片进行布局来减小延时;第三种方案是使用速度较快的SDRAM存储器。
[0005] 但是,上述第一种方案在芯片的内部控制上述延时的长度及第二种方案在系统实现时控制上述延时的长度,均会带来设计难度增加,开发时间延长及生产成本增加的问题;而第三种方案使用速度较快的SDRAM存储器会带来生产成本增加的问题。

发明内容

[0006] 本发明实施例所要解决的技术问题是提供一种调整时钟的方法及控制器,使控制器可以准确从存储器中采样数据,并且可以降低芯片设计流程的难度,减小开发时间且降低生产成本。
[0007] 为了解决上述问题,本发明实施例公开了一种调整时钟的方法,包括:
[0008] 进行存储器的读写测试,以得到使控制器从所述存储器中准确采样数据的延时长度;
[0009] 设置配置寄存器的延时参数为所述延时长度;
[0010] 控制读数据采样电路根据所述延时参数生成实际采样时钟,以根据所述实际采样时钟从所述存储器中采样数据。
[0011] 优选的,所述进行存储器的读写测试,以得到使控制器从所述存储器中准确采样数据的延时长度的步骤,包括:
[0012] 向存储器中写入测试数据;
[0013] 在当前延时参数下,通过控制器从所述存储器中采样所述测试数据;
[0014] 在所述控制器的采样结果与所述测试数据不同时,按预设幅度对所述当前延时参数进行调整;
[0015] 将调整后的延时参数作为当前延时参数输出至所述在当前延时参数下,通过控制器从所述存储器中采样所述测试数据的步骤;
[0016] 在所述控制器的采样结果与所述测试数据相同时,将所述当前延时参数确定为第一延时长度。
[0017] 优选的,所述在当前延时参数下,通过控制器从所述存储器中采样所述测试数据的步骤,包括:
[0018] 读数据采样电路根据当前延时参数对采样时钟进行延时,得到实际采样时钟;其中,所述读数据采样电路为所述控制器中对所述存储器进行数据采样的电路;
[0019] 所述读数据采样电路根据所述实际采样时钟对所述存储器中的数据进行采样。
[0020] 优选的,所述进行存储器的读写测试,以得到使控制器从所述存储器中准确采样数据的延时长度的步骤,还包括:
[0021] 在所述第一延时长度的基础上按预设幅度对延时参数进行调整,得到新的当前延时参数;
[0022] 在当前延时参数下,通过控制器从所述存储器中采样所述测试数据;
[0023] 在所述控制器的采样结果与所述测试数据相同时,按预设幅度对所述当前延时参数进行调整;
[0024] 将调整后的延时参数作为当前延时参数输出至所述在当前延时参数下,通过控制器从所述存储器中读取所述测试数据的步骤;
[0025] 在所述控制器的采样结果与所述测试数据不同时,将所述当前延时参数的前一次延时参数确定为第二延时长度;
[0026] 将介于所述第一延时长度与所述第二延时长度之间的值确定为延时长度。
[0027] 优选的,所述延时长度为所述第一延时长度与所述第二延时长度的平均值。
[0028] 优选的,所述在所述控制器的采样结果与所述测试数据不同时,按预设幅度对所述当前延时参数进行调整的步骤,包括:
[0029] 通过粗调方式和/或微调方式调整所述延时参数,所述延时参数包括粗调延时和微调延时;其中,所述通过所述粗调方式调整的所述粗调延时以所述控制器的一个工作时钟为时间单位;所述通过所述微调方式调整的所述微调延时以一个标准库单元为时间单位。
[0030] 本发明还公开了一种控制器,包括:配置寄存器和读数据采样电路;
[0031] 所述配置寄存器设置延时参数为延时长度;其中,所述延时长度为通过存储器的读写测试得到的、使所述控制器从存储器中准确采样数据的延时长度;
[0032] 所述读数据采样电路与所述配置寄存器和存储器相连,根据所述延时参数生成实际采样时钟,并根据所述实际采样时钟对所述存储器的数据进行采样。
[0033] 优选的,所述配置寄存器配置的延时参数包括粗调延时和微调延时,其中,所述粗调延时以所述控制器的一个工作时钟为时间单位;所述微调延时以一个标准库单元为时间单位。
[0034] 优选的,所述控制器还包括信号产生电路;所述读数据采样电路包括:时钟门控电路和相连的时钟延时电路;
[0035] 其中,所述时钟门控电路与所述信号产生电路和所述配置寄存器相连,其接收控制器的工作时钟,接收所述信号产生电路传递的读数据有效标志,以使所述工作时钟根据所述读数据有效标识产生与采样结果个数相同的上升沿;其接收所述配置寄存器配置的所述粗调延时,并根据所述粗调延时对所述时钟进行延时,以得到第一采样时钟;
[0036] 所述时钟延时电路与所述配置寄存器相连,其接收所述第一采样时钟,接收所述配置寄存器配置的所述微调延时,以根据微调延时对所述第一采样时钟进行延时,产生实际采样时钟。
[0037] 优选的,所述控制器还包括信号产生电路;所述读数据采样电路包括:时钟门控电路和相连的时钟延时电路;
[0038] 其中,所述时钟门控电路与所述信号产生电路相连,其接收控制器的工作时钟,接收所述信号产生电路传递的读数据有效标志,使所述工作时钟根据所述读数据有效标识产生与采样结果个数相同的上升沿,以得到理想采样时钟;
[0039] 所述时钟延时电路与所述配置寄存器相连,其接收所述理想采样时钟,接收所述配置寄存器配置的所述延时参数,以使所述理想采样时钟根据所述延时参数对理想采样时钟进行延时,产生实际采样时钟。
[0040] 优选的,所述控制器还包括读写预处理电路;所述读数据采样电路还包括:异步处理模块;所述异步处理模块与所述时钟延时电路相连接,接收来自所述时钟延时电路的实际采样时钟,根据所述实际采样时钟采样所述存储器的数据,并将所述采样结果根据所述控制器的工作时钟返回给所述读写预处理电路。
[0041] 与现有技术相比,本发明实施例包括以下优点:
[0042] 本发明实施例提供的一种调整时钟的方法及控制器,读数据采样电路可以根据配置寄存器设置的延时参数生成实际采样时钟,也即读数据采样电路的采样时钟根据上述延时参数进行延时,继而产生实际采样时钟,由于上述延时参数是根据存储器的读写测试得到的可以使控制器准确从存储器中采样数据的延时长度,因此本发明实施例可以使控制器准确的从存储器中采样数据,从而提高了控制器采样数据的准确率;
[0043] 并且,相比于现有方案在芯片的内部控制延时的长度需要先进的制作工艺来减小延时而言,或者,相比于在系统实现时控制上述延时的长度需要在开发板上进行芯片布局来减小延时而言,本发明实施例可以通过读数据采样电路生成适应控制器与存储器之间延时的实际采样时钟,无论制作工艺先进与否,或者开发板上芯片系统布局如何,本发明实施例中控制器的读数据采样电路均可以依据该实际采样时钟,准确的从存储器中采样数据,也即无需先进的制作工艺来减小延时,也无需在开发板上进行芯片布局来减小延时,因此降低了芯片设计流程的难度,减小了开发时间且降低了生产成本;
[0044] 另外,相对于使用速度较快的存储器生产成本较高而言,本发明实施例通过增加读数据采样电路即可使控制器准确的从存储器中采样数据,因此降低了生产成本。

附图说明

[0045] 图1是本发明实施例提供的一种调整时钟的方法实施例一的步骤流程图;
[0046] 图2是本发明一种进行存储器的读写测试的步骤流程图;
[0047] 图3是本发明实施例提供的一种调整时钟的方法实施例二的步骤流程图;
[0048] 图4是本发明实施例提供的一种调整时钟的方法实施例三的步骤流程图;
[0049] 图5是本发明实施例提供的一种控制器实施例一的结构示意图;
[0050] 图6是本发明实施例提供的一种控制器实施例二的结构示意图;
[0051] 图7是本发明实施例提供的一种控制器实施例三的结构示意图;
[0052] 图8是本发明实施例中读数据采样电路的工作时序图;
[0053] 图9是本发明实施例提供的一种控制器的结构示意图;及
[0054] 图10是示出了本发明实施例中一种读数据采样电路的结构示意图。

具体实施方式

[0055] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0056] 方法实施例一
[0057] 参照图1,示出了本发明实施例提供的一种调整时钟的方法实施例一的步骤流程图,具体可以包括以下步骤:
[0058] 步骤101、进行存储器的读写测试,以得到使控制器从上述存储器中准确采样数据的延时长度;
[0059] 本发明实施例可以适用于控制器中,以使得控制器对存储器进行采样操作的时候,可以通过调整读数据的采样时钟克服读取操作过程中的读数据延时,提高采样数据的准确率,并降低芯片设计流程的难度,减小开发时间且降低生产成本。
[0060] 参照图2,示出了本发明一种进行存储器的读写测试的步骤流程图,具体可以包括:
[0061] 步骤201、向存储器中写入测试数据;
[0062] 步骤202、在当前延时参数下,通过控制器从上述存储器中采样上述测试数据;
[0063] 步骤203、在上述控制器的采样结果与上述测试数据不同时,按预设幅度对上述当前延时参数进行调整;
[0064] 步骤204、将调整后的延时参数作为当前延时参数输出至上述在当前延时参数下,通过控制器从上述存储器中采样上述测试数据的步骤;
[0065] 步骤205、在上述控制器的采样结果与上述测试数据相同时,将上述当前延时参数确定为第一延时长度。
[0066] 在当前延时参数下,通过控制器从上述存储器中采样上述测试数据,具体可以包括:读数据采样电路可以根据当前延时参数对采样时钟进行延时,以得到实际采样时钟;其中,上述读数据采样电路为上述控制器中对上述存储器进行数据采样的电路;上述读数据采样电路可以根据上述实际采样时钟从上述存储器中采样数据;
[0067] 具体的,假设当前延时参数为0,若写入测试数据后,控制器第一次读取的数据即与测试数据相同,则确定延时长度为0;若第一次采样的数据与测试数据不同,则可以按预设幅度逐次增加延时参数,得到新的当前延时参数,控制器的读数据采样电路的时钟根据当前延时参数进行延时,以形成实际采样时钟,并根据该实际采样时钟对存储器中的测试数据进行采样,直至控制器的采样数据与上述测试数据相同,则确定延时长度为当前延时参数;
[0068] 例如:假设预设幅度为5ns,若第一次采样的数据与测试数据不同,则将延时参数增加5ns,也即新的当前延时参数为5ns,读数据采样电路的时钟延时5ns以形成实际采样时钟,若5ns的当前延时参数下,寄存器根据实际采样时钟采样的数据与上述测试数据相同,则延时长度确定为5ns;若5ns的当前延时参数下,寄存器根据实际采样时钟采样的数据与上述测试数据不同,则当前延时参数继续按预设幅度增加,也即当前延时参数为10ns,读数据采样电路的时钟延时10ns以形成实际采样时钟,若10ns的当前延时参数下,寄存器根据实际采样时钟采样的数据与上述测试数据相同,则延时长度为10ns;若10ns的当前延时参数下,寄存器根据实际采样时钟采样的数据与上述测试数据不同,则延时参数继续按预设幅度逐次增加,直至控制器根据实际采样时钟的采样数据与上述测试数据相同,则延时长度为当前的延时参数。
[0069] 可以理解,本发明实施例中,上述预设幅度为5ns为本发明实施例中预设幅度的一种示例,而不理解为是对本发明实施例中预设幅度的一种限制,实际上,预设幅度为可以为任意值,例如:10ns、12ns、15ns等等,其可以由本领域技术人员自行确定,本发明实施例对预设幅度不做限定。
[0070] 在本发明的一种可选实施例中,上述在控制器的采样结果与上述测试数据不同时,按预设幅度对上述当前延时参数进行调整的步骤,具体可以包括:
[0071] 通过粗调方式和/或微调方式调整上述延时参数,上述延时参数具体可以包括粗调延时和微调延时;其中,上述通过所述粗调方式调整的上述粗调延时以上述控制器的一个工作时钟为时间单位;上述通过上述微调方式调整的上述微调延时以一个标准库单元为时间单位。
[0072] 本发明实施例中,N个微调延时可以转化为1个粗调延时,也即微调延时与粗调延时是进位关系,其中,1个粗调延时为一个工作时钟,例如:N为5,也即5个微调延时组成的时间可以转化为一个粗调延时,也即5个微调延时组成的时间为1个工作时钟;假设一个工作时钟为5ns,则上述一个微调延时为1ns,当延时长度为6ns时,则可以设置1个粗调延时,1个微调延时;当延时长度为8ns,则可以设置1个粗调延时,3个微调延时。
[0073] 可以理解,上述N为5仅作为本发明实施例中N的取值的一个示例,实际上,N可以为大于1的任意正整数值,例如:3、4、6、7、10等等,由本领域技术人员自行确定,本发明实施例对N的取值不做具体限定。
[0074] 步骤102、设置配置寄存器的延时参数为上述延时长度;
[0075] 步骤103、控制读数据采样电路根据上述延时参数生成实际采样时钟,以根据上述实际采样时钟从上述存储器中采样数据。
[0076] 本发明实施例中,上述配置寄存器的延时参数设置为上述延时长度后,读数据采样电路可以根据上述延时长度对自身的时钟进行延时,从而产生实际采样时钟。
[0077] 本发明实施例中,存储器根据控制器发送的读取命令及地址向控制器返回读取结果,而由于上述读取操作过程中容易存在读数据的延时,上述读数据的延时可以来自存储器接收上述控制器发送的读取命令及地址的过程、或者存储器产生读取结果的过程、或者存储器将读取结果返回给控制器的过程;而本发明实施例中上述控制器采样读取结果的实际采样时钟是根据延时长度进行延时产生的,由于上述延时长度是根据读写测试得到的、可以使控制器从存储器中准确采样数据的延时长度,也即上述延时长度与上述读取操作过程中的时钟的延时相适应,因此本发明实施例中的控制器可以准确的从控制器中采样数据。
[0078] 综上,本发明实施例提供的一种调整时钟的方法,读数据采样电路可以根据配置寄存器设置的延时参数生成实际采样时钟,也即读数据采样电路的采样时钟根据上述延时参数进行延时,继而产生实际采样时钟,由于上述延时长度是根据存储器的读写测试得到的可以使控制器准确从存储器中采样数据的延时长度,因此本发明实施例可以使控制器准确的从存储器中采样数据,从而提高了控制器读取数据的准确率;
[0079] 并且,相比于现有方案在芯片的内部控制延时的长度需要先进的制作工艺来减小延时而言,或者,相比于在系统实现时控制上述延时的长度需要在开发板上进行芯片布局来减小延时而言,本发明实施例可以通过读数据采样电路生成适应控制器与存储器之间延时的实际采样时钟,无论制作工艺先进与否,或者开发板上芯片系统布局如何,本发明实施例中控制器的读数据采样电路均可以依据该实际采样时钟,准确的从存储器中采样数据,也即无需先进的制作工艺来减小延时,也无需在开发板上进行芯片布局来减小延时,因此降低了芯片设计流程的难度,减小了开发时间且降低了生产成本;
[0080] 另外,相对于使用速度较快的存储器生产成本较高而言,本发明实施例通过增加读数据采样电路即可使控制器准确的从存储器中采样数据,因此降低了生产成本。
[0081] 方法实施例二
[0082] 参照图3,示出了本发明实施例提供的一种调整时钟的方法实施例二的步骤流程图,具体可以包括以下步骤:
[0083] 步骤301、向存储器中写入测试数据;
[0084] 步骤302、在当前延时参数下,通过控制器从上述存储器中采样上述测试数据;
[0085] 步骤303、在上述控制器的采样结果与上述测试数据不同时,按预设幅度对上述当前延时参数进行调整;
[0086] 步骤304、将调整后的延时参数作为当前延时参数输出至上述在当前延时参数下,通过控制器从上述存储器中采样上述测试数据的步骤;
[0087] 步骤305、在上述控制器的采样结果与上述测试数据相同时,将上述当前延时参数确定为第一延时长度;
[0088] 步骤306、在上述第一延时长度的基础上按预设幅度对延时参数进行调整,得到新的当前延时参数;
[0089] 步骤307、在当前延时参数下,通过控制器从上述存储器中采样上述测试数据;
[0090] 步骤308、在上述控制器的采样结果与上述测试数据相同时,按预设幅度对上述当前延时参数进行调整;
[0091] 步骤309、将调整后的延时参数作为当前延时参数输出至上述在当前延时参数下,通过控制器从上述存储器中采样上述测试数据的步骤;
[0092] 步骤310、在上述控制器的采样结果与上述测试数据不同时,将上述当前延时参数的前一次延时参数确定为第二延时长度;
[0093] 本发明实施例中,假设预设幅度为5ns,当前延时参数为0,控制器采样的数据与测试数据不同,则当前延时参数按预设幅度增加5ns成为新的当前延时参数,也即当前延时参数为5ns;若控制器采样的数据与测试数据相同,则第一延时参数为5ns;将第一延时参数继续预设幅度增加5ns成为新的当前延时参数,也即当前延时参数为10ns;若控制器采样的数据与测试数据相同,则将当前延时参数按预设幅度增加5ns成为新的当前延时参数,也即当前延时参数为15ns;若控制器采样的数据与测试数据不同,则当前延时参数的前一次延时参数,也即延时参数10ns为可以使控制器从上述存储器中准确采样数据的最长延时长度,则第二延时长度为10ns。
[0094] 步骤311、将介于上述第一延时长度与上述第二延时长度之间的值确定为延时长度;
[0095] 步骤312、设置配置寄存器的延时参数为上述延时长度;
[0096] 步骤313、控制读数据采样电路根据上述延时参数生成实际采样时钟,以根据所述实际采样时钟从所述存储器中采样数据。
[0097] 相对于方法实施例一,本发明实施例通过步骤301至步骤311对进行存储器的读写测试,以得到使控制器从上述存储器中准确采样数据的延时长度的步骤进行了细化;其中,上述步骤301至步骤305得到的第一延时长度为使控制器从上述存储器中准确采样数据的最短延时长度;上述步骤306至步骤310得到的第二延时长度为使控制器从上述存储器中准确采样数据的最长延时长度;步骤311将介于上述最短延时长度和最长延时长度之间的值确定为上述延时长度,则控制器根据该延时长度对自身的时钟进行延时得到实际采样时钟,该实际采样时钟可以使控制器从上述存储器中准确采样数据。
[0098] 在本发明的一种可选实施例中,上述延时长度可以为上述第一延时长度和第二延时长度的平均值,也即延时长度为上述第一延时长度和第二延时长度的中间值,由于寄存器从存储器中采样数据的时候,产生的延时不是固定的,而是具有一定幅度的波动性,因而位于第一延时长度和第二延时长度中间的延时长度具有最大的余量,读数据采样电路根据该延时长度进行延时继而生成实际采样时钟,并根据该实际采样时钟采样数据时,采样数据的出错率最低,也即采样数据的准确率最高。
[0099] 方法实施例三
[0100] 参照图4,示出了本发明实施例提供的一种调整时钟的方法实施例三的步骤流程图,具体可以包括以下步骤:
[0101] 步骤401、系统启动;
[0102] 本发明实施例中,为芯片系统上电,启动系统。
[0103] 步骤402、配置控制器的寄存器;
[0104] 本发明实施例中,在寄存器中配置控制器的工作模式,并根据存储器的实际情况,将上述存存储器的容量信息和时序信息配置到上述控制器的寄存器中。
[0105] 步骤403、初始化存储器;
[0106] 本发明实施例中,根据上述存储器的协议规范中规定的初始化流程,对上述存储器进行初始化。
[0107] 步骤404、进行第一读写测试;
[0108] 本发明实施例中,对上述存储器进行第一读写测试的目的为得到能够使控制器从上述存储器中准确采样数据的最短延时长度。
[0109] 其中,第一读写测试可以为向存储器内写入测试数据,通过控制器从上述存储内采样测试数据。
[0110] 步骤405、判断上述第一读写测试结果是否正确;若第一读写测试结果正确,则执行步骤407;若第一读写测试结果错误,则执行步骤406;
[0111] 步骤406、按预设幅度对延时长度进行调整,得到新当前延时参数,并返回执行步骤404;
[0112] 本发明实施例中,对延时长度进行调整可以通过调整时钟延时电路的粗调和微调部分,以使实际采样时钟的延时长度可以逐步的、均匀的增加。
[0113] 步骤407、记录当前的延时长度D1;
[0114] 本发明实施例中,若上述第一读写测试的第一次读写测试结果正确,那么D1可以为芯片系统上电启动后的默认延时,一般为0;若第一次读写测试错误,那么D1可以为读写测试结果由错误变为正确时所对应的延时长度,也即使控制器从上述存储器中采样读取数据的最短延时长度。
[0115] 步骤408、进行第二读写测试;
[0116] 本发明实施例中,对上述存储器进行第二读写测试的目的即得到使控制器从上述存储器中准确采样数据的最长延时长度。
[0117] 其中,第二读写测试可以为上述第一读写测试结果正确以后,继续按预设幅度调整上述延时长度,在逐步增加的延时长度下,控制器继续从存储器内采样数据。
[0118] 步骤409、判断上述第二读写测试结果是否正确;若第二读写测试结果正确,则执行步骤411;若第二读写测试结果错误,则执行步骤410;
[0119] 步骤410、按预设幅度对延时长度进行调整,得到新当前延时长度,并返回执行步骤408;
[0120] 步骤411、记录当前的延时长度D2;
[0121] 本发明实施例中,若上述第一读写测试结果正确以后,继续按预设幅度调整上述延时长度,在逐步增加的延时长度下,从存储器内采样数据,直至在一定延时长度下,测试结果出现错误,那么D2为读写测试结果由正确变为错误所对应的延时长度的前一次延时长度,以及当前延时长度减去预设幅度的值确定为D2,D2为使控制器从上述存储器中采样读取数据的最长延时长度。
[0122] 步骤412、设置配置寄存器的时钟延时参数为D1和D2的平均值,以使得读数据采样电路可以根据该延时参数生成实际采样电路,以根据所述实际采样时钟从所述存储器中采样数据;
[0123] 本发明实施例中,可以通过将配置寄存器的延时参数修改为D1和D2的平均值,以使寄存器的实际采样时钟的延时为D1和D2的平均值。在这组设置下,读数据采样电路的时序具备最大的余量,抗干扰能力最强,出错概率最低。
[0124] 步骤413、上述配置寄存器的延时参数设置完毕后,控制器正常工作,开始对存储器进行读写操作。
[0125] 控制器的所有工作参数调节完毕,可以开始正常工作,以对存储器进行读写操作。
[0126] 装置实施例一
[0127] 参照图5,示出了本发明提供的一种控制器实施例一的结构示意图,具体可以包括:配置寄存器501和读数据采样电路502;
[0128] 上述配置寄存器501设置延时参数为延时长度;其中,上述延时长度为通过存储器的读写测试得到的、使上述控制器从存储器中准确采样数据的延时长度;
[0129] 上述读数据采样电路502与上述配置寄存器501和存储器503相连,其根据上述延时参数生成实际采样时钟,并根据上述实际采样时钟对上述存储器503的数据进行采样。
[0130] 本发明实施例中,上述配置寄存器501可以配置控制器的工作模式及各种工作参数,例如:存储器的容量信息(存储器的数目、深度宽度等)和时序信息及读数据采样电路的采样时钟的延时长度等;
[0131] 通过配置寄存器501设置延时参数为延时长度后,则读数据采样电路502根据该延时参数将工作时钟进行延时,也即将工作时钟延时延时长度后生成实际采样时钟,并根据该实际采样时钟对上述存储器503的数据进行采样,例如:经过为5ns,配置寄存器501设置延时参数为5ns,则读数据采样电路502将工作时钟进行延时5ns,以产生实际采样时钟,并根据该实际采样时钟对存储器503中的数据进行采样;由于上述延时长度为根据存储器503的读写测试得到的、使上述控制器从存储器503中准确采样数据的延时长度,因此根据该延时长度进行延时产生的实际采样时钟可以使读数据采样电路准确的从存储器503中采样数据。
[0132] 装置实施例二
[0133] 参照图6,示出了本发明提供的一种控制器实施例二的结构示意图,具体可以包括:配置寄存器601、读数据采样电路602及信号产生电路603;
[0134] 本发明实施例中,上述配置寄存器601配置的延时参数具体可以包括粗调延时和微调延时,其中,上述粗调延时以上述控制器的一个工作时钟为时间单位;上述微调延时以一个标准库单元为时间单位。
[0135] 上述读数据采样电路602具体可以包括:时钟门控电路6021和相连的时钟延时电路6022;
[0136] 其中,上述时钟门控电路6021与上述信号产生电路603和上述配置寄存器601相连,其接收控制器的工作时钟,接收上述信号产生电路603传递的读数据有效标志,以使上述工作时钟根据上述读数据有效标识产生与采样结果个数相同的上升沿;其接收上述配置寄存器601配置的上述粗调延时,并根据上述粗调延时对上述时钟进行延时,以得到第一采样时钟;
[0137] 上述时钟延时电路6022与上述配置寄存器601相连,其接收上述第一采样时钟,接收上述配置寄存器601配置的上述微调延时,以根据微调延时对上述第一采样时钟进行延时,产生实际采样时钟。
[0138] 本发明实施例中,N个微调延时可以转化为1个粗调延时,也即微调延时与粗调延时是进位关系,其中,1个粗调延时为一个工作时钟延时,例如:N为5,也即5个微调延时组成的时间为一个粗调延时,也即为1个工作时钟,假设一个工作时钟为5ns,则上述一个微调延时为1s,当延时长度为6ns时,则可以设置1个粗调延时,1个微调延时;当延时长度为8ns,则可以设置1个粗调延时,3个微调延时;
[0139] 可以理解,上述N为5仅作为本发明实施例中N的取值的一个示例,实际上,N可以为大于1的任意正整数值,例如:3、4、6、7、10等等,由本领域技术人员自行确定,本发明实施例对N的取值不做具体限定。
[0140] 本发明实施例中,上述信号产生电路603可以根据对存储器604发送的地址信息和命令信息产生读数据有效标识,该读数据有效标识为信号产生电路603将上述地址信息和命令信息翻译为存储器604可以识别的接口信号上的高低电平,也即控制器需要从存储器604中采样M个数据,则信号产生电路603产生M个高低电平,例如:控制器需要从存储器604中采样3个数据,则信号产生电路603产生3个高低电平,也即控制器最后的采样结果为3个。
[0141] 本发明实施例中,上述时钟门控电路6021接收控制器的工作时钟后,还接收上述信号产生电路603传递的读数据有效标志,并根据该读数据有效标识使上述工作时钟产生与采样结果个数相同的上升沿,也即使上述工作时钟产生与上述读数据有效标识的高低电平数量相同的高低电平;上述时钟门控电路6021还接收配置寄存器601配置的粗调延时,以使根据读数据有效标识进行变化后的工作时钟可以根据粗调延时进行延时,以得到第一采样时钟;上述时钟延时电路6022接收上述第一采样时钟,还接收配置寄存器601配置的上述微调延时,以将上述第一采样时钟延时上述微调延时,得到实际采样时钟,并根据该实际采样时钟从存储器中采样数据。
[0142] 本发明实施例中,可以通过调用工艺商提供的时钟门控标准库单元实现上述时钟门控电路6021,其中一个门控标准库单元可以为一个粗调延时;可以通过具有延时功能的标准库单元实现上述时钟延时电路6022,其中一个标准库单元可以为一个微调延时;这样通过时钟门控电路6021进行粗调,通过时钟延时电路6022进行微调,可以避免需要设置足够多的标准库单元才能满足延时长度的需求,从而标准库单元过多,造成的功能实现上困难的问题。
[0143] 为了使本领域技术人员更好的理解本发明实施例,下面通过一个具体示例对本发明实施例加以说明:
[0144] 例如:配置寄存器配置的延时参数为8ns,其中上述一个工作时钟等于5ns,5个微调延时等于一个工作时钟,也即1个粗调延时为5ns,1个微调延时等于1ns,则上述延时参数可以包括:1个粗调延时和3个微调延,则时钟门控电路6021将上述工作时钟进行一个粗调延时的延时,也即将上述工作时钟延时5ns,以得到第一采样时钟;则时钟延时电路将上述第一采样电路延时3ns,以得到实际采样时钟,并根据该实际采样时钟从存储器中采样数据。
[0145] 在本发明的一种实施例中,上述时钟门控电路6021可以与上述信号产生电路603相连,其接收控制器的工作时钟,接收上述信号产生电路603传递的读数据有效标志,使上述工作时钟根据上述读数据有效标识产生与采样结果个数相同的上升沿,以得到理想采样时钟;
[0146] 上述时钟延时电路6021与上述配置寄存器601相连,其接收上述理想采样时钟,接收上述配置寄存器601配置的上述延时参数,以使上述理想采样时钟根据上述延时参数对理想采样时钟进行延时,产生实际采样时钟。
[0147] 本发明实施例中,可以通过时钟门控电路6021得到理想采样时钟,该理想采样时钟具有与采样结果个数相同的上升沿个数,其可以使控制器只对需要读取的存储器604中的数据进行采样,例如:控制器需要读取存储器604中的3个数据,将该理想采样时钟具有3个上升沿,以保证控制器可以从上述存储器604中采样3个数据,从而避免采样的数据多于控制器需要读取的数据,造成控制器的资源浪费的问题。
[0148] 本发明实施例中,可以通过时钟延时电路6022依据接收的配置寄存器601配置的延时参数而对上述理想采样时钟进行延时,例如:配置寄存器601配置的延时参数为5s,则时钟延时电路6022将上述理想采样时钟延时5s,以得到实际采样时钟,并根据该实际采样时钟对存储器中的数据进行读取。
[0149] 本发明实施例可以适用于配置寄存器设置的延时参数较小的场景。
[0150] 装置实施例三
[0151] 参照图7,示出了本发明提供的一种控制器实施例三的结构示意图,具体可以包括:配置寄存器701、读数据采样电路702、信号产生电路703及读写预处理电路704;
[0152] 上述读数据采样电路702具体可以包括:时钟门控电路7021和相连的时钟延时电路7022、异步处理模块7023;上述异步处理模块7023与上述时钟延时电路7022相连接,接收来自上述时钟延时电路7022的实际采样时钟,根据上述实际采样时钟采样上述存储器705的数据,并将上述采样结果根据上述控制器的工作时钟返回给上述读写预处理电路704。
[0153] 本发明实施例中,上述异步处理模块7023可以根据上述实际采样时钟采样上述存储器的705的数据,并可以对采样结果进行缓存,在确认采样结果稳定以后,将上述采样结果根据控制器的工作时钟返回给上述读写预处理电路704;由于异步处理模块7023的实际采样时钟是在控制器的工作时钟的基础上,进行延时参数的延时得到的,因此若采用同步处理模块,也即将采样结果直接返回给读写预处理电路,由于读写预处理电路的工作时钟为控制器的工作时钟,而同步处理模块的工作时钟为实际采样时钟,因此会造成采样结果跨时钟域传递时出错,造成传输至读写预处理电路704的采样结果出现错误。
[0154] 因此,采用异步处理模块7023可以将采样结果进行实际采样电路和控制器工作时钟的转换,最终将采样结果根据控制器的工作时钟返回给上述读写预处理电路704,避免了由于实际采样时钟和控制器的工作时钟之间的延时所造成的传输采样结果出错的问题,因此保证了采样结果传输的正确性。
[0155] 在本发明实施例的一种可选实施例中,上述异步处理模块具体可以为异步FIFO(First Input First Output,先入先出队列),采用异步FIFO可以将采样结果按采样顺序返回给读写预处理电路,以保证采样结果传输的准确性。
[0156] 参照图8,示出了本发明实施例中读数据采样电路的工作时序图;其中,HCLK为控制器的工作时钟,RVLD为信号产生电路产生的读数据有效标志,RCLK_H为时钟门控电路将HCLK依据RVLD产生的理想采样时钟,RCLK_D为时钟延时电路将RCLK_H进行延时产生的实际采样时钟,REG0和REG1为异步FIFO中的存储单元,RVLD_D3为异步FIFO输出的读数据有效标志。RVLD_D3由RVLD信号延时3个HCLK周期得到。在RVLD_D3为高的时刻,REG0或REG1中的数据处于稳定状态,可以返回给上述读写预处理电路。在本示例中存储器的工作时钟为控制器工作时钟的一半,存储器产生的读数据个数为3个。对于其它频率的存储器工作时钟,本发明实施例同样适用。
[0157] 参照图9,示出了本发明提供的一种控制器的结构示意图,具体可以包括:配置寄存器901、读数据采样电路902、信号产生电路903、读写预处理电路904、状态机电路905及时钟产生电路906;其中读数据采样电路902分别与配置寄存器901、读写预处理电路904和信号产生电路903相连;信号产生电路903与读写预处理电路904和状态机电路905相连;读写预处理电路904与状态机电路905相连;时钟产生电路906分别与上述读数据采样电路902、信号产生电路903、读写预处理电路904、状态机电路905及时钟产生电路906相连;
[0158] 其中,上述配置寄存器901可以配置控制器的工作模式及各种工作参数,例如:存储器的容量信息(存储器的数目、深度宽度等)和时序信息及读数据采样电路902的采样时钟的延时长度等;
[0159] 读数据采样电路902可以负责从存储器907中采样数据,并将结果返回给读写预处理电路904,读数据采样电路902具体可以包括产生理想采样时钟的时钟门控电路,产生实际采样时钟的时钟延时电路和对存储器的数据进行采样、并将其转换到控制器工作时钟域的异步FIFO电路;
[0160] 参照图10,示出了本发明实施例中一种读数据采样电路的结构示意图,具体可以包括:时钟门控电路1001、时钟延时电路1002及异步FIFO 1003;其中,上述时钟延时电路1002与时钟门控电路1001及异步FIFO 1003相连。
[0161] 信号产生电路903可以接收读写预处理电路904产生的地址信息和状态机电路905产生的命令信息,并将上述地址信息和命令信息翻译为存储器可以识别的接口信号上的高低电平。
[0162] 读写预处理电路904可以根据系统总线908的宽度与存储器907总线宽度的相对关系,将系统总线908上的读写操作转换为方便存储器907执行的读写操作。系统总线传来的写数据和写地址,以及从存储器采样的采样结果,都可以缓存在读写预处理电路904中。
[0163] 状态机电路905可以负责控制控制器的工作状态,并根据存储器907的协议规范,产生操作存储器907的各种控制命令。这些命令具体可以包括配置模式寄存器、激活、预充电、自刷新、进入/退出低功耗模式等。状态机电路905还会接收读写预处理电路904中产生的读写请求,根据存储器的协议规范,产生用于实现这些读写操作的命令序列。
[0164] 时钟产生电路906可以负责产生驱动存储器907的时钟信号,存储器907会在时钟信号的上升沿对收到的命令信号、地址信号和写数据信号进行采样。在读取操作中,存储器会在时钟信号的上升沿后一定时间内产生读数据信号。
[0165] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0166] 本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0167] 本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0168] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0169] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0170] 尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0171] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0172] 以上对本发明所提供的一种调整时钟的方法和一种控制器行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。