(57)【要約】  簡易な回路で応答性が良く、安定的な動作を確保することのできる半導体回路装置、及び情報処理装置を提供することを課題とする。  半導体装置は、入力信号に遅延を与える遅延部と、前記遅延部から出力される出力信号の位相を検出する位相検出部と、前記位相検出部から出力される位相情報に基づき、前記出力信号の位相の安定動作範囲を設定する設定部と、前記安定動作範囲に対応する許容範囲を設定して前記出力信号の位相が前記許容範囲内にあるか否かを判定するとともに、前記遅延部の入力信号の外的要因に応じて前記許容範囲を変更するエラー検出部とを含む。
2012101776.tif 000002
【特許請求の範囲】
【請求項１】
入力信号に遅延を与える遅延部と、
前記遅延部から出力される出力信号の位相を検出する位相検出部と、
前記位相検出部から出力される位相情報に基づき、前記出力信号の位相の安定動作範囲を設定する設定部と、
前記安定動作範囲に対応する許容範囲を設定して前記出力信号の位相が前記許容範囲内にあるか否かを判定するとともに、前記遅延部の入力信号の外的要因に応じて前記許容範囲を変更するエラー検出部と
を含む半導体装置。
【請求項２】
前記外的要因として前記入力信号の周波数を検出する周波数検出部をさらに含み、
前記エラー検出部は、前記許容範囲として第１許容範囲と、前記第１許容範囲の高位相側又は低位相側に連続する第２許容範囲とを設定しており、前記周波数検出部によって検出される前記入力信号の周波数が上昇すると、前記第１許容範囲の幅と前記第２許容範囲の幅を小さくする、請求項１記載の半導体装置。
【請求項３】
前記外的要因として前記入力信号の周波数を検出する周波数検出部をさらに含み、
前記エラー検出部は、前記許容範囲として第１許容範囲と、前記第１許容範囲の高位相側又は低位相側に連続する第２許容範囲とを設定しており、前記周波数検出部によって検出される前記入力信号の周波数が低下すると、前記第１許容範囲の幅と前記第２許容範囲の幅を大きくする、請求項１記載の半導体装置。
【請求項４】
前記外的要因として前記半導体装置の温度を検出する温度検出部をさらに含み、
前記エラー検出部は、前記許容範囲として第１許容範囲と、前記第１許容範囲の高位相側又は低位相側に連続する第２許容範囲とを設定しており、前記温度検出部によって検出される前記半導体装置の温度が上昇すると、前記第１許容範囲の上限を低下させるとともに、前記第１許容範囲の幅と前記第２許容範囲の幅を小さくする、請求項１記載の半導体装置。
【請求項５】
前記外的要因として前記半導体装置の温度を検出する温度検出部をさらに含み、
前記エラー検出部は、前記許容範囲として第１許容範囲と、前記第１許容範囲の高位相側又は低位相側に連続する第２許容範囲とを設定しており、前記温度検出部によって検出される前記半導体装置の温度が低下すると、前記第１許容範囲の上限を上昇させるとともに、前記第１許容範囲の幅と前記第２許容範囲の幅を大きくする、請求項１記載の半導体装置。
【請求項６】
前記外的要因として前記半導体装置の電源電圧の変動分を検出する電圧検出部をさらに含み、
前記エラー検出部は、前記許容範囲として第１許容範囲と、前記第１許容範囲の高位相側又は低位相側に連続する第２許容範囲とを設定しており、前記電圧検出部によって検出される前記半導体装置の電源電圧の変動分が正側で拡大傾向にあると、前記第１許容範囲の上限を上昇させるとともに、前記第１許容範囲の幅と前記第２許容範囲の幅を大きくする、請求項１記載の半導体装置。
【請求項７】
前記外的要因として前記半導体装置の電源電圧の変動分を検出する電圧検出部をさらに含み、
前記エラー検出部は、前記許容範囲として第１許容範囲と、前記第１許容範囲の高位相側又は低位相側に連続する第２許容範囲とを設定しており、前記電圧検出部によって検出される前記半導体装置の電源電圧の変動分が負側で拡大傾向にあると、前記第１許容範囲の上限を低下させ、前記第１許容範囲の幅を小さくし、前記第２許容範囲の幅を大きくする、請求項１記載の半導体装置。
【請求項８】
前記外的要因として前記半導体装置の電源電圧の変動分を検出する電圧検出部をさらに含み、
前記エラー検出部は、前記許容範囲として第１許容範囲と、前記第１許容範囲の高位相側又は低位相側に連続する第２許容範囲とを設定しており、前記電圧検出部によって検出される前記半導体装置の電源電圧の変動分が正側で縮小傾向にあると、前記第１許容範囲の上限を上昇させ、前記第１許容範囲の幅を大きくし、前記第２許容範囲の幅を小さくする、請求項１記載の半導体装置。
【請求項９】
前記外的要因として前記半導体装置の電源電圧の変動分を検出する電圧検出部をさらに含み、
前記エラー検出部は、前記許容範囲として第１許容範囲と、前記第１許容範囲の高位相側又は低位相側に連続する第２許容範囲とを設定しており、前記電圧検出部によって検出される前記半導体装置の電源電圧の変動分が負側で縮小傾向にあると、前記第１許容範囲の上限を低下させ、前記第１許容範囲の幅と前記第２許容範囲の幅を小さくする、請求項１記載の半導体装置。
【請求項１０】
演算処理装置と、
主記憶装置と、
請求項１に記載の半導体装置を有し、前記演算処理装置と前記主記憶装置との間でデータの転送を行うメモリコントローラと
を含む情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
半導体装置、及び情報処理装置に関する。
【背景技術】
【０００２】
従来より、クロック信号の経路として選択された一の可変遅延回路の出力の位相と他の可変遅延回路の出力の位相とが１周期だけ異なるとき、一の可変遅延回路を他の可変遅延回路に切り替え、一の可変遅延回路の遅延時間可変範囲以上の位相補償を行う半導体回路装置があった。【０００３】
また、多数決回路によって位相比較器の位相比較結果の多数決を取ることにより、入力データに含まれるジッタに過度に追従することを防止する半導体回路装置があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−０７５６７１号公報
【特許文献２】特開２００５−０３３３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、従来の半導体回路装置は、複数の可変遅延回路、又は、多数決回路及び多数決回数設定レジスタを含むため、回路が大規模になるという問題と、フィードバックループの応答が遅れるという問題があった。【０００６】
そこで、簡易な回路で応答性が良く、安定的な動作を確保することのできる半導体回路装置、及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の実施の形態の半導体装置は、入力信号に遅延を与える遅延部と、前記遅延部から出力される出力信号の位相を検出する位相検出部と、前記位相検出部から出力される位相情報に基づき、前記出力信号の位相の安定動作範囲を設定する設定部と、前記安定動作範囲に対応する許容範囲を設定して前記出力信号の位相が前記許容範囲内にあるか否かを判定するとともに、前記遅延部の入力信号の外的要因に応じて前記許容範囲を変更するエラー検出部とを含む。
【発明の効果】
【０００８】
簡易な回路で応答性が良く、安定的な動作を確保することのできる半導体回路装置、及び情報処理装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】比較例の信号遅延回路１を示すブロック図である。
【図２】比較例の信号遅延回路１に含まれる遅延部１０を示す図である。
【図３】（Ａ）は比較例の信号遅延回路１のフィルタ部３０に入力される位相信号（phase）が表すクロックの位相と安定動作範囲との関係を模式的に示す図、（Ｂ）はフィルタ部３０によってフィルタ処理が行われた後のクロックの位相と安定動作範囲との関係を模式的に示す図、（Ｃ）はエラー検出部４０における許容範囲とクロックの位相との関係を模式的に示す図である。
【図４】実施の形態１の半導体装置を含むサーバ５０を示す図である。
【図５】実施の形態１の半導体装置を含むサーバ５０を示すブロック図である。
【図６】実施の形態１の半導体装置に含まれる信号遅延回路１００を示す図である。
【図７】実施の形態１の半導体装置に含まれる信号遅延回路１００の位相検出部２０を示す図である。
【図８】実施の形態１の半導体装置に含まれる信号遅延回路１００の周波数検出部１６０を示す図である。
【図９】実施の形態１の半導体装置に含まれる信号遅延回路１００の低周波成分検出部１８０を示す図である。
【図１０】実施の形態１の半導体装置に含まれる信号遅延回路１００の高周波成分検出部１９０を示す図である。
【図１１】実施の形態１の半導体装置に含まれる信号遅延回路１００の制御レジスタ１５０を示す図である。
【図１２】（Ａ）は電源電圧のワンダの例示的な波形を示す図であり、（Ｂ）は電源電圧のジッタの例示的な波形を示す図である。
【図１３】実施の形態１の信号遅延回路１００の制御レジスタ１５０の入力信号の値と出力信号の値との対応関係を示す図である。
【図１４】実施の形態１の半導体装置に含まれる信号遅延回路１００のエラー検出部１４０がクロックの周波数の変動に応じて変更する許容範囲を示す図である。
【図１５】実施の形態１の半導体装置に含まれる信号遅延回路１００のエラー検出部１４０が遅延部１０の温度の変動に応じて変更する許容範囲を示す図である。
【図１６】実施の形態１の半導体装置に含まれる信号遅延回路１００のエラー検出部１４０が電源電圧の電圧範囲の変動に応じて変更する許容範囲を示す図である。
【図１７】実施の形態１の半導体装置に含まれる信号遅延回路１００のエラー検出部１４０が電源電圧のジッタの変動に応じて変更する許容範囲を示す図である。
【図１８】実施の形態２の半導体装置に含まれる信号遅延回路２００を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の半導体装置、及び情報処理装置を適用した実施の形態について説明する。
【００１１】
実施の形態１及び２の半導体装置、及び情報処理装置について説明する前に、まず、図１乃至図３を用いて、比較例の半導体装置に含まれる信号遅延回路について説明する。
【００１２】
図１は、比較例の信号遅延回路１を示すブロック図である。
【００１３】
比較例の信号遅延回路１は、例えば、ＬＳＩ（Large Scale Integrated circuit：大規模集積回路）によって実現される。
【００１４】
信号遅延回路１は、遅延部１０、位相検出部２０、フィルタ部３０、及びエラー検出部４０を含む。
【００１５】
遅延部１０は、入力されたクロック（clock_in）に遅延を与えたクロック（clock_out）を出力する。遅延部１０でクロックに与える遅延時間は、フィルタ部３０から入力される選択信号（select）により可変的に設定される。遅延部１０から出力されるクロックは、信号遅延回路１の出力（clock_out）として出力されるとともに、位相検出部２０に入力される。
【００１６】
位相検出部２０は、遅延部１０から出力されるクロックの位相を検出し、クロックの位相を表す位相信号（phase）をフィルタ部３０とエラー検出部４０に出力する。位相検出部２０は、例えば、クロックの毎周期の立ち上がりの位相を検出する。
【００１７】
フィルタ部３０は、遅延部１０から出力されるクロックの位相の目標値を保持しており、遅延部１０から出力されるクロックの位相の安定動作範囲を設定する。フィルタ部３０が設定する安定動作範囲は、遅延部１０から出力されるクロックの位相の目標値を略中央とする所定幅を有する範囲である。
【００１８】
フィルタ部３０は、フィルタ処理により、位相検出部２０からクロックの周期毎に入力される位相信号（phase）が表すクロックの位相のうち、安定動作範囲から位相が外れるクロックを除去する。また、フィルタ部３０は、安定動作範囲内にあるクロックの位相と目標値との差に応じて遅延部１０における遅延量を調節するための選択信号（select）を遅延部１０に帰還する。また、フィルタ部３０は、安定動作範囲を表すコード（code）をエラー検出部４０に出力する。
【００１９】
エラー検出部４０は、フィルタ部３０から出力される安定動作範囲を表すコード信号（code）に基づいて安定動作範囲に対応する許容範囲を設定するとともに、遅延部１０から出力されるクロックの位相が許容範囲内にあるか否かを判定する。
【００２０】
エラー検出部４０は、フィルタ部３０が設定する安定動作範囲と同一の範囲を有する許容範囲を設定する。このため、エラー検出部４０は、位相検出部２０で検出されるクロックの位相が、フィルタ部３０によって設定される安定動作範囲を逸脱していないかを判定することができる。
【００２１】
エラー検出部４０は、例えば、許容範囲の上限及び下限を表すコード（code）と、クロックの位相を表すコード（phase）とを含む状態信号（status）を出力する。また、エラー検出部４０は、位相検出部２０で検出されるクロックの位相が許容範囲から逸脱したと判定すると、エラーが生じた旨を表すエラー信号（error）を出力する。状態信号（status）とエラー信号（error）は、信号遅延回路１を含むシステムの監視系統に伝送される。
【００２２】
以上のように、比較例の信号遅延回路１は、入力信号（クロック）に遅延を与えることにより、目標値に応じた位相を有する出力信号（クロック）を出力する。
【００２３】
図２は、比較例の信号遅延回路１に含まれる遅延部１０を示す図である。
【００２４】
遅延部１０は、インバータ１１Ａ、１２Ａ、１３Ａ、セレクタ１１Ｂ、１２Ｂ、１３Ｂ、及びインバータ１１Ｃ、１２Ｃ、１３Ｃを含む。
【００２５】
インバータ１１Ａ〜１３Ａは、信号の折り返し点となるセレクタ１１Ｂ〜１３Ｂに信号を伝搬するためのフォワード側のインバータであり、インバータ１１Ｃ〜１３Ｃは、信号がセレクタ１１Ｂ〜１３Ｂで折り返した後に信号を伝搬するリターン側のインバータである。
【００２６】
インバータ１１Ａ〜１３Ａは、それぞれ、入力信号を反転して出力する否定回路である。
【００２７】
インバータ１１Ａ〜１３Ａは、それぞれ、出力端子と入力端子が接続されることにより、直列に接続される遅延素子の一例である。インバータ１１Ａの入力端子は、遅延部１０の入力端子ＩＮに接続されており、インバータ１３Ａの出力端子は、セレクタ１３Ｂの一方の入力端子に接続されるとともに、開放されている（ｏｐｅｎ）。
【００２８】
セレクタ１１Ｂ〜１３Ｂは、それぞれ、インバータ１１Ａ〜１３Ａに対応して設けられている。セレクタ１１Ｂ〜１３Ｂは、２つの入力端子と選択信号入力端子Ｓとを有し、選択信号入力端子Ｓに入力される選択信号に応じて、いずれかの入力を選択して出力する選択部の一例である。
【００２９】
ここで、セレクタ１１Ｂ、１２Ｂの選択信号入力端子Ｓには、フィルタ部３０から"１"又は"０"の選択信号が入力される。また、セレクタ１３Ｂの選択信号入力端子Ｓには、信号レベルが"１"にクリップされた選択信号が入力される。セレクタ１３Ｂの選択信号入力端子Ｓには、例えば、電源電圧を抵抗器等で電圧変換することにより、選択信号の信号レベル"１"を表す所定電圧を生成して入力すればよい。
【００３０】
このため、セレクタ１１Ｂ、１２Ｂは、フィルタ部３０から入力される選択信号（"１"又は"０"）に応じていずれかの入力を選択して出力し、セレクタ１３Ｂは常にインバータ１３Ａの出力を選択して出力する。
【００３１】
インバータ１１Ｃ〜１３Ｃは、それぞれ、入力信号を反転して出力する否定回路であり、セレクタ１１Ｂ〜１３Ｂに対応して設けられている。インバータ１１Ｃ〜１３Ｃは、セレクタ１１Ｂ〜１３Ｂと交互に直列に接続されており、それぞれ、セレクタ１１Ｂ〜１３Ｂの各々の出力を反転して出力する。インバータ１１Ｃ〜１３Ｃは、遅延素子の一例である。
【００３２】
セレクタ１３Ｂの一方の入力端子には、インバータ１３Ａの出力端子が接続されている。セレクタ１３Ｂの他方の入力端子は接地されており、固定データとして"０"が入力される。
【００３３】
セレクタ１２Ｂの一方の入力端子には、インバータ１２Ａの出力端子が接続され、他方の入力端子には、インバータ１３Ｃの出力端子が接続されている。
【００３４】
セレクタ１１Ｂの一方の入力端子には、インバータ１１Ａの出力端子が接続され、他方の入力端子には、インバータ１２Ｃの出力端子が接続されている。
【００３５】
インバータ１１Ｃの入力端子には、セレクタ１１Ｂの出力端子が接続され、インバータ１１Ｃの出力端子は、遅延部１０の出力端子ＯＵＴに接続されている。
【００３６】
遅延部１０は、入力端子ＩＮに入力される信号をセレクタ１１Ｂ〜１２Ｂのうちのどこで折り返すかにより、入力端子ＩＮに入力される信号の遅延量を調節して出力端子ＯＵＴから出力する。
【００３７】
なお、上述したように、遅延部１０の入力端子ＩＮから見て一番奥にあるセレクタ１３Ｂの選択信号入力端子Ｓには、信号レベルが"１"にクリップされた選択信号が入力されるため、セレクタ１３Ｂは常にインバータ１３Ａの出力を選択する。
【００３８】
比較例の半導体装置に含まれる信号遅延回路１において、セレクタ１１Ｂ、１２Ｂに入力される選択信号が、それぞれ、"０"、"０"である場合、セレクタ１１Ｂ、１２Ｂは、それぞれ、インバータ１２Ｃ、１３Ｃの出力を選択するため、遅延部１０における信号の折り返し点はセレクタ１３Ｂになる。
【００３９】
セレクタ１１Ｂ、１２Ｂに入力される選択信号が、それぞれ、"０"、"１"である場合、セレクタ１１Ｂはインバータ１２Ｃの出力を選択し、セレクタ１２Ｂはインバータ１２Ａの出力を選択するため、信号の折り返し点はセレクタ１２Ｂになる。
【００４０】
なお、このとき、セレクタ１３Ｂはインバータ１３Ａの出力を選択してインバータ１３Ｃに入力するが、インバータ１３Ｃの出力はセレクタ１２Ｂによって選択されないため、セレクタ１３Ｂは信号の折り返し点にはならない。
【００４１】
セレクタ１１Ｂ、１２Ｂに入力される選択信号が、それぞれ、"１"、"０"である場合、セレクタ１１Ｂがインバータ１１Ａの出力を選択するため、信号の折り返し点はセレクタ１１Ｂになる。
【００４２】
なお、このとき、セレクタ１３Ｂはインバータ１３Ａの出力を選択してインバータ１３Ｃに入力し、インバータ１３Ｃの出力はセレクタ１２Ｂによって選択されるが、インバータ１２Ｃの出力はセレクタ１１Ｂによって選択されないため、セレクタ１３Ｂは信号の折り返し点にはならない。
【００４３】
なお、ここでは、一例として、３段のインバータ１１Ａ、１２Ａ、１３Ａ、セレクタ１１Ｂ、１２Ｂ、１３Ｂ、及びインバータ１１Ｃ、１２Ｃ、１３Ｃを含む遅延部１０について説明したが、フォワード側及びリターン側のインバータとセレクタの段数は、クロックに与える遅延量に応じて決めればよい。
【００４４】
例えば、クロックに１８０°の位相を与えた出力信号を出力する場合には、例えば、８ビットの選択信号を用いて、２５７段のフォワード側及びリターン側のインバータとセレクタを用いて遅延量を段階的に設定してもよい。
【００４５】
この場合は、フィルタ部３０が出力する８ビットの選択信号を２５６ビットの選択信号に変換して、２５７段のセレクタのうち、遅延部１０の入力端子ＩＮ及び出力端子ＯＵＴから見て最も奥にあるセレクタ以外の２５６個のセレクタに、入力すればよい。なお、この場合、遅延部１０の入力端子ＩＮ及び出力端子ＯＵＴから見て最も奥にあるセレクタには、常に信号を折り返すように、信号値を固定した選択信号を入力すればよい。
【００４６】
また、図２には、一例として、フォワード側のインバータを伝送される信号をセレクタで折り返してリターン側のインバータを経て出力する形式の遅延部１０を示すが、遅延部１０の回路構成は折り返す形式のものに限らない。遅延部１０は、入力信号に遅延を与えて出力できる回路であれば他の回路構成のものであってもよく、その形式は問わない。
【００４７】
次に、図３（Ａ）〜（Ｃ）を用いて、位相検出部２０で検出されるクロックの位相、フィルタ部３０が設定する安定動作範囲、及びエラー検出部４０が設定する許容範囲について説明する。なお、図３（Ａ）〜（Ｃ）では、クロックの位相を点で示す。
【００４８】
図３（Ａ）は、比較例の信号遅延回路１のフィルタ部３０に入力される位相信号（phase）が表すクロックの位相と安定動作範囲との関係を模式的に示す図である。図３（Ａ）に示す位相を表す点は、フィルタ部３０によるフィルタ処理が行われる前のクロックの位相であり、位相検出部２０によって検出されるクロックの位相を表す。
【００４９】
図３（Ｂ）は、フィルタ部３０によってフィルタ処理が行われた後のクロックの位相と安定動作範囲との関係を模式的に示す図である。
【００５０】
図３（Ｃ）は、エラー検出部４０における許容範囲とクロックの位相との関係を模式的に示す図である。
【００５１】
ここで、安定動作範囲及び許容範囲の上限をＮ、安定動作範囲及び許容範囲の幅をｍとする。フィルタ部３０が保持するクロックの位相の目標値は、Ｎ−（ｍ／２）で表されるものとする。
【００５２】
第１許容範囲の上限Ｎと幅ｍは、フィルタ部３０が、フィルタ部３０に入力される位相信号（phase）が表すクロックの位相の分布に基づいて信号遅延回路１００が適切に動作するように決定する。なお、フィルタ部３０は、目標値を用いて第１許容範囲の上限Ｎと幅ｍを決定してもよい。
【００５３】
図３（Ａ）に示すように、位相検出部２０で検出されるクロックの位相は、目標値を中心とする安定動作範囲（Ｎ−ｍ〜Ｎ）内に殆どが存在する。
【００５４】
安定動作範囲（Ｎ−ｍ〜Ｎ）から位相が逸脱するクロックは、例えば、遅延部１０の異常、又はクロックの異常等が原因で生じる場合があるが、その他にも、例えば、クロックの周波数、遅延部１０の温度、又は遅延部１０の電源電圧の変動等によって生じる場合がある。
【００５５】
このように、クロックの位相が安定動作範囲（Ｎ−ｍ〜Ｎ）から逸脱するのは、信号遅延回路１又は信号遅延回路１を含む半導体装置の外部で生じる要因（外的要因）によって生じる場合がある。
【００５６】
安定動作範囲（Ｎ−ｍ〜Ｎ）から逸脱したクロックの位相は、フィルタ部３０のフィルタ処理によって取り除かれるため、フィルタ処理が終わった後のクロックの位相は、図３（Ｂ）に破線の楕円Ａ内に示すように、安定動作範囲（Ｎ−ｍ〜Ｎ）内に収まる。
【００５７】
また、エラー検出部４０は、フィルタ部３０と同一の許容範囲（Ｎ−ｍ〜Ｎ）を有するため、図３（Ｃ）に示すようなクロックの位相を表す位相信号（phase）が位相検出部２０から入力されると、クロックの位相が許容範囲（Ｎ−ｍ〜Ｎ）内に入る場合は正常と判定するが、許容範囲（Ｎ−ｍ〜Ｎ）から逸脱すると異常が発生したと判定する。
【００５８】
すなわち、エラー検出部４０は、図３（Ｃ）に破線で示す楕円Ａ内のクロックの位相は許容範囲（Ｎ−ｍ〜Ｎ）内に入るため正常と判定し、楕円Ｂ、Ｃ内に入るクロックの位相については異常と判定する。
【００５９】
異常が発生したとエラー検出部４０が判定した場合は、エラー信号が信号遅延回路１を含むシステムの監視系統に伝送され、例えば、信号遅延回路１を含むシステムの動作が停止される。
【００６０】
ところで、クロックの周波数、信号遅延回路１の温度、電源電圧の変動等の外的要因によって信号遅延回路１に入力するクロックの位相が変動する場合の中には、エラー検出部４０がエラー判定を行なわなくても、信号遅延回路１を含むシステムの動作に影響を生じない場合がある。
【００６１】
例えば、外的要因の発生頻度が極端に低い（例えば１％未満）場合、又は、信号遅延回路１の外部でデータの監視が行われている場合は、エラー判定を行なわなくても、信号遅延回路１を含むシステムの動作に影響を生じない場合がある。
【００６２】
ここで、信号遅延回路１の外部でデータの監視が行われている場合としては、例えば、クロック（clock_in）に同期したデータ転送を行っているバス等で、ＥＣＣ（Error Checking and Correction）符号を伴ったデータ転送を行っている場合、又は、イネーブル信号等を伴ったデータ転送を行っている場合がある。
【００６３】
また、外的要因によってクロックの位相が変動してエラー検出部４０の許容範囲から逸脱するのは、例えば、確率的に数パーセント以下（例えば、１万回の検出において、数回から数十回程度）であり、全体のクロックの位相から見るとごく僅かである。
【００６４】
従って、外的要因によるクロックの位相の変動が比較的少ない場合については、エラー検出部４０でエラー判定を行わずに、信号遅延回路１を含むシステムの動作を継続する方がシステム全体を円滑かつ安定的に動作させることができる。
【００６５】
以上のように、比較例の信号遅延回路１を含む半導体装置では、外的要因でクロックの位相が許容範囲から逸脱した場合には、一律的にエラー判定を行うため、信号遅延回路１を含むサーバ等の情報処理装置を停止することになり、システム全体を円滑かつ安定的に動作させることが困難になる場合が生じる可能性があった。
【００６６】
このため、以下で説明する実施の形態１及び２では、上述の問題点を解決した半導体装置、及び情報処理装置を提供することを目的とする。以下、実施の形態１及び２の半導体装置、及び情報処理装置について説明する。
【００６７】
＜実施の形態１＞
以下、実施の形態１の半導体装置、及び情報処理装置について説明するにあたり、比較例の半導体装置と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
【００６８】
図４は、実施の形態１の半導体装置を含むサーバ５０を示す図である。
【００６９】
図４に示すサーバ５０は、実施の形態１の半導体装置を含む情報処理装置の一例である。サーバ５０は、例えば、ＣＰＵ（Central Processing Unit：中央演算装置）及び主記憶装置等を含む。
【００７０】
図５は、実施の形態１の半導体装置を含むサーバ５０を示すブロック図である。
【００７１】
サーバ５０は、ＣＰＵ５１及び主記憶装置５２Ａ、５２Ｂを含む。ＣＰＵ５１と主記憶装置５２Ａ、５２Ｂは、それぞれ、バス５３Ａ、５３Ｂによって接続されている。
【００７２】
ＣＰＵ５１は、メモリコントローラ５４を含み、メモリコントローラ５４内のメモリＩ／Ｆ（Interface：インターフェイス）５４Ａを介して主記憶装置５２Ａ、５２Ｂとの間でデータの取得又は転送を行うとともに、取得したデータの処理を行う。
【００７３】
主記憶装置５２Ａ、５２Ｂは、例えば、複数のモジュール化されたＲＡＭ（Random Access Memory：ランダムアクセスメモリ）を含む。なお、図５には２つの主記憶装置５２Ａ、５２Ｂを示すが、主記憶装置は３つ以上あってもよい。
【００７４】
メモリコントローラ５４は、ＣＰＵ５１と主記憶装置５２Ａ、５２Ｂとの間でデータの転送を行う。メモリコントローラ５４は、主記憶装置５２Ａ、５２Ｂとの境界におけるデータ通信を実現するために、メモリＩ／Ｆ５４Ａを有する。
【００７５】
実施の形態１の半導体装置は、例えば、メモリＩ／Ｆ５４Ａ内に信号遅延回路を有するメモリコントローラ５４である。図５には、ＣＰＵ５１がメモリコントローラ５４を含む形態を示すが、メモリコントローラ５４はＣＰＵ５１の外部にあってもよい。また、実施の形態１の半導体装置は、メモリコントローラ５４を含むチップセットであってもよい。
【００７６】
ここで、実施の形態１の半導体装置に含まれる信号遅延回路は、入力信号に遅延を与えた出力信号を出力する信号遅延回路の一例である。実施の形態１の半導体装置に含まれる信号遅延回路の出力信号は、例えば、実施の形態１の半導体装置としてのメモリコントローラ５４が主記憶装置５２Ａ、５２Ｂとの間でデータ転送を行う際のシステムクロックとして用いられる。
【００７７】
次に、図６を用いて実施の形態１の半導体装置に含まれる信号遅延回路１００について説明する。
【００７８】
図６は、実施の形態１の半導体装置に含まれる信号遅延回路１００を示す図である。
【００７９】
信号遅延回路１００は、エラー検出部１４０の構成が比較例の信号遅延回路１と異なる。また、信号遅延回路１００では、位相検出部２０は８ビットの位相信号phase[7:0]を出力し、フィルタ部３０は８ビットのselect[7:0]と、８ビットの安定動作範囲を表すコードcode_N[7:0]及びcode_m[7:0]とを出力する。
【００８０】
その他の構成は比較例の信号遅延回路１と同様であり、信号遅延回路１００は遅延部１０に入力するクロック（clock_in）に遅延を与えたクロック（clock_out）を出力する。
【００８１】
以下、比較例の信号遅延回路１と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
【００８２】
まず、図７を用いて、位相検出部２０について説明する。
【００８３】
図７は、実施の形態１の半導体装置に含まれる信号遅延回路１００の位相検出部２０を示す図である。
【００８４】
位相検出部２０には、遅延部１０から出力されるクロック（clock_out）が入力される。また、位相検出部２０には、多相クロックφ０〜φ２５５が入力されている。多相クロックφ０〜φ２５５は、クロック（clock_in）の１周期を２５６分割して得る単位位相をクロック（clock_in）に順次付加することによって得られるクロックである。
【００８５】
クロックφ０は、クロック（clock_in）と同位相であり、クロックφ１はクロック（clock_in）より単位位相１つ分だけ位相が進んでおり、φ２５４はクロック（clock_in）より単位位相２５４個分だけ位相が進んでおり、２５５はクロック（clock_in）より単位位相２５５個分だけ位相が進んでいる。
【００８６】
位相検出部２０は、遅延部１０から出力されるクロック（clock_out）と多相クロックφ０〜φ２５５を比較し、多相クロックφ０〜φ２５５のうち、遅延部１０から出力されるクロック（clock_out）と位相が一致するクロック（φ０〜φ２５５のうちのいずれか１つ）の位相を遅延部１０から出力されるクロック（clock_out）の位相として検出する。
【００８７】
位相検出部２０は、検出した位相を表す８ビットの位相信号phase[7:0]を出力する。
【００８８】
次に、エラー検出部１４０について説明する。
【００８９】
エラー検出部１４０は、信号遅延回路１００又は信号遅延回路１００を含む半導体装置の外部で生じる要因（外的要因）に応じて、許容範囲を変更する点が比較例の信号遅延回路１のエラー検出部４０と異なる。エラー検出部１４０による許容範囲の変更の詳細については、図１４乃至図１７を用いて後述する。
【００９０】
ここで、クロックの位相が安定動作範囲（Ｎ−ｍ〜Ｎ）から逸脱する要因としては、信号遅延回路１００又は信号遅延回路１００を含む半導体装置の外部で生じる要因（外的要因）が挙げられる。外的要因としては、例えば、クロックの周波数、信号遅延回路１００の温度、電源電圧の変動分がある。これらのうち、電源電圧の変動分には、低周波成分であるワンダと、高周波成分であるジッタがある。
【００９１】
エラー検出部１４０には、制御レジスタ１５０を介して、周波数検出部１６０、温度検出部１７０、低周波成分検出部１８０、及び高周波成分検出部１９０が接続されている。
【００９２】
周波数検出部１６０、温度検出部１７０、低周波成分検出部１８０、及び高周波成分検出部１９０は、それぞれ、信号遅延回路１００に入力するクロックの外的要因として、クロックの周波数、信号遅延回路１００の温度、電源電圧の変動分を表すワンダ、及び電源電圧に含まれるジッタを検出する。
【００９３】
周波数検出部１６０は、クロックの周波数を検出し、デジタル変換してクロックの周波数を表す４ビットの周波数信号d_frequency[3:0]を出力する。周波数検出部１６０は、例えば、図８に示す周波数検出部を用いることができる。
【００９４】
図８は、実施の形態１の半導体装置に含まれる信号遅延回路１００の周波数検出部１６０を示す図である。
【００９５】
周波数検出部１６０には、遅延部１０に入力するクロック（clock_in）が分岐して入力される。ここで、周波数検出部１６０は、例えば、周波数が８５（ＭＨｚ）から１１３（ＭＨｚ）までの周波数を検出するものとする。周波数検出部１６０には、８５（ＭＨｚ）から１１３（ＭＨｚ）までの周波数の多相クロックφ８５〜φ１１３が入力されている。
【００９６】
多相クロックφ８５〜φ１１３は、１（ＭＨｚ）毎に８５（ＭＨｚ）から１１３（ＭＨｚ）までの周波数が割り当てられた２９個のクロックである。
【００９７】
周波数検出部１６０は、クロック（clock_in）と多相クロックφ８５〜φ１１３を比較し、多相クロックφ８５〜φ１１３のうち、クロック（clock_in）と周期が一致するクロック（φ８５〜φ１１３のうちのいずれか１つ）の周波数をクロック（clock_in）の周波数として検出する。
【００９８】
温度検出部１７０は、遅延部１０に取り付けられており、遅延部１０の温度を検出し、デジタル変換して遅延部の温度を表す４ビットの温度信号d_temperature[3:0]を出力する。説明の便宜上、図６では温度検出部１７０と遅延部１０は離して示すが、実際には温度検出部１７０は遅延部１０の温度を検出できるように、遅延部１０の近傍に設けられている。
【００９９】
低周波成分検出部１８０は、遅延部１０の電源電圧の変動分を表すワンダを検出し、デジタル変換して遅延部１０の電源電圧に含まれるワンダの電圧値を表す４ビットの電源電圧信号d_power_range[3:0]を出力する。低周波成分検出部１８０としては、例えば、図９に示す低周波成分検出部を用いることができる。
【０１００】
図９は、実施の形態１の半導体装置に含まれる信号遅延回路１００の低周波成分検出部１８０を示す図である。
【０１０１】
低周波成分検出部１８０は、ローパスフィルタ部１８１と検出部１８２を有する。ローパスフィルタ部１８１は、電源電圧が入力される線路に対して直列に挿入される抵抗器Ｒと、電源電圧が入力される線路とグランドとの間に挿入されるキャパシタＣとを有する。
【０１０２】
検出部１８２は、ローパスフィルタ部１８１の出力側に接続されており、電源電圧の成分のうちローパスフィルタ部１８１を通過した低周波成分を検出し、電源電圧の変動分を表す電源電圧信号d_power_range[3:0]を出力する。
【０１０３】
高周波成分検出部１９０は、遅延部１０の電源電圧に含まれるジッタを検出し、デジタル変換して遅延部の電源電圧に含まれるジッタの電圧値を示す４ビットのジッタ信号d_jitter_range[3:0]を出力する。高周波成分検出部１９０としては、例えば、図１０に示す高周波成分検出部を用いることができる。
【０１０４】
図１０は、実施の形態１の半導体装置に含まれる信号遅延回路１００の高周波成分検出部１９０を示す図である。
【０１０５】
高周波成分検出部１９０は、ハイパスフィルタ部１９１と検出部１９２を有する。ハイパスフィルタ部１９１は、電源電圧が入力される線路に対して直列に挿入されるキャパシタＣと、電源電圧が入力される線路とグランドとの間に挿入される抵抗器Ｒとを有する。
【０１０６】
検出部１９２は、ハイパスフィルタ部１９１の出力側に接続されており、電源電圧の成分のうちハイパスフィルタ部１９１を通過した高周波成分を検出し、電源電圧の変動分を表す４ビットのジッタ信号d_jitter_range[3:0]を出力する。
【０１０７】
次に、図６及び図１１を用いて、制御レジスタ１５０について説明する。
【０１０８】
図６に示すように、制御レジスタ１５０には、周波数検出部１６０、温度検出部１７０、低周波成分検出部１８０、及び高周波成分検出部１９０から周波数信号d_frequency[3:0]、温度信号d_temperature[3:0]、電源電圧信号d_power_range[3:0]、及びジッタ信号d_jitter_range[3:0]が入力される。
【０１０９】
制御レジスタ１５０としては、図１１に示す制御レジスタを用いることができる。
【０１１０】
図１１は、実施の形態１の半導体装置に含まれる信号遅延回路１００の制御レジスタ１５０を示す図である。
【０１１１】
制御レジスタ１５０は、格納レジスタ１５１と、符号変換器１５２〜１５５を有する。
【０１１２】
格納レジスタ１５１は４ビットの信号を保持し、符号変換器１５２〜１５５に渡す。符号変換器１５２〜１５５は、４ビットを信号を３ビットの信号に変換する組合せ回路を有しており、４ビットを信号を３ビットの信号に変換して出力する。
【０１１３】
制御レジスタ１５０は、４ビットの周波数信号、温度信号、電源電圧信号、及びジッタ信号を３ビットの周波数信号、温度信号、電源電圧信号、及びジッタ信号に変換して出力する。
【０１１４】
制御レジスタ１５０から出力される３ビットの周波数信号、温度信号、電源電圧信号、ジッタ信号を、それぞれ、frequency[2:0]、temperature[2:0]、power_range[2:0]、jitter_range[2:0]と表す。
【０１１５】
周波数信号frequency[2:0]、温度信号temperature[2:0]、及び電源電圧信号power_range[2:0]、ジッタ信号jitter_range[2:0]は、信号遅延回路１００のエラー検出部１４０に入力される。
【０１１６】
ここで、図１２を用いて、電源電圧のワンダとジッタについて説明する。
【０１１７】
図１２（Ａ）は電源電圧のワンダの例示的な波形を示す図であり、図１２（Ｂ）は電源電圧のジッタの例示的な波形を示す図である。図１２（Ａ）、（Ｂ）において、破線で示すのは、基準となる電源電圧である。
【０１１８】
実施の形態１の半導体装置に含まれる信号遅延回路１００では、一例として、電源電圧に含まれる周波数が１０（ｋＨｚ）未満の比較的周波数の低い周期的な変動分をワンダ（図１２（Ａ）参照）として取り扱う。実際に検出されるワンダの周期は、例えば、（※）１００（Ｈｚ）程度のものである。
【０１１９】
また、実施の形態１の半導体装置に含まれる信号遅延回路１００では、一例として、電源電圧に含まれる周波数が１０（ｋＨｚ）以上の比較的周波数の高い周期的な変動分をジッタ（図１２（Ｂ）参照）として取り扱う。
【０１２０】
ワンダとジッタは、電源電圧の変動分の例であり、ワンダは低周波成分検出部１８０によって検出され、ジッタは高周波成分検出部１９０によって検出される。
【０１２１】
次に、図１３を用いて、実施の形態１の信号遅延回路１００の制御レジスタ１５０の４ビットの入力信号と、３ビットの出力信号との関係について説明する。
【０１２２】
図１３は、実施の形態１の信号遅延回路１００の制御レジスタ１５０の入力信号の値と出力信号の値との対応関係を示す図である。
【０１２３】
制御レジスタ１５０は、図１３に示す対応関係の通りに、４ビットの周波数信号、温度信号、電源電圧信号、及びジッタ信号を３ビットの周波数信号、温度信号、電源電圧信号、及びジッタ信号に変換する。以下、周波数信号、温度信号、電源電圧信号、及びジッタ信号の変換について順番に説明する。
【０１２４】
図１３（Ａ）に示すように、制御レジスタ１５０は、４ビットの周波数信号d_frequency[3:0]を３ビットの周波数信号frequency[2:0]に変換する。
【０１２５】
図１３（Ａ）には、周波数が８５（ＭＨｚ）未満から１１３（ＭＨｚ）以上の範囲の変換テーブルを示す。
【０１２６】
４ビットの周波数信号d_frequency[3:0]は、図１３（Ａ）に示すように、８５（ＭＨｚ）未満が"０"、８５（ＭＨｚ）以上８７（ＭＨｚ）未満が"１"、・・・、１１１（ＭＨｚ）以上１１３（ＭＨｚ）未満が"１４"、１１３（ＭＨｚ）以上が"１５"と割り振られている。
【０１２７】
これに対して、３ビットの周波数信号frequency[2:0]は、８７（ＭＨｚ）未満が"０"、８７（ＭＨｚ）以上９１（ＭＨｚ）未満が"１"、・・・、１０７（ＭＨｚ）以上１１１（ＭＨｚ）未満が"６"、１１１（ＭＨｚ）以上が"７"と割り振られている。
【０１２８】
制御レジスタ１５０は、図１３（Ａ）に示す変換テーブルを用いて、４ビットの周波数信号d_frequency[3:0]を３ビットの周波数信号frequency[2:0]に変換する。
【０１２９】
例えば、周波数が９８（ＭＨｚ）で４ビットの周波数信号d_frequency[3:0]が"７"を表す場合は、周波数信号d_frequency[3:0]は、"３"を表す３ビットの周波数信号frequency[2:0]に変換される。
【０１３０】
次に温度の変換について説明する。
【０１３１】
図１３（Ｂ）に示すように、制御レジスタ１５０は、４ビットの温度信号d_temperature[3:0]を３ビットの温度信号temperature[2:0]に変換する。
【０１３２】
図１３（Ｂ）には、温度が−２０（℃）未満から１２０（℃）以上の範囲の変換テーブルを示す。
【０１３３】
４ビットの温度信号d_temperature[3:0]は、図１３（Ｂ）に示すように、−２０（℃）未満が"０"、−２０（℃）以上−１０（℃）未満が"１"、・・・、１１０（℃）以上１２０（℃）未満が"１４"、１２０（℃）以上が"１５"と割り振られている。
【０１３４】
これに対して、３ビットの温度信号temperature[2:0]は、−２０（℃）未満が"０"、−２０（℃）以上０（℃）未満が"１"、・・・、８０（℃）以上１００（℃）未満が"６"、１００（℃）以上が"７"と割り振られている。
【０１３５】
制御レジスタ１５０は、図１３（Ｂ）に示す変換テーブルを用いて、４ビットの温度信号d_temperature[3:0]を３ビットの温度信号temperature[2:0]に変換する。
【０１３６】
例えば、温度が４５（℃）で４ビットの温度信号d_temperature[3:0]が"７"を表す場合は、温度信号d_temperature[3:0]は、"４"を表す３ビットの温度信号temperature[2:0]に変換される。
【０１３７】
次に、電源電圧の変動分（ワンダ）の変換について説明する。
【０１３８】
図１３（Ｃ）に示すように、制御レジスタ１５０は、４ビットの電源電圧信号d_power_range[3:0]を３ビットの電源電圧信号power_range[2:0]に変換する。
【０１３９】
ここでは、電源電圧の変動分を電源電圧に対する百分率で表し、図１３（Ｃ）には、電源電圧の変動分が０（％）から絶対値で１４（％）以上の範囲の変換テーブルを示す。
【０１４０】
ここで、電源電圧は＋側に変動することも、−側に変動することもあるため、図１３（Ｃ）では電源電圧の変動分を表す数値に±の符号を付して示す。
【０１４１】
また、以下では、＋側の変動と−側の変動とを同時に説明するために、電源電圧の変動分の値を絶対値で取り扱って、４ビットの電源電圧信号と３ビットの電源電圧信号との対応関係について説明する。
【０１４２】
４ビットの電源電圧信号d_power_range[3:0]は、図１３（Ｃ）に示すように、０（％）のときに"０"、０（％）より大きく絶対値で１（％）未満が"１"、・・・、絶対値で１３（％）以上１４（％）未満が"１４"、絶対値で１４（％）以上が"１５"と割り振られている。
【０１４３】
これに対して、３ビットの電源電圧信号power_range[2:0]は、０（％）が"０"、０（％）より大きく絶対値で２（％）未満が"１"、・・・、絶対値で１０（％）以上１２（％）未満が"６"、絶対値で１２（％）以上が"７"と割り振られている。
【０１４４】
制御レジスタ１５０は、図１３（Ｃ）に示す変換テーブルを用いて、４ビットの電源電圧信号d_power_range[3:0]を３ビットの電源電圧信号power_range[2:0]に変換する。
【０１４５】
例えば、電源電圧の変動分が−６．５（％）で４ビットの電源電圧信号d_power_range[3:0]が"７"を表す場合は、電源電圧信号d_power_range[3:0]は、"４"を表す３ビットの電源電圧信号power_range[2:0]に変換される。
【０１４６】
次に、電源電圧に含まれるジッタの変換について説明する。
【０１４７】
図１３（Ｄ）に示すように、制御レジスタ１５０は、４ビットのジッタ信号d_jitter_range[3:0]を３ビットのジッタ信号jitter_range[2:0]に変換する。
【０１４８】
ここでは、ジッタの電圧値をｍＶ単位で表し、図１３（Ｄ）には、ジッタが０（ｍＶ）から絶対値で７０（ｍＶ）以上の範囲の変換テーブルを示す。
【０１４９】
ここで、ジッタは＋側に変動することも、−側に変動することもあるため、図１３（Ｄ）ではジッタに±の符号を付して示す。
【０１５０】
また、以下では、＋側の変動と−側の変動とを同時に説明するために、ジッタを絶対値で取り扱って、４ビットのジッタ信号と３ビットのジッタ信号との対応関係について説明する。
【０１５１】
４ビットのジッタ信号d_jitter_range[3:0]は、図１３（Ｄ）に示すように、０（ｍＶ）のときに"０"、０（ｍＶ）より大きく絶対値で５（ｍＶ）未満が"１"、・・・、絶対値で６５（ｍＶ）以上７０（ｍＶ）未満が"１４"、絶対値で７０（ｍＶ）以上が"１５"と割り振られている。
【０１５２】
これに対して、３ビットのジッタ信号jitter_range[2:0]は、０（ｍＶ）が"０"、０（ｍＶ）より大きく絶対値で１０（ｍＶ）未満が"１"、・・・、絶対値で５０（ｍＶ）以上６０（ｍＶ）未満が"６"、絶対値で６０（ｍＶ）以上が"７"と割り振られている。
【０１５３】
制御レジスタ１５０は、図１３（Ｄ）に示す変換テーブルを用いて、４ビットのジッタ信号d_jitter_range[3:0]を３ビットのジッタ信号jitter_range[2:0]に変換する。
【０１５４】
例えば、ジッタが−３３（ｍＶ）で４ビットのジッタ信号d_jitter_range[3:0]が"７"を表す場合は、ジッタ信号d_jitter_range[3:0]は、"４"を表す３ビットのジッタ信号jitter_range[2:0]に変換される。
【０１５５】
なお、実施の形態１では、周波数検出部１６０、温度検出部１７０、低周波成分検出部１８０、及び高周波成分検出部１９０から出力される４ビットの信号を制御レジスタ１５０で３ビットに変換している。
【０１５６】
このようにビット数を低下させる信号変換を行うことにより、周波数、温度、電源電圧の変動を緩和して信号遅延回路１００に入力できるため、外的要因の変動に過度に追従することを抑制でき、信号遅延回路１００を含む半導体装置の動作の安定化を図ることができる。
【０１５７】
なお、ビット数を低下させる信号変換は行わなくてもよいため、制御レジスタ１５０を用いずに、周波数検出部１６０、温度検出部１７０、低周波成分検出部１８０、及び高周波成分検出部１９０の出力を信号遅延回路１００に直接的に入力してもよい。
【０１５８】
次に、図１４乃至図１７を用いて、エラー検出部１４０による許容範囲の変更について説明する。
【０１５９】
図１４は、実施の形態１の半導体装置に含まれる信号遅延回路１００のエラー検出部１４０がクロックの周波数の変動に応じて変更する許容範囲を示す図である。
【０１６０】
エラー検出部１４０は、フィルタ部３０から入力される８ビットの安定動作範囲を表すコードcode_N[7:0]及びcode_m[7:0]に基づき、第１許容範囲（Ｎ−ｍ〜Ｎ）を設定する。第１許容範囲は、比較例の信号遅延回路１のエラー検出部４０の許容範囲に対応する。
【０１６１】
また、エラー検出部１４０は、制御レジスタ１５０から入力される周波数信号frequency[2:0]、温度信号temperature[2:0]、電源電圧信号power_range[2:0]、ジッタ信号jitter_range[2:0]に基づき、第１許容範囲の外側に隣接する第２許容範囲を設定する。第２許容範囲の幅をｌとする。
【０１６２】
実施の形態１の信号遅延回路１００では、code_N[7:0]は第１許容範囲の上限Ｎを表し、code_m[7:0]は第１許容範囲の幅ｍを表す。この場合に、目標値は、code_N[7:0]−｛（code_m[7:0]）／２｝で表される。また、第２許容範囲の幅はlである。
【０１６３】
なお、比較例の信号遅延回路１と同様に、第１許容範囲の上限Ｎと幅ｍは、フィルタ部３０が、フィルタ部３０に入力される位相信号（phase）が表すクロックの位相の分布に基づいて信号遅延回路１００が適切に動作するように決定する。なお、フィルタ部３０は、目標値を用いて第１許容範囲の上限Ｎと幅ｍを決定してもよい。
【０１６４】
例えば、Ｎが１３８、ｍが２０、ｌが５であるとする。この状態では、図１４（Ａ）に示すように、第１許容範囲（Ｎ−ｍ〜Ｎ）は１１８から１３８の間となる。なお、目標値は１２８である。
【０１６５】
このときに、エラー検出部１４０は、第２許容範囲として、Ｎ−ｍ−ｌからＮ−ｍまでの範囲と、ＮからＮ＋ｌまでの範囲とを設定する。これらの範囲の幅はともにｌである。
【０１６６】
ここで、例えば、ｌが５であるとすると、Ｎ−ｍ−ｌは１１３、Ｎ＋ｌは１４３であるため、図１４（Ａ）に示すように、第２許容範囲は１１３から１１８までの間と、１３８から１４３までの間に設定されることになる。
【０１６７】
このように、第１許容範囲の下側及び上側に隣接する第２許容範囲を設定することにより、エラー検出部１４０の許容範囲は、第１許容範囲の下限及び上限から、下側の第２許容範囲の下限から上側の第２許容範囲の上限まで拡大されることになる。
【０１６８】
ここで、クロックの位相は、クロックの周波数、遅延部１０の温度、遅延部１０の電源電圧の変動範囲（ワンダ又はジッタ）等の外的要因によって変動する傾向がある。
【０１６９】
このため、実施の形態１の信号遅延回路１００は、エラー検出部１４０の許容範囲を単に拡大するだけではなく、外的要因に応じて第２許容範囲の幅を変動させることにより、エラー検出部１４０の第１許容範囲と第２許容範囲を合わせた許容範囲を変動させる。
【０１７０】
まず、図１４（Ｂ）を用いて、クロックの周波数が上昇した場合について説明する。
【０１７１】
エラー検出部１４０は、クロックの周波数が上昇すると、第１許容範囲の上限Ｎを変更せずに、第１許容範囲の幅ｍを小さくするとともに、第２許容範囲の幅ｌを小さくする。
【０１７２】
クロックの周波数が上昇すると、クロック信号の精度を高い状態に維持するために、位相誤差に対する感度を高くする必要がある。このため、第１許容範囲の幅ｍを小さくするとともに、第２許容範囲ｌを小さくする。
【０１７３】
例えば、図１４（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力される周波数信号frequency[2:0]に基づいてエラー検出部１４０がクロックの周波数の上昇を検出したとする。
【０１７４】
このとき、エラー検出部１４０は、第１許容範囲の幅ｍを小さくするとともに、第２許容範囲の幅ｌを小さくする。
【０１７５】
例えば、エラー検出部１４０が第１許容範囲の幅を２０から１５に小さくするとともに、第２許容範囲の幅ｌを５から４に小さくした場合は、図１４（Ｂ）に示すように、第１許容範囲は１２３から１３８までの間になり、第２許容範囲は１１９から１２３までの間と、１３８から１４２までの間になる。
【０１７６】
次に、図１４（Ｃ）を用いて、クロックの周波数が低下した場合について説明する。
【０１７７】
エラー検出部１４０は、クロックの周波数が低下すると、許容範囲の上限Ｎを変更せずに、第１許容範囲の幅ｍを大きくするとともに、第２許容範囲の幅ｌを大きくする。
【０１７８】
クロックの周波数が低下すると、クロック信号の精度を緩和することができるので、位相誤差に対する感度を低下させることができる。このため、第１許容範囲の幅ｍを大きくするとともに、第２許容範囲ｌを大きくする。
【０１７９】
例えば、図１４（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力される周波数信号frequency[2:0]に基づいてエラー検出部１４０がクロックの周波数の低下を検出したとする。
【０１８０】
このとき、エラー検出部１４０は、第１許容範囲の幅ｍを大きくするとともに、第２許容範囲の幅ｌを大きくする。
【０１８１】
例えば、エラー検出部１４０が第１許容範囲の幅を２０から２５に大きくするとともに、第２許容範囲の幅ｌを５から６に大きくした場合は、図１４（Ｃ）に示すように、第１許容範囲は１１３から１３８までの間になり、第２許容範囲は１０７から１１３までの間と、１３８から１４４までの間になる。
【０１８２】
以上のように、エラー検出部１４０は、クロックの周波数の変化に応じて、許容範囲を変動させる。
【０１８３】
なお、ここでは、第１許容範囲の上限Ｎは、クロックの周波数の変動によって影響を受けない形態について説明したが、第１許容範囲の上限Ｎは、クロックの周波数の変動前と目標値を同一値に維持するために、第１許容範囲の幅ｍの変動に合わせて変えてもよい。
【０１８４】
すなわち、Ｎ−ｍ／２で表される目標値がクロックの周波数が上昇する前と同一値になるように、第１許容範囲の上限Ｎと第１許容範囲の幅ｍをともに小さくしてもよい。
【０１８５】
また、Ｎ−ｍ／２で表される目標値がクロックの周波数が低下する前と同一値になるように、第１許容範囲の上限値と第１許容範囲の幅をともに大きくしてもよい。
【０１８６】
また、第２許容範囲は、第１許容範囲の下側又は上側のいずれか一方だけに設定してもよい。
【０１８７】
次に、図１５を用いて遅延部１０の温度の変動に応じて許容範囲を変更する場合について説明する。
【０１８８】
図１５は、実施の形態１の半導体装置に含まれる信号遅延回路１００のエラー検出部１４０が遅延部１０の温度の変動に応じて変更する許容範囲を示す図である。
【０１８９】
クロックの周波数が変動した場合と同様に、例えば、Ｎが１３８、ｍが２０、ｌが５であるとする。この状態では、図１５（Ａ）に示すように、第１許容範囲（Ｎ−ｍ〜Ｎ）は１１８から１３８の間となる。なお、目標値は１２８である。
【０１９０】
遅延部１０に含まれるインバータとセレクタは、ＣＭＯＳ（Complementary Metal Oxide Semiconductor; 相補型金属酸化膜半導体）を含むので、温度が上昇すると動作速度が低下し、遅延量が増加する。一方、温度が低下すると、ＣＭＯＳの動作速度が高くなるので、遅延部１０の遅延量は減少する。
【０１９１】
温度が上昇すると、遅延部１０に含まれる一段の遅延量が増加するため、所定の遅延量を得るために必要な段数が少なくて済むようになる。このため、エラー検出部１４０は、温度が上昇すると、第１許容範囲の上限Ｎを小さくする。
【０１９２】
また、同様に、エラー検出部１４０は、温度が上昇すると、第１許容範囲の幅ｍを小さくし、第２許容範囲の幅ｌも小さくする。
【０１９３】
例えば、図１５（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力される温度信号temperature[2:0]に基づいてエラー検出部１４０が遅延部１０の温度の上昇を検出したとする。
【０１９４】
このとき、エラー検出部１４０は、第１許容範囲の上限Ｎ、第１許容範囲の幅ｍ、及び第２許容範囲の幅ｌを小さくする。
【０１９５】
例えば、エラー検出部１４０が第１許容範囲の上限Ｎを１３８から１３０に小さくし、第１許容範囲の幅を２０から１５に小さくし、第２許容範囲の幅ｌを５から４に小さくした場合は、図１５（Ｂ）に示すように、第１許容範囲は１１５から１３０までの間になり、第２許容範囲は１１１から１１５までの間と、１３０から１３４までの間になる。
【０１９６】
一方、温度が低下すると、遅延部１０に含まれる一段の遅延量が減少するため、所定の遅延量を得るために必要な段数が増加する。このため、エラー検出部１４０は、許容範囲の上限Ｎを大きくする。
【０１９７】
また、同様に、エラー検出部１４０は、温度が低下すると、第１許容範囲の幅ｍを大きくし、第２許容範囲の幅ｌも大きくする。
【０１９８】
例えば、図１５（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力される温度信号temperature[2:0]に基づいてエラー検出部１４０が遅延部１０の温度の低下を検出したとする。
【０１９９】
このとき、エラー検出部１４０は、第１許容範囲の上限Ｎ、第１許容範囲の幅ｍ、及び第２許容範囲の幅ｌを大きくする。
【０２００】
例えば、エラー検出部１４０が第１許容範囲の上限Ｎを１３８から１４５に大きくし、第１許容範囲の幅を２０から２５に大きくし、第２許容範囲の幅ｌを５から６に大きくした場合は、図１５（Ｃ）に示すように、第１許容範囲は１２０から１４５までの間になり、第２許容範囲は１１４から１２０までの間と、１４５から１５１までの間になる。
【０２０１】
以上のように、エラー検出部１４０は、遅延部１０の温度の変化に応じて、許容範囲を変動させる。
【０２０２】
なお、第２許容範囲は、第１許容範囲の下側又は上側のいずれか一方だけに設定してもよい。
【０２０３】
次に、図１６を用いて遅延部１０の電源電圧の電圧範囲の変動に応じて許容範囲を変更する場合について説明する。
【０２０４】
図１６は、実施の形態１の半導体装置に含まれる信号遅延回路１００のエラー検出部１４０が電源電圧の電圧範囲の変動に応じて変更する許容範囲を示す図である。
【０２０５】
クロックの周波数が変動した場合と同様に、例えば、Ｎが１３８、ｍが２０、ｌが５であるとする。この状態では、図１６（Ａ）に示すように、第１許容範囲（Ｎ−ｍ〜Ｎ）は１１８から１３８の間となる。なお、目標値は１２８である。
【０２０６】
遅延部１０の電源電圧が＋側に変動すると、遅延部１０に含まれるＣＭＯＳの動作速度が速くなるため、信号遅延回路１０の各段における単位遅延時間が短くなる。
【０２０７】
一方、遅延部１０の電源電圧が−側に変動すると、遅延部１０に含まれるＣＭＯＳの動作速度が遅くなるため、信号遅延回路１０の各段における単位遅延時間が長くなる。
【０２０８】
電源電圧は、例えば、ワンダによって、＋側に振れる場合と、−側に振れる場合がある。
【０２０９】
このため、エラー検出部１４０は、電源電圧が＋側に変動すると、第１許容範囲の上限値Ｎと第１許容範囲の幅ｍを大きくする。
【０２１０】
一方、エラー検出部１４０は、電源電圧が−側に変動すると、第１許容範囲の上限値Ｎと第１許容範囲の幅ｍを小さくする。
【０２１１】
また、遅延部１０の電源電圧の変動度合が絶対値で増大傾向にあるとき、遅延部１０の単位遅延時間の変化量は絶対値で増加傾向にある。
【０２１２】
具体的には、遅延部１０の電源電圧が＋方向に変動する度合が増大傾向にあるときは、遅延部１０の単位遅延時間が短縮する変化量は増加傾向にある。これとは逆に、遅延部１０の電源電圧が−方向に変動する度合が増大傾向にあるときは、遅延部１０の単位遅延時間が増大する変化量は増加傾向にある。
【０２１３】
また、遅延部１０の電源電圧の変動度合が絶対値で減少傾向にあるとき、遅延部１０の単位遅延時間の変化量は絶対値で減少傾向にある。
【０２１４】
具体的には、遅延部１０の電源電圧が＋方向に変動する度合が減少傾向にあるときは、遅延部１０の単位遅延時間が短縮する変化量は減少傾向にある。これとは逆に、遅延部１０の電源電圧が−方向に変動する度合が減少傾向にあるときは、遅延部１０の単位遅延時間が増大する変化量は減少傾向にある。
【０２１５】
このため、エラー検出部１４０は、遅延部１０の電源電圧の変動度合が絶対値で増大傾向にあるときは、第２許容範囲の幅ｌを大きくする。
【０２１６】
一方、エラー検出部１４０は、遅延部１０の電源電圧の変動度合が絶対値で減少傾向にあるときは、第２許容範囲の幅ｌを小さくする。
【０２１７】
エラー検出部１４０は、遅延部１０の電源電圧が＋側に変動し、かつ、遅延部１０の電源電圧の変動度合が増大傾向にあるときは、第１許容範囲の上限値Ｎと第１許容値の幅ｍを大きくするとともに、第２許容範囲の幅ｌを大きくする。
【０２１８】
例えば、図１６（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力される電源電圧信号power_range[2:0]に基づいてエラー検出部１４０が遅延部１０の電源電圧が＋側に変動し、かつ、遅延部１０の電源電圧の変動度合が増大傾向にあることを検出したとする。
【０２１９】
このとき、エラー検出部１４０は、第１許容範囲の上限値Ｎ、第１許容値の幅ｍ、及び第２許容範囲の幅ｌを大きくする。
【０２２０】
例えば、エラー検出部１４０が第１許容範囲の上限Ｎを１３８から１４５に大きくし、第１許容範囲の幅を２０から２５に大きくし、第２許容範囲の幅ｌを５から６に大きくしたとする。この場合は、図１６（Ｂ）に示すように、第１許容範囲は１２０から１４５までの間になり、第２許容範囲は１１４から１２０までの間と、１４５から１５１までの間になる。
【０２２１】
エラー検出部１４０は、遅延部１０の電源電圧が−側に変動し、かつ、遅延部１０の電源電圧の変動度合が増大傾向にあるときは、第１許容範囲の上限値Ｎと第１許容値の幅ｍを小さくするとともに、第２許容範囲の幅ｌを大きくする。
【０２２２】
例えば、図１６（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力される電源電圧信号power_range[2:0]に基づいてエラー検出部１４０が遅延部１０の電源電圧が−側に変動し、かつ、遅延部１０の電源電圧の変動度合が増大傾向にあることを検出したとする。
【０２２３】
このとき、エラー検出部１４０は、第１許容範囲の上限値Ｎと第１許容値の幅ｍを小さくするとともに、第２許容範囲の幅ｌを大きくする。
【０２２４】
例えば、エラー検出部１４０が第１許容範囲の上限Ｎを１３８から１３０に小さくし、第１許容範囲の幅を２０から１５に小さくし、第２許容範囲の幅ｌを５から６に大きくしたとする。この場合は、図１６（Ｃ）に示すように、第１許容範囲は１１５から１３０までの間になり、第２許容範囲は１０９から１１５までの間と、１３０から１３６までの間になる。
【０２２５】
エラー検出部１４０は、遅延部１０の電源電圧が＋側に変動し、かつ、遅延部１０の電源電圧の変動度合が減少傾向にあるときは、第１許容範囲の上限値Ｎと第１許容値の幅ｍを大きくするとともに、第２許容範囲の幅ｌを小さくする。
【０２２６】
例えば、図１６（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力される電源電圧信号power_range[2:0]に基づいてエラー検出部１４０が遅延部１０の電源電圧が＋側に変動し、かつ、遅延部１０の電源電圧の変動度合が減少傾向にあることを検出したとする。
【０２２７】
このとき、エラー検出部１４０は、第１許容範囲の上限値Ｎと第１許容値の幅ｍを大きくするとともに、第２許容範囲の幅ｌを小さくする。
【０２２８】
例えば、エラー検出部１４０が第１許容範囲の上限Ｎを１３８から１４５に大きくし、第１許容範囲の幅を２０から２５に大きくし、第２許容範囲の幅ｌを５から４に小さくしたとする。この場合は、図１６（Ｄ）に示すように、第１許容範囲は１２０から１４５までの間になり、第２許容範囲は１１６から１２０までの間と、１４５から１４９までの間になる。
【０２２９】
エラー検出部１４０は、遅延部１０の電源電圧が−側に変動し、かつ、遅延部１０の電源電圧の変動度合が減少傾向にあるときは、第１許容範囲の上限値Ｎと第１許容値の幅ｍを小さくするとともに、第２許容範囲の幅ｌを小さくする。
【０２３０】
例えば、図１６（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力される電源電圧信号power_range[2:0]に基づいてエラー検出部１４０が遅延部１０の電源電圧が−側に変動し、かつ、遅延部１０の電源電圧の変動度合が減少傾向にあることを検出したとする。
【０２３１】
このとき、エラー検出部１４０は、第１許容範囲の上限値Ｎ、第１許容値の幅ｍ、及び第２許容範囲の幅ｌを小さくする。
【０２３２】
例えば、エラー検出部１４０が第１許容範囲の上限Ｎを１３８から１３０に小さくし、第１許容範囲の幅を２０から１５に小さくし、第２許容範囲の幅ｌを５から４に小さくしたとする。この場合は、図１６（Ｅ）に示すように、第１許容範囲は１１５から１３０までの間になり、第２許容範囲は１１１から１１５までの間と、１３０から１３４までの間になる。
【０２３３】
以上のように、エラー検出部１４０は、遅延部１０の電源電圧の電圧範囲の変化に応じて、許容範囲を変動させる。
【０２３４】
なお、第２許容範囲は、第１許容範囲の下側又は上側のいずれか一方だけに設定してもよい。
【０２３５】
次に、図１７を用いて遅延部１０の電源電圧のジッタの変動に応じて許容範囲を変更する場合について説明する。
【０２３６】
遅延部１０の電源電圧のジッタの変動が生じた場合の許容範囲の変更は、基本的に、遅延部１０の電源電圧の電圧範囲の変動が生じた場合の許容範囲の変更と同様である。
【０２３７】
図１７は、実施の形態１の半導体装置に含まれる信号遅延回路１００のエラー検出部１４０が電源電圧のジッタの変動に応じて変更する許容範囲を示す図である。
【０２３８】
クロックの周波数が変動した場合と同様に、例えば、Ｎが１３８、ｍが２０、ｌが５であるとする。この状態では、図１７（Ａ）に示すように、第１許容範囲（Ｎ−ｍ〜Ｎ）は１１８から１３８の間となる。なお、目標値は１２８である。
【０２３９】
遅延部１０の電源電圧が＋側に変動すると、遅延部１０に含まれるＣＭＯＳの動作速度が速くなるため、信号遅延回路１０の各段における単位遅延時間が短くなる。
【０２４０】
一方、遅延部１０の電源電圧が−側に変動すると、遅延部１０に含まれるＣＭＯＳの動作速度が遅くなるため、信号遅延回路１０の各段における単位遅延時間が長くなる。
【０２４１】
電源電圧は、例えば、ジッタによって、＋側に振れる場合と、−側に振れる場合がある。
【０２４２】
このため、エラー検出部１４０は、電源電圧が＋側に変動すると、第１許容範囲の上限値Ｎと第１許容範囲の幅ｍを大きくする。
【０２４３】
一方、エラー検出部１４０は、電源電圧が−側に変動すると、第１許容範囲の上限値Ｎと第１許容範囲の幅ｍを小さくする。
【０２４４】
また、遅延部１０の電源電圧の変動度合が絶対値で増大傾向にあるとき、遅延部１０の単位遅延時間の変化量は絶対値で増加傾向にある。
【０２４５】
具体的には、遅延部１０の電源電圧が＋方向に変動する度合が増大傾向にあるときは、遅延部１０の単位遅延時間が短縮する変化量は増加傾向にある。これとは逆に、遅延部１０の電源電圧が−方向に変動する度合が増大傾向にあるときは、遅延部１０の単位遅延時間が増大する変化量は増加傾向にある。
【０２４６】
また、遅延部１０の電源電圧の変動度合が絶対値で減少傾向にあるとき、遅延部１０の単位遅延時間の変化量は絶対値で減少傾向にある。
【０２４７】
具体的には、遅延部１０の電源電圧が＋方向に変動する度合が減少傾向にあるときは、遅延部１０の単位遅延時間が短縮する変化量は減少傾向にある。これとは逆に、遅延部１０の電源電圧が−方向に変動する度合が減少傾向にあるときは、遅延部１０の単位遅延時間が増大する変化量は減少傾向にある。
【０２４８】
このため、エラー検出部１４０は、遅延部１０の電源電圧の変動度合が絶対値で増大傾向にあるときは、第２許容範囲の幅ｌを大きくする。
【０２４９】
一方、エラー検出部１４０は、遅延部１０の電源電圧の変動度合が絶対値で減少傾向にあるときは、第２許容範囲の幅ｌを小さくする。
【０２５０】
エラー検出部１４０は、遅延部１０の電源電圧が＋側に変動し、かつ、遅延部１０の電源電圧の変動度合が増大傾向にあるときは、第１許容範囲の上限値Ｎと第１許容値の幅ｍを大きくするとともに、第２許容範囲の幅ｌを大きくする。
【０２５１】
例えば、図１７（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力されるジッタ信号jitter_range[2:0]に基づいてエラー検出部１４０が遅延部１０の電源電圧が＋側に変動し、かつ、遅延部１０の電源電圧の変動度合が増大傾向にあることを検出したとする。
【０２５２】
このとき、エラー検出部１４０は、第１許容範囲の上限値Ｎ、第１許容値の幅ｍ、及び第２許容範囲の幅ｌを大きくする。
【０２５３】
例えば、エラー検出部１４０が第１許容範囲の上限Ｎを１３８から１４５に大きくし、第１許容範囲の幅を２０から２５に大きくし、第２許容範囲の幅ｌを５から６に大きくしたとする。この場合は、図１７（Ｂ）に示すように、第１許容範囲は１２０から１４５までの間になり、第２許容範囲は１１４から１２０までの間と、１４５から１５１までの間になる。
【０２５４】
エラー検出部１４０は、遅延部１０の電源電圧が−側に変動し、かつ、遅延部１０の電源電圧の変動度合が増大傾向にあるときは、第１許容範囲の上限値Ｎと第１許容値の幅ｍを小さくするとともに、第２許容範囲の幅ｌを大きくする。
【０２５５】
例えば、図１７（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力されるジッタ信号jitter_range[2:0]に基づいてエラー検出部１４０が遅延部１０の電源電圧が−側に変動し、かつ、遅延部１０の電源電圧の変動度合が増大傾向にあることを検出したとする。
【０２５６】
このとき、エラー検出部１４０は、第１許容範囲の上限値Ｎと第１許容値の幅ｍを小さくするとともに、第２許容範囲の幅ｌを大きくする。
【０２５７】
例えば、エラー検出部１４０が第１許容範囲の上限Ｎを１３８から１３０に小さくし、第１許容範囲の幅を２０から１５に小さくし、第２許容範囲の幅ｌを５から６に大きくしたとする。この場合は、図１７（Ｃ）に示すように、第１許容範囲は１１５から１３０までの間になり、第２許容範囲は１０９から１１５までの間と、１３０から１３６までの間になる。
【０２５８】
エラー検出部１４０は、遅延部１０の電源電圧が＋側に変動し、かつ、遅延部１０の電源電圧の変動度合が減少傾向にあるときは、第１許容範囲の上限値Ｎと第１許容値の幅ｍを大きくするとともに、第２許容範囲の幅ｌを小さくする。
【０２５９】
例えば、図１７（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力されるジッタ信号jitter_range[2:0]に基づいてエラー検出部１４０が遅延部１０の電源電圧が＋側に変動し、かつ、遅延部１０の電源電圧の変動度合が減少傾向にあることを検出したとする。
【０２６０】
このとき、エラー検出部１４０は、第１許容範囲の上限値Ｎと第１許容値の幅ｍを大きくするとともに、第２許容範囲の幅ｌを小さくする。
【０２６１】
例えば、エラー検出部１４０が第１許容範囲の上限Ｎを１３８から１４５に大きくし、第１許容範囲の幅を２０から２５に大きくし、第２許容範囲の幅ｌを５から４に小さくしたとする。この場合は、図１７（Ｄ）に示すように、第１許容範囲は１２０から１４５までの間になり、第２許容範囲は１１６から１２０までの間と、１４５から１４９までの間になる。
【０２６２】
エラー検出部１４０は、遅延部１０の電源電圧が−側に変動し、かつ、遅延部１０の電源電圧の変動度合が減少傾向にあるときは、第１許容範囲の上限値Ｎと第１許容値の幅ｍを小さくするとともに、第２許容範囲の幅ｌを小さくする。
【０２６３】
例えば、図１７（Ａ）に示す第１許容範囲及び第２許容範囲を設定している場合に、制御レジスタ１５０から入力されるジッタ信号jitter_range[2:0]に基づいてエラー検出部１４０が遅延部１０の電源電圧が−側に変動し、かつ、遅延部１０の電源電圧の変動度合が減少傾向にあることを検出したとする。
【０２６４】
このとき、エラー検出部１４０は、第１許容範囲の上限値Ｎ、第１許容値の幅ｍ、及び第２許容範囲の幅ｌを小さくする。
【０２６５】
例えば、エラー検出部１４０が第１許容範囲の上限Ｎを１３８から１３０に小さくし、第１許容範囲の幅を２０から１５に小さくし、第２許容範囲の幅ｌを５から４に小さくしたとする。この場合は、図１７（Ｅ）に示すように、第１許容範囲は１１５から１３０までの間になり、第２許容範囲は１１１から１１５までの間と、１３０から１３４までの間になる。
【０２６６】
以上のように、エラー検出部１４０は、遅延部１０の電源電圧のジッタの変化に応じて、許容範囲を変動させる。
【０２６７】
なお、第２許容範囲は、第１許容範囲の下側又は上側のいずれか一方だけに設定してもよい。
【０２６８】
以上、実施の形態１の半導体装置に含まれる信号遅延回路１００によれば、外的要因によってクロックの位相が変動した場合は、外的要因の変動に応じて、エラー検出部１４０の許容範囲を変動させる。
【０２６９】
このため、誤検出を抑制することができ、実施の形態１の信号遅延回路１００を含む半導体装置全体の円滑かつ安定的な動作を確保することができる。
【０２７０】
特に、クロック周波数の変動、信号遅延回路１００の温度の変動、電源電圧の変動分（ワンダ又はジッタの変動分）に応じて、エラー検出部１４０の許容範囲を変動させる。
【０２７１】
このため、信号遅延回路１００の応答性を確保しつつ、外的要因に応じて許容範囲を最適に設定することにより、外的要因の種類及び変動傾向に応じて、信号遅延回路１００及び信号遅延回路１００を含む半導体装置の円滑かつ安定的な動作を確保することができる。
【０２７２】
＜実施の形態２＞
図１８は、実施の形態２の半導体装置に含まれる信号遅延回路２００を示す図である。
【０２７３】
実施の形態２の信号遅延回路２００は、実施の形態１の信号遅延回路１００のフィルタ部３０を平均化回路部２３０に変更したものである。
【０２７４】
その他の構成は、実施の形態１の信号遅延回路１００と同様であるため、同一又は同等の構成要素には同一符号を付し、その説明を省略する。
【０２７５】
平均化回路部２３０は、遅延部１０から出力されるクロックの位相の目標値を保持しており、遅延部１０から出力されるクロックの位相がある一定の範囲に収まるように、平均化処理を行う。この一定の範囲は、実施の形態１の信号遅延回路１００のフィルタ部３０が有する安定動作範囲に対応する。
【０２７６】
平均化回路部２３０が設定する一定の範囲は、遅延部１０から出力されるクロックの位相の目標値を略中央とする所定幅を有する範囲である。
【０２７７】
平均化回路部２３０は、平均化処理により、位相検出部２０からクロックの周期毎に入力される位相信号（phase）が表すクロックの位相の平均値を出力する。
【０２７８】
平均化回路部２３０は、入力されるクロックの位相と目標値との差に応じて遅延部１０における遅延量を調節するための選択信号（select）を遅延部１０に帰還する。また、平均化回路部２３０は、一定の範囲を表すコードをエラー検出部４０に出力する。平均化回路部２３０が平均化処理に用いる一定の範囲の上限はcode_N[7:0]で表され、一定範囲の幅はcode_m[7:0]で表される。
【０２７９】
エラー検出部１４０は、平均化回路部２３０から入力される一定の範囲の上限code_N[7:0]と一定範囲の幅code_m[7:0]を用いて、実施の形態１の信号遅延回路１００のエラー検出部１４０と同様に、入力するクロックの外的要因に応じて、許容範囲を変更する。
【０２８０】
このため、実施の形態２の信号遅延回路２００は、外的要因によってクロックの位相が変動した場合は、外的要因の変動に応じて、エラー検出部１４０の許容範囲を変動させる。
【０２８１】
このため、誤検出を抑制することができ、実施の形態２の信号遅延回路２００を含む半導体装置全体の円滑かつ安定的な動作を確保することができる。
【０２８２】
特に、クロック周波数の変動、信号遅延回路１００の温度の変動、電源電圧の変動分（ワンダ又はジッタの変動分）に応じて、エラー検出部１４０の許容範囲を変動させる。
【０２８３】
このため、信号遅延回路２００の応答性を確保しつつ、外的要因に応じて許容範囲を最適に設定することにより、外的要因の種類及び変動傾向に応じて、信号遅延回路２００及び信号遅延回路２００を含む半導体装置の円滑かつ安定的な動作を確保することができる。
【０２８４】
以上、本発明の例示的な実施の形態の半導体装置、及び情報処理装置について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０２８５】
１、１００、２００  信号遅延回路
１０  遅延部
１１Ａ、１２Ａ、１３Ａ、１１Ｃ、１２Ｃ、１３Ｃ  インバータ
１１Ｂ、１２Ｂ、１３Ｂ  セレクタ
２０  位相検出部
３０  フィルタ部
４０  エラー検出部
５０  サーバ
５１  ＣＰＵ
５２Ａ、５２Ｂ  主記憶装置
５３Ａ、５３Ｂ  バス
５４Ａ  メモリＩ／Ｆ
１４０  エラー検出部
１５０  制御レジスタ
１５１  格納レジスタ
１５２、１５３、１５４、１５５  符号変換器
１６０  周波数検出部
１７０  温度検出部
１８０  低周波成分検出部
１８１  ローパスフィルタ部
１８２  検出部
１９０  高周波成分検出部
１９１  ハイパスフィルタ部
１９２  検出部
２３０  平均化回路部
【図１】
2012101776.tif 000003
【図２】
2012101776.tif 000004
【図３】
2012101776.tif 000005
【図４】
2012101776.tif 000006
【図５】
2012101776.tif 000007
【図６】
2012101776.tif 000008
【図７】
2012101776.tif 000009
【図８】
2012101776.tif 000010
【図９】
2012101776.tif 000011
【図１０】
2012101776.tif 000012
【図１１】
2012101776.tif 000013
【図１２】
2012101776.tif 000014
【図１３】
2012101776.tif 000015
【図１４】
2012101776.tif 000016
【図１５】
2012101776.tif 000017
【図１６】
2012101776.tif 000018
【図１７】
2012101776.tif 000019
【図１８】
2012101776.tif 000020
【国際調査報告】
2012101776.tif 000021
2012101776.tif 000022