(57)【要約】  【課題】  半導体集積回路のセル配置方法において、セルの配置に要する処理時間を短縮する。  【解決手段】  特定セル抽出部１０２は、特定セル指定情報１０８によって指定されたセルを特定セルとして抽出し、特定セル情報１１０に格納する。特定セル配置部１０３は、特定セルの配置を行う。セル配置部１０４は、特定セルの位置情報を利用し、一般的な配置アルゴリズムを用いて残りのセルを配置する。【選択図】  図１
2006023809.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路中のブロックの位置情報を設定するフロアプラン情報のファイルと、セルの種類ごとにセルの形状についての情報を格納するライブラリと、セルの識別子を設定しセルとセルとの論理的接続関係を設定する論理ファイルとを参照して半導体集積回路の前記ブロック上にセルを配置する方法において、
先に配置処理をすべき特定セルを、セルに付された前記識別子を外部から指定するかそれに代わる条件を指定することによって抽出し、前記論理的接続関係を参照して前記特定セルの入力側および出力側のそれぞれの配置済みのセルまでのデータの流れに沿った経路の論理トレースを行って前記経路上の未配置セルを特定し、前記入力側の配置済セルと前記出力側の配置済セルとを含む最小面積の長方形の領域と前記特定セルが属するブロックとの重なる領域を前記特定セルの配置目標位置として設定し、前記配置目標位置中に前記特定セルを配置し、前記配置済のセルの位置情報と前記特定セルの位置情報に基づいて前記経路上の前記未配置セルを配置することを特徴とする半導体集積回路のセル配置方法。
【請求項２】
前記入力側と出力側の一方の配置済セルの代わりに他のブロック境界である場合には、他方の配置済セルと前記他のブロック境界を辺の一部とする最小面積の長方形の領域と前記特定セルが属するブロックとの重なる領域を前記特定セルの配置目標位置として設定することを特徴とする請求項１記載の半導体集積回路のセル配置方法。
【請求項３】
前記入力側と前記出力側の一方の配置済セルの代わりに他のブロック境界に当該経路に接続するピンが存在する場合には、他方の配置済セルと前記ピンを頂点又は辺の一点とする最小面積の長方形の領域と前記特定セルが属するブロックとの重なる領域を前記特定セルの配置目標位置として設定することを特徴とする請求項１記載の半導体集積回路のセル配置方法。
【請求項４】
前記ライブラリは、さらにセルの種類に応じた遅延時間の情報を有し、複数の前記経路の各々について目標マシンサイクルに基づいてセル遅延時間の合計を除いた許容配線遅延時間を求め、前記許容配線遅延時間の小さい経路の特定セルから順に配置することを特徴とする請求項１記載の半導体集積回路のセル配置方法。
【請求項５】
前記ライブラリは、さらにセルの種類に応じた遅延時間の情報を有し、前記経路について目標マシンサイクルに基づいてセル遅延時間の合計を除いた許容配線遅延時間を求め、配線遅延時間に対応する配線長を求め、前記経路上で前記特定セルの一方の側のセルからの配線長制限範囲と他方の側のセルからの配線長制限範囲とが重なる領域内に前記特定セルを配置することを特徴とする請求項１記載の半導体集積回路のセル配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路におけるセルの配置方法に関するものである。
【背景技術】
【０００２】
半導体集積回路のセル配置方法において、従来からディレイを考慮した配置処理が重要視されている。特にデータの流れを持つ論理(以下、データパスと呼ぶ)に関するセルの配置制御方法としては、特開２０００−２５０９６４号公報（特許文献１）等に記載された技術が知られている。この従来技術は、各々のセルについて相対的位置関係の情報を予め与えておくことによって、まずセルを同一の並び情報をキーとしてグループ化し、同一グループのセルを指示された順番に仮配置を行う。その後、仮配置したセルを縦方向または横方向に移動し、セルを整列することによって配線長を短くすることにより、ディレイ制約を満たすものである。
【０００３】
【特許文献１】特開２０００−２５０９６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１が開示するセル配置方法は、対象となる全てのセルについて相対的位置関係の情報を予め与えることが必要であること、および仮配置の結果を見てセルの相対位置情報を修正する作業を何回か繰り返し行う必要があるため、要求する配置結果を得るまでに処理時間がかかる。
【０００５】
本発明の目的は、セルの配置に要する処理時間を短縮することにある。
【課題を解決するための手段】
【０００６】
本発明は、半導体集積回路のセル配置方法において、指定されたセルを特定セルとして抽出し、特定セルを先に配置した後に、一般的な配置アルゴリズムを用いて残りのセルを配置する技術を特徴とする。
【発明の効果】
【０００７】
本発明によれば、セルの配置に要する処理時間を短縮することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施形態について図面を用いて説明する。
【実施例１】
【０００９】
図１は、セルの配置処理を行う情報処理装置の構成を示す図である。情報処理装置は、ＣＰＵ、メモリ、記憶装置、入力装置および出力装置を備える。記憶装置は、フロアプラン情報１０６、論理ファイル１０７、特定セル指定情報１０８、ライブラリ１０９、特定セル情報１１０およびセル配置情報１１１の各ファイルを格納する。
【００１０】
フロアプラン情報１０６は、半導体集積回路中のブロックの配置場所を示す情報を格納する。論理ファイル１０７は、セルとセルの論理的な接続関係を示す情報を格納する。特定セル指定情報１０８は、特定されたキーとなるセルの集合を指定する情報を格納する。ライブラリ１０９は、セルの種類ごとにその形状についての情報を格納する。特定セル情報１１０は、特定セル指定情報１０８に従って抽出された特定セルのセル番号を格納する。セル配置情報１１１は、論理回路のブロックに物理的に配置された各セルの位置情報を格納する。
【００１１】
メモリに格納されるデータ入力処理部１０１、特定セル抽出部１０２、特定セル配置部１０３、セル配置部１０４およびデータ出力処理部１０５の各プログラムは、ＣＰＵによって実行される。
【００１２】
データ入力処理部１０１は、フロアプラン情報１０６、論理ファイル１０７、特定セル指定情報１０８およびライブラリ１０９から目的の半導体集積回路の情報をメモリに読み込む。特定セル抽出部１０２は、メモリに読み込んだ特定セル指定情報１０８に基づきその他の情報を参照して特定セルを抽出し、その番号を特定セル情報１１０に出力する。特定セル配置部１０３は、特定セル情報１１０を参照し、すでに配置済のセルの位置情報を利用して特定セルをブロック上に配置し、その位置情報をセル配置情報１１１に出力する。セル配置部１０４は、特定セルを含む配置済のセルの位置情報を利用してその他未配置のセルをブロック上に配置し、その位置情報をセル配置情報１１１に出力する。データ出力処理部１０５はセル配置情報１１１の内容を出力装置に出力する。
【００１３】
図２は、実施例１の処理の流れを示す図である。まずデータ入力処理部１０１は、フロアプラン情報１０６、論理ファイル１０７、特定セル指定情報１０８およびライブラリ１０９からセルの配置を行う目的の半導体集積回路のデータをメモリに読み込む（ステップ２０１）。次に特定セル抽出部１０２は、メモリ上の特定セル指定情報１０８に従ってライブラリ１０９、論理ファイル１０７を参照し、特定セル群を抽出し、そのセル番号の集合を特定セル情報１１０に格納する（ステップ２０２）。次に特定セル配置部１０３は、メモリ上の論理ファイル１０７を参照し、各特定セルの入力側および出力側の信号線を配置済みのセルまでトレースすることによって配置済みのセルまでの経路を抽出する（ステップ２０３）。次に特定セル配置部１０３は、各特定セルについてトレース情報と配置済みのセルの位置情報を用いてその特定セルの配置目標位置を算出する（ステップ２０４）。次に特定セル配置部１０３は、算出した配置目標位置を用いて各特定セルを配置し、その位置情報をセル配置情報１１１に格納する（ステップ２０５）。次に特定セル配置部１０３は、すべてのブロックについて必要な特定セルが配置されたか否かを判定する（ステップ２０６）。セルが配置されていないブロックがあれば、処理はステップ２０２に戻り、そのブロックについて特定セルを配置するために上記処理を繰り返す。
【００１４】
特定セルを配置した後、セル配置部１０４は、一般的な配置アルゴリズムを用い、配置済のセルを利用してその他のセルの配置を行う（ステップ２０７）。最後にデータ出力処理部１０５は、セル配置情報１１１を出力装置に出力する（ステップ２０８）。
【００１５】
ライブラリ１０９は、セルの種類ごとにサイズ（縦横の寸法）、セル境界に設けられるピンの番号とピンの位置座標、およびセル処理時間についての情報を格納する。セル処理時間は、セルの入力ピンから信号が入力されて処理され、出力ピンに信号が出力されるまでの時間である。ここでセルとは、論理回路の中でまとまってある機能を実現する部分を言い、例えばフリップフロップ、ゲートの集まり、アンド回路、オア回路などである。
【００１６】
論理ファイル１０７は、各セルのセル番号を設定し、セルとセルの論理的な接続関係を設定する。セル番号は、セルの種類を示す記号と各セル種の中で各々のセルを識別する番号の組合せで表現される。セル番号は各セルを識別するためにユニークに付けられた識別子であり、インスタンスとも呼ばれる。セルとセルの接続関係は、出力側セルの出力ピンと入力側セルの入力ピンとの接続を示すリンク情報で表現され、接続する各信号線には信号名が設定される。
【００１７】
フロアプラン情報１０６は、半導体集積回路中のブロックの配置場所を示す位置情報を設定する。各ブロックはブロック名称によって識別される。各セルはいずれかのブロックに属する。ブロックの配置位置は、ブロックの形状に応じてｎ個の座標値によって表現される。またフロアプラン情報１０６は、すでに配置済のセルの位置情報を示す座標値をもつ。
【００１８】
特定セル指定情報１０８は、特定されたセル群を示し、セル番号のリスト、ブロック名称とセル種の指定などによって設定される。
【００１９】
図３は、実施例１による半導体集積回路のセル配置方法を適用する論理回路の例を示す図である。ブロック中の四角が各セルを表わす。実線で示されたセル３０１，３０２，３０３，３０４が配置済みのセルを示し、点線で示されたセルが未配置のセルを示す。配置済みのセルは、半導体集積回路の周辺にあり外部に対する入出力機能をもつセル、特殊な理由により位置が固定されるセルなどである。セルとセルとを結ぶ直線は、セル間の接続関係を示す。ここではデータの流れに沿ったデータパスは、ブロックＡからブロックＢを通り、ブロックＣに至るものとする。
【００２０】
図４は、この論理回路のフロアプランの例を示す。この例ではブロックは矩形の形状をしており、その位置はフロアプラン情報１０６に設定されている。
【００２１】
図５は、図３、図４で示される論理回路のブロックＢについて、特定のセルが指定された状態を示す図である。この例では特定セルは、＊印が付されたセル５０１，５０２，５０３，５０４であることを示す。この例では配置済みのセルの数と特定セルの数が一致している。この例は、特定セル指定情報１０８にブロック名称とセル種が設定されている場合の特定セルの指定であり、ブロックＢ内の指定されたセル種のセルがすべて抽出されている。特定セルを指定する方法としては、このようにセル種を指定する方法、インスタンスの集合を指定する方法、セル間に設定される信号名を指定する方法、セルのサイズやピン数などの条件を指定する方法などがある。
【００２２】
特定セル配置部１０３は、メモリ上の論理ファイル１０７を参照し、抽出した特定セルを起点としてその入力側と出力側に接続している信号線をトレースする。特定セル配置部１０３は、各特定セルについてトレース中に配置済みのセルが見つかったとき、トレースを打ち切り、到達した配置済みのセルの番号、位置情報とこれらのセルまでの経路を示す経路上のセルの番号と信号名のシーケンスをメモリに保存する。
【００２３】
図６は、トレースによって抽出された経路の例を示す。太い線が引かれているところが経路であり、各特定セルについて１つの経路が抽出される。ブロックCでは、トレース中に配置済みセルが見つからずに終端のセルまで到達したため、ブロックCまでの経路が抽出される。特定セル配置部１０３は、フロアプラン情報１０６を参照し、ブロックＣの左側の境界線の位置座標を仮の位置情報として経路の他方の終端のセルの情報とする。仮のセルの位置情報は、ブロックCの左側の境界線の範囲を示す２組の位置座標である。
【００２４】
次に特定セル配置部１０３は、トレース処理によって抽出した配置済みのセルの位置情報又は仮のセルの位置情報と経路の情報から各特定セルの配置目標位置を決定する。配置目標位置は、各経路の両端に位置する配置済みのセルを含む最小面積の長方形の領域のうち当該特定セルが属するブロックに含まれる領域をもととし、その領域から当該ブロックの特定セルの両側に配置する他のセルに必要な領域を取り除いた領域である。ただしすでに決定した他の特定セルの配置目標位置の領域と重複する領域を除く。経路の終端が配置済みのセルの代わりに他のブロック境界である場合には、一方の配置済みのセルを含み、他のブロック境界を辺又は辺の一部とする最小面積の長方形の領域のうち当該ブロックに含まれる領域をもととする。各配置目標位置は、矩形領域であるので、４組の位置座標によって表現される。
【００２５】
図７は、各特定セルについて配置目標位置が決定した論理回路の例を示す。図で一点鎖線で示される領域が各特定セルの配置目標位置である。特定セル５０１の配置目標位置は、その経路の一端に位置する配置済みのセル３０１を含み、ブロックCの左側の境界線を辺として含む最小面積の長方形の領域のうちブロックBに含まれる領域をもととし、その領域からセル７０１とセル７０３を配置するのに必要な領域を取り除いた領域７０６として決定される。同様にして特定セル５０２，５０３についても、配置目標位置としてそれぞれ領域７０７，７０８が決定される。特定セル５０４については、その経路の一端に位置する配置済みのセル３０４を含みブロックＣの左側の境界線を辺として含む最小面積の長方形の代わりに、ブロックＣの左側の境界線の端点を含む長方形の領域のうちブロックＢに含まれる領域をもととし、その領域からセル７１０を配置するのに必要な領域を取り除いた領域７０９が配置目標位置として決定される。領域７０９は、セル３０４からブロックＣまで最短距離の配線が可能な領域である。各セルの配置目標位置は、その領域の中のどこにその特定セルを置いても配線経路の長さが同じになる。言い換えれば各配置済みセルと対応する特定セルとの間が最短距離で配線され得るように配置目標位置が設定されたことになる。
【００２６】
なお経路の一方の端点が配置済みのセルであり他方の端点がブロック境界上にある場合であって、かつブロック境界のピンに位置情報が設定されている場合には、配置済みのセルを含み当該経路に接続するブロック境界のピンを頂点又は辺の一点とする最小面積の長方形の領域をもととして配置目標位置を決定してもよい。特定セルの各々の経路がそれぞれ別々のブロックに到達する場合には、各ブロックの位置情報を用いて上記と同様に配置目標位置を求めることができる。
【００２７】
特定セル配置部１０３は、各特定セルの配置目標位置の領域の面積を計算し、領域の狭い特定セルから順にその特定セルを領域内に配置し、その位置情報をセル配置情報１１１に格納する。なお特定セル配置部１０３は、同一ブロック内の特定セル群について自由度の大きい方向と垂直な方向には特定セル群が一列に並ぶように配列する。なおセルの配置目標位置が与えられたとき、その領域内にセルを配置するアルゴリズムが知られているので、そのようなアルゴリズムを用いることができる。
【００２８】
図８は、このようにしてブロックＢ内の特定セル５０１，５０２，５０３，５０４が配置された状態を示す。特定セル配置部１０３は、その配置目標位置の狭い特定セル５０１の位置を決め、次いで特定セル５０３，５０２，５０４の順で配置位置を決める。この例では縦方向よりも横方向にセル配置の自由度が大きいので、ブロックＢの特定セル５０１，５０２，５０３，５０４が縦方向に一直線上に並ぶように配列される。
【００２９】
特定セル配置部１０３は、すべてのブロックについて必要な特定セルが配置されたか否かを判定する。セルが配置されていないブロックがあれば、特定セル抽出部１０２および特定セル配置部１０３は、そのブロックについて特定セル群の抽出から特定セル群の配置まで上記処理を繰り返す。
【００３０】
図９は、本例のブロックＣについて特定セル９０１，９０２，９０３，９０４が指定された状態を示す図である。
【００３１】
このようにして必要な特定セルがすべて配置された後、セル配置部１０４は、特定セル以外のセルを配置する。その配置方法として一般的に知られた配置アルゴリズムを用いればよい。例えば特開平８−３０５７４５号公報は、配線長が最小になるようにセルを配置する方法を開示する。
【００３２】
以上述べたように配置済セルと特定セルとの間が最短距離で配線可能なように特定セルが配置されたので、その間に配置される他のセルは、両配置済セルの間を最短距離で結ぶ仮想配線上に配置するか、その仮想配線の近くに配置すればよい。このため他のセルの最適な配置位置を探すための処理時間を大幅に短縮することができる。
【実施例２】
【００３３】
実施例１の半導体集積回路のセル配置手順において、ステップ２０３で処理対象の特定セルの前後のフリップフロップまで論理トレースを行い、各経路の遅延時間を算出することができる。経路のセル遅延時間は、その経路上にあるセルの遅延時間の合計である。各セルの遅延時間すなわちセル処理時間はライブラリ１０９から得られる。このときフリップフロップからフリップフロップまでの経路(以下パスという)が複数ある場合には、特定セル配置部１０３は、より遅延時間のかかる方の経路を選択する。パス上のセル遅延時間の合計をＸとすると、Ｘは配線長が０のときのパスの遅延時間となるため、目標マシンサイクルを満たすための配線による遅延時間増加分の許容値、すなわち許容配線遅延時間は以下の式で表すことができる。
【００３４】
許容配線遅延時間＝目標マシンサイクル−Ｘ
特定セル群のうち、許容配線遅延時間の値が小さいものがセル配置についての制約が厳しいため、許容配線遅延時間が少ない特定セルから順に配置することにより、ディレイ制約を満たすことができる。ここでディレイ制約とは、目標マシンサイクルから決まる各パスの遅延時間の制約である。
【００３５】
図１０は、許容配線遅延時間に従って特定セルを配置する例を説明する図である。図でセル３０１〜３０４、セル５０１〜５０４、セル９０１〜９０４がフリップフロップである。処理対象の特定セル５０１を通過するパスのうちでセル遅延時間の合計が最大となるパスがセル３０１からセル９０１までの太線の経路であり、特定セル配置部１０３は、このパスの許容配線遅延時間を求める。同様に特定セル配置部１０３は、セル３０２からセル９０２、セル３０３からセル９０３、セル３０４からセル９０４までの太線で示すパスを抽出し、各パスの許容配線遅延時間を求める。これらのパスのうち許容配線遅延時間の小さいものから順にセル５０３を通過するパス、セル５０１を通過するパス、セル５０２を通過するパス、セル５０４を通過するパスとなった場合、特定セル配置部１０３は、セル５０３，５０１，５０２，５０４の順で配置処理を行う。
【００３６】
図１１に示す論理回路のフロアプランについて、図１０に示す論理回路のセルを配置したものを図１２に示す。図１２によると、セル５０３がブロックＡに最も近い場所に配置される。このときセル５０３を通過するパス上のセル１０１３とセル１０１４を配置するのに必要な領域は確保される。その後にブロックＢ内の他の特定セルを５０１，５０２，５０４の順に配置することにより、許容配線遅延時間が最小のセル５０３を通過するパスが最も短い配線長となり、ディレイ制約を満たしたセルの配置を得ることができる。
【００３７】
実施例１の手順に実施例２を組み込むことにより、目標マシンサイクルを満足するセルの配置を短い処理時間で達成できる。
【実施例３】
【００３８】
実施例２の半導体集積回路のセル配置手順において、各パスの許容配線遅延時間から許容配線長を求めることができる。図１３は、許容配線遅延時間と許容配線長の関係を示す特性グラフである。許容配線遅延時間１３０１が与えられたとき、許容配線長は１３０２が一意に決定される。この許容配線長は、各セル間の信号線の配線長制限値として与えられる。
【００３９】
次に図１４を用いて配線長制限値を使った特定セルの配置方法について説明する。特定セル配置部１０３は、実施例１の手順に従って配置済みのセル３０１の位置情報とブロックＣの左側境界の位置情報から特定セル５０１の配置目標位置７０６を求める。次に特定セル配置部１０３は、特定セル５０１を通過する最短となる経路上のセル７０１に注目し、セル７０１を配線長制約に従って配置する際の最も厳しい条件となるブロックＢの一方の境界近くに配置したと仮定してセル７０１の配線長制限範囲を求める。図１４（ｂ）に示す配線長制限範囲１４０７は、セル７０１を中心とし配線長を半径とする円となる。同様に特定セル配置部１０３は、セル７０３をブロックＢの他方の境界近くに配置したと仮定してセル７０３の配線長制限範囲１４０８を求める。次に特定セル配置部１０３は、配線長制限範囲１４０７と配線長制限範囲１４０８の重なる領域１４０９を求め、領域１４０９と配置目標位置７０６との重なる領域１４１０を求める。特定セル配置部１０３は、領域１４１０内に特定セル５０１を配置する。他のセルについて配線長制限値の下に特開２００１−１６００７８号公報等に開示される配置方法を使って配置することにより、ディレイ制約を満たしたセルの配置を得ることができる。
【図面の簡単な説明】
【００４０】
【図１】実施例１の半導体集積回路のセル配置を行う情報処理装置の構成図である。
【図２】実施例１の処理の流れを示す図である。
【図３】実施例１の論理回路の例を示す図である。
【図４】実施例１のフロアプランの例を示す図である。
【図５】実施例１において特定セルが指定された状態を示す図である。
【図６】トレースによって抽出された経路の例を示す図である。
【図７】各特定セルについて設定された配置目標位置の例を示す図である。
【図８】特定セルが配置された状態の例を示す図である。
【図９】ブロックＣの特定セルが指定された状態を示す図である。
【図１０】許容配線遅延時間に従って特定セルを配置する例を説明する図である。
【図１１】実施例２のフロアプランの例を示す図である。
【図１２】実施例２のセル配置例を表す図である。
【図１３】許容配線遅延時間と許容配線長の関係を示す特性グラフを表す図である。
【図１４（ａ）】実施例３の配置目標位置の範囲を表す図である。
【図１４（ｂ）】実施例３の配置目標位置を決定する方法を説明する図である。
【符号の説明】
【００４１】
１０２…特定セル抽出部、１０３…特定セル配置部、１０４…セル配置部、１０６…フロアプラン情報、１０７…論理ファイル、１０８…特定セル指定情報、１０９…ライブラリ、１１０…特定セル情報、１１１…セル配置情報、５０１，５０２，５０３，５０４…特定セル
【図１】
2006023809.tif 000003
【図２】
2006023809.tif 000004
【図３】
2006023809.tif 000005
【図４】
2006023809.tif 000006
【図５】
2006023809.tif 000007
【図６】
2006023809.tif 000008
【図７】
2006023809.tif 000009
【図８】
2006023809.tif 000010
【図９】
2006023809.tif 000011
【図１０】
2006023809.tif 000012
【図１１】
2006023809.tif 000013
【図１２】
2006023809.tif 000014
【図１３】
2006023809.tif 000015
【図１４（ａ）】
2006023809.tif 000016
【図１４（ｂ）】
2006023809.tif 000017