説明

クロック発生装置及びクロック信号生成方法

【課題】CPUに供給するクロック信号の周波数に関わらず、周辺回路に所定の周波数のクロック信号を供給することができるクロック信号生成回路及びクロック信号生成方法を提供する。
【解決手段】本発明にかかるクロック信号生成回路は、CPUに入力される第1クロック信号から、周辺回路に入力される所定の周波数を有する第2クロック信号を生成する。外部から入力される逓倍比及び分周比のうち少なくとも1に基づき、発振子が出力するクロック信号から入力される第1クロック信号を生成する第1クロック生成部と、第1クロック信号から第2クロックを作成するための基準値を算出する基準値算出部と、第1クロック信号のカウント値と基準値との比較結果に基づき、第2クロックを生成する第2クロック生成部とを有し、基準値算出部は、逓倍比及び分周比のうち少なくとも1つが変更され第1のクロック信号の周波数が変更されると、基準値を再度算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、CPU(Central Processing Unit)と周辺回路とを有するマイクロコントローラに関し、特にマイクロコントローラの基準クロックを生成するクロック発生装置及びクロック信号生成方法に関する。
【背景技術】
【0002】
近年、半導体集積回路の低消費電力化に伴い、バッテリー駆動のオーディオ機器では音声圧縮データの圧縮率によりCPUの周波数を下げて消費電力を低減することが主流となっている。
【0003】
例えばPCM(pulse code modulation)音源や、シリアル通信機能を有しかつ周波数が変更可能なシステムでは、一定のクロック信号を周辺機器に対して供給する必要がある。このようなシステムにおいては、CPUの負荷量に応じて、CPUに供給されるクロック信号の周波数を変更することにより消費電力を低減しながら、周辺機器に供給するクロック信号は一定に保つ必要がある。
【0004】
特許文献1には、クロック供給装置に関する技術が記載されている。特許文献1に記載の技術は、CPUに対する動作クロックの切換を行っても、周辺回路に対する動作クロックと常に同期すると共に、周辺回路に対して安定した動作クロックの供給を行う。
【0005】
図5は、特許文献1に記載のクロック供給装置2011を示す図である。クロック供給装置2011は、CPU2012及び周辺回路2013に対してクロック信号を供給する。クロック供給装置2011は、クロック生成部2014、CPUクロック切換部(クロック切換部)2015、周辺回路クロック供給部(クロック供給部)2016、CPU分周部(第1の分周部)2017及び周辺回路分周部(第2の分周部)2018を備えている。
【0006】
クロック生成部2014は、入力された基準クロックを分周することによって数種類のクロックを出力するクロック生成部であり、CPU2012を動作させるCPU分周部2017と周辺回路2013を動作させる周辺回路分周部2018とにより構成されている。CPUクロック切換部(クロック切換部)2015は、クロック生成部2014から出力された複数のクロックから択一的にクロックを選択する。周辺回路クロック供給部(クロック供給部)2016は、クロック生成部2014から出力された複数のクロックから択一的にクロックを選択して周辺回路にクロックを供給する。
【0007】
このクロック供給装置2011は、基準クロックからCPU2012に対する動作クロックを生成し、実際にCPU2012に出力される動作クロックから周辺回路2013に対する動作クロックを生成する。
【0008】
また、周辺回路分周部2018において、CPU分周部2017及び周辺回路分周部2018の分周回数は予め定められており、CPU分周部2017から出力される第1及び第2クロックのどちらがCPUクロック切換部2015を介して周辺回路分周部2018に入力されても、周辺回路分周部2018から出力される第3クロックと第4クロックは、少なくともいずれか一方はある所定の大きさの周波数を有して出力される。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平8−221151号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、特許文献1に記載の技術においては、CPU分周部2017及び周辺回路分周部2018の分周回数が予め定められているため、CPUに供給するクロック信号の周波数を自由に変更できないという問題点がある。
【課題を解決するための手段】
【0011】
本発明にかかるクロック信号生成回路は、CPU(Central Processing Unit)に入力される第1クロック信号から、周辺回路に入力される所定の周波数を有する第2クロック信号を生成するクロック信号生成回路であって、外部から入力される逓倍比及び分周比のうち少なくとも1つに基づき、発振子が出力するクロック信号からCPUに入力される第1クロック信号を生成する第1クロック生成部と、第1クロック信号から第2クロックを作成するための基準値を算出する基準値算出部と、第1クロック信号のカウント値と基準値との比較結果に基づき、第2クロックを生成する第2クロック生成部と、を有し、基準値算出部は、逓倍比及び分周比のうち少なくとも1つが変更され第1のクロック信号の周波数が変更されると、第2のクロック信号の所定の周波数が維持されるよう基準値を再度算出して第2クロック生成部に出力する。
【0012】
本発明にかかるクロック信号生成方法は、CPU(Central Processing Unit)に入力される第1クロック信号から、周辺回路に入力される所定の周波数を有する第2クロック信号を生成するクロック信号生成方法であって、外部から入力される逓倍比及び分周比のうち少なくとも1つに基づき、発振子が出力するクロック信号からCPUに入力される第1クロック信号を生成し、第1クロック信号から第2クロックを作成するための基準値を算出し、第1クロック信号のカウント値と基準値との比較結果に基づき、第2クロックを生成し、逓倍比及び分周比のうち少なくとも1つが変更され第1のクロック信号の周波数が変更されると、第2のクロック信号の所定の周波数を維持するよう基準値を再度算出するものである。
【0013】
本発明においては、CPUに供給される第1のクロック信号から、周辺回路に供給さえる第2のクロック信号を生成するクロック信号生成装置において、第1のクロック信号の周波数は変更することができ、かつ、第2のクロック信号の周波数は一定に維持することができる。
【発明の効果】
【0014】
本発明によれば、CPUに供給するクロック信号の周波数に関わらず、周辺回路に所定の周波数のクロック信号を供給することができるクロック信号生成回路及びクロック信号生成方法を提供することができる。
【図面の簡単な説明】
【0015】
【図1】実施の形態1にかかるクロック信号生成回路1を示す図である。
【図2】実施の形態1にかかる本実施の形態にかかるクロック信号生成回路1を詳細に示す図である。
【図3】実施の形態1にかかるクロック信号生成回路1のタイミングチャートを示す図である。
【図4】実施の形態1にかかるクロック信号生成回路1のタイミングチャートを示す図である。
【図5】従来のクロック供給装置2011を示す図である。
【発明を実施するための形態】
【0016】
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。図1は、本実施の形態にかかるクロック信号生成回路1を示す図である。クロック信号生成回路1は、第1クロック生成部としてのクロック制御回路100と、基準値算出部としての周辺クロック制御回路200と、第2クロック生成部としてのカウント制御回路300とを有する。
【0017】
クロック制御回路100は、外部から入力された逓倍比及び分周比のうち少なくとも1つに基づき、発振子が出力するクロック信号からCPUに入力される第1クロック信号としての基準クロック信号14を生成する。
【0018】
カウント制御回路300は、基準クロック信号14から、周辺回路13に入力される第2クロック信号としての周辺クロック信号15を生成する。周辺クロック信号15は、所定の周波数を有するクロック信号であり、本実施の形態においては、カウント制御回路300は、基準クロック信号14の周波数が変更された場合であっても、この周辺クロック信号15の周波数を一定に保つように周辺クロック信号15を生成するものである。
【0019】
周辺クロック制御回路200は、基準クロック信号14から周辺クロック信号15を作成するための基準値16を算出する。周辺クロック制御回路200は、基準クロック信号14を作成するための逓倍比及び分周比のうち少なくとも1以上が変更されると、周辺クロック信号15が所定の周波数を維持するよう、基準値16を再度算出して、カウント制御回路300に出力する。
【0020】
本実施の形態にかかるクロック信号生成回路1は、基準クロック信号14の周波数が変更されても、基準クロック信号14から生成する周辺クロック信号15は所定の周波数を維持させる。従って、省電力のためにCPUに供給される基準クロック信号14の周波数を低くしても、周辺クロック信号15の周波数を一定に保つため、例えばPCM音源や、シリアル通信機能を有しかつ周波数が変更可能なシステムであって、クロック信号生成回路1を、一定のクロック信号を供給する必要があるシステム等に適用することができる。
【0021】
本実施の形態にかかるクロック信号生成回路1について、さらに詳細に説明する。図2は、本実施の形態にかかるクロック信号生成回路1を詳細に示す図である。本実施の形態にかかるクロック信号生成回路1は、CPU12に入力される第1のクロック信号としての基準クロック信号131の周波数を、逓倍又は分周して、周辺回路13に供給する第2のクロック信号としての周辺クロック信号341を生成する。クロック信号生成回路1は、CPU12に入力される基準クロック信号131の周波数が変更されても、基準クロック信号131から生成される周辺クロック信号341の周波数は一定に維持するものである。ここでは、基準クロック信号131の周波数が変更される前の、基準クロック信号131に対する周辺クロック信号341の逓倍比及び分周比をN1及びM1とし、周波数変更後の逓倍比及び分周比をN2及びM2とする。また、基準クロック信号131の周波数変更前の基準値をαとし、周波数変更後の基準値をβとして説明する。
【0022】
CPU12には、後述するクロック発生回路130から基準クロック信号131が入力される。このCPU12は、基準クロック信号131を変更する際、周波数変更後逓倍比N2、分周比M2を逓倍比設定データ1201及び周波数変更後の分周比設定データ1202によりクロック制御回路100と周辺クロック制御回路200とに入力する。なお、本実施の形態においては、逓倍比及び分周比はCPU12からクロック制御回路100及び周辺クロック制御回路200に入力されるものとして説明するが、CPU以外の外部の装置から入力されるようにしてもよい。
【0023】
クロック制御回路100は、逓倍比の値を保持する逓倍比設定レジスタ110と、分周比の値を保持する分周比設定レジスタ120と、基準クロック信号131を生成するクロック発生回路130と、後述する基準クロック変更禁止信号221に基づいてクロック発生回路130にそれぞれ逓倍比及び分周比を出力する逓倍比ゲート回路140及び分周比ゲート回路150と、発振子としての源発振クロック出力回路160とを有する。
【0024】
周辺クロック制御回路200は、逓倍比及び分周比が変更されると、変更前の逓倍比及び分周比のうち少なくとも1と、変更後の逓倍比及び分周比のうち少なくとも1とに基づき、基準値を再算出する乗除算器210と、周辺クロック信号341のエッジを検出するエッジ検出回路220と、再算出された基準値をエッジ検出回路220の制御に基づいてカウント制御回路300に出力する書き換え制御回路230とを有する。
【0025】
カウント制御回路300は、基準値を保持する時間設定レジスタ310と、基準クロック信号131をカウントするカウンタ320と、基準値とカウント値とを比較する比較回路330と、比較回路330の比較結果に基づき、信号のHIGHとLOWを切り替えることにより、周辺クロック信号341を生成するPWM(Pulse Width Modulation)出力回路340とを有する。
【0026】
次に、本実施の形態にかかるクロック信号生成回路1の動作について説明する。逓倍比設定レジスタ110は、CPU12が出力した逓倍比設定データ1201により設定される逓倍比N1を保持している。基準クロック信号131の周波数を変更する際、CPU12は、周波数変更後の逓倍比N2を設定する逓倍比設定データ1201を逓倍比設定レジスタ110に出力する。逓倍比設定レジスタ110は、CPU12から周波数変更後の逓倍比設定データ1201を受け取ると、乗除算器210に、周波数変更前、すなわち現在の逓倍比N1の情報を有する乗除算器用逓倍比データ112を出力する。また逓倍比設定レジスタ110は、逓倍比ゲート回路140に周波数変更後の逓倍比N2の情報を有するゲート回路用逓倍比データ111を出力する。
【0027】
分周比設定レジスタ120は、逓倍比設定レジスタ110と同様、CPU12が出力した分周比設定データ1202により設定される分周比M1を保持している。基準クロック信号131の周波数を変更する際、CPU12は、周波数変更後の分周比M2を設定する分周比設定データ1202を分周比設定レジスタ120に出力する。分周比設定レジスタ120は、CPU12から周波数変更後の分周比M2を設定する分周比設定データ1202を受け取ると、乗除算器210に周波数変更前、すなわち現在の分周比M1の情報を有する乗除算器用分周比データ122を出力する。また分周比設定レジスタ120は、分周比ゲート回路150に周波数変更後の分周比M2の情報を有するゲート回路用分周比データ121を出力する。
【0028】
逓倍比ゲート回路140及び分周比ゲート回路150は、エッジ検出回路220から出力される基準クロック変更禁止信号221がLOWになると、周波数変更後の逓倍比N2の値を有するゲート回路用逓倍比データ111及び周波数変更後の分周比M2の値を有するゲート回路用分周比データ121を、それぞれクロック発生回路用逓倍比データ141及びクロック発生回路用分周比データ151としてクロック発生回路130に出力する。
【0029】
源発振クロック出力回路160は、源発振クロック信号161をクロック発生回路130に出力する。なお、本実施の形態においては、クロック制御回路100が発振子としての源発振クロック出力回路160を有するものとしているが、外部から源発振クロック信号161を供給するようにしてもよい。
【0030】
クロック発生回路130は、クロック発生回路用逓倍比データ141が有する新たに設定される逓倍比N2及びクロック発生回路用分周比データ151が有する新たに設定される変更後の分周比M2に基づき、源発振クロック信号161の周波数を逓倍・分周して、基準クロック信号131を生成する。つまり、本実施の形態では、基準クロック信号131の逓倍・分周比を、逓倍比N1・分周比M1から、逓倍比N2・分周比M2に変更し、新しい基準クロック信号131を生成する。クロック発生回路130は、変更後の基準クロック信号131をCPU12とカウンタ320とに出力する。
【0031】
乗除算器210には、周波数変更後の逓倍比N2の情報を含む逓倍比設定データ1201、周波数変更後の分周比M2の情報を含む分周比設定データ1202、周波数変更前の逓倍比N1の情報を含む乗除算器用逓倍比データ112、周波数変更前の分周比M1の情報を含む乗除算器用分周比データ122、及び周波数変更前の基準値αが入力され、これらの値に基づき、周波数変更後の基準値βを算出する。具体的な基準値の算出方法については後述する。乗除算器210は、周波数変更後の新たな基準値βを算出すると、この基準値βの情報を、書き換え制御回路用演算結果211により書き換え制御回路230に出力する。また、乗除算器210は、周波数変更後の基準値βの算出が終了すると、その演算結果をエッジ検出回路用演算結果212としてエッジ検出回路220に出力する。
【0032】
エッジ検出回路220には、エッジ検出回路用演算結果212と、周辺クロック信号341とが入力される。このエッジ検出回路220は、エッジ検出回路用演算結果212が入力されると、周辺クロック信号341のエッジを検出する。そして、エッジを検出すると、逓倍比ゲート回路140及び分周比ゲート回路150に出力する基準クロック変更禁止信号221をLOWにし、書き換え制御回路230に出力する。ここで本実施の形態では、エッジ検出回路用演算結果212に、乗除算器210の演算結果である新しい基準値βが出力され、エッジ検出回路220は、エッジ検出回路用演算結果212の出力値に変化があったときに、周辺クロック信号341を検出するものとして説明した。ただし、エッジ検出回路220は、乗除算器210での周波数変更後の基準値βの算出が終了したタイミングをエッジ検出回路用演算結果212から取得できればよく、従って例えば、エッジ検出回路用演算結果212は、演算結果ではなく、基準値βの算出中はLOWになり、基準値βの算出が終了するとHIGHになる信号としてもよい。
【0033】
基準クロック変更禁止信号221がLOWレベルになると、逓倍比ゲート回路140及び分周比ゲート回路150が導通状態となり、周波数変更後の逓倍比N2の情報を含むクロック発生回路用逓倍比データ141及び周波数変更後の分周比M2の情報を含むクロック発生回路用分周比データ151がクロック発生回路130に入力される。すなわち、基準クロック変更禁止信号221がLOWレベルになると周波数変更後の新たな逓倍比N2及び分周比M2がクロック発生回路130に入力される。
【0034】
書き換え禁止信号222は、書き換え制御回路230が、時間設定レジスタ値変更許可信号231の出力するタイミングを制御する信号である。すなわち、書き換え制御回路230は、書き換え禁止信号222がLOWになると、時間設定レジスタ値変更許可信号231を比較回路330及び時間設定レジスタ310に出力する(HIGHにする)。これにより、時間設定レジスタ310及び比較回路330が保持する基準値がリセットされる。ここで、一般にレジスタは、保持している内容を書き換えるためのデータ・バスに接続されており、そのデータ・バスの各ビット信号の遅延があるため、書き換え中のレジスタが保持する値は不定値となる。時間設定レジスタ値変更許可信号231は、時間設定レジスタ311及び比較回路330の基準値が書き換えられる際、書き換え中の値がカウンタ値と偶然一致し、カウント値一致信号331がHIGHになることを防止するために使用する。また、書き換え制御回路230は、周波数変更後の新たに算出された基準値βの情報を含む時間設定レジスタ用演算結果232を、時間設定レジスタ310に出力する。これにより、時間設定レジスタ310及び比較回路330が保持する基準値がリセットされ、基準値αからの周波数変更後の基準値βに書き換えられる。
【0035】
カウンタ320は、基準クロック信号131をカウントして、カウント値321を比較回路330に出力する。比較回路330には、時間設定レジスタ値変更許可信号231と変更後の基準値βの情報を有する時間設定データ311とカウント値321とが入力される。比較回路330は、時間設定レジスタ値変更許可信号231により現在保持している基準値αの値がリセットされ、替わりに時間設定データ311により、新たに算出された基準値βを保持する。そして、この比較回路330は、再設定された基準値βと、カウント値321とを比較し、両者が一致したタイミングで、カウント値一致信号331をPWM出力回路340に出力する。なお例えば、比較回路330は、カウント値一致信号331をさらにカウンタ320に出力し、カウント値一致信号331が入力されたタイミングで、カウンタ320のカウント値がリセットされるようにしてもよい。
【0036】
PWM出力回路340は、カウント値一致信号331が入力されるタイミングで、信号のLOWとHIGHを切り替えることで、周辺クロック信号341を生成する。カウンタ320のカウントタイミングは、基準クロック信号131の周波数が変更されると変更するが、比較回路330が比較に使用する基準値も新しく設定された基準値βに変更されているため、カウント値一致信号331の出力されるタイミングは一定に保たれる。この周辺クロック信号341は周辺回路13及びエッジ検出回路220に供給される。
【0037】
本実施の形態にかかるクロック信号生成回路1は、基準クロック信号131の周波数変更時に、変更前の逓倍比N1及び分周比M1と、変更後の逓倍比N2及び分周比M2と、変更前の基準値αに基づき、変更後の基準値βを算出し、時間設定レジスタ310の保持する基準値を、基準値αから基準値βに書き換える。それにより、周辺回路に供給する周辺クロック信号341を停止せずに周辺回路に供給するクロックの周波数を一定に保つことが可能となり、基準クロックの周波数が変更されてもプログラマブルに周期を指定できる一定の周期の周辺クロック信号が生成できる。
【0038】
次に、基準値算出方法について詳細に説明する。上述したように、基準クロック信号131の周波数変更前の逓倍比N1、分周比M1とし、周波数変更後の逓倍比N2、分周比M2とし、周波数変更前の基準値をα、変更後の基準値βとする。
【0039】
乗除算器210には、逓倍比N1を示す乗除算器用逓倍比データ112と、逓倍比N2を示す逓倍比設定データ1201と、分周比M1を示す乗除算器用分周比データ122と、分周比M2を示す分周比設定データ1202と、時間設定レジスタ310からの、基準値αを設定する時間設定データ311とが入力される。そして、乗除算器210は、逓倍比N1、N2、分周比M1、M2、及び基準値αから、下記式1の演算を行なう。
β=α×((N2×M1)/(N1×M2))…(式1)
このように、逓倍比設定レジスタ110及び分周比設定レジスタ120から出力される、基準クロック信号131の周波数変更前後の逓倍比N1/N2、及び周波数変更前後の分周比M1/M2に基づき、基準クロック信号131の変更後の基準値βを計算することができる。
【0040】
上記式1について、詳しく説明する。例えば源発振クロック信号161の周波数をX1、周波数変更前の基準クロック信号131の周波数変更前の周波数をF1とする。周波数変更前の基準クロック信号131は、源発振クロック信号161の周波数X1を、N1で逓倍し、M1で分周したものであるので、以下のように表すことができる。
F1=X1×N1/M1 …(式2)
周波数F1の基準クロック信号131のカウント値が基準値αになるまでの時間をD1とすると、D1は下記式3で表される。
D1=α/F1 …(式3)
基準クロック信号131の周波数変更後の周波数をF2とすると、周波数F2は下記式4で表される。
F2=X1×N2/M2 …(式4)
次に、周波数F2の基準クロック信号131のカウント値が基準値βになるまでの時間をD2とすると、D2は以下の式で表される。
D2=β/F2 …(式5)
周波数F1の基準クロック信号131のカウント値が基準値αになる時間D1と、周波数F2の基準クロック信号131のカウント値が基準値βになる時間D2とは等しくならなければならない。従って、下記式6を、基準値βについて解くことで、上記式1が得られる。
α/(X1×N1/M1)=β/(X1×N2/M2) …(式6)
源発振クロック信号161を4MHzとし、逓倍比をN1=10からN2=40に変更し、分周比をM1=2からM2=4に変更し、基準値α=2である場合について説明する。このとき、それぞれの値を上記式1に代入すると、下記式7のようになる。
β=2×((40×2)/(10×4))=4 …(式7)
すなわち、周波数変更後の基準値βの値は4となる。ここで、基準クロック信号131の変更前周波数=20MHzであり、変更後周波数=40MHzである。よって、周辺クロック信号341は、変更前周波数F1=20MHzの基準クロック信号131では、クロック信号の2カウント分が基準になっており、基準クロック信号131の変更後周波数F2=40MHzの周辺クロック信号341では、クロック信号の4カウント分を基準にする。すなわち、基準クロック信号131が変更されても、周辺クロック信号の周波数は10MHzであり、一定となっている。
【0041】
以上のように本実施の形態では、基準クロック信号131の周波数変更前後の逓倍比及び分周比から周辺クロック信号を生成するために新しい基準値を算出するため、基準クロック信号の周波数が変更になっても一定の周波数の周辺クロック信号341を周辺回路に供給することができる。
【0042】
次に、本実施の形態にかかるクロック信号生成回路1の動作のタイミングについて説明する。図3は本実施の形態にかかるクロック信号生成回路1のタイミングチャートである。図3は、周辺クロック信号341がHIGHレベルの期間に、時間設定レジスタ310の値を書き換える場合のタイミングチャートを示す。
【0043】
初期状態として逓倍比設定レジスタ110の値(逓倍比)はN1、分周比設定レジスタ120の値(分周比)をM1とし、基準クロック信号131は、源発振クロック信号161をN1で逓倍、M1で分周した周波数F1で動作しているものとする。
【0044】
まず、CPU12が逓倍比設定レジスタ110及び分周比設定レジスタ120の書き換えの命令を行う前の状態について説明する。タイミングT0aは、周波数変更前の基準クロック信号131の立ち下がりエッジのタイミングを示す。時間設定レジスタ310の値(基準値)はαである。カウント値321の値は0であり、時間設定レジスタはαであって、値と一致しないため、カウント値一致信号331はLOWレベルとなっている。また周辺クロック信号341はカウント値一致信号331がLOWレベルであるため、以前のレベルを保持する。
【0045】
タイミングT1aは、タイミングT0aから基準クロック信号131の1周期後のタイミングを示し、カウント値321の値αが時間設定レジスタ310の基準値αと一致するため、カウント値一致信号331が基準クロック信号131の半周期間、HIGHレベルとなる。
【0046】
周辺クロック信号341はカウント値一致信号331の立ち下りに同期して反転する。よって、カウント値一致信号331の立ち下がりエッジのタイミング(タイミングT2a)で、PWM出力回路340が周辺クロック信号341の出力レベルをHIGHレベルからLOWレベルに反転する。これにより、周辺クロック信号341の出力レベルがHIGHレベルからLOWレベルに変化し、一定の周波数を出力する。つまり、カウント値321がαになるタイミングで、カウント値一致信号331が出力され、この立下りに同期してPWM出力回路340が周辺クロック信号341の出力レベルを反転することで、一定周期の周辺クロック信号341を生成する。
【0047】
次に、CPU12が逓倍比設定レジスタ110及び分周比設定レジスタ120の書き換えの命令を実行した後について説明する。タイミングT3aでは、CPU12が逓倍比設定レジスタ110の値をN1からN2に書き換えると、分周比設定レジスタ120の値をM1からM2に書き換える。すなわち、CPU12は、逓倍比設定レジスタ110及び分周比設定レジスタ120に逓倍比設定データ1201と分周比設定データ1202を出力し、基準クロック信号131の周波数F2に変更する。このとき、同じく、乗除算器210にも逓倍比設定データ1201及び分周比設定データ1202を出力し、新たな基準値βを出力する。
【0048】
タイミングT4aにおいて、新たな逓倍比N2を指定する逓倍比設定データ1201が逓倍比設定レジスタ110に格納され、且つ、新たな分周比M2を指定する分周比設定データ1202が分周比設定レジスタ120に格納される。タイミングT3aからタイミングT4aまでの時間は、逓倍比設定レジスタ110及び分周比設定レジスタ120の書き込み時間である。
【0049】
またタイミングT4aでは、基準クロック変更禁止信号221がHIGHレベルであるため、逓倍比ゲート回路140と分周比ゲート回路150が非導通状態である。従って、ゲート回路用逓倍比データ111がN1からN2に変化しても、クロック発生回路用逓倍比データ141はN1のままであり、同様にゲート回路用分周比データ121がM1からM2に変化しても、クロック発生回路用分周比データ151は、M1のままであり、基準クロック信号131は周波数F1のままとなる。
【0050】
タイミングT3a〜T5aの時間は、乗除算器210が基準値βの演算を終了する時間を示す。タイミングT3a〜T5aの時間はここでは特に規定しない。図3では、タイミングT3a及びタイミングT5aともに、周辺クロック信号341のHIGHレベル期間中であるものとする。
【0051】
タイミングT6aでは、基準クロック信号131の立ち上がりエッジでカウント値一致信号331がLOWレベルに変化し、かつカウント値一致信号331の立ち下がりエッジを検出することによって、基準クロック変更禁止信号221と書き換え禁止信号222がLOWレベルに変化する。これにより、基準クロック信号131の周波数が変更される。
【0052】
次に、時間設定レジスタ310に周波数変更後の新しい基準値βが格納された後について説明する。タイミングT6aでは、基準クロック変更禁止信号221がLOWレベルになったことで、逓倍比ゲート回路140及び分周比ゲート回路150が導通状態になる。したがって、クロック発生回路用逓倍比データ141がゲート回路用逓倍比データ111と同じ値(N2)になり、クロック発生回路用分周比データ151がゲート回路用分周比データ121と同じ値(M2)になるため、基準クロック信号131の周波数が周波数F2に変化する。また、ほぼ同時に、書き換え禁止信号222がLOWレベルになったことで、時間設定レジスタ値変更許可信号231がHIGHレベルになる。よって、比較回路330は保持している基準値αがリセットされ、時間設定レジスタ用演算結果232により新しい基準値βが時間設定レジスタ310に設定され、時間設定レジスタ310から時間設定データ311により、比較回路330に新しい基準値βが設定される。
【0053】
タイミングT7aにおいて、基準クロック信号131は周波数F2となっており、カウント制御回路300とCPU12が基準クロック信号131に基づいて動作する。カウント値321が示すカウント値が、時間設定データ311が示す新しい基準値βと一致するタイミングで、周辺クロック信号341のレベルが反転(HIGHレベル)する。
【0054】
ここで、タイミングT6a〜T7aの時間は、基準クロック信号131の周波数がF2に変更になると共に、時間設定レジスタ310の値(基準値β)も再設定される。よって、周波数F1の基準クロック信号131を基準値αまでカウントする時間と、周波数F2の基準クロック信号131を基準値βまでカウントする時間とは同一になり、よって基準クロック信号131の周波数が変化しても周辺クロック信号341の周波数は一定のまま維持される。
【0055】
図4は、周辺クロック信号341がLOWレベルの期間に、時間設定データ311の基準値を書き換える場合のタイミングチャートである。タイミングT0b〜T4bまでは、図3のタイミングT0a〜T4aと同じ動作であるため、説明を省略する。
【0056】
タイミングT3b〜T5bの時間は、基準値βの演算時間である。図3ではタイミングT3a及びタイミングT5aは、周辺クロック信号341のHIGHレベル期間中であるが、図4ではタイミングT3bが周辺クロック信号341のHIGH期間中であり、タイミングT5bは周辺クロック信号341のLOWレベル期間中である点が異なる。
【0057】
タイミングT6bは、周波数変更後の基準クロック信号131の立ち上がりエッジと周辺クロック信号341の立ち上がりエッジとが一致し、基準クロック信号131の周波数が変化するタイミングである。図3の例では、タイミングT6aでは周辺クロック信号341の立ち下りエッジで基準クロック信号131の周波数及び時間設定データ311が変化していたのに対し、図4においては、タイミングT5bのタイミングでは周辺クロック信号341の立ち下りエッジに間に合わなかったため、周辺クロック信号341の立ち上がりエッジで、基準クロック変更禁止信号221がLOWレベルになり、逓倍比ゲート回路140及び分周比ゲート回路150から新しい逓倍比N2および分周比M2がクロック発生回路130に設定され、基準クロック信号131の周波数が周波数F1から周波数F2に変化する。同時に、書き換え禁止信号222がLOWレベルになり、時間設定レジスタ値変更許可信号231がHIGHレベルになる。よって、比較回路330が保持している基準値αがリセットされ、時間設定レジスタ用演算結果232により新しい基準値βが時間設定レジスタ310に設定され、時間設定レジスタ310から時間設定データ311により、比較回路330に新しい基準値βが設定される。
【0058】
時間設定レジスタ310に新しい基準値βが格納された後の動作は図3と同じである。すなわち、タイミングT6a以降は、基準クロック信号131の周波数がF2に変更になるが、時間設定レジスタ310の値である基準値βも再設定されるため、周波数F1の基準クロック信号131を基準値αまでカウントする時間と、周波数F2の基準クロック信号131を基準値βまでカウントする時間とは同一になり、よって、基準クロック信号131の周波数が変化しても周辺クロック信号341の周波数は一定のまま維持される。
【0059】
すなわち、上述したように、本実施の形態においては、基準クロック信号131のカウント数に応じて周辺クロック信号341を生成するシステムにおいて、基準クロック信号131の周波数が変化しても、周辺クロック信号341のカウント値を比較する基準値の値を、周波数の変動に合わせて再算出して設定するため、基準クロック信号131の周波数が変化しても周辺クロック信号341の周波数は一定に保たれる。よって、例えばPCM音源や、シリアル通信機能を有しかつ周波数が変更可能なシステムであって、クロック信号生成回路1を、一定のクロック信号を供給する必要があるシステム等に適用することができる。
【0060】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0061】
1 クロック信号生成回路
1201 逓倍比設定データ
1202 分周比設定データ
11 クロック供給装置
12 CPU
13 周辺回路
14 基準クロック信号
15 周辺クロック信号
16 基準値
100 クロック制御回路
110 逓倍比設定レジスタ
111 ゲート回路用逓倍比データ
112 乗除算器用逓倍比データ
120 分周比設定レジスタ
121 ゲート回路用分周比データ
122 乗除算器用分周比データ
130 クロック発生回路
131 基準クロック信号
140 逓倍比ゲート回路
141 クロック発生回路用逓倍比データ
150 周比ゲート回路
151 クロック発生回路用分周比データ
160 源発振クロック出力回路
161 源発振クロック信号
200 周辺クロック制御回路
210 乗除算器
211 書き換え制御回路用演算結果
212 エッジ検出回路用演算結果
220 エッジ検出回路
221 基準クロック変更禁止信号
222 書き換え禁止信号
230 書き換え制御回路
231 時間設定レジスタ値変更許可信号
232 時間設定レジスタ用演算結果
300 カウント制御回路
310 時間設定レジスタ
311 時間設定データ
320 カウンタ
321 カウント値
330 比較回路
331 カウント値一致信号
340 PWM出力回路
341 周辺クロック信号
2011 クロック供給装置
2012 CPU
2013 周辺回路
2014 クロック生成部
2015 CPUクロック切換部(クロック切換部)
2016 周辺回路クロック供給部(クロック供給部)
2017 CPU分周部(第1の分周部)
2018 周辺回路分周部(第2の分周部)

