JP2005038430A - 回路パラメータの異なる組合せにおける制約パラメータの測定 - Google Patents

回路パラメータの異なる組合せにおける制約パラメータの測定 Download PDF

Info

Publication number
JP2005038430A
JP2005038430A JP2004209323A JP2004209323A JP2005038430A JP 2005038430 A JP2005038430 A JP 2005038430A JP 2004209323 A JP2004209323 A JP 2004209323A JP 2004209323 A JP2004209323 A JP 2004209323A JP 2005038430 A JP2005038430 A JP 2005038430A
Authority
JP
Japan
Prior art keywords
value
constraint
search
circuit parameters
parameters
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
Application number
JP2004209323A
Other languages
English (en)
Inventor
Sunand Mittal
ミッタル スナンド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2005038430A publication Critical patent/JP2005038430A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318541Scan latches or cell details

Abstract

【課題】回路パラメータの異なる組合せにおける制約パラメータを測定する。
【解決手段】回路パラメータの所定の組合せに対する制約パラメータの値は、回路パラメータの他の組合せに対する任意の先に計算された値に基づき推定される(310)。推定は制約パラメータの実際の値に近いかも知れないので、推定値の周辺の狭い探索範囲において、(例えばシミュレーションを使用して)探索を行うことができる(330、340)。その結果、回路パラメータの異なる組合せにおける制約パラメータを迅速に測定することができる。本発明の他の態様により、(パス結果を生成する少なくとも1つの点および失敗結果を生成する他の1つの点を伴う)複数の探索点の結果に基づき曲線が生成され、探索は、パスと失敗点との間において、曲線上の中間点に対応する遅延が望ましい閾値より低いかどうかを第1に調査することによって実行される。
【選択図】図3

Description

