(57)【要約】【課題】クロック周波数に応じた適切な駆動能力でクロックを伝達し、消費電力の低減を図ることができるクロック調整回路を提供すること。【解決手段】クロック調整回路は、クロックＣＬＫの駆動能力が異なる複数のバッファ２１〜３２と遅延回路３５と制御レジスタ２０とを備え、マイクロコントローラにおけるＣＰＵやその周辺回路等の各回路にクロックＣＬＫ０〜ＣＬＫ２を供給する。各回路へのクロックＣＬＫ０〜ＣＬＫ２の伝達タイミングを一致させるために、遅延回路３５によって所定時間だけ遅らせたクロックＣＬＫがバッファ２７〜３２に伝達される。制御レジスタ２０には設定データが格納され、その設定データに基づいて各制御信号Ｃ１〜Ｃ１２，Ｄ１が出力されることでクロックＣＬＫを伝達するためにオンに制御されるバッファが設定される。【選択図】　　　　図２
2004086531.tif 000002
【特許請求の範囲】
【請求項１】
マイクロコントローラにおける各回路にクロックを供給するためのクロック調整回路であって、
前記各回路にクロックを伝達するために設けられ、該クロックの駆動能力が異なる複数のバッファと、
前記各回路へのクロックの伝達タイミングを一致させるために所定時間だけ遅らせたクロックを所定のバッファに伝達する遅延回路と、
前記複数のバッファに制御信号を出力することにより、前記クロックを伝達するためにオンに制御されるバッファを設定する設定制御回路と
を備えたことを特徴とするクロック調整回路。
【請求項２】
前記設定制御回路は、前記クロックが低周波数である時には、該クロックが高周波数である時よりも駆動能力の低いバッファを設定することを特徴とする請求項１記載のクロック調整回路。
【請求項３】
前記設定制御回路は、クロック周波数の変更時に外部から入力される設定データを格納する制御レジスタであり、該設定データに基づいて前記制御信号を出力することを特徴とする請求項１または２記載のクロック調整回路。
【請求項４】
前記遅延回路の遅延時間を調節可能に構成したことを特徴とする請求項１乃至３のいずれかに記載のクロック調整回路。
【請求項５】
請求項１乃至４のいずれかに記載のクロック調整回路と、前記クロックを発生するクロック発生回路と、該クロック発生回路から前記クロック調整回路を介して伝達されるクロックに基づいて動作する複数の回路とを備えたことを特徴とするマイクロコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコントローラにおけるＣＰＵやその周辺回路等の各回路にクロックを供給するためのクロック調整回路及びそれを備えるマイクロコントローラに関するものである。
【０００２】
マイクロコントローラは、各種処理を実行するＣＰＵやその周辺回路等の各回路を備え、それら各回路はクロックに同期して動作する。マイクロコントローラの高性能化、低消費電力化を実現するためには、クロック周波数に応じた最適な駆動能力でクロックを各回路に伝達することが必要となっている。
【０００３】
【従来の技術】
従来、マイクロコントローラにおいて、クロック発生回路でクロックが発生され、同クロックは配線やバッファを介してＣＰＵやその周辺回路に伝達されている。マイクロコントローラのレイアウト設計をする場合、クロックを伝達するための配線やバッファ、いわゆるクロックネットは、該クロックネットにつながるロジックの負荷や配線の負荷を考慮したシミュレーションにより設定されている。つまり、論理ネット及びレイアウト上の配線等を評価することで、ＣＰＵやその周辺回路に応じた必要な性能が得られるようにバッファ等のクロックネットが設定されている。
【０００４】
近年のマイクロコントローラでは、高い性能が要求されるときにのみ高速で動作させ、それ以外は低速で動作させることで、高性能化と、低消費電力化との両立が図られている。マイクロコントローラの高速動作時において、各ブロック（ＣＰＵやその周辺回路）への入力クロックに遅延差が発生すると、マイクロコントローラは正常に動作しなくなる。そのため、クロックネットにおけるバッファの駆動能力の強化や遅延回路による遅延時間の調整により、各ブロックへのクロックの伝達タイミングを一致させるようにしている。
【０００５】
【発明が解決しようとする課題】
ところで、従来のマイクロコントローラでは、動作条件が厳しい高速動作時に合わせてバッファの駆動能力の強化や遅延回路による遅延時間の調整が行われていた。そのため、マイクロコントローラの低速動作時には、必要以上のバッファの強化となり、無駄な電力が消費されることになる。この消費電力は、マイクロコントローラの高速化とゲート数の増加に応じて大きくなる。
【０００６】
因みに、現在実用化されている３２ビットのマイクロコントローラにおいて、その動作速度を半分にした場合、各回路でのクロックの遅延差は２倍まで許容され、クロックネットのバッファとしては１／２の駆動能力で十分である。つまり、クロック周波数を半分にした場合、バッファにおける１／２の駆動能力が無駄となる。
【０００７】
本発明は上記問題点を解決するためになされたものであって、その目的は、クロック周波数に応じた適切な駆動能力でクロックを伝達し、消費電力の低減を図ることができるクロック調整回路及びマイクロコントローラを提供することにある。
【０００８】
【課題を解決するための手段】
クロック調整回路は、クロックの駆動能力が異なる複数のバッファと遅延回路と設定制御回路とを備え、マイクロコントローラにおける各回路にクロックを供給する。各回路へのクロックの伝達タイミングを一致させるために、遅延回路によって所定時間だけ遅らせたクロックが所定のバッファに伝達される。設定制御回路により、複数のバッファに制御信号が出力され、クロックを伝達するためにオンに制御されるバッファが設定される。
【０００９】
また、クロック調整回路において、クロックが高周波数である時（高速動作時）には、駆動能力の大きいバッファがオンに制御され、該バッファを介してクロックが伝達される。一方、クロックが低周波数である時（低速動作時）には、駆動能力の小さいバッファがオンに制御され、該バッファを介してクロックが伝達される。
【００１０】
【発明の実施の形態】
以下、この発明を具体化した一実施の形態を図面に従って説明する。図１は、マイクロコントローラ１０の概略構成を示すブロック図である。
【００１１】
マイクロコントローラ１０は、クロック発生回路１１、クロック調整回路１２、ＣＰＵ１３、第１周辺回路１４、第２周辺回路１５等を備える。
クロック発生回路１１は、ＣＰＵ１３からのクロック設定信号に応じた所定周波数のクロックを生成して出力する。このクロックは、クロック調整回路１２を経由してＣＰＵ１３や各周辺回路１４，１５等に供給され、ＣＰＵ１３や各周辺回路１４，１５は、そのクロックに同期して動作する。本実施形態では、クロック発生回路１１により生成されるクロック周波数は、マイクロコントローラ１０の高速動作時には６０ＭＨｚであり低速動作時には１ＭＨｚである。
【００１２】
図２は、クロック調整回路１２を示す回路図である。
クロック調整回路１２は、制御レジスタ２０と、第１〜第１２バッファ２１〜３２と、スイッチ回路３４と、遅延回路（ディレイ回路）３５とを備える。制御レジスタ２０には、ＣＰＵ１３からの設定データが格納される。制御レジスタ２０は、その設定データに基づいて、第１〜第１２バッファ２１〜３２やスイッチ回路３４を制御するための制御信号Ｃ１〜Ｃ１２，Ｄ１を出力する。
【００１３】
各バッファ２１〜３２は、３ステートバッファであり、制御端子に入力される制御信号Ｃ１〜Ｃ１２に基づいてオンまたはオフに制御される。バッファ２１〜３２のオン時には、入力されるクロックＣＬＫに応じて出力をＨレベルまたはＬレバルに遷移させる。それにより、ＣＰＵ１３や各周辺回路１４，１５にクロックＣＬＫ０〜ＣＬＫ２が伝達される。また、バッファ２１〜３２のオフ時には、その出力がハイインピーダンスとされ、ＣＰＵ１３や各周辺回路１４，１５へのクロックＣＬＫ０〜ＣＬＫ２が遮断される。
【００１４】
第１〜第６バッファ２１〜２６における入力端子には、クロック発生回路１１からのクロックＣＬＫが直接入力され、第７〜第１２バッファ２７〜３２における入力端子には、クロック発生回路１１からのクロックＣＬＫがスイッチ回路３４及び遅延回路３５を介して入力される。
【００１５】
スイッチ回路３４は、制御信号Ｄ１に基づいてオン又はオフに制御される。スイッチ回路３４のオン時には、同スイッチ回路３４を介して遅延回路３５とクロック発生回路１１とが導通され、遅延回路３５にクロックＣＬＫが供給される。一方、スイッチ回路３４のオフ時には、同スイッチ回路３４を介して遅延回路３５がグランドに接地され、遅延回路３５へのクロックＣＬＫが遮断される。
【００１６】
遅延回路３５は、複数段のゲート回路よりなり、クロック発生回路１１から入力されるクロックＣＬＫを所定時間だけ遅らせて各バッファ２７〜３２に伝達する。
【００１７】
第１バッファ２１、第２バッファ２２、第７バッファ２７、第８バッファ２８の出力端子はＣＰＵ１３に接続され、第３バッファ２３、第４バッファ２４、第９バッファ２９、第１０バッファ３０の出力端子は第１周辺回路１４に接続されている。また、第５バッファ２５、第６バッファ２６、第１１バッファ３１、第１２バッファ３２の出力端子は第２周辺回路１５に接続されている。
【００１８】
マイクロコントローラ１０の動作時には、各制御信号Ｃ１，Ｃ２，Ｃ７，Ｃ８に基づいて、ＣＰＵ１３に接続する各バッファ２１，２２，２７，２８のいずれか１つがオンとされ、そのバッファから出力されるクロックＣＬＫ０がＣＰＵ１３に供給される。また、各制御信号Ｃ３，Ｃ４，Ｃ９，Ｃ１０に基づいて、第１周辺回路１４に接続する各バッファ２３，２４，２９，３０のいずれか１つがオンとされ、そのバッファから出力されるクロックＣＬＫ１が第１周辺回路１４に供給される。さらに、各制御信号Ｃ５，Ｃ６，Ｃ１１，Ｃ１２に基づいて、第２周辺回路１５に接続する各バッファ２５，２６，３１，３２のいずれか１つがオンとされ、そのバッファから出力されるクロックＣＬＫ２が第２周辺回路１５に供給される。
【００１９】
本実施形態では、第１バッファ２１の駆動能力が第２バッファ２２よりも大きく、第３バッファ２３の駆動能力が第４バッファ２４よりも大きく、第５バッファ２５の駆動能力が第６バッファ２６よりも大きくなるよう各バッファが形成されている。同様に、第７バッファ２７の駆動能力が第８バッファ２８よりも大きく、第９バッファ２９の駆動能力が第１０バッファ３０よりも大きく、第１１バッファ３１の駆動能力が第１２バッファ３２よりも大きくなるよう各バッファが形成されている。
【００２０】
本実施形態のマイクロコントローラ１０では、その設計段階におけるシミュレーションによってクロックネットの設定（制御レジスタ２０の設定データの最適値）が決定される。
【００２１】
具体的には、図１のマイクロコントローラ１０において、クロックＣＬＫを発生するクロック発生回路１１に対し、第２周辺回路１５は遠い位置に設けられ、ＣＰＵ１３と第１周辺回路１４は近い位置に設けられている。このようにマイクロコントローラ１０を構成した場合、配線の長さに応じたクロックＣＬＫの遅延が生じ、ＣＰＵ１３と第１周辺回路１４とに比べ第２周辺回路１５へのクロックの伝達タイミングが遅れる。
【００２２】
マイクロコントローラ１０の高速動作時には、その遅れにより回路誤動作が問題となるため、クロック調整回路１２において各回路へのクロックの伝達タイミングが一致するよう調整される。すなわち、マイクロコントローラ１０を高速で動作させるときには、第２周辺回路１５へのクロックとしてはディレイ無しが選択され、ＣＰＵ１３と第１周辺回路１４へのクロックとしてはディレイ有りが選択される。また、伝達するクロックＣＬＫが高速であるので、駆動能力の大きいバッファが選択される。
【００２３】
この場合、クロック調整回路１２における各バッファのうち、第５バッファ２５と、第７バッファ２７と、第９バッファ２９とを使用するよう制御レジスタ２０のデータが設定される。つまり、各制御信号Ｃ１〜Ｃ１２，Ｄ１のうちの制御信号Ｃ５，Ｃ７，Ｃ９，Ｄ１がオン状態とされる。このように制御レジスタ２０のデータを設定すると、ＣＰＵ１３には、クロック調整回路１２における遅延回路３５と第７バッファ２７を介してクロックＣＬＫ０が供給される。また、第１周辺回路１４には、遅延回路３５と第９バッファ２９を介してクロックＣＬＫ１が供給され、第２周辺回路１５には、第５バッファ２５を介してクロックＣＬＫ２が供給される。
【００２４】
図３（ａ）には、高速動作時の各クロックの波形を示している。同図に示されるように、ＣＰＵ１３及び第１周辺回路１４に供給されるクロックＣＬＫ０，ＣＬＫ１の変化タイミングは、クロック発生回路１１のクロック（元クロック）ＣＬＫに対して、遅延回路３５による遅延時間Ｔ１だけ遅れて変化する。一方、第２周辺回路１５に供給されるクロックＣＬＫ２の変化タイミングは、クロックＣＬＫに対して、配線による遅延時間Ｔ２だけ遅れて変化する。また、各クロックＣＬＫ０〜ＣＬＫ２は、駆動能力の大きなバッファ２７，２９，２５により駆動されるため、各クロックの立ち上がり時間Ｔ３は短くなる。ここで、遅延回路３５の遅延時間Ｔ１を配線の遅延時間Ｔ２と等しく設定することにより、各回路（ＣＰＵ１３、第１及び第２周辺回路１４，１５）へのクロック到達タイミングが一致することとなる。よって、マイクロコントローラ１０における各回路１３〜１５が正常に動作することが確認される。
【００２５】
また、マイクロコントローラ１０の低速動作時には、クロックＣＬＫのスキューやクロック間の遅延が生じても各回路１３〜１５は正常に動作する。従って、マイクロコントローラ１０を低速で動作させるときには、クロックＣＬＫの遅延時間を調整する必要がなく、ＣＰＵ１３、第１及び第２周辺回路１４，１５へのクロックとしてはディレイ無しが選択される。また、伝達するクロックＣＬＫが低速であるので、駆動能力の小さいバッファが選択される。
【００２６】
この場合、図２のクロック調整回路１２における第２バッファ２２と、第４バッファ２４と、第６バッファ２６とを使用するよう制御レジスタ２０のデータが設定される。つまり、各制御信号Ｃ１〜Ｃ１２，Ｄ１のうちの制御信号Ｃ２，Ｃ４，Ｃ６がオン状態とされる。このように制御レジスタ２０のデータを設定すると、ＣＰＵ１３には、クロック調整回路１２における第２バッファ２２を介してクロックＣＬＫ０が供給される。また、第１周辺回路１４には、第４バッファ２４を介してクロックＣＬＫ１が供給され、第２周辺回路１５には、第６バッファ２６を介してクロックＣＬＫ２が供給される。
【００２７】
図３（ｂ）には、低速動作時の各クロックの波形を示している。同図に示されるように、ＣＰＵ１３及び第１周辺回路１４に供給されるクロックＣＬＫ０，ＣＬＫ１の変化タイミングは、クロック発生回路１１のクロックＣＬＫに一致する。一方、第２周辺回路１５に供給されるクロックＣＬＫ２の変化タイミングは、クロックＣＬＫに対して、配線による遅延時間Ｔ２だけ遅れて変化する。また、各クロックＣＬＫ０〜ＣＬＫ２は、駆動能力の小さなバッファ２２，２４，２６により駆動されるため、各クロックの立ち上がり時間Ｔ４は長くなる。
【００２８】
このように、各クロックの変化時間Ｔ４が長く、さらに、ＣＰＵ１３、第１周辺回路１４と第２周辺回路１５へのクロック到達タイミングは異なるが、元クロックＣＬＫが低速であるため、各回路１３〜１５が動作可能であることが確認される。
【００２９】
本実施形態におけるマイクロコントローラ１０は、電源投入時の初期動作時には低速で動作する。そのため、クロック調整回路１２の制御レジスタ２０には、低速時の設定データがデフォルト値として設定される。
【００３０】
マイクロコントローラ１０におけるクロックＣＬＫを高速に切り替える場合、先ず、ＣＰＵ１３が所定のプログラムを実行することにより、制御レジスタ２０の設定データを高速時のデータに書き換える。その後、ＣＰＵ１３がクロック発生回路１１にクロック設定信号を出力する。これにより、クロック発生回路１１において高周波数のクロックＣＬＫが発生される。そして、そのクロックＣＬＫに基づいて、マイクロコントローラ１０の各回路１３〜１５が動作する。
【００３１】
逆に、マイクロコントローラ１０におけるクロックＣＬＫを低速に切り替える場合、先ず、ＣＰＵ１３からのクロック設定信号により、クロック発生回路１１におけるクロックＣＬＫを低周波数に切り替えた後、ＣＰＵ１３によって制御レジスタ２０の設定データを低速時のデータに書き換えるようにする。これにより、クロック発生回路１１にて発生される低周波数のクロックに基づいて、マイクロコントローラ１０の各回路１３〜１５が動作する。
【００３２】
以上記述したように、本実施形態によれば、次に示す作用効果を得ることができる。
（１）高速動作時には、駆動能力の大きいバッファ２５，２７，２９がオンに制御され、それらバッファを介してクロックＣＬＫ０〜ＣＬＫ２が各回路１３〜１５へ伝達される。一方、低速動作時には、駆動能力の小さいバッファ２２，２４，２６がオンに制御され、それらバッファを介してクロックＣＬＫ０〜ＣＬＫ２が各回路１３〜１５に伝達される。このようにすれば、低速動作時における消費電力を低減することができる。
【００３３】
（２）クロック周波数の変更時に、ＣＰＵ１３から入力される設定データが制御レジスタ２０に格納される。その設定データに基づいて制御信号Ｃ１〜Ｃ１２が各バッファ２１〜３２に出力され、クロックを伝達するためにオンに制御されるバッファが設定される。このように構成すると、制御レジスタ２０のデータを書き換えることで、クロック周波数に適した駆動能力のバッファを介してクロックを伝達することができる。
【００３４】
（３）クロックＣＬＫは、スイッチ回路３４を介して遅延回路３５に伝達される。本実施形態のマイクロコントローラ１０では、低速動作時に遅延回路３５を用いたクロックＣＬＫの遅延が不要となるため、スイッチ回路３４によってクロックＣＬＫを遮断し遅延回路３５の入力をグランドレベルに固定するようにした。この場合、遅延回路３５においてクロックＣＬＫを伝達するための回路動作が停止され、消費電力の低減が可能となる。
【００３５】
上記実施の形態は、次に示すように変更することもできる。
・上記実施形態において、クロック調整回路１２は、大、小の２種類の駆動能力が異なるバッファ２１〜３２を備えるものであったが、これに限定されるものではなく、駆動能力が大、中、小の３種類やそれ以上のバッファを備えるようにしてもよい。このようにすれば、クロック調整回路における駆動能力の調整をより厳密に行うことができる。
【００３６】
・クロック調整回路１２では、１つの遅延回路３５を備えるものであったが、遅延回路３５を複数段設けることにより遅延時間を調節可能に構成してもよい。一般に、マイクロコントローラ１０のチップの出来上がりは半導体製造工場におけるプロセス工程の影響を強く受ける。そのため、クロック調整回路１２における遅延時間を調節可能とすることにより、プロセス変動に伴うクロックの配線遅延のバラツキ等を補正するための遅延時間を設定することができる。つまり、マイクロコントローラ１０のチップの完成後にクロックネットの最適化が可能となる。
【００３７】
・クロック調整回路１２においてバッファや遅延回路の数を増やし、より厳密な調整を行う場合、高速動作時や低速時動作等の各動作に応じた複数の設定データからなるテーブルを予め記憶しておき、そのテーブルを用いて制御レジスタ２０を設定するように構成してもよい。また、テーブルを記憶する記憶装置としてフラッシュメモリ等の不揮発性メモリを用い、製品出荷のための試験時に設定するようにすれば、製品の歩留まり等を向上させる上で好ましいものとなる。
【００３８】
・上記実施形態のマイクロコントローラ１０では、高速動作時及び低速動作時にて各回路１３〜１５にクロックＣＬＫ０〜ＣＬＫ２が供給されるものであったがこれに限定されるものではない。例えば、マイクロコントローラ１０の高速又は低速のいずれかの動作時にて、動作しない周辺回路がある場合、その周辺回路へのクロックを伝達しないように制御レジスタ２０のデータを設定する。これにより、クロックの伝達が必要なバッファのみがオンに制御されるため、マイクロコントローラ１０の消費電力を低減することができる。
【００３９】
以上の様々な実施の形態をまとめると、以下のようになる。
（付記１）マイクロコントローラにおける各回路にクロックを供給するためのクロック調整回路であって、
前記各回路にクロックを伝達するために設けられ、該クロックの駆動能力が異なる複数のバッファと、
前記各回路へのクロックの伝達タイミングを一致させるために所定時間だけ遅らせたクロックを所定のバッファに伝達する遅延回路と、
前記複数のバッファに制御信号を出力することにより、前記クロックを伝達するためにオンに制御されるバッファを設定する設定制御回路と
を備えたことを特徴とするクロック調整回路。
（付記２）前記設定制御回路は、前記クロックが低周波数である時には、該クロックが高周波数である時よりも駆動能力の低いバッファを設定することを特徴とする付記１記載のクロック調整回路。
（付記３）前記設定制御回路は、クロック周波数の変更時に外部から入力される設定データを格納する制御レジスタであり、該設定データに基づいて前記制御信号を出力することを特徴とする付記１または２記載のクロック調整回路。
（付記４）前記遅延回路の遅延時間を調節可能に構成したことを特徴とする付記１乃至３のいずれかに記載のクロック調整回路。
（付記５）前記マイクロコントローラにおける各回路のそれぞれに対して、前記遅延回路により遅延されたクロックを伝達するために設けられ該クロックの駆動能力が異なる複数のバッファと、前記遅延回路を介さずに入力されるクロックを伝達するために設けられ該クロックの駆動能力が異なる複数のバッファとを有し、
前記設定制御回路から出力される制御信号により、所定の回路に接続する複数のバッファのいずれか１つがオンに制御されることを特徴とする付記１乃至４のいずれかに記載のクロック調整回路。
（付記６）前記遅延回路へのクロックをスイッチ回路を介して入力するようにしたことを特徴とする付記１乃至５のいずれかに記載のクロック調整回路。
（付記７）付記１乃至６のいずれかに記載のクロック調整回路と、前記クロックを発生するクロック発生回路と、該クロック発生回路から前記クロック調整回路を介して伝達されるクロックに基づいて動作する複数の回路とを備えたことを特徴とするマイクロコントローラ。
【００４０】
【発明の効果】
以上詳述したように、本発明によれば、クロック周波数に応じた適切な駆動能力でクロックが伝達され、消費電力の低減を図ることができる。
【図面の簡単な説明】
【図１】一実施の形態のマイクロコントローラを示すブロック図である。
【図２】クロック調整回路を示す回路図である。
【図３】各クロックを示す波形図である。
【符号の説明】
１０　マイクロコントローラ
１１　クロック発生回路
１２　クロック調整回路
１３　ＣＰＵ
１４　第１周辺回路
１５　第２周辺回路
２０　設定制御回路としての制御レジスタ
２１〜３２　バッファ
３５　遅延回路
Ｃ１〜Ｃ１２　制御信号
ＣＬＫ，ＣＬＫ０〜ＣＬＫ２　クロック
Ｔ１　遅延時間
【図１】
2004086531.tif 000003
【図２】
2004086531.tif 000004
【図３】
2004086531.tif 000005