(57)【要約】【目的】製造プロセスのバラツキにもかかわらず常に正しくメモリデバイスからデータ取り込を実現するメモリ制御回路及び半導体集積回路を提供する。【構成】本発明によるメモリ制御回路及び半導体集積回路は、クロック信号を監視することによってデータ取得のタイミングが到来したか否かを判別し、該データ取得のタイミングの到来が判別される迄、該データストローブ信号の有意状態を維持する。【選択図】図２
2010044659.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号を生成して外部メモリデバイスに供給するクロック生成回路と、前記外部メモリデバイスから供給されるデータ信号を、これと共に供給されるデータストローブ信号の有意状態下においてのみ保持する少なくとも１つの保持回路とを含み、前記保持回路からのデータ取得を前記クロック信号に従って制御するメモリ制御回路であって、
前記クロック信号を監視することによって前記データ取得のタイミングが到来したか否かを判別するデータ取得タイミング判別手段と、
前記データ取得のタイミングの到来が判別される迄、前記データストローブ信号の有意状態を維持するデータストローブ信号補償手段と、
を含むことを特徴とするメモリ制御回路。
【請求項２】
前記データストローブ信号補償手段は、前記外部メモリデバイスから供給されたデータストローブ信号が前記有意状態から不定状態になるのをマスキング処理することによって、前記有意状態を維持することを特徴とする請求項１記載のメモリ制御回路。
【請求項３】
前記データストローブ信号補償手段に供給されるデータストローブ信号に予め遅延を与える遅延回路をさらに含むことを特徴とする請求項１又は２記載のメモリ制御回路。
【請求項４】
前記データ取得タイミング判別手段及び前記データストローブ信号補償手段は、
前記データストローブ信号の活性化状態を保持する第１のＳＲラッチ回路と、
前記第１のＳＲラッチ回路に保持されたデータストローブ信号の活性化状態からの立下がりを検出して第１の検出信号（２２２）を活性化状態にする立下がり検出回路と、
前記データ取得のタイミングとして前記クロック信号の立上がりを検出して第２の検出信号（２２３）を活性化状態にする立上がり検出回路と、
前記第２の検出信号の活性化状態を保持すると共に、これを前記第１の検出信号の活性状態に応じてリセットする第２のＳＲラッチ回路と、
前記データストローブ信号の非活性化状態と前記第２のＳＲラッチ回路によって保持された活性化状態とに応じて第３の検出信号（２２０）を活性化状態にするＡＮＤ回路と、
を含み、前記第１のＳＲラッチ回路は、前記第３の検出信号（２２０）の活性化状態に応じて、前記データストローブ信号の活性化状態の保持をリセットすることを特徴とする請求項１又は２記載のメモリ制御装置。
【請求項５】
中央演算処理装置と前記中央演算処理装置からの制御信号に応じて外部メモリデバイスを制御するメモリ制御回路とを含み、前記メモリ制御回路は、クロック信号を生成して前記外部メモリデバイスに供給するクロック生成回路と、前記外部メモリデバイスから供給されるデータ信号を、これと共に供給されるデータストローブ信号の有意状態下においてのみ保持する少なくとも１つの保持回路とを含むことによって前記保持回路からのデータ取得を前記クロック信号に従って制御する半導体集積回路であって、
前記メモリ制御回路は、
前記クロック信号を監視することによって前記データ取得のタイミングが到来したか否かを判別するデータ取得タイミング判別手段と、
前記データ取得のタイミングの到来が判別される迄、前記データストローブ信号の有意状態を維持するデータストローブ信号補償手段と、
を含むことを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、DDR-SDRAM等のメモリデバイスからのデータ読み出しを制御するメモリ制御回路並びにこれを組み込んだ半導体集積回路に関する。
【背景技術】
【０００２】
DDR-SDRAM(Double Data Rate-Synchronous Dynamic Random Access Memory)と称されるメモリデバイスが広く用いられようになって来ている。DDR-SDRAMは、ダブルデータレート(DDR)モードという高速なデータ転送機能を持ち、クロック信号の立ち上がり時と立ち下がり時の両方でデータの読み書きが行なえることから、以前のDRAMに比して倍の転送速度が実現される。DDR-SDRAMに対するメモリ制御は、通常、クロック信号に同期したデータストローブ信号DQSに従ってメモリデバイスとの間でデータ転送が行われる。
【０００３】
ところで、かかるデータストローブ信号DQSに従ってメモリデバイスからデータを円滑に保持して取り込む、すなわちラッチするために、メモリ制御回路のクロック信号からデータストローブ信号DQSを遅延させることが通常行われる。例えば、特許文献１に開示される技術においては、データストローブ信号の位相がクロック信号の位相よりも進んでいる場合、あるいは遅れている場合に応じて、遅延時間を制御する技術を開示している（特許文献１の図４及び図８参照）。
【０００４】
また、かかる遅延時間を制御する技術としては、特許文献２が前もってＷｒｉｔｅしたアドレスに対し、データ読み込み時のタイミングを調整するＰＤＬ（Programmable Delay）の値を変えながらＲｅａｄアクセスすることにより、正しい値が読めたか否かによりＰＤＬに設定する最適遅延時間を認識し、有効領域内でＲｅａｄデータをラッチすることができるとする技術を開示している。かかる最適遅延時間の認識及び設定はメモリ初期設定や一定時間毎に行うとしている（特許文献２の段落００２３〜００２４参照）。
【特許文献１】特開２００３−１５１２７１号公報
【特許文献２】特開２００３−０９９３２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示の技術は、データストローブ信号の位相とクロック信号の位相との比較結果に応じて設計上予め定めた遅延時間を考慮するものであ.って、メモリ制御回路を半導体集積回路の一部として製造するような場合には、そのウエハ製造プロセスのバラツキに起因して最適な遅延時間が変動し常に正常なデータ取得が保証される訳ではない。また、特許文献２に開示の技術では、最適遅延時間の認識及び設定はプログラム動作としてメモリ初期設定や一定時間毎に反復する必要があり、オーバヘッドが著しく実用的ではない。
【０００６】
本発明の目的は、製造プロセスのバラツキにもかかわらず常に正しくメモリデバイスからデータ取得を実現するメモリ制御回路並びにかかるメモリ制御回路を含む半導体集積回路を提供することである。
【課題を解決するための手段】
【０００７】
本発明によるメモリ制御回路は、クロック信号を生成して外部メモリデバイスに供給するクロック生成回路と、該外部メモリデバイスから供給されるデータ信号を、これと共に供給されるデータストローブ信号の有意状態下においてのみ保持する少なくとも１つの保持回路とを含み、該保持回路からのデータ取得を該クロック信号に従って制御するメモリ制御回路であって、該クロック信号を監視することによって該データ取得のタイミングが到来したか否かを判別するデータ取得タイミング判別手段と、該データ取得のタイミングの到来が判別される迄、該データストローブ信号の有意状態を維持するデータストローブ信号補償手段と、を含むことを特徴とする。
【０００８】
本発明による半導体集積回路は、中央演算処理装置と該中央演算処理装置からの制御信号に応じて外部メモリデバイスを制御するメモリ制御回路とを含み、該メモリ制御回路は、クロック信号を生成して該外部メモリデバイスに供給するクロック生成回路と、該外部メモリデバイスから供給されるデータ信号を、これと共に供給されるデータストローブ信号の有意状態下においてのみ保持する少なくとも１つの保持回路とを含むことによって該保持回路からのデータ取得を該クロック信号に従って制御する半導体集積回路であって、
該メモリ制御回路は、該クロック信号を監視することによって該データ取得のタイミングが到来したか否かを判別するデータ取得タイミング判別手段と、該データ取得のタイミングの到来が判別される迄、該データストローブ信号の有意状態を維持するデータストローブ信号補償手段と、を含むことを特徴とする。
【発明の効果】
【０００９】
本発明によるメモリ制御回路及び半導体集積回路によれば、メモリ制御回路を半導体集積回路の一部として製造するような場合にも、製造プロセスのバラツキにもかかわらず常に正しくメモリデバイスからデータ取得を実現するメモリ制御回路並びにかかるメモリ制御回路が提供される。
【発明を実施するための最良の形態】
【００１０】
本発明の実施例について添付の図面を参照しつつ詳細に説明する。
【００１１】
図１は、本発明の実施例を示し、本発明によるメモリ制御回路を含む全体の構成を示している。ここで、半導体集積回路(900)は、ＣＰＵ(800)と、メモリ制御回路（600）と、メモリデバイス(400)とからなる。半導体集積回路(900)は、例えば、マイクロコンピュータとして実現され得る。メモリデバイス(400)は、図示されるように半導体集積回路(900)内部に設けられても、或いは半導体集積回路(900)の外部に設けられてもよい。
【００１２】
メモリデバイス(400)は、例えば、DDR-SDRAM(Double Data Rate-Synchronous Dynamic Random Access Memory)方式のメモリである。概略の動作について説明すると、ＣＰＵ(800)は、メモリ制御回路（600）に対して制御信号を入力することによってメモリデバイス(400)に記憶されたデータの読み出しを指令する。メモリ制御回路（600）は、この制御信号に応じて、メモリデバイス(400)にアドレス／コマンドを発行して読み出しを制御する。メモリ制御回路（600）は、常に、メモリデバイス(400)に介してクロック信号を供給し，双方間の同期を図っている。特に、メモリデバイス(400)がDDR-SDRAM方式のメモリデバイスである場合、クロック信号の立ち上がりのみならず、立ち下がりにおいてもデータ転送が行われる。
【００１３】
メモリデバイス(400)は、メモリ制御回路（600）からのアドレス／コマンドの内容に応じて、記憶していたデータを読み出してリードデータとしてメモリ制御回路（600）に出力する。メモリデバイス(400)は、また、このリードデータの出力に同期してデータストローブ信号をメモリ制御回路（600）に出力する。メモリ制御回路（600）は、出力されるリーダデータをデータストローブ信号の有意状態（High又はLow）状態に応じて保持し、保持したデータをクロック信号に従ってラッチしてＣＰＵ(800)に出力する。従って、データストローブ信号が不定状態になるとデータの保持が保証されない。
【００１４】
尚、本実施例では説明されないが、ＣＰＵ(800)は、メモリ制御回路（600）に対して書き込みのための制御信号を入力することによってメモリデバイス(400)にデータを記憶することもできる。
【００１５】
図２は、図１に示されたメモリ制御回路（600）及びメモリデバイス(400)の詳細の構成を示している。半導体回路(600)は、クロック生成部(100)と、アドレス/コマンド生成部(101)と、複数の保持回路（103, 104, 105, 106）と、遅延回路(102)と、データストローブ信号補償回路(700)と、複数の入力バッファ(108, 109)と、複数の出力バッファ(110, 111, 112, 113)と、インバータ回路(107)とを備える。
【００１６】
クロック生成部(100)は、正相のクロックclk(200)を生成する。生成された正相のクロックclk(200)は、保持回路4(106)のクロック端子やアドレス/コマンド生成部(101)のclk端子に入力され、メモリ制御回路（600）における内部システムクロックとして使用される。また、正相のクロックclk(200)は、出力バッファ(110)を介して外部に出力され(253)、終端抵抗(303)を介してVTT電位にプルアップされると共に、メモリデバイス(400)のclk端子に入力されてメモリデバイス(400)の正相クロックとして使用される。尚、ＶＴＴ電位は、入力バッファ(108, 109)及び出力バッファ(110, 111, 112, 113)のための電源IOVDDの半分の電圧に維持されている。
【００１７】
クロック生成部(100)は、さらに、反転相のクロックclk_n(201)を生成する。生成された反転相のクロックclk_n(201)は、出力バッファ(111)から外部に出力され(252)、終端抵抗(302)を介してVTT電位にプルアップされると共に、メモリデバイス(400)のclk_n端子に入力されてメモリデバイス(400)の反転相クロックとして使用される。
【００１８】
アドレス/コマンド生成部(101)は、CPU（図１参照）からの制御信号(202)を受け、正相のクロックclk(200)に同期した16ビットのアドレス信号address[15:0](203)とコマンド信号command(204)とを生成する。生成された16ビットのアドレス信号address[15:0](203)は、出力バッファ(112)から外部に出力され(251)、終端抵抗(301)を介してVTT電位にプルアップされると共に、メモリデバイス(400)のaddress[15:0]端子(402)に入力されてメモリデバイス(400)のアドレス信号として使用される。一方、生成されたコマンド信号command(204)は、出力バッファ(113)から外部に出力され(250)、終端抵抗(300)を介してVTT電位にプルアップされると共に、メモリデバイス(400)のcommand端子(401)に入力されてメモリデバイス(400)のコマンド信号として使用される。
【００１９】
メモリデバイス(400)は、メモリ制御回路（600）から出力される正相クロック(253)と反転相クロック(252)と、アドレス信号(251)と、コマンド信号(250)とを受けて動作し、メモリデバイス(400)において記憶しているデータを選択し、これを16ビットのリードデータ信号dq[15:0](255)として出力する。メモリデバイス(400)は、また、出力するリードデータ信号dq[15:0](255)と同期させたデータストローブ信号dqs(254)を出力する。リードデータ信号dq[15:0](255)は、終端抵抗(305)を介してVTT電位にプルアップされると共に、メモリ制御回路（600）に入力される。また、データストローブ信号dqs(254)は、終端抵抗(304)を介してVTT電位にプルアップされると共に、メモリ制御回路（600）に入力される。データストローブ信号dqs(254)は、メモリ制御回路（600）にとってリードデータ信号dq[15:0](255)を取得するためのクロック信号であり、メモリデバイス(400)において正相クロック（clk）及び反転相クロック（clk_n）に基づいて生成される。データストローブ信号dqs(254)の周期とクロック（clk, clk_n）とは同一周期であるものの各々の伝搬経路に応じて位相差があることに注意を要する。
【００２０】
メモリデバイス(400)から供給されたリードデータ信号dq[15:0](255)は、メモリ制御回路（600）において、入力バッファ(108)に入力され(206)され、さらに、保持回路1(103)と保持回路3(105)のデータ端子に入力される。保持回路1(103)の16ビットの出力(209)は保持回路2(104)のデータ端子に入力される。保持回路2(104)の16ビットの出力(210)と保持回路3(105)の16ビットの出力(211)とはバス結合によって合成され、32ビットの信号(212)となる。合成された32ビットの信号(212)は、保持回路4(106)のデータ端子に入力される。保持回路4(106)は入力された32ビットの信号(212)は、正相のクロックclk(200)に従って取得され、CPUへのリードデータ(213)として出力される。
【００２１】
一方、メモリデバイス(400)から供給されたデータストローブ信号dqs(254)は、入力バッファ(109)に入力され(205)、その出力が遅延回路(102)によって遅延が加えられる(207)。本発明の１つの特徴は、メモリ制御回路（600）には、データストローブ信号補償回路(700)が新たに設けられている点にある。遅延が加えられた信号(207)は、従来、保持回路1(103)のクロック端子に供給されると共に、インバータ回路(107)で反転されて（225）、保持回路2(104)と保持回路3(105)のクロック端子に供給される（図中点線部分参照）。
【００２２】
図３及び図４は、メモリ制御回路がメモリデバイスと連携して行う動作をタイミングチャート形式で示している。ここでは、メモリデバイス(400)から出力されるデータストローブ信号dqs(254)を保持回路2(104)と保持回路3(105)のクロック信号として直接使用した場合が説明される。すなわち、本発明の特徴をなすデータストローブ信号補償回路（７００）を考慮しない動作が図３及び図４を参照して先ず説明される。
【００２３】
図３を参照すると、メモリ制御回路がCPUからの制御信号を受け、メモリ制御回路の外部に設けられたメモリデバイスからデータをリードし、メモリ制御回路がCPUへリードデータを送るまでの動作が示されている。
【００２４】
時刻T1において、アドレス/コマンド生成部(101)は、CPUからの制御信号(202)を受け、正相のクロックclk(200)に同期した16ビットのアドレス信号address[15:0](203)とコマンド信号command(204)を生成する。
【００２５】
時刻T1'において、メモリ制御回路（600）において、生成された正相のクロックclk(200)、反転相のクロックclk_n(201)、アドレス信号address[15:0](203)、並びにコマンド信号command(204)の各々は、メモリ制御回路（600）内部の配線や出力バッファとメモリデバイス(400)との間の配線により遅延してメモリデバイス(400)に到達する。
【００２６】
時刻T2、時刻T3において、メモリデバイス(400)は、入力されたアドレス信号address[15:0](402)及びコマンド信号command(401)を、正相クロックclk(404)と反転相クロックclk_n(403)とが信号レベルで交差する時点（以下、クロスポイントと称する）で取得し、入力に応じた16ビットデータ信号dq[15:0](406)とデータストローブ信号dqs(405)とを出力するための状態に移行する。
【００２７】
時刻T4から時刻T5までにおいて、メモリデバイス(400)は、16ビットデータ信号dq[15:0](406)とデータストローブ信号dqs(405)を出力する1サイクル前に、リードプリアンブル期間(図中：Rpre)に移行し、この期間でデータストローブ信号dqs(405)をLow出力にする。
【００２８】
時刻T5、時刻T6において、メモリデバイス(400)は、時刻T2で取得した入力に応じ、クロスポイントに同期して16ビットデータ信号dq[15:0](406)を2回に時分割して出力し(図中：Da、Db)、それらのデータ信号を取得するためのデータストローブ信号dqs(405)を出力する。
【００２９】
時刻T7、時刻T8において、同様に、メモリデバイス(400)は、時刻T3で取得した入力に応じ、クロスポイントに同期して16ビットデータ信号dq[15:0](406)を2回に時分割して出力し(図中：Dc、Dd)、それらのデータ信号を取得するためのデータストローブ信号dqs(405)を出力する。
【００３０】
時刻T8から時刻T9までにおいて、メモリデバイス(400)は、データストローブ信号dqs(405)の出力を完了すると、半サイクルのリードポストアンブル期間(図中：Rpst)に移行し、この期間でデータストローブ信号dqs(405)をLow出力にする。リードポストアンブル後、16ビットデータ信号dq[15:0](406)とデータストローブ信号dqs(405)は、終端電圧レベル(図中：VTT)に終端抵抗を介して終端される。
【００３１】
時刻T5'、時刻T6'、時刻T7'、時刻T8'において、メモリデバイス(400)から出力された16ビットデータ信号dq[15:0](406)及びデータストローブ信号dqs(405)は、メモリ制御回路（600）とメモリデバイス(400)と間の配線や入力バッファによって遅延し、メモリ制御回路（600）に入力される。
【００３２】
尚、16ビットデータ信号dq[15:0](406)及びデータストローブ信号dqs(405)は、メモリデバイス(400)が信号出力をしていない間、図示されるように、外部ノイズなどの影響によりVTTレベル(図中：VTT)を基準とした微小な揺れが発生した信号となる。このため、メモリ制御回路（600）に入力される16ビットデータ信号dq[15:0](206)及びデータストローブ信号dqs(205)は、入力バッファの出力値が定まらず、図中に示されるように不定データや不定クロックとして入力される。
【００３３】
時刻T10、時刻T11において、保持回路1(103)は、遅延回路(102)で遅らせたデータストローブ信号 dqs_delay(207)に従って、メモリ制御回路（600）に入力された16ビットデータ信号(206)(図中：Da、Dc)を取得する(209)。
【００３４】
時刻T12、時刻T13において、保持回路2(104)は、遅延回路(102)で遅らせたデータストローブ信号 dqs_delay(207)をインバータ回路(107)で反転した信号/dqs_delay（225）に従って、保持回路1(103)の出力(209)(図中：Da、Dc)を取得する(210)。保持回路3(105)は、遅延回路(102)で遅らせたデータストローブ信号 dqs_delay(207)がインバータ回路(107)によって反転された信号/dqs_delay（225）に従って、メモリ制御回路（600）に入力された16ビットデータ信号(206)(図中：Db、Dd)を取得する(211)。保持回路2(104)の出力(210)と保持回路3(105)の出力(211)とがバス結合により合成され、保持回路4(106)の入力となって32ビットのデータ信号(212)(図中：DbDa、DdDc)が生成される。
【００３５】
時刻T14において、保持回路2(104)は、時刻T9以降、VTTレベルの揺れを含んで入力される不定クロック/dqs_delay（225）に従って、保持回路1(103)から出力される不定データ(209)を取得する。同様に、保持回路3(105)は、VTTレベルの揺れを含んで入力される不定クロック/dqs_delay（225）に従って、メモリ制御回路（600）に入力される不定データ(206)を取得する。これにより、保持回路4(106)の入力となる32ビットのデータ信号(212)が不定データとなる。
【００３６】
時刻T15、時刻T16において、保持回路4(106)は、正相のクロックclk(200)に従って、入力された32ビットのデータ信号(212)を取得し、CPUへのリードデータ(213)として出力する(図中：DbDa、DdDc)。
【００３７】
図４を参照すると、図３と同様に、メモリ制御回路がメモリデバイスからデータをリードしCPUへリードデータを送るまでの動作が示されているが、ここでは、ウエハ製造技術における配線長の短縮化やトランジスタの能力向上によって遅延時間が少なくなる一方で、ウエハ製造における仕上がりのバラツキによる遅延時間の不定化に起因して、データストローブ信号に対する所与の遅延時間によっては、保持回路がメモリデバイスからリードしたデータを取得できず、不定データを取得してしまう現象が説明される。
【００３８】
図４を参照してかかる現象をより詳細に説明すると、第１にメモリ制御回路（600）の配線や出力バッファ、メモリ制御回路（600）とメモリデバイス(400)間の配線による遅延が少なくなり、結果的に時刻T1と時刻T1'の差が少なくなっている。第２に、メモリ制御回路（600）とメモリデバイス(400)間の配線や半導体回路の入力バッファによる遅延が少なくなり、結果的に時刻T5と時刻T5'の差が少なくなっている。これは時刻T6、時刻T7及び時刻T8についても同様である。第３に、遅延回路(102)による遅延が少なくなってdqs_delay(207)の遅延が少なくなっている。これらの影響により、時刻T16において保持回路4(106)の入力(212)は既に不定データに更新されており、この不定データを正相のクロックclk(200)により取得しようとしても、不定データをCPUへのリードデータ(213)として送出してしまうことになる。
＜データストローブ信号補償回路＞
上記したように、メモリデバイス(400)から出力されるデータストローブ信号dqs(254)を保持回路2(104)と保持回路3(105)のクロック信号としてダイレクトに使用した場合、時刻T14の/dqs_delay（225）の立上がりにより、保持回路4(106)の入力(212)が時刻T16の正相のクロックclk(200)の立上がりよりも前に不定データに更新され、保持回路4(106)において不定データが取得されてしまう（図４参照）。
【００３９】
そこで、本願発明ではかかる現象を回避するために、時刻T16の正相のクロックclk(200)の立上がりよりも後に、/dqs_delay（225）が立上がるように制御するデータストローブ信号補償回路(700)が設けられている。
【００４０】
図５は、データストローブ信号補償回路(700)の詳細構成を示している。ここで、上記したように、メモリデバイス(400)から出力されたデータストローブ信号dqs(254)は入力バッファ(109)に入力され(205)、遅延回路(102)で遅らされた後(207)に、データストローブ信号補償回路(700)に入力されている。
【００４１】
遅延入力(207)されたデータストローブ信号dqs(254)は、保持回路1(103)のクロック端子とAND回路(122)のa端子とSRラッチ1(120)のS端子とに入力される。SRラッチ1(120)の出力(221)は、インバータ回路(107)に出力されると共に、SRラッチ1(120)のR端子にフィードバック入力される。SRラッチ1(120)の出力(221)は、立下り検出回路(123)に入力される。
【００４２】
立下り検出回路(123)は、入力されたSRラッチ1(120)の出力(221)の立下りに応じて、立下り検出パルス信号(222)を生成する。生成された立下り検出パルス信号(222)はSRラッチ2(121)のR端子に入力される。一方、正相のクロックclk(200)が立上り検出回路(124)に入力される。立上り検出回路(124)は、正相のクロックclk(200)の信号波形を監視し、その立上がりに応じて、立上り検出パルス信号(223)が生成する。生成された立上り検出パルス信号(223)は、SRラッチ2(121)のS端子に入力される。SRラッチ2(121)の出力(224)はAND回路(122)のb端子に入力される。SRラッチ1(120)及びSRラッチ2(121)は、図７Ａ及び図７Ｂに示された遷移図に従ったラッチ動作を行う。
【００４３】
AND回路(122)は、a端子に入力された「遅延入力(207)されたデータストローブ信号dqs(254)」とb端子に入力された「SRラッチ2(121)の出力(224)」とのAND論理を出力する(220)。AND回路(122)の出力(220)はSRラッチ1(120)のR端子に入力される。SRラッチ1(120)の出力(221)は、データストローブ信号補償回路(700)の出力として、インバータ回路(107)に入力される。データストローブ信号補償回路(700)の出力(221)は、インバータ回路(107)で反転された(225)後、保持回路2(104)のクロック端子と保持回路3(105)のクロック端子とに入力される。
【００４４】
図６Ａ及び図６Ｂは、データストローブ信号補償回路(700)を含めた動作をタイミングチャート形式で詳細に示している。ここで、メモリデバイス(400)から16ビットデータ信号dq[15:0](406)とデータストローブ信号dqs(405)とが出力されてから、CPUへのリードデータ(213)が送出される。図６Ａの部分Ａが図６Ｂに拡大して示されている。
【００４５】
以下、図６Ｂを参照して、各部の信号波形変化に応じた動作を、順序関係を示す番号１〜８（図中では○で囲われた番号）を参照して以下説明する。
【００４６】
番号１の動作では、遅延回路(102)で遅らせたデータストローブ信号dqs_delay(207)がHighになることにより、SRラッチ1(120)のS端子がHighになり、SRラッチ1(120)の出力(221)がLowからHighに変化する。
【００４７】
番号２の動作では、立上り検出回路(124)は、正相のクロックclk(200)の立上りを検出してHighパルス信号(223)を生成し、SRラッチ2(121)のS端子に入力する。
【００４８】
番号３の動作では、SRラッチ2(121)のS端子がHighになることにより、SRラッチ2(121)の出力(224)がHighになる。
【００４９】
番号４の動作では、SRラッチ2(121)の出力(224)がHighのときに、遅延回路(102)で遅らせたデータストローブ信号dqs_delay(207)がLowになることにより、AND回路(122)の出力(220)がHighになり、SRラッチ1(120)のR端子にHighが入力される。
【００５０】
番号５の動作では、SRラッチ1(120)のR端子がHighになることにより、SRラッチ1(120)の出力(221)がHighからLowに変化する。
【００５１】
番号６の動作では、立下り検出回路(123)は、SRラッチ1(120)の出力(221)の立下りを検出してHighパルス信号(222)を生成し、SRラッチ2(121)のR端子に入力する。
【００５２】
番号７の動作では、SRラッチ2(121)のR端子がHighになることにより、SRラッチ2(121)の出力(224)がLowになる。
【００５３】
番号８の動作では、SRラッチ2(121)の出力(224)がLowになることにより、AND回路(122)の出力(220)がLowになり、SRラッチ1(120)のR端子がLowになる。
【００５４】
以降、番号１から番号８の動作を繰り返し、保持回路2(104)及び保持回路3(105)のクロック信号として使用される/dqs_delay(225)が生成され、図３及び図４に示されたと同じ動作でメモリデバイス(400)からのデータ信号(255)がCPUへリードデータ(213)として送出される。
【００５５】
以上のデータストローブ信号補償回路の動作によって、正相のクロックclk(200)の立上り検出パルス信号(223)がHighになるまで/dqs_delay(225)の立上りを遅らせることができる(図中の丸破線Ｂで囲った部分)。これにより、保持回路4(106)において32ビットのデータ信号(212)が取得されるまで/dqs_delay(225)の立上がりが発生することがない。従って、保持回路4(106)において、正相のクロックclk(200)に応じて32ビットのデータ信号(212)を取得する前に、不定クロックに起因して32ビットのデータ信号(212)が不定データに更新されることが回避され、正しい32ビットのデータ信号(212)が取得される。
【００５６】
以上の実施例から明らかなように、本発明によるメモリ制御回路によって、データ取得のタイミングを与えるクロック信号の立上り検出パルス信号が有効になるまでデータストローブ信号が不定状態になるのをマスキング処理することによってデータストローブ信号の立上りを遅らせる構成が与えられる。これにより、メモリ制御回路とメモリデバイス間の配線による遅延時間やウエハプロセスの仕上がりばらつきによる遅延時間のずれに影響を受けずに、メモリデバイスから出力されるデータ信号をCPUへのリードデータとして正しく送出することができる。
【００５７】
また、本発明の構成では、データストローブ信号補償回路に加えてデータストローブ信号に遅延に加える遅延回路が設けられ得る。かかる構成により、製造プロセス上のバラツキに対する遅延補償と組み合わせて、バイアス的な遅延に対しても遅延補償を行うことができる。
【００５８】
以上の実施例では、メモリデバイスがDDR-SDRAMであるとして説明されたが、本発明にかかる限定はなく、本発明におけるメモリデバイスは、メモリ制御回路との間でデータストローブ信号に従ってデータを転送するタイプの多様なメモリデバイスであり得る。
【図面の簡単な説明】
【００５９】
【図１】本発明の実施例を示し、本発明によるメモリ制御回路を含む全体の構成を示すブロック図である。
【図２】図１に示したメモリ制御回路及びメモリデバイスの詳細の構成を示すブロック図である。
【図３】メモリ制御回路がメモリデバイスと連携して行う動作を示すタイミングチャートである。
【図４】メモリ制御回路がメモリデバイスと連携して行う動作を示し、特に不定データを取り込んでしまう状況を示すタイミングチャートである。
【図５】データストローブ信号補償回路の詳細構成を示すブロック図である。
【図６Ａ】データストローブ信号補償回路を含めた動作を示すタイミングチャートである。
【図６Ｂ】図６Ａに示されたタイミングチャートの一部を拡大して示すタイミングチャートである。
【図７Ａ】データストローブ信号補償回路に含まれるSRラッチ1のラッチ動作遷移を示す図である。
【図７Ｂ】データストローブ信号補償回路に含まれるSRラッチ2のラッチ動作遷移を示す図である。
【符号の簡単な説明】
【００６０】
100  クロック生成部
101  アドレス／コマンド生成部
102  遅延回路
103、104、105、106  保持回路
107  インバータ回路
108、109  入力バッファ
110、111、112  出力バッファ
120、121  ＳＲラッチ
122  AND回路
123  立下り検出回路
124  立上り検出回路
300、301、302、303、304、305  終端抵抗
400  メモリデバイス
600  メモリ制御回路
700  データストローブ信号補償回路
900  半導体集積回路
【図１】
2010044659.tif 000003
【図２】
2010044659.tif 000004
【図３】
2010044659.tif 000005
【図４】
2010044659.tif 000006
【図５】
2010044659.tif 000007
【図６Ａ】
2010044659.tif 000008
【図６Ｂ】
2010044659.tif 000009
【図７Ａ】
2010044659.tif 000010
【図７Ｂ】
2010044659.tif 000011