本发明涉及集成电路技术领域,尤其涉及的是一种时钟频率校准方法和装置。
背景技术:
时钟在数字电路系统中具有重要的作用,数字信号需要用时钟脉冲来控制数据的接受和发送。因此,产生满足要求频率和精度的时钟信号也就成了数据传输过程中的关键。
传统的时钟发生器是基于外部的时钟源来实现的,这一时钟源通常选为晶体振荡器。然而晶体振荡器通常无法集成到硅圆晶上,因而不适合对面积、功耗等要求比较严格的集成电路产品。
目前,集成电路芯片中,一般是通过在芯片内部设计振荡器来为数字电路系统提供时钟信号,通常称为片上振荡器。片上振荡器的频率和精度是由其内部电阻以及电容等参数决定,而这些参数容易受半导体制造工艺的影响,在工艺的实现过程中,电阻和电容可能存在较大的工艺偏差这使得振荡器输出的时钟信号的频率会有比较大的偏差,从而影响数字系统的正常工作。同时,随着振荡器的不断工作,周围环境及应用温度的变化也会导致振荡器的频率偏离原来的振荡频率,从而使振荡器的频率产生大的误差,影响芯片的正常工作。
因此,需要一种方法对集成电路上的时钟频率进行实时校准。
技术实现要素:
本发明所要解决的技术问题是提供一种时钟频率校准方法和装置,能够实时校准集成芯片上的片上振荡器产生的时钟频率。
本发明实施例提供一种时钟频率校准装置,包括:参考时钟模块,校准控制模块、计数器模块和参数可调振荡器模块;
参考时钟模块,用于获取参考时钟信号,根据所述参考时钟信号生成校准周期信号并输出给校准控制模块;
校准控制模块,用于接收参考时钟模块输出的校准周期信号,根据所述校准周期信号生成连续的校准脉冲信号并输出给计数器模块;
计数器模块,用于在停止计数状态下接收到新的校准脉冲信号后复位,并开始对参数可调振荡器模块输出的时钟脉冲进行计数;在计数状态下接收到新的校准脉冲信号后停止对参数可调振荡器模块输出的时钟脉冲进行计数,将计数值输出给校准模块;
校准模块,用于将接收到的当前计数值与期望计数值进行比较,根据比较结果产生参数控制信号,将所述参数控制信号输出给参数可调振荡器模块;
参数可调振荡器模块,用于输出时钟信号给计数器模块和数字电路系统,在接收到校准模块输出的参数控制信号后,根据所述参数控制信号对振荡器输出的时钟频率进行调整。
可选地,校准模块,用于将接收到的当前计数值与期望计数值进行比较,根据比较结果产生参数控制信号,将所述参数控制信号输出给参数可调振荡器模块,包括:
如果接收到的当前计数值Nt与期望计数值N0相同,则保持原有的参数控制信号不变,将原有的参数控制信号输出给参数可调振荡器模块;如果接收到的当前计数值Nt与期望计数值N0不相同,则计算Nt与N0之间的差值,根据所述差值产生新的参数控制信号,将所述新的参数控制信号输出给参数可调振荡器模块。
可选地,所述校准模块包括:时钟频率比较单元、时钟频率误差计算单元、参数控制单元和校准结束判断单元;
时钟频率比较单元,用于比较计数器模块输出的实际计数值Nt与期望计数值N0的大小;如果实际计数值Nt与期望值N0相等,则通知校准结束判断单元;如果实际计数值Nt与期望值N0不相等,则将比较结果输出给时钟频率误差计算单元;
时钟频率误差计算单元,用于根据实际计数值Nt和期望计数值N0之间的比较结果计算二者之间的差值,根据差值向参数控制单元输出第一控制信号;
校准结束判断单元,用于接收到时钟频率比较单元的通知后,向参数控制单元输出第二控制信号;
参数控制单元,用于接收到时钟频率误差计算单元输出的第一控制信号时,产生新的参数控制信号,将所述新的参数控制信号输出给参数可调振荡器模块;接收到校准结束判断单元输出的第二控制信号时,保持原有的参数控制信号不变,将原有的参数控制信号输出给参数可调振荡器模块。
可选地,所述装置还包括主控模块:
校准结束判断单元,用于向主控模块发送本轮时钟频率校准结束的通知;
主控模块,用于接收到本轮时钟频率校准结束的通知后,保存参数可调振荡器模块当前使用的振荡器参数。
可选地,参考时钟模块,用于获取参考时钟信号,包括:从集成电路芯片内部的射频时钟信号源获取到参考时钟信号,或者通过接口电路从外部精准时钟源获取到参考时钟信号;
参数可调振荡器模块,用于根据接收到的参数控制信号对振荡器输出的时钟频率进行调整,包括:根据接收到的参数控制信号调整RC开关网络的可调参数,从而对振荡器输出的时钟频率进行调整;
两个相邻的校准脉冲信号之间的时间间隔等于校准周期信号的一个校准周期。
本发明实施例还提供一种时钟频率校准方法,包括:
参数可调振荡器模块输出时钟信号给计数器模块和数字电路系统;
参考时钟模块获取到参考时钟信号后,根据所述参考时钟信号生成校准周期信号并输出给校准控制模块,校准控制模块根据接收到的校准周期信号生成连续的校准脉冲信号并输出给计数器模块;计数器模块在停止计数状态下接收到新的校准脉冲信号后复位,并开始对参数可调振荡器模块输出的时钟脉冲进行计数,在计数状态下接收到新的校准脉冲信号后停止对参数可调振荡器模块输出的时钟脉冲进行计数,将计数值输出给校准模块;
校准模块将接收到的当前计数值与期望计数值进行比较,根据比较结果产生参数控制信号,将所述参数控制信号输出给参数可调振荡器模块;参数可调振荡器模块根据接收到的参数控制信号对振荡器输出的时钟频率进行调整。
可选地,校准模块将接收到的当前计数值与期望计数值进行比较,根据比较结果产生参数控制信号,将所述参数控制信号输出给参数可调振荡器模块,包括:
如果接收到的当前计数值Nt与期望计数值N0相同,则保持原有的参数控制信号不变,将原有的参数控制信号输出给参数可调振荡器模块;如果接收到的当前计数值Nt与期望计数值N0不相同,则计算Nt与N0之间的差值,根据所述差值产生新的参数控制信号,将所述新的参数控制信号输出给参数可调振荡器模块。
可选地,参数可调振荡器模块根据接收到的参数控制信号对振荡器输出的时钟频率进行调整,包括:根据接收到的参数控制信号调整RC开关网络的可调参数,从而对振荡器输出的时钟频率进行调整。
可选地,参考时钟模块获取参考时钟信号,包括:参考时钟模块从集成电路芯片内部的射频时钟信号源获取到参考时钟信号,或者通过接口电路从外部精准时钟源获取到参考时钟信号;
两个相邻的校准脉冲信号之间的时间间隔等于校准周期信号的一个校准周期。
可选地,所述方法还包括:
校准模块在判断当前计数值与期望计数值相同后,判定本轮时钟频率校准结束并通知主控模块;主控模块在接收到本轮时钟频率校准结束的通知后,保存参数可调振荡器模块当前使用的振荡器参数。
与现有技术相比,本发明提供的一种时钟频率校准方法和装置,参数可调振荡器模块控制振荡器读取RC开关网络的控制信号来调整输出的时钟脉冲,振荡器输出的时钟脉冲给数字电路系统工作的同时也送入计数器模块中;随后,从参考时钟中检测出精确的特定时钟周期,在校准脉冲的控制下,对振荡器输出的时钟脉冲信号进行计数,得到实际的计数值,把计数值送入校准模块开始时钟信号的频率校准工作,校准模块输出参数控制信号来调整振荡器的时钟频率。时钟频率校准和数字电路系统并行工作,从而减小了由于温度和环境差异带来的时钟频率的偏差,达到了实时校准的目的,提高了时钟频率的精确度。
附图说明
图1为本发明实施例的一种时钟频率校准装置示意图。
图2为本发明实施例的校准模块的示意图。
图3为本发明实施例的参数可调振荡器模块的示意图。
图4为本发明实施例的一种时钟频率校准方法流程图。
图5为本发明示例的一种时钟频率校准方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,本发明实施例提供了一种时钟频率校准装置,包括:参考时钟模块,校准控制模块、计数器模块和参数可调振荡器模块;
参考时钟模块,用于获取参考时钟信号,根据所述参考时钟信号生成校准周期信号并输出给校准控制模块;
校准控制模块,用于接收参考时钟模块输出的校准周期信号,根据所述校准周期信号生成连续的校准脉冲信号并输出给计数器模块;
计数器模块,用于在停止计数状态下接收到新的校准脉冲信号后复位,并开始对参数可调振荡器模块输出的时钟脉冲进行计数;在计数状态下接收到新的校准脉冲信号后停止对参数可调振荡器模块输出的时钟脉冲进行计数,将计数值输出给校准模块;
校准模块,用于将接收到的当前计数值与期望计数值进行比较,根据比较结果产生参数控制信号,将所述参数控制信号输出给参数可调振荡器模块;
参数可调振荡器模块,用于输出时钟信号给计数器模块和数字电路系统,在接收到校准模块输出的参数控制信号后,根据所述参数控制信号对振荡器输出的时钟频率进行调整;
所述装置还可以包括下述特点:
其中,校准模块,用于将接收到的当前计数值与期望计数值进行比较,根据比较结果产生参数控制信号,将所述参数控制信号输出给参数可调振荡器模块,包括:
如果接收到的当前计数值Nt与期望计数值N0相同,则保持原有的参数控制信号不变,将原有的参数控制信号输出给参数可调振荡器模块;如果接收到的当前计数值Nt与期望计数值N0不相同,则计算Nt与N0之间的差值,根据所述差值产生新的参数控制信号,将所述新的参数控制信号输出给参数可调振荡器模块;
其中,所述校准模块包括:时钟频率比较单元、时钟频率误差计算单元、参数控制单元和校准结束判断单元;
时钟频率比较单元,用于比较计数器模块输出的实际计数值Nt与期望计数值N0的大小;如果实际计数值Nt与期望值N0相等,则通知校准结束判断单元;如果实际计数值Nt与期望值N0不相等,则将比较结果输出给时钟频率误差计算单元;
时钟频率误差计算单元,用于根据实际计数值Nt和期望计数值N0之间的比较结果计算二者之间的差值,根据差值向参数控制单元输出第一控制信号;
校准结束判断单元,用于接收到时钟频率比较单元的通知后,向参数控制单元输出第二控制信号;
参数控制单元,用于接收到时钟频率误差计算单元输出的第一控制信号时,产生新的参数控制信号,将所述新的参数控制信号输出给参数可调振荡器模块;接收到校准结束判断单元输出的第二控制信号时,保持原有的参数控制信号不变,将原有的参数控制信号输出给参数可调振荡器模块;
其中,所述装置还包括主控模块;
所述校准结束判断单元,用于向主控模块发送本轮时钟频率校准结束的通知;
主控模块,用于接收到本轮时钟频率校准结束的通知后,保存参数可调振荡器模块当前使用的振荡器参数。
其中,参数可调振荡器模块,用于根据接收到的参数控制信号对振荡器输出的时钟频率进行调整,包括:根据接收到的参数控制信号调整RC开关网络的可调参数,从而对振荡器输出的时钟频率进行调整;
其中,RC开关网络中每一个档位对应一个参数控制信号位,从高到低依次排列,通过参数控制信号的逐位调整,来实现参数可调振荡器频率的校准;
其中,参考时钟模块,用于获取参考时钟信号,包括:从集成电路芯片内部的射频时钟信号源获取到参考时钟信号,或者通过接口电路从外部精准时钟源获取到参考时钟信号;
其中,两个相邻的校准脉冲信号之间的时间间隔等于校准周期信号的一个校准周期。
图2是本发明实施例中校准模块的示意图。校准模块包括:时钟频率比较单元、时钟频率误差计算单元、参数控制单元和校准结束判断单元;
时钟频率比较单元,用于比较计数器模块输出的实际计数值Nt与期望计数值N0的大小。时钟频率比较单元的输入端接计数器模块的输出端,输出端分别接校准结束判断单元和时钟频率误差计算单元。如果实际计数值Nt与期望值N0相等,则输出连接校准结束判断单元;如果实际计数值Nt与期望值N0不相等,则输出连接时钟频率误差计算单元;
时钟频率误差计算单元,用于计算实际计数值Nt和期望计数值N0之间的差值。时钟频率误差计算单元的输入端与时钟频率比较单元的输出端连接,输出端与参数控制单元的输入端连接。
参数控制单元,参数控制单元的输入端连接校准结束判断单元的输出端和时钟频率误差计算单元的输出端,参数控制单元的输出端与参数可调振荡器模块的输入端连接。如果实际计数值Nt与期望值N0不相等,参数控制单元的输入端接收到时钟频率误差计算单元的输出信号,参数控制单元利用时钟频率误差计算单元输出的计数误差值计算出参数可调振荡器模块对应的新的参数控制信号,将新的参数控制信号输出给参数可调振荡器模块。如果实际计数值Nt与期望值N0相等,参数控制单元的输入端接收到校准结束判断单元的输出信号,参数控制单元保持原有的参数控制信号不变,将原有的参数控制信号输出给参数可调振荡器模块。
校准模块与计数器模块、参数可调振荡器模块的交互是:计数器模块对参数可调振荡器模块输出的时钟脉冲信号进行计数,得到实际的计数值Nt,Nt为正整数,计数值Nt送入时钟频率比较单元中,与期望计数值N0做对比,Nt与N0相同,则校准结束,校准结束判断单元发送控制信号到参数控制单元中,参数控制单元输出的参数控制信号不变,参数可调振荡器模块的参数不需要调整;Nt与N0不同,则时钟频率误差计算单元进行计数值误差计算,重新确定参数可调振荡器模块的参数控制信号,由参数控制单元输出新的参数控制信号给参数可调振荡器模块,来调整振荡器的输出时钟脉冲。
图3是本发明实施例的参数可调振荡器模块的结构示意图。参数可调振荡器模块包括振荡器和开关电阻/电容网络(即RC开关网络)。所述振荡器可以是反相器组成的环形振荡器或者其他形式的弛豫振荡器,所述开关电阻/电容网络可以是各种形式的开关电阻/电容网络。
如图4所示,本发明实施例提供了一种时钟频率校准方法,包括:
S410,参数可调振荡器模块输出时钟信号给计数器模块和数字电路系统;
S420,参考时钟模块获取到参考时钟信号后,根据所述参考时钟信号生成校准周期信号并输出给校准控制模块,校准控制模块根据接收到的校准周期信号生成连续的校准脉冲信号并输出给计数器模块;计数器模块在停止计数状态下接收到新的校准脉冲信号后复位,并开始对参数可调振荡器模块输出的时钟脉冲进行计数,在计数状态下接收到新的校准脉冲信号后停止对参数可调振荡器模块输出的时钟脉冲进行计数,将计数值输出给校准模块;
S430,校准模块将接收到的当前计数值与期望计数值进行比较,根据比较结果产生参数控制信号,将所述参数控制信号输出给参数可调振荡器模块;参数可调振荡器模块根据接收到的参数控制信号对振荡器输出的时钟频率进行调整;
所述方法还可以包括下述特点:
其中,校准模块将接收到的当前计数值与期望计数值进行比较,根据比较结果产生参数控制信号,将所述参数控制信号输出给参数可调振荡器模块,包括:
如果接收到的当前计数值Nt与期望计数值N0相同,则保持原有的参数控制信号不变,将原有的参数控制信号输出给参数可调振荡器模块;如果接收到的当前计数值Nt与期望计数值N0不相同,则计算Nt与N0之间的差值,根据所述差值产生新的参数控制信号,将所述新的参数控制信号输出给参数可调振荡器模块;
其中,参考时钟模块获取参考时钟信号,包括:参考时钟模块从集成电路芯片内部的射频时钟信号源获取到参考时钟信号,或者通过接口电路从外部精准时钟源获取到参考时钟信号。
其中,参数可调振荡器模块根据接收到的参数控制信号对振荡器输出的时钟频率进行调整,包括:根据接收到的参数控制信号调整RC开关网络的可调参数,从而对振荡器输出的时钟频率进行调整;
其中,两个相邻的校准脉冲信号之间的时间间隔等于校准周期信号的一个校准周期;
其中,所述方法还包括:校准模块在判断当前计数值与期望计数值相同后,判定本轮时钟频率校准结束并通知主控模块;主控模块在接收到本轮时钟频率校准结束的通知后,保存参数可调振荡器模块当前使用的振荡器参数;
示例
如图5所示,本示例提供一种时钟频率校准方法,包括以下步骤:
步骤1,上电后,参数可调振荡器模块输出时钟信号,所述时钟信号同时送入数字电路系统和计数器模块;
其中,集成电路芯片第一次上电时,参数可调振荡器模块使用出厂前配置的默认参数控制振荡器输出的时钟频率,然后经过时钟频率实时校准后,在芯片上保存校准过的振荡器参数;集成电路芯片下一次上电时,参数可调振荡器模块使用上一次上电后校准过的振荡器参数。
步骤2,参考时钟模块获取到参考时钟信号后,生成校准周期信号并输出给校准控制模块;校准控制模块接收到校准周期信号后,产生连续的校准脉冲,相邻的两个校准脉冲的时间间隔为校准周期t;
步骤3,计数器模块接收到第一个校准脉冲时复位,并开始对参数可调振荡器模块输出的时钟脉冲进行计数;计数器模块接收到下一个校准脉冲时,停止计数,将计数值Nt发送给时钟频率比较单元;
步骤4,时钟频率比较单元将计数值Nt与计数期望值N0进行比较,在二者相等时,执行步骤6,在二者不相等时,执行步骤5;
步骤5,时钟频率比较单元将比较结果输出给时钟频率误差计算单元,时钟频率误差计算单元根据二者之间的差值确定新的参数,将新的参数输出给参数控制单元,参数控制单元输出新的参数控制信号给参数可调振荡器模块,返回步骤3;
步骤6,时钟频率比较单元将比较结果输出给校准结束判断单元,校准结束判断单元通知参数控制单元保持当前参数不变,参数控制单元输出原有的参数控制信号给参数可调振荡器模块,此轮校准结束;返回步骤3,进入下一轮校准。
上述实施例提供的一种时钟频率校准方法和装置,参数可调振荡器模块控制振荡器读取RC开关网络的控制信号来调整输出的时钟脉冲,振荡器输出的时钟脉冲给数字电路系统工作的同时也送入计数器模块中;随后,从参考时钟中检测出精确的特定时钟周期,在校准脉冲的控制下,对振荡器输出的时钟脉冲信号进行计数,得到实际的计数值,把计数值送入校准模块开始时钟信号的频率校准工作,校准模块输出参数控制信号来调整振荡器的时钟频率。时钟频率校准和数字电路系统并行工作,从而减小了由于温度和环境差异带来的时钟频率的偏差,达到了实时校准的目的,提高了时钟频率的精确度。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。