タイミング制御回路、タイミング制御方法、及びシステム
【課題】タイミングマージンの減少を抑制すること。
【解決手段】システム装置21に形成された制御回路36は、可変容量35の容量値を制御し、トレーニング回路45にタイミングトレーニングを実行させる。トレーニング回路45は、メモリ12がデータDQに基づく正常なデータを書き込むことができる設定値の最大値と最小値を出力する。制御回路36は、その最大値及び最小値に基づいてデータDQのウインドウ幅を算出し、より大きなウインドウ幅に対応する容量値を可変容量35に設定する。
【解決手段】システム装置21に形成された制御回路36は、可変容量35の容量値を制御し、トレーニング回路45にタイミングトレーニングを実行させる。トレーニング回路45は、メモリ12がデータDQに基づく正常なデータを書き込むことができる設定値の最大値と最小値を出力する。制御回路36は、その最大値及び最小値に基づいてデータDQのウインドウ幅を算出し、より大きなウインドウ幅に対応する容量値を可変容量35に設定する。
【発明の詳細な説明】
【技術分野】
【0001】
タイミング制御回路、タイミング制御方法、及びシステムに関する。
【背景技術】
【0002】
従来、システムは、システム装置(例えば、SoC:System on Chip)と、システム装置によりアクセスされるメモリを備えている。システム装置とメモリは、基板(例えば、プリント配線基板(PCB:Printed Circuit Board))に搭載され、基板に形成された配線を介して互いに接続されている。システム装置やメモリ等の半導体装置は、パッケージにチップ(又はダイ)が収容されている。チップは、パッケージの導体(リードフレーム、インターポーザに形成された配線、等)を介して基板の配線と接続される。
【0003】
メモリは、は、例えばSDRAM(Synchronous Dynamic Random Access Memory)である。SDRAMは、クロック信号に同期してデータを入出力する。クロック信号の立ち上がりと立ち下がりの双方のタイミングでデータを入出力するダブルデータレート方式のSDRAMは、DDR−SDRAM(Double Data Rate SDRAM)、DDR2−SDRAMやDDR3−SDRAMと呼ばれ、システムの動作速度の高速化に対応する。
【0004】
システム装置は、DDR−SDRAM(メモリ)からデータを読み出す場合、DDR−SDRAMにリードコマンドを供給する。DDR−SDRAMは、リードコマンドに応答して、データストローブ信号DQS(クロック信号)と、そのデータストローブ信号DQSに同期したデータDQを出力する。システム装置に備えられた受信回路は、データストローブ信号DQSのタイミングを調整し、調整後のデータストローブ信号に基づいてデータDQを取り込む。
【0005】
システム装置に備えられた回路は、電源配線を介して供給される電源電圧により動作する。電源電圧は、バスの同時切替えやデバイスの起動などの回路の動作により変動し、電源電圧の変動によりノイズ(電源ノイズ)が発生する。このため、システム装置のパッケージ(PKG:Package)や配線基板(PCB:Printed Circuit Board)に含まれる2つの電源配線(高電位側電圧を供給する配線と低電位側電圧を供給するための配線)間には、電源電圧の変動を抑制する容量(デカップリング容量)が接続される(例えば、特許文献1,特許文献2参照)。この容量の値(容量値)は、システム装置の設計において、電源配線等の電源供給経路のインピーダンスを小さくするように決定され、電源ノイズシミュレーションに電源ノイズ量が検証される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−085321号公報
【特許文献2】特開2006−173369号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、システム装置の形状、例えば、配線基板やパッケージの形状は、上記の電源ノイズシミュレーション後に、例えばユーザの仕様変更によって、変更されることがある。この場合、電源ノイズの低減に必要な電源配線間の容量の値が、設計値と異なってしまうので、想定していない周波数で共振する。
【0008】
このように発生する共振は、上記のデータストローブ信号DQSやデータDQのエッジ(遷移タイミング)に影響する、つまり、遷移タイミングを変更することがある。例えば、データDQのエッジが進み、データストローブ信号DQSのエッジが遅れると、データストローブ信号DQSに対してデータDQが有効な期間(データ有効ウインドウ)が実効的に狭くなる。すると、データストローブ信号DQSに対するデータDQのタイミングマージンが小さくなり、データDQを正しく取り込めなくなる場合がある。
【課題を解決するための手段】
【0009】
本発明の一観点によれば、 第1電源線と第2電源線との間に接続され、第1信号を出力する第1の出力回路と、第1電源線と第2電源線との間に接続され、第2信号を出力する第2の出力回路と、第1電源線と第2電源線との間に接続された可変容量と、前記第1信号と前記第2信号との位相差を調整する遅延回路と、前記可変容量の容量値を制御し、前記遅延回路により調整される前記第1信号及び前記第2信号における複数の位相差毎に前記第1信号に基づくデータがメモリに書き込めるか否かを判定して前記第1信号のウインドウ幅を計測し、より大きいウインドウ幅に対応する容量値を前記可変容量に設定する制御回路と、を有する。
【発明の効果】
【0010】
本発明の一観点によれば、タイミングマージンの減少を抑制することができる。
【図面の簡単な説明】
【0011】
【図1】システムの概略構成図である。
【図2】システムの概略ブロック図である。
【図3】システムの要部回路を示すブロック図である。
【図4】トレーニング回路の説明図である。
【図5】トレーニング回路の説明図である。
【図6】可変容量のブロック図である。
【図7】(a)(b)は、可変容量の説明図である。
【図8】I/O回路の回路図である。
【図9】トレーニング制御回路のブロック図である。
【図10】タイミングマージン判定回路のブロック図である。
【図11】タイミングトレーニングの結果の説明図である。
【図12】調整処理のフローチャートである。
【図13】トレーニング処理のフローチャートである。
【図14】タイミングマージン判定処理のフローチャートである。
【図15】テストアクセス処理のフローチャートである。
【図16】各種設定の制御の説明図である。
【図17】(a)(b)は、各種設定の制御の説明図である。
【発明を実施するための形態】
【0012】
以下、一実施形態を添付図面に従って説明する。
図1に示すように、システムの基板(例えば、プリント配線板PCB:Printed Circuit Board)10には、複数の半導体装置11〜13が搭載されている。各半導体装置11〜13は、基板10に形成された配線(図示略)を介して互いに接続されている。例えば、半導体装置11は図2に示すシステム装置であり、半導体装置12は図2に示すメモリである。また、基板10には、デカップリング容量14が搭載され、このデカップリング容量14は、各半導体装置11〜13に供給する電源電圧の変動を低減する。なお、図1には、1つのデカップリング容量14を示しているが、システムの構成に応じて、複数のデカップリング容量、又は複数のデカップリング容量を含む1つ又は複数のモジュールが、基板10に搭載されている。このようなデカップリング容量14の容量値は、基板10の設計時に、電源供給経路のインピーダンスが小さくなるように設定され、基板10上に配置されている。
【0013】
半導体装置11のパッケージ20には、システム装置21が搭載されている。システム装置21は、半導体チップ(ダイ)である。また、半導体装置11のパッケージ20には、システム装置21に供給する電源電圧の変動を低減するためのデカップリング容量22が搭載されている。このデカップリング容量22は、システム装置21に形成された調整回路によって容量値を変更可能に構成された可変容量素子である。半導体装置12,13のパッケージには、チップ12a,13aがそれぞれ内包されている。
【0014】
図2に示すように、システム装置21には、コア回路31、メモリコントローラ32、インタフェース回路(I/F回路と表記)33、入出力回路(I/O回路と表記)34が形成されている。メモリ12は、同期式の半導体記憶装置、例えばダブルレート方式のダイナミックランダムアクセスメモリ(DDR−SDRAM:Double Data Rate Synchronous Dynamic Random Access Memory)である。
【0015】
コア回路31は、実行する処理に応じて、メモリ12のデータを読み込むためのリード要求と、そのデータが格納されたアドレスとをメモリコントローラ32に出力する。また、コア回路31は、メモリ12にデータを書き込むためのライト要求と、そのデータを格納するアドレスとをメモリコントローラ32に出力する。なお、コア回路31は、例えば中央処理装置(Central Processing Unit:CPU)である。
【0016】
メモリコントローラ32は、当該メモリコントローラ32の内部クロック信号を、インタフェース回路33を介して入出力回路34に供給する。入出力回路34は、内部クロック信号に応じて生成した相補のクロック信号CK,XCKを、メモリ12に供給する。
【0017】
また、メモリコントローラ32は、コア回路31からの要求に応じて、インタフェース回路33を介してメモリ12をアクセスする。
コア回路31からの要求がリード要求の場合には、メモリコントローラ32は、インタフェース回路33と入出力回路34を介してリードコマンド及びアドレスをメモリ12に供給する。すると、メモリ12は、リードコマンドに応答し、該当アドレスから読み出したデータDQと、そのデータDQに同期したデータストローブ信号DQSとを出力する。このとき、メモリ12は、相補のクロック信号CK,XCKに同期してデータDQをバースト出力する、すなわちメモリコントローラ32の内部クロック信号の2倍の周波数でデータDQをバースト出力する。
【0018】
コア回路31からの要求がライト要求の場合には、メモリコントローラ32は、インタフェース回路33と入出力回路34を介してライトコマンド、データDQ、データストローブ信号DQS、及びデータDQを書き込むアドレスをメモリ12に供給する。入出力回路34は、インタフェース回路33から供給されるデータストローブ信号DQSに応じて生成した相補のデータストローブ信号DQS,XDQSをメモリ12に供給する。メモリ12は、該当するアドレスにデータDQを記憶する。
【0019】
メモリ12とインタフェース回路33との間では、データストローブ信号DQSによりデータDQの授受が行われる。すなわち、インタフェース回路33は、リード動作時に、メモリ12から入出力回路34を介して受け取るデータストローブ信号DQSのタイミングを調整し、タイミング調整されたデータストローブ信号DQSに同期してデータDQを取り込み、その取り込んだデータDQをメモリコントローラ32に出力する。また、インタフェース回路33は、ライト動作時に、メモリコントローラ32から受け取ったデータDQ及びデータストローブ信号DQSを、入出力回路34を介してメモリ12に出力する。
【0020】
図3に示すように、システム装置21には、例えばパッケージ20外の電源供給モジュール(VRM)13から、高電位電圧VDD及び低電位電圧VSSが供給される。高電位電圧VDD及び低電位電圧VSSは、システム装置21の動作電圧の一例である。高電位電圧VDD及び低電位電圧VSSは、基板(PCB)10に形成された電源線10a,10bと、パッケージ20に形成された電源線20a,20bを介してシステム装置21に供給される。
【0021】
電源線10a,10bは、電源供給モジュール13からパッケージ20までの間の電源供給経路を形成する導電体であり、基板10に形成された配線パターン等を含む。電源線10a,10b間には、図1に示すデカップリング容量14が接続されている。電源線20a,20bは、パッケージ20内において電源供給経路を形成する導電体、例えばパッケージ20に形成された配線パターン等を含む。電源線20a,20b間には、可変容量22が接続されている。
【0022】
システム装置21(ダイ)には、高電位電圧VDDを伝達する第1の電源線21aと、低電位電圧VSSを伝達する第2の電源線21bとが形成されている。これらの電源線21a,21bは、ダイの所定層に形成された銅等の配線パターンである。
【0023】
第1の電源線21aと第2の電源線21bとの間には、第1のI/O回路34aと第2のI/O回路34bが接続されている。第1のI/O回路34aは、第1の電源線21aを介して供給される高電位電圧VDDと、第2の電源線21bを介して供給される低電位電圧VSSとを駆動電圧として動作し、I/F回路33から出力される信号に基づいてデータストローブ信号DQSを出力する。信号DQSは、パッケージ20の配線20cと、基板10の配線10cを介してメモリ12に供給される。メモリ12から出力されるデータストローブ信号DQSは、配線10c,20cを介してI/O回路34aに供給される。
【0024】
同様に、第2のI/O回路34bは、第1の電源線21aを介して供給される高電位電圧VDDと、第2の電源線21bを介して供給される低電位電圧VSSとを駆動電圧として動作し、I/F回路33から出力される信号に基づいてデータDQを出力する。データDQは、パッケージ20の配線20dと、基板10の配線10dを介してメモリ12に供給される。メモリ12から出力されるデータDQは、配線20d、10dを介してI/O回路34bに供給される。
【0025】
また、第1の電源線21aと第2の電源線21bとの間には、可変容量35が接続されている。この可変容量35は、パッケージ20に設けられた可変容量22と同様に、システム装置21に形成された調整回路によって容量値を変更可能に構成された可変容量素子である。可変容量35は、I/O回路34a,34bの動作に基づく電源電圧の変動を低減する。
【0026】
I/F回路33は、データストローブ(DQS)信号生成回路41と、遅延同期ループ回路(DLL(Delay Locked Loop )回路)42とを備えている。DQS信号生成回路41は、内部クロック信号に基づいて、例えば内部クロック信号の2倍の周波数のパルス信号を出力する。DLL回路42は、DQS信号生成回路41の出力信号を遅延した信号を出力する。DLL回路42は、遅延回路の一例である。
【0027】
また、I/F回路33は、DQ信号生成回路43と、DQ信号生成回路43の出力信号を遅延する遅延同期ループ回路(DLL回路)44とを備えている。DQ信号生成回路43は、図2に示すコア回路31がメモリ12に書き込むデータに応じた信号を出力する。例えば、DQ信号生成回路43は、コア回路31から出力される複数ビットのパラレルデータを、内部クロック信号の2倍の周波数のパルス信号に同期してシリアル出力する。DLL回路44は、DQ信号生成回路43の出力信号を遅延した信号を出力する。DLL回路44は、遅延回路の一例である。
【0028】
DLL回路42,44は、データストローブ信号DQSとデータDQとの間の位相差を調整するために設けられている。DQS信号生成回路41とDQ信号生成回路43は、内部クロック信号に同期してそれぞれ信号を出力する。DQS信号生成回路41の出力信号に基づいてデータストローブ信号DQS,XDQSがメモリ12に対して出力され、DQ信号生成回路43の出力信号に基づいてデータDQがメモリ12に対して出力される。メモリ12は例えばDDR3−SDRAMであり、データストローブ信号DQS,XDQSのエッジのタイミングで、データDQを取り込む。従って、システム装置21は、データDQとデータストローブ信号DQSとの間の位相差を所定値(90度)ずらして出力する。このため、DLL回路42,44は、DQS信号生成回路41の出力信号に応答(遅延)して出力する信号と、DQ信号生成回路43の出力信号に応答(遅延)して出力する信号との間の位相差を所定値(90度)とするように、それぞれ設定される。
【0029】
また、I/F回路33は、データストローブ信号DQSとデータDQのタイミングを調整するトレーニング回路45を備えている。トレーニング回路45は、I/F回路33から出力されるデータストローブ信号DQS及びデータDQがメモリ12に到達するタイミングを調整するタイミングトレーニング機能を提供する。
【0030】
トレーニング回路45によるタイミング制御を説明する。
図4に示すように、システム装置21の遅延回路37は、内部クロック信号を予め定めた時間遅延して出力する。I/O回路(ドライバ回路)34cは、遅延回路37の出力信号に基づいて、相補のクロック信号CK,XCKを出力する。DLL回路42は、図3に示すDQS信号生成回路41から出力される信号を遅延して出力する。I/O回路(ドライバ回路)34aは、DLL回路42の出力信号に基づいて、データストローブ信号DQSと、そのデータストローブ信号DQSと相補な反転データストローブ信号XDQSを出力する。I/O回路34aは、第1の出力回路の一例である。DLL回路42は、図3に示すDQ信号生成回路43から出力される信号を遅延して出力する。I/O回路(ドライバ回路)34bは、DLL回路42の出力信号に基づいて、データ信号DQを出力する。I/O回路34bは、第2の出力回路の一例である。
【0031】
システム装置21から出力される各種の信号は、システム装置21とメモリ12との間の信号伝達経路に応じた時間経過後にメモリ12に到達する。システム装置21の出力時刻からメモリ12に信号が到達するまでの期間は、各種の信号における配線遅延であり、配線経路により異なる場合がある。
【0032】
図4に示すシステム装置21とメモリ12との間の各種信号のタイミングを図5に示す。なお、図5の上段は、システム装置21における出力タイミングを示し、図5の下段はメモリ12における入力タイミングを示す。
【0033】
例えば、I/O回路34cから出力されるクロック信号CK,XCKは、図5に示すように、配線遅延による遅延時間DL1経過後のメモリ12に入力される。同様に、図4に示すI/O回路34aから出力されるデータストローブ信号DQS,XDQSは、その出力時刻から遅延時間DL2経過後にメモリ12に入力される。また、図4に示すI/O回路34bから出力されるデータDQは、その出力時刻から遅延時間DL3経過後にメモリ12に入力される。
【0034】
メモリ12は、上記したように、DDR−SDRAMである。このようなメモリ12は、クロック信号CK,XCKに同期して各種制御信号(コマンド)を取り込む。また、メモリ12は、データストローブ信号DQS,XDQSのエッジに同期してデータDQを取り込む。従って、図5の下段に示すように、クロック信号CK,XCKのタイミングと、データストローブ信号DQS,XDQSのタイミングとの差(タイミングのずれ)は、メモリ12の仕様(スペック)に応じた範囲に入っている必要がある。また、データストローブ信号DQS,XDQSのエッジのタイミングは、データDQの有効期間に対し、ホールド時間(Hold Time)とセットアップ時間(Setup Time)を満足するタイミングとなるように設定される必要がある。例えば、データストローブ信号DQS,XDQSのエッジのタイミングは、データDQの有効期間おいて、上記のホールド時間とセットアップ時間のそれぞれに対し、マージンがあるようなタイミング、例えば中央付近に来るように、調整される必要がある。なお、データDQの有効期間(データ有効ウィンドウ)は、ドライバ側のデータと等しいデータをレシーバ側でサンプリングできる期間のことである。
【0035】
トレーニング回路45は、出力信号のタイミングをずらしながら、テスト信号をメモリ12に出力する。そして、トレーニング回路45は、メモリ12から出力されるテスト信号の受信結果に基づいて、メモリ12が正しいデータを受信できるように、各信号の出力タイミング、即ち、データストローブ信号DQSとデータDQの位相差、つまりDLL回路42,44における遅延量を調整する。
【0036】
例えば、データストローブ信号DQS,XDQSの場合、信号伝達経路において、図5に示すように、遅延時間DL2が生じる。このため、トレーニング回路45は、クロック信号CK,XCKに対し、遅延時間DS1経過後にデータストローブ信号DQS,XDQSを出力するように、DLL回路42を調整する。同様に、トレーニング回路45は、クロック信号CK,XCKに対し、遅延時間DS2経過後がデータDQのデータ有効ウインドウの中央付近となるように、DLL回路44を調整する。
【0037】
図3に示すように、システム装置21は、上記の可変容量35の容量値を制御する制御回路36を備えている。また、制御回路36は、I/O回路34a,34bのスルーレート(Slew Rate )を制御する。この制御回路36は、パッケージ20に含まれる可変容量22の容量値を制御する機能を有している。
【0038】
制御回路36は、トレーニング制御回路51とタイミングマージン判定回路(TM判定回路と表記、以下、TM判定回路)52を備えている。
トレーニング制御回路51は、TM判定回路52に初期化信号を出力し、TM判定回路52は初期化信号に応答して設定値を保持するレジスタを初期化する。また、トレーニング制御回路51は、トレーニング回路45に開始信号を出力し、トレーニング回路45は開始信号に応答してメモリ12との間のタイミングトレーニングを実行し、DLL回路44に対する設定値の最大値及び最小値を得る。そして、トレーニング回路45は、タイミングトレーニングにより得た最大の設定値及び最小の設定値を、TM判定回路52に出力する。
【0039】
TM判定回路52は、最大の設定値と最小の設定値に基づいて、そのときのデータDQの有効ウインドウの大きさが最大か否かを判定し、有効ウインドウが最大となるときの設定値をレジスタに記憶する。そして、TM判定回路52レジスタに保持した設定値(最大値及び最小値)を、トレーニング制御回路51に出力する。
【0040】
トレーニング制御回路51は、TM判定回路52から出力される設定値に基づいて、可変容量35の容量値を制御するための制御信号SC1、I/O回路34a,34bのスルーレートを制御するための制御信号SC2、可変容量22の容量値を制御するための制御信号SC3を出力する。
【0041】
可変容量35の構成例を説明する。
図6に示すように、可変容量35は、複数(図において3個)の電源スイッチ61a〜61cを備えている。各電源スイッチ61a〜61cの第1端子は高電位電圧VDDが供給される電源線21aに接続されている。電源スイッチ61aの第2端子には、複数(図において4個)の容量セル62aの第1端子が接続され、各容量セル62aの第2端子は、低電位電圧VSSが供給される電源線21bに接続されている。同様に、電源スイッチ61bの第2端子には、複数(図において4個)の容量セル62bの第1端子が接続され、各容量セル62bの第2端子は、低電位電圧VSSが供給される電源線21bに接続されている。また、電源スイッチ61cの第2端子には、複数(図において4個)の容量セル62aの第1端子が接続され、各容量セル62cの第2端子は、低電位電圧VSSが供給される電源線21bに接続されている。なお、各電源スイッチ61a〜61cに接続される容量セル62a〜62cの数は、異なっていてもよい。
【0042】
電源スイッチ61a〜61cは、制御信号SC1に基づいて、互いに独立して動作する。例えば、制御信号SC1は、可変容量35に含まれる電源スイッチの数に応じた3ビットの信号(SC1a〜SC1c)である。電源スイッチ61a〜61cは、制御信号SC1a〜SC1cに応答してそれぞれオンオフする。従って、オンした電源スイッチに応じた数の容量セルが互いに並列接続されるとともに、2つの電源線21a,21b間に接続される。つまり、電源スイッチの数を変更することにより、2つの電源線21a,21b間の容量値を調整することができる。
【0043】
次に、可変容量22の構成例を説明する。
図7(a)に示すように、可変容量22の電源端子71aには高電位電圧VDDが供給され、電源端子71bには低電位電圧VSSが供給される。また、複数(図において3つ)の制御端子72a〜72cには制御信号SC3が供給される。例えば、制御信号SC3は、3ビットの信号である。制御信号SC3のビット数は、可変容量35に含まれる電源スイッチの数に対応する。各端子72a〜72cに供給される信号を、それぞれSC3a〜SC3cとする。に電源端子71aには電源線73aが接続され、電源端子71bには電源線73bが接続されている。電源線73aには複数(図において3個)の電源スイッチ74a〜74cの第1端子が接続されている。
【0044】
電源スイッチ74aの第2端子には、複数(図において4個)の容量セル75aの第1端子が接続され、各容量セル75aの第2端子は、低電位電圧VSSが供給される電源線73bに接続されている。同様に、電源スイッチ74bの第2端子には、複数(図において4個)の容量セル75bの第1端子が接続され、各容量セル75bの第2端子は、低電位電圧VSSが供給される電源線73bに接続されている。また、電源スイッチ74cの第2端子には、複数(図において4個)の容量セル75aの第1端子が接続され、各容量セル75cの第2端子は、低電位電圧VSSが供給される電源線73bに接続されている。なお、各電源スイッチ74a〜74cに接続される容量セル75a〜75cの数は、異なっていてもよい。
【0045】
複数の制御端子72a〜72cはバッファ回路76a〜76cの入力端子にそれぞれ接続されている。そして、各バッファ回路76a〜76cの出力信号は各電源スイッチ74a〜74cに供給される。従って、電源スイッチ74a〜74cは、制御信号SC3a〜SC3cに基づいて、互いに独立して動作する。電源スイッチ74a〜74cは、制御信号SC3a〜DC3cに応答してそれぞれオンオフする。従って、オンした電源スイッチに応じた数の容量セルが互いに並列接続されるとともに、2つの電源線73a,73b間に接続される。つまり、電源スイッチの数を変更することにより、2つの電源線73a,73b間の容量値を調整することができる。
【0046】
なお、可変容量22を、図7(b)に示すように、システム装置(ダイ)21に直接的に接続される構成としてもよい。このような構成は、システム装置21のパッケージサイズを縮小することが可能とする。
【0047】
次に、I/O回路34bの構成例を説明する。
図8に示すように、複数(図において4個)のNAND回路81a〜81dには、図3に示すDLL回路42から出力される信号Sinが供給される。また、この信号Sinは、複数のインバータ回路82a〜82dに供給される。各NAND回路81a〜81dには、制御信号SC2が供給される。なお、この例において、制御信号SC2は、I/O回路34aの構成に対応する4ビットの信号である。これらの信号をSC2a〜SC2dとする。各NAND回路81a〜81dには、制御信号SC2a〜SC2dがそれぞれ供給される。各インバータ回路82a〜82dの出力信号は、AND回路83a〜83dに供給される。各AND回路83a〜83dには、制御信号SC2a〜SC2dがそれぞれ供給される。
【0048】
NAND回路81a〜81dの出力信号はPチャネルMOSトランジスタ84a〜84dのゲートにそれぞれ供給される。同様に、AND回路83a〜83dの出力信号は、NチャネルMOSトランジスタ85a〜85dのゲートに供給される。
【0049】
各トランジスタ84a〜84dのソースは、高電位電圧VDDが供給される電源線21aに接続され、各トランジスタ84a〜84dのドレインは出力ノード86に接続されている。この出力ノード86は、各トランジスタ85a〜85dのドレインに接続され、各トランジスタ85a〜85dのソースは、低電位電圧VSSが供給される電源線21bに接続されている。
【0050】
上記のように構成されたI/O回路34bは、信号Sinに応じて、出力ノード86と電源線21aとの間のPチャネルMOSトランジスタと、出力ノード86と電源線21bとの間のNチャネルMOSトランジスタとが、相補的にオンオフする。そして、オンするトランジスタの数は、制御信号SC2に対応する。そして、PチャネルMOSトランジスタは、出力ノード86、つまり図3に示す配線20dの電位を、低電位電圧VSSレベルから高電位電圧VDDレベルまで上昇させる。この電位の上昇にかかる時間、即ちスルーレートは、高電位電圧VDDが供給される電源線21aから出力ノード86に向って流れる電流の量に対応する。つまり、オンするPチャネルMOSトランジスタの数が多いほど、電源線21aから出力ノード86に向って流れる電流量が多くなり、出力ノード86(配線20d)の電位が早く上昇する、すなわちスルーレートが高くなる。逆に、同時にオンするトランジスタの数が少ないほど、スルーレートが低くなる。
【0051】
スルーレートが高く設定されるほど、出力信号のレベルを短時間で変化する。つまり電流変化が急峻となるため、電源電圧に生じるノイズが大きくなる。このため、電源電圧に発生するノイズの観点では、スルーレートが小さく設定される方が好ましい。一方、スルーレートが小さく設定されたI/O回路から出力される信号は、高電位電圧VDDレベルと低電位電圧VSSレベルとの間でレベルが変化する期間即ち遷移期間が長くなり、その分、レベルが安定する期間即ち有効期間(有効ウインドウ)が短くなる。このため、信号を取り込むタイミングマージンの観点では、スルーレートが大きく設定される方が好ましい。従って、I/O回路において、電源電圧に生じるノイズが小さく、有効ウインドウが大きくなるように、スルーレートが設定されることが好ましい。
【0052】
次に、トレーニング制御回路51の構成例を説明する。
図9に示すように、トレーニング命令送信回路91は、システム装置21内の回路、例えばメモリコントローラ32から自動調整実行命令信号を受け取ると、先ず、各レジスタ92〜94とTM判定回路52に初期化信号SITを出力する。
【0053】
レジスタ92は、初期化信号SITに応答して、I/O回路34a,34bのスルーレートを調整するための初期値を記憶する。レジスタ92に記憶された初期値はI/O回路34a,34bに供給され、I/O回路34a,34bは、初期値に応じたスルーレートで動作するように設定される。レジスタ93は、初期化信号SITに応答して、システム装置21内の可変容量35の容量値を調整するための初期値を記憶する。レジスタ93に記憶された初期値は可変容量35に供給され、可変容量35は初期値に応じた容量値に設定される。レジスタ94は、初期化信号SITに応答して、パッケージ11内の可変容量22の容量値を調整するための初期値を記憶する。レジスタ94に記憶された初期値は可変容量22に供給され、可変容量22は初期値に応じた容量値に設定される。TM判定回路52は、初期化信号SITに応答して初期値を記憶する。
【0054】
次いで、トレーニング命令送信回路91は、出力制御回路95、容量制御回路96,97、トレーニング回路45に対し、それぞれ所定のタイミングで、処理実行信号を出力する。各制御回路95,96,97には、システム装置21内の回路、例えばメモリコントローラ32から、カウンタ終了設定信号が供給される。カウンタ終了設定信号は、各制御回路95〜97が、それぞれ処理を実行する回数を設定するための信号である。即ち、各制御回路95〜97は、カウント機能を有し、1回の処理を実行する毎に、カウント値をカウントアップする。そして、各制御回路95〜97は、それぞれカウント値がカウンタ終了設定信号と等しくなると、処理を終了する。
【0055】
出力制御回路95は、処理実行信号に応答して、設定値を変更した制御信号SC2をI/O回路34a,34bに出力し、I/O回路34a,34bのスルーレートを変更するために制御信号SC2を出力する。容量制御回路96は、処理実行信号に応答して、設定値を変更した制御信号SC1を可変容量35に出力し、可変容量35の容量値を変更する。容量制御回路97は、処理実行信号に応答して、設定値を変更した制御信号SC3を可変容量35に出力し、可変容量22の容量値を変更する。各制御回路95〜97は、設定値をレジスタ更新回路98に出力する。
【0056】
トレーニング回路45は、処理実行信号に応答して、図3に示すメモリ12に対するタイミングトレーニングを実行する。
トレーニング命令送信回路91は、各制御回路95〜97を動作させて、I/O回路34a、34bのスルーレートと、各可変容量35,22の容量値を順次変更する。更に、トレーニング命令送信回路91は、トレーニング回路45を動作させて、各設定におけるDLL回路44に設定した最大値及び最小値をトレーニング回路45が取得するように、各制御回路95〜97及びトレーニング回路45を制御する。
【0057】
トレーニング回路45は、取得した最大値及び最小値をTM判定回路52に出力する。
TM判定回路52は、トレーニング回路45から入力される最大値及び最小値に基づくタイミングマージンを判定し、その判定結果に応じて更新信号SUPをレジスタ更新回路98に出力する。詳しくは、TM判定回路52は、トレーニング回路45から供給される最大値及び最小値に基づいて、タイミングマージンを算出する。例えば、TM判定回路52は、最大値から最小値を減算してタイミングマージンを算出する。そして、TM判定回路52は、算出したタイミングマージンと保持値とを比較する。TM判定回路52は、算出したタイミングマージンが保持値よりも大きい場合、タイミングマージンと等しい値を保持し、更新信号SUPを出力する。一方、TM判定回路52は、算出したタイミングマージンが保持値以下の場合、更新信号SUPを出力しない。
【0058】
レジスタ更新回路98は、更新信号SUPに応答して、各レジスタ92〜94の値を更新する。即ち、レジスタ更新回路98は、更新信号SUPに応答して、各制御回路95〜97から出力される設定値を、対応するレジスタ92〜94に出力し、各レジスタ92〜94は、入力される設定値を、新たな設定値として保持する。この結果、各レジスタ92〜94には、タイミングマージンが最大となるときの各制御回路95〜97の設定値が保持される。
【0059】
次に、TM判定回路52の構成例を説明する。
図10に示すように、TM判定回路52は、設定保持レジスタ101と、結果保持レジスタ102と、比較回路103とを備えている。設定保持レジスタ101は、図3に示すDLL回路44に設定する設定値を記憶する。設定保持レジスタ101は、トレーニング制御回路51から供給される初期化信号SITに応答して記憶した値を初期化する。
【0060】
結果保持レジスタ102は、トレーニング回路45から供給される最大値及び最小値を記憶する。トレーニング回路45は、図3に示すメモリ12に対し、DLL回路44の設定値を変更する毎に、メモリ12に対してテストアクセスを行い、その結果を記憶する。例えば、トレーニング回路45は、メモリ12が正常にテストデータを受信したか否かを判断し、正常にテストデータを受信した場合には「1」を、正常にテストデータを受信できなかった場合には「0」を記憶する。データDQは、複数ビット(例えば8ビット)の信号である。トレーニング回路45は、この処理を、データDQの各ビット毎に行う。その結果に一例を図11に示す。なお、図11では、右側ほど、各DLL回路44の設定値を大きくした結果を示す。
【0061】
そして、トレーニング回路45は、メモリ12が全てのビットDQ[0]〜DQ[7]を正常に受信したときの設定値の最小値と最大値を求める。例えば、トレーニング回路45は、各ビットDQ[0]〜DQ[7]を論理積演算(AND)する。その演算結果において、トレーニング回路45は、結果が「1」となる設定値のうち、最小の設定値(最小値)と、最大の設定値(最大値)を求める。そして、トレーニング回路45は、これらの最大値及び最小値を結果保持レジスタ102に供給する。
【0062】
図10に示すように、設定保持レジスタ101は、保持した設定値(最小値(Min)、最大値(Max))を比較回路103に出力する。同様に、結果保持レジスタ102は、保持した結果値(最小値(Min)、最大値(Max))を比較回路103に出力する。
【0063】
比較回路103は、設定値の最大値から設定値の最小値を減算して設定値のウインドウ幅を算出する。同様に、比較回路103は、結果値の最大値から結果値の最小値を減算して結果値のウインドウ幅を算出する。そして、比較回路103は、設定値のウインドウ幅と結果値のウインドウ幅とを比較する。
【0064】
比較回路103は、結果値のウインドウ幅が設定値のウインドウ幅よりも大きい場合に、結果値の最大値及び最小値を設定保持レジスタ101に出力し、結果値のウインドウ幅が設定値のウインドウ幅以下の場合に結果値を出力しない。設定保持レジスタ101は、比較回路103から供給される値、即ち結果値の最大値及び最小値を記憶する。従って、設定保持レジスタには、ウインドウ幅が最大となるときの結果値の最大値及び最小値が記憶される。
【0065】
また、比較回路103は、結果値のウインドウ幅が設定値のウインドウ幅よりも大きい場合に、更新信号SUPを出力する。この更新信号SUPは、図9に示すレジスタ更新回路98に供給される。レジスタ更新回路98は、更新信号SUPに応答して、各制御回路95〜97から供給される設定値を各レジスタ92〜94にそれぞれ出力し、各レジスタ92〜94は供給される設定値を記憶する。従って、各レジスタ92〜94には、ウインドウ幅が最大となるときの設定値がそれぞれ記憶される。
【0066】
図3に示す制御回路36は、各設定値をそれぞれ対応する回路に設定し、調整処理を終了する。即ち、制御回路36は、レジスタ92に保持された設定値をI/O回路34a,34bに設定する。同様に、制御回路36は、レジスタ93,94に保持された設定値を可変容量35,22に設定する。また、制御回路36は、図10に示す設定保持レジスタ101に保持された最大値及び最小値に基づいて、図3に示すDLL回路44の遅延量を設定する。例えば、制御回路36は、最大値と最小値の中間値(=(最大値+最小値)/2)を算出し、この中間値を遅延値として各DLL回路44に設定する。
【0067】
次に、上記のシステムにおいて、制御回路36に係る処理の流れを説明する。
図12に示すように、先ず、図3に示すパッケージ(PKG)20の可変容量22の初期値を設定する(ステップ201)。次いで、システム装置(DIE)21の可変容量35の初期値を設定する(ステップ202)。次いで、I/O回路34a,34bの初期値を設定する(ステップ203)。
【0068】
次いで、図3に示すトレーニング回路45によりタイミングトレーニングを実行する(ステップ204)。
次いで、タイミングマージンを判定する(ステップ205)。そして、判定結果に基づき、DLL回路44の設定値が更新されたか否かを判断する(ステップ206)。設定値が更新された場合(判断:YES)、各設定値をレジスタに保持する(ステップ207)。一方、設定値が更新されていない場合(判断:NO)、次のステップ207をスキップする。
【0069】
次いで、I/O回路34a,34bに対して全ての出力設定を終了したか否かを判断する(ステップ208)。設定が終了していない場合(判断:NO)、I/O回路34a,34bに対する設定を変更し(ステップ209)、ステップ204に移行する。一方、設定を終了した場合(判断:YES)、ステップ210へ移行する。
【0070】
次いで、システム装置21(DIE)内の可変容量35に対して全ての容量設定を終了したか否かを判断する(ステップ210)。設定が終了していない場合(判断:NO)、可変容量35に対する設定を変更し(ステップ211)、ステップ204に移行する。一方、設定を終了した場合(判断:YES)、ステップ212へ移行する。
【0071】
次いで、パッケージ20内の可変容量22に対して全ての容量設定を終了したか否かを判断する(ステップ212)。設定が終了していない場合(判断:NO)、可変容量22に対する設定を変更し(ステップ213)、ステップ204に移行する。一方、設定を終了した場合(判断:YES)、ステップ214へ移行する。
【0072】
そして、レジスタに保持した各設定値を対応する回路にそれぞれ最終的に設定し(ステップ214)、処理を終了する。
次に、タイミングトレーニングの処理を説明する。
【0073】
図13に示すように、先ず、図3に示すDLL回路44に対する初期値を設定する(ステップ221)。次いで、図3に示すメモリ12に対してテストアクセスを行い(ステップ222)、メモリ12が正常にアクセスしたときのDLL回路44に設定した設定値を保持する(ステップ223)。
【0074】
次いで、DLL回路44に対する全ての設定値の設定を終了したか否かを判断する(ステップ224)。設定が終了していない場合(判断:NO)、DLL回路44に対する設定を変更し(ステップ225)、ステップ222に移行する。一方、設定を終了した場合(判断:YES)、ステップ226へ移行する。
【0075】
次いで、ステップ223において保持した設定値、つまりメモリ12が正常にアクセスしたときのDLL回路44に設定した設定値のうち、最大の設定値(最大値)と最小の設定値(最小値)をTM判定回路52に送信する(ステップ226)。
【0076】
次いで、最大値及び最小値に基づいて、例えば最大値と最小値の中間値をDLL回路44に設定し(ステップ227)処理を終了する。
次に、テストアクセス処理を説明する。
【0077】
図15に示すように、先ず、図3に示すメモリ12の全てのメモリセルに、初期値(例えば「0」)を書き込む(ステップ231)。このとき、確実に初期値を書き込むために、複数サイクルに亘って書き込みを行う。
【0078】
次いで、メモリ12に、初期値と異なる値の第1の期待値(例えば「1」)を書き込む(ステップ232)。このとき、最大スピード動作でのデータ書き込みをテストするために、1サイクル目で期待値を書き込む。次いで、第1の期待値を書き込んだアドレスからデータを読み出し(ステップ233)、読み込んだデータ(リードデータ)と期待値とを比較する(ステップ234)。リードデータと第1の期待値とが一致しない場合(判断:NO)、結果を格納する領域(例えばレジスタ)に正常にアクセスできなかった旨を示す値(例えば「0」)を格納し(ステップ235)、処理を終了する。一方、リードデータと第1の期待値とが一致する場合(判断:YES)、結果に正常にアクセスできた旨を示す値(例えば「1」)を格納する(ステップ236)。
【0079】
次いで、ステップ232と同様に、第1の期待値と異なる第2の期待値(例えば「0」)を、第1の期待値を書き込んだアドレスに書き込む(ステップ237)。次いで、第2の期待値を書き込んだアドレスからデータを読み出し(ステップ238)、読み込んだデータ(リードデータ)と期待値とを比較する(ステップ239)。リードデータと第1の期待値とが一致しない場合(判断:NO)、結果を格納する領域(例えばレジスタ)に正常にアクセスできなかった旨を示す値(例えば「0」)を格納し(ステップ240)、処理を終了する。一方、リードデータと第1の期待値とが一致する場合(判断:YES)、結果に正常にアクセスできた旨を示す値(例えば「1」)を格納し(ステップ241)、処理を終了する。
【0080】
したがって、メモリ12に対して、値が「1」のデータ書き込みと、値が「0」のデータ書き込みが正常に行われた場合、第1の結果値(例えば「1」)が結果として記憶される。一方、値が「1」のデータ書き込みと、値が「0」のデータ書き込みとのうちの少なくとも一方が正常に行われなかった場合、第1の結果値と異なる第2の結果値(例えば「0」)が結果として記憶される。
【0081】
次に、タイミングマージン判定処理を説明する。
図14に示すように、先ず、保持した設定値の最大値及び最小値により算出した設定値のウインドウ幅と、図3に示すメモリ12が正常にデータを受信した設定値の最小値及び最小値により算出した結果値のウインドウ幅とを比較し、結果値のウインドウ幅が設定値のウインドウ幅より大きいか否かを判断する(ステップ251)。結果値のウインドウ幅が設定値のウインドウ幅以下の場合(判断:NO)、処理を終了する。一方、結果値のウインドウ幅が設定値のウインドウ幅より大きい場合(判断:YES)、その結果値の最大値及び最小値により保持値を更新し(ステップ252)、処理を終了する。
【0082】
次に、各設定値の変更例を説明する。
今、図3に示すI/O回路34a,34bに対する設定値を「0」〜「2」とする。同様に、可変容量35,22に対する設定値を「0」〜「15」とする。
【0083】
図16に示すように、先ず、各設定要素(I/O回路34a,34b、可変容量35,22)に対する初期値を「0」,「0」,「0」とする。このとき、タイミングマージン判定により算出される結果値のウインドウ幅は「10」である。
【0084】
次いで、パッケージ20(PKG)の可変容量22の設定値を、「0」から「1」へと変更する。このとき、タイミングマージン判定により算出される結果値のウインドウ幅は「15」である。従って、このウインドウ幅「15」を記憶する。
【0085】
同様に、パッケージ20(PKG)の可変容量22の設定値を、「15」まで「1」づつ変更する。そして、それぞれの設定段階におけるタイミングマージンの判定結果を、保持値と比較し、保持値を更新する。
【0086】
可変容量22に対して最大の設定値「15」におけるタイミングマージンの判定を行うと、システム装置21(DIE)の可変容量35の設定値を「1」に変更し、パッケージ20(PKG)の可変容量22の設定値を、「0」から「15」まで「1」づつ変更する変更する。
【0087】
可変容量35に対して最大の設定値「15」におけるタイミングマージンの判定を行うと、I/O回路34a,34bに対する設定値を「0」から「1」に変更する。そして、上記と同様に、可変容量22と可変容量35に対する設定値を変更する。
【0088】
同様にして、各設定要素に対する設定値の全てを設定する。
図16に示すように、タイミングマージンの判定における結果値のウインドウ幅は、「40」が最大値となる。従って、図9に示すレジスタ92〜94には、このときの設定値「0」,「4」,「7」が保持される。このように、各設定値をそれぞれ「1」づつ変更することで、最適な設定値を確実に得ることができる。
【0089】
次に、別の各設定値の変更例を説明する。
図3に示すI/O回路34a,34bに対する設定値を「0」〜「2」とする。同様に、可変容量35,22に対する設定値を「0」〜「15」とする。
【0090】
先ず、図17(a)に示すように、可変容量35,22に対する設定値を、所定ステップ(例えば、4ステップ)毎に変更する。つまり、設定値を、「0」,「4」,「8」,「12」の順番で変更する。このように変更した場合、ウインドウ幅の最大値は「36」となる。この時の設定値は、「0」,「4」,「8」である。
【0091】
上記の第1の段階において得られた各設定値を含む範囲を設定し、その範囲内の設定値を各設定要素に設定する。
図17(a)に示す結果から、I/O回路34a,34bに対する設定値は「0」に確定される。そして、可変容量35に対する設定値を、「4」を中心とする範囲「1」〜「7」とする。同様に、可変容量22に対する設定値を、「8」を中心とする範囲「5」〜「11」とする。
【0092】
そして、図17(b)に示すように、可変容量35,22に対する設定値を、最小のステップ(「1」)で変更する。
このように、設定値を変更するステップを可変することで、タイミングトレーニングを実施する回数が、設定値を「1」づつ変更する場合と比べて少なくなり、調整処理に要する時間を短縮することができる。
【0093】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)メモリ12をアクセスするコア回路31が搭載されたチップ(ダイ)には、メモリ12に対するデータストローブ信号DQSを出力するI/O回路34aと、データDQを出力するI/O回路34bが形成されている。各I/O回路34a,34bは、高電位電圧VDDを供給する電源線21aと、低電位電圧VSSを供給する電源線21bとの間に接続されている。両電源線21a,21b間には、可変容量35が接続され、この可変容量35は、高電位電圧VDDと低電位電圧VSSの電圧変動を抑制する。
【0094】
各I/O回路34a,34bに信号を出力するI/F回路33は、データストローブ信号DQSとデータDQの位相差を調整するためのDLL回路42,44と、両DLL回路42,44の設定値(遅延時間)を制御してデータストローブ信号DQSとデータDQがメモリ12に到達するタイミングを調整するトレーニング回路45を有している。
【0095】
システム装置21に形成された制御回路36は、可変容量35の容量値を制御し、トレーニング回路45にタイミングトレーニングを実行させる。トレーニング回路45は、メモリ12がデータDQに基づく正常なデータを書き込むことができる設定値の最大値と最小値を出力する。制御回路36は、その最大値及び最小値に基づいてデータDQのウインドウ幅を算出し、より大きなウインドウ幅に対応する容量値を可変容量35に設定する。
【0096】
その結果、可変容量35により、データストローブ信号DQSを出力するI/O回路34aと、データDQを出力するI/O回路34bの動作により電源電圧に生じるノイズを低減するとともに、データDQのウインドウ幅を大きくすることができ、データストローブ信号DQSに基づいてデータDQを取り込むためのタイミングマージンの減少を抑制することができる。
【0097】
(2)制御回路36は、データストローブ信号DQSを出力するI/O回路34aと、データDQを出力するI/O回路34bの駆動能力を制御する。各I/O回路34a,34bの駆動能力は、各I/O回路34a,34bから出力される信号のスルーレートに対応する。スルーレートが大きいほど、電流変化が大きく、電源電圧に発生するノイズが大きくなる。従って、データDQのウインドウ幅が大きく、データDQのスルーレートを小さくすることで、電源電圧に生じるノイズを低減し、タイミングマージンの減少を抑制することができる。
【0098】
(3)システム装置21が搭載されたパッケージ20の電源線20a,20bの間には可変容量22が接続され、制御回路36は、システム装置21の可変容量35と同様に、パッケージ20の可変容量22の容量値を設定する。従って、パッケージ20の形状等が変更された場合にも、その変更に応じて可変容量22の容量値を設定するため、パッケージの変更に容易に対応することができる。また、パッケージの変更に対して、電源設計の再設計や電源シミュレーションの再実行を行う手間が少なくなるため、設計時間の短縮を図ることができる。
【0099】
尚、上記各実施形態は、以下の態様で実施してもよい。
・パッケージの可変容量22は省略されてもよい。
・パッケージの可変容量22に対する調整処理を省略してもよい。
【0100】
・図1には、3つの半導体装置11〜13を示しているが、2つ又は4つ以上の半導体装置が搭載されてもよい。また、図1には、1つのデカップリング容量14を示しているが、複数のデカップリング容量、又は複数のデカップリング容量を含む1つ又は複数のモジュールが搭載されてもよい。また、基板10には、抵抗やコネクタ等の他の部材が搭載されてもよい。
【0101】
・図1に示す半導体装置11〜13のパッケージは一例であり、パッケージの形状が変更されてもよい。例えば、半導体装置11において、パッケージ20と基板10の電気的な接続をボンディングワイヤを用いても良い。また、半導体装置13を例えばチップサイズパッケージ(CSP:Chip Size Package)としてもよい。
【0102】
・図3に示すDLL回路44に対し、タイミングトレーニングにより得た最大値及び最小値の中間値を設定するようにした。各DLL回路44に設定する値を、適宜変更してもよい。例えば、タイミングトレーニングにより得た最大値及び最小値と、既定値(例えば、セットアップ時間、ホールド時間)に基づいて設定してもよい。例えば、最小値にセットアップ時間を加算した値を設定値としてもよい。また、最大値からホールド時間を減算した値を設定値としてもよい。最小値にセットアップ時間を加算した値と、最大値からホールド時間を減算した値との中間値を設定値としてもよい。また、最小値と最大値との値の範囲(ウインドウ幅)を分割する比率を記憶し、その分割点の値を設定値としてもよい。
【0103】
・各回路の構成を適宜変更してもよい。例えば、図3に示すトレーニング回路45を、制御回路36に含める構成としてもよい。
【符号の説明】
【0104】
21a,21b 電源線
22 可変容量
34a,34b I/O回路(出力回路)
35 可変容量
36 制御回路
42,44 遅延同期ループ回路(DLL回路)
45 トレーニング回路
51 トレーニング制御回路
52 タイミングマージン判定回路
VDD 高電位電圧
VSS 低電位電圧
【技術分野】
【0001】
タイミング制御回路、タイミング制御方法、及びシステムに関する。
【背景技術】
【0002】
従来、システムは、システム装置(例えば、SoC:System on Chip)と、システム装置によりアクセスされるメモリを備えている。システム装置とメモリは、基板(例えば、プリント配線基板(PCB:Printed Circuit Board))に搭載され、基板に形成された配線を介して互いに接続されている。システム装置やメモリ等の半導体装置は、パッケージにチップ(又はダイ)が収容されている。チップは、パッケージの導体(リードフレーム、インターポーザに形成された配線、等)を介して基板の配線と接続される。
【0003】
メモリは、は、例えばSDRAM(Synchronous Dynamic Random Access Memory)である。SDRAMは、クロック信号に同期してデータを入出力する。クロック信号の立ち上がりと立ち下がりの双方のタイミングでデータを入出力するダブルデータレート方式のSDRAMは、DDR−SDRAM(Double Data Rate SDRAM)、DDR2−SDRAMやDDR3−SDRAMと呼ばれ、システムの動作速度の高速化に対応する。
【0004】
システム装置は、DDR−SDRAM(メモリ)からデータを読み出す場合、DDR−SDRAMにリードコマンドを供給する。DDR−SDRAMは、リードコマンドに応答して、データストローブ信号DQS(クロック信号)と、そのデータストローブ信号DQSに同期したデータDQを出力する。システム装置に備えられた受信回路は、データストローブ信号DQSのタイミングを調整し、調整後のデータストローブ信号に基づいてデータDQを取り込む。
【0005】
システム装置に備えられた回路は、電源配線を介して供給される電源電圧により動作する。電源電圧は、バスの同時切替えやデバイスの起動などの回路の動作により変動し、電源電圧の変動によりノイズ(電源ノイズ)が発生する。このため、システム装置のパッケージ(PKG:Package)や配線基板(PCB:Printed Circuit Board)に含まれる2つの電源配線(高電位側電圧を供給する配線と低電位側電圧を供給するための配線)間には、電源電圧の変動を抑制する容量(デカップリング容量)が接続される(例えば、特許文献1,特許文献2参照)。この容量の値(容量値)は、システム装置の設計において、電源配線等の電源供給経路のインピーダンスを小さくするように決定され、電源ノイズシミュレーションに電源ノイズ量が検証される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−085321号公報
【特許文献2】特開2006−173369号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、システム装置の形状、例えば、配線基板やパッケージの形状は、上記の電源ノイズシミュレーション後に、例えばユーザの仕様変更によって、変更されることがある。この場合、電源ノイズの低減に必要な電源配線間の容量の値が、設計値と異なってしまうので、想定していない周波数で共振する。
【0008】
このように発生する共振は、上記のデータストローブ信号DQSやデータDQのエッジ(遷移タイミング)に影響する、つまり、遷移タイミングを変更することがある。例えば、データDQのエッジが進み、データストローブ信号DQSのエッジが遅れると、データストローブ信号DQSに対してデータDQが有効な期間(データ有効ウインドウ)が実効的に狭くなる。すると、データストローブ信号DQSに対するデータDQのタイミングマージンが小さくなり、データDQを正しく取り込めなくなる場合がある。
【課題を解決するための手段】
【0009】
本発明の一観点によれば、 第1電源線と第2電源線との間に接続され、第1信号を出力する第1の出力回路と、第1電源線と第2電源線との間に接続され、第2信号を出力する第2の出力回路と、第1電源線と第2電源線との間に接続された可変容量と、前記第1信号と前記第2信号との位相差を調整する遅延回路と、前記可変容量の容量値を制御し、前記遅延回路により調整される前記第1信号及び前記第2信号における複数の位相差毎に前記第1信号に基づくデータがメモリに書き込めるか否かを判定して前記第1信号のウインドウ幅を計測し、より大きいウインドウ幅に対応する容量値を前記可変容量に設定する制御回路と、を有する。
【発明の効果】
【0010】
本発明の一観点によれば、タイミングマージンの減少を抑制することができる。
【図面の簡単な説明】
【0011】
【図1】システムの概略構成図である。
【図2】システムの概略ブロック図である。
【図3】システムの要部回路を示すブロック図である。
【図4】トレーニング回路の説明図である。
【図5】トレーニング回路の説明図である。
【図6】可変容量のブロック図である。
【図7】(a)(b)は、可変容量の説明図である。
【図8】I/O回路の回路図である。
【図9】トレーニング制御回路のブロック図である。
【図10】タイミングマージン判定回路のブロック図である。
【図11】タイミングトレーニングの結果の説明図である。
【図12】調整処理のフローチャートである。
【図13】トレーニング処理のフローチャートである。
【図14】タイミングマージン判定処理のフローチャートである。
【図15】テストアクセス処理のフローチャートである。
【図16】各種設定の制御の説明図である。
【図17】(a)(b)は、各種設定の制御の説明図である。
【発明を実施するための形態】
【0012】
以下、一実施形態を添付図面に従って説明する。
図1に示すように、システムの基板(例えば、プリント配線板PCB:Printed Circuit Board)10には、複数の半導体装置11〜13が搭載されている。各半導体装置11〜13は、基板10に形成された配線(図示略)を介して互いに接続されている。例えば、半導体装置11は図2に示すシステム装置であり、半導体装置12は図2に示すメモリである。また、基板10には、デカップリング容量14が搭載され、このデカップリング容量14は、各半導体装置11〜13に供給する電源電圧の変動を低減する。なお、図1には、1つのデカップリング容量14を示しているが、システムの構成に応じて、複数のデカップリング容量、又は複数のデカップリング容量を含む1つ又は複数のモジュールが、基板10に搭載されている。このようなデカップリング容量14の容量値は、基板10の設計時に、電源供給経路のインピーダンスが小さくなるように設定され、基板10上に配置されている。
【0013】
半導体装置11のパッケージ20には、システム装置21が搭載されている。システム装置21は、半導体チップ(ダイ)である。また、半導体装置11のパッケージ20には、システム装置21に供給する電源電圧の変動を低減するためのデカップリング容量22が搭載されている。このデカップリング容量22は、システム装置21に形成された調整回路によって容量値を変更可能に構成された可変容量素子である。半導体装置12,13のパッケージには、チップ12a,13aがそれぞれ内包されている。
【0014】
図2に示すように、システム装置21には、コア回路31、メモリコントローラ32、インタフェース回路(I/F回路と表記)33、入出力回路(I/O回路と表記)34が形成されている。メモリ12は、同期式の半導体記憶装置、例えばダブルレート方式のダイナミックランダムアクセスメモリ(DDR−SDRAM:Double Data Rate Synchronous Dynamic Random Access Memory)である。
【0015】
コア回路31は、実行する処理に応じて、メモリ12のデータを読み込むためのリード要求と、そのデータが格納されたアドレスとをメモリコントローラ32に出力する。また、コア回路31は、メモリ12にデータを書き込むためのライト要求と、そのデータを格納するアドレスとをメモリコントローラ32に出力する。なお、コア回路31は、例えば中央処理装置(Central Processing Unit:CPU)である。
【0016】
メモリコントローラ32は、当該メモリコントローラ32の内部クロック信号を、インタフェース回路33を介して入出力回路34に供給する。入出力回路34は、内部クロック信号に応じて生成した相補のクロック信号CK,XCKを、メモリ12に供給する。
【0017】
また、メモリコントローラ32は、コア回路31からの要求に応じて、インタフェース回路33を介してメモリ12をアクセスする。
コア回路31からの要求がリード要求の場合には、メモリコントローラ32は、インタフェース回路33と入出力回路34を介してリードコマンド及びアドレスをメモリ12に供給する。すると、メモリ12は、リードコマンドに応答し、該当アドレスから読み出したデータDQと、そのデータDQに同期したデータストローブ信号DQSとを出力する。このとき、メモリ12は、相補のクロック信号CK,XCKに同期してデータDQをバースト出力する、すなわちメモリコントローラ32の内部クロック信号の2倍の周波数でデータDQをバースト出力する。
【0018】
コア回路31からの要求がライト要求の場合には、メモリコントローラ32は、インタフェース回路33と入出力回路34を介してライトコマンド、データDQ、データストローブ信号DQS、及びデータDQを書き込むアドレスをメモリ12に供給する。入出力回路34は、インタフェース回路33から供給されるデータストローブ信号DQSに応じて生成した相補のデータストローブ信号DQS,XDQSをメモリ12に供給する。メモリ12は、該当するアドレスにデータDQを記憶する。
【0019】
メモリ12とインタフェース回路33との間では、データストローブ信号DQSによりデータDQの授受が行われる。すなわち、インタフェース回路33は、リード動作時に、メモリ12から入出力回路34を介して受け取るデータストローブ信号DQSのタイミングを調整し、タイミング調整されたデータストローブ信号DQSに同期してデータDQを取り込み、その取り込んだデータDQをメモリコントローラ32に出力する。また、インタフェース回路33は、ライト動作時に、メモリコントローラ32から受け取ったデータDQ及びデータストローブ信号DQSを、入出力回路34を介してメモリ12に出力する。
【0020】
図3に示すように、システム装置21には、例えばパッケージ20外の電源供給モジュール(VRM)13から、高電位電圧VDD及び低電位電圧VSSが供給される。高電位電圧VDD及び低電位電圧VSSは、システム装置21の動作電圧の一例である。高電位電圧VDD及び低電位電圧VSSは、基板(PCB)10に形成された電源線10a,10bと、パッケージ20に形成された電源線20a,20bを介してシステム装置21に供給される。
【0021】
電源線10a,10bは、電源供給モジュール13からパッケージ20までの間の電源供給経路を形成する導電体であり、基板10に形成された配線パターン等を含む。電源線10a,10b間には、図1に示すデカップリング容量14が接続されている。電源線20a,20bは、パッケージ20内において電源供給経路を形成する導電体、例えばパッケージ20に形成された配線パターン等を含む。電源線20a,20b間には、可変容量22が接続されている。
【0022】
システム装置21(ダイ)には、高電位電圧VDDを伝達する第1の電源線21aと、低電位電圧VSSを伝達する第2の電源線21bとが形成されている。これらの電源線21a,21bは、ダイの所定層に形成された銅等の配線パターンである。
【0023】
第1の電源線21aと第2の電源線21bとの間には、第1のI/O回路34aと第2のI/O回路34bが接続されている。第1のI/O回路34aは、第1の電源線21aを介して供給される高電位電圧VDDと、第2の電源線21bを介して供給される低電位電圧VSSとを駆動電圧として動作し、I/F回路33から出力される信号に基づいてデータストローブ信号DQSを出力する。信号DQSは、パッケージ20の配線20cと、基板10の配線10cを介してメモリ12に供給される。メモリ12から出力されるデータストローブ信号DQSは、配線10c,20cを介してI/O回路34aに供給される。
【0024】
同様に、第2のI/O回路34bは、第1の電源線21aを介して供給される高電位電圧VDDと、第2の電源線21bを介して供給される低電位電圧VSSとを駆動電圧として動作し、I/F回路33から出力される信号に基づいてデータDQを出力する。データDQは、パッケージ20の配線20dと、基板10の配線10dを介してメモリ12に供給される。メモリ12から出力されるデータDQは、配線20d、10dを介してI/O回路34bに供給される。
【0025】
また、第1の電源線21aと第2の電源線21bとの間には、可変容量35が接続されている。この可変容量35は、パッケージ20に設けられた可変容量22と同様に、システム装置21に形成された調整回路によって容量値を変更可能に構成された可変容量素子である。可変容量35は、I/O回路34a,34bの動作に基づく電源電圧の変動を低減する。
【0026】
I/F回路33は、データストローブ(DQS)信号生成回路41と、遅延同期ループ回路(DLL(Delay Locked Loop )回路)42とを備えている。DQS信号生成回路41は、内部クロック信号に基づいて、例えば内部クロック信号の2倍の周波数のパルス信号を出力する。DLL回路42は、DQS信号生成回路41の出力信号を遅延した信号を出力する。DLL回路42は、遅延回路の一例である。
【0027】
また、I/F回路33は、DQ信号生成回路43と、DQ信号生成回路43の出力信号を遅延する遅延同期ループ回路(DLL回路)44とを備えている。DQ信号生成回路43は、図2に示すコア回路31がメモリ12に書き込むデータに応じた信号を出力する。例えば、DQ信号生成回路43は、コア回路31から出力される複数ビットのパラレルデータを、内部クロック信号の2倍の周波数のパルス信号に同期してシリアル出力する。DLL回路44は、DQ信号生成回路43の出力信号を遅延した信号を出力する。DLL回路44は、遅延回路の一例である。
【0028】
DLL回路42,44は、データストローブ信号DQSとデータDQとの間の位相差を調整するために設けられている。DQS信号生成回路41とDQ信号生成回路43は、内部クロック信号に同期してそれぞれ信号を出力する。DQS信号生成回路41の出力信号に基づいてデータストローブ信号DQS,XDQSがメモリ12に対して出力され、DQ信号生成回路43の出力信号に基づいてデータDQがメモリ12に対して出力される。メモリ12は例えばDDR3−SDRAMであり、データストローブ信号DQS,XDQSのエッジのタイミングで、データDQを取り込む。従って、システム装置21は、データDQとデータストローブ信号DQSとの間の位相差を所定値(90度)ずらして出力する。このため、DLL回路42,44は、DQS信号生成回路41の出力信号に応答(遅延)して出力する信号と、DQ信号生成回路43の出力信号に応答(遅延)して出力する信号との間の位相差を所定値(90度)とするように、それぞれ設定される。
【0029】
また、I/F回路33は、データストローブ信号DQSとデータDQのタイミングを調整するトレーニング回路45を備えている。トレーニング回路45は、I/F回路33から出力されるデータストローブ信号DQS及びデータDQがメモリ12に到達するタイミングを調整するタイミングトレーニング機能を提供する。
【0030】
トレーニング回路45によるタイミング制御を説明する。
図4に示すように、システム装置21の遅延回路37は、内部クロック信号を予め定めた時間遅延して出力する。I/O回路(ドライバ回路)34cは、遅延回路37の出力信号に基づいて、相補のクロック信号CK,XCKを出力する。DLL回路42は、図3に示すDQS信号生成回路41から出力される信号を遅延して出力する。I/O回路(ドライバ回路)34aは、DLL回路42の出力信号に基づいて、データストローブ信号DQSと、そのデータストローブ信号DQSと相補な反転データストローブ信号XDQSを出力する。I/O回路34aは、第1の出力回路の一例である。DLL回路42は、図3に示すDQ信号生成回路43から出力される信号を遅延して出力する。I/O回路(ドライバ回路)34bは、DLL回路42の出力信号に基づいて、データ信号DQを出力する。I/O回路34bは、第2の出力回路の一例である。
【0031】
システム装置21から出力される各種の信号は、システム装置21とメモリ12との間の信号伝達経路に応じた時間経過後にメモリ12に到達する。システム装置21の出力時刻からメモリ12に信号が到達するまでの期間は、各種の信号における配線遅延であり、配線経路により異なる場合がある。
【0032】
図4に示すシステム装置21とメモリ12との間の各種信号のタイミングを図5に示す。なお、図5の上段は、システム装置21における出力タイミングを示し、図5の下段はメモリ12における入力タイミングを示す。
【0033】
例えば、I/O回路34cから出力されるクロック信号CK,XCKは、図5に示すように、配線遅延による遅延時間DL1経過後のメモリ12に入力される。同様に、図4に示すI/O回路34aから出力されるデータストローブ信号DQS,XDQSは、その出力時刻から遅延時間DL2経過後にメモリ12に入力される。また、図4に示すI/O回路34bから出力されるデータDQは、その出力時刻から遅延時間DL3経過後にメモリ12に入力される。
【0034】
メモリ12は、上記したように、DDR−SDRAMである。このようなメモリ12は、クロック信号CK,XCKに同期して各種制御信号(コマンド)を取り込む。また、メモリ12は、データストローブ信号DQS,XDQSのエッジに同期してデータDQを取り込む。従って、図5の下段に示すように、クロック信号CK,XCKのタイミングと、データストローブ信号DQS,XDQSのタイミングとの差(タイミングのずれ)は、メモリ12の仕様(スペック)に応じた範囲に入っている必要がある。また、データストローブ信号DQS,XDQSのエッジのタイミングは、データDQの有効期間に対し、ホールド時間(Hold Time)とセットアップ時間(Setup Time)を満足するタイミングとなるように設定される必要がある。例えば、データストローブ信号DQS,XDQSのエッジのタイミングは、データDQの有効期間おいて、上記のホールド時間とセットアップ時間のそれぞれに対し、マージンがあるようなタイミング、例えば中央付近に来るように、調整される必要がある。なお、データDQの有効期間(データ有効ウィンドウ)は、ドライバ側のデータと等しいデータをレシーバ側でサンプリングできる期間のことである。
【0035】
トレーニング回路45は、出力信号のタイミングをずらしながら、テスト信号をメモリ12に出力する。そして、トレーニング回路45は、メモリ12から出力されるテスト信号の受信結果に基づいて、メモリ12が正しいデータを受信できるように、各信号の出力タイミング、即ち、データストローブ信号DQSとデータDQの位相差、つまりDLL回路42,44における遅延量を調整する。
【0036】
例えば、データストローブ信号DQS,XDQSの場合、信号伝達経路において、図5に示すように、遅延時間DL2が生じる。このため、トレーニング回路45は、クロック信号CK,XCKに対し、遅延時間DS1経過後にデータストローブ信号DQS,XDQSを出力するように、DLL回路42を調整する。同様に、トレーニング回路45は、クロック信号CK,XCKに対し、遅延時間DS2経過後がデータDQのデータ有効ウインドウの中央付近となるように、DLL回路44を調整する。
【0037】
図3に示すように、システム装置21は、上記の可変容量35の容量値を制御する制御回路36を備えている。また、制御回路36は、I/O回路34a,34bのスルーレート(Slew Rate )を制御する。この制御回路36は、パッケージ20に含まれる可変容量22の容量値を制御する機能を有している。
【0038】
制御回路36は、トレーニング制御回路51とタイミングマージン判定回路(TM判定回路と表記、以下、TM判定回路)52を備えている。
トレーニング制御回路51は、TM判定回路52に初期化信号を出力し、TM判定回路52は初期化信号に応答して設定値を保持するレジスタを初期化する。また、トレーニング制御回路51は、トレーニング回路45に開始信号を出力し、トレーニング回路45は開始信号に応答してメモリ12との間のタイミングトレーニングを実行し、DLL回路44に対する設定値の最大値及び最小値を得る。そして、トレーニング回路45は、タイミングトレーニングにより得た最大の設定値及び最小の設定値を、TM判定回路52に出力する。
【0039】
TM判定回路52は、最大の設定値と最小の設定値に基づいて、そのときのデータDQの有効ウインドウの大きさが最大か否かを判定し、有効ウインドウが最大となるときの設定値をレジスタに記憶する。そして、TM判定回路52レジスタに保持した設定値(最大値及び最小値)を、トレーニング制御回路51に出力する。
【0040】
トレーニング制御回路51は、TM判定回路52から出力される設定値に基づいて、可変容量35の容量値を制御するための制御信号SC1、I/O回路34a,34bのスルーレートを制御するための制御信号SC2、可変容量22の容量値を制御するための制御信号SC3を出力する。
【0041】
可変容量35の構成例を説明する。
図6に示すように、可変容量35は、複数(図において3個)の電源スイッチ61a〜61cを備えている。各電源スイッチ61a〜61cの第1端子は高電位電圧VDDが供給される電源線21aに接続されている。電源スイッチ61aの第2端子には、複数(図において4個)の容量セル62aの第1端子が接続され、各容量セル62aの第2端子は、低電位電圧VSSが供給される電源線21bに接続されている。同様に、電源スイッチ61bの第2端子には、複数(図において4個)の容量セル62bの第1端子が接続され、各容量セル62bの第2端子は、低電位電圧VSSが供給される電源線21bに接続されている。また、電源スイッチ61cの第2端子には、複数(図において4個)の容量セル62aの第1端子が接続され、各容量セル62cの第2端子は、低電位電圧VSSが供給される電源線21bに接続されている。なお、各電源スイッチ61a〜61cに接続される容量セル62a〜62cの数は、異なっていてもよい。
【0042】
電源スイッチ61a〜61cは、制御信号SC1に基づいて、互いに独立して動作する。例えば、制御信号SC1は、可変容量35に含まれる電源スイッチの数に応じた3ビットの信号(SC1a〜SC1c)である。電源スイッチ61a〜61cは、制御信号SC1a〜SC1cに応答してそれぞれオンオフする。従って、オンした電源スイッチに応じた数の容量セルが互いに並列接続されるとともに、2つの電源線21a,21b間に接続される。つまり、電源スイッチの数を変更することにより、2つの電源線21a,21b間の容量値を調整することができる。
【0043】
次に、可変容量22の構成例を説明する。
図7(a)に示すように、可変容量22の電源端子71aには高電位電圧VDDが供給され、電源端子71bには低電位電圧VSSが供給される。また、複数(図において3つ)の制御端子72a〜72cには制御信号SC3が供給される。例えば、制御信号SC3は、3ビットの信号である。制御信号SC3のビット数は、可変容量35に含まれる電源スイッチの数に対応する。各端子72a〜72cに供給される信号を、それぞれSC3a〜SC3cとする。に電源端子71aには電源線73aが接続され、電源端子71bには電源線73bが接続されている。電源線73aには複数(図において3個)の電源スイッチ74a〜74cの第1端子が接続されている。
【0044】
電源スイッチ74aの第2端子には、複数(図において4個)の容量セル75aの第1端子が接続され、各容量セル75aの第2端子は、低電位電圧VSSが供給される電源線73bに接続されている。同様に、電源スイッチ74bの第2端子には、複数(図において4個)の容量セル75bの第1端子が接続され、各容量セル75bの第2端子は、低電位電圧VSSが供給される電源線73bに接続されている。また、電源スイッチ74cの第2端子には、複数(図において4個)の容量セル75aの第1端子が接続され、各容量セル75cの第2端子は、低電位電圧VSSが供給される電源線73bに接続されている。なお、各電源スイッチ74a〜74cに接続される容量セル75a〜75cの数は、異なっていてもよい。
【0045】
複数の制御端子72a〜72cはバッファ回路76a〜76cの入力端子にそれぞれ接続されている。そして、各バッファ回路76a〜76cの出力信号は各電源スイッチ74a〜74cに供給される。従って、電源スイッチ74a〜74cは、制御信号SC3a〜SC3cに基づいて、互いに独立して動作する。電源スイッチ74a〜74cは、制御信号SC3a〜DC3cに応答してそれぞれオンオフする。従って、オンした電源スイッチに応じた数の容量セルが互いに並列接続されるとともに、2つの電源線73a,73b間に接続される。つまり、電源スイッチの数を変更することにより、2つの電源線73a,73b間の容量値を調整することができる。
【0046】
なお、可変容量22を、図7(b)に示すように、システム装置(ダイ)21に直接的に接続される構成としてもよい。このような構成は、システム装置21のパッケージサイズを縮小することが可能とする。
【0047】
次に、I/O回路34bの構成例を説明する。
図8に示すように、複数(図において4個)のNAND回路81a〜81dには、図3に示すDLL回路42から出力される信号Sinが供給される。また、この信号Sinは、複数のインバータ回路82a〜82dに供給される。各NAND回路81a〜81dには、制御信号SC2が供給される。なお、この例において、制御信号SC2は、I/O回路34aの構成に対応する4ビットの信号である。これらの信号をSC2a〜SC2dとする。各NAND回路81a〜81dには、制御信号SC2a〜SC2dがそれぞれ供給される。各インバータ回路82a〜82dの出力信号は、AND回路83a〜83dに供給される。各AND回路83a〜83dには、制御信号SC2a〜SC2dがそれぞれ供給される。
【0048】
NAND回路81a〜81dの出力信号はPチャネルMOSトランジスタ84a〜84dのゲートにそれぞれ供給される。同様に、AND回路83a〜83dの出力信号は、NチャネルMOSトランジスタ85a〜85dのゲートに供給される。
【0049】
各トランジスタ84a〜84dのソースは、高電位電圧VDDが供給される電源線21aに接続され、各トランジスタ84a〜84dのドレインは出力ノード86に接続されている。この出力ノード86は、各トランジスタ85a〜85dのドレインに接続され、各トランジスタ85a〜85dのソースは、低電位電圧VSSが供給される電源線21bに接続されている。
【0050】
上記のように構成されたI/O回路34bは、信号Sinに応じて、出力ノード86と電源線21aとの間のPチャネルMOSトランジスタと、出力ノード86と電源線21bとの間のNチャネルMOSトランジスタとが、相補的にオンオフする。そして、オンするトランジスタの数は、制御信号SC2に対応する。そして、PチャネルMOSトランジスタは、出力ノード86、つまり図3に示す配線20dの電位を、低電位電圧VSSレベルから高電位電圧VDDレベルまで上昇させる。この電位の上昇にかかる時間、即ちスルーレートは、高電位電圧VDDが供給される電源線21aから出力ノード86に向って流れる電流の量に対応する。つまり、オンするPチャネルMOSトランジスタの数が多いほど、電源線21aから出力ノード86に向って流れる電流量が多くなり、出力ノード86(配線20d)の電位が早く上昇する、すなわちスルーレートが高くなる。逆に、同時にオンするトランジスタの数が少ないほど、スルーレートが低くなる。
【0051】
スルーレートが高く設定されるほど、出力信号のレベルを短時間で変化する。つまり電流変化が急峻となるため、電源電圧に生じるノイズが大きくなる。このため、電源電圧に発生するノイズの観点では、スルーレートが小さく設定される方が好ましい。一方、スルーレートが小さく設定されたI/O回路から出力される信号は、高電位電圧VDDレベルと低電位電圧VSSレベルとの間でレベルが変化する期間即ち遷移期間が長くなり、その分、レベルが安定する期間即ち有効期間(有効ウインドウ)が短くなる。このため、信号を取り込むタイミングマージンの観点では、スルーレートが大きく設定される方が好ましい。従って、I/O回路において、電源電圧に生じるノイズが小さく、有効ウインドウが大きくなるように、スルーレートが設定されることが好ましい。
【0052】
次に、トレーニング制御回路51の構成例を説明する。
図9に示すように、トレーニング命令送信回路91は、システム装置21内の回路、例えばメモリコントローラ32から自動調整実行命令信号を受け取ると、先ず、各レジスタ92〜94とTM判定回路52に初期化信号SITを出力する。
【0053】
レジスタ92は、初期化信号SITに応答して、I/O回路34a,34bのスルーレートを調整するための初期値を記憶する。レジスタ92に記憶された初期値はI/O回路34a,34bに供給され、I/O回路34a,34bは、初期値に応じたスルーレートで動作するように設定される。レジスタ93は、初期化信号SITに応答して、システム装置21内の可変容量35の容量値を調整するための初期値を記憶する。レジスタ93に記憶された初期値は可変容量35に供給され、可変容量35は初期値に応じた容量値に設定される。レジスタ94は、初期化信号SITに応答して、パッケージ11内の可変容量22の容量値を調整するための初期値を記憶する。レジスタ94に記憶された初期値は可変容量22に供給され、可変容量22は初期値に応じた容量値に設定される。TM判定回路52は、初期化信号SITに応答して初期値を記憶する。
【0054】
次いで、トレーニング命令送信回路91は、出力制御回路95、容量制御回路96,97、トレーニング回路45に対し、それぞれ所定のタイミングで、処理実行信号を出力する。各制御回路95,96,97には、システム装置21内の回路、例えばメモリコントローラ32から、カウンタ終了設定信号が供給される。カウンタ終了設定信号は、各制御回路95〜97が、それぞれ処理を実行する回数を設定するための信号である。即ち、各制御回路95〜97は、カウント機能を有し、1回の処理を実行する毎に、カウント値をカウントアップする。そして、各制御回路95〜97は、それぞれカウント値がカウンタ終了設定信号と等しくなると、処理を終了する。
【0055】
出力制御回路95は、処理実行信号に応答して、設定値を変更した制御信号SC2をI/O回路34a,34bに出力し、I/O回路34a,34bのスルーレートを変更するために制御信号SC2を出力する。容量制御回路96は、処理実行信号に応答して、設定値を変更した制御信号SC1を可変容量35に出力し、可変容量35の容量値を変更する。容量制御回路97は、処理実行信号に応答して、設定値を変更した制御信号SC3を可変容量35に出力し、可変容量22の容量値を変更する。各制御回路95〜97は、設定値をレジスタ更新回路98に出力する。
【0056】
トレーニング回路45は、処理実行信号に応答して、図3に示すメモリ12に対するタイミングトレーニングを実行する。
トレーニング命令送信回路91は、各制御回路95〜97を動作させて、I/O回路34a、34bのスルーレートと、各可変容量35,22の容量値を順次変更する。更に、トレーニング命令送信回路91は、トレーニング回路45を動作させて、各設定におけるDLL回路44に設定した最大値及び最小値をトレーニング回路45が取得するように、各制御回路95〜97及びトレーニング回路45を制御する。
【0057】
トレーニング回路45は、取得した最大値及び最小値をTM判定回路52に出力する。
TM判定回路52は、トレーニング回路45から入力される最大値及び最小値に基づくタイミングマージンを判定し、その判定結果に応じて更新信号SUPをレジスタ更新回路98に出力する。詳しくは、TM判定回路52は、トレーニング回路45から供給される最大値及び最小値に基づいて、タイミングマージンを算出する。例えば、TM判定回路52は、最大値から最小値を減算してタイミングマージンを算出する。そして、TM判定回路52は、算出したタイミングマージンと保持値とを比較する。TM判定回路52は、算出したタイミングマージンが保持値よりも大きい場合、タイミングマージンと等しい値を保持し、更新信号SUPを出力する。一方、TM判定回路52は、算出したタイミングマージンが保持値以下の場合、更新信号SUPを出力しない。
【0058】
レジスタ更新回路98は、更新信号SUPに応答して、各レジスタ92〜94の値を更新する。即ち、レジスタ更新回路98は、更新信号SUPに応答して、各制御回路95〜97から出力される設定値を、対応するレジスタ92〜94に出力し、各レジスタ92〜94は、入力される設定値を、新たな設定値として保持する。この結果、各レジスタ92〜94には、タイミングマージンが最大となるときの各制御回路95〜97の設定値が保持される。
【0059】
次に、TM判定回路52の構成例を説明する。
図10に示すように、TM判定回路52は、設定保持レジスタ101と、結果保持レジスタ102と、比較回路103とを備えている。設定保持レジスタ101は、図3に示すDLL回路44に設定する設定値を記憶する。設定保持レジスタ101は、トレーニング制御回路51から供給される初期化信号SITに応答して記憶した値を初期化する。
【0060】
結果保持レジスタ102は、トレーニング回路45から供給される最大値及び最小値を記憶する。トレーニング回路45は、図3に示すメモリ12に対し、DLL回路44の設定値を変更する毎に、メモリ12に対してテストアクセスを行い、その結果を記憶する。例えば、トレーニング回路45は、メモリ12が正常にテストデータを受信したか否かを判断し、正常にテストデータを受信した場合には「1」を、正常にテストデータを受信できなかった場合には「0」を記憶する。データDQは、複数ビット(例えば8ビット)の信号である。トレーニング回路45は、この処理を、データDQの各ビット毎に行う。その結果に一例を図11に示す。なお、図11では、右側ほど、各DLL回路44の設定値を大きくした結果を示す。
【0061】
そして、トレーニング回路45は、メモリ12が全てのビットDQ[0]〜DQ[7]を正常に受信したときの設定値の最小値と最大値を求める。例えば、トレーニング回路45は、各ビットDQ[0]〜DQ[7]を論理積演算(AND)する。その演算結果において、トレーニング回路45は、結果が「1」となる設定値のうち、最小の設定値(最小値)と、最大の設定値(最大値)を求める。そして、トレーニング回路45は、これらの最大値及び最小値を結果保持レジスタ102に供給する。
【0062】
図10に示すように、設定保持レジスタ101は、保持した設定値(最小値(Min)、最大値(Max))を比較回路103に出力する。同様に、結果保持レジスタ102は、保持した結果値(最小値(Min)、最大値(Max))を比較回路103に出力する。
【0063】
比較回路103は、設定値の最大値から設定値の最小値を減算して設定値のウインドウ幅を算出する。同様に、比較回路103は、結果値の最大値から結果値の最小値を減算して結果値のウインドウ幅を算出する。そして、比較回路103は、設定値のウインドウ幅と結果値のウインドウ幅とを比較する。
【0064】
比較回路103は、結果値のウインドウ幅が設定値のウインドウ幅よりも大きい場合に、結果値の最大値及び最小値を設定保持レジスタ101に出力し、結果値のウインドウ幅が設定値のウインドウ幅以下の場合に結果値を出力しない。設定保持レジスタ101は、比較回路103から供給される値、即ち結果値の最大値及び最小値を記憶する。従って、設定保持レジスタには、ウインドウ幅が最大となるときの結果値の最大値及び最小値が記憶される。
【0065】
また、比較回路103は、結果値のウインドウ幅が設定値のウインドウ幅よりも大きい場合に、更新信号SUPを出力する。この更新信号SUPは、図9に示すレジスタ更新回路98に供給される。レジスタ更新回路98は、更新信号SUPに応答して、各制御回路95〜97から供給される設定値を各レジスタ92〜94にそれぞれ出力し、各レジスタ92〜94は供給される設定値を記憶する。従って、各レジスタ92〜94には、ウインドウ幅が最大となるときの設定値がそれぞれ記憶される。
【0066】
図3に示す制御回路36は、各設定値をそれぞれ対応する回路に設定し、調整処理を終了する。即ち、制御回路36は、レジスタ92に保持された設定値をI/O回路34a,34bに設定する。同様に、制御回路36は、レジスタ93,94に保持された設定値を可変容量35,22に設定する。また、制御回路36は、図10に示す設定保持レジスタ101に保持された最大値及び最小値に基づいて、図3に示すDLL回路44の遅延量を設定する。例えば、制御回路36は、最大値と最小値の中間値(=(最大値+最小値)/2)を算出し、この中間値を遅延値として各DLL回路44に設定する。
【0067】
次に、上記のシステムにおいて、制御回路36に係る処理の流れを説明する。
図12に示すように、先ず、図3に示すパッケージ(PKG)20の可変容量22の初期値を設定する(ステップ201)。次いで、システム装置(DIE)21の可変容量35の初期値を設定する(ステップ202)。次いで、I/O回路34a,34bの初期値を設定する(ステップ203)。
【0068】
次いで、図3に示すトレーニング回路45によりタイミングトレーニングを実行する(ステップ204)。
次いで、タイミングマージンを判定する(ステップ205)。そして、判定結果に基づき、DLL回路44の設定値が更新されたか否かを判断する(ステップ206)。設定値が更新された場合(判断:YES)、各設定値をレジスタに保持する(ステップ207)。一方、設定値が更新されていない場合(判断:NO)、次のステップ207をスキップする。
【0069】
次いで、I/O回路34a,34bに対して全ての出力設定を終了したか否かを判断する(ステップ208)。設定が終了していない場合(判断:NO)、I/O回路34a,34bに対する設定を変更し(ステップ209)、ステップ204に移行する。一方、設定を終了した場合(判断:YES)、ステップ210へ移行する。
【0070】
次いで、システム装置21(DIE)内の可変容量35に対して全ての容量設定を終了したか否かを判断する(ステップ210)。設定が終了していない場合(判断:NO)、可変容量35に対する設定を変更し(ステップ211)、ステップ204に移行する。一方、設定を終了した場合(判断:YES)、ステップ212へ移行する。
【0071】
次いで、パッケージ20内の可変容量22に対して全ての容量設定を終了したか否かを判断する(ステップ212)。設定が終了していない場合(判断:NO)、可変容量22に対する設定を変更し(ステップ213)、ステップ204に移行する。一方、設定を終了した場合(判断:YES)、ステップ214へ移行する。
【0072】
そして、レジスタに保持した各設定値を対応する回路にそれぞれ最終的に設定し(ステップ214)、処理を終了する。
次に、タイミングトレーニングの処理を説明する。
【0073】
図13に示すように、先ず、図3に示すDLL回路44に対する初期値を設定する(ステップ221)。次いで、図3に示すメモリ12に対してテストアクセスを行い(ステップ222)、メモリ12が正常にアクセスしたときのDLL回路44に設定した設定値を保持する(ステップ223)。
【0074】
次いで、DLL回路44に対する全ての設定値の設定を終了したか否かを判断する(ステップ224)。設定が終了していない場合(判断:NO)、DLL回路44に対する設定を変更し(ステップ225)、ステップ222に移行する。一方、設定を終了した場合(判断:YES)、ステップ226へ移行する。
【0075】
次いで、ステップ223において保持した設定値、つまりメモリ12が正常にアクセスしたときのDLL回路44に設定した設定値のうち、最大の設定値(最大値)と最小の設定値(最小値)をTM判定回路52に送信する(ステップ226)。
【0076】
次いで、最大値及び最小値に基づいて、例えば最大値と最小値の中間値をDLL回路44に設定し(ステップ227)処理を終了する。
次に、テストアクセス処理を説明する。
【0077】
図15に示すように、先ず、図3に示すメモリ12の全てのメモリセルに、初期値(例えば「0」)を書き込む(ステップ231)。このとき、確実に初期値を書き込むために、複数サイクルに亘って書き込みを行う。
【0078】
次いで、メモリ12に、初期値と異なる値の第1の期待値(例えば「1」)を書き込む(ステップ232)。このとき、最大スピード動作でのデータ書き込みをテストするために、1サイクル目で期待値を書き込む。次いで、第1の期待値を書き込んだアドレスからデータを読み出し(ステップ233)、読み込んだデータ(リードデータ)と期待値とを比較する(ステップ234)。リードデータと第1の期待値とが一致しない場合(判断:NO)、結果を格納する領域(例えばレジスタ)に正常にアクセスできなかった旨を示す値(例えば「0」)を格納し(ステップ235)、処理を終了する。一方、リードデータと第1の期待値とが一致する場合(判断:YES)、結果に正常にアクセスできた旨を示す値(例えば「1」)を格納する(ステップ236)。
【0079】
次いで、ステップ232と同様に、第1の期待値と異なる第2の期待値(例えば「0」)を、第1の期待値を書き込んだアドレスに書き込む(ステップ237)。次いで、第2の期待値を書き込んだアドレスからデータを読み出し(ステップ238)、読み込んだデータ(リードデータ)と期待値とを比較する(ステップ239)。リードデータと第1の期待値とが一致しない場合(判断:NO)、結果を格納する領域(例えばレジスタ)に正常にアクセスできなかった旨を示す値(例えば「0」)を格納し(ステップ240)、処理を終了する。一方、リードデータと第1の期待値とが一致する場合(判断:YES)、結果に正常にアクセスできた旨を示す値(例えば「1」)を格納し(ステップ241)、処理を終了する。
【0080】
したがって、メモリ12に対して、値が「1」のデータ書き込みと、値が「0」のデータ書き込みが正常に行われた場合、第1の結果値(例えば「1」)が結果として記憶される。一方、値が「1」のデータ書き込みと、値が「0」のデータ書き込みとのうちの少なくとも一方が正常に行われなかった場合、第1の結果値と異なる第2の結果値(例えば「0」)が結果として記憶される。
【0081】
次に、タイミングマージン判定処理を説明する。
図14に示すように、先ず、保持した設定値の最大値及び最小値により算出した設定値のウインドウ幅と、図3に示すメモリ12が正常にデータを受信した設定値の最小値及び最小値により算出した結果値のウインドウ幅とを比較し、結果値のウインドウ幅が設定値のウインドウ幅より大きいか否かを判断する(ステップ251)。結果値のウインドウ幅が設定値のウインドウ幅以下の場合(判断:NO)、処理を終了する。一方、結果値のウインドウ幅が設定値のウインドウ幅より大きい場合(判断:YES)、その結果値の最大値及び最小値により保持値を更新し(ステップ252)、処理を終了する。
【0082】
次に、各設定値の変更例を説明する。
今、図3に示すI/O回路34a,34bに対する設定値を「0」〜「2」とする。同様に、可変容量35,22に対する設定値を「0」〜「15」とする。
【0083】
図16に示すように、先ず、各設定要素(I/O回路34a,34b、可変容量35,22)に対する初期値を「0」,「0」,「0」とする。このとき、タイミングマージン判定により算出される結果値のウインドウ幅は「10」である。
【0084】
次いで、パッケージ20(PKG)の可変容量22の設定値を、「0」から「1」へと変更する。このとき、タイミングマージン判定により算出される結果値のウインドウ幅は「15」である。従って、このウインドウ幅「15」を記憶する。
【0085】
同様に、パッケージ20(PKG)の可変容量22の設定値を、「15」まで「1」づつ変更する。そして、それぞれの設定段階におけるタイミングマージンの判定結果を、保持値と比較し、保持値を更新する。
【0086】
可変容量22に対して最大の設定値「15」におけるタイミングマージンの判定を行うと、システム装置21(DIE)の可変容量35の設定値を「1」に変更し、パッケージ20(PKG)の可変容量22の設定値を、「0」から「15」まで「1」づつ変更する変更する。
【0087】
可変容量35に対して最大の設定値「15」におけるタイミングマージンの判定を行うと、I/O回路34a,34bに対する設定値を「0」から「1」に変更する。そして、上記と同様に、可変容量22と可変容量35に対する設定値を変更する。
【0088】
同様にして、各設定要素に対する設定値の全てを設定する。
図16に示すように、タイミングマージンの判定における結果値のウインドウ幅は、「40」が最大値となる。従って、図9に示すレジスタ92〜94には、このときの設定値「0」,「4」,「7」が保持される。このように、各設定値をそれぞれ「1」づつ変更することで、最適な設定値を確実に得ることができる。
【0089】
次に、別の各設定値の変更例を説明する。
図3に示すI/O回路34a,34bに対する設定値を「0」〜「2」とする。同様に、可変容量35,22に対する設定値を「0」〜「15」とする。
【0090】
先ず、図17(a)に示すように、可変容量35,22に対する設定値を、所定ステップ(例えば、4ステップ)毎に変更する。つまり、設定値を、「0」,「4」,「8」,「12」の順番で変更する。このように変更した場合、ウインドウ幅の最大値は「36」となる。この時の設定値は、「0」,「4」,「8」である。
【0091】
上記の第1の段階において得られた各設定値を含む範囲を設定し、その範囲内の設定値を各設定要素に設定する。
図17(a)に示す結果から、I/O回路34a,34bに対する設定値は「0」に確定される。そして、可変容量35に対する設定値を、「4」を中心とする範囲「1」〜「7」とする。同様に、可変容量22に対する設定値を、「8」を中心とする範囲「5」〜「11」とする。
【0092】
そして、図17(b)に示すように、可変容量35,22に対する設定値を、最小のステップ(「1」)で変更する。
このように、設定値を変更するステップを可変することで、タイミングトレーニングを実施する回数が、設定値を「1」づつ変更する場合と比べて少なくなり、調整処理に要する時間を短縮することができる。
【0093】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)メモリ12をアクセスするコア回路31が搭載されたチップ(ダイ)には、メモリ12に対するデータストローブ信号DQSを出力するI/O回路34aと、データDQを出力するI/O回路34bが形成されている。各I/O回路34a,34bは、高電位電圧VDDを供給する電源線21aと、低電位電圧VSSを供給する電源線21bとの間に接続されている。両電源線21a,21b間には、可変容量35が接続され、この可変容量35は、高電位電圧VDDと低電位電圧VSSの電圧変動を抑制する。
【0094】
各I/O回路34a,34bに信号を出力するI/F回路33は、データストローブ信号DQSとデータDQの位相差を調整するためのDLL回路42,44と、両DLL回路42,44の設定値(遅延時間)を制御してデータストローブ信号DQSとデータDQがメモリ12に到達するタイミングを調整するトレーニング回路45を有している。
【0095】
システム装置21に形成された制御回路36は、可変容量35の容量値を制御し、トレーニング回路45にタイミングトレーニングを実行させる。トレーニング回路45は、メモリ12がデータDQに基づく正常なデータを書き込むことができる設定値の最大値と最小値を出力する。制御回路36は、その最大値及び最小値に基づいてデータDQのウインドウ幅を算出し、より大きなウインドウ幅に対応する容量値を可変容量35に設定する。
【0096】
その結果、可変容量35により、データストローブ信号DQSを出力するI/O回路34aと、データDQを出力するI/O回路34bの動作により電源電圧に生じるノイズを低減するとともに、データDQのウインドウ幅を大きくすることができ、データストローブ信号DQSに基づいてデータDQを取り込むためのタイミングマージンの減少を抑制することができる。
【0097】
(2)制御回路36は、データストローブ信号DQSを出力するI/O回路34aと、データDQを出力するI/O回路34bの駆動能力を制御する。各I/O回路34a,34bの駆動能力は、各I/O回路34a,34bから出力される信号のスルーレートに対応する。スルーレートが大きいほど、電流変化が大きく、電源電圧に発生するノイズが大きくなる。従って、データDQのウインドウ幅が大きく、データDQのスルーレートを小さくすることで、電源電圧に生じるノイズを低減し、タイミングマージンの減少を抑制することができる。
【0098】
(3)システム装置21が搭載されたパッケージ20の電源線20a,20bの間には可変容量22が接続され、制御回路36は、システム装置21の可変容量35と同様に、パッケージ20の可変容量22の容量値を設定する。従って、パッケージ20の形状等が変更された場合にも、その変更に応じて可変容量22の容量値を設定するため、パッケージの変更に容易に対応することができる。また、パッケージの変更に対して、電源設計の再設計や電源シミュレーションの再実行を行う手間が少なくなるため、設計時間の短縮を図ることができる。
【0099】
尚、上記各実施形態は、以下の態様で実施してもよい。
・パッケージの可変容量22は省略されてもよい。
・パッケージの可変容量22に対する調整処理を省略してもよい。
【0100】
・図1には、3つの半導体装置11〜13を示しているが、2つ又は4つ以上の半導体装置が搭載されてもよい。また、図1には、1つのデカップリング容量14を示しているが、複数のデカップリング容量、又は複数のデカップリング容量を含む1つ又は複数のモジュールが搭載されてもよい。また、基板10には、抵抗やコネクタ等の他の部材が搭載されてもよい。
【0101】
・図1に示す半導体装置11〜13のパッケージは一例であり、パッケージの形状が変更されてもよい。例えば、半導体装置11において、パッケージ20と基板10の電気的な接続をボンディングワイヤを用いても良い。また、半導体装置13を例えばチップサイズパッケージ(CSP:Chip Size Package)としてもよい。
【0102】
・図3に示すDLL回路44に対し、タイミングトレーニングにより得た最大値及び最小値の中間値を設定するようにした。各DLL回路44に設定する値を、適宜変更してもよい。例えば、タイミングトレーニングにより得た最大値及び最小値と、既定値(例えば、セットアップ時間、ホールド時間)に基づいて設定してもよい。例えば、最小値にセットアップ時間を加算した値を設定値としてもよい。また、最大値からホールド時間を減算した値を設定値としてもよい。最小値にセットアップ時間を加算した値と、最大値からホールド時間を減算した値との中間値を設定値としてもよい。また、最小値と最大値との値の範囲(ウインドウ幅)を分割する比率を記憶し、その分割点の値を設定値としてもよい。
【0103】
・各回路の構成を適宜変更してもよい。例えば、図3に示すトレーニング回路45を、制御回路36に含める構成としてもよい。
【符号の説明】
【0104】
21a,21b 電源線
22 可変容量
34a,34b I/O回路(出力回路)
35 可変容量
36 制御回路
42,44 遅延同期ループ回路(DLL回路)
45 トレーニング回路
51 トレーニング制御回路
52 タイミングマージン判定回路
VDD 高電位電圧
VSS 低電位電圧
【特許請求の範囲】
【請求項1】
第1電源線と第2電源線との間に接続され、第1信号を出力する第1の出力回路と、
第1電源線と第2電源線との間に接続され、第2信号を出力する第2の出力回路と、
第1電源線と第2電源線との間に接続された可変容量と、
前記第1信号と前記第2信号との位相差を調整する遅延回路と、
前記可変容量の容量値を制御し、前記遅延回路により調整される前記第1信号及び前記第2信号における複数の位相差毎に前記第1信号に基づくデータがメモリに書き込めるか否かを判定して前記第1信号のウインドウ幅を計測し、より大きいウインドウ幅に対応する容量値を前記可変容量に設定する制御回路と、
を有することを特徴とするタイミング制御回路。
【請求項2】
前記制御回路は、前記第1の出力回路の駆動能力を制御し、より大きいウインドウ幅に対応する駆動能力を前記第1の出力回路に設定する、ことを特徴とする請求項1に記載のタイミング制御回路。
【請求項3】
前記制御回路は、前記遅延回路が前記位相差を調整するための設定値を変更し、各設定値毎に前記メモリが前記データが書き込めるかを判定し、前記メモリに前記データが書き込めると判定した複数の設定値のうちの最大値を最小値とを得るトレーニング回路を含む、請求項1又は2に記載のタイミング制御回路。
【請求項4】
前記トレーニング回路は、前記データのビット毎に前記メモリに書き込めるか否かを判定し、前記データの全てのビットに基づいて前記ウインドウ幅を計測する、請求項3に記載のタイミング制御回路。
【請求項5】
前記制御回路は、
前記トレーニング回路にて得た設定値の最大値と最小値を第1のレジスタに保持し、前記遅延回路に対して変更された設定値に基づいて前記トレーニング回路にて得られた最大値と最小値とを第2のレジスタに保持し、前記第1のレジスタに保持した最大値及び最小値により第1のウインドウ幅を算出し、前記第2のレジスタに保持した最大値及び最小値に基づいて第2のウインドウ幅を算出し、前記第1のウインドウ幅と前記第2のウインドウ幅とを比較し、前記第2のウインドウ幅が前記第1のウインドウ幅より大きい場合に、前記第2のレジスタに保持した最大値及び最小値を前記第1のレジスタに保持するタイミングマージン判定回路を含む、請求項3又は4に記載のタイミング制御回路。
【請求項6】
前記可変容量は、
前記メモリをアクセスする回路が搭載されたチップに形成された第1の可変容量と、
前記チップに動作電圧を供給する電源線を含むパッケージに搭載された第2の可変容量とを含み、
前記制御回路は、前記第1の可変容量の容量値と前記第2の可変容量の容量値とをそれぞれ制御する、請求項1〜5のうちの何れか一項に記載のタイミング制御回路。
【請求項7】
第1電源線と第2電源線との間に接続された可変容量の容量値を制御し、
第1電源線と第2電源線との間に接続された第1の出力回路から出力される第1信号と、第1電源線と第2電源線との間に接続された第2の出力回路から出力される第2信号との位相差を調整し、
調整される前記第1信号及び前記第2信号における複数の位相差毎に前記第1信号に基づくデータがメモリに書き込めるか否かを判定して前記第1信号のウインドウ幅を計測し、より大きいウインドウ幅に対応する容量値を前記可変容量に設定する、
ことを特徴とするタイミング制御方法。
【請求項8】
データとデータストローブ信号を出力するシステム装置と、
前記データを前記データストローブ信号に基づいて取り込むメモリと、
を含み、
前記システム装置は、
第1電源線と第2電源線との間に接続され、第1信号を出力する第1の出力回路と、
第1電源線と第2電源線との間に接続され、第2信号を出力する第2の出力回路と、
第1電源線と第2電源線との間に接続された可変容量と、
前記第1信号と前記第2信号との位相差を調整する遅延回路と、
前記可変容量の容量値を制御し、前記遅延回路により調整される前記第1信号及び前記第2信号における複数の位相差毎に前記第1信号に基づくデータがメモリに書き込めるか否かを判定して前記第1信号のウインドウ幅を計測し、より大きいウインドウ幅に対応する容量値を前記可変容量に設定する制御回路と、
を有する、システム。
【請求項1】
第1電源線と第2電源線との間に接続され、第1信号を出力する第1の出力回路と、
第1電源線と第2電源線との間に接続され、第2信号を出力する第2の出力回路と、
第1電源線と第2電源線との間に接続された可変容量と、
前記第1信号と前記第2信号との位相差を調整する遅延回路と、
前記可変容量の容量値を制御し、前記遅延回路により調整される前記第1信号及び前記第2信号における複数の位相差毎に前記第1信号に基づくデータがメモリに書き込めるか否かを判定して前記第1信号のウインドウ幅を計測し、より大きいウインドウ幅に対応する容量値を前記可変容量に設定する制御回路と、
を有することを特徴とするタイミング制御回路。
【請求項2】
前記制御回路は、前記第1の出力回路の駆動能力を制御し、より大きいウインドウ幅に対応する駆動能力を前記第1の出力回路に設定する、ことを特徴とする請求項1に記載のタイミング制御回路。
【請求項3】
前記制御回路は、前記遅延回路が前記位相差を調整するための設定値を変更し、各設定値毎に前記メモリが前記データが書き込めるかを判定し、前記メモリに前記データが書き込めると判定した複数の設定値のうちの最大値を最小値とを得るトレーニング回路を含む、請求項1又は2に記載のタイミング制御回路。
【請求項4】
前記トレーニング回路は、前記データのビット毎に前記メモリに書き込めるか否かを判定し、前記データの全てのビットに基づいて前記ウインドウ幅を計測する、請求項3に記載のタイミング制御回路。
【請求項5】
前記制御回路は、
前記トレーニング回路にて得た設定値の最大値と最小値を第1のレジスタに保持し、前記遅延回路に対して変更された設定値に基づいて前記トレーニング回路にて得られた最大値と最小値とを第2のレジスタに保持し、前記第1のレジスタに保持した最大値及び最小値により第1のウインドウ幅を算出し、前記第2のレジスタに保持した最大値及び最小値に基づいて第2のウインドウ幅を算出し、前記第1のウインドウ幅と前記第2のウインドウ幅とを比較し、前記第2のウインドウ幅が前記第1のウインドウ幅より大きい場合に、前記第2のレジスタに保持した最大値及び最小値を前記第1のレジスタに保持するタイミングマージン判定回路を含む、請求項3又は4に記載のタイミング制御回路。
【請求項6】
前記可変容量は、
前記メモリをアクセスする回路が搭載されたチップに形成された第1の可変容量と、
前記チップに動作電圧を供給する電源線を含むパッケージに搭載された第2の可変容量とを含み、
前記制御回路は、前記第1の可変容量の容量値と前記第2の可変容量の容量値とをそれぞれ制御する、請求項1〜5のうちの何れか一項に記載のタイミング制御回路。
【請求項7】
第1電源線と第2電源線との間に接続された可変容量の容量値を制御し、
第1電源線と第2電源線との間に接続された第1の出力回路から出力される第1信号と、第1電源線と第2電源線との間に接続された第2の出力回路から出力される第2信号との位相差を調整し、
調整される前記第1信号及び前記第2信号における複数の位相差毎に前記第1信号に基づくデータがメモリに書き込めるか否かを判定して前記第1信号のウインドウ幅を計測し、より大きいウインドウ幅に対応する容量値を前記可変容量に設定する、
ことを特徴とするタイミング制御方法。
【請求項8】
データとデータストローブ信号を出力するシステム装置と、
前記データを前記データストローブ信号に基づいて取り込むメモリと、
を含み、
前記システム装置は、
第1電源線と第2電源線との間に接続され、第1信号を出力する第1の出力回路と、
第1電源線と第2電源線との間に接続され、第2信号を出力する第2の出力回路と、
第1電源線と第2電源線との間に接続された可変容量と、
前記第1信号と前記第2信号との位相差を調整する遅延回路と、
前記可変容量の容量値を制御し、前記遅延回路により調整される前記第1信号及び前記第2信号における複数の位相差毎に前記第1信号に基づくデータがメモリに書き込めるか否かを判定して前記第1信号のウインドウ幅を計測し、より大きいウインドウ幅に対応する容量値を前記可変容量に設定する制御回路と、
を有する、システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2012−169841(P2012−169841A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−28877(P2011−28877)
【出願日】平成23年2月14日(2011.2.14)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願日】平成23年2月14日(2011.2.14)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
[ Back to top ]