(57)【要約】【課題】温度変動によるクロック信号の周波数の制御精度の悪化を抑制する。【解決手段】ノイズ検出回路１１ａは、信号が伝搬されるときに第１の遅延時間の伝搬遅延が生じる遅延回路１１ａ１と、信号が伝搬されるときに第２の遅延時間の伝搬遅延が生じる遅延回路１１ａ２とを含み、第１の遅延時間と第２の遅延時間との和に基づいて、遅延回路１１ａ１，１１ａ２に印加される電源電圧ＶＤＤのノイズの大きさを示す検出結果を出力し、制御部１１ｂは、その検出結果に基づいて、電源電圧ＶＤＤが印加される回路部１３に供給されるクロック信号ＣＬＫの周波数を制御するとともに、温度による第１の遅延時間の変化に対して第２の遅延時間が逆の変化をするように第２の遅延時間を制御する。【選択図】図１
2020101891.tif 000002
【特許請求の範囲】
【請求項１】
信号が伝搬されるときに第１の遅延時間の伝搬遅延が生じる第１の遅延回路と、前記信号が伝搬されるときに第２の遅延時間の伝搬遅延が生じる第２の遅延回路とを含み、前記第１の遅延時間と前記第２の遅延時間との和に基づいて、前記第１の遅延回路と前記第２の遅延回路に印加される電源電圧のノイズの大きさを示す検出結果を出力するノイズ検出回路と、
前記検出結果に基づいて、前記電源電圧が印加される回路部に供給されるクロック信号の周波数を制御するとともに、温度による前記第１の遅延時間の変化に対して前記第２の遅延時間が逆の変化をするように前記第２の遅延時間を制御する制御部と、
を有する制御回路。
【請求項２】
前記第２の遅延時間を制御する制御値と温度との対応関係を示す対応関係情報を記憶する記憶部をさらに有し、
前記制御部は、温度検出器から温度を取得し、取得した温度に対応した前記制御値を前記記憶部から読み出し、読み出した前記制御値により前記第２の遅延時間を制御する、
請求項１に記載の制御回路。
【請求項３】
前記制御値は、前記電源電圧が所定の閾値のときに、複数の温度における前記第１の遅延時間と前記第２の遅延時間の和が同じ値になるように調整されており、
前記制御部は、前記検出結果に基づいて、前記電源電圧が前記閾値以下であると判定したときに、前記周波数を低下させる、
請求項２に記載の制御回路。
【請求項４】
前記第１の遅延時間は、前記回路部におけるクリティカルパスと同一の遅延時間である、請求項１乃至３の何れか一項に記載の制御回路。
【請求項５】
前記第２の遅延回路は、直列に接続された複数のインバータと、前記制御部から供給される第１の制御信号に基づいて、前記複数のインバータの何れかの駆動能力を調整する回路、または、前記制御部から供給される第２の制御信号に基づいて、前記複数のインバータの何れかの負荷を調整する回路を有する、請求項１乃至４の何れか一項に記載の制御回路。
【請求項６】
信号が伝搬されるときに第１の遅延時間の伝搬遅延が生じる第１の遅延回路と、前記信号が伝搬されるときに第２の遅延時間の伝搬遅延が生じる第２の遅延回路とを含むノイズ検出回路が、前記第１の遅延時間と前記第２の遅延時間との和に基づいて、前記第１の遅延回路と前記第２の遅延回路に印加される電源電圧のノイズの大きさを示す検出結果を出力し、
制御部が、前記検出結果に基づいて、前記電源電圧が印加される回路部に供給されるクロック信号の周波数を制御するとともに、温度による前記第１の遅延時間の変化に対して前記第２の遅延時間が逆の変化をするように前記第２の遅延時間を制御する、
制御方法。
【請求項７】
信号が伝搬されるときに第１の遅延時間の伝搬遅延が生じる第１の遅延回路と、前記信号が伝搬されるときに第２の遅延時間の伝搬遅延が生じる第２の遅延回路とを含むノイズ検出回路に、前記第１の遅延時間と前記第２の遅延時間との和に基づいて、前記第１の遅延回路と前記第２の遅延回路に印加される電源電圧のノイズの大きさを示す検出結果を出力させ、
制御部に、前記検出結果に基づいて、前記電源電圧が印加される回路部に供給されるクロック信号の周波数を制御するとともに、温度による前記第１の遅延時間の変化に対して前記第２の遅延時間が逆の変化をするように前記第２の遅延時間を制御させる、
制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御回路、制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integrated circuit）などの半導体集積回路において、計算負荷や、半導体集積回路に含まれる複数の回路のうち動作する回路数が大きく変化するとき、電源ノイズ（同時スイッチングノイズと呼ばれる場合もある）が発生する場合がある。電源ノイズが発生した場合、電源電圧の低下によって、半導体集積回路内の回路に十分な電圧が供給されずに半導体集積回路内を伝搬する信号の伝搬遅延時間（以下単に遅延時間という）が増加してしまいタイミングエラーを引き起こす可能性がある。
【０００３】
従来、電源ノイズに起因するタイミングエラーの発生を回避するために用いられるＡＣＣ（Adaptive Clocking Control）回路があった（たとえば、特許文献１参照）。ＡＣＣ回路は、電源ノイズモニタを用いて電源電圧の低下を監視し、電源電圧が所定の閾値以下になった場合に、半導体集積回路内の回路に供給するクロック信号の周波数を低下させることでタイミングエラーの発生を回避する。ＡＣＣ回路を用いない場合、半導体集積回路の内部で発生する電源ノイズが最大となるときのタイミングエラーを考慮してクロック周波数の決定が行われるが、ＡＣＣ回路を用いる場合には、このような決定を行わなくてよくなる。
【０００４】
ＡＣＣ回路において用いられる電源ノイズモニタとして、電源ノイズによる信号の遅延時間の変化を利用したものがある。そのような電源ノイズモニタの１つに、たとえば、ＣＰＭ（Critical Path Monitor）がある。ＣＰＭは、たとえば、半導体集積回路内の、最も遅延時間が大きくなるパス（クリティカルパス）と同一の遅延時間をもつ遅延回路を有している。そして、ＣＰＭは、その遅延回路における電源電圧の低下による遅延時間の増加により、信号の伝搬先のフリップフロップにおけるセットアップマージンが減少することを利用して、電源ノイズの大きさを表す値を出力する。
【０００５】
なお、従来、温度依存性をもつ発振器が出力するクロック信号の周波数を、温度に応じて補正する技術があった（たとえば、特許文献２参照）。また、従来、温度と電源電圧に対するゲート遅延時間の変化特性の測定結果を予めテーブル化しておき、そのテーブルとデバイス温度とに基づいて電源電圧を変化させることで、ゲート遅延時間を一定にする技術があった（たとえば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−１７６７１号公報
【特許文献２】特開２００７−３１２１９４号公報
【特許文献３】特開平８−２６５１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
電源ノイズによる遅延時間の変化を利用した電源ノイズモニタでは、温度によっても遅延時間が変化してしまう。そのため、このような電源ノイズモニタを用いてクロック信号の周波数の制御を行う場合、遅延時間の温度依存性によりクロック信号の周波数の制御精度が悪化する問題があった。
【０００８】
１つの側面では、本発明は、温度変動によるクロック信号の周波数の制御精度の悪化を抑制できる制御回路、制御方法及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの実施態様では、信号が伝搬されるときに第１の遅延時間の伝搬遅延が生じる第１の遅延回路と、前記信号が伝搬されるときに第２の遅延時間の伝搬遅延が生じる第２の遅延回路とを含み、前記第１の遅延時間と前記第２の遅延時間との和に基づいて、前記第１の遅延回路と前記第２の遅延回路に印加される電源電圧のノイズの大きさを示す検出結果を出力するノイズ検出回路と、前記検出結果に基づいて、前記電源電圧が印加される回路部に供給されるクロック信号の周波数を制御するとともに、温度による前記第１の遅延時間の変化に対して前記第２の遅延時間が逆の変化をするように前記第２の遅延時間を制御する制御部と、を有する制御回路が提供される。
【００１０】
また、１つの実施態様では制御方法が提供される。また１つの実施態様では制御プログラムが提供される。
【発明の効果】
【００１１】
１つの側面では、温度変動によるクロック信号の周波数の制御精度の悪化を抑制できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の制御回路を含む半導体集積回路の一例を示す図である。
【図２】第１の実施の形態のＡＣＣ回路によるクロック信号の周波数の制御方法の一例の流れを示すフローチャートである。
【図３】ＡＣＣ回路によるクロック信号の周波数の制御の一例の様子を示す波形図である。
【図４】第１の実施の形態のＡＣＣ回路におけるノイズ検出回路の遅延時間の制御方法の一例を示すフローチャートである。
【図５】第２の実施の形態のＡＣＣ回路の一例を示す図である。
【図６】温度補正コードテーブルの一例を示す図である。
【図７】温度補正用遅延回路の一例を示す図である。
【図８】ＣＰＭ回路の遅延時間の温度依存性がキャンセルされる例を示す図である。
【図９】温度補正コードの算出処理の一例の流れを示すフローチャートである。
【図１０】算出された温度補正コードを用いたときのＣＰＭ回路の遅延時間の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の制御回路を含む半導体集積回路の一例を示す図である。
【００１４】
半導体集積回路１０は、第１の実施の形態の制御回路１１（以下ＡＣＣ回路１１という）、クロック生成回路１２、回路部１３、温度検出器１４を有する。
ＡＣＣ回路１１は、ノイズ検出回路１１ａ、制御部１１ｂ、記憶部１１ｃを有する。
【００１５】
ノイズ検出回路１１ａは、電源電圧ＶＤＤが印加される遅延回路１１ａ１，１１ａ２を有する。遅延回路１１ａ１，１１ａ２は、信号（図１の例ではクロック信号ＣＬＫ）が伝搬されるときに遅延時間を生じさせる。その遅延時間は、電源電圧ＶＤＤのノイズ（電源ノイズ）の大きさによって変化する。電源ノイズが大きいほど（電源電圧ＶＤＤの低下量が大きいほど）、遅延時間が長くなる。遅延回路１１ａ１は、たとえば、直列に接続された複数のインバータ（またはバッファ）、または、半導体集積回路１０においてクリティカルパスと判定されたパスのレプリカ（またはそのパスと同じ遅延時間をもつ回路）である。遅延回路１１ａ２の遅延時間は、制御部１１ｂによって制御される。
【００１６】
ノイズ検出回路１１ａは、遅延回路１１ａ１，１１ａ２のそれぞれの遅延時間の和に基づいて、電源ノイズの大きさを示す検出結果を出力する。
図１の例では、ノイズ検出回路１１ａは、検出結果出力部１１ａ３を有する。検出結果出力部１１ａ３は、クロック信号ＣＬＫと、上記遅延時間の和で表される時間、遅延されたクロック信号ＣＬＫである信号ＤＡＴとを受け、クロック信号ＣＬＫと信号ＤＡＴとの遅延時間の差に応じて、電源ノイズの大きさを示す検出結果を出力する。
【００１７】
制御部１１ｂは、ノイズ検出回路１１ａが出力する検出結果に基づいて、電源電圧ＶＤＤが印加される回路部１３に供給されるクロック信号ＣＬＫの周波数を制御する。制御部１１ｂは、検出結果に基づいた制御信号をクロック生成回路１２に送信することで、クロック信号ＣＬＫの周波数を制御する。
【００１８】
たとえば、制御部１１ｂは、検出結果に基づいて、電源電圧ＶＤＤが降下してある閾値に達したか否かを判定する。そして、制御部１１ｂは、電源電圧ＶＤＤが閾値に達したと判定したときに、クロック生成回路１２に、クロック信号ＣＬＫの周波数の低下を開始させる。閾値は、クロック信号ＣＬＫの周波数が所定の値に低下するまでの遅延時間を考慮して、回路部１３においてタイミングエラーが生じない下限の電圧よりも所定電圧分、高く設定される。上記の下限の電圧と閾値との差はガードバンドと呼ばれる。
【００１９】
なお、たとえば、半導体集積回路１０の出荷試験時において、回路部１３において発生する電源ノイズに起因する回路遅延に基づいて、タイミングエラーを発生させないクロック信号ＣＬＫの周波数が予め決定される。ＡＣＣ回路１１は、ＡＣＣの発動（クロック信号ＣＬＫの周波数の低下）を行う際、たとえば、予め決定されたその周波数にクロック信号ＣＬＫの周波数を下げる。
【００２０】
さらに制御部１１ｂは、温度による遅延回路１１ａ１の遅延時間の変化に対して、遅延回路１１ａ２の遅延時間が逆の変化をするように、遅延回路１１ａ２の遅延時間を制御する。たとえば、図１に示すように、遅延回路１１ａ１の遅延時間が温度の上昇とともに長くなる場合、制御部１１ｂは、遅延回路１１ａ２の遅延時間を温度の上昇とともに短くさせる。
【００２１】
たとえば、記憶部１１ｃには、遅延回路１１ａ２の遅延時間を制御するための制御値（以下温度補正コードという）と温度との対応関係を示す対応関係情報（以下温度補正コードテーブルという）が予め記憶されている。各温度補正コードは、たとえば、電源電圧ＶＤＤが上記の閾値であるときの各温度における遅延回路１１ａ１，１１ａ２の遅延時間の和が一定値（タイミングエラーが発生すると判定される遅延時間の和よりも小さい）になるように調整されている。
【００２２】
制御部１１ｂは、温度検出器１４から温度を取得し、取得した温度に対応した温度補正コードを記憶部１１ｃから読み出し、読み出した温度補正コードにより遅延回路１１ａ２の遅延時間を制御する。制御部１１ｂは、たとえば、所定時間ごとに温度検出器１４に、温度を表す温度情報の送信を要求し、所定時間ごとに温度情報を受信する。また、制御部１１ｂは、温度検出器１４で検出されている温度を常時監視していてもよい。そして、制御部１１ｂは、監視した温度が温度補正コードテーブルの温度と一致した場合に、その温度に対応する温度補正コードを記憶部１１ｃから読み出してもよい。
【００２３】
なお、温度補正コードテーブルは、たとえば、半導体集積回路１０の設計時または、半導体集積回路１０の評価用のチップを用いた評価時に生成され、記憶部１１ｃに書き込まれる。
【００２４】
制御部１１ｂは、特定用途の電子回路（ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）など）、プロセッサ、などのハードウェアにて実現される。また、制御部１１ｂはこれらの組み合わせによって実現されてもよい。
【００２５】
記憶部１１ｃは、温度補正コードテーブルを記憶している。また、記憶部１１ｃは、制御部１１ｂがプロセッサを用いて実現される場合、プロセッサが実行する制御プログラムを記憶していてもよい。記憶部１１ｃは、たとえば、フラッシュメモリなどの不揮発性メモリである。なお、制御プログラムは、ＡＣＣ回路１１の外部のメモリに記憶されていてもよい。
【００２６】
クロック生成回路１２は、クロック信号ＣＬＫを生成するとともに、制御部１１ｂから供給される制御信号に基づいて、クロック信号ＣＬＫの周波数を変える。クロック生成回路１２は、たとえば、ＰＬＬ（Phase Locked Loop）回路やＤＬＬ（Delay Locked Loop）回路などである。以下では、クロック生成回路１２は、ＰＬＬ回路であるものとして説明する。ＰＬＬ回路は、参照クロック信号ＣＬＫＲの周波数の整数倍の周波数をもつクロック信号ＣＬＫを出力する。ＰＬＬ回路に含まれる分周器の分周比を、制御部１１ｂから供給される制御信号に基づいて変えることで、クロック信号ＣＬＫの周波数を変えることができる。
【００２７】
回路部１３は、電源電圧ＶＤＤが印加されるとともに、クロック信号ＣＬＫに同期して動作する。回路部１３は、たとえば、各種演算器などの論理回路、ＲＡＭ（Random Access Memory）などを含む。
【００２８】
温度検出器１４は、温度を検出する。温度検出器１４は、遅延時間が温度の影響を受ける遅延回路１１ａ１，１１ａ２の近傍に配置されている。温度検出器１４は、たとえば、検出した温度をデジタル値の温度情報に変換し、制御部１１ｂに送信する。温度検出器１４は、たとえば、ダイオードなどの温度センサ素子を用いて実現できる。
【００２９】
次に、第１の実施の形態のＡＣＣ回路１１の動作例を説明する。なお、以下では、制御部１１ｂが電源ノイズの大きさを示す検出結果をノイズ検出回路１１ａから受信したときの動作と、制御部１１ｂが温度情報を温度検出器１４から受信したときの動作とを分けて説明する。
【００３０】
図２は、第１の実施の形態のＡＣＣ回路によるクロック信号の周波数の制御方法の一例の流れを示すフローチャートである。
制御部１１ｂは、たとえば、ノイズ検出回路１１ａから電源ノイズの大きさを示す検出結果を受信するたびに、以下の処理を行う。
【００３１】
制御部１１ｂは、検出結果を受信すると（ステップＳ１）、その検出結果に基づいて、電源電圧ＶＤＤが閾値以下であるか否かを判定する（ステップＳ２）。制御部１１ｂは、電源電圧ＶＤＤが閾値以下であると判定した場合、クロック信号ＣＬＫの周波数が低下中であるか否かを判定する（ステップＳ３）。制御部１１ｂは、クロック信号ＣＬＫの周波数が低下中でないと判定した場合、クロック信号ＣＬＫの周波数を所定の周波数に低下させる（ステップＳ４）。
【００３２】
ステップＳ４の処理後、または、ステップＳ３の処理でクロック信号ＣＬＫの周波数が低下中であると判定した場合、制御部１１ｂは、１回の検出結果を受信したときの処理を終える。
【００３３】
制御部１１ｂは、ステップＳ２の処理で、電源電圧ＶＤＤが閾値以下ではないと判定した場合、クロック信号ＣＬＫの周波数が低下中であるか否かを判定する（ステップＳ５）。制御部１１ｂは、クロック信号ＣＬＫの周波数が低下中であると判定した場合、クロック信号ＣＬＫの周波数を回復させる（ステップＳ６）。制御部１１ｂは、クロック信号ＣＬＫの周波数を急激に上昇させるとノイズが発生する可能性があるため、クロック信号ＣＬＫの周波数を、たとえば、段階的に上昇させる。
【００３４】
ステップＳ６の処理後、または、ステップＳ５の処理でクロック信号ＣＬＫの周波数が低下中ではないと判定した場合、制御部１１ｂは、１回の検出結果を受信したときの処理を終える。
【００３５】
図３は、ＡＣＣ回路によるクロック信号の周波数の制御の一例の様子を示す波形図である。
図３には、クロック信号ＣＬＫ、電源電圧ＶＤＤ、クロック信号ＣＬＫの周波数ＦＱの時間変化の例が示されている。
【００３６】
電圧ＶＬＩＭは、たとえば、図１に示した回路部１３において、タイミングエラーが発生しない下限の電源電圧ＶＤＤである。電源電圧ＶＤＤが電圧ＶＬＩＭよりも小さくなると、タイミングエラーが発生する。
【００３７】
閾値ＶＮは、電圧ＶＬＩＭよりも所定の電圧ｇｄ（ガードバンドとも呼ばれる）だけ高くなるように設定されている。
図３の例では、電源電圧ＶＤＤが閾値ＶＮまで降下したときに（タイミングｔ１）、クロック信号ＣＬＫの周波数ＦＱの低下が開始し、所定の周波数ＦＱａまで下がる。電源電圧ＶＤＤが回復していき、閾値ＶＮより大きくなった場合（タイミングｔ２）、クロック信号ＣＬＫの周波数ＦＱは上昇していく。図３の例では、周波数ＦＱは段階的に上昇している。
【００３８】
図４は、第１の実施の形態のＡＣＣ回路におけるノイズ検出回路の遅延時間の制御方法の一例を示すフローチャートである。
制御部１１ｂは、たとえば、温度検出器１４から温度情報を受信するたびに、以下の処理を行う。
【００３９】
制御部１１ｂは、温度検出器１４から温度情報を受信すると（ステップＳ１０）、その温度情報に基づいて温度が変化したか否かを判定する（ステップＳ１１）。たとえば、制御部１１ｂは、温度補正コードテーブルにおいて、現在、遅延回路１１ａ２に適用している温度補正コードに対応した温度とは異なる温度になったときに、温度が変化したと判定する。
【００４０】
制御部１１ｂは、温度が変化したと判定した場合、受信した温度情報により表される温度に対応した温度補正コードを記憶部１１ｃから読み出す（ステップＳ１２）。そして、制御部１１ｂは、読み出した温度補正コードにより、遅延回路１１ａ２の遅延時間を変更させる（ステップＳ１３）。前述のように、制御部１１ｂは、温度による遅延回路１１ａ１の遅延時間の変化に対して、遅延回路１１ａ２の遅延時間が逆の変化をするように遅延回路１１ａ２の遅延時間を制御する。制御部１１ｂは、温度が変化していないと判定した場合、またはステップＳ１３の処理後、１回、温度情報を受信したときの遅延時間の制御処理を終える。
【００４１】
上記のように、制御部１１ｂは、温度による遅延回路１１ａ１の遅延時間の変化に対して、遅延回路１１ａ２の遅延時間が逆の変化をするように、遅延回路１１ａ２の遅延時間を制御することで、ノイズ検出回路１１ａの全体の遅延時間の温度依存が抑制される。
【００４２】
ノイズ検出回路１１ａの全体の遅延時間の温度依存を抑制しない場合、図３に示したような閾値ＶＮが温度によって実質的にばらつく。たとえば、温度上昇により遅延時間が長くなると、実際より大きな電源ノイズが発生したと判定されるためである。
【００４３】
第１の実施の形態のＡＣＣ回路１１では、ノイズ検出回路１１ａの全体の遅延時間の温度依存が抑制されるため、閾値ＶＮの温度によるばらつきも抑制される。これにより、クロック信号ＣＬＫの周波数を制御する制御部１１ｂの制御精度が向上する。
【００４４】
なお、ノイズ検出回路１１ａの全体の遅延時間の温度依存を抑制しない場合、閾値ＶＮの温度によるばらつきを考慮して、閾値ＶＮを高く設定することも考えられる。しかし、その場合、タイミングエラーを発生させない比較的小さな電源ノイズが発生するときにも、ＡＣＣが発動されてしまい、クロック信号ＣＬＫの周波数を低下させる頻度が過剰に高くなってしまう。この場合、回路部１３において演算処理を行う時間が長くなる可能性がある。
【００４５】
第１の実施の形態のＡＣＣ回路１１によれば、閾値ＶＮの温度によるばらつきが抑制されるため、閾値ＶＮを適切に設定でき、クロック信号ＣＬＫの周波数を低下させる頻度が過剰に高くなることを防止できる。
【００４６】
なお、上記の説明ではクロック生成回路１２が制御部１１ｂから供給される制御信号に基づいて、クロック信号ＣＬＫの周波数を変えるものとしたがこれに限定されない。クロック生成回路１２が出力するクロック信号ＣＬＫを制御部１１ｂが受け、その周波数を、制御部１１ｂが変えるようにしてもよい。
【００４７】
また、制御部１１ｂは、クロック信号ＣＬＫの周波数を制御する制御回路と、遅延回路１１ａ２の遅延時間を制御する制御回路とを別々に備えていてもよい。
また、ノイズ検出回路１１ａや温度検出器１４はそれぞれ複数あってもよい。たとえば、回路部１３における複数の位置にノイズ検出回路が配置され、各ノイズ検出回路の近傍に温度検出器が配置されてもよい。その場合、たとえば、制御部１１ｂは、各ノイズ検出回路の遅延回路の遅延時間を、各ノイズ検出回路の近傍に配置された温度検出器が検出した温度に基づいて制御する。また、制御部１１ｂは、複数のノイズ検出回路のそれぞれが出力する検出結果を受け、複数のノイズ検出回路の何れかが出力する検出結果が、電源電圧ＶＤＤの閾値までの降下を示すときに、クロック信号ＣＬＫの周波数の低下を開始させる。
【００４８】
（第２の実施の形態）
図５は、第２の実施の形態のＡＣＣ回路の一例を示す図である。
第２の実施の形態のＡＣＣ回路２０は、ノイズ検出回路の一例であるＣＰＭ回路２１と、制御部２２と、記憶部２３とを有する。
【００４９】
ＣＰＭ回路２１は、ＥｘＯＲ（排他的論理和）回路２１ａ、バッファ２１ｂ、フリップフロップ２１ｃ、インバータ２１ｄ、温度補正用遅延回路２１ｅ、クリティカルパス２１ｆ、インバータ２１ｇ１，２１ｇ２，…，２１ｇｎを有する。さらに、ＣＰＭ回路２１は、フリップフロップ２１ｈ，２１ｉ１，２１ｉ２，２１ｉ３，…，２１ｉｎ、バッファ２１ｊ、インバータ２１ｋ１〜２１ｋｍ、ＥｘＯＲ回路２１ｌ１，２１ｌ２，２１ｌ３，…，２１ｌｎを有する。さらに、ＣＰＭ回路２１は、フリップフロップ２１ｍ１，２１ｍ２，２１ｍ３，…，２１ｍｎ、タイミングマージン判定部２１ｎを有する。
【００５０】
ＥｘＯＲ回路２１ａの一方の入力端子には、制御部２２からイネーブル信号ＥＮが供給され、他方の入力端子には、フリップフロップ２１ｃの出力信号が供給される。ＥｘＯＲ回路２１ａの出力端子は、バッファ２１ｂの入力端子に接続されており、バッファ２１ｂの出力端子は、フリップフロップ２１ｃのデータ入力端子に接続されている。フリップフロップ２１ｃのクロック端子には、クロック信号ＣＬＫが供給され、フリップフロップ２１ｃの出力端子は、インバータ２１ｄの入力端子に接続されている。
【００５１】
インバータ２１ｄの出力端子は、温度補正用遅延回路２１ｅの入力端子に接続され、温度補正用遅延回路２１ｅの出力端子は、クリティカルパス２１ｆの入力端子に接続されている。クリティカルパス２１ｆの出力端子は、直列に複数段接続されたインバータ２１ｇ１，２１ｇ２，…，２１ｇｎのうち、初段のインバータ２１ｇ１の入力端子、及びフリップフロップ２１ｉ１のデータ入力端子に接続されている。
【００５２】
インバータ２１ｇ１〜２１ｇｎのそれぞれの出力端子は、フリップフロップ２１ｉ２〜２１ｉｎの何れかのデータ入力端子に接続されている。フリップフロップ２１ｈ，２１ｉ１〜２１ｉｎのクロック入力端子には、クロック信号ＣＬＫが供給される。フリップフロップ２１ｈの出力信号は、バッファ２１ｊを介して、ＥｘＯＲ回路２１ｌ１〜２１ｌｎのそれぞれの一方の入力端子に接続される。
【００５３】
フリップフロップ２１ｉ１〜２１ｉｎのうち、データ入力端子に、０または偶数個のインバータを介して、クリティカルパス２１ｆの出力信号が供給されるフリップフロップの出力信号は、ＥｘＯＲ回路２１ｌ１〜２１ｌｎの何れかの他方の入力端子に供給される。たとえば、フリップフロップ２１ｉ１の出力信号は、ＥｘＯＲ回路２１ｌ１の他方の入力端子に供給され、フリップフロップ２１ｉ３の出力信号は、ＥｘＯＲ回路２１ｌ３の他方の入力端子に供給される。
【００５４】
一方、フリップフロップ２１ｉ１〜２１ｉｎのうち、データ入力端子に、奇数個のインバータを介して、クリティカルパス２１ｆの出力信号が供給されるフリップフロップの出力信号は、インバータを介して、ＥｘＯＲ回路２１ｌ１〜２１ｌｎの何れかの他方の入力端子に供給される。たとえば、フリップフロップ２１ｉ２の出力信号は、インバータ２１ｋ１を介して、ＥｘＯＲ回路２１ｌ２の他方の入力端子に供給され、フリップフロップ２１ｉｎの出力信号は、インバータ２１ｋｍを介して、ＥｘＯＲ回路２１ｌｎの他方の入力端子に供給される。
【００５５】
ＥｘＯＲ回路２１ｌ１〜２１ｌｎのそれぞれの出力信号は、フリップフロップ２１ｍ１〜２１ｍｎの何れかのデータ入力端子に供給される。フリップフロップ２１ｍ１〜２１ｍｎのクロック入力端子には、クロック信号ＣＬＫが供給される。フリップフロップ２１ｍ１〜２１ｍｎの出力信号は、タイミングマージン判定部２１ｎに供給される。
【００５６】
なお、ＣＰＭ回路２１の各要素には電源電圧ＶＤＤが印加される。
このようなＣＰＭ回路２１では、フリップフロップ２１ｃに保持されている初期値が０で、制御部２２から供給されるイネーブル信号ＥＮが０から１に変化した場合、フリップフロップ２１ｃの出力信号は、クロック信号ＣＬＫに同期して１になる。その後、フリップフロップ２１ｃの出力信号は、クロック信号ＣＬＫに同期して０、１の変化を繰り返す。
【００５７】
温度補正用遅延回路２１ｅの遅延時間は、図１の遅延回路１１ａ２の遅延時間と同様に、制御部２２によって制御される。
クリティカルパス２１ｆは、ＡＣＣ回路２０が搭載される半導体集積回路において、最も遅延時間が大きくなるパス（クリティカルパス）のレプリカ、または、クリティカルパスと同一の遅延時間をもつ回路である。クリティカルパス２１ｆは、図１の遅延回路１１ａ１と同様の機能をもつ。
【００５８】
インバータ２１ｇ１〜２１ｇｎ，２１ｋ１〜２１ｋｍ、フリップフロップ２１ｈ，２１ｉ１〜２１ｉｎ，２１ｍ１〜２１ｍｎ、バッファ２１ｊ、ＥｘＯＲ回路２１ｌ１〜２１ｌｎ、タイミングマージン判定部２１ｎは、図１の検出結果出力部１１ａ３の機能をもつ。
【００５９】
温度補正用遅延回路２１ｅとクリティカルパス２１ｆにて遅延されたフリップフロップ２１ｃの出力信号と、クロック信号ＣＬＫとの遅延時間の差に応じた検出結果がタイミングマージン判定部２１ｎから出力される。
【００６０】
このようなＣＰＭ回路２１では、電源ノイズが大きくなると、温度補正用遅延回路２１ｅとクリティカルパス２１ｆにおける遅延時間が長くなり、フリップフロップ２１ｍ１〜２１ｍｎのそれぞれの出力信号のうち、０である出力信号の割合が多くなる。タイミングマージン判定部２１ｎは、フリップフロップ２１ｍ１〜２１ｍｎのそれぞれの出力信号のうち、０である出力信号の割合（または１である出力信号の割合）に基づいて、電源ノイズの大きさを示す検出結果を出力する。
【００６１】
制御部２２は、図１に示した制御部１１ｂと同様の機能を有する。すなわち、制御部２２は、ＣＰＭ回路２１が出力する検出結果に基づいて、クロック信号ＣＬＫの周波数を制御する。また、制御部２２は、温度によるクリティカルパス２１ｆの遅延時間の変化に対して、温度補正用遅延回路２１ｅの遅延時間が逆の変化をするように、温度補正用遅延回路２１ｅの遅延時間を制御する。
【００６２】
たとえば、制御部２２は、温度検出器１４から温度を取得し、取得した温度に対応した温度補正コードを記憶部２３から読み出し、読み出した温度補正コードにより、温度補正用遅延回路２１ｅの遅延時間を制御する。
【００６３】
制御部２２は、特定用途の電子回路（ＡＳＩＣ、ＦＰＧＡなど）、プロセッサ、などのハードウェアにて実現される。また、制御部２２はこれらの組み合わせによって実現されてもよい。
【００６４】
記憶部２３は、温度補正コードテーブル２３ａを記憶している。また、記憶部２３は、制御部２２がプロセッサを用いて実現される場合、プロセッサが実行する制御プログラムを記憶していてもよい。記憶部２３は、たとえば、フラッシュメモリなどの不揮発性メモリである。
【００６５】
図６は、温度補正コードテーブルの一例を示す図である。
温度補正コードテーブル２３ａは、温度補正用遅延回路２１ｅの遅延時間を制御するための温度補正コードと、温度との対応関係を示す情報である。図６では、たとえば、５℃には、温度補正コードとして“＜０＞”が対応付けられており、９５℃には、温度補正コードとして“＜１５＞”が対応付けられている。高い温度に対応付けられた温度補正コードほど、温度補正用遅延回路２１ｅの遅延時間をより小さくするために用いられる。
【００６６】
図７は、温度補正用遅延回路の一例を示す図である。
温度補正用遅延回路２１ｅでは、ｐチャネル型ＭＯＳＦＥＴ（Metal-Oxide-Semiconductor Field-Effect Transistor）（以下ｐＭＯＳと略す）とｎチャネル型ＭＯＳＦＥＴ（以下ｎＭＯＳと略す）を有するインバータが、ｋ段直列に接続されている。ｋは２以上の偶数である。ただし、図５に示したようなＣＰＭ回路２１において、温度補正用遅延回路２１ｅの入力端子または出力端子にインバータを追加すれば、ｋは奇数であってもよい。
【００６７】
図７に示されているように、たとえば、互いのゲートに信号ＩＮが供給され、互いのドレインが接続されるｐＭＯＳ３０ａ１とｎＭＯＳ３０ｂ１により、初段のインバータが実現される。また、互いのゲートに前段のインバータの出力信号が供給され、互いのドレインが接続されるｐＭＯＳ３０ａｋとｎＭＯＳ３０ｂｋにより、信号ＯＵＴを出力する最後段のインバータが実現される。
【００６８】
温度補正用遅延回路２１ｅでは、さらに、少なくとも１つのインバータのｐＭＯＳのソースに、複数のｐＭＯＳが接続され、少なくとも１つのインバータのｎＭＯＳのソースに、複数のｎＭＯＳが接続されている。これら複数のｐＭＯＳとｎＭＯＳが制御部２２から供給される制御信号によってオンまたはオフされることで、インバータの駆動能力が調整される。
【００６９】
図７に示されているように、たとえば、ｐＭＯＳ３０ａ１のソースには、ｐＭＯＳ３１ａ１，３１ｂ１，３１ｃ１のドレインが接続され、ｐＭＯＳ３０ａｋのソースには、ｐＭＯＳ３１ａｋ，３１ｂｋ，３１ｃｋのドレインが接続されている。また、ｎＭＯＳ３０ｂ１のソースには、ｎＭＯＳ３１ｄ１，３１ｅ１，３１ｆ１のドレインが接続され、ｎＭＯＳ３０ｂｋのソースには、ｎＭＯＳ３１ｄｋ，３１ｅｋ，３１ｆｋのドレインが接続されている。ｐＭＯＳ３１ａ１，３１ｂ１，３１ｃ１，３１ａｋ，３１ｂｋ，３１ｃｋのソースには、電源電圧ＶＤＤが印加され、ｎＭＯＳ３１ｄ１，３１ｅ１，３１ｆ１，３１ｄｋ，３１ｅｋ，３１ｆｋのソースは、接地されている。
【００７０】
制御信号ＣＮＴａ１〜ＣＮＴａｋ，ＣＮＴｂ１〜ＣＮＴｂｋ，ＣＮＴｃ１〜ＣＮＴｃｋ，ＣＮＴｄ１〜ＣＮＴｄｋ，ＣＮＴｅ１〜ＣＮＴｅｋ，ＣＮＴｆ１〜ＣＮＴｆｋの何れかは、これら複数のｐＭＯＳとｎＭＯＳの何れかのゲートに供給される。たとえば、制御信号ＣＮＴａ１は、ｐＭＯＳ３１ａ１のゲートに供給され、制御信号ＣＮＴａ１の値に応じてｐＭＯＳ３１ａ１がオンまたはオフする。
【００７１】
なお、図７の例では、各インバータにｐＭＯＳとｎＭＯＳがそれぞれ３つずつ接続されているが、この数に限定されるものではない。
温度補正用遅延回路２１ｅでは、さらに、少なくとも１つのインバータの出力端子にスイッチとキャパシタを含む直列回路が複数接続されている。これら複数の直列回路におけるスイッチが制御部２２から供給される制御信号によってオンまたはオフされることで、各インバータの負荷が調整される。
【００７２】
たとえば、初段のインバータの出力端子には、スイッチ３２ａ１，３２ｂ１，３２ｃ１，３２ｄ１の一端が接続されている。スイッチ３２ａ１の他端にはキャパシタ３３ａ１の一端が接続され、スイッチ３２ｂ１の他端にはキャパシタ３３ｂ１の一端が接続されている。また、スイッチ３２ｃ１の他端にはキャパシタ３３ｃ１の一端が接続され、スイッチ３２ｄ１の他端にはキャパシタ３３ｄ１の一端が接続されている。キャパシタ３３ａ１，３３ｂ１，３３ｃ１，３３ｄ１の他端は接地されている。スイッチ３２ａ１，３２ｂ１，３２ｃ１，３２ｄ１は、制御部２２から供給される制御信号ＣＮＴｇ１，ＣＮＴｈ１，ＣＮＴｉ１，ＣＮＴｊ１によってオンまたはオフされる。最後段のインバータの出力端子には、スイッチ３２ａｋ，３２ｂｋ，３２ｃｋ，３２ｄｋの一端が接続されている。スイッチ３２ａｋの他端にはキャパシタ３３ａｋの一端が接続され、スイッチ３２ｂｋの他端にはキャパシタ３３ｂｋの一端が接続されている。また、スイッチ３２ｃｋの他端にはキャパシタ３３ｃｋの一端が接続され、スイッチ３２ｄｋの他端にはキャパシタ３３ｄｋの一端が接続されている。キャパシタ３３ａｋ，３３ｂｋ，３３ｃｋ，３３ｄｋの他端は接地されている。スイッチ３２ａｋ，３２ｂｋ，３２ｃｋ，３２ｄｋは、制御部２２から供給される制御信号ＣＮＴｇｋ，ＣＮＴｈｋ，ＣＮＴｉｋ，ＣＮＴｊｋによってオンまたはオフされる。
【００７３】
なお、図７の例では、各インバータの出力端子にスイッチとキャパシタを含む直列回路を４つ接続されているが、この数に限定されるものではない。
このような温度補正用遅延回路２１ｅでは、インバータに接続される複数のｐＭＯＳとｎＭＯＳのうち、オンするｐＭＯＳまたはｎＭＯＳの数を増やし駆動能力を上昇させることで、遅延時間が短くなる。一方、各インバータの出力端子に接続される複数のスイッチのうち、オンするスイッチの数を増やし負荷を増やすことで、遅延時間が長くなる。
【００７４】
なお、上記の例では、インバータの駆動能力を変える回路と、負荷を変える回路を両方用いた例を示したが、どちらか一方はなくてもよい。
以下、第２の実施の形態のＡＣＣ回路２０の動作例を説明する。動作の流れは、図２及び図４を用いて説明した第１の実施の形態のＡＣＣ回路１１の動作の流れと同じである。
【００７５】
すなわち、制御部２２は、ＣＰＭ回路２１から検出結果を受信すると、その検出結果に基づいて、電源電圧ＶＤＤが閾値（たとえば、図３の閾値ＶＮ）以下であるか否かを判定する。そして、制御部２２は、電源電圧ＶＤＤが閾値以下であると判定した場合、クロック信号ＣＬＫの周波数が低下中であるか否かを判定し、クロック信号ＣＬＫの周波数が低下中でないと判定した場合、クロック信号ＣＬＫの周波数を所定の周波数に低下させる。また、制御部２２は、電源電圧ＶＤＤが閾値以下ではないと判定した場合、クロック信号ＣＬＫの周波数が低下中であるか否かを判定し、クロック信号ＣＬＫの周波数が低下中であると判定した場合、クロック信号ＣＬＫの周波数を回復させる。
【００７６】
また、制御部２２は、温度検出器１４から温度情報を受信すると、その温度情報に基づいて温度が変化したか否かを判定する。
制御部２２は、温度が変化したと判定した場合、受信した温度情報により表される温度に対応した温度補正コードを記憶部２３から読み出す。そして、制御部２２は、読み出した温度補正コードにより、温度補正用遅延回路２１ｅの遅延時間を変更させる。
【００７７】
温度が上昇した場合、クリティカルパス２１ｆの遅延時間が長くなる。この場合、制御部２２は読み出した温度補正コードに基づいて、たとえば、図７に示したような温度補正用遅延回路２１ｅにおいて、インバータに接続される複数のｐＭＯＳとｎＭＯＳのうち、オンするｐＭＯＳまたはｎＭＯＳの数を増やす。これにより、温度補正用遅延回路２１ｅの遅延時間が短くなるため、ＣＰＭ回路２１全体の遅延時間の変動は抑えられる。クリティカルパス２１ｆの遅延時間の増加分と、温度補正用遅延回路２１ｅの遅延時間の減少分を等しくすれば、温度の上昇によるＣＰＭ回路２１全体の遅延時間の変化を０にすることができる。
【００７８】
一方、温度が下降した場合、クリティカルパス２１ｆの遅延時間が短くなる。この場合、制御部２２は読み出した温度補正コードに基づいて、たとえば、図７に示したような温度補正用遅延回路２１ｅにおいて、インバータの出力端子に接続される複数のスイッチのうち、オンするスイッチの数を増やす。これにより、温度補正用遅延回路２１ｅの遅延時間が長くなるため、ＣＰＭ回路２１全体の遅延時間の変動は抑えられる。クリティカルパス２１ｆの遅延時間の減少分と、温度補正用遅延回路２１ｅの遅延時間の増加分を等しくすれば、温度の下降によるＣＰＭ回路２１全体の遅延時間の変化を０にすることができる。
【００７９】
図８は、ＣＰＭ回路の遅延時間の温度依存性がキャンセルされる例を示す図である。
図８には、温度が一定のときの、温度補正用遅延回路２１ｅとクリティカルパス２１ｆとＣＰＭ回路２１全体の遅延時間と、電源電圧ＶＤＤの低下割合との関係が示されている。温度補正用遅延回路２１ｅの遅延時間としては、図６に示した各温度補正コードが用いられた場合の例が示されている。図８に示されているように、電源電圧ＶＤＤの低下割合が増加するとともに、各遅延時間は長くなる。
【００８０】
また、図８には、電源電圧ＶＤＤが一定のときの、温度補正用遅延回路２１ｅとクリティカルパス２１ｆとＣＰＭ回路２１全体の遅延時間と、温度との関係が示されている。クリティカルパス２１ｆの遅延時間は、温度の上昇とともに長くする。一方、たとえば、温度が５℃のときには、温度補正コード“＜０＞”が用いられ、温度が９５℃のときには、温度補正コード“＜１５＞”が用いられ、温度補正用遅延回路２１ｅの遅延時間は、温度の上昇とともに短くなっている。図８の例では、温度上昇によるクリティカルパス２１ｆの遅延時間の増加分と、温度補正用遅延回路２１ｅの遅延時間の減少分が等しく、ＣＰＭ回路２１全体の遅延時間は温度によって変動せず、一定となっている。つまり、ＣＰＭ回路２１の遅延時間の温度依存性がキャンセルされている。
【００８１】
また、図８には、ＣＰＭ回路２１全体の温度補正前後の遅延時間と、負荷（ＶＤＤ低下割合と温度で表される）との関係が示されている。高負荷になるほど、ＣＰＭ回路２１全体の遅延時間は長くなるが、温度補正後（ＣＰＭ回路２１の遅延時間の温度依存性をキャンセル後）は、温度変化による遅延時間の変化がないため、温度補正前よりも遅延時間の変化が少なくなる。
【００８２】
上記のように、制御部２２は、温度によるクリティカルパス２１ｆの遅延時間の変化に対して、温度補正用遅延回路２１ｅの遅延時間が逆の変化をするように、温度補正用遅延回路２１ｅの遅延時間を制御する。このため、ＣＰＭ回路２１全体の遅延時間の温度依存が抑制され、ＡＣＣが発動する閾値（図３の閾値ＶＮ）の温度によるばらつきも抑制される。したがって、クロック信号ＣＬＫの周波数を制御する制御部２２の制御精度が向上する。
【００８３】
また、半導体集積回路におけるクリティカルパスは温度によって変わるため、温度補正を行わないＣＰＭ回路に設けられるクリティカルパスは１つに定まらない。そのため、各温度に対応したクリティカルパスを複数、ＣＰＭ回路に設け、温度に応じて使用するクリティカルパスを切り替えることが考えられる。しかしその場合、回路規模が増大する。第２の実施の形態のＡＣＣ回路２０のＣＰＭ回路２１は、遅延時間の温度依存性を抑制したノイズ検出を行うものであるため、１つのクリティカルパス２１ｆを用いればよい。
【００８４】
（温度補正コードの算出例）
前述した温度補正コードは、たとえば、ＡＣＣ回路２０を含む半導体集積回路の設計時に算出される。また、半導体集積回路の評価用のチップの製造後に、高温槽などを用いてそのチップの温度を変化させたときのＣＰＭ回路２１の遅延時間の測定結果に基づいて、温度補正コードを修正してもよい。
【００８５】
図９は、温度補正コードの算出処理の一例の流れを示すフローチャートである。
以下の処理は、たとえば、ＡＣＣ回路２０を含む半導体集積回路の設計処理を行うコンピュータによって行われる。
【００８６】
まず、温度検出器１４にて検出される最低の温度（たとえば、５℃）が選択され（ステップＳ２０）、選択された温度が、半導体集積回路の温度として設定される（ステップＳ２１）。また、半導体集積回路の電源電圧ＶＤＤが、図３に示した閾値ＶＮに設定される（ステップＳ２２）。
【００８７】
そして、まず、ＣＰＭ回路２１の温度補正用遅延回路２１ｅの遅延時間を最大とする温度補正コードが選択され（ステップＳ２３）、選択された温度補正コードを用いて温度補正用遅延回路２１ｅの遅延時間が調整される（ステップＳ２４）。その後、ＣＰＭ回路２１の検出結果が算出され（ステップＳ２５）、その検出結果に基づいて、クロック信号ＣＬＫが供給される回路部においてタイミングエラーが発生するか否かが判定される（ステップＳ２６）。
【００８８】
タイミングエラーが発生すると判定された場合、温度補正用遅延回路２１ｅの遅延時間をΔｔ短縮する温度補正コードが選択され（ステップＳ２７）、ステップＳ２４からの処理が繰り返される。Δｔは、たとえば、温度補正用遅延回路２１ｅにおける、遅延時間の最少の調整単位である。
【００８９】
タイミングエラーが発生しないと判定された場合、設定された温度と選択された温度補正コードとが温度補正コードテーブル２３ａに記録される（ステップＳ２８）。その後、温度が、温度検出器１４にて検出される最高の温度（たとえば、９５℃）であるか否かが判定され（ステップＳ２９）、最高の温度でないと判定された場合、ΔＴ高い温度が選択され（ステップＳ３０）、ステップＳ２１からの処理が繰り返される。最高の温度であると判定された場合、温度補正コードの算出処理が終了する。
【００９０】
なお、温度補正コードの算出処理の順序は、上記の例に限定されるものではない。また、上記の例では、最低温度が最初に選択されているが、最高温度が最初に選択され、ΔＴずつ低い温度を順に選択して温度補正コードを算出するようにしてもよい。
【００９１】
なお、温度補正コードテーブル２３ａは、たとえば、ＡＣＣ回路２０を含む半導体集積回路が最初に動作する前に、半導体集積回路のスキャンテストを行うための端子などを介して外部から記憶部２３に書き込まれるようにしてもよい。
【００９２】
図１０は、算出された温度補正コードを用いたときのＣＰＭ回路の遅延時間の例を示す図である。横軸は温度を表し、縦軸はＣＰＭ回路２１の遅延時間を表す。
遅延時間ｔｄｌｉｍは、タイミングエラーが生じないと判定される遅延時間の上限（タイミング限界）であり、遅延時間ｔｄｖｍは、電源電圧ＶＤＤが閾値ＶＮに降下したと判定される遅延時間である。
【００９３】
図９に示した処理で算出される温度補正コードは、電源電圧ＶＤＤが閾値ＶＮであるときに、各温度においてＣＰＭ回路２１の遅延時間が一定（遅延時間ｔｄｌｉｍ）となるように調整されている。そして、たとえば、温度が５℃のときは、温度が５℃のときにＣＰＭ回路２１の遅延時間が遅延時間ｔｄｌｉｍになるように調整された温度補正コード“＜０＞”が用いられる。また、温度が４５℃のときは、温度が４５℃のときにＣＰＭ回路２１の遅延時間が遅延時間ｔｄｌｉｍになるように調整された温度補正コード“＜７＞”が用いられる。また、温度が９５℃のときは、温度が９５℃のときにＣＰＭ回路２１の遅延時間が遅延時間ｔｄｌｉｍになるように調整された温度補正コード“＜１５＞”が用いられる。これによって、電源電圧ＶＤＤが閾値ＶＮであるときの、ＣＰＭ回路２１の遅延時間の温度依存性がキャンセルされる。
【００９４】
温度が変化したときでも、ＡＣＣ回路２０は、ＣＰＭ回路２１の遅延時間がタイミング限界より短い遅延時間ｔｄｖｍとなったときに、クロック信号ＣＬＫの周波数の低下を開始できるため、タイミングエラーの発生を抑制できる。
【００９５】
なお、図１０に示すように電源電圧ＶＤＤの低下がない場合の各温度でのＣＰＭ回路２１の遅延時間は多少ばらついているが、この場合のＣＰＭ回路２１の遅延時間は、クロック信号ＣＬＫの制御には関与しないため、そのばらつきによる影響は少ない。
【００９６】
ところで、上記第１及び第２の実施の形態のＡＣＣ回路１１，２０の処理内容は、制御部１１ｂ，２２がプロセッサの場合、プロセッサに制御プログラムを実行させることで実現できる。
【００９７】
制御プログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）及びＨＤＤ（Hard Disk Drive）が含まれる。光ディスクには、ＣＤ（Compact Disc）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）、ＤＶＤ（Digital Versatile Disc）及びＤＶＤ−Ｒ／ＲＷが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体にプログラムをコピーして実行してもよい。
【００９８】
以上、実施の形態に基づき、本発明の制御回路、制御方法及び制御プログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【００９９】
１０  半導体集積回路
１１  制御回路（ＡＣＣ回路）
１１ａ  ノイズ検出回路
１１ａ１，１１ａ２  遅延回路
１１ａ３  検出結果出力部
１１ｂ  制御部
１１ｃ  記憶部
１２  クロック生成回路
１３  回路部
１４  温度検出器
【図１】
2020101891.tif 000003
【図２】
2020101891.tif 000004
【図３】
2020101891.tif 000005
【図４】
2020101891.tif 000006
【図５】
2020101891.tif 000007
【図６】
2020101891.tif 000008
【図７】
2020101891.tif 000009
【図８】
2020101891.tif 000010
【図９】
2020101891.tif 000011
【図１０】
2020101891.tif 000012