説明

可変遅延制御装置

【課題】 高速外部デバイスとの安定したインターフェースを行なえる可変遅延制御装置を提供する。
【解決手段】 外部から入力されるデータ信号と、データの入出力の識別を行うストローブ信号とを遅延させる遅延値が可変である遅延素子を備えた可変遅延制御装置であって、クロックツリーを介したストローブ信号とクロックツリーを介さないストローブ信号を入力とし、前記2つの信号の遅延差を算出する遅延値算出回路24を備え、該遅延差をデータ信号遅延用の遅延素子に出力してデータ信号の遅延値に反映させることにより、デバイス自体の温度の上昇や電源電圧の揺れ等によりデータ信号とストローブ信号間のマージンが変化しても、安定したデータ転送を実現する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は可変遅延制御装置に関し、ストローブ信号に同期して出力されるデータ信号を安定かつ適切に取り込む可変遅延制御装置に関する。
【背景技術】
【0002】
近年、半導体プロセスの微細化により高速プロセッサーを核として1チップの超高集積度回路(以下、「LSI」という)でひとつのシステム(SOC)を構築することが可能となっており、あらゆる電化製品において必要不可欠となっている。これらは通常内部でデータをディジタル信号として処理をしている関係上大規模なDynamic Random Access Memory(以下、「DRAM」という)と呼ばれる外部メモリを必要とすることが多い。特に映像関係では大量のデータを高速でアクセスする必要性から、DRAMの中でもアクセススピードの速いDouble Data Rate Synchronos DRAM(以下、「DDR−SDRAM」という)が用いられている。
【0003】
DDR−SDRAMは、アドレス(読み書きする位置)/コマンド(読み書きなどの指示)の転送タイミングについてはクロック1周期ごとに行われるが、データだけクロック信号の1/2周期で転送することにより、データ転送を2倍速化するものである。
【0004】
DDR−SDRAMとのデータインターフェースの手法としては、データを送る側のデバイスがデータ信号と、そのデータ信号に同期もしくは一定の位相差を持ったストローブ信号を同時に送信し、受け取り側デバイスでそのストローブ信号を用いることにより、データを取り込むタイミングを識別してデータを内部に取り込む手法が一般的である。
【0005】
これらをLSI上で実施するためには、外部からのクロック信号と内部出力クロック信号との位相を合わせるよう調整しなければならない。このために、Delay Locked Loop(遅延ロックループ、以下、「DLL」という)が用いられている。DLLを用いた従来技術の構成としては図3のように示される。また、DDR−SDRAMとのインターフェースを前提としたデータの入力タイミングは図4のように示される。
【0006】
データを4ビットと仮定して説明すると、図3に示すように、従来の信号遅延装置は、DLL101、遅延設定値算出回路102、遅延素子103、データ保持用フリップフロップ104〜107を備えている。また、更に、DLL101は遅延素子108、遅延制御回路109及び位相比較器110を備えている。
【0007】
まず、DLL101の基本動作を説明する。遅延素子108は、所定の単位遅延の整数倍の遅延値が設定される可変遅延素子であり、外部からの基準クロック信号が遅延素子108に入力されると、該遅延素子108により遅延させられた基準クロック信号は位相比較器110に入力され、位相比較器110では、遅延素子108から出力された信号と遅延素子108に入力する前の基準クロック信号との位相比較が行われ、その差分信号が遅延制御回路109に送られる。該遅延制御回路109では前記差分信号に応じて遅延値を設定して遅延素子108の遅延をフィードバック制御し、DLL101は、最終的に基準クロック信号を1周期遅らせることができる遅延量で安定する。
【0008】
遅延設定値算出回路102では、遅延制御回路109から入力される遅延設定値及び外部から入力される位相設定値よりストローブ信号を遅延させる遅延素子103の遅延設定値を算出する。尚、遅延素子103と遅延素子108は回路的にもレイアウト的にも全く同一である必要がある。
【0009】
ストローブ信号は、前記の通りに設定された前記遅延素子103に入力され、遅延されて遅延ストローブ信号としてフリップフロップ104〜107に出力される。
【0010】
例えば、前記位相設定値が25%であるとすると、遅延設定値算出回路102は基準クロックの25%の遅延値を遅延素子103に設定し、遅延素子103は入力されるストローブ信号を当該遅延値だけ遅延させて、フリップフロップ104〜107に出力することになる。その結果、図4に示すようにデータの2つの変化点のちょうど中間点で安定してデータをラッチすることができるようになる。尚、図4では入力データは一般的なDDR−SDRAMから出力されることを前提にしているため、データ信号とストローブ信号は同期して入力されている。また、データ信号は基準クロックtsdckの半分の周期で変化している。
【0011】
しかし、このような従来の技術においては、データ信号の入力部からフリップフロップのデータ入力に達する遅延時間(以下、「データ遅延時間」という)やストローブ信号が入力されてから遅延素子103の入力に達する遅延時間、遅延素子103の出力からデータを保持するフリップフロップ104〜107までに配される2分木(以下、「クロックツリー」という)による遅延時間(以下、前記の2つの遅延時間を足したものを「ストローブ信号のクロックツリー遅延時間」という)を考慮していない。クロックツリーは、レイアウトツールによって、フリップフロップを含めた部品全体の配置処理を行い、クロック信号を供給すべきフリップフロップを抽出してフリップフロップのペアを作成して配線で結合すると言う形で構成される。その際、親の頂点からひとつ下の子の頂点までのスキュー(クロック到達時刻の差)ゼロ点を求め、木を組み上げてゆくことによって、結果としてクロックパルス発生器からフリップフロップまでのゼロスキュー配線を可能とするものである。フリップフロップ104〜107においてはストローブ信号遅延素子103の遅延値が固定されていると仮定すると、このデータ遅延時間とストローブ信号のクロックツリー遅延時間の差分が図4に示したデータのマージンmsとmhに影響する。
【0012】
すなわち、ストローブ遅延素子103においてデータ有効幅のほぼ真ん中に位置していた遅延ストローブ信号は、データ遅延時間及びストローブ信号のクロックツリー遅延時間の大小に応じて図5の(a)や(b)のようにデータ幅の前端、後端に位置してしまう。
【0013】
無論、外部から入力される位相設定値を変更することによりある程度は調整ができる。但し、ストローブ信号のクロックツリー遅延時間がデータ遅延時間よりデータ信号の1周期分以上遅延した場合、遅延素子であるストローブ信号遅延素子103では対応ができない。又、データ遅延時間がストローブ信号のクロックツリー遅延時間よりも大きい場合は、ストローブ信号遅延素子103の単位遅延素子の数を増やすことにより対応可能であるが、遅延素子を数多く通すことは消費電力やクロックジッター(時間軸のずれ)が増大するという観点からも避けるべきである。これらを考慮すると、データ遅延時間とストローブ信号のクロックツリー遅延時間は等しいことが望ましいことがわかる。
【0014】
この課題を解決するため、従来は、データ信号とフリップフロップの入力部との間にストローブ信号のクロックツリーと遅延時間が同等となるようにバッファを挿入していた。(例えば、特許文献1参照)
【特許文献1】特開2005−94597号公報
【発明の開示】
【発明が解決しようとする課題】
【0015】
しかしながら、この従来手法では、ある1条件でストローブ信号のクロックツリーの遅延時間と同等な遅延を再現できたとしても、もし、この条件が満たされなくなった場合、例えば、通常動作における半導体装置自身からの発熱や電源電圧の変動に伴う、遅延素子の遅延の変化量と配線による遅延の変化量が違うとき、データ信号の遅延とクロックツリーの遅延との間に差が生じてしまい意味をなさなくなる。また、クロックツリーと同じ遅延時間を再現するレイアウトのデータ信号のバッファを実現するのも現実的には不可能である。
【0016】
そこで本発明は、従来の信号遅延装置が有する問題を鑑みてなされたものであり、高速外部デバイスとの安定したインターフェースを行なえる可変遅延制御装置の提供を目的とする。
【課題を解決するための手段】
【0017】
斯かる実情に鑑み、第1の発明による可変遅延制御装置は、外部より入力されるデータ信号を設定値に応じて遅延させることができるデータ信号遅延素子と、該データ信号を内部でラッチする際に使用するストローブ信号を遅延させるストローブ信号遅延素子と、複数の前記データ信号の数に対応する数だけ設けられそれぞれ前記データ信号遅延素子で遅延されたデータを前記ストローブ信号遅延素子で遅延されたストローブ信号にてラッチするフリップフロップとを備えた可変遅延制御装置であって、
前記データ信号遅延素子と前記ストローブ信号遅延素子は同じ単位遅延素子及び回路構造を有し、ストローブ信号入力部から前記フリップフロップの間に配されたバッファを通ったストローブ信号と前記バッファを通らないストローブ信号の位相を比較して遅延値を算出する遅延値算出回路を備え、前記遅延値算出回路が算出した前記遅延値をデータ信号遅延素子の遅延値に反映させることを特徴とする。
【0018】
また、第2の発明による可変遅延制御装置は、外部からのクロック信号と内部出力のクロック信号との位相を調整するDLL回路と、該DLL回路から出力される遅延値と外部から入力される位相設定値とからストローブ信号を遅延させる遅延値を算出するストローブ信号遅延設定値算出回路を備え、前記データ信号遅延素子に反映させるために出力する遅延値は、前記遅延値算出回路が、前記バッファを通ったストローブ信号と前記バッファを通らないストローブ信号の位相差から算出した遅延値から前記ストローブ信号遅延設定値算出回路より入力される遅延値を差し引いた値とし、ストローブ信号入力部からフリップフロップまでの信号の遅れによるストローブ信号とデータ信号の遅延差をなくすことを特徴とする。
【0019】
また、第3の発明による可変遅延制御装置は、前記バッファを通ったストローブ信号と前記バッファを通らないストローブ信号の位相差から遅延値を算出するために、前記ストローブ信号入力部から前記フリップフロップの間に配されたバッファ及びストローブ信号遅延素子を通ったストローブ信号と、前記バッファを通らないで前記遅延値算出回路の遅延素子を通ったストローブ信号との位相を位相比較器により比較して位相情報を出力し、遅延制御回路が、前記位相比較器から入力された前記位相情報から遅延値を算出し、前記遅延値算出回路の遅延素子に該遅延値を出力してフィードバック制御を行うことを特徴とする。
【0020】
また、第4の発明による可変遅延制御装置は、各データ信号遅延素子が、全て同じ遅延設定値に応じて前記データ信号を遅延させることを特徴とする。
【0021】
また、第5の発明による可変遅延制御装置は、前記遅延値算出回路の遅延制御回路に、外部から初期値を設定することが可能であることを特徴とする。
【発明の効果】
【0022】
上記のような構成にすることにより、従来では固定遅延で調整されていた(又は、全く何の調整もされていなかった)データ信号の遅延とストローブ信号のクロックツリーによる遅延が動的に調整可能なため、たとえ半導体装置そのものの温度が上昇して遅延素子の特性がシフトしたとしても、常にデータ信号の遅延とストローブ信号のクロックツリーによる遅延差は許容範囲以内におさまることになり、その結果DLLの許容範囲を越えることなく安定した読み出し動作を実現することができる。
【0023】
また、上記の実施の態様において、前記データ信号遅延素子の遅延設定手段は外部から初期値が設定されてもよい。
【0024】
このような構成にすることにより、前記データ信号遅延素子の遅延設定が決まるまでの時間を短縮することができる。
【0025】
本発明は外部デバイスとのインターフェイスを必要とする半導体集積回路に適用可能である。
【発明を実施するための最良の形態】
【0026】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。図1は、本発明の可変遅延制御装置の実施例を示す回路図である。
【0027】
まず、以下に、本発明に係る可変遅延制御装置の構造、機能についての説明を行う。
図1において、本発明の可変遅延制御装置1は、例えば、入力されるデータを4ビットとした場合、入力されるデータ0からデータ3の数に対応する同じ構成を持つデータ信号用遅延素子2、3、4、5、ストローブ信号用遅延素子6、外部より入力されるデータの入出力を司るリード・ライトモード切替信号により制御されるデータ出力用トライステートバッファ7、8、9、10、前記リード・ライトモード切替信号により制御されるストローブ信号出力用トライステートバッファ11、ストローブ信号のクロックツリーバッファ12、13、14、15、16、17、データ保持用のフリップフロップ18、19、20、21、前記ストローブ信号用遅延素子と同じ構成の遅延素子を有するDLL22、前記DLL22と外部から入力される位相設定値よりストローブ信号用遅延素子の遅延設定値を算出する遅延設定値算出回路23、データ信号用遅延素子の遅延値算出回路24等を備えている。また、DLL22は、位相比較器25、遅延素子26、遅延制御回路27等を備える。データ信号用遅延素子の遅延値算出回路24は、位相比較器28、遅延素子29、外部より初期値を設定可能な遅延制御回路30等を備えている。
【0028】
データ信号用遅延素子2、3、4、5は全て同一の回路構成、レイアウトを有し、それぞれデータ0からデータ3が入力される。
データ信号用遅延素子2、3、4、5はそれぞれ直接フリップフロップ18、19、20、21のデータ端子に接続されており、それぞれデータ0〜3から入力されるデータを遅延値算出回路24で算出される設定遅延値だけ遅延させてフリップフロップ18、19、20、21のデータ端子に出力する。
【0029】
ストローブ信号用遅延素子6にはレイアウトツールにより挿入されたクロックツリー用のバッファ12、13を介してストローブ信号が入力され、また遅延設定値算出回路23よりストローブ信号用遅延素子6にストローブ信号の遅延設定値が入力され、前記クロックツリー同様のバッファ14、15、16、17を介して全てのフリップフロップ18、19、20、21のクロック端子に出力する。又、外部デバイスに対して書き込みを行なう時に使用されるトライステートバッファ11には基準クロックが入力される。
【0030】
遅延値算出用回路24の遅延素子29はクロックツリーを介さないストローブ信号を入力とし、遅延制御回路30により設定される遅延値だけストローブ信号を遅延させて、位相比較器28に出力する。
【0031】
位相比較器28は、遅延素子29とレイアウトツールにより挿入されたクロックツリーバッファ14、15、17を介したストローブ信号を入力とし、その位相差に応じた信号を遅延制御回路30に出力する。尚、クロックツリーを介したストローブ信号はレイアウトツールにより全フリップフロップ18、19、20、21のクロック端子とスキューがほとんどないことが望まれる。
【0032】
遅延制御回路30は、位相比較器28からの出力、外部入力の遅延初期値、前記遅延初期値を有効にする初期値イネーブル信号、遅延設定値算出回路23からの出力が入力され、データ信号遅延素子2、3、4、5の遅延設定値端子へと出力される。
【0033】
遅延設定値算出回路23は、DLL22の遅延制御回路27から入力される遅延設定値と、外部入力である位相設定値を入力として、位相設定値にあたる遅延素子の設定値を遅延素子6、遅延値算出回路24中の遅延制御回路30に出力する。
【0034】
DLL22の遅延素子26には基準クロックが入力され、遅延素子26は入力される基準クロックの1周期分を遅延させて位相比較器25に出力する。この遅延素子26に入力される基準クロックはストローブ信号と同じ周期クロックである。
【0035】
位相比較器25は遅延素子26で遅延させられた基準クロックと遅延していない状態の基準クロックとの位相を比較し、位相情報を遅延制御回路27に出力する。遅延制御回路27は位相比較器25より入力された情報を基にフィードバック制御を行って遅延素子26の遅延値の設定を行い、遅延素子26で基準クロックの1周期分の遅延をさせるように動作する。
【0036】
なお、前記遅延素子2、3、4、5、6、26、29はそれぞれ同じ単位遅延素子、回路構造を持ち、たとえば図2に示すような遅延素子50のような構造を備えている。この遅延素子50は、複数の単位遅延素子51a〜51nと選択回路52を備えており、設定される遅延値に応じて選択回路52が対応した遅延素子51a〜51nまでの遅延ラインを選択して、この選択した遅延素子を通ったデータ信号又はストローブ信号を出力する。
【0037】
次に、本実施形態に係る可変遅延制御装置1の動作について説明する。
まず、本可変遅延制御装置が搭載されるシステム全体に電源が供給されるとまず基準クロックの発振が開始される。前記基準クロックの生成方法についてはここでは問わない。
【0038】
基準クロックが入力されるとDLL22は、遅延素子26が基準クロックの1周期分の遅延を持つ状態で安定する。(以下、本状態を「ロック」という)そして、基準クロックを1周期遅らせるための前記単位遅延素子の段数(以下、「ロック段数」という)が遅延設定値算出回路23に出力される。
【0039】
前記ロック段数より、外部入力される位相設定値に対応した遅延の設定値がストローブ信号用遅延素子6に出力される。例えば、前記ロック段数が前記単位遅延素子12段として、位相設定値が25%であれば、遅延の設定値は3段となる。
【0040】
DLL22がロック後、外部より入力される位相設定値と前記リード・ライトモード切替信号はライト状態となり、ストローブ信号には基準クロックが入力される。前記基準クロックは、ストローブ信号として外部デバイスに対して出力されるとともに、前記ストローブ信号のクロックツリー12、13、14、15、16、17及びストローブ信号用遅延素子6を介して、各フリップフロップ18〜21、遅延値算出回路24の位相比較器28に供給される。
【0041】
遅延値算出回路24には、前記クロックツリーを介したストローブ信号と前記クロックツリーを介さないストローブ信号が入力される。
すなわち、位相比較器28に、前記クロックツリーを介したストローブ信号と、前記クロックツリーを介さないストローブ信号を遅延素子29で遅延させたストローブ信号が入力される。
【0042】
位相比較器28から前記2つの信号の位相差が遅延制御回路30に出力され、遅延制御回路30では前記位相差をなくすよう遅延素子29に対してフィードバック制御を行うため遅延の設定値を出力する。つまり、遅延値算出回路24では、前記クロックツリーを介したストローブ信号と前記クロックツリーを介さないストローブ信号との遅延差分が前記単位遅延素子で何個分にあたるかを算出している。尚、あらかじめ論理回路のタイミングを検証するためのツール、スタティック・タイミング・アナライザ(Static Timing Analyzer)などにより前記ストローブ信号のクロックツリー遅延値を見積もっておき、それに応じた値を外部より位相初期値信号として入力すれば、上記設定遅延値の算出までの時間を短縮することができる。その際、外部からの前記位相初期値信号はシステムの立ち上げ時のみ採用する必要があるため、位相初期値イネーブル信号をアクティブにして遅延制御回路30に前記位相初期値信号を与える必要がある。
【0043】
そして、遅延制御回路30では、算出された上記遅延素子29への設定値から遅延設定値算出回路23より入力されるストローブ信号用遅延素子6に対する遅延の設定値を差し引き、データ信号用遅延素子2、3、4、5に出力する。
【0044】
前記遅延制御回路30の機能により、前記遅延差分は、遅延設定値算出回路23により遅延値が設定されているストローブ信号用遅延素子6の遅延分が差し引かれ、実際に必要なストローブ信号のクロックツリーの遅延について前記単位遅延素子の整数倍値で算出し、データ遅延素子2、3、4、5で使用することができる。
【0045】
もし、デバイス自体の温度の上昇や電源電圧の揺れにより前記ストローブ信号のクロックツリーの遅延と遅延素子29での遅延との間に差分が生じ、データ信号とストローブ信号間のマージンが変化したとしても、位相比較器28と遅延制御回路30により迅速に補正が行なわれるため、安定したデータ転送を実現することができる。
【0046】
尚、ここまでは外部デバイスへのライトモードでの動作を説明したが、リードモード時もストローブ信号のソースが外部デバイスより供給されることを除いて何ら変わりがないため省略する。
【0047】
このように、本実施の形態の可変遅延制御装置1は、前記ストローブ信号のクロックツリーの遅延と同等の遅延を複数のデータ信号0〜3とそれぞれのデータを前記ストローブ信号で保持するフリップフロップ18〜21のデータ端子間に実現することにより、前記クロックツリーによるマージン減少を防ぎ、カスタムICと呼ばれるASIC(Application Specific Integrated Circuit、特定用途向け集積回路)レイアウト工程の生産性の向上及び外部高速デバイスとの安定したデータの転送を適切に行なうことができる。
【0048】
尚、本発明の可変遅延制御装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【0049】
【図1】本発明の実施の形態に係る可変遅延制御装置の構成を示す回路図である。
【図2】本発明の実施の形態に係る可変遅延制御装置の中で使用されている遅延素子の構成を示す回路図である。
【図3】従来技術における信号遅延装置の構成を示す回路図である。
【図4】DDR−SDRAMとのデータインターフェースタイミングチャートの図である。
【図5】データ信号における遅延時間とストローブ信号のクロックツリーによる遅延時間の差によるマージンの減少を示すデータインターフェースタイミングチャートの図である。
【符号の説明】
【0050】
1 可変遅延制御装置
2、3、4、5 データ信号用遅延素子
6 ストローブ信号用遅延素子
7、8、9、10 データ出力用トライステートバッファ
11 ストローブ信号出力用トライステートバッファ
12、13、14、15、16、17 バッファ
18、19、20、21 フリップフロップ
22 DLL
23 遅延設定値算出回路
24 遅延値算出回路
25、28 位相比較器
26、29 遅延素子
27、30 遅延制御回路
50 遅延素子
51 単位遅延素子
52 選択回路
101 DLL
102 遅延設定値算出回路
103、108 遅延素子
104、105、106、107 フリップフロップ
109 遅延制御回路
110 位相比較器

【特許請求の範囲】
【請求項1】
外部より入力されるデータ信号を設定値に応じて遅延させることができるデータ信号遅延素子と、該データ信号を内部でラッチする際に使用するストローブ信号を遅延させるストローブ信号遅延素子と、複数の前記データ信号の数に対応する数だけ設けられそれぞれ前記データ信号遅延素子で遅延されたデータを前記ストローブ信号遅延素子で遅延されたストローブ信号にてラッチするフリップフロップとを備えた可変遅延制御装置において、
前記データ信号遅延素子と前記ストローブ信号遅延素子は同じ単位遅延素子及び回路構造を有し、
ストローブ信号入力部から前記フリップフロップの間に配されたバッファを通ったストローブ信号と前記バッファを通らないストローブ信号の位相を比較して遅延値を算出する遅延値算出回路を備え、
前記遅延値算出回路が算出した前記遅延値を、データ信号遅延素子の遅延値に反映させることを特徴とする可変遅延制御装置。
【請求項2】
外部からのクロック信号と内部出力のクロック信号との位相を調整するDLL回路と、該DLL回路から出力される遅延値と外部から入力される位相設定値とからストローブ信号を遅延させる遅延値を算出するストローブ信号遅延設定値算出回路を備え、
前記データ信号遅延素子に反映させるために出力する遅延値は、前記遅延値算出回路が、前記バッファを通ったストローブ信号と前記バッファを通らないストローブ信号の位相差から算出した遅延値から前記ストローブ信号遅延設定値算出回路より入力される遅延値を差し引いた値とし、ストローブ信号入力部からフリップフロップまでの信号の遅れによるストローブ信号とデータ信号の遅延差をなくすことを特徴とする請求項1に記載の可変遅延制御装置。
【請求項3】
前記バッファを通ったストローブ信号と前記バッファを通らないストローブ信号の位相差から遅延値を算出するには、前記ストローブ信号入力部から前記フリップフロップの間に配されたバッファ及びストローブ信号遅延素子を通ったストローブ信号と、前記バッファを通らないで前記遅延値算出回路の遅延素子を通ったストローブ信号との位相を位相比較器により比較して位相情報を出力し、遅延制御回路が、前記位相比較器から入力された前記位相情報から遅延値を算出し、前記遅延値算出回路の遅延素子に該遅延値を出力してフィードバック制御を行うことを特徴とする請求項2に記載の可変遅延制御装置。
【請求項4】
各データ信号遅延素子は、全て同じ遅延設定値に応じて前記データ信号を遅延させることを特徴とする請求項3に記載の可変遅延制御装置。
【請求項5】
前記遅延値算出回路の遅延制御回路に、外部から初期値を設定することが可能であることを特徴とする請求項3又は4に記載の可変遅延制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2007−336028(P2007−336028A)
【公開日】平成19年12月27日(2007.12.27)
【国際特許分類】
【出願番号】特願2006−163059(P2006−163059)
【出願日】平成18年6月13日(2006.6.13)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】