(57)【特許請求の範囲】
【請求項１】
第１クロックを遅延して第２クロックを出力する遅延回路と、
前記第１クロックと前記第２クロックとの位相差を検出して制御信号を出力する検出器と、
前記検出器からの制御信号をカウントし、グレイコードでカウント結果を格納するとともに、グレイコードの前記カウント結果の増減に基づき前記遅延回路の遅延段数の増減を制御するための信号を前記遅延回路へ出力するカウンタとを備え、
前記カウンタは、
グレイコードの前記カウント結果を格納するとともに出力するグレイコードレジスタと、
前記グレイコードレジスタの出力をデコードして前記遅延段数の増減を制御するための信号を発生するデコーダと、
前記グレイコードレジスタの出力を受け、グレイコードの前記カウント結果をバイナリコードに変換するとともに格納するバイナリコード変換器と、
前記バイナリコード変換器から出力されるバイナリコードの前記カウント結果を受け、前記グレイコードレジスタのカウントアップ用キャリー信号とカウントダウン用キャリー信号とを発生するアップキャリー／ダウンキャリー発生器と、
前記カウントアップ用キャリー信号および前記カウントダウン用キャリー信号を受け、前記検出器から出力される前記制御信号に応じて、前記グレイコードレジスタに格納されたグレイコードの前記カウント結果を更新するためのキャリー信号として前記カウントアップ用キャリー信号および前記カウントダウン用キャリー信号のいずれかを選択するキャリーマルチプレクサとを含む、ディレイロックドループ。
【請求項２】
前記遅延回路は、
ファイン遅延素子と、
前記ファイン遅延素子と一列に接続され、前記ファイン遅延素子よりも前記グレイコードレジスタの格納値１ビット単位あたりの遅延変化量が大きいコース遅延素子とを含み、
前記ファイン遅延素子は、前記バイナリコード変換器によって変換後格納されたバイナリコードの前記カウント結果により遅延量が調整され、
前記コース遅延素子は、前記デコーダからの前記遅延段数の増減を制御するための信号によって遅延量が調整される、請求項１に記載のディレイロックドループ。
【請求項３】
外部クロックを受けて第１の内部クロックを出力する入力バッファと、
前記第１の内部クロックを遅延して第２の内部クロックを出力する遅延回路と、
前記第１の内部クロックと前記第２の内部クロックとの位相差を検出して制御信号を出力する検出器と、
前記検出器からの制御信号をカウントし、グレイコードでカウント結果を格納するとともに、グレイコードの前記カウント結果の増減に基づき前記遅延回路の遅延段数の増減を制御するための信号を前記遅延回路へ出力するカウンタとを含み、
前記カウンタは、
グレイコードの前記カウント結果を格納するとともに出力するグレイコードレジスタと、
前記グレイコードレジスタの出力をデコードして前記遅延段数の増減を制御するための信号を発生するデコーダと、
前記グレイコードレジスタの出力を受け、グレイコードの前記カウント結果をバイナリコードに変換するとともに格納するバイナリコード変換器と、
前記バイナリコード変換器から出力されるバイナリコードの前記カウント結果を受け、前記グレイコードレジスタのカウントアップ用キャリー信号とカウントダウン用キャリー信号とを発生するアップキャリー／ダウンキャリー発生器と、
前記カウントアップ用キャリー信号および前記カウントダウン用キャリー信号を受け、前記検出器から出力される前記制御信号に応じて、前記グレイコードレジスタに格納されたグレイコードの前記カウント結果を更新するためのキャリー信号として前記カウントアップ用キャリー信号および前記カウントダウン用キャリー信号のいずれかを選択するキャリーマルチプレクサとを有するディレイロックドループを備える、半導体装置。
【請求項４】
前記遅延回路は、
ファイン遅延素子と、
前記ファイン遅延素子と一列に接続され、前記ファイン遅延素子よりも前記グレイコードレジスタの格納値１ビット単位あたりの遅延変化量が大きいコース遅延素子とを含み、
前記ファイン遅延素子は、前記バイナリコード変換器によって変換後格納されたバイナリコードの前記カウント結果により遅延量が調整され、
前記コース遅延素子は、前記デコーダからの前記遅延段数の増減を制御するための信号によって遅延量が調整される、請求項３に記載の半導体装置。
【請求項５】
前記第２の内部クロックに応じて動作する、信号を外部から受ける入力回路をさらに備える、請求項３に記載の半導体装置。
【請求項６】
複数のメモリセルを含むメモリセルアレイをさらに備え、
前記入力回路は、前記メモリセルアレイにおけるデータ書込／読出のための信号を受ける、請求項５に記載の半導体装置。
【請求項７】
前記第２の内部クロックに応じて動作する、信号を外部に出力するための出力回路をさらに備える、請求項３に記載の半導体装置。
【請求項８】
複数のメモリセルを含むメモリセルアレイをさらに備え、
前記出力回路は、前記メモリセルアレイから読出したデータを外部に出力する、請求項７に記載の半導体装置。
【請求項９】
第１の外部クロックと前記第１の外部クロックと位相が相補になっている第２の外部クロックとが少なくとも入力され、前記第１の外部クロックの電位と前記第２の外部クロックの電位とが等しくなる前記第１の外部クロックの立上がりエッジのタイミングにおいて第１の内部クロックを出力する第１の入力バッファと、
前記第１の外部クロックと前記第２の外部クロックとが少なくとも入力され、前記第１の外部クロックの電位と前記第２の外部クロックの電位とが等しくなる前記第２の外部クロックの立上がりエッジのタイミングにおいて第２の内部クロックを出力する第２の入力バッファと、
前記第１の内部クロックを遅延して第３の内部クロックを出力する第１の遅延回路と、
前記第２の内部クロックを遅延して第４の内部クロックを出力する第２の遅延回路と、
前記第１の内部クロックと前記第３の内部クロックとの位相差を検出して制御信号を出力する検出器と、
前記検出器からの制御信号をカウントし、グレイコードでカウント結果を格納するとともに、グレイコードの前記カウント結果の増減に基づき前記第１の遅延回路の遅延段数および前記第２の遅延回路の遅延段数の増減を制御するための信号を前記第１の遅延回路および前記第２の遅延回路へ出力するカウンタとを含み、
前記カウンタは、
グレイコードの前記カウント結果を格納するとともに出力するグレイコードレジスタと、
前記グレイコードレジスタの出力をデコードして前記遅延段数の増減を制御するための信号を発生するデコーダと、
前記グレイコードレジスタの出力を受け、グレイコードの前記カウント結果をバイナリコードに変換するとともに格納するバイナリコード変換器と、
前記バイナリコード変換器から出力されるバイナリコードの前記カウント結果を受け、前記グレイコードレジスタのカウントアップ用キャリー信号とカウントダウン用キャリー信号とを発生するアップキャリー／ダウンキャリー発生器と、
前記カウントアップ用キャリー信号および前記カウントダウン用キャリー信号を受け、前記検出器から出力される前記制御信号に応じて、前記グレイコードレジスタに格納されたグレイコードの前記カウント結果を更新するためのキャリー信号として前記カウントアップ用キャリー信号および前記カウントダウン用キャリー信号のいずれかを選択するキャリーマルチプレクサとを有するディレイロックドループを備える、半導体装置。
【請求項１０】
前記第３の内部クロックおよび前記第４の内部クロックに応じて動作する、信号を外部に出力するための出力回路をさらに備える、請求項９に記載の半導体装置。
【請求項１１】
複数のメモリセルを含むメモリセルアレイをさらに備え、
前記出力回路は、前記メモリセルアレイから読出したデータを前記第３および第４の内部クロックに応じて外部に出力する、請求項１０に記載の半導体装置。
【請求項１２】
クロック同期により動作するシステムのための制御方法であって、
外部クロックを受けて第１の内部クロックを発生する入力バッファステップと、
前記第１の内部クロックを遅延して第２の内部クロックを出力する遅延ステップと、
前記第１の内部クロックと前記第２の内部クロックとの位相差を検出して制御信号を出力する検出ステップと、
前記制御信号をカウントし、グレイコードでカウント結果を格納するとともに、グレイコードの前記カウント結果の増減に基づき前記遅延ステップにおける遅延量を決定するステップとを備え、
前記遅延量を決定するステップは、
グレイコードの前記カウント結果を格納するステップと、
格納されたグレイコードの前記カウント結果をデコードして前記遅延量を制御するための信号を発生するステップと、
格納されたグレイコードの前記カウント結果を受け、グレイコードの前記カウント結果をバイナリコードに変換するとともに格納するステップと、
変換されたバイナリコードの前記カウント結果を受け、カウントアップ用キャリー信号とカウントダウン用キャリー信号とを発生するステップと、
前記カウントアップ用キャリー信号および前記カウントダウン用キャリー信号を受け、前記検出ステップにおいて出力される前記制御信号に応じて、前記カウントアップ用キャリー信号および前記カウントダウン用キャリー信号のいずれかをキャリー信号として選択するステップと、
前記キャリー信号を受け、格納されたグレイコードの前記カウント結果を更新するステップとを含む、クロック同期により動作するシステムのための制御方法。
【請求項１３】
前記第２の内部クロックに応じてデータを外部に出力するステップをさらに備える、請求項１２に記載のクロック同期により動作するシステムのための制御方法。
【請求項１４】
前記第２の内部クロックに応じて外部からデータを受けるステップをさらに備える、請求項１２に記載のクロック同期により動作するシステムのための制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クロック同期により動作するシステムにおいて同期を正確にとるために用いられるディレイロックドループ、当該ディレイロックドループを含む半導体装置およびクロック同期により動作するシステムのための制御方法に関するものである。
【０００２】
【従来の技術】
クロック同期によって動作するシステムにおいて、ある部品がクロックに同期した読出命令を受取ってから、当該読出命令に応答して読出データをクロック同期してシステムバスに返す場合を考える。なお、以下において記号ＡＤＲは、バイナリコードを示す。また、記号ＡＤＲ＜ｋ＞は、バイナリコードにおけるｋビット目を意味し、レジスタ値ＡＤＲ＜ｋ＞またはバイナリコードＡＤＲ＜ｋ＞と称す。
【０００３】
システムクロック周期を“Ｔ”とし、部品が読出命令を受取ってから読出データを準備するためにＴ０だけ時間を要するとする。クロック周期Ｔと期間Ｔ０との大小関係は問わないものとし、ある整数Ｎに対し、Ｎ×Ｔ≦Ｔ０＜（Ｎ＋１）×Ｔという関係が成り立っているものとする。この場合の出力の方法としては、以下の方法が考えられている。
【０００４】
図１７を参照して、時刻ｔ１（クロックＣＬＫｅｘｔの立上がりエッジ０）においてクロックＣＬＫｅｘｔに同期して読出命令が発せられ、読出データが準備され、次のクロックＣＬＫｅｘｔの立上がりエッジ１（時刻ｔ２：ｔ２＝ｔ１＋Ｔ）に同期してデータが出力されている。
【０００５】
部品がクロックＣＬＫｅｘｔを受取ってから、準備されたデータを出力バッファに出力するまでにはＴｄだけ時間を要する。このため、クロックエッジ１よりも実際の出力データはＴｄだけ遅れて出力される。
【０００６】
期間Ｔｄの内訳としては、図１８に示すように、部品内部において出力バッファを駆動するクロックＣＬＫｉｎをクロックＣＬＫｅｘｔから発生するための時間Ｔｉｎと、クロックＣＬＫｉｎによって出力バッファが動作し始めてから出力負荷であるシステムバスを所定の論理閾値を超えるまで駆動するための出力バッファ駆動時間Ｔｏｕｔとが含まれる（Ｔｄ＝Ｔｉｎ＋Ｔｏｕｔ）。
【０００７】
したがって、当該システムにおいては、実際にはクロックエッジ１よりもＴｄだけ遅れてからでないとデータはシステムバスに出力されないため、次のクロックエッジ２においてデータを取込むようにシステムを設計することになる。
【０００８】
このような動作である場合、システムクロック周期ＴがＴｄに比べて等しい、またはＴがＴｄよりも小さいくらいまで高周波になってくると、図１９に示すような問題が生じる。図１９においては、クロックエッジ１においてデータが出力し始めたにもかかわらず、遅延時間ＴｄがＴよりも大きいため、クロックエッジ２においてまだデータがバス上に伝達されていない。したがって、次のクロックエッジ３まで待たないとシステムはデータを取込むことができない。言換えると、クロックエッジ２においてデータを取込むような設計のままだと、システムが誤動作を起こすことになる。
【０００９】
特に、近年開発されているＤＤＲ・ＳＤＲＡＭ（ダブルデータレート・シンクロナスダイナミックランダムアクセスメモリ）においては、クロックの立上がりエッジと立下がりエッジとの両方でデータを出力する。このため、図２０に示すように、上記した出力手法をＤＤＲ・ＳＤＲＡＭに適用したならば、クロック周期の１／２がＴｄとほぼ等しくなる時点で上記問題と同じ問題が顕在化することになる。
【００１０】
このような問題点を解決するために従来用いられているのが、ディレイ・ロックド・ループ（以下、ＤＬＬと記す）である。ＤＬＬを用いた部品においては、図２１に示すように、部品がシステムクロックＣＬＫｅｘｔを受取って、当該システムクロックＣＬＫｅｘｔを部品内部で遅延素子によりＴｄｌｌ１だけ遅延させる。そして、システムクロックの立上がりエッジよりも出力バッファ駆動時間相当の時間（Ｔｏｕｔ′＝Ｔｏｕｔ）だけ手前で立上がるような内部クロックＣＬＫｉｎ２を発生する。
【００１１】
内部クロックＣＬＫｉｎ２を用いて出力バッファを駆動することにより、システムクロックＣＬＫｅｘｔのエッジで読出データがバス上に出力されているという状態が実現できる。すなわち、Ｔｄｌｌ１＋Ｔｏｕｔ′＝ｍ×Ｔ（ｍは、１以上の整数）が成立する。
【００１２】
このように、ＤＬＬは出力タイミングをクロックに同期させることができる。同様に、部品がシステムバスから各種制御信号や入力データを取込むための入力バッファに対してもＤＬＬを用いることができる。
【００１３】
ＤＬＬを用いない場合の入力バッファの動作タイミングを、図２２を用いて説明する。図２２に示されるように、ＤＬＬを用いない入力バッファにおいては、クロックＣＬＫｅｘｔを受けてから部品内部で内部クロックＣＬＫｉｎを発生するのにＴｉｎだけの時間を要している。
【００１４】
このため、外部から入力される制御信号ＳＩＧは、Ｔｉｎ相当の時間Ｔｉｎ"だけ内部で遅れた信号ＳＩＧｉｎになり、信号ＳＩＧｉｎは内部クロックＣＬＫｉｎのエッジタイミングでラッチ回路９１０によりラッチされ確定することになる。図において、確定した制御信号を示している。
【００１５】
ラッチ回路９１０は、図２３に示すように、インバータＩＶ１〜ＩＶ４およびＮＡＮＤ回路Ｎ１〜Ｎ４を含む。インバータＩＶ１,ＩＶ３は、内部クロックＣＬＫｉｎおよび当該内部クロックＣＬＫｉｎを反転したクロック／ＣＬＫｉｎに応じて動作する。
【００１６】
したがって、ＤＬＬを用いない場合、システムクロックＣＬＫｅｘｔのエッジよりもＴｉｎ以上遅れてからでないと部品は制御信号を使用することができず、部品自体が高速動作に適さなくなる。
【００１７】
このような遅延を補償するため、上記したＤＬＬを用いることになる。ＤＬＬを用いた動作波形について、図２４を用いて説明する。図２４を参照して、システムクロックＣＬＫｅｘｔを部品内部で遅延素子によりＴｄｌｌ２だけ遅延させ、システムクロックＣＬＫｅｘｔのエッジと同じ位置にエッジを持つ内部クロックＣＬＫｉｎ３を生成する。そして、当該内部クロックＣＬＫｉｎ３を制御信号ＳＩＧをラッチするために用いたとすれば、上記した場合よりも、Ｔｉｎ相当分だけの時間だけ早く制御信号ＳＩＧをラッチすることができる。これにより高速動作に適したシステム設計となる。この場合、上記した説明によりＴｄｌｌ２＝ｍ×Ｔが成立する。
【００１８】
ここで、従来から用いられてきたＤＬＬを構成する回路の構成例を、図２５を用いて説明する。従来のＤＬＬ９０００は、図２５に示すように、クロックバッファ１、ファイン遅延素子３、コース遅延素子５、デコーダ７０、遅延レジスタであるバイナリカウンタ８０、位相比較器９、タイミングクロック発生器１０、パルス発生器１１およびレプリカ回路１３を含む。
【００１９】
外部クロックＣＬＫｅｘｔがクロックバッファ１に入力される。クロックバッファ１は、クロックＢＵＦＦＣＬＫを出力する。外部クロックＣＬＫｅｘｔからクロックＢＵＦＦＣＬＫまでの時間はＴｉｎである。
【００２０】
クロックＢＵＦＦＣＬＫは、ファイン遅延素子３に入力される。ファイン遅延素子３は、クロックＢＵＦＦＣＬＫをＴｆｉｎｅだけ遅らせて、クロックＣＬＫＡを出力する。クロックＢＵＦＦＣＬＫからクロックＣＬＫＡまでの遅延時間Ｔｆｉｎｅは可変であって、ファイン遅延素子３に入力される３ビットのレジスタ値ＡＤＲ＜０：２＞の値によって微小な刻みＴｆ（約４０ｐｓｅｃ刻み）で変化する。
【００２１】
クロックＣＬＫＡはコース遅延素子５に入力される。コース遅延素子５は、クロックＣＬＫＡをＴｃｏａｒｓｅだけ遅らせて、クロックＣＬＫＢを出力する。クロックＣＬＫＡからクロックＣＬＫＢまでの遅延時間Ｔｃｏａｒｓｅは可変であって、６ビットのレジスタ値ＡＤＲ＜３：８＞によって粗い刻みＴｃで変化する。なお、Ｔｃは、Ｔｆの８倍の大きさに設定しておく。
【００２２】
ファイン遅延素子３およびコース遅延素子５の遅延量を決定するレジスタ値は、バイナリカウンタ８０から出力される。
【００２３】
クロックがファイン遅延素子３とコース遅延素子５とを通過するのに、回路構成上、少なくとも遅延時間Ｔｘかかる。ファイン遅延素子３とコース遅延素子５とを通過する以上、たとえばレジスタ値が最短遅延時間の値であったとしてもＴｘだけ遅延してしまう。
【００２４】
さて、従来のＤＬＬは、ファイン遅延素子３およびコース遅延素子５のいずれにおいても、バイナリコードにより遅延時間を設定していた。一例としては、ファイン遅延素子３における遅延時間は、レジスタ値ＡＤＲ＜０：２＞が“００１”だとＴｆ、“０１０”だと２Ｔｆ、“０１１”だと３×Ｔｆになる。また、コース遅延素子５における遅延時間は、レジスタ値ＡＤＲ＜３：８＞が“０００１１１”だと７×Ｔｃ、“００１０００”だと８×Ｔｃになる。
【００２５】
したがって、上記した回路構成上発生する遅延時間Ｔｘも考慮に入れると、Ｔｃｏａｒｓｅを決定するレジスタ値が“００１００１”でありＴｆｉｎｅを決定するレジスタ値が“０１１”の場合、クロックＢＵＦＦＣＬＫからクロックＣＬＫＢまでのトータルの遅延時間は、Ｔｆｉｎｅ＋Ｔｃｏａｒｓｅ＝Ｔｘ＋３×Ｔｆ＋９×Ｔｃになる。
【００２６】
以降の説明において、コース遅延素子５に入力されるレジスタ値が“００１００１”であり、ファイン遅延素子３に入力されるレジスタ値が“０１１”の場合には、レジスタ値“００１００１０１１”と表記する。
【００２７】
クロックＣＬＫＢは、出力バッファ駆動用の内部クロックＣＬＫｉｎ２と入力バッファ駆動用の内部クロックＣＬＫｉｎ３とを発生するパルス発生器１１およびレプリカ回路１３に入力されている。内部クロックＣＬＫｉｎ２は、図２１で説明した役割を果たす。これにより、外部クロックＣＬＫｅｘｔの立上がりエッジで出力バッファの出力がシステムバスに伝達されることになる。
【００２８】
レプリカ回路１３は、入力バッファ遅延時間Ｔｉｎと出力バッファ駆動時間Ｔｏｕｔとの和を模擬した固定遅延時間（Ｔｉｎ′＋Ｔｏｕｔ′）だけクロックＣＬＫＢを遅らせて、クロックＦＢＣＬＫを発生する。
【００２９】
したがって、クロックＢＵＦＦＣＬＫからクロックＦＢＣＬＫまでの遅延時間は、Ｔｆｉｎｅ＋Ｔｃｏａｒｓｅ＋Ｔｉｎ′＋Ｔｏｕｔ′となる。上記した外部クロックＣＬＫｅｘｔからクロックＦＢＣＬＫの発生に至るまでの各種信号の関係は、図２６に示すとおりである。
【００３０】
ここで、ＤＬＬが、所望の遅延時間を満たすように動作している場合の波形について図２７を用いて説明する。図２７に示す例では、クロックＢＵＦＦＣＬＫの立上がりエッジとクロックＦＢＣＬＫとの立上がりエッジが同時になっている。クロックＢＵＦＦＣＬＫよりもＴｉｎだけ前に外部クロックＣＬＫｅｘｔがあり、クロックＦＢＣＬＫよりも（Ｔｉｎ′＋Ｔｏｕｔ′）だけ前に内部クロックＣＬＫｉｎ２の立上がりエッジがある。このため、外部クロックＣＬＫｅｘｔの立上がりエッジよりもＴｏｕｔ′だけ前に内部クロックＣＬＫｉｎ２の立上がりエッジがあることになる。これは、上述した図２１において説明したタイミングに相当している。ここで、Ｔｉｎ＝Ｔｉｎ′、Ｔｏｕｔ＝Ｔｏｕｔ′となるようにレプリカ回路１３における遅延時間は設計されている。
【００３１】
ここで、ＤＬＬの最適遅延時間を決定するためにはクロックＢＵＦＦＣＬＫとクロックＦＢＣＬＫとの立上がりエッジの先後を検出する回路が必要になる。これが、図２５に示される位相比較器９である。位相比較器９は、クロックＢＵＦＦＣＬＫとクロックＦＢＣＬＫとの位相差を検出して、信号ＵＰＦ，ＤＮＦを出力する。
【００３２】
ここで、信号ＵＰＦ，ＤＮＦについて、図２８（ａ），図２８（ｂ）を用いて説明する。クロックＦＢＣＬＫの位相がクロックＢＵＦＦＣＬＫの位相よりも進んでいる場合、図２８（ａ）に示すように、位相比較器９の出力は「アップ」（ＵＰＦ＝“Ｈ”、ＤＮＦ＝“Ｌ”）になる。また、クロックＦＢＣＬＫの位相がクロックＢＵＦＦＣＬＫの位相よりも遅れている場合には、図２８（ｂ）に示すように、位相比較器９の出力は「ダウン」（ＤＮＦ＝“Ｈ”、ＵＰＦ＝“Ｌ”）になる。
【００３３】
位相比較器９の構成の一例を図３０に示す。位相比較器９は、図３０に示すように、ＮＡＮＤ回路Ｎ５〜Ｎ１０を含む。ＮＡＮＤ回路Ｎ５に入力されるクロックＢＵＦＦＣＬＫとＮＡＮＤ回路Ｎ６に入力されるクロックＦＢＣＬＫとにより、ＮＡＮＤ回路Ｎ９から信号ＵＰＦが、ＮＡＮＤ回路Ｎ１０から信号ＤＮＦがそれぞれ出力される。
【００３４】
図２５を参照して、タイミングクロック発生器１０は、信号ＵＰＦ，ＤＮＦを受けて、カウンタ更新クロックＣＬＫＣＮＴとアップ信号ＵＰとダウン信号ＤＮとを発生する。
【００３５】
バイナリカウンタ８０は、カウンタ更新クロックＣＬＫＣＮＴに応じて、アップ信号ＵＰ，ダウン信号ＤＮに基づき、レジスタ値ＡＤＲ＜０：２＞，ＡＤＲ＜３：８＞を出力する。
【００３６】
位相比較器９の出力が「アップ」であると、レジスタ値が増加する。たとえば、“０００００００１０”が、“０００００００１１”になる。また、位相比較器９の出力が「ダウン」であると、レジスタ値が減少する。たとえば、“０００００００１１”が、“０００００００１０”になる。
【００３７】
デコーダ７０は、レジスタ値ＡＤＲ＜３：８＞をデコードする。デコーダ７０は、図２９に示すように、ＡＮＤ回路９０♯０〜９０♯７および９１♯０〜９１♯１５を含む。
【００３８】
ＡＮＤ回路９０♯０は、バイナリコードＡＤＲ＜０＞を反転したバイナリコード／ＡＤＲ＜０＞と、バイナリコードＡＤＲ＜１＞を反転したバイナリコード／ＡＤＲ＜１＞とを受け、ＡＮＤ回路９０♯１は、バイナリコードＡＤＲ＜０＞とバイナリコード／ＡＤＲ＜１＞とを受ける。
【００３９】
ＡＮＤ回路９０♯２は、バイナリコード／ＡＤＲ＜０＞と、バイナリコードＡＤＲ＜１＞とを受け、ＡＮＤ回路９０♯３は、バイナリコードＡＤＲ＜０＞とバイナリコードＡＤＲ＜１＞とを受ける。
【００４０】
ＡＮＤ回路９０♯４は、バイナリコードＡＤＲ＜２＞を反転したバイナリコード／ＡＤＲ＜２＞と、バイナリコードＡＤＲ＜３＞を反転したバイナリコード／ＡＤＲ＜３＞とを受け、ＡＮＤ回路９０♯５は、バイナリコードＡＤＲ＜２＞とバイナリコード／ＡＤＲ＜３＞とを受ける。
【００４１】
ＡＮＤ回路９０♯６は、バイナリコード／ＡＤＲ＜２＞と、バイナリコードＡＤＲ＜３＞とを受け、ＡＮＤ回路９０♯７は、バイナリコードＡＤＲ＜２＞とバイナリコードＡＤＲ＜３＞とを受ける。
【００４２】
ＡＮＤ回路９１♯ｉ（ｉ＝０〜３）は、ＡＮＤ回路９０♯ｉの出力Ｘ＜ｉ＞とＡＮＤ回路９０♯４の出力Ｘ＜４＞とを入力に受ける。ＡＮＤ回路９１♯ｉ＋４（ｉ＝０〜３）は、ＡＮＤ回路９０♯ｉの出力Ｘ＜ｉ＞とＡＮＤ回路９０♯５の出力Ｘ＜５＞とを受ける。ＡＮＤ回路９１♯ｉ＋８（ｉ＝０〜３）は、ＡＮＤ回路９０♯ｉの出力Ｘ＜ｉ＞とＡＮＤ回路９０♯６の出力Ｘ＜６＞とを入力に受ける。ＡＮＤ回路９１♯ｉ＋１２（ｉ＝０〜３）は、ＡＮＤ回路９０♯ｉの出力Ｘ＜ｉ＞とＡＮＤ回路９０♯７の出力Ｘ＜７＞とを受ける。ＡＮＤ回路９１♯ｋ（ｋ＝０〜１５）の出力に応じて、コース遅延素子５の遅延段数（たとえば、ｋ個）が決定される。ここでは４ビットバイナリデコーダについて例示したが、ＡＤＲ＜３＞〜ＡＤＲ＜８＞を受ける６ビットバイナリデコーダも同様の回路により実現されることは当業者によって容易に理解されるところである。
【００４３】
外部クロックを遅延しすぎると、出力「ダウン」により遅延時間が短くなり、遅延が足りなくなると出力「アップ」により遅延時間が長くなる。この結果、ＤＬＬ９０００は、所望の遅延時間で安定することになる。
【００４４】
ＤＬＬは、このように、クロックＢＵＦＦＣＬＫとクロックＦＢＣＬＫとの立上がりエッジの先後を検出しつつ、クロックＢＵＦＦＣＬＫとクロックＦＢＣＬＫとの立上がりエッジが同時になる状態を保持するよう遅延素子３および５の遅延時間を適宜調節する。
【００４５】
【発明が解決しようとする課題】
ところで、図２８（ａ）および図２８（ｂ）のように位相差が明確である場合には何の問題も生じない。しかしながら、ＤＬＬ９０００は上記したようにクロックＢＵＦＦＣＬＫとクロックＦＢＣＬＫとの位相差をモニタし、位相差がほとんどない状態を保持するように遅延素子３および５を調整すべく動作せねばならない。
【００４６】
したがって、必然的にＤＬＬ９０００が動作している通常状態では、クロックＢＵＦＦＣＬＫとクロックＦＢＣＬＫとの位相差はほとんどない。このような場合には、位相比較器９は、「アップ」または「ダウン」のいずれかを出力するべきなのかを決定するのに非常に長い時間を要する状態がある確率で発生する。
【００４７】
これは、位相比較器９を含めフリップフロップ一般について言えることで、メタステーブル状態として知られている現象である。
【００４８】
しかしながら、「ＣＭＯＳ超ＬＳＩの設計」（培風館、１９８９年刊、ｐ．１２８）にあるように、メタステーブル状態の発生確率を完全に０にすることは現実的に不可能である。このような場合に、従来のようなバイナリカウンタ８０を用いると誤動作を起こす可能性がある。
【００４９】
たとえば、現在のレジスタ値が“０１１１１１１１１”である場合、次のレジスタ値は、「アップ」であれば“１００００００００”になるが、「ダウン」であれば、“０１１１１１１１０”になる。
【００５０】
つまり、この例ではＭＳＢビットからＬＳＢビットの１つ手前までの合計８ビットの状態が、「アップ」か「ダウン」かによって異なることになる。言換えると、「アップ」なら、９ビットのキャリーが“１”なのに、「ダウン」であるならば、ＬＳＢビット以外のキャリーは“０”であり、「アップ」か「ダウン」かでキャリーの値が大きく異なる。
【００５１】
こうした瞬間にメタステーブル状態が発生すると、位相比較器９は、「アップ」か「ダウン」か、すなわちレジスタのキャリーは“０”なのか“１”なのか不定になる。この結果として、次のレジスタ状態が不定になる。実際には、次のレジスタ状態はランダムな値になる。
【００５２】
すなわち、ＤＬＬの遅延時間がある値から突然大きく異なる別の値に変ってしまうという結果をもたらす。たとえば、レジスタ値が“０１１１１１１１１”から“０１０１０１０１０”になった場合には、遅延素子の遅延時間Ｔｃｏａｒｓｅ＋Ｔｆｉｎｅは３１×Ｔｃ＋７×Ｔｆから２１×Ｔｃ＋２×Ｔｆになる。
【００５３】
したがって、所望の遅延状態で安定していたはずのＤＬＬにおいて、遅延時間が、突然大きくずれてしまい、系全体が誤動作状態を起こしてしまう。
【００５４】
そこで、本発明はかかる問題を解決するためになされたものでありその目的は、不連続な遅延の飛びを最小化することができるディレイロックドループおよび当該ディレイロックドループを備える半導体装置を提供する。
【００５５】
【課題を解決するための手段】
この発明のある局面によるディレイロックドループは、第１クロックを遅延して第２クロックを出力する遅延回路と、上記第１クロックと上記第２クロックとの位相差を検出して制御信号を出力する検出器と、上記検出器からの制御信号をカウントし、グレイコードでカウント結果を格納するとともに、グレイコードの上記カウント結果の増減に基づき上記遅延回路の遅延段数の増減を制御するための信号を上記遅延回路へ出力するカウンタとを備え、上記カウンタは、グレイコードの上記カウント結果を格納するとともに出力するグレイコードレジスタと、上記グレイコードレジスタの出力をデコードして上記遅延段数の増減を制御するための信号を発生するデコーダと、上記グレイコードレジスタの出力を受け、グレイコードの上記カウント結果をバイナリコードに変換するとともに格納するバイナリコード変換器と、上記バイナリコード変換器から出力されるバイナリコードの上記カウント結果を受け、上記グレイコードレジスタのカウントアップ用キャリー信号とカウントダウン用キャリー信号とを発生するアップキャリー／ダウンキャリー発生器と、上記カウントアップ用キャリー信号および上記カウントダウン用キャリー信号を受け、上記検出器から出力される上記制御信号に応じて、上記グレイコードレジスタに格納されたグレイコードの上記カウント結果を更新するためのキャリー信号として上記カウントアップ用キャリー信号および上記カウントダウン用キャリー信号のいずれかを選択するキャリーマルチプレクサとを含む。
【００５７】
特に、上記遅延回路は、ファイン遅延素子と、上記ファイン遅延素子と一列に接続され、上記ファイン遅延素子よりも上記グレイコードレジスタの格納値１ビット単位あたりの遅延変化量が大きいコース遅延素子とを含み、上記ファイン遅延素子は、上記バイナリコード変換器によって変換後格納されたバイナリコードの上記カウント結果により遅延量が調整され、上記コース遅延素子は、上記デコーダからの上記遅延段数の増減を制御するための信号によって遅延量が調整される。
【００５８】
この発明のある局面による半導体装置は、外部クロックを受けて第１の内部クロックを出力する入力バッファと、上記第１の内部クロックを遅延して第２の内部クロックを出力する遅延回路と、上記第１の内部クロックと上記第２の内部クロックとの位相差を検出して制御信号を出力する検出器と、上記検出器からの制御信号をカウントし、グレイコードでカウント結果を格納するとともに、グレイコードの上記カウント結果の増減に基づき上記遅延回路の遅延段数の増減を制御するための信号を上記遅延回路へ出力するカウンタとを含み、上記カウンタは、グレイコードの上記カウント結果を格納するとともに出力するグレイコードレジスタと、上記グレイコードレジスタの出力をデコードして上記遅延段数の増減を制御するための信号を発生するデコーダと、上記グレイコードレジスタの出力を受け、グレイコードの上記カウント結果をバイナリコードに変換するとともに格納するバイナリコード変換器と、上記バイナリコード変換器から出力されるバイナリコードの上記カウント結果を受け、上記グレイコードレジスタのカウントアップ用キャリー信号とカウントダウン用キャリー信号とを発生するアップキャリー／ダウンキャリー発生器と、上記カウントアップ用キャリー信号および上記カウントダウン用キャリー信号を受け、上記検出器から出力される上記制御信号に応じて、上記グレイコードレジスタに格納されたグレイコードの上記カウント結果を更新するためのキャリー信号として上記カウントアップ用キャリー信号および上記カウントダウン用キャリー信号のいずれかを選択するキャリーマルチプレクサとを有するディレイロックドループを備える。
【００６０】
特に、上記遅延回路は、ファイン遅延素子と、上記ファイン遅延素子と一列に接続され、上記ファイン遅延素子よりも上記グレイコードレジスタの格納値１ビット単位あたりの遅延変化量が大きいコース遅延素子とを含み、上記ファイン遅延素子は、上記バイナリコード変換器によって変換後格納されたバイナリコードの上記カウント結果により遅延量が調整され、上記コース遅延素子は、上記デコーダからの上記遅延段数の増減を制御するための信号によって遅延量が調整される。
【００６１】
好ましくは、半導体装置は、第２の内部クロックに応じて動作する、信号を外部から受ける入力回路または、第２の内部クロックに応じて動作する、信号を外部に出力するための出力回路をさらに備える。特に、半導体装置は、複数のメモリセルを含むメモリセルアレイをさらに備え、入力回路は、前記メモリセルアレイにおけるデータ書込／読出のための信号を受け、出力回路は、前記メモリセルアレイから読出したデータを外部に出力する。
【００６２】
この発明のさらなる局面による半導体装置は、第１の外部クロックと上記第１の外部クロックと位相が相補になっている第２の外部クロックとが少なくとも入力され、上記第１の外部クロックの電位と上記第２の外部クロックの電位とが等しくなる上記第１の外部クロックの立上がりエッジのタイミングにおいて第１の内部クロックを出力する第１の入力バッファと、上記第１の外部クロックと上記第２の外部クロックとが少なくとも入力され、上記第１の外部クロックの電位と上記第２の外部クロックの電位とが等しくなる上記第２の外部クロックの立上がりエッジのタイミングにおいて第２の内部クロックを出力する第２の入力バッファと、上記第１の内部クロックを遅延して第３の内部クロックを出力する第１の遅延回路と、上記第２の内部クロックを遅延して第４の内部クロックを出力する第２の遅延回路と、上記第１の内部クロックと上記第３の内部クロックとの位相差を検出して制御信号を出力する検出器と、上記検出器からの制御信号をカウントし、グレイコードでカウント結果を格納するとともに、グレイコードの上記カウント結果の増減に基づき上記第１の遅延回路の遅延段数および上記第２の遅延回路の遅延段数の増減を制御するための信号を上記第１の遅延回路および上記第２の遅延回路へ出力するカウンタとを含み、上記カウンタは、グレイコードの上記カウント結果を格納するとともに出力するグレイコードレジスタと、上記グレイコードレジスタの出力をデコードして上記遅延段数の増減を制御するための信号を発生するデコーダと、上記グレイコードレジスタの出力を受け、グレイコードの上記カウント結果をバイナリコードに変換するとともに格納するバイナリコード変換器と、上記バイナリコード変換器から出力されるバイナリコードの上記カウント結果を受け、上記グレイコードレジスタのカウントアップ用キャリー信号とカウントダウン用キャリー信号とを発生するアップキャリー／ダウンキャリー発生器と、上記カウントアップ用キャリー信号および上記カウントダウン用キャリー信号を受け、上記検出器から出力される上記制御信号に応じて、上記グレイコードレジスタに格納されたグレイコードの上記カウント結果を更新するためのキャリー信号として上記カウントアップ用キャリー信号および上記カウントダウン用キャリー信号のいずれかを選択するキャリーマルチプレクサとを有するディレイロックドループを備える。
【００６３】
好ましくは、半導体装置は、第３の内部クロックおよび第４の内部クロックに応じて動作する、信号を外部に出力するための出力回路をさらに備える。
【００６４】
特に、半導体装置は、複数のメモリセルを含むメモリセルアレイをさらに備え、出力回路は、メモリセルアレイから読出したデータを第３および第４の内部クロックに応じて外部に出力する。
【００６５】
この発明のさらなる局面によるクロック同期により動作するシステムにおける制御方法は、外部クロックを受けて第１の内部クロックを発生する入力バッファステップと、上記第１の内部クロックを遅延して第２の内部クロックを出力する遅延ステップと、上記第１の内部クロックと上記第２の内部クロックとの位相差を検出して制御信号を出力する検出ステップと、上記制御信号をカウントし、グレイコードでカウント結果を格納するとともに、グレイコードの上記カウント結果の増減に基づき上記遅延ステップにおける遅延量を決定するステップとを備え、上記遅延量を決定するステップは、グレイコードの上記カウント結果を格納するステップと、格納されたグレイコードの上記カウント結果をデコードして上記遅延量を制御するための信号を発生するステップと、格納されたグレイコードの上記カウント結果を受け、グレイコードの上記カウント結果をバイナリコードに変換するとともに格納するステップと、変換されたバイナリコードの上記カウント結果を受け、カウントアップ用キャリー信号とカウントダウン用キャリー信号とを発生するステップと、上記カウントアップ用キャリー信号および上記カウントダウン用キャリー信号を受け、上記検出ステップにおいて出力される上記制御信号に応じて、上記カウントアップ用キャリー信号および上記カウントダウン用キャリー信号のいずれかをキャリー信号として選択するステップと、上記キャリー信号を受け、格納されたグレイコードの上記カウント結果を更新するステップとを含む。
【００６７】
特に、制御方法は、第２の内部クロックに応じてデータを外部に出力するステップをさらに備える。または、制御方法は、第２の内部クロックに応じて外部からデータを受けるステップをさらに備える。
【００６８】
【発明の実施の形態】
以下、本発明の実施の形態について、図を用いて説明する。図中同一または相当部分には同一記号または符号を付しその説明を省略する。
【００６９】
［第１の実施の形態］
第１の実施の形態におけるディレイロックドループは、不連続な遅延の飛びを最小化することができる構成を有する。より具体的には、ＤＬＬにおいて、遅延レジスタとしてグレイコードカウンタ（グレイコード：交番符号）を用いる。
【００７０】
これにより、キャリーを常に１ビットしかたてないようにすることで、仮にメタステーブル状態が起きても遅延時間の飛び（不連続な飛び）を最小化することができる。以下において、記号ＧＡＤＲは、グレイコードを意味する。また、記号ＧＡＤＲ＜ｋ＞は、グレイコードにおけるｋビット目を意味し、レジスタ値ＡＤＲ＜ｋ＞またはグレイコードＧＡＤＲ＜ｋ＞と称す。
【００７１】
ここで、４ビットのグレイコードについて、図１を用いて説明する。図１では、デシマル（１０進コード）に対するバイナリコード（２進コード）とグレイコードとをそれぞれ示している。図中、“↑”（上向き矢印）は、「ダウン」方向を、“↓”（下向き矢印）は、「アップ」方向を表わしている。また、記号ＡＤＲは、バイナリコードを、記号ＧＡＤＲは、グレイコードを意味している。記号“・”（黒丸）は、バイナリコードおよびグレイコードのそれぞについてキャリーがどのビットに立っているかを示している。
【００７２】
グレイコードの作成方法は、以下に示すとおりである。まず、デシマル“０”をグレイ“００００”に割当てたとする。この点から、アップ方向に各ビットがどのように“０”または“１”にアサインされていくか説明する。
【００７３】
グレイコードの０ビット目（ＬＳＢ）は、アップ方向に０１１０を繰返す。１ビット目は、アップ方向に００１１１１００を繰返す。２ビット目は、アップ方向に００００１１１１１１１１００００を繰返す。以下同様に、ｎビット目は、アップ方向に“０”を２のｎ乗回、“１”を２の（ｎ＋１）乗回、“０”を２のｎ乗回繰返す。
【００７４】
なお、図１に示すグレイコードにおいて、ｎビット目の論理値を逆転させたものもグレイコードになる。
【００７５】
バイナリコード、グレイコードのどちらについても、Ｍ番目のコードのアップキャリーがｉビット目に立っている場合、Ｍ＋１番目のコードのダウンキャリーもｉビット目に立つ。したがって、図１において、Ｍ番目のコードとＭ＋１番目のコードとの間にある記号“・”は、Ｍ番目のコードから見るとアップキャリーに相当し、Ｍ＋１番目のコードから見るとダウンキャリーになる。
【００７６】
バイナリコードでは、アップまたはダウン方向のいずれにおいても複数ビットにキャリーが立っているが、グレイコードでは、アップおよびダウン方向のいずれにおいても１つのビットにのみキャリーが立つことがわかる。
【００７７】
たとえば、バイナリコード“０１１０”（デシマルコード“６”）を考える。バイナリコード“０１１０”のダウンキャリーは、０ビット目と１ビット目とに立っており、アップキャリーは、０ビット目に立っている。一方、１つ前のデシマルコード“５”（バイナリコード“０１０１”）のアップキャリーは、０ビット目と１ビット目とに立っており、１つ後のデシマルコード“７”（バイナリコード“０１１１”）のダウンキャリーは、０ビットに立っている。
【００７８】
これに対し、グレイコード“０１０１”（デシマルコード“６”）について考察する。グレイコード“０１０１”のダウンキャリーは、１ビット目に立っており、アップキャリーは、０ビット目に立っている。１つ前のデシマルコード“５”（グレイコード“０１１１”）のアップキャリーは、１ビット目に立っており、１つ後のデシマルコード“７”（グレイコード“０１００”）のダウンキャリーは、０ビット目に立っている。すなわち、グレイコードでは、キャリーが常に１ビットしか立たないことがわかる。
【００７９】
４ビットのグレイコードを４ビットのバイナリコードに変換する変換式の一例を、図２を用いて説明する。図２において、Ｅｘｏｒとは、排他的論理和を意味する。Ｅｘｏｒ回路は、入力される複数の信号のうち“１”の数が奇数であれば“１”を、偶数であれば“０を出力する。
【００８０】
たとえば、Ｅｘｏｒ（ＧＡＤＲ＜３＞，ＧＡＤＲ＜２＞）は、バイナリコードＡＤＲ＜２＞とし、Ｅｘｏｒ（ＧＡＤＲ＜３＞〜ＧＡＤＲ＜１＞）は、バイナリコードＡＤＲ＜３＞とする。すなわち、図２に示される変換式で、グレイコードＧＡＤＲ＜３：０＞をバイナリコードＡＤＲ＜３：０＞に変換することが可能になる。
【００８１】
同様に、ｎビットのグレイコードをｎビットのバイナリコードに変換する変換式を、図３を用いて説明する。たとえば、グレイコードＧＡＤＲ＜ｎ−１＞は、バイナリコードＡＤＲ＜ｎ−１＞とし、Ｅｘｏｒ（ＧＡＤＲ＜ｎ−１＞〜ＧＡＤＲ＜ｎ−３＞）は、バイナリコードＡＤＲ＜ｎ−３＞とする。図３に示される変換式で、ｎビットのグレイコードをｎビットのバイナリコードに変換することが可能になる。
【００８２】
次に、グレイコードのキャリーがどのビットに立つかについて、図４を用いて説明する。図４では、グレイコード“０１０１”をデシマル“６”（バイナリコード“０１１０”）に対応させた例を示している。図中、キャリービットとバイナリコードにおけるビットとの関係を、矢印で表わしている。
【００８３】
グレイコード“０１０１”のダウンキャリーは、対応するバイナリコード“０１１０”のうち、最もＬＳＢ側の“１”が立っているビット、つまり１ビット目に立つ。また、アップキャリーは、対応するバイナリコード“０１１０”のうち、最もＬＳＢ側の“０”が立っているビット、つまり０ビット目に立つ。
【００８４】
一般化すると、あるグレイコードについて考えたとき、当該グレイコードのダウンキャリーは、対応するバイナリコードのうち最もＬＳＢ側の“１”が立っているビットに立つ。また、アップキャリーは、対応するバイナリコードのうち、最もＬＳＢ側の“０”が立っているビットに立つ。これにより、グレイコードにおいては、アップキャリー、ダウンキャリーのそれぞれは、１ビットにしか立たないことがわかる。
【００８５】
ここで、第１の実施の形態によるグレイコードカウンタ（９ビット）の構成の一例を、図５を用いて説明する。グレイコードカウンタ８１は、図５に示すように、グレイコードレジスタ８１０、バイナリコード発生器８１１、アップ・ダウンキャリー発生器８１２およびキャリーマルチプレクサ８１３を含む。
【００８６】
グレイコードレジスタ８１０は、９ビットのグレイコードＧＡＤＲ＜０＞〜ＧＡＤＲ＜８＞を格納する。バイナリコード発生器８１１は、Ｅｘｏｒ回路Ｅ０〜Ｅ７を含む。
【００８７】
バイナリコード発生器８１１は、グレイコードレジスタ８１０から９ビットのグレイコードＧＡＤＲ＜０＞〜ＧＡＤＲ＜８＞を受けて、図３で説明した変換式にしたがってバイナリコードＡＤＲ＜０＞〜ＡＤＲ＜８＞を生成する。
【００８８】
アップ・ダウンキャリー発生器８１２は、バイナリコードＡＤＲ＜０＞〜ＡＤＲ＜８＞を受けて、図４で説明した変換式に従い、アップキャリーＵＣ＜０＞〜ＵＣ＜８＞またはダウンキャリーＤＣ＜０＞〜ＤＣ＜８＞を生成する。
【００８９】
上述したように、アップキャリーＵＣ＜０＞〜ＵＣ＜８＞のうちの１ビットのみが“１”であり、他は“０”である。または、ダウンキャリーＤＣ＜０＞〜ＤＣ＜８＞のうちの１ビットのみが“１”であり、他は“０”である。
【００９０】
キャリーマルチプレクサ８１３は、信号ＵＰおよびＤＮを受ける複数のマルチプレクサ（記号ＭＵＸ）を含む。信号ＵＰとＤＮとは、相対的に反対の論理レベルを有する。
【００９１】
信号ＵＰ＝“１”，信号ＤＮ＝“０”であれば、次はカウンタをアップさせねばならないので、アップキャリーＵＣ＜０＞〜ＵＣ＜８＞をキャリーＣ＜０＞〜Ｃ＜８＞としてスルーする。一方、信号ＵＰ＝“０”，信号ＤＮ＝“１”ならば、次は、カウンタをダウンさせねばならないので、ダウンキャリーＤＣ＜０＞〜ＤＣ＜８＞をキャリーＣ＜０＞〜Ｃ＜８＞としてスルーする。
【００９２】
キャリーＣ＜０＞〜Ｃ＜８＞のうち１ビットのみが“１”であり、他は“０”である。上記したキャリーＣ＜０＞〜Ｃ＜８＞の発生過程は、図６に示すとおりである。このようにして生成されたキャリーＣ＜０＞〜Ｃ＜８＞が、グレイコードレジスタ８１０に入力される。そして、次のカウンタ更新クロックＣＬＫＣＮＴのタイミングで、入力されるキャリーＣ＜０＞〜Ｃ＜８＞に基づき、グレイコードＧＡＤＲ＜０＞〜ＧＡＤＲ＜８＞のうちの１ビットが新しい値に更新される。
【００９３】
ここで、第１の実施の形態によるグレイコードレジスタ８１０の回路構成の一例を、図７を用いて説明する。図７は、グレイコードＧＡＤＲ＜ｎ＞に対応するレジスタの構成を示している（ｎ＝０〜８）。グレイコードＧＡＤＲ＜ｎ＞対応のレジスタは、ＮＡＮＤ回路Ｎ２０、インバータＩＶ２０〜ＩＶ２５、ならびにゲートＧ２０およびＧ２１を含む。
【００９４】
ＮＡＮＤ回路Ｎ２０は、カウンタ更新クロックＣＬＫＣＮＴとキャリーＣ＜ｎ＞とを受け、信号／Ｃを出力する。インバータＩＶ２０は、信号／Ｃを反転し信号Ｃを出力する。
【００９５】
インバータＩＶ２１およびＩＶ２２はラッチ回路を構成する。同様に、インバータＩＶ２３およびＩＶ２４は、ラッチ回路を構成する。ゲートＧ２０およびＧ２１は、信号Ｃおよび／Ｃに応じて入力信号を出力信号にスルーし、または入力信号と出力信号とを切断する。
【００９６】
インバータＩＶ２５は、グレイコードＧＡＤＲ＜ｎ＞を出力する出力ノードＯＵＴとゲートＧ２０との間に接続される。インバータＩＶ２１およびＩＶ２２を含むラッチ回路は、ゲートＧ２０とＧ２１との間に接続される。インバータＩＶ２３およびＩＶ２４を含むラッチ回路は、ゲートＧ２１とノードＯＵＴとの間に接続される。
【００９７】
次に、第１の実施の形態によるバイナリコード発生器８１１の回路構成の一例を、図８を用いて説明する。バイナリコード発生器８１１は、図８に示すように、ＥＸＯＲ回路Ｅ９ａ，Ｅ９ｂ，Ｅ９ｃ，…を含む。Ｅｘｏｒ回路は、図３で説明したグレイコード／バイナリコード変換式に対応するように配置される。
【００９８】
たとえば、グレイコードＧＡＤＲ＜８＞は、バイナリコードＡＤＲ＜８＞として出力される。グレイコードＧＡＤＲ＜８＞とＧＡＤＲ＜７＞とを受けるＥＸＯＲ回路Ｅ９ｂの出力がバイナリコードＡＤＲ＜７＞として出力される。グレイコードＧＡＤＲ＜６＞〜ＧＡＤＲ＜８＞を入力に受けるＥＸＯＲ回路Ｅ９ｃの出力が、バイナリコードＡＤＲ＜６＞として出力される。
【００９９】
次に、第１の実施の形態によるアップ・ダウンキャリー発生器８１２の回路構成の一例を、図３３を用いて説明する。アップ・ダウンキャリー発生器８１２は、図３３に示すように、複数の論理回路４０，４１，４２，…を含む。アップ・ダウンキャリー発生器８１２における複数の論理回路は、図４で説明したキャリービットの位置を求める方式に従い配置される。アップ・ダウンキャリー発生器８１２により、ダウンキャリーＤＣ＜０＞，ＤＣ＜１＞，…、アップキャリーＵＣ＜０＞，ＵＣ＜１＞，…が出力される。
【０１００】
次に、第１の実施の形態によるキャリーマルチプレクサ８１３の回路構成の一例について、図３４を用いて説明する。図３４は、キャリーＣ＜ｎ＞に対応するマルチプレクサを示している（ｎ＝０〜８）。キャリーＣ＜ｎ＞対応のマルチプレクサは、図３４に示すように、論理回路５０および５１、ならびにインバータＩＶ５０〜ＩＶ５５を含む。
【０１０１】
論理回路５０は、カウンタ更新クロックＣＬＫＣＮＴと信号ＵＰとを受け、信号Ｕを出力する。インバータＩＶ５０は、信号Ｕを反転した信号／Ｕを出力する。信号Ｕは、信号ＵＰがＨレベルかつカウンタ更新クロックＣＬＫＣＮＴがＬレベルのときのみにＨレベルになる。
【０１０２】
論理回路５１は、カウンタ更新クロックＣＬＫＣＮＴと信号ＤＮとを受け、信号Ｄを出力する。インバータＩＶ５１は、信号Ｄを反転した信号／Ｄを出力する。信号Ｄは、信号ＤＮがＨレベルかつカウンタ更新クロックＣＬＫＣＮＴがＬレベルのときのみにＨレベルになる。
【０１０３】
インバータＩＶ５２は、信号ＵがＨレベル（信号／ＵがＬレベル）になると、アップキャリーＵＣ＜ｎ＞を反転して出力する。インバータＩＶ５３は、信号ＤがＨレベル（信号／ＤがＬレベル）になると、ダウンキャリーＤＣ＜ｎ＞を反転して出力する。
【０１０４】
インバータＩＶ５４およびＩＶ５５は、ラッチ回路を構成する。インバータＩＶ５４およびＩＶ５５を含むラッチ回路は、インバータＩＶ５２，ＩＶ５３の出力ノードと、ノードＯＵＴとの間に配置される。ノードＯＵＴから、キャリーＣ＜ｎ＞が出力される。
【０１０５】
第１の実施の形態によるＤＬＬ１０００の全体構成を、図９を用いて説明する。ＤＬＬ１０００は、図９に示すように、クロックバッファ１、ファイン遅延素子３、コース遅延素子５、デコーダ７１、グレイコードカウンタ８１、位相比較器９、タイミングクロック発生器１０、パルス発生器１１およびレプリカ回路１３を含む。
【０１０６】
従来のＤＬＬ９０００と異なる点は、バイナリカウンタ８０に代わってグレイコードカウンタ８１を含むこと、およびこれに伴いデコーダ７０に代わってデコーダ７１を含むことにある。
【０１０７】
グレイコードカウンタ８１は、カウンタ更新クロックＣＬＫＣＮＴに応じて、信号ＵＰ／ＤＮに基づき、バイナリコードＡＤＲ＜０：２＞およびグレイコードＧＡＤＲ＜３：８＞を出力する。
【０１０８】
デコーダ７１は、グレイコードＧＡＤＲ＜３：８＞をデコードして、コース遅延素子５の遅延段数を決定する信号を出力する。
【０１０９】
デコーダ７１の構成の一例を、図１０−図１２を用いて説明する。デコーダ７１は、図１０−図１２に示すように、信号ＧＸ＜ｋ＞を出力するＡＮＤ回路６０♯ｋ（ｋ＝０〜１１）、および信号ＧＸ＜ｋ＞に応じてコース遅延素子５における遅延段数を決定する信号を出力するＡＮＤ回路６１♯０〜６１♯６３を含む。
【０１１０】
ＡＮＤ回路６０♯ｉ×４（ｉ＝０，１，２）は、グレイコードＧＡＤＲ＜３＋ｉ×２＞を反転したグレイコード／ＧＡＤＲ＜３＋ｉ×２＞と、グレイコードＧＡＤＲ＜４＋ｉ×２＞を反転したグレイコード／ＧＡＤＲ＜４＋ｉ×２＞とを受け、ＡＮＤ回路６０♯（ｉ×４＋１）は、グレイコードＧＡＤＲ＜３＋ｉ×２＞とグレイコード／ＧＡＤＲ＜４＋ｉ×２＞とを受ける。
【０１１１】
ＡＮＤ回路６０♯（ｉ×４＋２）は、グレイコードＧＡＤＲ＜３＋ｉ×２＞とグレイコードＧＡＤＲ＜４＋ｉ×２＞とを受け、ＡＮＤ回路６０♯（ｉ×４＋３）は、グレイコード／ＧＡＤＲ＜３＋ｉ×２＞とグレイコードＧＡＤＲ＜４＋ｉ×２＞とを受ける。
【０１１２】
ＡＮＤ回路６１♯０〜６１♯６３は、第１，第２および第３の入力ノードを有する。ＡＮＤ回路６１♯（８×ｉ）および６１♯（８×ｉ＋７）の第１入力ノードは、信号ＧＸ＜０＞を受け、ＡＮＤ回路６１♯（８×ｉ＋１）および６１♯（８×ｉ＋６）の第１入力ノードは、信号ＧＸ＜１＞を受け、ＡＮＤ回路６１♯（８×ｉ＋２）および６１♯（８×ｉ＋５）の第１入力ノードは、信号ＧＸ＜２＞を受け、ＡＮＤ回路６１♯（８×ｉ＋３）および６１♯（８×ｉ＋４）の第１入力ノードは、信号ＧＸ＜３＞を受ける（ｉ＝０〜７）。
【０１１３】
ＡＮＤ回路６１♯（ｊ×３２＋０）〜６１♯（ｊ×３２＋３）および６１♯（ｊ×３２＋２８）〜６１♯（ｊ×３２＋３１）の第２入力ノードは、信号ＧＸ＜４＞を受け、ＡＮＤ回路６１♯（ｊ×３２＋４）〜６１♯（ｊ×３２＋７）および６１♯（ｊ×３２＋２４）〜６１♯（ｊ×３２＋２７）の第２入力ノードは、信号ＧＸ＜５＞を受け、ＡＮＤ回路６１♯（ｊ×３２＋８）〜６１♯（ｊ×３２＋１１）および６１♯（ｊ×３２＋２０）〜６１♯（ｊ×３２＋２３）の第２入力ノードは、信号ＧＸ＜６＞を受け、ＡＮＤ回路６１♯（ｊ×３２＋１２）〜６１♯（ｊ×３２＋１５）および６１♯（ｊ×３２＋１６）〜６１♯（ｊ×３２＋１９）の第２入力ノードは、信号ＧＸ＜７＞を受ける（ｊ＝０，１）。
【０１１４】
ＡＮＤ回路６１♯０〜６１♯１５の第３入力ノードは、信号ＧＸ＜８＞を受け、ＡＮＤ回路６１♯１６〜６１♯３１の第３入力ノードは、信号ＧＸ＜９＞を受け、ＡＮＤ回路６１♯３２〜６１♯４７の第３入力ノードは、信号ＧＸ＜１０＞を受け、ＡＮＤ回路６１♯４８〜６１♯６３の第３入力ノードは、信号ＧＸ＜１１＞を受ける。
【０１１５】
ＡＮＤ回路６１♯ｍ（ｍ＝０〜６３）の出力に応じて、コース遅延素子５の遅延段数（たとえば、ｍ個）が決定される。
【０１１６】
次に、第１の実施の形態によるＤＬＬ１０００を有する半導体装置１００００の構成の一例を、図１３を用いて説明する。半導体装置１００００は、図１３に示すように、外部クロックＣＬＫｅｘｔを受けるＤＬＬ１０００、制御信号（ロウアドレスストローブ信号／ＲＡＳ，コラムアドレスストローブ信号／ＣＡＳ，チップ選択信号／ＣＳ、ライトイネーブル信号／ＷＥ等）を受ける入力バッファ１００１、アドレス信号Ａｎ（ｎ＝０，１，…）を受ける入力バッファ１００２、入力バッファ１００１の出力を受けて内部制御信号を発生する制御信号発生回路１００３、内部制御信号に応じて入力バッファ１００２から出力されるロウアドレスをラッチするロウアドレスラッチ１００４、内部制御信号に応じて入力バッファ１００２から出力されるコラムアドレスをラッチするコラムアドレスラッチ１００５、行列状に配置される複数のメモリセルと行方向に配置される複数のワード線と列方向に配置される複数のビット線とを含むメモリアレイ１００６、内部制御信号に応じてロウアドレスラッチ１００４の出力に基づき行選択を行うためのロウデコーダ１００７、ならびに内部制御信号に応じてコラムアドレスラッチ１００５の出力に基づき列選択を行うためのコラムデコーダ１００８を含む。
【０１１７】
入力バッファ１００１および１００２は、ＤＬＬ１０００の出力するクロックＢＵＦＦＣＬＫ（またはＣＬＫｉｎ３）に同期して入力信号を取込む。クロックＢＵＦＦＣＬＫよりもクロックＣＬＫｉｎ３の方が、高速化により適している。
【０１１８】
半導体装置１００００はさらに、メモリアレイ１００６にデータを書込み、またはメモリアレイ１００６からデータを読出すためのアレイ入出力回路１００９、内部制御信号に応じて読出データをラッチする読出データラッチ１０１０、読出データラッチ１０１０にラッチしたデータを取込み、データ入出力端子ＤＱｉに出力する出力バッファ１０１１、書込データをラッチする書込データラッチ１０１２、ならびにデータ入出力端子ＤＱｉからデータを取込み、書込データラッチ１０１２に書込データを出力する入力バッファ１０１３を含む。
【０１１９】
出力バッファ１０１１は、ＤＬＬ１０００の出力する内部クロックＣＬＫｉｎ２に同期して動作する。
【０１２０】
第１の実施の形態によるグレイコードカウンタを含むＤＬＬにより得られる効果について述べる。たとえば、図１，２の例（４ビットグレイコード）で説明する。上記したように、グレイコードカウンタにおいては、「アップ」においても「ダウン」においても、１ビットだけキャリーが立つ。
【０１２１】
そこで、現在のレジスタ値がデシマルコード“６”＝グレイコード“０１０１”であったとする。信号ＵＰがＨならば、キャリーＣ＜０＞＝“１”、キャリーＣ＜１＞〜Ｃ＜３＞＝“０”である。一方、信号ＤＮ＝Ｈならば、キャリーＣ＜１＞＝“１”、キャリーＣ＜０＞，＜２＞，＜３＞＝“０”である。ここで、位相比較器９においてメタステーブル状態が発生し、信号ＵＰおよびＤＮが不定値となってしまったとする。この場合においてキャリー値がどのようになるかを考察する。
【０１２２】
キャリーＣ＜２＞，＜３＞は、信号ＵＰまたは信号ＤＮのいずれがＨであっても“０”である。したがって、信号ＵＰおよびＤＮが不定になってもキャリーＣ＜２＞〜Ｃ＜３＞は不定にならず“０”を保持する。
【０１２３】
キャリーＣ＜０＞，Ｃ＜１＞は、信号ＵＰおよびＤＮの値により“０”または“１”の値になる。したがって、信号ＵＰおよびＤＮが不定になるとキャリーＣ＜０＞，Ｃ＜１＞も不定になる。つまり、これによる次の４通りの結果がいずれかの確率で発生してしまう。
【０１２４】
（イ）  キャリーＣ＜０＞＝“０”、キャリーＣ＜１＞＝“０”のとき
すべてのキャリーが“０”になるので、次のレジスタ値はデシマルコード６＝グレイコード０１０１のままである。
【０１２５】
（ロ）  キャリーＣ＜０＞＝“１”、キャリーＣ＜１＞＝“０”のとき
次のレジスタ値はデシマル７＝グレイコード０１００である。
【０１２６】
（ハ）  キャリーＣ＜０＞＝“０”、キャリーＣ＜１＞＝“１”のとき
次のレジスタ値はデシマルコード５＝グレイコード１１１１である。
【０１２７】
（ニ）  キャリーＣ＜０＞＝“１”、キャリーＣ＜１＞＝“１”のとき、次のレジスタ値はデシマル４＝グレイコード０１１０である。
【０１２８】
この例に表わされるように、メタステーブル状態が発生した後には、元の状態“６”から遷移する可能性があるのは“４”，“５”，“６”，“７”のみである。すなわち、元の状態から最大でも“２”だけ離れた値にしか遷移しない。
【０１２９】
ここでは、元の状態が“６”である場合について説明したが、元の状態が“６”以外の値であっても「元の状態から最大でも“２”だけ離れたところにしか遷移しない」ことがわかる。
【０１３０】
また、この事情は４ビットグレイコードカウンタのみならず、一般のｎビットグレイコードカウンタについても言える。
【０１３１】
したがって、グレイコードカウンタを用いることにより、メタステーブル状態が発生しても最大でも元のレジスタ値から２はなれたところまでしかレジスタ値が飛ばない。従来例であるバイナリカウンタでは、元のレジスタ値から全く予想ができないところにレジスタ値が飛んでしまう可能性があったことを考えると、本発明の示す効果が大きいことがわかる。
【０１３２】
このため、グレイコードカウンタを含むＤＬＬにおいては、ＤＬＬの遅延値が安定化され、遅延のとびが最小化されるので、従来例で見たような不良が起こる可能性がなくなるという効果がある。
【０１３３】
［第２の実施の形態］
第２の実施の形態においては、ＤＤＲ・ＳＤＲＡＭに搭載するＤＬＬについて説明する。ＤＤＲ・ＳＤＲＡＭ用のＤＬＬ２０００について、図１４を用いて説明する。ＤＬＬ２０００には、図１４に示すように、外部からクロックＣＬＫｅｘｔおよびＺＣＬＫｅｘｔが入力される。クロックＺＣＬＫｅｘｔはクロックＣＬＫｅｘｔと位相が１８０度異なる。
【０１３４】
ＤＬＬ２０００は、クロックバッファ１，２、ファイン遅延素子３，４、コース遅延素子５，６、デコーダ７１、グレイコードカウンタ８１、位相比較器９、タイミングクロック発生器１０、パルス発生器１１および１２、ならびにレプリカ回路１３を含む。
【０１３５】
ファイン遅延素子４は、ファイン遅延素子３と、コース遅延素子６は、コース遅延素子５とそれぞれ同じ構成を有する。また、パルス発生器１２は、パルス発生器１１と同じ構成を有する。
【０１３６】
クロックバッファ１および２にはともに、外部クロックＣＬＫｅｘｔ，ＺＣＬＫｅｘｔが入力されている。クロックバッファ１，２は、図３１，３２に示すように、トランジスタＴｒ１，Ｔｒ２，Ｔｒ３，Ｔｒ４およびインバータＩＶ１０を含む。クロックバッファ１は、クロックＢＵＦＦＣＬＫを、クロックバッファ２は、クロックＢＵＦＦＺＣＬＫを出力する。
【０１３７】
位相比較器９は、レプリカ回路１３の出力するクロックＦＢＣＬＫとクロックＢＵＦＦＣＬＫとの位相を比較して、信号ＵＰＦ／ＤＮＦを出力する。グレイコードカウンタ８１から出力されるバイナリコードＡＤＲ＜０：２＞は、ファイン遅延素子３，４に入力される。
【０１３８】
デコーダ７１は、グレイコードカウンタ８１の出力するグレイコードＧＡＤＲ＜３：８＞をデコードして、コース遅延素子５，６に出力する。
【０１３９】
クロックＢＵＦＦＺＣＬＫは、ファイン遅延素子４とコース遅延素子６とを通過した後、パルス発生器１２に入力される。パルス発生器１２から、クロックＺＣＬＫｉｎ２が出力される。内部クロックＺＣＬＫｉｎ２は、内部クロックＣＬＫｉｎ２とともにＤＤＲ・ＳＤＲＡＭのデータ出力に用いられる。
【０１４０】
ここで、ＤＬＬ２０００の動作について、図１５を用いて説明する。図１５を参照して、信号ＢＵＦＦＣＬＫは、クロックバッファ１によりクロックＣＬＫｅｘｔの立上がりとクロックＺＣＬＫｅｘｔの立下がりとのクロックポイントにおいて発生する。一方、クロックＢＵＦＦＺＣＬＫは、クロックバッファ２により、クロックＺＣＬＫｅｘｔの立上がりとクロックＣＬＫｅｘｔの立下がりのクロスポイントとにおいて発生される。
【０１４１】
内部クロックＣＬＫｉｎ２は、外部クロックＣＬＫｅｘｔの立上がりと外部クロックＺＣＬＫｅｘｔの立下がりとのクロスポイントに同期してデータを出力する際に用い、内部クロックＺＣＬＫｉｎ２は、外部クロックＺＣＬＫｅｘｔの立上がりと内部クロックＣＬＫｅｘｔの立下がりとのクロスポイントに同期してデータを出力する際に用いる。
【０１４２】
ここで、第２の実施の形態によるＤＬＬ２０００を有する半導体装置２００００の構成の一例を、図１６を用いて説明する。半導体装置２００００は、図１６に示すように、外部クロックＣＬＫｅｘｔおよびＺＣＬＫｅｘｔを受けるＤＬＬ２０００、制御信号（ロウアドレスストローブ信号／ＲＡＳ，コラムアドレスストローブ信号／ＣＡＳ，チップ選択信号／ＣＳ、ライトイネーブル信号／ＷＥ等）を受ける入力バッファ２００１、アドレス信号Ａｎ（ｎ＝０，１，…，１１）およびバンクアドレス信号ＢＡ０，ＢＡ１を受ける入力バッファ２００２、入力バッファ２００１の出力を受けて内部制御信号を発生する制御信号発生回路２００３、内部制御信号に応じて入力バッファ１００２から出力されるロウアドレスをラッチするロウアドレスラッチ２００４、内部制御信号に応じて入力バッファ２００２から出力されるコラムアドレスをラッチするコラムアドレスラッチ２００５、行列状に配置される複数のメモリセルと行方向に配置される複数のワード線と列方向に配置される複数のビット線とを含むメモリアレイ２００６、内部制御信号に応じてロウアドレスラッチ２００４の出力に基づき行選択を行うためのロウデコーダ２００７、ならびに内部制御信号に応じてコラムアドレスラッチ２００５の出力に基づき列選択を行うためのコラムデコーダ２００８を含む。
入力バッファ２００１および２００２は、ＤＬＬ２０００の出力するクロックＢＵＦＦＣＬＫ（またはＣＬＫｉｎ３）に同期して入力信号を取込む。クロックＢＵＦＦＣＬＫよりもクロックＣＬＫｉｎ３の方が、高速化により適している。
【０１４３】
半導体装置２００００はさらに、メモリアレイ２００６にデータを書込みまたはメモリアレイ２００６からデータを読出すためのアレイ入出力回路２００９、内部制御信号に応じて読出データをラッチする読出データラッチ２０１０、読出データラッチ２０１０にラッチしたデータを取込み、データ入出力端子ＤＱｉに出力する出力バッファ２０１１、書込データをラッチする書込データラッチ２０１２、ならびにデータ入出力端子ＤＱｉからデータを取込み、書込データラッチ２０１２に書込データを出力する入力バッファ２０１３を含む。
【０１４４】
出力バッファ２０１１は、ＤＬＬ２０００の出力する内部クロックＣＬＫｉｎ２およびＺＣＬＫｉｎ２に同期して動作する。したがって、半導体装置２００００（ＤＤＲ・ＳＤＲＡＭ）は、１クロック周期中に２回のデータを出力することができる。
【０１４５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１４６】
【発明の効果】
このように、本発明によるＤＬＬ回路は、遅延量を調整する遅延レジスタとしてグレイコードカウンタを用いる。これにより、キャリーが１ビットしか立たないので、ＤＬＬの遅延値が安定化され、遅延のとびが最小化される。これにより、安定した高速動作を実現することが可能となる。
【０１４７】
また、本発明によるＤＬＬ回路を含む半導体装置によれば、外部クロックを遅延して内部クロックを発生する際に、遅延量を調整する遅延レジスタとしてグレイコードカウンタを用いる。これにより、不連続な遅延の「飛び」を原理的に最小化することが可能となる。したがって、入力バッファや出力バッファを当該内部クロックで制御することで、安定した高速動作を実現することが可能となる。
【０１４８】
また、本発明によるクロック同期により動作するシステムのための制御方法によれば、グレイコードを用いて遅延量を制御するため、不連続な遅延の「飛び」を原理的に最小化することが可能となる。これにより、データを安定したタイミングで入力することができる。同じく、データを安定したタイミングで出力することができる。
【図面の簡単な説明】
【図１】４ビットのグレイコードについて説明するための図である。
【図２】４ビットのグレイコードを４ビットのバイナリコードに変換する変換式について説明するための図である。
【図３】ｎビットのグレイコードをｎビットのバイナリコードに変換する変換式について説明するための図である。
【図４】グレイコードにおけるキャリーについて説明するための図である。
【図５】第１の実施の形態によるグレイコードカウンタ（９ビット）の構成の一例を示す図である。
【図６】キャリーＣ＜０＞〜Ｃ＜８＞の発生過程を説明するためのタイミングチャートである。
【図７】第１の実施の形態によるグレイコードレジスタ８１０の回路構成の一例を示す図である。
【図８】第１の実施の形態によるバイナリコード発生器８１１の回路構成の一例を示す図である。
【図９】第１の実施の形態によるＤＬＬ１０００の全体構成を示す図である。
【図１０】第１の実施の形態によるデコーダ７１の構成要素を示す図である。
【図１１】第１の実施の形態によるデコーダ７１の構成要素を示す図である。
【図１２】第１の実施の形態によるデコーダ７１の構成要素を示す図である。
【図１３】第１の実施の形態によるＤＬＬ１０００を有する半導体装置１００００の構成の一例を示す図である。
【図１４】第２の実施の形態によるＤＬＬ２０００の全体構成を示す図である。
【図１５】第２の実施の形態によるＤＬＬ２０００の動作について説明するためのタイミングチャートである。
【図１６】第２の実施の形態によるＤＬＬ２０００を有する半導体装置２００００の構成の一例を示す図である。
【図１７】データの出力タイミングについて説明するためのタイミングチャートである。
【図１８】データの出力タイミングについて説明するためのタイミングチャートである。
【図１９】システムクロック周期Ｔが短い場合におこる問題点を説明するためのタイミングチャートである。
【図２０】ＤＤＲ・ＳＤＲＡＭにおける動作タイミングを説明するためのタイミングチャートである。
【図２１】ＤＬＬを用いた部品における動作を説明するためのタイミングチャートである。
【図２２】ＤＬＬを用いない場合のデータ入力における動作について説明するためのタイミングチャートである。
【図２３】ラッチ回路９１０の構成の一例を示す図である。
【図２４】ＤＬＬを用いた場合のデータ入力における動作について説明するためのタイミングチャートである。
【図２５】従来のＤＬＬ９０００の構成の一例を示す図である。
【図２６】ＤＬＬ９０００の動作について説明するためのタイミングチャートである。
【図２７】ＤＬＬ９０００の動作について説明するためのタイミングチャートである。
【図２８】（ａ），（ｂ）は、信号ＵＰＦ，ＤＮＦの値について説明するためのタイミングチャートである。
【図２９】デコーダ７０の構成の一例を示す図である。
【図３０】位相比較器９の構成の一例を示す図である。
【図３１】クロックバッファ１の構成の一例を示す図である。
【図３２】クロックバッファ２の構成の一例を示す図である。
【図３３】第１の実施の形態によるアップ・ダウンキャリー発生器８１２の回路構成の一例を示す図である。
【図３４】第１の実施の形態によるキャリーマルチプレクサ８１３の回路構成の一例を示す図である。
【符号の説明】
１，２  クロックバッファ、３，４  ファイン遅延素子、５，６  コース遅延素子、９  位相比較器、１０  タイミングクロック発生器、１１，１２  パルス発生器、１３  レプリカ回路、２０  ゲート、４０  バッファ、７１  デコーダ、８１  グレイコードカウンタ、８１０  グレイコードレジスタ、８１１  バイナリコード発生器、８１２  アップ・ダウンキャリー発生器、８１３  キャリーマルチプレクサ、１０００，２０００  ＤＬＬ、１００１，１００２，１０１３，２００１，２００２，２０１３  入力バッファ、１００３，２００３  制御信号発生回路、１００４，２００４  ロウアドレスラッチ、１００５，２００５  コラムアドレスラッチ、１００６，２００６  メモリアレイ、１００７，２００７  ロウデコーダ、１００８，２００８  コラムデコーダ、１００９，２００９アレイ入出力回路、１０１０，２０１０  読出データラッチ、１０１１，２０１１  出力バッファ、１０１２，２０１２  書込データラッチ、１００００，２００００  半導体装置。
【図１】
0004592179.tif 000002
【図２】
0004592179.tif 000003
【図３】
0004592179.tif 000004
【図４】
0004592179.tif 000005
【図５】
0004592179.tif 000006
【図６】
0004592179.tif 000007
【図７】
0004592179.tif 000008
【図８】
0004592179.tif 000009
【図９】
0004592179.tif 000010
【図１０】
0004592179.tif 000011
【図１１】
0004592179.tif 000012
【図１２】
0004592179.tif 000013
【図１３】
0004592179.tif 000014
【図１４】
0004592179.tif 000015
【図１５】
0004592179.tif 000016
【図１６】
0004592179.tif 000017
【図１７】
0004592179.tif 000018
【図１８】
0004592179.tif 000019
【図１９】
0004592179.tif 000020
【図２０】
0004592179.tif 000021
【図２１】
0004592179.tif 000022
【図２２】
0004592179.tif 000023
【図２３】
0004592179.tif 000024
【図２４】
0004592179.tif 000025
【図２５】
0004592179.tif 000026
【図２６】
0004592179.tif 000027
【図２７】
0004592179.tif 000028
【図２８】
0004592179.tif 000029
【図２９】
0004592179.tif 000030
【図３０】
0004592179.tif 000031
【図３１】
0004592179.tif 000032
【図３２】
0004592179.tif 000033
【図３３】
0004592179.tif 000034
【図３４】
0004592179.tif 000035