JP4237434B2 - 集積回路のホールドタイムエラー修正方法及びその修正プログラム - Google Patents
集積回路のホールドタイムエラー修正方法及びその修正プログラム Download PDFInfo
- Publication number
- JP4237434B2 JP4237434B2 JP2001359399A JP2001359399A JP4237434B2 JP 4237434 B2 JP4237434 B2 JP 4237434B2 JP 2001359399 A JP2001359399 A JP 2001359399A JP 2001359399 A JP2001359399 A JP 2001359399A JP 4237434 B2 JP4237434 B2 JP 4237434B2
- Authority
- JP
- Japan
- Prior art keywords
- setup
- error
- hold error
- hold
- margin
- 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/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- 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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
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)
Description
【発明の属する技術分野】
本発明は,LSIの論理回路(集積回路)のホールドタイムエラー修正方法及びその装置に関し,特に,複数の動作モードに対応した複数のタイミング・コンストレイント(制約)を全て満足させるホールドタイムエラー修正方法及びそのプログラムに関する。更に,本発明は,複数のタイミング制約でタイミングエラーが発生しないレイアウト方法及びそのプログラムを提供することにある。
【0002】
【従来の技術】
半導体集積回路は,チップ内の論理回路が大規模化,高速化に伴い,信号のタイミングをチェックしながらレイアウトを行うことがますます困難になってきている。従来のレイアウトツールは,コンピュータ上で論理回路のレイアウトを行うプログラムであり,論理設計された論理回路の論理データから,論理回路を構成するセルやマクロをチップ上にレイアウトし,レイアウト後のネットリストを生成する。レイアウトツールは,通常,スタティック・タイミング解析(Static Timing Analysis : STA)ツールを内蔵し,信号のタイミングを考慮したレイアウトを行う。
【0003】
信号のスタティックなタイミングには,供給されるデータがクロックのどのくらい前からセットアップされるべきかを示すセットアップタイムと,供給されるデータがクロックのどれくらい後まで保持されるべきかを示すホールドタイムとがあり,セットアップタイムとホールドタイムの両方が満たされる必要がある。
【0004】
図1は,上記のセットアップタイムとホールドタイムを説明する図である。図1(A)に示されるフリップフロップは,供給されるデータDATAを,クロックCLKの立ち上がりエッジに応答して取り込み,そのデータを出力Qから出力する。
このクロックCLKに応答してデータDATAを適切に取り込むためには,クロックCLKのタイミングよりセットアップタイム以上前からデータDATAが確定し,ホールドタイム後までそのデータDATAが保持されなければならない。
【0005】
図1(B)はセットアップタイムを示す図であり,データDATAの確定時とクロックCLKの立ち上がりエッジとの間がセットアップタイムSTであり,フリップフロップの特性から決まるセットアップタイム以上であることが要求される。また,図1(C)はホールドタイムを示す図であり,クロックCLKの立ち上がりエッジとデータDATAの終了時との間がホールドタイムであり,これもフリップフロップの特性から決まるホールドタイム以上であることが要求されている。
【0006】
セットアップタイムSTは,データDATAの確定が早ければ早いほど満足することができるが,論理回路をレイアウトした後では,データDATAのタイミングを早めることは困難である。一方,ホールドタイムHTは,データDATAの終了が遅いほど満足することができるが,論理回路をレイアウトした後でも,遅延バッファを挿入することにより,そのタイミングを遅らせることは容易にできる。
【0007】
また,回路の遅延特性は,LSIのプロセス条件,電源電圧,動作温度に応じて異なる。例えば,プロセス条件が悪くなる方向(特性が高速になる方向)に変動し,電源電圧が低くなる方向に変動し,動作温度が高い方向に変動すると,回路の遅延は大きくなり,動作速度は遅くなる。これを,MAX(マキシマム,Maximum)側の遅延特性と呼ぶ。逆に,プロセス条件が良くなる方向(特性が速くなる方向)に変動し,電源電圧が高くなる方向に変動し,動作温度が低い方向に変動すると,回路の遅延は小さくなり,動作速度は速くなる。これを,MIN(ミニマム,Minimum)側の遅延特性と呼ぶことにする。
【0008】
セットアップタイムの解析では,MAX側の遅延特性で解析をすれば,セットアップタイムエラーが発生しているか否かをチェックすることができるが,ホールドタイムの解析では,MIN側の遅延特性に加えて,MAX側の遅延特性での解析も必要になる。その理由は,セルが支配的な信号パスと,配線が支配的な信号パスとでは,MAX側の遅延特性でのホールドタイムとMIN側の遅延特性ホールドタイムとに逆転現象が生じることがあるからである。
【0009】
上記のセットアップタイムが満足されない場合はセットアップタイムエラー(以下単にセットアップエラー)となり,ホールドタイムが満足されない場合はホールドタイムエラー(以下単にホールドエラー)となる。大規模化された集積回路をレイアウトする場合,これらのタイミングが満足されるように,セルやマクロをレイアウトする必要がある。
【0010】
従来のレイアウトツールは,セットアップタイムとホールドタイムを解析して,セットアップエラーとホールドエラーが発生していないかどうかを解析するスタティック・タイミング解析ツール(STAツール)を内蔵し,タイミングを考慮したレイアウトを行う。
【0011】
一方,集積回路は,複数の動作モードに対応して,複数のタイミング・コンストレイント(Timing Constraint : タイミング制約)を有する場合がある。タイミング制約とは,例えば,ある動作モードでは,制御クロックに2種類のクロックCLK1,CLK2(それぞれ周波数F1,F2)を使用し,別の動作モードでは,制御クロックに1種類のクロックCLK1とその反転クロック/CLK1(周波数がF3)を使用するという制約である。つまり,動作モードにより使用するクロックの種類が異なり,且つそれらの周波数も異なる場合がある。従って,集積回路のレイアウトでは,これらの複数の動作モードに対応した複数のタイミング制約の下で,上記タイミングを満足させることが要求される。
【0012】
【発明が解決しようとする課題】
前述のとおり,従来のレイアウトツールは,スタティック・タイミング解析ツール(STAツール)を内蔵し,一種類のタイミング制約(動作モード)に対して,信号のタイミングを考慮したレイアウトを行う。レイアウト後にタイミングを早める修正は困難である。従って,レイアウトツールでは,セットアップエラーが発生しないようセルのレイアウトを行い,その後レイアウト後の集積回路に対してホールドエラーのチェックを行い,ホールドエラーが発生する信号パスに,遅延バッファを挿入してホールドエラー修正を行う。
【0013】
しかし,このホールドエラー修正には,次の問題点がある。第1に,ホールドエラー修正のために,遅延バッファを挿入すると,レイアウトツールに入力した一種類のタイミング制約に対するホールドエラーは修正されるが,他のタイミング制約でタイミング解析を行うと,その信号パスにおいて新たなセットアップエラーが発生する可能性がある。一旦セットアップエラーが発生すると,その修正は困難であり,どこに遅延バッファを挿入すべきかの決定は容易ではない。
【0014】
図2は,上記の課題を説明する図である。図2(A)は,回路例であり,4つのフリップフロップFF1〜4と,ANDゲートANDを有する。図2(B)は,そのタイミングチャートである。フリップフロップFF3からANDゲート,フリップフロップFF2への信号パスでは,クロックCK3の立ち上がりエッジに応答して出力データQ3が出力され,フリップフロップFF2の入力データD2として供給される。また,フリップフロップFF1からフリップフロップFF2への信号パスでは,クロックCK1の立ち上がりエッジに応答して出力データQ1が出力され,フリップフロップFF2の入力データD2として供給される。Q3-D2の信号の変化と,Q1-D2の信号の変化が図示されるとおりと仮定すると,フリップフロップFF2のクロックCK2に対するセットアップタイムSTとホールドタイムHTは,図示されるとおりである。
【0015】
レイアウト工程では,セットアップタイムSTが満足するようにレイアウトされたが,その結果,ホールドタイムHTは短すぎて,ホールドエラーが発生しているとする。その場合,ANDゲートとフリップフロップFF2との間に遅延バッファを挿入して,Q1-D2の信号を遅延させて,ホールドタイムHTを長くしホールドエラーを修正したとする。その結果,遅延バッファが挿入されたパスと重複する信号パスでの信号も遅延し,例えば,Q3-D2の信号,そのセットアップタイムSTが短くなり,セットアップエラーを招くことになる。遅延バッファがフリップフロップFF1とANDゲートとの間に挿入されると,Q1-D4の信号も影響を受けて,同様のセットアップエラーが発生する場合がある。
【0016】
第2の問題点として,複数の動作モードに対応した複数のタイミング制約では,ホールドタイムとセットアップタイムがそれぞれ異なり,これら全ての条件を満たすようにホールドエラーを修正することは,非常に複雑である。そのため,コンピュータによるホールドエラーの自動修正を行うことができず,従来は,熟練したデザイナーによるマニュアル修正が一般的であった。
【0017】
以上のように,タイミングエラーを修正する場合,セットアップタイム優先でレイアウトした後にホールドエラーを修正するとき,新たなセットアップエラーを発生しないで遅延バッファを挿入する方法,更に,あるタイミング制約でのホールドエラーを修正するとき,別のタイミング制約で新たなセットアップエラーを発生させないように遅延バッファを挿入する方法がなく,コンピュータによるホールドエラーの自動修正が不可能であった。
【0018】
そこで,本発明の目的は,集積回路において,複数のタイミング制約を同時に満足するホールドタイムエラーの修正方法及びそのプログラムを提供することにある。
【0019】
更に,本発明の目的は,集積回路において,複数のタイミング制約を同時に満足するレイアウト方法及びそのプログラムを提供することにある。
【0020】
【課題を解決するための手段】
上記の目的を達成するために,本発明の一つの側面は,集積回路のホールドエラー修正方法において,
レイアウトされた集積回路に対して,複数のタイミング制約において存在するホールドエラーが発生しているパス(以下ホールドエラーパス)と,各ホールドエラーパスにおけるホールドエラー値であって,修正により前記複数のタイミング制約を満足するホールドエラー値とを有するホールドエラーリストを生成する工程と,
複数のタイミング制約におけるセットアップマージンを検出し,前記ホールドエラーの修正によりセットアップエラーが発生する可能性のあるパス(以下セットアップエラーパス)と,各セットアップエラーパスにおけるセットアップマージンであって,前記複数のタイミング制約で共通するセットアップマージンとを有するセットアップマージンリストを生成する工程と,
前記集積回路の各パス上に,前記セットアップマージンリストのセットアップマージンを割り当てたセットアップマージンマップを生成する工程と,
前記セットアップマージンマップを参照して,前記割り当てられたセットアップマージンを満足する遅延量及び位置の範囲内で,前記ホールドエラーリストのホールドエラー値を修正する遅延バッファを挿入する遅延バッファ挿入工程とを有することを特徴とする。
【0021】
上記の発明によれば,複数のタイミング制約を満足するホールドエラー値,具体的には各タイミング制約でのホールドエラー値の最大値,をホールドエラーパス毎に有するホールドエラーリストと,各セットアップエラーパスにおける複数のタイミング制約を満足するセットアップマージン,具体的には各タイミング制約での同一パスにおけるセットアップマージンの最小値,を集積回路のパス上に割り当てたセットアップマージンマップとを生成する。そして,セットアップマージンマップを参照して,ホールドエラーリストのホールドエラー値を減らす又はなくす遅延バッファであって,当該セットアップマージン以下の遅延量及び位置の範囲内の遅延バッファを挿入する。セットアップマージンマップを参照することにより,新たなセットアップエラーを発生させることなく,ホールドエラーを修正する遅延バッファの挿入が可能になる。
【0022】
より好ましい実施例では,複数の遅延バッファが挿入され,一つの遅延バッファを挿入するたびに,セットアップマージンマップ内のセットアップマージンを遅延バッファの遅延量と位置に応じて更新し,次の遅延バッファの挿入時に当該更新されたセットアップマージンマップを参照する。つまり,遅延バッファが挿入されたパス上のセットアップマージンからその遅延量を減算して,セットアップマージンマップを更新する。それにより,セットアップマージンマップ内のセットアップマージン以下の範囲で,複数の遅延バッファを順次挿入することができ,新たなセットアップエラーを発生させることなく複数の遅延バッファを挿入することができる。
【0023】
上記の実施例では,減算すべき遅延値は,挿入した遅延バッファの低速動作の条件下での遅延量であることが望ましい。通常,セットアップマージンは,集積回路を構成するセルや配線の遅延量を低速動作の条件下での遅延量で求められるので,セットアップマージンマップの更新でも,同じ条件下の遅延量が減算される必要があるからである。
【0024】
別の好ましい実施例では,セットアップマージンリストを生成する工程において,ホールドエラーリストから,ホールドエラー修正のための遅延バッファの挿入によりセットアップエラーが発生する可能性のあるパスを,セットアップエラーパスとして抽出し,当該セットアップエラーパスにおける前記セットアップマージンを抽出する。セットアップエラーが発生する可能性のあるパスの抽出は,例えば,ホールドエラーパスと少なくとも一部を共有するパスを抽出,若しくは,ホールドエラー値の最大値以下のセットアップマージンを有するパスを抽出する。または,上記両者を満足するパスを抽出してもよい。
【0025】
別の好ましい実施例では,ホールドエラーリストは,集積回路の低速動作条件下のホールドエラーリストと,高速動作条件下のホールドエラーリストとを有し,遅延バッファ挿入工程で,両ホールドエラーリスト内のホールドエラー値をなくすように遅延バッファを挿入する。低速動作条件下のホールドエラーをなくしても,高速動作条件下では別のパスにホールドエラーが発生している可能性があるので,そのホールドエラーもなくすことが好ましい。
【0026】
別の好ましい実施例では,セットアップエラーパス上にセットアップマージンを割り当てる位置を,パス上に存在するセルの位置にする。または,パス上にセルが存在しない場合は,仮想ポイントを設定して,その仮想ポイントにセットアップマージンを割り当てる。
【0027】
上記の目的を達成するために,本発明の第2の側面では,集積回路のレイアウト方法において,
複数のタイミング制約のうち最も厳しいタイミング制約においてセットアップタイムを満足するように,集積回路を構成するセル及び配線をレイアウトする工程と,
当該レイアウトされた集積回路に対して,複数のタイミング制約において存在するホールドエラーが発生しているパス(以下ホールドエラーパス)と,各ホールドエラーパスにおけるホールドエラー値であって,修正により前記複数のタイミング制約を満足するホールドエラー値とを有するホールドエラーリストを生成する工程と,
複数のタイミング制約におけるセットアップマージンを検出し,前記ホールドエラーの修正によりセットアップエラーが発生する可能性のあるパス(以下セットアップエラーパス)と,各セットアップエラーパスにおけるセットアップマージンであって,前記複数のタイミング制約で共通するセットアップマージンとを有するセットアップマージンリストを生成する工程と,
前記集積回路の各パス上に,前記セットアップマージンリストのセットアップマージンを割り当てたセットアップマージンマップを生成する工程と,
前記セットアップマージンマップを参照して,前記割り当てられたセットアップマージンを満足する遅延量及び位置の範囲内で,前記ホールドエラーリストのホールドエラー値を修正する遅延バッファを挿入しレイアウトする遅延バッファ挿入工程とを有することを特徴とする。
【0028】
上記のレイアウト方法によれば,前述したホールドエラー修正方法の作用に加えて,遅延バッファ挿入工程で,遅延バッファをレイアウトした状態で,セットアップマージンを満足するか否かが判断されるので,より適切にセットアップエラーの発生を回避することができる。
【0029】
【発明の実施の形態】
以下,図面を参照して本発明の実施の形態例を説明する。しかしながら,本発明の保護範囲は,以下の実施の形態例に限定されるものではなく,特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【0030】
[レイアウトシステムとレイアウトプロセス]
図3は,本実施の形態におけるレイアウトシステム構成図である。レイアウトシステムは,演算ユニット10と,プログラム群12と,ファイル群14で構成される。プログラム群12には,
(1)論理設計された論理回路のネットリストF10に含まれるセルや配線をレイアウトするレイアウトプログラムP10と,
(2)ネットリストF10とセルや配線の遅延特性を有する遅延ファイルF11とを参照して,所定のタイミング制約(F12)のもとにセットアップタイムとホールドタイムを抽出するスタティック・タイミング解析ツール(STAツール)P12と,
(3)レイアウトされた集積回路のホールドタイムが仕様上要求される値に満たないホールドエラーが発生しているパス(ホールドエラーパス)と,そのホールドエラー値(どれだけ不足しているかの値)とを有するホールドエラーリストF14を作成するホールドエラーリスト作成ツールP14と,(4)ホールドエラー修正によりセットアップエラーが発生する可能性のあるパス(セットアップエラーパス)のリストF16を抽出するセットアップエラーパス抽出ツールP16と,
(5)セットアップエラーパスにおけるセットアップマージン(仕様上要求されるセットアップタイムに対してどれだけ余裕があるかの値)を有するセットアップマージンリストF18を作成するツールP18と,
(6)集積回路のパス上のセルの前後に,セットアップマージンリストのセットアップマージンをセットアップマージンパス別に割り当てたセットアップマップF20を作成するツールP20と,
(7)ホールドエラーリストF14のホールドエラーを修正するために遅延バッファを,セットアップエラーが新たに発生しないように,挿入するホールドエラー修正ツールP22とを有する。
【0031】
演算ユニット10がこれらのプログラム群を適宜実行することにより,論理設計された論理回路をチップ上にレイアウトし,ホールドエラー修正を含む必要なタイミングエラーの修正を自動的に行う。
【0032】
図4は,本実施の形態における第1のレイアウトプロセスのフローチャート図である。このレイアウトプロセスでは,最初に論理設計済みのネットリストF10内のセルや配線をチップ上にレイアウトするレイアウト工程S10が行われる。このレイアウト工程では,自動レイアウトアルゴリズム若しくはオペレータによるレイアウト指令に応答して,論理回路のセルや配線が,チップ上にレイアウトされ,レイアウトファイルF22が生成される。集積回路は,複数の動作モードに対応するタイミング制約を満足することが要求される。但し,レイアウト工程S10の処理を簡単化するために,この例では,複数のタイミング制約のうちセットアップタイムについて最も厳しい1つのタイミング制約TC1で,セットアップタイムのチェックとホールドタイムのチェックが行われる。
【0033】
レイアウト工程では,バックグランドでSTAツールが動作し,セルや配線のレイアウトに対して,セットアップエラーが生じないか否かを常にチェックする。従って,あるセルや配線をレイアウトする時に,セットアップエラーが発生すれば,そのレイアウトは禁止され,別のレイアウトが促される。また,セットアップエラーのチェックは,遅延ファイルF11のMAX遅延特性の遅延値に従って行われる。MAX遅延特性の遅延値のほうが,セットアップエラーにはより厳しい条件だからである。
【0034】
セットアップエラーをクリアしたレイアウトに対して,レイアウト工程S10では,タイミング制約TC1におけるホールドエラーがチェックされ,そのホールドエラーを修正するために,遅延バッファが挿入される。ここでは,1種類のタイミング制約TC1でのホールドエラーであるので,その修正に必要な遅延バッファの挿入は比較的簡単に行われる。その結果,タイミング制約TC1についてのみタイミングエラーのないレイアウトが完了する。従って,レイアウト工程S10のアウトプットは,レイアウトファイルF22と,遅延バッファ挿入により変更されたレイアウト後のネットリストF10Bである。
【0035】
次に,複数のタイミング制約でのホールドエラーのチェック工程S12が行われる。各タイミング制約に対して,STAツールを実行することにより,ホールドタイムエラーが発生しているか否か,どの程度のエラー値であるかを検出することができる。好ましい実施例では,ホールドエラーのチェックでは,遅延ファイルF11のMIN遅延特性の遅延値とMAX遅延特性の遅延値の両方について行う。または,よりホールドエラーの発生頻度が高いMIN遅延特性の遅延値についてだけホールドエラーのチェックを行うことも行われる。
【0036】
ホールドエラーが発生していなければ(S14),レイアウトプロセスは終了するが,発生していれば(S14),ホールドタイムエラー修正工程S16が行われる。このホールドタイムエラー修正工程S16が,本実施の形態の対象のホールドエラー修正方法である。詳細は後述するが,簡単に説明すると,この修正処理は,ホールドエラーが発生しているパスに,遅延バッファを挿入してホールドエラーをなくす処理である。その場合,セットアップマージンマップが作成され,それを参照してセットアップエラーが新たに発生しないように遅延バッファが挿入される。
【0037】
ホールドエラー修正が終わると,そこで挿入された遅延バッファについて,再度レイアウト工程S10でレイアウトが行われ,レイアウト後の遅延特性に従って,ホールドエラーチェックが行われる(S12)。エラーが未だ発生している場合は,更に遅延バッファを挿入したり,遅延バッファのレイアウト位置を変更したりすることが行われる。
【0038】
図5は,本実施の形態における第2のレイアウトプロセスのフローチャート図である。第2のレイアウトプロセスでは,第1の場合と異なり,レイアウト工程内で,複数のタイミング制約でのホールドエラーが修正され,レイアウト後の遅延特性でセットアップエラーやホールドエラーが存在しないことが確認される。
【0039】
第2のレイアウトプロセスでは,最初に,STAツールP12がバックグランドで動作するレイアウトツールP10により,セットアップエラーが発生しないように,ネットリストF10内のセルや配線が,チップ上にレイアウトされる。このセットアップエラーのチェックは,第1のレイアウトプロセスと同様に,複数のタイミング制約のうちの最も厳しいタイミング制約TC1のもとでエラーが発生するか否かにより行われる。従って,レイアウトされた集積回路は,タイミング制約TC1のもとではセットアップエラーは生じていない。
【0040】
次に,複数のタイミング制約TC1〜TCNに対してホールドエラーを修正する工程S16が実行される。このホールドタイムエラー修正工程S16は,第1のレイアウトプロセスと同じである。但し,この工程では,ホールドエラー修正のために挿入された遅延バッファをレイアウトした状態での遅延特性を利用して,セットアップエラーを生じない範囲で,ホールドエラー修正が行われる。従って,この工程を終了すると,レイアウトプロセスは完了することになる。
【0041】
[ホールドエラー修正処理の概略]
次に,ホールドエラー修正工程について,その概略を説明する。図6は,本実施の形態におけるホールドエラー修正方法のフローチャート図である。図4,5に示したとおり,ホールドエラー修正工程の段階では,ネットリストF10,レイアウトファイルF22,遅延ファイルF11,タイミング制約ファイルF12とが提供される。タイミング制約ファイルF12には,集積回路の複数の動作モードに対応した複数のタイミング制約TC1〜TCNを記述したスクリプトファイルが含まれている。
【0042】
最初に,レイアウトされた集積回路に対して,複数のタイミング制約におけるホールドエラーを検出し,ホールドエラーが発生しているホールドエラーパスと,各ホールドエラーパスにおけるホールドエラー値(どのくらいホールドタイムが足りないかを示す時間値)であって,複数のタイミング制約を満足するホールドエラー値とを有するホールドエラーリストF14を生成する(S100)。このホールドエラーリストの生成には,STAツールP12とホールドエラーリスト作成ツールP14のプログラムが実行される。そして,前述のとおり,遅延特性がMAX側(低速動作)とMIN側(高速動作)のそれぞれについて,ホールドエラーリストが別々に作成されることが望ましい。具体例については,後に詳述する。
【0043】
各タイミング制約でSTAツールを実行させることで,ホールドエラーパスとそのホールドエラー値とが検出される。そして,同じパスに存在する複数のタイミング制約に対するホールドエラー値のうち,最も大きなエラー値が選択され合体される。このホールドエラーリストF14は,ホールドエラー修正対象リストであり,後にホールドエラー修正のために挿入される遅延バッファの遅延値と挿入位置を決定する基礎データである。最も大きなホールドエラー値がなくなれば,一つのパスにおいて全てのタイミング制約に対するホールドエラー値はなくなることになるので,複数のタイミング制約でのエラー値のうち最も大きなエラー値が選択される。
【0044】
次に,ホールドエラー修正のために遅延バッファを挿入した場合に,セットアップエラーが発生する可能性のあるパスを,セットアップエラーパスとして抽出する(S102)。この抽出方法では,例えば,ホールドエラーパスと少なくとも一部を共有するパスが抽出される。または,ホールドエラー値のうち最大ホールドエラー値を修正するために遅延バッファを挿入した時に生成される,当該遅延バッファのMAX遅延特性での遅延量より小さいセットアップマージンしか有しないパスが全て抽出される。
【0045】
前者の方法では,ホールドエラーパス内に遅延バッファが挿入されると,それによりセットアップタイムに影響が与えられるパスを抽出している。一方,後者の方法では,ホールドエラーをなくすためにそのエラー値の遅延量を持つ遅延バッファが挿入されると,その遅延量より小さいセットアップマージンしか有していないパスには,新たにセットアップエラーが発生する可能性があり,かかるパスが抽出される。抽出処理に応じて,又は抽出結果のデータ量に応じて,いずれかの方法が選択される。セットアップエラーパスは,MAX遅延特性とMIN遅延特性に共通に生成される。
【0046】
更に,STAツールP12によりセットアップエラーパスにおけるセットアップマージンが,複数のタイミング制約に対して検出され,それら複数のタイミング制約を満足することができるセットアップマージンが選択され,セットアップマージンリストF18が作成される(S104)。複数のタイミング制約を満足させるためには,各タイミング制約に対して検出されるマージンのうち,最も小さいマージンを選択して,各セットアップエラーパスのマージンとすれば良い。つまり,このセットアップマージンの範囲内で遅延バッファを挿入すれば,新たにセットアップエラーが発生することはないからである。
【0047】
そして,セットアップマージンリストF18のマージン値を,ホールドエラーパス上のセルの前後に,パス毎に区別して割り当てて,セットアップマージンマップF20が生成される(S106)。このセットアップマージンマップF20は,ホールドエラー修正のための遅延バッファを挿入するときに,新たなセットアップエラーが発生しないことを確認するために利用される。つまり,このマップを参照して,ある位置に挿入する遅延バッファの遅延量が,その挿入位置におけるマップ上のセットアップマージンを越えないようにする。マージンの範囲内であれば,新たなセットアップマージンは発生しないからである。
【0048】
そして,最後に,ホールドエラーリスト内のエラー値をなくすために,エラー値に対応する遅延量を有する遅延バッファを,ホールドエラーパス内に挿入してホールドエラー修正を行う(S108)。その時,セットアップマージンマップF20を参照して,このマージンを越えない範囲の遅延量及び位置について,遅延バッファを挿入する。
【0049】
遅延バッファを複数個挿入する必要がある場合は,一つの遅延バッファを挿入した後,セットアップマージンマップを更新して(S110),次の遅延バッファの遅延量と位置を選択し,再度挿入する(S108)。この処理S108,S110が,全てのホールドエラーの修正が完了するまで,つまり,ホールドエラーリストのエラー値がなくなるまで,繰り返される(S112)。
【0050】
[具体例]
次に,具体的な回路例を示して,上記のホールドタイムエラー修正プロセスを説明する。図7,図8は,本実施の形態におけるホールドタイムエラー修正プロセスの詳細フローチャート図である。図6と同じ工程,処理には,同じ引用番号を与えている。図9は,修正プロセスの対象となる具体的な回路例を示す図である。この回路例は,図2に示した回路例と同様に,4つのフリップフロップFF1〜FF4とゲートGATEを有し,フリップフロップFF1の出力データQは,ゲートの入力A1に入力され,その出力Xが,セルIの後段で分岐されて,フリップフロップFF2とFF4の入力Dに供給される。また,フリップフロップFF3の出力データQは,ゲートの入力A2に入力される。従って,図9の回路は,フリップフロップFF1からフリップフロップFF2とFF4への2つの信号パスと,フリップフロップFF3からフリップフロップFF2,FF4への2つの信号パスとを有する。更に,図9の回路例では,信号パス上に,複数のセルA〜Mが配置されている。
【0051】
[ホールドエラーリストの作成]
さて,この回路のネットリストと,レイアウトファイルとが生成された状態で,ホールドタイムエラー修正が行われる。まず,ホールドエラーリストF14が生成される。図10は,図9の回路例に対するホールドエラーリストを示す図である。
【0052】
図7の詳細フローチャートに示されるとおり,ホールドエラーリストF14の作成工程は,ホールドエラー解析S100Aと,ホールドエラーリストの合体工程S100Bとからなる。ホールドエラーの解析とそのエラー値の抽出は,STAツールP12が,ネットリストF10とレイアウトファイルF22と遅延ファイルF11とタイミング制約ファイルF12を参照して行う。ホールドエラーの検出は,全てのタイミング制約について,MIN側(高速動作)の遅延特性とMAX側(低速動作)の遅延特性それぞれについて行われる。従って,図7のフローチャートでは,このホールドエラー解析が,各タイミング制約のMIN遅延特性とMAX遅延特性それぞれについて,並列的に行われる。
【0053】
図10の例には,2つのタイミング制約TC1,TC2におけるMIN遅延特性(高速動作)についてリスト(A)(B)が示されている。図10(A)は,タイミング制約TC1におけるホールドエラーリストであり,フリップフロップFF1−FF2間のホールドエラーパスでは,−25psのホールドエラーが,フリップフロップFF1−FF4間のホールドエラーパスでは,−100psのホールドエラーがそれぞれ検出されている。ここで,フリップフロップFF1−FF2間のパスは,FF1のクロックCKに応答して入力Dが取り込まれ,その出力QがゲートGATEを介してFF2の入力Dに供給されるパスである。そして,図2で示したように,フリップフロップFF2のクロックCKの立ち上がりエッジ後から入力Dが変化するまでのホールドタイムが,FF2で仕様上要求されているホールドタイムよりどの程度短いかを示す値が,ホールドエラー値である。従って,このホールドエラー値以上の遅延値を持つ遅延バッファがそのパス上に挿入されれば,このホールドエラーは修正されることになる。その場合,遅延バッファの個数は複数個でも良い。
【0054】
同様に,図10(B)は,タイミング制約TC2におけるホールドエラーリストであり,フリップフロップFF1−FF2間のホールドエラーパスでは,−10psのホールドエラーが,フリップフロップFF3−FF4間のホールドエラーパスでは,−100psのホールドエラーがそれぞれ検出されている。
【0055】
次に,それぞれのタイミング制約で求めたホールドエラーリストが,各ホールドエラーパスにおける複数のタイミング制約を満たすことができるホールドエラー値を選択して合体される(S100B)。図10(A)(B)の例で説明すると,ホールドエラーパスFF1−FF2が,両方のタイミング制約TC1,2で重複している。タイミング制約TC1では−25psのエラー値が,制約TC2では−10psのエラー値がそれぞれ検出されている。いずれの制約においてもホールドエラーを修正するためには,両者の最大ホールドエラー値を選択すべきである。最大ホールドエラー値が修正されるように遅延バッファが挿入されれば,いずれのタイミング制約でも,ホールドエラーは発生しないからである。
【0056】
このように,複数のタイミング制約でのエラー値が同一パス毎にまとめられ,最大のエラー値が選択されて合体される。合体後の全体ホールドエラーリストは,図10(C)に示される通りである。このリストF14は,3つのホールドエラーパスとそのホールドエラー値とを有する。このホールドエラーリストF14のホールドエラー値をなくすように,各パスに遅延バッファを挿入することが行われる。
【0057】
尚,具体例には,MIN遅延特性でのホールドエラーリストのみが示される。MAX遅延特性で求めると,ホールドタイムにとってより緩和された条件であるので,ホールドエラーの発生頻度はより低くなり,場合によっては,MIN遅延特性のホールドエラーに含まれることもある。但し,例外的に,MIN遅延特性のホールドエラー以外のパスに,MAX遅延特性のホールドエラーが発生したり,MIN遅延特性のホールドエラー以上のエラー値が発生したりする場合もある。従って,念のために,両方のホールドエラーリストを作成することが好ましい。
【0058】
[セットアップマージンリストとマップの作成]
次に,ホールドエラー修正により遅延バッファを挿入した場合にセットアップエラーが発生する可能性のあるパス(セットアップエラーパス)が抽出される(S102)。図10(C)に示したホールドエラーリストには,3つのホールドエラーパスしか含まれておらず,パスFF3−FF2は含まれていない。しかし,図9に示されるとおり,パスFF3−FF2は,セルIが設けられた部分的なパスをパスFF1−FF2と共有している。或いは,パスFF3−FF2は,セルE,F,G,Hが設けられた部分パスを,パスFF3−FF4と共有している。従って,ホールドエラーパスFF1−FF2,FF3−FF4のどこかに遅延バッファが挿入されると,それらと部分的にパスを共有しているパスFF3−FF2のセットアップタイムが変更され,セットアップエラーが発生する可能性がある。
【0059】
そこで,セットアップエラーパス抽出処理S102では,ホールドエラーパスとパスの一部分でも共有する関連パスを,セットアップエラーパスとして抽出することが行われる。これにより,後の遅延バッファ挿入時に参照すべきセットアップマージンマップのサイズを小さくすることができる。
【0060】
次に,STAツールを実行して,各タイミング制約TC1,TC2において,各セットアップエラーパスがどれくらいのセットアップマージンを有しているかを検出する。セットアップエラーマージンは,仕様上要求されるセットアップタイムと実際のセットアップタイムとの時間差であり,このマージン値以内の遅延量であれば,遅延バッファを挿入してもセットアップエラーが発生しない。そして,セットアップエラーに対して厳しいMAX遅延特性でセットアップマージンが求められる。
【0061】
図7のフローチャートでは,セットアップマージンリスト工程S104が,各タイミング制約のマージン検出工程S104Aと,各マージンリストを合体する工程S104Bとに分割されている。そして,セットアップマージン検出工程S104Aは,各タイミング制約毎に並列処理が可能である。
【0062】
図11(B)は,タイミング制約TC1におけるセットアップマージンリストである。図11(A)に示された抽出された関連パスそれぞれのマージンが含まれる。更に,図11(C)は,タイミング制約TC2におけるセットアップマージンリストである。両リストを比較すると,パスFF1−FF2でタイミング制約TC1ではマージンが500psであるが,制約TC2では600psであり,一方,パスFF3−FF2では,制約TC1で700ps,制約TC2で400psと異なっている。
【0063】
そこで,次のセットアップマージンリストの合体処理S104Bでは,同じパスにおいて,最小のマージンをそのパスのセットアップマージンとして,最終的なセットアップマージンリストF18を生成する。図11(D)は,そのセットアップマージンリストである。最小のセットアップマージンとは,セットアップエラー発生の可能性の高い値を意味し,後の遅延バッファ挿入時に参照すべきセットアップマージンマップには,その厳しいほうのマージンがパス上に割り当てられる。図11(E)は,(D)と同じセットアップマージンリストF18である。
【0064】
次に,セットアップマージンマップが作成される(S106)。この処理では,図11に示されたセットアップマージンリストF18の各パス上に存在する各セルに対して,パス毎に分類してセットアップマージンを割り当てることで行われる。
【0065】
図12は,パスFF1−FF2のセットアップマージンを割り当てた時のセットアップマージンマップを示す図である。パスFF1−FF2上の各セルとゲートに対して,セットアップマージンリストF18のマージン500psが割り当てられている。この割り当てられたマージンは,パスFF1−FF2に対するマージンであることが区別可能にされる。
【0066】
図13は,パスFF3−FF4のセットアップマージンを割り当てた時のセットアップマージンマップを示す図である。パスFF3−FF4上の各セルとゲートに対して,セットアップマージンリストF18のマージン300psが割り当てられている。
【0067】
そして,図14は,パスFF1−FF4とFF3−FF2のセットアップマージンを割り当てた時のセットアップマージンマップを示す図である。パスFF1−FF4上の各セルとゲートに対して,マージン200psが,パスFF3−FF2上の各セルとゲートに対して,マージン400psがそれぞれ割り当てられている。セットアップマージンリストF18の全てのパスのマージンが割り当てられたので,図14が最終的なセットアップマージンマップを示す。
【0068】
このセットアップマージンマップでは,各セルに割り当てられたマージンの中で一番小さいマージンが,そのセルの前後に挿入可能な遅延値を示す。従って,ホールドエラーをなくすために挿入する遅延バッファは,このマップを参照して,その遅延量と挿入位置を決定すれば,新たなセットアップエラーの発生を回避することができる。つまり,挿入する位置における最小マージンの範囲内の遅延量であれば,遅延バッファを挿入しても,セットアップエラーは発生しない。
【0069】
但し,注意すべき点は,このセットアップマージンマップのマージンは,MAX遅延特性により求められたものであるので,挿入する遅延バッファのMAX遅延特性の遅延量が,マップ内の最小マージンより小さいことを確認する必要がある。そして,逆に,ホールドエラーリスト内のエラー値については,対応する側の遅延量でエラー値が解消されることを確認する必要がある。
【0070】
[遅延バッファの挿入によるホールドエラー修正]
次に,セットアップマージンマップのマージンを満足する範囲で,遅延バッファを挿入して,ホールドエラーリスト内のホールドエラーを修正する(S108,S110,S112)。この処理は,ホールドエラー修正サブルーチンとして,図8のフローチャートに詳細が示される。
【0071】
図8に示されるとおり,最初に,遅延バッファを挿入するに適している位置を検出するために,複数のホールドエラーパスに関連するセルを抽出する(S120)。できるだけ多くのホールドエラーパスが通過するセルの前後に,遅延バッファを挿入することで,少ない数の遅延バッファにより多くのホールドエラーパスのホールドエラーを修正することができる。ここでの回路例では,ゲートの出力XとセルIの位置を,4つのホールドエラーパスが同時に通過し,それ以外のセルを,それぞれ2つのホールドエラーパスが通過している。つまり,全てのセルが,抽出工程S120で抽出される。ここで抽出されたセルの前後が,遅延バッファの挿入位置として優先的に選ばれる。
【0072】
次に,ホールドエラー修正可能な遅延バッファの遅延量と挿入位置の候補が選択される(S122)。具体的には,MIN遅延特性(高速動作)のホールドエラーリストのエラー値をできるだけなくすことができる遅延量(MIN遅延特性(高速動作))を持つ遅延バッファが,セットアップマージンマップで許容される範囲内(但しMAX遅延特性)で,選択される。そして,その遅延バッファが仮に挿入される(S124)。
【0073】
図15は,パスFF1−FF4のホールドエラー−100psを修正するためにセルを挿入した時のセットアップマージンマップの図である。この例では,セルNがセルIとセルLとの間に挿入されている。マージンマップには,その位置に関係する全てのパスのマージン値が記述されている。そして,マージンマップによると,セルLのセットアップマージンは,最小で200psである。従って,MAX遅延特性(低速動作)で200ps未満の遅延バッファであれば,挿入可能であることが判断できる。そこで,MIN遅延特性(高速動作)で100psを越えて,MAX遅延特性(低速動作)で200ps未満の遅延バッファNを挿入すれば,新たなセットアップエラーを生じることなく,パスFF1−FF4のホールドエラーを修正することができる。
【0074】
図8の詳細なフローチャートによれば,遅延バッファを仮に挿入してから, MAX遅延特性(低速動作)のホールドエラーリストをチェックし,パスFF1−FF4のMAX遅延特性におけるホールドエラーも修正されたか否かのチェックが行われる(S128)。このチェックは,挿入したバッファのMAX遅延特性での遅延量がMAX遅延特性でのホールドエラー値を越えていれば,そのエラー修正が行われたとみなすことにより行われる。これを行うことにより,パスFF1−FF4のMAX,MIN両方のホールドエラーが同時に修正可能になる。MAX遅延特性のホールドエラーの修正を省略する場合は,工程S126,S128を省略することができる。
【0075】
遅延バッファNを挿入した結果,セットアップマージンマップが更新される(S130)。遅延バッファNを挿入したことに伴い,マージンマップ内のマージンが一部減少(より厳しく)なっているからである。図16は,そのアップデート後のセットアップマージンマップを示す図である。
【0076】
挿入した遅延セルNの位置からどのパスにその遅延セルが影響を与えるかをマージンマップから抽出する。マージンマップには,セルLの位置にパスFF1−FF4とFF3−FF4のマージンが割り当てられており,これらのパスに影響を与えることが判明する。そこで,前述のとおり,セットアップマージンに影響を与えるMAX遅延特性(低速動作)での挿入遅延セルNの遅延値を計算する。この計算は,例えば,挿入した遅延セルNの遅延計数を基準遅延量にかけて(乗算),MAX遅延特性での遅延値を得る。ここでは,挿入遅延セルNのMIN遅延特性(低速動作)の遅延値が100psであり,それに遅延計数1.5を乗算して,MAX遅延特性(高速動作)の遅延値150psを得る。
【0077】
そこで,マージンマップのパスFF1−FF4とFF3−FF4のマージンから挿入セルNの遅延値150psをそれぞれ減算すると,図16のアップデート後のマージンマップF20が得られる。このマージンマップには,マイナスのマージンがないので,新たなセットアップマージンが発生することはないことが確認できる。また,この更新後のマージンマップF20には,挿入した遅延セルに対しても,マージンが割り当てられる。
【0078】
図17は,遅延セルNを挿入したことに伴うアップデート後のセットアップマージンリストF18とホールドエラーリストF14を示す図である。図17(A)のセットアップマージンリストF18では,パスFF1−FF4とFF3−FF4のマージンがそれぞれ50ps,150psと減っている。また,図17(B)のホールドエラーリストF14では,修正したパスFF1−FF4のホールドエラーがなくなっている。
【0079】
以上のように,ホールドエラー修正可能な挿入セルのMAX遅延特性(低速動作)での遅延値を算出し,セットアップマージンマップを参照して,ホールドエラーパス上の各セルをスキャンし,算出した遅延値が挿入位置の最小マージンの範囲内に納まるかどうかを判断し,納まるならその位置を挿入位置と決定する。そして,その算出遅延値について,セットアップマージンマップを更新する。この処理が,全てのホールドエラーが修正されるまで繰り返される(S112)。
【0080】
次に,パスFF3−FF4のホールドエラー−100psを修正する処理を説明する。図18は,パスFF3−FF4のホールドエラー100psを修正するためにセルを挿入した時のセットアップマージンマップの図である。パスFF3−FF4のホールドエラー100ps(MIN遅延特性)を修正するために,パスのいずれかの位置にMIN遅延特性の遅延量が100psの遅延セルを挿入するためには,その遅延セルのMAX遅延特性の遅延量150ps(遅延計数1.5の場合)以上のセットアップマージンを有する位置を選択しなければならない。
【0081】
図18のマージンマップによれば,パスFF3−FF4のゲートGATEより後段の位置では,最小マージンが50psであり,挿入することができない。一方,パスFF3−FF4のゲートGATEより前段の位置であれば,最小マージンが150psであるので,挿入することができる。そこで,図18に示されるとおり,セルFとGの間が挿入セルPの挿入位置に選ばれる。
【0082】
図19は,上記の挿入セルPを挿入したことに伴うアップデート後のセットアップマージンマップF20を示す図である。セルE,F,G,H,Gate(A2-X),I,J,K,L,MのマージンがパスFF3−FF4とFF3−FF2に対するものであるので,それらのパスのマージンから,上記MAX遅延特性の遅延値150psが減算されている。その結果,パスFF3−FF4のセットアップマージンは0psになり,これ以上の遅延セルを挿入することはできなくなっている。
【0083】
図20は,遅延セルPを挿入したことに伴うアップデート後のセットアップマージンリストF18とホールドエラーリストF14を示す図である。ホールドエラーリストF14によれば,残るホールドエラーは,パスFF1−FF2の−25psのみとなった。
【0084】
図21は,パスFF1−FF2のホールドエラー−20psを修正するためにセルを挿入した時のセットアップマージンマップの図である。MIN遅延特性の遅延値20psを持つ遅延セルのMAX遅延特性の遅延値が50psとすると,パスFF1−FF2上の各セルにおいて,最小マージンが50ps以上の位置を検出する。図21のマージンマップでは,ホールドエラーパスFF1−FF2のうちセルIの前後を除くいずれの位置であっても,最小マージンは50ps以上であるので,セルI前後以外ならどこでも挿入可能であることがわかる。図21の例では,セルB,Cの間に,遅延セルQが挿入される。
【0085】
図22は,遅延セルQの挿入に伴い,アップデートされたセットアップマージンマップF20を示す図である。図示されるとおり,パスFF1−FF2の一部及びパスFF1-FF4の間の最小マージンは0になったが,マイナスにはなっておらず,新たなセットアップエラーは発生していない。
【0086】
以上で,全てのホールドエラーが修正されたことになる。そして,セットアップマージンマップには,マイナスマージンが発生していないので,新たなセットアップエラーの発生は回避されている。
【0087】
[変形例1]
上記の実施の形態では,工程S102にて,ホールドエラー修正のために遅延バッファを挿入した時に影響を受けるパス(関連セットアップエラーパス)として,ホールドエラーパスと少なくとも一部を共有するパスを抽出した。これによりセットアップマージンマップの規模を適正な大きさにすることができた。
【0088】
一つの変形例では,上記のホールドエラーパスと少なくとも一部を共有するパスを抽出することが困難な場合は,以下の方法で関連セットアップエラーパスを抽出しても良い。即ち,ホールドエラーリストのエラー値のなかの最大ホールドエラー値を抽出し,そのエラー値の遅延バッファを挿入した時に,MAX遅延特性でどれだけの遅延量が追加されるかを求める。そして,各タイミング制約で求めたセットアップマージンのうち,上記MAX条件での遅延量以下のセットアップマージンを持つパスを,セットアップエラーパスとして抽出する。
【0089】
従って,この抽出工程は,図7の工程S104Bの後で,工程S106の前に行われる。セットアップマージンリストF18は,全てのパスとそのマージンが含まれ,その中から,上記最大ホールドエラーに対応するMAX遅延特性の遅延値以下のパスが抽出される。これらのパスの中には,ホールドエラーパスと何ら関係のないパスも含まれるが,少なくとも,最大のホールドエラー修正のために遅延セル(又は遅延バッファ)が挿入されても,セットアップエラーが発生し得ない大きなマージンを有するパスは除外される。それにより,ある程度はマージンマップの規模を小さくすることができる。但し,遅延バッファを挿入するときの参照すべきマージンマップの規模は大きくなる可能性がある。上記の実施の形態と,処理の重さを比較して,より適切な方法が選択される。
【0090】
[変形例2]
セットアップマージンマップのマージン値に,所定のマージンだけ減算して取り扱うようにする。前述の実施の形態では,挿入セルのMAX遅延特性での遅延値が最小マージン以下であれば,その位置での挿入を許可した。しかし,STAツールによる演算誤差を考慮して,マージンマップのマージン値を例えば20%程度低く設定する。もしくは,挿入セルのMAX遅延特性での遅延値が最小マージン値の80%以下の時にその位置での挿入を許可する。こうすることにより,セットアップマージンの計算にある程度の誤差があっても,確実にセットアップエラーの発生を回避することができる。
【0091】
特に,図4に示したレイアウトプロセスにおいて,ホールドエラー修正のために遅延セルを挿入する工程S16では,挿入された遅延セルのレイアウト処理が未処理であり,レイアウトによる遅延値の増加の可能性がある。その為,遅延セルのレイアウトができなくなる可能性もある。上記のセットアップマージンにマージンを設けることにより,そのような可能性を低く抑えることができる。
【0092】
[変形例3]
図9〜図22の具体例では,ホールドエラーリストは,図10に示されるMIN遅延特性でのエラーの修正を行っている。従って,セットアップエラーパスも,そのMIN遅延特性でのホールドエラーパスに関連するものだけを抽出した。そこで,ホールドエラーリストに,MAX遅延特性でのエラーも含める場合は,そのMAX側のホールドエラーパスに関連するセットアップエラーパスも抽出して,そのパスのセットアップマージンをセットアップマージンマップに追加する必要がある。従って,MAX遅延特性のホールドエラーリストが追加されても,セットアップマージンマップは1種類で良いことになる。
【0093】
ホールドエラーリストの作成は,MAX遅延特性もMIN遅延特性も同じである。そして,挿入する遅延セル候補の選択においては,MIN遅延特性のホールドエラーを優先的に修正する。ホールドエラーはMIN遅延特性(高速動作)のほうがより多く発生するので,そちらを優先して修正することにより,同時にMAX遅延特性のホールドエラーも修正する確率が高いからである。
【0094】
ホールドエラー修正処理では,まずMIN遅延特性のホールドエラーを修正する遅延セル候補が選択されると,同一パスにMAX遅延特性のホールドエラーパスが存在する場合は,そのホールドエラーも修正されるか否かをチェックする。このチェックでは,挿入する遅延セルのMAX遅延特性での遅延値が使用される。そして,MAX遅延特性のホールドエラー値より挿入遅延セルの遅延値が大きければ,MAX遅延特性のホールドエラーも修正されたことになる。小さければ,挿入する遅延セル候補の遅延値を大きくして再度評価する。更に,全てのMIN遅延特性のホールドエラーが修正された後,更にMAX遅延特性のホールドエラーが残っている場合は,その残ったホールドエラーの修正のための遅延セルの挿入を行う。
【0095】
[変形例4]
ホールドエラーは,厳密に言えば,データの立ち上がり時(UP)と,立ち下がり時(DOWN)とで別々の存在する。従って,より厳密にホールドエラー修正を行うためには,UPとDOWNの両方についてホールドエラーリストを作成し,それぞれの修正を行う処理が必要になる。その場合は,挿入する遅延セルの遅延量は,UPとDOWNとに分けて処理することになる。それに伴い,セットアップマージンマップも,UPとDOWNに分けて生成し,それぞれの処理では別のマージンマップを参照する。
【0096】
図23は,立ち上がり時と立ち下がり時のホールドエラーを有するホールドエラーリストの例である。図10のホールドエラーリストF14と比較すると,ホールドエラーに,UPとDOWNの二種類が含まれる。また,パスによっては,一方のホールドエラーのみが存在することもある。
【0097】
データ信号の立ち上がりと立ち下がりのホールドエラーを検出した後,ホールドエラーリストのエラー値を,UPのエラー値とDOWNのエラー値のうち大きいエラー値を代表させることでも良い。その場合は,セットアップマージンマップも,UPとDOWNのマージンのうち小さい値を代表させて一つにする。それにより,処理を簡略化することができる。
【0098】
[変形例5]
図8のホールドエラー修正サブルーチンの工程S120で既に説明したが,ホールドエラー修正のための遅延セルの挿入位置を,複数のホールドエラーパスが重複するパスの位置にすることにより,挿入する遅延セル数を最小化することが可能になる。図24は,その挿入する遅延セル数を最小化する方法を示す図である。この回路例において,パスFF1−FF2とパスFF1−FF3がホールドエラー発生パスとする。この場合は,セルA,B,C,D,Eの前後に遅延セルを挿入することができれば,2つのパスのホールドエラーを同時に減らすことができる。従って,遅延セル挿入位置の選択は,これらの重複する位置のセルを優先することで,挿入する遅延セルの数をできるだけ少なくすることができる。
【0099】
また,複数のホールドエラーパスが重複する位置に,ホールドエラー値未満であっても挿入可能な遅延量の遅延セルを挿入することによっても,同様に挿入遅延セルの数を少なくすることができる場合がある。
【0100】
[変形例6]
上記の実施の形態では,セットアップマージンマップF20を作成するときに,各パスのセットアップマージンをパス上のセルに割り当てた。しかし,本発明はそれに限定されず,セル以外の挿入候補位置に割り当てても良い。或いは,パス上にセルが存在しない場合は,仮想のセットアップマージン設定ポイントを設定し,そこにセットアップマージンを割り当てても良い。その場合は,遅延セルの挿入候補の位置にかかる仮想の設定ポイントを追加する。いずれの場合も,データ処理を可能にするために,仮想のセル(または仮想ポイント)を設定し,その仮想セルにセットアップマージンを割り当てる。
【0101】
図25は,パス上にセルが存在しない回路例を示す図である。この例では,パスFF3−A2,パスX−FF4,パスX−FF4には,セルが存在しない。この場合は,セットアップマージンを設定する仮想セル(仮想ポイント)を設定し,そこにセットアップマージンを設定する。図26は,仮想セルを設定した後の回路図である。この例では,上記のセルが存在しないパス上に,仮想セルVA,VB,VCが設定されている。パスX−FF2とパスX−FF4には,分岐点より手前に仮想セルVAが設定されている。
【0102】
仮想セル設定のルールは次の通りである。(1)パスFF−FF間にセルが1つも存在しなかったら,仮想セルを挿入する。(2)パスFF−FF間で異なる経路から来た信号が論理ゲートGATEを通って収斂する場合(図25では,ゲートGATEを通過してゲートの出力Xで収斂する部分),収斂した信号とその後段のフリップフロップFFとの間に何もセルが存在しない場合に,仮想セルを挿入する。この例は,図26の仮想セルVAが該当する。(3)パスFF−FF間の分岐配線で,各配線セグメント上に何もセルが存在しない場合は,各配線セグメントに仮想セルを挿入する。この例は,図26の仮想セルVA,VB,VCが該当する。
【0103】
尚,パスFF3−A2の間には,仮想セルが挿入されていないが,ゲートGATEの入力A2−出力Xの位置にパスFF3−A2についてのセットアップマージンを割り付けることができるので,そのパスへの仮想セルの挿入は不要である。
【0104】
前述の実施の形態における図9の回路例において,複数のセルA〜Mが存在しているが,それらとは別に,遅延セル挿入候補位置として仮想ポイントを設定することもできる。その場合は,各配線セグメントに仮想ポイントが設定される。つまり,パスFF1−A1,パスFF3−A2にそれぞれ仮想ポイントを設定し,更に,ゲートGATEの出力Xと分岐点の間に仮想ポイントを,分岐点とFF2の間,及び分岐点とFF4の間にそれぞれ仮想ポイントを設定すればよい。そして,これらの仮想ポイントにセットアップマージンを割り当てて,マージンマップを生成することができる。
【0105】
以上,実施の形態例をまとめると以下の付記の通りである。
【0106】
(付記1)集積回路のホールドエラー修正方法において,
レイアウトされた集積回路に対して,複数のタイミング制約において存在するホールドエラーが発生しているパス(以下ホールドエラーパス)と,各ホールドエラーパスにおけるホールドエラー値であって,修正により前記複数のタイミング制約を満足するホールドエラー値とを有するホールドエラーリストを生成する工程と,
複数のタイミング制約におけるセットアップマージンを検出し,前記ホールドエラーの修正によりセットアップエラーが発生する可能性のあるパス(以下セットアップエラーパス)と,各セットアップエラーパスにおけるセットアップマージンであって,前記複数のタイミング制約で共通するセットアップマージンとを有するセットアップマージンリストを生成する工程と,
前記集積回路の各パス上に,前記セットアップマージンリストのセットアップマージンを割り当てたセットアップマージンマップを生成する工程と,
前記セットアップマージンマップを参照して,前記割り当てられたセットアップマージンを満足する遅延量及び位置の範囲内で,前記ホールドエラーリストのホールドエラー値を修正する遅延バッファを挿入する遅延バッファ挿入工程とを有することを特徴とするホールドエラー修正方法。
【0107】
(付記2)付記1において,
前記挿入バッファ挿入工程において,前記挿入された遅延バッファの遅延量を挿入位置のセットアップマージンから減算して更新し,更に,当該更新したセットアップマージンマップを参照して,ホールドエラー値を修正する別の遅延バッファを挿入することを特徴とするホールドエラー修正方法。
【0108】
(付記3)付記2において,
前記セットアップマージンの更新において,前記減算される遅延バッファの遅延量は,遅延が大きい遅延特性における遅延量であることを特徴とするホールドエラー修正方法。
【0109】
(付記4)付記1において,
前記セットアップマージンリスト生成工程において,前記セットアップエラーパスの生成は,前記ホールドエラーパスの少なくとも一部を共有するパスを抽出することにより行われることを特徴とするホールドエラー修正方法。
【0110】
(付記5)付記1において,
前記セットアップマージンリスト生成工程において,前記セットアップエラーパスの生成は,前記ホールドエラー値の最大値以下のセットアップマージンを有するパスを抽出することにより行われることを特徴とするホールドエラー修正方法。
【0111】
(付記6)付記1において,
前記セットアップマージンリストの生成工程において,前記複数のタイミング制約に共通するセットアップマージンは,同じセットアップエラーパスにおける,前記複数のタイミング制約それぞれのセットアップマージンの中の最小値が選択されることを特徴とするホールドエラー修正方法。
【0112】
(付記7)付記1において,
前記セットアップマージンは,信号の立ち上がりと立ち下がりそれぞれについて検出されることを特徴とするホールドエラー修正方法。
【0113】
(付記8)付記7において,
前記セットアップマップにおけるセットアップマージンは,前記信号の立ち上がりと立ち下がりそれぞれのマージンの最小値が選択されることを特徴とするホールドエラー修正方法。
【0114】
(付記9)付記1において,
前記遅延バッファ挿入工程において,前記セットアップマップにおけるセットアップマージンは,演算により求められたセットアップマージンよりも所定の割合小さく設定されることを特徴とするホールドエラー修正方法。
【0115】
(付記10)付記1において,
前記ホールドエラーリスト生成工程において,前記複数のタイミング制約を満足するホールドエラーは,同じホールドエラーパスにおける,前記複数のタイミング制約それぞれのホールドエラー値の中の最大値が選択されることを特徴とするホールドエラー修正方法。
【0116】
(付記11)付記1において,
前記ホールドエラーリストは,遅延が大きい第1の遅延特性におけるホールドエラー値を有するリストと,前記第1の遅延特性より遅延が小さい第2の遅延特性におけるホールドエラー値を有するリストとを有することを特徴とするホールドエラー修正方法。
【0117】
(付記12)付記11において,
前記遅延バッファ挿入工程において,両リストのホールドエラー値を修正するように遅延バッファを挿入することを特徴とするホールドエラー修正方法。
【0118】
(付記13)付記12において,
前記遅延バッファ挿入工程において,第2の遅延特性におけるホールドエラー値を修正する遅延バッファの挿入を優先して行うことを特徴とするホールドエラー修正方法。
【0119】
(付記14)付記1において,
前記ホールドエラーリストは,信号の立ち上がりと立ち下がりそれぞれについて有することを特徴とするホールドエラー修正方法。
【0120】
(付記15)付記15において,
前記セットアップマージンマップも,前記信号の立ち上がりと立ち下がりそれぞれについて有し,
前記遅延バッファ挿入工程において,前記信号の立ち上がりについてのホールドエラーを修正するときは,前記立ち上がりについてのセットアップマージンマップを参照し,前記信号の立ち下がりについてのホールドエラーを修正するときは,前記立ち下がりについてのセットアップマージンマップを参照することを特徴とするホールドエラー修正方法。
【0121】
(付記16)付記1において,
前記ホールドエラーリストの生成工程において,信号の立ち上がりについてのホールドエラー値と信号の立ち下がりについてのホールドエラー値のうちの最大値を,前記ホールドエラー値として選択されることを特徴とするホールドエラー修正方法。
【0122】
(付記17)付記16において,
前記セットアップマージンマップのマージンは,信号の立ち上がりについてのマージンと信号の立ち下がりについてのマージンのうちの最小値が選択されることを特徴とするホールドエラー修正方法。
【0123】
(付記18)付記1において,
前記遅延バッファ挿入工程において,前記遅延バッファの挿入位置の選択を,複数のホールドエラーパスが重なっている位置を優先して行うことを特徴とするホールドエラー修正方法。
【0124】
(付記19)付記1において,
前記セットアップマージンマップの生成工程において,前記セットアップエラーパス上に存在する論理セルの位置に,前記セットアップマージンが割り当てられることを特徴とするホールドエラー修正方法。
【0125】
(付記20)付記1において,
前記セットアップマージンマップの生成工程において,前記セットアップエラーパス上に設定した仮想ポイントの位置に,前記セットアップマージンが割り当てられることを特徴とするホールドエラー修正方法。
【0126】
(付記21)集積回路のレイアウト方法において,
複数のタイミング制約のうち少なくとも最も厳しいタイミング制約においてセットアップタイムを満足するように,集積回路を構成するセル及び配線をレイアウトする工程と,
付記1乃至20のいずれかに記載したホールドエラー修正工程とを有し,
前記遅延バッファ挿入工程において,前記挿入された遅延バッファがレイアウトされることを特徴とするレイアウト方法。
【0127】
(付記22)集積回路のホールドエラー修正を行うコンピュータプログラムにおいて,
付記1乃至20のいずれかに記載したホールドエラー修正工程をコンピュータに実行させるコンピュータプログラム。
【0128】
(付記23)集積回路のレイアウトを行うコンピュータプログラムにおいて,複数のタイミング制約のうち少なくとも最も厳しいタイミング制約においてセットアップタイムを満足するように,集積回路を構成するセル及び配線をレイアウトする工程と,
付記1乃至20のいずれかに記載したホールドエラー修正工程とをコンピュータに実行させ,
前記遅延バッファ挿入工程において,前記挿入された遅延バッファをレイアウトすることを特徴とするレイアウトプログラム。
【0129】
【発明の効果】
以上,本発明によれば,集積回路のレイアウト工程において,複数のタイミング制約を満足するホールドタイムエラーを修正することができる。
【図面の簡単な説明】
【図1】セットアップタイムとホールドタイムを説明する図である。
【図2】本発明の課題を説明する図である。
【図3】本実施の形態におけるレイアウトシステム構成図である。
【図4】本実施の形態における第1のレイアウトプロセスのフローチャート図である。
【図5】本実施の形態における第2のレイアウトプロセスのフローチャート図である。
【図6】本実施の形態におけるホールドエラー修正方法のフローチャート図である。
【図7】本実施の形態におけるホールドタイムエラー修正プロセスの詳細フローチャート図である。
【図8】本実施の形態におけるホールドタイムエラー修正プロセスの詳細フローチャート図である。
【図9】修正プロセスの対象となる具体的な回路例を示す図である。
【図10】図9の回路例に対するホールドエラーリストを示す図である。
【図11】図9の回路例に対するセットアップマージンリストを示す図である。
【図12】パスFF1−FF2のセットアップマージンを割り当てた時のセットアップマージンマップを示す図である。
【図13】パスFF3−FF4のセットアップマージンを割り当てた時のセットアップマージンマップを示す図である。
【図14】パスFF1−FF4,FF3−FF2のセットアップマージンを割り当てた時のセットアップマージンマップを示す図である。
【図15】パスFF1−FF4のホールドエラー−100psを修正するためにセルを挿入した時のセットアップマージンマップの図である。
【図16】アップデート後のセットアップマージンマップを示す図である。
【図17】遅延セルNを挿入したことに伴うアップデート後のセットアップマージンリストF18とホールドエラーリストF14を示す図である。
【図18】パスFF3−FF4のホールドエラー−100psを修正するためにセルを挿入した時のセットアップマージンマップの図である。
【図19】アップデート後のセットアップマージンマップを示す図である。
【図20】遅延セルPを挿入したことに伴うアップデート後のセットアップマージンリストF18とホールドエラーリストF14を示す図である。
【図21】パスFF1−FF2のホールドエラー−20psを修正するためにセルを挿入した時のセットアップマージンマップの図である。
【図22】遅延セルQの挿入に伴うアップデート後のセットアップマージンマップF20を示す図である。
【図23】立ち上がり時と立ち下がり時のホールドエラーを有するホールドエラーリストの例である。
【図24】挿入する遅延セル数を最小化する方法を示す図である。
【図25】パス上にセルが存在しない回路例を示す図である。
【図26】仮想セルを設定した後の回路図である。
【符号の説明】
10 演算ユニット
11 プログラム群
12 ファイル群
P10 レイアウトプログラム
P14 ホールドエラーリスト生成ツール
P16 セットアップエラーパス抽出ツール
P18 セットアップマージンリスト作成ツール
P20 セットアップマージンマップ作成ツール
P22 ホールドエラー修正ツール
F14 ホールドエラーリスト
F16 セットアップエラーパスリスト
F18 セットアップマージンリスト
F20 セットアップマージンマップ
Claims (17)
- 集積回路のレイアウトをコンピュータに実行させるレイアウト方法において,
複数の動作モードに対応する複数のタイミング制約においてセットアップタイムを満足するように前記集積回路を構成するセル及び配線をレイアウトする工程と,
前記レイアウトされた集積回路に対して,前記複数のタイミング制約において存在するホールドエラーが発生しているパス(以下ホールドエラーパス)と,各ホールドエラーパスにおけるホールドエラー値であって,修正により前記複数のタイミング制約を満足するホールドエラー値とを有するホールドエラーリストを生成する工程と,
前記複数のタイミング制約におけるセットアップマージンを検出し,前記複数のタイミング制約を満足するホールドエラー値の修正によりセットアップエラーが発生する可能性のあるパス(以下セットアップエラーパス)と,各セットアップエラーパスにおけるセットアップマージンであって,前記複数のタイミング制約で共通するセットアップマージンとを有するセットアップマージンリストを生成する工程と,
前記集積回路の各パス上に,前記セットアップマージンリストのセットアップマージンを割り当てたセットアップマージンマップを生成する工程と,
前記セットアップマージンマップを参照して,前記割り当てられたセットアップマージンを満足する遅延量及び位置の範囲内で,前記ホールドエラーリストのホールドエラー値を修正する遅延バッファを挿入し当該挿入された遅延バッファをレイアウトする遅延バッファ挿入工程とを有することを特徴とするレイアウト方法。 - 請求項1において,
前記挿入バッファ挿入工程において,前記挿入された遅延バッファの遅延量を挿入位置のセットアップマージンから減算して更新し,更に,当該更新したセットアップマージンマップを参照して,ホールドエラー値を修正する別の遅延バッファを挿入することを特徴とするレイアウト方法。 - 請求項1において,
前記セットアップマージンリスト生成工程において,前記セットアップエラーパスの生成は,前記ホールドエラーパスの少なくとも一部を共有するパスを抽出することにより行われることを特徴とするレイアウト方法。 - 請求項1において,
前記セットアップマージンリスト生成工程において,前記セットアップエラーパスの生成は,前記ホールドエラー値の最大値以下のセットアップマージンを有するパスを抽出することにより行われることを特徴とするレイアウト方法。 - 請求項1において,
前記セットアップマージンリストの生成工程において,前記複数のタイミング制約に共通するセットアップマージンは,同じセットアップエラーパスにおける,前記複数のタイミング制約それぞれのセットアップマージンの中の最小値が選択されることを特徴とするレイアウト方法。 - 請求項1において,
前記セットアップマージンは,信号の立ち上がりと立ち下がりそれぞれについて検出されることを特徴とするレイアウト方法。 - 請求項1において,
前記遅延バッファ挿入工程において,前記セットアップマップにおけるセットアップマージンは,演算により求められたセットアップマージンよりも所定の割合小さく設定されることを特徴とするレイアウト方法。 - 請求項1において,
前記ホールドエラーリスト生成工程において,前記複数のタイミング制約を満足するホールドエラーは,同じホールドエラーパスにおける,前記複数のタイミング制約それぞれのホールドエラー値の中の最大値が選択されることを特徴とするレイアウト方法。 - 請求項1において,
前記ホールドエラーリストは,遅延が大きい第1の遅延特性におけるホールドエラー値を有するリストと,前記第1の遅延特性より遅延が小さい第2の遅延特性におけるホールドエラー値を有するリストとを有することを特徴とするレイアウト方法。 - 請求項1において,
前記ホールドエラーリストは,信号の立ち上がりと立ち下がりそれぞれについて有することを特徴とするレイアウト方法。 - 請求項1において,
前記ホールドエラーリストの生成工程において,信号の立ち上がりについてのホールドエラー値と信号の立ち下がりについてのホールドエラー値のうちの最大値を,前記ホールドエラー値として選択されることを特徴とするレイアウト方法。 - 請求項1において,
前記遅延バッファ挿入工程において,前記遅延バッファの挿入位置の選択を,複数のホールドエラーパスが重なっている位置を優先して行うことを特徴とするレイアウト方法。 - 請求項1において,
前記セットアップマージンマップの生成工程において,前記セットアップエラーパス上に設定した仮想ポイントの位置に,前記セットアップマージンが割り当てられることを特徴とするレイアウト方法。 - 請求項1において,
前記セットアップマージンマップの生成工程において,前記セットアップエラーパス上に設定した仮想ポイントの位置に,前記セットアップマージンが割り当てられることを特徴とするレイアウト方法。 - 請求項1において,
前記集積回路を構成するセル及び配線をレイアウトする工程では,前記複数のタイミング制約のうち少なくとも最も厳しいタイミング制約においてセットアップタイムを満足するように,集積回路を構成するセル及び配線をレイアウトすることを特徴とするレイアウト方法。 - 集積回路のレイアウトを行うコンピュータプログラムにおいて,
請求項1乃至15のいずれかに記載したレイアウト方法をコンピュータに実行させるコンピュータプログラム。 - コンピュータを利用して集積回路のレイアウトを実行するレイアウト装置において,
複数の動作モードに対応する複数のタイミング制約においてセットアップタイムを満足するように前記集積回路を構成するセル及び配線をレイアウトするレイアウト手段と,
前記レイアウトされた集積回路に対して,前記複数のタイミング制約において存在するホールドエラーが発生しているパス(以下ホールドエラーパス)と,各ホールドエラーパ スにおけるホールドエラー値であって,修正により前記複数のタイミング制約を満足するホールドエラー値とを有するホールドエラーリストを生成するホールドエラーリスト生成手段と,
前記複数のタイミング制約におけるセットアップマージンを検出し,前記複数のタイミング制約を満足するホールドエラー値の修正によりセットアップエラーが発生する可能性のあるパス(以下セットアップエラーパス)と,各セットアップエラーパスにおけるセットアップマージンであって,前記複数のタイミング制約で共通するセットアップマージンとを有するセットアップマージンリストを生成するセットアップマージンリスト生成手段と,
前記集積回路の各パス上に,前記セットアップマージンリストのセットアップマージンを割り当てたセットアップマージンマップを生成するセットアップマージンマップ生成手段と,
前記セットアップマージンマップを参照して,前記割り当てられたセットアップマージンを満足する遅延量及び位置の範囲内で,前記ホールドエラーリストのホールドエラー値を修正する遅延バッファを挿入し当該挿入された遅延バッファをレイアウトする遅延バッファ挿入手段とを有することを特徴とするレイアウト装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001359399A JP4237434B2 (ja) | 2001-11-26 | 2001-11-26 | 集積回路のホールドタイムエラー修正方法及びその修正プログラム |
US10/270,111 US6990646B2 (en) | 2001-11-26 | 2002-10-15 | Hold time error correction method and correction program for integrated circuits |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001359399A JP4237434B2 (ja) | 2001-11-26 | 2001-11-26 | 集積回路のホールドタイムエラー修正方法及びその修正プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003162556A JP2003162556A (ja) | 2003-06-06 |
JP2003162556A5 JP2003162556A5 (ja) | 2005-06-16 |
JP4237434B2 true JP4237434B2 (ja) | 2009-03-11 |
Family
ID=19170418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001359399A Expired - Fee Related JP4237434B2 (ja) | 2001-11-26 | 2001-11-26 | 集積回路のホールドタイムエラー修正方法及びその修正プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6990646B2 (ja) |
JP (1) | JP4237434B2 (ja) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6701505B1 (en) * | 2001-11-30 | 2004-03-02 | Sequence Design, Inc. | Circuit optimization for minimum path timing violations |
US6708312B1 (en) * | 2002-08-22 | 2004-03-16 | Silicon Integrated Systems Corp. | Method for multi-threshold voltage CMOS process optimization |
US7191416B2 (en) * | 2003-01-27 | 2007-03-13 | Stmicroelectronics Limited | System and method for modifying integrated circuit hold times |
US7216318B1 (en) | 2003-04-29 | 2007-05-08 | Cadence Design Systems, Inc. | Method and system for false path analysis |
US7587690B1 (en) * | 2003-04-29 | 2009-09-08 | Cadence Design Systems, Inc. | Method and system for global coverage analysis |
US7131088B2 (en) * | 2003-08-25 | 2006-10-31 | Legend Design Technology, Inc. | Reliability based characterization using bisection |
US7152217B1 (en) * | 2004-04-20 | 2006-12-19 | Xilinx, Inc. | Alleviating timing based congestion within circuit designs |
US7278126B2 (en) * | 2004-05-28 | 2007-10-02 | Qualcomm Incorporated | Method and apparatus for fixing hold time violations in a circuit design |
US7653828B2 (en) * | 2004-05-28 | 2010-01-26 | Sap Ag | Timeout manager |
JP2006155056A (ja) | 2004-11-26 | 2006-06-15 | Fujitsu Ltd | タイミングエラー修正方法 |
KR100688525B1 (ko) * | 2005-01-26 | 2007-03-02 | 삼성전자주식회사 | 이벤트 구동 스위치 레벨 시뮬레이션 방법 및 시뮬레이터 |
JP2007164427A (ja) * | 2005-12-13 | 2007-06-28 | Matsushita Electric Ind Co Ltd | 多電源集積回路のレイアウト設計方法 |
US7673268B2 (en) * | 2006-05-01 | 2010-03-02 | Freescale Semiconductor, Inc. | Method and system for incorporating via redundancy in timing analysis |
US7590957B2 (en) * | 2006-08-24 | 2009-09-15 | Lsi Corporation | Method and apparatus for fixing best case hold time violations in an integrated circuit design |
JP2008152329A (ja) * | 2006-12-14 | 2008-07-03 | Nec Electronics Corp | 回路解析方法、及び回路解析プログラム、回路シミュレーション装置 |
US8261222B2 (en) * | 2007-11-26 | 2012-09-04 | Nec Corporation | Methods for analyzing and adjusting semiconductor device, and semiconductor system |
US7861200B2 (en) * | 2008-03-24 | 2010-12-28 | Freescale Semiconductor, Inc. | Setup and hold time characterization device and method |
JP5148434B2 (ja) * | 2008-09-22 | 2013-02-20 | ルネサスエレクトロニクス株式会社 | ホールドタイムエラーの収束方法、収束装置、及び収束プログラム |
JP2010160580A (ja) * | 2009-01-06 | 2010-07-22 | Fujitsu Ltd | ホールドエラー修正方法、装置及びプログラム |
US8156287B2 (en) * | 2009-01-15 | 2012-04-10 | International Business Machines Corporation | Adaptive data prefetch |
JP5292164B2 (ja) * | 2009-04-16 | 2013-09-18 | 株式会社日立製作所 | 故障診断方法および故障診断システム |
US8316334B2 (en) * | 2010-02-04 | 2012-11-20 | Qualcomm Incorporated | Segment and bipartite graph based apparatus and method to address hold violations in static timing |
JP2011164684A (ja) * | 2010-02-04 | 2011-08-25 | Toshiba Corp | 設計装置、設計方法、及び設計プログラム |
JP5609364B2 (ja) * | 2010-07-22 | 2014-10-22 | 富士通株式会社 | 集積回路設計装置、集積回路設計方法、及び集積回路設計プログラム |
US8453090B2 (en) | 2010-10-21 | 2013-05-28 | Global Unichip Corp. | System and method for optimizing logic timing |
US8984464B1 (en) * | 2011-11-21 | 2015-03-17 | Tabula, Inc. | Detailed placement with search and repair |
CN103777084B (zh) * | 2012-10-25 | 2016-04-27 | 英业达科技有限公司 | 信号时间边限分析方法 |
US9171112B2 (en) * | 2012-12-07 | 2015-10-27 | Synopsys, Inc. | Semiconductor hold time fixing |
TWI493370B (zh) | 2013-03-05 | 2015-07-21 | Univ Nat Chiao Tung | 工程變更之保持時間修復方法 |
CN104881507B (zh) | 2014-02-28 | 2018-01-19 | 格芯公司 | 修复电路中的保持时间违例的方法和装置 |
US10372867B2 (en) * | 2014-09-02 | 2019-08-06 | Synopsys, Inc. | In-design real-time electrical impact verification flow |
KR102187640B1 (ko) | 2014-10-22 | 2020-12-08 | 삼성전자주식회사 | 타이밍 분석기의 타이밍 정합 방법 및 그것을 이용한 집적회로 설계 방법 |
CN105787213B (zh) * | 2016-04-01 | 2019-02-05 | 中国人民解放军国防科学技术大学 | 一种保持时间违反的修复方法 |
US10262956B2 (en) * | 2017-02-27 | 2019-04-16 | Cisco Technology, Inc. | Timing based camouflage circuit |
JP2019036199A (ja) * | 2017-08-18 | 2019-03-07 | 富士通株式会社 | 情報処理装置、タイミングエラー解析プログラム及びタイミングエラー解析方法 |
US11836425B2 (en) * | 2020-02-18 | 2023-12-05 | Synopsys, Inc. | Engineering change orders with consideration of adversely affected constraints |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100521289B1 (ko) * | 1997-08-20 | 2005-10-17 | 가부시키가이샤 히타치세이사쿠쇼 | 트랜지스터 회로의 타이밍 특성 추출 방법, 타이밍 특성라이브러리를 기억한 기억 매체, lsi의 설계 방법, 및게이트 추출 방법 |
US6311148B1 (en) * | 1998-09-09 | 2001-10-30 | Sun Microsystems, Inc. | Method for determining static flip-flop setup and hold times |
JP4251692B2 (ja) * | 1998-10-09 | 2009-04-08 | 富士通マイクロエレクトロニクス株式会社 | 集積回路設計方法 |
JP2001188819A (ja) * | 2000-01-04 | 2001-07-10 | Toshiba Microelectronics Corp | ホールド違反改善方法、半導体集積回路、及びコンピュータ読み出し可能な記憶媒体 |
US6546531B1 (en) * | 2000-10-06 | 2003-04-08 | Sun Microsystems, Inc. | Automatic delay element insertion system for addressing holdtime problems |
US6637014B2 (en) * | 2001-03-06 | 2003-10-21 | Nec Corporation | Crosstalk mitigation method and system |
US6640330B1 (en) * | 2001-04-24 | 2003-10-28 | Artisan Components, Inc. | System and method for setup and hold characterization in integrated circuit cells |
US6745376B2 (en) * | 2001-09-17 | 2004-06-01 | International Business Machines Corporation | Several improvements for timing diagrams |
US6594805B1 (en) * | 2001-11-13 | 2003-07-15 | Lsi Logic Corporation | Integrated design system and method for reducing and avoiding crosstalk |
-
2001
- 2001-11-26 JP JP2001359399A patent/JP4237434B2/ja not_active Expired - Fee Related
-
2002
- 2002-10-15 US US10/270,111 patent/US6990646B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003162556A (ja) | 2003-06-06 |
US6990646B2 (en) | 2006-01-24 |
US20030101399A1 (en) | 2003-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4237434B2 (ja) | 集積回路のホールドタイムエラー修正方法及びその修正プログラム | |
US7010763B2 (en) | Method of optimizing and analyzing selected portions of a digital integrated circuit | |
US7996812B2 (en) | Method of minimizing early-mode violations causing minimum impact to a chip design | |
WO2008106347A1 (en) | System and method for sign-off timing closure of a vlsi chip | |
JP5883676B2 (ja) | Lsi設計方法 | |
US7069528B2 (en) | System and method for reducing timing violations due to crosstalk in an integrated circuit design | |
US6145116A (en) | Layout design apparatus | |
US8719746B1 (en) | Reduction of metal fill insertion time in integrated circuit design process | |
US6988266B2 (en) | Method of transforming variable loops into constant loops | |
US8881089B1 (en) | Physical synthesis optimization with fast metric check | |
US7148135B2 (en) | Method of designing low-power semiconductor integrated circuit | |
JP4015807B2 (ja) | タイミングドリブンレイアウト手法 | |
US8196083B1 (en) | Incremental placement and routing | |
JP2008305132A (ja) | 半導体集積回路の設計方法及び設計支援装置 | |
JP2005123537A (ja) | 半導体装置及び製造方法 | |
US7480886B2 (en) | VLSI timing optimization with interleaved buffer insertion and wire sizing stages | |
US8312403B2 (en) | Method of achieving convergence of hold time error, device and program therefor | |
JP2005149273A (ja) | 半導体集積回路のフロアプラン装置及びフロアプラン方法 | |
US8065642B1 (en) | Isolation verification for implementing modular redundancy within programmable integrated circuits | |
US6505340B2 (en) | Circuit synthesis method | |
US7930675B2 (en) | Method and system for implementing timing analysis and optimization of an electronic design based upon extended regions of analysis | |
US10776543B2 (en) | Automated region based optimization of chip manufacture | |
US6532584B1 (en) | Circuit synthesis method | |
US7493580B2 (en) | Critical path estimating program, estimating apparatus, estimating method, and integrated circuit designing program | |
JP2004280439A (ja) | クロストークノイズ検出方法、並びに半導体集積回路の設計方法及び設計検証方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040915 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080722 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080731 |
|
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: 20081216 |
|
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: 20081218 |
|
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: 20111226 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111226 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111226 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111226 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121226 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121226 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131226 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |