(57)【要約】【課題】  本発明は、半導体装置の動作時の発振周波数の変動要因に対応できるとともに、特定の通信機能や通信相手を必要とすることなく、ＲＣ発振回路の発振周波数の補正が可能な半導体装置を提供することを目的とする。【解決手段】  半導体装置は、第１の周期で発振する第１の発振信号を出力するＲＣ発振器と、ＲＣ発振器の出力に結合され第１の発振信号の第１の周期の長さを第２の周期を有する第２の発振信号に基づき計測し、その計測値を出力する計測回路と、計測回路の出力とＲＣ発振器の出力とに結合され計測値に応じた数で該第１の発振信号を分周する補正回路を含むことを特徴とする。【選択図】  図１
2006229607.tif 000002
【特許請求の範囲】
【請求項１】
第１の周期で発振する第１の発振信号を出力するＲＣ発振器と、
該ＲＣ発振器の出力に結合され該第１の発振信号の該第１の周期の長さを第２の周期を有する第２の発振信号に基づき計測し、その計測値を出力する計測回路と、
該計測回路の出力と該ＲＣ発振器の出力とに結合され該計測値に応じた数で該第１の発振信号を分周する補正回路
を含むことを特徴とする半導体装置。
【請求項２】
該第２の発振信号を生成する発振器を更に含むことを特徴とする請求項１記載の半導体装置。
【請求項３】
該第２の発振信号を生成する発振器は水晶発振器であることを特徴とする請求項２記載の半導体装置。
【請求項４】
該計測回路は、該第１の発振信号の該第１の周期の期間に含まれる該第２の周期の数をカウントするカウンタを含むことを特徴とする請求項１記載の半導体装置。
【請求項５】
該計測回路は、該ＲＣ発振器の出力に結合され該第１の発振信号の所定のエッジを検出するエッジ検出回路を更に含み、該カウンタは該エッジ検出回路によるエッジ検出に応答して該第２の発振信号のパルスのカウントを開始し、該エッジ検出回路による更なるエッジ検出に応答して該第２の発振信号のパルスのカウントを停止することを特徴とする請求項４記載の半導体装置。
【請求項６】
該計測回路は、該半導体装置の電源投入に応答して該計測を行うことを特徴とする請求項１記載の半導体装置。
【請求項７】
該補正回路は、
所望の周期と該第１の周期との比率を該計測値に応じて出力する回路と、
該比率に応じて該第１の発振信号を分周するカウンタ
を含むことを特徴とする請求項１記載の半導体装置。
【請求項８】
該比率を出力する回路は、該所望の周期と該第１の周期との該比率を該計測値に応じて計算するＣＰＵであることを特徴とする請求項７記載の半導体装置。
【請求項９】
該比率を出力する回路は、該所望の周期と該第１の周期との該比率を該計測値毎に保持するメモリであることを特徴とする請求項７記載の半導体装置。
【請求項１０】
ＲＣ発振器により第１の周期で発振する第１の発振信号を生成し、
水晶発振器により第２の周期で発振する第２の発振信号を生成し、
該第１の周期に含まれる該第２の周期の数をカウントし、
該第２の周期の数のカウント値に応じた数で該第１の発振信号を分周する
各段階を含むことを特徴とする発振周波数補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に半導体装置に関し、詳しくはＲＣ発振器を内蔵した半導体装置に関する。
【背景技術】
【０００２】
半導体装置には、ＲＣ発振回路が内蔵されているタイプのものがある。例えばＲＣ発振回路内蔵マイクロコンピュータは、誤動作防止機能を備えたマイクロコンピュータの一例である。外部発振子が外れる等の異常が発生した場合、マイクロコンピュータ内部でクロックの異常を監視しているクロック監視回路が、内蔵ＲＣ発振回路の発振信号に動作クロックを切り替える。これにより、マイクロコンピュータがその動作を維持することが可能になる。
【０００３】
実際の半導体装置においては、層間膜厚、配線厚、配線幅等に製造ばらつきが生じ、これにより、ＲＣ発振回路のＲの抵抗値及びＣの容量値が変動してしまう。例えば製造時期により製造工程の条件等が若干異なってしまうので、半導体装置が製造された時期によって、ＲＣ発振回路の発振周波数が異なる等の不都合が生じる。このような半導体装置において、内部ＲＣ発振回路の発振信号をクロックとして使用すると、動作速度がばらついてしまい、正常な動作を保障することができない。またそのような精度の低いＲＣ発振回路では、用途が極めて限られてしまう。
【０００４】
上記のような問題を解決するために、半導体装置を製造後に内蔵ＲＣ発振回路の発振周波数を測定し、この測定値に基づいて、所定の周波数を得るようにＲＣ発振回路の抵抗値等に補正をかける方法がある。具体的には、ヒューズ回路を用意しておき、ヒューズを切断するか又はそのまま残すかの選択により、ＲＣ発振回路に接続される抵抗の大きさを調整する。
【０００５】
また別の解決方法としては、半導体装置を製造後に内蔵ＲＣ発振回路の発振周波数を測定し、この測定値を内蔵不揮発性ＲＯＭに記録しておき、システムのソフト開発段階において、記録された周波数測定値に応じてソフト的にばらつきを吸収する等の方法がある。これにより、ＲＣ発振回路の発振周波数のばらつきの影響を低減することができる。
【０００６】
上記のようなヒューズ回路を使用した補正方法では、ヒューズ回路により回路サイズが増加するとともに、周波数測定工程及びヒューズ工程が余計に必要となり、半導体装置の製造コストが増加してしまう。また不揮発性ＲＯＭを用いる方法においても、周波数測定工程、更には不揮発性ＲＯＭ用の製造プロセス及び試験が余計に必要となり、半導体装置の製造コストが増加してしまう。
【０００７】
またＲＣ発振回路の発振周波数は温度等の変化によっても変動するが、上記の方法では、このような半導体装置の動作時の変動要因には対応できないという問題がある。これを解決する方法として、特許文献１に記載の発明は、外部（例えばメインマイコン）からアクセスされる通信の間隔を、自己（サブマイコン）のＲＣ発振回路からの動作クロックで計測する。そして、この計測結果から自己のクロックの誤差を検出し、これに基づいて自己のクロックを補正する。これにより、安価なＲＣ発振回路を利用しながらも、確実な通信が可能なマイクロコンピュータを提供することを可能としている。
【０００８】
しかしこの特許文献１の方式では、ＲＣ発振回路を内蔵した半導体装置（サブマイコン）に、その外部から特定の信号を供給することが必要となる。従って、ＲＣ発振回路を内蔵した半導体装置に対して通信相手の装置が必要となるとともに、ＲＣ発振回路を内蔵した半導体装置は通信機能を有したものであることが要求される。
【特許文献１】特開平１０−２４７１２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
以上を鑑みて、本発明は、半導体装置の動作時の発振周波数の変動要因に対応できるとともに、特定の通信機能や通信相手を必要とすることなく、ＲＣ発振回路の発振周波数の補正が可能な半導体装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明による半導体装置は、第１の周期で発振する第１の発振信号を出力するＲＣ発振器と、該ＲＣ発振器の出力に結合され該第１の発振信号の該第１の周期の長さを第２の周期を有する第２の発振信号に基づき計測し、その計測値を出力する計測回路と、該計測回路の出力と該ＲＣ発振器の出力とに結合され該計測値に応じた数で該第１の発振信号を分周する補正回路を含むことを特徴とする。
【発明の効果】
【００１１】
本発明の少なくとも１つの実施例によれば、ＲＣ発振回路の発振信号の第１の周期を水晶発振器の発振信号の第２の周期に基づいて計測した計測値を求め、更に所望の周期が第１の周期の何周期分に相当するのかを、上記計測値に基づいて算出する。この算出した値に基づいて、ＲＣ発振回路の発振信号を分周することにより、所望の周期を有する信号を生成する。従って、安定した高精度の水晶発振器の発振信号を基準として、ばらつきや変動があるＲＣ発振回路の発振信号を補正することで、ＲＣ発振回路の発振信号を用いながらも所望の周期を高い精度で実現することができる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１３】
図１は、本発明による半導体装置の構成の一例を示す図である。
【００１４】
図１の半導体装置は、ＣＰＵ１０、ＲＣ発振回路１１、水晶発振器１２、カウンタ１３、エッジ検出回路１４、リロードレジスタ１５、及びダウンカウンタ１６を含む。ＲＣ発振回路１１は、半導体装置内部に設けられる抵抗Ｒ及び容量Ｃに応じた発振周波数で発振する。前述のように半導体装置においては層間膜厚、配線厚、配線幅等に製造ばらつきが生じ、これにより、ＲＣ発振回路のＲの抵抗値及びＣの容量値が変動してしまう。従って例えば半導体装置が製造された製造時期等によって、ＲＣ発振回路の発振周波数が異なってしまう。また温度変化等によっても発振周波数が異なってしまう。
【００１５】
水晶発振器１２は、外付けの水晶振動子２０の共鳴効果を利用して、高精度の発振周波数で発振する。ＲＣ発振回路と比較して通常１０００倍以上の精度を有し、温度に対する周波数依存も小さい。なお図１の例では、水晶振動子及び水晶発振器１２を用いる構成としたが、それ程の精度が必要でないのであれば、用途に応じて例えばセラミック発振器等を用いてもよい。
【００１６】
本発明においては、水晶発振器１２の高精度の発振周波数によりＲＣ発振回路１１の低精度の発振周波数を測定し、その測定値に基づいてＲＣ発振回路１１の発振周波数を補正する。ＣＰＵ１０は、この発振周波数測定及び補正動作を制御する制御回路として機能する。なおここで、水晶発振器１２の高精度の発振周波数は、ＲＣ発振回路１１の低精度の発振周波数よりも高い周波数である状態を想定している。
【００１７】
まずＣＰＵ１０が、エッジ検出回路１４に検出許可信号を供給する。この検出許可信号に応答して、水晶発振器１２の高精度の発振周波数によるＲＣ発振回路１１の低精度の発振周波数の測定が開始される。検出許可信号の供給後、エッジ検出回路１４は、ＲＣ発振回路１１の発振信号の立ち上がりエッジを検出すると、それに応答してカウンタ起動信号を生成する。カウンタ起動信号は、カウンタ１３に供給される。カウンタ１３は、エッジ検出回路１４からカウンタ起動信号が供給されると、水晶発振器１２から供給される発振信号のパルス数のカウントを開始する。
【００１８】
その後エッジ検出回路１４は、ＲＣ発振回路１１の発振信号の立ち上がりエッジを検出すると、それに応答してカウンタ停止信号を生成する。カウンタ停止信号は、カウンタ１３に供給される。なおカウンタ起動信号及びカウンタ停止信号は、１つの信号のアサート状態及びネゲート状態により、起動指示と停止指示を示すものとしてよい。カウンタ１３は、エッジ検出回路１４からカウンタ停止信号が供給されると、水晶発振器１２から供給される発振信号のパルス数のカウントを停止する。
【００１９】
エッジ検出回路１４が出力するカウント停止信号はＣＰＵ１０にも供給されており、このカウント停止信号に応答して、ＣＰＵ１０はカウンタ１３の出力するカウント値を読み込む。このカウント値は、ＲＣ発振回路１１の発振信号のある立ち上がりから次の立ち上がりまでの期間、即ちＲＣ発振回路１１の発振信号の１周期の期間にカウントされた水晶発振器１２の発振信号パルス数である。従ってこのカウント値は、ＲＣ発振回路１１の発振信号の周期が、水晶発振器１２の発振信号の周期の何倍であるかを示すことになる。
【００２０】
ＣＰＵ１０は、読み込んだカウント値に基づいて、所望の周期を計時するのに必要なＲＣ発振回路１１の発振信号のサイクル数を算定し、求めた値をリロードレジスタ１５に格納する。ダウンカウンタ１６は、リロードレジスタ１５の格納値を初期値として読み取り、ＲＣ発振回路１１の発振信号をクロックとしてカウントダウン動作を行なう。カウント値がゼロになると、ダウンカウンタ１６はその出力を反転する（ＨＩＧＨからＬＯＷ又はＬＯＷからＨＩＧＨに切り替える）。ダウンカウンタ１６は更に、カウント値がゼロになった時点で再度リロードレジスタ１５の格納値を初期値として読み取り、ＲＣ発振回路１１の発振信号をクロックとしてカウントダウン動作を行なう。カウント値がゼロになると、ダウンカウンタ１６はその出力を反転する（ＨＩＧＨからＬＯＷ又はＬＯＷからＨＩＧＨに切り替える）。
【００２１】
このようにしてダウンカウンタ１６はトグル動作を実行する。従って、リロードレジスタ１５の格納値に等しい数だけＲＣ発振回路１１の発振周期を定数倍した周期で、ダウンカウンタ１６の出力はＨＩＧＨとＬＯＷとを繰り返すことになる。即ち、リロードレジスタ１５の格納値に等しい数でＲＣ発振回路１１の発振信号を分周した信号が得られる。結果として、上記所望の周期のクロック信号が、ＲＣ発振回路１１の発信信号に基づいて得られることになる。
【００２２】
このようにして得られたクロック信号は、例えばクロック出力として外部に供給したり、サブクロックとしてＣＰＵに供給したり、時計用クロックとして使用したり、その他のタイマ動作に使用したりすることができる。
【００２３】
ここでｔＲＣをＲＣ発振回路１１の発振周期、ｔＯＳＣを水晶発振器１２の発振周期、Ｔを実現したい所望の周期、αを上記のようにしてカウントしたカウンタ１３のカウント値であるとする。このときリロードレジスタ１５の格納値βは、
β＝Ｔ／ｔＲＣ＝Ｔ／（α×ｔＯＳＣ）                                  （１）
で表される。即ちＣＰＵ１０は、このβを、カウント値αと水晶発振器１２の発振周期ｔＯＳＣとに基づいて求めることになる。例えばｔＯＳＣが２５０ｎｓであり、カウント値αが４１であったとする。このとき１００ｍｓの所望の周期を実現するためには、
β＝１００×１０−３／（４１×２５０×１０−９）
＝９７５６
であるので、リロードレジスタ１５の格納値を９７５６とすればよい。これにより、ＲＣ発振回路１１の発振信号の９７５６サイクル分だけ時間が経過した時点で、ダウンカウンタ１６の出力がトグルすることになる。即ち、１００ｍｓの所望の周期で、ダウンカウンタ１６の出力がＨＩＧＨからＬＯＷ又はＬＯＷからＨＩＧＨに切り替わる。
【００２４】
このように本発明の上記実施例においては、ＲＣ発振回路１１の発振信号の第１の周期を水晶発振器１２の発振信号の第２の周期に基づいて計測し、更に所望の周期が第１の周期の何周期分に相当するのかを、該計測値に基づいて算出する。この算出した値に基づいて、所望の周期を有する信号をＲＣ発振回路１１の発振信号を用いて生成する。従って、安定した高精度の水晶発振器１２の発振信号を基準として、ばらつきや変動があるＲＣ発振回路１１の発振信号を補正することで、ＲＣ発振回路１１の発振信号を用いながらも所望の周期を高い精度で実現することができる。
【００２５】
図２は、図１の回路の動作を説明するための信号タイミング図である。図２（ａ）はＲＣ発振回路１１の発振信号の周期の測定処理を示し、図２（ｂ）は、ＲＣ発振回路１１の発振信号に基づいて所望の周期を計時する処理を示す。
【００２６】
図２（ａ）に示されるように、ＲＣ発振回路１１のＲＣ発振は水晶発振器１２（外部水晶振動子２０）による外部発振に比較して、長い周期の信号である。ＣＰＵ１０からのエッジ検出許可信号がアサート状態（ＨＩＧＨ）になると、その直後のＲＣ発振の立ち上がりエッジに応答して、エッジ検出回路１４がカウント許可信号（図１のカウンタ起動／停止信号）をアサート状態（ＨＩＧＨ）にする。これに応答して、カウンタ１３は外部発振のパルスのカウントを開始する。図２（ａ）において、カウントはゼロから始まり、外部発振に同期して１つずつカウントが増加している。
【００２７】
次のＲＣ発振の立ち上がりエッジに応答して、エッジ検出回路１４がカウント許可信号（図１のカウンタ起動／停止信号）をネゲート状態（ＬＯＷ）にする。これに応答して、カウンタ１３は外部発振のパルスのカウントを停止する。図２（ａ）において、カウントは２２で停止している。
【００２８】
図２（ｂ）は、所望の周期が外部発振の１７６周期分に相当する場合、即ちＴ＝１７６ｔＯＳＣの場合を示す図である。ＣＰＵ１０は、この所望の周期（Ｔ＝１７６ｔＯＳＣ）とカウント２２のカウント（α＝２２）とに基づいて、前述の式（１）を計算することによりβ＝８を得る。このβに基づいて、ＣＰＵ１０は、リロードレジスタ１５に値７を格納する。
【００２９】
ダウンカウンタ１６は、リロードレジスタ１５の格納値７を初期値として、ＲＣ発振のパルスに同期してカウントを１つずつ減らしていく。カウントがゼロになると、ダウンカウンタ１６はその出力（クロック出力）を反転する。これにより、クロック出力は所望の周期（Ｔ＝１７６ｔＯＳＣ）で反転動作を繰り返す信号となる。
【００３０】
なお図２（ｂ）の例において、８ではなく７をリロードレジスタ１５に格納することとしたのは、ダウンカウンタ１６がカウントゼロになった次のサイクルで出力を反転するような構成であるからである。例えば、ダウンカウンタ１６がカウントゼロになった瞬間に出力を反転するような構成であるならば、βの値８をそのままリロードレジスタ１５に格納すればよく、これは単に設計事項の問題に過ぎない。
【００３１】
図１の構成では、ＣＰＵ１０に基づく計算により、リロードレジスタ１５に格納する補正用の値を算出している。このようにソフトウェアに基づいた制御動作により、補正値を計算するのではなく、ハードウェア的に制御動作を実行して補正値をリロードレジスタ１５に格納するように構成することも可能である。
【００３２】
図３は、ハードウェア的に補正動作を実行する本発明による半導体装置の構成の一例を示す図である。図３において、図１と同一の構成要素は同一の番号で参照する。
【００３３】
図３の半導体装置は、図１に示すＲＣ発振回路１１、水晶発振器１２、カウンタ１３、エッジ検出回路１４、リロードレジスタ１５、及びダウンカウンタ１６に加えて、ＬＵＴ（Look-Up Table）３０、パワーオン検出回路３１、ＣＰＵ３２、及び分周器３３を含む。
【００３４】
まず半導体装置の電源が投入されると、パワーオン検出回路３１が電源投入を検出し、検出許可信号をアサートする。なおこの検出許可信号は、電源投入検出後、水晶発振器１２の発振動作が安定する時間だけ待ってからアサートするようにする。
【００３５】
この検出許可信号に応答して、水晶発振器１２の高精度の発振周波数によるＲＣ発振回路１１の低精度の発振周波数の測定が開始される。検出許可信号の供給後、エッジ検出回路１４は、ＲＣ発振回路１１の発振信号の立ち上がりエッジを検出すると、それに応答してカウンタ起動信号を生成する。カウンタ起動信号は、カウンタ１３に供給される。カウンタ１３は、エッジ検出回路１４からカウンタ起動信号が供給されると、水晶発振器１２から供給される発振信号のパルス数のカウントを開始する。
【００３６】
その後エッジ検出回路１４は、ＲＣ発振回路１１の発振信号の立ち上がりエッジを検出すると、それに応答してカウンタ停止信号を生成する。カウンタ停止信号は、カウンタ１３に供給される。なおカウンタ起動信号及びカウンタ停止信号は、１つの信号のアサート状態及びネゲート状態により、起動指示と停止指示を示すものとしてよい。カウンタ１３は、エッジ検出回路１４からカウンタ停止信号が供給されると、水晶発振器１２から供給される発振信号のパルス数のカウントを停止する。
【００３７】
エッジ検出回路１４が出力するカウント停止信号はＬＵＴ３０にも供給されている。このカウント停止信号に応答して、ＬＵＴ３０は、カウンタ１３からのカウント値に対応するテーブルエントリの値をリロードレジスタ１５に出力する。ＬＵＴ３０は、式（１）の計算値βを、テーブル形式のデータとして保持し、入力に応じたβを出力するメモリである。
【００３８】
例えば所望の周期Ｔ及び水晶発振器１２の周期ｔＯＳＣが固定であれば、リロードレジスタ１５へ出力すべき値はカウント値αのみの関数となる。従ってこの場合、ＬＵＴ３０は、カウント値αを変数とする一次元の配列であるテーブルを保持し、カウント値αに対応する値を取り出して出力することになる。また更に所望の周期についても設定可能な値である構成として、ＬＵＴ３０に所望の周期を示す信号を入力し、所望の周期Ｔ及びカウント値αを変数とする関数である二次元配列を保持しておき、対応する関数値を読み出すように構成してもよい。また同様にして、周期ｔＯＳＣについても設定可能な値としてもよい。
【００３９】
ダウンカウンタ１６は、リロードレジスタ１５の格納値を初期値として読み取り、ＲＣ発振回路１１の発振信号をクロックとしてカウントダウン動作を行なう。カウント値がゼロになると、ダウンカウンタ１６はその出力を反転する。ダウンカウンタ１６は更に、カウント値がゼロになった時点で再度リロードレジスタ１５の格納値を初期値として読み取り、ＲＣ発振回路１１の発振信号をクロックとしてカウントダウン動作を行なう。カウント値がゼロになると、ダウンカウンタ１６はその出力を反転する。
【００４０】
このようにしてダウンカウンタ１６はトグル動作を実行する。従って、リロードレジスタ１５の格納値に等しい数だけＲＣ発振回路１１の発振周期を定数倍した周期で、ダウンカウンタ１６の出力は反転することになる。即ち、リロードレジスタ１５の格納値に等しい数でＲＣ発振回路１１の発振信号を分周した信号が得られる。結果として、所望の周期を有するクロック信号が、ＲＣ発振回路１１の発信信号に基づいて得られることになる。
【００４１】
このようにして得られたクロック信号は、分周器３３に供給される。分周器３３は、ＣＰＵ３２からの設定に基づいた分周率で、ダウンカウンタ１６から供給される信号を分周する。分周して得られた信号は、例えばクロック出力として外部に供給したり、サブクロックとしてＣＰＵに供給したり、時計用クロックとして使用したり、その他のタイマ動作（ウォッチドッグタイマ動作等）に使用したりすることができる。なお上記分周器３３はＲＣ発振回路１１の発振信号の補正動作に必須の構成要件ではなく、補正回路（リロードレジスタ１５及びダウンカウンタ１６）が生成した周期に限られること無く、自由に分周率を設定して種々の周期の信号を生成可能であることを示すものである。
【００４２】
このように本発明の上記実施例においては、半導体装置が電源投入されると、ＲＣ発振回路１１の発振信号の第１の周期を水晶発振器１２の発振信号の第２の周期に基づいて計測し、更に所望の周期が第１の周期の何周期分に相当するのかを示す値を、該計測値に基づいてＬＵＴから読み出す。この読み出した値に基づいて、所望の周期を有する信号をＲＣ発振回路１１の発振信号を用いて生成する。従って、安定した高精度の水晶発振器１２の発振信号を基準として、ばらつきや変動があるＲＣ発振回路１１の発振信号を補正することで、ＲＣ発振回路１１の発振信号を用いながらも所望の周期を高い精度で実現することができる。
【００４３】
図４は、図３の回路の動作を説明するための信号タイミング図である。図４（ａ）はＲＣ発振回路１１の発振信号の周期の測定処理を示し、図４（ｂ）は、ＲＣ発振回路１１の発振信号に基づいて所望の周期を計時する処理を示す。
【００４４】
図４（ａ）において、水晶発振器１２（外部水晶振動子２０）による外部発振及びＲＣ発振回路１１によるＲＣ発振は、図面左端近くにおいて信号波形が示されていない。これは電源投入直後に対応し、発振器の発振周波数が安定していない状態を示すものである。
【００４５】
パワーオン検出回路３１からのエッジ検出許可信号がアサート状態（ＨＩＧＨ）になると、その直後のＲＣ発振の立ち上がりエッジに応答して、エッジ検出回路１４がカウント許可信号（図３のカウンタ起動／停止信号）をアサート状態（ＨＩＧＨ）にする。これに応答して、カウンタ１３は外部発振のパルスのカウントを開始する。図４（ａ）において、カウントはゼロから始まり、外部発振に同期して１つずつカウントが増加している。
【００４６】
次のＲＣ発振の立ち上がりエッジに応答して、エッジ検出回路１４がカウント許可信号（図１のカウンタ起動／停止信号）をネゲート状態（ＬＯＷ）にする。これに応答して、カウンタ１３は外部発振のパルスのカウントを停止する。図４（ａ）において、カウントは２２で停止している。
【００４７】
図４（ｂ）は、所望の周期が外部発振の１７６周期分に相当する場合、即ちＴ＝１７６ｔＯＳＣの場合を示す図である。ＬＵＴ３０は、所望の周期がＴ＝１７６ｔＯＳＣである場合について、各カウント値に応じたβの値をテーブル形式で保持している。ＬＵＴ３０は、カウント２２のカウント値（α＝２２）に基づいて、テーブル格納値であるβ＝７を読み出して出力する。これはカウント許可信号のネゲート状態（ＬＯＷ）への変化に応答して、その時のカウント値（α＝２２）に応じたテーブルエントリを出力することにより実行される。ＬＵＴ３０から出力されるβ＝７は、リロードレジスタ１５に格納される。
【００４８】
ダウンカウンタ１６は、リロードレジスタ１５の格納値７を初期値として、ＲＣ発振のパルスに同期してカウントを１つずつ減らしていく。カウントがゼロになると、ダウンカウンタ１６はその出力（クロック出力）を反転する。これにより、クロック出力は所望の周期（Ｔ＝１７６ｔＯＳＣ）で反転動作を繰り返す信号となる。
【００４９】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００５０】
【図１】本発明による半導体装置の構成の一例を示す図である。
【図２】図１の回路の動作を説明するための信号タイミング図である。
【図３】ハードウェア的に補正動作を実行する本発明による半導体装置の構成の一例を示す図である。
【図４】図３の回路の動作を説明するための信号タイミング図である。
【符号の説明】
【００５１】
１０  ＣＰＵ
１１  ＲＣ発振回路
１２  水晶発振器
１３  カウンタ
１４  エッジ検出回路
１５  リロードレジスタ
１６  ダウンカウンタ
【図１】
2006229607.tif 000003
【図２】
2006229607.tif 000004
【図３】
2006229607.tif 000005
【図４】
2006229607.tif 000006