説明

性能監視用クリティカルパス回路

目標タイミング・マージンを有する、クリティカルパス中のタイミングを監視する監視回路を含む集積回路が、開示される。監視回路は、2つのシフト・レジスタを含み、シフト・レジスタの1つは、受領信号に遅延値を加える遅延素子を含む。2つのシフト・レジスタの入力部は、入力信号を受領することができる信号入力ノードを形成する。監視回路は、出力部および少なくとも2つの入力部を有する論理ゲートも含み、各入力部は、2つのシフト・レジスタの出力部の対応する1つに接続される。論理ゲートの出力部は、目標タイミング・マージンが満足されるか、または満足されないかを示す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル集積回路に関し、具体的には、デジタル回路内のタイミング・エラー検出に関する。
【背景技術】
【0002】
最近、回路設計者は、集積回路(IC)内のエラーを予測するのに様々な手法を検討している。そうした1つの手法は、クリティカルパス性能監視として知られる。従来のクリティカルパス性能監視においては、回路設計者は、集積回路の正常な動作にとって決定的であるとみなされる1つまたは複数の信号パス(「クリティカルパス」または「クリティカル・データパス」として知られる)、通常は最大遅延を含むパスを特定する。クリティカルパス内の所与の回路素子に関して、さらに、設計者は、目標タイミング・マージン、すなわち、クロック信号遷移に対してデータ信号遷移がその前に回路素子に到達する時間周期を特定する。各クリティカルパスの信号のタイミングを監視するために、集積回路上に、タイミング監視回路(または「経時変化センサ」)が提供される。集積回路が時間と共に経時変化するとき、各クリティカルパスの信号の実タイミングは、悪くなる傾向がある。クリティカルパスの信号の実タイミング・マージンが、目標タイミング・マージン未満であることを、タイミング監視回路が判定するとき、回路エラーが起こる可能性が高いことを予測することができ、集積回路は、たとえば、クロック周波数、電圧供給、またはさらに集積回路内のトランジスタの本体バイアス電圧を調整することによって、自己補正するように処置をとることができる。たとえば、それぞれ、参照によりその全体が本明細書に組み込まれている、Neil Savage、「Intel and ARM are Exploring Self−Correction Schemes to Boost Processor Performance and Cut Power」、Spectrum Online、2008年2月、http://www.spectrum.ieee.org/feb08/5975、およびMridul Agarwalら、「Circuit Failure Prediction and its application to Transistor Aging」、第25回IEEE VLSI Test Symposium、2007年5月6日〜10日、277〜286頁を参照されたい。
【0003】
図1は、Agarwalらによって記述された、クリティカルパス102およびタイミング監視回路110を含む集積回路100のブロック図である。クリティカルパス102は、回路素子104、106を含む。タイミング監視回路110は、(i)クリティカルパス102中の回路素子104の後で回路素子106の前に挿入されるD型フリップ・フロップ118と、(ii)クリティカルパス102に沿ったこの位置の目標タイミング・マージンに等しい遅延値Tを有し、第1の回路素子104の出力部に接続する遅延素子114と、(iii)遅延素子114の出力部に接続する別のD型フリップ・フロップ116と、(iv)フリップ・フロップ118、116の出力部に接続する排他的論理和(XOR)論理ゲート122とを含む。適用例に応じて、遅延値Tは、通常、数百ピコ秒から数ナノ秒までの範囲内にある。タイミング監視回路110は、回路素子104の出力部において現れる信号112のコピーを遅延値Tだけ遅らせ、フリップ・フロップ116においてその遅延信号をラッチし、XOR論理ゲート122を介してフリップ・フロップ116からの出力と、フリップ・フロップ118の出力部において現れる出力信号120とを比較することによって動作する。次に、XOR論理ゲート122からの出力信号126は、タイミング・エラー表示レジスタ124内にラッチされ、タイミング・エラー表示レジスタ124は、出力信号128を生成する。次に、出力信号128は、コントローラに渡され、コントローラは、出力信号128に基づいて、集積回路のクロックレートまたは供給電圧のいずれかを調整することができる。
【0004】
第1の例として、信号112が、論理値0から論理値1へのデータ遷移を含み、フリップ・フロップ116のセットアップ時間がちょうど満足される(すなわち、タイミング・マージンが0である)とすると、論理値1は、クロックCLと共にフリップ・フロップ116内に正常にラッチされる。0から1への遷移がクロックCLに対して多少早い時間でフリップ・フロップ118の入力部Dに到達するため、フリップ・フロップ118も、論理値1で正常にラッチする。両フリップ・フロップが同じ出力値を有するため、XORタイミング・エラー表示レジスタ126は、論理値0を有する。この論理値0は、クリティカルパス中のフリップ・フロップ118が、遅延値Tに設定される少なくとも目標タイミング・マージンまでは、そのセットアップ時間が満足されたことを示す。
【0005】
第2の例として、信号112の0から1へのデータ遷移が、以上の例よりもわずかな時間遅れて起こるとき(たとえば、クリティカルパス102中の信号112の上流における回路素子の経時変化のために)、フリップ・フロップ118は、クロックCLと共に論理値1で正常にラッチすることができるが、フリップ・フロップ116は、遅延値Tのために論理値0でラッチする。ここで、XORタイミング・エラー表示レジスタ126は、論理値1を有し、セットアップ異常が、フリップ・フロップ116内で起こり、フリップ・フロップ118は、遅延値T未満のセットアップ・マージンを有することを示す。したがって、タイミング・エラーは、たとえば、回路が経時変化し続けるときに、起こる傾向にある。
【0006】
しかし、ある環境の下では、タイミング監視回路110は、セットアップ異常が起こっても、クリティカルパス102のタイミングが満足されるエラー表示を行う可能性がある。具体的には、0から1への遷移が、以上の第2の例よりも遅れて起こるとき、両フリップ・フロップ116、118は、セットアップ異常となるが、誤って論理値0でラッチする可能性がある。この場合には、XORタイミング・エラー表示レジスタ126は、両フリップ・フロップにおけるセットアップ異常の場合を検出することができないため、誤って論理値0を示す。
【0007】
検出漏れを起こす、この感受性に加えて、タイミング監視回路110は、いくつかの他の欠点を有する。第1に、1つの遅延素子114しか使用しないため、その素子の遅延値Tの分解能でしかタイミングの問題を特定することができない。
【0008】
第2に、タイミング監視回路110がクリティカルパス102のタイミングを試験するのに、タイミング・エラー(または成功)表示を生成するのに十分な、信号112のデータ遷移を起こすために、クリティカルパス102中に、ある最小量のデータ・アクティビティが起こる必要がある。クリティカルパス102中に、データ・アクティビティがほとんどないとき、クリティカルパス102中の遅延(たとえば、経時変化のために)は、生じるが、タイミング監視回路110によって検出することはできない。
【0009】
第3に、タイミング監視回路は、通常、集積回路の物理設計および静的タイミング解析(クリティカルパスの特定を含む)が完了した後にのみ、集積回路に付加される。しかし、タイミング監視回路110内のフリップ・フロップ118が、クリティカルパス102中に挿入されるとき、クリティカルパス102のタイミングおよび負荷の両方が影響を受ける。したがって、タイミング監視回路110が配置された後、回路負荷およびタイミング解析を反復させる必要がある可能性があり、物理設計は、タイミング監視回路110を収容するのに変更する必要がある可能性がある。そうした変更は、集積回路の設計スケジュールに重大な影響を及ぼす可能性がある。
【先行技術文献】
【非特許文献】
【0010】
【非特許文献1】Neil Savage、「Intel and ARM are Exploring Self−Correction Schemes to Boost Processor Performance and Cut Power」、Spectrum Online、2008年2月、http://www.spectrum.ieee.org/feb08/5975
【非特許文献2】Mridul Agarwalら、「Circuit Failure Prediction and its application to Transistor Aging」、第25回IEEE VLSI Test Symposium、2007年5月6日〜10日、277〜286頁
【発明の概要】
【発明が解決しようとする課題】
【0011】
先行技術における問題は、本発明の原理により、集積回路内の被監視クリティカルパスの近傍の領域内に配置される改良型タイミング監視回路によって解決される。
【課題を解決するための手段】
【0012】
したがって、一実施形態において、本発明は、その中のクリティカルパス中のタイミングを監視する監視回路を含む集積回路である。クリティカルパスは、目標タイミング・マージンを有する。監視回路は、入力部および出力部を有し、遅延値を受領信号に加える遅延回路を有する第1のシフト・レジスタを含む。監視回路は、入力部および出力部を有する第2のシフト・レジスタをさらに含み、第1および第2のシフト・レジスタの入力部は、入力信号を受領することができる信号入力ノードを形成するために、共に接続される。監視回路は、出力部および少なくとも2つの入力部を有する論理回路も含み、各入力部は、第1および第2のシフト・レジスタの出力部の対応する1つに接続される。論理回路の出力部は、目標タイミング・マージンが満足されるか、または満足されないかを示す。
【0013】
別の実施形態において、本発明は、集積回路内のクリティカルパス中のタイミングを監視する装置である。クリティカルパスは、目標タイミング・マージンを有する。本装置は、(a)入力信号を、第1のシフト・レジスタを含む第1のパスと、第2のシフト・レジスタを含む第2のパスとに分割する手段と、(b)第1のパス中の入力信号を第1の遅延量だけ遅延させる手段と、(c)第2のパス中の入力信号を第1のパス中の遅延入力信号と比較する手段と、(d)前記比較に基づいて、目標タイミング・マージンが満足されるか、または満足されないかを示す出力を生成する手段とを含む。
【0014】
さらに、別の実施形態において、本発明は、集積回路内のクリティカルパス中のタイミングを監視する方法である。クリティカルパスは、目標タイミング・マージンを有する。入力信号は、第1のシフト・レジスタを含む第1のパスと、第2のシフト・レジスタを含む第2のパスとに分割される。第1のパス中の入力信号は、第1の遅延量だけ遅延する。第2のパス中の入力信号は、第1のパス中の遅延入力信号と比較される。最後に、前記比較に基づいて、目標タイミング・マージンが満足されるか、または満足されないかを示す出力が生成される。
【0015】
本発明の他の態様、特徴、および利点は、以下の詳細な説明、添付の特許請求の範囲、および添付の図面によって、より十分に明らかになり、同様の参照番号は、類似または同一の素子を特定する。
【図面の簡単な説明】
【0016】
【図1】先行技術タイミング監視回路の概略ブロック図である。
【図2】本発明の一実施形態による、タイミング監視回路の概略ブロック図である。
【図3】本発明の別の実施形態による、細密遅延検出器を含むタイミング監視回路の概略ブロック図である。
【図4】図3の細密遅延検出器の一実施形態の詳細ブロック図である。
【図5】図4に示される細密遅延検出器を含む、図3に示されるタイミング監視回路の動作を示すタイミング図である。
【図6】図4に示される細密遅延検出器を含む、図3に示されるタイミング監視回路の動作を示すタイミング図である。
【図7】図4に示される細密遅延検出器を含む、図3に示されるタイミング監視回路の動作を示すタイミング図である。
【発明を実施するための形態】
【0017】
図2は、本発明の一実施形態によるタイミング監視回路210を含む集積回路200を示す。タイミング監視回路210は、回路素子204および206を含むクリティカルパス202の十分近傍に配置するのが好ましく、したがって、タイミング監視回路210は、クリティカルパス202中の回路素子と同じプロセス、電圧、温度、および経時変化作用を受ける。クリティカルパス102内に配置され、クリティカルパス102に接続する、図1において上述したタイミング監視回路110とは対照的に、タイミング監視回路210は、クリティカルパス202とは十分に独立している(すなわち、クリティカルパス202と共通する部品がなく、タイミング監視回路210およびクリティカルパス202が共有することができるクロックCLを除いて、クリティカルパス202を横断する信号に依存しない)のが好ましい。
【0018】
タイミング監視回路210は、(i)D型フリップ・フロップ232および234によって形成される第1のシフト・レジスタ230と、(ii)D型フリップ・フロップ242および248によって形成される第2のシフト・レジスタ240とを含む。第2のシフト・レジスタ240は、遅延値TDELAYを供給する遅延素子244をさらに含む。遅延値TDELAYの設計値は、クリティカルパス202中の回路素子206の目標タイミング・マージンの関数である所定の時間周期に等しくなるのが好ましい。たとえば、所定の時間周期は、ほぼ1クロック周期と目標タイミング・マージンとの差とすることができる。しかし、実遅延値TDELAYは、たとえば経時変化作用のために、時間と共に増加する可能性がある。
【0019】
シフト・レジスタ230および240の出力部は、XOR論理ゲート260の入力部に接続し、XOR論理ゲート260の出力部は、フリップ・フロップ270に接続し、フリップ・フロップ270は、タイミング・エラー表示器280に渡されるタイミング・エラー表示信号を生成する。タイミング監視回路210は、イネーブル/ディスエーブル回路290をさらに含むことができ、イネーブル/ディスエーブル回路290は、イネーブル信号ENを受け取るときだけ、回路内の他の素子にクロック信号CLを渡す。イネーブル/ディスエーブル回路290は、図2に示されるAND論理ゲートとして、またはその代わりに、NAND、NOR、OR、またはXOR論理ゲートとして(適当な極性のイネーブル信号ENを伴って)実装することができる。
【0020】
タイミング監視回路210は、信号224を生成するパルス発生器220をさらに含むことができ、信号224は、シフト・レジスタ230および240に入力される「試験データ」信号として使用される。図2に示される実施形態において、パルス発生器220は、クロックCLによって駆動される2分周回路(すなわち、そのD入力部に接続する、そのノットQ出力部を有する)として構成されるフリップ・フロップ222であるが、他の適当なパルス発生器を使用することができる。図2に示される実施形態において、フリップ・フロップ222は、2クロック周期それぞれに対して、そのノットQ出力部において1つの出力パルスを生成する。次に、フリップ・フロップ222のノットQ出力部における信号は、分割され、フリップ・フロップ232および242のD入力部に入力される。あるいは、フリップ・フロップ222のノットQ出力ではなくQ出力を、フリップ・フロップ232および242のD入力を駆動するのに使用することができる。
【0021】
クロックCLの所与の立上りエッジに対して、信号224のデータ遷移(たとえば、0から1へ)は、フリップ・フロップ232および242内にラッチされる。クロックCLの次の立上りエッジにおいて、データ遷移は、非遅延シフト・レジスタ230内のフリップ・フロップ234内にラッチされる。遅延素子244の実遅延値TDELAYが、所定の時間周期と目標タイミング・マージンとの和を超えない(たとえば、実遅延値TDELAYが、ほぼ1クロック周期を超えない)とき、フリップ・フロップ248のセットアップ時間は、侵害されず、遅延シフト・レジスタ240内のフリップ・フロップ248は、同じデータ遷移で正常にラッチする。したがって、XOR論理ゲート260は、その出力部において論理値0を生成し、フリップ・フロップ242、遅延素子244、およびフリップ・フロップ248を含む試験データパスのタイミングが、設計限界と一致することを示す。2つのパス中の素子が、同じプロセス、電圧、温度、および経時変化作用を受けるように、フリップ・フロップ242、遅延素子244、およびフリップ・フロップ248を含む試験データパスが、クリティカルパス202の十分近傍に配置されるため、XOR論理ゲート260の出力部における論理値0は、クリティカルパス202のタイミングも設計限界と一致することを示すものとみなされる。
【0022】
他方、プロセス、電圧、温度、および/または経時変化作用によって、実遅延値TDELAYが、所定の時間周期と目標タイミング・マージンとの和を超える(たとえば、実遅延値TDELAYが、ほぼ1クロック周期を超える)とき、目標タイミング・マージンはもはや満足されない。非遅延シフト・レジスタ230内のフリップ・フロップ234は、データ遷移値(たとえば論理値1)で正常にラッチするが、遅延シフト・レジスタ240内のフリップ・フロップ248は、誤ったデータ遷移値(たとえば0)でラッチする。この場合に、XOR論理ゲート260は、その出力部において論理値1を生成し、クリティカルパス202のタイミングが満足されなかったことを示唆する。次に、フリップ・フロップ270は、タイミング・エラー指示器280に渡されるタイミング・エラー指示信号を生成する。
【0023】
実際には、遅延素子244は、標準遅延回路(たとえばマクロ回路を含む)の所定の組の中から設計プロセス中に選択されるのが好ましい。標準遅延回路は、プロジェクトの開始時に設定することができる、監視される特定の目標タイミング・マージンに基づいて、クロック周期の様々な区画に対応する伝搬遅延をもたらすことができる。標準遅延回路は、被監視集積回路のクリティカルパスを近傍で並列させる、高閾値電圧値、標準閾値電圧値、および低閾値電圧値が混合された標準電池を含むのが好ましい。さらに、遅延素子244は、タイミング監視回路210が集積回路200の動作中に様々なクロック周波数に対応することができるように、可変遅延素子とすることができる。
【0024】
タイミング監視回路210は、図1の先行技術タイミング監視回路110に優る、多くの利点を有する。第1に、タイミング監視回路210は、最終統計的タイミング解析が行われる、かなり前に物理設計に組み込むことができる。クリティカルパスにあらゆる追加の負荷を加えることなく、タイミング監視回路210のインスタンス当たり1つだけ追加される論理ゲートのクロック信号に対して追加の負荷を加えて、集積回路上の様々な主要位置に、並列配置を行うことができる。その結果、タイミング監視回路210は、静的タイミング解析または集積回路の最終物理設計に最小限の影響を及ぼす。
【0025】
第2に、タイミング監視回路210は、タイミング監視回路110において上述した検出漏れの問題に影響を受けにくいが、それは、フリップ・フロップ234が、常に正しいデータをラッチするためである。
【0026】
第3に、タイミング監視回路210は、被監視クリティカルパスを試験するのに、データ遷移をもたらす集積回路に依存しない。むしろ、間接的ではあるが、被監視クリティカルパスを頻繁に試験するように、パルス発生器220が、タイミング監視回路210を通して多くのデータ遷移をもたらす。
【0027】
第4に、イネーブル/ディスエーブル回路290が、クロック信号CLを受け取り、クロック信号CLをタイミング監視回路210内の残りの回路素子に分配するため、タイミング監視回路210の集積回路への付加によって、単一のゲートだけが、集積回路クロック負荷に追加される。
【0028】
図3は、本発明の別の実施形態によるタイミング監視回路310を示す。図3のタイミング監視回路310は、図2のタイミング監視回路210に類似し、タイミング監視回路310中で、総遅延素子344および細密遅延出力レジスタ350に接続する細密遅延検出回路346が、図2の遅延素子244の代わりに代用される点を除いて、同様の素子は、同じ下2桁を有する符号を使用して特定される。
【0029】
総遅延素子344の遅延値は、遅延素子244によってもたらされる遅延値の大部分とほぼ同じになるように選択されるが、細密遅延検出器346に関する遅延値は、遅延素子244によってもたらされる遅延値の残りの部分となるように選択される。したがって、図2のタイミング監視回路210中のフリップ・フロップ242および248間の総パス遅延値と、図3のタイミング監視回路310中のフリップ・フロップ342および348間の総パス遅延値とは、ほぼ同じである。細密遅延検出器346は、(i)所定の分解能で、総遅延素子344の実遅延を所定の時間周期(上述したように、目標タイミング・マージンの関数である)と比較するように、(ii)その結果に基づいて、タイミング監視回路310の実タイミング・マージンに対応する検出器出力信号を生成するように構成されるのが好ましい。次に、検出器出力信号は、細密遅延検出レジスタ350に渡される。好ましい実施形態において、細密遅延検出器346は、総遅延素子344に関する実遅延量の増加だけでなく、そうした遅延量の減少も検出するように構成される。その際、細密遅延検出器346は、タイミング監視回路310内の実タイミング・マージンの増加および減少を評価することもできる。
【0030】
図4は、図3の細密遅延検出回路346の例示的な実施形態を示す。図4に示されるように、細密遅延検出回路346は、直列に接続する9つの遅延線素子(DLE)406〜406、9つのフリップ・フロップ404〜404と、8つのXOR論理ゲート402〜402とを含む。フリップ・フロップ404およびDLE406の入力部は、図3の総遅延素子344の出力部から取られる信号TRINに接続する。DLE406〜406の出力部は、それぞれ、フリップ・フロップ404〜404のD入力部およびDLE406〜406の入力部に接続する。DLE406は、DLE406の出力負荷がDLE406〜406の出力負荷と同じになるように提供される。したがって、DLE406の出力部は、使用されない。
【0031】
この構成において、入力信号TRINは、DLE406〜406によって形成される遅延線を下向きに伝搬する。DLE406〜406およびフリップ・フロップ404〜404は、「温度計」レジスタを形成する。温度計レジスタがn個の出力ビットの組を有するとき、0番目からi番目の出力ビットは、すべて高であるが、残りの出力ビット(すなわち、(i+1)番目から(n−1)番目の出力ビット)は、すべて低である(または逆も同様である)。温度計レジスタ出力ビットの値の遷移点(たとえば、論理値1から論理値0への)は、クロック信号CLがフリップ・フロップ404〜404に到達する時点で、入力信号TRINが、DLE406〜406によって形成される遅延線を下向きに伝搬した距離を示す。
【0032】
フリップ・フロップ404〜404の連続する対のQ出力部は、XOR論理ゲート402〜402の対応する入力部に接続する。次に、XOR論理ゲート402〜402は、それぞれ、出力ビットB〜Bを生成し、総遅延素子344の実遅延の測定を行う。したがって、DLE406〜406、フリップ・フロップ404〜404、およびXOR論理ゲート402〜402は、「ワンホット」レジスタを形成し、1つの出力ビットのみが高(すなわち「1」)となるが、残りが低(すなわち「0」)となる(または逆も同様である)。出力ビットB〜B内の高出力ビットの位置は、クロック信号CLがフリップ・フロップ404〜404に到達する時点で、入力信号TRINが、DLE406〜406によって形成される遅延線を下向きに伝搬した距離を示す。
【0033】
次に、出力ビットB〜Bは、たとえばICタイミング・コントローラ(図示せず)によって使用するために、細密遅延検出器出力レジスタ350内に格納される。その際、ICタイミング・コントローラは、出力ビットB〜Bによってもたらされるタイミング情報を使用することができ、たとえば、タイミング情報に基づいて、集積回路クロックのレートまたは電源電圧を調整する。たとえば、目標タイミング・マージンに余剰マージンで対応するとき、クロックレートは、クリティカルパス202のタイミング・エラーを生成する恐れなしに増加させることができる。他方、目標タイミング・マージンが満足されないとき、クロックレートは、クリティカルパス202のタイミングを改善するために減少させることができる。
【0034】
検出回路346の出力信号TROUTは、DLE406〜406の出力部のいずれか1つを、図3のフリップ・フロップ348のD入力部に接続することができる。出力信号TROUTの接続部として使用される特定のDLE出力部は、以下にさらに説明するように、設計者が、成功(すなわち、より早い)または不成功(すなわち、より遅い)のタイミングを検出したい範囲によって、集積回路の設計中に選択することができる。図4に示される実施形態において、たとえば、出力信号TROUTは、DLE406の出力部において直接取られる。
【0035】
あるいは、DLE406〜406の出力部は、9x1選択スイッチ(図示せず)に接続することができ、選択スイッチからの出力は、出力信号TROUTとして取ることができる。選択スイッチは、能動ゲート・マルチプレクサ、伝達ゲート(Tゲート)マルチプレクサ、3値バッファ・マルチプレクサ、または他の適当な選択スイッチもしくはマルチプレクサとすることができる。この代わりの実施形態において、選択スイッチは、たとえばタイミング・コントローラからの制御信号に基づいて出力信号TROUTとして使用するために、DLE406〜406からの出力のいずれか1つを選択することができる。
【0036】
さらに、図3に示されるタイミング監視回路310および図4に示される細密遅延検出回路346の動作は、図5〜7に示されるタイミング図によってそれぞれ図示される、以下の3つの場合を参照して理解することができる。
【0037】
場合1:目標タイミング・マージンに無余剰マージンで対応する
図5は、目標タイミング・マージンに無余剰マージンで対応する、場合1のタイミングを示す。場合1において、(i)クロックCLからフリップ・フロップ342の出力部Qまでの遅延と、(ii)総遅延素子344による遅延と、(iii)細密遅延検出器346による遅延(たとえば、信号TRINが信号TROUTまで進む時間)との和に関する設計値が、ほぼ1クロック周期に等しくなるように選択される(すなわち、目標タイミング・マージンは、余裕がほとんど、または全く存在しないように最小であるとみなされる)。
【0038】
図5のタイミング図の時間tで示される、クロックCLの第1の立上りエッジで、データ論理値1が、図3のフリップ・フロップ332および342内にラッチされる。したがって、フリップ・フロップ332および342のQ出力部は、論理値0から論理値1に遷移する。
【0039】
意図的に、図5の時間tにおけるクロックCLの第2の立上りエッジの直前で、全総遅延素子344ならびに細密遅延検出器346内の2つの第1のDLE406および406の出力部にわたって、0から1への遷移が観測される。クロックCLの第2の立上りエッジにおいて(時間tにおいて)、TRIN入力部に最も近い2つの第1のDLE(すなわち、DLE406および406)の出力部に、論理値1が観測される。残りの7つのDLE406〜406の出力部は、すべて論理値0を示す。クロックCLの第2の立上りエッジは、図3のフリップ・フロップ334および348内にも論理値1を記録し、したがって、タイミング・エラー表示器380は、最終的に論理値0を記録し、時間的制約が満足されたことを示す。
【0040】
クロックCLの第2の立上りエッジは、さらに、図4のフリップ・フロップ404〜404内に論理値1を、フリップ・フロップ404〜404内に論理値0を記録する。したがって、XOR論理ゲート402〜402によって出力されるビット値B[0:7]は、それぞれ、論理値{0010 0000}を有する。論理値1のBビット値は、クロックCLの第2の立上りエッジの時間において、第3のDLE(DLE406)内に、0から1への遷移が起こることを示す。言い換えれば、クロックCLの第2の立上りエッジの時間(時間t)において、DLE406への入力(およびDLE406からの出力)は、論理値1であり、DLE406からの出力は、論理値0を有する。この例において、これらのXOR出力ビット値(B[0:7]={0010 0000})は、目標タイミング・マージンに最小検出可能余剰マージンで対応したことを示す。
【0041】
場合2:目標タイミング・マージンに大余剰マージンで対応する
図6は、目標タイミング・マージンに大余剰マージンで対応する、場合2のタイミングを示す。場合2において、場合1と同様に、(i)クロックCLからフリップ・フロップ342の出力部Qまでの遅延と、(ii)総遅延素子344による遅延と、(iii)細密遅延検出器346による遅延との和に関する設計値が、ほぼ1クロック周期に等しくなるように選択される(すなわち、目標タイミング・マージンは、余裕がほとんど、または全く存在しないように最小であるとみなされる)。しかし、場合2において、時間の経過によるクロック分配速度低下および/またはデータパス速度上昇の組み合わせが、0から1への遷移に帰着し、遅延線を最初に設計されたものよりもさらに下降させるとみなされている。
【0042】
最初に、図6のタイミング図の時間tで示される、クロックCLの第1の立上りエッジで、論理値1が、フリップ・フロップ332および342内にクロックされる。したがって、フリップ・フロップ332および342のQ出力部は、論理値0から論理値1に遷移する。時間tにおけるクロックCLの第2の立上りエッジの直前で、全総遅延素子344ならびに細密遅延検出回路346内の遅延線の7つの第1のDLE406〜406の出力部にわたって、0から1への遷移が観測される。図6の時間tで、クロックCLの第2の立上りエッジにおいて、入力部TRINに最も近い7つの第1のDLE(すなわち、DLE406〜406)の出力部に、論理値1が観測される。残りのDLE406および406の出力部は、論理値0を示す。クロックCLの第2の立上りエッジは、図3のフリップ・フロップ334および348内にも論理値1を記録し、タイミング・エラー表示器380は、最終的に論理値0を記録し、時間的制約が満足されたことを示す。
【0043】
クロックCLの第2の立上りエッジは、さらに、図4のフリップ・フロップ404〜404内に論理値1を、フリップ・フロップ404内に論理値0を記録する。したがって、XOR出力ビット値B[0:7]は、それぞれ、値{0000 0001}を有する。ここで、論理値1の8番目のビット値Bは、クロックCLの第2の立上りエッジの時間(時間t)において、8番目のDLE(DLE406)内に、0から1への遷移が起こることを示す。言い換えれば、クロックCLの第2の立上りエッジの時間において、DLE406への入力(およびDLE406からの出力)は、論理値1であるが、DLE406からの出力は、論理値0を有する。これらのXOR出力ビット値は、目標タイミング・マージンに最大検出可能余剰マージンで対応したことを示す。この場合、最大検出可能余剰マージンは、ほぼ5DLE遅延である。
【0044】
場合3:タイミングがセットアップ異常により満足されない
図7は、目標タイミング・マージンが満足されず、セットアップ異常が検出される、場合3を示す。場合3において、場合1および2と同様に、(i)クロックCLからフリップ・フロップ342の出力部Qまでの遅延と、(ii)総遅延素子344による遅延と、(iii)細密遅延検出器346による遅延との和に関する初期値が、ほぼ1クロック周期に等しくなるように選択される(すなわち、目標タイミング・マージンは、余裕がほとんど、または全く存在しないように最小であるとみなされる)。しかし、場合3において、時間の経過によるクロック分配速度上昇および/またはデータパス速度低下の組み合わせが、0から1への遷移に帰着し、目標タイミング・マージンを超える遅延線をさらに上昇させ、セットアップ異常が起こる。
【0045】
図3において、図7の時間tにおいて、クロックCLの第1の立上りエッジで、論理値1が、フリップ・フロップ332および342内にクロックされる。したがって、フリップ・フロップ332および342のQ出力部は、論理値0から論理値1に遷移する。時間tにおけるクロックCLの第2の立上りエッジの直前で、全総遅延素子344ならびに遅延線の第1のDLE406の出力部にわたって、0から1への遷移が観測される。時間tで、クロックCLの第2の立上りエッジにおいて、入力部TRINに最も近い第1のDLE(すなわち、DLE406)の出力部に、論理値1が観測される。残りの8つのDLE406〜406の出力部は、すべて論理値0を示す。クロックCLの第2の立上りエッジは、図3の非遅延シフト・レジスタ330内のフリップ・フロップ334内にも論理値1を記録する。しかし、クロックCLの第2の立上りエッジは、図3の遅延シフト・レジスタ340のフリップ・フロップ348内に論理値0を記録する。その結果、タイミング・エラー表示器380は、最終的に論理値1を記録し、タイミング・エラーが起こり、目標タイミング・マージンが満足されなかったことを示す。
【0046】
時間tで、クロックCLの第2の立上りエッジは、さらに、図4のフリップ・フロップ404〜404内に論理値1を、フリップ・フロップ404〜404内に論理値0を記録する。したがって、XOR出力ビット値B[0:7]は、それぞれ、値{0100 0000}を有する。ここで、論理値1の出力ビット値Bは、クロックCLの第2の立上りエッジの時間(時間t)において、第2のDLE406内に、0から1への遷移が起こることを示す。言い換えれば、クロックCLの第2の立上りエッジの時間において、DLE406への入力(およびDLE406からの出力)は、論理値1を有し、DLE406からの出力は、論理値0を有する。これらの出力ビット値B[0:7]は、目標タイミング・マージンが対応されず、ほぼ1DLE遅延量のセットアップ異常が起こったことを示す。
【0047】
図2の実施形態と同様に、図3および4の実施形態は、先行技術に優る多くの利点を有する。最初の事項として、図3および4の実施形態は、上述した図2の利点のすべてを共有する。それに加えて、図3および4の実施形態は、タイミング・エラー表示の有/無だけでなく、実タイミング・マージンの数値測定(プラスおよびマイナスの両方)も行う。さらに、タイミング・マージン測定の範囲が、総遅延部344、ならびに/または遅延線素子およびそれらに対応するフリップ・フロップおよびXOR論理ゲートの数を調整することによって調整することができる。さらに、クロック周波数の範囲は、タイミング監視回路310の動作中に、総パス遅延素子344を調整することによって対応することができる。最後に、プラスからマイナスまでのタイミング・マージン測定能力の相対範囲は、細密遅延検出回路346内のDLEにおける出力部TRoutの位置を変化させることによって管理することができる。
【0048】
本発明は、XOR論理ゲート260、360を含む回路に関して説明してきたが、本発明は、非XOR(NXOR)ゲートなどの他のタイプの論理ゲートを使用して実装することもできる。
【0049】
それに加えて、図4に示される細密遅延検出回路346は、9つのDLE406〜406、9つのフリップ・フロップ404〜404、および8つのXOR論理ゲート402〜402を含み、実際には、DLE,フリップ・フロップ、およびXOR論理ゲートの数は、特定の適用例で所望される細密遅延分解能の量によって、図4に示される数よりも多く、または少なくすることができる。
【0050】
さらに、以上の図2および3に示される実施形態では、データ信号224、324は、パルス発生器220、320によって生成されるが、パルス発生器220の使用は、任意選択であることを理解されたい。したがって、本発明の一実施形態において、クリティカル・データパス202を横断するデータ信号(たとえば、回路素子204からの出力信号)は、分割され、データ信号224として使用することができ、データ信号224は、フリップ・フロップ232、242および/または332、342に入力される。
【0051】
本発明は、単一の集積回路(ASICまたはFPGAなど)、マルチチップ・モジュール、単一のカード、またはマルチカード回路パックとしての実装可能性を含む、デジタル(またはアナログおよびデジタルのハイブリッド)回路ベースのプロセスとして実装することができる。当業者には明らかなように、回路素子の様々な機能を、ソフトウェアプログラム中の処理ブロックとして実装することもできる。そうしたソフトウェアは、たとえば、デジタル信号プロセッサ、マイクロコントローラ、または汎用コンピュータ内で使用することができる。
【0052】
さらに、この説明において、用語「結合する」、「結合している」、「結合される」、「接続する」、「接続している」、「接続される」は、要求されていないが、2つ以上の素子間でエネルギーを伝達することができ、1つまたは複数の追加の素子の介在を企図する、当技術で既知または後に開発される、いずれかの方法まで言及する。逆に、用語「直接結合される」、「直接接続される」などは、そうした追加の素子が存在しないことを示唆する。
【0053】
ここで、信号および対応するノードまたはポートは、同じ名称で呼ぶことができ、目的に応じて交換可能である。
【0054】
別途、明らかに記述されていなければ、各数値および範囲は、用語「約」または「ほぼ」を値または範囲の前につけているかのように、概略値であると解釈されたい。
【0055】
さらに、本発明の特性を説明するために記載され、かつ図示された部品の詳細、材料、および構成の様々な変更を、本発明の範囲から逸脱することなく、当業者は行うことができることが理解されよう。むしろ、本発明の範囲は、以下の特許請求の範囲に記載される。
【0056】
本発明は、遅延素子244を含む図2のシフト・レジスタ240と、遅延素子344および346を含む図3のシフト・レジスタ340とに関して説明してきた。一般に、本発明のシフト・レジスタは、シフト・レジスタを伝搬する信号に適当な遅延量を付加する、いずれかの適当な回路で実装することができる。
【0057】
特許請求の範囲の図番号および/または図参照符号の使用は、特許請求の範囲の解釈を容易にするために、請求される主題の1つまたは複数の可能な実施形態を特定することを目的とする。そうした使用は、それらの特許請求の範囲の範囲を、対応する図に示される実施形態に限定する必要はないものとして解釈されたい。
【0058】
本明細書に記載される例示的な方法のステップは、説明された順番で必ずしも行う必要はなく、そうした方法のステップの順番は、単なる例示的なものと理解すべきであることを理解されたい。同様に、本発明の様々な実施形態と矛盾しない方法において、そうした方法に、追加のステップを含めることができ、いくつかのステップを省略または組み合わせることができる。
【0059】
以下の方法クレーム内の要素は、もしあれば、特定の順番で対応する符号と共に記載されるが、クレーム記載により、別途、それらの要素のいくつかまたはすべてを実装する特定の順番が示唆されなければ、それらの要素は、その特定の順番での実装に限定することを必ずしも目的としない。
【0060】
本明細書で、「一実施形態」または「実施形態」に言及することは、実施形態に関して説明される特定の特徴、構造、または特性を、本発明の少なくとも一実施形態に含めることができることを意味する。明細書中の様々な場所で、句「一実施形態において」が現れるとき、すべて同じ実施形態に言及する必要はなく、別個または代替の実施形態は、他の実施形態を互いに排除する必要はない。同じことが、用語「実装」に当てはまる。

【特許請求の範囲】
【請求項1】
集積回路におけるクリティカルパス(202)中のタイミングを監視する監視回路(210、310)を含む集積回路であって、前記クリティカルパスは、目標タイミング・マージンを有し、前記監視回路は、
入力部および出力部を有し、遅延値を受領信号に加える遅延回路(244、344/346)を有する第1のシフト・レジスタ(240、340)と、
入力部および出力部を有する第2のシフト・レジスタ(230、330)であって、前記第1および第2のシフト・レジスタの前記入力部は、入力信号(224、324)を受領することができる信号入力ノードを形成するために、共に接続される、第2のシフト・レジスタと、
出力部および少なくとも2つの入力部を有する論理回路(260、360)であって、各入力部は、前記第1および第2のシフト・レジスタの前記出力部の対応する1つに接続され、前記論理回路の前記出力部は、前記目標タイミング・マージンが満足されるか、または満足されないかを示す論理回路とを含む、集積回路。
【請求項2】
前記遅延値が、所定の時間周期と前記目標タイミング・マージンとの和未満であるとき、前記論理回路は、前記目標タイミング・マージンが満足されたことを示す出力(280、380)を生成し、
前記遅延値が、所定の時間周期と前記目標タイミング・マージンとの和よりも大きいとき、前記目標タイミング・マージンが満足されなかったことを示す出力(280、380)を生成する、請求項1に記載の集積回路。
【請求項3】
入力パルスが前記信号入力ノードに挿入されるとき、
(i)前記第1のシフト・レジスタは、その出力部で第1のパルスを生成し、
(ii)前記第2のシフト・レジスタは、その出力部で第2のパルスを生成し
(iii)前記論理回路は、前記第1のパルスが、前記所定の時間周期と前記目標タイミング・マージンとの和よりも大きい時間量だけ前記第2のパルスから時間的に分離されるときのみ、前記目標タイミング・マージンが満足されなかったことを示す出力を生成する、請求項2に記載の集積回路。
【請求項4】
前記論理回路は、XOR論理ゲートおよびNXOR論理ゲートの1つである、請求項1に記載の集積回路。
【請求項5】
前記信号入力ノードに接続される出力部で前記入力信号を供給するように構成されるパルス発生器(220、320)をさらに含む、請求項1に記載の集積回路。
【請求項6】
前記監視回路は、前記目標タイミング・マージンが満足されなかったことの表示により、前記クリティカルパス中にタイミングの問題が存在することが示されるように、(i)前記クリティカルパスとは十分に独立しており、(ii)前記集積回路内の監視される前記クリティカルパスの十分近くに配置される、請求項1に記載の集積回路。
【請求項7】
前記第1のシフト・レジスタは、
前記信号入力ノードに接続する入力部および出力部を有する第1のフリップ・フロップ(242、342)と、
前記第1のフリップ・フロップの前記出力部に接続する前記遅延回路と
前記遅延回路に接続する入力部を有する第2のフリップ・フロップ(248、348)とを含み、
前記第2のシフト・レジスタは、
前記信号入力ノードに接続する入力部および出力部を有する第3のフリップ・フロップ(232、332)と、
前記第3のフリップ・フロップの前記出力部に接続する入力部を有する第4のフリップ・フロップ(234、334)とを含む、請求項1に記載の集積回路。
【請求項8】
前記遅延回路は、
総遅延値をもたらすように構成される総遅延素子(344)と、
前記総遅延値に基づいて、前記目標タイミング・マージンが満足される範囲を示す出力信号を生成するように構成される細密遅延検出回路(346)とを含む、請求項7に記載の集積回路。
【請求項9】
前記細密遅延検出回路は、
入力部および直列に接続される複数の遅延線素子(406〜406)を有する遅延線であって、各遅延線素子が入力部および出力部を有する、遅延線を含む、請求項8に記載の集積回路。
【請求項10】
前記細密遅延検出回路は、
複数のフリップ・フロップ(404〜404)であって、1つまたは複数のフリップ・フロップは、入力部および出力部を有し、それぞれの前記入力部は、対応する遅延線素子の前記入力部に接続される、複数のフリップ・フロップをさらに含み、
前記複数のフリップ・フロップの前記出力部は、前記目標タイミング・マージンが満足される範囲を示す、請求項9に記載の集積回路。
【請求項11】
前記細密遅延検出回路は、
複数の論理ゲート(402〜402)であって、各論理ゲートは、前記遅延線に沿う前記複数のフリップ・フロップ中の隣接するフリップ・フロップの対応する対の出力部にそれぞれ直列に接続される、少なくとも2つの入力部を有する、複数の論理ゲートをさらに含み、
少なくとも1つの論理ゲートの前記出力部は、前記目標タイミング・マージンが満足される範囲を示す、請求項10に記載の集積回路。
【請求項12】
集積回路内のクリティカルパス中のタイミングを監視する方法であって、前記クリティカルパスは、目標タイミング・マージンを有し、
(a)入力信号を、第1のシフト・レジスタ(240、340)を含む第1のパスと、第2のシフト・レジスタ(230、330)を含む第2のパスとに分割することと、
(b)前記第1のパス中の前記入力信号を、第1の遅延量だけ遅延させることと、
(c)前記第2のパス中の前記入力信号を、前記第1のパス中の前記遅延入力信号と比較することと、
(d)前記比較に基づいて、前記目標タイミング・マージンが満足されるか、または満足されないかを示す出力(280、380)を生成することとを含む、方法。
【請求項13】
前記第2のパス中の前記入力信号を、前記第1のパス中の前記遅延入力信号と比較することは、前記第1のパスおよび第2のパスからの出力の論理演算を行うことを含む、請求項12に記載の方法。
【請求項14】
前記第1のパス中の前記入力信号が、所定の時間周期と前記目標タイミング・マージンとの和未満の時間量だけ前記第2のパス中の前記入力信号に対して遅延しているとき、前記生成出力は、前記目標タイミング・マージンが満足されたことを示し、
前記第1のパス中の前記入力信号が、所定の時間周期と前記目標タイミング・マージンとの和より大きい時間量だけ前記第2のパス中の前記入力信号に対して遅延しているとき、前記生成出力は、前記目標タイミング・マージンが満足されなかったことを示す、請求項12に記載の方法。
【請求項15】
前記目標タイミング・マージンが満足されるか、または満足されない範囲を検出することをさらに含む、請求項12に記載の方法。
【請求項16】
前記目標タイミング・マージンが満足されるか、または満足されない範囲を検出することは、
前記第1のパス中の前記入力信号を前記第1の遅延量だけ遅延させた後、続いて、遅延線中の複数の遅延素子によって前記入力信号を遅延させることと、
前記遅延線中の各遅延素子に関して、前記遅延素子の前記入力部における信号状態に対応する出力信号を生成することとを含む、請求項15に記載の方法。
【請求項17】
前記目標タイミング・マージンが満足されるか、または満足されない範囲を検出することは、
出力信号の前記連続する対に基づいて、前記遅延線中の遅延素子の連続する対に対応する出力信号の各連続する対に関して、前記入力信号が、クロック信号によって決定される時間に前記遅延線中の対応する遅延素子に到達したかどうかを決定するのに論理演算を行うことと、
出力信号の少なくとも1つの連続する対に対応する前記論理演算の結果を出力することとをさらに含む、請求項16に記載の方法。
【請求項18】
集積回路内のクリティカルパス中のタイミングを監視する装置であって、前記クリティカルパスは、目標タイミング・マージンを有し、前記装置は、
(a)入力信号を、第1のシフト・レジスタを含む第1のパスと、第2のシフト・レジスタを含む第2のパスとに分割する手段と、
(b)前記第1のパス中の前記入力信号を第1の遅延量だけ遅延させる手段と、
(c)前記第2のパス中の前記入力信号を前記第1のパス中の前記遅延入力信号と比較する手段と、
(d)前記比較に基づいて、前記目標タイミング・マージンが満足されるか、または満足されないかを示す出力を生成する手段とを含む、装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2012−516629(P2012−516629A)
【公表日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願番号】特願2011−547894(P2011−547894)
【出願日】平成21年1月27日(2009.1.27)
【国際出願番号】PCT/US2009/032106
【国際公開番号】WO2010/087817
【国際公開日】平成22年8月5日(2010.8.5)
【出願人】(500587067)アギア システムズ インコーポレーテッド (302)
【Fターム(参考)】