(57)【特許請求の範囲】
【請求項１】
チップ上に占めるセルの面積割合を表すセル使用率を制限する制限領域と該制限領域のセル最大使用率を各々指定する制限領域指定部と、
前記制限領域指定部で指定された制限領域及びセル最大使用率を入力して管理する制限領域管理部と、
前記制限領域管理部で管理されている前記制限領域のセル使用率が指定された前記セル最大使用率を越えないようにセルを配置するセル配置部とを備え、
前記セル配置部は、
チップ領域について順次２分割を繰り返しながら、各分割毎に２分割した領域間のネット数を示すコストが最小となるようにセルをグループ分けするパーティショニング・ベースド配置部と、
前記分割した２領域の合計面積（Ｓ１＋Ｓ２）を、２領域の合計セル面積ｓに対する前記制限領域のセル最大使用率に基づく各領域のセル有効面積ｓ１´，ｓ２´の比率で案分した各領域の面積Ｓ１´，Ｓ２´に換算し、各領域の換算面積Ｓ１´，Ｓ２´に対する各領域のセル合計面積に比率の差が所定の範囲内となるように、前記パーティショニング・ベースド配置部によるセルのグループ分けを制御するセル配置制御部と、
を備えたことを特徴とするセル配置装置。
【請求項２】
請求項１記載のセル配置装置に於いて、前記制限領域指定部は、利用者の操作入力に基づいて前記制限領域及びセル最大使用率を設定することを特徴とするセル配置装置。
【請求項３】
請求項１記載のセル配置装置に於いて、前記制限領域指定部は、前記制限領域のセル最大使用率として、チップ全体のセル使用率より低い使用率を指定することを特徴とするセル配置装置。
【請求項４】
請求項１記載のセル配置装置に於いて、前記制限領域指定部は、通常のセル使用率６０乃至７０％に対し、前記制限領域のセル最大使用率として使用率５０％を指定することを特徴とするセル配置装置。
【請求項５】
請求項１記載のセル配置装置に於いて、前記制限領域指定部は、配置位置が固定的に決められた既配置セルの位置に基づいてチップ上でブロック分割した各部分の配線密度を見積もり、該配線密度に基づいてセル使用率を制限する制限領域及び該制限領域のセル最大使用率を決定することを特徴とするセル配置装置。
【請求項６】
請求項５記載のセル配置装置に於いて、前記制限領域指定部は、
チップ上に配置位置が固定的に決められた既配置セルを配置する既配置セル配置部と、  前記既配置セルを対象に概略配線を行う概略配線部と、
前記チップを所定サイズのブロックに分割し、各ブロック毎に前記概略配線に基づいて配線密度を検出して配線混雑領域か否か判定する配線混雑領域判定部と、
前記配線混雑領域をセル使用率を制限する制限領域に決定し、該制限領域に通常のセル使用率より低い使用率をセル最大使用率として決定する制限領域指定部と、
を備えたことを特徴とするセル配置装置。
【請求項７】
請求項１記載のセル配置装置に於いて、前記制限領域指定部は、暫定配置したセルの位置に基づいてチップ上でブロック分割した各部分の配線密度を見積もり、該配線密度に基づいてセル使用率を制限する制限領域及び該制限領域のセル最大使用率を決定することを特徴とするセル配置装置。
【請求項８】
請求項７記載のセル配置装置に於いて、前記制限領域指定部は、
チップ上にセルを暫定的に配置するセル暫定配置部と、
前記暫定配置セルを対象に概略配線を行う概略配線部と、
前記チップを所定サイズのブロックに分割し、各ブロック毎に前記概略配線に基づいて配線密度を検出して配線混雑領域か否か判定する配線混雑領域判定部と、前記配線混雑領域をセル使用率を制限する制限領域に決定し、該制限領域に通常のセル使用率より低い使用率をセル最大使用率として決定する制限領域指定部と、
を備えたことを特徴とするセル配置装置。
【請求項９】
請求項６又は８記載のセル配置装置に於いて、前記制限領域決定部は、前記制限領域のセル最大使用率としてチップの全体のセル使用率より低い使用率を決定することを特徴とするセル配置装置。
【請求項１０】
請求項６又は８記載のセル配置装置に於いて、前記制限領域決定部は、前記制限領域のセル最大使用率を予め登録した使用率情報を有し、該使用率情報の参照により前記制限領域のセル最大使用率を決定することを特徴とするセル配置装置。
【請求項１１】
請求項１〜１０の何れかに記載の記載のセル配置装置に於いて、前記セル配置制御部は、
２分割された第１領域と第２領域の各セル面積をｓ１，ｓ２、全セル面積をｓ（＝ｓ１＋ｓ２） 、第１領域の面積をＳ１、第２領域の面積をＳ２、ｉ番目の制限領域の内の第１領域に入っている部分の面積をＳ１（ｉ）、ｉ番目の制限領域の内の第２領域に入っている部分の面積をＳ２（ｉ）、ｉ番目の制限領域で指定したセル使用率をρ（ｉ）とした場合、
第１及び第２領域の各々についてセル使用率の制限のない部分の面積Ｓ１（０）、Ｓ２（０）を、
Ｓ１（０）＝Ｓ１−ΣＳ１（ｉ）
Ｓ２（０）＝Ｓ２−ΣＳ２（ｉ）
として求め、
次にセル使用率の制限のない部分の使用率ρ（０）を、
0003564295.tif 000003
として求め、次に前記使用率ρ（０），ρ（ｉ）に基づいた第１及び第２領域のセル有効面積ｓ１´，ｓ２´を、
ｓ１´ ＝ρ(0) ×Ｓ１（０）)＋Σ（ρ(i) × （Ｓ１（ｉ））
ｓ２´ ＝ρ(0) ×Ｓ２（０）)＋Σ（ρ(i) × （Ｓ１（ｉ））
として求め、
次に第１及び第２領域のセル有効面積ｓ１´，ｓ２´のセル合計面積ｓに対する比率で第１及び第２領域を案分した面積Ｓ１´，Ｓ２´を
Ｓ１´＝（Ｓ１＋Ｓ２）×（ｓ１´／ｓ）
Ｓ２´＝（Ｓ１＋Ｓ２）×（ｓ２´／ｓ）
として換算し、該第１及び第２領域の換算面積Ｓ１´，Ｓ２´に対する各セル面積ｓ１，ｓ２の差の絶対値が
｜ｓ１／Ｓ１´−ｓ２／Ｓ２´｜≦α
の条件を満たすように、前記パーティショニング・ベースド配置部によるセルのグループ分けを制御することを特徴とするセル配置装置。
【請求項１２】
制限領域指定部によりチップ上に占めるセルの面積割合を表すセル使用率を制限する制限領域と該制限領域のセル最大使用率を各々指定する制限領域指定部と、
前記制限領域指定部で指定された制限領域及びセル最大使用率に基づいて制限領域を管理する制限領域管理モジュールと、
前記制限領域管理モジュールで管理されている前記制限領域のセル使用率が指定された前記セル最大使用率以下の範囲でセルを配置するセル配置モジュールとで構成されるセル配置装置によってセルを配置するセル配置方法に於いて、
前記セル配置過程は、
パーティショニング・ベースド配置モジュールにより、チップ領域について順次２分割を繰り返しながら、各分割毎に２分割した領域間のネット数を示すコストが最小となるようにチップをグループ分けするパーティショニング・ベースド配置過程と、
セル配置制御モジュールにより、前記分割した２領域の合計面積（Ｓ１＋Ｓ２）を、２領域の合計セル面積ｓに対する前記制限領域のセル最大使用率に基づく各領域のセル有効面積ｓ１´，ｓ２´の比率で案分した各領域の面積Ｓ１´，Ｓ２´に換算し、各領域の換算面積Ｓ１´，Ｓ２´に対する各領域のセル合計面積に比率の差が所定の範囲内となるように、前記パーティショニング・ベースド配置過程によるセルのグループ分けを制御するセル配置制御過程と、
を備えたことを特徴とするセル配置方法。
【請求項１３】
請求項１２記載のセル配置方法に於いて、前記制限領域指定過程は、外部入力信号に基づいて前記制限領域及びセル最大使用率が設定されることを特徴とするセル配置方法。
【請求項１４】
請求項１２記載のセル配置方法に於いて、前記制限領域指定過程は、前記制限領域のセル最大使用率として、チップ全体のセル使用率より低い使用率が入力されることを特徴とするセル配置方法。
【請求項１５】
請求項１２記載のセル配置方法に於いて、前記制限領域指定過程は、通常のチップのセル使用率６０乃至７０％に対し、前記制限領域のセル最大使用率として使用率が５０％に設定されることを特徴とするセル配置方法。
【請求項１６】
請求項１２記載のセル配置方法に於いて、前記制限領域指定過程は、配置位置が固定的に決められた既配置セルの位置に基づいてチップ上でブロック分割した各過程分の配線密度に基づいてセル使用率を制限する制限領域及び該制限領域のセル最大使用率が決定されることを特徴とするセル配置方法。
【請求項１７】
請求項１６記載のセル配置方法に於いて、前記制限領域指定過程は、
チップ上に配置位置が固定的に決められた既配置セルが既配置セル配置モジュールにより、配置される既配置セル配置過程と、
前記既配置セルを対象に概略配線モジュールにより、概略配線が行われる概略配線過程と、
配線混雑領域判定モジュールにより、前記チップを所定サイズのブロックに分割し、各ブロック毎に前記概略配線に基づいて配線密度を検出して配線混雑領域か否か判定する配線混雑領域判定過程と、
制限領域決定モジュールにより、前記配線混雑領域をセル使用率を制限する制限領域に決定し、該制限領域に通常のセル使用率より低い使用率をセル最大使用率として決定する制限領域決定過程と、
を備えたことを特徴とするセル配置方法。
【請求項１８】
請求項１２記載のセル配置方法に於いて、前記制限領域指定過程は、暫定配置したセルの位置に基づいてチップ上でブロック分割した各過程分の配線密度に基づいてセル使用率を制限する制限領域及び該制限領域のセル最大使用率として設定することを特徴とするセル配置方法。
【請求項１９】
請求項１８記載のセル配置方法に於いて、前記制限領域指定過程は、
セル暫定配置モジュールにより、チップ上にセルを暫定的に配置するセル暫定配置過程と、
概略配線モジュールにより、前記暫定配置セルを対象に概略配線を行う概略配線過程と、
配線混雑領域判定モジュールにより、前記チップを所定サイズのブロックに分割し、各ブロック毎に前記概略配線に基づいて配線密度を検出して配線混雑領域か否か判定する配線混雑領域判定過程と、
制限領域決定モジュールにより、前記配線混雑領域をセル使用率を制限する制限領域に決定し、該制限領域に通常のセル使用率より低い使用率をセル最大使用率として決定する制限領域決定過程と、
を備えたことを特徴とするセル配置方法。
【請求項２０】
請求項１７又は１９記載のセル配置方法に於いて、前記制限領域決定過程は、前記制限領域のセル最大使用率としてチップ全体のセル使用率より低い使用率を決定することを特徴とするセル配置方法。
【請求項２１】
請求項１７又は１９記載のセル配置方法に於いて、前記制限領域決定過程は、前記制限領域のセル最大使用率を予め登録した使用率情報を有し、該使用率情報の参照により前記制限領域のセル最大使用率を決定することを特徴とするセル配置方法。
【請求項２２】
請求項１２〜２１の何れかに記載のセル配置方法に於いて、前記セル配置制御過程は前記セル配置制御モジュールにより、
２分割された第１領域と第２領域の各セル面積をｓ１，ｓ２、全セル面積をｓ（＝ｓ１＋ｓ２） 、第１領域の面積をＳ１、第２領域の面積をＳ２、ｉ番目の制限領域の内の第１領域に入っている過程分の面積をＳ１（ｉ）、ｉ番目の制限領域の内の第２領域に入っている過程分の面積をＳ２（ｉ）、ｉ番目の制限領域で指定したセル使用率をρ（ｉ）とした場合、
第１及び第２領域の各々についてセル使用率の制限のない部分の面積Ｓ１（０）、Ｓ２（０）を、
Ｓ１（０）Ｓ１−ΣＳ１（ｉ）
Ｓ２（０）Ｓ２−ΣＳ２（ｉ）
として求め、
次にセル使用率の制限のない部分の使用率ρ（０）を、
0003564295.tif 000004
次に前記使用率ρ（０），ρ（ｉ）に基づいた第１及び第２領域のセル有効面積ｓ１´，ｓ２´を、
s1´ ＝ρ(0) × S1(0)) ＋Σ（ρ(i) × (S1(i))
s2´ ＝ρ(0) × S2(0)) ＋Σ（ρ(i) × (S1(i))
として求め、
次に第１及び第２領域のセル有効面積ｓ１´，ｓ２´のセル合計面積ｓに対する比率で第１及び第２領域を案分した面積Ｓ１´，Ｓ２´を
Ｓ１´＝（Ｓ１＋Ｓ２）×（ｓ１´／ｓ）
Ｓ２´＝（Ｓ１＋Ｓ２）×（ｓ２´／ｓ）
として換算し、該第１及び第２領域の換算面積Ｓ１´，Ｓ２´に対する各セル面積ｓ１，ｓ２の差の絶対値が
｜ｓ１／Ｓ１´−ｓ２／Ｓ２´｜≦α
の条件を満たすように、前記パーティショニング・ベースド配置過程によるセルのグループ分けを制御することを特徴とするセル配置方法。
【請求項２３】
チップ上に占めるセルの面積割合を表すセル使用率を制限する制限領域と該制限領域のセル最大使用率を各々指定する制限領域指定モジュールと、
前記制限領域指定モジュールで指定された制限領域及びセル最大使用率を入力して管理する制限領域管理モジュールと、
前記制限領域管理モジュールで管理されている前記制限領域のセル使用率が指定された前記セル最大使用率を越えないようにセルを配置するセル配置モジュールとを有し、
前記セル配置モジュールは、
チップ領域について順次２分割を繰り返しながら、各分割毎に２分割した領域間のネット数を示すコストが最小となるようにチップをグループ分けするパーティショニング・ベースド配置モジュールと、
前記分割した２領域の合計面積（Ｓ１＋Ｓ２）を、２領域の合計セル面積ｓに対する前記制限領域のセル最大使用率に基づく各領域のセル有効面積ｓ１´，ｓ２´の比率で案分した各領域の面積Ｓ１´，Ｓ２´に換算し、各領域の換算面積Ｓ１´，Ｓ２´に対する各領域のセル合計面積に比率の差が所定の範囲内となるように、前記パーティショニング・ベースド配置モジュールによるセルのグループ分けを制御するセル配置制御モジュールと、
を備えたことを特徴とする記録媒体。
【請求項２４】
請求項２３記載の記録媒体に於いて、前記制限領域指定モジュールは、利用者の操作入力に基づいて前記制限領域及びセル最大使用率を設定することを特徴とする記録媒体。
【請求項２５】
請求項２３記載の記録媒体に於いて、前記制限領域指定モジュールは、
チップ上に配置位置が固定的に決められた既配置セルを配置する既配置セル配置モジュールと、
前記既配置セルを対象に概略配線を行う概略配線モジュールと、
前記チップを所定サイズのブロックに分割し、各ブロック毎に前記概略配線に基づいて配線密度を検出して配線混雑領域か否か判定する配線混雑領域判定モジュールと、
前記配線混雑領域をセル使用率を制限する制限領域に決定し、該制限領域に通常のセル使用率より低い使用率をセル最大使用率として決定する制限領域指定モジュールと、
を備えたことを特徴とする記録媒体。
【請求項２６】
請求項２３記載のセル配置装置に於いて、前記制限領域指定モジュールは、
チップ上にセルを暫定的に配置するセル暫定配置モジュールと、
前記暫定配置セルを対象に概略配線を行う概略配線モジュールと、
前記チップを所定サイズのブロックに分割し、各ブロック毎に前記概略配線に基づいて配線密度を検出して配線混雑領域か否か判定する配線混雑領域判定モジュールと、
前記配線混雑領域をセル使用率を制限する制限領域に決定し、該制限領域に通常のセル使用率より低い使用率をセル最大使用率として決定する制限領域指定モジュールと、
を備えたことを特徴とする記録媒体。
【請求項２７】
請求項２４〜２６の何れかに記載の記録媒体に於いて、前記セル配置制御モジュールは、
２分割された第１領域と第２領域の各セル面積をｓ１，ｓ２、全セル面積をｓ（＝ｓ１＋ｓ２）、第１領域の面積をＳ１、第２領域の面積をＳ２、ｉ番目の制限領域の内の第１領域に入っている部分の面積をＳ１（ｉ）、ｉ番目の制限領域の内の第２領域に入っている部分の面積をＳ２（ｉ）、ｉ番目の制限領域で指定したセル使用率をρ（ｉ）とした場合、
第１及び第２領域の各々についてセル使用率の制限のない部分の面積Ｓ１（０）、Ｓ２（０）を、
Ｓ１（０）Ｓ１−ΣＳ１（ｉ）
Ｓ２（０）Ｓ２−ΣＳ２（ｉ）
として求め、
次にセル使用率の制限のない部分の使用率ρ（０）を、
0003564295.tif 000005
として求め、
次に前記使用率ρ（０），ρ（ｉ）に基づいた第１及び第２領域のセル有効面積ｓ１´，ｓ２´を、
ｓ１´＝ρ（０）×Ｓ１（０））＋Σ（ρ（ｉ） × （Ｓ１（ｉ））
ｓ２´＝ρ（０）×Ｓ２（０））＋Σ（ρ（ｉ） × （Ｓ１（ｉ））
として求め、
次に第１及び第２領域のセル有効面積ｓ１´，ｓ２´のセル合計面積ｓに対する比率で第１及び第２領域を案分した面積Ｓ１´，Ｓ２´を
Ｓ１´＝（Ｓ１＋Ｓ２）×（ｓ１´／ｓ）
Ｓ２´＝（Ｓ１＋Ｓ２）×（ｓ２´／ｓ）
として換算し、該第１及び第２領域の換算面積Ｓ１´，Ｓ２´に対する各セル面積ｓ１，ｓ２の差の絶対値が
｜ｓ１／Ｓ１´−ｓ２／Ｓ２´｜≦α
の条件を満たすように、前記パーティショニング・ベースド配置モジュールによるセルのグループ分けを制御することを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＳＩやＶＬＳＩのコンピュータ支援の自動設計において論理設計に続いて行われるレイアウト設計で使用されるセル配置装置及び方法並びにセル配置プログラムを格納したコンピュータ読取り可能な記録媒体に関し、特に、セル上の配線密度が混雑する領域のセル使用率を制限して最適なセル配置を実現するセル配置装置及び方法並びにセル配置プログラムを格納したコンピュータ読取り可能な記録媒体に関する。
【０００２】
【従来の技術】
ＶＬＳＩ、ＬＳＩ等の大規模半導体集積回路をコンピュータの支援により自動設計するＣＡＤシステムにあっては、まずＡＮＤ、ＯＲ等のセルと、セル間の接続（ネット）を決定する論理設計を行い、次に、論理設計で得られるネットリストに基づきチップ上のセル位置を決定するセル配置処理を行い、最後に、チップ上に配置したセル間のネットをどう引くかの配線を決める配線処理（ルーチング：ｒｏｕｔｉｎｇ）  を行っている。
【０００３】
従来のセル配置処理としては、例えばパーティションニング・ベースド配置アルゴリズムが知られている。パーティションニング・ベースド配置アルゴリズムルは、まずチップ全体を２つの領域に分割し、全てのセルを分割した２つの領域に振り分ける。セルの降り分ける基準は、セルを２つの領域に降り分けたとき、２つの領域に跨って存在するネットの数をコストとし、このコストが最小となるようなグループ分けする。
【０００４】
このようなセル領域の分割とセルの振り分けを、分割したブロックがセル１個に対応した最小ブロックとなるまで繰り返す。
この場合、チップ上にセルを配置した結果、セルが１カ所に固まってしまったのでは、配線することができないので、セルの分布に制約条件をつけて配置する。この制約条件は、まず２つの領域のセル使用率ρ（１），ρ（２）を次式で求める。
【０００５】
ρ（２）＝ｓ１／Ｓ１
ρ（２）＝ｓ２／Ｓ２
次に２つの領域の使用率の差の絶対値が正の定数α以下とする条件式、
｜（ｓ１／Ｓ１）−（ｓ２／Ｓ２）｜≦α        （１）
但し、αは正の定数
を制約条件とし、この条件式を満すようにセルをグループ分けする。
【０００６】
このようにブロック分割した際のセル使用率の相違が一定の範囲に入っているという条件を満たして配置することにより、セルを適度に分散させる。このようなセル使用率の制約条件を面積制約と呼ぶことにする。
【０００７】
【発明が解決しようとする課題】
しかしながら、コンピュータ支援のセル配置処理はチップ上に全てのセルを配置するわけではなく、例えば、クロック信号の伝達用セル、ＲＡＭ等のセルは、セルの自動配置を行う前に、既に位置が決定しているのが普通である。このためセル配置の制約条件として面積制約を設定した従来のセル配置処理にあっては、チップ上に予め配置位置の決った既配置セルが存在する場合、これらの既配置セルに接続しているネットのため、セル配置完了に続いて行う配線処理において配線密度に片寄りを生じる可能性がある。
【０００８】
このため配線密度が高い部分では、配線に使用する面積が他の部分よりも大きくなるなどの理由から、セルの配置時に、セルの使用面積を他の部分よりも下げておかなければならない。配線密度は概略配線を行ってみれば、ほぼ正確に見積もれるので、セル配置が略終了した段階で概略配線を行い、配線密度が高い部分からセルを取り除く作業を追加する方法が考えられる。
【０００９】
しかし、配線密度の高い部分からセルを取り除いて他の部分に移す場合、セル配置処理におけるセル使用率の制約条件が崩れるため、セル配置の品質が全体的に悪化し、やはり配線できない可能性がある。
またシミュレーティド・アニーリングなどのアルゴリズムを用いて、セル配置の品質を保証しながら配線密度の高い部分からセルを取り除いて他の部分に移す操作を行うことも可能である。しかし、セル配置の品質は保たれるものの、この方法では処理時間がかかることになる。
【００１０】
特定の領域のセル使用面積を下げる方法として、従来はセル配置禁止領域やフロアプランなどが使用されている。しかし、セル配置禁止領域は、その範囲内にセルを配置することを完全に禁止することを目的としている。このため、ある領域に、セル使用面積を下げるためにセル配置禁止領域を部分的に設定した場合、このセル配置禁止領域により配置できるセルの大きさが制約され、大きめセルが配置できないという不都合の方が大きくなる。
【００１１】
またフロアプランは、あるロジックを構成するモジュール（マクロセル）を配置する領域を指定するものであり、制御する単位がロジックによって決められている。このためモジュール内に配線密度の高い領域が存在しても、この部分のセル使用面積をフロアプランによって下げることはできない。また２つのモジュール間に配線密度の高い領域が存在するような場合も、この部分のセルの使用面積をフロアプランによって下げることはできない。
【００１２】
即ち、セル配置禁止領域とフロアプランは、両者とも別の目的のために作られたものであり、配線密度の高い領域のセルの使用面積を下げるために使用できない。
従って、チップ上に既配置セル等が存在する場合、ネット及びセルともに密度が高い部分が生じて配線が困難になり、これを回避するためにセル配置をやり直すと処理に時間がかかるという問題点があった。
【００１３】
本発明は、このような問題点に鑑みてなされたもので、既配置セル等に起因したセル配置で特定領域の配線密度が高くなって配線が困難になることを防止するセル配置装置および方法並びにセル配置プログラムを格納したコンピュータ読取り可能な記録媒体を提供することを目的とする。
【００１４】
【問題点を解決するための手段】
図１は本発明の原理説明図である。本発明のセル配置装置は、図１（Ａ）のように、制限領域指定部２２、制限領域管理部２４、及びセル配置部２６で構成される。
制限領域指定部２２は、チップ上に占めるセルの面積割合を表すセル使用率を制限する制限領域４０と、この制限領域のセル最大使用率ρ、例えばρ＝５０％を各々指定する。制限領域管理モジュール２４は、制限域指定部２２で指定された制限領域５０及びセル最大使用率を入力して管理する。
【００１５】
セル配置モジュール２６は、制限領域管理モジュール２４で管理されている制限領域４０のセル使用率が指定されたセル最大使用率を越えないようにセルを配置する。
このように本発明の自動セル配置装置にあっては、チップ上の配線密度が高くなりそうな部分を、セル使用率を制限する制限領域４０として指定すると共に、制限領域内での最大セル使用率を指定しておくことで、指定された制限領域４０のセル使用率が、指定された最大セル使用率を超えないセルが配置され、配線密度が高い領域はセル使用率が低いため、配線処理が確実にでき、余分な時間をかけずに配線を完了できる。
【００１６】
制限領域の位置とセル最大使用率の決め方として最も単純なものは、図１８Ａ）のように、ユーザが指定するものである。即ち、制限領域指定部２２は、チップ上の既配置セル３６，３８の間の配設混雑領域等を判断した利用者の操作入力に基づいて、制限領域４０及びセル最大使用率を指定する。ここで制限領域４０のセル最大使用率としては、チップ全体のセル使用率より低い使用率を指定する。例えば、通常のチップのセル使用率６０乃至７０％に対し、制限領域のセル最大使用率ρｍａｘ  として使用率５０％を指定する。
【００１７】
また制限領域の位置とセル最大使用率の別の決め方として、制限領域指定部２２は、配置位置が固定的に決められた既配置セルの位置に基づいてチップ上でブロック分割した各部分の配線密度を見積もり、この配線密度に基づいてセル使用率を制限する制限領域及び制限領域のセル最大使用率を決定する。
即ち、制限領域指定部２２は、図１（Ｂ）のように、チップ上に配置位置が固定的に決められた既配置セルを配置する既配置セル配置モジュール６６、既配置セルを対象に概略配線を行う概略配線モジュール６８、チップを所定サイズのブロックに分割し、各ブロック毎に概略配線に基づいて配線密度を検出して配線混雑領域か否か判定する配線混雑領域判定モジュール７０、及び配線混雑領域をセル使用率を制限する制限領域に決定し、この制限領域に通常のセル使用率より低い使用率をセル最大使用率として決定する制限領域指定モジュール７２で構成される。
【００１８】
更に制限領域の位置とセル最大使用率の別の決め方として制限領域指定部２２は、暫定配置（ｇｒｏｂａｌ／ｒｏｕｇｈ  ｐｌａｃｅｍｅｎｔ）  したセルの位置に基づいてチップ上でブロック分割した各部分の配線密度を見積もり、この配線密度に基づいてセル使用率を制限する制限領域及び該制限領域のセル最大使用率を決定する。
即ち、制限領域指定部２２は、図１（Ｃ）のように、チップ上にセルを暫定的に配置するセル暫定高速配置モジュール９４、暫定配置セルを対象に概略配線を行う概略配線モジュール６８、チップを所定サイズのブロックに分割し、各ブロック毎に前記概略配線に基づいて配線密度を検出して配線混雑領域か否か判定する配線混雑領域判定モジュール、及び配線混雑領域をセル使用率を制限する制限領域に決定し、制限領域に通常のセル使用率より低い使用率をセル最大使用率として決定する制限領域指定モジュール７２で構成される。
【００１９】
ここでセルを暫定配置することで高速なセル配置ができるが、最適化が不十分になるため、このセル配置結果を使って配線処理を行うと、線長が長くなり、配線がしにくく品質が下がり、配線処理に使用するには不適切である。しかし、配線が混雑する領域をある程度見積もることができるので、セル暫定配置の情報に基づいた概略配線により配線混雑領域を判定して制限領域と通常より低いセル最大使用率の指定を行うことで、配線のしやすいセル配置結果が期待できる。
【００２０】
図１（Ｂ）（Ｃ）の制限領域決定モジュール７２は、制限領域のセル最大使用率としてチップのセル使用率より低い使用率を決定する。また制限領域決定モジュール７２は、制限領域のセル最大使用率を予め登録した使用率情報（使用率リスト）を有し、この使用率情報の参照により制限領域のセル最大使用率を決定する。
【００２１】
セル配置モジュール２６は、チップ領域について順次２分割を繰り返しながら、各分割毎に２分割した領域間のネット数を示すコストが最小となるようにチップをグループ分けするパーティショニング・ベースド配置モジュール３０と、分割した２領域の合計面積（Ｓ１＋Ｓ２）を、２領域の合計セル面積ｓに対する制限領域のセル最大使用率に基づく各領域のセル有効面積ｓ１´，ｓ２´  比率で案分した各領域の面積Ｓ１´，Ｓ２´に換算し、各領域の換算面積Ｓ１´，Ｓ２´に対する各領域のセル合計面積に比率の差が所定の範囲内となるように、パーティショニング・ベースド配置モジュールによるセルのグループ分けを制御するセル配置制御モジュール３２を備える。
【００２２】
セル配置制御モジュール３２は、次の処理を行う。
▲１▼２分割された第１領域と第２領域の各セル面積をｓ１，ｓ２、全セル面積をｓ（＝ｓ１＋ｓ２）  、第１領域の面積をＳ１、第２領域の面積をＳ２、ｉ番目の制限領域の内の第１領域に入っている部分の面積をＳ１（ｉ）、ｉ番目の制限領域の内の第２領域に入っている部分の面積をＳ２（ｉ）、ｉ番目の制限領域で指定したセル使用率をρ（ｉ）とした場合、
▲２▼第１及び第２領域の各々についてセル使用率の制限のない部分の面積Ｓ１（０）、Ｓ２（０）を、
Ｓ１（０）Ｓ１−ΣＳ１（ｉ）
Ｓ２（０）Ｓ２−ΣＳ２（ｉ）
として求め、
▲３▼次にセル使用率の制限のない部分の使用率ρ（０）を、
ρ（０）  ＝｛（全セル面積）−（使用率指定領域の合計セル面積）｝／（全面積）
＝［ｓ−Σ｛ρ（ｉ）  ×  （Ｓ１（ｉ）＋Ｓ２（ｉ））｝］／Ｓ１（０）＋Ｓ２（０））
として求め、
▲４▼次に前記使用率ρ（０），ρ（ｉ）に基づいた第１及び第２領域のセル有効面積ｓ１´，ｓ２´を、
ｓ１´  ＝ρ（０）  ×  Ｓ１（０））  ＋Σ（ρ（ｉ）  ×  （Ｓ１（ｉ））
ｓ２´  ＝ρ（０）  ×  Ｓ２（０））  ＋Σ（ρ（ｉ）  ×  （Ｓ１（ｉ））
として求め、
▲５▼次に第１及び第２領域のセル有効面積ｓ１´，ｓ２´のセル合計面積ｓに対する比率で第１及び第２領域を案分した面積Ｓ１´，Ｓ２´を
Ｓ１´＝（Ｓ１＋Ｓ２）×（ｓ１´／ｓ）
Ｓ２´＝（Ｓ１＋Ｓ２）×（ｓ２´／ｓ）
として換算し、
▲６▼この第１及び第２領域の換算面積Ｓ１´，Ｓ２´に対する各セル面積ｓ１，ｓ２の差の絶対値が
｜ｓ１／Ｓ１´−ｓ２／Ｓ２´｜≦α
の条件を満たすように、パーティショニング・ベースド配置モジュールによるセルのグループ分けを制御する。
【００２３】
また本発明は、セル配置方法を提供するものであり、次の手順をもつ。
チップ上に占めるセルの面積割合を表すセル使用率を制限する制限領域と制限領域のセル最大使用率を指定する制限領域指定過程と；
制限領域指定過程で指定された制限領域及びセル最大使用率を入力して管理する制限領域管理過程と、
制限領域管理過程で管理されている前記制限領域のセル使用率が指定されたセル最大使用率を越えないようにセルを配置するセル配置過程と、
を備えたことを特徴とする。
【００２４】
このセル配置方法の詳細は、装置構成と同じになる。
また本発明は、セル配置プログラムを記録したコンピュータ読取り可能な記録媒体を提供するものであり、次の手順をもつ。
チップ上に占めるセルの面積割合を表すセル使用率を制限する制限領域と制限領域のセル最大使用率を指定する制限領域指定過程；
制限領域指定過程で指定された制限領域及びセル最大使用率を入力して管理する制限領域管理過程と、
制限領域管理過程で管理されている制限領域のセル使用率が指定されたセル最大使用率を越えないようにセルを配置するセル配置過程；
このセル配置方法の詳細は、装置構成と同じになる。
【００２５】
【発明の実施の形態】
図２は本発明のセル配置装置が使用されるコンピュータ支援のＬＳＩ又はＶＬＳＩ自動設計システムのブロック図である。
このＬＳＩ自動設計システムは、論理設計システム１０とレイアウト設計システム１４で構成される。論理設計システム１０は、設計対象となる大規模集積回路の動作内容を表す情報を入力とし、ライブラリに登録されているセルとセル間の接続情報で表現した論理的な接続情報でなるネットリストデータ１２を生成する。
【００２６】
レイアウト設計システム１４は、論理設計システム１０で生成されたネットリストデータ１２に基づき、チップ上でのセルの配置と配置したセル間の配線処理を行ってレイアウト設計データ１６を生成する。このためレイアウト設計システム１４には、セル配置システム１８とセル間配線システム２０が設けられている。本発明のセル配置システムは、レイアウト設計システム１４に設けられたセル配置システム１８として実現されている。
【００２７】
図３は、図２のレイアウト設計システム１４に設けた本発明のセル配置装置としてのセル配置システム１８の第１実施形態であり、この実施形態にあっては、ユーザによってチップ上のセル使用率を制限する制限領域と、制限領域のセル最大使用率の指定を行うようにしたことを特徴とする。
図３において、本発明のセル配置装置として機能するセル配置システム１８は、ユーザインタフェースとして機能する制限領域指定部２２、制限領域管理モジュール２４、セル配置モジュール２６で構成される。セル配置モジュール２６にはパーティショニング・ベースド配置モジュール３０とセル配置制御モジュール３２の機能が設けられる。
【００２８】
ユーザインタフェースとして機能する制限領域指定部２２は、ユーザの操作入力に基づいてチップ上に制限領域及びその制限領域のセル最大使用率を指定する。制限領域指定部２２によるユーザによるセル使用率を制限する制限領域の指定方法は、例えば図４に示すようにして行う。
図４はセル配置処理の対象となるチップ領域３４であり、このチップ領域３４については例えば２つの既配置セル３６，３８が存在していたとする。既配置セル３６，３８は、クロック信号伝達用セルやＲＡＭなどのメモリセルであり、チップ領域３４に対する配置位置が予め固定的に決まっており、図３のセル配置モジュール２６によるセル配置の対象から除外されたセルである。
【００２９】
このようにチップ領域３４に既配置セル３６，３８が存在する場合には、既配置セル３６，３８の間の領域を通る配線数が図２の論理設計システム１０で生成されたネットリストデータ１２の参照で分かり、この既配置セル３６，３８に起因した配線に加えて、その間に配置したセルの配線が加わることで、配線密度の高い領域と判断することができる。
【００３０】
そこで、ユーザは既配置セル３６と既配置セル３８で挟まれた矩形の領域が配線密度が高くなることが予想される配線密度混雑領域と判断し、この領域をセル使用率を制限する制限領域４０に指定する。このようにしてユーザが既配置セル３６，３８の間の矩形領域を制限領域４０に指定したならば、次に制限領域４０のセル最大使用率を指定する。
【００３１】
このセル最大使用率の指定については、まずチップ領域３４の全体のセル使用率ρ（Ｔ）を求める。
即ち、
ρ（Ｔ）＝（全セル面積）／（チップ領域面積）
とする。この場合、既配置セル３６，３８の設置面積はセル禁止領域となることから、チップ領域面積から除く。もちろん、既配置セル３６，３８のセル面積も全セル面積には含めない。
【００３２】
このようにしてチップ領域３４の全体のセル使用率ρ（Ｔ）を算出し、例えばρ（Ｔ）＝７０％であったとすると、既配置セル３６，３８の間の制限領域４０のセル最大使用率ρ（ｉ）＝５０％を指定する。
この種のコンピュータ支援による大規模集積回路の自動設計において、経験的にチップ領域３４の全体的な使用率は６０％〜７０％である。したがって制限領域４０については、この通常の使用率より低い例えば５０％とすることが望ましい。また制限領域４０の使用率は全体の使用率に対応して変化させても良い。
【００３３】
例えば全体の使用率が８０％であったならば制限領域４０の使用率は６０％とし、また全体の使用率が６０％であったならば制限領域４０の使用率は４０％とする。即ち、制限領域４０の使用率は非制限領域の使用率より低い値であれば必要に応じて適宜の値を指定することができる。
図５は図３のユーザインタフェースとしての制限領域指定部２２によりユーザが指定する制限領域の他の例である。図５（Ａ）はセル配置対象とする大規模集積回路を構築するチップ４４の側面図であり、このチップ４４によっては例えば第０層４６、第１層４８、第２層５０及び第３層５２の４層構造を持っている。このうち第０層４６がセル配置に使用され、それ以外の第１層４８〜第３層５２はパワー供給や信号伝送の予定に使用される。
【００３４】
図５（Ｂ）は、図５（Ａ）の第３層５２の平面図であり、第３層５２には格子状にパワーライン５４が形成されており、このパワーライン５４に対し垂直方向のスルーホールによる接続で、下位に位置する第０層４６から第２層５０に対し電源供給ができるようにしている。このパワーライン５４の幅は第０層４６に配置されるセルのサイズに比べ十分広く、パワーライン５４の幅の中に多数のセルが配置される関係にある。
【００３５】
図５（Ｃ）は、図５（Ａ）の第０層４６の平面図であり、図５（Ｂ）の第３層５２のパワーライン５４に対応した斜線で示す格子状の領域５６に存在するセルが、第３層５２のパワーライン５４と垂直方向の配線接続により電源供給を受け、このため配線密度の高い領域ということができる。そこでオペレータは、図５（Ｃ）の第０層４６で与えられるチップ領域のパワーライン５４に対応した斜線部の領域をセル使用率を制限する制限領域５６に指定する。
【００３６】
このようにパワーライン５４に対応した制限領域５６が指定できたならば、ユーザは第０層４６をセル領域とした全体のセル使用率を算出し、この全体のセル使用率より低い使用率を制限領域５６に指定する。例えば図４と同様、全体の使用率が７０％であればパワーライン対応の制限領域５６に使用率５０％を指定する。
再び図３を参照するに、制限領域指定部２２によるユーザ指定によって、例えば図４または図５（Ｃ）のように制限領域４０，５６とそのセル使用率が指定されると、指定された制限領域とセル使用率は制限領域管理モジュール２４に入力され、セル配置モジュール２６におけるセル配置処理の際の制御パラメータとして管理される。
【００３７】
セル配置モジュール２６はパーティショニング・ベースド配置モジュール３０により、ネットリストデータ１２に基づいて対象チップ上にセル配置を行う。このときセル配置制御モジュール３２が制限領域管理モジュール２４で管理されているユーザ指定の制限領域とそのセル使用率に基づいたセルの振り分けを調整する。
【００３８】
パーティショニング・ベースド配置モジュール３０によるセル配置を簡単に説明する。パーティショニング・ベースド配置モジュール３０は、対象チップ領域についで順次２分割を繰り返しながら、各分割毎に２分割した領域間のネット数を示すコストが最小となるようにチップをグループ分けする。
このようなパーティショニング・ベースド配置モジュール３０のセル配置に対し、セル配置制御モジュール３２はパーティショニング・ベースド配置モジュール３０でチップ領域の２分割によるチップグループ分けが行われる毎に、分割した２領域の合計面積（Ｓ１＋Ｓ２）を２領域の合計セル面積ｓに対する制限領域のセル最大使用率に基づく各領域のセル有効面積ｓ１´，ｓ２´との比率で案分した各領域の面積ｓ１´，ｓ２´に換算し、この換算面積Ｓ１´，Ｓ２´に対する各領域のセル合計面積ｓの比率の差が所定の範囲内となるように、パーティショニング・ベースド配置モジュール３０におけるセルのグループ分けを制御する。
【００３９】
このパーティショニング・ベースド配置モジュール３０とセル配置制御モジュール３２の処理の詳細は後の説明で明らかにする。
図６は、図３の実施形態におけるセル配置処理のジェネリックなフローチャートである。このセル配置処理にあっては、まずステップＳ１でチップ上にセル使用率を制限する制限領域とそのセル使用率を指定する。図３の実施形態にあっては、ユーザインタフェースとして機能する制限領域指定部２２によって、図４または図５に示したようにしてチップ上の配線密度が混雑すると思われる領域をセル使用率の制限領域に指定し、この制限領域についてセル全体の使用率より低い使用率例えば５０％を指定している。
【００４０】
次にステップＳ２に進み、指定されたセル使用率の制限領域に指定されたセル使用率を超えないようにセル配置をセル配置モジュール２６が行う。
図７は、図６のステップＳ１のセル使用率制限領域指定処理の詳細フローチャートであり、図３の実施形態のユーザインタフェースとして機能する制限領域指定部２２によるユーザ指定の場合のフローチャートである。このユーザ指定の制限領域指定処理にあっては、ステップＳ１で例えば図４のように配置位置が固定的に決まっている既配置セルがあれば、これを配置する。
【００４１】
次にステップＳ２で、図５に示したようにセル配置層に対する電源やネット用の他層との接続領域を設定する。次にステップＳ３で、図４の既配置セル３６，３８の間の領域や図５（Ｃ）の他層のパワーライン対応の領域５６を配線混雑領域と判断してセル使用率の制限領域を指定し、この制限領域に他の領域より低い使用率を指定する。
【００４２】
図８は、図６のジェネリックフローチャートのステップＳ２における指定されたセル使用率の制限領域に指定されたセル使用率を超えないようにセルを配置するためのセル配置処理、即ち図３のセル配置モジュール２６に設けたパーティショニング・ベースド配置モジュール３０及びセル配置制御モジュール３２によるセル配置処理のフローチャートである。
【００４３】
図８のフローチャートにおいて、ステップＳ１，Ｓ２は図３のセル配置モジュール２６におけるパーティショニング・ベースド配置モジュール３０の処理であり、残りのステップＳ３〜Ｓ１１がセル配置モジュール３２による処理となる。まずパーティショニング・ベースド配置モジュール３０によるセル配置処理は、ステップＳ１で対象チップ領域を２分割し、次にステップＳ２で対象チップ領域のセルを分割した２領域に振り分け、領域間のネットのコストが最小となるようにグループ分けして配置候補を決定する。
【００４４】
ステップＳ１における対象チップ領域の２分割としては、図９（Ａ）（Ｂ）（Ｃ）（Ｄ）のものがある。図９（Ａ）は対象チップ領域３４を垂直ライン、水平ライン、垂直ライン、水平ラインの順番に交互に２分割していく分割である。例えば垂直ラインＬ１、水平ラインＬ２、垂直ラインＬ３、水平ラインＬ４と分割し、この垂直、水平の順番による分割をセル１つが入る所定の最小ブロックサイズまで繰り返す。
【００４５】
図９（Ｂ）は対象領域を同時に同一サイズに４分割する分割である。即ち、１回目は垂直ラインＬ１ａと水平ラインＬ１ｂを同時に引いて同一サイズの４領域に分割する。２回目は４つの分割領域について２本の垂直ラインＬ２ａと２本の水平ラインＬ２ｂを引いて、それぞれ同一サイズの４領域に分割する。
図９（Ｃ）は水平ラインＬ１、次に２本の水平ラインＬ２ａにより垂直方向について最小サイズまで分割し、次に垂直ラインＬ３と２本の垂直ラインＬ４ａにより水平方向について最小サイズまで順次分割する。
【００４６】
図９（Ｄ）は水平ラインＬ１〜Ｌ４の順番に最小サイズで垂直方向に分割した後、垂直ラインＬ５、２本の垂直ラインＬ６ｂの順番に水平方向で順次最小サイズまで分割する。
この図９（Ａ）〜（Ｄ）のいずれの分割法にあっても、１つの対象領域を２分割した際の領域間のネットコストが最小となるようにセルをグループ分けする。
【００４７】
図８のステップＳ２の分割された２領域に領域間のネットコストが最小となるようにセルをグループ分けするためのアルゴリズムとしては、次のものがある。
▲１▼Ｋｅｒｎｉｇｈａｎ−Ｌｉｎアルゴリズム（Ｋ−Ｌアルゴリズム）
▲２▼拡張Ｋ−Ｌアルゴリズム
▲３▼Ｆｉｄｕｃｃｉａ−Ｍａｔｔｈｅｙｓｅｓアルゴリズム
これらのアルゴリズムは、例えばＮａｖｅｅｄ  Ｓｈｅｒｗａｎｙ  著の「ＡＬＧＯＲＩＴＨＭＳ  ＦＯＲＶＬＳＩ  ＰＨＹＳＩＣＡＬ  ＤＥＳＩＧＮ  ＡＵＴＯＭＡＴＩＯＮ」（Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ  １９９５年発行）に示される。
【００４８】
ここでステップＳ２にあっては、分割した２領域間のネットのコストが最小となるようにグループ分けをして配置候補を決定するが、決定した配置候補は第１候補とし、それよりコストが大きい第２候補、第３候補、第４候補などの下位の候補についても、グループ分けの結果を保存しておく。
ステップＳ２でネットコストを最小とするセルのグループ分けによる配置候補が決定されたならば、図３のセル配置制御モジュール３２によるステップＳ３〜Ｓ１１の処理を実行する。
【００４９】
このステップＳ３〜Ｓ１１の処理のため、図１０（Ａ）の２分割された第１領域５８と第２領域６０について、第１領域５８の面積をＳ１、第２領域６０の面積をＳ２、第１領域５８に振り分けられたセル合計面積をｓ１、第２領域６０に振り分けられたセル合計面積をｓ２、セルの全面積をｓ（＝ｓ１＋ｓ２）、対象チップ領域３４におけるｉ番目の制限領域のうちの第１領域５８に入っている部分の面積をＳ１（ｉ）、同じくｉ番目の制限領域のうちの第２領域６０に入っている部分の面積をＳ２（ｉ）、ｉ番目の制限領域で指定したセル使用率をρ（ｉ）として取得している。
【００５０】
このような条件の下に、まずステップＳ３で第１領域５８についてセル使用率の制限のない部分の面積Ｓ１（０）を次式により算出する。
Ｓ１（０）＝Ｓ１−ΣＳ１（ｉ）            （２）
次にステップＳ４で、第２領域６０について同じくセル使用率の制限のない部分の面積Ｓ２（０）を次式により算出する。
【００５１】
Ｓ２（０）＝Ｓ２−ΣＳ２（ｉ）            （３）
このステップＳ３，Ｓ４に対応して、図１０（Ａ）にあっては、第１領域５８，第２領域６０についてセル使用率の制限のない部分６２−１，６２−２を斜線のセル使用率の制限のある部分６４−１，６４−２に対し分けて示し、それぞれの面積をＳ１（０），Ｓ２（０）と表している。
【００５２】
次にステップＳ５に進み、対象チップ領域３４全体としてのセル使用率の制限のない部分６２−１，６２−２の使用率ρ（０）を次式により算出する。
0003564295.tif 000002
続いてステップＳ６に進み、ステップＳ５で求めたセル使用率の制限のない部分の使用率ρ（０）と既に指定されているセル使用率の制限のある部分の使用率ρ（ｉ）に基づいて、第１領域５８及び第２領域６０の各セル有効面積ｓ１´，ｓ２´を次式により算出する。
【００５３】
ｓ１´  ＝ρ（０）  ×  Ｓ１（０））  ＋Σ｛ρ（ｉ）  ×  （Ｓ１（ｉ）｝        （５）
ｓ２´  ＝ρ（０）  ×  Ｓ２（０））  ＋Σ｛ρ（ｉ）  ×  （Ｓ１（ｉ）｝        （６）
次にステップＳ７に進み、ステップＳ６で求めた第１及び第２領域５８，６０のセル有効面積ｓ１´，ｓ２´のセル合計面積ｓに対する比率で対象チップ領域３４即ち第１及び第２領域を合わせた領域の面積（Ｓ１＋Ｓ２）を案分した換算面積Ｓ１´，Ｓ２´を次式により求める。
【００５４】
Ｓ１´＝（Ｓ１＋Ｓ２）×（ｓ１´／ｓ）              （７）
Ｓ２´＝（Ｓ１＋Ｓ２）×（ｓ２´／ｓ）              （８）
このようにしてステップＳ７で第１及び第２領域５８，６０を換算した図１０（Ｂ）の換算領域５８−１，６０−１の換算面積Ｓ１´，Ｓ２´を求めたならば、この換算面積Ｓ１´，Ｓ２´に対する図１０（Ａ）の元の第１領域５８，第２領域６０の各セル面積ｓ１，ｓ２との比率の差の絶対値が一定値α以下となる条件が成立するか否か判定する。即ち、
｜ｓ１／Ｓ１´−ｓ２／Ｓ２´｜≦α                  （９）
の条件を判定する。この（９）式の条件を満足すれば、ステップＳ２で決定した配置候補が、指定した制限領域の指定した使用率を超えていないものと見なし、ステップＳ９で最小ブロックサイズか否かチェックし、最小ブロックサイズでなければステップＳ１に戻り、図９（Ａ）の処理の済んだ第１領域５８，第２領域６０のそれぞれについて、次は水平線によりそれぞれを上下の２領域に分割し、各２領域についてステップＳ２〜Ｓ９の処理を繰り返し、これをステップＳ９で最小ブロックサイズとなるまで繰り返す。
【００５５】
一方、ステップＳ８で（９）式の条件が成立しなかった場合には、ステップＳ１０に進み、ステップＳ２で決定している第１候補としての配置候補よりコストが大きい第２候補を選択し、第２候補となるセルのグループ分けについてステップＳ３〜Ｓ８の処理を繰り返す。これによってステップＳ２で決定された複数の候補のうち、ステップＳ８の条件を満足する候補が選択される。
【００５６】
ステップＳ９で最小ブロックサイズまでの処理が終了すると、ステップＳ１でセル配置結果を保存し、一連のセル配置処理を終了し、図２に示す次のセル間配線システム２０による配線処理に移行する。
この図８のフローチャートに示した本発明によるセル配置処理によれば、図１０（Ａ）のように、第１領域５８と第２領域６０に２分割してネットコストが最小となるようにセルを振り分けるグループ分けを行った際に、前記（２）〜（８）式に従って、図１０（Ｂ）のような換算領域５８−１，６０−１に分けられる。
【００５７】
この換算領域５８−１，６０−１は、図１０（Ａ）における本来の第１領域５８と第２領域６０の境界線６５を大きなセル使用面積を制限した部分６４−２をもつ第２領域６０側に移動して境界線６５−１とし、この換算領域５８−１，６０−１について前記（９）式の条件を満足するように、即ち換算領域５８−１，６０−１にセルを振り分けたときのセル使用率の差が±αの範囲に収まるように振り分けたことに相当する。
【００５８】
その結果、図１０（Ａ）において、セル使用率が制限された部分６４−２が大きい第２領域６０の換算領域６０−１の換算面積Ｓ２´が小さくなっており、第２領域６０に振り分けられるセルが第１領域５８側に追い出されることになる。この結果、最小ブロックサイズまで分割して同様なセル振り分け処理を行うと、図１０のセル使用率を制限した部分６４−１，６４−２については、それぞれの指定したセル使用率を超えないようなセル配置が実現できる。
【００５９】
図１１は図２のレイアウト設計システム１４に設けられたセル配置システム１８として実現される本発明のセル配置装置の第２実施形態の機能ブロック図である。この第２実施形態にあっては、セル使用率を制限する制限領域の指定をチップ上に対する既配置セルの配置に基づいて自動的に決定するようにしたことを特徴とする。
【００６０】
図１１において、本発明のセル配置装置を構成するセル配置システム１８は、制限領域指定部２２、制限領域管理モジュール２４、セル配置モジュール２６で構成され、セル配置モジュール２６にはパーティショニング・ベースド配置モジュール３０とセル配置制限モジュール３２が設けられており、セル配置モジュール２６のセル配置処理で得られたセル配置データ２８をファイルに格納している。
【００６１】
この構成は図３の第１実施形態と基本的に同じであるが、第１実施形態のユーザが制限領域とそのセル最大使用率を指定しているのに対し、図１１の第２実施形態にあっては、制限領域指定部２２はユーザの操作を必要とすることなく、図２の論理設計システム１０の処理で得られたネットリストデータ１２に基づいて自動的にセル使用率を制限する制限領域とそのセル最大使用率を決定するようにしている。
【００６２】
このため、制限領域指定部２２には既配置セル配置モジュール６６、概略配線モジュール６８、配線混雑領域判定モジュール７０、制限領域決定モジュール７２及び使用率リスト７４が設けられている。
既配置セル配置モジュール６６は例えば図１２のように、対象チップ領域３４上に配置位置が固定的に決められた既配置セルをネットリストデータ１２に含まれる既配置セルの上限を除き、予め決められた位置に例えば既配置セル７６，７８を図示のように配置する。概略配線モジュール６８は図１２の対象チップ３４上に配置された例えば２つの既配置セル７６，７８を対象に概略配線を行う。この概略配線は既配置セル７６，７８のネットリストに基づいて、例えば後の説明で明らかにするグリットグラフを利用して概略的な配線を行う。
【００６３】
配線混雑領域判定モジュール７０は、図１２のように対象チップ領域３４を所定サイズのブロックに分割し、各ブロック毎に概略配線モジュール６８で行った既配置セル７６，７８についての概略配線の結果から配線密度を検出し、各ブロックについて配線混雑領域か否か判定する。図１２の２つの既配置セル７６，７８の配置については、概略配線によってその間の６ブロックが配線混雑領域と判別することができる。
【００６４】
ここで対象チップ領域３４のブロックは左上隅を原点として水平方向にｉ＝０〜７、垂直方向にｊ＝０〜８を設定していることから、任意のブロックはＢｉｊで表すことができる。このため、２つの既配置セル７６，７８の間に位置する６つのブロックＢ６３，Ｂ６４，Ｂ６５，Ｂ７３，Ｂ７４，Ｂ７５が配線混雑領域のブロックと判定される。
【００６５】
制限領域決定モジュール７２は、配線混雑領域判定モジュール７０で配線混雑領域と判定されたブロックで形成された領域をセル使用率を制限する制限領域に決定する。即ち図１２にあっては、２つの既配置セル７６，７８の間の６つのブロックが配線混雑領域と判定されていることから、この６つのブロックを合わせた領域を制限領域８０に決定する。
【００６６】
次に制限領域決定モジュール７２は、決定した制限領域８０について使用率を制限するためのセル最大使用率を通常のセル使用率より低い値として決定する。この制限領域８０のセル最大使用率の決定は使用率リスト７４を参照して行う。この使用率リスト７４には、図１３のように、全体セル使用率７７と制限領域セル使用率７８が格納されている。
【００６７】
全体セル使用率７７は５０％〜６０％、６０％〜７０％、７０％〜８０％の３段階に分けられており、これに対応して制限領域セル使用率７８は４０％、５０％、６０％が設定されている。制限領域決定モジュール７２は図１２のように、対象チップ領域３４について制限領域８０が決定できたならば、セル合計面積をチップ面積で割って全体セル使用率を算出し、図１３の使用率リスト７４を参照し、該当する全体セル使用率７７に対応する制限領域セル使用率７８を選択する。例えば全体セル使用率７７が６０％〜７０％の間にあったときには、制限領域セル使用率７８として５０％を選択し、これを図１２の制限領域８０のセル最大使用率とする。
【００６８】
図１４は図１１の制限領域指定部２２による制限領域及びセル使用率の指定処理のフローチャートである。まずステップＳ１で対象とするチップ上に配置位置が固定的に決まっている既配置セルを配置する。次にステップＳ２でチップ上に配置した既配置セルに対しグリットグラフなどを利用して概略配線を行う。
次にステップＳ３でチップを所定サイズのブロックに分割し、ステップＳ４でブロック毎に配置セル間のネット数をコストとして算出し、コストが所定値以上となるブロックを配線混雑領域と判定する。最終的にステップＳ５で配線混雑領域をセル使用率の制限領域に決定し、例えば図１３のような使用率リスト７４の参照で他の領域より低い使用率を指定する。
【００６９】
このようにして自動的に決定された制限領域及びそのセル使用率は図１１の制限領域管理モジュール２４に入力され、セル配置モジュール２６による配置処理のために保存される。セル配置モジュール２６による制限領域管理モジュール２４に管理された制限領域とそのセル使用率に基づくセル配置処理は、図３の第１実施形態と同じであり、具体的には図８のセル配置処理のフローチャートに従ったセル配置が行われ、これによって指定されたセル使用率の制限領域に指定されたセル使用率を超えないようにセルを配置することができる。
【００７０】
図１５は、図１４の使用率制限領域指定処理のステップＳ２における既配置セルに対する概略配線処理のフローチャートである。この概略配線処理は図２のセル間配線システム２０における配線処理が
▲１▼第１段階のグローバルルーチング（ルーズルーチング）
▲２▼詳細ルーチング
の２段階の処理で行われており、このうち第１段階で行うグローバルルーチングを利用することで高速概略配線が実現できる。
【００７１】
このグローバルルーチングは、セル配置が完了した段階でネットリストに基づき、実際の物理的な配線のレイアウトを行わずに各ネットについての配線の割当てだけを行うものである。このグローバルルーチングにおける配線処理としてグリッドグラフモデル、チェッカボードモデル、チャネルインターセクショングラフモデルなどの手法があるが、図１５の概略配線処理にあっては処理が簡単なグリッドグラフモデルを使用している。
【００７２】
図１５の概略配線処理を図１６のグリッドグラフモデルによる配線処理の説明図を参照して説明すると次のようになる。
まずステップＳ１でチップ上に配置が決まった配置セルに対するピン割当てを行う。図１６（Ａ）が対象チップ３４にセル８２，８４，８６，８８，９０を配置した状態であり、これらのセルに対し例えばピンｔ１１，ｔ１２，ｔ２１，ｔ２２を図示のように割り当てる。
【００７３】
ここでピンｔ１１〜ｔ１２に対応したネットリストは
Ｎ１（ｔ１１，ｔ１２）
Ｎ２（ｔ２１，ｔ２２）
であったとする。
続いてステップＳ２でグリッドグラフモデルを作成する。グリッドグラフモデルの作成は、図１６（Ｂ）のように対象チップ領域３４を水平垂直のブロックライン９２により分割して矩形セルに分ける。この矩形セルのサイズはチャネル幅をｈ、線幅をｗとすると、（ｈ×ｗ）に設定される。次に図１６（Ｃ）のようにグリッドグラフ９４を生成する。
【００７４】
グリッドグラフ９４は図１６（Ｂ）の矩形セルを頂点に変換して格子で結んでいる。このため図１６（Ｂ）におけるセル８２は、図１６（Ｃ）のグリッドグラフ９４においては黒丸の頂点８２−１，８２−２で表現される。この点はセル８４，８６，８８，９０についても同様であり、それぞれ黒丸の頂点８４−１，８６−１，８６−２、８８−１，９０−１〜９０−３で表現される。またピンｔ１１〜ｔ２２は○の頂点の対応位置にｔ１１，ｔ１２，ｔ２１，ｔ２２として割り振られる。
【００７５】
このようにしてグリッドグラフが作成できたならば、ステップＳ３に進み、ネットＮｉ＝（ｔｉ１，ｔｉ２）のパスを決定する。例えば図１６（Ｃ）のグリッドグラフ９４について、ネットＮ１（ｔ１１，ｔ１２）を結ぶルートは図１６（Ｄ）のように右回りのルートＲ１と左回りのルートＲ２がある。しかしながら、ルートＲ１を図１６（Ｃ）のグリッドグラフ９４について見ると、ピンｔ１１からｔ１２にいくためには他のネットＮ２のピンｔ２１，ｔ２２を横切らなければならない。ここでルーチングの規則には他のネットを横切らないことが規定されているため、右回りのルートＲ１は成立せず、他のネットを横切ることのない左周りのルートＲ２が決定される。
【００７６】
このようにしてステップＳ３でネットＮ１のルートが決定できたならば、ステップＳ４で全ネットの終了の有無をチェックし、終了していなければステップＳ３に戻り、続いてネットＮ２のルートを決定する。ネットＮ２については、ピンｔ２１，ｔ２２を結ぶ図１６（Ｄ）のルートＲ３であり、グリッドグラフ９４から、この場合、他のネットを横切ることがないことから、ルートＲ３が決定される。
【００７７】
このようなグリッドグラフモデルを利用したルートの決定により、チップ上で配置が決まったセル間のネットを実現するルートの概略が高速で生成され、図１４のステップＳ３〜Ｓ５の混雑領域の判定によるセル使用率の制限領域の決定と、決定した制限領域のセル最大使用率の決定が確実にできる。
図１７は図２のレイアウト設計システム１４に設けたセル配置システム１８として提供される本発明のセル配置装置の第３実施形態であり、この実施形態にあってはチップ上にセルを暫定高速配置して概略配線を行うことにより自動的に配線混雑領域を認識して、セル使用率の制限領域を決定するようにしたことを特徴とする。
【００７８】
図１７において、本発明のセル配置装置に対応するセル配置システム１８は、図３の第１実施形態及び図１１の第２実施形態と同様、制限領域指定部２２、制限領域管理モジュール２４、セル配置モジュール２６で構成されている。制限領域指定部２２は図１１の第２実施形態における既配置セル配置モジュール６６の代わりにセル暫定高速配置モジュール９４を設けている。
【００７９】
それ以外の構成は図１１の第２実施形態と同様、概略配線モジュール６８、配線混雑領域判定モジュール７０、制限領域決定モジュール７２及び使用率リスト７４を備えている。
セル暫定高速配置モジュール９４はチップ上にセルを暫定的に配置する。具体的には、セル配置モジュール２６に設けているパーティショニング・ベースド配置モジュール３０を使用しているが、対象領域のブロック分割をチップサイズに対応した最小ブロックサイズまで行わず、途中のブロックサイズ、例えば通常のパーティショニング・ベースド配置モジュール３０における分割回数の３分の１程度でセル配置を終了させている。
【００８０】
このようなブロック分割サイズを処理サイズに対応した最小ブロックサイズまで行わずに途中で止めた場合のセル配置にあっては、セル配置の最適化が不十分であり、このセル配置結果を使った配線処理では配線長が長くなり、配線がしにくく品質が下がり、配線処理のために使用するには不適切である。しかし、セル使用率を制限するための配線混雑領域を判定するには十分であり、且つ処理時間も短くて済む。
【００８１】
図１８は図１７の制限領域指定部２２による使用率制限領域の指定処理のフローチャートである。まずステップＳ１で高速配置処理によりセルを暫定配置する。この処理はパーティショニング・ベースド配置アルゴリズムの領域分割を最小ブロックサイズまで行わずに途中で止める処理となる。
図１９は図１８のステップＳ１のセル暫定配置処理のフローチャートである。まずステップＳ１で対象チップ領域を２分割し、ステップＳ２で対象チップ領域に割り当てられたセルを分割した２領域に振り分け、領域間のネットコストが最小となるようにグループ分けして配置候補を決定する。この配置候補について、ステップＳ３で次式の条件を満足するか否かチェックする。
【００８２】
｜ｓ１／Ｓ１−ｓ２／Ｓ２｜≦α              （１）
この条件を満足しない場合には、ステップＳ４でネットコストが低い下位の第２候補を選択して、ステップＳ３で再度条件を判定する。ステップＳ３の条件が満足すると、ステップＳ５で最小ブロックサイズに分割するまでの途中の値である規定分割回数に達したか否かチェックし、規定分割回数に達するまでステップＳ１〜Ｓ４の処理を繰り返す。
【００８３】
規定分割回数に達すると、その時点でセル配置処理を終了し、ステップＳ６でセル暫定配置結果を保存し、図１８に戻る。次に図１８のステップＳ２で、暫定配置された配置セルに対し概略配線を行う。この概略配線は図１１の第２実施形態の概略配線モジュール６８と同様、図１５の概略配線処理のフローチャートに従い、グリッドグラフモデルを利用して行う。
【００８４】
暫定配置されたセルに対する概略配線が済むと、ステップＳ３で図１２に示したように対象チップ領域３４を所定のサイズのブロックに分割し、ステップＳ４でブロック毎に配置セル間のネット数をコストとして算出し、コストが所定値以上のブロックを配線混雑領域のブロックと判定する。
そしてステップＳ５で配線混雑領域をセル使用率の制限領域に決定し、同時に図１３に示した内容を持つネットリスト７４を参照して制限領域のセル使用率を決定する。
【００８５】
このようにして図１７の制限領域指定部２２でセル暫定配置結果から決定された制限領域及び制限領域のセル使用率は、制限領域管理モジュール２４に入力され、セル配置モジュール２６によるセル配置処理のパラメータとして取り込まれる。そして、第１実施形態において図８に示したセル配置処理と同様に、パーティショニング・ベースド配置モジュール３０及びセル配置制御モジュール３２によるセル配置処理により、指定されたセル使用率の制限領域について、指定されたセル使用率を超えないようにセルを配置する処理が行われる。
【００８６】
更に本発明は、図３，図１１及び図１７に示した各実施形態の機能ブロックで実現されるセル配置システム１８の機能を持つセル配置プログラムを記録したコンピュータ読取り可能な記録媒体を提供するものである。このセル配置プログラムを記録したコンピュータ読取り可能な記録媒体の実施形態としては、ＣＤ−ＲＡＭやフロッピーディスクなどのリムーバルな可搬型記憶媒体、回線によりプログラムを提供するプログラム提供者の記憶装置、更にプログラムをインストールした処理装置のＲＡＭやハードディスクなどのメモリ装置がある。また記録媒体によって提供されたセル配置プログラムは処理装置にローディングされ、その主メモリ上で実行される。
【００８７】
尚、本発明は、その目的と利点を損なわない範囲の適宜の変形を含む。また本発明は実施形態に示された数値による限定は受けない。
【００８８】
以上説明してきたように本発明によれば、チップ上の配線密度が高くなりそうな部分をセル使用率を制限する制限領域として規定すると共に、制限領域内での最大使用率を指定
すると共に、具体的にはチップ領域について順次２分割を繰り返しながら、各分割毎に２分割した領域間のネット数を示すコストが最小となるようにセルをグループ分けし、分割した２領域の合計面積（Ｓ１＋Ｓ２）を、２領域の合計セル面積ｓに対する制限領域のセル最大使用率に基づく各領域のセル有効面積ｓ１´，ｓ２´の比率で案分した各領域の面積Ｓ１´，Ｓ２´に換算し、各領域の換算面積Ｓ１´，Ｓ２´に対する各領域のセル合計面積に比率の差が所定の範囲内となるように、セルのグループ分けをしておくことで、指定された制限領域のセル使用率が指定された最大セル使用率を超えないようにセル配置が行われ、セル配置後の配線処理において特定領域の配線密度が高くなって配線が困難に成ることを確実に防止でき、セル配置のやり直しなどの修正処理をほとんど必要とすることなく、余分な時間を掛けずに最適なセル配置を得て、配線処理を余分な時間を掛けずに完了することができる。
【図面の簡単な説明】
【図１】本発明の原理説明図
【図２】本発明のセル配置装置が使用されるＬＳＩ自動設計システムのブロック図
【図３】本発明のセル配置装置を実現する図２に示すセル配置システムの機能ブロック図
【図４】チップ上に既配置セルがある場合の制限領域のユーザ指定の説明図
【図５】他層のパワーラインとの接続を考慮したセル配置層の制限領域のユーザ指定の説明図
【図６】図３のセル配置処理のジェネラル・フローチャート
【図７】ユーザ指定による図３の制限領域指定処理の詳細フローチャート
【図８】制限領域とセル最大使用率の指定に基づく図４のセル配置処理詳細フローチャート
【図９】図８の対象チップ領域の分割方法の説明図
【図１０】図８のセル配置処理における制限領域とセル最大使用率に基づく分割領域の面積換算の説明図
【図１１】既配置セルに基づいて制限領域を自動的に指定する本発明のセル配置装置の機能ブロック図
【図１２】図１１の実施例によるチップ上の既配置セルに基づく制限領域の決定処理の説明図
【図１３】図１１の使用率リストの説明図
【図１４】既配置セルに基づく図１１の制限領域指定処理の詳細フローチャート
【図１５】グリッドグラフを用いた図１４の概略配線処理の詳細フローチャート
【図１６】図１５の概略配線処理の説明図
【図１７】暫定高速セル配置に基づいて制限領域を自動的に指定する本発明のセル配置装置の機能ブロック図
【図１８】暫定高速セル配置を用いた図１７の制限領域指定処理の詳細フローチャート
【図１９】図１８の概略配線処理の詳細フローチャート
【符号の説明】
１０：論理設計システム
１２：ネットリストデータ
１４：レイアウト設計システム
１６：レイアウト設計データ
１８：セル配置システム（セル配置装置）
２０：セル間配線システム
２２：制限領域指定モジュール
２４：制限領域管理モジュール
２６：セル配置モジュール
２８：セル配置データ
３０：パーティショニング・ベースド配置モジュール
３２：セル配置制御モジュール
３４：チップ領域
３６，３８，７６，７８：既配置セル
４０，８０：制限領域
４２：非制限領域
４４：チップ
４６：第０層
４８：第１層
５０：第２層
５２：第３層
５４：パワーライン
５６：パワーライン対応の制限領域
５８：第１領域
５８−１，６０−１：換算領域
６０：第２領域
６２−１，６２−２：非制限部分
６４−１，６４−２：制限部分
６６：既配置セル配置モジュール
６８：概略配線モジュール
７０：配線混雑領域判定モジュール
７２：制限領域決定モジュール
７４：使用率リスト
８２，８４，８６，８８，９０：セル
８２−１，８２−２，８４−１，８６−１，８６−２，８８−１，９０−１〜９０−３：セルポイント
９２：ブロック分割ライン
９４：セル暫定高速配置モジュール
【図１】
0003564295.tif 000006
【図２】
0003564295.tif 000007
【図３】
0003564295.tif 000008
【図４】
0003564295.tif 000009
【図５】
0003564295.tif 000010
【図６】
0003564295.tif 000011
【図７】
0003564295.tif 000012
【図８】
0003564295.tif 000013
【図９】
0003564295.tif 000014
【図１０】
0003564295.tif 000015
【図１１】
0003564295.tif 000016
【図１２】
0003564295.tif 000017
【図１３】
0003564295.tif 000018
【図１４】
0003564295.tif 000019
【図１５】
0003564295.tif 000020
【図１６】
0003564295.tif 000021
【図１７】
0003564295.tif 000022
【図１８】
0003564295.tif 000023
【図１９】
0003564295.tif 000024