(本発明の背景)
(発明の分野)
本発明は、集積回路を実装するために使用される計算機支援設計(CAD)、特に、回路パラメータの異なる組合せにおける制約パラメータを測定するための方法および装置に関する。
(関連技術)
集積回路は一般に、フリップフロップやレジスタのようないくつかの構成要素を含んでいる。構成要素のいくつかの特性を決定すること、例えば、集積回路が動作することができる最大クロック速度を決定することがしばしば望ましい。このような重要な特性のいくつかは、制約パラメータである。制約パラメータは一般に、2つの信号の発生の間の最少遅延/持続を特定する値を指す。ここで、参照信号は制約する信号と呼ばれ、他の信号は制約付信号と呼ばれる。
例えば、(メモリ、例えばフリップフロップを有する)順次構成要素に関する重要な制約パラメータは、準備時間、保持時間および最少パルス幅を含む。周知のように、準備時間は一般に、問題となる信号(例えば、制約付信号としての入力信号)が、参照信号(制約する信号)より前に望ましい信号レベルに到達するための最少時間持続を指す。保持時間とは、問題となる信号が、例えば適当なサンプリングを可能にするために、クロック信号の端の後に望ましいレベルにとどまる最少持続時間を指す。パルス幅は、問題となる信号が順次構成要素によって正確にサンプリングされるように、参照/制約する信号(例えば、クロック信号)が望ましい信号レベルにとどまる必要がある、最少パルス幅を指す。
制約値は一般に、集積回路に関連する回路パラメータの特定の組合せに依存する。回路パラメータの例として、クロックおよびデータ信号のスルーレートがある。周知のように、信号のスルーは、信号が1つの論理値から他の論理値に移り変わる時の信号レベルの変化速度を表す。一般に、スルーは、信号が実質的に1つの論理値を表すレベルから他の論理値を表す他のレベルに変化するのに必要とする時間量に基づき測定される。
回路パラメータは、一般に集積回路の電気特性に影響を与える、製造工程、温度および電圧のような他の要因を含む(あるいはこれらに影響される)場合がある。従って、制約パラメータの値は、これらのパラメータによっても影響されることがある。従って、制約パラメータは、回路パラメータの1つの組合せにおいて1つの値をとり、回路パラメータの他の組合せにおいて他の値をとることがある。
(回路パラメータの特定の組合せに対する)制約パラメータの正しい値はしばしば、(制約パラメータの)探索範囲内での探索によって決定される。この分野では周知の2等分探索と呼ばれる方法においては、探索範囲の中央における値が制約パラメータに対して仮定され、入力信号が、同様にこの分野では周知のSPICEのようなツールを使用してシミュレートされた構成要素に提供される。次の繰り返しに対する探索範囲は、シミュレーションの結果によって、(先の繰り返しに対する探索範囲の)上半分あるいは下半分に設定される。このような方法は、制約パラメータの(許容誤差内の)正しい値が決定されるまで、繰り返し続けられる。
回路パラメータの異なる組合せにおいて制約パラメータの正しい値を測定することは、しばしば望ましい。例えば、セル・ライブラリは、いくつかの構成要素(例えば、フリップフロップ、ラッチ)に対応する設計を含む場合もあり、回路パラメータの異なる組合せに対する構成要素の制約値を計算することが望ましい場合がある。このようにして計算された値は、対応する構成要素と関連してセル・ライブラリに記憶することができる。集積回路が後に設計される場合、設計者(あるいは設計を支援するツール)は、回路が設計されている回路パラメータの組合せに関係なく、入手可能な値に基づき迅速に適当な設計決定を行うことができる。
従って、測定すべき制約値の数は、回路パラメータにおける要素/変数の数、各仕様要素に対する可能な値の数、その他に伴い、かなり多いことが理解できるであろう。少なくとも、計算すべき制約値がこのように多いために、かなり長い時間(あるいはかなりの量の計算用資源)が、問題となる制約値を決定するために必要となる場合がある。従って、仕様の異なる組合せにおいて制約パラメータを測定するための時間を減少させることが望ましいであろう。
(発明の概要)
本発明の1つの態様により、それに従って集積回路が実装される回路パラメータの組合せに対する構成要素の制約パラメータの測定が可能となる。1つの実施例において、回路パラメータの所定の組合せに対する制約パラメータの値は、回路パラメータの他の組合せに対応する制約値に基づき推定される。推定値はそれから、所定の組合せに対する制約パラメータの正しい値を探索するために使用される。
推定は正確であるかもしれないので、正しい値は狭い範囲における探索によって決定することができ、これにより、回路パラメータのいくつかの組合せに対する制約パラメータを測定する時間を減少させることができる。1つの実施例において、制約パラメータはフリップフロップに対して測定され、回路パラメータは、データ信号およびクロック信号のスルーレートを含む。
1つの実施例において、探索は、推定値を使用して構成要素の第1のシミュレーションを行い、第1のシミュレーションがパス結果を返すかどうかを決定することによって実行される。第1のシミュレーションがパス結果を返す場合、第1の探索範囲は、上限は推定値と等しく、下限は(推定値から第1の値を引いた値)と等しく設定される。第1のシミュレーションがパス結果を返さない場合、第1の探索範囲は、下限は推定値と等しく、上限は(推定値に第2の値を加えた値)と等しく設定される。
一般に、各後続の繰り返しにおいて、探索範囲の上限は、シミュレーション結果がパスの場合、探索点(探索値)に設定され、探索範囲の下限は、そうでない場合に探索点に設定される。加えて、パスおよび失敗(つまり、パスでない)結果の少なくとも1つの事例がまだ見つかっていない場合、下限はパス結果の場合減少され、上限は失敗結果の場合増加される。増加および減少の程度は、各繰り返しの間に段階的に増加される。
従って、シミュレーションは第3の探索範囲が決定されるまで続けられる場合があり、第3の探索範囲の上限はパス結果を返し、下限はパス結果を返さない。1つの実施例において、制約パラメータに対する正しい値を決定するために、2等分探索が第3の探索範囲において実行される。
他の実施例において、曲線(制約パラメータ値の関数としての遅延)が、(少なくとも1つのパス結果および1つの失敗結果を伴う)先のシミュレーションに基づき生成される。複数の中間点が第3の探索範囲において選択される。期待遅延が、曲線を使用して各中間点と関連して決定される。各期待遅延は閾値と比較され、期待遅延が許容できるか許容できないかが決定される。期待遅延は、期待遅延が閾値より小さい場合許容可能とみなされ、そうでなければ許容不可能とみなされる。
シミュレーションの次の点は、比較の結果に基づき決定される。例えば、第3の探索範囲の1/3および2/3における2つの中間点が選択されるかもしれない。双方の結果が許容不可能である場合、2/3点を次の点として選択してもよく、双方の結果が許容可能である場合、1/3点が選択される。結果のうち1つが許容可能で他の1つが許容不可能である場合、探索範囲における中間点が選択される。このような方法を使用することにより、探索範囲を、2等分探索の場合における1/2の代わりに1/3に狭めることができる。範囲を狭めることにより、探索の数もまた減少させることができる。
本発明の更なる特徴および利点は、本発明の多様な実施例の構造および動作と共に、付随する図面を参照して以下に詳細に説明される。図面において、同じ参照番号は一般に、同一の、機能的に類似する、および/あるいは構造的に類似する要素を示す。1つの要素が最初に現れる図面は、対応する参照番号における左端の番号によって示される。
1.概要
本発明の1つの態様は、回路パラメータの異なる組合せに対する任意の先に計算された値に基づき、第1に制約パラメータの推定値を生成することにより、回路パラメータの特定の組合せに対する制約パラメータを測定する時間を少なくする。推定値は、先に計算された値を使用することによりかなり正確にすることができ、正しい値に対する探索は、このような推定値によりかなり狭い範囲において行うことができる。狭い範囲における探索により、特定の組合せに対する制約値は迅速に測定することができる。回路パラメータの多様な組合せに対する制約パラメータを測定するための総時間は、従って、減少させることができる。
本発明のいくつかの態様を、説明のための例示的環境を参照して以下に説明する。多くの特定の詳細、関係、および方法は、本発明の理解を完全なものとするために説明されることを理解されたい。この分野の技術者は、しかし、本発明は1つあるいは複数の特定の詳細が無くても、あるいは他の方法と共にであっても、またその他の場合であっても、実行することができることが容易に理解できるであろう。他の場合においては、周知の構造あるいは動作は、本発明を曖昧なものとしないために、詳細には示されていない。
2.コンピュータ・システム
図1は、本発明を実現するための1例としてのシステムを表すコンピュータ・システム100のブロック図である。コンピュータ・システム100は、中央処理装置(CPU)110のような1つあるいは複数のプロセッサ、ランダム・アクセス・メモリ(RAM)120、補助記憶装置130、グラフィック・コントローラ160、ディスプレイ装置170、ネットワーク・インタフェース180、および入力インタフェース190を含んでもよい。ディスプレイ装置170を除く全ての構成要素は、通信パス150を通して互いに通信してもよく、通信パス150は、この分野では周知のように、いくつかのバスを含んでもよい。図1の構成要素は、以下に更に詳細に説明する。
CPU110は、RAM120に記憶された命令を実行して、本発明のいくつかの特徴を提供する。CPU110は複数の処理装置を含んでもよく、各処理装置は特定のタスクのために設計されている可能性がある。あるいは、CPU110は、1つの処理装置のみを含んでもよい。RAM120は、通信パス150を使用して補助記憶装置130から命令を受け取ることができる。(ライブラリ内の)多様なセルを表すデータおよび決定された制約値は、命令の実行の間、補助記憶装置130(および/あるいはRAM120)に記憶されそこから検索することができる。
グラフィック・コントローラ160は、CPU110から受け取ったデータ/命令に基づき、ディスプレイ装置170への(例えば、RGB形式における)ディスプレイ信号を生成する。ディスプレイ装置170は、ディスプレイ信号によって定義されたイメージを表示するための表示画面を含む。入力インタフェース190は、キーボードおよび/あるいはマウスに対応してもよく、一般に、ユーザが入力することを可能にする。ネットワーク・インタフェース180は、入力(および出力)のいくつかがネットワーク上に提供されることを可能にする。一般に、ディスプレイ装置170、入力インタフェース190およびネットワーク・インタフェース180は、ユーザが、補助記憶装置130に備えられている(あるいはネットワーク・インタフェース180から受け取った)セル・ライブラリを使用して集積回路を設計することを可能にし、周知の方法で実現することができる。
補助記憶装置130は、ハード・ドライブ131、フラッシュ・メモリ136、および取外し可能記憶ドライブ137を含んでもよい。補助記憶装置130は、ソフトウェア命令およびデータ(例えば、セル・ライブラリおよび決定された制約値)を記憶することができ、これらのソフトウェア命令およびデータは、コンピュータ・システム100が本発明によるいくつかの特徴を提供できるようにする。データおよび命令のいくつかあるいは全ては、取外し可能記憶装置140上に備えられてもよく、データおよび命令は、取外し可能記憶ドライブ137によって読み出されCPU110に提供されてもよい。フロッピー(登録商標)・ドライブ、磁気テープ・ドライブ、CD−ROMドライブ、DVDドライブ、フラッシュ・メモリ、取外し可能メモリ・チップ(PCMCIAカード、EPROM)は、このような取外し可能記憶ドライブ137の例である。
取外し可能記憶装置140は、取外し可能記憶ドライブ137がデータおよび命令を読み出すことができるように、取外し可能記憶ドライブ137と互換性のある媒体および記憶形式を使用して実現することができる。従って、取外し可能記憶装置140は、コンピュータ・ソフトウェアおよび/あるいはデータを記憶した、コンピュータ読み取り可能記憶媒体を含む。本発明の1つの実施例は、コンピュータ・システム100において走っている(つまり実行している)ソフトウェアを使用して実現される。
本明細書において、用語“コンピュータ・プログラム製品”とは、取外し可能記憶装置140あるいはハード・ドライブ131にインストールされたハード・ディスクを一般に指すために使用される。これらのコンピュータ・プログラム製品は、コンピュータ・システム100にソフトウェアを提供するための手段である。上記のように、CPU110は、ソフトウェア命令を検索し、その命令を実行して本発明の多様な特徴を提供することができる。本発明の特徴は、以下に詳細に説明される。説明のために、特徴はDフリップフロップを参照して記述される。
3.例示的構成要素
図2は、例示的構成要素を表すDフリップフロップ200のブロック図である。Dフリップフロップ200の制約パラメータは、本発明の1つの態様により測定することができる。Dフリップフロップ200は、D入力210およびクロック入力220を受け取り、それに応答してQ出力240を生成するよう図示されている。
Dフリップフロップ200は、クロック入力220が論理低から高に変化する時、D入力210上で受信した信号をQ出力に転送する。従って、パス240上のQ出力における信号はD入力における信号に類似しているかもしれないが、いくらかの遅延の後に現れる。Dフリップフロップ200は、3つの制約パラメータ、準備時間、保持時間、およびパルス幅、によって特徴付けることができる。制約パラメータ値は、回路パラメータに関連する特定の値に依存する場合がある。
Dフリップフロップ200の準備時間を(データ信号およびクロック信号の)スルー時間の多様な組合せに対して決定することのできる方法を以下に説明する。しかし、本方法は、この分野の技術者には明らかなように、他の構成要素、制約パラメータおよび回路パラメータに適用することもできる。このような応用は、本発明の多様な態様の範囲および精神内にあるものとみなされる。
4.方法
図3は、本発明の1つの態様により、回路パラメータの多様な組合せに対する制約パラメータ値を迅速に決定することのできる方法を表す流れ図である。説明のために、本方法は図1および図2を参照して記述される。しかし、本方法は、ここに提供される開示に基づきこの分野の技術者には明らかなように、他の構成要素の制約パラメータを決定するためのいくつかの他の実施例においても実現することができる。本方法は、ステップ301において開始し、制御はステップ310に移る。
ステップ310において、コンピュータ・システム100は、回路パラメータの他の組合せに対して決定された制約値に基づき、回路パラメータの1つの組合せに対する制約値を推定する。このような推定のために、多様な方法を使用することができる。例示的方法は、以下の段落において更に詳細に説明する。
ステップ330において、推定値に基づきおおよその範囲を決定することができる。一般に範囲は、推定値より大きいいくつかの値と推定値より小さいいくつかの値を含む必要がある。
ステップ340において、コンピュータ・システム100は、ステップ330において決定された範囲において、正しい値の探索を行う。探索は一般に、(測定しようとする)制約パラメータに対する特定の値を使用して、構成要素がその特定の値において機能的であるかどうかを決定することを伴う。特定の値は、(許容誤差限度内の)正しい値が決定されるまで繰り返し変えられる。例示的探索方法は、以下に更に詳細に説明する。
ステップ350において、コンピュータ・システム100は、ステップ340において正しい値が見つかったか(決定されたか)どうかを決定する。正しい値が見つかった場合、制御はステップ399に移り、そうでない場合制御はステップ360に移る。ステップ360において、探索が行なわれるべき範囲が変更され、制御はステップ340に移る。従って、ステップ340、350および360のループは、(制約パラメータに対する)正しい値が見つかるまで続けられる。方法はステップ399において終了する。
図3のステップを以下に追加例と共に説明する。1つの実施例において、ステップ310の推定は、曲線の当てはめ技術を使用して行われる。曲線の当てはめ技術の基礎となる原則は、図4を参照して以下に説明する。
5.原則
図4は、スルーにおける変化に伴う制約値の変化を表すグラフである。このグラフは本発明の多様な態様により決定しようとする多様なデータ点に基づいていることを理解されたい。しかし、正確な値を調査することにより、本発明の1つの実施例において使用される原則が理解される。
グラフは、x軸に沿ったデータ・スルー(つまり、データ信号のスルー)およびy軸に沿った制約値を含む。3つの曲線410、420および430がクロック・スルー(つまり、クロック信号のスルー)の3つの値に対応して示されている。従って、各曲線はクロック・スルー定数を保ちながら描かれていることが理解されるであろう。しかし、同様な(曲線)パターンを、データ・スルー定数を保ちながらクロック・スルーを変化させることによっても見ることができる。
図4から、制約値は曲線のパターンに当てはまり、この曲線は多様な数学式を使用してモデル化できることが理解されるであろう。1つの実施例において、2Dスプライン曲線が、(図3のステップ310のように)パターンを決定し、従って次の値を推定するために使用される。しかし、ある場合において、先の値が存在しないことがあり、このような場合にはステップ310におけるような推定は可能でない場合がある。制約値を上記の方法を使用して決定することのできる方法は、図5を参照して以下に説明する。
6.マトリックス
図5は、本発明の1つの実施例において各制約パラメータを決定することのできる方法を表すマトリックスを示している。マトリックスは、5つの行510、520、540、560および580、および6つの列501、502、504、506、508および509を含み、その結果30個のエントリを含んで示されている。説明は2次元しか含まないマトリックスを参照してなされるけれども、この概念は、本発明の多様な態様の範囲および精神から逸脱することなく、多次元(製造工程、温度、電圧、その他)に容易に拡張することができることを理解されたい。
行に沿ったエントリは、データ・スルーが変化するクロック・スルーの特定の値に対応し、列に沿ったエントリは、クロック・スルーが変化するデータ・スルーの特定の値に対応する。従って、行510におけるエントリ((1,1)、(1,2)、(1,3)、(1,4)、(1,5)および(1,6))は、クロック・スルーの第1の値に対応しデータ・スルーが変化する値を表す。列501におけるエントリ((1,1)、(2,1)、(3,1)、(4,1)および(5,1))は、データ・スルーの第1の値に対応しクロック・スルーが変化する値を表す。
各エントリを決定することのできる方法をここに説明する。値は、左から右へ行優先順に決定されるよう記述され、図5における左下隅から始まることを理解することが役立つであろう。従って、行510において、(左下隅における)エントリ(1,1)は“なし”を含み、エントリにおける値は独立して(どんな先の値の利益も無しに)決定する必要があることを示している。従って、エントリ(1,1)に対応する制約値は、従来の方法(例えば、2等分探索)によって決定してもよい。
エントリ(1,2)は、PLC(最後の制約値を使用した予測)を含み、エントリ(1,2)に対応する制約値は、(エントリ(1,1)によって表される)先のスルーに基づき予測された(推定された)値から決定されることを示している。PLCは、次のエントリの正しい値を決定するために、1つの先のエントリのみが使用可能である場合に使用される。同様に、エントリ(2,1)もまたPLCを含む。
エントリ(1,3)はPDS(データ・スルーに亘る曲線の当てはめを使用した推測)を含み、エントリ(1,3)に対応する制約値は、同じ行における先に決定された正しい値(つまり、(1,1)および(1,2)に対応する正しい値)に基づき推定されることを示している。同様に、PDSを有する他のエントリの正しい値は、同じ行におけるエントリに対応する先に計算された正しい値を使用して推定することができる。正しい値はそれから、推定値の周辺を探索することによって決定することができる。
行520において、エントリ(2,2)はPPC(平行曲線を使用した推測)を含み、エントリ(2,2)に対応する制約値は、行510および520に対応する曲線は平行であると仮定して決定されることを示している。従って、エントリ(1,1)および(1,2)に対応する実際の値の差分が決定され、同じ差分が、エントリ(2,1)に対応する実際の値に関して使用され、エントリ(2,2)に対する値が推定される。
行540において、エントリ(3,1)はPCS(クロック・スルーに亘る曲線の当てはめを使用した予測)を含み、エントリ(3,1)に対応する制約値は、同じ列における先に決定された正しい値(つまり、(1,1)および(2,1)に対応する正しい値)に基づき推定された値から決定されることを示している。同様に、PCSを有する他のエントリの値は、同じ列におけるエントリに対応する先に計算された値を使用して推定することができる。
上記のことから、回路パラメータのいくつかの組合せに対する制約値は、先に計算された正しい値に基づき推定することができることが理解されるであろう。正しい値を推定値から決定することのできる方法は、以下に追加例と共に説明する。
7.推定値からの正しい値の決定
図6は、本発明の1つの実施例において、正しい値を推定値から決定することのできる方法を表す流れ図である。本方法はステップ601において開始し、制御は直ちに605に移る。
ステップ605において、コンピュータ・システム100は推定値、最少範囲、RmaxおよびRminを受け取る。RmaxおよびRminはそれぞれ、制約値が潜在的に持つことのできる最大および最少の値を表し、構成要素の設計者が提供することができる。最少範囲は、制約パラメータに対する正しい値の計算における許容誤差を特定する。
ステップ610において、変数HendおよびLendがそれぞれ(推定値+小さな値)および(推定値−小さな値)に等しく設定される。1つの実施例において、“小さな値”はゼロに等しく選択される。以下に説明するように、変数Lendは(現在の)探索範囲の低(左)端を表し、変数Hendは探索範囲の高(右)端を表す。
変数HexpおよびLexpは共に1に等しく設定される。変数HexpおよびLexpは、以下に説明するように、ステップ620−690のループにおいて探索範囲を決定する際に連続する失敗およびパス結果が得られた場合、範囲の右および左方向への拡大を加速するために使用される。
PフラグおよびFフラグはそれぞれ、パス・フラグおよび失敗フラグを表し、最初は共に偽に設定されている。PフラグおよびFフラグはそれぞれ、以下に説明するように、パスおよび失敗の最初のケースが見つかった時に真に変えられ、そのまま真のままである。双方のフラグが真である時、探索範囲は、ステップ620−690のループによって正しく決定されたものとみなされる。
ステップ620において、次の探索点が決定される。この決定は、多様な方法を使用して行うことができる。1つの実施例において、PフラグおよびFフラグのうち少なくとも1つが偽である場合、探索点はHendとLendの平均に等しく選択される。一方、PフラグおよびFフラグの双方が真である場合、探索点を決定することのできる方法は、図7を参照して以下に説明する。
ステップ625において、(ステップ620において決定された)探索点におけるシミュレーションが行われる。つまり、制約値が探索点と等しいと仮定して、構成要素がシミュレートされる。この分野では周知のSPICEシミュレータのようなツールを、シミュレーションのために使用してもよい。
ステップ630において、ステップ625のシミュレーションがパスしたか(つまり成功したか)に関する決定がなされる。1つの実施例において、構成要素が機能的である(つまり、フリップフロップ200の場合データが伝播された)場合、および、探索点に対応する伝播遅延がR遅延(以下の段落において説明する測定値)より小さい場合、結果はパスと決定される。その他の場合、結果は失敗と決定される。結果が失敗とみなされた場合制御はステップ640に移り、その他の場合はステップ670に移る。
ステップ640において、変数Lendは探索点と等しく設定され、Fフラグは、シミュレーションの失敗状況はすでに見つかっていることを反映して、真に設定される。ステップ650において、PフラグおよびFフラグの状態が調べられ、双方のフラグが“真”に等しいかどうか決定される。PフラグおよびFフラグの双方が“真”に等しい場合、制御はステップ690に移り、その他の場合はステップ660に移る。
ステップ660において、Hendは{Hend+K x Hexp}と等しく設定され、HexpはHexp x 2と等しく設定される(“x”は乗法記号を示す)。ここで、Kは何らかの定数値を表す。理解されるように、Hexpの乗算の結果は、連続する繰り返しに亘るHendの増加率である。制御はステップ690に移る。ステップ670において、上記のステップ640においてLendおよびFフラグが設定されたのと同様に、変数Hendは探索点と等しく設定されPフラグは真に等しく設定される。
ステップ680において、PフラグおよびFフラグの状態が調べられ、双方のフラグが“真”に等しいかどうか決定される。PフラグおよびFフラグの双方が真に等しい場合、制御はステップ690に移り、その他の場合ステップ685に移る。ステップ685において、Lendは{Lend−K x Lexp}と等しく設定され、LexpはLexp x 2と等しく設定される(“x”は乗法記号を示す)。制御はそれからステップ690に移る。
ステップ690において、SRange(Hend−Lendと等しい)が(ステップ605において受け取った)最少範囲より小さいかどうかに関する決定がなされる。SRangeが最少範囲より小さい場合、制御はステップ695に移り、その他の場合制御はステップ620に移る。ステップ620−690のループにおいて、SRangeが最少範囲より小さくなるまで、適当なステップが繰り返される。
ステップ695において、(ステップ630における)最後のパス結果に対応する探索点は、制約パラメータの正しい値として報告される。Hend変数が対応する値を含んでいるので、正しい値はHendを使用して報告され、本方法はステップ699において終了する。このようにして、制約パラメータの正しい値は、推定値から決定することができる。図6のステップの動作は、以下に1つの例を参照して更に説明される。
8.例
図7は、X軸上に探索のために使用される制約値(準備時間)を、Y軸上に伝播遅延(つまり、クロックの立上がり端とQ出力において現れるデータとの間の)を有するグラフである。制約値が許容最小値より低い場合、伝播遅延は無限に向かって示され、データは伝播されないことを示している。
観察されるように、伝播遅延は、1部分においては制約値が減少するのに比例して増加するよう示され、他の部分においては制約値が増加するにつれ実質的に平坦であるよう示されている。正しい制約値は、遅延が正確度制限(本明細書における最少範囲)内でRdelayより小さい、最少準備時間であり、本説明的例においては点763におけるものと仮定される。無限の準備時間(あるいは、実際にはRmax)に対応する遅延は、Idelayと称される。
Rdelayは、Idelayより高い(例えば、10%より高い)何らかの遅延として定義され、図6を参照して上に説明したように正しい値を決定するために使用される。RminおよびRmaxはそれぞれ、任意の探索範囲に対する下限および上限を特定する、最少および最大制約値を表し、ユーザが特定することができる。図7の曲線は、以下に説明するように、連続する探索点を決定するために使用される。
引き続き図6および図7を共に参照し、説明のために、推定値は点760に対応すると仮定する。(探索点760は正しい値763より実質的に大きいので)ステップ630においてパス結果が決定され、従って制御はステップ670に移る。Hendはそれから探索点に設定され、Pフラグは真に設定される。制御はそれからステップ685に移り、そこでLendは(K x Lexp)分減少され、その結果のLendは点762に対応すると仮定する。第1の繰り返しの終わりにおける探索範囲は、従って、点762と760との間である。制御はそれからステップ620に移る。
次の(第2の)繰り返しに対する探索点は、Fフラグが偽であるので、LendとHendの平均(点761と仮定する)に設定される。パス結果がステップ630において検出され(ここでもまた、探索点761は正しい値763より実質的に大きいので)、Lendは第1の繰り返しにおけるよりもより大きい因子分減少され、Lendは従って764と等しいと仮定される。Hendは探索点761に設定される。第2の繰り返しの終わりにおける探索範囲は、従って、点764と761との間である。制御はそれからステップ620に移る。
次の(第3の)繰り返しに対する探索点は、LendとHendの平均(点765)に設定される。今度は失敗結果がステップ630において検出され(探索点765が正しい値763より実質的に小さいので)、制御はステップ640に移る。Lendは探索点(765)と等しく設定され、Fフラグは真に等しく設定される。ここで双方のフラグが真に設定されているので、制御は、全ての後続の繰り返しにおいて(今回の繰り返しも含めて)、ステップ650および680からステップ690に移る。従って、第3の繰り返しの終わりにおいて、探索範囲は点765と761との間である。
いずれかの端においてパスおよび失敗点によって定義される範囲は、制約パラメータが何らかのレベルの正確さをもって推定されている場合、狭くなることを理解されたい。その結果、上記の繰り返しの数を最少にすることができる。一旦探索範囲が狭められると、その範囲に伴う探索の数もまた少なくなり、それにより、セル・ライブラリ特徴づけ時間を更に少なくすることができる。パスおよび失敗点内で更なる探索を行うことのできる方法を以下に説明する。
1つの実施例において、ステップ690の条件が真となるまで、連続する繰り返しにおいて探索範囲を狭めながら、2等分探索が行われる。代替的実施例を、図8を参照して以下に説明する。本方法は、単に説明のために上記の実施例を参照して説明される。しかし、本方法は、他の環境/実施例においても実現することができる。本方法はステップ801において開始し、制御は直ちにステップ810に移る。
ステップ810において、曲線(遅延を制約パラメータ値の関数とする)が、多様な失敗およびパス点を当てはめて生成される。1つの実施例において、曲線は方程式によって表され、方程式はそれから多様な決定のために計算することができる。上記の例において、曲線は点760、761および765を通して当てはめることができる。この分野において周知の、多様な曲線の当てはめ技術(例えば、スプライン曲線)を使用してもよい。説明のために、図7の曲線が生成されたと仮定する。
ステップ830において、生成された曲線を使用して、探索範囲における1つあるいは複数の中間点に対応する期待遅延を決定する。理解されるように、最近のパスおよび失敗点(説明的実施例において、点765および761)が、探索範囲を形成する。1つの実施例において、2つの点(探索範囲の1/3および2/3)に対応する遅延が、曲線を調査することによって決定される。
言い換えれば、790および780はそれぞれ探索範囲の失敗およびパス点に対するX座標を表すと仮定すると、この範囲(780−790)における1/3(点766)および2/3(点768)点が決定され、Y軸上の対応する遅延は曲線を調査することによって決定される。
ステップ850において、ステップ830において決定された各遅延が、閾値と比較される。1つの実施例において、閾値は上記のRdelayと等しく設定される。遅延が閾値より小さい場合、遅延は許容可能とみなされ、その他の場合は許容不可能とみなされる。
ステップ860において、シミュレーションの次の点が、ステップ850の比較の結果に基づき決定される。点766および768の双方の結果が許容不可能とみなされる場合、シミュレーションの次の点は2/3点768に設定することができる。点766および768の双方の結果が許容可能とみなされる場合、シミュレーションの次の点は1/3点766に設定することができる。点768の結果が許容可能であり点766の結果が許容不可能である場合、シミュレーションの次の点は、探索範囲における中間点769(中央に位置するよう示されている)に設定することができる。
説明的例において、点766および768における遅延は閾値(点763におけるRdelay)より小さいので、点766および768の双方はステップ850において許容可能とみなされる。従って、次のシミュレーション点は、ステップ860において1/3点766に設定される。
ステップ870において、シミュレーションがステップ860において決定された次の点に対して実行される。説明的例において、シミュレーションは、ステップ870において点766において実行される。曲線の当てはめを使用してステップ830において決定された遅延は一般に正確であるので、シミュレーションの結果はパスとみなされる。
ステップ890において、新しい探索範囲がシミュレーションの結果に基づき設定される。説明的例において、次の探索範囲はステップ890において点765と766との間に設定される。この探索範囲は、点765と761との間の先の探索範囲の1/3である。
多様な方法を、範囲内で探索し正しい遅延値を決定するために使用することができる。理解されるように、図8の方法は、探索窓を(2等分探索における半分に対比して)1/3に狭めることができるので、繰り返し(シミュレーション)の数を減少させることができる。
従って、上記のような方法を使用して、制約パラメータの正しい値を決定することができる。理解されるように、回路パラメータの他の組合せに対応する正しい値を使用することにより、所定の組合せに対する推定値を正しく決定することができる。このような正確性により、推定値の周辺を探索することによって、必要とされる付加的探索の数を更に最小化することができる。
9.結論
本発明の多様な実施例を上に説明してきたけれども、これらの実施例は例としてのみ示され、制限として示されているのではないことを理解されたい。従って、本発明の広さおよび範囲は、上記の例示的実施例のいずれによっても制限されるものではなく、以下の請求項およびそれらに同等な物によってのみ定義されるものである。
以上の説明に関して更に以下の項を開示する。
(1) それに従って集積回路が実装される回路パラメータの組合せに対する構成要素の制約パラメータを測定する方法であって、該構成要素は該集積回路において使用するよう設計されており、
上記回路パラメータの組合せに対する上記制約パラメータを、上記回路パラメータの1つあるいは複数の他の組合せの正しい制約パラメータ値に基づき推定し、推定値を生成することと、
上記推定値の周辺を探索し、上記回路パラメータの組合せに対する上記制約パラメータに対する正しい値を決定すること、
を含む、上記方法。
(2) (1)記載の方法において、上記探索は、
上記制約パラメータに対する上記推定値を使用して、上記構成要素の第1のシミュレーションを実行することと、
上記第1のシミュレーションがパス結果を返すかどうかを決定することと、
上記第1のシミュレーションが上記パス結果を返す場合、上限を上記推定値と等しく、下限を上記推定値から第1の値を減算した値に等しく、第1の探索範囲を設定することと、
上記第1のシミュレーションが上記パス結果を返さない場合、上記下限を上記推定値と等しく、上記上限を上記推定値に第2の値を加算した値に等しく、上記第1の探索範囲を設定すること、
を含むことを特徴とする、上記方法。
(3) (2)記載の方法において、上記探索は更に、
上記制約パラメータに対する第2の探索値を使用して、上記構成要素の第2のシミュレーションを実行することと、該第2の探索値は上記第1の探索範囲に含まれ、
上記第2のシミュレーションが上記パス結果を返すかどうかを決定することと、
上記第2のシミュレーションが上記パス結果を返す場合、上限を上記第2の探索値と等しく第2の探索範囲を設定することと、
上記第2のシミュレーションが上記パス結果を返し、上記第1のシミュレーションもまた上記パス結果を返した場合、上記第2の探索範囲の下限を、上記第1の探索範囲の上記下限から第3の値を減算した値に等しく設定することと、該第3の値は上記第1の値より大きく、
上記第2のシミュレーションが上記パス結果を返さない場合、上記第2の探索範囲の上記下限を上記第2の探索値と等しく設定することと、
上記第2のシミュレーションが上記パス結果を返さず、上記第1のシミュレーションも上記パス結果を返さなかった場合、上記第2の探索範囲の上記上限を、上記第1の探索範囲の上記上限に第4の値を加算した値に等しく設定すること、該第4の値は上記第2の値より大きい、
を含むことを特徴とする、上記方法。
(4) (3)記載の方法であって更に、第3の探索範囲を決定することを含み、上記第3の探索範囲の上記上限は上記パス結果を返し、上記下限は上記パス結果を返さないことを特徴とする、上記方法。
(5) (4)記載の方法であって更に、
遅延を制約パラメータ値の関数として曲線を生成することと、該曲線は、少なくとも上記第1のシミュレーションおよび上記第2のシミュレーションに基づき生成され、
上記第3の探索範囲における複数の中間点を選択することと、
上記曲線を使用して、上記複数の中間点の各々に関連する期待遅延を決定することと、
上記各期待遅延を閾値と比較して、上記期待遅延が許容可能か許容不可能かを決定することと、上記期待遅延は、上記期待遅延が上記閾値より小さい場合許容可能とみなされ、その他の場合は許容不可能とみなされ、
上記比較の上記結果に基づきシミュレーションの次の点を決定すること、
を含むことを特徴とする、上記方法。
(6) (5)記載の方法であって更に、
上記次の点に対応するパラメータ値を使用して第3のシミュレーションを実行することと、
上記第3のシミュレーションの結果に基づき第4の探索範囲を設定すること、
を含むことを特徴とする、上記方法。
(7) 回路パラメータの異なる組合せにおける制約パラメータの測定
回路パラメータの所定の組合せに対する制約パラメータの値は、回路パラメータの他の組合せに対する任意の先に計算された値に基づき推定される(310)。推定は制約パラメータの実際の値に近いかも知れないので、推定値の周辺の狭い探索範囲において、(例えばシミュレーションを使用して)探索を行うことができる(330、340)。その結果、回路パラメータの異なる組合せにおける制約パラメータを迅速に測定することができる。本発明の他の態様により、(パス結果を生成する少なくとも1つの点および失敗結果を生成する他の1つの点を伴う)複数の探索点の結果に基づき曲線が生成され、探索は、パスと失敗点との間において、曲線上の中間点に対応する遅延が望ましい閾値より低いかどうかを第1に調査することによって実行される。
本発明の1つの態様により実現されたコンピュータ・システムのブロック図である。 例示的構成要素の詳細を表すDフリップフロップのブロック図である。 本発明の1つの態様による、回路パラメータの多様な組合せに対する制約パラメータ値を迅速に決定することのできる方法を表す流れ図である。 本発明の1つの態様により制約パラメータを決定するために使用することができる、データ・スルーにおける変化に伴う制約値の変化を表すグラフである。 本発明の1つの実施例において各制約パラメータを決定することのできる方法を表すマトリックスを示す図である。 本発明の1つの態様による、推定値から迅速に正しい値を決定することのできる方法を表す流れ図である。 本発明の1つの態様により、より良い探索点を決定するために使用される、制約値の変化に伴う伝播遅延の変化を表すグラフである。 本発明の他の態様による、1つの範囲を探索する間、シミュレーションの数を減少させるために曲線の当てはめ方法を使用することができる方法を表す流れ図である。
符号の説明
100 コンピュータ・システム
110 CPU
120 RAM
130 補助記憶装置
131 ハード・ドライブ
136 フラッシュ・メモリ
137 取外し可能記憶ドライブ
140 取外し可能記憶装置
150 通信パス
160 グラフィック・コントローラ
170 ディスプレイ装置
180 ネットワーク・インタフェース
190 入力インタフェース
200 Dフリップフロップ
210 D入力
220 クロック入力
240 Q出力

