JP4803078B2 - 半導体集積回路のレイアウト設計方法およびレイアウト設計用プログラム - Google Patents

半導体集積回路のレイアウト設計方法およびレイアウト設計用プログラム Download PDF

Info

Publication number
JP4803078B2
JP4803078B2 JP2007056758A JP2007056758A JP4803078B2 JP 4803078 B2 JP4803078 B2 JP 4803078B2 JP 2007056758 A JP2007056758 A JP 2007056758A JP 2007056758 A JP2007056758 A JP 2007056758A JP 4803078 B2 JP4803078 B2 JP 4803078B2
Authority
JP
Japan
Prior art keywords
wiring
information
buffer
insertion point
hold
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
JP2007056758A
Other languages
English (en)
Other versions
JP2008217642A (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 Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007056758A priority Critical patent/JP4803078B2/ja
Publication of JP2008217642A publication Critical patent/JP2008217642A/ja
Application granted granted Critical
Publication of JP4803078B2 publication Critical patent/JP4803078B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、コンピュータを用いる半導体集積回路のレイアウト設計方法、および、コンピュータを半導体集積回路のレイアウト設計装置として機能させるための半導体集積回路のレイアウト設計用プログラム、より詳しくは、半導体集積回路のレイアウト設計工程に含まれるホールド・エラーを解消するためのバッファの挿入手法の改良に関する。
図13は従来の半導体集積回路のレイアウト設計方法の一例を示すフローチャートである。本例はコンピュータを用いて実行されるものであり、本例では、まず、レイアウト設計対象の半導体集積回路のネットリスト1に基づいて初期配置・配線を行い、レイアウト情報2を作成する(ステップP1)。
次に、レイアウト情報2に基づいて、配線抵抗および配線容量の抽出(RC抽出)と遅延計算と静的タイミング解析(STA)とを行い、RC情報3とホールド・エラー・パス/スラック(ホールド・スラックおよびセットアップ・スラック)情報4を作成する(ステップP2)。
次に、ホールド・エラー・パス/スラック情報4に基づいて、ホールド・エラー有無の判定を行い(ステップP3)、ホールド・エラーが無い場合(ステップP3でNOの場合)には、レイアウト設計を終了する。
これに対して、ホールド・エラーがある場合(ステップP3でYESの場合)には、RC情報3と遅延ライブラリ5に格納されているセルの遅延情報に基づいて、ホールド・エラーを解消するためのバッファの挿入ポイントの探索および決定と、バッファ挿入による遅延調整を行う(ステップP4)。なお、本例においては、バッファ挿入ポイントの探索は、配置スペースやセットアップ・クリティカル・パスなどを考慮せずに行われる。
次に、ECO(engineering change order)リスト6を作成し(ステップP5)、ECOリスト6に基づいて、ネットリスト・配置・配線の修正を行い、レイアウト情報2を更新する(ステップP6)。以下、ステップP3において、「ホールド・エラー無し」となるまで、ステップP4〜P6、P2、P3を繰り返す。
特開2000−269347号公報 特開2000−20567号公報 特開2001−168199号公報
図13に示す従来の半導体集積回路のレイアウト設計方法では、ホールド・エラーを解消するためのバッファの挿入ポイントの探索は、配置スペースやセットアップ・クリティカル・パス等を考慮せずに行われるため、バッファを挿入することができない箇所をバッファ挿入ポイントに決定してしまい、これを原因として、後述するように、新たにホールド・エラーやセットアップ・エラーが発生し、何度もECOレイアウトを繰り返さなければならない場合があるという問題点があった。
図14は図13に示す従来の半導体集積回路のレイアウト設計方法が有する問題点を具体的に説明するための図であり、初期配置・配線(ステップP1)後のレイアウト例の一部分を示しており、図14(A)はホールド・エラーを解消するためのバッファを挿入する前、図14(B)はホールド・エラーを解消するためのバッファを挿入した後を示している。
図14中、9は配線、10は配線9から分岐した配線、11はデータ出力端子が配線9に接続された論理セル(以下、単に「セル」という)、12はデータ入力端子が配線9に接続されたフリップ・フロップ、13はデータ入力端子が配線10に接続されたフリップ・フロップ、14は配線9とは別配線経路のセル、15、16はバッファを挿入できない箇所、17はバッファを挿入できる箇所、18は挿入されたバッファである。
ここで、図14(A)に示すレイアウト例は、配線9がホールド・エラー・パス、配線10がセットアップ・クリティカル・パスになっている例である。このレイアウト例の場合には、セル14を他の位置に移動して、セル14の元の位置にバッファを挿入すれば、フリップ・フロップ12のホールド・エラーについては解消することができるが、このようにすると、セル14の移動先によっては、セル14を含む配線経路が新たにホールド・エラー・パスとなってしまう。
また、図14(B)に示すように、バッファを挿入できる箇所17にバッファ18を挿入すると、フリップ・フロップ12のホールド・エラーについては解消することができるが、配線10がセットアップ・クリティカル・パスとなっているので、配線10が新たにセットアップ・エラーになってしまう。
ここで、図13に示す従来の半導体集積回路のレイアウト設計方法では、ホールド・エラーを解消するためのバッファの挿入ポイントの探索は、配置スペースやセットアップ・クリティカル・パスなどを考慮せずに行われるため、図14(A)に示すレイアウト例の場合、セル14の位置をバッファ挿入ポイントに決定し、ECOレイアウトでセル14を新たにホールド・エラー・パスを発生させる位置に移動し、あるいは、図14(B)に示すように、新たにセットアップ・エラーを発生させてしまう位置17にバッファ18を配置してしまう場合が発生する。
なお、特許文献1には、適切なピン配置のバッファを挿入することによりセットアップ・エラーの修正を行い、再配線後のタイミング制約に違反する配線数を減少させるレイアウト設計方法が記載されている。しかしながら、特許文献1に記載のレイアウト設計方法では、配線経路上に存在するバッファ挿入ポイントを探すだけなので、配線経路上にバッファ挿入ポイントがないと、セットアップ・エラーを改善することができないという問題点がある。
また、特許文献2には、レイアウト設計後のタイミング制約違反の修正において、セルの配置移動量を削減するレイアウト設計方法が記載されている。しかしながら、特許文献2に記載のレイアウト設計方法では、セットアップ・エラーを修正するために挿入した重複セルの配置が基点のため、重複セルがどちらもクリティカルな場合は、移動することができないという問題点がある。
また、特許文献3には、バッファ挿入範囲内の全ての領域を対象として、既存素子と重ならない位置の座標を検索し、検索した位置にバッファを配置することにより遅延規格を満たす修正を行うことができるレイアウト設計方法が記載されている。しかしながら、特許文献3に記載のレイアウト設計方法では、探索範囲は広がるが、既存素子と重ならない位置に挿入ポイントがない場合には、遅延エラーを改善することができないという問題点がある。
本発明は、かかる点に鑑み、ホールド・エラー・パス上にホールド・エラー解消のためのバッファの配置スペースがない場合や、ホールド・エラー・パス上にホールド・エラー解消のためのバッファ配置スペースはあるが、セットアップ・エラーを招いてしまう場合には、他のセルの移動や配線の二重化や配線経路の変更により、新たにホールド・エラーやセットアップ・エラーを発生させないバッファ挿入ポイントを探索することを可能にしてECOレイアウトの繰り返しを回避することができるようにし、半導体集積回路のレイアウト設計を効率的に行うことができるようにした半導体集積回路のレイアウト設計方法および半導体集積回路のレイアウト設計用プログラムを提供することを目的とする。
本発明の半導体集積回路のレイアウト設計方法は、半導体集積回路のネットリストに基づいて、初期配置・配線手段により初期配置・配線を行い、レイアウト情報を作成する工程と、前記レイアウト情報に基づいて、RC抽出・遅延計算・静的タイミング解析手段により配線抵抗および配線容量の抽出と遅延計算と静的タイミング解析とを行い、配線抵抗・配線容量情報およびホールド・エラー・パス/スラック情報を作成する工程と、前記ホールド・エラー・パス/スラック情報に基づいて、ホールド・エラー有無判定手段によりホールド・エラー有無の判定を行い、ホールド・エラーがある場合、前記レイアウト情報および前記ホールド・エラー・パス/スラック情報に基づいて、ペナルティ情報作成手段によりホールド・エラー解消のためのバッファの挿入ポイントの探索に必要なペナルティ情報を作成する工程と、前記ペナルティ情報に基づいて、バッファ挿入ポイント探索・決定・遅延調整手段により前記挿入ポイントの探索および決定と遅延調整を行う工程を有するものである。
本発明の半導体集積回路のレイアウト設計用プログラムは、コンピュータに、半導体集積回路のネットリストに基づいて、初期配置・配線を行い、レイアウト情報を作成する工程と、前記レイアウト情報に基づいて、配線抵抗および配線容量の抽出と遅延計算と静的タイミング解析とを行い、配線抵抗・配線容量情報およびホールド・エラー・パス/スラック情報を作成する工程と、前記ホールド・エラー・パス/スラック情報に基づいて、ホールド・エラー有無の判定を行い、ホールド・エラーがある場合、前記レイアウト情報および前記ホールド・エラー・パス/スラック情報に基づいて、ホールド・エラー解消のためのバッファの挿入ポイントの探索に必要なペナルティ情報を作成する工程と、前記ペナルティ情報に基づいて、前記挿入ポイントの探索および決定と遅延調整を行う工程を行わせるものである。
本発明によれば、初期配置・配線の結果、ホールド・エラーがある場合、レイアウト情報およびホールド・エラー・パス/スラック情報に基づいて、ホールド・エラー解消のためのバッファの挿入ポイントの探索に必要なペナルティ情報が作成され、このペナルティ情報に基づいて、ホールド・エラーを解消するためのバッファの挿入ポイントの探索が行われる。
この結果、ホールド・エラー・パス上にホールド・エラー解消のためのバッファの配置スペースがない場合や、ホールド・エラー・パス上にホールド・エラー解消のためのバッファ配置スペースはあるが、セットアップ・エラーを招いてしまう場合には、他のセルの移動や配線の二重化や配線経路の変更を検討することが可能となり、新たにホールド・エラーやセットアップ・エラーを発生させないバッファ挿入ポイントを探索することが可能となる。したがって、ECOレイアウトの繰り返しを回避することができ、半導体集積回路のレイアウト設計を効率的に行うことができる。
図1は本発明の半導体集積回路のレイアウト設計方法の一実施形態を示すフローチャートであり、本発明の半導体集積回路のレイアウト設計方法の一実施形態は、コンピュータを用いて実行されるものである。
本発明の半導体集積回路のレイアウト設計方法の一実施形態においては、まず、レイアウト設計対象の半導体集積回路のネットリスト21に基づいて、初期配置・配線手段により初期配置・配線を行い、レイアウト情報22を作成する(ステップS1)。
次に、レイアウト情報22に基づいて、RC抽出・遅延計算・静的タイミング解析手段により配線抵抗および配線容量の抽出(RC抽出)と遅延計算と静的タイミング解析(STA)とを行い、RC情報23とホールド・エラー・パス/スラック(ホールド・スラックおよびセットアップ・スラック)情報24を作成する(ステップS2)。
次に、ホールド・エラー・パス/スラック情報24に基づいて、ホールド・エラー有無判定手段によりホールド・エラー有無の判定を行い(ステップS3)、ホールド・エラーが無い場合(ステップS3でNOの場合)には、レイアウト設計を終了する。
これに対して、ホールド・エラーがある場合(ステップS3でYESの場合)には、レイアウト情報22およびホールド・エラー・パス/スラック情報24に基づいて、ペナルティ情報作成手段により、ホールド・エラーを解消するためのバッファの挿入ポイントの探索に必要なペナルティ情報を作成する(ステップS4)。
次に、RC情報23と、遅延ライブラリ25に格納されているセルの遅延情報と、ペナルティ情報に基づいて、バッファ挿入ポイント探索・決定・遅延調整手段により、ホールド・エラーを解消するためのバッファの挿入ポイントの探索および決定と、バッファ挿入による遅延調整を行う(ステップS5)。
ここで、ホールド・エラーを解消するためのバッファの挿入にあたり、配線の二重化や配線経路の変更を行った場合には、配線経路情報作成手段により配線経路情報26を作成する(ステップS6)。また、ホールド・エラーを解消するためのバッファの挿入にあたり、別配線経路のセルを移動した場合には、移動セル配置情報作成手段により移動セル配置情報27を作成する(ステップS7)。そして、挿入バッファ配置情報作成手段およびECOリスト作成手段により挿入バッファ配置情報28およびECOリスト29を作成する(ステップS8、S9)。
次に、配線経路情報26と、移動セル配置情報27と、挿入バッファ配置情報28と、ECOリスト29とに基づいて、ネットリスト・配置・配線修正手段によりネットリスト・配置・配線の修正を行い、レイアウト情報22を更新する(ステップS10)。以下、ステップS3において、「ホールド・エラー無し」となるまで、ステップS4〜S10、S2、S3を繰り返す。
ここで、ステップS4で作成するペナルティ情報は、ホールド・エラー・パスのエンド・ポイントからスタート・ポイントまでをインスタンスとノード(RCラダーに基づいたポイント)とに分解し、これらインスタンスおよびノードについての情報で構成する。
本実施形態では、インスタンスについての情報は、インスタンス名に配置座標とホールド・スラックとセットアップ・スラックの各情報を付加したものとし、ノードについての情報は、ノード名にノード位置、配線層、挿入面積、別配線経路の他のセル名、その移動可能範囲(ホールド・エラーおよびセットアップ・エラーを発生させることなくセルを移動させることができる範囲)、分岐数、分岐先のワースト・ホールド・スラック、分岐先のワースト・セットアップ・スラックの各情報を付加したものとする。
また、ペナルティ情報を記述する構文は、インスタンスについては、たとえば、「インスタンス名(配置座標x,y,ホールド・スラック,セットアップ・スラック)」とし、ノードについては、たとえば、「ノード名(ノード位置x1,y1,配線層,挿入面積,別配線経路の他のセル名(移動可能範囲mx1,my1,mx2,my2)、分岐数,分岐先のワースト・ホールド・スラック、分岐先のワースト・セットアップ・スラック)」とする。
図2は初期配置・配線された半導体集積回路の一例の一部分のレイアウト例を示す図である。図2中、「EndA」、「inst1A」、「StartA」はインスタンス名、「node1」〜「node9」はノード名であり、31〜33は配線、34はデータ入力端子が配線31に接続されたフリップ・フロップ、35はデータ出力端子が配線31に接続されたフリップ・フロップ、36は配線31に挿入されたセル、37〜43は配線31とは別配線経路の他のセルである。
また、散点模様を付しているノードは、バッファ挿入面積がないノードであり、この例では、ノード5およびノード9はバッファ挿入面積があるノードとされている。このレイアウト例の場合には、ステップS4において、図3に示すようなペナルティ情報を作成する。
また、ステップS5で実行するバッファ挿入ポイントの決定は、予め決めておいた優先順位(第1優先〜第5優先)に従って行うものとする。図4〜図8は本実施形態で使用するバッファ挿入ポイントの優先順位を説明するための図である。
ここで、バッファ挿入ポイントの第1優先は、ペナルティ情報をエンド・ポイントからスタート・ポイントに向けてトレースしなくとも、他のセルの移動、配線の二重化又は配線経路の変更を行うことなしにバッファ挿入ポイントを確保することができる場合であり、この場合には、当該確保することができるバッファ挿入ポイントを第1優先のバッファ挿入ポイントとする。
図4はバッファ挿入ポイントの第1優先を説明するための図である。図4(A)はバッファ挿入前、図4(B)はバッファ挿入後を示しており、図4(A)は図14(A)に示す回路部分において、セル14が存在せず、ノード1にバッファ挿入面積がある場合である。
図4(A)に示すレイアウト例の場合、ノード1にはバッファ挿入面積があるので、ペナルティ情報をエンド・ポイントからスタート・ポイントに向けてトレースしなくとも、他のセルの移動、配線の二重化又は配線経路の変更を行うことなしにノード1をバッファ挿入ポイントとして確保し、図4(B)に示すように、ノード1にバッファ18を挿入することができ、このようにすることにより、フリップ・フロップ12のホールド・エラーを解消することができる。
また、バッファ挿入ポイントの第2優先は、ペナルティ情報をエンド・ポイントからスタート・ポイントに向けてトレースすると、他のセルの移動、配線の二重化又は配線経路の変更を行うことなしにバッファ挿入ポイントを確保することができる場合であり、この場合には、当該確保することができるバッファ挿入ポイントを第2優先のバッファ挿入ポイントとする。
図5はバッファ挿入ポイントの第2優先を説明するための図である。図5(A)はバッファ挿入前、図5(B)はバッファ挿入後を示しており、図5(A)は図14(A)に示す回路部分において、配線10およびフリップ・フロップ13が存在しない場合である。
図5(A)に示すレイアウト例の場合、ノード5にはバッファ挿入面積があるので、ペナルティ情報をエンド・ポイントからスタート・ポイントに向けてトレースすると、他のセルの移動、配線の二重化又は配線経路の変更を行うことなしにノード5をバッファ挿入ポイントとして確保し、図5(B)に示すように、ノード5にバッファ18を挿入することができ、このようにすることにより、フリップ・フロップ12のホールド・エラーを解消することができる。
また、バッファ挿入ポイントの第3優先は、他のセルを移動すると、バッファ挿入ポイントを確保することができる場合であり、この場合には、当該確保することができるバッファ挿入ポイントを第3優先のバッファ挿入ポイントとする。
図6はバッファ挿入ポイントの第3優先を説明するための図である。図6(A)はバッファ挿入前、図6(B)はバッファ挿入後を示しており、図6(A)は図14(A)に示す回路部分とその周辺部を示している。太線46は、別配線経路のセル14をセットアップ・エラーもホールド・エラーも発生させることなく移動させることができる範囲を示している。
図6(A)に示すレイアウト例の場合、セル14の移動可能範囲内にセル14を移動させることができる場所47があるので、図6(B)に示すように、セル14を場所47に移動すると、ノード1をバッファ挿入ポイントとして確保し、ノード1にバッファ18を挿入することができ、このようにすることにより、フリップ・フロップ12のホールド・エラーを解消することができる。
また、バッファ挿入ポイントの第4優先は、配線を二重化すると、バッファを挿入することができるポイントを確保することができる場合であり、この場合には、当該確保することができるバッファ挿入ポイントを第4優先のバッファ挿入ポイントとする。
図7はバッファ挿入ポイントの第4優先を説明するための図である。図7(A)はバッファ挿入前、図7(B)はバッファ挿入後を示しており、図7(A)は図14(A)に示す回路部分と同一の回路部分を示している。
図7(A)に示すレイアウト例の場合において、別配線経路のセル14を移動させることができる場所が無い場合には、図7(B)に示すように、ノード5にバッファ18を挿入し、新たに配線48を設けて配線の二重化を行うと、フリップ・フロップ12のホールド・エラーを解消することができる。
また、バッファ挿入ポイントの第5優先は、配線経路を変更すると、バッファを挿入することができるポイントを確保することができる場合であり、この場合には、当該確保することができるバッファ挿入ポイントを第5優先のバッファ挿入ポイントとする。
図8はバッファ挿入ポイントの第5優先を説明するための図である。図8(A)はバッファ挿入前、図8(B)はバッファ挿入後を示しており、図8(A)は図14(A)に示す回路部分と同一の回路部分を示している。
図8(A)に示すレイアウト例の場合において、別配線経路のセル14を移動させることができる場所がなく、かつ、図7(B)に示すように配線の二重化を行うことができない場合には、図8(B)に示すように、ノード5にバッファ18を挿入し、配線10の配線経路を変更すると、フリップ・フロップ12のホールド・エラーを解消することができる。
ここで、第1優先又は第2優先でバッファ挿入ポイントを決定した場合には、その後、RCラダー上の決定したバッファ挿入ポイントにバッファを挿入し、ノード分割を行う。そして、この場合には、既存配線の変更がほとんどないようにバッファを挿入しているので、バッファ挿入前のRC値を使用して遅延計算を行い、ホールド・エラーが改善されることをチェックした後、挿入バッファの配置情報の作成(ステップS8)とECOリストの作成(ステップS9)を行う。
また、第3優先でバッファ挿入ポイントを決定した場合には、その後、別配線経路の他のセルの移動先の配置情報の作成(ステップS7)を行い、RCラダー上の決定したバッファ挿入ポイントにバッファを挿入し、ノード分割する。そして、この場合には、既存配線の変更がほとんどないようにバッファを挿入しているので、バッファ挿入前のRC値を使用して遅延計算を行い、ホールド・エラーが改善されることをチェックした後、挿入バッファの配置情報の作成(ステップS8)とECOリスト作成(ステップS9)を行う。
また、第4優先でバッファ挿入ポイントを決定した場合には、その後、配線の二重化による配線経路情報を作成する(ステップS6)。配線経路情報に関するRCラダーは、バッファ挿入ポイントにバッファを挿入する前のRCラダーとし、そのRC値による遅延値を計算し、セットアップ・タイミングおよびホールド・タイミングにエラーがないかをチェックする。
そして、RCラダー上の決定したバッファ挿入ポイントにバッファを挿入し、ノード分割をする。次に、分岐を移動したノードについては、後述するように遅延計算を行い、その他についてはバッファ挿入前のRC値を使用して遅延計算を行う。次に、ホールド・エラーが改善されることをチェックした後、挿入バッファの配置情報作成(ステップS8)、ECOリスト作成(ステップS9)を行う。
また、第5優先でバッファ挿入ポイントを決定した場合には、その後、配線をマンハッタン長ベースで変更した配線経路情報を作成する(ステップS6)。配線経路情報に関するRCラダーは、バッファ挿入ポイントにバッファを挿入する前のRCラダーとし、そのRC値による遅延値を計算し、セットアップ・タイミングおよびホールド・タイミングにエラーがないかをチェックする。
そして、RCラダー上の決定したバッファ挿入ポイントにバッファを挿入し、ノード分割をする。次に、分岐を移動したノードについては、後述するように遅延計算を行い、その他についてはバッファ挿入前のRC値を使用して遅延計算を行う。次に、ホールド・エラーが改善されることをチェックした後、挿入バッファの配置情報の作成(ステップS8)とECOリスト作成(ステップS9)を行う。
図9は第1優先、第2優先又は第3優先でバッファ挿入ポイントを決定した場合のバッファ挿入後の遅延計算を説明するための図である。図9(A)はバッファ挿入前、図9(B)はバッファ挿入後を示しており、50、51はセル、52は挿入したバッファ、A、B、C、D、D1、Eはノード、Rab、Rbc、Rcd、Rdeは配線抵抗、Ca、Cb、Cc、Cd、Cd1、Ceは各ノードの容量である。
本実施形態では、第1優先、第2優先又は第3優先でバッファ挿入ポイントを決定した場合、バッファの挿入前の既存配線のRC抽出情報(RCラダー)のノードにバッファを挿入することで、バッファ52を挿入した後の配線修正によるRC値の誤差を低減し、RC抽出を行わずに、バッファ挿入後の遅延計算を行う。
例えば、第1優先、第2優先又は第3優先でノードDをバッファ挿入ポイントに決定した場合には、セル50とバッファ52との間のRC形状は、バッファ挿入前のノードAとノードDとの間のRC形状を反映させる。また、バッファ52とセル51との間のRC形状は、バッファ挿入前のノードDとノードEとの間のRC形状を反映させる。但し、新たに出来るノードD1の容量Cd1は0とする。
図10は第4優先でバッファ挿入ポイントを決定した場合のバッファ挿入後の遅延計算を説明するための図である。図10(A)はバッファ挿入前、図10(B)はバッファ挿入後を示しており、54〜56はセル、57は挿入したバッファ、A、B、B1、C、D、E、F、B´、C´、D´はノード、Rab、Rbc、Rcd、Rde、Rdfは配線抵抗、Ca、Cb、Cb1、Cc、Cd、Cd´、Ce、Cfは各ノードの容量である。
本実施形態では、第4優先でバッファ挿入ポイントを決定した場合、RCラダー分の配線遅延は、バッファが挿入される前のRCラダーとほぼ同じになるように複製するので、それを使用して計算する。
例えば、第4優先でノードBをバッファ挿入ポイントに決定した場合には、セル54とセル56との間のRC形状は、バッファ挿入前のノードAとノードFとの間のRC形状を反映させる。また、バッファ57とセル55との間のRC形状は、バッファ挿入前のノードBとノードEとの間のRC形状を反映させる。但し、新たに出来るノードB1の容量Cb1は0とする。
また、配線を付け替えたセルへの配線接続が削除されるノードにおいては、元の配線の分岐までを削除して、当該ノードの容量値C´をC´=C−C/nで計算する。但し、Cは元々の容量値、nはノード分岐数である。したがって、図10のレイアウト例では、バッファ挿入後のノードDの容量Cd´は、Cd´=Cd−Cd/3とする。
図11は第5優先でバッファ挿入ポイントを決定した場合のバッファ挿入後の遅延計算を説明するための図である。図11(A)はバッファ挿入前、図11(B)はバッファ挿入後を示しており、60〜62はセル、63は挿入したバッファ、A、B、B1、C、D、E、Fはノード、Rab、Rbc、Rcd、Rde、Rdf、Rbf´は配線抵抗、Ca、Cb、Cb1、Cc、Cd、Cd´、Ce、Cfは各ノードの容量である。
本実施形態では、第5優先でバッファ挿入ポイントを決定した場合、分岐付け替えによる配線経路変更でのRCラダー分の配線遅延は、マンハッタン長ベースの遅延にするか、又は、ワイヤ・ロード(wire Load)モデルでの配線遅延を使用して計算する。
例えば、第5優先で、図11(B)に示すようにノードBをバッファ挿入ポイントに決定し、配線経路を変更した場合には、セル60とバッファ63との間のRC形状は、バッファ挿入前のノードAとノードBとの間のRC形状を反映させる。また、太線64で示す配線形状を変えた部分については、配線長が短ければ、RCラダーについては、RC=0としても問題はないが、実際には長くなる場合もあるので、配線長(マンハッタン)に応じて、マージンを加えるか、または、ワイヤ・ロードモデルを使用する。
また、バッファ63とセル61との間のRC形状は、バッファ挿入前のノードBとノードEとの間のRC形状を反映させる。但し、新たに出来るノードB1の容量Cb1は0とする。また、配線を付け替えたセルへの配線接続が削除されるノードにおいては、元の配線の分岐までを削除して、当該ノードの容量値C´をC´=C−C/nで計算する。但し、Cは元々の容量値、nはノード分岐数である。したがって、図11のレイアウト例では、バッファ挿入後のノードDの容量Cd´は、Cd´=Cd−Cd/3とする。
図12は本発明の半導体集積回路のレイアウト設計方法の一実施形態を実施するためのコンピュータを示す図である。図12中、66はCPU(central processing unit)、67はCPU66が演算に使用するメモリ、68は入力装置、69は表示装置、70はネットワーク接続装置、71は外部記憶装置である。
外部記憶装置71において、72は本発明の半導体集積回路のレイアウト設計用プログラムが格納されるプログラム格納領域、73は本発明の半導体集積回路のレイアウト設計方法の一実施形態で作成される各種の情報が格納される情報格納領域である。
プログラム格納領域72には、初期配置・配線プログラム74、RC抽出・遅延計算・STAプログラム75、ホールド・エラー有無判定プログラム76、ペナルティ情報作成プログラム77、バッファ挿入ポイント探索・決定・遅延調整プログラム78、配線経路情報作成プログラム79、移動セル配置情報作成プログラム80、挿入バッファ配置情報作成プログラム81、ECOリスト作成プログラム82、ネットリスト・配置・配線修正プログラム83等が格納される。
また、情報格納領域73には、ネットリスト21、レイアウト情報22、RC情報23、ホールド・エラー・パス/スラック情報24、遅延ライブラリ25、配線経路情報26、移動セル配置情報27、挿入バッファ配置情報28およびECOリスト29等が格納される。
初期配置・配線プログラム74は、CPU66を初期配置・配線手段として機能させ、CPU66に初期配置・配線工程(ステップS1)を実行させるものである。RC抽出・遅延計算・静的タイミング解析プログラム75は、CPU66をRC抽出・遅延計算・静的タイミング解析手段として機能させ、CPU66にRC抽出・遅延計算・静的タイミング解析(ステップS2)を実行させるものである。
ホールド・エラー有無判定プログラム76は、CPU66をホールド・エラー有無判定手段として機能させ、CPU66にホールド・エラー判定工程(ステップS3)を実行させるものである。ペナルティ情報作成プログラム77は、CPU66をペナルティ情報作成手段として機能させ、CPU66にペナルティ情報作成工程(ステップS4)を実行させるものである。
バッファ挿入ポイント探索・決定・遅延調整プログラム78は、CPU66をバッファ挿入ポイント探索・決定・遅延調整手段として機能させ、CPU66にバッファ挿入ポイント探索・決定・遅延調整工程(ステップS5)を実行させるものである。配線経路情報作成プログラム79は、CPU66を配線経路情報作成手段として機能させ、CPU66に配線経路情報作成工程(ステップS6)を実行させるものである。
移動セル配置情報作成プログラム80は、CPU66を移動セル配置情報作成手段として機能させ、CPU66に移動セル配置情報作成工程(ステップS7)を実行させるものである。挿入バッファ配置情報作成プログラム81は、CPU66を挿入バッファ配置情報作成手段として機能させ、CPU66に挿入バッファ配置情報作成工程(ステップS8)を実行させるものである。
ECOリスト作成プログラム82は、CPU66をECOリスト作成手段として機能させ、CPU66にECOリスト作成工程(ステップS9)を実行させるものである。ネットリスト・配置・配線修正プログラム83は、CPU66をネットリスト・配置・配線修正手段として機能させ、CPU66にネットリスト・配置・配線修正工程(ステップS10)を実行させるものである。
以上のように、本発明の半導体集積回路のレイアウト設計方法の一実施形態によれば、初期配置・配線の結果、ホールド・エラーが発生している場合、レイアウト情報22およびホールド・エラー・パス/スラック情報24に基づいて、ホールド・エラー解消のためのバッファの挿入ポイントの探索に必要なペナルティ情報を作成し、このペナルティ情報に基づいて、ホールド・エラーを解消するためのバッファの挿入ポイントの探索が行われる。
そして、ペナルティ情報は、ホールド・エラー・パスのエンド・ポイントからスタート・ポイントまでをインスタンスとノードに分解し、インスタンスについては、インスタンス名に配置座標とホールド・スラックとセットアップ・スラックの情報を付加し、ノードについては、ノード名にノード位置、配線層、挿入面積、別配線経路の他のセル名、その移動可能範囲、分岐数、分岐先のワースト・ホールド・スラック、分岐先のワースト・セットアップ・スラックの各情報を付加したものとしている。
この結果、ホールド・エラー・パス上にホールド・エラー解消のためのバッファの配置スペースがない場合や、ホールド・エラー・パス上にホールド・エラー解消のためのバッファ配置スペースはあるが、セットアップ・エラーを招いてしまう場合には、別配線経路の他のセルの移動や配線の二重化や配線経路の変更を検討することが可能となり、新たにホールド・エラーやセットアップ・エラーを発生させないバッファ挿入ポイントを探索することが可能となる。したがって、ECOレイアウトの繰り返しを回避することができ、半導体集積回路のレイアウト設計を効率的に行うことができる。
本発明の半導体集積回路のレイアウト設計方法の一実施形態を示すフローチャートである。 初期配置・配線された半導体集積回路の一例の一部分のレイアウト例を示す図である。 本発明の半導体集積回路のレイアウト設計方法の一実施形態で作成するペナルティ情報の記述例を示す図である。 本発明の半導体集積回路のレイアウト設計方法の一実施形態で実行するバッファの挿入ポイントの決定工程で使用されるバッファ挿入ポイントの優先順位(第1優先)を説明するための図である。 本発明の半導体集積回路のレイアウト設計方法の一実施形態で実行するバッファの挿入ポイントの決定工程で使用されるバッファ挿入ポイントの優先順位(第2優先)を説明するための図である。 本発明の半導体集積回路のレイアウト設計方法の一実施形態で実行するバッファの挿入ポイントの決定工程で使用されるバッファ挿入ポイントの優先順位(第3優先)を説明するための図である。 本発明の半導体集積回路のレイアウト設計方法の一実施形態で実行するバッファの挿入ポイントの決定工程で使用されるバッファ挿入ポイントの優先順位(第4優先)を説明するための図である。 本発明の半導体集積回路のレイアウト設計方法の一実施形態で実行するバッファの挿入ポイントの決定工程で使用されるバッファ挿入ポイントの優先順位(第5優先)を説明するための図である。 本発明の半導体集積回路のレイアウト設計方法の一実施形態において、第1優先、第2優先又は第3優先でバッファ挿入ポイントを決定した場合のバッファ挿入後の遅延計算を説明するための図である。 本発明の半導体集積回路のレイアウト設計方法の一実施形態において、第4優先でバッファ挿入ポイントを決定した場合のバッファ挿入後の遅延計算を説明するための図である。 本発明の半導体集積回路のレイアウト設計方法の一実施形態において、第5優先でバッファ挿入ポイントを決定した場合のバッファ挿入後の遅延計算を説明するための図である。 本発明の半導体集積回路のレイアウト設計方法の一実施形態を実施するためのコンピュータを示す図である。 従来の半導体集積回路のレイアウト設計方法の一例を示すフローチャートである。 図13に示す従来の半導体集積回路のレイアウト設計方法が有する問題点を具体的に説明するための図である。
符号の説明
1…ネットリスト
2…レイアウト情報
3…RC情報
4…ホールド・エラー・パス/スラック情報
5…遅延ライブラリ
6…ECOリスト
9、10…配線
11〜13…フリップ・フロップ
14…別配線経路のセル
15、16…バッファを挿入できない箇所
17…バッファを挿入できる箇所
18…バッファ
21…ネットリスト
22…レイアウト情報
23…RC情報
24…ホールド・エラー・パス/スラック情報
25…遅延ライブラリ
26…配線経路情報
27…移動セル配置情報
28…挿入バッファ配置情報
29…ECOリスト
31〜33…配線
34、35…フリップ・フロップ
36…セル
37〜43…別配線経路のセル
47…別配線経路のセルを移動させることができる箇所
48…配線
50、51…セル
52…バッファ
54〜56…セル
57…バッファ
60〜62…セル
63…バッファ

Claims (2)

  1. コンピュータが、半導体集積回路のネットリストに基づいて、初期配置・配線を行い、レイアウト情報を作成する工程と、
    前記コンピュータが、前記レイアウト情報に基づいて、配線抵抗および配線容量の抽出と遅延計算と静的タイミング解析とを行い、配線抵抗・配線容量情報およびホールド・エラー・パス/スラック情報を作成する工程と、
    前記コンピュータが、前記ホールド・エラー・パス/スラック情報に基づいて、ホールド・エラー有無の判定を行い、ホールド・エラーがある場合、前記レイアウト情報および前記ホールド・エラー・パス/スラック情報に基づいて、ホールド・エラー解消のためのバッファの挿入ポイントの探索に必要なペナルティ情報を作成する工程と、
    前記コンピュータが、前記配線抵抗・配線容量情報、セルの遅延情報および前記ペナルティ情報に基づいて、前記挿入ポイントの探索および決定と、前記バッファの挿入による遅延調整を行う工程を有し、
    前記ペナルティ情報は、
    ホールド・エラー・パスのエンド・ポイントからスタート・ポイントまでをインスタンスとノードとに分解し、
    前記インスタンスについては、インスタンス名に配置座標、ホールド・スラックおよびセットアップ・スラックの情報を付加し、
    前記ノードについては、ノード名にノード位置、配線層、挿入面積、別配線経路の他のセル名、前記他のセルの移動可能範囲、分岐数、分岐先のホールド・スラックおよびセットアップ・スラックの情報を付加したものであり、
    前記挿入ポイントの決定は、
    前記ペナルティ情報に基づいて行われ、
    前記ペナルティ情報を前記エンド・ポイントから前記スタート・ポイントに向けてトレースしなくとも、前記他のセルの移動、配線の二重化又は配線経路の変更を行うことなしに前記挿入ポイントを確保できる場合を第1優先、
    前記ペナルティ情報を前記エンド・ポイントから前記スタート・ポイントに向けてトレースすると、前記他のセルの移動、配線の二重化又は配線経路の変更を行うことなしに前記挿入ポイントを確保できる場合を第2優先、
    前記他のセルを移動すると、前記挿入ポイントを確保できる場合を第3優先、
    配線を二重化すると、前記挿入ポイントを確保できる場合を第4優先、
    配線経路を変更すると、前記挿入ポイントを確保できる場合を第5優先として行われること
    を特徴とする半導体集積回路のレイアウト設計方法。
  2. コンピュータに、
    半導体集積回路のネットリストに基づいて、初期配置・配線を行い、レイアウト情報を作成する工程と、
    前記レイアウト情報に基づいて、配線抵抗および配線容量の抽出と遅延計算と静的タイミング解析とを行い、配線抵抗・配線容量情報およびホールド・エラー・パス/スラック情報を作成する工程と、
    前記ホールド・エラー・パス/スラック情報に基づいて、ホールド・エラー有無の判定を行い、ホールド・エラーがある場合、前記レイアウト情報および前記ホールド・エラー・パス/スラック情報に基づいて、ホールド・エラー解消のためのバッファの挿入ポイントの探索に必要なペナルティ情報を作成する工程と、
    前記配線抵抗・配線容量情報、セルの遅延情報および前記ペナルティ情報に基づいて、前記挿入ポイントの探索および決定と、前記バッファの挿入による遅延調整を行う工程を実行させ、
    前記ペナルティ情報は、
    ホールド・エラー・パスのエンド・ポイントからスタート・ポイントまでをインスタンスとノードとに分解し、
    前記インスタンスについては、インスタンス名に配置座標、ホールド・スラックおよびセットアップ・スラックの情報を付加し、
    前記ノードについては、ノード名にノード位置、配線層、挿入面積、別配線経路の他のセル名、前記他のセルの移動可能範囲、分岐数、分岐先のホールド・スラックおよびセットアップ・スラックの情報を付加したものであり、
    前記挿入ポイントの決定は、
    前記ペナルティ情報に基づいて行われ、
    前記ペナルティ情報を前記エンド・ポイントから前記スタート・ポイントに向けてトレースしなくとも、前記他のセルの移動、配線の二重化又は配線経路の変更を行うことなしに前記挿入ポイントを確保できる場合を第1優先、
    前記ペナルティ情報を前記エンド・ポイントから前記スタート・ポイントに向けてトレースすると、前記他のセルの移動、配線の二重化又は配線経路の変更を行うことなしに前記挿入ポイントを確保できる場合を第2優先、
    前記他のセルを移動すると、前記挿入ポイントを確保できる場合を第3優先、
    配線を二重化すると、前記挿入ポイントを確保できる場合を第4優先、
    配線経路を変更すると、前記挿入ポイントを確保できる場合を第5優先として行われること
    を特徴とする半導体集積回路のレイアウト設計用プログラム。
JP2007056758A 2007-03-07 2007-03-07 半導体集積回路のレイアウト設計方法およびレイアウト設計用プログラム Expired - Fee Related JP4803078B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007056758A JP4803078B2 (ja) 2007-03-07 2007-03-07 半導体集積回路のレイアウト設計方法およびレイアウト設計用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007056758A JP4803078B2 (ja) 2007-03-07 2007-03-07 半導体集積回路のレイアウト設計方法およびレイアウト設計用プログラム

Publications (2)

Publication Number Publication Date
JP2008217642A JP2008217642A (ja) 2008-09-18
JP4803078B2 true JP4803078B2 (ja) 2011-10-26

Family

ID=39837578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007056758A Expired - Fee Related JP4803078B2 (ja) 2007-03-07 2007-03-07 半導体集積回路のレイアウト設計方法およびレイアウト設計用プログラム

Country Status (1)

Country Link
JP (1) JP4803078B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10902168B2 (en) 2017-04-28 2021-01-26 Samsung Electronics Co., Ltd. Computer-implemented method and computing system for designing integrated circuit by considering timing delay
US11861281B2 (en) 2017-04-28 2024-01-02 Samsung Electronics Co., Ltd. Computer-implemented method and computing system for designing integrated circuit by considering timing delay

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8438518B2 (en) 2009-03-03 2013-05-07 Nec Corporation Apparatus for designing semiconductor integrated circuit, method of designing semiconductor integrated circuit, and program for designing semiconductor integrated circuit

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3262099B2 (ja) * 1999-03-18 2002-03-04 日本電気株式会社 バッファレイアウト設計装置および方法
JP4224541B2 (ja) * 2002-03-20 2009-02-18 富士通マイクロエレクトロニクス株式会社 自動配置配線方法、装置及びプログラム
JP2004172373A (ja) * 2002-11-20 2004-06-17 Matsushita Electric Ind Co Ltd クロストーク修正方法
JP2005258657A (ja) * 2004-03-10 2005-09-22 Toshiba Corp クロックレイアウトシステム、及びクロックレイアウト方法
JP2006004994A (ja) * 2004-06-15 2006-01-05 Fujitsu Ltd 半導体集積回路のレイアウト処理におけるタイミング調整方法
JP2006310469A (ja) * 2005-04-27 2006-11-09 Toshiba Microelectronics Corp 半導体集積回路装置のレイアウト方法、そのレイアウトシステムおよびそのレイアウトプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10902168B2 (en) 2017-04-28 2021-01-26 Samsung Electronics Co., Ltd. Computer-implemented method and computing system for designing integrated circuit by considering timing delay
US11475195B2 (en) 2017-04-28 2022-10-18 Samsung Electronics Co., Ltd. Computer-implemented method and computing system for designing integrated circuit by considering timing delay
US11861281B2 (en) 2017-04-28 2024-01-02 Samsung Electronics Co., Ltd. Computer-implemented method and computing system for designing integrated circuit by considering timing delay

Also Published As

Publication number Publication date
JP2008217642A (ja) 2008-09-18

Similar Documents

Publication Publication Date Title
US10418354B2 (en) Integrated circuit and computer-implemented method of manufacturing the same
US8769452B2 (en) Parasitic extraction in an integrated circuit with multi-patterning requirements
JP4655240B2 (ja) タイミング解析支援装置
KR102373540B1 (ko) 표준 셀들을 포함하는 집적 회로, 이를 제조하기 위한 방법 및 컴퓨팅 시스템
KR102514044B1 (ko) 집적 회로 및 집적 회로의 설계 방법
US8701064B2 (en) Timing error removing method and design support apparatus
JP5609364B2 (ja) 集積回路設計装置、集積回路設計方法、及び集積回路設計プログラム
US9443053B2 (en) System for and method of placing clock stations using variable drive-strength clock drivers built out of a smaller subset of base cells for hybrid tree-mesh clock distribution networks
US10678991B2 (en) Integrated device and method of forming the same
US8627247B1 (en) Systems and methods for fixing pin mismatch in layout migration
JP4799311B2 (ja) エレクトロマイグレーション検証方法
JP4803078B2 (ja) 半導体集積回路のレイアウト設計方法およびレイアウト設計用プログラム
JP5444985B2 (ja) 情報処理装置
JP2015166981A (ja) レイアウト検証方法、検証装置、及び検証プログラム
US20120174052A1 (en) Routing
CN113343613A (zh) 考虑被不利影响的约束的工程变更命令
KR20170094744A (ko) 집적 회로 및 상기 집적 회로의 제조를 위한 컴퓨터 구현 방법
US11675726B2 (en) Interconnect repeater planning and implementation flow for abutting designs
JP2005235804A (ja) 半導体装置の設計方法及びプログラム
JP2001267429A (ja) レイアウト設計装置およびレイアウト設計方法
JP2009134439A (ja) ソフトマクロを用いたレイアウト設計方法、ソフトマクロのデータ構造及びソフトマクロライブラリの作成方法
JP5187217B2 (ja) 半導体レイアウトシステム、方法、及び、プログラム
JP2009205449A (ja) マクロ内端子配線を考慮したネットリストによって信号の遅延時間を予測する設計方法、及び、プログラム
JP2011095816A (ja) 半導体装置の設計方法及び半導体装置の設計装置
CN115310401A (zh) 一种集成电路版图满足交叉对称模拟约束的布线方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110411

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: 20110712

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: 20110725

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: 20140819

Year of fee payment: 3

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