説明

レイアウト設計方法及びレイアウト設計装置

【課題】チップ面積を小さくすることのできるレイアウト設計方法を提供する。
【解決手段】レイアウト設計方法は、所定のタイミング制約F1を満足させるように、セルを配置し、低抵抗配線が形成される第1配線層を使用してセル間のパスの接続配線を形成する処理(ステップS2〜S4)を有する。また、レイアウト設計方法は、タイミング制約F1を満足させたまま、パスの接続配線のうち、セル間に配置されるバッファ回路によって区切られる複数のステージ中の少なくとも一つのステージに対応する接続配線におけるレシーバ側からの一部を、第1配線層から該第1配線層よりも配線遅延が大きくなる第2配線層に置き換えて形成する配線置換処理(ステップS5)を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、レイアウト設計方法及びレイアウト設計装置に関するものである。
【背景技術】
【0002】
従来、半導体集積回路装置(LSI)の設計では、論理合成により得られたネットリストに基づいてセルの配置/配線(レイアウト)が行われた後、そのレイアウト結果に基づいてタイミング検証が行われる。このタイミング検証では、レイアウト設計されたLSIのパターンデータから配線長、配線幅、配線間隔等の情報が抽出され、セル間の配線における配線抵抗や配線容量による遅延時間が算出されてタイミング解析が実施される。このタイミング解析の結果に基づいてレイアウトの適否が判断され、回路修正等が行われている。
【0003】
このような設計工程において、遅延時間の小さい(例えば、配線抵抗の低い)配線層を使用してセル間の接続配線を概略配線した後に、タイミングに余裕のある信号経路(パス)を抽出し、その抽出したパス中の接続配線を遅延時間の大きい(例えば、配線抵抗の高い)配線層で詳細配線する技術が知られている(例えば、特許文献1参照)。この技術によれば、低抵抗配線層及び高抵抗配線層の双方を有効に活用することができるため、LSI全体のレイアウトサイズを小さくすることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−150660号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上述した従来技術では、タイミングに余裕のあるパスに含まれる全ての接続配線(ネット)が高抵抗配線層で詳細配線されることになる。しかしながら、このように高抵抗配線層で詳細配線された場合には、チップ上の多数のパスにおいて、タイミング違反(セットアップ違反)が誘発されるため、実際にはパス中の全ネットを高抵抗配線層で詳細配線することは難しく、この点において、なお改善の余地を残すものとなっていた。
【課題を解決するための手段】
【0006】
本発明の一観点によれば、所定のタイミング制約を満足させるように、セルを配置し、1つ又は複数の第1配線層を使用して前記セル間のパスの接続配線を形成する配置・配線工程と、前記タイミング制約を満足させたまま、前記接続配線のうち、前記セル間に配置されるバッファによって区切られる複数の区間中の少なくとも一つの区間に対応する接続配線における前記パスの信号受信側からの一部を、前記第1配線層から該第1配線層よりも配線遅延が大きくなる第2配線層に置き換えて形成する配線置換工程と、を有する。
【発明の効果】
【0007】
本発明の一観点によれば、チップ面積を小さくすることができるという効果を奏する。
【図面の簡単な説明】
【0008】
【図1】設計支援装置を示す概略構成図。
【図2】半導体装置の設計工程を示すフローチャート。
【図3】半導体装置の設計工程を示すフローチャート。
【図4】(a)、(b)は、配線置換処理前後の回路例を示す回路図。
【図5】(a)〜(e)は、配線置換処理の説明図。
【図6】(a)〜(d)は、遅延変化テーブルを示すグラフ。
【図7】(a)、(b)は、配線置換処理の説明図。
【図8】配線置換処理の説明図。
【図9】配線置換処理の説明図。
【図10】配線置換処理の説明図。
【図11】配線置換処理の説明図。
【図12】(a)〜(d)は、比較例の遅延変化テーブルを示すグラフ。
【図13】比較例の配線置換処理の説明図。
【図14】(a)、(b)は、比較例の配線置換処理の説明図。
【図15】(a)〜(e)は、エルモア遅延モデルの説明図。
【図16】(a)、(b)は、エルモア遅延モデルの説明図。
【発明を実施するための形態】
【0009】
(第1実施形態)
以下、第1実施形態を図1〜図11に従って説明する。
図1に示すように、設計支援装置10は、例えば一般的な設計支援装置(CAD:Computer Aided Design)である。この設計支援装置10は、中央処理装置(CPU)11と、メモリ12と、記憶装置13と、表示装置14と、入力装置15と、ドライブ装置16とを含む。これら各装置11,13,14,15,16及びメモリ12は、バス17を介して相互に接続されている。
【0010】
CPU11は、メモリ12を利用してプログラムを実行し、半導体装置のレイアウト設計等の必要な処理を実現する。プログラムは、CPU11を、半導体装置のレイアウトデータを生成する設計支援装置としての各種手段として機能させるためのものである。メモリ12には、各種処理を提供するために必要なプログラムとデータが格納される。このメモリ12としては、通常、キャッシュ・メモリ、システム・メモリ及びディスプレイ・メモリ等を含む。
【0011】
表示装置14は、レイアウト表示、パラメータ入力画面等の表示に用いられる。この表示装置14としては、例えばCRT,LCD,PDP(図示略)が用いられる。入力装置15は、ユーザからの要求や指示、パラメータの入力に用いられる。この入力装置15としては、例えばキーボード及びマウス装置が用いられる。
【0012】
設計支援装置10は、レイアウトデータに基づき半導体装置に形成する素子や配線などのレイアウトパターン(図形)を表示装置14に表示させる。そして、設計支援装置10は、ユーザが操作する入力装置15からの信号に従って、表示装置14上のパターンの追加、削除を行うとともに、レイアウトデータに対してパターンデータの追加、削除を行う。
【0013】
記憶装置13は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置等を含む。この記憶装置13には、半導体装置(半導体集積回路装置)のレイアウトデータを生成するためのプログラムデータを含むファイルや、各種データを含むファイルが格納される。CPU11は、入力装置15による指示に応答してプログラムや各種ファイルに格納されるデータを適宜メモリ12へ転送し、それを逐次実行する。なお、記憶装置13は、データベースとしても使用される。
【0014】
この設計支援装置10において、記憶装置13には半導体装置の設計に用いられる各種データを含むファイルが格納される。設計支援装置10は、記憶装置13のファイルに格納されたデータを読み出し、そのデータに基づいて、半導体装置の設計データ(例えばレイアウトデータ)を作成する。そして、設計支援装置10は、作成したデータを含むファイルを記憶装置13に格納する。
【0015】
CPU11が実行するプログラムは、記憶媒体18にて提供される。ドライブ装置16は、記憶媒体18を駆動し、その記憶内容にアクセスする。CPU11は、ドライブ装置16を介して記憶媒体18からプログラムを読み出し、それを記憶装置13にインストールする。
【0016】
記憶媒体18としては、メモリカード、フレキシブルディスク、光ディスク(例えばCD−ROM,DVD−ROMなど)、光磁気ディスク(例えばMO,MDなど)等、任意のコンピュータ読取り可能な記憶媒体を使用することができる。この記憶媒体18に、上述のプログラムを格納しておき、必要に応じて、メモリ12にロードして使用することもできる。
【0017】
なお、記憶媒体18には、通信媒体を介してアップロード又はダウンロードされたプログラムを記録した媒体、ディスク装置を含む。さらに、コンピュータによって直接実行可能なプログラムを記録した記憶媒体だけでなく、一旦他の記憶媒体(ハードディスク等)にインストールすることによって実行可能となるようなプログラムを記録した記憶媒体や、暗号化されたり、圧縮されたりしたプログラムを記録した記憶媒体も含む。
【0018】
次に、設計支援装置10(のCPU11)が実行する設計処理の概要を図2に従って説明する。なお、ここでは、レイアウト設計の対象となる半導体集積回路装置は、配線層が2層の半導体集積回路装置であると仮定する。この2層の配線層は、配線遅延の小さい低抵抗配線が形成される第1配線層と、低抵抗配線よりも抵抗が高く配線遅延の大きい高抵抗配線が形成される第2配線層とを有する。例えば高抵抗配線は、低抵抗配線よりも抵抗率の高い材料により形成される。
【0019】
ステップS1(論理合成処理)において、設計支援装置10は、半導体集積回路装置の論理をハードウェア記述言語(例えばRTL:Register Transfer Level)により記述したデータに基づいてネットリスト(論理データ)を生成する。このとき、設計支援装置10は、ネットリストの回路動作を保証し得るタイミング情報を規定したタイミング制約F1も生成する。
【0020】
次に、ステップS2(配置処理)において、設計支援装置10は、セルライブラリ等のライブラリデータとネットリストとに基づいて、半導体集積回路装置に含まれるセルを配置する。セルの配置を示すデータ(配置データ)は記憶装置13に記憶される。なお、配置データをメモリ12に格納するようにしてもよい。
【0021】
次に、ステップS3(配線処理)において、設計支援装置10は、ネットリスト等に基づいて、各セル間の配線を行う。ここでは、低抵抗配線が形成される第1配線層のみを使用して各セル間の接続配線が形成される。配線の配置を示すデータ(配線データ)は記憶装置13に記憶される。なお、配線データをメモリ12に格納するようにしてもよい。
【0022】
次に、ステップS4(タイミング解析及び最適化処理)において、設計支援装置10は、上記タイミング制約F1に基づいて、配線処理を行った後のレイアウトに対するタイミング解析、例えば静的タイミング解析(STA:Static Timing Analysis)を行い、その解析結果に応じて最適化処理を実行する。
【0023】
STAでは、全てのパス(代表的には、回路内のフリップフロップ間の信号経路)について、セルや配線の信号遅延時間が積算され、回路入力信号のセットアップタイム/ホールドタイムなどのタイミング・マージンがチェックされ、タイミング違反が発生しているか否かが判定される。このようなタイミング・マージンは、スラックとして与えられる。
【0024】
具体的には、STAによる解析結果には、フリップフロップ回路におけるセットアップタイム、ホールドタイム、セットアップスラック(Setup Slack)やホールドスラック(Hold Slack)等が含まれる。ここで、フリップフロップ回路において、データの確定時と、そのデータを取り込むためのクロック信号のエッジとの間がセットアップタイムであり、クロック信号のエッジとデータの終了時との間がホールドタイムである。また、スラックは、信号の到達時間に対する余裕を示す値であり、例えば、そのパスの終点に信号が到達する時間とタイミング制約F1を満たすために当該信号が当該終点に到達すべき最も遅い時間との差分である。すなわち、スラックは、サイクルタイムに対するパス到達時間から計算される。
【0025】
そして、設計支援装置10は、解析結果が、セットアップ制約やホールド制約等の上記タイミング制約F1を満たすか否かを判定する。具体的には、設計支援装置10は、セットアップスラック、ホールドスラックが規定値(例えば、0)以上であるか否かを判定する。このとき、設計支援装置10は、判定結果に基づいて、対象パスがタイミング制約F1を満たさない(スラックが既定値未満の)場合には、当該パスにタイミング違反が発生していると判定する。この場合の設計支援装置10は、タイミング違反の発生しているパスに対してタイミング最適化処理を実行し、その処理後に再度タイミング解析を実行する。なお、タイミング最適化処理において、設計支援装置10は、例えばセルや配線の遅延時間に従って、タイミング制約F1を満たすように(スラックが規定値以上となるように)、セルのサイジングやバッファの挿入等を行ってパスを最適化する。一方、設計支援装置10は、タイミング制約F1を満たす(スラックが規定値以上の)場合には、次の処理(配線置換処理)に移る。
【0026】
以上のようにタイミング制約F1を満たすようにセルの配置/配線(レイアウト)が行われると、ステップS5(配線置換処理)において、設計支援装置10は、セル間の接続配線の一部を、低抵抗配線から高抵抗配線に置き換える。ここで、配線置換処理前後の設計対象の回路例を図4に従って説明する。
【0027】
図4に示すように、例えば半導体集積回路は、信号送出(ドライバ)側のフリップフロップ回路(FF回路)21の出力端子から3つのバッファ回路22,23,24を通じて信号受信(レシーバ)側のFF回路25の入力端子にデータ信号を供給するパスPを有している。詳述すると、FF回路21の出力端子は、接続配線31を通じてバッファ回路22の入力端子に接続されている。バッファ回路22の出力端子は、接続配線32を通じてバッファ回路23の入力端子に接続されている。バッファ回路23の出力端子は、接続配線33を通じてバッファ回路24の入力端子に接続されている。バッファ回路24の出力端子は、接続配線34を通じてFF回路25の入力端子に接続されている。このとき、低抵抗配線から高抵抗配線への置き換え単位長をXとすると、接続配線31の配線長は4X、接続配線32の配線長は6X、接続配線33の配線長は10X、接続配線34の配線長は6Xである。
【0028】
また、セル間(ここでは、FF回路21,25間)のパスPは、FF回路21,25に配置されるバッファ回路22〜24によって区切られる複数のステージA〜Dから構成されている。具体的には、FF回路21及び接続配線31からなるステージAと、バッファ回路22及び接続配線32からなるステージBと、バッファ回路23及び接続配線33からなるステージCと、バッファ回路24及び接続配線34からなるステージDとから構成されている。このため、パスPにおけるパス遅延は、ステージA〜Dにおける4つのステージ遅延を合算した値となる。なお、ステージAにおけるステージ遅延(以下、「ステージA遅延」という。)は、セル(FF回路21)のゲート遅延と接続配線31の配線遅延とを合算した値となり、ステージBにおけるステージ遅延(以下、「ステージB遅延」という。)は、バッファ回路22のゲート遅延と接続配線32の配線遅延とを合算した値となる。また、ステージCにおけるステージ遅延(以下、「ステージC遅延」という。)は、バッファ回路23のゲート遅延と接続配線33の配線遅延とを合算した値となり、ステージDにおけるステージ遅延(以下、「ステージD遅延」という。)は、バッファ回路24のゲート遅延と接続配線34の配線遅延とを合算した値となる。
【0029】
ここで、図4(a)に示すように、配線置換処理前の回路(パスが最適化された回路)では、接続配線31〜34の全てが上記低抵抗配線によって形成されている。この回路において、サイクルタイムが2000psであり、ステージA遅延が200ps、ステージB遅延が100ps、ステージC遅延が100ps、ステージD遅延が100ps、つまりパス遅延が500psであるとする。このため、この回路におけるセットアップスラックは、1500(=2000−500)psとなる。
【0030】
また、図4(a)に示す回路に対して配線置換処理を施した後の回路を図4(b)に示している。この回路では、接続配線31〜34のレシーバ側からの一部が第1配線層(低抵抗配線層)から第2配線層(高抵抗配線層)に置き換えられて形成されている。すなわち、接続配線31〜34のレシーバ側からの一部が低抵抗配線から高抵抗配線に置き換えられている。具体的には、接続配線31では、全配線長4Xのうちレシーバ側から配線長2Xが高抵抗配線に置き換えられ、接続配線32では、全配線長6Xのうちレシーバ側から配線長4Xが高抵抗配線に置き換えられている。また、接続配線33では、全配線長10Xのうちレシーバ側から配線長6Xが高抵抗配線に置き換えられ、接続配線34では、全配線長6Xのうちレシーバ側から配線長4Xが高抵抗配線に置き換えられている。すなわち、この回路では、接続配線31〜34の全配線長26Xのうちの配線長16X、つまり約62%の配線が高抵抗配線に置き換えられている。
【0031】
ここで、各ステージA〜D(接続配線31〜34)において、レシーバ側から高抵抗配線に置き換える理由は、高抵抗配線への置き換え率が小さい範囲では、ドライバ側から置き換えるよりもレシーバ側から置き換える方が配線遅延の増加率が小さいためである。この点について、エルモア遅延モデルを使って詳述する。
【0032】
エルモア遅延モデルでは、まず、図15(a)に示すように、ドライバ側のセルA1とレシーバ側のセルA2との間の配線が、抵抗R1〜Rnと容量C1〜Cnとがπ型に接続された等価回路に置換される。そして、その回路における出力端Toでの遅延値D1が以下のように見積もられる。
【0033】
【数1】

このエルモア遅延モデルを使用して、ドライバ側(セルA1側)から低抵抗配線を高抵抗配線に置き換えた場合(図15(b)参照)の配線遅延と、レシーバ側(セルA2側)から低抵抗配線を高抵抗配線に置き換えた場合(図15(d)参照)の配線遅延との大小関係について検証する。ここでは、セルA1,A2間の全配線長をLとし、高抵抗配線の配線長をXとし、低抵抗配線の配線長を(L−X)とする。
【0034】
まず、低抵抗配線の単位配線長あたりの抵抗値及び容量値をそれぞれR,Cとし、高抵抗配線の単位配線長あたりの抵抗値及び容量値をそれぞれR,Cとする。すると、図15(b)に示した回路は、図15(c)に示すように、ドライバ側のX個の抵抗Rと容量C、及びレシーバ側の(L−X)個の抵抗Rと容量Cがπ型に接続された等価回路に置換される。また、図15(d)に示した回路は、図15(e)に示すように、ドライバ側の(L−X)個の抵抗Rと容量C、及びレシーバ側のX個の抵抗Rと容量Cがπ型に接続された等価回路に置換される。
【0035】
次に、図15(c)に示した等価回路における配線遅延D2は、
【0036】
【数2】

と見積もることができる。また、図15(e)に示した等価回路における配線遅延D3は、
【0037】
【数3】

と見積もることができる。
【0038】
続いて、これら配線遅延D2と配線遅延D3との差分を求めると、
【0039】
【数4】

となる。ここで、高抵抗配線の抵抗Rが低抵抗配線の抵抗Rよりも十分に大きい場合には、
【0040】
【数5】

という関係を満たすため、配線容量Cと配線容量Cとが略等しい場合であっても上記関係は崩れない。そこで、ここでは配線容量C,Cが略等しいと仮定する。すると、上記配線遅延D2,D3の差分は、
【0041】
【数6】

となる。この式を図示すると、図16(a)に示すような曲線となる。すなわち、高抵抗配線の配線長Xが0<X<Lの範囲において、上記配線遅延D2,D3の差分(D2−D3)は常に0よりも大きくなる。これは、レシーバ側から高抵抗配線を使用した方がドライバ側から高抵抗配線を使用する場合よりも配線遅延が小さくなることを示している。より具体的には、高抵抗配線の配線長Xが大きくなるに連れて上記差分(D2−D3)が大きくなり、配線長XがL/2のときに上記差分が最大となり、その後、さらに配線長Xが大きくなると上記差分が徐々に小さくなる。このような特性から、上記配線置換処理において、低抵抗配線から高抵抗配線への置き換えをレシーバ側から行うと、図16(b)の実線で示すように、高抵抗配線への置き換え率が低い範囲では、高抵抗配線の増加に対するステージ遅延の増加率(曲線の傾き)が小さくなることが分かる。また、高抵抗配線への置き換えをレシーバ側から行う場合には、その置き換え率が高くなるに連れて、高抵抗配線の増加に対するステージ遅延の増加率も小→大に遷移する。これに対し、低抵抗配線から高抵抗配線への置き換えをドライバ側から行うと、図16(b)の破線で示すように、高抵抗配線への置き換え率が低い範囲において、高抵抗配線の増加に対するステージ遅延の増加率が大きくなる。また、高抵抗配線への置き換えをドライバ側から行うと、その置き換え率が高くなるに連れて、高抵抗配線の増加に対するステージ遅延の増加率も大→小に遷移する。したがって、セル間の配線の一部を低抵抗配線から高抵抗配線に置き換える場合には、例えばステージ遅延の目標値が同じであれば、レシーバ側から置き換えを行った方が高抵抗配線への置き換え量が多くなる。
【0042】
次に、上記配線置換処理の詳細を図3〜図11に従って説明する。ここでは、先の図4に示した回路例を用いて説明する。
上述したように低抵抗配線でパスが最適化されると(ステップS11)、設計支援装置10は、その最適化されたパスがセットアップタイミングに余裕があるか否かを判定する(ステップS12)。例えば上記タイミング解析で求められたセットアップスラック(ここでは、1500ps)が所定値(例えば、5ps)以上か否かが判定される。この場合には、セットアップスラックが所定値以上であるため、ステップS13に移る。なお、ステップS12において、セットアップスラックが所定値未満の場合には、当該パスに対して配線置換処理を行わずに、次のパスの処理に移る。
【0043】
次に、ステップS13において、設計支援装置10は、パスP中のステージA〜D毎に遅延変化テーブル40を生成する(ステップS13)。ここで、遅延変化テーブル40とは、各ステージA〜D中の接続配線31〜34をレシーバ側から徐々に高抵抗配線に置き換えた場合のステージ遅延の変化を示すものである。ここでは、ステージAにおける遅延変化テーブル40を例に挙げてその生成方法を説明する。
【0044】
まず、図5(a)に示すように、接続配線31が全て低抵抗配線で形成されている場合、すなわち高抵抗配線への置き換え長が0の場合には、上記タイミング解析の結果からステージ遅延が200psであるため、その位置に点がプロットされる。
【0045】
次に、設計支援装置10は、接続配線31のレシーバ側から、配線長Xだけ高抵抗配線に置き換えた場合(図5(b))、配線長2Xだけ高抵抗配線に置き換えた場合(図5(c))、配線長3Xだけ高抵抗配線に置き換えた場合(図5(d))、接続配線31の全てを高抵抗配線に置き換えた場合(図5(e))の各々におけるステージ遅延を求める。ここでは、高抵抗配線への置き換え長がX、2X、3X、4Xの場合のステージ遅延がそれぞれ、220ps、340ps、550ps、800psと算出される。これらステージ遅延は、例えば対象回路の接続配線31の配線遅延を上記エルモア遅延モデルやSPICEモデルなどを利用して算出し、上記タイミング解析で得られた接続配線31の配線遅延(全て低抵抗配線で形成された接続配線31の配線遅延)からの増分を求め、その増分を上記200psに合算することで求められる。そして、設計支援装置10は、求めたステージ遅延に対応する位置に点をプロットし、各点を線で結合する。これにより、図5(a)に示すような遅延変化テーブル40を生成することができる。
【0046】
以上のように生成される遅延変化テーブル40を、図6(a)〜(d)に示すように、各ステージA〜D毎に生成する。なお、この遅延変化テーブル40は記憶装置13に記憶される。また、遅延変化テーブル40をメモリ12に格納するようにしてもよい。
【0047】
次に、設計支援装置10は、現時点でのレイアウト状態を遅延変化テーブル40にマークする(ステップS14)。ここでは、接続配線31〜34の全てが低抵抗配線で形成されているため、図6(a)〜(d)に示すように、各ステージA〜Dの遅延変化テーブル40において、高抵抗配線への置き換え長が0の点がマークされる(図中の丸印参照)。
【0048】
続いて、設計支援装置10は、全ステージA〜Dのうち、上記遅延変化テーブル40にマークされた点における傾きが最も小さいステージを選択する(ステップS15)。具体的には、設計支援装置10は、ステージA〜Dの遅延変化テーブル40に基づいて、高抵抗配線への置き換え長が0の点(上記マークされた点)と置き換え長がXの点とを結ぶ直線の傾きを取得し、その傾きが最も小さいステージを選択する。すなわち、全ステージA〜Dのうち、レシーバ側から置き換え単位長Xだけ高抵抗配線に置き換えられた場合に、ステージ遅延の増加度合が最も小さくなるステージが選択される。ここでは、ステージCが選択される。
【0049】
なお、最も小さい傾きが複数ある場合には、パスPの終点側(レシーバ側)のステージが選択される。例えばステージBとステージDとにおけるマーク点の傾きが同じで、且つその傾きが全ステージの中で最も小さい場合には、ステージDが選択される。これは、パスPの始点側(ドライバ側)の方が終点側よりも他のパスに影響を与える可能性が高いため、終点側のステージを優先して選択するようにしている。
【0050】
次いで、設計支援装置10は、上記選択されたステージ内の接続配線のうち第1配線層に形成された低抵抗配線を、図7(a)に示すように、レシーバ側から置き換え単位長Xだけ第2配線層に形成される高抵抗配線に置き換える(ステップS16)。ここでは、設計支援装置10は、ステージC内の接続配線33を、レシーバ側から置き換え単位長Xだけ高抵抗配線に置き換える。
【0051】
次に、設計支援装置10は、高抵抗配線に置き換え後の回路におけるパス遅延を算出する(ステップS17)。例えば上記高抵抗配線への置き換えによるステージ遅延の増加分を、置き換え前のパスPのパス遅延に合算することにより、置き換え後のパスPのパス遅延を算出することができる。ここでは、各ステージA〜D遅延を示すテーブルを有しているため、上記置き換え後のステージC遅延(例えば105ps)と、遅延変化テーブル40にマークされた、ステージA遅延(200ps)、ステージB遅延(100ps)及びステージD遅延(100ps)とを合算することにより、パス遅延(ここでは、505ps)を求めることもできる。
【0052】
続いて、設計支援装置10は、上記算出したパス遅延に基づいて、セットアップタイミングに余裕があるか否かを判定する(ステップS18)。例えばサイクルタイム(2000ps)からパス遅延(505ps)を減算した値(1495ps)が所定値(例えば、0ps)以上か否かが判定される。このとき、減算値が所定値以上であるため、設計支援装置10は、遅延変化テーブル40のマーク位置を上記高抵抗配線への置き換え後のレイアウト状態に更新する。ここでは、図7(b)に示すように、ステージCにおける遅延変化テーブルにおいて、高抵抗配線への置き換え長がXの点がマークされる(図中の実線丸印参照)。
【0053】
その後、ステップS15に戻って、ステップS15〜S19の処理が、ステップS18でセットアップタイミングに余裕がないと判定されるまで繰り返し実行される。
やがて、対象回路のレイアウト状態が図8に示すように変更される。すなわち、接続配線31のレシーバ側から配線長2Xだけ高抵抗配線に置き換えられ、接続配線32のレシーバ側から配線長4Xだけ高抵抗配線に置き換えられ、接続配線33のレシーバ側から配線長6Xだけ高抵抗配線に置き換えられ、接続配線34のレシーバ側から配線長4Xだけ高抵抗配線に置き換えられる。このとき、ステージA,B,C,Dにおける遅延変化テーブルにおいて、高抵抗配線への置き換え長が2X,4X,6X,4Xの点がそれぞれマークされている。
【0054】
このようなレイアウト状態では、マーク点における傾きが最も小さいステージとしてステージCが選択され(ステップS15)、そのステージC内の接続配線33が、図9に示すように、レシーバ側から置き換え単位長Xだけ更に高抵抗配線に置き換えられる(ステップS16)。これにより、接続配線33は、レシーバ側から配線長7Xだけ高抵抗配線に置き換えられることになる。
【0055】
このとき、上記置き換え後の回路におけるパス遅延が2150ps(図10の×印参照)となり、サイクルタイム(2000ps)からパス遅延を減算した値(−150ps)が所定値(0ps)未満となるため(ステップS18でNO)、ステップS20に移る。なお、サイクルタイムとパス遅延が等しくなると上記セットアップスラックが0となり、パス遅延がサイクルタイムを超えるとセットアップスラックが負値となるため、パスPにセットアップ違反(タイミング違反)が発生する。すなわち、パスPにセットアップ違反が発生した場合に、ステップS20に移る。
【0056】
ステップS20において、設計支援装置10は、最後の高抵抗配線への置き換え前のレイアウト状態、ここでは図8に示したレイアウト状態を選択し、次のパスの配線置換処理に移る。
【0057】
以上の配線置換処理により、全て低抵抗配線で形成された各接続配線31〜34(図4(a)参照)の一部が、図4(b)に示すように、レシーバ側から高抵抗配線に置き換えられる。さらに、この配線置換処理によれば、各接続配線31〜34のレシーバ側から徐々に高抵抗配線に置き換えられるため、図10の実線で示すように、高抵抗配線への置き換え率が低い範囲では、高抵抗配線の増加に対するパス遅延の増加率が小さくなる。このため、パス遅延がサイクルタイムに達するまでに、接続配線31〜34を、多くの高抵抗配線に置き換えることができる。具体的には、本例では、接続配線31〜34の全配線長26Xのうちの配線長16X、つまり約62%の配線が高抵抗配線に置き換えられる。
【0058】
ここで、比較例として、接続配線31→32→33→34の順で配線置換対象とし、さらに各接続配線31〜34のドライバ側から高抵抗配線に置き換える場合について説明する。図12(a)〜(d)に示す遅延変化テーブルには、接続配線31〜34のドライバ側から徐々に高抵抗配線に置き換えた場合のステージA〜Dそれぞれにおけるステージ遅延の変化が示されている(実線参照)。なお、図12(a)〜(d)に示す遅延変化テーブルにおいて破線で示されているのは、接続配線31〜34のレシーバ側から徐々に高抵抗配線に置き換えた場合のステージA〜Dそれぞれにおけるステージ遅延の変化である。
【0059】
このような比較例の場合には、図13に示すように、接続配線31のドライバ側から配線長4X、つまり接続配線31の全てが高抵抗配線に置き換えられ、接続配線32のドライバ側から配線長5Xだけ高抵抗配線に置き換えられる一方、接続配線33,34は全て高抵抗配線に置き換えられない。なお、接続配線32のドライバ側から配線長6X、つまり接続配線32の全てが高抵抗配線に置き換えられると、パス遅延がサイクルタイムを超えて、セットアップ違反が発生する。
【0060】
このように、比較例では、接続配線31〜34の全配線長26Xのうちの配線長9X、約35%の配線長しか高抵抗配線に置き換えることができない。すなわち、比較例の配線置換方法では、図10の破線で示すように、高抵抗配線への置き換え率が低い範囲において、高抵抗配線の増加に対するパス遅延の増加が大きいため、高抵抗配線への置き換え量は少なくなる。このように同じセットアップスラックであっても、低抵抗配線から高抵抗配線への置き換え方法によって、高抵抗配線への置き換え量が大幅に異なることが分かる。
【0061】
さらに、図11に、高抵抗配線への置き換え率と配線面積との関係を示した。この図11から明らかなように、図3に示した配線置換処理のように約60%の接続配線を第2配線層(高抵抗配線層)で配線することができると、高抵抗配線への置き換えを行わない場合よりも約20%の配線面積の削減を実現することができ、比較例の場合よりも約10%の配線面積の削減を実現することができる。
【0062】
なお、設計支援装置10はコンピュータ及びレイアウト設計装置の一例、FF回路21,25はセルの一例、バッファ回路22〜24はバッファの一例、CPU11は配置・配線手段及び配線置換手段の一例、ステージA〜Dは区間の一例、置き換え単位長Xは所定の配線長の一例である。また、ステップS2〜S4は配置・配線工程の一例、ステップS5は配線置換工程の一例、ステップS15は選択工程の一例、ステップS16は置換工程の一例、ステップS17は算出工程の一例、ステップS18は判定工程の一例である。
【0063】
以上説明した本実施形態によれば、以下の効果を奏することができる。
(1)タイミング制約F1を満足させるように、セルを配置し、第1配線層(低抵抗配線層)を使用してセル間(ここでは、FF回路21,25間)のパスPの接続配線31〜34を形成する。次に、タイミング制約F1を満足させたまま、パスP中のステージA〜Dの接続配線31〜34のレシーバ側からの一部を、第1配線層から第2配線層(高抵抗配線層)に置き換えて形成するようにした。これにより、各接続配線31〜34のレシーバ側から徐々に高抵抗配線に置き換えられるため、高抵抗配線への置き換え率が低い範囲では、高抵抗配線の増加に対するステージ遅延の増加率が小さくなる。このため、パス遅延がサイクルタイムに達するまでに、接続配線31〜34を、多くの高抵抗配線に置き換えることができる。これにより、配線面積を縮小することができ、ひいてはチップ面積を縮小することができる。
【0064】
(2)パスP中の全ステージA〜Dの中から、各ステージA〜D内の接続配線31〜34をレシーバ側から置き換え単位長Xだけ高抵抗配線に置き換えた際に、ステージ遅延の増加度合が最も小さくなるステージを選択し、その選択されたステージ内の接続配線の一部を高抵抗配線に置き換えるようにした。この置き換え方法によれば、ステージA〜D単位で見た場合に、高抵抗配線への置き換え率が高くなるに連れて、高抵抗配線の増加に対するステージ遅延の増加率も小→大に遷移する。さらに、パスP単位で見ても、高抵抗配線への置き換え率が高くなるに連れて、高抵抗配線の増加に対するパス遅延の増加率も小→大に遷移する。このため、パス遅延がサイクルタイムに達するまでに、接続配線31〜34を、より多くの高抵抗配線に置き換えることができる。
【0065】
(3)パスP中の全ステージA〜Dの中から選択された1つのステージ内の接続配線の一部を高抵抗配線に置き換え、その置き換え後のパス遅延に基づいて、置き換え後のパスがタイミング制約を満たしているかを判定するようにした。これにより、タイミング制約を満たす範囲において、接続配線31〜34の一部を高抵抗配線に置き換えることができる。
【0066】
(他の実施形態)
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記実施形態におけるステップS15では、全ステージA〜Dの中から、ステージA〜Dの遅延変化テーブル40のマーク点における傾きが最も小さくなるステージを配線置換対象のステージとして選択するようにした。これに限らず、例えば全ステージA〜Dの中から、ステージA〜D内の接続配線31〜34をレシーバ側から置き換え単位長Xだけ置き換えた際に、高抵抗配線の置き換え率が最も低くなるステージを配線置換対象のステージとして選択するようにしてもよい。あるいは、全ステージA〜Dの中から、接続配線31〜34における低抵抗配線の配線長が最も長いステージを配線置換対象のステージとして選択するようにしてもよい。
【0067】
・上記実施形態における置き換え単位長Xの長さは特に制限されない。この置き換え単位長Xの長さが短いほど、サイクルタイムからパス遅延を減算した値が限りなく0に近づくまで高抵抗配線への置き換えを行うことができる。すなわち、置き換え単位長Xの長さが短いほど、接続配線31〜34を、より多くの高抵抗配線に置き換えることができる。但し、置き換え単位長Xの長さが短くなるほど、パス遅延を算出する回数が増加する。
【0068】
ここで、上述したように、セル間の接続配線の配線長をLとした場合に、高抵抗配線の配線長XがL/2のときに上記配線遅延D2,D3の差分(D2−D3)が最も大きくなる。このため、パスP中の全ステージA〜D内の接続配線31〜34の中で最も配線長の短い接続配線31の配線長をLとしたときに、置き換え単位長XをL/2以下に設定することにより、レシーバ側から高抵抗配線に置き換えることの利点を効果的に利用することができる。すなわち、上述のように置き換え単位長Xの長さを設定することにより、高抵抗配線への置き換え率が低い範囲では、高抵抗配線の増加に対するステージ遅延の増加率が小さくなる、という利点を効果的に利用することができる。
【0069】
なお、各ステージA〜D毎に置き換え単位長Xの長さを変更するようにしてもよい。
・上記実施形態では、ステップS15で配線置換対象のステージを選択した後に、その選択したステージ内の接続配線をレシーバ側から高抵抗配線に置き換え、置換後のパス遅延に基づいてセットアップタイミングに余裕があるか否かを判定するようにした。これに限らず、例えば配線置換対象のステージを選択した後、その選択したステージ内の接続配線を高抵抗配線に置き換える前に、例えば遅延変化テーブル40を参照して置き換え後のレイアウト状態を想定してパス遅延を算出し、そのパス遅延に基づいてセットアップタイミングに余裕があるか否かを判定するようにしてもよい。この場合には、セットアップタイミングに余裕があると判定された場合に、上記選択されたステージ内の接続配線の一部が実際に高抵抗配線に置き換えられる。また、セットアップタイミングに余裕がないと判定された場合には、上記選択されたステージ内の接続配線の高抵抗配線への置き換えを実施せずに、上記配線置換対象のステージを選択する際のレイアウト状態で確定し、次のパスの処理に移る。
【0070】
・上記実施形態において、セル間の接続配線の配線長は、置き換え単位長Xの整数倍の長さでなくてもよい。例えば図14(a)に示すように、セル51,52間の接続配線53の配線長を5X+Y(但し、Y<X)としてもよい。この場合の遅延変化テーブルは、図14(b)に示すように、レシーバ側からの高抵抗配線への置き換え長がX、2X、3X、4X、5X、5X+Yの場合のステージ遅延が算出されて生成される。
【0071】
・上記実施形態では、第1配線層よりも遅延時間が大きい第2配線層として、第1配線層に形成される低抵抗配線よりも配線抵抗の高い高抵抗配線が形成される第2配線層に具体化した。ここで、配線層の遅延時間は、配線間隔が狭く、層間絶縁膜の比誘電率が大きいほど、大きくなる。このため、例えば第1絶縁層よりも遅延時間が大きい第2配線層として、第1配線層よりも配線間隔が狭く、層間絶縁膜の比誘電率が大きい配線層に具体化してもよい。
【0072】
・上記実施形態において、第1配線層、つまり遅延時間の小さい配線層を2つ以上有する半導体集積回路装置に具体化してもよい。
・上記実施形態において、第2配線層、つまり遅延時間の大きい配線層を2つ以上有する半導体集積回路装置に具体化してもよい。
【符号の説明】
【0073】
10 設計支援装置
11 中央処理装置
21,25 FF回路
22〜24 バッファ回路
31〜34 接続配線
40 遅延変化テーブル
A〜D ステージ
P パス
F1 タイミング制約

【特許請求の範囲】
【請求項1】
複数の配線層を有する半導体集積回路装置のレイアウトデータをコンピュータにて自動生成するレイアウト設計方法であって、
所定のタイミング制約を満足させるように、セルを配置し、1つ又は複数の第1配線層を使用して前記セル間のパスの接続配線を形成する配置・配線工程と、
前記タイミング制約を満足させたまま、前記接続配線のうち、前記セル間に配置されるバッファによって区切られる複数の区間中の少なくとも一つの区間に対応する接続配線における前記パスの信号受信側からの一部を、前記第1配線層から該第1配線層よりも配線遅延が大きくなる第2配線層に置き換えて形成する配線置換工程と、
を有することを特徴とするレイアウト設計方法。
【請求項2】
前記配線置換工程は、
前記複数の区間中から任意の1つの区間を選択する選択工程と、
前記選択された区間に対応する接続配線のうち前記第1配線層に形成された接続配線を、前記信号受信側から所定の配線長だけ前記第2配線層に置き換えて形成する置換工程と、
前記置換工程後のパスにおけるパス遅延を算出する算出工程と、
前記パス遅延に基づいて、前記置換工程後のパスが前記タイミング制約を満足しているかを判定する判定工程と、
を有することを特徴とする請求項1に記載のレイアウト設計方法。
【請求項3】
前記選択工程は、
前記複数の区間の中から、各区間に対応する接続配線のうち前記第1配線層に形成された接続配線を、前記信号受信側から前記所定の配線長だけ前記第2配線層に置き換えて形成する際に、区間内の遅延の増加度合が最も小さくなる区間を選択することを特徴とする請求項2に記載のレイアウト設計方法。
【請求項4】
前記選択工程は、
前記区間に対応する接続配線を前記信号受信側から徐々に前記第2配線層に置き換えて形成した場合における区間内の遅延の変化を示すテーブルを前記各区間毎に生成する工程と、
前記テーブルに基づいて、前記複数の区間の中から前記区間内の遅延の増加度合が最も小さくなる区間を選択する工程と、
を有することを特徴とする請求項3に記載のレイアウト設計方法。
【請求項5】
前記算出工程では、前記置換工程によって増加する遅延時間を算出し、前記遅延時間を前記置換工程前のパス全体の遅延時間に合算することにより、前記パス遅延を算出することを特徴とする請求項2〜4のいずれか1つに記載のレイアウト設計方法。
【請求項6】
複数の配線層を有する半導体集積回路装置のレイアウトデータを自動生成するレイアウト設計装置であって、
所定のタイミング制約を満足させるように、セルを配置し、1つ又は複数の第1配線層を使用して前記セル間のパスの接続配線を形成する配置・配線手段と、
前記タイミング制約を満足させたまま、前記接続配線のうち、前記セル間に配置されるバッファによって区切られる複数の区間中の少なくとも一つの区間に対応する接続配線における前記パスの信号受信側からの一部を、前記第1配線層から該第1配線層よりも配線遅延が大きくなる第2配線層に置き換えて形成する配線置換手段と、
を備えたことを特徴とするレイアウト設計装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2012−234892(P2012−234892A)
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願番号】特願2011−100958(P2011−100958)
【出願日】平成23年4月28日(2011.4.28)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】