JP4340592B2 - スラック値設定方法,スラック値設定装置,スラック値設定プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 - Google Patents

スラック値設定方法,スラック値設定装置,スラック値設定プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 Download PDF

Info

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
Application number
JP2004180679A
Other languages
English (en)
Other versions
JP2006004228A (ja
Inventor
克己 井口
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004180679A priority Critical patent/JP4340592B2/ja
Priority to US10/967,356 priority patent/US7299434B2/en
Publication of JP2006004228A publication Critical patent/JP2006004228A/ja
Application granted granted Critical
Publication of JP4340592B2 publication Critical patent/JP4340592B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing 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

本発明は、電子回路が正常に動作するかを評価するためのタイミングチェックに用いて好適な、データパスのディレイを判断するための基準値(スラック値)の設定手法に関する。
一般に、電子回路の設計過程において、回路が正常に動作するか否かを判断するために、データ転送を行なうFF(Flip-Flop)間のディレイが、setup/holdの制約条件(オーバーディレイ,レーシング)内に収まるか否かを調べるタイミングチェックが行なわれている(例えば、下記特許文献1参照)。
電子回路において、データパス上に分岐ピンをそなえることにより複数の分岐パスが形成される場合に、分岐パスによっては、ディレイに余裕があったり、又、逆に余裕が無かったりする場合がある。設計者は、このような分岐パスにおけるディレイの余裕の有無によって、該当する分岐パスを修正するか否かを判断することになる。そして、このディレイの余裕度を知るためにスラック(slack)値が用いられている。
スラック値は、データパス上のデバイスまでで生じ得る最大遅延とそのデバイスに許容されている到達時間(許容到達時間)との差であり、そのデバイスにおけるタイミングの余裕度を示すものである。スラック値はデータパス上のピンに設定され、データパスが分岐する場合には、ワーストディレイとのディレイ差がスラック値として、その分岐パス上の各通過ピンに伝搬(設定)されるようになっている。そして、従来のスラック値の算出手法においては、スラック値の伝搬を行なう際に、分岐前のスラック値の取得と未処理の分岐ピンの検出を行なう必要がある。
ここで、図16に示すフローチャート(ステップS10〜S250)に従って、従来のスラック値の設定手法を説明する。
先ず、送り側FFから受け側FFに対してフォワードトレースを実行することにより(ステップS10)、送り側FFと受け側FFとの間における全経路(パスルート)を認識するとともに、これらのパスルート上に配設されているゲート(セルあるいは素子という場合もある)におけるゲートディレイを取得する。なお、このゲートディレイは、データベース(例えば、メモリ上のテーブル)に保存される。又、これらのゲートディレイに基づいて、送り側FFと受け側FFとの間における全経路の中から、パスディレイが最も大きいワーストパスを選出する。
また、全経路内における枝ピン(分岐ピン)を全て検出して、これらの枝ピンをテーブルTに登録(格納)する。このテーブルTは評価対象の電子回路上における全ての枝ピンを所定のフラグを関連付けて登録するものである。なお、このテーブルTにおける各種フラグは全て初期化しておく(ステップS20)。
そして、初期スラック値s0を算出するとともに(ステップS30)、ワーストパスについて、その受け側FFから送り側FFに向かってバックワードトレースを開始する(ステップS40)。なお、以下、図中においてはバックワードトレースをバックトレースと表わす。
ワーストパスについてバックワードトレースを終了したか否かを確認し(ステップS50)、バックワードトレースを終了していない場合には(ステップS50のNOルート参照)、通過ピンxに対して、ステップS30において算出した初期スラック値s0を設定する(ステップS60)。
通過ピンxがテーブルTに登録されているか否かを判断して(ステップS70)、通過ピンxがテーブルTに登録されている場合には(ステップS70のYESルート参照)、通過ピンxのテーブルをt1として、このt1のスラック値設定済みフラグに“on”を設定して(ステップS80)、次の通過ピンをxに設定する(ステップS90)。なお、通過ピンxがテーブルTに設定されていない場合には(ステップS70のNOルート参照)、ステップS90に移行する。なお、テーブルt1には、スラック値設定済みフラグと枝パス選択済フラグとを関連付けて保存するようになっている。
バックワードトレースが終了した場合には(ステップS50のYESルート参照)、枝パス処理フラグBに“off”を設定するとともに、(ステップS100)、テーブルTの最初の要素をt1にする(ステップS110)。なお、枝パス処理フラグBは全ての処理が完了したか否かを判断するためのフラグである。
t1がテーブルTの最後の要素であるか否かを判断して(ステップS120)、最後の要素ではない場合には(ステップS120のNOルート参照)、t1の枝パス選択済みフラグが“off”であるかを確認する(ステップS130)。ここで、t1の枝パス選択済みフラグが“off”である場合には(ステップS130のYESルート参照)、次に、t1のスラック値設定済みフラグが“on”であるかを確認する(ステップS140)。そして、t1のスラック値設定済みフラグが“on”である場合には、(ステップS140のYESルート参照)、新しいスラック値s1を算出した後(ステップS150)、t1の枝ピンを開始ピンとして、その枝ピンにかかるパスルートについてバックワードトレースを開始する(ステップS160)。
そして、その枝ピンにかかるパスルートについてバックワードトレースを終了したか否かを確認し(ステップS170)、バックワードトレースを終了していない場合には(ステップS170のNOルート参照)、通過ピンxに対して、ステップS150において算出したスラック値s1を設定する(ステップS180)。
通過ピンxがテーブルTに登録されているか否かを判断して(ステップS190)、通過ピンxがテーブルTに登録されている場合には(ステップS190のYESルート参照)、通過ピンxのテーブルをt2として、このt2のスラック値設定済みフラグに“on”を設定し(ステップS200)、次の通過ピンをxに設定して(ステップS210)、ステップS170に戻る。又、通過ピンxがテーブルTに設定されていない場合には(ステップS190のNOルート参照)、ステップS210に移行する。
バックワードトレースが終了した場合には(ステップS170のYESルート参照)、t1の枝パス選択済みフラグに“on”を設定するとともに(ステップS230)、枝パス処理フラグBに“on”を設定する(ステップS240)。そして、テーブルTの次の要素をt1にして(ステップS250)、ステップS120に戻る。
一方、t1の枝パス選択済みフラグが“off”ではない場合や(ステップS130のNOルート参照)、t1のスラック値設定済みフラグが“on”である場合には(ステップS140のNOルート参照)、ステップS250に移行する。
また、テーブルTの最後の要素である場合には(ステップS120のYESルート参照)、枝パス処理フラグBが“off”であるか否かを確認して(ステップS220)、枝パス処理フラグBが“off”である場合には(ステップS220のYESルート参照)、処理を終了する。又、枝パス処理フラグBが“off”ではない場合には(ステップS220のNOルート参照)、ステップS100に戻る。
上述の如き処理(ステップS10〜S250)を行なうことにより、データパス上のピンにスラック値を設定することができる。
特開平11−110421号公報
しかしながら、従来のスラック値の算出手法においては、上位パスの処理が終わっている分岐ピンを見つけてスラック値の伝搬を行ない、未処理の分岐ピンが無くなるまで処理をループさせる必要がある(図16のステップS220等参照)。
図17は従来のスラック値設定手法を実現するためのプログラム例を示す図であり、例えば[1]〜[10]の10個の枝ピンを有する電子回路において、これらの全ての枝ピンにかかる枝パスについて、全ての通過ピンにスラック値の設定を行なうまで、スラック値の生成と伝搬を繰り返し行なう(ループさせる)ものである。
このような従来のスラック値設定手法においては、例えば、分岐ピンがn個(nは自然数)ある場合には、最大で、n,n−1,n−2,・・・,2,1と未処理の分岐ピンを検索する必要がある。これは最大で、以下の式で示される回数のループ処理を行なう必要があることを示す。
Figure 0004340592
すなわち、最大でほぼn2回のループ処理が必要となる。かかるループ処理には非常に時間がかかるので、スラック値の設定に時間がかかるという課題がある。特に、回路規模が大きく複雑になり分岐パスが増大する程、タイミングチェックの処理時間に多大な影響を及ぼすことになる。
本発明は、このような課題に鑑み創案されたもので、データパス上のゲートにスラック値を高速に設定することができるようにすることを目的とする。
このため、本発明のスラック値設定方法(請求項1)は、始点から終点までの間に複数のデータパスを有する電子回路について、CPU(Central Processing Unit)をそなえたコンピュータにより、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定方法であって、該CPUにより、前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと、該CPUにより、初期値としてのスラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、該CPUにより、該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを順次抽出し、当該分岐ピンを抽出順で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、該CPUにより、前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに対して、当該アナザーパスの開始点となる分岐ピンにおける2つのデータパスのディレイ差分を、分岐パスが少ない上位側のデータパスのパスディレイから減算することにより、当該分岐ピンを開始ピンとするアナザーパス上の各通過ピンそれぞれ設定されるべき該スラック値を算出するスラック値算出ステップと、該CPUにより、該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとをそなえることを特徴としている。
なお、該CPUにより、前記データパス上の該通過ピンについて、該スラック値が設定済みであるか否かを判断するスラック値設定判断ステップをそなえ、該スラック値設定判断ステップにおいて、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該スラック値算出ステップと、該第2スラック値設定ステップとを繰り返し行なってもよい(請求項2)。
また、本発明のスラック値設定装置(請求項3)は、始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定装置であって、前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出部と、初期値としてのスラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定部と、該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを順次抽出し、当該分岐ピンを抽出順で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成部と、前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに対して、当該アナザーパスの開始点となる分岐ピンにおける2つのデータパスのディレイ差分を、分岐パスが少ない上位側のデータパスのパスディレイから減算することにより、当該分岐ピンを開始ピンとするアナザーパス上の各通過ピンそれぞれ設定されるべき該スラック値を算出するスラック値算出部と、該ワーストパス分岐ピンテーブル作成部によって作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該スラック値算出部によって算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定部とをそなえることを特徴としている。
さらに、本発明のスラック値設定プログラム(請求項4)は、始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定機能をコンピュータに実行させるためのスラック値設定プログラムであって、前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと、初期値としての該第1スラック値算出ステップにおいて算出された該スラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを順次抽出し、当該分岐ピンを抽出順で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに対して、当該アナザーパスの開始点となる分岐ピンにおける2つのデータパスのディレイ差分を、分岐パスが少ない上位側のデータパスのパスディレイから減算することにより、当該分岐ピンを開始ピンとするアナザーパス上の各通過ピンそれぞれ設定されるべき該スラック値を算出するスラック値算出ステップと、該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとを該コンピュータに実行させることを特徴としている。
また、本発明のコンピュータ読取可能な記録媒体(請求項5)は、上述したスラック値設定プログラムを記録したものである。
本発明によれば、データパス上のゲートにスラック値を高速に設定することができる利点がある。
以下、図面を参照して本発明の実施の形態を説明する。
図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つ(種類)のデータパスをそなえている。
なお、上述したゲートG1〜G14のうち、ゲートG1とゲートG7とがFF(Flip-Flop)マクロによって、又、ゲートG2〜G6,G8〜G14がゲートマクロによって構成されている。
本スラック値設定装置1は、図1に示すように、ディスプレイ2,メモリ3,キーボード4,マウス5,ハードディスク6およびCPU(Central Processing Unit)10をそなえたコンピュータシステム(情報処理装置)として構成され、CPU10が、メモリ3やハードディスク6に保存されたプログラム(スラック値設定プログラム)を実行することにより機能するようになっている。
ディスプレイ2は、評価対象の電子回路やその評価結果,オペレータへのメッセージ等の種々の情報を表示するものである。キーボード4やマウス5は、オペレータが種々の入力・選択操作を行なうためのものである。オペレータはこれらのキーボード4やマウス5を用いて、電子回路中におけるデータパスの送りピン(始点)と受けピン(終点)の指定を行なう。例えば、図2は、オペレータがキーボード4やマウス5を用いて、送りピンとしてゲートG1の出力ピンを、又、受けピンとしてゲートG7の入力ピンをそれぞれ指定した例を示す。
ハードディスク6は、本スラック値設定装置1を動作させるための種々のプログラム(OS(Operating System),スラック値設定プログラム等)や種々のデータを格納するものであり、例えば、評価対象である電子回路を成す各論理構成要素(本発明ではフリップフロップ等のセルであり、ゲートあるいは素子と呼ぶ場合もある)について、そのゲートにおけるディレイ(ゲートディレイ)等の情報が、例えばゲート情報データベースとして予め登録されている。
メモリ3は、データやプログラムを一時的に格納するものであり、CPU10が演算処理を行なう際等に、一時的にデータを格納したりデータを展開したりするものである。
CPU10は、種々の演算を行なうものであり、メモリ3やハードディスク6に保存されたプログラム(スラック値設定プログラム)を実行することにより、後述する、パス認識部11,ワーストパス選出部12,スラック値算出部(第1スラック値算出部,第2スラック値算出部,第3スラック値算出部)13,データパストレース部14およびスラック値設定判定部21として機能するようになっている。
従って、本実施例のスラック値設定装置1は、CPU10,メモリ3,ハードディスク6,ディスプレイ2,キーボード4,マウス5等を有する一般的な計算機システムを用いて実現することが可能である。
パス認識部11は、評価対象の電子回路について、オペレータによりキーボード4やマウス5を用いて送りピン(始点)と受けピン(終点)とを指定された区間(データパス)について、その送りピンから受けピンに向かってトレース(フォワードトレース)を行ない、これらの送りピンと受けピンとの間に存在する全てのパス(通過ピンや通過ピン間を結ぶライン)を検出・認識するものである。
なお、以下、評価対象の電子回路について、送りピンから受けピンに向かって行なうトレースをフォワードトレースといい、その逆に受けピンから送りピンに向かって行なうトレースをバックワードトレースという。
また、パス認識部11は、かかるフォワードトレースを行なうに際して、例えばハードディスク6に予め登録されているゲート情報データベースに基づいて、データパスを構成する各ゲートのディレイ(ゲートディレイ)やゲート間を結ぶ各ラインのディレイを取得し、データパス毎にこれらのディレイを積算することにより、各データパスのそれぞれについてパス全体のディレイ(パスディレイ)を算出するようになっている。
図2に示す例においては、データパスA,データパスB,データパスCおよびデータパスDの各パスディレイは、それぞれ50,40,36および34である。ただし、通過ピン間を結ぶラインのディレイ0とする。
ワーストパス選出部12は、パス認識部11によって認識された複数のデータパスの中からワーストパスを選出するものであって、本実施形態においては、オーバーディレイにかかるワーストパスとレーシングにかかるワーストパスとの2種類のワーストパスを選出するようになっている。
すなわち、ワーストパス選出部12は、パス認識部11によって認識された複数のデータパスの中から、パスディレイが最も大きなデータパスをオーバーディレイにかかるワーストパスとして選出し、パスディレイが最も小さいデータパスをレーシングにかかるワーストパスとして選出するようになっている。
図2に示す例においてはパスAがオーバーディレイにかかるワーストパスとなり、パスDがレーシングにかかるワーストパスとなる。なお、複数のデータパスのうちワーストパス以外のデータパスのことを、以下、アナザーパスという場合がある。図2に示す例においては、パスB,C,Dがオーバーディレイにかかるアナザーパスとなり、パスA,B,Cがレーシングにかかるアナザーパスとなる。
また、本実施形態においては、便宜上、複数のデータパスのうち、オーバーディレイにかかるワーストパスを最も上位のデータパスとし、このワーストパスから分岐するアナザーパスについて、ワーストパスとの間に介する分岐パスの数が多いほど下位のデータパスとする。すなわち、図2に示す例においては、データパスAを最上位のデータパスとして、データパスB,データパスDの順で下位とし、データパスDが最下位のデータパスとする。
スラック値算出部(第1スラック値算出部,第2スラック値算出部,第3スラック値算出部)13は、各通過ピンに設定されるべきスラック値を算出するものであり、本実施形態においては、オーバーディレイにかかるスラック値(max−delay;以下、符号SOnで表わす)とレーシングにかかるスラック値(min−delay;以下、符号SRnで表わす)とをそれぞれ算出するようになっている。なお、nは整数である。
スラック値算出部(第1スラック値算出部)13は、ワーストパス上の各通過ピンに対しては、オーバーディレイおよびレーシングのいずれについても、スラック値の初期値(初期スラック値;SO0,SR0)として “0”を設定(伝搬)するようになっている(SO0=0,SR0=0)。
また、スラック値算出部(第2スラック値算出部,第3スラック値算出部)13は、オーバーディレイにかかるスラック値SOnの算出に際して、アナザーパス上の通過ピンに対しては、そのアナザーパスの開始点となる分岐ピンにおける2つのパスのディレイ差分、すなわち、当該分岐ピンにおける上位側のデータパスのパスディレイから下位側のデータパスのパスディレイを減算し、このようにして求めた2つのデータパスのディレイ差分dを、その上位側のデータパスのパスディレイから減算することにより、その分岐ピンを開始ピンとするアナザーパス上の各通過ピンに設定するスラック値SOnを求めるようになっている。
一方、スラック値算出部(第2スラック値算出部,第3スラック値算出部)13は、レーシングにかかるスラック値SRnの算出に際して、アナザーパス上の通過ピンに対しては、そのアナザーパスの開始点となる分岐ピンにおける2つのパスのディレイ差分、すなわち、当該分岐ピンにおける上位側のデータパスのパスディレイから下位側のデータパスのパスディレイを減算し、このようにして求めた2つのデータパスのディレイ差分dを、その下位側のデータパス(すなわち、レーシングにかかるワーストパス)のパスディレイ(すなわち0)から減算することにより、その分岐ピンを開始ピンとするアナザーパス上の各通過ピンに設定するスラック値SRnを求めるようになっている。
データパストレース部(ワーストパストレース部,アナザーパストレース部)14は、パス認識部11によって認識されたデータパスを、その受けピン(図2に示す例ではゲートG7の入力ピン)側から送りピン(ゲートG1の出力ピン)側に向かって、バックワードトレースを行なうものである。
データパストレース部14は、先ず、オペレータによって指定された受けピンを開始ピンとして、同じくオペレータによって指定された送りピンまでワーストパスのバックワードトレースを行ない、その後、このワーストパスにおけるバックワード方向の分岐ピンを先頭ピンとするアナザーパスについてバックワードトレースを行なう。なお、ワーストパスに複数の分岐ピンがある場合には、最も受けピンに近い分岐ピンから順番に、その分岐ピンを先頭ピンとするアナザーパスのバックワードトレースを行なう。
なお、図2に示す例においては、ゲートG6の出力ピンXが、ワーストパスにおけるバックワード方向の分岐ピンである。本実施形態においては、このようなゲートG6の出力ピンXを符号G6.Xによって表わすものとし、以下、分岐ピンを、ゲートを示す符号と出力ピンを特定する符号Xとを組み合わせて示すものとする。
また、データパストレース部14は、アナザーパス中に分岐ピンがある場合には、このアナザーパスにおける分岐ピンを先頭ピンとする他のアナザーパスについてもバックワードトレースを行なう。更に、アナザーパスに複数の分岐ピンがある場合には、これらのアナザーパスにおける最も受けピンに近い分岐ピンから順番に、各分岐ピンを先頭ピンとするアナザーパスのバックワードトレースを順次行なう。
具体的には、データパストレース部14は、先ず、指定された受けピンを開始ピンとして、送りピンまでワーストパスのバックワードトレースを行なった後、後述する分岐ピンテーブル作成部16によって作成される分岐ピンテーブルB1を参照して、この分岐ピンテーブルB1に登録されている分岐ピンを先頭ピンとするアナザーパスに対して、スラック値が処理済み(スラック値を設定済;詳細は後述)の通過ピンに遭遇するまでバックワードトレースを行なう。そして、これらのアナザーパスに対するバックワードトレースを、分岐ピンテーブルB1に登録された全ての分岐ピンに対して繰り返し行なうのである。
また、データパストレース部14は、図1に示すように、スラック値設定部(第1スラック値設定部,第2スラック値設定部,第3スラック値設定部)15および分岐ピンテーブル作成部(ワーストパス分岐ピンテーブル作成部,アナザーパス分岐ピンテーブル作成部)16をそなえて構成されている。
分岐ピンテーブル作成部(ワーストパス分岐ピンテーブル作成部,アナザーパス分岐ピンテーブル作成部)16は、データパスのバックワードトレース時に通過ピンを抽出し、その通過ピンがバックワードトレースにかかる分岐ピン(枝ピン)であるか否かを判断して、通過ピンがバックワードトレースにかかる分岐ピンである場合に、その通過ピン(分岐ピン)を分岐ピンテーブルB1に登録するようになっている。すなわち、分岐ピンテーブル作成部16は、データパスのバックワードトレース時に、分岐ピンをその出現順、すなわち、受けピンに近いものから順に、分岐ピンテーブルB1に登録するようになっている。
分岐ピンテーブルB1は、データパス上における分岐ピンを所定の順番で登録するものであり、本実施形態においては、受けピンに近いものから順に登録されるようになっている。分岐ピンテーブル(アナザーパス分岐ピンテーブル)B2は、アナザーパス上における分岐ピンを所定の順番で登録するものであって、本実施形態においては、受けピンに近いものから順に登録されるようになっている。
分岐ピンテーブル作成部(ワーストパス分岐ピンテーブル作成部)16は、ワーストパス選出部12によって選出されたワーストパス(図2に示す例ではパスA)のバックワードトレースを行なう際には、このワーストパスのバックワード方向における分岐ピンを順次抽出して、これらの分岐ピンを所定の順番(抽出順)で分岐ピンテーブル(ワーストパス分岐ピンテーブル)B1に登録する。
また、分岐ピンテーブル作成部(アナザーパス分岐ピンテーブル作成部)16は、アナザーパスのバックワードトレースを行なう際には、これらのアナザーパスのバックワード方向における分岐ピンを抽出して、これら分岐ピンを所定の順番(抽出順)で分岐ピンテーブルB2に登録するようになっている。
本実施形態においては、分岐ピンテーブルB2には、バックワードトレースを行なっていないアナザーパスの開始ピンとなるべき分岐ピンが登録されるようになっている。更に、1つのアナザーパスのバックワードトレースが完了する毎に、この分岐ピンテーブルB2により分岐ピンテーブルB1が書き換えられるようになっており、又、かかる書き換えが完了した後に、分岐ピンテーブルB2は一旦リセット(初期化)されるようになっている。
スラック値設定部(第1スラック値設定部,第2スラック値設定部,第3スラック値設定部)15は、スラック値算出部(第1スラック値算出部,第2スラック値算出部,第3スラック値算出部)13によって設定されたスラック値をデータパス上の各通過ピンに設定するものである。
スラック値設定部(第1スラック値設定部)5は、ワーストパスのバックワードトレースを行なうに際して、スラック値算出部13によって設定されたスラック値(初期スラック値SO0=0,SR0=0)をワーストパス上の各通過ピンに設定するようになっている。又、スラック値設定部(第2スラック値設定部,第3スラック値設定部)15は、スラック値算出部(第2スラック値算出部,第3スラック値算出部)13によって算出されたスラック値SOn,SRnをアナザーパス上の各通過ピンにも設定するようになっている。
具体的には、スラック値設定部(第2スラック値設定部,第3スラック値設定部)15は、分岐ピンテーブル作成部16によって作成された分岐ピンテーブルB1に基づいて、この分岐ピンテーブルB1に格納された該分岐ピンを開始ピンとするアナザーパスをバックワードトレースし、スラック値算出部13によって算出されたスラック値SOn,SRnをこのアナザーパス上の各通過ピンに設定する。なお、既にスラック値SOn,SRnが既に設定(伝搬)されている(処理済みの)通過ピンに対しては、更なるスラック値の伝搬は行なわない。
スラック値設定判断部21は、データパス上の分岐ピンについて、スラック値が設定済みであるか否かを判断するものである。本実施形態においては、スラック値設定判断部21は、分岐ピンテーブルB2が空であるか否かを確認することにより、データパス上の分岐ピンについてスラック値が設定済みであるか否かを判断するようになっており、分岐ピンテーブルB2が空である場合に、データパス上の全ての通過ピンにスラック値が設定済みであることを判断するものである。
そして、スラック値算出部13およびデータパストレース部14は、このスラック値設定判断部21によってデータパス上の全ての通過ピンにスラック値が設定済みであると判断されるまで、それぞれスラック値の算出や分岐ピンテーブルの作成およびスラック値の設定を繰り返し行なうようになっている。
上述の如く構成された、本発明の一実施形態としてのスラック値設定装置1による、スラック値の設定手法を、図3に示すフローチャート(ステップA10〜A220)に従って説明する。
先ず、パス認識部11が、送り側FFの送りピンから受け側FFの受けピンに対してフォワードトレースを実行することにより(ステップA10)、送り側FFと受け側FFとの間における全経路(パスルート)を認識するとともに、これらのパスルート上に配設されているゲートにおけるゲートディレイを取得する。なお、このゲートディレイは、データベース(例えば、メモリ上のテーブル)に保存される。又、ワーストパス選出部12が、これらのゲートディレイに基づいて、送り側FFと受け側FFとの間における全経路の中から、パスディレイが最も大きいワーストパスを選出する。
スラック値算出部(第1スラック値算出部)13が、ワーストパスに設定されるべき初期スラック値SO0,SR0を算出する(ステップA20)。なお、本実施形態においては、SO0=SR0=0である。
また、分岐ピンテーブル作成部16は、分岐ピンテーブルB1を初期化して(ステップA30)、ワーストパスについて、その受け側FFから送り側FFに向かってバックワードトレースを開始する(ステップA40)。なお、以下、図中においてはバックワードトレースをバックトレースと表わす。
そして、そのワーストパスのバックワードトレースを終了したか否かを確認し(ステップA50)、バックワードトレースを終了していない場合には(ステップA50のNOルート参照)、通過ピンxに対して、ステップA20において算出した初期スラック値SO0,SR0を設定する(ステップA60)。
また、通過ピンxがバックワードトレースにかかる分岐ピン(枝ピン)であるか否かを判断して(ステップA70)、通過ピンxが枝ピンである場合には(ステップA70のYESルート参照)、通過ピンxを分岐ピンテーブルB1に登録して(ステップA80)、次の通過ピンをxとする(ステップA90)。又、通過ピンxが枝ピンではない場合には(ステップA70のNOルート参照)、ステップA90に移行する。
バックワードトレースが終了した場合には(ステップA50のYESルート参照)、分岐ピンテーブルB2を初期化するとともに(ステップA100)、分岐ピンテーブルB1の最初の要素(分岐ピン)を取得してbとする(ステップA110)。このbが分岐ピンテーブルB2の最後の要素であるか否かを判断して(ステップA120)、最後の要素ではない場合には(ステップA120のNOルート参照)、そのbを開始ピンとするアナザーパスの各通過ピンに設定されるべきスラック値SOn,SRnを算出する(ステップA130)。
そして、bの枝ピンを開始ピンとするアナザーパスのバックワードトレースを開始する(ステップA140)。その枝ピンにかかるアナザーパスのバックワードトレースを終了したか否かを確認し(ステップA150)、バックワードトレースを終了していない場合には(ステップA150のNOルート参照)、通過ピンxに対して、ステップA130において算出したスラック値SOn,SRnを設定する(ステップA160)。
また、その通過ピンxが枝ピンであるか否かを判断して(ステップA170)、通過ピンxが枝ピンである場合には(ステップA170のYESルート参照)、その通過ピンxを分岐ピンテーブルB2に登録した後に(ステップA180)、次の通過ピンをxに設定して(ステップA190)、ステップA150に戻る。一方、通過ピンxが枝ピンではない場合には(ステップA170のNOルート参照)、ステップA190に移行する。
バックワードトレースが終了した場合には(ステップA150のYESルート参照)、分岐ピンテーブルB2の次の要素をbとして(ステップA220)、ステップA150に戻る。
一方、bが分岐ピンテーブルB1の最後の要素である場合には(ステップA120のYESルート参照)、分岐ピンテーブルB2が空であるか、すなわち、分岐ピンテーブルB2に登録されている分岐ピンがないか否かを確認して(ステップA210)、分岐ピンテーブルB2が空である場合には(ステップA210のYESルート参照)、処理を終了する。又、分岐ピンテーブルB2が空ではない場合には(ステップA210のNOルート参照)、分岐ピンテーブルB2を分岐ピンテーブルB1に変更して(ステップA200)、ステップA100に戻る。
上述の如き処理(ステップA10〜A220)を行なうことにより、データパス上の全ての通過ピンにスラック値を設定することができるのである。
次に、本発明の一実施形態としてのスラック値設定装置1により、図2に示す電子回路に対してオーバーディレイ(max-de1ay)のスラック値を設定する過程を、図4〜図7を参照しながら説明する。図4〜図7は本スラック値設定装置1によるオーバーディレイにかかるスラック値の設定過程を示す図であり、それぞれ図2に示す電子回路におけるデータパスを抽出して示す図である。
図4に示すように、データパストレース部14は、先ず、max-de1ayのワーストパス(データパスA)に対してバックワードトレースを行ない、通過する各通過ピンに初期スラック値(本実施形態では、初期スラック値SO0=0)をそれぞれ設定する。又、このデータパスAのバックワードトレースにより、分岐ピンG6.Xが検出される。
次に、図5に示すように、ワーストパスのバックワードトレースで検出された分岐ピンG6.Xを新たに行なうバックワードトレースの開始ピンとして、スラック値算出部13が、分岐ピンG6.XにおけるデータパスA(ワーストパス)とデータパスBとのディレイ差分d=50−40=10を、データパスAのスラック値0から減算した値“−10”を、新しいスラック値SOnとしてデータパスB上の各通過ピンに設定する。
なお、データパスBのバックワードトレースで通過するゲートG2,G1の各通過ピンには既にスラック値SO0=0が設定されており、データパスBのスラック値SOn=−10は、これらの既存値“0”よりも小さいので、これらのゲートG1,G2の各通過ピンに設定されたスラック値は書き換えない。又、このデータパスBのバックワードトレースにより、分岐ピンG11.Xが検出される。
次に、図6に示すように、図5のデータパスBのバックワードトレースで見つかった分岐ピンG11.Xを、新たに行なうバックワードトレースの開始ピンとして、スラック値算出部13が、分岐ピンG11.XにおけるデータパスBとデータパスCとのディレイ差分d=30−26=4を、データパスBのスラック値−10から減算した値“−14”を新しいスラック値SOnとして、データパスC上の各通過ピンに設定する。データパスCのバックワードトレースで通過するゲートG8,G2,G1の各通過ピンには既にスラック値SOn=−10,0がそれぞれ設定されており、データパスCのスラック値SOn=−14は、これらの既存値“−10”,“0”よりも小さいため、これらのゲートG8,G2,G1の各通過ピンに設定されたスラック値は書き換えない。又、このデータパスCのバックワードトレースにより、分岐ピンG14.Xが検出される。
次に、図7に示すように、図6のデータパスCのバックワードトレースで見つかった分岐ピンG14.Xを、新たに行なうバックワードトレースの開始ピンとして、スラック値算出部13が、分岐ピンG14.XにおけるデータパスCとデータパスDとのディレイ差分d=21−19=2を、データパスCのスラック値−14から減算した値“一16”を新しいスラック値SOnとして、データパスD上の各通過ピンに設定する。データパスDのバックワードトレースで通過するゲートG12,G8,G2,G1の各通過ピンには既にスラック値SOn=−14,−10,0がそれぞれ設定されており、データパスDのスラック値−16は、これらの既存値“−14”,“−10”,“0”よりも小さいため、これらのゲートG12,G8,G2,G1の各通過ピンに設定されたスラック値は書き換えない。
このように、本スラック値設定装置1により、FFマクロG1からFFマクロG7まで到達するすべてのデータパスの通過ピンに対して3回のバックワードトレース処理を行なうことによりmax-delayのスラック値が設定されるのである。
次に、本発明の一実施形態としてのスラック値設定装置1により、図2に示す電子回路に対してレーシング(min-de1ay)のスラック値を設定する過程を、図8〜図11を参照しながら説明する。図8〜図11は本スラック値設定装置1によるレーシングにかかるスラック値の設定過程を示す図であり、それぞれ図2に示す電子回路におけるデータパスを抽出して示す図である。
図8に示すように、データパストレース部14は、先ず、min-de1ayのワーストパス(データパスD)に対してバックワードトレースを行ない、通過する各通過ピンに初期スラック値(本実施形態では、初期スラック値SR0=0)をそれぞれ設定する。又、このデータパスDのバックワードトレースにより、分岐ピンG6.X,G11.XおよびG14.Xが検出される。
次に、図9に示すように、ワーストパスのバックワードトレースで検出された複数の分岐ピンG6.X,G11.XおよびG14.Xのうち、分岐ピンG6.Xを新たに行なうバックワードトレースの開始ピンとして、スラック値算出部13が、分岐ピンG6.XにおけるデータパスAとデータパスD(ワーストパス)とのディレイ差分d=50−34=16をデータパスDのスラック値SR0=0に加算した値“16”を、新しいスラック値SRnとしてデータパスA上の各通過ピンに設定する。
なお、データパスAのバックワードトレースで通過するゲートG2,G1の各通過ピンには既にスラック値“0”が設定されており、データパスAのスラック値SRn=16は、これらの既存値“0”よりも大きいので、これらのゲートG1,G2の各通過ピンに設
定されたスラック値は書き換えない。
次に、図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の各通過ピン
に設定されたスラック値は書き換えない。
次に、図11に示すように、ワーストパスのバックワードトレースで見つかった分岐ピンG14.Xを、新たに行なうバックワードトレースの開始ピンとして、スラック値算出部13が、分岐ピンG14.XにおけるデータパスCとデータパスDとのディレイ差分d=21−19=2を、データパスDのスラック値SR0=0に加算した値“2”を新しいスラック値SRnとして、データパスC上の各通過ピンに設定する。データパスCのバックワードトレースで通過するゲートG12,G8,G2,G1の各通過ピンには既にスラック値SR0=0がそれぞれ設定されており、データパスCのスラック値SRn=2は、これらの既存値“0”よりも大きいため、これらのゲートG12,G8,G2,G1の各通過ピンに設定されたスラック値は書き換えない。
このように、本スラック値設定装置1により、FFマクロG1からFFマクロG7まで到達するすべてのデータパスの通過ピンに対して3回のバックワードトレース処理を行なうことによりmin-delayのスラック値が設定されるのである。
図12は本発明の一実施形態としてのスラック値設定装置1により設定されたmax-de1ayのスラック値とmin-de1ayのスラック値とを同一の電子回路上に合成して示す図である。なお、この図1中においては、各通過ピンに対して、max-delayのスラック値SOnとmin-delayのスラック値SRnとをスラッシュ(/)を挟んでそれぞれ配置することにより、各通過ピンにおけるmax-delayのスラック値とmin-delayのスラック値とを同時に表わしている(SOn/SRn)。
この図12に示す例においては、ゲートG1の出力ピンやG2の入出力ピン,分岐ピンG6.X等のスラック値が0/0の通過ピンは、max-delay,min-delayのいずれにおいても余裕が無く、これらの通過ピンの前後にバッファーの挿入やマクロ置換などによる回路修正を行なうことにより、タイミングに大きく影響を及ぼすことが分かる。
また、この図12に示す例においては、通過ピンG6.A2ではmax-delay側に余裕が無いがmin-de1ay側に余裕があることが分かる。この場合、ゲートG3,G4,G5の入出力ピンや通過ピンG6.A2のように、データパス上のスラック値が0/6である通過ピンの前後でディレイを小さくする回路修正が可能であることが分かる。一方、通過ピンG14.A1では、max-de1ay側は余裕があるがmin-delay側に余裕が無いことが分かる。この場合、データパス上のスラック値が−16/0である通過ピンの前後でディレイを大きくする回路修正が可能であることが分かる。
次に、本発明の一実施形態としてのスラック値設定装置1により、より複雑なデータパスをそなえた電子回路についてスラック値の設定を行なう例について説明する。
図13は本発明の一実施形態としてのスラック値設定装置によってスラック値の設定を行なう他の電子回路の例を示す図、図14は図13に示す電子回路に本発明の一実施形態としてのスラック値設定装置によりスラック値を設定する際における処理過程を説明するための図である。
図13に示す電子回路においては、送り側FF(Source)と受け側FF(Target)との間を結ぶデータパス上に複数の分岐ピンがそなえられている。なお、この図13に示す例においては、10個の分岐ピン(符号[1]〜[10]参照)がそなえられている。
この図13に示すような10個の分岐ピン[1]〜[10]をそなえる電子回路にスラック値を設定する場合には、図14に示すように、オーダー(Order)#1において分岐
ピン[1]および分岐ピン[2]をそれぞれ始点とするアナザーパスについてそれぞれスラック値の設定(伝搬)処理を行なった後に、オーダー#2において分岐ピン[3]および分岐ピン[4]をそれぞれ始点とするアナザーパスについてそれぞれスラック値の設定(伝搬)処理を行なう。その後、オーダー#3において分岐ピン[5],分岐ピン[6]および分岐ピン[7]を始点とするアナザーパスについてそれぞれスラック値の設定(伝搬)処理を行ない、更に、オーダー#4において分岐ピン[8]および分岐ピン[9]を始点とするアナザーパスにスラック値の設定(伝搬)処理を行なう。そして、オーダ#5において分岐ピン[10]を始点するアナザーパスにスラック値の設定を行なう。
このように複雑な枝パスをそなえる電子回路についても、本発明のスラック値設定手法を用いることにより、10回のスラック伝搬処理でデータパス上の全ての通過ピンにスラック値を設定することができるのである。
図15は本発明の一実施形態としてのスラック値設定装置1により設定されたスラック値を示すデータパスの例を示す図であり、スラック値の最大値または最小値でトレースした例を示す図である。この図15においては、マクロ上の全ての通過ピンのスラック値を示すとともに、ネット分岐がある場合には、その分岐先のピンとそのスラック値を示している。本スラック値設定装置1によってスラック値の設定を行なった後に、この図15に示すようなブロック図を作成することにより、分岐ピンの余裕度を視覚的に判断することが可能になる。
このように、本発明の一実施形態としてのスラック値設定装置1によれば、データパスにおける分岐ピンを、所定の順番、すなわち、ワーストパスを始めとするデータパスのバックワードトレースによる抽出順で選択し、この順番で各分岐ピンを開始ピンとしてデータパス(アナザーパス)のバックワードトレースを順次行ないながらスラック値の設定を行なうので、最低限の処理でデータパス上の全ての通過ピンに対してスラック値を設定することができるので、スラック値の設定を短時間で行なうことができる。
なお、上述した、パス認識部11,ワーストパス選出部12,スラック値算出部(第1スラック値算出部,第2スラック値算出部,第3スラック値算出部)13,データパストレース部14およびスラック値設定判定部21としての機能を実現するためのプログラム(スラック値設定プログラム)は、例えばフレキシブルディスク,CD−ROM,CD−R,CD−R/W,DVD,DVD−R,DVD−R/W,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
パス認識部11,ワーストパス選出部12,スラック値算出部(第1スラック値算出部,第2スラック値算出部,第3スラック値算出部)13,データパストレース部14およびスラック値設定判定部21としての機能を実現する際には、内部記憶装置(本実施形態ではコンピュータのRAMやROM)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではプリンタのCPU)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、スラック値設定装置1がコンピュータとしての機能を有しているのである。
さらに、本実施形態における記録媒体としては、上述したフレキシブルディスク,CD−ROM,CD−R,CD−R/W,DVD,DVD−R,DVD−R/W,磁気ディスク,光ディスク,光磁気ディスクのほか、ICカード,ROMカートリッジ,磁気テープ,パンチカード,コンピュータの内部記憶装置(RAMやROMなどのメモリ),外部記憶装置等や、バーコードなどの符号が印刷された印刷物等のコンピュータ読取可能な種々の媒体を利用することができる。
なお、上述した本発明の一実施形態としてのスラック値設定装置1としての機能を、例えば、回路設計を行なうためのCAD(computer-aided design)システムにそなえることにより、かかるCADシステムを用いて設計した電子回路の評価を容易に行なうことができる。この場合、CADシステムとして機能するコンピュータシステムを本スラック値設定装置1として機能させることができる。
また、上述した実施形態に関わらず、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。例えば、上述した実施形態においては、ゲート間を結ぶラインのディレイを0としているが、これに限定されるものではなく、ゲート間のラインのディレイを考慮してもよい。
本発明の各実施形態が開示されていれば、本発明を当業者によって実施・製造することが可能である。
そして、本発明は、以下に示すように要約することができる。
(付記1) 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定方法であって、
前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと、
該ワーストパス上の各通過ピンに設定されるべき該スラック値を算出する第1スラック値算出ステップと、
該第1スラック値算出ステップにおいて算出された該スラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第2スラック値算出ステップと、
該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第2スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとをそなえることを特徴とする、スラック値設定方法。
(付記2) 前記データパス上の該通過ピンについて、該スラック値が設定済みであるか否かを判断するスラック値設定判断ステップをそなえ、
該スラック値設定判断ステップにおいて、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該第2スラック値算出ステップと、該第2スラック値設定ステップとを繰り返し行なうことを特徴とする、付記1記載のスラック値設定方法。
(付記3) 該分岐ピンから該アナザーパスをバックワードトレースして、当該アナザーパスのバックワード方向における該分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したアナザーパス分岐ピンテーブルを作成するアナザーパス分岐ピンテーブル作成ステップと、
該アナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第3スラック値算出ステップと、
該アナザーパス分岐ピンテーブル作成ステップにおいて作成された該アナザーパス分岐ピンテーブルに基づいて、当該アナザーパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第3スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第3スラック値設定ステップとをそなえ、
該スラック値設定判断ステップにおいて、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該アナザーパス分岐ピンテーブル作成ステップと、該第3スラック値算出ステップと、該第3スラック値設定ステップとを繰り返し行なうことを特徴とする、付記2記載のスラック値設定方法。
(付記4) 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定方法であって、
該データパス上の各通過ピンに設定されるべき該スラック値を算出するスラック値算出ステップと、
該データパスの該終点から該始点に向かってバックワードトレースを行ない、当該データパスのバックワード方向における分岐ピンを抽出し、当該分岐ピンを所定の順番で登録した分岐ピンテーブルを作成する分岐ピンテーブル作成ステップと、
該分岐ピンテーブル作成ステップにおいて作成された該分岐ピンテーブルに基づいて、当該分岐ピンテーブルに格納された該分岐ピンから該データパスをバックワードトレースして、該スラック値算出ステップにおいて算出された該スラック値を当該データパス上の各通過ピンに設定するスラック値設定ステップと、
前記データパス上の該分岐ピンについて、該スラック値が設定済みであるか否かを判断するスラック値設定判断ステップとをそなえ、
該スラック値設定判断ステップにおいて、該データパス上の全ての該分岐ピンに該スラック値が設定済みであると判断されるまで、該スラック値算出ステップと該分岐ピンテーブル作成ステップと該スラック値設定ステップとを繰り返し行なうことを特徴とする、スラック値設定方法。
(付記5) 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定装置であって、
前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出部と、
該ワーストパス上の各通過ピンに設定されるべき該スラック値を算出する第1スラック値算出部と、
該第1スラック値算出部によって算出された該スラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定部と、
該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成部と、
前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第2スラック値算出部と、
該ワーストパス分岐ピンテーブル作成部によって作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第2スラック値算出部によって算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定部とをそなえることを特徴とする、スラック値設定装置。
(付記6) 前記データパス上の該通過ピンについて、該スラック値が設定済みであるか否かを判断するスラック値設定判断部をそなえ、
該第2スラック値算出部および該第2スラック値設定部が、該スラック値設定判断部によって該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、それぞれ前記スラック値の算出と前記スラック値の設定とを繰り返し行なうことを特徴とする、付記5記載のスラック値設定装置。
(付記7) 該分岐ピンから該アナザーパスをバックワードトレースして、当該アナザーパスのバックワード方向における該分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したアナザーパス分岐ピンテーブルを作成するアナザーパス分岐ピンテーブル作成部と、
該アナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第3スラック値算出部と、
該アナザーパス分岐ピンテーブル作成部によって作成された該アナザーパス分岐ピンテーブルに基づいて、当該アナザーパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第3スラック値算出において算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第3スラック値設定部とをそなえ、
該アナザーパス分岐ピンテーブル作成部と該第3スラック値算出部と該第3スラック値設定部とが、該スラック値設定判断部によって該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、それぞれ前記アナザーパス分岐ピンテーブルの作成と前記スラック値の算出と前記スラック値の設定とを繰り返し行なうことを特徴とする、付記6記載のスラック値設定装置。
(付記8) 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定機能をコンピュータに実行させるためのスラック値設定プログラムであって、
前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと、
該ワーストパス上の各通過ピンに設定されるべき該スラック値を算出する第1スラック値算出ステップと、
該第1スラック値算出ステップにおいて算出された該スラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第2スラック値算出ステップと、
該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第2スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとを該コンピュータに実行させることを特徴とする、スラック値設定プログラム。
(付記9) 前記データパス上の該通過ピンについて、該スラック値が設定済みであるか否かを判断するスラック値設定判断ステップを該コンピュータに実行させ、
該スラック値設定判断ステップで、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該第2スラック値算出ステップと、該第2スラック値設定ステップとを該コンピュータに繰り返し実行させることを特徴とする、付記8記載のスラック値設定プログラム。
(付記10) 該分岐ピンから該アナザーパスをバックワードトレースして、当該アナザーパスのバックワード方向における該分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したアナザーパス分岐ピンテーブルを作成するアナザーパス分岐ピンテーブル作成ステップと、
該アナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第3スラック値算出ステップと、
該アナザーパス分岐ピンテーブル作成ステップにおいて作成された該アナザーパス分岐ピンテーブルに基づいて、当該アナザーパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第3スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第3スラック値設定ステップとを該コンピュータに実行させ、
該スラック値設定判断ステップで、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該アナザーパス分岐ピンテーブル作成ステップと、該第3スラック値算出ステップと、該第3スラック値設定ステップとを該コンピュータに繰り返し実行させることを特徴とする、付記9記載のスラック値設定プログラム。
(付記11) 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定機能をコンピュータに実行させるためのスラック値設定プログラムを記録したコンピュータ読取可能な記録媒体であって、
該スラック値設定プログラムが、
前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと、
該ワーストパス上の各通過ピンに設定されるべき該スラック値を算出する第1スラック値算出ステップと、
該第1スラック値算出ステップにおいて算出された該スラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第2スラック値算出ステップと、
該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第2スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとを該コンピュータに実行させることを特徴とする、スラック値設定プログラムを記録したコンピュータ読取可能な記録媒体。
(付記12) 該スラック値設定プログラムが、
前記データパス上の該通過ピンについて、該スラック値が設定済みであるか否かを判断するスラック値設定判断ステップを該コンピュータに実行させ、
該スラック値設定判断ステップで、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該第2スラック値算出ステップと、該第2スラック値設定ステップとを該コンピュータに繰り返し実行させることを特徴とする、付記11記載のスラック値設定プログラムを記録したコンピュータ読取可能な記録媒体。
(付記13) 該スラック値設定プログラムが、
該分岐ピンから該アナザーパスをバックワードトレースして、当該アナザーパスのバックワード方向における該分岐ピンを抽出し、当該分岐ピンを所定の順番で登録したアナザーパス分岐ピンテーブルを作成するアナザーパス分岐ピンテーブル作成ステップと、
該アナザーパス上の各通過ピンに設定されるべき該スラック値を算出する第3スラック値算出ステップと、
該アナザーパス分岐ピンテーブル作成ステップにおいて作成された該アナザーパス分岐ピンテーブルに基づいて、当該アナザーパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックワードトレースして、該第3スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第3スラック値設定ステップとを該コンピュータに実行させ、
該スラック値設定判断ステップで、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該アナザーパス分岐ピンテーブル作成ステップと、該第3スラック値算出ステップと、該第3スラック値設定ステップとを該コンピュータに繰り返し実行させることを特徴とする、付記12記載のスラック値設定プログラムを記録したコンピュータ読取可能な記録媒体。
本発明の一実施形態としてのスラック値設定装置の基本構成を示すブロック図である。 本発明の一実施形態としてのスラック値設定装置によってスラック値の設定を行なう電子回路の例を示す図である。 本発明の一実施形態としてのスラック値設定装置による、スラック値の設定手法を説明するためのフローチャートである。 本発明の一実施形態としてのスラック値設定装置によるオーバーディレイにかかるスラック値の設定過程を示す図である。 本発明の一実施形態としてのスラック値設定装置によるオーバーディレイにかかるスラック値の設定過程を示す図である。 本発明の一実施形態としてのスラック値設定装置によるオーバーディレイにかかるスラック値の設定過程を示す図である。 本発明の一実施形態としてのスラック値設定装置によるオーバーディレイにかかるスラック値の設定過程を示す図である。 本発明の一実施形態としてのスラック値設定装置によるレーシングにかかるスラック値の設定過程を示す図である。 本発明の一実施形態としてのスラック値設定装置によるレーシングにかかるスラック値の設定過程を示す図である。 本発明の一実施形態としてのスラック値設定装置によるレーシングにかかるスラック値の設定過程を示す図である。 本発明の一実施形態としてのスラック値設定装置によるレーシングにかかるスラック値の設定過程を示す図である。 本発明の一実施形態としてのスラック値設定装置により設定されたmax-de1ayのスラック値とmin-de1ayのスラック値とを同一の電子回路上に合成して示す図である。 本発明の一実施形態としてのスラック値設定装置によってスラック値の設定を行なう他の電子回路の例を示す図である。 本発明の一実施形態としてのスラック値設定装置により電子回路にスラック値を設定する際における処理過程を説明するための図である。 本発明の一実施形態としてのスラック値設定装置により設定されたスラック値を示すデータパスの例を示す図である。 従来のスラック値の設定手法を説明するためのフローチャートである。 従来のスラック値設定手法を実現するためのプログラム例を示す図である。
符号の説明
1 スラック値設定装置
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)

  1. 始点から終点までの間に複数のデータパスを有する電子回路について、CPU(Central Processing Unit)をそなえたコンピュータにより、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定方法であって、
    該CPUにより、前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと
    該CPUにより、初期値としてのスラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
    該CPUにより、該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを順次抽出し、当該分岐ピンを抽出順で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
    該CPUにより、前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに対して、当該アナザーパスの開始点となる分岐ピンにおける2つのデータパスのディレイ差分を、分岐パスが少ない上位側のデータパスのパスディレイから減算することにより、当該分岐ピンを開始ピンとするアナザーパス上の各通過ピンそれぞれ設定されるべき該スラック値を算出するスラック値算出ステップと、
    該CPUにより、該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックトレースして、該スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとをそなえることを特徴とする、スラック値設定方法。
  2. 該CPUにより、前記データパス上の該通過ピンについて、該スラック値が設定済みであるか否かを判断するスラック値設定判断ステップをそなえ、
    該スラック値設定判断ステップにおいて、該データパス上の全ての該通過ピンに該スラック値が設定済みであると判断されるまで、該スラック値算出ステップと、該第2スラック値設定ステップとを繰り返し行なうことを特徴とする、請求項1記載のスラック値設定方法。
  3. 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定装置であって、
    前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出部と
    初期値としてのスラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定部と、
    該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを順次抽出し、当該分岐ピンを抽出順で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成部と、
    前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに対して、当該アナザーパスの開始点となる分岐ピンにおける2つのデータパスのディレイ差分を、分岐パスが少ない上位側のデータパスのパスディレイから減算することにより、当該分岐ピンを開始ピンとするアナザーパス上の各通過ピンそれぞれ設定されるべき該スラック値を算出するスラック値算出部と、
    該ワーストパス分岐ピンテーブル作成部によって作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックトレースして、該スラック値算出部によって算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定部とをそなえることを特徴とする、スラック値設定装置。
  4. 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定機能をコンピュータに実行させるためのスラック値設定プログラムであって、
    前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと
    初期値としての該スラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
    該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを順次抽出し、当該分岐ピンを抽出順で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
    前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに対して、当該アナザーパスの開始点となる分岐ピンにおける2つのデータパスのディレイ差分を、分岐パスが少ない上位側のデータパスのパスディレイから減算することにより、当該分岐ピンを開始ピンとするアナザーパス上の各通過ピンそれぞれ設定されるべき該スラック値を算出するスラック値算出ステップと、
    該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックトレースして、該スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとを該コンピュータに実行させることを特徴とする、スラック値設定プログラム。
  5. 始点から終点までの間に複数のデータパスを有する電子回路について、当該データパス上の複数のゲートの通過ピンにスラック値をそれぞれ設定するスラック値設定機能をコンピュータに実行させるためのスラック値設定プログラムを記録したコンピュータ読取可能な記録媒体であって、
    該スラック値設定プログラムが、
    前記複数のデータパスのうちパスディレイが最も大きなワーストパスを選出するワーストパス選出ステップと
    初期値としてのスラック値を前記ワーストパス上の各通過ピンに設定する第1スラック値設定ステップと、
    該ワーストパスの該終点から該始点に向かってバックワードトレースを行ない、当該ワーストパスのバックワード方向における分岐ピンを順次抽出し、当該分岐ピンを抽出順で登録したワーストパス分岐ピンテーブルを作成するワーストパス分岐ピンテーブル作成ステップと、
    前記複数のデータパスのうち該ワーストパス以外のアナザーパス上の各通過ピンに対して、当該アナザーパスの開始点となる分岐ピンにおける2つのデータパスのディレイ差分を、分岐パスが少ない上位側のデータパスのパスディレイから減算することにより、当該分岐ピンを開始ピンとするアナザーパス上の各通過ピンそれぞれ設定されるべき該スラック値を算出するスラック値算出ステップと、
    該ワーストパス分岐ピンテーブル作成ステップにおいて作成された該ワーストパス分岐ピンテーブルに基づいて、当該ワーストパス分岐ピンテーブルに格納された該分岐ピンから該アナザーパスをバックトレースして、該スラック値算出ステップにおいて算出された該スラック値を当該アナザーパス上の各通過ピンに設定する第2スラック値設定ステップとを該コンピュータに実行させることを特徴とする、スラック値設定プログラムを記録したコンピュータ読取可能な記録媒体。
JP2004180679A 2004-06-18 2004-06-18 スラック値設定方法,スラック値設定装置,スラック値設定プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 Expired - Fee Related JP4340592B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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