芯片内时钟频率自动校准方法及相关产品与流程

文档序号:22922986发布日期:2020-11-13 16:14阅读:241来源:国知局
芯片内时钟频率自动校准方法及相关产品与流程
本申请涉及芯片
技术领域
,具体涉及一种芯片内时钟频率自动校准方法及相关产品。
背景技术
:时钟(clock)作为时序电路的统一指挥棒,是芯片不可或缺的组成部分。芯片的时钟源设计,一般有两种方法。一种是在芯片外挂石英晶振,通过芯片引脚输入给芯片提供时钟源,其优点是时钟频率准确,但成本高。另一种是在芯片内部设计振荡器电路产生时钟,优点是集成度高成本低,不足是振荡器周期会跟随工艺偏差或电压温度变化而变化,导致时钟频率在多颗芯片上的个体差异较大。由此,对内部振荡器频率校准显得尤为重要。如图1,为现有的时钟频率校准方案。该现有校准方案是将芯片内部振荡器(oscillator,osc)产生的时钟先分频至千赫兹(khz)级别,通过芯片引脚输出到芯片外部,在芯片外部使用兆赫兹(mhz)级别的精确时钟对放出的分频时钟进行采样,计算出它的实际频率;然后根据实际频率与目标频率的偏差方向和幅度,调整芯片内部的频率参数,接着在新的频率参数下,振荡器将会产生新的时钟频率,在芯片外部再次测量出当前振荡器频率;如此循环,直到找到频率校准参数使得时钟振荡器的频率与目标频率一致,校准过程完成。但申请人发现,现有技术存在以下缺点:1、当内部振荡器频率较高时,由于芯片引脚的速度限制,较高频的时钟信号无法直接输出到芯片外,需要先分频到较低频率再放出。2、在芯片外部对一个低频时钟测量时,由于低频时钟周期较长,测量一个周期需要耗费时间较长,为了测量的准确性,往往需要测量多个低频时钟周期再取平均值,显著增加测试时间和芯片测试成本。3、芯片外部测量计算的结果,需要经过专用通信接口反馈到芯片内部,使得芯片外围测试电路复杂。技术实现要素:本申请实施例提供一种芯片内时钟频率自动校准方法及相关产品,可以可完成芯片内部时钟频率的自动化校准,缩短校准时间,节省外围测试电路,可以有效缩短芯片测试时间和降低芯片测试成本。本申请实施例的第一方面提供了一种芯片内时钟频率自动校准方法,芯片外接一已校准的参考时钟,所述芯片包括振荡器、校准模块和参数调整模块,所述方法包括步骤:所述校准模块获取所述参考时钟产生的包含nref个周期的参考电平;所述校准模块通过所述振荡器的当前时钟统计所述参考电平的宽度内包含no个周期;若理论周期数nos与所述no的差值的绝对值大于设定误差dn,所述校准模块通过所述参数调整模块调整频率控制参数,所述频率控制参数用于改变所述振荡器的当前频率;所述nos基于所述参考时钟的参考频率、所述振荡器的目标频率和所述nref确定;若所述nos与所述no的差值的绝对值小于所述设定误差dn,所述校准模块确定所述振荡器校准成功。本申请实施例中的参考时钟可以是已校准的,参考时钟的时钟频率可以供芯片进行参考,参考时钟的时钟频率也可以称为参考频率。参考时钟可以来自其他已校准的芯片的振荡器的时钟,也可以来自晶体振荡器,本申请实施例不作限定。进一步地,所述校准模块按照如下公式计算所述振荡器的理论周期数nos:nos=(fosc/fref)*nref;其中,fosc为所述振荡器的目标频率,fref为所述参考时钟的参考频率。进一步地,所述校准模块通过所述参数调整模块调整频率控制参数之后,所述方法还包括:所述校准模块继续执行所述获取所述参考时钟产生的包含nref个周期的参考电平的步骤,或者继续执行所述通过所述振荡器的当前时钟统计所述参考电平的宽度内包含no个周期的步骤。进一步地,所述若理论周期数nos与所述no的差值的绝对值大于设定误差dn,所述校准模块通过所述参数调整模块调整频率控制参数,包括:若no-nos>dn,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数增加一个最小可调单位,以降低所述振荡器的当前频率;若nos-no>dn,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数减少一个最小可调单位,以调高所述振荡器的当前频率。进一步地,所述若no-nos>dn,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数增加一个最小可调单位,以降低所述振荡器的当前频率之后,所述方法还包括:若nos-no>dn,所述校准模块确定所述振荡器校准失败。进一步地,所述若nos-no>dn,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数减少一个最小可调单位,以调高所述振荡器的当前频率之后,所述方法还包括:若no-nos>dn,所述校准模块确定所述振荡器校准失败。进一步地,所述方法还包括:在所述频率控制参数增加到最大的情况下,若no-nos>dn,所述校准模块确定所述振荡器校准失败;在所述频率控制参数减小到最小的情况下,若nos-no>dn,所述校准模块确定所述振荡器校准失败。进一步地,所述nref按照如下公式确定:nref≥fref/[β*(1-α)*fosc];其中,fosc为所述振荡器的目标频率,fref为所述参考时钟的参考频率,α为所述振荡器的当前频率与所述目标频率的偏离误差,β为所述校准模块通过所述振荡器的当前时钟统计所述参考电平的统计误差。进一步地,所述设定误差dn按照如下公式确定:dn=nref*fosc*γ/fref;其中,fosc为所述振荡器的目标频率,fref为所述参考时钟的参考频率,γ为所述振荡器的频率调整精度。进一步地,所述校准模块获取所述参考时钟产生的包含nref个周期的参考电平之前,所述方法还包括:所述校准模块接收校准启动信号,所述校准启动信号用于指示所述校准模块从空闲状态进入等待状态;所述校准模块进入等待状态预设时长后,从所述等待状态切换至校准状态。进一步地,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数增加一个最小可调单位,以降低所述振荡器的当前频率之后,所述方法包括:所述校准模块进入所述等待状态。进一步地,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数减少一个最小可调单位,以调高所述振荡器的当前频率之后,所述方法包括:所述校准模块进入所述等待状态。进一步地,所述校准模块确定所述振荡器校准成功之后,所述方法还包括:所述校准模块进入所述空闲状态。进一步地,所述校准模块确定所述振荡器校准失败之后,所述方法还包括:所述校准模块进入所述空闲状态。进一步地,所述校准模块获取所述参考时钟产生的包含nref个周期的参考电平,所述校准模块通过所述振荡器的当前时钟统计所述参考电平的宽度内包含no个周期,包括:所述校准模块通过所述参考时钟统计所述参考电平的宽度内包含的nref个周期,通过所述振荡器的当前时钟统计所述参考电平的宽度内包含的no个周期。进一步地,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数增加一个最小可调单位,以降低所述振荡器的当前频率之前,所述方法还包括:若no-nos>dn,所述校准模块判断no-nos是否小于第一阈值;在no-nos小于所述第一阈值的情况下,所述校准模块执行所述通过所述参数调整模块将所述振荡器的当前频率参数增加一个最小可调单位的步骤;所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数减少一个最小可调单位,以调高所述振荡器的当前频率之前,所述方法还包括:若nos-no>dn,所述校准模块判断nos-no是否小于第二阈值;在nos-no小于所述第二阈值的情况下,所述校准模块执行所述通过所述参数调整模块将所述振荡器的当前频率参数减少一个最小可调单位的步骤。进一步地,所述方法还包括:在no-nos大于所述第一阈值的情况下,所述校准模块根据差值集合到最小可调单位数量集合的映射确定与no-nos对应的n个最小可调单位,所述n大于或等于2;所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数增加所述n个目标可调单位,以降低所述振荡器的当前频率;在nos-no大于所述第二阈值的情况下,所述校准模块根据所述差值集合到最小可调单位数量集合的映射确定与nos-no对应的m个最小可调单位,所述m大于或等于2;所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数减少所述m个目标可调单位,以调高所述振荡器的当前频率;其中,所述差值集合包括至少两个差值,所述最小可调单位数量集合包括至少两个最小可调单位数量;所述至少两个差值到所述至少两个最小可调单位数量的映射为单调递增函数。本发明第二方面,提供一种芯片,所述芯片包括振荡器、校准模块和参数调整模块,芯片外接一已校准的参考时钟;所述校准模块,用于获取所述参考时钟产生的包含nref个周期的参考电平;所述校准模块,还用于通过所述振荡器的当前时钟统计所述参考电平的宽度内包含no个周期;所述校准模块,还用于在理论周期数nos与所述no的差值的绝对值大于设定误差dn的情况下,通过所述参数调整模块调整频率控制参数,所述频率控制参数用于改变所述振荡器的当前频率;所述nos基于所述参考时钟的参考频率、所述振荡器的目标频率和所述nref确定;所述校准模块,还用于在所述nos与所述no的差值的绝对值小于所述设定误差dn的情况下,确定所述振荡器校准成功。本发明第三方面,提供一种芯片内时钟频率的校准模块,芯片外接一已校准的参考时钟,所述芯片包括振荡器、所述校准模块和参数调整模块,所述校准模块包括:获取单元,用于获取所述参考时钟产生的包含nref个周期的参考电平;统计单元,用于通过所述振荡器的当前时钟统计所述参考电平的宽度内包含no个周期;参数调整单元,用于在理论周期数nos与所述no的差值的绝对值大于设定误差dn的情况下,通过所述参数调整模块调整频率控制参数,所述频率控制参数用于改变所述振荡器的当前频率;所述nos基于所述参考时钟的参考频率、所述振荡器的目标频率和所述nref确定;确定单元,用于在所述nos与所述no的差值的绝对值小于所述设定误差dn的情况下,确定所述振荡器校准成功。本发明第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行本发明第一方面所述的方法。本发明主要具有以下有益效果:本发明所述通过采用上述技术方案,通过比较nos与no的差值的绝对值是否大于设定误差dn来判定是否校准成功,只需在芯片外挂一已校准的参考时钟,即可完成芯片内部时钟频率的自动化校准,缩短校准时间,无需外围测试电路,简化了芯片测试电路,从而有效缩短芯片测试时间和降低芯片测试成本。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是现有的芯片内时钟频率校准方法的原理示意图;图2是本申请实施例提供的一种芯片的结构示意图;图3是本申请实施例提供的一种参考时钟和振荡器的当前时钟统计参考电平的宽度包含的周期数的示意图;图4是本申请实施例提供的一种芯片内时钟频率自动校准方法的流程示意图;图5是本申请实施例提供的另一种芯片内时钟频率自动校准方法的流程示意图;图6是本申请实施例提供的一种校准模块的状态变化示意图;图7为本申请实施例提供的一种芯片内时钟频率的校准模块的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。本申请实施例中,请参阅图2,图2是本申请实施例提供的一种芯片的结构示意图,如图2所示,该芯片200包括振荡器201、校准模块202和参数调整模块203。所述校准模块202,用于获取所述参考时钟产生的包含nref个周期的参考电平;所述校准模块202,还用于通过所述振荡器201的当前时钟统计所述参考电平的宽度内包含no个周期;所述校准模块202,还用于在理论周期数nos与所述no的差值的绝对值大于设定误差dn的情况下,通过所述参数调整模块203调整频率控制参数,所述频率控制参数用于改变所述振荡器201的当前频率;所述nos基于所述参考时钟的参考频率、所述振荡器201的目标频率和所述nref确定;所述校准模块202,还用于在所述nos与所述no的差值的绝对值小于所述设定误差dn的情况下,确定所述振荡器201校准成功。其中,振荡器201可是rc振荡器201、lc振荡器201等。振荡器201一般包含电容,还可以包含电阻、电感中的一种或两种组合。振荡器201是一种能量转换装置,可以将直流电能转换为具有一定频率的交流电能。振荡器201是用来产生重复信号(比如,正弦波信号、方波信号等)的电子元件,其构成的电路叫振荡电路。振荡器201能将直流电转换为具有一定频率交流电信号输出的电子电路或装置。振荡器201的种类很多,按振荡激励方式可分为自激振荡器201、他激振荡器201;按电路结构可分为阻容振荡器201、电感电容振荡器201等。比如,参考时钟产生的包含nref个周期的参考电平可以是一段周期性的方波电平信号,也可以是一段周期性的正弦波电平信号。振荡器201的当前时钟可以通过产生的周期性的方波电平信号或正弦波电平信号来统计参考电平的宽度内包含的no个周期。参考时钟和振荡器201的当前时钟产生的是同一种类型的电平信号,比如都是期性的方波电平信号,或者都是期性的正弦波电平信号。需要说明的是,本申请的振荡器201是设置在芯片内部的振荡器201,与晶体振荡器201不同。晶体振荡器201体积大、功耗高,无法放置在芯片内部。晶体振荡器201可以设置在芯片外部。校准模块202用于对振荡器201的时钟频率进行校准。比如,振荡器201的目标频率为2.4兆赫兹(mhz),则校准模块202就是要将振荡器201的时钟频率校准到2.4mhz。参数调整模块203用于调整振荡器201的当前频率。具体的,参数调整模块203可以通过调整振荡器201的元件参数来改变振荡器201的当前频率。举例来说,如果振荡器201为rc振荡器201,参数调整模块203可以通过调整振荡器201的电阻和电容的大小来改变振荡器201的当前频率;如果振荡器201为lc振荡器201,参数调整模块203可以通过调整振荡器201的电感和电容的大小来改变振荡器201的当前频率。振荡器201内部的电子元件由于元件老化、元件制造工艺等电子元件差异,以及电子元件受所处的温度、湿度等环境的影响,振荡器201的时钟频率会产生漂移,会偏离之前设定的目标频率。因此,振荡器201的时钟频率需要进行校准。本申请实施例中的参考时钟可以是已校准的,参考时钟的时钟频率可以供芯片进行参考,参考时钟的时钟频率也可以称为参考频率。参考时钟可以来自其他已校准的芯片的振荡器201的时钟,也可以来自晶体振荡器201,本申请实施例不作限定。参考时钟可以产生一段包含nref个周期的参考电平,参考电平的宽度为nref*fref,fref为参考频率。举例来说,如果参考时钟的时钟频率(即,参考频率)为4mhz,nref等于10000,则参考电平的宽度为2.5毫秒(ms)。所述校准模块202通过所述振荡器201的当前时钟统计所述参考电平的宽度内包含no个周期。举例来说,如果参考电平的宽度为2.5ms,振荡器201的当前时钟的频率(也即,振荡器201的当前频率)为1.95mhz(实际上,校准模块202并不知道振荡器201的当前频率的大小),则振荡器201的当前时钟统计该参考电平的宽度内包含no=2.5*10-3*1.95*106=4875个周期。具体的,请参见图3,图3是本申请实施例提供的一种参考时钟和振荡器的当前时钟统计参考电平的宽度包含的周期数的示意图。图3以方波信号为例,在同样的参考电平的宽度(2微秒)内,参考时钟(参考频率为4mhz)产生了nref=8个周期的方波,振荡器201的当前时钟(当前时钟的频率为2mhz)统计产生了no=4个周期的方波。可见,在同样的参考电平的宽度的情况下,频率越大,产生的方波数量越大。所述校准模块202根据所述参考时钟的参考频率、所述振荡器201的目标频率和所述nref计算所述振荡器201的理论周期数nos。其中,nos=(fosc/fref)*nref;fosc为所述振荡器201的目标频率,fref为所述参考时钟的参考频率。举例来说,如果参考频率为4mhz,nref等于10000,振荡器201的目标频率为2mhz,则振荡器201的理论周期数nos=(2/4)*10000=5000。如果所述nos与所述no的差值的绝对值小于设定误差dn,所述校准模块202确定所述振荡器201校准成功。其中,设定误差dn是根据振荡器201的频率调整精度、振荡器201的目标频率fosc、参考频率fref和nref来确定的。影响振荡器201的频率调整精度的因素有振荡器201的电子元件的最小可调单位对振荡器201的频率的影响。比如,影响振荡器201的频率调整精度的因素有振荡器201的rc电路的电阻值和电容值,以及电阻值的最小可调单位和电容值的最小可调单位。如果电阻值的最小调整单位为1欧姆(ω)电容值的最小调整单位为0.1微法(μf),则振荡器201的rc电路的当前电阻增加1ω,当前电容增加1uf后,如果振荡器201的当前频率在0.6%到1%之间变化,则振荡器201的频率调整精度为0.6%。如果nos与所述no的差值的绝对值小于设定误差dn,则所述校准模块202确定所述振荡器201校准成功。如果nos与所述no的差值的绝对值大于设定误差dn,所述校准模块202通过所述参数调整模块203调整频率控制参数,所述频率控制参数用于改变所述振荡器201的当前频率。振荡器201的当前频率调整之后,继续比较nos与新的no的差值的绝对值是否小于设定误差dn,如果仍然大于设定误差,则继续调整振荡器201的当前频率,直到nos与no的差值的绝对值小于设定误差dn,则确定校准成功。可选的,所述校准模块202按照如下公式计算所述振荡器201的理论周期数nos:nos=(fosc/fref)*nref;其中,fosc为所述振荡器201的目标频率,fref为所述参考时钟的参考频率。可选的,所述校准模块202,还用于在通过所述参数调整模块203调整频率控制参数之后,继续执行所述获取所述参考时钟产生的包含nref个周期的参考电平的步骤,或者继续执行所述通过所述振荡器201的当前时钟统计所述参考电平的宽度内包含no个周期的步骤。可选的,在所述nos与所述no的差值的绝对值大于设定误差dn的情况下,所述校准模块202通过所述参数调整模块203调整频率控制参数,具体为:若no-nos>dn,所述校准模块202通过所述参数调整模块203将所述振荡器201的当前频率参数增加一个最小可调单位,以降低所述振荡器201的当前频率;若nos-no>dn,所述校准模块202通过所述参数调整模块203将所述振荡器201的当前频率参数减少一个最小可调单位,以调高所述振荡器201的当前频率。本申请实施例中,理论上,振荡器201的当前频率参数(比如,电容、电阻、电感等)可以调到任意的大小,但是由于电容、电阻、电感的制造工艺、环境温度等原因,电容、电阻、电感最小可调单位并不能无限接近0,会存在最小可调单位,最小可调单位是每次调整的最小幅度。频率参数可以包括影响振荡器201的频率的参数。比如,对于rc振荡器201(rc振荡器201内的电阻可以是可调电阻,电容可以是可调电容器)而言,rc振荡器201的频率f=1/2πrc;频率参数可以包括电阻和电容,当前频率参数的最小可调单位可以包括电阻的最小可调单位(比如,1ω)或者电容的最小可调单位(比如,1μf)。对于lc振荡器201(lc振荡器201内的电感可以是可调电感器,电容可以是可调电容器)而言,lc振荡器201的频率;频率参数可以包括电感和电容,当前频率参数的最小可调单位可以包括电感的最小可调单位(比如,1微亨(μh))或者电容的最小可调单位(比如,1μf)。需要说明的是,无论rc振荡器201还是lc振荡器201,振荡器201的频率与电容、电阻、电感均成反比。也即,需要调高振荡器201的频率时,则需要降低电容、电阻、电感等频率参数的大小;需要调低振荡器201的频率时,则增加电容、电阻、电感等频率参数的大小。可选的,所述若no-nos>dn,所述校准模块202通过所述参数调整模块203将所述振荡器201的当前频率参数增加一个最小可调单位,以降低所述振荡器201的当前频率之后,若nos-no>dn,所述校准模块202确定所述振荡器201校准失败。可选的,所述若nos-no>dn,所述校准模块202通过所述参数调整模块203将所述振荡器201的当前频率参数减少一个最小可调单位,以调高所述振荡器201的当前频率之后,若no-nos>dn,所述校准模块202确定所述振荡器201校准失败。可选的,所述校准模块202,还用于在所述频率控制参数增加到最大,并且no-nos>dn的情况下,所述校准模块202确定所述振荡器201校准失败;所述校准模块202,还用于在所述频率控制参数减小到最小,并且nos-no>dn的情况下,所述校准模块202确定所述振荡器201校准失败。可选的,所述nref按照如下公式确定:nref≥fref/[β*(1-α)*fosc];其中,fosc为所述振荡器201的目标频率,fref为所述参考时钟的参考频率,α为所述振荡器201的当前频率与所述目标频率的偏离误差,β为所述校准模块202通过所述振荡器201的当前时钟统计所述参考电平的统计误差。可选的,所述设定误差dn按照如下公式确定:dn=nref*fosc*γ/fref;其中,fosc为所述振荡器201的目标频率,fref为所述参考时钟的参考频率,γ为所述振荡器201的频率调整精度。可选的,所述校准模块202,还用于在获取所述参考时钟产生的包含nref个周期的参考电平之前,接收校准启动信号,所述校准启动信号用于指示所述校准模块202从空闲状态进入等待状态;所述校准模块202,还用于在进入等待状态预设时长后,从所述等待状态切换至校准状态。可选的,所述校准模块202,还用于通过所述参数调整模块203将所述振荡器201的当前频率参数增加一个最小可调单位,以降低所述振荡器201的当前频率之后,进入所述等待状态。可选的,所述校准模块202,还用于通过所述参数调整模块203将所述振荡器201的当前频率参数减少一个最小可调单位,以调高所述振荡器201的当前频率之后,进入所述等待状态。可选的,所述校准模块202,还用于确定所述振荡器201校准成功之后,进入所述空闲状态。可选的,所述校准模块202,还用于确定所述振荡器201校准失败之后,进入所述空闲状态。本申请实施例中,通过比较nos与no的差值的绝对值是否大于设定误差dn来判定是否校准成功,只需在芯片外挂一个已校准的参考时钟,即可完成芯片内部时钟频率的自动化校准,缩短校准时间,无需外围测试电路,简化了芯片测试电路,从而有效缩短芯片测试时间和降低芯片测试成本。图4是本申请实施例提供的一种芯片内时钟频率自动校准方法的流程示意图。图4所示的方法应用于图2所示的芯片。如图4所示,该芯片内时钟频率自动校准方法可以包括如下步骤。401,校准模块获取参考时钟产生的包含nref个周期的参考电平。本申请实施例中,参考时钟可以产生一段包含nref个周期的参考电平,参考电平的宽度为nref*fref,fref为参考频率。举例来说,如果参考时钟的时钟频率(即,参考频率)为4mhz,nref等于10000,则参考电平的宽度为2.5毫秒(ms)。本申请实施例中的参考时钟可以是已校准的,参考时钟的时钟频率可以供芯片进行参考,参考时钟的时钟频率也可以称为参考频率。参考时钟可以来自其他已校准的芯片的振荡器的时钟,也可以来自晶体振荡器,本申请实施例不作限定。参考时钟的时钟频率被认为是准确的,其中,芯片可以接收外灌的一个准确的参考时钟。具体的,校准模块可以通过参考时钟统计参考电平内包含的nref个周期。402,校准模块通过振荡器的当前时钟统计参考电平的宽度内包含no个周期。本申请实施例中,校准模块通过参考时钟统计参考电平内包含的nref个周期,与校准模块通过振荡器的当前时钟统计参考电平的宽度内包含no个周期,这两个步骤可以同时执行,也即参考时钟和振荡器的当前时钟可以同时统计一段相同的参考电平内包含的周期数。在一个实施例中,校准模块通过参考时钟统计参考电平内包含的nref个周期,与校准模块通过振荡器的当前时钟统计参考电平的宽度内包含no个周期,这两个步骤可以先后执行。比如,校准模块通过参考时钟统计参考电平内包含的nref个周期可以先执行,然后校准模块通过振荡器的当前时钟统计参考电平的宽度内包含no个周期。也即,参考时钟先开始统计,然后振荡器的当前时钟开始统计,然后参考时钟先结束统计,然后振荡器结束统计。保证参考时钟与振荡器的当前时钟统计的电平宽度相同。可选的,步骤401具体可以包括如下步骤:所述校准模块通过所述参考时钟统计所述参考电平的宽度内包含的nref个周期步骤402具体可以包括如下步骤:所述校准模块通过所述振荡器的当前时钟统计所述参考电平的宽度内包含的no个周期。其中,上述步骤401和步骤402可以同时执行。403,若理论周期数nos与no的差值的绝对值大于设定误差dn,校准模块通过参数调整模块调整频率控制参数,频率控制参数用于改变振荡器的当前频率;nos基于参考时钟的参考频率、振荡器的目标频率和nref确定。本申请实施例中,理论周期数nos可以按照如下公式确定:nos=(fosc/fref)*nref;其中,fosc为振荡器的目标频率,fref为参考时钟的参考频率。举例来说,如果fosc=2.4mhz,fref=4mhz,nref=1200,则nos=720。理论周期数nos是振荡器的当前频率等于目标频率时,振荡器的当前时钟统计参考电平的宽度内包含的周期数。可选的,在执行步骤403之后,还可以继续执行步骤401或步骤402(图4以继续执行步骤401为例),进入下一次循环,直到符合步骤404的条件,则结束对振荡器的频率校准。可选的,步骤403中,若理论周期数nos与no的差值的绝对值大于设定误差dn,校准模块通过参数调整模块调整频率控制参数,具体可以包括如下步骤:若no-nos>dn,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数增加一个最小可调单位,以降低所述振荡器的当前频率;振荡器的当前频率即为振荡器的当前时钟的频率;若nos-no>dn,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数减少一个最小可调单位,以调高所述振荡器的当前频率。本申请实施例中,理论上,振荡器201的当前频率参数(比如,电容、电阻、电感等)可以调到任意的大小,但是由于电容、电阻、电感的制造工艺、环境温度等原因,电容、电阻、电感最小可调单位并不能无限接近0,会存在最小可调单位,最小可调单位是每次调整的最小幅度。频率参数可以包括影响振荡器201的频率的参数。比如,对于rc振荡器201(rc振荡器201内的电阻可以是可调电阻,电容可以是可调电容器)而言,rc振荡器201的频率f=1/2πrc;频率参数可以包括电阻和电容,当前频率参数的最小可调单位可以包括电阻的最小可调单位(比如,1ω)或者电容的最小可调单位(比如,1μf)。对于lc振荡器201(lc振荡器201内的电感可以是可调电感器,电容可以是可调电容器)而言,lc振荡器201的频率;频率参数可以包括电感和电容,当前频率参数的最小可调单位可以包括电感的最小可调单位(比如,1微亨(μh))或者电容的最小可调单位(比如,1μf)。需要说明的是,无论rc振荡器201还是lc振荡器201,振荡器201的频率与电容、电阻、电感均成反比。也即,需要调高振荡器201的频率时,则需要降低电容、电阻、电感等频率参数的大小;需要调低振荡器201的频率时,则增加电容、电阻、电感等频率参数的大小。可选的,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数增加一个最小可调单位,以降低所述振荡器的当前频率之前,还包括如下步骤:若no-nos>dn,所述校准模块判断no-nos是否小于第一阈值;在no-nos小于所述第一阈值的情况下,所述校准模块执行所述通过所述参数调整模块将所述振荡器的当前频率参数增加一个最小可调单位的步骤;所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数减少一个最小可调单位,以调高所述振荡器的当前频率之前,还包括如下步骤:若nos-no>dn,所述校准模块判断nos-no是否小于第二阈值;在nos-no小于所述第二阈值的情况下,所述校准模块执行所述通过所述参数调整模块将所述振荡器的当前频率参数减少一个最小可调单位的步骤。其中,第一阈值和第二阈值可以根据dn进行设定,比如,第一阈值和第二阈值均可以设置为dn的十倍。第一阈值和第二阈值可以相同,也可以不同。第一阈值和第二阈值均可以设置为dn的十倍,可以在差值较小时,采用最小可调单位调整振荡器的当前频率参数,从而调整振荡器的当前频率。只需要最多十次即可将振荡器的当前频率调至目标频率,可以快速将振荡器的当前频率调至目标频率,提高振荡器的频率调整速度。可选的,图4的方法还可以包括如下步骤:在no-nos大于所述第一阈值的情况下,所述校准模块根据差值集合到最小可调单位数量集合的映射确定与no-nos对应的n个最小可调单位,所述n大于或等于2;所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数增加所述n个目标可调单位,以降低所述振荡器的当前频率;在nos-no大于所述第二阈值的情况下,所述校准模块根据所述差值集合到最小可调单位数量集合的映射确定与nos-no对应的m个最小可调单位,所述m大于或等于2;所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数减少所述m个目标可调单位,以调高所述振荡器的当前频率;其中,所述差值集合包括至少两个差值,所述最小可调单位数量集合包括至少两个最小可调单位数量;所述至少两个差值到所述至少两个最小可调单位数量的映射为单调递增函数。本申请实施例中,差值集合到最小可调单位数量集合的映射可以是以映射表的形式存储在校准模块中。举例来说,请参阅表1,表1是本申请实施例提供的一种差值集合到最小可调单位数量集合的映射表表1差值集合(dn的倍数)最小可调单位数量(个)10~201520~503550~10075大于100100从表1可以看出,差值集合中的差值越大,其对应的最小可调单位数量越大。本申请实施例可以在差值较大时,采用至少两个最小可调单位数量来调整振荡器的当前频率参数。可以在差值较大(差值大于第一阈值或第二阈值)时不以最小可调单位数量调整振荡器的当前频率参数,而是以差值对应的最小可调单位数量进行调整,差值较大时的每次调整可以以较大的幅度来调整振荡器的当前频率,从而将差值快速调整至小于第一阈值或第二阈值,进而快速将振荡器的当前频率调至目标频率,提高振荡器的频率调整速度。404,若nos与no的差值的绝对值小于设定误差dn,校准模块确定振荡器校准成功。理论上来说,如果nos>no,表明振荡器的当前频率偏小;如果nos<no,表明振荡器的当前频率偏大;如果nos=no,表明振荡器的当前频率等于目标频率。然而,在实际电路中,由于振荡器的当前时钟有统计误差,振荡器的当前时钟在统计参考电平的宽度内包含的周期数会出现一定的误差。本申请实施例中,设置一个设定误差dn,只要nos与no的差值的绝对值小于设定误差dn,表明振荡器的当前频率等于目标频率,确定振荡器校准成功。如果nos与no的差值的绝对值大于设定误差dn,表明振荡器的当前频率不等于目标频率,需要调整振荡器的当前频率。本申请实施例中,通过比较nos与no的差值的绝对值是否大于设定误差dn来判定是否校准成功,只需在芯片外挂一个已校准的参考时钟,即可完成芯片内部时钟频率的自动化校准,缩短校准时间,无需外围测试电路,简化了芯片测试电路,从而有效缩短芯片测试时间和降低芯片测试成本。请参阅图5,图5是本申请实施例提供的另一种芯片内时钟频率自动校准方法的流程示意图。图5所示的方法应用于图2所示的芯片。图5是在图4的基础上进一步优化得到的,如图5所示,该芯片内时钟频率自动校准方法可以包括如下步骤。501,校准模块接收校准启动信号,校准启动信号用于指示校准模块从空闲状态进入等待状态。本申请实施例中,校准模块可以接收校准启动信号,校准模块从空闲状态切换至等待状态。在空闲状态下,校准模块不进行校准操作。在等待状态下,校准模块做好校准准备。502,校准模块进入等待状态预设时长后,从等待状态切换至校准状态。本申请实施例中,预设时长可以预先设定。参数调整模块调整振荡器的频率后,振荡器需要一段时间后才能稳定输出。校准模块接收校准启动信号后,不会直接从空闲状态进入校准状态,而是先进入等待状态,一段时间(预设时长)后再进入校准状态。由于步骤501和步骤502可能会进入后面的循环步骤中。因此,需要设定预设时长,校准模块处于校准状态时,振荡器能够输出稳定频率的方波信号或正弦波信号。也即,让振荡器在上一次频率调整之后,下一次频率调整之前,能够输出稳定频率的方波信号或正弦波信号,保证校准状态下振荡器能够输出稳定的频率的方波信号或正弦波信号。预设时长是振荡器在频率调整之后能够输出稳定频率的信号所需的时长。503,校准模块获取参考时钟产生的包含nref个周期的参考电平。504,校准模块通过振荡器的当前时钟统计参考电平的宽度内包含no个周期。505,若no-nos>dn,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数增加一个最小可调单位,以降低所述振荡器的当前频率。可选的,在执行步骤505之后,所述校准模块进入所述等待状态,进入下一次循环。可选的,在执行步骤505之后,下一次执行步骤502、503和步骤504之后,若nos-no>dn,所述校准模块确定所述振荡器校准失败。表明振荡器的当前频率参数以最小可调单位调整后,振荡器的当前频率会在目标频率的上下反复切换,仍然无法满足nos与no的差值的绝对值小于设定误差dn的条件,则确定振荡器处于翻滚(roll)状态或校准失败。506,若nos-no>dn,所述校准模块通过所述参数调整模块将所述振荡器的当前频率参数减少一个最小可调单位,以调高所述振荡器的当前频率。可选的,在执行步骤506之后,所述校准模块进入所述等待状态,进入下一次循环。可选的,在执行步骤506之后,下一次执行步骤502、503和步骤504之后,no-nos>dn,所述校准模块确定所述振荡器校准失败。表明振荡器的当前频率参数以最小可调单位调整后,振荡器的当前频率会在目标频率的上下反复切换,仍然无法满足nos与no的差值的绝对值小于设定误差dn的条件,则确定振荡器处于翻滚(roll)状态或校准失败。可选的,在所述频率控制参数增加到最大的情况下,若no-nos>dn,所述校准模块确定所述振荡器校准失败;在所述频率控制参数减小到最小的情况下,若nos-no>dn,所述校准模块确定所述振荡器校准失败。本申请实施例中,如果频率控制参数增加到最大,也即振荡器的当前频率调至最低的情况下,振荡器的当前频率仍然大于目标频率,即no-nos>dn,所述校准模块确定所述振荡器校准失败。如果频率控制参数减小到最小,也即振荡器的当前频率调至最大的情况下,振荡器的当前频率仍然小于目标频率,即nos-no>dn,所述校准模块确定所述振荡器校准失败。可选的,在振荡器校准失败后,校准模块进入空闲状态。可选的,在振荡器处于翻滚状态后,校准模块进入空闲装。507,若nos与no的差值的绝对值小于设定误差dn,校准模块确定振荡器校准成功。可选的,在执行步骤507之后,所述校准模块进入所述空闲状态,校准模块等待下一次校准启动指令。可选的,所述nref按照如下公式确定:nref≥fref/[β*(1-α)*fosc];其中,fosc为所述振荡器的目标频率,fref为所述参考时钟的参考频率,α为所述振荡器的当前频率与所述目标频率的偏离误差,β为所述校准模块通过所述振荡器的当前时钟统计所述参考电平的统计误差。振荡器的当前频率与目标频率的偏离误差α指的是,在对振荡器的频率进行校准之前,如果振荡器的当前频率与目标频率的偏离误差小于或等于α,则能够将振荡器的频率校准回来,如果振荡器的当前频率与目标频率的偏离误差大于α,则不能将振荡器的频率校准回来。举例来说,如果α设置为30%。如果振荡器的当前频率与目标频率的误差在30%以内,在nref满足公式nref≥fref/[β*(1-α)*fosc]的情况下,即可将振荡器的频率校准回来;如果振荡器的当前频率与目标频率的误差在30%以外,在nref满足公式nref≥fref/[β*(1-α)*fosc]的情况下,则不能保证可将振荡器的频率校准回来。β为所述校准模块通过所述振荡器的当前时钟统计所述参考电平的统计误差。β指的是振荡器对应的计数器的统计误差,这是振荡器的频率误差决定的,与振荡器的硬件参数相关。举例来说,如果α为30%,β为0.2%,fosc为2.4mhz,fref为4mhz,则nref≥fref/[β*(1-α)*fosc]=4/0.2%*(1-30%)*2.4=1190。可以设置nref为1200。如果设置nref为1200,设定统计nref的计数器(比如,计数器1)的位数为11比特(bit)(210<1200<211)即可满足要求。振荡器的当前时钟统计所述参考电平对应的计数器的最高统计的数量n=nref*fosc*(1+α)/fref=1200*2.4*1.3/4=936,则振荡器的当前时钟统计参考电平的计数器(比如,计数器2)的位数为10bit(29<936<210)。则振荡器对应的计数器位数设计为10bit即可满足要求。其中,计数器1用于在步骤503中统计nref,计数器2用于在步骤504中统计no。通过上述公式对nref的限制,可以满足在振荡器的当前频率与目标频率的偏离误差小于α,校准模块通过振荡器的当前时钟统计参考电平的统计误差小于β的情况下,选取的nref能够满足校准的要求。需要说明的是,nref=fref/β*(1-α)*fosc也可以满足校准的要求。为了缩短校准时间,可以设定nref=fref/β*(1-α)*fosc。可选的,所述设定误差dn按照如下公式确定:dn=nref*fosc*γ/fref;其中,fosc为所述振荡器的目标频率,fref为所述参考时钟的参考频率,γ为所述振荡器的频率调整精度。本申请实施例中,振荡器的频率调整精度γ指的是,振荡器的频率参数按照最小的单位调整带来的误差。举例来说,如果振荡器的频率调整精度γ为0.66%,fosc为2.4mhz,fref为4mhz,nref为1200,则dn=nref*fosc*γ/fref=1200*2.4*0.66%/4=4.75。由于dn是整数,可以设置dn等于4或者5。其中,步骤503至步骤507的具体实施可以参见步骤401至步骤404,此处不再赘述。本申请实施例中,通过比较nos与no的差值的绝对值是否大于设定误差dn来判定是否校准成功,只需在芯片外挂一个已校准的参考时钟,即可完成芯片内部时钟频率的自动化校准,缩短校准时间,无需外围测试电路,简化了芯片测试电路,从而有效缩短芯片测试时间和降低芯片测试成本。请参阅图6,图6是本申请实施例提供的一种校准模块的状态变化示意图。校准模块的状态,也可以称为状态机的状态。(1)状态机的初始状态为空闲(idle)状态,振荡器工作在初始默认参数;(2)当校准模块收到校准启动信号,状态机从空闲状态跳转到等待(wait)状态。在等待状态下,使能一个计数器用于延时等待,当计数时间达到设定值时,状态机进入校准(track)状态;(3)在校准状态,用参考时钟计数产生nref个周期的高电平,使用振荡器的内部时钟数这个高电平宽度得到计数值no;a:如果no>nos,no-nos>dn,说明内部osc频率高于参考频率,状态机进入参数增加状态,对振荡器的当前频率参数(fcctl)进行加1操作(即,校准模块通过参数调整模块将振荡器的当前频率参数fcctl增加一个最小可调单位),将振荡器的频率降低一档;b:如果nos>no,nos-no>dn,说明内部osc频率低于参考频率,状态机进入参数降低状态,对振荡器的当前频率参数fcctl进行减1操作,将振荡器的频率升高一档;c:如果在上一个振荡器的当前频率参数下no-nos>dn,记为l(no-nos>dn),当前频率参数加1后得到的当前nos-no>dn,记为c(nos-no>dn),说明振荡器的当前频率由高于参考频率区间,降低一档后,又变为低于参考频率区间,则进入翻滚(roll)状态,说明发生频率翻滚无法调整到误差范围内,当前芯片标记为翻滚状态,无法校准到要求范围内而舍弃掉;同样,当振荡器的当前频率由低于参考频率区间l(nos-no>dn),升高一档后,又变为高于参考频率区间c(no-nos>dn),也属于无法校准到要求范围而进入翻滚状态,无法校准到要求范围内而舍弃掉;d:当振荡器的当前频率参数加到最大,仍然使得no-nos>dn,或者振荡器的当前频率参数减到最小,仍然使得nos-no>dn,说明振荡器的当前频率参数达到边界状态,也无法将振荡器的当前频率校准到要求范围内,则进入失败(fail)状态,当前芯片标记为失败被舍弃掉;e:只要振荡器的当前频率参数调整到某个值,能使得no与nos之间的相对差小于允许误差范围dn,也即|no-nos|<dn,说明振荡器已经校准成功,进入完成(done)状态。(4)无论是参数降低状态还是参数增加状态,完成之后都进入等待状态,主要在硬件调整振荡器的当前频率参数对频率补偿之后,芯片内部振荡器需要一段时间来达到稳定输出;(5)翻滚/失败/完成状态完成相应取舍标记后,回到空闲状态,等待下一次校准启动指令。这样,通过本申请实施例所述方法即可完成芯片内部时钟频率的自动化校准,缩短校准时间,节省外围测试电路,简化了芯片测试电路,从而有效缩短芯片测试时间和降低芯片测试成本。请参阅图7,图7为本申请实施例提供的一种芯片内时钟频率的校准模块的结构示意图,该校准模块700应用于图2所示的芯片。该芯片外接一个已校准的参考时钟,所述芯片包括振荡器、所述校准模块和参数调整模块,所述校准模块700包括:获取单元701,用于获取所述参考时钟产生的包含nref个周期的参考电平;统计单元702,用于通过所述振荡器的当前时钟统计所述参考电平的宽度内包含no个周期;参数调整单元703,用于在理论周期数nos与所述no的差值的绝对值大于设定误差dn的情况下,通过所述参数调整模块调整频率控制参数,所述频率控制参数用于改变所述振荡器的当前频率;所述nos基于所述参考时钟的参考频率、所述振荡器的目标频率和所述nref确定;确定单元704,用于在所述nos与所述no的差值的绝对值小于所述设定误差dn的情况下,确定所述振荡器校准成功。其中,图7的校准模块置的具体实施可以参见图4至图5所示的方法实施例,此处不再赘述。本申请实施例中,通过比较nos与no的差值的绝对值是否大于设定误差dn来判定是否校准成功,只需在芯片外挂一个已校准的参考时钟,即可完成芯片内部时钟频率的自动化校准,缩短校准时间,无需外围测试电路,简化了芯片测试电路,从而有效缩短芯片测试时间和降低芯片测试成本。本申请实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种芯片内时钟频率自动校准方法的部分或全部步骤。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在申请明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1