【特許請求の範囲】
【請求項1】
CPU(Central Processing Unit)に入力される第1クロック信号から、周辺回路に入力される所定の周波数を有する第2クロック信号を生成するクロック信号生成回路であって、
外部から入力される逓倍比及び分周比のうち少なくとも1つに基づき、発振子が出力するクロック信号から前記CPUに入力される前記第1クロック信号を生成する第1クロック生成部と、
前記第1クロック信号から前記第2クロックを作成するための基準値を算出する基準値算出部と、
前記第1クロック信号のカウント値と前記基準値との比較結果に基づき、前記第2クロックを生成する第2クロック生成部と、を有し、
前記基準値算出部は、前記逓倍比及び前記分周比のうち少なくとも1つが変更され前記第1のクロック信号の周波数が変更されると、前記第2のクロック信号の前記所定の周波数が維持されるよう前記基準値を再度算出して前記第2クロック生成部に出力するクロック信号生成回路。
【請求項2】
前記基準値算出部は、前記逓倍比及び前記分周比のうち少なくとも1つが変更されると、前変更前の前記逓倍比及び前記分周比のうち少なくとも1と、変更後の前記逓倍比及び前記分周比のうち少なくとも1とに基づき、前記基準値を再算出する請求項1記載のクロック信号生成回路。
【請求項3】
前記基準値算出部は、前記第1クロック信号の周波数の変更前の前記逓倍比及び前記分周比をそれぞれN1及びM1とし、前記第1クロック信号の周波数の変更後の前記逓倍比及び前記分周比をそれぞれN2及びM2とし、前記第1クロック信号の周波数の変更前の前記基準値をαとすると、下記により前記第1クロック信号の周波数の変更後の前記基準値βを算出する
β=α×(N2×M1)/(N1×M2)
請求項1又は2記載のクロック信号生成回路。
【請求項4】
前記第2クロック生成部は、
前記基準値を保持する基準値レジスタと、
前記第1のクロック信号をカウントするカウンタと、
前記基準値と前記カウント値とが一致したタイミングで信号のHIGHとLOWを切り替えることにより、前記第2のクロック信号を生成する第2クロック発生回路とを有する請求項1乃至3のうちいずれか1に記載のクロック信号生成回路。
【請求項5】
CPU(Central Processing Unit)に入力される第1クロック信号から、周辺回路に入力される所定の周波数を有する第2クロック信号を生成するクロック信号生成方法であって、
外部から入力される逓倍比及び分周比のうち少なくとも1つに基づき、発振子が出力するクロック信号からCPUに入力される前記第1クロック信号を生成し、
前記第1クロック信号から前記第2クロックを作成するための基準値を算出し、
前記第1クロック信号のカウント値と前記基準値との比較結果に基づき、前記第2クロックを生成し、
前記逓倍比及び前記分周比のうち少なくとも1つが変更され前記第1のクロック信号の周波数が変更されると、前記第2のクロック信号の前記所定の周波数を維持するよう前記基準値を再度算出するクロック信号生成方法。
【請求項6】
前記基準値の再算出では、前記逓倍比及び前記分周比のうち少なくとも1つが変更されると、変更前の前記逓倍比及び前記分周比のうち少なくとも1と、変更後の前記逓倍比及び前記分周比のうち少なくとも1とに基づき、前記基準値を再算出する請求項5記載のクロック信号生成方法。
【請求項7】
前記基準値の再算出では、前記第1クロック信号の周波数の変更前の前記逓倍比及び前記分周比をそれぞれN1及びM1とし、前記第1クロック信号の周波数の変更後の前記逓倍比及び前記分周比をそれぞれN2及びM2とし、前記第1クロック信号の周波数の変更前の前記基準値をαとすると、下記により前記第1クロック信号の周波数の変更後の前記基準値βを算出する、
β=α×(N2×M1)/(N1×M2)
請求項5又は6記載のクロック信号生成方法。
【請求項8】
前記第2クロックの生成は、
前記第1のクロック信号をカウントし、
前記基準値と前記カウント値とが一致したタイミングで信号のHIGHとLOWを切り替えることにより、前記第2のクロック信号を生成する請求項5乃至7のいずれか1項に記載のクロック信号生成方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−204986(P2012−204986A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−66232(P2011−66232)
【出願日】平成23年3月24日(2011.3.24)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】