(57)【要約】【課題】レイアウト設計が収束するまでの時間を短縮することができる、半導体集積回路のレイアウト方法を提供する。【解決手段】レイアウトされた半導体集積回路において制約違反をしているパスを検出し、制約違反を解消するためにパスの経路の途中に挿入するバッファの挿入可能範囲４１を決定し、挿入可能範囲４１に既に配置されているセルについて、配線長と、挿入可能範囲の近傍の空きスペースに仮想的に移動させた場合の制約違反の有無を評価し、評価の結果に基づきバッファの挿入位置を決定し、バッファの挿入位置に既に配置されている前記セルを挿入可能範囲の近傍の空きスペースに移動し、バッファを挿入位置に配置し、バッファ及び前記移動したセルを再配線する。【選択図】図１
2015053001.tif 000002
【特許請求の範囲】
【請求項１】
レイアウトされた半導体集積回路において制約違反をしているパスを検出し、
前記制約違反を解消するために前記パスの経路の途中に挿入するバッファの挿入可能範囲を決定し、
前記挿入可能範囲に既に配置されている複数のセルを組み合わせて一つのセル群とし、前記セル群または前記挿入可能範囲に既に配置されているセルのそれぞれについて、トータルの配線長と、それぞれ移動距離が最短である前記挿入可能範囲の近傍の空きスペースに仮想的に移動させた場合の制約違反の有無を評価し、
前記評価の結果において、タイミングスラックの値が最も大きいセル群の位置を前記バッファの挿入位置として決定し、
前記バッファの挿入位置に既に配置されている前記セルを前記挿入可能範囲の近傍の空きスペースに移動し、
前記バッファを挿入位置に配置し、
前記バッファ及び前記移動したセルを再配線する、
半導体集積回路のレイアウト方法。
【請求項２】
レイアウトされた半導体集積回路において制約違反をしているパスを検出し、
前記制約違反を解消するために前記パスの経路の途中に挿入するバッファの挿入可能範囲を決定し、
前記挿入可能範囲に既に配置されているセルについて、配線長と、前記挿入可能範囲の近傍の空きスペースに仮想的に移動させた場合の制約違反の有無を評価し、
前記評価の結果に基づき前記バッファの挿入位置を決定し、
前記バッファの挿入位置に既に配置されている前記セルを前記挿入可能範囲の近傍の空きスペースに移動し、
前記バッファを挿入位置に配置し、
前記バッファ及び前記移動したセルを再配線する、
半導体集積回路のレイアウト方法。
【請求項３】
前記バッファの挿入位置は、前記挿入可能範囲の近傍の空きスペースに仮想的に移動させた場合にタイミングスラックの値が最も大きいセルの位置とする、請求項２に記載の半導体集積回路のレイアウト方法。
【請求項４】
前記挿入可能範囲に既に配置されているセルは、それぞれ移動距離が最短である前記挿入可能範囲の近傍の空きスペースに仮想的に移動させた場合の制約違反の有無を評価する、請求項２又は請求項３に記載の半導体集積回路のレイアウト方法。
【請求項５】
レイアウトされた半導体集積回路において制約違反をしているパスを検出し、
前記制約違反を解消するために前記パスの経路の途中に挿入するバッファの挿入可能範囲を決定し、
前記挿入可能範囲に既に配置されているセルについて、配線長と、前記挿入可能範囲の近傍の空きスペースに仮想的に移動させた場合の制約違反の有無を評価し、
前記評価の結果に基づき前記バッファの挿入位置を決定し、
前記バッファの挿入位置に既に配置されている前記セルを前記挿入可能範囲の近傍の空きスペースに移動し、
前記バッファを挿入位置に配置し、
前記バッファ及び前記移動したセルを再配線する処理をコンピュータに実行させることを特徴とする、半導体集積回路のレイアウトプログラム。
【請求項６】
前記バッファの挿入位置は、前記挿入可能範囲の近傍の空きスペースに仮想的に移動させた場合にタイミングスラックの値が最も大きいセルの位置とする、請求項５に記載の半導体集積回路のレイアウトプログラム。
【請求項７】
前記挿入可能範囲に既に配置されているセルは、それぞれ移動距離が最短である前記挿入可能範囲の近傍の空きスペースに仮想的に移動させた場合の制約違反の有無を評価する、請求項５又は請求項６に記載の半導体集積回路のレイアウトプログラム。
【請求項８】
前記挿入可能範囲に既に配置されている複数のセルを組み合わせて一つのセル群とし、前記セル群または前記挿入可能範囲に既に配置されているセルのそれぞれについて、トータルの配線長と、それぞれ移動距離が最短である前記挿入可能範囲の近傍の空きスペースに仮想的に移動させた場合の制約違反の有無を評価する、請求項５乃至請求項８に記載の半導体集積回路のレイアウトプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、半導体集積回路のレイアウト方法、及び、半導体集積回路のレイアウトプログラムに関する。
【背景技術】
【０００２】
一般的に、半導体集積回路のレイアウト設計においては、全てのセルを配置して詳細な配線を完了した後に、サインオフのためのタイミングなどの解析が行われる。該解析では、セットアップタイム、ホールドタイム、最大容量、最大スルーレートなど、各種の制約条件を回路が満たしているか否かがチェックされる。従来、これらの制約条件を満たしておらず違反箇所がある場合は、当該違反箇所にバッファを挿入することで、回路の最適化を行っていた。具体的には、まず、バッファを挿入することで制約違反を解消することができる領域（以下、推奨バッファ配置領域と示す）を求め、この推奨バッファ配置領域内のセルが配置されていない部分（以下、スペースと示す）にバッファを挿入していた。
【０００３】
バッファを挿入して制約違反を解消するためには、既存のセル位置と配線を極力変更しないことが重要となる。既存のセルや配線が大きく変更されると、それまでの工程で最適化されてきたタイミング、容量、スルーレートが大きく崩れる場合があり、設計が収束に至らない（もしくは、収束に至るまでに多大な時間を要する）可能性があるためである。しかしながら、推奨バッファ配置領域内に、バッファを配置するために十分な大きさのスペースが存在しない場合、推奨バッファ配置領域外のスペースにバッファを配置しなくてはならず、バッファを配置しただけでは制約違反を解消することができなくなってしまう。このような場合、新たなバッファの付加や、配線の最適化を何度も実施する必要があり、設計が収束するまで多大な時間を要するという問題があった。また、この従来の方法では、冗長なバッファが多数配置されることになり、チップサイズが増大したり、消費電力が増加したりするという問題もあった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２０５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本実施形態は、レイアウト設計が収束するまでの時間を短縮することができる、半導体集積回路のレイアウト方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本実施形態の半導体集積回路のレイアウト方法は、レイアウトされた半導体集積回路において制約違反をしているパスを検出し、前記制約違反を解消するために前記パスの経路の途中に挿入するバッファの挿入可能範囲を決定し、前記挿入可能範囲に既に配置されているセルについて、配線長と、前記挿入可能範囲の近傍の空きスペースに仮想的に移動させた場合の制約違反の有無を評価し、前記評価の結果に基づき前記バッファの挿入位置を決定し、前記バッファの挿入位置に既に配置されている前記セルを前記挿入可能範囲の近傍の空きスペースに移動し、前記バッファを挿入位置に配置し、前記バッファ及び前記移動したセルを再配線する。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に係わる半導体集積回路のレイアウト方法を用いたレイアウト設計装置の構造を説明する概略ブロック図。
【図２】推奨バッファ配置領域４１の一例を説明するための概略回路レイアウト図。
【図３】評価表３１の一例を説明する図。
【発明を実施するための形態】
【０００８】
以下、図面を参照して実施形態を説明する。
【０００９】
図１は、本発明の実施形態に係わる半導体集積回路のレイアウト方法を用いたレイアウト設計装置の構造を説明する概略ブロック図である。図１に示すように、本実施形態のレイアウト設計装置は、セルの配置や配線などのレイアウト設計を行う配置・配線部２と、レイアウト設計情報を解析して、タイミングなどの制約違反の有無を検出するタイミング解析部３と、既存のレイアウト設計情報を極力保ったまま、制約違反を解消するためにレイアウト設計をやりなおすＥＣＯ（Engineering Change Order）部１とから構成されている。
【００１０】
配置・配線部２には、素子間を接続するネットの一覧を記述した設計データであるネットリスト２１と、回路の部品群であるライブラリ２２とが入力される。配置・配線部２で設計された回路レイアウトは、配置配線データ２３に出力され保存される。
【００１１】
タイミング解析部３は、配置・配線部２で設計された回路レイアウトを、配置配線データ２３から読み出し、タイミングなどの各種解析が行われる。具体的には、配線容量抽出、遅延計算、静的タイミング解析（ＳＴＡ）、などが行われ、タイミング情報（セットアップタイム、ホールドタイム）、配線容量、スルーレートなどが算出される。算出された値は、回路が満たさなくてはならない制約条件と比較され、制約違反の有無がチェックされる。
【００１２】
ＥＣＯ部１では、設計された回路レイアウトにおいて制約違反が生じていると、タイミング解析部３で判定された場合に、レイアウトの再設計が行われる。タイミング違反、配線容量違反、スルーレート違反を解消する手段としては、一般的には、違反が生じている回路箇所にバッファを挿入する手段が用いられる。従って、本実施形態のＥＣＯ部１においても、バッファの挿入によって制約違反の解消を行うこととする。
【００１３】
ＥＣＯ部１は、評価解析部１１と、移動セル決定部１２と、配置変更部１３と、ＥＣＯ配線部１４とから構成されている。評価解析部１１は、制約違反を解消することが可能なバッファの挿入範囲（推奨バッファ配置領域）を決定し、該領域内に既に配置されているセルを、推奨バッファ配置領域の近傍領域に移動させた場合の影響を評価する。なお、評価解析部１１での評価結果は、評価表３１として出力される。移動セル決定部１２は、評価解析部１１での評価結果に基づき、バッファを挿入する位置と、該位置に既に配置されているセルの移動先を決定する。配置変更部１３は、移動セル決定部１２での決定事項に従って、既に配置されているセルと挿入するバッファとを配置する。ＥＣＯ配線部１４は、既に配置されていたセルを移動したり、新たにバッファが配置されたりすることによって結線が必要となる箇所の配線を行う。
【００１４】
次に、図１、図２、図３を用いて、本実施形態に係わる半導体集積回路のレイアウト手順について説明する。図２は、推奨バッファ配置領域４１の一例を説明するための概略回路レイアウト図である。また、図３は、評価表３１の一例を説明する図である。
【００１５】
まず、配置・配線部２において、ネットリスト２１及びライブラリ２２のデータを用い、セルや配線を配置して回路レイアウトを設計する。設計された回路レイアウトは、配置配線データ２３に出力され保存される。次に、タイミング解析部３において、配置・配線部２で設計された回路レイアウトについて、タイミングなどの各種解析を行う。解析の結果、制約違反がないと判定された場合、回路レイアウト設計を終了する。
【００１６】
一方、回路レイアウトに制約違反が存在すると判定された場合、ＥＣＯ部１において制約違反の箇所について、レイアウトの再設計が行われる。例えば、配置・配線部２において図２に示すようなセル配置が行われており、ドライバとレシーバとを接続するパスで、タイミング制約違反が存在する場合について説明する。
【００１７】
まず、評価解析部１１において、配置配線データ２３から、既に設計されている回路レイアウトを読み込む。次に、制約違反箇所である、ドライバとレシーバとを接続するパスを抽出する。続いて、バッファを配置することで制約違反を解消することができる、バッファの配置範囲（推奨バッファ配置領域）を決定する。すなわち、ドライバとレシーバ以外の既配置セルはすべて無視し、ドライバとレシーバ以外の任意の場所にバッファを配置できるものとして、バッファの仮想配置位置を変化させながら、セットアップタイム、ホールドタイム、配線容量、スルーレートなどを計算するWhat IF解析を行うことで、推奨バッファ配置領域を決定する。例えば図２の一例では、推奨バッファ配置領域４１は、レシーバの周囲に配置されている１０個のセル（セルＳ１〜Ｓ１０）を含む範囲と決定される。
【００１８】
このように、既配置セルを考慮し物理的に配置可能な空間を探索するのではなく、既配置セル領域も配置可能な領域として、制約違反を解消するために最適な配置範囲を探索することで、高速に推奨バッファ配置領域を決定することができ、かつ、制約違反を確実に解消することができる。
【００１９】
次に、推奨バッファ配置領域４１内に既に配置されているセルを、推奨バッファ配置領域４１外の空きスペース（セルが配置されていない領域）に移動させた場合の影響について評価する。例えば、図２の一例では、セルＳ１〜Ｓ１０の１０個の既配置セルのそれぞれについて、推奨バッファ配置領域４１外の最も近い空きスペースに移動させたと仮定して、タイミングなどの各種項目について評価を行い、図３に示すような評価表３１を作成する。
【００２０】
評価項目としては、タイミング解析部３で行われている解析項目（タイミング情報（セットアップタイム、ホールドタイム）、配線容量、スルーレートなど）に関し、セル移動後の違反有無に加え、セル移動前における該セルに接続されている配線の長さ（移動前配線長）が算出し評価される。なお、図３に示す評価表３１では、セル移動後のセットアップタイム違反及びホールドタイム違反は、タイミングスラック（slack）を算出してスラックの符号で評価している。評価項目は、図３に示す評価表３１に示した項目に限定されるものでなく、これ以外の項目についても必要な項目は適宜加えることができる。また、タイミングスラックは、符号だけでなく数値まで用いてもよい。
【００２１】
なお、推奨バッファ配置領域４１内の既配置セルＳ１〜Ｓ１０は、１つのみを移動させるだけでなく、２個以上のセルを移動してもよい。例えば、挿入するバッファの大きさがセルＳ４よりも大きい場合、セルＳ４と隣接するセルＳ６とを推奨バッファ配置領域４１の近傍の空きスペースに移動させ、空いた領域にバッファを配置してもよい。従って、既配置セルよりも挿入するバッファのほうが大きい場合など、複数のセルを同時に移動する可能性がある場合、複数のセルを同時に移動した場合の評価も行って評価表３１にリストアップする必要がある。（例えば、図３の評価表３１の上から４行目、セルＳ４＋Ｓ６の行が、２つのセルを同時に移動する場合の評価である。）
また、複数の既配置セルを順送りで移動させてもよい。例えば、セルＳ１を推奨バッファ配置領域４１の近傍の空きスペースに移動し、セルＳ１０をセルＳ１の位置に移動し、セルＳ１０の位置にバッファを挿入するなどしてもよい。この場合も、セルＳ１０とセルＳ１との２つのセルを順送りに移動させた場合の評価も行って、評価表３１にリストアップする必要がある。
【００２２】
評価解析部１１での評価表３１の作成が完了すると、続いて移動セル決定部１２において、バッファを挿入する位置と、該位置に既に配置されているセルの移動先を決定する。推奨バッファ配置領域４１に配置されているセルを近傍領域に移動させる場合、移動先でも制約違反を起さないことが必要である。従って、評価表３１において、移動後タイミングスラックの符号がゼロまたは正であるセルが移動候補となる。ただし、タイミングスラックの符号がゼロまたは正であるセルが存在しない場合、タイミングスラックの値が最もゼロに近い（最も大きい）セルを移動候補とする。例えば、図３に示す評価表３１の場合、セルＳ１、セルＳ３、セルＳ８の３つのセルが移動候補となる。次にこれらの移動候補の中から、移動前の配線長が最も短いセルが移動対象として選択される。例えば、図３に示す評価表３１の場合、セルＳ１、セルＳ３、セルＳ８の３つのセルのうち、移動前配線長が一番短いのはセルＳ３である。従って、セルＳ３が移動対象として決定され、セルＳ３が配置されている領域にバッファを配置することが確定する。なお、移動前配線長が最短のセルが２つ以上ある場合は、その他の評価項目を総合的に勘案して、移動対象セルを決定する。
【００２３】
次に、配置変更部１４において、移動対象として決定された推奨バッファ配置領域４１内の既配置セル（例えば、上述の一例の場合はセルＳ３）を、推奨バッファ配置領域４１の近傍の空きスペースに移動させ、移動後の空きスペースにバッファを配置する。移動させたセルと、新たに配置したバッファの情報は、配置配線データ２３に出力され、保存される。続いて、ＥＣＯ配線部１４において、既に配置されていたセルを移動したり、新たにバッファが配置されたりすることによって結線が必要となる箇所の配線を行う。配線情報は、配置配線データ２３に出力され、保存される。
【００２４】
既配置セルの移動、バッファの挿入、再配線が行われた後の回路レイアウトは、タイミング解析部３においてタイミングなどの各種解析が行われる。制約違反が解消され、別のパスに関して制約違反が存在しないと判定された場合、回路レイアウト設計を終了する。別のパスに関して制約違反が存在すると判定された場合、全ての制約違反が解消されるまで、違反パスに関して上述のＥＣＯ部１における手順を実行する。
【００２５】
このように、本実施形態によれば、回路レイアウトの制約違反部分にバッファを挿入して違反を解消する際に、既にセルを配置している領域もバッファを配置可能な領域とし、制約違反を解消するために最適な配置範囲を探索することで、高速に推奨バッファ配置領域を決定することができ、レイアウト設計が収束するまでの時間を短縮することができ、かつ、確実に制約違反を解消することができる。
【００２６】
また、本実施形態によれば、バッファの配置領域を確保するために、推奨バッファ配置領域内に既に配置されているセルの中から、当該領域近傍の空きスペースに移動させるセルを選択する際に、既配置セルを移動させた場合のタイミング解析や移動前配線長などを評価し、制約違反がなく移動前配線長が短いセルを選択して移動させるため、既配置セルの移動によって新たな制約違反が発生するのを防ぐことができ、レイアウト設計が収束するまでの時間をさらに短縮することができる。
【００２７】
更に、制約違反解消のために、冗長なバッファを挿入したり配線を追加したりするのを防ぐことができるため、チップサイズの増大や消費電力の増加を防ぐことができる。
【００２８】
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウェアやソフトウエア・ルーチンに１対１には対応しない。従って、本明細書では、実施の形態の各機能を有する仮想的回路ブロック（部）を想定して実施の形態を説明した。
【００２９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００３０】
１…ＥＣＯ部、２…配置・配線部、３…タイミング解析部、１１…評価解析部、１２…移動セル決定部、１３…配置変更部、１４…ＥＣＯ配線部、２１…ネットリスト、２２…ライブラリ、２３…配置配線データ、３１…評価表、
【図１】
2015053001.tif 000003
【図２】
2015053001.tif 000004
【図３】
2015053001.tif 000005