以下、本発明の半導体装置、及び情報処理装置を適用した実施の形態について説明する。
実施の形態1及び2の半導体装置、及び情報処理装置について説明する前に、まず、図1乃至図3を用いて、比較例の半導体装置に含まれる信号遅延回路について説明する。
図1は、比較例の信号遅延回路1を示すブロック図である。
比較例の信号遅延回路1は、例えば、LSI(Large Scale Integrated circuit:大規模集積回路)によって実現される。
信号遅延回路1は、遅延部10、位相検出部20、フィルタ部30、及びエラー検出部40を含む。
遅延部10は、入力されたクロック(clock_in)に遅延を与えたクロック(clock_out)を出力する。遅延部10でクロックに与える遅延時間は、フィルタ部30から入力される選択信号(select)により可変的に設定される。遅延部10から出力されるクロックは、信号遅延回路1の出力(clock_out)として出力されるとともに、位相検出部20に入力される。
位相検出部20は、遅延部10から出力されるクロックの位相を検出し、クロックの位相を表す位相信号(phase)をフィルタ部30とエラー検出部40に出力する。位相検出部20は、例えば、クロックの毎周期の立ち上がりの位相を検出する。
フィルタ部30は、遅延部10から出力されるクロックの位相の目標値を保持しており、遅延部10から出力されるクロックの位相の安定動作範囲を設定する。フィルタ部30が設定する安定動作範囲は、遅延部10から出力されるクロックの位相の目標値を略中央とする所定幅を有する範囲である。
フィルタ部30は、フィルタ処理により、位相検出部20からクロックの周期毎に入力される位相信号(phase)が表すクロックの位相のうち、安定動作範囲から位相が外れるクロックを除去する。また、フィルタ部30は、安定動作範囲内にあるクロックの位相と目標値との差に応じて遅延部10における遅延量を調節するための選択信号(select)を遅延部10に帰還する。また、フィルタ部30は、安定動作範囲を表すコード(code)をエラー検出部40に出力する。
エラー検出部40は、フィルタ部30から出力される安定動作範囲を表すコード信号(code)に基づいて安定動作範囲に対応する許容範囲を設定するとともに、遅延部10から出力されるクロックの位相が許容範囲内にあるか否かを判定する。
エラー検出部40は、フィルタ部30が設定する安定動作範囲と同一の範囲を有する許容範囲を設定する。このため、エラー検出部40は、位相検出部20で検出されるクロックの位相が、フィルタ部30によって設定される安定動作範囲を逸脱していないかを判定することができる。
エラー検出部40は、例えば、許容範囲の上限及び下限を表すコード(code)と、クロックの位相を表すコード(phase)とを含む状態信号(status)を出力する。また、エラー検出部40は、位相検出部20で検出されるクロックの位相が許容範囲から逸脱したと判定すると、エラーが生じた旨を表すエラー信号(error)を出力する。状態信号(status)とエラー信号(error)は、信号遅延回路1を含むシステムの監視系統に伝送される。
以上のように、比較例の信号遅延回路1は、入力信号(クロック)に遅延を与えることにより、目標値に応じた位相を有する出力信号(クロック)を出力する。
図2は、比較例の信号遅延回路1に含まれる遅延部10を示す図である。
遅延部10は、インバータ11A、12A、13A、セレクタ11B、12B、13B、及びインバータ11C、12C、13Cを含む。
インバータ11A〜13Aは、信号の折り返し点となるセレクタ11B〜13Bに信号を伝搬するためのフォワード側のインバータであり、インバータ11C〜13Cは、信号がセレクタ11B〜13Bで折り返した後に信号を伝搬するリターン側のインバータである。
インバータ11A〜13Aは、それぞれ、入力信号を反転して出力する否定回路である。
インバータ11A〜13Aは、それぞれ、出力端子と入力端子が接続されることにより、直列に接続される遅延素子の一例である。インバータ11Aの入力端子は、遅延部10の入力端子INに接続されており、インバータ13Aの出力端子は、セレクタ13Bの一方の入力端子に接続されるとともに、開放されている(open)。
セレクタ11B〜13Bは、それぞれ、インバータ11A〜13Aに対応して設けられている。セレクタ11B〜13Bは、2つの入力端子と選択信号入力端子Sとを有し、選択信号入力端子Sに入力される選択信号に応じて、いずれかの入力を選択して出力する選択部の一例である。
ここで、セレクタ11B、12Bの選択信号入力端子Sには、フィルタ部30から"1"又は"0"の選択信号が入力される。また、セレクタ13Bの選択信号入力端子Sには、信号レベルが"1"にクリップされた選択信号が入力される。セレクタ13Bの選択信号入力端子Sには、例えば、電源電圧を抵抗器等で電圧変換することにより、選択信号の信号レベル"1"を表す所定電圧を生成して入力すればよい。
このため、セレクタ11B、12Bは、フィルタ部30から入力される選択信号("1"又は"0")に応じていずれかの入力を選択して出力し、セレクタ13Bは常にインバータ13Aの出力を選択して出力する。
インバータ11C〜13Cは、それぞれ、入力信号を反転して出力する否定回路であり、セレクタ11B〜13Bに対応して設けられている。インバータ11C〜13Cは、セレクタ11B〜13Bと交互に直列に接続されており、それぞれ、セレクタ11B〜13Bの各々の出力を反転して出力する。インバータ11C〜13Cは、遅延素子の一例である。
セレクタ13Bの一方の入力端子には、インバータ13Aの出力端子が接続されている。セレクタ13Bの他方の入力端子は接地されており、固定データとして"0"が入力される。
セレクタ12Bの一方の入力端子には、インバータ12Aの出力端子が接続され、他方の入力端子には、インバータ13Cの出力端子が接続されている。
セレクタ11Bの一方の入力端子には、インバータ11Aの出力端子が接続され、他方の入力端子には、インバータ12Cの出力端子が接続されている。
インバータ11Cの入力端子には、セレクタ11Bの出力端子が接続され、インバータ11Cの出力端子は、遅延部10の出力端子OUTに接続されている。
遅延部10は、入力端子INに入力される信号をセレクタ11B〜12Bのうちのどこで折り返すかにより、入力端子INに入力される信号の遅延量を調節して出力端子OUTから出力する。
なお、上述したように、遅延部10の入力端子INから見て一番奥にあるセレクタ13Bの選択信号入力端子Sには、信号レベルが"1"にクリップされた選択信号が入力されるため、セレクタ13Bは常にインバータ13Aの出力を選択する。
比較例の半導体装置に含まれる信号遅延回路1において、セレクタ11B、12Bに入力される選択信号が、それぞれ、"0"、"0"である場合、セレクタ11B、12Bは、それぞれ、インバータ12C、13Cの出力を選択するため、遅延部10における信号の折り返し点はセレクタ13Bになる。
セレクタ11B、12Bに入力される選択信号が、それぞれ、"0"、"1"である場合、セレクタ11Bはインバータ12Cの出力を選択し、セレクタ12Bはインバータ12Aの出力を選択するため、信号の折り返し点はセレクタ12Bになる。
なお、このとき、セレクタ13Bはインバータ13Aの出力を選択してインバータ13Cに入力するが、インバータ13Cの出力はセレクタ12Bによって選択されないため、セレクタ13Bは信号の折り返し点にはならない。
セレクタ11B、12Bに入力される選択信号が、それぞれ、"1"、"0"である場合、セレクタ11Bがインバータ11Aの出力を選択するため、信号の折り返し点はセレクタ11Bになる。
なお、このとき、セレクタ13Bはインバータ13Aの出力を選択してインバータ13Cに入力し、インバータ13Cの出力はセレクタ12Bによって選択されるが、インバータ12Cの出力はセレクタ11Bによって選択されないため、セレクタ13Bは信号の折り返し点にはならない。
なお、ここでは、一例として、3段のインバータ11A、12A、13A、セレクタ11B、12B、13B、及びインバータ11C、12C、13Cを含む遅延部10について説明したが、フォワード側及びリターン側のインバータとセレクタの段数は、クロックに与える遅延量に応じて決めればよい。
例えば、クロックに180°の位相を与えた出力信号を出力する場合には、例えば、8ビットの選択信号を用いて、257段のフォワード側及びリターン側のインバータとセレクタを用いて遅延量を段階的に設定してもよい。
この場合は、フィルタ部30が出力する8ビットの選択信号を256ビットの選択信号に変換して、257段のセレクタのうち、遅延部10の入力端子IN及び出力端子OUTから見て最も奥にあるセレクタ以外の256個のセレクタに、入力すればよい。なお、この場合、遅延部10の入力端子IN及び出力端子OUTから見て最も奥にあるセレクタには、常に信号を折り返すように、信号値を固定した選択信号を入力すればよい。
また、図2には、一例として、フォワード側のインバータを伝送される信号をセレクタで折り返してリターン側のインバータを経て出力する形式の遅延部10を示すが、遅延部10の回路構成は折り返す形式のものに限らない。遅延部10は、入力信号に遅延を与えて出力できる回路であれば他の回路構成のものであってもよく、その形式は問わない。
次に、図3(A)〜(C)を用いて、位相検出部20で検出されるクロックの位相、フィルタ部30が設定する安定動作範囲、及びエラー検出部40が設定する許容範囲について説明する。なお、図3(A)〜(C)では、クロックの位相を点で示す。
図3(A)は、比較例の信号遅延回路1のフィルタ部30に入力される位相信号(phase)が表すクロックの位相と安定動作範囲との関係を模式的に示す図である。図3(A)に示す位相を表す点は、フィルタ部30によるフィルタ処理が行われる前のクロックの位相であり、位相検出部20によって検出されるクロックの位相を表す。
図3(B)は、フィルタ部30によってフィルタ処理が行われた後のクロックの位相と安定動作範囲との関係を模式的に示す図である。
図3(C)は、エラー検出部40における許容範囲とクロックの位相との関係を模式的に示す図である。
ここで、安定動作範囲及び許容範囲の上限をN、安定動作範囲及び許容範囲の幅をmとする。フィルタ部30が保持するクロックの位相の目標値は、N−(m/2)で表されるものとする。
第1許容範囲の上限Nと幅mは、フィルタ部30が、フィルタ部30に入力される位相信号(phase)が表すクロックの位相の分布に基づいて信号遅延回路100が適切に動作するように決定する。なお、フィルタ部30は、目標値を用いて第1許容範囲の上限Nと幅mを決定してもよい。
図3(A)に示すように、位相検出部20で検出されるクロックの位相は、目標値を中心とする安定動作範囲(N−m〜N)内に殆どが存在する。
安定動作範囲(N−m〜N)から位相が逸脱するクロックは、例えば、遅延部10の異常、又はクロックの異常等が原因で生じる場合があるが、その他にも、例えば、クロックの周波数、遅延部10の温度、又は遅延部10の電源電圧の変動等によって生じる場合がある。
このように、クロックの位相が安定動作範囲(N−m〜N)から逸脱するのは、信号遅延回路1又は信号遅延回路1を含む半導体装置の外部で生じる要因(外的要因)によって生じる場合がある。
安定動作範囲(N−m〜N)から逸脱したクロックの位相は、フィルタ部30のフィルタ処理によって取り除かれるため、フィルタ処理が終わった後のクロックの位相は、図3(B)に破線の楕円A内に示すように、安定動作範囲(N−m〜N)内に収まる。
また、エラー検出部40は、フィルタ部30と同一の許容範囲(N−m〜N)を有するため、図3(C)に示すようなクロックの位相を表す位相信号(phase)が位相検出部20から入力されると、クロックの位相が許容範囲(N−m〜N)内に入る場合は正常と判定するが、許容範囲(N−m〜N)から逸脱すると異常が発生したと判定する。
すなわち、エラー検出部40は、図3(C)に破線で示す楕円A内のクロックの位相は許容範囲(N−m〜N)内に入るため正常と判定し、楕円B、C内に入るクロックの位相については異常と判定する。
異常が発生したとエラー検出部40が判定した場合は、エラー信号が信号遅延回路1を含むシステムの監視系統に伝送され、例えば、信号遅延回路1を含むシステムの動作が停止される。
ところで、クロックの周波数、信号遅延回路1の温度、電源電圧の変動等の外的要因によって信号遅延回路1に入力するクロックの位相が変動する場合の中には、エラー検出部40がエラー判定を行なわなくても、信号遅延回路1を含むシステムの動作に影響を生じない場合がある。
例えば、外的要因の発生頻度が極端に低い(例えば1%未満)場合、又は、信号遅延回路1の外部でデータの監視が行われている場合は、エラー判定を行なわなくても、信号遅延回路1を含むシステムの動作に影響を生じない場合がある。
ここで、信号遅延回路1の外部でデータの監視が行われている場合としては、例えば、クロック(clock_in)に同期したデータ転送を行っているバス等で、ECC(Error Checking and Correction)符号を伴ったデータ転送を行っている場合、又は、イネーブル信号等を伴ったデータ転送を行っている場合がある。
また、外的要因によってクロックの位相が変動してエラー検出部40の許容範囲から逸脱するのは、例えば、確率的に数パーセント以下(例えば、1万回の検出において、数回から数十回程度)であり、全体のクロックの位相から見るとごく僅かである。
従って、外的要因によるクロックの位相の変動が比較的少ない場合については、エラー検出部40でエラー判定を行わずに、信号遅延回路1を含むシステムの動作を継続する方がシステム全体を円滑かつ安定的に動作させることができる。
以上のように、比較例の信号遅延回路1を含む半導体装置では、外的要因でクロックの位相が許容範囲から逸脱した場合には、一律的にエラー判定を行うため、信号遅延回路1を含むサーバ等の情報処理装置を停止することになり、システム全体を円滑かつ安定的に動作させることが困難になる場合が生じる可能性があった。
このため、以下で説明する実施の形態1及び2では、上述の問題点を解決した半導体装置、及び情報処理装置を提供することを目的とする。以下、実施の形態1及び2の半導体装置、及び情報処理装置について説明する。
<実施の形態1>
以下、実施の形態1の半導体装置、及び情報処理装置について説明するにあたり、比較例の半導体装置と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
図4は、実施の形態1の半導体装置を含むサーバ50を示す図である。
図4に示すサーバ50は、実施の形態1の半導体装置を含む情報処理装置の一例である。サーバ50は、例えば、CPU(Central Processing Unit:中央演算装置)及び主記憶装置等を含む。
図5は、実施の形態1の半導体装置を含むサーバ50を示すブロック図である。
サーバ50は、CPU51及び主記憶装置52A、52Bを含む。CPU51と主記憶装置52A、52Bは、それぞれ、バス53A、53Bによって接続されている。
CPU51は、メモリコントローラ54を含み、メモリコントローラ54内のメモリI/F(Interface:インターフェイス)54Aを介して主記憶装置52A、52Bとの間でデータの取得又は転送を行うとともに、取得したデータの処理を行う。
主記憶装置52A、52Bは、例えば、複数のモジュール化されたRAM(Random Access Memory:ランダムアクセスメモリ)を含む。なお、図5には2つの主記憶装置52A、52Bを示すが、主記憶装置は3つ以上あってもよい。
メモリコントローラ54は、CPU51と主記憶装置52A、52Bとの間でデータの転送を行う。メモリコントローラ54は、主記憶装置52A、52Bとの境界におけるデータ通信を実現するために、メモリI/F54Aを有する。
実施の形態1の半導体装置は、例えば、メモリI/F54A内に信号遅延回路を有するメモリコントローラ54である。図5には、CPU51がメモリコントローラ54を含む形態を示すが、メモリコントローラ54はCPU51の外部にあってもよい。また、実施の形態1の半導体装置は、メモリコントローラ54を含むチップセットであってもよい。
ここで、実施の形態1の半導体装置に含まれる信号遅延回路は、入力信号に遅延を与えた出力信号を出力する信号遅延回路の一例である。実施の形態1の半導体装置に含まれる信号遅延回路の出力信号は、例えば、実施の形態1の半導体装置としてのメモリコントローラ54が主記憶装置52A、52Bとの間でデータ転送を行う際のシステムクロックとして用いられる。
次に、図6を用いて実施の形態1の半導体装置に含まれる信号遅延回路100について説明する。
図6は、実施の形態1の半導体装置に含まれる信号遅延回路100を示す図である。
信号遅延回路100は、エラー検出部140の構成が比較例の信号遅延回路1と異なる。また、信号遅延回路100では、位相検出部20は8ビットの位相信号phase[7:0]を出力し、フィルタ部30は8ビットのselect[7:0]と、8ビットの安定動作範囲を表すコードcode_N[7:0]及びcode_m[7:0]とを出力する。
その他の構成は比較例の信号遅延回路1と同様であり、信号遅延回路100は遅延部10に入力するクロック(clock_in)に遅延を与えたクロック(clock_out)を出力する。
以下、比較例の信号遅延回路1と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
まず、図7を用いて、位相検出部20について説明する。
図7は、実施の形態1の半導体装置に含まれる信号遅延回路100の位相検出部20を示す図である。
位相検出部20には、遅延部10から出力されるクロック(clock_out)が入力される。また、位相検出部20には、多相クロックφ0〜φ255が入力されている。多相クロックφ0〜φ255は、クロック(clock_in)の1周期を256分割して得る単位位相をクロック(clock_in)に順次付加することによって得られるクロックである。
クロックφ0は、クロック(clock_in)と同位相であり、クロックφ1はクロック(clock_in)より単位位相1つ分だけ位相が進んでおり、φ254はクロック(clock_in)より単位位相254個分だけ位相が進んでおり、255はクロック(clock_in)より単位位相255個分だけ位相が進んでいる。
位相検出部20は、遅延部10から出力されるクロック(clock_out)と多相クロックφ0〜φ255を比較し、多相クロックφ0〜φ255のうち、遅延部10から出力されるクロック(clock_out)と位相が一致するクロック(φ0〜φ255のうちのいずれか1つ)の位相を遅延部10から出力されるクロック(clock_out)の位相として検出する。
位相検出部20は、検出した位相を表す8ビットの位相信号phase[7:0]を出力する。
次に、エラー検出部140について説明する。
エラー検出部140は、信号遅延回路100又は信号遅延回路100を含む半導体装置の外部で生じる要因(外的要因)に応じて、許容範囲を変更する点が比較例の信号遅延回路1のエラー検出部40と異なる。エラー検出部140による許容範囲の変更の詳細については、図14乃至図17を用いて後述する。
ここで、クロックの位相が安定動作範囲(N−m〜N)から逸脱する要因としては、信号遅延回路100又は信号遅延回路100を含む半導体装置の外部で生じる要因(外的要因)が挙げられる。外的要因としては、例えば、クロックの周波数、信号遅延回路100の温度、電源電圧の変動分がある。これらのうち、電源電圧の変動分には、低周波成分であるワンダと、高周波成分であるジッタがある。
エラー検出部140には、制御レジスタ150を介して、周波数検出部160、温度検出部170、低周波成分検出部180、及び高周波成分検出部190が接続されている。
周波数検出部160、温度検出部170、低周波成分検出部180、及び高周波成分検出部190は、それぞれ、信号遅延回路100に入力するクロックの外的要因として、クロックの周波数、信号遅延回路100の温度、電源電圧の変動分を表すワンダ、及び電源電圧に含まれるジッタを検出する。
周波数検出部160は、クロックの周波数を検出し、デジタル変換してクロックの周波数を表す4ビットの周波数信号d_frequency[3:0]を出力する。周波数検出部160は、例えば、図8に示す周波数検出部を用いることができる。
図8は、実施の形態1の半導体装置に含まれる信号遅延回路100の周波数検出部160を示す図である。
周波数検出部160には、遅延部10に入力するクロック(clock_in)が分岐して入力される。ここで、周波数検出部160は、例えば、周波数が85(MHz)から113(MHz)までの周波数を検出するものとする。周波数検出部160には、85(MHz)から113(MHz)までの周波数の多相クロックφ85〜φ113が入力されている。
多相クロックφ85〜φ113は、1(MHz)毎に85(MHz)から113(MHz)までの周波数が割り当てられた29個のクロックである。
周波数検出部160は、クロック(clock_in)と多相クロックφ85〜φ113を比較し、多相クロックφ85〜φ113のうち、クロック(clock_in)と周期が一致するクロック(φ85〜φ113のうちのいずれか1つ)の周波数をクロック(clock_in)の周波数として検出する。
温度検出部170は、遅延部10に取り付けられており、遅延部10の温度を検出し、デジタル変換して遅延部の温度を表す4ビットの温度信号d_temperature[3:0]を出力する。説明の便宜上、図6では温度検出部170と遅延部10は離して示すが、実際には温度検出部170は遅延部10の温度を検出できるように、遅延部10の近傍に設けられている。
低周波成分検出部180は、遅延部10の電源電圧の変動分を表すワンダを検出し、デジタル変換して遅延部10の電源電圧に含まれるワンダの電圧値を表す4ビットの電源電圧信号d_power_range[3:0]を出力する。低周波成分検出部180としては、例えば、図9に示す低周波成分検出部を用いることができる。
図9は、実施の形態1の半導体装置に含まれる信号遅延回路100の低周波成分検出部180を示す図である。
低周波成分検出部180は、ローパスフィルタ部181と検出部182を有する。ローパスフィルタ部181は、電源電圧が入力される線路に対して直列に挿入される抵抗器Rと、電源電圧が入力される線路とグランドとの間に挿入されるキャパシタCとを有する。
検出部182は、ローパスフィルタ部181の出力側に接続されており、電源電圧の成分のうちローパスフィルタ部181を通過した低周波成分を検出し、電源電圧の変動分を表す電源電圧信号d_power_range[3:0]を出力する。
高周波成分検出部190は、遅延部10の電源電圧に含まれるジッタを検出し、デジタル変換して遅延部の電源電圧に含まれるジッタの電圧値を示す4ビットのジッタ信号d_jitter_range[3:0]を出力する。高周波成分検出部190としては、例えば、図10に示す高周波成分検出部を用いることができる。
図10は、実施の形態1の半導体装置に含まれる信号遅延回路100の高周波成分検出部190を示す図である。
高周波成分検出部190は、ハイパスフィルタ部191と検出部192を有する。ハイパスフィルタ部191は、電源電圧が入力される線路に対して直列に挿入されるキャパシタCと、電源電圧が入力される線路とグランドとの間に挿入される抵抗器Rとを有する。
検出部192は、ハイパスフィルタ部191の出力側に接続されており、電源電圧の成分のうちハイパスフィルタ部191を通過した高周波成分を検出し、電源電圧の変動分を表す4ビットのジッタ信号d_jitter_range[3:0]を出力する。
次に、図6及び図11を用いて、制御レジスタ150について説明する。
図6に示すように、制御レジスタ150には、周波数検出部160、温度検出部170、低周波成分検出部180、及び高周波成分検出部190から周波数信号d_frequency[3:0]、温度信号d_temperature[3:0]、電源電圧信号d_power_range[3:0]、及びジッタ信号d_jitter_range[3:0]が入力される。
制御レジスタ150としては、図11に示す制御レジスタを用いることができる。
図11は、実施の形態1の半導体装置に含まれる信号遅延回路100の制御レジスタ150を示す図である。
制御レジスタ150は、格納レジスタ151と、符号変換器152〜155を有する。
格納レジスタ151は4ビットの信号を保持し、符号変換器152〜155に渡す。符号変換器152〜155は、4ビットを信号を3ビットの信号に変換する組合せ回路を有しており、4ビットを信号を3ビットの信号に変換して出力する。
制御レジスタ150は、4ビットの周波数信号、温度信号、電源電圧信号、及びジッタ信号を3ビットの周波数信号、温度信号、電源電圧信号、及びジッタ信号に変換して出力する。
制御レジスタ150から出力される3ビットの周波数信号、温度信号、電源電圧信号、ジッタ信号を、それぞれ、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]は、信号遅延回路100のエラー検出部140に入力される。
ここで、図12を用いて、電源電圧のワンダとジッタについて説明する。
図12(A)は電源電圧のワンダの例示的な波形を示す図であり、図12(B)は電源電圧のジッタの例示的な波形を示す図である。図12(A)、(B)において、破線で示すのは、基準となる電源電圧である。
実施の形態1の半導体装置に含まれる信号遅延回路100では、一例として、電源電圧に含まれる周波数が10(kHz)未満の比較的周波数の低い周期的な変動分をワンダ(図12(A)参照)として取り扱う。実際に検出されるワンダの周期は、例えば、(※)100(Hz)程度のものである。
また、実施の形態1の半導体装置に含まれる信号遅延回路100では、一例として、電源電圧に含まれる周波数が10(kHz)以上の比較的周波数の高い周期的な変動分をジッタ(図12(B)参照)として取り扱う。
ワンダとジッタは、電源電圧の変動分の例であり、ワンダは低周波成分検出部180によって検出され、ジッタは高周波成分検出部190によって検出される。
次に、図13を用いて、実施の形態1の信号遅延回路100の制御レジスタ150の4ビットの入力信号と、3ビットの出力信号との関係について説明する。
図13は、実施の形態1の信号遅延回路100の制御レジスタ150の入力信号の値と出力信号の値との対応関係を示す図である。
制御レジスタ150は、図13に示す対応関係の通りに、4ビットの周波数信号、温度信号、電源電圧信号、及びジッタ信号を3ビットの周波数信号、温度信号、電源電圧信号、及びジッタ信号に変換する。以下、周波数信号、温度信号、電源電圧信号、及びジッタ信号の変換について順番に説明する。
図13(A)に示すように、制御レジスタ150は、4ビットの周波数信号d_frequency[3:0]を3ビットの周波数信号frequency[2:0]に変換する。
図13(A)には、周波数が85(MHz)未満から113(MHz)以上の範囲の変換テーブルを示す。
4ビットの周波数信号d_frequency[3:0]は、図13(A)に示すように、85(MHz)未満が"0"、85(MHz)以上87(MHz)未満が"1"、・・・、111(MHz)以上113(MHz)未満が"14"、113(MHz)以上が"15"と割り振られている。
これに対して、3ビットの周波数信号frequency[2:0]は、87(MHz)未満が"0"、87(MHz)以上91(MHz)未満が"1"、・・・、107(MHz)以上111(MHz)未満が"6"、111(MHz)以上が"7"と割り振られている。
制御レジスタ150は、図13(A)に示す変換テーブルを用いて、4ビットの周波数信号d_frequency[3:0]を3ビットの周波数信号frequency[2:0]に変換する。
例えば、周波数が98(MHz)で4ビットの周波数信号d_frequency[3:0]が"7"を表す場合は、周波数信号d_frequency[3:0]は、"3"を表す3ビットの周波数信号frequency[2:0]に変換される。
次に温度の変換について説明する。
図13(B)に示すように、制御レジスタ150は、4ビットの温度信号d_temperature[3:0]を3ビットの温度信号temperature[2:0]に変換する。
図13(B)には、温度が−20(℃)未満から120(℃)以上の範囲の変換テーブルを示す。
4ビットの温度信号d_temperature[3:0]は、図13(B)に示すように、−20(℃)未満が"0"、−20(℃)以上−10(℃)未満が"1"、・・・、110(℃)以上120(℃)未満が"14"、120(℃)以上が"15"と割り振られている。
これに対して、3ビットの温度信号temperature[2:0]は、−20(℃)未満が"0"、−20(℃)以上0(℃)未満が"1"、・・・、80(℃)以上100(℃)未満が"6"、100(℃)以上が"7"と割り振られている。
制御レジスタ150は、図13(B)に示す変換テーブルを用いて、4ビットの温度信号d_temperature[3:0]を3ビットの温度信号temperature[2:0]に変換する。
例えば、温度が45(℃)で4ビットの温度信号d_temperature[3:0]が"7"を表す場合は、温度信号d_temperature[3:0]は、"4"を表す3ビットの温度信号temperature[2:0]に変換される。
次に、電源電圧の変動分(ワンダ)の変換について説明する。
図13(C)に示すように、制御レジスタ150は、4ビットの電源電圧信号d_power_range[3:0]を3ビットの電源電圧信号power_range[2:0]に変換する。
ここでは、電源電圧の変動分を電源電圧に対する百分率で表し、図13(C)には、電源電圧の変動分が0(%)から絶対値で14(%)以上の範囲の変換テーブルを示す。
ここで、電源電圧は+側に変動することも、−側に変動することもあるため、図13(C)では電源電圧の変動分を表す数値に±の符号を付して示す。
また、以下では、+側の変動と−側の変動とを同時に説明するために、電源電圧の変動分の値を絶対値で取り扱って、4ビットの電源電圧信号と3ビットの電源電圧信号との対応関係について説明する。
4ビットの電源電圧信号d_power_range[3:0]は、図13(C)に示すように、0(%)のときに"0"、0(%)より大きく絶対値で1(%)未満が"1"、・・・、絶対値で13(%)以上14(%)未満が"14"、絶対値で14(%)以上が"15"と割り振られている。
これに対して、3ビットの電源電圧信号power_range[2:0]は、0(%)が"0"、0(%)より大きく絶対値で2(%)未満が"1"、・・・、絶対値で10(%)以上12(%)未満が"6"、絶対値で12(%)以上が"7"と割り振られている。
制御レジスタ150は、図13(C)に示す変換テーブルを用いて、4ビットの電源電圧信号d_power_range[3:0]を3ビットの電源電圧信号power_range[2:0]に変換する。
例えば、電源電圧の変動分が−6.5(%)で4ビットの電源電圧信号d_power_range[3:0]が"7"を表す場合は、電源電圧信号d_power_range[3:0]は、"4"を表す3ビットの電源電圧信号power_range[2:0]に変換される。
次に、電源電圧に含まれるジッタの変換について説明する。
図13(D)に示すように、制御レジスタ150は、4ビットのジッタ信号d_jitter_range[3:0]を3ビットのジッタ信号jitter_range[2:0]に変換する。
ここでは、ジッタの電圧値をmV単位で表し、図13(D)には、ジッタが0(mV)から絶対値で70(mV)以上の範囲の変換テーブルを示す。
ここで、ジッタは+側に変動することも、−側に変動することもあるため、図13(D)ではジッタに±の符号を付して示す。
また、以下では、+側の変動と−側の変動とを同時に説明するために、ジッタを絶対値で取り扱って、4ビットのジッタ信号と3ビットのジッタ信号との対応関係について説明する。
4ビットのジッタ信号d_jitter_range[3:0]は、図13(D)に示すように、0(mV)のときに"0"、0(mV)より大きく絶対値で5(mV)未満が"1"、・・・、絶対値で65(mV)以上70(mV)未満が"14"、絶対値で70(mV)以上が"15"と割り振られている。
これに対して、3ビットのジッタ信号jitter_range[2:0]は、0(mV)が"0"、0(mV)より大きく絶対値で10(mV)未満が"1"、・・・、絶対値で50(mV)以上60(mV)未満が"6"、絶対値で60(mV)以上が"7"と割り振られている。
制御レジスタ150は、図13(D)に示す変換テーブルを用いて、4ビットのジッタ信号d_jitter_range[3:0]を3ビットのジッタ信号jitter_range[2:0]に変換する。
例えば、ジッタが−33(mV)で4ビットのジッタ信号d_jitter_range[3:0]が"7"を表す場合は、ジッタ信号d_jitter_range[3:0]は、"4"を表す3ビットのジッタ信号jitter_range[2:0]に変換される。
なお、実施の形態1では、周波数検出部160、温度検出部170、低周波成分検出部180、及び高周波成分検出部190から出力される4ビットの信号を制御レジスタ150で3ビットに変換している。
このようにビット数を低下させる信号変換を行うことにより、周波数、温度、電源電圧の変動を緩和して信号遅延回路100に入力できるため、外的要因の変動に過度に追従することを抑制でき、信号遅延回路100を含む半導体装置の動作の安定化を図ることができる。
なお、ビット数を低下させる信号変換は行わなくてもよいため、制御レジスタ150を用いずに、周波数検出部160、温度検出部170、低周波成分検出部180、及び高周波成分検出部190の出力を信号遅延回路100に直接的に入力してもよい。
次に、図14乃至図17を用いて、エラー検出部140による許容範囲の変更について説明する。
図14は、実施の形態1の半導体装置に含まれる信号遅延回路100のエラー検出部140がクロックの周波数の変動に応じて変更する許容範囲を示す図である。
エラー検出部140は、フィルタ部30から入力される8ビットの安定動作範囲を表すコードcode_N[7:0]及びcode_m[7:0]に基づき、第1許容範囲(N−m〜N)を設定する。第1許容範囲は、比較例の信号遅延回路1のエラー検出部40の許容範囲に対応する。
また、エラー検出部140は、制御レジスタ150から入力される周波数信号frequency[2:0]、温度信号temperature[2:0]、電源電圧信号power_range[2:0]、ジッタ信号jitter_range[2:0]に基づき、第1許容範囲の外側に隣接する第2許容範囲を設定する。第2許容範囲の幅をlとする。
実施の形態1の信号遅延回路100では、code_N[7:0]は第1許容範囲の上限Nを表し、code_m[7:0]は第1許容範囲の幅mを表す。この場合に、目標値は、code_N[7:0]−{(code_m[7:0])/2}で表される。また、第2許容範囲の幅はlである。
なお、比較例の信号遅延回路1と同様に、第1許容範囲の上限Nと幅mは、フィルタ部30が、フィルタ部30に入力される位相信号(phase)が表すクロックの位相の分布に基づいて信号遅延回路100が適切に動作するように決定する。なお、フィルタ部30は、目標値を用いて第1許容範囲の上限Nと幅mを決定してもよい。
例えば、Nが138、mが20、lが5であるとする。この状態では、図14(A)に示すように、第1許容範囲(N−m〜N)は118から138の間となる。なお、目標値は128である。
このときに、エラー検出部140は、第2許容範囲として、N−m−lからN−mまでの範囲と、NからN+lまでの範囲とを設定する。これらの範囲の幅はともにlである。
ここで、例えば、lが5であるとすると、N−m−lは113、N+lは143であるため、図14(A)に示すように、第2許容範囲は113から118までの間と、138から143までの間に設定されることになる。
このように、第1許容範囲の下側及び上側に隣接する第2許容範囲を設定することにより、エラー検出部140の許容範囲は、第1許容範囲の下限及び上限から、下側の第2許容範囲の下限から上側の第2許容範囲の上限まで拡大されることになる。
ここで、クロックの位相は、クロックの周波数、遅延部10の温度、遅延部10の電源電圧の変動範囲(ワンダ又はジッタ)等の外的要因によって変動する傾向がある。
このため、実施の形態1の信号遅延回路100は、エラー検出部140の許容範囲を単に拡大するだけではなく、外的要因に応じて第2許容範囲の幅を変動させることにより、エラー検出部140の第1許容範囲と第2許容範囲を合わせた許容範囲を変動させる。
まず、図14(B)を用いて、クロックの周波数が上昇した場合について説明する。
エラー検出部140は、クロックの周波数が上昇すると、第1許容範囲の上限Nを変更せずに、第1許容範囲の幅mを小さくするとともに、第2許容範囲の幅lを小さくする。
クロックの周波数が上昇すると、クロック信号の精度を高い状態に維持するために、位相誤差に対する感度を高くする必要がある。このため、第1許容範囲の幅mを小さくするとともに、第2許容範囲lを小さくする。
例えば、図14(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力される周波数信号frequency[2:0]に基づいてエラー検出部140がクロックの周波数の上昇を検出したとする。
このとき、エラー検出部140は、第1許容範囲の幅mを小さくするとともに、第2許容範囲の幅lを小さくする。
例えば、エラー検出部140が第1許容範囲の幅を20から15に小さくするとともに、第2許容範囲の幅lを5から4に小さくした場合は、図14(B)に示すように、第1許容範囲は123から138までの間になり、第2許容範囲は119から123までの間と、138から142までの間になる。
次に、図14(C)を用いて、クロックの周波数が低下した場合について説明する。
エラー検出部140は、クロックの周波数が低下すると、許容範囲の上限Nを変更せずに、第1許容範囲の幅mを大きくするとともに、第2許容範囲の幅lを大きくする。
クロックの周波数が低下すると、クロック信号の精度を緩和することができるので、位相誤差に対する感度を低下させることができる。このため、第1許容範囲の幅mを大きくするとともに、第2許容範囲lを大きくする。
例えば、図14(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力される周波数信号frequency[2:0]に基づいてエラー検出部140がクロックの周波数の低下を検出したとする。
このとき、エラー検出部140は、第1許容範囲の幅mを大きくするとともに、第2許容範囲の幅lを大きくする。
例えば、エラー検出部140が第1許容範囲の幅を20から25に大きくするとともに、第2許容範囲の幅lを5から6に大きくした場合は、図14(C)に示すように、第1許容範囲は113から138までの間になり、第2許容範囲は107から113までの間と、138から144までの間になる。
以上のように、エラー検出部140は、クロックの周波数の変化に応じて、許容範囲を変動させる。
なお、ここでは、第1許容範囲の上限Nは、クロックの周波数の変動によって影響を受けない形態について説明したが、第1許容範囲の上限Nは、クロックの周波数の変動前と目標値を同一値に維持するために、第1許容範囲の幅mの変動に合わせて変えてもよい。
すなわち、N−m/2で表される目標値がクロックの周波数が上昇する前と同一値になるように、第1許容範囲の上限Nと第1許容範囲の幅mをともに小さくしてもよい。
また、N−m/2で表される目標値がクロックの周波数が低下する前と同一値になるように、第1許容範囲の上限値と第1許容範囲の幅をともに大きくしてもよい。
また、第2許容範囲は、第1許容範囲の下側又は上側のいずれか一方だけに設定してもよい。
次に、図15を用いて遅延部10の温度の変動に応じて許容範囲を変更する場合について説明する。
図15は、実施の形態1の半導体装置に含まれる信号遅延回路100のエラー検出部140が遅延部10の温度の変動に応じて変更する許容範囲を示す図である。
クロックの周波数が変動した場合と同様に、例えば、Nが138、mが20、lが5であるとする。この状態では、図15(A)に示すように、第1許容範囲(N−m〜N)は118から138の間となる。なお、目標値は128である。
遅延部10に含まれるインバータとセレクタは、CMOS(Complementary Metal Oxide Semiconductor; 相補型金属酸化膜半導体)を含むので、温度が上昇すると動作速度が低下し、遅延量が増加する。一方、温度が低下すると、CMOSの動作速度が高くなるので、遅延部10の遅延量は減少する。
温度が上昇すると、遅延部10に含まれる一段の遅延量が増加するため、所定の遅延量を得るために必要な段数が少なくて済むようになる。このため、エラー検出部140は、温度が上昇すると、第1許容範囲の上限Nを小さくする。
また、同様に、エラー検出部140は、温度が上昇すると、第1許容範囲の幅mを小さくし、第2許容範囲の幅lも小さくする。
例えば、図15(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力される温度信号temperature[2:0]に基づいてエラー検出部140が遅延部10の温度の上昇を検出したとする。
このとき、エラー検出部140は、第1許容範囲の上限N、第1許容範囲の幅m、及び第2許容範囲の幅lを小さくする。
例えば、エラー検出部140が第1許容範囲の上限Nを138から130に小さくし、第1許容範囲の幅を20から15に小さくし、第2許容範囲の幅lを5から4に小さくした場合は、図15(B)に示すように、第1許容範囲は115から130までの間になり、第2許容範囲は111から115までの間と、130から134までの間になる。
一方、温度が低下すると、遅延部10に含まれる一段の遅延量が減少するため、所定の遅延量を得るために必要な段数が増加する。このため、エラー検出部140は、許容範囲の上限Nを大きくする。
また、同様に、エラー検出部140は、温度が低下すると、第1許容範囲の幅mを大きくし、第2許容範囲の幅lも大きくする。
例えば、図15(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力される温度信号temperature[2:0]に基づいてエラー検出部140が遅延部10の温度の低下を検出したとする。
このとき、エラー検出部140は、第1許容範囲の上限N、第1許容範囲の幅m、及び第2許容範囲の幅lを大きくする。
例えば、エラー検出部140が第1許容範囲の上限Nを138から145に大きくし、第1許容範囲の幅を20から25に大きくし、第2許容範囲の幅lを5から6に大きくした場合は、図15(C)に示すように、第1許容範囲は120から145までの間になり、第2許容範囲は114から120までの間と、145から151までの間になる。
以上のように、エラー検出部140は、遅延部10の温度の変化に応じて、許容範囲を変動させる。
なお、第2許容範囲は、第1許容範囲の下側又は上側のいずれか一方だけに設定してもよい。
次に、図16を用いて遅延部10の電源電圧の電圧範囲の変動に応じて許容範囲を変更する場合について説明する。
図16は、実施の形態1の半導体装置に含まれる信号遅延回路100のエラー検出部140が電源電圧の電圧範囲の変動に応じて変更する許容範囲を示す図である。
クロックの周波数が変動した場合と同様に、例えば、Nが138、mが20、lが5であるとする。この状態では、図16(A)に示すように、第1許容範囲(N−m〜N)は118から138の間となる。なお、目標値は128である。
遅延部10の電源電圧が+側に変動すると、遅延部10に含まれるCMOSの動作速度が速くなるため、信号遅延回路10の各段における単位遅延時間が短くなる。
一方、遅延部10の電源電圧が−側に変動すると、遅延部10に含まれるCMOSの動作速度が遅くなるため、信号遅延回路10の各段における単位遅延時間が長くなる。
電源電圧は、例えば、ワンダによって、+側に振れる場合と、−側に振れる場合がある。
このため、エラー検出部140は、電源電圧が+側に変動すると、第1許容範囲の上限値Nと第1許容範囲の幅mを大きくする。
一方、エラー検出部140は、電源電圧が−側に変動すると、第1許容範囲の上限値Nと第1許容範囲の幅mを小さくする。
また、遅延部10の電源電圧の変動度合が絶対値で増大傾向にあるとき、遅延部10の単位遅延時間の変化量は絶対値で増加傾向にある。
具体的には、遅延部10の電源電圧が+方向に変動する度合が増大傾向にあるときは、遅延部10の単位遅延時間が短縮する変化量は増加傾向にある。これとは逆に、遅延部10の電源電圧が−方向に変動する度合が増大傾向にあるときは、遅延部10の単位遅延時間が増大する変化量は増加傾向にある。
また、遅延部10の電源電圧の変動度合が絶対値で減少傾向にあるとき、遅延部10の単位遅延時間の変化量は絶対値で減少傾向にある。
具体的には、遅延部10の電源電圧が+方向に変動する度合が減少傾向にあるときは、遅延部10の単位遅延時間が短縮する変化量は減少傾向にある。これとは逆に、遅延部10の電源電圧が−方向に変動する度合が減少傾向にあるときは、遅延部10の単位遅延時間が増大する変化量は減少傾向にある。
このため、エラー検出部140は、遅延部10の電源電圧の変動度合が絶対値で増大傾向にあるときは、第2許容範囲の幅lを大きくする。
一方、エラー検出部140は、遅延部10の電源電圧の変動度合が絶対値で減少傾向にあるときは、第2許容範囲の幅lを小さくする。
エラー検出部140は、遅延部10の電源電圧が+側に変動し、かつ、遅延部10の電源電圧の変動度合が増大傾向にあるときは、第1許容範囲の上限値Nと第1許容値の幅mを大きくするとともに、第2許容範囲の幅lを大きくする。
例えば、図16(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力される電源電圧信号power_range[2:0]に基づいてエラー検出部140が遅延部10の電源電圧が+側に変動し、かつ、遅延部10の電源電圧の変動度合が増大傾向にあることを検出したとする。
このとき、エラー検出部140は、第1許容範囲の上限値N、第1許容値の幅m、及び第2許容範囲の幅lを大きくする。
例えば、エラー検出部140が第1許容範囲の上限Nを138から145に大きくし、第1許容範囲の幅を20から25に大きくし、第2許容範囲の幅lを5から6に大きくしたとする。この場合は、図16(B)に示すように、第1許容範囲は120から145までの間になり、第2許容範囲は114から120までの間と、145から151までの間になる。
エラー検出部140は、遅延部10の電源電圧が−側に変動し、かつ、遅延部10の電源電圧の変動度合が増大傾向にあるときは、第1許容範囲の上限値Nと第1許容値の幅mを小さくするとともに、第2許容範囲の幅lを大きくする。
例えば、図16(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力される電源電圧信号power_range[2:0]に基づいてエラー検出部140が遅延部10の電源電圧が−側に変動し、かつ、遅延部10の電源電圧の変動度合が増大傾向にあることを検出したとする。
このとき、エラー検出部140は、第1許容範囲の上限値Nと第1許容値の幅mを小さくするとともに、第2許容範囲の幅lを大きくする。
例えば、エラー検出部140が第1許容範囲の上限Nを138から130に小さくし、第1許容範囲の幅を20から15に小さくし、第2許容範囲の幅lを5から6に大きくしたとする。この場合は、図16(C)に示すように、第1許容範囲は115から130までの間になり、第2許容範囲は109から115までの間と、130から136までの間になる。
エラー検出部140は、遅延部10の電源電圧が+側に変動し、かつ、遅延部10の電源電圧の変動度合が減少傾向にあるときは、第1許容範囲の上限値Nと第1許容値の幅mを大きくするとともに、第2許容範囲の幅lを小さくする。
例えば、図16(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力される電源電圧信号power_range[2:0]に基づいてエラー検出部140が遅延部10の電源電圧が+側に変動し、かつ、遅延部10の電源電圧の変動度合が減少傾向にあることを検出したとする。
このとき、エラー検出部140は、第1許容範囲の上限値Nと第1許容値の幅mを大きくするとともに、第2許容範囲の幅lを小さくする。
例えば、エラー検出部140が第1許容範囲の上限Nを138から145に大きくし、第1許容範囲の幅を20から25に大きくし、第2許容範囲の幅lを5から4に小さくしたとする。この場合は、図16(D)に示すように、第1許容範囲は120から145までの間になり、第2許容範囲は116から120までの間と、145から149までの間になる。
エラー検出部140は、遅延部10の電源電圧が−側に変動し、かつ、遅延部10の電源電圧の変動度合が減少傾向にあるときは、第1許容範囲の上限値Nと第1許容値の幅mを小さくするとともに、第2許容範囲の幅lを小さくする。
例えば、図16(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力される電源電圧信号power_range[2:0]に基づいてエラー検出部140が遅延部10の電源電圧が−側に変動し、かつ、遅延部10の電源電圧の変動度合が減少傾向にあることを検出したとする。
このとき、エラー検出部140は、第1許容範囲の上限値N、第1許容値の幅m、及び第2許容範囲の幅lを小さくする。
例えば、エラー検出部140が第1許容範囲の上限Nを138から130に小さくし、第1許容範囲の幅を20から15に小さくし、第2許容範囲の幅lを5から4に小さくしたとする。この場合は、図16(E)に示すように、第1許容範囲は115から130までの間になり、第2許容範囲は111から115までの間と、130から134までの間になる。
以上のように、エラー検出部140は、遅延部10の電源電圧の電圧範囲の変化に応じて、許容範囲を変動させる。
なお、第2許容範囲は、第1許容範囲の下側又は上側のいずれか一方だけに設定してもよい。
次に、図17を用いて遅延部10の電源電圧のジッタの変動に応じて許容範囲を変更する場合について説明する。
遅延部10の電源電圧のジッタの変動が生じた場合の許容範囲の変更は、基本的に、遅延部10の電源電圧の電圧範囲の変動が生じた場合の許容範囲の変更と同様である。
図17は、実施の形態1の半導体装置に含まれる信号遅延回路100のエラー検出部140が電源電圧のジッタの変動に応じて変更する許容範囲を示す図である。
クロックの周波数が変動した場合と同様に、例えば、Nが138、mが20、lが5であるとする。この状態では、図17(A)に示すように、第1許容範囲(N−m〜N)は118から138の間となる。なお、目標値は128である。
遅延部10の電源電圧が+側に変動すると、遅延部10に含まれるCMOSの動作速度が速くなるため、信号遅延回路10の各段における単位遅延時間が短くなる。
一方、遅延部10の電源電圧が−側に変動すると、遅延部10に含まれるCMOSの動作速度が遅くなるため、信号遅延回路10の各段における単位遅延時間が長くなる。
電源電圧は、例えば、ジッタによって、+側に振れる場合と、−側に振れる場合がある。
このため、エラー検出部140は、電源電圧が+側に変動すると、第1許容範囲の上限値Nと第1許容範囲の幅mを大きくする。
一方、エラー検出部140は、電源電圧が−側に変動すると、第1許容範囲の上限値Nと第1許容範囲の幅mを小さくする。
また、遅延部10の電源電圧の変動度合が絶対値で増大傾向にあるとき、遅延部10の単位遅延時間の変化量は絶対値で増加傾向にある。
具体的には、遅延部10の電源電圧が+方向に変動する度合が増大傾向にあるときは、遅延部10の単位遅延時間が短縮する変化量は増加傾向にある。これとは逆に、遅延部10の電源電圧が−方向に変動する度合が増大傾向にあるときは、遅延部10の単位遅延時間が増大する変化量は増加傾向にある。
また、遅延部10の電源電圧の変動度合が絶対値で減少傾向にあるとき、遅延部10の単位遅延時間の変化量は絶対値で減少傾向にある。
具体的には、遅延部10の電源電圧が+方向に変動する度合が減少傾向にあるときは、遅延部10の単位遅延時間が短縮する変化量は減少傾向にある。これとは逆に、遅延部10の電源電圧が−方向に変動する度合が減少傾向にあるときは、遅延部10の単位遅延時間が増大する変化量は減少傾向にある。
このため、エラー検出部140は、遅延部10の電源電圧の変動度合が絶対値で増大傾向にあるときは、第2許容範囲の幅lを大きくする。
一方、エラー検出部140は、遅延部10の電源電圧の変動度合が絶対値で減少傾向にあるときは、第2許容範囲の幅lを小さくする。
エラー検出部140は、遅延部10の電源電圧が+側に変動し、かつ、遅延部10の電源電圧の変動度合が増大傾向にあるときは、第1許容範囲の上限値Nと第1許容値の幅mを大きくするとともに、第2許容範囲の幅lを大きくする。
例えば、図17(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力されるジッタ信号jitter_range[2:0]に基づいてエラー検出部140が遅延部10の電源電圧が+側に変動し、かつ、遅延部10の電源電圧の変動度合が増大傾向にあることを検出したとする。
このとき、エラー検出部140は、第1許容範囲の上限値N、第1許容値の幅m、及び第2許容範囲の幅lを大きくする。
例えば、エラー検出部140が第1許容範囲の上限Nを138から145に大きくし、第1許容範囲の幅を20から25に大きくし、第2許容範囲の幅lを5から6に大きくしたとする。この場合は、図17(B)に示すように、第1許容範囲は120から145までの間になり、第2許容範囲は114から120までの間と、145から151までの間になる。
エラー検出部140は、遅延部10の電源電圧が−側に変動し、かつ、遅延部10の電源電圧の変動度合が増大傾向にあるときは、第1許容範囲の上限値Nと第1許容値の幅mを小さくするとともに、第2許容範囲の幅lを大きくする。
例えば、図17(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力されるジッタ信号jitter_range[2:0]に基づいてエラー検出部140が遅延部10の電源電圧が−側に変動し、かつ、遅延部10の電源電圧の変動度合が増大傾向にあることを検出したとする。
このとき、エラー検出部140は、第1許容範囲の上限値Nと第1許容値の幅mを小さくするとともに、第2許容範囲の幅lを大きくする。
例えば、エラー検出部140が第1許容範囲の上限Nを138から130に小さくし、第1許容範囲の幅を20から15に小さくし、第2許容範囲の幅lを5から6に大きくしたとする。この場合は、図17(C)に示すように、第1許容範囲は115から130までの間になり、第2許容範囲は109から115までの間と、130から136までの間になる。
エラー検出部140は、遅延部10の電源電圧が+側に変動し、かつ、遅延部10の電源電圧の変動度合が減少傾向にあるときは、第1許容範囲の上限値Nと第1許容値の幅mを大きくするとともに、第2許容範囲の幅lを小さくする。
例えば、図17(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力されるジッタ信号jitter_range[2:0]に基づいてエラー検出部140が遅延部10の電源電圧が+側に変動し、かつ、遅延部10の電源電圧の変動度合が減少傾向にあることを検出したとする。
このとき、エラー検出部140は、第1許容範囲の上限値Nと第1許容値の幅mを大きくするとともに、第2許容範囲の幅lを小さくする。
例えば、エラー検出部140が第1許容範囲の上限Nを138から145に大きくし、第1許容範囲の幅を20から25に大きくし、第2許容範囲の幅lを5から4に小さくしたとする。この場合は、図17(D)に示すように、第1許容範囲は120から145までの間になり、第2許容範囲は116から120までの間と、145から149までの間になる。
エラー検出部140は、遅延部10の電源電圧が−側に変動し、かつ、遅延部10の電源電圧の変動度合が減少傾向にあるときは、第1許容範囲の上限値Nと第1許容値の幅mを小さくするとともに、第2許容範囲の幅lを小さくする。
例えば、図17(A)に示す第1許容範囲及び第2許容範囲を設定している場合に、制御レジスタ150から入力されるジッタ信号jitter_range[2:0]に基づいてエラー検出部140が遅延部10の電源電圧が−側に変動し、かつ、遅延部10の電源電圧の変動度合が減少傾向にあることを検出したとする。
このとき、エラー検出部140は、第1許容範囲の上限値N、第1許容値の幅m、及び第2許容範囲の幅lを小さくする。
例えば、エラー検出部140が第1許容範囲の上限Nを138から130に小さくし、第1許容範囲の幅を20から15に小さくし、第2許容範囲の幅lを5から4に小さくしたとする。この場合は、図17(E)に示すように、第1許容範囲は115から130までの間になり、第2許容範囲は111から115までの間と、130から134までの間になる。
以上のように、エラー検出部140は、遅延部10の電源電圧のジッタの変化に応じて、許容範囲を変動させる。
なお、第2許容範囲は、第1許容範囲の下側又は上側のいずれか一方だけに設定してもよい。
以上、実施の形態1の半導体装置に含まれる信号遅延回路100によれば、外的要因によってクロックの位相が変動した場合は、外的要因の変動に応じて、エラー検出部140の許容範囲を変動させる。
このため、誤検出を抑制することができ、実施の形態1の信号遅延回路100を含む半導体装置全体の円滑かつ安定的な動作を確保することができる。
特に、クロック周波数の変動、信号遅延回路100の温度の変動、電源電圧の変動分(ワンダ又はジッタの変動分)に応じて、エラー検出部140の許容範囲を変動させる。
このため、信号遅延回路100の応答性を確保しつつ、外的要因に応じて許容範囲を最適に設定することにより、外的要因の種類及び変動傾向に応じて、信号遅延回路100及び信号遅延回路100を含む半導体装置の円滑かつ安定的な動作を確保することができる。
<実施の形態2>
図18は、実施の形態2の半導体装置に含まれる信号遅延回路200を示す図である。
実施の形態2の信号遅延回路200は、実施の形態1の信号遅延回路100のフィルタ部30を平均化回路部230に変更したものである。
その他の構成は、実施の形態1の信号遅延回路100と同様であるため、同一又は同等の構成要素には同一符号を付し、その説明を省略する。
平均化回路部230は、遅延部10から出力されるクロックの位相の目標値を保持しており、遅延部10から出力されるクロックの位相がある一定の範囲に収まるように、平均化処理を行う。この一定の範囲は、実施の形態1の信号遅延回路100のフィルタ部30が有する安定動作範囲に対応する。
平均化回路部230が設定する一定の範囲は、遅延部10から出力されるクロックの位相の目標値を略中央とする所定幅を有する範囲である。
平均化回路部230は、平均化処理により、位相検出部20からクロックの周期毎に入力される位相信号(phase)が表すクロックの位相の平均値を出力する。
平均化回路部230は、入力されるクロックの位相と目標値との差に応じて遅延部10における遅延量を調節するための選択信号(select)を遅延部10に帰還する。また、平均化回路部230は、一定の範囲を表すコードをエラー検出部40に出力する。平均化回路部230が平均化処理に用いる一定の範囲の上限はcode_N[7:0]で表され、一定範囲の幅はcode_m[7:0]で表される。
エラー検出部140は、平均化回路部230から入力される一定の範囲の上限code_N[7:0]と一定範囲の幅code_m[7:0]を用いて、実施の形態1の信号遅延回路100のエラー検出部140と同様に、入力するクロックの外的要因に応じて、許容範囲を変更する。
このため、実施の形態2の信号遅延回路200は、外的要因によってクロックの位相が変動した場合は、外的要因の変動に応じて、エラー検出部140の許容範囲を変動させる。
このため、誤検出を抑制することができ、実施の形態2の信号遅延回路200を含む半導体装置全体の円滑かつ安定的な動作を確保することができる。
特に、クロック周波数の変動、信号遅延回路100の温度の変動、電源電圧の変動分(ワンダ又はジッタの変動分)に応じて、エラー検出部140の許容範囲を変動させる。
このため、信号遅延回路200の応答性を確保しつつ、外的要因に応じて許容範囲を最適に設定することにより、外的要因の種類及び変動傾向に応じて、信号遅延回路200及び信号遅延回路200を含む半導体装置の円滑かつ安定的な動作を確保することができる。
以上、本発明の例示的な実施の形態の半導体装置、及び情報処理装置について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。