Claims (1)

  1. 集積回路が実装される回路パラメータの組合せに対する構成要素の制約パラメータを測定する方法であって、該構成要素は該集積回路において使用するよう設計されており、
    上記回路パラメータの組合せに対する上記制約パラメータを、上記回路パラメータの1つあるいは複数の他の組合せの正しい制約パラメータ値に基づき推定し、推定値を生成することと、
    上記推定値の周辺を探索し、上記回路パラメータの組合せに対する上記制約パラメータに対する正しい値を決定すること、
    を含む、上記方法。
JP2004209323A 2003-07-17 2004-07-16 回路パラメータの異なる組合せにおける制約パラメータの測定 Pending JP2005038430A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/620,602 US6876940B2 (en) 2003-07-17 2003-07-17 Measuring constraint parameters at different combinations of circuit parameters

Publications (1)

Publication Number Publication Date
JP2005038430A true JP2005038430A (ja) 2005-02-10

Family

ID=34062809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004209323A Pending JP2005038430A (ja) 2003-07-17 2004-07-16 回路パラメータの異なる組合せにおける制約パラメータの測定

Country Status (2)

Country Link
US (1) US6876940B2 (ja)
JP (1) JP2005038430A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4118536B2 (ja) * 2001-07-03 2008-07-16 株式会社東芝 クロック遅延設定方法
US8085824B2 (en) * 2007-05-31 2011-12-27 Finisar Corporation Optimization of laser parameters to achieve desired performance
CN102879734B (zh) * 2012-09-26 2015-06-17 宁夏电力公司电力科学研究院 智能变电站开关动作时间延迟的测试方法
US9985612B2 (en) * 2016-08-24 2018-05-29 Intel Corporation Time borrowing flip-flop with clock gating scan multiplexer
US10892911B2 (en) * 2018-08-28 2021-01-12 Texas Instruments Incorporated Controller area network receiver

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5508937A (en) * 1993-04-16 1996-04-16 International Business Machines Corporation Incremental timing analysis
US7346479B2 (en) * 1998-09-04 2008-03-18 Intel Corporation Selecting design points on parameter functions having first sum of constraint set and second sum of optimizing set to improve second sum within design constraints
US6311148B1 (en) * 1998-09-09 2001-10-30 Sun Microsystems, Inc. Method for determining static flip-flop setup and hold times
US6625785B2 (en) * 2000-04-19 2003-09-23 Georgia Tech Research Corporation Method for diagnosing process parameter variations from measurements in analog circuits
US7191112B2 (en) * 2000-04-28 2007-03-13 Cadence Design Systems, Inc. Multiple test bench optimizer
US20020143516A1 (en) * 2001-02-16 2002-10-03 Rao Guruprasad G. Apparatus and methods for constraint characterization with degradation options
US6584598B2 (en) * 2001-02-16 2003-06-24 Silicon Metrics Corporation Apparatus for optimized constraint characterization with degradation options and associated methods
CA2411328C (en) * 2001-11-07 2009-06-23 Analog Design Automation Inc. Method of interactive optimization in circuit design
US20030121010A1 (en) * 2001-12-21 2003-06-26 Celoxica Ltd. System, method, and article of manufacture for estimating a potential performance of a codesign from an executable specification
US6877139B2 (en) * 2002-03-18 2005-04-05 Fishtail Design Automation Inc. Automated approach to constraint generation in IC design
US20040002844A1 (en) * 2002-06-27 2004-01-01 Jess Jochen A.G. System and method for statistical modeling and statistical timing analysis of integrated circuits
US6904579B2 (en) * 2003-04-01 2005-06-07 Texas Instruments Incorporated Reducing time to measure constraint parameters of components in an integrated circuit
US7251800B2 (en) * 2003-05-30 2007-07-31 Synplicity, Inc. Method and apparatus for automated circuit design
US7178118B2 (en) * 2003-05-30 2007-02-13 Synplicity, Inc. Method and apparatus for automated circuit design

