(57)【要約】【課題】周期が短くても、所望の外部クロックに対応するＤＬＬクロックパルスを正確に選択する半導体記憶装置を提供する。【解決手段】分周器１１０は、ＤＬＬクロックＣＬＫ＿Ｐを２分周してＺＣＬＫ＿ＰＤ０，ＺＣＬＫ＿ＰＤ１を生成する。遅延回路１２０は、ＺＣＬＫ＿ＰＤ０，ＺＬＣＫ＿ＰＤ１を、それぞれＴｃ（＝外部クロックに対するＣＬＫ＿Ｐの戻し量＋外部クロックに対する内部クロックの遅延量）だけ遅延させたＺＣＬＫ＿ＰＤＤ０，ＺＣＬＫ＿ＰＤＤ１を生成する。分周クロック選択指示回路１３０は、内部クロックＣＬＫとＺＣＬＫ＿ＰＤＤ０，ＰＤＤ１に基づいてＺＳＥＬ０，ＺＳＥＬ１を生成する。ＺＳＥＬ０シフタ回路１４０は、ＺＳＥＬ１のクロックパルスを含むＺＳＥＬ１＿Ｄ２を生成する。ＺＣＬＫ＿Ｐ＃２選択回路１６０は、ＺＳＥＬ１＿Ｄ２を用いてＺＣＬＫ＿ＰＤ０のクロックパルスを選択する。【選択図】        図１７
2004164763.tif 000002
【特許請求の範囲】
【請求項１】
外部クロックの立上がりと立ち下がりに同期してデータを入出力する半導体記憶装置であって、
周期Ｔの外部クロックに対して、一定の遅延量を有する第１の内部クロックを発生する第１の内部クロック発生回路と、
外部へのデータの出力タイミングを前記外部クロックに同期させるために、前記外部クロックに対して、一定の戻し量を有する第２の内部クロックを発生する第２の内部クロック発生回路と、
前記第２の内部クロックをＮ（≧２）分周して、Ｎ個の循環的に順序づけられる分周クロックを出力する分周器と、
前記Ｎ個の分周クロックのうち、リードコマンドが入力されるタイミングを示す外部クロックパルスに対応する第１の内部クロックパルスと一定の位相差を有する第２の内部クロックパルスを含む分周クロックを特定する第１の回路と、
前記特定された分周クロックを起点として、リードコマンド入力以降の各外部クロックパルスに対応する第２の内部クロックパルスを選択する第２の回路とを備えた半導体記憶装置。
【請求項２】
前記第１の内部クロック発生回路は、前記外部クロックに対して、第１の値の遅延量を有する第１の内部クロックを発生し、
前記第２の内部クロック発生回路は、前記外部クロックに対して、第２の値の戻し量を有する第２の内部クロックを発生し、
前記第１の回路は、リードコマンドが入力されるタイミングを示す第０番目の外部クロックパルスに対応する第０番目の第１の内部クロックパルスと、第１の値と第２の値の和の位相差を有する第２の内部クロックパルスを含む分周クロックを特定し、
前記第２の回路は、前記特定された分周クロックよりもＫ（≧Ｎ）だけ後の順位の分周クロックに含まれるクロックパルスであって、前記（Ｋ−Ｎ）番目の第１の内部クロックパルスから（Ｎ×Ｔ−第３の値）期間経過後、最初に生成されるクロックパルスを、第Ｋ番目の外部クロックパルスに対応する第２の内部クロックパルスとして選択する、請求項１記載の半導体記憶装置。
【請求項３】
前記第１の回路は、
前記Ｎ個の分周クロックの各々を所定量だけ遅延させて、Ｎ個の遅延分周クロックを出力する遅延回路と、
前記Ｎ個の遅延分周クロックのうち、前記第０番目の第１の内部クロックパルスが生成される期間にクロックパルスが含まれる遅延分周クロックを特定する回路とを含む、請求項２記載の半導体記憶装置。
【請求項４】
前記第２の回路は、前記（Ｋ−Ｎ）番目の第１の内部クロックパルスの開始エッジからＮ×Ｔの期間、パルスとなる信号を生成する回路と、
前記生成された信号と、前記特定された分周クロックよりもＫ（≧Ｎ）だけ後の順位の分周クロックとが入力され、前記第２の内部クロックパルスとして選択されるクロックパルスを出力する論理回路とを含む、請求項３記載の半導体記憶装置。
【請求項５】
前記遅延回路は、
前記第２の内部クロックパルスが前記第２の内部クロック発生回路から出力されてから、当該第２の内部クロックパルスをトリガにして、最終的にデータ入出力端子からデータが出力されるまでの処理を行なう回路特性を模擬的に再現した第１のレプリカと、
前記第１の内部クロック発生回路における外部クロックから前記第１の内部クロックを発生する回路特性を模擬した第２のレプリカと、
可変量の遅延量がプログラムされる調整回路とを備え、
前記分周クロックは、前記第１レプリカ、前記第２レプリカ、および前記調整回路を経由して遅延させられる、請求項３記載の半導体記憶装置。
【請求項６】
前記調整回路は、
複数のプログラム回路と、
入力と出力との間の複数の経路に設けられた複数の遅延素子を含み、
各プログラム回路は、
第１のフューズと第２のフューズとを含み、
各プログラム回路は、フューズのブロー前には、前記各プログラム回路への入力信号の論理値に応じて、第１の論理値、または第２の論理値を出力し、
第１のフューズのブローにより、第１の論理値を出力し、第２のフューズのブローにより、第２の論理値を出力し、
前記各プログラム回路の出力値に応じて、入力と出力との間の経路が定まる、請求項５記載の半導体記憶装置。
【請求項７】
前記第２の内部クロック発生回路は、前記第２の内部クロックパルスが前記第２の内部クロック発生回路から出力されてから、当該第２の内部クロックパルスをトリガにして、最終的にデータ入出力端子からデータが出力されるまでの処理を行なう回路特性を模擬的に再現した第１のレプリカを含み、前記分周器は、前記第２の内部クロックの代わりに、前記第１のレプリカの出力信号をＮ分周し、
前記遅延回路は、
前記第１の内部クロック発生回路における外部クロックから前記第１の内部クロックを生成する処理を行なう回路特性を模擬した第２のレプリカと、
可変量の遅延量がプログラムされる調整回路とを備え、
前記分周クロックは、前記第２レプリカおよび前記調整回路を経由して遅延させられる、請求項３記載の半導体記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体記憶装置に関し、特に、ＤＤＲ  ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に関する。
【０００２】
【従来の技術】
外部から供給されるクロック信号に同期して動作するシンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）の中で、外部クロック信号の立ち上がエッジと、立下りエッジに同期してデータの入出力が行なわれるものをダブルデータレート・シンクロナス・ダイナミックランダムアクセスメモリ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  ＳＤＲＡＭ、以下、ＤＤＲ  ＳＤＲＡＭと称する）という。
【０００３】
ＤＤＲでは、メモリセルアレイから外部クロックサイクル周期で行なわれるデータの読出は、一度の読出動作で各データ出力回路に対して２Ｎビットのデータが読出されるプリフェッチ動作が前提となっている。
【０００４】
Ｎ＝１のＤＤＲをＤＤＲ−Ｉと呼び、Ｎ＝２のＤＤＲをＤＤＲ−ＩＩと呼ぶ。ＤＤＲ−ＩとＤＤＲ−ＩＩとは、ＪＥＤＥＣ（Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ（米国電子標準化委員会））によって、その仕様が規定されている。
【０００５】
ＤＤＲにおいて、使用されるクロックについて説明する。ＤＤＲには、外部クロックＥＸＴＣＬＫ、およびＥＸＴＺＣＬＫが入力される。この外部クロックＥＸＴＣＬＫおよびＥＸＴＺＣＬＫをトリガとして、内部クロックＣＬＫと、ＤＬＬクロックＣＬＫ＿ＰおよびＣＬＫ＿Ｎとが生成される。読出し時には、ＤＤＲの各回路で、これらのクロックのうち、適切なタイミングのクロックを選択して、メモリセルのデータが順次、パイプライン処理されて、外部へ出力される。
【０００６】
なお、参考のため付け加えると、特許文献１には、ＤＬＬクロックと、ＥＸＴＣＬＫの位相の早い方のクロックを選択する場合において、周波数が高いときには、位相比較を行なわずに、ＤＬＬクロックを選択する半導体集積回路について記載している。この特許文献１の内容と、本発明とは、ＤＬＬクロックの選択とういう点で共通するものの、その課題、構成および効果において相違する。
【０００７】
【特許文献１】
特開平１１−３５３８７８号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、上記パイプラインにおける特定の段階の処理を行なうのに必要となるＤＬＬクロックＣＬＫ＿Ｐを選択するためには、次のような問題がある。
【０００９】
すなわち、外部クロックＥＸＴＣＬＫに対するＤＬＬクロックＣＬＫ＿Ｐの戻し量をＴａとし、ＥＸＴＣＬＫに対する内部クロックＣＬＫの遅延量をＴｂとし、サイクルタイムをＴｃｋとしたとき、Ｔａ＋Ｔｂ＜Ｔｃｋ  の条件を満足しなければならない。それゆえ、サイクルタイムＴｃｋが短くなると、ＴａとＴｂの値も、小さくしなければならなくなる。
【００１０】
たとえば、ＤＤＲ−ＩＩでは、Ｔｃｋ＝３ｎｓである。この場合、Ｔａ＋Ｔｂ＜３ｎｓの条件を満たさなくてはならない。この条件は、動作温度、動作電圧などが異なる様々な動作環境のもとで、しかもプロセス変動を考慮したマージンを確保しつつ保証することは困難である。
【００１１】
そこで、本発明は、サイクルタイムが短くても、所望の外部クロックに対応するＤＬＬクロックを正確に選択する半導体記憶装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記課題を解決するために、この発明に係わる半導体記憶装置は、外部クロックの立上がりと立ち下がりに同期してデータを入出力する半導体記憶装置であって、周期Ｔの外部クロックに対して、一定の遅延量を有する第１の内部クロックを発生する第１の内部クロック発生回路と、外部へのデータの出力タイミングを前記外部クロックに同期させるために、前記外部クロックに対して、一定の戻し量を有する第２の内部クロックを発生する第２の内部クロック発生回路と、前記第２の内部クロックをＮ（≧２）分周して、Ｎ個の循環的に順序づけられる分周クロックを出力する分周器と、前記Ｎ個の分周クロックのうち、リードコマンドが入力されるタイミングを示す外部クロックパルスに対応する第１の内部クロックパルスと一定の位相差を有する第２の内部クロックパルスを含む分周クロックを特定する第１の回路と、前記特定された分周クロックを起点として、リードコマンド入力以降の各外部クロックパルスに対応する第２の内部クロックパルスを選択する第２の回路とを備える。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を用いて説明する。
【００１４】
＜第１の実施形態＞
図１は、本実施の形態の半導体記憶装置５１０の全体構成の概略ブロック図である。同図は、半導体記憶装置５１０について、データ入出力に関する主要部分のみを代表的に示す。
【００１５】
図１を参照して、半導体記憶装置５１０は、クロック端子５１２と、制御信号端子５１４と、アドレス端子５１６と、データ入出力端子５１８と、データストローブ信号入出力端子５２０と、クロックバッファ５２２と、制御信号バッファ５２４と、アドレスバッファ５２６と、データＤＱ０〜ＤＱ１５に関する入力バッファ５２８と、データストローブ信号ＵＤＱＳ，ＬＤＱＳに関する入力バッファ５３２および出力バッファ５３４と、出力回路５００と、Ｓ／Ｐ（シリアル／パラレル）変換回路＆ライトドライバ５３８と、ＤＱＳ発生回路５４０と、ＤＬＬ回路４００と、分周クロック選択回路１００と、制御回路５４２と、ロウデコーダ５４４と、コラムデコーダ５４６と、読出し＆書込み回路５４８と、センスアンプ５５０と、メモリセルアレイ５５２とを備える。
【００１６】
本実施の形態では、半導体記憶装置５１０は、ＤＤＲ−ＩＩとする。すなわち、半導体記憶装置５１０は、メモリセルアレイ５５２から外部クロック周期で行なわれるデータの読出しにおいて、一度の読出しで４×ｎビット（ｎは半導体記憶装置におけるビット幅、つまりＤＱ端子の数で、半導体記憶装置５１０においてはｎ＝１６とする。）のデータが読出される４ビットプリフェッチ構成となっている。すなわち、外部クロック１サイクルごとに、ｎ個の出力回路１００に対して各々４ビット分のデータがメモリセルアレイ５５２から読出され、各々の出力回路１００において４ビットのデータが順序付けされて半サイクル周期で転送され、外部へ出力される構成となっている。
【００１７】
また、データ書込時においては、半導体記憶装置５１０は、外部クロックの立上がりおよび立下りに同期して外部クロック半サイクルあたりｎビット（ｎ＝１６）のデータを取り込み、外部クロック１サイクルで４×ｎビットのデータを一括してメモリセルアレイ５５２に書込む。
【００１８】
メモリセルアレイ５５２は、各々がデータを記憶する複数のメモリセルからなる。メモリセルアレイ５５２は、各々が独立して動作が可能な４つのバンクからなる。
【００１９】
クロック端子５１２は、互いに相補な外部クロック信号ＥＸＴＣＬＫ，ＥＸＴＺＣＬＫおよびクロックイネーブル信号ＣＫＥを受ける。制御信号端子５１４は、チップセレクト信号／ＣＳ、ロウアドレスストローブ信号／ＲＡＳ、コラムアドレスストローブ信号／ＣＡＳ、ライトイネーブル信号／ＷＥおよび入力データマスク信号ＵＤＭ，ＬＤＭのコマンド制御信号を受ける。
【００２０】
アドレス端子５１６は、アドレス信号Ａ０〜Ａ１２およびバンクアドレス信号ＢＡ０，ＢＡ１を受ける。
【００２１】
データ入出力端子５１８は、半導体記憶装置５１０において読み書きされるデータを外部とやり取りする端子である。データ入出力端子５１８は、データ書込時は外部から入力されるデータＤＱ０〜ＤＱ１５を受け、データ読出時はデータＤＱ０〜ＤＱ１５を外部へ出力する。
【００２２】
データストローブ信号入出力端子５２０は、データ書込時はデータＤＱ０〜ＤＱ１５を外部から読込むためのデータストローブ信号ＵＤＱＳ，ＬＤＱＳを外部から受け、データ読出時は外部コントローラがデータＤＱ０〜ＤＱ１５を読込むためのデータストローブ信号ＵＤＱＳ，ＬＤＱＳを外部に対して出力する。
【００２３】
クロックバッファ５２２は、外部クロック信号ＥＸＴＣＬＫ，ＥＸＴＺＣＬＫおよびクロックイネーブル信号ＣＫＥを受けて内部クロック信号ＣＬＫ、ＺＣＬＫを発生し、制御信号バッファ５２４、アドレスバッファ５２６およびＤＬＬ回路４００へ出力する。
【００２４】
制御信号バッファ５２４は、クロックバッファ５２２から受ける内部クロックに同期して、チップセレクト信号／ＣＳ、ロウアドレスストローブ信号／ＲＡＳ、コラムアドレスストローブ信号／ＣＡＳ、ライトイネーブル信号／ＷＥおよび入力データマスク信号ＵＤＭ，ＬＤＭを取り込んでラッチし、コマンド制御信号を制御回路５４２へ出力する。
【００２５】
アドレスバッファ５２６は、クロックバッファ５２２から受ける内部クロック信号に同期して、アドレス信号Ａ０〜Ａ１２とバンクアドレス信号ＢＡ０，ＢＡ１とを取り込んでラッチし、内部アドレス（行アドレスＸＡとコラムアドレスＣＡ）を発生してロウデコーダ５４４およびコラムデコーダ５４６へ出力する。
【００２６】
ロウデコータ５４４は、行アドレスＸＡに応じてメモリセルアレイ５１０における行選択を実行する。具体的には、メモリセルアレイ５１０においてメモリセル行ごとに配置されたワード線（図示せず）の選択的な活性化を制御する。
【００２７】
コラムデコータ５４６は、コラムアドレスＣＡに応じてメモリセルアレイ５１０における列選択を実行する。具体的には、メモリセルアレイ５１０において複数のセンスアンプをアレイ内Ｉ／Ｏ線（図示せず）を介して選択的に読出し＆書込み回路５４８と接続する。コラムデコーダ５４６は、４ビットプリフェッチ方式では、アドレスバッファ５２６で発生したコラムアドレスＣＡのうち下位２ビットを除いた上位アドレスを用いて特定の列を選択する。
【００２８】
センスアンプ５５０は、ワード線活性によりビット線上に読み出された微小電位差を増幅する。
【００２９】
読出し＆書込み回路５４８は、メモリセルのデータを増幅してデータバス対へ出力する読出し回路６００（図示しない）と、データバス対のデータを増幅してメモリセルへ出力する書込み回路６１０（図示しない）とを含む。
【００３０】
出力回路５００は、データラッチ＆Ｐ／Ｓ変換回路５３６と、出力ドライバ５３０とからなる。
【００３１】
データラッチ＆Ｐ／Ｓ変換回路５３６は、データ読出時において、制御回路５４２から与えられる制御信号ＥＺＯＲＧ０、ＥＺＯＲＧ１、ＺＲＤＡＩに応じて、読出し＆書込み回路５４８から送られる読出データを増幅する。データラッチ＆Ｐ／Ｓ変換回路５３６は、増幅された読出しデータに対して、Ｐ／Ｓ変換（パラレル／シリアル変換）を行なう。すなわち、データラッチ＆Ｐ／Ｓ変換回路５３６は、４ビットプリフェッチ方式では、各データＤＱｉ（ｉ：０〜１５）に対して、一度に読出された４個のデータ（パラレルデータ）を順序付けし、つまりシリアルデータに変換して、出力ドライバ５３０へ出力する。
【００３２】
出力ドライバ５３０は、シリアルに変換されたデータＤＱ０〜ＤＱ１５をデータ入出力端子５１８へ出力する。
【００３３】
Ｓ／Ｐ変換回路＆ライトドライバ５３８は、データ書込時において、４ビットプリフェッチ方式では、外部クロック半サイクルあたり１ビットずつ入力バッファ５２８から受ける各データＤＱｉを外部クロック１サイクルごとに４ビット並列に読み出し＆書込み回路５４８へ出力する。
【００３４】
入力バッファ５３２は、外部からデータストローブ信号ＵＤＱＳ，ＬＤＱＳを受け付ける。
【００３５】
入力バッファ５２８は、入力バッファ５３２が外部から受けるデータストローブ信号ＵＤＱＳ，ＬＤＱＳに同期して、データＤＱ０〜ＤＱ１５を受け付ける。
【００３６】
出力バッファ５３４は、ＤＬＬ回路５１１の出力に同期して動作するＤＱＳ発生回路５４０が発生するデータストローブ信号ＵＤＱＳ，ＬＤＱＳを取り込む。出力バッファ５３４は、データＤＱ０〜ＤＱ１５を出力する出力ドライバ５３０とともにＤＬＬ回路４００の出力に同期して動作し、データストローブ信号ＵＤＱＳ，ＬＤＱＳをデータストローブ信号入出力端子５２０へ出力する。
【００３７】
制御回路５４２は、クロックバッファ５２２の出力に同期して、制御信号バッファ５２４からコマンド制御信号を取り込み、取り込んだコマンド制御信号に基づいてロウデコーダ５４４、コラムデコーダ５４６および読出し＆書込み回路５４８を制御する。これによって、メモリセルアレイ５５２に対してデータＤＱ０〜ＤＱ１５の読出、書込が行なわれる。また、制御回路５４２は、取り込んだコマンド制御信号に基づいて、ＤＱＳ発生回路５４０におけるデータストローブ信号の発生についての制御も行なう。
【００３８】
また、制御回路５４２は、制御信号ＲＤＴ、ＥＮ、ＣＯＬ、ＷＺＲおよびＣＰ００のレベルの設定を行なう。
【００３９】
すなわち、制御回路５４２は、ＣＬＫ＿Ｐ＃２をトリガとして、ＲＤＴ＝「Ｈ」に設定する。制御回路５４２は、ＡＣＴコマンドを受け付けた後、制御信号ＥＮ＝「Ｈ」に設定し、プリチャージコマンドを受け付けた後、ＥＮ＝「Ｌ」に設定する。制御回路５４２は、ＲＥＡＤコマンドが入力されたサイクルにおける内部クロックＣＬＫの立上がりから１サイクル期間、ＣＯＬ＝「Ｈ」に設定する。制御回路５４２は、ＲＥＡＤコマンドが入力されてから、最後のデータＤ４が出力されるまでのＲＥＡＤ期間において、ＷＺＲ＝「Ｌ」に設定する。制御回路５４２は、ＲＥＡＤコマンドが入力されたサイクルにおける内部クロックＣＬＫの立上がりからバースト期間、つまり、ＤＤＲ−ＩＩでは、２サイクル期間、ＣＰ００＝「Ｈ」に設定する。
【００４０】
（タイミング）
次に、図２を参照して、ＤＤＲ−ＩＩからデータを読出す際のデータ出力のタイミングについて説明する。
【００４１】
このＤＲＡＭは、プリフェッチされるデータ数は４ビットで、ＣＡＳレイテンシＣＬは４、バースト長ＢＬは４、アドレッシングはインターリーブＩｎｔ．に設定されている。ＣＡＳレイテンシとは、ＤＤＲ−ＩＩが外部からＲＥＡＤコマンド（データを読み出すためのコマンド）を受け付けてから読み出しデータをデータ入出力端子５１８へ出力し始めるまでのサイクル数を表わす。
【００４２】
ここで、１サイクルは、外部クロックＥＸＴＣＬＫの立上がり時点から次の立ち上り時点までとする。バースト長とは、ＲＥＡＤコマンドに応じて、連続して読み出されるビット数を表わす。
【００４３】
同図を参照して、外部クロックＥＸＴＣＬＫ、およびＥＸＴＺＣＬＫは、一定周期でハイレベル（以下Ｈレベルとも称する）およびローレベル（以下、単にＬレベルとも称する）を繰り返す。
【００４４】
ＤＤＲ−ＩＩでは、４ビットプリフェッチされたデータをＰ／Ｓ変換し、各データを外部クロックに同期して、読出しデータＤＱとして出力するとともに、外部クロックに同期して、データストローブ信号ＤＱＳを出力する。データストローブ信号ＤＱＳは、データＤＱを受取る外部コントローラにおいて、データＤＱを取り込むタイミング信号として使用される。
【００４５】
データストローブ信号ＤＱＳは、同図に示すように、ＲＥＡＤコマンド入力を起点として、（ＣＬ−１）サイクル目から（ＣＬ）サイクル目までの１サイクル間「Ｌ」となる。この期間をＰｒｅａｍｂｌｅと呼ぶ。
【００４６】
また、最後のデータＤ４が出力された後に、データストローブ信号ＤＱＳは、半サイクル期間、「Ｌ」となる。この期間をＰｏｓｔａｍｂｌｅと呼ぶ。
【００４７】
ここで、外部クロックＥＸＴＣＬＫおよびＥＸＴＺＣＬＫのエッジとデータＤＱの出力されるタイミングの時間差ｔＡＣは、所定の範囲に収まるように規定されている。また、データストローブ信号ＤＱＳのエッジとデータＤＱの出力されるタイミングの時間差ｔＤＱＳＱも、所定の範囲に収まるように規定されている。図２では、ｔＡＣ＝０およびｔＤＱＳＱ＝０に制御されている場合が示されている。
【００４８】
さて、図２に示すようなデータ出力を実現するためには、出力回路５００において、外部クロックＥＸＴＣＬＫのエッジのタイミングより少し早いタイミングの動作クロックが必要となる。内部の各回路が有する容量によって、半導体記憶装置に外部クロックが入力されてから実際にデータが出力されるまでには遅延が生じるからである。
【００４９】
すなわち、外部クロックＥＸＴＣＬＫは定周期信号であるから、外部クロックＥＸＴＣＬＫを適当な遅延量Ｔｄだけ遅らせることによって外部クロックＥＸＴＣＬＫのエッジに対して適当な時間Ｔａだけ戻されたクロックＣＬＫ＿Ｐ，ＣＬＫ＿Ｎを生成し、このクロックＣＬＫ＿Ｐ，ＣＬＫ＿Ｎをトリガとして動作するデータ出力回路から出力されるデータＤＱおよびデータストローブ信号出力回路から出力されるデータストローブ信号ＤＱＳが、上述したタイミング差ｔＡＣ，ｔＤＱＳＱを満足するように遅延量Ｔｄを制御できるクロック発生回路を備える必要がある。このようなクロックを生成する回路をＤＬＬ（Ｄｅｌａｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路という。
【００５０】
戻し量Ｔａは、出力回路５００において、クロックＣＬＫ＿Ｐ，ＣＬＫ＿Ｎをトリガとして読出データを取り込み、最終的にデータ出力端子に読出データが読出されるまでの伝搬時間から決定される。
【００５１】
図３は、ＤＬＬ回路４００の構成を示す。同図を参照して、ＤＬＬ回路４００は、入力バッファ４０１，４０２と、可変遅延回路４０３，４０４と、パルス生成回路４０５，４０６と、入出力レプリカ回路４０７と、位相比較器４０８と、遅延制御回路４０９とを備える。
【００５２】
入力バッファ４０１は、外部から入力される外部クロックＥＸＴＣＬＫ，ＥＸＴＺＣＬＫを受け、外部クロックＥＸＴＣＬＫが立上がる際の電位レベルとその反転信号である外部クロックＥＸＴＺＣＬＫが立下がる際の電位レベルとの交点を検出し、内部クロックＢＵＦＦＣＬＫ＿ＤＬＬを生成する。
【００５３】
入力バッファ４０２は、外部から入力される外部クロックＥＸＴＣＬＫ，ＥＸＴＺＣＬＫを受け、外部クロックＥＸＴＣＬＫが立下がる際の電位レベルと外部クロックＥＸＴ／ＣＬＫが立上がる際の電位レベルとの交点を検出し、内部クロックＢＵＦＦＺＣＬＫ＿ＤＬＬを生成する。
【００５４】
可変遅延回路４０３は、入力バッファ４０１から受ける内部クロックＢＵＦＦＣＬＫ＿ＤＬＬを遅延して、パルス生成回路４０５へ出力する。可変遅延回路４０４は、遅延を生成する複数の遅延ユニットを含み、遅延制御回路４０９からの指令に基づいて遅延ユニットの接続／切離しを行なうことによって内部クロックＢＵＦＦＣＬＫ＿ＤＬＬの遅延量を調整する。
【００５５】
パルス生成回路４０５は、可変遅延回路４０３から出力された信号の立上がりエッジに同期したパルス信号としての内部クロックＣＬＫ＿Ｐを生成する。
【００５６】
可変遅延回路４０４は、入力バッファ４０２から受ける内部クロックＢＵＦＦ／ＣＬＫ＿ＤＬＬを遅延して、パルス生成回路４０６へ出力する。可変遅延回路４０４の構成は、可変遅延回路４０３の構成と同じであり、その説明は繰り返さない。
【００５７】
パルス生成回路４０６は、可変遅延回路４０４から出力された信号の立上がりエッジに同期したパルス信号としての内部クロックＣＬＫ＿Ｎを生成する。
【００５８】
入出力レプリカ回路４０７は、内部クロックＣＬＫ＿Ｐ，ＣＬＫ＿ＮがＤＬＬ回路１００から出力されてからデータ入出力端子にデータＤＱが出力されるまでの回路特性を模擬的に再現した出力レプリカ４１１と、入力バッファ４０１の回路特性を模擬的に再現した入力レプリカ４１０とからなる。
【００５９】
出力レプリカ４１１は、内部ＣＬＫ＿Ｐが入力され、ＣＬＫ＿Ｐを戻し量Ｔａだけ遅延させて出力する。
【００６０】
位相比較器４０８は、入出力レプリカ回路４０７から出力される内部クロックＦＢＣＬＫと、１サイクルまたは数サイクル後の内部クロックＢＵＦＦＣＬＫ＿ＤＬＬとの位相を比較し、その位相差に基づいて可変遅延回路４０３，４０４の遅延量を増減するための制御信号ＵＰおよびＤＯＷＮを生成する。
【００６１】
遅延制御回路４０９は、制御信号ＵＰおよびＤＯＷＮに基づいて遅延制御信号を生成し、可変遅延回路４０３，４０４へ出力して可変遅延回路４０３，４０４における遅延量を調節する。
【００６２】
内部クロックＢＵＦＦＣＬＫ＿ＤＬＬと内部クロックＦＢＣＬＫとの位相が一致したときは、位相比較器４０８からは制御信号ＵＰおよびＤＯＷＮともに出力されず、遅延制御信号はある固定値となり、可変遅延回路４０３，４０４における遅延量は固定される。これによって、内部クロックＣＬＫ＿Ｐ，ＣＬＫ＿Ｎは、外部クロックＥＸＴＣＬＫ，ＥＸＴＺＣＬＫよりも、ＤＬＬ回路４００から出力回路までの遅延量および出力回路におけるデータ出力遅延量の和だけ位相が早い信号となる。
【００６３】
一方、内部クロックＢＵＦＦＣＬＫ＿ＤＬＬと内部クロックＦＢＣＬＫとの位相が一致していないときには、位相差に応じて位相比較器４０８から制御信号ＵＰまたはＤＯＷＮが出力され、可変遅延回路４０３，４０４において遅延ユニットの接続／切離しが行なわれて遅延量が調節される。
【００６４】
次に、図４を参照して、ＤＤＲ−ＩＩのデータ読出しに関連する信号のレベル変化のタイミングについて説明する。
【００６５】
外部クロックＥＸＴＣＬＫ、およびＥＸＴＺＣＬＫ（図示せず）は、一定周期でハイレベル（以下Ｈレベルとも称する）およびローレベル（以下、単にＬレベルとも称する）を繰り返す。
【００６６】
クロックバッファ５２２は、外部クロックＥＸＴＣＬＫおよびＥＸＴＺＣＬＫより、内部クロックＣＬＫを生成する。この内部クロックＣＬＫは、外部クロックＥＸＴＣＬＫに対してＴｂだけ遅延している。
【００６７】
まず、ロウデコーダ５４４によってロウアドレスに対応するワード線ＷＬが選択レベルの「Ｈ」レベルに立上げられ、ビット線対ＢＬ，／ＢＬにメモリセルのデータに応じたデータが出力される。そして、センスアンプ５０５が活性化され、ビット線対ＢＬ、／ＢＬのデータが増幅される。
【００６８】
外部クロック信号ＥＸＴＣＬＫ＃０の立上がりエッジで、Ｒｅａｄコマンド（／ＲＡＳ＝Ｈ，／ＣＡＳ＝Ｌ，／ＷＥ＝Ｈ）およびコラムアドレスＣＡを受け付ける。
【００６９】
次いで、内部クロックＣＬＫ＃０をトリガとして、コラムデコーダ５４６によって、コラムアドレスＣＡと関連する列選択線ＣＳＬが選択されて、それらの列選択線ＣＳＬに対応するビット線対ＢＬ，／ＢＬのデータが、Ｉ／Ｏ線対を経由して、読出し回路６００に出力される。
【００７０】
読出し回路６００は、入力されたこれらのデータを増幅し、増幅されたデータＰＡＤｎ（ｎ＝０〜３）を保持する。
【００７１】
次に、ＣＬＫ＿Ｐ＃２をトリガとして、制御回路５４２で、制御信号ＲＤＴが活性化され、この活性化をトリガにして、読出し回路６００内に保持されているデータＰＡＤｎ（ｎ＝０〜３）がデータバス対ＤＢｎ，ＺＤＢｎ（ｎ＝０〜３）へ出力される。
【００７２】
出力回路５００は、データバス対対ＤＢｎ，ＺＤＢｎ（ｎ＝０〜３）のデータを取り込んで、増幅し、その後Ｐ／Ｓ（パラレル／シリアル変換）し、Ｐ／Ｓ変換されたデータＲＡＤｎ（ｎ＝０〜３）を保持する。
【００７３】
出力回路５００は、ＤＬＬクロックＣＬＫ＿Ｐ，ＣＬＫ＿Ｎの論理和からなるクロック信号ＣＬＫＯをトリガにして、データＲＡＤｎ（ｎ＝０〜３）を読み出して、データＤ０〜Ｄ３にして、順次、データ入出力端子５１８から外部へ出力する。
【００７４】
以上の動作において、制御信号ＲＤＴが適切なタイミングで活性化されることが必要となるが、この制御信号ＲＤＴは、ＣＬＫ＿Ｐ＃２をトリガとして活性化されている。したがって、制御信号ＲＤＴを適切なタイミングで活性化させるには、ＣＬＫ＿Ｐ＃３やＣＬＫ＿Ｐ＃４でなく、ＣＬＫ＿Ｐ＃２を確実に選択できることが重要となる。
【００７５】
（従来のＣＬＫ＿Ｐ選択方法）
まず、従来のＣＬＫ＿Ｐ選択方法について説明する。
【００７６】
図５は、従来のＣＬＫ＿Ｐ選択方法において、ＣＬＫ＿Ｐ選択に関連する信号のレベル変化のタイミングを示す。
【００７７】
同図を参照して、ＣＬＫ＃０の立上がり時点から１サイクル期間、制御信号ＣＰ０が「Ｈ」に設定される。次に、ＣＰ０を１サイクルシフトした制御信号ＣＰ１が生成される。この制御信号ＣＰ１は、ＣＬＫ＃１の立上がり時点を起点としており、１サイクルタイムＴｃｋが十分に長ければ、ＣＬＫ＿Ｐ＃２は、ＣＰ１が「Ｈ」になる期間に含まれる。したがって、ＣＰ１が「Ｈ」となる期間内のＣＬＫ＿Ｐを選択するとＣＬＫ＿Ｐ＃２が得られる。このようにして得られたＣＬＫ＿Ｐ＃２によって、制御信号ＲＤＴの原信号となるＲＤＴＦが発生される。
【００７８】
上述のようなＣＬＫ＿Ｐ＃２の選択方法では、以下に説明するように１サイクルタイムＴｃｋに依存する。
【００７９】
ＣＰ１は、ＣＬＫ＃１を起点としており、これで次のサイクルのＣＬＫ＿Ｐ＃２を選択する。ＣＬＫ＃１の立ち上りエッジのタイミングと、ＣＬＫ＿Ｐ＃２の立上がりエッジのタイミングとの時間差ΔＴは、ΔＴ＝（Ｔｃｋ−Ｔａ−Ｔｂ）となる。ＣＰ１により、ＣＬＫ＿Ｐ＃２を捕らえるには、ΔＴ＞０でなければならない。つまり、（Ｔａ＋Ｔｂ）＜Ｔｃｋであることが必要となる。
【００８０】
この条件は、１サイクルタイムＴｃｋが短くなると、満足することが難しくなる。たとえば、ＤＤＲ−ＩＩでは、最大動作周波数は、３３３ＭＨｚであり、１サイクルタイムＴｃｋは３ｎｓである。したがって、（Ｔａ＋Ｔｂ）＜３ｎｓでなければならない。
【００８１】
（本実施の形態に係る分周クロック選択回路）
次に、本実施の形態に係るＣＬＫ＿Ｐ選択を行なう分周クロック選択回路について説明する。
【００８２】
図６は、本実施の形態に係る分周クロック選択回路１００の構成を示す。同図を参照して、分周クロック選択回路１００は、分周器１１０と、遅延回路１２０と、分周クロック選択指示回路１３０と、シフタ回路１４０と、シフタ回路１５０と、ＺＣＬＫ＿Ｐ＃２選択回路１６０と、ＺＣＬＫ＿Ｐ＃３選択回路１７０と、ＺＣＬＫ＿Ｐ＃４選択回路１８０とで構成される。これらの回路について説明する。
【００８３】
（分周器）
分周器１１０は、ＣＬＫ＿Ｐを２分周して、２個の分周クロックＺＣＬＫ＿ＰＤ０およびＺＣＬＫ＿ＰＤ１を出力する。これらの分周クロックは、循環的に順序づけられいてる。すなわち、ＺＣＬＫ＿ＰＤ０→ＺＣＬＫ＿ＰＤ１→ＺＣＬＫ＿ＰＤ０→ＺＣＬＫ＿ＰＤ１・・・という順に順序づけられている。
【００８４】
図７は、分周器１１０の構成を示す。図８は、分周器１１０に関連する信号のレベル変化のタイミングを示す。分周器１１０は、ＣＫＤ＆ＺＣＫＤ生成回路１１１と、ＺＥＮ生成回路１１２と、Ｘ２Ｄ＆ＺＸ２Ｄ生成回路１１３と、ＺＣＬＫ＿ＰＤ０生成回路１１４と、ＺＣＬＫ＿ＰＤ１生成回路１１５と含む。
【００８５】
同図における制御信号ＥＮは、制御回路５４２で生成される。制御回路５４２は、ＡＣＴコマンドを受け付けた後、制御信号ＥＮ＝「Ｈ」に設定し、プリチャージコマンドを受け付けた後、制御信号ＥＮ＝「Ｌ」に設定する。
【００８６】
ＣＫＤ＆ＺＣＫＤ生成回路１１１は、ＣＬＫ＿Ｐ＝「Ｈ」の期間、ＺＣＬＫ＿Ｐ＝「Ｌ」に設定し、ＣＫＤ＝「Ｈ」に設定し、ＺＣＫＤ＝「Ｌ」に設定する。
【００８７】
ＺＥＮ生成回路１１２は、ＥＮ＝「Ｈ」となる期間、ＺＥＮ＝「Ｌ」に設定する。
【００８８】
Ｘ２Ｄ＆ＺＸ２Ｄ生成回路１１３は、図８に示すような、Ｘ２ＤおよびＺＸ２Ｄを生成する。Ｘ２ＤおよびＺＸ２Ｄは、ＣＬＫ＿Ｐの１／２の周波数のクロック信号であり、これらのレベルは、次のようにして変化する。
【００８９】
すなわち、ＺＣＫＤ＝「Ｌ」（つまり、ＺＣＬＫ＿Ｐ＝「Ｌ」）になると、伝送ゲート３１が導通し、インバータ３０の出力データが、ＮＡＮＤ回路３２とインバータ３３とからなるラッチ部でラッチされる。その後、ＣＫＤ＝「Ｌ」（つまり、ＣＬＫ＿Ｐ＝「Ｈ」）になると、伝送ゲート３４が導通して、ラッチ部でラッチされていたデータが出力される。その結果、Ｘ２ＤおよびＺＸ２Ｄのレベルが変化する。このようにして、Ｘ２ＤおよびＺＸ２Ｄは、ＺＣＬＫ＿Ｐ＝「Ｌ」に変化し、その後、さらに、ＣＬＫ＿Ｐ＝「Ｌ」になると、そのレベルが変化する。
【００９０】
ＺＣＬＫ＿ＰＤ０生成回路１１４、およびＺＣＬＫ＿ＰＤ１生成回路１１５は、Ｘ２ＤおよびＺＸ２Ｄをマスク信号として利用して、ＣＬＫ＿Ｐから、ＣＬＫ＿Ｐの１／２の周波数の２つのクロックＺＣＬＫ＿ＰＤ０およびＺＣＬＫ＿ＰＤ１を生成する。
【００９１】
すなわち、ＺＣＬＫ＿ＰＤ０生成回路１１４は、ＺＣＬＫ＿Ｐ＝「Ｌ」、かつＺＸ２Ｄ＝「Ｌ」となる期間に、ＺＣＬＫ＿ＰＤ０＝「Ｌ」に設定する。ＺＣＬＫ＿ＰＤ１生成回路１１５は、ＺＣＬＫ＿Ｐ＝「Ｌ」、かつＸ２Ｄ＝「Ｌ」となる期間に、ＺＣＬＫ＿ＰＤ１＝「Ｌ」に設定する。
【００９２】
以上より、この分周器１１０は、ＣＬＫ＿Ｐを２分周したクロックを生成する。つまり、ＣＬＫ＿Ｐは、この分周器１１０により、２つの分周クロックＺＣＬＫ＿ＰＤ０およびＺＣＬＫ＿ＰＤ１に分割される。
【００９３】
（遅延回路）
遅延回路１２０は、分周クロックＺＣＬＫ＿ＰＤ０およびＺＣＬＫ＿ＰＤ１をＴｃ（＝Ｔａ＋Ｔｂ）だけ遅延させて、２個の遅延分周クロックＺＣＬＫ＿ＰＤＤ０およびＺＣＬＫ＿ＰＤＤ１を出力する。
【００９４】
図９は、遅延回路１２０の構成を示す。本実施の形態では、Ｔｃ（＝Ｔａ＋Ｔｂ）の値は、一定値であって、温度や電圧などの値により変動しないものとして扱う。この遅延回路１２０は、ＺＣＬＫ＿ＰＤ０をＴｃ（＝Ｔａ＋Ｔｂ）だけ遅延させたＺＣＬＫ＿ＰＤＤ０を出力する固定量遅延回路１２１と、ＺＣＬＫ＿ＰＤ１をＴｃ（＝Ｔａ＋Ｔｂ）だけ遅延させたＺＣＬＫ＿ＰＤＤ１を出力する固定長遅延回路１２２とからなる。
【００９５】
（分周クロック選択指示回路）
分周クロック選択指示回路１３０は、２個の分周クロックＺＣＬＫ＿ＰＤ０およびＺＣＬＫ＿ＰＤ１のうち、ＣＬＫ＃０との位相差がＴｃであるクロックパルスが属する分周クロックを特定する。
【００９６】
より具体的には、分周クロック選択指示回路１３０は、２個の遅延分周クロックＺＣＬＫ＿ＰＤＤ０およびＺＣＬＫ＿ＰＤＤ１のうち、ＣＬＫ＃０が生成される期間にクロックパルスが含まれる遅延分周クロックを特定し、この遅延分周クロックに対応する分周クロックを特定する。
【００９７】
分周クロック選択指示回路１３０は、このような分周クロックとして分周クロックＺＣＬＫ＿ＰＤ０を特定したときには、ＺＳＥＬ０＝「Ｌ」のパルスを生成し、分周クロックＺＣＬＫ＿ＰＤ１を特定したときには、ＺＳＥＬ１＝「Ｌ」のパルスを生成する。
【００９８】
図１０は、分周クロック選択指示回路１３０の構成を示す。この分周クロック選択指示回路１３０は、２分周クロックＺＣＬＫ＿ＰＤＤ０およびＺＣＬＫ＿ＰＤＤ１のいずれを選択するのかを指示する選択指示信号ＺＳＥＬ０およびＺＳＥＬ１を出力する。同図を参照して、分周クロック選択指示回路１３０は、ＺＲＳＴ生成回路１３１と、ＣＬＫ＿ＰＤＤ０生成回路１３２と、ＣＬＫ＿ＰＤＤ１生成回路１３３と、ＺＳＥＬ０生成回路１３４と、ＺＳＥＬ１生成回路１３５とを含む。
【００９９】
同図における制御信号ＣＯＬ、ＷＺＲ、およびＣＰ００は、制御回路５４２で生成される。制御回路５４２は、ＲＥＡＤコマンドが入力されたサイクルにおける内部クロックＣＬＫの立上がりから一定期間（たとえばＣＬＫと同程度の幅）、ＣＯＬ＝「Ｈ」に設定する。
【０１００】
制御回路５４２は、ＲＥＡＤコマンドが入力されてから、最後のデータＤ４が出力されるまでのＲＥＡＤ期間において、ＷＺＲ＝「Ｌ」に設定する。
【０１０１】
制御回路５４２は、ＲＥＡＤコマンドが入力されたサイクルにおける内部クロックＣＬＫの立上がりからバースト期間、つまり、ＤＤＲ−ＩＩでは、２サイクル期間、ＣＰ００＝「Ｈ」に設定する。
【０１０２】
ＺＲＳＴ生成回路１３１は、ＣＰ００＝「Ｈ」である期間、ＺＲＳＴ＝「Ｈ」に設定し、ＣＰ００＝「Ｌ」である期間、ＺＲＳＴ＝「Ｌ」に設定する。
【０１０３】
ＣＬＫ＿ＰＤＤ０生成回路１３２は、ＺＣＬＫ＿ＰＤＤ０のレベルを反転したＣＬＫ＿ＰＤＤ０を生成する。
【０１０４】
ＣＬＫ＿ＰＤＤ１生成回路１３３は、ＺＣＬＫ＿ＰＤＤ１のレベルを反転したＣＬＫ＿ＰＤＤ１を生成する。
【０１０５】
ＺＳＥＬ０生成回路１３４は、ＣＬＫ＿ＰＤＤ０＝「Ｈ」（つまり、ＺＣＬＫ＿ＰＤＤ０＝「Ｌ」）、ＣＯＬ＝「Ｈ」、およびＺＲＳＴ＝「Ｈ」となると、ＺＲＳＴ＝「Ｌ」になるまで（つまり、ＣＰ００＝「Ｌ」となるまで）、ＺＳＥＬ０＝「Ｌ」に設定する。
【０１０６】
ＺＳＥＬ１生成回路１３５は、ＣＬＫ＿ＰＤＤ１＝「Ｈ」（つまり、ＺＣＬＫ＿ＰＤＤ１＝「Ｌ」）、ＣＯＬ＝「Ｈ」、およびＺＲＳＴ＝「Ｈ」となると、ＺＲＳＴ＝「Ｌ」になるまで（つまり、ＣＰ００＝「Ｌ」となるまで）、ＺＳＥＬ１＝「Ｌ」に設定する。
【０１０７】
（ＺＳＥＬｎシフタ回路）
ＺＳＥＬｎシフタ回路は、ＣＬＫ＃０の立上がりエッジから２×Ｔｃｋの期間、パルスとなるＺＳＥＬ０＿Ｄ２またはＺＳＥＬ１＿Ｄ２を生成し、ＣＬＫ＃１の立上がりエッジから２×Ｔｃｋの期間、パルスとなるＺＳＥＬ０＿Ｄ３またはＺＳＥＬ１＿Ｄ３を生成し、ＣＬＫ＃２の立上がりエッジから２×Ｔｃｋの期間、パルスとなるＺＳＥＬ０＿Ｄ４またはＺＳＥＬ１＿Ｄ４を生成する。
【０１０８】
図１１は、ＺＳＥＬ０シフタ回路１４０の構成を示す。同図を参照して、ＺＳＥＬ０シフタ回路１４０は、ＺＥＮ生成回路１４１と、シフト信号生成回路１４２とから構成される。
【０１０９】
ＺＥＮ生成回路１４１は、制御信号ＥＮのレベルを反転したＺＥＮを生成する。
【０１１０】
シフト信号生成回路１４２は、次に示すように、ＺＳＥＬ０＿Ｄ２、ＺＳＥＬ１＿Ｄ３、およびＺＳＥＬ０＿Ｄ４を生成する。
【０１１１】
ＮＡＮＤ回路１０およびインバータ１１は、ＺＳＥＬ０より、ＺＳＥＬ０＿Ｄ２を出力する。ＺＳＥＬ０＝「Ｌ」となる期間と、ＺＳＥＬ０＿Ｄ２＝「Ｌ」とトなる期間は、ほとんどシフトしていない。
【０１１２】
クロックドインバータ１２は、ＣＬＫ＝「Ｌ」で導通すると、ＺＳＥＬが、インバータ１３とインバータ１４とからなるラッチ部でラッチされる。その後、クロックドインバータ１５が、ＺＣＬＫ＝「Ｌ」で導通すると、ラッチデータが出力され、インバータ１８から、ＺＳＥＬ１＿Ｄ３が出力される。
【０１１３】
以上より、ＺＳＥＬ１＿Ｄ３＝「Ｌ」となる期間は、ＺＳＥＬ０＝「Ｌ」となる期間から、１サイクルシフトしたものとなる。
【０１１４】
同様に、クロックドインバータ１９は、ＣＬＫ＝「Ｌ」で導通すると、ＺＳＥＬ１＿Ｄ３が、インバータ２０とインバータ２１とからなるラッチ部でラッチされる。その後、クロックドインバータ２２が、ＺＣＬＫ＝「Ｌ」で導通すると、ラッチデータが出力され、インバータ２５から、ＺＳＥＬ０＿Ｄ４が出力される。
【０１１５】
以上より、ＺＳＥＬ０＿Ｄ４＝「Ｌ」となる期間は、ＺＳＥＬ１＿Ｄ３＝「Ｌ」となる期間から、１サイクルシフトしたもの、つまり、ＺＳＥＬ０＝「Ｌ」となる期間から、２サイクルシフトしたものとなる。
【０１１６】
図１２は、ＺＳＥＬ１シフタ回路１５０の構成を示す。
同図を参照して、ＺＳＥＬ１シフタ回路１５０は、ＺＥＮ生成回路１５１と、シフト信号生成回路１５２とから構成される。これらの各回路の動作は、図１１に示す各回路の動作と同様である。
【０１１７】
ＺＳＥＬ１シフタ回路１５０は、ＺＳＥＬ１より、ＺＳＥＬ１＿Ｄ２、ＺＳＥＬ０＿Ｄ３、およびＺＳＥＬ１＿Ｄ４を生成する。
【０１１８】
ＺＳＥＬ１＝「Ｌ」となる期間と、ＺＳＥＬ１＿Ｄ２＝「Ｌ」となる期間は、ほとんどシフトしていない。
【０１１９】
ＺＳＥＬ０＿Ｄ３＝「Ｌ」となる期間は、ＺＳＥＬ１＝「Ｌ」となる期間から、１サイクルシフトしたものとなる。
【０１２０】
ＺＳＥＬ１＿Ｄ４＝「Ｌ」となる期間は、ＺＳＥＬ０＿Ｄ３＝「Ｌ」となる期間から、１サイクルシフトしたもの、つまり、ＺＳＥＬ１＝「Ｌ」となる期間から、２サイクルシフトしたものとなる。
【０１２１】
（ＺＣＬＫ＿Ｐ＃ｎ選択回路）
ＺＣＬＫ＿Ｐ＃ｎ選択回路は、ＣＬＫ＿Ｐ＃Ｋ（Ｋ≧２）の選択を以下のようにして行なう。
【０１２２】
すなわち、ＺＣＬＫ＿Ｐ＃ｎ選択回路は、分周クロックＺＣＬＫ＿ＰＤ０が特定されたとき（ＺＳＥＬ０＝「Ｌ」で表わされる）には、ＺＣＬＫ＿ＰＤ０よりもＫだけ後の順位のＺＣＬＫ＿ＰＤＸ（Ｋ＝２のときＸ＝０、Ｋ＝３のときＸ＝１、Ｋ＝４のときＸ＝０）に含まれるクロックパルスであって、ＣＬＫ＃（Ｋ−２）の立ち上り時点から、（２×Ｔｃｋ−Ｔｃ）期間経過後、最初に生成されるクロックパルスを図示しない手段で反転して、ＣＬＫ＿Ｐ＃Ｋ（Ｋ≧２）として選択する。
【０１２３】
つまり、Ｋ＝２のときには、ＺＣＬＫ＿ＰＤ０に含まれるクロックパルスであって、ＣＬＫ＃０の立上がり時点から（２×Ｔｃｋ−Ｔｃ）期間経過後、最初に生成されるクロックパルスの反転信号がＣＬＫ＿Ｐ＃２として選択される。
【０１２４】
Ｋ＝３のときには、ＺＣＬＫ＿ＰＤ１に含まれるクロックパルスであって、ＣＬＫ＃１の立上がり時点から（２×Ｔｃｋ−Ｔｃ）期間経過後、最初に生成されるクロックパルスの反転信号がＣＬＫ＿Ｐ＃３として選択される。
【０１２５】
Ｋ＝４のときには、ＺＣＬＫ＿ＰＤ０に含まれるクロックパルスであって、ＣＬＫ＃２の立上がり時点から（２×Ｔｃｋ−Ｔｃ）期間経過後、最初に生成されるクロックパルスの反転信号がＣＬＫ＿Ｐ＃４として選択される。
【０１２６】
ＺＣＬＫ＿Ｐ＃ｎ選択回路は、分周クロックＺＣＬＫ＿ＰＤ１が特定されたとき（ＺＳＥＬ１＝「Ｌ」で表わされる）には、ＺＣＬＫ＿ＰＤ１よりもＫだけ後の順位のＺＣＬＫ＿ＰＤＸ（Ｋ＝２のときＸ＝１、Ｋ＝３のときＸ＝０、Ｋ＝４のときＸ＝１）に含まれるクロックパルスであって、ＣＬＫ＃（Ｋ−２）の立ち上り時点から、（２×Ｔｃｋ−Ｔｃ）期間経過後、最初に生成されるクロックパルスを図示しない手段で反転してＣＬＫ＿Ｐ＃Ｋ（Ｋ≧２）として選択する。
【０１２７】
つまり、Ｋ＝２のときには、ＺＣＬＫ＿ＰＤ１に含まれるクロックパルスであって、ＣＬＫ＃０の立上がり時点から（２×Ｔｃｋ−Ｔｃ）期間経過後、最初に生成されるクロックパルスの反転信号がＣＬＫ＿Ｐ＃２として選択される。
【０１２８】
Ｋ＝３のときには、ＺＣＬＫ＿ＰＤ１に含まれるクロックパルスであって、ＣＬＫ＃１の立上がり時点から（２×Ｔｃｋ−Ｔｃ）期間経過後、最初に生成されるクロックパルスの反転信号がＣＬＫ＿Ｐ＃３として選択される。
【０１２９】
Ｋ＝４のときには、ＺＣＬＫ＿ＰＤ０に含まれるクロックパルスであって、ＣＬＫ＃２の立上がり時点から（２×Ｔｃｋ−Ｔｃ）期間経過後、最初に生成されるクロックパルスの反転信号がＣＬＫ＿Ｐ＃４として選択される。
【０１３０】
図１３は、ＺＣＬＫ＿Ｐ＃２選択回路１６０の構成を示す。同図を参照して、ＺＣＬＫ＿Ｐ＃２選択回路１６０は、ＺＣＬＫ＿ＰＤ０＝「Ｌ」、かつＺＳＥＬ０＿Ｄ２＝「Ｌ」のとき、ＺＣＬＫ＿Ｐ＃２＝「Ｌ」に設定する。これにより、ＣＬＫ＿Ｐ＃２としてＺＣＬＫ＿ＰＤ０が選択されたことになる。
【０１３１】
また、ＺＣＬＫ＿Ｐ＃２選択回路１６０は、ＺＣＬＫ＿ＰＤ１＝「Ｌ」、かつＺＳＥＬ１＿Ｄ２＝「Ｌ」のときに、ＺＣＬＫ＿Ｐ＃２＝「Ｌ」に設定する。これにより、ＣＬＫ＿Ｐ＃２としてＺＣＬＫ＿ＰＤ１が選択されたことになる。
【０１３２】
図１４は、ＺＣＬＫ＿Ｐ＃３選択回路１７０の構成を示す。同図を参照して、ＺＣＬＫ＿Ｐ＃３選択回路１７０は、ＺＣＬＫ＿ＰＤ０＝「Ｌ」、かつＺＳＥＬ０＿Ｄ３＝「Ｌ」のとき、ＺＣＬＫ＿Ｐ＃３＝「Ｌ」に設定する。これにより、ＣＬＫ＿Ｐ＃３としてＺＣＬＫ＿ＰＤ０が選択されたことになる。
【０１３３】
また、ＺＣＬＫ＿Ｐ＃３選択回路１７０は、ＺＣＬＫ＿ＰＤ１＝「Ｌ」、かつＺＳＥＬ１＿Ｄ３＝「Ｌ」のときに、ＺＣＬＫ＿Ｐ＃３＝「Ｌ」に設定する。これにより、ＣＬＫ＿Ｐ＃３としてＺＣＬＫ＿ＰＤ１が選択されたことになる。
【０１３４】
図１５は、ＺＣＬＫ＿Ｐ＃４選択回路１８０の構成を示す。同図を参照して、ＺＣＬＫ＿Ｐ＃４選択回路１８０は、ＺＣＬＫ＿ＰＤ０＝「Ｌ」、かつＺＳＥＬ０＿Ｄ４＝「Ｌ」のとき、ＺＣＬＫ＿Ｐ＃４＝「Ｌ」に設定する。これにより、ＣＬＫ＿Ｐ＃４としてＺＣＬＫ＿ＰＤ０が選択されたことになる。
【０１３５】
また、ＺＣＬＫ＿Ｐ＃４選択回路１８０は、ＺＣＬＫ＿ＰＤ１＝「Ｌ」、かつＺＳＥＬ１＿Ｄ４＝「Ｌ」のときに、ＺＣＬＫ＿Ｐ＃４＝「Ｌ」に設定する。これにより、ＣＬＫ＿Ｐ＃４としてＺＣＬＫ＿ＰＤ１が選択されたことになる。
【０１３６】
以上のように選択されたＺＣＬＫ＿Ｐ＃ｎ（ｎ＝２〜４）は、このＤＤＲ−ＩＩの動作を制御するために用いられる。すなわち、ＺＣＬＫ＿Ｐ＃２＝「Ｌ」をトリガとして、制御信号ＲＤＴが活性化される。また、ＺＣＬＫ＿Ｐ＃３＝「Ｌ」、およびＺＣＬＫ＿Ｐ＃４を＝「Ｌ」をトリガとして、メモリセルのデータを外部へ出力するためのパイプライン処理中のその他の処理が制御される。
【０１３７】
（本実施の形態に係るＣＬＫ＿Ｐ選択動作）
図１６は、本実施の形態に係る分周クロック選択回路１００のＣＬＫ＿Ｐ選択の動作手順を示すフローチャートである。図１７は、分周クロック選択回路１００におけるＣＬＫ＿Ｐ選択に関連する信号のレベル変化のタイミングを示す。これらの図を用いて、ＣＬＫ＿Ｐ選択の動作を説明する。
【０１３８】
まず、分周器１１０は、ＣＬＫ＿Ｐを２分周して、ＺＣＬＫ＿ＰＤ０およびＺＣＬＫ＿ＰＤ１を生成する（図１７の（１）および（２）に示す。）（ステップＳ２０１）。
【０１３９】
次に、遅延回路１２０は、ＺＣＬＫ＿ＰＤ０をＴｃだけ遅延させた、ＺＣＬＫ＿ＰＤＤ０を生成し、ＺＣＬＫ＿ＰＤ１をＴｃだけ遅延させたＺＣＬＫ＿ＰＤ２を生成する（図１７の（３）および（４）に示す。）（ステップＳ２０２）。
【０１４０】
次に、分周クロック選択指示回路１３０は、ＣＯＬ＝「Ｈ」（図１７の（５）に示す。）の期間において、ＺＣＬＫ＿ＰＤＤ０＝「Ｌ」となる場合には（ステップＳ２０３）、ＣＰ００＝「Ｈ」（図１７の（６）に示す。）の期間だけ、ＺＳＥＬ０＝「Ｌ」、かつＺＳＥＬ１＝「Ｈ」に設定する（ステップＳ２０４）。
【０１４１】
次に、ＺＳＥＬ０シフタ回路１４０は、ＺＳＥＬ０＝「Ｌ」と設定された場合には、ＺＳＥＬ０＝「Ｌ」となるパルス部分の期間を維持したＺＳＥＬ０＿Ｄ２を生成し、ＺＳＥＬ０＝「Ｌ」となるパルス部分を１サイクルシフトさせたＺＳＥＬ１＿Ｄ３を生成し、ＺＳＥＬ０＝「Ｌ」となるパルス部分を２サイクルシフトさせたＺＳＥＬ０＿Ｄ４を生成する（ステップＳ２０５）。
【０１４２】
次に、ＺＣＬＫ＿Ｐ＃２選択回路１６０は、ＺＳＥＬ０＝「Ｌ」と設定された場合には、ＺＳＥＬ０＿Ｄ２を用いて、ＺＣＬＫ＿ＰＤ０を選択する。つまり、ＺＣＬＫ＿Ｐ＃２選択回路１６０は、ＺＳＥＬ０＿Ｄ２＝「Ｌ」、かつＺＣＬＫ＿ＰＤ０＝「Ｌ」となる期間に、「Ｌ」レベルのＺＣＬＫ＿Ｐ＃２を出力する（ステップＳ２０６）。
【０１４３】
次に、ＺＣＬＫ＿Ｐ＃３選択回路１７０は、ＺＳＥＬ０＝「Ｌ」と設定された場合には、ＺＳＥＬ１＿Ｄ３を用いて、ＺＣＬＫ＿ＰＤ１を選択する。つまり、ＺＣＬＫ＿Ｐ＃３選択回路１７０は、ＺＳＥＬ１＿Ｄ３＝「Ｌ」、かつＺＣＬＫ＿ＰＤ１＝「Ｌ」となる期間に、「Ｌ」レベルのＺＣＬＫ＿Ｐ＃３を出力する（ステップＳ２０７）。
【０１４４】
次に、ＺＣＬＫ＿Ｐ＃４選択回路１８０は、ＺＳＥＬ０＝「Ｌ」と設定された場合には、ＺＳＥＬ０＿Ｄ４を用いて、ＺＣＬＫ＿ＰＤ０を選択する。つまり、ＺＣＬＫ＿Ｐ＃４選択回路１８０は、ＺＳＥＬ０＿Ｄ４＝「Ｌ」、かつＺＣＬＫ＿ＰＤ０＝「Ｌ」となる期間に、「Ｌ」レベルのＺＣＬＫ＿Ｐ＃４を出力する（ステップＳ２０８）。
【０１４５】
一方、分周クロック選択指示回路１３０は、ＣＯＬ＝「Ｈ」（図１７の（５）に示す。）の期間において、ＺＣＬＫ＿ＰＤＤ０＝「Ｌ」とならない場合には（ステップＳ２０３）、ＣＰ００＝「Ｈ」（図１７の（６）に示す。）の期間だけ、ＺＳＥＬ０＝「Ｈ」、かつＺＳＥＬ１＝「Ｌ」に設定する（ステップＳ２０９）。
【０１４６】
次に、ＺＳＥＬ１シフタ回路１５０は、ＺＳＥＬ１＝「Ｌ」と設定された場合には、ＺＳＥＬ１＝「Ｌ」となるパルス部分の期間を維持したＺＳＥＬ１＿Ｄ２を生成し、ＺＳＥＬ１＝「Ｌ」となるパルス部分を１サイクルシフトさせたＺＳＥＬ０＿Ｄ３を生成し、ＺＳＥＬ１＝「Ｌ」となるパルス部分を２サイクルシフトさせたＺＳＥＬ１＿Ｄ４を生成する（図１７の（７）、（８）および（９）に示す。）（ステップＳ２１０）。
【０１４７】
次に、ＺＣＬＫ＿Ｐ＃２選択回路１６０は、ＺＳＥＬ１＝「Ｌ」と設定された場合には、ＺＳＥＬ１＿Ｄ２を用いて、ＺＣＬＫ＿ＰＤ１（＃２）を選択する。つまり、ＺＣＬＫ＿Ｐ＃２選択回路１６０は、ＺＳＥＬ１＿Ｄ２＝「Ｌ」、かつＺＣＬＫ＿ＰＤ１＝「Ｌ」となる期間に、「Ｌ」レベルのＺＣＬＫ＿Ｐ＃２を出力する（図１７の（１０）に示す。）（ステップＳ２１１）。
【０１４８】
次に、ＺＣＬＫ＿Ｐ＃３選択回路１７０は、ＺＳＥＬ１＝「Ｌ」と設定された場合には、ＺＳＥＬ０＿Ｄ３を用いて、ＺＣＬＫ＿ＰＤ０（＃３）を選択する。つまり、ＺＣＬＫ＿Ｐ＃３選択回路１７０は、ＺＳＥＬ０＿Ｄ３＝「Ｌ」、かつＺＣＬＫ＿ＰＤ０＝「Ｌ」となる期間に、「Ｌ」レベルのＺＣＬＫ＿Ｐ＃３を出力する（図１７の（１１）に示す。）（ステップＳ２１２）。
【０１４９】
次に、ＺＣＬＫ＿Ｐ＃４選択回路１８０は、ＺＳＥＬ１＝「Ｌ」と設定された場合には、ＺＳＥＬ１＿Ｄ４を用いて、ＺＣＬＫ＿ＰＤ１（＃４）を選択する。つまり、ＺＣＬＫ＿Ｐ＃４選択回路１８０は、ＺＳＥＬ１＿Ｄ４＝「Ｌ」、かつＺＣＬＫ＿ＰＤ１＝「Ｌ」となる期間に、「Ｌ」レベルのＺＣＬＫ＿Ｐ＃４を出力する（図１７の（１２）に示す。）（ステップＳ２１３）。
【０１５０】
（本実施の形態のＣＬＫ＿Ｐ選択のサイクルタイム依存性）
上述のようなＣＬＫ＿Ｐの選択方法では、従来の選択方法と同様に、１サイクルタイムＴｃｋに依存する。
【０１５１】
本実施の形態では、ＣＰ００は、ＣＬＫ＃０を起点としており、これで２サイクル後のＣＬＫ＿Ｐ＃２を選択する。ＣＬＫ＃０の立ち上りエッジのタイミングと、ＣＬＫ＿Ｐ＃２の立上がりエッジのタイミングとの時間差ΔＴは、ΔＴ＝（２×Ｔｃｋ−Ｔａ−Ｔｂ）となる。ＣＰ００により、ＣＬＫ＿Ｐ＃２を捕らえるには、ΔＴ＞０でなければならない。つまり、（Ｔａ＋Ｔｂ）／２＜Ｔｃｋであることが必要となる。この条件は、従来の条件と比較して、サイクルタイムの下限を１／２にすることができることを示している。
【０１５２】
以上のように、本実施の形態に係わる選択回路では、サイクルタイムが短くても、所望のＥＸＴＣＬＫに対応するＤＬＬクロックを正確に選択することができる。
【０１５３】
＜第２の実施形態＞
本実施の形態は、第１の実施形態と異なる遅延回路を含む分周クロック選択回路に関する。
【０１５４】
図１８は、本実施の形態２に係る遅延回路３００の構成を示す。同図を参照して、この遅延回路３００は、出力レプリカ３０１，３０２と、ＥＸＴＣＬＫ〜ＣＬＫレプリカ３０３，３０４と、Ｆｉｎｅ  Ｄｅｌａｙ回路３０５，３５６とからなる。
【０１５５】
出力レプリカ３０１は、ＺＣＬＫ＿ＰＤ０をＴａだけ遅延させたＺＣＬＫ＿ＰＤ０Ａを生成する。
【０１５６】
出力レプリカ３０２は、ＺＣＬＫ＿ＰＤ１をＴａだけ遅延させたＺＣＬＫ＿ＰＤ１Ａを生成する。
【０１５７】
これら出力レプリカ３０１および３０２の構成は、図３に示すＤＬＬ回路４００内の出力レプリカ４１１と同一の構成である。
【０１５８】
ＥＸＴＣＬＫ〜ＣＬＫレプリカ３０３は、ＺＣＬＫ＿ＰＤ０ＡをＴｂだけ遅延させたＺＣＬＫ＿ＰＤ０Ｂを生成する。
【０１５９】
ＥＸＴＣＬＫ〜ＣＬＫレプリカ３０４は、ＺＣＬＫ＿ＰＤ１ＡをＴｂだけ遅延させたＺＣＬＫ＿ＰＤ１Ｂを生成する。
【０１６０】
これらＥＸＴＣＬＫ〜ＣＬＫレプリカ３０３および３０４は、ＥＸＴＣＬＫよりＣＬＫを生成する回路の特性を模擬し、ＥＸＴＣＬＫとＣＬＫの間に存在する論理ゲートの段数と同一の段数の論理ゲートで構成される。
【０１６１】
図１９は、Ｆｉｎｅ  Ｄｅｌａｙ回路３０５の構成を示す。Ｆｉｎｅ  Ｄｅｌａｙ回路３５６の構成も、これと同様である。
【０１６２】
Ｆｉｎｅ  Ｄｅｌａｙ回路３０５は、プログラム回路０〜３と、固定量遅延回路３１０〜３１２と、ＡＮＤゲート３１３〜３１６と、ＯＲゲート３１７〜３２０とを含む。Ｆｉｎｅ  Ｄｅｌａｙ回路３０５には、ＥＸＴＣＬＫ〜ＣＬＫレプリカ３０３の出力信号であるＺＣＬＫ＿ＰＤ０Ｂが入力され、ＺＣＬＫ＿ＰＤＤ０が出力される。
【０１６３】
プログラム回路０は、制御信号ＤＳ０を出力し、プログラム回路１は、制御信号ＤＳ１を出力し、プログラム回路２は、制御信号ＤＳ２を出力し、プログラム回路３は、制御信号ＤＳ３を出力する。制御信号ＤＳ０〜ＤＳ３のうちのいずれか１つが「Ｈ」となり、その他は、「Ｌ」に設定される。
【０１６４】
ＡＮＤゲート３１３は、ＺＣＬＫ＿ＰＤ０＝「Ｌ」、かつＤＳ０＝「Ｈ」のときにのみ、「Ｈ」を出力する。ＡＮＤゲート３１４は、ＺＣＬＫ＿ＰＤ０＝「Ｌ」、かつＤＳ１＝「Ｈ」のときにのみ、「Ｈ」を出力する。ＡＮＤゲート３１５は、ＺＣＬＫ＿ＰＤ０＝「Ｌ」、かつＤＳ２＝「Ｈ」のときにのみ、「Ｈ」を出力する。ＡＮＤゲート３１６は、ＺＣＬＫ＿ＰＤ０＝「Ｌ」、かつＤＳ３＝「Ｈ」のときにのみ、「Ｈ」を出力する。ＯＲゲート３１７〜３１９は、いずれかの入力が「Ｈ」のときに、「Ｈ」を出力する。ゲート３２０は、いずれかの入力が「Ｈ」のときに、「Ｌ」を出力する。ここで、各ゲートにおける出力信号の入力信号に対する遅延量をＴｇとする。
【０１６５】
固定量遅延回路３１０、３１１、および３１２は、遅延を生成する複数の遅延ユニットより構成される。これらの固定量遅延回路３１０、３１１、および３１２は、入力された信号を固定遅延量Ｔｄだけ遅延させた信号を出力する。
【０１６６】
以上より、ＤＳ０＝「Ｈ」のときには、ＺＣＬＫ＿ＰＤＤ０のＺＣＬＫ＿ＰＤＤＢに対する遅延量は、３×Ｔｄ＋５×Ｔｇとなる。ＤＳ１＝「Ｈ」のときには、遅延量は、２×Ｔｄ＋４×Ｔｇとなる。ＤＳ２＝「Ｈ」のときには、遅延量は、１×Ｔｄ＋３×Ｔｇとなる。ＤＳ３＝「Ｈ」のときには、遅延量は、２×Ｔｇとなる。
【０１６７】
次に、プログラム回路０〜３の詳細な構成について説明する。
図２０は、プログラム回路０の構成を示す。他のプログラム回路１〜３の構成も、これと同様の構成である。同図を参照して、プログラム回路０は、ＰチャネルＭＯＳトランジスタＰ１と、ＮチャネルＭＯＳトランジスタＮ１と、フューズＦＰ，ＦＮと、ＮＡＮＤ回路３２２と、インバータ３２１とを含む。
【０１６８】
プログラム回路０〜３は、テストモードの動作モードを有する。各プログラム回路ｎに入力される制御信号ＰＳｎは、通常時には、すべてのｎ（＝０〜３）について、「Ｌ」に設定される。制御信号ＰＳｎは、テストモード時には、任意の１つのｎについてのみ「Ｈ」、その他のｎについて「Ｌ」に設定される。
【０１６９】
ＰチャネルＭＯＳトランジスタＰ１のコンダクタンスは、ＮチャネルＭＯＳトランジスタＮ１のコンダクタンスよりも大きい。
【０１７０】
フューズＦＰおよびＦＮは、遅延量がプログラムされる前には、いずれもブローされておらず、いずれかがブローされることにより、遅延量がプログラムされる。フェーズＦＰがブローされるのは、プログラム回路ｎ（＝０〜３）のうちの１つのプログラム回路である。
【０１７１】
フェーズＦＰがブローされたプログラム回路ｋからの制御信号ＤＳｋが「Ｈ」となり、フューズＦＮがブローされたプログラム回路ｍからの制御信号ＤＳｍが「Ｌ」となる。
【０１７２】
したがって、ＺＣＬＫ＿ＰＤＤ０のＺＣＬＫ＿ＰＤＤＢに対する遅延量は、ｋ＝０のときには、３×Ｔｄ＋５×Ｔｇとなり、ｋ＝１のときには、２×Ｔｄ＋４×Ｔｇとなり、ｋ＝２のときには、１×Ｔｄ＋３×Ｔｇとなり、ｋ＝３のときには、２×Ｔｇとなる。
【０１７３】
次に、図２１を参照して、このプログラム回路による遅延量のプログラム動作を説明する。
【０１７４】
まず、テストモードにエントリする。各プログラム回路ｎでは、フューズＦＰおよびＦＮはブローされておらず、ＰチャネルＭＯＳトランジスタＰ１のコンダクタンスがＮチャネルＭＯＳトランジスタＮ１のコンダクタンスよりも大きいので、ＮＡＮＤ回路３３２の入力端子ＩＮ１のレベルは、「Ｌ」となる。
【０１７５】
これにより、各プログラム回路ｎの出力信号ＤＳｎのレベルは、各プログラム回路ｎへの入力信号ＰＳｎのレベルと同一となる（ステップＳ９０１）。
【０１７６】
次に、１つのプログラム回路ｉの入力信号ＰＳｉのレベルを「Ｈ」に設定し、その他のプログラム回路ｊの入力信号ＰＳｊのレベルを「Ｌ」レベルに設定し、それによるＺＣＬＫ＿ＰＤ０に対するＺＣＬＫ＿ＰＤＤ０の遅延量を調べる。
【０１７７】
プログラム回路ｋの入力信号ＰＳｋを「Ｈ」に設定したときに、ＺＣＬＫ＿ＰＤ０に対するＺＣＬＫ＿ＰＤＤ０の遅延量が最適になったとする（ステップＳ９９０２）。
【０１７８】
次に、プログラム回路ｋ内のフューズＦＰをブローし、そのプログラム回路ｋの出力信号ＤＳｋを「Ｈ」レベルに設定する（ステップＳ９０３）。
【０１７９】
プログラム回路ｋ以外のプログラム回路ｍ内のフューズＦＮをブローし、そのブログラム回路ｍの入力信号ＤＳｍを「Ｌ」レベルに設定する（ステップＳ９０４）。
【０１８０】
以上のように、本実施の形態に係る遅延回路によれば、実際の回路の特性を模擬したレプリカおよび遅延量を微調整するＦｉｎｅ  Ｄｅｌａｙ回路を用いるので、Ｔｃの温度および電圧依存性を良好に再現することができる。
【０１８１】
＜第３の実施形態＞
本実施の形態は、第１および第２の実施形態と異なる遅延回路を含む分周クロック選択回路に関する。本実施の形態では、分周クロック選択回路とＤＬＬ回路の配置が近い場合に、ＤＬＬ回路内の出力レプリカの出力を用いて、遅延回路を簡略化する。
【０１８２】
図２２は、本実施の形態３に係るＤＬＬ回路４３０の構成を示す。同図を参照して、出力レプリカ４１１が出力するＣＬＫ＿ＰＲを分周クロック選択回路３７０内の分周器１１０に入力する。
【０１８３】
この出力レプリカ４１１は、第１の実施形態で説明したように、内部クロックＣＬＫ＿Ｐ，ＣＬＫ＿ＮがＤＬＬ回路４００から出力されてからデータ入出力端子にデータＤＱが出力されるまでの回路特性を模擬的に再現しているので、出力レプリカ４１１の出力であるＣＬＫ＿ＰＲは、ＣＬＫ＿Ｐよりも、Ｔａだけ遅延したものとなる。
【０１８４】
図２３は、本実施の形態３に係る分周クロック選択回路３７０の構成を示す。同図を参照して、分周器１１０には、ＣＬＫ＿Ｐに代えて、ＣＬＫ＿ＰよりもＴａだけ遅延したＣＬＫ＿ＰＲが入力される。分周器１１０は、ＺＣＬＫ＿ＰＤ０およびＺＣＬＫ＿ＰＤ１よりも、それぞれＴａだけ遅延したＺＣＬＫ＿ＰＤ０ＲおよびＺＣＬＫ＿ＰＤ１Ｒを出力する。
【０１８５】
図２４は、分周クロック選択回路３７０内の遅延回路３５０の構成を示す。同図を参照して、この遅延回路３５０は、第２の実施形態における遅延回路３００から、出力レプリカ３０１および３０２が削除されている。これは、この遅延回路３５０には、ＺＣＬＫ＿ＰＤ０およびＺＣＬＫ＿ＰＤ１から、それぞれＴａだけ遅延した、ＺＣＬＫ＿ＰＤ０ＲおよびＺＣＬＫ＿ＰＤ１Ｒが入力されるからである。
【０１８６】
以上のように、本実施の形態に係る遅延回路によれば、ＤＬＬ回路内の出力レプリカの出力を分周クロック選択回路の入力とするので、遅延回路内にこの出力レプリカと同一構成のレプリカを設けなくてもよく、遅延回路の構成を簡易にできる。
【０１８７】
（変形例）
本発明は、上記実施の形態に限定されるものではなく、以下の変形例も当然ながら包含する。
【０１８８】
（１）第１〜第３の実施形態では、２分周に関して説明したが、Ｎ分周に拡張することができる。
【０１８９】
すなわち、分周器は、ＤＬＬクロックをＮ分周して、Ｎ個の循環的に順序づけられるＮ個の分周クロックＺＣＬＫ＿ＰＤ０、ＺＣＬＫ＿ＰＤ１、・・・、ＺＣＬＫ＿ＰＤ（Ｎ−１）を出力する。こららの分周クロックは、循環的に順序づけられている。すなわち、ＺＣＬＫ＿ＰＤ０→ＺＣＬＫ＿ＰＤ１→ＺＣＬＫ＿ＰＤ２、・・・→ＺＣＬＫ＿ＰＤ（Ｎ−１）→ＺＣＬＫ＿ＰＤ０→ＺＣＬＫ＿ＰＤ１、・・・という順に順序づけられている。
【０１９０】
遅延回路は、Ｎ分周クロックＺＣＬＫ＿ＰＤ０、ＺＣＬＫ＿ＰＤ１、・・・、ＺＣＬＫ＿ＰＤ（Ｎ−１）をＴｃだけ遅延させて、Ｎ個の遅延分周クロックＺＣＬＫ＿ＰＤＤ０、ＺＣＬＫ＿ＰＤＤ１、・・・、ＺＣＬＫ＿ＰＤＤ（Ｎ−１）を出力する。
【０１９１】
分周クロック選択指示回路は、Ｎ個の分周クロックＺＣＬＫ＿ＰＤ０、ＺＣＬＫ＿ＰＤ１、・・・、ＺＣＬＫ＿ＰＤ（Ｎ−１）のうち、ＣＬＫ＃０との位相差がＴｃであるクロックパルスが属する分周クロックを特定する。
【０１９２】
具体的には、分周クロック選択指示回路は、Ｎ個の遅延分周クロックＺＣＬＫ＿ＰＤＤ０、ＺＣＬＫ＿ＰＤＤ１、・・・、ＺＣＬＫ＿ＰＤＤ（Ｎ−１）のうち、ＣＬＫ＃０が生成される期間にクロックパルスが含まれる遅延分周クロックを特定し、この遅延分周クロックに対応する分周クロックを特定する。
【０１９３】
ＺＳＥＬｎシフタ回路は、ＣＬＫ＃（Ｋ−Ｎ）の立上がりエッジから、Ｎ×Ｔｃｋの期間、パルスとなる制御信号ＺＳＥＬを生成する。
【０１９４】
ＺＣＬＫ＿Ｐ＃ｎ選択回路は、特定された分周クロックよりもＫ（≧Ｎ）だけ後の順位の分周クロックに含まれるクロックパルスであって、ＣＬＫ＃（Ｋ−Ｎ）の立ち上り時点から（Ｎ×Ｔｃｋ−Ｔｃ）期間経過後、最初に生成されるクロックパルスを、ＣＬＫ＿Ｐ＃Ｋとして選択する。
【０１９５】
具体的には、ＺＣＬＫ＿Ｐ＃ｎ選択回路は、制御信号ＺＳＥＬと、特定された分周クロックよりもＫ（≧Ｎ）だけ後の順位の分周クロックとが入力され、ＣＬＫ＿Ｐ＃Ｋとして選択されるクロックパルスを出力する論理回路を含む。
【０１９６】
このようにＮ分周に拡張した場合には、満たさなければならない条件は、（Ｔａ＋Ｔｂ）／Ｎ＜Ｔｃｋとなる。この条件は、従来の条件と比較して、サイクルタイムの下限を１／Ｎにすることができることを示している。
【０１９７】
（２）第１〜第３の実施形態において、遅延回路は、入力される信号をＴｃだけ遅延するものとして説明したが、正確にＴｃだけ遅延させることができないような場合もある。しかし、そのような場合でも、ＣＯＬまたはＣＰ００のパルスの開始タイミングを早くしたり、パルス幅を広くすることによって、ＺＣＬＫ＿ＰＤＤ０、ＺＣＬＫ＿ＰＤ１を確実に捕捉することができる。
【０１９８】
（３）本発明の実施の形態では、ＣＬＫ＿Ｐの選択のための構成と方法について説明したが、これと同様の構成と方法により、ＣＬＫ＿Ｎの選択を行なうようにすることも可能である。
【０１９９】
（４）本発明の実施の形態では、ＣＬＫ＿Ｐ＃２の選択のために、ＺＳＥＬ０（またはＺＳＥＬ１）からＺＳＥＬ０＿Ｄ２（またはＺＳＥＬ１＿Ｄ２）を生成したが、ＺＳＥＬ０（またはＺＳＥＬ１）を直接用いて、ＣＬＫ＿Ｐ＃２を選択するようにしてもよい。
【０２００】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０２０１】
【発明の効果】
以上説明したように、この発明に係わる半導体記憶装置によれば、周期Ｔが短くても、所望の外部クロックに対応する第２の内部クロック（ＤＬＬクロック）を正確に選択することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る半導体記憶装置５１０の全体構成の概略ブロック図である。
【図２】ＤＤＲ−ＩＩからデータを読出す際のデータ出力のタイミングを示す図である。
【図３】ＤＬＬ回路４００の構成を示す図である。
【図４】ＤＤＲ−ＩＩのデータ読出しに関与する信号のレベル変化のタイミングを示す図である。
【図５】従来のＣＬＫ＿Ｐ選択方法において、ＣＬＫ＿Ｐ選択に関連する信号のレベル変化のタイミングを示す図である。
【図６】本発明の実施の形態に係る分周クロック選択回路１００の構成を示す図である。
【図７】分周器１１０の構成を示す図である。
【図８】分周器１１０に関連する信号のレベル変化のタイミングを示す図である。
【図９】遅延回路１２０の構成を示す図である。
【図１０】分周クロック選択指示回路１３０の構成を示す図である。
【図１１】ＺＳＥＬ０シフタ回路１４０の構成を示す図である。
【図１２】ＺＳＥＬ１シフタ回路１５０の構成を示す図である。
【図１３】ＺＣＬＫ＿Ｐ＃２選択回路１６０の構成を示す図である。
【図１４】ＺＣＬＫ＿Ｐ＃３選択回路１７０の構成を示す図である。
【図１５】ＺＣＬＫ＿Ｐ＃４選択回路１８０の構成を示す図である。
【図１６】本実施の形態に係る分周クロック選択回路１００のＣＬＫ＿Ｐ選択の動作手順を示すフローチャートである。
【図１７】分周クロック選択回路１００におけるＣＬＫ＿Ｐ選択に関連する信号のレベル変化のタイミングを示す図である。
【図１８】本発明の実施の形態２に係る遅延回路３００の構成を示す図である。
【図１９】Ｆｉｎｅ  Ｄｅｌａｙ回路３０５の構成を示す図である。
【図２０】プログラム回路０の構成を示す図である。
【図２１】プログラム回路による遅延量のプログラム動作手順を示すフローチャートである。
【図２２】本発明の実施の形態３に係るＤＬＬ回路４３０の構成を示す図である。
【図２３】本発明の実施の形態３に係る分周クロック選択回路３７０の構成を示す図である。
【図２４】本発明の実施の形態３に係る遅延回路３５０の構成を示す図である。
【符号の説明】
１００，３７０  分周クロック選択回路、１１０  分周器、１１１  ＣＫＤ＆ＺＣＫＤ生成回路、１１２  ＺＥＮ生成回路、１１３  Ｘ２Ｄ＆ＺＸ２Ｄ生成回路、１１４  ＺＣＬＫ＿ＰＤ０生成回路、１１５  ＺＣＬＫ＿ＰＤ１回路、１２０，３００，３５０  遅延回路、１２１，１２２，３１０，３１１，３１２  固定量遅延回路、１３０  分周クロック選択指示回路、１３１  ＺＲＳＴ生成回路、１３２  ＣＬＫ＿ＰＤＤ０生成回路、１３３  ＣＬＫ＿ＰＤＤ１生成回路、１３４  ＺＳＥＬ０生成回路、１３５  ＺＳＥＬ１生成回路、１４０  ＺＳＥＬ０シフタ回路、１４１，１５１  ＺＥＮ生成回路、１４２，１５２  シフト信号生成回路、１５０  ＺＳＥＬ１シフタ回路、１６０  ＺＣＬＫ＿Ｐ＃２選択回路、１７０  ＺＣＬＫ＿Ｐ＃３選択回路、１８０  ＺＣＬＫ＿Ｐ＃４選択回路、３０１，３０２，４１１  出力レプリカ、３０３，３０４  ＥＸＲＣＬＫ〜ＣＬＫレプリカ、３０５，３５６  Ｆｉｎｅ  Ｄｅｌａｙ回路、３１３〜３２０  論理ゲート、４０１，４０２  入力バッファ、４０３，４０４  可変遅延回路、４０５，４０６  パルス生成回路、４０７，４２０  入出力レプリカ、４０８  位相比較器、４０９  遅延制御回路、４１０  入力レプリカ、４３０  ＤＬＬ回路、５１０  半導体記憶装置、５１２  クロック端子、５１４  制御信号端子、５１６アドレス端子、５１８  データ入出力端子、５２０  データストローブ信号入出力端子、５２２  クロックバッファ、５２４  制御信号バッファ、５２６  アドレスバッファ、５２８  入力バッファ、５３２  入力バッファ、５３４  出力バッファ、５００  出力回路、５３８  Ｓ／Ｐ（シリアル／パラレル）変換回路＆ライトドライバ、５４０  ＤＱＳ発生回路、４００，４３０  ＤＬＬ回路、５４２  制御回路、５４４  ロウデコーダ、５４６  コラムデコーダ、５４８  読出し＆書込み回路、５５０  センスアンプ、５５２  メモリセルアレイ。
【図１】
2004164763.tif 000003
【図２】
2004164763.tif 000004
【図３】
2004164763.tif 000005
【図４】
2004164763.tif 000006
【図５】
2004164763.tif 000007
【図６】
2004164763.tif 000008
【図７】
2004164763.tif 000009
【図８】
2004164763.tif 000010
【図９】
2004164763.tif 000011
【図１０】
2004164763.tif 000012
【図１１】
2004164763.tif 000013
【図１２】
2004164763.tif 000014
【図１３】
2004164763.tif 000015
【図１４】
2004164763.tif 000016
【図１５】
2004164763.tif 000017
【図１６】
2004164763.tif 000018
【図１７】
2004164763.tif 000019
【図１８】
2004164763.tif 000020
【図１９】
2004164763.tif 000021
【図２０】
2004164763.tif 000022
【図２１】
2004164763.tif 000023
【図２２】
2004164763.tif 000024
【図２３】
2004164763.tif 000025
【図２４】
2004164763.tif 000026