JP2015103262A - 半導体装置 - Google Patents
半導体装置 Download PDFInfo
- Publication number
- JP2015103262A JP2015103262A JP2013242954A JP2013242954A JP2015103262A JP 2015103262 A JP2015103262 A JP 2015103262A JP 2013242954 A JP2013242954 A JP 2013242954A JP 2013242954 A JP2013242954 A JP 2013242954A JP 2015103262 A JP2015103262 A JP 2015103262A
- Authority
- JP
- Japan
- Prior art keywords
- clock
- signal
- flip
- data
- flop
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Memory System (AREA)
- Manipulation Of Pulses (AREA)
Abstract
【課題】コアクロックをプログラマブルに遅延した信号を生成するためのキャリブレーション期間が初期化時のオーバーヘッドとなる。【解決手段】クロック生成回路404は、CPUの動作クロックであるコアクロックを遅延させた複数個の異なる位相の遅延クロックを生成し、生成した複数個の遅延クロックおよびコアクロックの中でータストローブ信号の位相よりも遅く、かつデータストローブ信号の位相に最も近い位相を有するものを再同期クロックとして選択する。【選択図】図1
Description
本発明は、半導体装置に関し、たとえば、メモリから出力されるデータストローブ信号とデータ信号を受信する半導体装置に関する。
従来のDDR_PHY(DDR_ PHYsical interface)では、DRAM(Dynamic Random Access Memory)からのデータの読出し時に、レベリング用のFIFO(First-In First-Out)を適用するアーキテクチャが一般的であるが、読出し用のFIFOを設けることによる面積の増大と、読出しレイテンシが増大するという課題であった。これに対して、読出しレイテンを短縮し、かつ読出し用のFIFOを使用しないアーキテクチャが提案されている。
たとえば、特許文献1に記載のDDRメモリコントローラは、データストローブ信号DQSを遅延させた信号でデータ信号DQをラッチし、そのラッチ出力をコアクロックをプログラマブルに遅延した信号でラッチし直す構成が記載されている。
しかしながら、特許文献1の記載のDDRメモリコントローラでは、コアクロックをプログラマブルに遅延した信号を生成するためのキャリブレーション期間が初期化時のオーバーヘッドとなる。また、データストローブ信号DQSのポストアンブル後のノイズマスク機能が無いためノイズを取込む可能性がある。さらに、ビットごとにデータ信号DQの入力タイミングが異なる場合に、入力タイミングが揃うように補正することができないという問題がある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかであろう。
本発明の一実施形態によれば、クロック生成回路は、CPUの動作クロックであるコアクロックを遅延させた複数個の異なる位相の遅延クロックを生成し、生成した複数個の遅延クロックおよびコアクロックの中でータストローブ信号の位相よりも遅く、かつデータストローブ信号の位相に最も近い位相を有するものを再同期クロックとして選択する。
本発明の一実施形態によれば、データストローブ信号によってラッチしたデータ信号を再度ラッチし直しするためのクロックを、初期化時のオーバーヘッドをもたらすことなく生成することができる。
以下、本発明の実施の形態について図面を用いて説明する。
[第1の実施形態]
図1は、第1の実施形態の半導体装置401の構成を表わす図である。
[第1の実施形態]
図1は、第1の実施形態の半導体装置401の構成を表わす図である。
この半導体装置401は、第1のレジスタ402と、第2のレジスタ403と、クロック生成回路404とを備える。
第1のレジスタ402は、データストローブ信号DQSによってデータ信号をラッチする。
クロック生成回路404は、再同期クロックRCLKを生成する。クロック生成回路は、CPUの動作クロックであるコアクロックCORE_CLKを遅延させた複数個の異なる位相の遅延クロックを生成し、生成した複数個の遅延クロックおよびコアクロックCORE_CLKの中でデータストローブ信号DQSの位相よりも遅く、かつデータストローブ信号DQSの位相に最も近い位相を有するものを再同期クロックRCLKとして選択する。本明細書において、クロックAの位相とクロックBの位相の早い/遅いという関係は、クロックAのある立ち上がりエッジのタイミングtaと、taとの差がπ/2以下であるクロックBの立ち上がりエッジのタイミングtbによって定められる。クロックAの位相がクロックBの位相よりも早いとは、ta<tbであることを表わす。クロックAの位相がクロックBの位相よりも遅いとは、ta>tbであることを表わす。第2のレジスタ403は、再同期クロックRCLKによって第1のレジスタ402の出力データをラッチする。
以上のように、本実施の形態によれば、データストローブ信号によって動作する第1のレジスタ402からの出力を再同期するために、コアクロックCORE_CLKと位相差の小さなクロックが簡易な処理で生成することができる。
[第2の実施形態]
図2は、第2の実施形態の半導体装置410の構成を表わす図である。
図2は、第2の実施形態の半導体装置410の構成を表わす図である。
この半導体装置410は、DDR−SDRAM(Double Data Rate - Synchronous Dynamic Random Access Memory)106と、DDR_PHY1と、DDRメモリコントローラ101と、システムバス102と、CPU(Central Processing Unit)103と、コアクロック生成器104とを備える。
プリント基板70上に、LSI(Large Scale Integration)105とDDR−SDRAM106とが配置される。LSI105には、DDR_PHY1とDDRメモリコントローラ101とが配置される。
DDR_PHY1と、DDR−SDRAM106との間のインタフェース信号としてクロックCLK、コマンド、アドレス、データ信号DQ、相補のデータストローブ信号DQS,DQSBとが存在する。
DDR−SDRAM106は、同期クロックの立ち上がりと立ち下りの両方で、データを出力(読出し)、およびデータを入力する(書込み)。
DDR_PHY1は、DDRメモリコントローラ101からのパラレルデータをシリアルデータに変換して、DDR−SDRAM106に送信する。DDR_PHY1は、DDR−SDRAM106からのシリアルデータをパラレルデータに変換してDDRメモリコントローラ101に送信する。
DDRメモリコントローラ101は、DDR−SDRAM106を制御する。
システムバス102は、CPU103と、DDRメモリコントローラ101とを接続するバスである。
システムバス102は、CPU103と、DDRメモリコントローラ101とを接続するバスである。
コアクロック生成器104は、コアクロックCORE_CLKを生成する。
CPU103は、DDR−SDRAM106からのデータの読出しを指示し、DDR−SDRAM106へのデータの書込みを指示する。
CPU103は、DDR−SDRAM106からのデータの読出しを指示し、DDR−SDRAM106へのデータの書込みを指示する。
CPU103、DDR_PHY1、メモリコントローラ101、およびDDR_PHY1の一部の構成要素は、コアクロックCORE_CLKで動作する。
図3は、DDR_PHY1の構成を説明するための図である。
図3を参照して、DDR_PHY1は、DQパッド61と、DQSパッド62と、I/O62と、I/O63と、遅延回路(Delay)2と、遅延回路(Delay)3と、RCLK生成器7と、データイネーブル制御器9と、キャプチャーレジスタ4と、再同期レジスタ5と、レベリングレジスタ6と、ロジック59とを備える。レベリングレジスタ6およびロジック59は、コアクロックCORE_CLKで動作するコアクロックドメインに含まれる。
図3を参照して、DDR_PHY1は、DQパッド61と、DQSパッド62と、I/O62と、I/O63と、遅延回路(Delay)2と、遅延回路(Delay)3と、RCLK生成器7と、データイネーブル制御器9と、キャプチャーレジスタ4と、再同期レジスタ5と、レベリングレジスタ6と、ロジック59とを備える。レベリングレジスタ6およびロジック59は、コアクロックCORE_CLKで動作するコアクロックドメインに含まれる。
DQパッド61は、DDR_SDRAM106から出力されるデータ信号DQを受ける。DQSパッド62は、DDR_SDRAM106から出力されるデータストローブ信号DQSを受ける。
I/O62は、データ信号DQを所定の基準電圧と比較し、比較結果を出力するシングルレシーバ回路を含む。I/O63は、データストローブ信号DQSを所定の基準電圧と比較し、比較結果を出力するシングルレシーバ回路を含む。
遅延回路(Delay)2は、I/O62の出力信号を遅延させて、遅延データ信号DQdを出力する。遅延回路(Delay)3は、I/O64の出力信号を遅延させて、遅延データストローブ信号DQSdを出力する。
RCLK生成器7は、コアクロックCORE_CLKを遅延させた複数個の異なる位相の遅延クロックRCLK2〜RCLK8を生成し、生成した複数個の遅延クロックRCLK2〜RCLK8およびコアクロックCORE_CLK(=RCLK1)を再同期候補クロックとする。RCLK生成器7は、再同期候補クロックRCLK1〜RCLK8の中で遅延データストローブ信号DQSdの位相よりも遅く、かつ遅延データストローブ信号DQSdの位相に最も近い位相を有するものを再同期クロックRCLKとして選択する。
キャプチャーレジスタ4は、遅延データストローブ信号DQSdによって、遅延データ信号DQdをラッチする。
データイネーブル制御器9は、キャプチャーレジスタ4におけるデータ信号DQのラッチを制御するデータイネーブル信号data_enを生成する。データイネーブル制御器9は、再同期クロックRCLKに基づいて、データイネーブル信号data_enをハイレベルに活性化する。
再同期レジスタ5は、再同期クロックRCLKによって、キャプチャーレジスタ4の出力データをラッチする。前段のキャプチャーレジスタ4までは、遅延データストローブ信号DQSdに同期した処理が行なわれていたのに対して、後段のレベリングレジスタ6からは、コアクロックCORE_CLKに同期した処理が行なわれる。キャプチャーレジスタ4からの出力データをコアクロックCORE_CLKに再同期させるために用いられる。
レベリングレジスタ6は、DDR−SDRAM106から読み出されたデータをDDR_PHY1から出力するタイミングを調整するために設けられる。
ロジック59は、CPU103から送られるDDR−SDRAM106からのデータの読出し指示に従って、DDR−SDRAM106からのデータの読出しを制御する。
コアクロックCORE_CLKの周期と、データストローブ信号DQSの周期は同一である。
図4は、RCLK生成器7の構成を表わす図である。
RCLK生成器7は、遅延部27と、判別部25と、セレクタ26と、OR回路58とを備える。
RCLK生成器7は、遅延部27と、判別部25と、セレクタ26と、OR回路58とを備える。
遅延部27は、コアクロックCORE_CLKが入力される複数段の遅延素子を有する。
判別部25は、コアクロックCORE_CLKおよび複数段の遅延素子の各々から出力されるクロックの中で、遅延データストローブ信号DQSdの位相よりも遅く、かつ遅延データストローブ信号DQSdの位相に最も近い位相を有する最適クロックを判別する。
セレクタ26は、判別結果に基づいて、コアクロックCORE_CLKおよび複数段の遅延素子の各々から出力されるクロックの中から1つのクロックを再同期クロックRCLKとして選択する。
遅延部27は、コアクロックCORE_CLKを受け、8個の再同期候補クロックRCLK1〜RCLK8を出力する。遅延部27は、7段の遅延回路DL1〜DL7を含む。遅延回路DLi(i=1〜7)は、入力された信号をコアクロックCORE_CLKの周期の45度の時間だけ遅延させる。
初段の遅延回路DL1の入力、すなわちコアクロックCORE_CLKが第1再同期候補クロックRCLK1として出力される。遅延回路DLi(i=1〜7)は、第i+1同期候補クロックRCLKiを出力する。
判別部25は、フリップフロップ31_1〜31_8と、エッジ検出器32と、フリップフロップ35_1〜35_8と、クロックゲート34_1〜34_8と、フリップフロップ33_1〜33_8と、OR回路58とを備える。
フリップフロップ31_i(i=1〜8)は、第i再同期候補クロックRCLKiに対応して設けられる。
フリップフロップ31_i(i=1〜8)のデータ入力端子には、第i再同期候補クロックRCLKiが入力される。フリップフロップ31_iのクロック端子には、遅延データストローブ信号DQSdが入力される。フリップフロップ31_iは、遅延データストローブ信号DQSdの立ち上りのタイミングで、第i再同期候補クロックRCLKiをラッチして、第i再同期候補クロックラッチ信号RCLKi_rを出力する。
図5は、エッジ検出器32の構成を表わす図である。
図5に示すように、エッジ検出器32は、論理回路38_1〜38_8を備える。
図5に示すように、エッジ検出器32は、論理回路38_1〜38_8を備える。
論理回路38_1は、第1再同期候補クロックラッチ信号RCLK1_rの反転クロックと、第8再同期候補クロックラッチ信号RCLK8_rとの論理積を第1再同期候補クロックプレ選択信号RCLK1_SEL_preとして出力する。
論理回路38_i(i=2〜8)は、第i再同期候補クロックラッチ信号RCLKi_rの反転クロックと、第i−1再同期候補クロックラッチ信号RCLKi−1との論理積をプ第i再同期候補クロックプレ選択信号RCLKi_SEL_preとして出力する。
エッジ検出器32によって、RCLKi−1_rがハイレベルで、RCLK_iがロウレベルの場合に、RCLK_i_SEL_preがハイレベルとなる。つまり、RCLK1_r→RCLK2_r→・・・→RCLK8_r→RCLK1_rのレベル変化において、ハイレベルからロウレベルに変化する箇所(エッジ)が検出される。これによって、遅延データストローブ信号DQSdの位相よりも遅く、かつ遅延データストローブ信号DQSdの位相と最も近い位相を有する最適クロックを選択することが可能となる。これによってにセットアップタイムとホールドタイムがどちらかに偏ってしまうのを防止できる。
フリップフロップ33_i(i=1〜8)のクロック端子には、第i再同期候補クロックRCLKiが入力される。フリップフロップ33_iのデータ入力端子には、キャリブレーションのイネーブルを指示するキャリブレーション信号cal_enが入力される。フリップフロップ31_iは、第iキャリブレーションラッチ信号cal_eniを出力する。
クロックゲート34_i(i=8)のイネーブル端子には、第iキャリブレーションラッチ信号cal_eniが入力される。クロックゲート34_iのクロック端子には、第1再同期候補クロックRCLKiが入力される。クロックゲート34_iは、第iキャリブレーションラッチ信号cal_eniがハイレベルのときに、入力される第1再同期候補クロックRCLKiを第iキャリブレーションゲートクロックcal_en_gckiとして出力する。
フリップフロップ35_i(i=1〜8)は、第i再同期候補クロックRCLKiに対応して設けられる。
フリップフロップ35_i(i=1〜8)のクロック端子には、第iキャリブレーションゲートクロックcal_en_gckiが入力される。フリップフロップ35_iのデータ入力端子には、第i再同期候補クロックプレ選択信号RCLKi_SEL_preが入力される。フリップフロップ35_iは、第i再同期候補クロック選択信号RCLKi_SELを出力する。フリップフロップ35_iは、対応する第i再同期候補クロックRCLKLiが最適クロックの場合にハイレベル(第1のレベル)をラッチし、対応する第i再同期候補クロックRCLKLiが最適クロックでない場合にロウレベル(第2のレベル)をラッチする。
セレクタは、フリップフロップ35_1〜35_8の出力を受けて、ハイレベルを出力するフリップフロップに対応する再同期候補クロックを再同期クロックRCLKとして選択する。
図6は、セレクタ26の構成を表わす図である。
図6に示すように、セレクタ26は、AND回路36_1〜36_8と、OR回路37とを備える。
図6に示すように、セレクタ26は、AND回路36_1〜36_8と、OR回路37とを備える。
AND回路36_i(i=1〜8)は、第i再同期候補クロックRCLKiと、第i再同期候補クロック選択信号RCLKi_SELとの論理積を出力する。
OR回路37は、AND回路36_1〜AND回路36_8の出力の論理積を再同期クロックRCLKとして出力する。
再び、図4を参照して、OR回路58は、第7再同期候補クロック選択信号RCLK7_SELと、第8再同期候補クロック選択信号RCLK8_SELの論理和を再同期選択信号resync_selとして出力する。つまり、第7再同期候補クロックRCLK7または第8再同期候補クロックRCLK8が再同期クロックRCLKとして選択される場合には、再同期選択信号resync_selがハイレベルとなり、その他の再同期候補クロックが再同期クロックRCLKとして選択される場合には、再同期選択信号resync_selがロウレベルとなる。第7再同期候補クロックRCLK7および第8再同期候補クロックRCLK8は、コアクロックCORE_CLKの位相よりも早く、かつコアクロックCORE_CLKの位相との差が小さい位相を有する所定のクロックである。
図7は、再同期候補クロックRCLKi、再同期候補クロックラッチ信号RCLKi_r、および再同期候補クロックプレ選択信号RCLKi_SEL_preのタイミング図である。
図7に示すように、RCLK生成器7は、8個の再同期候補クロックRCLK1〜RCLK8を出力する。
フリップフロップ31_1〜31_3,31_8は、遅延データストローブ信号DQSdの立ち上りエッジで、ハイレベルの再同期候補クロックRCK1〜RCLK3,RCLK8をラッチして、ハイレベルの再同期候補クロックラッチ信号RCLK1_r〜RCLK3_r,RCLK8_rを出力する。フリップフロップ31_4〜31_7は、遅延データストローブ信号DQSdの立ち上りエッジで、ロウレベルの再同期候補クロックRCK4〜RCLK7ラッチして、ロウレベルの再同期候補クロックラッチ信号RCLK4_r〜RCLK7_rを出力する。
第3再同期候補クロックラッチ信号RCLK3_rがハイレベルで、第4再同期候補クロックラッチ信号RCLK4_rがロウレベルであるから、エッジ検出器32によって、第4再同期候補クロックプレ選択信号RCLK4_SEL_preがハイレベルとなる。
図8は、キャリブレーション信号cal_en、キャリブレーションラッチ信号cal_en1〜cal_en8、キャリブレーションゲートクロックcal_en_gck1〜cal_en_gck8、再同期候補クロックRCLK1〜RCLK8、再同期候補クロック選択信号RCLK1_SEL〜RCLK8_SELのタイミング図である。
フリップフロップ33_iは、RCLKiの立ち上りエッジで、ハイレベルまたはロウレベルのキャリブレーション信号cal_enをラッチして、ハイレベルまたはロウレベルの第iキャリブレーションラッチ信号cal_eniを出力する。
クロックゲート34_iは、第iキャリブレーションラッチ信号cal_eniがハイレベルのときに、第i再同期候補クロックRCLKiを第iキャリブレーションゲートクロックcal_en_gckiとして出力する。
キャリブレーション時(cal_enがハイレベル)には、遅延データストローブ信号DQSdの位相も変化するため、第i再同期候補クロックラッチ信号RCLKi_rおよび第i再同期候補クロックプレ選択信号RCLKi_SEL_preも変化する。
第iキャリブレーションゲートクロックcal_en_gckiの最初の立ち上りのタイミングで、第i再同期候補クロック選択信号RCLKi_SELが更新される。
これによって、キャリブレーション信号cal_enがロウレベルに設定された後、再同期候補クロックRCLKが最初に立ち上るときに、再同期クロックRCLKが更新される。
ここで、第i再同期候補クロック選択信号RCLKi_SELが変更される時に再同期クロックRCLKにグリッジが乗る可能性があるが、この更新動作は初期化シーケンスのみで実行するため、通常のリード動作に影響しない。
図9は、データイネーブル制御器9およびキャプチャーレジスタ4の構成を表わす図である。
図9に示すように、データイネーブル制御器9は、インバータ40と、セレクタ41と、インバータ42と、フリップフロップ43とを備える。
インバータ40は、遅延データストローブ信号DQSdを受けて、遅延データストローブ信号DQSdの反転信号をセレクタ41へ送る。セレクタ41は、遅延データストローブ信号DQSdの反転信号と、再同期クロックRCLKとを受ける。セレクタ41は、データイネーブル信号data_enがハイレベルのときには、遅延データストローブ信号DQSdの反転信号を出力し、データイネーブル信号data_enがロウレベルのときには、再同期クロックRCLKを出力する。
インバータ42は、データイネーブル信号data_enを受けて、データイネーブル信号data_enの反転信号を出力する。
フリップフロップ43のクロック端子には、セレクタ41の出力、すなわち、遅延データストローブ信号DQSdの反転信号または再同期クロックRCLKが入力される。フリップフロップ43のデータ入力端子には、インバータ42の出力、すなわち、データイネーブル信号data_enの反転信号が入力される。フリップフロップ43は、データイネーブル信号data_enを出力する。
データイネーブル信号data_enがロウレベルのときには、再同期クロックRCLKの立ち上がりのタイミングで、データイネーブル信号data_enがハイレベルに活性化される。 データイネーブル信号data_enがハイベルのときには、遅延データストローブ信号DQSdの立ち下がりのタイミングで、データイネーブル信号data_enがロウレベルに活性化される。
キャプチャーレジスタ4は、クロックゲート44と、インバータ45と、フリップフロップ10〜12とを備える。
クロックゲート44のイネーブル端子には、データイネーブル信号data_enが入力される。クロックゲート44のクロック端子には、遅延データストローブ信号DQSdが入力される。クロックゲート44は、データイネーブル信号data_enがハイレベルのときに、入力される遅延データストローブ信号DQSdをインバータ45へ出力する。
インバータ45は、クロックゲート44の出力信号である遅延データストローブ信号DQSdを受けて、遅延データストローブ信号DQSdの反転信号を出力する。
フリップフロップ10のクロック端子には、遅延データストローブ信号DQSdが入力される。フリップフロップ10のデータ入力端子には、遅延データ信号DQdが入力される。フリップフロップ10の出力が、フリップフロップ11に送られる。
フリップフロップ11のクロック端子には、インバータ45の出力信号が入力される。フリップフロップ11のデータ入力端子には、フリップフロップ10の出力信号が入力される。フリップフロップ11は、ライズキャプチャ信号DQcpt_rを出力する。
フリップフロップ11のクロック端子には、インバータ45の出力信号が入力される。フリップフロップ11のデータ入力端子には、遅延データ信号DQdが入力される。フリップフロップ11は、フォールキャプチャ信号DQcpt_fを出力する。
図10は、再同期クロックRCLK、遅延データストローブ信号DQSd、遅延データ信号DQd、ライズキャプチャ信号DQcpt_r、およびフォールキャプチャ信号DQcpt_fのタイミング図である。
フリップフロップ43の出力であるデータイネーブル信号data_enがハイレベルのときには、セレクタ41がインバータ40の出力をフリップフロップ43のクロック端子へ出力するので、遅延データストローブ信号DQSdの立下りのタイミングで、データイネーブル信号data_enが立ち下がる。
一方、フリップフロップ43の出力であるデータイネーブル信号data_enがロウレベルのときには、セレクタ41が再同期クロックRCLKをフリップフロップ43のクロック端子へ出力するので、再同期クロックRCLKの立上がりのタイミングで、データイネーブル信号data_enが立ち上がる。
フリップフロップ10は、遅延データストローブ信号DQSdの立ち上りのタイミングで、遅延データ信号DQdをラッチする。また、データイネーブル信号data_enがハイレベルで遅延データストローブ信号DQSdが立ち下がるタイミングでフリップフロップ11は、フリップフロップ10の出力をラッチし、フリップフロップ12は、遅延データ信号DQdをラッチする。
したがって、フリップフロップ11の出力であるライズキャプチャ信号DQcpt_rは、データイネーブル信号data_enがハイレベルで遅延データストローブ信号DQSdが立ち下がるタイミングで、遅延データ信号d1、d3、d5、d7・・・を伝送する。また、フリップフロップ12の出力であるフォールキャプチャ信号DQcpt_fは、データイネーブル信号data_enがハイレベルで遅延データストローブ信号DQSdが立ち上がるタイミングで、遅延データ信号d2、d4、d6、d8・・・を伝送する。
データイネーブル信号data_enは、再同期クロックRCLKに基づいて活性化され、データストローブ信号DQSによって活性化されない。これにより、データストローブ信号DQSがポストアンブル後に不定値となって、データイネーブル信号data_enが誤って活性化されるのを防止することができる。
図11は、再同期レジスタ5およびレベリングレジスタ6の構成を表わす図である。
図11に示すように、再同期レジスタ5は、フリップフロップ13〜16と、セレクタ17,18とを備える。
図11に示すように、再同期レジスタ5は、フリップフロップ13〜16と、セレクタ17,18とを備える。
フリップフロップ13のクロック端子には、再同期クロックRCLKが入力される。フリップフロップ13のデータ入力端子には、ライズキャプチャ信号DQcpt_rが入力される。フリップフロップ13の出力信号raが、フリップフロップ14とセレクタ17に送られる。
フリップフロップ15のクロック端子には、再同期クロックRCLKが入力される。フリップフロップ15のデータ入力端子には、フォールキャプチャ信号DQcpt_fが入力される。フリップフロップ15の出力信号faが、フリップフロップ16とセレクタ18に送られる。
フリップフロップ14のクロック端子には、再同期クロックRCLKが入力される。フリップフロップ14のデータ入力端子には、フリップフロップ13の出力信号raが入力される。フリップフロップ14の出力信号rbが、セレクタ17に送られる。
フリップフロップ16のクロック端子には、再同期クロックRCLKが入力される。フリップフロップ16のデータ入力端子には、フリップフロップ15の出力信号faが入力される。フリップフロップ16の出力信号fbが、セレクタ18に送られる。
セレクタ17は、1段目のフリップフロップ13の出力信号raと、2段目のフリップフロップ14の出力信号rbとを受ける。セレクタ17は、再同期選択信号resync_selがハイレベルのときには、信号rbをライズ再同期信号DQrsc_rとして出力する。セレクタ17は、再同期選択信号resync_selがロウレベルのときには、信号raをライズ再同期信号DQrsc_rとして出力する。つまり、コアクロックCORE_CLKの位相よりも早く、かつコアクロックCORE_CLKの位相との差が小さい位相を有する第7再同期候補クロックRCLK7または第8再同期候補クロックRCLK8が再同期クロックRCLKとして選択された場合には、2段目のフリップフロップ14の出力信号rbが出力される。これは、信号raを後段のレベリングレジスタ6に出力した場合には、後段のレベリングレジスタ6においてセットアップ時間を確保することができない場合もあるため、信号raを反周期分遅らせた信号rbを後段のレベリングレジスタ6に出力するようにしたものである。その他の再同期候補クロックRCLK1〜RCLK〜RCLK6が再同期クロックRCLKとして選択された場合には、1段目のフリップフロップ13の出力信号raが出力される。
セレクタ18は、1段目のフリップフロップ15の出力信号faと、2段目のフリップフロップ16の出力信号fbとを受ける。セレクタ18は、再同期選択信号resync_selがハイレベルのときには、信号fbをフォール再同期信号DQrsc_fとして出力する。セレクタ17は、再同期選択信号resync_selがロウレベルのときには、信号faをフォール再同期信号DQrsc_fとして出力する。つまり、コアクロックCORE_CLKの位相よりも早く、かつコアクロックCORE_CLKの位相との差が小さい位相を有する第7再同期候補クロックRCLK7または第8再同期候補クロックRCLK8が再同期クロックRCLKとして選択された場合には、2段目のフリップフロップ16の出力信号fbが出力される。これは、信号faを後段のレベリングレジスタ6に出力した場合には、後段のレベリングレジスタ6においてセットアップ時間を確保することができない場合もあるため、信号faを反周期分遅らせた信号fbを後段のレベリングレジスタ6に出力するようにしたものである。その他の再同期候補クロックRCLK1〜RCLK〜RCLK6が再同期クロックRCLKとして選択された場合には、1段目のフリップフロップ15の出力信号faが出力される。
図11に示すように、レベリングレジスタ6は、フリップフロップ19〜23と、セレクタ21,24とを備える。
フリップフロップ19のクロック端子には、コアクロックCORE_CLKが入力される。フリップフロップ19のデータ入力端子には、ライズ再同期信号DQrsc_rが入力される。フリップフロップ19の出力信号rcが、フリップフロップ20とセレクタ21に送られる。
フリップフロップ22のクロック端子には、コアクロックCORE_CLKが入力される。フリップフロップ22のデータ入力端子には、フォール再同期信号DQrsc_fが入力される。フリップフロップ22の出力信号fcが、フリップフロップ23とセレクタ24に送られる。
フリップフロップ20のクロック端子には、コアクロックCORE_CLKが入力される。フリップフロップ20のデータ入力端子には、フリップフロップ19の出力信号rcが入力される。フリップフロップ20の出力信号rdが、セレクタ21に送られる。
フリップフロップ23のクロック端子には、コアクロックCORE_CLKが入力される。フリップフロップ23のデータ入力端子には、フリップフロップ22の出力信号fcが入力される。フリップフロップ23の出力信号fdが、セレクタ24に送られる。
セレクタ21は、1段目のフリップフロップ19の出力信号rcと、2段目のフリップフロップ20の出力信号rdとを受ける。セレクタ21は、レベル検出器8からの信号がハイレベルのときには、信号rdをライズレベリング信号DQlvl_rとして出力する。セレクタ21は、レベル検出器8からの信号がロウレベルのときには、信号rcをライズレベリング信号DQlvl_rとして出力する。
セレクタ24は、1段目のフリップフロップ22の出力信号fcと、2段目のフリップフロップ23の出力信号fdとを受ける。セレクタ24は、レベル検出器8からの信号がハイレベルのときには、信号fdをフォールレベリング信号DQlvl_fとして出力する。セレクタ24は、レベル検出器8からの信号がロウレベルのときには、信号fcをフォールレベリング信号DQlvl_fとして出力する。
レベル検出器8は、レベリングレジスタ6から出力されるライズレベリング信号DQlvl_rおよびフォールレベリング信号DQlvl_fのレベルを検出し、検出結果に基づいて、セレクタ21,24での選択を制御する。
図12は、再同期選択信号resync_selがロウレベルの場合のライズキャプチャ信号DQcpt_r、再同期クロックRCLK、ライズ再同期信号DQrsc_r,コアクロックCORE_CLK,信号rcのタイミング図である。
フリップフロップ13は、再同期クロックRCLKの立ち上りで、data0を伝送するライズキャプチャ信号DQcpt_rをラッチする。
第1再同期候補クロックRCLK1〜第6再同期クロックRCLK6が再同期クロックRCLKとして選択される場合には、再同期選択信号resync_selがロウレベルとなる。再同期選択信号resync_selがロウレベルの場合には、セレクタ17は、フリップフロップ13の出力信号raを選択して、ライズ再同期信号DQrsc_rとして出力する。その後、フリップフロップ19は、コアクロックCORE_CLKの次の立ち上りで、data0を伝送するライズ再同期信号DQrsc_rをラッチして、信号rcを出力する。
セレクタ17がフリップフロップ13の出力信号raを選択したのは、第1再同期候補クロックRCLK1〜第6再同期クロックRCLK6の位相はコアクロックCORE_CLKの位相よりも遅いか、または第1再同期候補クロックRCLK1〜第6再同期クロックRCLK6の位相がコアクロックCORE_CLKの位相よりも早いが、コアクロックCORE_CLKの位相との差が大きいためである。このような場合には、フリップフロップ19は、コアクロックCORE_CLKの次の立ち上りで、フリップフロップ13の出力信号raを正しくラッチすることできる。
図13は、再同期選択信号resync_selがハイレベルの場合のライズキャプチャ信号DQcpt_r、再同期クロックRCLK、ライズ再同期信号DQrsc_r,コアクロックCORE_CLK,信号rcのタイミング図である。
フリップフロップ13は、再同期クロックRCLKの立ち上りで、data0を伝送するライズキャプチャ信号DQcpt_rをラッチする。フリップフロップ14は、再同期クロックRCLKの次の立ち下がりで、data0を伝送するライズキャプチャ信号DQcpt_rをラッチする。
第7再同期候補クロックRCLK7または第8再同期候補クロックRCLK8が再同期クロックRCLKとして選択される場合には、再同期選択信号resync_selがハイレベルとなる。再同期選択信号resync_selがハイレベルの場合には、セレクタ17は、フリップフロップ14の出力信号rbを選択して、ライズ再同期信号DQrsc_rとして出力する。その後、フリップフロップ19は、コアクロックCORE_CLKの次の立ち上りで、data0を伝送するライズ再同期信号DQrsc_rをラッチして、信号rcを出力する。
第7再同期候補クロックRCLK7および第8再同期候補クロックRCLK8は、コアクロックCORE_CLKの位相よりも早く、かつコアクロックCORE_CLKの位相との差が小さい位相を有するクロックである。したがって、図12のように、フリップフロップ13の出力信号raをレベリングレジスタ6へ出力した場合には、フリップフロップ19は、コアクロックCORE_CLKの次の立ち上りで、フリップフロップ13の出力信号raをラッチすることができない場合があるため、セレクタ17は、フリップフロップ14の出力信号rbを選択する。
図14は、DDR_PHY1のキャリブレーションの手順を表わすフローチャートである。
ここでは、データストローブ信号DQSi(i=1〜N)、データ信号DQij(i=1〜N、j=1〜M)がDDR_PHY1に入力されるとする。1個のデータストローブ信号DQSiは、M個のデータ信号DQij(j=1〜M)に対応し、M個のデータ信号DQij(j=1〜M)は、データストローブ信号DQSiでラッチされるものとする。
データストローブ信号DQSiごとに、RCLK生成器7が設けられる。したがって、RCLK生成器7は、N個設けられる。ロジック59は、すべてのデータストローブ信号DQSiおよびデータ信号DQSijに対して共通に設けられる。
ステップS300において、ロジック59は、遅延回路2の遅延量および遅延回路3の遅延量を初期値に設定する。初期値として、たとえば、遅延回路2および遅延回路3の最大遅延量の1/2に設定する。
ステップS301において、DDRメモリコントローラ101およびロジック59は、DDR−SDRAM106の初期化を実行する。
ステップS302において、DDRメモリコントローラ101およびロジック59は、オール“0”とオール“1”をDDR−SDRAM106の同一バンク、同一行の異なるカラムへ事前に書き込む。具体的には、オール“0”をバンク0、行0、カラム0に書込み、オール“1”をバンク0、行0、カラム8に書き込む。ここで事前に書きまれたデータは、後のキャリブレーションで使用される。
ステップS303において、変数iが1に設定される。
ステップS304において、DDRメモリコントローラ101およびロジック59は、遅延データストローブ信号DQSdiを受けるRCLK生成器7から出力される再同期クロックRCLKを初期化する。まず、DDRメモリコントローラ101は、リードコマンドを連続して発行し、DDR−SDRAM106からDDR_PHY1へ遅延データストローブ信号DQSdiが連続して出力される状態とする。RCLK生成器7では、連続して入力される遅延データストローブ信号DQSdiに基づいて、再同期候補クロックRCLK1〜RCLK8の中から1つを再同期クロックRCLKとして選択する。ロジック59は、リードコマンドが連続して発行されてから十分時間が経過した後に、キャリブレーション信号cal_enをハイレベルに活性化する。RCLK生成器7は、キャリブレーション信号cal_enが活性化されている間に、選択する再同期クロックRCLKを更新する。
ステップS304において、DDRメモリコントローラ101およびロジック59は、遅延データストローブ信号DQSdiを受けるRCLK生成器7から出力される再同期クロックRCLKを初期化する。まず、DDRメモリコントローラ101は、リードコマンドを連続して発行し、DDR−SDRAM106からDDR_PHY1へ遅延データストローブ信号DQSdiが連続して出力される状態とする。RCLK生成器7では、連続して入力される遅延データストローブ信号DQSdiに基づいて、再同期候補クロックRCLK1〜RCLK8の中から1つを再同期クロックRCLKとして選択する。ロジック59は、リードコマンドが連続して発行されてから十分時間が経過した後に、キャリブレーション信号cal_enをハイレベルに活性化する。RCLK生成器7は、キャリブレーション信号cal_enが活性化されている間に、選択する再同期クロックRCLKを更新する。
ステップS305において、レベル検出器8は、データストローブ信号DQSiに対応するM個のレベリングレジスタ6から出力されるライズレベリング信号DQlvl_rおよびフォールレベリング信号DQlvl_fのレベルを判定し、判定結果に基づいて、レベリングレジスタ6内のセレクタ21,24の選択を制御する。
ステップS306において、DDRメモリコントローラ101およびロジック59は、M個のデータ信号DQij(j=1〜M)とデータストローブ信号DQSiのキャリブレーションを実行する。M個のデータ信号DQij(j=1〜M)を受けるM個の遅延回路2と、データストローブ信号DQijを受ける遅延回路3を最適に設定する。
ステップS307において、i=Nの場合は処理が終了し、i=Nでない場合には、ステップS308に進む。
ステップS308において、iがインクリメントされて、処理がステップS304に戻る。
ステップS305の処理は、データ信号DQij(j=1〜M)を伝送する配線長が互いに異なっていても、データ信号DQijのDDR_PHY1からの出力タイミングが互いに揃うようにするために行なわれる。
図15は、図14のステップS305の処理である、DQSiに対応するM個のレベリングレジスタ6内のセレクタ21,24の選択を制御する手順を表わすフローチャートである。
ステップS201において、ロジック59は、M個のレベリングレジスタ6におけるセレクタ21をフリップフロップ19の出力信号rcを出力するように設定し、セレクタ24をフリップフロップ22の出力信号fcを出力するように設定する。
ステップS202において、DDRメモリコントローラ101およびロジック59は、オール“0”を記憶している(バンク0、行0、列0)をアドレスとして指定したRead0#0コマンドと、オール“1”を記憶している(バンク0、行0、列8)をアドレスとして指定したRead0#1コマンドとを図17に示すように、交互に連続して発行する。
ステップS203において、ロジック59内のレベル検出器8は、2回目のRead#1コマンドを発行してから定められた読出しレイテンシの時間だけ経過したタイミングで、データ信号DQijに対応するレベリングレジスタ6から出力されるライズレベリング信号DQlvl_rおよびフォールレベリング信号DQlvl_fのレベルを検出する。
ステップS204において、変数jが1に設定される。
ステップS205において、図17の(A)に示すように、ライズレベリング信号DQlvl_rがハイレベルで、かつフォールレベリング信号DQlvl_fがハイレベルのときには、オール“1”が正しく読み出されているので、処理がステップS206に進む。図17の(B)に示すように、ライズレベリング信号DQlvl_rがロウレベルで、かつフォールレベリング信号DQlvl_fがハイレベルのときには、オール“1”が正しく読み出されていないので、処理がステップS207に進む。なお、ライズレベリング信号DQlvl_rがハイレベルで、かつフォールレベリング信号DQlvl_fがロウレベルとなる場合や、ライズレベリング信号DQlvl_rがロウレベルで、かつフォールレベリング信号DQlvl_fがロウレベルとなる場合は、論理的にはあり得るかもしれないが、実際上は起こらない。
ステップS205において、図17の(A)に示すように、ライズレベリング信号DQlvl_rがハイレベルで、かつフォールレベリング信号DQlvl_fがハイレベルのときには、オール“1”が正しく読み出されているので、処理がステップS206に進む。図17の(B)に示すように、ライズレベリング信号DQlvl_rがロウレベルで、かつフォールレベリング信号DQlvl_fがハイレベルのときには、オール“1”が正しく読み出されていないので、処理がステップS207に進む。なお、ライズレベリング信号DQlvl_rがハイレベルで、かつフォールレベリング信号DQlvl_fがロウレベルとなる場合や、ライズレベリング信号DQlvl_rがロウレベルで、かつフォールレベリング信号DQlvl_fがロウレベルとなる場合は、論理的にはあり得るかもしれないが、実際上は起こらない。
ステップS206において、ロジック59は、セレクタ21の設定およびセレクタ24の設定を維持させる。その結果、セレクタ21が、フリップフロップ19の出力信号rcの出力を維持し、セレクタ24がフリップフロップ22の出力信号fcの出力を維持する。
ステップS207において、ロジック59は、セレクタ21の設定を維持させ、セレクタ24をフリップフロップ23の出力信号fdを出力するように設定する。
ステップS208において、変数jがMの場合には、処理が終了し、変数jがMでない場合には、処理がステップS209に進む。
ステップS209において、変数jがインクリメントされて、処理がステップS205に戻る。
図16は、図14のステップS306の処理であるデータ信号DQij(j=1〜M)とデータストローブ信号DQSiのキャリブレーションの手順を表わすフローチャートである。
ステップS402において、DDRメモリコントローラ101およびロジック59は、オール“0”を記憶している(バンク0、行0、列0)をアドレスとして指定したRead0#0コマンドと、オール“1”を記憶している(バンク0、行0、列8)をアドレスとして指定したRead0#1コマンドとを図17に示すように、交互に連続して発行する。
ステップS403において、ロジック59内のレベル検出器8は、2回目のRead#1コマンドを発行してから予め定められた読出しレイテンシの時間だけ経過したタイミングで、データ信号DQijに対応するレベリングレジスタ6から出力されるライズレベリング信号DQlvl_rおよびフォールレベリング信号DQlvl_fのレベルを検出する。
ステップS404において、変数jが1に設定される。
ステップS405において、前回のライズレベリング信号DQlvl_rがロウレベルで、かつフォールレベリング信号DQlvl_fがハイレベルであり、今回のライズレベリング信号DQlvl_rがハイレベルで、かつフォールレベリング信号DQlvl_fがハイレベルのときには、処理がステップS409に進む。この場合には、図17の(A)に示すように、読出しレイテンシのタイミングでライズレベリング信号DQlvl_rおよびフォールレベリング信号DQlvl_fが立ち上るので、データ信号DQijの遅延量は適切に設定されているので、データ信号DQijの遅延量の設定は行われない。
ステップS405において、前回のライズレベリング信号DQlvl_rがロウレベルで、かつフォールレベリング信号DQlvl_fがハイレベルであり、今回のライズレベリング信号DQlvl_rがハイレベルで、かつフォールレベリング信号DQlvl_fがハイレベルのときには、処理がステップS409に進む。この場合には、図17の(A)に示すように、読出しレイテンシのタイミングでライズレベリング信号DQlvl_rおよびフォールレベリング信号DQlvl_fが立ち上るので、データ信号DQijの遅延量は適切に設定されているので、データ信号DQijの遅延量の設定は行われない。
また、前回のライズレベリング信号DQlvl_rがハイレベルで、かつフォールレベリング信号DQlvl_fがハイレベルであり、今回のライズレベリング信号DQlvl_rがロウレベルで、かつフォールレベリング信号DQlvl_fがハイレベルのときにも、処理がステップS409に進む。この場合には、図17の(A)に示すように、読出しレイテンシのタイミングが、ライズレベリング信号DQlvl_rおよびフォールレベリング信号DQlvl_fの立ち上りのタイミングから微小量(つまり、ステップS408またはS409での1回の増減量Δd)だけずれているが、Δdは微小量であり無視しても問題がないので、データ信号DQijの遅延量の設定は行われない。
また、前回のライズレベリング信号DQlvl_rのレベルおよびフォールレベリング信号DQlvl_fのレベルの組み合わせと、今回のライズレベリング信号DQlvl_rのレベルおよびフォールレベリング信号DQlvl_fのレベルの組み合わせとの関係が、上位以外の場合には、処理がステップS406に進む。この場合には、データ信号DQijの遅延量が適切に設定されていないので、データ信号DQijの遅延量の設定が行われる。
ステップS406において、今回のライズレベリング信号DQlvl_rがハイレベルで、かつフォールレベリング信号DQlvl_fがハイレベルのときには、処理がステップS407に進み、それ以外のときには、処理がステップS408に進む。
ステップS407において、ロジック59は、データ信号DQijを受ける遅延回路2の遅延量をΔdだけ増加させ、処理がステップS409に進む。
ステップS408において、ロジック59は、データ信号DQijを受ける遅延回路2の遅延量をΔdだけ減少させ、処理がステップS409に進む。
ステップS409において、変数jがMの場合には、処理がステップS411に進み、変数jがMでない場合には、処理がステップS410に進む。
ステップS410において、変数jがインクリメントされて、処理がステップS405に戻る。
ステップS411において、ロジック59は、データストローブ信号DQSiを受ける遅延回路3の遅延量を調整する。遅延量は、図18および図19に示すように、セットアップマージンおよびホールドマージンを確保するため、現在の遅延量、すなわち初期設定値(遅延回路3の最大遅延量の1/2)にtQHmin/2を加算した値とする。ここで、tQHminは、遅延データストローブ信号DQSdiの立ち上りから、M個の遅延データ信号DQdij(j=1〜M)のうち最もタイミングの早いデータ信号DQdijの先頭のデータが保持される時間であり、予め仕様によって定められる。
図18および図19において、tDQSQは、遅延データストローブ信号DQSdiの立ち上りから、M個の遅延データ信号DQdij(j=1〜M)のうち最もタイミングの遅いデータ信号DQdijの先頭のデータが開始するまでの時間である。tDQSQの最大値であるtDQSQmaxは、予め仕様によって定められる。
図18のように、DQdのキャリブレーション終了後がtDQSQ=0の場合でも、図19のように、DQdのキャリブレーション終了後がtDQSQ=tDQSQmaxの場合でも、セットアップマージンおよびホールドマージンとしてtQHmin/2が確保される。
(変形例)
本発明は、上記の実施形態に限定されるものではない。
本発明は、上記の実施形態に限定されるものではない。
第2の実施形態では、データイネーブル制御器9には、RCLK生成器7で生成された再同期クロックRCLKが入力されて、再同期クロックRCLKの立ち上りのタイミングでデータイネーブル信号data_enをハイレベルに活性化することによって、データストローブ信号DQSのポストアンブル後の不定状態(Hi−Z)がキャプチャーレジスタ4に取り込まれるのを防止した。しかしながら、データイネーブル制御器9は、再同期クロックRCLK以外のキャプチャ制御信号によって、データイネーブル信号data_enのハイレベルへの活性化を制御することとしてもよい。ただし、このキャプチャ制御信号の周期は、データストローブ信号DQSの周期と等しい。また、キャプチャ制御信号の位相は、遅延データストローブ信号DQSdでの位相よりも遅い。データイネーブル制御器は、キャプチャ制御用信号の立ち上りに基づいて、データイネーブル信号data_enをハイレベルに活性化し、遅延データストローブ信号DQSdの立下りに基づいて、データイネーブル信号data_enをロウレベルに非活性化することとしてもよい。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
1 DDR_PHY、4 キャプチャーレジスタ、5 再同期レジスタ、6 レベリングレジスタ、7 RCLK生成器、8 レベル検出器、9 データイネーブル制御器、10〜16,19,20,22,23,31_1〜31_8,33_1〜33_8,35_1〜35_8,43 フリップフロップ、17,18,21,24,26,41 セレクタ、25 判別部、27 遅延部、36_1〜36_8 AND回路、37,58 OR回路、38_1〜38_8 論理回路、40,42,45 インバータ、34_1〜34_8,44 クロックゲート、59 ロジック、2,3,DL1〜DL7 遅延回路、61 DQパッド、63 DQSパッド、62,64 I/O、70 プリント基板、101 DDRメモリコントローラ、102 システムバス、103 CPU、104 コアクロック生成器、105 LSI、401,410 半導体装置、402 第1のレジスタ、403 第2のレジスタ、404 クロック生成器。
Claims (10)
- データストローブ信号によってデータ信号をラッチする第1のレジスタと、
再同期クロックを生成するクロック生成回路と、
前記再同期クロックによって前記第1のレジスタの出力データをラッチする第2のレジスタとを備え、
前記クロック生成回路は、CPUの動作クロックであるコアクロックを遅延させた複数個の異なる位相の遅延クロックを生成し、生成した複数個の遅延クロックおよび前記コアクロックの中で前記データストローブ信号の位相よりも遅く、かつ前記データストローブ信号の位相に最も近い位相を有するものを再同期クロックとして選択する、半導体装置。 - 前記半導体装置は、
前記第1のレジスタにおける前記データ信号のラッチを制御するイネーブル信号を生成するイネーブル制御器を備え、
前記イネーブル制御器は、前記再同期クロックに基づいて、前記イネーブル信号を活性化する、請求項1記載の半導体装置。 - 前記第1のレジスタは、
前記データストローブ信号によって前記データ信号をラッチする第1のフリップフロップと、
前記データストローブ信号の反転信号によって、前記第1のフリップフロップの出力をラッチする第2のフリップフロップと、
前記データストローブ信号の反転信号によって、前記データ信号をラッチする第3のフリップフロップと、
前記第2のフリップフロップおよび前記第3のフリップフロップへの前記データストローブ信号の反転信号の供給を制御するクロックゲートとを備え、前記クロックゲートは、前記イネーブル信号によって制御され、
前記イネーブル制御器は、前記再同期クロックの立ち上がりに基づいて、前記イネーブル信号を活性化し、前記データストローブ信号の立下りに基づいて、前記イネーブル信号を非活性化する、請求項2記載の半導体装置。 - 前記第2のレジスタは、
前記第1のレジスタの出力データを前記再同期クロックでラッチする第1のフリップフロップと、
前記第1のフリップフロップの出力データを前記再同期クロックの反転クロックでラッチする第2のフリップフロップと、
前記選択された再同期クロックが、前記コアクロックの位相よりも早く、かつ前記コアクロックの位相との差が小さい位相を有する所定のクロックの場合には、前記第2のフリップフロップの出力データを前記コアクロックで動作するコアクロックドメインへ転送し、
前記選択された再同期クロックが、前記所定のクロックでない場合には、前記第1のフリップフロップの出力データを前記コアクロックドメインへ転送する、請求項1記載の半導体装置。 - 前記クロック生成回路は、
前記コアクロックが入力される複数段の遅延素子と、
前記コアクロックおよび複数段の遅延素子の各々から出力されるクロックの中で、前記データストローブ信号の位相よりも遅く、かつ前記データストローブ信号の位相に最も近い位相を有する最適クロックを判別する判別部と、
前記判別の結果に基づいて、前記コアクロックおよび複数段の遅延素子の各々から出力されるクロックの中から1つのクロックを前記再同期クロックとして選択するセレクタとを含む、請求項1記載の半導体装置。 - 前記判別部は、
前記コアクロックおよび複数段の遅延素子の各々から出力されるクロックに対応して複数個のフリップフロップを含み、
前記フリップフロップは、対応するクロックが前記最適クロックの場合に、第1のレベルをラッチし、対応するクロックが前記最適クロックでない場合に第2のレベルをラッチし、
前記セレクタは、前記複数個のフリップフロップの出力を受けて、前記第1のレベルを出力するフリップフロップに対応するクロックを前記再同期クロックとして選択する、請求項5記載の半導体装置。 - 前記フリップフロップは、キャリブレーションのイネーブルを指示する信号に基づいて、前記第1のレベルまたは前記第2のレベルをラッチする、請求項6記載の半導体装置。
- メモリから出力されたデータ信号を遅延させるための第1の遅延素子と、
前記メモリから出力されたデータストローブ信号を遅延させるための第2の遅延素子とを備え、
第1の値が記憶されているメモリをアドレスとした第1のリードコマンドと、第2の値が記憶されているメモリをアドレスとした第2のリードコマンドとを交互に出力し、前記第1のリードコマンドまたは前記第2のリードコマンドを発行してからリードレイテンシ経過後の時点で前記第2のレジスタから出力されるデータに基づいて、前記第1の遅延素子の遅延量を調整するロジックを備える、請求項1記載の半導体装置。 - 前記ロジックは、前記第1の遅延素子の遅延量の調整が終了後、前記第2の遅延素子の遅延量を調整する、請求項8記載の半導体装置。
- データストローブ信号によってデータ信号をラッチする第1のレジスタと、
前記第1のレジスタにおける前記データ信号のラッチを制御するイネーブル信号を生成するイネーブル制御器を備え、
前記第1のレジスタは、
前記データストローブ信号によって前記データ信号をラッチする第1のフリップフロップと、
前記データストローブ信号の反転信号によって、前記第1のフリップフロップの出力をラッチする第2のフリップフロップと、
前記データストローブ信号の反転信号によって、前記データ信号をラッチする第3のフリップフロップと、
前記第2のフリップフロップおよび前記第3のフリップフロップへの前記データストローブ信号の反転信号の供給を制御するクロックゲートとを備え、前記クロックゲートは、前記イネーブル信号によって制御され、
前記イネーブル制御器は、前記データストローブ信号の周期と同じ周期を有し、かつ前記データストローブ信号の位相よりも遅い位相を有するキャプチャ制御信号の立ち上りに基づいて、前記イネーブル信号を活性化し、前記データストローブ信号の立下りに基づいて、前記イネーブル信号を非活性化する、半導体装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013242954A JP2015103262A (ja) | 2013-11-25 | 2013-11-25 | 半導体装置 |
US14/541,589 US20150146477A1 (en) | 2013-11-25 | 2014-11-14 | Semiconductor device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013242954A JP2015103262A (ja) | 2013-11-25 | 2013-11-25 | 半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015103262A true JP2015103262A (ja) | 2015-06-04 |
Family
ID=53182560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013242954A Pending JP2015103262A (ja) | 2013-11-25 | 2013-11-25 | 半導体装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20150146477A1 (ja) |
JP (1) | JP2015103262A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI601155B (zh) * | 2016-06-08 | 2017-10-01 | 群聯電子股份有限公司 | 記憶體的介面、控制電路單元、儲存裝置及時脈產生方法 |
US10103718B1 (en) * | 2017-04-05 | 2018-10-16 | Xilinx, Inc. | Recalibration of source synchronous systems |
US10418125B1 (en) * | 2018-07-19 | 2019-09-17 | Marvell Semiconductor | Write and read common leveling for 4-bit wide DRAMs |
CN111429826B (zh) * | 2020-04-15 | 2023-06-20 | 京东方科技集团股份有限公司 | 一种同步电路及其同步方法、显示装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590008B1 (en) * | 2006-11-06 | 2009-09-15 | Altera Corporation | PVT compensated auto-calibration scheme for DDR3 |
US9431091B2 (en) * | 2008-06-06 | 2016-08-30 | Uniquify, Inc. | Multiple gating modes and half-frequency dynamic calibration for DDR memory controllers |
US8661285B2 (en) * | 2008-06-06 | 2014-02-25 | Uniquify, Incorporated | Dynamically calibrated DDR memory controller |
-
2013
- 2013-11-25 JP JP2013242954A patent/JP2015103262A/ja active Pending
-
2014
- 2014-11-14 US US14/541,589 patent/US20150146477A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20150146477A1 (en) | 2015-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100822001B1 (ko) | 반도체기억장치 및 반도체기억회로의 동작방법 | |
KR102401526B1 (ko) | 입력 클록 신호와 다상 클록 신호 간의 위상 관계를 결정하기 위한 장치 및 방법 | |
US7027336B2 (en) | Semiconductor memory device for controlling output timing of data depending on frequency variation | |
JP3183321B2 (ja) | 半導体記憶装置 | |
US7542371B2 (en) | Memory controller and memory system | |
US8643416B2 (en) | Semiconductor device including a delay locked loop circuit | |
JP6060637B2 (ja) | 並直列変換回路、インタフェース回路、及び制御装置 | |
JP2010250859A (ja) | 同期メモリの読出しデータ収集 | |
KR20200083641A (ko) | 반도체 메모리를 위한 메모리 명령을 포함하는 장치 및 방법 | |
US8406080B2 (en) | Data output control circuit of a double data rate (DDR) synchronous semiconductor memory device responsive to a delay locked loop (DLL) clock and method thereof | |
US20110128794A1 (en) | Apparatus and method for controlling operation timing in semiconductor memory device | |
US8514639B2 (en) | Semiconductor memory device and method for operating the same | |
JP2013069360A (ja) | 半導体装置及びデータ処理システム | |
US7733129B2 (en) | Method and circuit for generating memory clock signal | |
JP5633297B2 (ja) | 受信回路、システム装置及び半導体記憶装置 | |
JP2015103262A (ja) | 半導体装置 | |
JP2007226308A (ja) | インタフェース回路及びそのインタフェース回路を備えた記憶制御装置 | |
US7791963B2 (en) | Semiconductor memory device and operation method thereof | |
JP2002358782A (ja) | 半導体記憶装置 | |
JP4099470B2 (ja) | メモリコントローラ | |
JP5113433B2 (ja) | メモリコントローラ | |
KR101092995B1 (ko) | 반도체 메모리 장치와 그의 구동 방법 | |
KR20140136203A (ko) | 반도체 집적회로 | |
US10777243B2 (en) | Semiconductor device and semiconductor system including the semiconductor device for aligning an internal data strobe signal using an offset code | |
JP2008257776A (ja) | 半導体記憶装置及びその制御方法 |