JP4340592B2 - スラック値設定方法,スラック値設定装置,スラック値設定プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 - Google Patents
スラック値設定方法,スラック値設定装置,スラック値設定プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 Download PDFInfo
- Publication number
- JP4340592B2 JP4340592B2 JP2004180679A JP2004180679A JP4340592B2 JP 4340592 B2 JP4340592 B2 JP 4340592B2 JP 2004180679 A JP2004180679 A JP 2004180679A JP 2004180679 A JP2004180679 A JP 2004180679A JP 4340592 B2 JP4340592 B2 JP 4340592B2
- Authority
- JP
- Japan
- Prior art keywords
- path
- slack value
- pin
- branch
- worst
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Description
電子回路において、データパス上に分岐ピンをそなえることにより複数の分岐パスが形成される場合に、分岐パスによっては、ディレイに余裕があったり、又、逆に余裕が無かったりする場合がある。設計者は、このような分岐パスにおけるディレイの余裕の有無によって、該当する分岐パスを修正するか否かを判断することになる。そして、このディレイの余裕度を知るためにスラック(slack)値が用いられている。
先ず、送り側FFから受け側FFに対してフォワードトレースを実行することにより(ステップS10)、送り側FFと受け側FFとの間における全経路(パスルート)を認識するとともに、これらのパスルート上に配設されているゲート(セルあるいは素子という場合もある)におけるゲートディレイを取得する。なお、このゲートディレイは、データベース(例えば、メモリ上のテーブル)に保存される。又、これらのゲートディレイに基づいて、送り側FFと受け側FFとの間における全経路の中から、パスディレイが最も大きいワーストパスを選出する。
そして、初期スラック値s0を算出するとともに(ステップS30)、ワーストパスについて、その受け側FFから送り側FFに向かってバックワードトレースを開始する(ステップS40)。なお、以下、図中においてはバックワードトレースをバックトレースと表わす。
通過ピンxがテーブルTに登録されているか否かを判断して(ステップS70)、通過ピンxがテーブルTに登録されている場合には(ステップS70のYESルート参照)、通過ピンxのテーブルをt1として、このt1のスラック値設定済みフラグに“on”を設定して(ステップS80)、次の通過ピンをxに設定する(ステップS90)。なお、通過ピンxがテーブルTに設定されていない場合には(ステップS70のNOルート参照)、ステップS90に移行する。なお、テーブルt1には、スラック値設定済みフラグと枝パス選択済フラグとを関連付けて保存するようになっている。
t1がテーブルTの最後の要素であるか否かを判断して(ステップS120)、最後の要素ではない場合には(ステップS120のNOルート参照)、t1の枝パス選択済みフラグが“off”であるかを確認する(ステップS130)。ここで、t1の枝パス選択済みフラグが“off”である場合には(ステップS130のYESルート参照)、次に、t1のスラック値設定済みフラグが“on”であるかを確認する(ステップS140)。そして、t1のスラック値設定済みフラグが“on”である場合には、(ステップS140のYESルート参照)、新しいスラック値s1を算出した後(ステップS150)、t1の枝ピンを開始ピンとして、その枝ピンにかかるパスルートについてバックワードトレースを開始する(ステップS160)。
通過ピンxがテーブルTに登録されているか否かを判断して(ステップS190)、通過ピンxがテーブルTに登録されている場合には(ステップS190のYESルート参照)、通過ピンxのテーブルをt2として、このt2のスラック値設定済みフラグに“on”を設定し(ステップS200)、次の通過ピンをxに設定して(ステップS210)、ステップS170に戻る。又、通過ピンxがテーブルTに設定されていない場合には(ステップS190のNOルート参照)、ステップS210に移行する。
一方、t1の枝パス選択済みフラグが“off”ではない場合や(ステップS130のNOルート参照)、t1のスラック値設定済みフラグが“on”である場合には(ステップS140のNOルート参照)、ステップS250に移行する。
図17は従来のスラック値設定手法を実現するためのプログラム例を示す図であり、例えば[1]〜[10]の10個の枝ピンを有する電子回路において、これらの全ての枝ピンにかかる枝パスについて、全ての通過ピンにスラック値の設定を行なうまで、スラック値の生成と伝搬を繰り返し行なう(ループさせる)ものである。
本発明は、このような課題に鑑み創案されたもので、データパス上のゲートにスラック値を高速に設定することができるようにすることを目的とする。
図1は本発明の一実施形態としてのスラック値設定装置の基本構成を示すブロック図、図2は本発明の一実施形態としてのスラック値設定装置によってスラック値の設定を行なう電子回路の例を示す図である。
本スラック値設定装置(評価値設定装置)1は、分岐ピンをそなえることにより複数のデータパス(枝パス)を有する電子回路(例えば、LSI等の集積回路;図2参照)について、その電子回路が正常に動作するか否かを判断・評価するために、データパス上の各通過ピンに対して評価値としてのスラック(slack)値を設定するものである。
図2に示す電子回路は、複数のゲートG1〜G14をそなえて構成され、フォワードパスとして、ゲートG1→ゲートG2→ゲートG3→ゲートG4→ゲートG5→ゲートG6→ゲートG7からなるデータパスAと、ゲートG1→ゲートG2→ゲートG8→ゲートG9→ゲートG10→ゲートG11→ゲートG6→ゲートG7からなるデータパスBと、ゲートG1→ゲートG2→ゲートG8→ゲートG12→ゲートG13→ゲートG14→ゲートG11→ゲートG6→ゲートG7からなるデータパスCと、ゲートG1→ゲートG2→ゲートG8→ゲートG12→ゲートG14→ゲートG11→ゲートG6→ゲートG7からなるデータパスDとの4つ(種類)のデータパスをそなえている。
本スラック値設定装置1は、図1に示すように、ディスプレイ2,メモリ3,キーボード4,マウス5,ハードディスク6およびCPU(Central Processing Unit)10をそなえたコンピュータシステム(情報処理装置)として構成され、CPU10が、メモリ3やハードディスク6に保存されたプログラム(スラック値設定プログラム)を実行することにより機能するようになっている。
CPU10は、種々の演算を行なうものであり、メモリ3やハードディスク6に保存されたプログラム(スラック値設定プログラム)を実行することにより、後述する、パス認識部11,ワーストパス選出部12,スラック値算出部(第1スラック値算出部,第2スラック値算出部,第3スラック値算出部)13,データパストレース部14およびスラック値設定判定部21として機能するようになっている。
パス認識部11は、評価対象の電子回路について、オペレータによりキーボード4やマウス5を用いて送りピン(始点)と受けピン(終点)とを指定された区間(データパス)について、その送りピンから受けピンに向かってトレース(フォワードトレース)を行ない、これらの送りピンと受けピンとの間に存在する全てのパス(通過ピンや通過ピン間を結ぶライン)を検出・認識するものである。
また、パス認識部11は、かかるフォワードトレースを行なうに際して、例えばハードディスク6に予め登録されているゲート情報データベースに基づいて、データパスを構成する各ゲートのディレイ(ゲートディレイ)やゲート間を結ぶ各ラインのディレイを取得し、データパス毎にこれらのディレイを積算することにより、各データパスのそれぞれについてパス全体のディレイ(パスディレイ)を算出するようになっている。
ワーストパス選出部12は、パス認識部11によって認識された複数のデータパスの中からワーストパスを選出するものであって、本実施形態においては、オーバーディレイにかかるワーストパスとレーシングにかかるワーストパスとの2種類のワーストパスを選出するようになっている。
図2に示す例においてはパスAがオーバーディレイにかかるワーストパスとなり、パスDがレーシングにかかるワーストパスとなる。なお、複数のデータパスのうちワーストパス以外のデータパスのことを、以下、アナザーパスという場合がある。図2に示す例においては、パスB,C,Dがオーバーディレイにかかるアナザーパスとなり、パスA,B,Cがレーシングにかかるアナザーパスとなる。
また、スラック値算出部(第2スラック値算出部,第3スラック値算出部)13は、オーバーディレイにかかるスラック値SOnの算出に際して、アナザーパス上の通過ピンに対しては、そのアナザーパスの開始点となる分岐ピンにおける2つのパスのディレイ差分、すなわち、当該分岐ピンにおける上位側のデータパスのパスディレイから下位側のデータパスのパスディレイを減算し、このようにして求めた2つのデータパスのディレイ差分dを、その上位側のデータパスのパスディレイから減算することにより、その分岐ピンを開始ピンとするアナザーパス上の各通過ピンに設定するスラック値SOnを求めるようになっている。
データパストレース部14は、先ず、オペレータによって指定された受けピンを開始ピンとして、同じくオペレータによって指定された送りピンまでワーストパスのバックワードトレースを行ない、その後、このワーストパスにおけるバックワード方向の分岐ピンを先頭ピンとするアナザーパスについてバックワードトレースを行なう。なお、ワーストパスに複数の分岐ピンがある場合には、最も受けピンに近い分岐ピンから順番に、その分岐ピンを先頭ピンとするアナザーパスのバックワードトレースを行なう。
また、データパストレース部14は、アナザーパス中に分岐ピンがある場合には、このアナザーパスにおける分岐ピンを先頭ピンとする他のアナザーパスについてもバックワードトレースを行なう。更に、アナザーパスに複数の分岐ピンがある場合には、これらのアナザーパスにおける最も受けピンに近い分岐ピンから順番に、各分岐ピンを先頭ピンとするアナザーパスのバックワードトレースを順次行なう。
分岐ピンテーブル作成部(ワーストパス分岐ピンテーブル作成部,アナザーパス分岐ピンテーブル作成部)16は、データパスのバックワードトレース時に通過ピンを抽出し、その通過ピンがバックワードトレースにかかる分岐ピン(枝ピン)であるか否かを判断して、通過ピンがバックワードトレースにかかる分岐ピンである場合に、その通過ピン(分岐ピン)を分岐ピンテーブルB1に登録するようになっている。すなわち、分岐ピンテーブル作成部16は、データパスのバックワードトレース時に、分岐ピンをその出現順、すなわち、受けピンに近いものから順に、分岐ピンテーブルB1に登録するようになっている。
本実施形態においては、分岐ピンテーブルB2には、バックワードトレースを行なっていないアナザーパスの開始ピンとなるべき分岐ピンが登録されるようになっている。更に、1つのアナザーパスのバックワードトレースが完了する毎に、この分岐ピンテーブルB2により分岐ピンテーブルB1が書き換えられるようになっており、又、かかる書き換えが完了した後に、分岐ピンテーブルB2は一旦リセット(初期化)されるようになっている。
スラック値設定部(第1スラック値設定部)5は、ワーストパスのバックワードトレースを行なうに際して、スラック値算出部13によって設定されたスラック値(初期スラック値SO0=0,SR0=0)をワーストパス上の各通過ピンに設定するようになっている。又、スラック値設定部(第2スラック値設定部,第3スラック値設定部)15は、スラック値算出部(第2スラック値算出部,第3スラック値算出部)13によって算出されたスラック値SOn,SRnをアナザーパス上の各通過ピンにも設定するようになっている。
上述の如く構成された、本発明の一実施形態としてのスラック値設定装置1による、スラック値の設定手法を、図3に示すフローチャート(ステップA10〜A220)に従って説明する。
また、分岐ピンテーブル作成部16は、分岐ピンテーブルB1を初期化して(ステップA30)、ワーストパスについて、その受け側FFから送り側FFに向かってバックワードトレースを開始する(ステップA40)。なお、以下、図中においてはバックワードトレースをバックトレースと表わす。
また、通過ピンxがバックワードトレースにかかる分岐ピン(枝ピン)であるか否かを判断して(ステップA70)、通過ピンxが枝ピンである場合には(ステップA70のYESルート参照)、通過ピンxを分岐ピンテーブルB1に登録して(ステップA80)、次の通過ピンをxとする(ステップA90)。又、通過ピンxが枝ピンではない場合には(ステップA70のNOルート参照)、ステップA90に移行する。
一方、bが分岐ピンテーブルB1の最後の要素である場合には(ステップA120のYESルート参照)、分岐ピンテーブルB2が空であるか、すなわち、分岐ピンテーブルB2に登録されている分岐ピンがないか否かを確認して(ステップA210)、分岐ピンテーブルB2が空である場合には(ステップA210のYESルート参照)、処理を終了する。又、分岐ピンテーブルB2が空ではない場合には(ステップA210のNOルート参照)、分岐ピンテーブルB2を分岐ピンテーブルB1に変更して(ステップA200)、ステップA100に戻る。
次に、本発明の一実施形態としてのスラック値設定装置1により、図2に示す電子回路に対してオーバーディレイ(max-de1ay)のスラック値を設定する過程を、図4〜図7を参照しながら説明する。図4〜図7は本スラック値設定装置1によるオーバーディレイにかかるスラック値の設定過程を示す図であり、それぞれ図2に示す電子回路におけるデータパスを抽出して示す図である。
次に、図5に示すように、ワーストパスのバックワードトレースで検出された分岐ピンG6.Xを新たに行なうバックワードトレースの開始ピンとして、スラック値算出部13が、分岐ピンG6.XにおけるデータパスA(ワーストパス)とデータパスBとのディレイ差分d=50−40=10を、データパスAのスラック値0から減算した値“−10”を、新しいスラック値SOnとしてデータパスB上の各通過ピンに設定する。
次に、本発明の一実施形態としてのスラック値設定装置1により、図2に示す電子回路に対してレーシング(min-de1ay)のスラック値を設定する過程を、図8〜図11を参照しながら説明する。図8〜図11は本スラック値設定装置1によるレーシングにかかるスラック値の設定過程を示す図であり、それぞれ図2に示す電子回路におけるデータパスを抽出して示す図である。
定されたスラック値は書き換えない。
次に、図10に示すように、図8のワーストパスのバックワードトレースで見つかった分岐ピンG11.Xを、新たに行なうバックワードトレースの開始ピンとして、スラック値算出部13が、分岐ピンG11.XにおけるデータパスBとデータパスDとのディレイ差分d=30−24=6を、データパスDのスラック値SR0=0に加算した値“6”を新しいスラック値SRnとして、データパスB上の各通過ピンに設定する。データパスBのバックワードトレースで通過するゲートG8,G2,G1の各通過ピンには既にスラック値SR0=0がそれぞれ設定されており、データパスBのスラック値SRn=6は、これらの既存値“0”よりも大きいため、これらのゲートG8,G2,G1の各通過ピン
に設定されたスラック値は書き換えない。
図12は本発明の一実施形態としてのスラック値設定装置1により設定されたmax-de1ayのスラック値とmin-de1ayのスラック値とを同一の電子回路上に合成して示す図である。なお、この図12中においては、各通過ピンに対して、max-delayのスラック値SOnとmin-delayのスラック値SRnとをスラッシュ(/)を挟んでそれぞれ配置することにより、各通過ピンにおけるmax-delayのスラック値とmin-delayのスラック値とを同時に表わしている(SOn/SRn)。
また、この図12に示す例においては、通過ピンG6.A2ではmax-delay側に余裕が無いがmin-de1ay側に余裕があることが分かる。この場合、ゲートG3,G4,G5の入出力ピンや通過ピンG6.A2のように、データパス上のスラック値が0/6である通過ピンの前後でディレイを小さくする回路修正が可能であることが分かる。一方、通過ピンG14.A1では、max-de1ay側は余裕があるがmin-delay側に余裕が無いことが分かる。この場合、データパス上のスラック値が−16/0である通過ピンの前後でディレイを大きくする回路修正が可能であることが分かる。
図13は本発明の一実施形態としてのスラック値設定装置によってスラック値の設定を行なう他の電子回路の例を示す図、図14は図13に示す電子回路に本発明の一実施形態としてのスラック値設定装置によりスラック値を設定する際における処理過程を説明するための図である。
この図13に示すような10個の分岐ピン[1]〜[10]をそなえる電子回路にスラック値を設定する場合には、図14に示すように、オーダー(Order)#1において分岐
ピン[1]および分岐ピン[2]をそれぞれ始点とするアナザーパスについてそれぞれスラック値の設定(伝搬)処理を行なった後に、オーダー#2において分岐ピン[3]および分岐ピン[4]をそれぞれ始点とするアナザーパスについてそれぞれスラック値の設定(伝搬)処理を行なう。その後、オーダー#3において分岐ピン[5],分岐ピン[6]および分岐ピン[7]を始点とするアナザーパスについてそれぞれスラック値の設定(伝搬)処理を行ない、更に、オーダー#4において分岐ピン[8]および分岐ピン[9]を始点とするアナザーパスにスラック値の設定(伝搬)処理を行なう。そして、オーダ#5において分岐ピン[10]を始点するアナザーパスにスラック値の設定を行なう。
図15は本発明の一実施形態としてのスラック値設定装置1により設定されたスラック値を示すデータパスの例を示す図であり、スラック値の最大値または最小値でトレースした例を示す図である。この図15においては、マクロ上の全ての通過ピンのスラック値を示すとともに、ネット分岐がある場合には、その分岐先のピンとそのスラック値を示している。本スラック値設定装置1によってスラック値の設定を行なった後に、この図15に示すようなブロック図を作成することにより、分岐ピンの余裕度を視覚的に判断することが可能になる。
本発明の各実施形態が開示されていれば、本発明を当業者によって実施・製造することが可能である。
(付記1) 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定方法であって、
前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと、
該ワーストパス上の各通過ピンに設定されるべき該スラック値を算出する第1スラック値算出ステップと、
該第1スラック値算出ステップにおいて算出された該スラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第2スラック値算出ステップと、
該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第2スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとをそなえることを特徴とする、スラック値設定方法。
該スラック値設定判断ステップにおいて、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該第2スラック値算出ステップと、該第2スラック値設定ステップとを繰り返し行なうことを特徴とする、付記1記載のスラック値設定方法。
該アナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第3スラック値算出ステップと、
該アナザーパス分岐ピンテーブル作成ステップにおいて作成された該アナザーパス分岐ピンテーブルに基づいて、当該アナザーパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第3スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第3スラック値設定ステップとをそなえ、
該スラック値設定判断ステップにおいて、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該アナザーパス分岐ピンテーブル作成ステップと、該第3スラック値算出ステップと、該第3スラック値設定ステップとを繰り返し行なうことを特徴とする、付記2記載のスラック値設定方法。
該データパス上の各通過ピンに設定されるべき該スラック値を算出するスラック値算出ステップと、
該データパスの該終点から該始点に向かってバックワードトレースを行ない、当該データパスのバックワード方向における分岐ピンを抽出し、当該分岐ピンを所定の順番で登録した分岐ピンテーブルを作成する分岐ピンテーブル作成ステップと、
該分岐ピンテーブル作成ステップにおいて作成された該分岐ピンテーブルに基づいて、当該分岐ピンテーブルに格納された該分岐ピンから該データパスをバックワードトレースして、該スラック値算出ステップにおいて算出された該スラック値を当該データパス上の各通過ピンに設定するスラック値設定ステップと、
前記データパス上の該分岐ピンについて、該スラック値が設定済みであるか否かを判断するスラック値設定判断ステップとをそなえ、
該スラック値設定判断ステップにおいて、該データパス上の全ての該分岐ピンに該スラック値が設定済みであると判断されるまで、該スラック値算出ステップと該分岐ピンテーブル作成ステップと該スラック値設定ステップとを繰り返し行なうことを特徴とする、スラック値設定方法。
前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出部と、
該ワーストパス上の各通過ピンに設定されるべき該スラック値を算出する第1スラック値算出部と、
該第1スラック値算出部によって算出された該スラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定部と、
該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成部と、
前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第2スラック値算出部と、
該ワーストパス分岐ピンテーブル作成部によって作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第2スラック値算出部によって算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定部とをそなえることを特徴とする、スラック値設定装置。
該第2スラック値算出部および該第2スラック値設定部が、該スラック値設定判断部によって該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、それぞれ前記スラック値の算出と前記スラック値の設定とを繰り返し行なうことを特徴とする、付記5記載のスラック値設定装置。
該アナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第3スラック値算出部と、
該アナザーパス分岐ピンテーブル作成部によって作成された該アナザーパス分岐ピンテーブルに基づいて、当該アナザーパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第3スラック値算出部において算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第3スラック値設定部とをそなえ、
該アナザーパス分岐ピンテーブル作成部と該第3スラック値算出部と該第3スラック値設定部とが、該スラック値設定判断部によって該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、それぞれ前記アナザーパス分岐ピンテーブルの作成と前記スラック値の算出と前記スラック値の設定とを繰り返し行なうことを特徴とする、付記6記載のスラック値設定装置。
前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと、
該ワーストパス上の各通過ピンに設定されるべき該スラック値を算出する第1スラック値算出ステップと、
該第1スラック値算出ステップにおいて算出された該スラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第2スラック値算出ステップと、
該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第2スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとを該コンピュータに実行させることを特徴とする、スラック値設定プログラム。
該スラック値設定判断ステップで、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該第2スラック値算出ステップと、該第2スラック値設定ステップとを該コンピュータに繰り返し実行させることを特徴とする、付記8記載のスラック値設定プログラム。
該アナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第3スラック値算出ステップと、
該アナザーパス分岐ピンテーブル作成ステップにおいて作成された該アナザーパス分岐ピンテーブルに基づいて、当該アナザーパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第3スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第3スラック値設定ステップとを該コンピュータに実行させ、
該スラック値設定判断ステップで、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該アナザーパス分岐ピンテーブル作成ステップと、該第3スラック値算出ステップと、該第3スラック値設定ステップとを該コンピュータに繰り返し実行させることを特徴とする、付記9記載のスラック値設定プログラム。
該スラック値設定プログラムが、
前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと、
該ワーストパス上の各通過ピンに設定されるべき該スラック値を算出する第1スラック値算出ステップと、
該第1スラック値算出ステップにおいて算出された該スラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第2スラック値算出ステップと、
該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第2スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとを該コンピュータに実行させることを特徴とする、スラック値設定プログラムを記録したコンピュータ読取可能な記録媒体。
前記データパス上の該通過ピンについて、該スラック値が設定済みであるか否かを判断するスラック値設定判断ステップを該コンピュータに実行させ、
該スラック値設定判断ステップで、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該第2スラック値算出ステップと、該第2スラック値設定ステップとを該コンピュータに繰り返し実行させることを特徴とする、付記11記載のスラック値設定プログラムを記録したコンピュータ読取可能な記録媒体。
該分岐ピンから該アナザーパスをバックワードトレースして、当該アナザーパスのバックワード方向における該分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したアナザーパス分岐ピンテーブルを作成するアナザーパス分岐ピンテーブル作成ステップと、
該アナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第3スラック値算出ステップと、
該アナザーパス分岐ピンテーブル作成ステップにおいて作成された該アナザーパス分岐ピンテーブルに基づいて、当該アナザーパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第3スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第3スラック値設定ステップとを該コンピュータに実行させ、
該スラック値設定判断ステップで、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該アナザーパス分岐ピンテーブル作成ステップと、該第3スラック値算出ステップと、該第3スラック値設定ステップとを該コンピュータに繰り返し実行させることを特徴とする、付記12記載のスラック値設定プログラムを記録したコンピュータ読取可能な記録媒体。
2 ディスプレイ
3 メモリ
4 キーボード
5 マウス
6 ハードディスク
10 CPU(パス認識部,ワーストパス選出部,第1スラック値算出部,第2スラック値算出部,第3スラック値算出部,ワーストパス分岐ピンテーブル作成部,アナザーパス分岐ピンテーブル作成部,データパストレース部,スラック値設定判定部)
11 パス認識部
12 ワーストパス選出部
13 スラック値算出部(第1スラック値算出部,第2スラック値算出部,第3スラック値算出部)
14 データパストレース部(ワーストパストレース部,アナザーパストレース部)
15 スラック値設定部(第1スラック値設定部,第2スラック値設定部,第3スラック値設定部)
16 分岐ピンテーブル作成部(ワーストパス分岐ピンテーブル作成部,アナザーパス分岐ピンテーブル作成部)
21 スラック値設定判断部
B1 分岐ピンテーブル(ワーストパス分岐ピンテーブル)
B2 分岐ピンテーブル(アナザーパス分岐ピンテーブル)
Claims (5)
- 始点から終点までの間に複数のデータパスを有する電子回路について、CPU(Central Processing Unit)をそなえたコンピュータにより、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定方法であって、
該CPUにより、前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと、
該CPUにより、初期値としてのスラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
該CPUにより、該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを順次抽出し、当該分岐ピンを抽出順で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
該CPUにより、前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに対して、当該アナザーパスの開始点となる分岐ピンにおける2つのデータパスのディレイ差分を、分岐パスが少ない上位側のデータパスのパスディレイから減算することにより、当該分岐ピンを開始ピンとするアナザーパス上の各通過ピンにそれぞれ設定されるべき該スラック値を算出するスラック値算出ステップと、
該CPUにより、該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックトレースして、該スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとをそなえることを特徴とする、スラック値設定方法。 - 該CPUにより、前記データパス上の該通過ピンについて、該スラック値が設定済みであるか否かを判断するスラック値設定判断ステップをそなえ、
該スラック値設定判断ステップにおいて、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該スラック値算出ステップと、該第2スラック値設定ステップとを繰り返し行なうことを特徴とする、請求項1記載のスラック値設定方法。 - 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定装置であって、
前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出部と、
初期値としてのスラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定部と、
該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを順次抽出し、当該分岐ピンを抽出順で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成部と、
前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに対して、当該アナザーパスの開始点となる分岐ピンにおける2つのデータパスのディレイ差分を、分岐パスが少ない上位側のデータパスのパスディレイから減算することにより、当該分岐ピンを開始ピンとするアナザーパス上の各通過ピンにそれぞれ設定されるべき該スラック値を算出するスラック値算出部と、
該ワーストパス分岐ピンテーブル作成部によって作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックトレースして、該スラック値算出部によって算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定部とをそなえることを特徴とする、スラック値設定装置。 - 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定機能をコンピュータに実行させるためのスラック値設定プログラムであって、
前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと、
初期値としての該スラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを順次抽出し、当該分岐ピンを抽出順で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに対して、当該アナザーパスの開始点となる分岐ピンにおける2つのデータパスのディレイ差分を、分岐パスが少ない上位側のデータパスのパスディレイから減算することにより、当該分岐ピンを開始ピンとするアナザーパス上の各通過ピンにそれぞれ設定されるべき該スラック値を算出するスラック値算出ステップと、
該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックトレースして、該スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとを該コンピュータに実行させることを特徴とする、スラック値設定プログラム。 - 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定機能をコンピュータに実行させるためのスラック値設定プログラムを記録したコンピュータ読取可能な記録媒体であって、
該スラック値設定プログラムが、
前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと、
初期値としてのスラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを順次抽出し、当該分岐ピンを抽出順で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに対して、当該アナザーパスの開始点となる分岐ピンにおける2つのデータパスのディレイ差分を、分岐パスが少ない上位側のデータパスのパスディレイから減算することにより、当該分岐ピンを開始ピンとするアナザーパス上の各通過ピンにそれぞれ設定されるべき該スラック値を算出するスラック値算出ステップと、
該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックトレースして、該スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとを該コンピュータに実行させることを特徴とする、スラック値設定プログラムを記録したコンピュータ読取可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004180679A JP4340592B2 (ja) | 2004-06-18 | 2004-06-18 | スラック値設定方法,スラック値設定装置,スラック値設定プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 |
US10/967,356 US7299434B2 (en) | 2004-06-18 | 2004-10-19 | Slack value setting method, slack value setting device, and recording medium recording a computer-readable slack value setting program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004180679A JP4340592B2 (ja) | 2004-06-18 | 2004-06-18 | スラック値設定方法,スラック値設定装置,スラック値設定プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006004228A JP2006004228A (ja) | 2006-01-05 |
JP4340592B2 true JP4340592B2 (ja) | 2009-10-07 |
Family
ID=35482018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004180679A Expired - Fee Related JP4340592B2 (ja) | 2004-06-18 | 2004-06-18 | スラック値設定方法,スラック値設定装置,スラック値設定プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7299434B2 (ja) |
JP (1) | JP4340592B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7401307B2 (en) * | 2004-11-03 | 2008-07-15 | International Business Machines Corporation | Slack sensitivity to parameter variation based timing analysis |
US8589846B2 (en) * | 2011-12-02 | 2013-11-19 | Synopsys, Inc. | Modeling transition effects for circuit optimization |
US8495537B1 (en) * | 2012-01-12 | 2013-07-23 | International Business Machines Corporation | Timing analysis of an array circuit cross section |
US9330216B2 (en) | 2014-06-30 | 2016-05-03 | Freescale Semiconductor, Inc. | Integrated circuit design synthesis using slack diagrams |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5636372A (en) * | 1994-09-30 | 1997-06-03 | International Business Machines Corporation | Network timing analysis method which eliminates timing variations between signals traversing a common circuit path |
US5946475A (en) * | 1997-01-21 | 1999-08-31 | International Business Machines Corporation | Method for performing transistor-level static timing analysis of a logic circuit |
JPH10301962A (ja) | 1997-04-30 | 1998-11-13 | Toshiba Corp | 論理回路の設計補助装置 |
JPH11110421A (ja) | 1997-10-08 | 1999-04-23 | Fujitsu Ltd | 回路の遅延評価方法および回路設計システム |
US6795951B2 (en) * | 2001-02-09 | 2004-09-21 | International Business Machines Corporation | Method and system for fault-tolerant static timing analysis |
JP3992947B2 (ja) * | 2001-06-22 | 2007-10-17 | 富士通株式会社 | 論理回路遅延最適化システム、論理回路遅延最適化方法、及びプログラム |
JP2003091567A (ja) | 2001-09-19 | 2003-03-28 | Matsushita Electric Ind Co Ltd | レイアウト設計方法 |
JP2003162561A (ja) | 2001-11-28 | 2003-06-06 | Kawasaki Microelectronics Kk | タイミング解析方法 |
US7117466B2 (en) * | 2003-09-18 | 2006-10-03 | International Business Machines Corporation | System and method for correlated process pessimism removal for static timing analysis |
US7162706B2 (en) * | 2004-03-05 | 2007-01-09 | Picocraft Design Systems, Inc. | Method for analyzing and validating clock integration properties in circuit systems |
-
2004
- 2004-06-18 JP JP2004180679A patent/JP4340592B2/ja not_active Expired - Fee Related
- 2004-10-19 US US10/967,356 patent/US7299434B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006004228A (ja) | 2006-01-05 |
US7299434B2 (en) | 2007-11-20 |
US20050283748A1 (en) | 2005-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4314162B2 (ja) | ノイズチェック方法および装置並びにノイズチェックプログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 | |
US6539529B2 (en) | Method and apparatus for designing integrated circuits and storage medium for storing the method | |
US6701289B1 (en) | Method and apparatus for using a placement tool to manipulate cell substitution lists | |
JP4655240B2 (ja) | タイミング解析支援装置 | |
US20040167756A1 (en) | Apparatus and method for statistical LSI delay simulation | |
US7219320B2 (en) | Semiconductor integrated circuit timing analysis apparatus timing analysis method and timing analysis program | |
US6442740B1 (en) | Clock signal analysis device and clock signal analysis method | |
CN109074412B (zh) | 使用自动焊接和自动克隆的电路中的连接的交互式布线 | |
US20050283750A1 (en) | Method and apparatus for designing a layout, and computer product | |
US7496872B2 (en) | Library creating device and interconnect capacitance estimation system using the same | |
JP4340592B2 (ja) | スラック値設定方法,スラック値設定装置,スラック値設定プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 | |
US7559042B2 (en) | Layout evaluating apparatus | |
US7114139B2 (en) | Device and method for floorplanning semiconductor integrated circuit | |
US7945882B2 (en) | Asynchronous circuit logical verification method, logical verification apparatus, and computer readable storage medium | |
JP2007199951A (ja) | 半導体集積回路の設計支援装置、設計支援方法および設計支援プログラム | |
US7260803B2 (en) | Incremental dummy metal insertions | |
JPWO2006025412A1 (ja) | 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置 | |
JP5059657B2 (ja) | マクロ内端子配線を考慮したネットリストによって信号の遅延時間を予測する設計方法、及び、プログラム | |
JP2006338090A (ja) | 半導体集積回路の設計方法および設計装置 | |
JP2002259488A (ja) | クロックスキュー検証方法 | |
JP4778339B2 (ja) | 自動配置方法、装置、及びプログラム | |
US20240046018A1 (en) | Logic circuit design method and logic circuit designing apparatus | |
JP3653814B2 (ja) | 遅延値算出方法 | |
JPH09148441A (ja) | レイアウト検証方法および装置 | |
JP3087319B2 (ja) | タイミング検証システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061218 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090303 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090310 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090422 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090616 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090706 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120710 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120710 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130710 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |