(57)【要約】【課題】ＣＰＵに供給するクロック信号の周波数に関わらず、周辺回路に所定の周波数のクロック信号を供給することができるクロック信号生成回路及びクロック信号生成方法を提供する。【解決手段】本発明にかかるクロック信号生成回路は、ＣＰＵに入力される第１クロック信号から、周辺回路に入力される所定の周波数を有する第２クロック信号を生成する。外部から入力される逓倍比及び分周比のうち少なくとも１に基づき、発振子が出力するクロック信号から入力される第１クロック信号を生成する第１クロック生成部と、第１クロック信号から第２クロックを作成するための基準値を算出する基準値算出部と、第１クロック信号のカウント値と基準値との比較結果に基づき、第２クロックを生成する第２クロック生成部とを有し、基準値算出部は、逓倍比及び分周比のうち少なくとも１つが変更され第１のクロック信号の周波数が変更されると、基準値を再度算出する。【選択図】図１
2012204986.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ（Central Processing Unit）に入力される第１クロック信号から、周辺回路に入力される所定の周波数を有する第２クロック信号を生成するクロック信号生成回路であって、
外部から入力される逓倍比及び分周比のうち少なくとも１つに基づき、発振子が出力するクロック信号から前記ＣＰＵに入力される前記第１クロック信号を生成する第１クロック生成部と、
前記第１クロック信号から前記第２クロックを作成するための基準値を算出する基準値算出部と、
前記第１クロック信号のカウント値と前記基準値との比較結果に基づき、前記第２クロックを生成する第２クロック生成部と、を有し、
前記基準値算出部は、前記逓倍比及び前記分周比のうち少なくとも１つが変更され前記第１のクロック信号の周波数が変更されると、前記第２のクロック信号の前記所定の周波数が維持されるよう前記基準値を再度算出して前記第２クロック生成部に出力するクロック信号生成回路。
【請求項２】
前記基準値算出部は、前記逓倍比及び前記分周比のうち少なくとも１つが変更されると、前変更前の前記逓倍比及び前記分周比のうち少なくとも１と、変更後の前記逓倍比及び前記分周比のうち少なくとも１とに基づき、前記基準値を再算出する請求項１記載のクロック信号生成回路。
【請求項３】
前記基準値算出部は、前記第１クロック信号の周波数の変更前の前記逓倍比及び前記分周比をそれぞれＮ１及びＭ１とし、前記第１クロック信号の周波数の変更後の前記逓倍比及び前記分周比をそれぞれＮ２及びＭ２とし、前記第１クロック信号の周波数の変更前の前記基準値をαとすると、下記により前記第１クロック信号の周波数の変更後の前記基準値βを算出する
β＝α×（Ｎ２×Ｍ１）／（Ｎ１×Ｍ２）
請求項１又は２記載のクロック信号生成回路。
【請求項４】
前記第２クロック生成部は、
前記基準値を保持する基準値レジスタと、
前記第１のクロック信号をカウントするカウンタと、
前記基準値と前記カウント値とが一致したタイミングで信号のＨＩＧＨとＬＯＷを切り替えることにより、前記第２のクロック信号を生成する第２クロック発生回路とを有する請求項１乃至３のうちいずれか１に記載のクロック信号生成回路。
【請求項５】
ＣＰＵ（Central Processing Unit）に入力される第１クロック信号から、周辺回路に入力される所定の周波数を有する第２クロック信号を生成するクロック信号生成方法であって、
外部から入力される逓倍比及び分周比のうち少なくとも１つに基づき、発振子が出力するクロック信号からＣＰＵに入力される前記第１クロック信号を生成し、
前記第１クロック信号から前記第２クロックを作成するための基準値を算出し、
前記第１クロック信号のカウント値と前記基準値との比較結果に基づき、前記第２クロックを生成し、
前記逓倍比及び前記分周比のうち少なくとも１つが変更され前記第１のクロック信号の周波数が変更されると、前記第２のクロック信号の前記所定の周波数を維持するよう前記基準値を再度算出するクロック信号生成方法。
【請求項６】
前記基準値の再算出では、前記逓倍比及び前記分周比のうち少なくとも１つが変更されると、変更前の前記逓倍比及び前記分周比のうち少なくとも１と、変更後の前記逓倍比及び前記分周比のうち少なくとも１とに基づき、前記基準値を再算出する請求項５記載のクロック信号生成方法。
【請求項７】
前記基準値の再算出では、前記第１クロック信号の周波数の変更前の前記逓倍比及び前記分周比をそれぞれＮ１及びＭ１とし、前記第１クロック信号の周波数の変更後の前記逓倍比及び前記分周比をそれぞれＮ２及びＭ２とし、前記第１クロック信号の周波数の変更前の前記基準値をαとすると、下記により前記第１クロック信号の周波数の変更後の前記基準値βを算出する、
β＝α×（Ｎ２×Ｍ１）／（Ｎ１×Ｍ２）
請求項５又は６記載のクロック信号生成方法。
【請求項８】
前記第２クロックの生成は、
前記第１のクロック信号をカウントし、
前記基準値と前記カウント値とが一致したタイミングで信号のＨＩＧＨとＬＯＷを切り替えることにより、前記第２のクロック信号を生成する請求項５乃至７のいずれか１項に記載のクロック信号生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Central Processing Unit）と周辺回路とを有するマイクロコントローラに関し、特にマイクロコントローラの基準クロックを生成するクロック発生装置及びクロック信号生成方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路の低消費電力化に伴い、バッテリー駆動のオーディオ機器では音声圧縮データの圧縮率によりＣＰＵの周波数を下げて消費電力を低減することが主流となっている。
【０００３】
例えばＰＣＭ（pulse code modulation）音源や、シリアル通信機能を有しかつ周波数が変更可能なシステムでは、一定のクロック信号を周辺機器に対して供給する必要がある。このようなシステムにおいては、ＣＰＵの負荷量に応じて、ＣＰＵに供給されるクロック信号の周波数を変更することにより消費電力を低減しながら、周辺機器に供給するクロック信号は一定に保つ必要がある。
【０００４】
特許文献１には、クロック供給装置に関する技術が記載されている。特許文献１に記載の技術は、ＣＰＵに対する動作クロックの切換を行っても、周辺回路に対する動作クロックと常に同期すると共に、周辺回路に対して安定した動作クロックの供給を行う。
【０００５】
図５は、特許文献１に記載のクロック供給装置２０１１を示す図である。クロック供給装置２０１１は、ＣＰＵ２０１２及び周辺回路２０１３に対してクロック信号を供給する。クロック供給装置２０１１は、クロック生成部２０１４、ＣＰＵクロック切換部（クロック切換部）２０１５、周辺回路クロック供給部（クロック供給部）２０１６、ＣＰＵ分周部（第１の分周部）２０１７及び周辺回路分周部（第２の分周部）２０１８を備えている。
【０００６】
クロック生成部２０１４は、入力された基準クロックを分周することによって数種類のクロックを出力するクロック生成部であり、ＣＰＵ２０１２を動作させるＣＰＵ分周部２０１７と周辺回路２０１３を動作させる周辺回路分周部２０１８とにより構成されている。ＣＰＵクロック切換部（クロック切換部）２０１５は、クロック生成部２０１４から出力された複数のクロックから択一的にクロックを選択する。周辺回路クロック供給部（クロック供給部）２０１６は、クロック生成部２０１４から出力された複数のクロックから択一的にクロックを選択して周辺回路にクロックを供給する。
【０００７】
このクロック供給装置２０１１は、基準クロックからＣＰＵ２０１２に対する動作クロックを生成し、実際にＣＰＵ２０１２に出力される動作クロックから周辺回路２０１３に対する動作クロックを生成する。
【０００８】
また、周辺回路分周部２０１８において、ＣＰＵ分周部２０１７及び周辺回路分周部２０１８の分周回数は予め定められており、ＣＰＵ分周部２０１７から出力される第１及び第２クロックのどちらがＣＰＵクロック切換部２０１５を介して周辺回路分周部２０１８に入力されても、周辺回路分周部２０１８から出力される第３クロックと第４クロックは、少なくともいずれか一方はある所定の大きさの周波数を有して出力される。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平８−２２１１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に記載の技術においては、ＣＰＵ分周部２０１７及び周辺回路分周部２０１８の分周回数が予め定められているため、ＣＰＵに供給するクロック信号の周波数を自由に変更できないという問題点がある。
【課題を解決するための手段】
【００１１】
本発明にかかるクロック信号生成回路は、ＣＰＵ（Central Processing Unit）に入力される第１クロック信号から、周辺回路に入力される所定の周波数を有する第２クロック信号を生成するクロック信号生成回路であって、外部から入力される逓倍比及び分周比のうち少なくとも１つに基づき、発振子が出力するクロック信号からＣＰＵに入力される第１クロック信号を生成する第１クロック生成部と、第１クロック信号から第２クロックを作成するための基準値を算出する基準値算出部と、第１クロック信号のカウント値と基準値との比較結果に基づき、第２クロックを生成する第２クロック生成部と、を有し、基準値算出部は、逓倍比及び分周比のうち少なくとも１つが変更され第１のクロック信号の周波数が変更されると、第２のクロック信号の所定の周波数が維持されるよう基準値を再度算出して第２クロック生成部に出力する。
【００１２】
本発明にかかるクロック信号生成方法は、ＣＰＵ（Central Processing Unit）に入力される第１クロック信号から、周辺回路に入力される所定の周波数を有する第２クロック信号を生成するクロック信号生成方法であって、外部から入力される逓倍比及び分周比のうち少なくとも１つに基づき、発振子が出力するクロック信号からＣＰＵに入力される第１クロック信号を生成し、第１クロック信号から第２クロックを作成するための基準値を算出し、第１クロック信号のカウント値と基準値との比較結果に基づき、第２クロックを生成し、逓倍比及び分周比のうち少なくとも１つが変更され第１のクロック信号の周波数が変更されると、第２のクロック信号の所定の周波数を維持するよう基準値を再度算出するものである。
【００１３】
本発明においては、ＣＰＵに供給される第１のクロック信号から、周辺回路に供給さえる第２のクロック信号を生成するクロック信号生成装置において、第１のクロック信号の周波数は変更することができ、かつ、第２のクロック信号の周波数は一定に維持することができる。
【発明の効果】
【００１４】
本発明によれば、ＣＰＵに供給するクロック信号の周波数に関わらず、周辺回路に所定の周波数のクロック信号を供給することができるクロック信号生成回路及びクロック信号生成方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１にかかるクロック信号生成回路１を示す図である。
【図２】実施の形態１にかかる本実施の形態にかかるクロック信号生成回路１を詳細に示す図である。
【図３】実施の形態１にかかるクロック信号生成回路１のタイミングチャートを示す図である。
【図４】実施の形態１にかかるクロック信号生成回路１のタイミングチャートを示す図である。
【図５】従来のクロック供給装置２０１１を示す図である。
【発明を実施するための形態】
【００１６】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態にかかるクロック信号生成回路１を示す図である。クロック信号生成回路１は、第１クロック生成部としてのクロック制御回路１００と、基準値算出部としての周辺クロック制御回路２００と、第２クロック生成部としてのカウント制御回路３００とを有する。
【００１７】
クロック制御回路１００は、外部から入力された逓倍比及び分周比のうち少なくとも１つに基づき、発振子が出力するクロック信号からＣＰＵに入力される第１クロック信号としての基準クロック信号１４を生成する。
【００１８】
カウント制御回路３００は、基準クロック信号１４から、周辺回路１３に入力される第２クロック信号としての周辺クロック信号１５を生成する。周辺クロック信号１５は、所定の周波数を有するクロック信号であり、本実施の形態においては、カウント制御回路３００は、基準クロック信号１４の周波数が変更された場合であっても、この周辺クロック信号１５の周波数を一定に保つように周辺クロック信号１５を生成するものである。
【００１９】
周辺クロック制御回路２００は、基準クロック信号１４から周辺クロック信号１５を作成するための基準値１６を算出する。周辺クロック制御回路２００は、基準クロック信号１４を作成するための逓倍比及び分周比のうち少なくとも１以上が変更されると、周辺クロック信号１５が所定の周波数を維持するよう、基準値１６を再度算出して、カウント制御回路３００に出力する。
【００２０】
本実施の形態にかかるクロック信号生成回路１は、基準クロック信号１４の周波数が変更されても、基準クロック信号１４から生成する周辺クロック信号１５は所定の周波数を維持させる。従って、省電力のためにＣＰＵに供給される基準クロック信号１４の周波数を低くしても、周辺クロック信号１５の周波数を一定に保つため、例えばＰＣＭ音源や、シリアル通信機能を有しかつ周波数が変更可能なシステムであって、クロック信号生成回路１を、一定のクロック信号を供給する必要があるシステム等に適用することができる。
【００２１】
本実施の形態にかかるクロック信号生成回路１について、さらに詳細に説明する。図２は、本実施の形態にかかるクロック信号生成回路１を詳細に示す図である。本実施の形態にかかるクロック信号生成回路１は、ＣＰＵ１２に入力される第１のクロック信号としての基準クロック信号１３１の周波数を、逓倍又は分周して、周辺回路１３に供給する第２のクロック信号としての周辺クロック信号３４１を生成する。クロック信号生成回路１は、ＣＰＵ１２に入力される基準クロック信号１３１の周波数が変更されても、基準クロック信号１３１から生成される周辺クロック信号３４１の周波数は一定に維持するものである。ここでは、基準クロック信号１３１の周波数が変更される前の、基準クロック信号１３１に対する周辺クロック信号３４１の逓倍比及び分周比をＮ１及びＭ１とし、周波数変更後の逓倍比及び分周比をＮ２及びＭ２とする。また、基準クロック信号１３１の周波数変更前の基準値をαとし、周波数変更後の基準値をβとして説明する。
【００２２】
ＣＰＵ１２には、後述するクロック発生回路１３０から基準クロック信号１３１が入力される。このＣＰＵ１２は、基準クロック信号１３１を変更する際、周波数変更後逓倍比Ｎ２、分周比Ｍ２を逓倍比設定データ１２０１及び周波数変更後の分周比設定データ１２０２によりクロック制御回路１００と周辺クロック制御回路２００とに入力する。なお、本実施の形態においては、逓倍比及び分周比はＣＰＵ１２からクロック制御回路１００及び周辺クロック制御回路２００に入力されるものとして説明するが、ＣＰＵ以外の外部の装置から入力されるようにしてもよい。
【００２３】
クロック制御回路１００は、逓倍比の値を保持する逓倍比設定レジスタ１１０と、分周比の値を保持する分周比設定レジスタ１２０と、基準クロック信号１３１を生成するクロック発生回路１３０と、後述する基準クロック変更禁止信号２２１に基づいてクロック発生回路１３０にそれぞれ逓倍比及び分周比を出力する逓倍比ゲート回路１４０及び分周比ゲート回路１５０と、発振子としての源発振クロック出力回路１６０とを有する。
【００２４】
周辺クロック制御回路２００は、逓倍比及び分周比が変更されると、変更前の逓倍比及び分周比のうち少なくとも１と、変更後の逓倍比及び分周比のうち少なくとも１とに基づき、基準値を再算出する乗除算器２１０と、周辺クロック信号３４１のエッジを検出するエッジ検出回路２２０と、再算出された基準値をエッジ検出回路２２０の制御に基づいてカウント制御回路３００に出力する書き換え制御回路２３０とを有する。
【００２５】
カウント制御回路３００は、基準値を保持する時間設定レジスタ３１０と、基準クロック信号１３１をカウントするカウンタ３２０と、基準値とカウント値とを比較する比較回路３３０と、比較回路３３０の比較結果に基づき、信号のＨＩＧＨとＬＯＷを切り替えることにより、周辺クロック信号３４１を生成するＰＷＭ（Pulse Width Modulation）出力回路３４０とを有する。
【００２６】
次に、本実施の形態にかかるクロック信号生成回路１の動作について説明する。逓倍比設定レジスタ１１０は、ＣＰＵ１２が出力した逓倍比設定データ１２０１により設定される逓倍比Ｎ１を保持している。基準クロック信号１３１の周波数を変更する際、ＣＰＵ１２は、周波数変更後の逓倍比Ｎ２を設定する逓倍比設定データ１２０１を逓倍比設定レジスタ１１０に出力する。逓倍比設定レジスタ１１０は、ＣＰＵ１２から周波数変更後の逓倍比設定データ１２０１を受け取ると、乗除算器２１０に、周波数変更前、すなわち現在の逓倍比Ｎ１の情報を有する乗除算器用逓倍比データ１１２を出力する。また逓倍比設定レジスタ１１０は、逓倍比ゲート回路１４０に周波数変更後の逓倍比Ｎ２の情報を有するゲート回路用逓倍比データ１１１を出力する。
【００２７】
分周比設定レジスタ１２０は、逓倍比設定レジスタ１１０と同様、ＣＰＵ１２が出力した分周比設定データ１２０２により設定される分周比Ｍ１を保持している。基準クロック信号１３１の周波数を変更する際、ＣＰＵ１２は、周波数変更後の分周比Ｍ２を設定する分周比設定データ１２０２を分周比設定レジスタ１２０に出力する。分周比設定レジスタ１２０は、ＣＰＵ１２から周波数変更後の分周比Ｍ２を設定する分周比設定データ１２０２を受け取ると、乗除算器２１０に周波数変更前、すなわち現在の分周比Ｍ１の情報を有する乗除算器用分周比データ１２２を出力する。また分周比設定レジスタ１２０は、分周比ゲート回路１５０に周波数変更後の分周比Ｍ２の情報を有するゲート回路用分周比データ１２１を出力する。
【００２８】
逓倍比ゲート回路１４０及び分周比ゲート回路１５０は、エッジ検出回路２２０から出力される基準クロック変更禁止信号２２１がＬＯＷになると、周波数変更後の逓倍比Ｎ２の値を有するゲート回路用逓倍比データ１１１及び周波数変更後の分周比Ｍ２の値を有するゲート回路用分周比データ１２１を、それぞれクロック発生回路用逓倍比データ１４１及びクロック発生回路用分周比データ１５１としてクロック発生回路１３０に出力する。
【００２９】
源発振クロック出力回路１６０は、源発振クロック信号１６１をクロック発生回路１３０に出力する。なお、本実施の形態においては、クロック制御回路１００が発振子としての源発振クロック出力回路１６０を有するものとしているが、外部から源発振クロック信号１６１を供給するようにしてもよい。
【００３０】
クロック発生回路１３０は、クロック発生回路用逓倍比データ１４１が有する新たに設定される逓倍比Ｎ２及びクロック発生回路用分周比データ１５１が有する新たに設定される変更後の分周比Ｍ２に基づき、源発振クロック信号１６１の周波数を逓倍・分周して、基準クロック信号１３１を生成する。つまり、本実施の形態では、基準クロック信号１３１の逓倍・分周比を、逓倍比Ｎ１・分周比Ｍ１から、逓倍比Ｎ２・分周比Ｍ２に変更し、新しい基準クロック信号１３１を生成する。クロック発生回路１３０は、変更後の基準クロック信号１３１をＣＰＵ１２とカウンタ３２０とに出力する。
【００３１】
乗除算器２１０には、周波数変更後の逓倍比Ｎ２の情報を含む逓倍比設定データ１２０１、周波数変更後の分周比Ｍ２の情報を含む分周比設定データ１２０２、周波数変更前の逓倍比Ｎ１の情報を含む乗除算器用逓倍比データ１１２、周波数変更前の分周比Ｍ１の情報を含む乗除算器用分周比データ１２２、及び周波数変更前の基準値αが入力され、これらの値に基づき、周波数変更後の基準値βを算出する。具体的な基準値の算出方法については後述する。乗除算器２１０は、周波数変更後の新たな基準値βを算出すると、この基準値βの情報を、書き換え制御回路用演算結果２１１により書き換え制御回路２３０に出力する。また、乗除算器２１０は、周波数変更後の基準値βの算出が終了すると、その演算結果をエッジ検出回路用演算結果２１２としてエッジ検出回路２２０に出力する。
【００３２】
エッジ検出回路２２０には、エッジ検出回路用演算結果２１２と、周辺クロック信号３４１とが入力される。このエッジ検出回路２２０は、エッジ検出回路用演算結果２１２が入力されると、周辺クロック信号３４１のエッジを検出する。そして、エッジを検出すると、逓倍比ゲート回路１４０及び分周比ゲート回路１５０に出力する基準クロック変更禁止信号２２１をＬＯＷにし、書き換え制御回路２３０に出力する。ここで本実施の形態では、エッジ検出回路用演算結果２１２に、乗除算器２１０の演算結果である新しい基準値βが出力され、エッジ検出回路２２０は、エッジ検出回路用演算結果２１２の出力値に変化があったときに、周辺クロック信号３４１を検出するものとして説明した。ただし、エッジ検出回路２２０は、乗除算器２１０での周波数変更後の基準値βの算出が終了したタイミングをエッジ検出回路用演算結果２１２から取得できればよく、従って例えば、エッジ検出回路用演算結果２１２は、演算結果ではなく、基準値βの算出中はＬＯＷになり、基準値βの算出が終了するとＨＩＧＨになる信号としてもよい。
【００３３】
基準クロック変更禁止信号２２１がＬＯＷレベルになると、逓倍比ゲート回路１４０及び分周比ゲート回路１５０が導通状態となり、周波数変更後の逓倍比Ｎ２の情報を含むクロック発生回路用逓倍比データ１４１及び周波数変更後の分周比Ｍ２の情報を含むクロック発生回路用分周比データ１５１がクロック発生回路１３０に入力される。すなわち、基準クロック変更禁止信号２２１がＬＯＷレベルになると周波数変更後の新たな逓倍比Ｎ２及び分周比Ｍ２がクロック発生回路１３０に入力される。
【００３４】
書き換え禁止信号２２２は、書き換え制御回路２３０が、時間設定レジスタ値変更許可信号２３１の出力するタイミングを制御する信号である。すなわち、書き換え制御回路２３０は、書き換え禁止信号２２２がＬＯＷになると、時間設定レジスタ値変更許可信号２３１を比較回路３３０及び時間設定レジスタ３１０に出力する（ＨＩＧＨにする）。これにより、時間設定レジスタ３１０及び比較回路３３０が保持する基準値がリセットされる。ここで、一般にレジスタは、保持している内容を書き換えるためのデータ・バスに接続されており、そのデータ・バスの各ビット信号の遅延があるため、書き換え中のレジスタが保持する値は不定値となる。時間設定レジスタ値変更許可信号２３１は、時間設定レジスタ３１１及び比較回路３３０の基準値が書き換えられる際、書き換え中の値がカウンタ値と偶然一致し、カウント値一致信号３３１がＨＩＧＨになることを防止するために使用する。また、書き換え制御回路２３０は、周波数変更後の新たに算出された基準値βの情報を含む時間設定レジスタ用演算結果２３２を、時間設定レジスタ３１０に出力する。これにより、時間設定レジスタ３１０及び比較回路３３０が保持する基準値がリセットされ、基準値αからの周波数変更後の基準値βに書き換えられる。
【００３５】
カウンタ３２０は、基準クロック信号１３１をカウントして、カウント値３２１を比較回路３３０に出力する。比較回路３３０には、時間設定レジスタ値変更許可信号２３１と変更後の基準値βの情報を有する時間設定データ３１１とカウント値３２１とが入力される。比較回路３３０は、時間設定レジスタ値変更許可信号２３１により現在保持している基準値αの値がリセットされ、替わりに時間設定データ３１１により、新たに算出された基準値βを保持する。そして、この比較回路３３０は、再設定された基準値βと、カウント値３２１とを比較し、両者が一致したタイミングで、カウント値一致信号３３１をＰＷＭ出力回路３４０に出力する。なお例えば、比較回路３３０は、カウント値一致信号３３１をさらにカウンタ３２０に出力し、カウント値一致信号３３１が入力されたタイミングで、カウンタ３２０のカウント値がリセットされるようにしてもよい。
【００３６】
ＰＷＭ出力回路３４０は、カウント値一致信号３３１が入力されるタイミングで、信号のＬＯＷとＨＩＧＨを切り替えることで、周辺クロック信号３４１を生成する。カウンタ３２０のカウントタイミングは、基準クロック信号１３１の周波数が変更されると変更するが、比較回路３３０が比較に使用する基準値も新しく設定された基準値βに変更されているため、カウント値一致信号３３１の出力されるタイミングは一定に保たれる。この周辺クロック信号３４１は周辺回路１３及びエッジ検出回路２２０に供給される。
【００３７】
本実施の形態にかかるクロック信号生成回路１は、基準クロック信号１３１の周波数変更時に、変更前の逓倍比Ｎ１及び分周比Ｍ１と、変更後の逓倍比Ｎ２及び分周比Ｍ２と、変更前の基準値αに基づき、変更後の基準値βを算出し、時間設定レジスタ３１０の保持する基準値を、基準値αから基準値βに書き換える。それにより、周辺回路に供給する周辺クロック信号３４１を停止せずに周辺回路に供給するクロックの周波数を一定に保つことが可能となり、基準クロックの周波数が変更されてもプログラマブルに周期を指定できる一定の周期の周辺クロック信号が生成できる。
【００３８】
次に、基準値算出方法について詳細に説明する。上述したように、基準クロック信号１３１の周波数変更前の逓倍比Ｎ１、分周比Ｍ１とし、周波数変更後の逓倍比Ｎ２、分周比Ｍ２とし、周波数変更前の基準値をα、変更後の基準値βとする。
【００３９】
乗除算器２１０には、逓倍比Ｎ１を示す乗除算器用逓倍比データ１１２と、逓倍比Ｎ２を示す逓倍比設定データ１２０１と、分周比Ｍ１を示す乗除算器用分周比データ１２２と、分周比Ｍ２を示す分周比設定データ１２０２と、時間設定レジスタ３１０からの、基準値αを設定する時間設定データ３１１とが入力される。そして、乗除算器２１０は、逓倍比Ｎ１、Ｎ２、分周比Ｍ１、Ｍ２、及び基準値αから、下記式１の演算を行なう。
β＝α×（（Ｎ２×Ｍ１）／（Ｎ１×Ｍ２））…（式１）
このように、逓倍比設定レジスタ１１０及び分周比設定レジスタ１２０から出力される、基準クロック信号１３１の周波数変更前後の逓倍比Ｎ１／Ｎ２、及び周波数変更前後の分周比Ｍ１／Ｍ２に基づき、基準クロック信号１３１の変更後の基準値βを計算することができる。
【００４０】
上記式１について、詳しく説明する。例えば源発振クロック信号１６１の周波数をＸ１、周波数変更前の基準クロック信号１３１の周波数変更前の周波数をＦ１とする。周波数変更前の基準クロック信号１３１は、源発振クロック信号１６１の周波数Ｘ１を、Ｎ１で逓倍し、Ｍ１で分周したものであるので、以下のように表すことができる。
Ｆ１＝Ｘ１×Ｎ１／Ｍ１  …（式２）
周波数Ｆ１の基準クロック信号１３１のカウント値が基準値αになるまでの時間をＤ１とすると、Ｄ１は下記式３で表される。
Ｄ１＝α／Ｆ１  …（式３）
基準クロック信号１３１の周波数変更後の周波数をＦ２とすると、周波数Ｆ２は下記式４で表される。
Ｆ２＝Ｘ１×Ｎ２／Ｍ２  …（式４）
次に、周波数Ｆ２の基準クロック信号１３１のカウント値が基準値βになるまでの時間をＤ２とすると、Ｄ２は以下の式で表される。
Ｄ２＝β／Ｆ２  …（式５）
周波数Ｆ１の基準クロック信号１３１のカウント値が基準値αになる時間Ｄ１と、周波数Ｆ２の基準クロック信号１３１のカウント値が基準値βになる時間Ｄ２とは等しくならなければならない。従って、下記式６を、基準値βについて解くことで、上記式１が得られる。
α／（Ｘ１×Ｎ１／Ｍ１）＝β／（Ｘ１×Ｎ２／Ｍ２）  …（式６）
源発振クロック信号１６１を４ＭＨｚとし、逓倍比をＮ１＝１０からＮ２＝４０に変更し、分周比をＭ１＝２からＭ２＝４に変更し、基準値α＝２である場合について説明する。このとき、それぞれの値を上記式１に代入すると、下記式７のようになる。
β＝２×（（４０×２）／（１０×４））＝４  …（式７）
すなわち、周波数変更後の基準値βの値は４となる。ここで、基準クロック信号１３１の変更前周波数＝２０ＭＨｚであり、変更後周波数＝４０ＭＨｚである。よって、周辺クロック信号３４１は、変更前周波数Ｆ１＝２０ＭＨｚの基準クロック信号１３１では、クロック信号の２カウント分が基準になっており、基準クロック信号１３１の変更後周波数Ｆ２＝４０ＭＨｚの周辺クロック信号３４１では、クロック信号の４カウント分を基準にする。すなわち、基準クロック信号１３１が変更されても、周辺クロック信号の周波数は１０ＭＨｚであり、一定となっている。
【００４１】
以上のように本実施の形態では、基準クロック信号１３１の周波数変更前後の逓倍比及び分周比から周辺クロック信号を生成するために新しい基準値を算出するため、基準クロック信号の周波数が変更になっても一定の周波数の周辺クロック信号３４１を周辺回路に供給することができる。
【００４２】
次に、本実施の形態にかかるクロック信号生成回路１の動作のタイミングについて説明する。図３は本実施の形態にかかるクロック信号生成回路１のタイミングチャートである。図３は、周辺クロック信号３４１がＨＩＧＨレベルの期間に、時間設定レジスタ３１０の値を書き換える場合のタイミングチャートを示す。
【００４３】
初期状態として逓倍比設定レジスタ１１０の値（逓倍比）はＮ１、分周比設定レジスタ１２０の値（分周比）をＭ１とし、基準クロック信号１３１は、源発振クロック信号１６１をＮ１で逓倍、Ｍ１で分周した周波数Ｆ１で動作しているものとする。
【００４４】
まず、ＣＰＵ１２が逓倍比設定レジスタ１１０及び分周比設定レジスタ１２０の書き換えの命令を行う前の状態について説明する。タイミングＴ０ａは、周波数変更前の基準クロック信号１３１の立ち下がりエッジのタイミングを示す。時間設定レジスタ３１０の値（基準値）はαである。カウント値３２１の値は０であり、時間設定レジスタはαであって、値と一致しないため、カウント値一致信号３３１はＬＯＷレベルとなっている。また周辺クロック信号３４１はカウント値一致信号３３１がＬＯＷレベルであるため、以前のレベルを保持する。
【００４５】
タイミングＴ１ａは、タイミングＴ０ａから基準クロック信号１３１の１周期後のタイミングを示し、カウント値３２１の値αが時間設定レジスタ３１０の基準値αと一致するため、カウント値一致信号３３１が基準クロック信号１３１の半周期間、ＨＩＧＨレベルとなる。
【００４６】
周辺クロック信号３４１はカウント値一致信号３３１の立ち下りに同期して反転する。よって、カウント値一致信号３３１の立ち下がりエッジのタイミング（タイミングＴ２ａ）で、ＰＷＭ出力回路３４０が周辺クロック信号３４１の出力レベルをＨＩＧＨレベルからＬＯＷレベルに反転する。これにより、周辺クロック信号３４１の出力レベルがＨＩＧＨレベルからＬＯＷレベルに変化し、一定の周波数を出力する。つまり、カウント値３２１がαになるタイミングで、カウント値一致信号３３１が出力され、この立下りに同期してＰＷＭ出力回路３４０が周辺クロック信号３４１の出力レベルを反転することで、一定周期の周辺クロック信号３４１を生成する。
【００４７】
次に、ＣＰＵ１２が逓倍比設定レジスタ１１０及び分周比設定レジスタ１２０の書き換えの命令を実行した後について説明する。タイミングＴ３ａでは、ＣＰＵ１２が逓倍比設定レジスタ１１０の値をＮ１からＮ２に書き換えると、分周比設定レジスタ１２０の値をＭ１からＭ２に書き換える。すなわち、ＣＰＵ１２は、逓倍比設定レジスタ１１０及び分周比設定レジスタ１２０に逓倍比設定データ１２０１と分周比設定データ１２０２を出力し、基準クロック信号１３１の周波数Ｆ２に変更する。このとき、同じく、乗除算器２１０にも逓倍比設定データ１２０１及び分周比設定データ１２０２を出力し、新たな基準値βを出力する。
【００４８】
タイミングＴ４ａにおいて、新たな逓倍比Ｎ２を指定する逓倍比設定データ１２０１が逓倍比設定レジスタ１１０に格納され、且つ、新たな分周比Ｍ２を指定する分周比設定データ１２０２が分周比設定レジスタ１２０に格納される。タイミングＴ３ａからタイミングＴ４ａまでの時間は、逓倍比設定レジスタ１１０及び分周比設定レジスタ１２０の書き込み時間である。
【００４９】
またタイミングＴ４ａでは、基準クロック変更禁止信号２２１がＨＩＧＨレベルであるため、逓倍比ゲート回路１４０と分周比ゲート回路１５０が非導通状態である。従って、ゲート回路用逓倍比データ１１１がＮ１からＮ２に変化しても、クロック発生回路用逓倍比データ１４１はＮ１のままであり、同様にゲート回路用分周比データ１２１がＭ１からＭ２に変化しても、クロック発生回路用分周比データ１５１は、Ｍ１のままであり、基準クロック信号１３１は周波数Ｆ１のままとなる。
【００５０】
タイミングＴ３ａ〜Ｔ５ａの時間は、乗除算器２１０が基準値βの演算を終了する時間を示す。タイミングＴ３ａ〜Ｔ５ａの時間はここでは特に規定しない。図３では、タイミングＴ３ａ及びタイミングＴ５ａともに、周辺クロック信号３４１のＨＩＧＨレベル期間中であるものとする。
【００５１】
タイミングＴ６ａでは、基準クロック信号１３１の立ち上がりエッジでカウント値一致信号３３１がＬＯＷレベルに変化し、かつカウント値一致信号３３１の立ち下がりエッジを検出することによって、基準クロック変更禁止信号２２１と書き換え禁止信号２２２がＬＯＷレベルに変化する。これにより、基準クロック信号１３１の周波数が変更される。
【００５２】
次に、時間設定レジスタ３１０に周波数変更後の新しい基準値βが格納された後について説明する。タイミングＴ６ａでは、基準クロック変更禁止信号２２１がＬＯＷレベルになったことで、逓倍比ゲート回路１４０及び分周比ゲート回路１５０が導通状態になる。したがって、クロック発生回路用逓倍比データ１４１がゲート回路用逓倍比データ１１１と同じ値（Ｎ２）になり、クロック発生回路用分周比データ１５１がゲート回路用分周比データ１２１と同じ値（Ｍ２）になるため、基準クロック信号１３１の周波数が周波数Ｆ２に変化する。また、ほぼ同時に、書き換え禁止信号２２２がＬＯＷレベルになったことで、時間設定レジスタ値変更許可信号２３１がＨＩＧＨレベルになる。よって、比較回路３３０は保持している基準値αがリセットされ、時間設定レジスタ用演算結果２３２により新しい基準値βが時間設定レジスタ３１０に設定され、時間設定レジスタ３１０から時間設定データ３１１により、比較回路３３０に新しい基準値βが設定される。
【００５３】
タイミングＴ７ａにおいて、基準クロック信号１３１は周波数Ｆ２となっており、カウント制御回路３００とＣＰＵ１２が基準クロック信号１３１に基づいて動作する。カウント値３２１が示すカウント値が、時間設定データ３１１が示す新しい基準値βと一致するタイミングで、周辺クロック信号３４１のレベルが反転（ＨＩＧＨレベル）する。
【００５４】
ここで、タイミングＴ６ａ〜Ｔ７ａの時間は、基準クロック信号１３１の周波数がＦ２に変更になると共に、時間設定レジスタ３１０の値（基準値β）も再設定される。よって、周波数Ｆ１の基準クロック信号１３１を基準値αまでカウントする時間と、周波数Ｆ２の基準クロック信号１３１を基準値βまでカウントする時間とは同一になり、よって基準クロック信号１３１の周波数が変化しても周辺クロック信号３４１の周波数は一定のまま維持される。
【００５５】
図４は、周辺クロック信号３４１がＬＯＷレベルの期間に、時間設定データ３１１の基準値を書き換える場合のタイミングチャートである。タイミングＴ０ｂ〜Ｔ４ｂまでは、図３のタイミングＴ０ａ〜Ｔ４ａと同じ動作であるため、説明を省略する。
【００５６】
タイミングＴ３ｂ〜Ｔ５ｂの時間は、基準値βの演算時間である。図３ではタイミングＴ３ａ及びタイミングＴ５ａは、周辺クロック信号３４１のＨＩＧＨレベル期間中であるが、図４ではタイミングＴ３ｂが周辺クロック信号３４１のＨＩＧＨ期間中であり、タイミングＴ５ｂは周辺クロック信号３４１のＬＯＷレベル期間中である点が異なる。
【００５７】
タイミングＴ６ｂは、周波数変更後の基準クロック信号１３１の立ち上がりエッジと周辺クロック信号３４１の立ち上がりエッジとが一致し、基準クロック信号１３１の周波数が変化するタイミングである。図３の例では、タイミングＴ６ａでは周辺クロック信号３４１の立ち下りエッジで基準クロック信号１３１の周波数及び時間設定データ３１１が変化していたのに対し、図４においては、タイミングＴ５ｂのタイミングでは周辺クロック信号３４１の立ち下りエッジに間に合わなかったため、周辺クロック信号３４１の立ち上がりエッジで、基準クロック変更禁止信号２２１がＬＯＷレベルになり、逓倍比ゲート回路１４０及び分周比ゲート回路１５０から新しい逓倍比Ｎ２および分周比Ｍ２がクロック発生回路１３０に設定され、基準クロック信号１３１の周波数が周波数Ｆ１から周波数Ｆ２に変化する。同時に、書き換え禁止信号２２２がＬＯＷレベルになり、時間設定レジスタ値変更許可信号２３１がＨＩＧＨレベルになる。よって、比較回路３３０が保持している基準値αがリセットされ、時間設定レジスタ用演算結果２３２により新しい基準値βが時間設定レジスタ３１０に設定され、時間設定レジスタ３１０から時間設定データ３１１により、比較回路３３０に新しい基準値βが設定される。
【００５８】
時間設定レジスタ３１０に新しい基準値βが格納された後の動作は図３と同じである。すなわち、タイミングＴ６ａ以降は、基準クロック信号１３１の周波数がＦ２に変更になるが、時間設定レジスタ３１０の値である基準値βも再設定されるため、周波数Ｆ１の基準クロック信号１３１を基準値αまでカウントする時間と、周波数Ｆ２の基準クロック信号１３１を基準値βまでカウントする時間とは同一になり、よって、基準クロック信号１３１の周波数が変化しても周辺クロック信号３４１の周波数は一定のまま維持される。
【００５９】
すなわち、上述したように、本実施の形態においては、基準クロック信号１３１のカウント数に応じて周辺クロック信号３４１を生成するシステムにおいて、基準クロック信号１３１の周波数が変化しても、周辺クロック信号３４１のカウント値を比較する基準値の値を、周波数の変動に合わせて再算出して設定するため、基準クロック信号１３１の周波数が変化しても周辺クロック信号３４１の周波数は一定に保たれる。よって、例えばＰＣＭ音源や、シリアル通信機能を有しかつ周波数が変更可能なシステムであって、クロック信号生成回路１を、一定のクロック信号を供給する必要があるシステム等に適用することができる。
【００６０】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００６１】
１  クロック信号生成回路
１２０１  逓倍比設定データ
１２０２  分周比設定データ
１１  クロック供給装置
１２  ＣＰＵ
１３  周辺回路
１４  基準クロック信号
１５  周辺クロック信号
１６  基準値
１００  クロック制御回路
１１０  逓倍比設定レジスタ
１１１  ゲート回路用逓倍比データ
１１２  乗除算器用逓倍比データ
１２０  分周比設定レジスタ
１２１  ゲート回路用分周比データ
１２２  乗除算器用分周比データ
１３０  クロック発生回路
１３１  基準クロック信号
１４０  逓倍比ゲート回路
１４１  クロック発生回路用逓倍比データ
１５０  周比ゲート回路
１５１  クロック発生回路用分周比データ
１６０  源発振クロック出力回路
１６１  源発振クロック信号
２００  周辺クロック制御回路
２１０  乗除算器
２１１  書き換え制御回路用演算結果
２１２  エッジ検出回路用演算結果
２２０  エッジ検出回路
２２１  基準クロック変更禁止信号
２２２  書き換え禁止信号
２３０  書き換え制御回路
２３１  時間設定レジスタ値変更許可信号
２３２  時間設定レジスタ用演算結果
３００  カウント制御回路
３１０  時間設定レジスタ
３１１  時間設定データ
３２０  カウンタ
３２１  カウント値
３３０  比較回路
３３１  カウント値一致信号
３４０  ＰＷＭ出力回路
３４１  周辺クロック信号
２０１１  クロック供給装置
２０１２  ＣＰＵ
２０１３  周辺回路
２０１４  クロック生成部
２０１５  ＣＰＵクロック切換部（クロック切換部）
２０１６  周辺回路クロック供給部（クロック供給部）
２０１７  ＣＰＵ分周部（第１の分周部）
２０１８  周辺回路分周部（第２の分周部）
【図１】
2012204986.tif 000003
【図２】
2012204986.tif 000004
【図３】
2012204986.tif 000005
【図４】
2012204986.tif 000006
【図５】
2012204986.tif 000007