专利名称:时钟产生电路及产生方法
技术领域:
本发明是有关于一种时钟电路,且特别是有关于一种可弹性设定输出时钟频率的时钟产生电路及产生方法。
背景技术:
在电子电路系统中,除了系统提供的系统时钟以外,经常也会用到与系统时钟频率不同的其它时钟。当所需的时钟频率与系统时钟的频率为整数倍时,只需应用除法器便可达成。然而,许多时候所需的时钟频率与系统时钟的频率往往无法正好为整数倍,例如串行埠使用的115.2KHz或音讯编码与译码使用的44.1KHz等,便经常无法由2的幂次(2n)除法器来达成。
此时,只有应用锁相回路(Phase Lock Loop,简称PLL)或数字状态图(state machine)的方法来产生。然而,无论应用锁相回路或数字状态图的方法来产生所需的时钟,其与系统时钟间的频率比在设计完成后即已固定,而当系统时钟频率或所需时钟频率变更时,便只能重新设计电路,导致时间与成本的损耗。
发明内容
有鉴于此,本发明提供一种时钟产生电路及产生方法,其可在所需输出时钟或系统时钟频率变化时,无须重新设计电路,即可依据系统时钟与所需输出时钟的频率比值,来弹性地设定产生的输出时钟的频率。
为达上述及其它目的,本发明提供一种时钟产生电路,适用于自一个系统时钟产生第一输出时钟,其中的第一输出时钟与系统时钟的频率比值大小为第一设定值除以第二设定值。此时钟产生电路包括缓存器、第一加法器、第一比较器、第二加法器与多任务器。
其中,缓存器用以根据系统时钟的触发来暂存一个资料值。第一加法器耦接缓存器,用以接收上述的资料值,并求取资料值与第一设定值的和,以输出第一结果值。第一比较器耦接第一加法器,用以将第一结果值与参考值比较,以产生所需的第一输出时钟。第二加法器耦接第一加法器,用以接收第一结果值,并求取第一结果值与第二设定值的和,以输出第二结果值。而多任务器则耦接第一加法器、第二加法器、第一比较器及缓存器,用以根据第一输出时钟的准位,以自第一结果值与第二结果值中,选择下一个系统时钟触发时,缓存器应暂存的资料值。
本发明的一个实施例中,其第一设定值与第二设定值的大小,分别为第一输出时钟频率与系统时钟频率各除以第一输出时钟频率与系统时钟频率间的最大公约数而得,以简化设计电路。
本发明的一个实施例中,取正值的第一设定值来输入第一加法器,而取负值的第二设定值来输入第二加法器。当系统重置时,将资料值的初始值设定为0。而参考值设定等于第二设定值的大小,且每当第一结果值不小于参考值时,第一比较器会产生第一输出时钟的一个脉冲。而每当脉冲产生时,多任务器会选择第二结果值,以作为下一个系统时钟触发时,缓存器应暂存的资料值。
本发明的另一个实施例中,取负值的第一设定值来输入第一加法器,而取正值的第二设定值来输入第二加法器。当系统重置时,将资料值的初始值设定为第二设定值。而参考值设定等于0,且每当第一结果值不大于0时,第一比较器会产生第一输出时钟的一个脉冲。而每当脉冲产生时,多任务器会选择第二结果值,以作为下一个系统时钟触发时,缓存器应暂存的资料值。
本发明的任意一个实施例中,此时钟产生电路可更包括一个第二比较器,其耦接至缓存器,用以将资料值与小于第二设定值的大小的第三设定值比较,以产生第二输出时钟。其中的第三设定值较佳地为第二设定值的大小的一半取整数,以调整输出时钟的周期比。
本发明另提供一种时钟产生方法,适用于自一个系统时钟产生第一输出时钟,其中的第一输出时钟与系统时钟的频率比值的大小为第一设定值除以第二设定值。此时钟产生方法包括下列步骤首先求取一个资料值与第一设定值的和,以产生第一结果值;并求取第一结果值与第二设定值的和,以产生第二结果值;根据第一输出时钟的准位,以自第一结果值与第二结果值中,选择下一个系统时钟触发时应暂存的资料值;以及比较第一结果值与参考值,以产生第一输出时钟。
其中较佳地第一设定值与第二设定值的大小,分别为第一输出时钟频率与系统时钟频率各除以第一输出时钟频率与系统时钟频率间的最大公约数而得。
其中当求取第一结果值与第二结果值时,是以正值的第一设定值及负值的第二设定值,来求取其和。并将资料值的初始值设定为0。且设定参考值等于第二设定值的大小,而每当第一结果值不小于参考值时,产生第一输出时钟的一个脉冲。且每当脉冲产生时,选择第二结果值,以作为下一个系统时钟触发时应暂存的资料值。
其中当求取第一结果值与第二结果值时,亦可以负值的第一设定值及正值的第二设定值,来求取其和。并将资料值的初始值设定为第二设定值。且设定参考值等于0,而每当第一结果值不大于0时,产生第一输出时钟的一个脉冲。且每当脉冲产生时,选择第二结果值,以作为下一个系统时钟触发时应暂存的资料值。
其中亦可更包括比较资料值与小于第二设定值的大小的第三设定值,以产生第二输出时钟的步骤。且第三设定值较佳地为第二设定值的大小的一半取整数。
由上述的说明中可知,应用本发明的一种时钟产生电路及产生方法,则当系统时钟频率或所需的输出时钟频率变更时,可依据系统时钟与所需输出时钟的频率比值,来弹性地设定产生的输出时钟的频率,而无须重新设计电路,故可大幅节省时间与成本之损耗。
为让本发明的上述和其它目的、特征、和优点能更明显易懂,下文特以较佳实施例,并配合所附图式,作详细说明如下。
图1是显示根据本发明第一实施例的一种时钟产生电路的示意图。
图2是显示根据本发明第一实施例的时钟波形时序图。
图3是显示根据本发明第二实施例的一种时钟产生电路的示意图。
图4是显示根据本发明第二实施例的时钟波形时序图。
符号说明100、300 时钟产生电路110、310 缓存器120、320 第一加法器130、330 第一比较器140、340 第二加法器150、350 多任务器160、360 第二比较器具体实施方式
第一实施例请参考图1所示,其为根据本发明第一实施例的一种时钟产生电路的示意图。图中显示,此时钟产生电路100包括缓存器110、第一加法器120、第一比较器130、第二加法器140与多任务器150。当然,如图所示,为了调整产生的输出时钟的周期比(duty),此时钟产生电路100较佳地更包括第二比较器160。
其中,假设系统时钟SYSCLK的频率为34MHz,且欲产生的第一输出时钟CLK1或第二输出时钟CLK2的频率为10MHz,则第一输出时钟CLK1与系统时钟SYSCLK之频率比值为10M/34M。为了简化电路起见,首先求取第一输出时钟CLK1与系统时钟SYSCLK之频率的最大公约数,在此例中为2M,然后将第一设定值A与第二设定值B的大小,分别设定为第一输出时钟CLK1频率与系统时钟SYSCLK频率各除以最大公约数的值2M,则此例的第一设定值A与第二设定值B的大小将分别为5与17。
此外,为了调整产生的输出时钟的周期比,必须设定第二比较器160参考的一个第三设定值C,第三设定值C应小于第二设定值B。此处为了产生具有近似平均周期比的第二输出时钟CLK2,故设定第三设定值C为第二设定值B的一半取整数,也即其值为C=INT(17/2)=8。
如图所示,缓存器110是用来根据系统时钟SYSCLK的触发,以暂存第一加法器120或第二加法器140的计算结果的资料值R。而第一加法器120是用来将资料值R逐次地以第一设定值A来累进,以输出第一结果值S1。第二加法器140,则计算第一结果值S1与第二设定值B的差,以输出第二结果值S2。第一比较器130用来将第一结果值S1与等于第二设定值B的参考值比较,且当第一结果值S1不小于第二设定值B时,产生第一输出时钟CLK1的一个脉冲,以达成所需频率的第一输出时钟CLK1。
此外,当第一输出时钟CLK1的脉冲产生时,代表累进资料值R的第一结果值S1已大于或等于第二设定值B,故应用多任务器150来选择第二结果值S2,以作为下一个系统时钟触发时,缓存器110应暂存的资料值R。也就是说,以第一设定值A累进的资料值R,当其值将大于或等于第二设定值B时,则不继续累进,而改以累进的第一结果值S1减去第二设定值B的第二结果值S2,作为资料值R,以维持每B个系统时钟SYSCLK频率,产生A个第一输出时钟CLK1的脉冲的结果。而第二比较器160则设定当资料值R大于第三设定值C时,输出高准位(或相反)的第二输出时钟CLK2,反之,输出低准位(或相反)的第二输出时钟CLK2,以调整其周期比,其实际产生的波形将配合图2来说明。
在图2中,因本实施例的输出时钟的需求为每17个系统时钟SYSCLK产生5个脉冲,故图标仅绘出17个系统时钟SYSCLK的时序波形。如图所示的,当系统启始时,将缓存器110储存的资料值R的初始值设定为0,然后开始以第一设定值A=5来累进资料值R。
当第2时钟时,资料值R累进为10大于8,故第二输出时钟CLK2转为高准位。当第3时钟时,资料值R累进为15,此时因第一结果值S1=20已大于17,故第一比较器130输出第一输出时钟CLK1的一个脉冲,而第4时钟时,多任务器150选择第二结果值S2,以将第一结果值S1减去17获得资料值R=3,第二输出时钟CLK2因此转为低准位。
当第6时钟时,资料值R累进为13大于8,故第二输出时钟CLK2再次转为高准位,且此时因第一结果值S1=18已大于17,故第一比较器130输出第一输出时钟CLK1的一个脉冲,而第7时钟时,多任务器150选择第二结果值S2,以将第一结果值S1减去17获得资料值R=1,第二输出时钟CLK2因此转为低准位。
当第9时钟时,资料值R累进为11大于8,故第二输出时钟CLK2再次转为高准位。当第10时钟时,资料值R累进为16,此时因第一结果值S1=21已大于17,故第一比较器130输出第一输出时钟CLK1的一个脉冲,而第11时钟时,多任务器150选择第二结果值S2,以将第一结果值S1减去17获得资料值R=4,第二输出时钟CLK2因此转为低准位。
当第12时钟时,资料值R累进为9大于8,故第二输出时钟CLK2再次转为高准位。当第13时钟时,资料值R累进为14,此时因第一结果值S1=19已大于17,故第一比较器130输出第一输出时钟CLK1的一个脉冲,而第14时钟时,多任务器150选择第二结果值S2,以将第一结果值S1减去17获得资料值R=2,第二输出时钟CLK2因此转为低准位。
当第16时钟时,资料值R累进为12大于8,故第二输出时钟CLK2再次转为高准位,且此时因第一结果值S1已等于17,故第一比较器130输出第一输出时钟CLK1的一个脉冲,而第17时钟时,多任务器150选择第二结果值S2,以将第一结果值S1减去17获得资料值R=0,第二输出时钟CLK2因此转为低准位,而回到初始状态。
由上述的说明中可知,依此类推则每17个系统时钟SYSCLK将产生5个脉冲的第一输出时钟CLK1及第二输出时钟CLK2,且当输出时钟在与系统时钟SYSCLK的频率比值拉大时,其第一输出时钟CLK1及第二输出时钟CLK2的频率将趋于精确值,而第二输出时钟CLK2的周期比也将趋于平均而误差极小。
第二实施例请参考图3所示,其为根据本发明第二实施例的一种时钟产生电路的示意图。本实施例与第一实施例的不同乃在于第一实施例使用累进资料值的方法,而本实施例则采用递减资料值的作法。如图中所示,此时钟产生电路300同样包括缓存器310、第一加法器320、第一比较器330、第二加法器340与多任务器350。当然,如图所示,为了调整产生的输出时钟的周期比,此时钟产生电路300较佳地可更包括第二比较器360。
此处也假设延续第一实施例对于系统时钟SYSCLK及第一输出时钟CLK1与第二输出时钟CLK2的说明,也即第一设定值A与第二设定值B的值分别为5与17,且第三设定值C为第二设定值B的一半取整数,即C=INT(17/2)=8。
如图所示,缓存器310是用来根据系统时钟SYSCLK的触发,以暂存第一加法器320或第二加法器340的计算结果的资料值R。而第一加法器320是用来将资料值R逐次地以第一设定值A来递减,以输出第一结果值S1。第二加法器340,则计算第一结果值S1与第二设定值B的和,以输出第二结果值S2。第一比较器330用来将第一结果值S1与参考值0比较,且当第一结果值S1不大于0时,产生第一输出时钟CLK1的一个脉冲,以达成所需频率的第一输出时钟CLK1。
此外,当第一输出时钟CLK1的脉冲产生时,代表递减资料值R的第一结果值S1已小于或等于0,故应用多任务器350来选择第二结果值S2,以作为下一个系统时钟触发时,缓存器310应暂存的资料值R。也就是说,以第一设定值A递减的资料值R,当其值将小于或等于0时,则不继续递减,而改以递减的第一结果值S1加上第二设定值B的第二结果值S2,作为资料值R,以维持每B个系统时钟SYSCLK频率,产生A个第一输出时钟CLK1的脉冲的结果。而第二比较器360则设定当资料值R小于第三设定值C时,输出高准位(或相反)的第二输出时钟CLK2,反之,输出低准位(或相反)的第二输出时钟CLK2,以调整其周期比,其实际产生的波形将配合图4来说明。
在图4中,因本实施例的输出时钟的需求为每17个系统时钟SYSCLK产生5个脉冲,故图标仅绘出17个系统时钟SYSCLK的时序波形。如图所示的,当系统启始时,将缓存器310储存的资料值R的初始值设定为第二设定值B=17,然后开始以第一设定值A=5来递减资料值R。
当第2时钟时,资料值R递减为7小于8,故第二输出时钟CLK2转为高准位。当第3时钟时,资料值R递减为2,此时因第一结果值S1=-3已小于0,故第一比较器330输出第一输出时钟CLK1的一个脉冲,而第4时钟时,多任务器350选择第二结果值S2,以将第一结果值S1加上17获得资料值R=14,第二输出时钟CLK2因此转为低准位。
当第6时钟时,资料值R递减为4小于8,故第二输出时钟CLK2再次转为高准位,且此时因第一结果值S1=-1已小于0,故第一比较器330输出第一输出时钟CLK1的一个脉冲,而第7时钟时,多任务器350选择第二结果值S2,以将第一结果值S1加上17获得资料值R=16,第二输出时钟CLK2因此转为低准位。
当第9时钟时,资料值R递减为6小于8,故第二输出时钟CLK2再次转为高准位。当第10时钟时,资料值R递减为1,此时因第一结果值S1=-4已小于0,故第一比较器330输出第一输出时钟CLK1的一个脉冲,而第11时钟时,多任务器350选择第二结果值S2,以将第一结果值S1加上17获得资料值R=13,第二输出时钟CLK2因此转为低准位。
当第13时钟时,资料值R递减为3小于8,故第二输出时钟CLK2再次转为高准位,此时因第一结果值S1=-2已小于0,故第一比较器330输出第一输出时钟CLK1的一个脉冲,而第14时钟时,多任务器350选择第二结果值S2,以将第一结果值S1加上17获得资料值R=15,第二输出时钟CLK2因此转为低准位。
当第16时钟时,资料值R递减为5小于8,故第二输出时钟CLK2再次转为高准位,且此时因第一结果值S1已等于0,故第一比较器330输出第一输出时钟CLK1的一个脉冲,而第17时钟时,多任务器350选择第二结果值S2,以将第一结果值S1加上17获得资料值R=17,第二输出时钟CLK2因此转为低准位,而回到初始状态。
由上述的说明中可知,依此类推则每17个系统时钟SYSCLK将产生5个脉冲的第一输出时钟CLK1及第二输出时钟CLK2,且第二输出时钟CLK2在与系统时钟SYSCLK的频率比值拉大时,其第一输出时钟CLK1及第二输出时钟CLK2的频率将趋于精确值,而第二输出时钟CLK2的周期比也将趋于平均而误差极小。
综上所述则可归纳一种时钟产生方法,其适用于自一个系统时钟产生第一输出时钟,其中的第一输出时钟与系统时钟的频率比值的大小为第一设定值除以第二设定值。此时钟产生方法包括下列步骤首先求取一个资料值与第一设定值的和,以产生第一结果值;并求取第一结果值与第二设定值的和,以产生第二结果值;根据第一输出时钟的准位,以自第一结果值与第二结果值中,选择下一个系统时钟触发时应暂存的资料值;以及比较第一结果值与参考值,以产生第一输出时钟。
其中较佳地第一设定值A与第二设定值B的大小,分别为第一输出时钟CLK1频率与系统时钟SYSCLK频率各除以第一输出时钟CLK1频率与系统时钟SYSCLK频率间的最大公约数而得。
其中当求取第一结果值S1与第二结果值S2时,是以正值的第一设定值A及负值的第二设定值B,来求取其和。并将资料值的初始值设定为0。且设定参考值等于第二设定值B的大小,而每当第一结果值S1不小于参考值时,产生第一输出时钟CLK1的一个脉冲。且每当脉冲产生时,选择第二结果值S2,以作为下一个系统时钟触发时应暂存的资料值R。
其中当求取第一结果值S1与第二结果值S2时,也可以负值的第一设定值A及正值的第二设定值B,来求取其和。并将资料值R的初始值设定为第二设定值B。且设定参考值等于0,而每当第一结果值S1不大于0时,产生第一输出时钟CLK1的一个脉冲。且每当脉冲产生时,选择第二结果值S2,以作为下一个系统时钟触发时应暂存的资料值R。
其中为了调整输出时钟的周期比,也可更包括比较资料值R与小于第二设定值B的大小的第三设定值C,以产生第二输出时钟CLK2的步骤。且第三设定值C较佳地为第二设定值B的大小的一半取整数。
综上所述,本发明至少具有以下的优点1.当系统时钟频率或所需的输出时钟频率变更时,只需依据系统时钟与所需输出时钟的频率比值,来同步变更第一设定值、第二设定值、第三设定值及参考值的设定,即可获得所需的输出时钟的频率,使用上十分方便。
2.因系统时钟频率或所需的输出时钟频率变更时,无须重新设计电路,故可大幅节省时间与成本的损耗。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视所附的权利要求所界定的范围为准。
权利要求
1.一种时钟产生电路,适用于自一个系统时钟产生一个第一输出时钟,该第一输出时钟与该系统时钟的频率比值大小为一个第一设定值除以一个第二设定值,其特征在于该时钟产生电路包括一个缓存器,用以根据该系统时钟的触发来暂存一个资料值;一个第一加法器,耦接该缓存器,用以接收该资料值,并求取该资料值与该第一设定值的和,以输出一个第一结果值;一个第一比较器,耦接该第一加法器,用以将该第一结果值与一个参考值比较,以产生该第一输出时钟;一个第二加法器,耦接该第一加法器,用以接收该第一结果值,并求取该第一结果值与该第二设定值的和,以输出一个第二结果值;以及一个多任务器,耦接该第一加法器、该第二加法器、该第一比较器及该缓存器,用以根据该第一输出时钟的准位,以自该第一结果值与该第二结果值中,选择下一个该系统时钟触发时,该缓存器应暂存的该资料值。
2.根据权利要求1所述的时钟产生电路,其特征在于该第一设定值与该第二设定值的大小,分别为该第一输出时钟频率与该系统时钟频率各除以该第一输出时钟频率与该系统时钟频率间的最大公约数而得。
3.根据权利要求1所述的时钟产生电路,其特征在于取正值的该第一设定值来输入该第一加法器,而取负值的该第二设定值来输入该第二加法器。
4.根据权利要求3所述的时钟产生电路,其特征在于当系统重置时,设定该资料值的初始值为0。
5.根据权利要求3所述的时钟产生电路,其特征在于该参考值等于该第二设定值的大小,且每当该第一结果值不小于该参考值时,该第一比较器产生该第一输出时钟的一个脉冲。
6.根据权利要求5所述的时钟产生电路,其特征在于每当该脉冲产生时,该多任务器选择该第二结果值,作为下一个该系统时钟触发时,该缓存器应暂存的该资料值。
7.根据权利要求1所述的时钟产生电路,其特征在于取负值的该第一设定值来输入该第一加法器,而取正值的该第二设定值来输入该第二加法器。
8.根据权利要求7所述的时钟产生电路,其特征在于当系统重置时,设定该资料值的初始值为该第二设定值。
9.根据权利要求7所述的时钟产生电路,其特征在于该参考值等于0,且每当该第一结果值不大于0时,该第一比较器产生该第一输出时钟的一个脉冲。
10.根据权利要求9所述的时钟产生电路,其特征在于每当该脉冲产生时,该多任务器选择该第二结果值,作为下一个该系统时钟触发时,该缓存器应暂存的该资料值。
11.根据权利要求1所述的时钟产生电路,其特征在于更包括一个第二比较器,耦接该缓存器,用以将该资料值与小于该第二设定值的一个第三设定值比较,以产生一个第二输出时钟。
12.根据权利要求11所述的时钟产生电路,其特征在于该第三设定值为该第二设定值的一半取整数。
13.一种时钟产生方法,其特征在于适用于自一个系统时钟产生一个第一输出时钟,该第一输出时钟与该系统时钟的频率比值大小为一个第一设定值除以一个第二设定值,该时钟产生方法包括下列步骤求取一个资料值与该第一设定值的和,以产生一个第一结果值;求取该第一结果值与该第二设定值的和,以产生一个第二结果值;根据该第一输出时钟的准位,以自该第一结果值与该第二结果值中,选择下一个该系统时钟触发时应暂存的该资料值;以及比较该第一结果值与一个参考值,以产生该第一输出时钟。
14.根据权利要求13所述的时钟产生方法,其特征在于该第一设定值与该第二设定值的大小,分别为该第一输出时钟频率与该系统时钟频率各除以该第一输出时钟频率与该系统时钟频率间的最大公约数而得。
15.根据权利要求13所述的时钟产生方法,其特征在于当求取该第一结果值与该第二结果值时,是以正值的该第一设定值及负值的该第二设定值,来求取其和。
16.根据权利要求15所述的时钟产生方法,其特征在于设定该资料值的初始值为0。
17.根据权利要求15所述的时钟产生方法,其特征在于该参考值等于该第二设定值的大小,且每当该第一结果值不小于该参考值时,产生该第一输出时钟的一个脉冲。
18.根据权利要求17所述的时钟产生方法,其特征在于每当该脉冲产生时,选择该第二结果值,以作为下一个该系统时钟触发时应暂存的该资料值。
19.根据权利要求13所述的时钟产生方法,其特征在于当求取该第一结果值与该第二结果值时,是以负值的该第一设定值及正值的该第二设定值,来求取其和。
20.根据权利要求19所述的时钟产生方法,其特征在于设定该资料值的初始值为该第二设定值。
21.根据权利要求19所述的时钟产生方法,其特征在于该参考值等于0,且每当该第一结果值不大于0时,产生该第一输出时钟的一个脉冲。
22.根据权利要求21所述的时钟产生方法,其特征在于每当该脉冲产生时,选择该第二结果值,以作为下一个该系统时钟触发时应暂存的该资料值。
23.根据权利要求13所述的时钟产生方法,其特征在于更包括比较该资料值与小于该第二设定值的一个第三设定值,以产生一个第二输出时钟的步骤。
24.根据权利要求23所述的时钟产生方法,其特征在于该第三设定值为该第二设定值的一半取整数。
全文摘要
一种时钟产生电路及产生方法,是先行计算输出时钟与系统时钟的频率比值大小为第一设定值除以第二设定值,再应用一个缓存器来储存一个资料值,并应用第一加法器来求取资料值与第一设定值的和,以产生第一结果值;应用第二加法器来求取第一结果值与第二设定值的和,以产生第二结果值;应用第一比较器,来比较第一结果值与一个参考值,以产生输出时钟;以及应用多任务器,以根据输出时钟的准位,来自第一结果值与第二结果值中,选择下一个系统时钟触发时应暂存的资料值,故可弹性地设定产生的输出时钟的频率,而无须重新设计电路。
文档编号H03L7/00GK1549450SQ0313137
公开日2004年11月24日 申请日期2003年5月14日 优先权日2003年5月14日
发明者李允国 申请人:旺玖科技股份有限公司