(57)【要約】【課題】一つの実施形態は、所定の遅延量に対応した遅延素子段数を効率的に特定できる半導体集積回路、ＤＬＬ回路、及びデューティ調整回路を提供することを目的とする。【解決手段】一つの実施形態によれば、ディレイチェーンと第１の検出回路と第２の検出回路とを有する半導体集積回路が提供される。ディレイチェーンは、複数の遅延素子が接続されている。第１の検出回路は、ディレイチェーン内が分割されて得られる複数のグループのうち所定の遅延量に対応するグループを検出する。第２の検出回路は、検出されたグループに含まれる複数の遅延素子のうち所定の遅延量に対応する遅延素子を検出する。【選択図】図１
2019050528.tif 000002
【特許請求の範囲】
【請求項１】
複数の遅延素子が接続されたディレイチェーンと、
前記ディレイチェーン内が分割されて得られる複数のグループのうち所定の遅延量に対応するグループを検出する第１の検出回路と、
前記検出されたグループに含まれる複数の遅延素子のうち前記所定の遅延量に対応する遅延素子を検出する第２の検出回路と、
を備えた半導体集積回路。
【請求項２】
前記第１の検出回路は、前記複数のグループに対応した複数の第１の位相比較器を有し、
前記第２の検出回路は、前記検出されたグループに含まれる複数の遅延素子に対応した複数の第２の位相比較器を有する
請求項１に記載の半導体集積回路。
【請求項３】
前記複数のグループの間で対応する複数の遅延素子のいずれかを選択し、選択された遅延素子に対応した前記第２の位相比較器にそれぞれ接続する複数のスイッチをさらに備えた
請求項２に記載の半導体集積回路。
【請求項４】
前記複数のグループは、ループ状に接続されており、
前記第１の検出回路は、前記複数のグループに対応した複数の第１の位相比較器と前記ディレイチェーンに対して信号がループ状に伝播されたループ回数をカウントするカウンタとを有し、
前記第２の検出回路は、前記検出されたグループに含まれる複数の遅延素子に対応した複数の第２の位相比較器を有する
請求項１に記載の半導体集積回路。
【請求項５】
前記複数のグループの間で対応する複数の遅延素子のいずれかを選択し、選択された遅延素子に対応した前記第２の位相比較器にそれぞれ接続する複数のスイッチをさらに備えた
請求項４に記載の半導体集積回路。
【請求項６】
前記所定の遅延量は、前記ディレイチェーンに入力されるクロックの１周期である
請求項１から５のいずれか１項に記載の半導体集積回路。
【請求項７】
第１のクロックの１周期に対応した遅延素子数を検出する請求項１から６のいずれか１項に記載の半導体集積回路と、
前記半導体集積回路におけるディレイチェーンに等価な構成を有する第２のディレイチェーンを有し、前記第２のディレイチェーンを用いて、前記半導体集積回路で検出された遅延素子数に応じて、前記第１のクロックを遅延させた第２のクロックを出力する制御回路と、
を備えたＤＬＬ回路。
【請求項８】
第１のクロックの１周期に対応した遅延素子数を検出する請求項１から６のいずれか１項に記載の第１の半導体集積回路と、
第１のレベルと第２のレベルとの間で遷移する前記第１のクロックの前記第１のレベルの時間幅に対応した遅延素子数を検出する請求項１から６のいずれか１項に記載の第２の半導体集積回路と、
前記第１の半導体集積回路におけるディレイチェーンに等価な構成を有する第２のディレイチェーンを有し、前記第２のディレイチェーンを用いながら、前記第１の半導体集積回路で検出された遅延素子数と前記第２の半導体集積回路で検出された遅延素子数とに応じて、前記第１のクロックを遅延させるとともにデューティを調整させた第２のクロックを出力する制御回路と、
を備えたデューティ調整回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、半導体集積回路、ＤＬＬ回路、及びデューティ調整回路に関する。
【背景技術】
【０００２】
複数の遅延素子を有する回路は、複数の遅延素子のうちの一部の遅延素子を用いて所定の遅延量を生成することができる。このとき、所定の遅延量に対応した遅延素子段数を効率的に特定することが望まれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−８０１５５号公報
【特許文献２】特開２０００−５９１８３号公報
【特許文献３】特開２００６−６７１９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一つの実施形態は、所定の遅延量に対応した遅延素子段数を効率的に特定できる半導体集積回路、ＤＬＬ回路、及びデューティ調整回路を提供することを目的とする。
【課題を解決するための手段】
【０００５】
一つの実施形態によれば、ディレイチェーンと第１の検出回路と第２の検出回路とを有する半導体集積回路が提供される。ディレイチェーンは、複数の遅延素子が接続されている。第１の検出回路は、ディレイチェーン内が分割されて得られる複数のグループのうち所定の遅延量に対応するグループを検出する。第２の検出回路は、検出されたグループに含まれる複数の遅延素子のうち所定の遅延量に対応する遅延素子を検出する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態に係る半導体集積回路を含むＤＬＬ回路の構成を示す回路図である。
【図２】図２は、第１の実施形態におけるクロックジェネレータの動作を示す波形図である。
【図３】図３は、第１の実施形態に係る半導体集積回路の構成を示す回路図である。
【図４】図４は、第１の実施形態におけるｒｓｗ生成ロジック回路の構成を示す回路図である。
【図５】図５は、第１の実施形態に係る半導体集積回路の動作を示す波形図である。
【図６】図６は、第１の実施形態に係る半導体集積回路を含む遅延時間検出回路の検出結果を示す図である。
【図７】図７は、第１の実施形態におけるディレイブロックの構成を示す回路図である。
【図８】図８は、第１の実施形態に係る半導体集積回路を含むＤＬＬ回路の動作を示す波形図である。
【図９】図９は、第２の実施形態に係る半導体集積回路の構成を示す回路図である。
【図１０】図１０は、第２の実施形態に係る半導体集積回路の動作を示す波形図である。
【図１１】図１１は、第２の実施形態に係る半導体集積回路を含む遅延時間検出回路の検出結果を示す図である。
【図１２】図１２は、第３の実施形態に係る半導体集積回路を含むデューティ調整回路の構成を示すブロック図である。
【図１３】図１３は、第３の実施形態におけるクロックジェネレータの動作を示す波形図である。
【図１４】図１４は、第３の実施形態における調整回路の構成を示す回路図である。
【図１５】図１５は、第３の実施形態に係る半導体集積回路を含むデューティ調整回路の動作を示す波形図である。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかる半導体集積回路を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【０００８】
（第１の実施形態）
第１の実施形態に係る半導体集積回路１００を含むＤＬＬ回路１について説明する。ＤＬＬ回路１は、外部（例えば、ホスト）から基準クロックを受け、基準クロックに付加する遅延量が所定の遅延量になった状態でロックし、基準クロックに所定の遅延量が付加された出力クロックを後段の回路（例えば、内部回路）へ出力する。ＤＬＬ回路１は、ＮＡＮＤ型フラッシュメモリにおけるホストＩ／Ｆ回路などの高速Ｉ／Ｆ回路に使用され得るために、高速にロックすることが要求されている。
【０００９】
例えば、ＤＬＬ回路１は、図１に示すように構成される。図１は、ＤＬＬ回路１の構成を示すブロック図である。ＤＬＬ回路１は、ＴＤＣ（Ｔｉｍｅ  ｔｏ  Ｄｉｇｉｔａｌ  Ｃｏｎｖｅｒｔｅｒ）技術をベースとして高速にロック可能なＤＬＬ回路である。ＤＬＬ回路１は、遅延時間検出回路２及び制御回路３を有する。遅延時間検出回路２は、クロックジェネレータ４及び半導体集積回路１００を有する。半導体集積回路１００は、ディレイチェーン３０を有する。ディレイチェーン３０は、複数の遅延素子を有し、複数の遅延素子が接続されて構成される。制御回路３は、ロジック回路５及びディレイブロック６を有する。ディレイブロック６は、ディレイチェーン（第２のディレイチェーン）６０を有する。ディレイチェーン６０は、半導体集積回路１００におけるディレイチェーン３０と等価な構成を有し、複数の遅延素子が接続された構成を有する。
【００１０】
クロックジェネレータ４は、基準クロックｃｌｋ＿ｒｅｆを受け、基準クロックｃｌｋ＿ｒｅｆを用いて、図２に示すような内部動作用のクロックｃｌｋ＿ｉｎ，ｃｌｋ＿ｄｅｔｅｃｔを生成する。図２は、クロックジェネレータ４の動作を示す波形図である。例えば、クロックジェネレータ４は、基準クロックｃｌｋ＿ｒｅｆの立ち上がりエッジに同期して、基準クロックｃｌｋ＿ｒｅｆを４分周してクロックｃｌｋ＿ｉｎを生成する。クロックジェネレータ４は、基準クロックｃｌｋ＿ｒｅｆの立ち上がりエッジに同期して、クロックｃｌｋ＿ｉｎを基準クロックｃｌｋ＿ｒｅｆの１周期分遅延させてクロックｃｌｋ＿ｄｅｔｅｃｔを生成する。クロックｃｌｋ＿ｄｅｔｅｃｔは、１周期分の遅延を検出するためのクロックとみなすことができる。クロックジェネレータ４は、クロックｃｌｋ＿ｉｎ及びクロックｃｌｋ＿ｄｅｔｅｃｔを半導体集積回路１００へ供給する。
【００１１】
例えば、半導体集積回路１００を、ディレイチェーン３０における遅延素子ごとに位相比較器を設け、遅延素子の出力と所定の遅延量に対応した基準クロックｃｌｋ＿ｒｅｆとの位相比較を各位相比較器で行うよう構成した場合を考える。この場合、基準クロックｃｌｋ＿ｒｅｆの最初の立ち上がりエッジが複数の遅延素子を順に通過し、２回目の立ち上がりエッジで各位相比較器の出力を取り込む。複数の位相比較器の出力結果がＨレベル／Ｌレベルで切り替わる個数が、１周期相当の遅延素子段数となる。この結果を元に、任意の位相角（９０°や１８０°）の遅延素子段数を算出し、出力することが可能である。この構成では、遅延素子１つについて、位相比較器が１つずつ必要であり、ＤＬＬ回路１の回路規模が大きくなりやすい。これにより、ＤＬＬ回路１のリーク電流・消費電力が大きくなりやすく、ＤＬＬ回路１のレイアウト面積が増大しやすい。
【００１２】
そこで、第１の実施形態では、ディレイチェーン３０に含まれる複数の遅延素子をグループ化し、半導体集積回路１００における遅延素子段数の検出をグループの特定とグループ内の素子の特定との２段階にすることで、検出に必要な位相比較器数の低減を図る。
【００１３】
具体的には、半導体集積回路１００は、図３に示すように構成され得る。図３は、半導体集積回路１００の構成を示す回路図である。半導体集積回路１００は、ディレイチェーン３０、検出回路（第１の検出回路）１０、及び検出回路（第２の検出回路）２０を有する。
【００１４】
ディレイチェーン３０は、複数の遅延素子が行列状に配列され、複数の遅延素子が複数のグループにグループ化されている。ｍ，ｎをそれぞれ２以上の任意の整数とすると、ディレイチェーン３０は、ｍ行ｎ列の遅延素子３１（１，１）〜３１（ｍ，ｎ）を含むことができる。図３では、ｍが偶数の場合の構成が例示されている。各遅延素子３１（１，１）〜３１（ｍ，ｎ）は、互いに均等な遅延特性（例えば、均等な所定の遅延量Ｄ）を有している。基準クロックｃｌｋ＿ｒｅｆの伝播方向は、奇数行では１列目→ｎ列目の方向であり、偶数行ではｎ列目→１列目の方向である。奇数行のｎ列目の遅延素子の出力ノードは行番号をインクリメントした偶数行のｎ列目の遅延素子の入力ノードに接続されている。偶数行の１列目の遅延素子の出力ノードは行番号をインクリメントした奇数行の１列目の遅延素子の入力ノードに接続されている。これにより、各遅延素子３１（１，１）〜３１（ｍ，ｎ）は、基準クロックｃｌｋ＿ｒｅｆに対して互いに異なる遅延量のクロックを発生させる。
【００１５】
複数のグループＧＲ＿１〜ＧＲ＿ｍは、ディレイチェーン３０内が行単位に分割されて得られる。ディレイチェーン３０において、複数のグループＧＲ＿１〜ＧＲ＿ｍは、ライン状に直列に接続されているとともに、列に沿った方向に配列されている。複数のグループＧＲ＿１〜ＧＲ＿ｍは、遅延素子３１（１，１）〜３１（ｍ，ｎ）の配列における１〜ｍ行に対応している。各グループＧＲ＿１〜ＧＲ＿ｍは、対応する行に含まれた複数の遅延素子を有する。
【００１６】
ディレイチェーン３０は、複数の遅延素子３１（１，１）〜３１（ｍ，ｎ）に加えて複数のスイッチ３２（１，１）〜３２（ｍ，ｎ−１）を有する。複数のスイッチ３２（１，１）〜３２（ｍ，ｎ−１）は、行列状に配列され、複数の遅延素子に対応している。
【００１７】
ｋを任意の１以上の整数とすると、奇数行の複数のスイッチ３２（２ｋ−１，１）〜３２（２ｋ−１，ｎ−１）は、奇数行のグループＧＲ＿（２ｋ−１）におけるｎ列目の遅延素子を除いた複数の遅延素子３１（２ｋ−１，１）〜３１（２ｋ−１，ｎ−１）に対応している。同一の奇数行の複数のスイッチ３２（２ｋ−１，１）〜３２（２ｋ−１，ｎ−１）は、共通の制御信号ｒｓｗ（２ｋ−２）でオン・オフ制御される。
【００１８】
制御信号ｒｓｗ（２ｋ−２）は、図４（ａ）に示すｒｓｗ生成ロジック回路４０で生成される。図４（ａ）〜図４（ｃ）は、ｒｓｗ生成ロジック回路４０の構成を示す図である。ｒｓｗ生成ロジック回路４０は、奇数行のスイッチ３２（２ｋ−１，１）〜３２（２ｋ−１，ｎ−１）に対する制御信号ｒｓｗ（２ｋ−２）を、図４（ｂ）に示すロジック回路で生成する。例えば、アンドゲートＡＮＤ０は、ハイレベル固定“Ｈ”の信号と１行目の最終段の遅延素子３１（１，ｎ）の出力ｒ０を論理反転させた信号との論理積を演算し、演算結果をｒｓｗ０として出力する。アンドゲートＡＮＤ２は、１行目の最終段の遅延素子３１（１，ｎ）の出力ｒ０と３行目の最終段の遅延素子３１（３，ｎ）の出力ｒ２を論理反転させた信号との論理積を演算し、演算結果をｒｓｗ２として出力する。・・・アンドゲートＡＮＤ（ｍ−２）は、（ｍ−３）行目の最終段の遅延素子３１（ｍ−３，ｎ）の出力ｒ（ｍ−４）と（ｍ−１）行目の最終段の遅延素子３１（ｍ−１，ｎ）の出力ｒ（ｍ−２）を論理反転させた信号との論理積を演算し、演算結果をｒｓｗ（ｍ−２）として出力する。
【００１９】
図３に示す偶数行の複数のスイッチ３２（２ｋ，１）〜３２（２ｋ，ｎ−１）は、偶数行のグループＧＲ＿２ｋにおける１列目の遅延素子を除いた複数の遅延素子３１（２ｋ，２）〜３１（２ｋ，ｎ）に対応している。同一の偶数行の複数のスイッチ３２（２ｋ，１）〜３２（２ｋ，ｎ−１）は、共通の制御信号ｒｓｗ（２ｋ−１）でオン・オフ制御される。
【００２０】
制御信号ｒｓｗ（２ｋ−１）は、図４（ａ）に示すｒｓｗ生成ロジック回路４０で生成される。ｒｓｗ生成ロジック回路４０は、偶数行のスイッチ３２（２ｋ，１）〜３２（２ｋ，ｎ−１）に対する制御信号ｒｓｗ（２ｋ−１）を、図４（ｃ）に示すロジック回路で生成する。例えば、アンドゲートＡＮＤ１は、ハイレベル固定“Ｈ”の信号と２行目の最終段の遅延素子３１（２，１）の出力ｒ１を論理反転させた信号との論理積を演算し、演算結果をｒｓｗ１として出力する。アンドゲートＡＮＤ３は、２行目の最終段の遅延素子３１（２，１）の出力ｒ１と４行目の最終段の遅延素子３１（４，１）の出力ｒ３を論理反転させた信号との論理積を演算し、演算結果をｒｓｗ３として出力する。・・・アンドゲートＡＮＤ（ｍ−１）は、（ｍ−２）行目の最終段の遅延素子３１（ｍ−２，１）の出力ｒ（ｍ−３）とｍ行目の最終段の遅延素子３１（ｍ，１）の出力ｒ（ｍ−１）を論理反転させた信号との論理積を演算し、演算結果をｒｓｗ（ｍ−１）として出力する。
【００２１】
図３に示す検出回路１０は、複数のグループＧＲ＿１〜ＧＲ＿ｍのうち所定の遅延量（例えば、基準クロックｃｌｋ＿ｒｅｆの１周期）に対応するグループを検出する。検出回路１０は、複数のグループＧＲ＿１〜ＧＲ＿ｍに対応した複数の位相比較器（複数の第１の位相比較器）１１−１〜１１−ｍを有する。複数の位相比較器１１−１〜１１−ｍは、遅延素子３１（１，１）〜３１（ｍ，ｎ）の配列における１〜ｍ行に対応している。
【００２２】
奇数行に対応した各位相比較器１１−（２ｋ−１）（ｋは任意の１以上の整数）は、対応する行のグループＧＲ＿（２ｋ−１）におけるｎ列目の遅延素子で発生されたクロックの位相をクロックｃｌｋ＿ｄｅｔｅｃｔと比較し、比較結果ｑｒ（２ｋ−２）を制御回路３（図１参照）へ出力する。
【００２３】
偶数行に対応した各位相比較器１１−２ｋ（ｋは任意の１以上の整数）は、対応する行のグループＧＲ＿２ｋにおける１列目の遅延素子で発生されたクロックの位相をクロックｃｌｋ＿ｄｅｔｅｃｔと比較し、比較結果ｑｒ（２ｋ−１）を制御回路３（図１参照）へ出力する。
【００２４】
各比較結果ｑｒ（２ｋ−１），ｑｒ（２ｋ−２）は、０、１の２値を取り得る。０の比較結果は、遅延素子で発生されたクロックの位相がクロックｃｌｋ＿ｄｅｔｅｃｔの位相に対して遅れていることを示し得る。１の比較結果は、遅延素子で発生されたクロックの位相がクロックｃｌｋ＿ｄｅｔｅｃｔの位相に対して同期している又は進んでいることを示し得る。
【００２５】
検出回路２０は、検出回路１０で検出されたグループに含まれる複数の遅延素子のうち所定の遅延量（例えば、基準クロックｃｌｋ＿ｒｅｆの１周期）に対応する遅延素子を検出する。検出回路２０は、各行に含まれた複数列の遅延素子に対応した複数の位相比較器を有する。検出回路２０は、複数の位相比較器（複数の第２の位相比較器）２１−１〜２１−（ｎ−１）、複数の位相比較器（複数の第２の位相比較器）２２−２〜２２−ｎ、複数のセレクタ２３−１〜２３−（ｎ−１）、及びロジック回路２４を有する。
【００２６】
複数の位相比較器２１−１〜２１−（ｎ−１）は、奇数行における複数列の遅延素子に対応し、その入力ノードが、奇数行の複数のスイッチ３２（２ｋ−１，１）〜３２（２ｋ−１，ｎ−１）を介して、奇数行のグループＧＲ＿（２ｋ−１）における複数の遅延素子３１（２ｋ−１，１）〜３１（２ｋ−１，ｎ−１）の出力ノードに電気的に接続され得る。位相比較器２１−１の入力ノードは、各奇数行における１列目の遅延素子３１の出力ノードがスイッチ３２を介して共通に接続されている。・・・位相比較器２１−（ｎ−１）の入力ノードは、各奇数行における（ｎ−１）列目の遅延素子３１の出力ノードがスイッチ３２を介して共通に接続されている。
【００２７】
複数の位相比較器２２−２〜２２−ｎは、偶数行における複数列の遅延素子に対応し、その入力ノードが、偶数行の複数のスイッチ３２（２ｋ，１）〜３２（２ｋ，ｎ−１）を介して、偶数行のグループＧＲ＿２ｋにおける複数の遅延素子３１（２ｋ，２）〜３１（２ｋ，ｎ）の出力ノードに電気的に接続され得る。位相比較器２２−２の入力ノードは、各奇数行における２列目の遅延素子３１の出力ノードがスイッチ３２を介して共通に接続されている。・・・位相比較器２２−ｎの入力ノードは、各奇数行におけるｎ列目の遅延素子３１の出力ノードがスイッチ３２を介して共通に接続されている。
【００２８】
複数のセレクタ２３−１〜２３−（ｎ−１）は、複数の位相比較器２１−１〜２１−（ｎ−１）の比較結果と複数の位相比較器２２−２〜２２−ｎの比較結果とのいずれかを選択して検出結果ｑｃ１〜ｑｃ（ｎ−１）として出力する。ｋを任意の１以上の整数とすると、セレクタ２３−ｋは、ロジック回路２４から受けるセレクト信号ｓｅｌｃに応じて、位相比較器２１−ｋの比較結果と位相比較器２２−（ｎ−ｋ＋１）の比較結果とのいずれかを選択して検出結果ｑｃ（ｋ）として出力する。
【００２９】
ロジック回路２４は、複数の位相比較器１１−１〜１１−ｍの比較結果ｑｒ＜ｍ−１：０＞を受け、比較結果ｑｒ＜ｍ−１：０＞に応じて、セレクト信号ｓｅｌｃを生成して各セレクタ２３−１〜２３−（ｎ−１）へ供給する。ロジック回路２４は、比較結果ｑｒ＜ｍ−１：０＞に応じて、クロックｃｌｋ＿ｉｎの立ち上がりエッジが通過している行が奇数行である場合（図６（ａ）参照）、位相比較器２１−１〜２１−（ｎ−１）の比較結果（奇数行の比較結果ｑｃｅ１〜ｑｃｅ（ｎ−１））を選択させるセレクト信号ｓｅｌｃを生成して各セレクタ２３−１〜２３−（ｎ−１）へ供給する。ロジック回路２４は、比較結果ｑｒ＜ｍ−１：０＞に応じて、クロックｃｌｋ＿ｉｎの立ち上がりエッジが通過している行が偶数行である場合（図６（ａ）参照）、位相比較器２２−２〜２２−ｎの比較結果（偶数行の比較結果ｑｃｏ１〜ｑｃｏ（ｎ−１））を選択させるセレクト信号ｓｅｌｃを生成して各セレクタ２３−１〜２３−（ｎ−１）へ供給する。このように、同一列に並ぶ複数の遅延素子の出力をスイッチで切り替えて位相比較器２１−１〜２１−（ｎ−１），２２−２〜２２−ｎに接続することで、位相比較器を列ごとに共用化でき使用数を削減できる。
【００３０】
図３に示す回路によれば、遅延素子の個数はｎ（横方向の数：列数）×ｍ（縦方向の数：行数）となる。遅延素子ごとに位相比較器を設ける場合、ｎ×ｍ個の位相比較器が必要であるが、図３に示す回路では、２ｎ＋ｍ個ですんでいる。例えば、ｎ＝１６、ｍ＝１６とすると、遅延素子ごとに位相比較器を設ける場合の位相比較器の個数ｎ×ｍ＝２５６に比較して、図３に示す回路では、位相比較器の個数が２ｎ＋ｍ＝４８個と約１／５に削減され得る。
【００３１】
次に、半導体集積回路１００による遅延素子段数の検出動作（遅延時間検出動作）について図５を用いて説明する。図５は、半導体集積回路１００の動作を示す波形図である。
【００３２】
半導体集積回路１００は、クロックジェネレータ４から供給されたクロックｃｌｋ＿ｉｎ及びクロックｃｌｋ＿ｄｅｔｅｃｔを用いて、所定の遅延量に相当する遅延素子段数を検出する。図５では、所定の遅延量が基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間である場合について例示されている。
【００３３】
例えば、クロックｃｌｋ＿ｉｎがディレイチェーン３０へ入力されると、ディレイチェーン３０における遅延素子を順にクロックｃｌｋ＿ｉｎの立ち上がりエッジが通過し、１行目の最終段以外の遅延素子３１（１，１）〜３１（１，ｎ−１）の出力ｃｅ１，ｃｅ２，・・・，ｃｅ（ｎ−１）の波形が順次に立ち上がる。その後、１行目の最終段の遅延素子３１（１，ｎ）の出力ｒ０の波形が立ち上がる。
【００３４】
１行目の遅延素子３１（１，１）〜３１（１，ｎ）をこの順にクロックｃｌｋ＿ｉｎの立ち上がりエッジが通過する間は、制御信号ｒｓｗ０がアクティブレベルで１行目のスイッチ３２（１，１）〜３２（１，ｎ−１）がオン状態に維持され、１行目の各遅延素子３１（１，１）〜３１（１，ｎ−１）の出力ｃｅ１，ｃｅ２，・・・，ｃｅ（ｎ−１）が対応する位相比較器２１−１〜２１−（ｎ−１）に供給される。位相比較器２１−１〜２１−（ｎ−１）は、クロックｃｌｋ＿ｄｅｔｅｃｔの立ち上がりエッジが供給されていないので、まだ位相比較を行わない。このとき、１行目→２行目の切換をスムーズに行うために２行目のスイッチの制御信号ｒｓｗ１がアクティブレベルになっているが、３行目以降のスイッチの制御信号ｒｓｗ２〜ｒｓｗ（ｍ−１）はノンアクティブレベルである。
【００３５】
２行目の遅延素子３１（２，１）〜３１（２，ｎ）をこの逆順にクロックｃｌｋ＿ｉｎの立ち上がりエッジが通過する間は、制御信号ｒｓｗ１がアクティブレベルで２行目のスイッチ３２（２，１）〜３２（２，ｎ−１）がオン状態に維持され、２行目の各遅延素子３１（２，１）〜３１（２，ｎ−１）の出力ｃｏ１，ｃｏ２，・・・，ｃｏ（ｎ−１）が対応する位相比較器２２−１〜２２−ｎに供給される。位相比較器２２−１〜２２−ｎは、クロックｃｌｋ＿ｄｅｔｅｃｔの立ち上がりエッジが供給されていないので、まだ位相比較を行わない。このとき、１行目のスイッチの制御信号ｒｓｗ０は、１行目の最終段の遅延素子３１（１，ｎ）の出力ｒ０の波形が立ち上がったことに応じてノンアクティブレベルになり、２行目→３行目の切換をスムーズに行うために３行目のスイッチの制御信号ｒｓｗ２がノンアクティブレベルからアクティブレベルになるが、４行目以降のスイッチの制御信号ｒｓｗ３〜ｒｓｗ（ｍ−１）はノンアクティブレベルである。
【００３６】
３行目の遅延素子３１（３，１）〜３１（３，ｎ）をこの順にクロックｃｌｋ＿ｉｎの立ち上がりエッジが通過する間は、制御信号ｒｓｗ２がアクティブレベルで３行目のスイッチ３２（３，１）〜３２（３，ｎ−１）がオン状態に維持され、３行目の各遅延素子３１（３，１）〜３１（３，ｎ−１）の出力ｃｅ１，ｃｅ２，・・・，ｃｅ（ｎ−１）が対応する位相比較器２１−１〜２１−（ｎ−１）に供給される。位相比較器２１−１〜２１−（ｎ−１）は、クロックｃｌｋ＿ｄｅｔｅｃｔの立ち上がりエッジが供給されるまでは、位相比較を行わない。このとき、３行目→４行目の切換をスムーズに行うために４行目のスイッチの制御信号ｒｓｗ３がアクティブレベルになるが、５行目以降のスイッチの制御信号ｒｓｗ４〜ｒｓｗ（ｍ−１）はノンアクティブレベルである。
【００３７】
例えば、３行目の遅延素子３１（３，１）〜３１（３，ｎ）をクロックｃｌｋ＿ｉｎの立ち上がりエッジが通過する間においてクロックｃｌｋ＿ｄｅｔｅｃｔの立ち上がりエッジが供給されると、位相比較器１１−１〜１１−ｍ、位相比較器２１−１〜２１−（ｎ−１）、位相比較器２２−２〜２２−ｎは、それぞれ、位相比較を行い、比較結果を出力する。位相比較器１１−１〜１１−ｍは、比較結果ｑｒ＜ｍ−１：０＞を遅延時間検出回路２（図１参照）の検出結果ｑｒとして制御回路３へ出力する。位相比較器２１−１〜２１−（ｎ−１）の比較結果ｑｃｅ１〜ｑｃｅ（ｎ−１）と位相比較器２２−２〜２２−ｎの比較結果ｑｃｏ１〜ｑｃｏ（ｎ−１）とがセレクタ２３−１〜２３−（ｎ−１）へ供給される。現在、クロックｃｌｋ＿ｄｅｔｅｃｔの立ち上がりエッジが通過している行が奇数行（３行目）であることに応じて、セレクタ２３−１〜２３−（ｎ−１）は、奇数行の比較結果ｑｃｅ１〜ｑｃｅ（ｎ−１）を選択して遅延時間検出回路２（図１参照）の検出結果ｑｃとして制御回路３へ出力する。
【００３８】
これにより、遅延時間検出回路２は、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子段数を示す検出結果ｑｒ，ｑｃを制御回路３へ出力できる。検出結果ｑｒ，ｑｃの内容は、例えば、図６に示すようになる。図６（ａ）は、遅延時間検出回路２の検出結果ｑｒを示す図であり、図６（ｂ）は、遅延時間検出回路２の検出結果ｑｃを示す図である。検出結果ｑｒは、ｍビット（例えば、ｍ＝８の場合に８ビット）のビットパターンであり、図６（ａ）に示すどのビットパターンであるのかに応じて、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当するグループが何行目のグループであるのかを示す。検出結果ｑｃは、ｎ−１ビット（ｎ＝８の場合に７ビット）のビットパターンであり、図６（ｂ）に示すどのビットパターンであるのかに応じて、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子がグループ内の何番目の遅延素子（何列目の遅延素子）であるのかを示す。
【００３９】
すなわち、半導体集積回路１００は、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子段数の検出をグループの特定（何行目かの特定）とグループ内の素子の特定（その行内の何列目かの特定）との２段階で行い、その検出結果ｑｒ，ｑｃを出力できる。
【００４０】
図６に示すような検出結果ｑｒ，ｑｃを受けて、制御回路３のロジック回路５（図１参照）は、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子段数を求める。ロジック回路５は、遅延素子の伝搬の順番３１（１，１）〜３１（１，ｎ）（列番号が昇順）→３１（２，ｎ）〜３１（２，１）（列番号が降順）→３１（３，１）〜３１（３，ｎ）（列番号が昇順）→・・・→３１（ｍ−１，１）〜３１（ｍ−１，ｎ）（列番号が昇順）→３１（ｍ，ｎ）〜３１（ｍ，１）（列番号が降順）において、検出結果ｑｒ，ｑｃに示す（行番号，列番号）に対応する遅延素子の先頭からの段数をカウントし、カウント結果を基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子段数とする。ロジック回路５は、求められた遅延素子段数に応じて、出力クロックｃｌｋ＿ｏｕｔに採用する遅延素子の出力を選択するセレクト信号ｓｅｌを生成してディレイブロック６へ出力する。
【００４１】
ディレイブロック６は、例えば、図７に示すように構成される。図７は、ディレイブロック６の構成を示す図である。ディレイブロック６は、ディレイチェーン６０及びセレクタ７０を有する。ディレイチェーン６０は、複数の遅延素子６１−１〜６１−ｐ（ｐは１以上ｍ×ｎ以下の任意の整数）が直列に接続された構成を有する。各遅延素子６１−１〜６１−ｐは、半導体集積回路１００のディレイチェーン３０における各遅延素子３１（１，１）〜３１（ｍ，ｎ）と等価な遅延特性（例えば、均等な遅延量Ｄ）を有する。
【００４２】
ディレイチェーン６０における各遅延素子６１−１〜６１−ｐは、基準クロックｃｌｋ＿ｒｅｆに対して先頭からの段数に応じて遅延されたクロックｃｌｋ０〜ｃｌｋ（ｐ−１）をセレクタ７０へ出力する。例えば、先頭からｋ番目（ｋは任意の１以上ｐ以下の整数）の遅延素子６１−ｋは、基準クロックｃｌｋ＿ｒｅｆに対して遅延量Ｄ×ｋで遅延させたクロックｃｌｋ（ｋ−１）をセレクタ７０へ出力する。
【００４３】
セレクタ７０は、図８に示すように、セレクト信号ｓｅｌが供給されるまでは動作せず、出力クロックｃｌｋ＿ｏｕｔを出力しない。セレクタ７０は、ロジック回路５から供給されたセレクト信号ｓｅｌに応じて、複数の遅延素子６１−１〜６１−ｐからの複数のクロックｃｌｋ０〜ｃｌｋ（ｐ−１）のうちの１つを選択して、図８に示すような所望の遅延量Δｔを有する出力クロックｃｌｋ＿ｏｕｔとして出力する。図８は、ＤＬＬ回路１におけるディレイブロック６の動作を示す波形図である。所望の遅延量Δｔは、要求される遅延量（遅延時間）に対応している。
【００４４】
例えば、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子段数が４×Ｍ段であり、基準クロックｃｌｋ＿ｒｅｆを１／４周期で遅延させたクロックを生成させることが要求されている場合、ロジック回路５は、複数の遅延素子６１−１〜６１−ｐのうちの遅延素子６１−Ｍを選択するセレクト信号ｓｅｌをセレクタ７０へ供給する。これにより、セレクタ７０は、遅延素子６１−Ｍから出力されたｃｌｋ（Ｍ−１）を出力クロックｃｌｋ＿ｏｕｔとして出力する。
【００４５】
あるいは、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子段数が４×Ｍ段であり、基準クロックｃｌｋ＿ｒｅｆを１／２周期で遅延させたクロックを生成させることが要求されている場合、ロジック回路５は、複数の遅延素子６１−１〜６１−ｐのうちの遅延素子６１−２×Ｍを選択するセレクト信号ｓｅｌをセレクタ７０へ供給する。これにより、セレクタ７０は、遅延素子６１−２×Ｍから出力されたｃｌｋ（２×Ｍ−１）を出力クロックｃｌｋ＿ｏｕｔとして出力する。
【００４６】
なお、ＤＬＬ回路１は、遅延時間検出動作に用いるディレイチェーン３０とは別にディレイチェーン６０を設けて、出力クロックｃｌｋ＿ｏｕｔの生成を行う。出力クロック生成用のディレイチェーン６０を別に設ける場合の利点は、各遅延素子出力につける素子を少なくすることで負荷容量が軽くなることにより、遅延素子１段あたりの遅延が小さくなることで分解能が高くなり、より精度の高い遅延が生成できることである。このとき、ディレイチェーン３０及びディレイチェーン６０の間で遅延生成回路に用いる遅延素子は同じ遅延を再現するよう回路・レイアウトをそろえることが有効である。
【００４７】
以上のように、第１の実施形態では、半導体集積回路１００において、ディレイチェーン３０に含まれる複数の遅延素子をグループ化し、半導体集積回路１００における所定の遅延量（基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延量）に対応する遅延素子段数の検出をグループの特定とグループ内の素子の特定との２段階で行う。これにより、所定の遅延量の検出に必要な位相比較器数を低減できるので、半導体集積回路１００を含むＤＬＬ回路１のリーク電流・消費電力を抑制でき、ＤＬＬ回路１のレイアウト面積を低減できる。
【００４８】
また、第１の実施形態では、半導体集積回路１００を含むＤＬＬ回路１において、基準クロックｃｌｋ＿ｒｅｆの１周期で所定の遅延量の遅延段数を検出して所望の遅延量にロックできる。これにより、高速にロックして出力クロックｃｌｋ＿ｏｕｔを生成できるので、ＤＬＬ回路１が使用される高速Ｉ／Ｆ回路の動作の高速化に寄与できる。
【００４９】
なお、ディレイチェーン３０の配列は、複数の遅延素子をグループ化できれば行列状以外の形態（例えば、ディレイチェーン６０と同様の形態）であってもよい。
【００５０】
（第２の実施形態）
次に、第２の実施形態に係る半導体集積回路２００について説明する。以下では、第１の実施形態と異なる部分を中心に説明する。
【００５１】
第１の実施形態では、複数のグループＧＲ＿１〜ＧＲ＿ｍがライン状に接続されてディレイチェーン３０が構成されているが、第２の実施形態では、複数のグループＧＲ＿２０１，ＧＲ＿２０２がループ状に接続されてディレイチェーン２３０が構成される。
【００５２】
具体的には、半導体集積回路２００は、ディレイチェーン２３０、検出回路（第１の検出回路）２１０、及び検出回路（第２の検出回路）２２０を有する。
【００５３】
ディレイチェーン２３０は、複数の遅延素子を有し、複数の遅延素子が行列状に配列され、複数の遅延素子が複数のグループ（例えば、２行のグループ）にグループ化されている。ｎを２以上の任意の整数とすると、ディレイチェーン２３０は、２行ｎ列の遅延素子２３１（１，１）〜２３１（２，ｎ）を含むことができる。
【００５４】
複数のグループＧＲ＿２０１，ＧＲ＿２０２は、ディレイチェーン２３０内が行単位に分割されて得られる。ディレイチェーン２３０において、複数のグループＧＲ＿２０１，ＧＲ＿２０２は、ループ状に接続されているとともに、列に沿った方向に配列されている。１行目のグループＧＲ＿２０１におけるｎ列目の遅延素子２３１（１，ｎ）の出力ノードは、２行目のグループＧＲ＿２０２におけるｎ列目の遅延素子２３１（２，ｎ）の入力ノードに接続されている。２行目のグループＧＲ＿２０２における１列目の遅延素子２３１（２，１）の出力ノードは、１行目のグループＧＲ＿２０１における１列目の遅延素子２３１（１，１）の入力ノードに接続されている。
【００５５】
ディレイチェーン２３０は、セレクト信号生成回路２３２をさらに有する。グループＧＲ＿２０１における１列目の遅延素子２３１（１，１）は、遅延素子として機能するとともに、セレクト信号生成回路２３２からのセレクト信号ｓｌに応じて選択動作を行うセレクタとしても機能する。これにより、１列目の遅延素子２３１（１，１）は、クロックｃｌｋ＿ｉｎの立ち上がりエッジが供給されたタイミングでクロックｃｌｋ＿ｉｎを受け、そのタイミングから若干遅延したタイミング以降の期間に遅延素子２３１（２，１）の出力を遅延させて次段の遅延素子２３１（１，２）へ出力する。すなわち、ディレイチェーン２３０は、初回にクロックｃｌｋ＿ｉｎの立ち上がりエッジ（Ｌ→Ｈ）を受けた後に選択する信号を遅延素子２３１（２，１）の出力ｃｏ０（Ｌレベル）に切り替えるのでパルスを生成でき、生成されたパルスをディレイチェーン２３０内で複数回ループ状に伝搬させることができる。
【００５６】
なお、セレクタとして機能し得る遅延素子２３１（１，１）と他の遅延素子２３１（１，２）〜２３１（２，ｎ）は等価な構成とすることができる。例えば、両者ともＮＡＮＤ２段で構成することで、等価な構成で遅延素子・セレクタの機能を有することができる。
【００５７】
検出回路２１０は、複数の位相比較器２１１−１，２１１−２を有する。各位相比較器２１１−１，２１１−２は、ラッチ回路２１３−１，２１３−２及びカウンタ２１２−１，２１２−２を有する。各ラッチ回路２１３−１，２１３−２は、例えばＬｏｗイネーブルのラッチ回路（Ｄラッチ回路）であり、クロックｃｌｋ＿ｄｅｔｅｃｔがＬレベルの期間に入力を出力に伝播し、クロックｃｌｋ＿ｄｅｔｅｃｔがＨレベルになると出力信号を固定する。各カウンタ２１２−１，２１２−２は、ディレイチェーン２３０に対して信号がループ状に伝播されたループ回数をカウントする。
【００５８】
１行目に対応した位相比較器２１１−１において、ラッチ回路２１３−１は、１行目のグループＧＲ＿２０１におけるｎ列目の遅延素子２３１（１，ｎ）で発生されたクロックｃｅ（ｎ）のパルスをクロックｃｌｋ＿ｄｅｔｅｃｔがＬレベルの期間には通過させ、通過したクロックｃｅ（ｎ）のパルスをカウンタ２１２−１へ出力する。カウンタ２１２−１は、パルスがラッチ回路２１３−１から供給されたタイミングでカウント値ｑｒｃｎｔ０をインクリメントして出力する。
【００５９】
２行目に対応した位相比較器２１１−２において、ラッチ回路２１３−２は、２行目のグループＧＲ＿２０２における１列目の遅延素子２３１（２，１）で発生されたクロックｃｏ１のパルスをクロックｃｌｋ＿ｄｅｔｅｃｔがＬレベルの期間は通過させ、通過したクロックｃｏ１のパルスをカウンタ２１２−１へ出力する。カウンタ２１２−２は、パルスがラッチ回路２１３−２から供給されたタイミングでカウント値ｑｒｃｎｔ１をインクリメントして出力する。
【００６０】
検出回路２２０は、ロジック回路２４（図３参照）に代えてロジック回路２２４を有する。ロジック回路２２４は、カウンタ２１２−１，２１２−２のカウント値ｑｒｃｎｔ０，ｑｒｃｎｔ１を受け、カウント値ｑｒｃｎｔ０，ｑｒｃｎｔ１に応じて、セレクト信号ｓｅｌｃを生成して各セレクタ２３−１〜２３−（ｎ−１）へ供給する。ロジック回路２２４は、カウント値ｑｒｃｎｔ０，ｑｒｃｎｔ１に応じて、クロックｃｌｋ＿ｉｎの立ち上がりエッジが通過している行が１行目である場合（例えば、ｑｒｃｎｔ０＞ｑｒｃｎｔ１である場合）、位相比較器２１−１〜２１−（ｎ−１）の比較結果（１行目の比較結果ｑｃｅ１〜ｑｃｅ（ｎ−１））を選択させるセレクト信号ｓｅｌｃを生成して各セレクタ２３−１〜２３−（ｎ−１）へ供給する。ロジック回路２２４は、カウント値ｑｒｃｎｔ０，ｑｒｃｎｔ１に応じて、クロックｃｌｋ＿ｉｎの立ち上がりエッジが通過している行が２行目である場合（例えば、ｑｒｃｎｔ０＝ｑｒｃｎｔ１である場合）、位相比較器２２−２〜２２−ｎの比較結果（２行目の比較結果ｑｃｏ１〜ｑｃｏ（ｎ−１））を選択させるセレクト信号ｓｅｌｃを生成して各セレクタ２３−１〜２３−（ｎ−１）へ供給する。
【００６１】
図９に示す回路によれば、第１の実施形態に比べて、奇数行のグループを１行目のグループＧＲ＿２０１に共通化し、偶数行のグループを２行目のグループＧＲ＿２０２に共通化することで、遅延時間検出動作に使用する遅延素子の数及び位相比較器の数を削減できる。すなわち、第１の実施形態に比べて、ディレイチェーン２３０における遅延素子の数と検出回路２１０における位相比較器の数を低減できる。なお、図９は、半導体集積回路２００の構成を示す回路図である。
【００６２】
また、半導体集積回路２００による遅延素子段数の検出動作（遅延時間検出動作）が図１０に示すように、次の点で第１の実施形態と異なる。図１０は、半導体集積回路２００の動作を示す波形図である。
【００６３】
クロックｃｌｋ＿ｉｎの立ち上がりエッジが供給されたタイミングにおいて、セレクト信号生成回路２３２は、“０”のセレクト信号ｓｌを遅延素子２３１（１，１）に供給している。遅延素子２３１（１，１）は、クロックｃｌｋ＿ｉｎの供給側（０側）を選択し、遅延量Ｄで遅延させて次段の遅延素子２３１（１，２）に出力する。セレクト信号生成回路２３２は、クロックｃｌｋ＿ｉｎの立ち上がりエッジに対して若干遅延したタイミングでセレクト信号ｓｌを“０”→“１”に遷移させ、遅延素子２３１（１，１）は、選択する信号を遅延素子２３１（２，１）の出力ｃｏ０（Ｌレベル）に切り替える。遅延素子２３１（１，１）の出力ｃｅ１の波形がパルス状の波形になる。その後、セレクト信号生成回路２３２は、セレクト信号ｓｌを“１”に維持し、遅延素子２３１（１，１）は、遅延素子２３１（２，１）の出力側（１側）を選択した状態を維持する。これにより、ｃｅ１〜ｃｅ（ｎ），ｃｏ（ｎ−１）〜ｃｏ０の波形に示されるように、複数のグループＧＲ＿２０１，ＧＲ＿２０２がループ状に接続されたディレイチェーン２３０内でパルスを循環させる。
【００６４】
クロックｃｌｋ＿ｄｅｔｅｃｔがＬレベルの間、循環するパルスは、ディレイチェーン２３０の両端のカウンタ２１２−１，２１２−２のカウント値ｑｒｃｎｔ０，ｑｒｃｎｔ１をすすめる。
【００６５】
クロックｃｌｋ＿ｄｅｔｅｃｔがＨレベルになったとき、すなわち、クロックｃｌｋ＿ｄｅｔｅｃｔの立ち上がりエッジが供給されたとき、カウンタ２１２−１，２１２−２のカウント値ｑｒｃｎｔ０，ｑｒｃｎｔ１の更新は停止する。このとき、カウンタ２１２−１，２１２−２は、カウント値ｑｒｃｎｔ０，ｑｒｃｎｔ１を遅延時間検出回路２（図１参照）の検出結果として制御回路３へ出力している。
【００６６】
それとともに、位相比較器２１−１〜２１−（ｎ−１）、位相比較器２２−２〜２２−ｎは、それぞれ、位相比較を行い、比較結果を出力する。位相比較器２１−１〜２１−（ｎ−１）の比較結果ｑｃｅ１〜ｑｃｅ（ｎ−１）と位相比較器２２−２〜２２−ｎの比較結果ｑｃｏ１〜ｑｃｏ（ｎ−１）とがセレクタ２３−１〜２３−（ｎ−１）へ供給される。図１０の場合、ｑｒｃｎｔ０＞ｑｒｃｎｔ１であり、現在、パルスが通過している行が１行目であることに応じて、セレクタ２３−１〜２３−（ｎ−１）は、１行目の比較結果ｑｃｅ１〜ｑｃｅ（ｎ−１）を選択して遅延時間検出回路２（図１参照）の検出結果ｑｃとして制御回路３へ出力する。
【００６７】
これにより、遅延時間検出回路２は、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子段数を示す検出結果ｑｒｃｎｔ０，ｑｒｃｎｔ１，ｑｃを制御回路３へ出力できる。検出結果ｑｒｃｎｔ０，ｑｒｃｎｔ１，ｑｃの内容は、例えば、図１１に示すようになる。図１１（ａ）は、遅延時間検出回路２の検出結果ｑｒｃｎｔ０，ｑｒｃｎｔ１を示す図であり、図１１（ｂ）は、遅延時間検出回路２の検出結果ｑｃを示す図である。検出結果ｑｒｃｎｔ０，ｑｒｃｎｔ１は、２つのカウンタのカウント値であり、両者のカウント値の組み合わせに応じて、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当するグループが共通化する前のグループに換算した場合に何行目のグループであるのかを示す。検出結果ｑｃは、ｎ−１ビット（ｎ＝８の場合に７ビット）のビットパターンであり、図１１（ｂ）に示すどのビットパターンであるのかに応じて、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子がグループ内の何番目の遅延素子（何列目の遅延素子）であるのかを示す。例えば、ｑｃでは、ｑｃの上位ビット側から検索し、０→１に変化するビットで列番号を判定できる。
【００６８】
すなわち、半導体集積回路２００は、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子段数の検出をグループの特定（共通化する前のグループに換算した場合に何行目かの特定）とグループ内の素子の特定（その行内の何列目かの特定）との２段階で行い、その検出結果ｑｒｃｎｔ０，ｑｒｃｎｔ１，ｑｃを出力できる。
【００６９】
以上のように、第２の実施形態では、複数のグループＧＲ＿２０１，ＧＲ＿２０２がループ状に接続されてディレイチェーン２３０が構成される。所定の遅延量に対応するグループの特定がディレイチェーン２３０の両端に設けられた位相比較器及びカウンタ（リップルカウンタ）で行われる。これにより、遅延時間検出動作に使用される位相比較器の個数を２（ｎ＋１）個に削減でき、ディレイチェーン２３０における遅延素子の数も大幅に削減ができる。したがって、リーク削減効果・面積削減効果を大きくすることができる。
【００７０】
（第３の実施形態）
次に、第３の実施形態に係る半導体集積回路１００について説明する。以下では、第１の実施形態と異なる点を中心に説明する。
【００７１】
第１の実施形態では、半導体集積回路１００がＤＬＬ回路１に適用される場合について例示しているが、第３の実施形態では、半導体集積回路１００がデューティ調整回路（ＤＣＣ）３０１に適用される場合について例示する。
【００７２】
具体的には、デューティ調整回路３０１は、図１２に示すように構成され得る。図１２は、デューティ調整回路３０１の構成を示す図である。デューティ調整回路３０１は、遅延時間検出回路２に加えてパルス幅検出回路３０７を有し、制御回路３（図１参照）に代えて制御回路３０３を有する。パルス幅検出回路３０７は、基本的に遅延時間検出回路２と同様に構成されるが、クロックジェネレータ３０８が異なる。
【００７３】
クロックジェネレータ３０８は、図１３に示すように、内部動作用のクロックｐｌｓ＿ｄｅｔｅｃｔを生成する。図１３は、クロックジェネレータ３０８の動作を示す波形図である。クロックジェネレータ３０８は、基準クロックｃｌｋ＿ｒｅｆの立ち下がりエッジに同期して、クロックｐｌｓ＿ｄｅｔｅｃｔを基準クロックｃｌｋ＿ｒｅｆのパルス幅分遅延させて生成する。クロックｐｌｓ＿ｄｅｔｅｃｔは、パルス幅（Ｈレベルの時間幅）を検出するためのクロックとみなすことができる。クロックジェネレータ３０８は、クロックｃｌｋ＿ｉｎ及びクロックｐｌｓ＿ｄｅｔｅｃｔをパルス幅検出回路３０７における半導体集積回路１００へ供給する。
【００７４】
パルス幅検出回路３０７における半導体集積回路１００は、第１の実施形態の説明におけるクロックｃｌｋ＿ｄｅｔｅｃｔをクロックｐｌｓ＿ｄｅｔｅｃｔに置き換えた説明に示す動作を行い、基準クロックｃｌｋ＿ｒｅｆのパルス幅分の遅延時間に相当する遅延素子段数を示す検出結果ｑｒｂ，ｑｃｂを制御回路３０３へ出力できる。検出結果ｑｒｂ，ｑｃｂの内容は、図６（ａ）、図６（ｂ）に示す内容と同様である。
【００７５】
なお、遅延時間検出回路２は、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子段数を示す検出結果ｑｒａ，ｑｃａ（検出結果ｑｒ，ｑｃと同様）を制御回路３０３へ出力できる点は、第１の実施形態と同様である。
【００７６】
検出結果ｑｒａ，ｑｃａ，ｑｒｂ，ｑｃｂを受けて、制御回路３０３のロジック回路３０５（図１２参照）は、基準クロックｃｌｋ＿ｒｅｆの１周期分の遅延時間に相当する遅延素子段数を求めるとともに、その遅延素子段数に基づきデューティ比の目標値（例えば、５０％）からのずれを補正するための遅延素子段数を求める。ロジック回路３０５は、求められた遅延素子段数に応じて、出力クロックｃｌｋ＿ｏｕｔに採用する遅延素子の出力を選択するセレクト信号ｓｅｌを生成して調整回路３０９へ出力する。
【００７７】
調整回路３０９は、例えば図１４に示すように構成される。図１４は、調整回路３０９の構成を示す図である。調整回路３０９は、ディレイブロック６（図７参照）に加えて、セレクタ３０９１、ＡＮＤゲート３０９２、ＯＲゲート３０９３を有する。セレクト信号ｓｅｌは、ディレイブロック６及びセレクタ３０９１にそれぞれ供給される。ＡＮＤゲート３０９２は、基準クロックｃｌｋ＿ｒｅｆとディレイブロック６の出力との論理積を演算して、演算結果をセレクタ３０９１へ出力する。ＯＲゲート３０９３は、基準クロックｃｌｋ＿ｒｅｆとディレイブロック６の出力と論理和を演算し、演算結果をセレクタ３０９１へ出力する。
【００７８】
セレクタ３０９１は、図１５に示すように、セレクト信号ｓｅｌが供給されるまでには動作せず、出力クロックｃｌｋ＿ｏｕｔを出力しない。セレクタ３０９１は、ロジック回路３０５から供給されたセレクト信号ｓｅｌに応じて、デューティ比調整のために基準クロックｃｌｋ＿ｒｅｆの立ち上がりエッジを選択的に遅延させる場合にＡＮＤゲート３０９２の演算結果を選択し、デューティ比調整のために基準クロックｃｌｋ＿ｒｅｆの立ち下がりエッジを選択的に遅延させる場合にＯＲゲート３０９３の演算結果を選択する。図１５では、セレクタ３０９１がデューティ比調整のために基準クロックｃｌｋ＿ｒｅｆの立ち上がりエッジを選択的に遅延量Δｔ’で遅延させて出力クロックｃｌｋ＿ｏｕｔを生成する場合が例示されている。
【００７９】
以上のように、第３の実施形態では、基準クロックｃｌｋ＿ｒｅｆの１周期で所定の遅延量の遅延段数を検出するとともにパルス幅に対応する遅延段数を検出してクロックのデューティ比を所望のデューティ比に調整できる。これにより、高速にクロックのデューティ比を調整できる。
【００８０】
なお、デューティ調整回路３０１は、さらにデューティ検出回路を有していてもよい。例えば、調整回路３０９から出力された出力クロックｃｌｋ＿ｏｕｔをデューティ検出回路にフィードバックしてデューティ比を検出すれば、デューティ比の目標値に対する大小判定が可能である。ロジック回路３０５は、その検出結果も加味して調整すべき遅延量を決めてもよい。これにより、基準クロックｃｌｋ＿ｒｅｆの動的なデューティ比の変動に応じてデューティ比を調整できる。
【００８１】
あるいは、デューティ調整回路３０１において、遅延時間検出回路２及びパルス幅検出回路３０７の少なくとも一方における半導体集積回路１００が半導体集積回路２００に置き換えられてもよい。
【００８２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８３】
１  ＤＬＬ回路、２  遅延時間検出回路、１００，２００  半導体集積回路、３０１  デューティ調整回路。
【図１】
2019050528.tif 000003
【図２】
2019050528.tif 000004
【図３】
2019050528.tif 000005
【図４】
2019050528.tif 000006
【図５】
2019050528.tif 000007
【図６】
2019050528.tif 000008
【図７】
2019050528.tif 000009
【図８】
2019050528.tif 000010
【図９】
2019050528.tif 000011
【図１０】
2019050528.tif 000012
【図１１】
2019050528.tif 000013
【図１２】
2019050528.tif 000014
【図１３】
2019050528.tif 000015
【図１４】
2019050528.tif 000016
【図１５】
2019050528.tif 000017