Also Published As

Publication number Publication date
US20050015214A1 (en) 2005-01-20
US6876940B2 (en) 2005-04-05

Similar Documents

Publication Publication Date Title
Liou et al. Fast statistical timing analysis by probabilistic event propagation
US8302046B1 (en) Compact modeling of circuit stages for static timing analysis of integrated circuit designs
JP2005092885A (ja) デジタル回路の統計的タイミング解析のためのシステムおよび方法
JPH0713974A (ja) ディジタル・マシン性能シミュレーション方法及び装置
JP2007328788A (ja) クロックメッシュ分析方法、装置及びシステム
JP2006107517A (ja) クロストークを考慮したタイミング分析のためのシステム、方法及び論理装置
US8713506B2 (en) System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce dynamic power in an electronic circuit and an apparatus incorporating the same
Xie et al. Symbolic techniques for performance analysis of timed systems based on average time separation of events
JP2020507139A (ja) 集積回路の経路遅延変動を利用する動的周波数増大
US20180060471A1 (en) Addressing of process and voltage points
US20060026543A1 (en) Accurate timing analysis of integrated circuits when combinatorial logic offers a load
US8150638B1 (en) Predicting parasitic capacitance in schematic circuit simulations using sub-circuit modeling
US7284212B2 (en) Minimizing computational complexity in cell-level noise characterization
US6876940B2 (en) Measuring constraint parameters at different combinations of circuit parameters
Chakraborty et al. Timing analysis of asynchronous systems using time separation of events
Chou et al. Average-case technology mapping of asynchronous burst-mode circuits
JP5146087B2 (ja) 消費電力見積方法、回路設計支援装置及びプログラム
JP6089627B2 (ja) 消費電力見積り装置および消費電力見積り方法
Xiao et al. Functional correlation analysis in crosstalk induced critical paths identification
Ubar et al. Fast identification of true critical paths in sequential circuits
JP2007272288A (ja) 消費電力算出プログラム、記録媒体、消費電力算出方法、および消費電力算出装置
US7483819B2 (en) Representing data having multi-dimensional input vectors and corresponding output element by piece-wise polynomials
CN117709294B (zh) 集成电路的约束验证方法、装置、电子设备、介质及产品
US20230334211A1 (en) System for making circuit design changes
JP2000276454A (ja) ソフトウェアの構成方法