(57)【特許請求の範囲】
【請求項１】
機能モジュール間のクリティカルパス数を抽出して（該クリティカルパス数）×（単位配線幅）÷（配線層数）を算出し、算出した長さを該機能モジュールの最小周辺長に決定する最小周辺長決定部と、
前記機能モジュールの設計情報から論理数を算出し、記憶部に記憶されたセル面積ライブラリに記憶されている各論理を実装するためのセル面積と算出した論理数とを乗じることで前記機能モジュールの設計情報から矩形面積を算出し、前記機能モジュールの設計情報から算出した矩形面積と前記最小周辺長からなる矩形面積とを比較する比較部と、
比較の結果、面積の大きいほうを前記機能モジュールの面積とする面積決定部と、
を有することを特徴とするＬＳＩ機能モジュール配置装置。
【請求項２】
請求項１に記載のＬＳＩ機能モジュール配置装置であって、
前記最小周辺長決定部が決定する前記最小周辺長からなる矩形は正方形であること、
を特徴とするＬＳＩ機能モジュール配置装置。
【請求項３】
請求項１又は２に記載のＬＳＩ機能モジュール配置装置であって、
隣接する２つの機能モジュール間にクリティカルパスがあるか否かを判定し、クリティカルパスがある場合には該２つの機能モジュールの面積の合計値を算出して、算出した該合計値とライブラリに記憶されている上限値とを比較し、比較の結果、該合計値が該上限値より小さければ前記２つの機能モジュールを結合するモジュール結合部をさらに有することを特徴とするＬＳＩ機能モジュール配置装置。
【請求項４】
ＬＳＩ機能モジュール配置装置の最小周辺長決定部が、機能モジュール間のクリティカルパス数を抽出して（該クリティカルパス数）×（単位配線幅）÷（配線層数）を算出し、算出した長さを該機能モジュールの最小周辺長に決定する最小周辺長決定工程と、
前記ＬＳＩ機能モジュール配置装置の比較部が、前記機能モジュールの設計情報から論理数を算出し、記憶部に記憶されたセル面積ライブラリに記憶されている各論理を実装するためのセル面積と算出した論理数とを乗じることで前記機能モジュールの設計情報から矩形面積を算出し、前記機能モジュールの設計情報から算出した矩形面積と前記最小周辺長からなる矩形面積とを比較する比較工程と、
ＬＳＩ機能モジュール配置装置の面積決定部が、前記比較工程での比較の結果、面積の大きいほうを前記機能モジュールの面積とする面積決定工程と
を有することを特徴とするＬＳＩ機能モジュール配置方法。
【請求項５】
ＬＳＩ機能モジュール配置に係る処理をコンピュータに実行させるプログラムであって、コンピュータに、
機能モジュール間のクリティカルパス数を抽出して（該クリティカルパス数）×（単位配線幅）÷（配線層数）を算出し、算出した長さを該機能モジュールの最小周辺長に決定する最小周辺長決定ステップと、
前記機能モジュールの設計情報から論理数を算出し、記憶部に記憶されたセル面積ライブラリに記憶されている各論理を実装するためのセル面積と算出した論理数とを乗じることで前記機能モジュールの設計情報から矩形面積を算出し、前記機能モジュールの設計情報から算出した矩形面積と前記最小周辺長からなる矩形面積とを比較する比較ステップと、
前記比較ステップでの比較の結果、面積の大きいほうを前記機能モジュールの面積とする面積決定ステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ機能モジュール配置装置、ＬＳＩ機能モジュール配置方法およびプログラムに関する。
【背景技術】
【０００２】
LSIの設計は、まず、実現すべきLSIの仕様を決め、その仕様を実現するためのシステムを考える。そして、そのシステムをいくつかの機能モジュールに分割し、各機能モジュールについて、機能設計・論理設計を行う。さらに、それらの各機能モジュールをシリコン・チップ上に実装するときの形状、面積、および配置を決定した後、機能モジュール間を配線する。
【０００３】
機能モジュールの最小面積は、その論理合成やテクノロジ等により一意的に決まる。一方、機能モジュールの形状および配置は設計者により決められる。
機能モジュールを実装するチップサイズが大きくなると、機能モジュール間の配線における信号の伝播遅延時間が無視できなくなる。かかる伝播遅延時間が機能モジュール間のタイミング許容値よりも大きくなるとLSIが誤動作するため、タイミング許容値を考慮しながら、機能モジュールの配置位置や配置形状を決める必要がある。
【０００４】
機能モジュールの配置配線の最適化手法として、特許文献１では仮配線と実配線との誤差を小さくする方法が提示されている。特許文献2では信号経路を制約条件としてセルを配置する方法が提示されている。特許文献3ではタイミングエラーを回避するためのセルのドライブ能力最適化方法が提示されている。特許文献4ではクリティカルパスを制約条件としたミニカット配置法が提示されている。
【特許文献１】特開２００１−２２９２１８号公報
【特許文献２】特開２００３−５８５９０号公報
【特許文献３】特開２００３−３３７８３９号公報
【特許文献４】特許第２５７６３６０号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１では実配線長の最適化については考慮されていないため、実配線長がタイミングエラーとなる程に長ければ前記問題を解決できない。特許文献2でも特許文献１と同様に伝送信号のタイミングについては考慮されていない。特許文献３ではタイミングエラーを回避するためセルのドライブ能力を最適化する方法が提示されているが、配線長を変えずにドライブ能力のみでタイミングエラーを回避するには限界がある。特許文献4では機能モジュールの形状を考慮していないため、機能モジュールの形状をどのように決めればシリコン・チップ上に最適な配置となるかという問題を解決できない。
本発明は機能モジュール間のクリティカルパス数に着目することにより、タイミングエラーとなる危険性が高い部分に留意しながら適切な配置配線が行うことができる、LSI機能モジュール配置装置、プログラムおよびその方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の観点は、機能モジュール間のクリティカルパス数を抽出して（クリティカルパス数）×（単位配線幅）÷（配線層数）を算出し、算出した長さを機能モジュールの最小周辺長に決定する最小周辺長決定部と、機能モジュールの設計情報から論理数を算出し、記憶部に記憶されたセル面積ライブラリに記憶されている各論理を実装するためのセル面積と算出した論理数とを乗じることで機能モジュールの設計情報から矩形面積を算出し、機能モジュールの設計情報から算出した矩形面積と最小周辺長からなる矩形面積とを比較する比較部と、比較の結果、面積の大きいほうをその機能モジュールの面積とする面積決定部とを有するＬＳＩ機能モジュール配置装置を実現することである。
本発明の第２の観点は、ＬＳＩ機能モジュール配置装置の最小周辺長決定部が、機能モジュール間のクリティカルパス数を抽出して（クリティカルパス数）×（単位配線幅）÷（配線層数）を算出し、算出した長さを機能モジュールの最小周辺長に決定する最小周辺長決定工程と、比較部が、機能モジュールの設計情報から論理数を算出し、記憶部に記憶されたセル面積ライブラリに記憶されている各論理を実装するためのセル面積と算出した論理数とを乗じることで機能モジュールの設計情報から矩形面積を算出し、機能モジュールの設計情報から算出した矩形面積と最小周辺長からなる矩形面積とを比較する比較工程と、面積決定部が、比較工程での比較の結果、面積の大きいほうをその機能モジュールの面積とする面積決定工程とを有するＬＳＩ機能モジュール配置方法を実現することである。
本発明の第３の観点は、コンピュータに、機能モジュール間のクリティカルパス数を抽出して（クリティカルパス数）×（単位配線幅）÷（配線層数）を算出し、算出した長さを機能モジュールの最小周辺長に決定する最小周辺長決定ステップと、機能モジュールの設計情報から論理数を算出し、記憶部に記憶されたセル面積ライブラリに記憶されている各論理を実装するためのセル面積と算出した論理数とを乗じることで機能モジュールの設計情報から矩形面積を算出し、機能モジュールの設計情報から算出した矩形面積と最小周辺長からなる矩形面積とを比較する比較ステップと、比較ステップでの比較の結果、面積の大きいほうをその機能モジュールの面積とする面積決定ステップとを実行させるためのプログラムを実現することである。
【発明の効果】
【０００７】
本発明によれば、機能モジュール間のクリティカルパス数に基づいて、LSI機能モジュールの面積を適切な大きさに設定したうえで、LSIチップ上に配置することが可能となる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照しながら、本発明の第１の実施の形態について詳細に説明する。
【０００９】
図1は本発明の一実施形態であるLSI機能モジュール配置装置の構成を説明するためのブロック図である。本発明はLSI機能モジュールの配置に関するものであるから、配置前の工程、すなわち各機能モジュールのLSI論理設計等は終了しているものとする。本装置により、各機能モジュール間のクリティカルパス抽出、各機能モジュールの形状決定、および各機能モジュールの配置を行う。
この装置は、レイアウトデータを記憶する第一の記憶手段1、ライブラリデータを記憶する第二の記憶手段9、制御プログラムを記憶する第三の記憶手段15、制御手段20、入出力装置24、および一時記憶手段23により構成される。制御手段20により制御プログラムが実行され、各制御プログラムは必要に応じてレイアウトデータおよびライブラリデータを参照してそれぞれの制御プログラムに求められる処理をする。
第一の記憶手段1には、レイアウトデータとしてLSI論理設計データ2、LSI物理設計データ3、LSIタイミング解析結果4、機能モジュールリスト5、クリティカルパス判定スラック範囲パラメータ6、クリティカルパスリスト7、およびStatic Timing Analyzer（以下STA）制約データ8が記憶されている。すなわち、各機能モジュールの設計情報および、各機能モジュール間の配線情報が記憶されている。
【００１０】
第二の記憶手段9には、ライブラリデータとしてセルタイミングライブラリ10、仮配線容量テーブル11、セル面積ライブラリ12、チップデザインルールライブラリ13、および上限値ライブラリ14が記憶されている。すなわち、第一の記憶手段1に記憶されているデータにおける面積や伝播遅延などの物理情報を算出するのに必要な基準値が記憶されている。
【００１１】
第三の記憶手段15は、制御プログラムとしてSTAプログラム16、モジュール配置プログラム17、クリティカルパス抽出プログラム18、およびモジュール結合プログラム19が記憶されている。これらのプログラムはメインプログラム22によって実行される。
【００１２】
制御手段20は、中央演算装置21、およびメインプログラム22等により構成される。メインプログラム22によって各構成部の制御、データの選択、データの転送、一時記憶手段23に対する情報の一時記憶等が実行される。一時記憶手段23には、中央演算装置21による処理結果のデータ等が一時的に記憶される。
LSI論理設計データ2は、機能モジュールをすべて含むチップトップのネットリストであり、設計者による入力データである。LSI物理設計データ3は、チップ内のモジュールの物理配置のデータであり、モジュール配置プログラム17およびモジュール結合プログラム19の実行により導き出された、機能モジュールの最適配置を示す。LSIタイミング解析結果4は、STAプログラム16により導き出された、各機能モジュール間のタイミング解析結果である。機能モジュールリスト5は、各機能モジュール名のリストであり、設計者による入力データである。クリティカルパス判定スラック範囲パラメータ6は、LSIタイミング解析結果4のうち、クリティカルパスを判定するためのパラメータであり、判定条件は設計者により設定される。クリティカルパスリスト7はクリティカルパスの一覧データであり、クリティカルパス抽出プログラム18による抽出結果である。STA制約データ8は、回路のClock情報、マルチパス等、機能モジュール間のSTA解析の際に参照するデータであり、その値は設計者により設定される。
セルタイミングライブラリ10は、ユニットセル、マクロセルのタイミングライブラリである。仮配線容量テーブル11は、セル出力の分岐数ごとの実測と、その統計的処理により求められた配線容量値のテーブルである。セル面積ライブラリ12は、ユニットセル、マクロセルの面積ライブラリである。
STAプログラム16は、タイミング解析結果を出力するプログラムである。モジュール配置プログラム17は、モジュールを最適な位置に配置するためのプログラムである。クリティカルパス抽出プログラム18は、LSIタイミング解析結果4からクリティカルパスを抽出し、クリティカルパスリスト7を出力するプログラムである。モジュール結合プログラム19は、2つの機能モジュールを結合して１つにまとめるプログラムである。かかる結合後のモジュールをリージョンと定義する。
図2はLSI機能モジュール配置装置における、機能モジュール配置の最適化フローである。このLSI機能モジュール配置装置は、以下のように動作する。まず、制御手段20の中央演算装置21により、第三の記憶手段15のSTAプログラム16が実行される（Step1）。ここで、STAを実行するには各機能モジュール間の配線条件が決定している必要があるが、機能モジュール設計段階では配線条件は確定していない。そこで、チップサイズ、チップテクノロジ等から統計的に推測される各機能モジュール間の伝播遅延を誘起する仮配線容量値を計算し、これを第二の記憶手段9における仮配線容量テーブル11に記憶させ、仮配線STA実行時にこれを読み出して各機能モジュール間の仮想的な伝播遅延時間を計算する。
図3は、仮配線STA実行時における、機能モジュールの接続の状況である。各機能モジュール32を、Bus31を介して相互に仮配線する。ここで、Bus31は各機能モジュール間のすべての仮配線を意味しており、STAプログラムは、図3の仮配線に対し、図1のLSI論理設計データ2、STA制約データ8、セルタイミングライブラリ10、および仮配線容量テーブル11を元に各機能モジュール間のスラック値を計算する。スラック値とは、タイミングエラーを起こさないために許容される最大伝播遅延時間（要求到達時間）から、１つのモジュールから別のモジュールまで信号が到達するのに現実に要した時間（実到達時間）を引いたものである。要求到達時間tmaxは、各機能モジュールの動作クロックから決まる動作周期T、クロックドライバから送信・受信機能モジュールまでの伝播遅延時間差tskew、信号送信側の機能モジュールへのクロック入力から信号出力までの遅延時間tval、および信号受信側の機能モジュールにおけるセットアップ時間setupにより
【００１３】
【数１】
0004659659.tif 000002
【００１４】
により計算される。仮配線においては機能モジュールは未配置のため、理想的な配置を仮定しtskewを0として計算しても良い。動作周期TはSTA制約データ8に記憶されており、tvalおよびsetupは、各機能モジュールの設計情報すなわちLSI論理設計データ2、セルタイミングライブラリ10により決まる値である。これに対し、実到達時間trealは、信号送信側の機能モジュール出力から信号受信側の機能モジュール入力までの伝播遅延時間なので、仮配線容量値から計算できる。伝播遅延時間は仮配線容量値に比例して大きくなる。したがって、スラック値Sは、
【００１５】
【数２】
0004659659.tif 000003
【００１６】
により計算できる。
計算結果は、図1の制御手段20を介してLSIタイミング解析結果4として保存する。
次に、制御手段20の中央演算装置21により、クリティカルパス抽出プログラム18が実行される（Step2）。クリティカルパス抽出プログラム18は、LSIタイミング解析結果4より、2つの機能モジュール間の1つの仮配線における解析結果を参照する。これを、クリティカルパス判定スラック範囲パラメータ6と比較して、該LSIタイミング解析結果がクリティカルパスとしての条件を満たすか否かを判定する（Step3）。条件を満たす場合は、該仮配線をクリティカルパスリストに追加する（Step4）。条件を満たさない場合はリストに追加しない（Step5）。クリティカルパスの判定結果は、制御手段20を介してクリティカルパスリスト7として保存される。図4は、クリティカルパス抽出プログラム18の実行による、クリティカルパス抽出結果を表現している。図4において、各機能モジュール間のパスのうち1)2)3)4)5)がクリティカルパスとして抽出されたものとする。
続いて、制御手段20により、モジュール配置プログラム17が実行される（Step6）。図5はStep6における処理の詳細フローを表現したものである。モジュール配置プログラム17はLSI論理設計データ2、機能モジュールリスト5、およびセル面積ライブラリ12を参照し、各機能モジュールの最小面積を算出する（Step60）。面積の算出方法は以下の通りである。まず機能モジュールリスト5から、最小面積を計算すべき機能モジュールを抽出する。最小面積の計算は、すべての機能モジュールに対して行う。次に各機能モジュールについて、LSI論理設計データから論理設計情報を参照する。セル面積ライブラリには、各論理をLSIチップ上に実装するためのセル面積が記憶されているので、論理設計情報から論理数を算出し、これにセル面積を掛け合わせることで、各機能モジュールをLSIチップに実装するための面積を算出することが出来る。該算出結果を制約1)とする。
最小周辺長決定部は、第一の記憶手段1のクリティカルパスリスト7を呼び出し（Step61）、ある機能モジュールと他の一つの機能モジュールとのクリティカルパス数をカウントする（Step62）。該クリティカルパス数を制約2)とする。機能モジュール間のクリティカルパスを配線するのに、機能モジュールに最小限必要な辺長は、チップデザインルール、すなわち単位配線幅、および配線層数により異なる。最小周辺長決定部は、クリティカルパスリスト7、およびチップデザインルールライブラリ13を参照し、該クリティカルパスの配線に必要な辺長を算出する（Step63）。ここで単位配線幅とは、チップテクノロジ等の物理的制約により決定する配線間の幅である。よって、配線層数が１の場合は、クリティカルパスの配線に必要な辺長はクリティカルパス数と単位配線幅の積となる。一方、配線層数が２になると、単位配線幅当たりに倍の配線を引くことが可能になる。したがって、辺長は、（クリティカルパス数）×（単位配線幅）÷（配線層数）により求めることが出来る。この辺長を制約3)とする。最小周辺長決定部は、その他の機能モジュール間とのクリティカルパス配線に必要な辺長も同様に算出し、これらを足し合わせる（Step64）。こうして算出された辺長を、機能モジュールの最小周辺長と定義する。算出された最小周辺長からなる形状は任意でよいが、ここでは正方形を仮決定する（Step65）。比較部は、この正方形面積と制約1)の各機能モジュールの最小面積とを比較する（Step66）。面積決定部は、Step65で仮決定した正方形面積のほうが大きければ何もせずにStep68へ進み、小さければ面積が等しくなるように機能モジュールの周辺長を長くする（Step67）。図5のStep61からＳtep67までのステップの内、最小周辺長決定部としてはＳtep61からＳtep64までが対応し、比較部としてはＳtep66が対応し、面積決定部としてはStep67が対応する。
続いて、任意の位置に各機能モジュールを配置し、各機能モジュール間のクリティカルパスを配線する。次にミニカット配置法により、各機能モジュールをチップ内の最適な位置に再配置していく（Step68）。ミニカット配置法については特許第３３０５１７６号に記載がある。ミニカット配置法におけるモジュール間の接続関係には、Step62の制約2)を用いる。すなわち、機能モジュールが配置されたチップ上に仮想的な分割線を引き、該分割線を横切るクリティカルパス数が出来るだけ少なくなるよう、機能モジュールを再配置する。機能モジュールの配置結果は、図1のLSI物理設計データ3に保存される。
機能モジュールの配置が終わると、制御手段20の中央演算装置21により、モジュール結合プログラム19が実行される。まず、LSI物理設計データ3を呼び出し、隣接する2つの機能モジュール間にクリティカルパスがあるかを調べる（Step7）。クリティカルパスがある場合は、2つの機能モジュール面積の合計値を計算する。当該合計値と上限値ライブラリ14に記憶されている上限値とを比較し（Step8）、合計値が上限値より小さければ、当該2つの機能モジュールを結合してリージョンを生成する（Step9）。リージョンとは、二以上の機能モジュールを結合したものである。隣接する機能モジュール間にクリティカルパスが無い場合や、結合後の面積が上限値よりも大きい場合は、他の機能モジュールに対してStep7、8、9の処理を行う。2つの機能モジュールを結合すると、機能モジュール間に存在したクリティカルパスは存在しなくなるので、Step10において該クリティカルパスをクリティカルパスリスト7から削除する。
新たに生成されたリージョンおよび結合されなかった他の機能モジュールに対し、Step6、7、8、9、10の処理を再度実行する。この処理は、隣接するモジュール間にクリティカルパスが無くなるか、リージョンを生成できなくなるまで繰り返される。
以上の工程によって生成されたモジュール配置データは、制御手段20を介してLSI物理設計データ3に保存される。LSI物理設計データ3をもとに、LSIチップ上に最適な機能モジュールの配置が可能となる。また、かかる工程により設計された配置情報に従ってLSIを製造することにより、機能モジュールの配置を最適化したLSIの製造が可能となる。
（付記１）機能モジュール間のクリティカルパス数を抽出し該クリティカルパス数に依存して該機能モジュールの最小周辺長を決定する最小周辺長決定部と、
前記最小周辺長からなる矩形の面積と前記機能モジュールの設計情報から算出される矩形面積とを比較する比較部と、
比較の結果面積の大きいほうを前記機能モジュールの面積とする面積決定部と、
を有することを特徴とするLSI機能モジュール配置装置。
（１）
（付記２）請求項１に記載のLSI機能モジュール配置装置であって、
前記最小周辺長決定部は前記最小周辺長をクリティカルパスの単位配線幅および配線層数により決定すること、
を特徴とするLSI機能モジュール配置装置。
（２）
（付記３）請求項１に記載のLSI機能モジュール配置装置であって、
前記最小周辺長決定部が決定する前記最小周辺長からなる矩形は正方形であること、
を特徴とするLSI機能モジュール配置装置。
（３）
（付記４）機能モジュール間のクリティカルパス数を抽出し該クリティカルパス数に依存して該機能モジュールの最小周辺長を決定し、
前記最小周辺長からなる矩形面積と前記機能モジュールの設計情報から算出される矩形面積とを比較し、
比較の結果面積の大きいほうを前記機能モジュールの面積とすること
を特徴とするLSI機能モジュール配置方法。
（４）
（付記５）コンピュータに、
機能モジュール間のクリティカルパス数を抽出し該クリティカルパス数に依存して該機能モジュールの最小周辺長を決定し、
前記最小周辺長からなる矩形面積と前記機能モジュールの設計情報から算出される矩形面積とを比較し、
比較の結果面積の大きいほうを前記機能モジュールの面積とする処理
を実行させるためのプログラム。
（５）
（付記６）機能モジュール間のクリティカルパス数を抽出し該クリティカルパス数に依存して該機能モジュールの最小周辺長を決定し、
前記最小周辺長からなる矩形面積と前記機能モジュールの設計情報から算出される矩形面積とを比較し、
比較の結果面積の大きいほうを前記機能モジュールの面積とし、
前記機能モジュールを機能モジュール配置領域に配置設計し、
前記配置設計に基づいて半導体基板上に前記機能モジュールに対応する回路を形成すること
を特徴とする半導体装置の製造方法。
（６）
（付記７）コンピュータに、
機能モジュール間のクリティカルパス数を抽出しクリティカルパス数に依存して機能モジュールの最小周辺長を決定し、
該最小周辺長からなる矩形面積と機能モジュールの設計情報から算出される矩形面積とを比較し、
比較の結果面積の大きいほうを該機能モジュールの面積とする処理
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【図面の簡単な説明】
【００１７】
【図１】LSI機能モジュール配置装置の構成図である。
【図２】LSI機能モジュール配置フローである。
【図３】仮配線STA実行時における機能モジュールの仮配線状況図である。
【図４】クリティカルパス抽出プログラム実行時のクリティカルパス抽出状況図である。
【図５】機能モジュール配置プログラムの詳細フローである。
【符号の説明】
【００１８】
１  第一の記憶手段
２  LSI論理設計データ
３  LSI物理設計データ
４  LSIタイミング解析結果
５  機能モジュールリスト
６  クリティカルパス判定スラック範囲パラメータ
７  クリティカルパスリスト
８  STA制約データ
９  第二の記憶手段
１０  セルタイミングライブラリ
１１  仮配線容量テーブル
１２  セル面積ライブラリ
１３  チップデザインルールライブラリ
１４  上限値ライブラリ
１５  第三の記憶手段
１６  ＳＴＡプログラム
１７  モジュール配置プログラム
１８  クリティカルパス抽出プログラム
１９  モジュール結合プログラム
２０  制御手段
２１  中央演算装置
２２  メインプログラム
２３  一時記憶手段
２４  入出力装置
３１  Bus
３２  各機能モジュール
【図１】
0004659659.tif 000004
【図２】
0004659659.tif 000005
【図３】
0004659659.tif 000006
【図４】
0004659659.tif 000007
【図５】
0004659659.tif 000008