(57)【要約】【課題】自動配置ツールの性能を最大限に発揮することにより最適な配置を実施する。【解決手段】対象機能マクロに対して希望セル使用率を設定するステップＳ２と、対象機能マクロの配置範囲を求めるステップＳ５と、対象機能マクロ配置範囲内のセル使用率が設定した希望セル使用率を満足するかを判定するステップＳ６と、希望セル使用率を満たすように配置領域を設定するステップＳ７と、設定配置領域内に対象機能マクロを再配置するステップＳ８と、配置領域内に他の機能マクロを含むかを判定するステップＳ９と、配置領域内の他の機能マクロを配置領域外に追い出すステップＳ１０と、配置領域内の対象機能マクロの配置位置の微調整や配置エラーがあるブロックの再配置を行うステップＳ１１とを有する。【選択図】　　　図１
2004013205.tif 000002
【特許請求の範囲】
【請求項１】
大規模半導体集積回路の自動配置配線方法において、
機能マクロの配置位置を限定せずに自動配置を行い、予め指定した対象機能マクロの配置位置から、他の機能マクロとの接続関係を考慮した配置に基づき、前記対象機能マクロの配置密度が予め設定したセル使用率を満たすように配置領域を再設定し、前記対象機能マクロの再配置を行うことにより前記対象機能マクロの最適な配置位置を実現することを特徴とする半導体集積回路のレイアウト方法。
【請求項２】
前記対象機能マクロが、相互に近接配置を行う機能マクロであることを特徴とする請求項１記載の半導体集積回路のレイアウト方法。
【請求項３】
大規模半導体集積回路の自動配置配線方法において、
端子配置及び機能マクロの配置位置を決めるためのフロアプランステップと、
近接して配置したい前記機能マクロである対象機能マクロに対して希望するセル使用率である希望セル使用率を設定する対象機能マクロセル使用率決定ステップと、
電源配線を行う電源配線ステップと、
プリミティブブロックの配置を行うプリミティブブロックの配置ステップと、
前記対象機能マクロが配置された範囲を求める対象機能マクロ配置範囲設定ステップと、
前記対象機能マクロ配置範囲内におけるセル使用率が前記希望セル使用率を満たしているかを判定するセル使用率判定ステップと、
前記セル使用率判定ステップで否の場合前記希望セル使用率を満たすように配置領域を設定する領域設定ステップと、
設定した前記配置領域内に前記対象機能マクロを再配置する再配置ステップと、
前記配置領域内に他の機能マクロが含まれていないかを判定する他の機能マクロの含有判定ステップと、
前記他の機能マクロの含有判定ステップで諾の場合前記配置領域内の前記他の機能マクロを前記配置領域外に追い出す作業を行う追い出し作業ステップと、
前記配置領域内の前記対象機能マクロの配置位置の微調整及び配置エラーが起こっている前記対象機能マクロのブロックの再配置を行う配置改良ステップと、
前記機能マクロのブロック間の配線を行う配線ステップと、
前記配線が正常にできたかのチェックを行う配線可能判定ステップと、
レイアウト検証を行うレイアウト検証ステップと、を有することを特徴とする半導体集積回路のレイアウト方法。
【請求項４】
前記領域設定ステップが、前記対象機能マクロが配置された領域の重心を求める重心検索ステップと、
前記領域を前記希望セル使用率を満たす大きさに縮小する配置領域縮小ステップと、
前記重心検索ステップで求めた重心が新たな配置領域の中心となるように移動する配置領域移動ステップと、
前記配置領域が大型マクロや配置禁止領域と重なってしまうことにより前記セル使用率が前記希望セル使用率を超過してしまわないかのチェックを行うセル使用率判定ステップと、
前記セル使用率が超過しないように配置領域の再設定を行う配置領域再設定ステップとを有することを特徴とする請求項３記載の半導体集積回路のレイアウト方法。
【請求項５】
前記再配置ステップが、前記対象機能マクロが配置された領域の重心方向に前記対象機能マクロを移動可能かを判定する重心方向移動可能判定ステップと、
前記対象機能マクロを前記重心方向に移動する重心方向移動ステップと、
前記対象機能マクロが前記配置領域内に収まっているかを判定する領域内判定ステップと、
前記配置領域内のブロックで移動しても前記重心からの距離が変わらないブロックである距離不変ブロックがあるかを判定する距離不変ブロック判定ステップと、
距離不変ブロック判定ステップで前記距離不変ブロックがある場合、前記距離不変ブロックを移動させる距離不変ブロック移動ステップと、
前記配置領域外のブロックを前記配置領域内に移動させる領域外ブロック移動ステップと、
前記配置領域内にすべて収まったかを判定する領域内ブロック判定ステップとを有することを特徴とする請求項３記載の半導体集積回路のレイアウト方法。
【請求項６】
前記対象機能マクロセル使用率決定ステップと、前記対象機能マクロ配置範囲設定ステップと、前記使用率判定ステップと、前記領域設定ステップと、前記再配置ステップと、前記他の機能マクロの含有判定ステップと、前記追い出し作業ステップと、前記配置改良ステップの各々が、それぞれ複数の前記対象機能マクロセルに対応する処理であることを特徴とする請求項３記載の半導体集積回路のレイアウト方法。
【請求項７】
前記対象機能マクロセル使用率決定ステップが、前記セル使用率を決める時に最大値と最小値を設定し、
前記対象機能マクロ配置範囲設定ステップが、前記配置範囲を設定する時に前記最小セル使用率に基づいて配置範囲を設定し、
前記セル使用率判定ステップが、前記セル使用率をチェックする時に前記最小セル使用率を満たしているかをチェックし、
前記他の機能マクロの含有判定ステップで前記他の機能マクロを含まない場合に設定した前記希望使用率以内になっているかを判定する設定セル使用率範囲内判定ステップと、
前記設定セル使用率範囲内判定ステップで前記セル使用率が前記最小セル使用率を満たしていない場合は配置縮小を、前記セル使用率が前記最大セル使用率を超過している場合は配置緩和を行いその結果を前記追い出し作業ステップに適用する配置密度調整ステップとを有することを特徴とする請求項３記載の半導体集積回路のレイアウト方法。
【請求項８】
前記他の機能マクロの含有判定ステップが、前記配置領域内に他の機能マクロを含んでいるかの判定を行うときに電源分離用の機能マクロの配置領域をこの配置領域を囲むための電源分離リングの幅を考慮して拡大して判定し、
前記追い出し作業ステップが、前記他の機能マクロの含有判定ステップの判定結果諾の場合に追い出し作業を行うことを特徴とする請求項３記載の半導体集積回路のレイアウト方法。
【請求項９】
前記領域設定ステップが、配置されたブロックの外周に沿って配置領域を設定する配置領域縮小ステップと、
前記配置領域の各辺の線分を中心に向かって移動させる配置領域移動ステップとを有し、
前記領域設定ステップの領域設定後に新たな配置領域内でのセル使用率をチェックするセル使用率判定ステップを追加したことを特徴とする請求項３記載の半導体集積回路のレイアウト方法。
【請求項１０】
前記領域設定ステップが、配置領域を設定する際に押し込む（縮小対象の）線分の長さが電源分離リングの幅の２倍以下の場合は縮小しないことを特徴とする請求項３記載の半導体集積回路のレイアウト方法。
【請求項１１】
前記フロアプランステップが、フロアプラン実行時に前記対象機能マクロに対してグルーピングを行い配置位置を指定することを特徴とする請求項３記載の半導体集積回路のレイアウト方法。
【請求項１２】
大規模半導体集積回路の自動配置配線方法において、
端子配置及び機能マクロの配置位置を決めるためのフロアプランステップと、
近接して配置したい前記機能マクロである対象機能マクロに対して希望するセル使用率である希望セル使用率を設定する対象機能マクロセル使用率決定ステップと、
電源配線を行う電源配線ステップと、
プリミティブブロックの配置を行うプリミティブブロックの配置ステップと、
前記対象機能マクロが配置された範囲を求める対象機能マクロ配置範囲設定ステップと、
前記対象機能マクロ配置範囲内におけるセル使用率が前記希望セル使用率を満たしているかを判定するセル使用率判定ステップと、
前記セル使用率判定ステップで否の場合前記希望セル使用率を満たすように配置領域を設定する領域設定ステップと、
設定した前記配置領域内に前記対象機能マクロを再配置する再配置ステップと、
前記配置領域内の前記対象機能マクロの配置位置の微調整及び配置エラーが起こっている前記対象機能マクロのブロックの再配置を行う配置改良ステップと、
前記機能マクロのブロック間の配線を行う配線ステップと、
前記配線が正常にできたかのチェックを行う配線可能判定ステップと、
レイアウト検証を行うレイアウト検証ステップと、を有することを特徴とする半導体集積回路のレイアウト方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半導体集積回路のレイアウト方法に関し、特にＣＡＤによる複数の機能ブロックから成る大規模な半導体集積回路のレイアウト方法に関する。
【０００２】
【従来の技術】
ＳＯＣ（システム・オン・チップ）時代の到来により、半導体集積回路の１つのチップ内に多数の機能マクロを搭載するようになった。これらの機能マクロに含まれる回路ブロックは互いに関係が深いため、近接して配置されなければならない。このような機能マクロに対しては、グルーピングを行い、予め配置位置を指定してレイアウトを行う方法が一般的である。
【０００３】
従来のこの種の半導体集積回路のレイアウト方法をフローチャートで示す図１６を参照して説明する。この従来の半導体集積回路のレイアウト方法は、端子配置や大型マクロの配置位置を決めるためのフロアプランステップＳ１と、電源配線を行うステップＳ３と、プリミティブブロックの配置を行うステップＳ４と、プリミティブブロック配置が正常にできたかのチェックを行う配置可能判定ステップＰ５と、ブロック間の配線を行う配線ステップＳ１２と、配線が正常にできたかのチェックを行う配線可能判定ステップＳ１３と、レイアウト検証を行うレイアウト検証ステップＳ１４とを有する。
【０００４】
まず、ステップＳ１で、フロアプランを行い、大型機能マクロの配置位置を決めると共に、近接して配置したい機能マクロに対してグルーピングを実施し、配置位置、配置領域の形状、セル使用率を決める。次に、ステップＳ３，Ｓ４で、電源配線及びプリミティブブロック配置を行う。
【０００５】
次に、ステップＰ５で、プリミティブブロック配置が正常にできたかのチェックを行う。この際、フロアプランで定めた配置位置が最適な位置でなかったり、配置領域の形状が自動レイアウトツールの性能を制限してしまうことにより、配置エラーが発生する場合がある。その場合、再度フロアプランステップＳ１まで戻り、配置位置を再検討する。
【０００６】
配置が終了した後、ステップＳ１２にて配線を行い、続いてステップＳ１３で配線が正常に行われたかをチェックする。配線が正常に行われていない場合、再再度フロアプランステップＳ１まで戻り、配置位置を再検討する。
【０００７】
この場合も、フロアプランが大きく影響を与える。すなわち、フロアプランにおいて最適な配置位置が指定されていないと、配線混雑を引き起こしたり、タイミングエラーが発生し、その修正に多大な時間を必要としてしまう。また、最悪の場合、フロアプランの検討からやり直さなければならなくなる。これらの問題は、近年の回路の大規模化、高速化に伴い、これらの問題はいっそう顕著に表れるようになった。
【０００８】
【発明が解決しようとする課題】
上述した従来の半導体集積回路のレイアウト方法は、フロアプランで定めた配置位置が最適な位置でなかったり、配置領域の形状が自動レイアウトツールの性能を制限してしまうことにより、配置エラーが発生した場合、配線混雑を引き起こしたり、タイミングエラーが発生し、その修正にフロアプランの検討からやり直す必要が生じる等多大な時間を必要とするという欠点があった。
【０００９】
本発明の目的は、上記問題を解決するとともに、自動配置ツールの性能を最大限に発揮することにより最適な配置を実施できる半導体集積回路のレイアウト方法を提供することにある。
【００１０】
【課題を解決するための手段】
本発明の半導体集積回路のレイアウト方法は、大規模半導体集積回路の自動配置配線方法において、機能マクロの配置位置を限定せずに自動配置を行い、予め指定した対象機能マクロの配置位置から、他の機能マクロとの接続関係を考慮した配置に基づき、前記対象機能マクロの配置密度が予め設定したセル使用率を満たすように配置領域を再設定し、再配置を行うことにより前記対象機能マクロの最適な配置位置を実現することを特徴とするものである。
【００１１】
また、本発明の半導体集積回路のレイアウト方法は、前記対象機能マクロが、相互に近接配置を行うことが望ましい機能マクロであることを特徴とする。
【００１２】
さらに、本発明の半導体集積回路のレイアウト方法は、大規模半導体集積回路の自動配置配線方法において、端子配置及び機能マクロの配置位置を決めるためのフロアプランステップと、
近接して配置したい前記機能マクロである対象機能マクロに対して希望するセル使用率である希望セル使用率を設定する対象機能マクロセル使用率決定ステップと、
電源配線を行う電源配線ステップと、
プリミティブブロックの配置を行うプリミティブブロックの配置ステップと、
前記対象機能マクロが配置された範囲を求める対象機能マクロ配置範囲設定ステップと、
前記対象機能マクロ配置範囲内におけるセル使用率が前記希望セル使用率を満たしているかを判定するセル使用率判定ステップと、
前記セル使用率判定ステップで否の場合前記希望セル使用率を満たすように配置領域を設定する領域設定ステップと、
設定した前記配置領域内に前記対象機能マクロを再配置する再配置ステップと、
前記配置領域内に他の機能マクロが含まれていないかを判定する他の機能マクロの含有判定ステップと、
前記他の機能マクロの含有判定ステップで諾の場合前記配置領域内の前記他の機能マクロを前記配置領域外に追い出す作業を行う追い出し作業ステップと、
前記配置領域内の前記対象機能マクロの配置位置の微調整及び配置エラーが起こっている前記対象機能マクロのブロックの再配置を行う配置改良ステップと、
前記機能マクロのブロック間の配線を行う配線ステップと、
前記配線が正常にできたかのチェックを行う配線可能判定ステップと、
レイアウト検証を行うレイアウト検証ステップと、を有することを特徴とする。
【００１３】
さらにまた、本発明の半導体集積回路のレイアウト方法は、前記領域設定ステップが、前記対象機能マクロが配置された領域の重心を求める重心検索ステップと、
前記領域を前記希望セル使用率を満たす大きさに縮小する配置領域縮小ステップと、
前記重心検索ステップで求めた重心が新たな配置領域の中心となるように移動する配置領域移動ステップと、
前記配置領域が大型マクロや配置禁止領域と重なってしまうことにより前記セル使用率が前記希望セル使用率を超過してしまわないかのチェックを行うセル使用率判定ステップと、
前記セル使用率が超過しないように配置領域の再設定を行う配置領域再設定ステップとを有することを特徴とする。
【００１４】
また、本発明の半導体集積回路のレイアウト方法は、前記再配置ステップが、前記対象機能マクロが配置された領域の重心方向に前記対象機能マクロを移動可能かを判定する重心方向移動可能判定ステップと、
前記対象機能マクロを前記重心方向に移動する重心方向移動ステップと、
前記対象機能マクロが前記配置領域内に収まっているかを判定する領域内判定ステップと、
前記配置領域内のブロックで移動しても前記重心からの距離が変わらないブロックである距離不変ブロックがあるかを判定する距離不変ブロック判定ステップと、
距離不変ブロック判定ステップで前記距離不変ブロックがある場合、前記距離不変ブロックを移動させる距離不変ブロック移動ステップと、
前記配置領域外のブロックを前記配置領域内に移動させる領域外ブロック移動ステップと、
前記配置領域内にすべて収まったかを判定する領域内ブロック判定ステップとを有することを特徴とする。
【００１５】
また、本発明の半導体集積回路のレイアウト方法は、前記対象機能マクロセル使用率決定ステップと、前記対象機能マクロ配置範囲設定ステップと、前記使用率判定ステップと、前記領域設定ステップと、前記再配置ステップと、前記他の機能マクロの含有判定ステップと、前記追い出し作業ステップと、前記配置改良ステップの各々が、それぞれ複数の前記対象機能マクロセルに対応する処理であることを特徴とする。
【００１６】
また、本発明の半導体集積回路のレイアウト方法は、前記対象機能マクロセル使用率決定ステップが、前記セル使用率を決める時に最大値と最小値を設定し、
前記対象機能マクロ配置範囲設定ステップが、前記配置範囲を設定する時に前記最小セル使用率に基づいて配置範囲を設定し、
前記セル使用率判定ステップが、前記セル使用率をチェックする時に前記最小セル使用率を満たしているかをチェックし、
前記他の機能マクロの含有判定ステップで前記他の機能マクロを含まない場合に設定した前記希望使用率以内になっているかを判定する設定セル使用率範囲内判定ステップと、
前記設定セル使用率範囲内判定ステップで前記セル使用率が前記最小セル使用率を満たしていない場合は配置縮小を、前記セル使用率が前記最大セル使用率を超過している場合は配置緩和を行いその結果を前記追い出し作業ステップに適用する配置密度調整ステップとを有することを特徴とする。
【００１７】
また、本発明の半導体集積回路のレイアウト方法は、前記他の機能マクロの含有判定ステップが、前記配置領域内に他の機能マクロを含んでいるかの判定を行うときに電源分離用の機能マクロの配置領域をこの配置領域を囲むための電源分離リングの幅を考慮して拡大して判定し、
前記追い出し作業ステップが、前記他の機能マクロの含有判定ステップの判定結果諾の場合に追い出し作業を行うことを特徴とするものである。
【００１８】
さらにまた、本発明の半導体集積回路のレイアウト方法は、前記領域設定ステップが、配置されたブロックの外周に沿って配置領域を設定する配置領域縮小ステップと、
前記配置領域の各辺の線分を中心に向かって移動させる配置領域移動ステップとを有し、
前記領域設定ステップの領域設定後に新たな配置領域内でのセル使用率をチェックするセル使用率判定ステップを追加したことを特徴とする。
【００１９】
また、本発明の半導体集積回路のレイアウト方法は、前記領域設定ステップが、配置領域を設定する際に押し込む（縮小対象の）線分の長さが電源分離リングの幅の２倍以下の場合は縮小しないことを特徴とする。
【００２０】
また、本発明のレイアウト方法は、前記フロアプランステップが、フロアプラン実行時に前記対象機能マクロに対してグルーピングを行い配置位置を指定することを特徴とする。
【００２１】
さらに、本発明の半導体集積回路のレイアウト方法は、大規模半導体集積回路の自動配置配線方法において、　端子配置及び機能マクロの配置位置を決めるためのフロアプランステップと、
近接して配置したい前記機能マクロである対象機能マクロに対して希望するセル使用率である希望セル使用率を設定する対象機能マクロセル使用率決定ステップと、
電源配線を行う電源配線ステップと、
プリミティブブロックの配置を行うプリミティブブロックの配置ステップと、
前記対象機能マクロが配置された範囲を求める対象機能マクロ配置範囲設定ステップと、
前記対象機能マクロ配置範囲内におけるセル使用率が前記希望セル使用率を満たしているかを判定するセル使用率判定ステップと、
前記セル使用率判定ステップで否の場合前記希望セル使用率を満たすように配置領域を設定する領域設定ステップと、
設定した前記配置領域内に前記対象機能マクロを再配置する再配置ステップと、
前記配置領域内の前記対象機能マクロの配置位置の微調整及び配置エラーが起こっている前記対象機能マクロのブロックの再配置を行う配置改良ステップと、
前記機能マクロのブロック間の配線を行う配線ステップと、
前記配線が正常にできたかのチェックを行う配線可能判定ステップと、
レイアウト検証を行うレイアウト検証ステップと、を有することを特徴とする。
【００２２】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００２３】
本実施の形態の半導体集積回路のレイアウト方法は、大規模半導体集積回路の自動配置配線方法において、大規模半導体集積回路の自動配置配線方法において、機能マクロの配置位置を限定せずに自動配置を行い、予め指定した対象機能マクロの配置位置から、他の機能マクロとの接続関係を考慮した配置に基づき、対象機能マクロの配置密度が予め設定したセル使用率を満たすように配置領域を再設定し、対象機能マクロの再配置を行うことにより上記対象機能マクロの最適な配置位置を実現することを特徴とするものである。
【００２４】
次に、本発明の第１の実施の形態を図３と共通の構成要素には共通の参照文字および数字を付して同様にフローチャートで示す図１を参照する。この図に示す本実施の形態の半導体集積回路のレイアウト方法は、従来例で説明したのと共通の端子配置や機能マクロの配置位置を決めるためのフロアプランステップＳ１と、電源配線を行う電源配線ステップＳ３と、プリミティブブロックの配置を行うプリミティブブロックの配置ステップＳ４と、機能マクロのブロック間の配線を行う配線ステップＳ１２と、配線が正常にできたかのチェックを行う配線可能判定ステップＳ１３と、レイアウト検証を行うレイアウト検証ステップＳ１４とに加えて、近接して配置したい機能マクロ（以下、対象機能マクロ）に対して希望するセル使用率を設定する対象機能マクロセル使用率決定ステップＳ２と、対象機能マクロが配置された範囲を求める対象機能マクロ配置範囲設定ステップＳ５と、対象機能マクロ配置範囲内におけるセル使用率がステップＳ２で設定した希望セル使用率を満たしているかを判定するセル使用率判定ステップＳ６と、セル使用率判定ステップＳ６で否の場合希望するセル使用率を満たすように配置領域を設定する領域設定ステップＳ７と、設定した配置領域内に対象機能マクロを再配置する再配置ステップＳ８と、配置領域内に他の機能マクロが含まれていないかを判定する他の機能マクロの含有判定ステップＳ９と、ステップＳ９で諾の場合配置領域内の他の機能マクロを配置領域外に追い出す作業を行う追い出し作業ステップＳ１０と、配置領域内の対象機能マクロの配置位置の微調整や配置エラーが起こっている対象機能マクロのブロックの再配置を行う配置改良ステップＳ１１とを有する。
【００２５】
領域設定ステップＳ７の詳細をフローチャートで示す図２を参照すると、この領域設定ステップＳ７は、対象機能マクロが配置された領域の重心を求める重心検索ステップＳ７１と、領域をステップＳ２で設定した希望セル使用率を満たす大きさに縮小する配置領域縮小ステップＳ７２と、ステップＳ７１で求めた重心が新たな配置領域の中心となるように移動する配置領域移動ステップＳ７３と、配置領域が大型マクロや配置禁止領域と重なってしまうことにより、セル使用率が希望セル使用率を超過してしまわないかのチェックを行うセル使用率判定ステップＳ７４と、セル使用率が超過しないように配置領域の再設定を行う配置領域再設定ステップＳ７５とを有する。
【００２６】
再配置ステップＳ８の詳細をフローチャートで示す図３を参照すると、この再配置ステップＳ８は、対象機能マクロを重心方向に移動可能かを判定する重心方向移動可能判定ステップＳ８１と、対象機能マクロを重心方向に移動する重心方向移動ステップＳ８２と、対象機能マクロが領域内に収まっているかを判定する領域内判定ステップＳ８３と、配置領域内のブロックで移動しても重心からの距離が変わらないブロックである距離不変ブロックがあるかを判定する距離不変ブロック判定ステップＳ８４と、ステップＳ８４で距離不変ブロックがある場合その距離不変ブロックを移動させる距離不変ブロック移動ステップＳ８５と、配置領域外のブロックを配置領域内に移動させる領域外ブロック移動ステップＳ８６と、配置領域内にすべて収まったかを判定する領域内ブロック判定ステップＳ８７とを有する。
【００２７】
次に、図１、図２、図３及び本実施の形態を適用したブロックの配置の一例をレイアウト図で示す図４（Ａ）〜（Ｄ）を参照して本実施の形態の動作について説明する。説明の便宜上、本実施の形態では、図４に示す３種類の機能マクロＤ１，Ｄ２，Ｄ３を持った回路のレイアウトを行うものとし、特に機能マクロＤ１に対して最適な配置位置を求めるものとする。また、回路周辺に配設した電源供給用の電源リング３１，３２を示す。
【００２８】
まず、端子配置や大型マクロの配置位置を決めるため、フロアプランを行う（ステップＳ１）。
【００２９】
次に、機能マクロＤ１に対して、希望するセル使用率を設定する（ステップＳ２）。本実施の形態では、機能マクロＤ１の希望セル使用率＝７０％（以下、Ｄ１＝７０％等と記述）と設定する。
【００３０】
次に、従来と共通の電源配線（ステップＳ３）、配置（ステップＳ４）を行う。配置を行った結果、図４（Ａ）のようになったと想定する。
【００３１】
対象となるブロックが配置された座標の内、ｘ座標及びｙ座標の各々の最大値と最小値を求め、これらｘ座標の最大値及び最小値と、ｙ座標の最大値及び最小値を組み合わせた４点の座標で囲まれた領域を、図４（Ｂ）に示すように、機能マクロの配置範囲１１として設定する（ステップＳ５）。
【００３２】
配置範囲内でのセル使用率が、設定していた値を満たしているかを判定する（ステップＳ６）。本実施の形態では判定の結果、Ｄ１＝２６．３％となったので、機能マクロＤ１に対して再配置を行う。
【００３３】
対象となる機能マクロＤ１が持つ、最小のブロックの大きさのメッシュでチップ全体を覆う。原点となるメッシュを任意に設定して、その中心の座標を、原点Ｏ（０，０）とする。Ｘ軸までの距離をＹｉ、Ｙ軸までの距離をＸｉとした時、任意のメッシュの中心の座標をそれぞれ（Ｘｉ，Ｙｉ）とする。ブロックが存在する座標の合計を求め、ブロックの数で除算する。求めた数値を対象機能マクロの重心２１とする（ステップＳ７１）。
【００３４】
配置領域を、設定したセル使用率を満たすように縮小し（ステップＳ７２）、重心が新たな配置領域の中心となるように設定する（ステップＳ７３）。その際、設定した領域が大型マクロや配置禁止領域などと重なることによって、設定したセル使用率を超過することが予め予想される場合は、セル使用率を超過しないように、領域を移動させる（ステップＳ７４，Ｓ７５）。図４（Ｃ）は領域を設定した後の状態を示す。
【００３５】
次に、機能マクロが設定した領域内に収まるように、機能マクロに含まれるブロックを移動する。まず、重心方向に移動可能かを判定する（ステップＳ８１）。ここで、ブロックが配置された位置から、重心方向に１ブロック分移動させた場合、移動先に同じ機能マクロに属する他のブロックが存在していれば、移動不可能、存在していなければ移動可能とする。他の機能マクロに属するブロックは存在していても無視する。
【００３６】
移動可能なブロックを移動させ（ステップＳ８２）、さらに、ブロックが移動したことによってできたスペースに、残りのブロックを移動させる。この作業を重心方向に移動できるブロックが無くなるまで繰り返す（ステップＳ８１）。すべてのブロックが領域内に収まっているかを判定し（ステップＳ８３）、領域内に収まりきっていないブロックがある場合は、領域内の移動させても重心からの距離が変わらないブロックを移動させて（ステップＳ８５）、空いたスペースに領域外に配置されているブロックを移動させる（ステップＳ８６）。図４（Ｄ）は移動を終了した状態を示す。
【００３７】
配置移動の終了後、他の機能マクロのブロックが設定領域内に存在すると、領域内のセル使用率が高くなりすぎるので、領域内に他の機能マクロのブロックが存在する場合は、これを領域の外に追い出す（ステップＳ９，Ｓ１０）。
【００３８】
領域縮小や追い出し作業などで、ブロック同士の配置関係が最適なものとはいえない状態になっているので、既存の配置ツールを使用して、配置の微調整を行う（ステップＳ１１）。
【００３９】
その後、従来と同様に、配線を行い（ステップＳ１２）、配線可能かのチェックを行う（ステップＳ１３）。問題が無ければレイアウト検証を行う（ステップＳ１４）。
【００４０】
以上により、他のブロックとの接続関係を考慮して配置された位置情報を元に、対象となる機能マクロの配置位置を決定するため、最適な配置位置を実現できる。
【００４１】
また、ブロックの配置範囲を希望するセル使用率を満たす範囲に収束させるため、機能マクロ内の配線が伸びてしまうことによる、タイミングエラーや、配線性の悪化を防ぐことができる。
【００４２】
次に、本発明の第２の実施の形態を図１と共通の構成要素には共通の参照文字および数字を付して同様にフローチャートで示す図５を参照する。この図に示す本実施の形態の前述の第１の実施の形態との相違点は、最適な配置を行う機能マクロが複数の場合においても対応するため、対象機能マクロセル使用率決定ステップＳ２と、対象機能マクロ配置範囲設定ステップＳ５と、使用率判定ステップＳ６と、領域設定ステップＳ７と、再配置ステップＳ８と、他の機能マクロの含有判定ステップＳ９と、追い出し作業ステップＳ１０と、配置改良ステップＳ１１との代わりに、それぞれ複数の対象機能マクロセルに対応する対象機能マクロセル使用率決定ステップＳ２Ａと、対象機能マクロ配置範囲設定ステップＳ５Ａと、使用率判定ステップＳ６Ａと、領域設定ステップＳ７Ａと、再配置ステップＳ８Ａと、他の機能マクロの含有判定ステップＳ９Ａと、追い出し作業ステップＳ１０Ａと、配置改良ステップＳ１１Ａとを有することである。
【００４３】
次に、図５及び本実施の形態を適用したブロックの配置の一例をレイアウト図で示す図６（Ａ）〜（Ｄ）を参照して本実施の形態の動作について第１の実施の形態との相違点を重点的に説明する。説明の便宜上、本実施の形態では、図６に示す３種類の機能マクロＤ１，Ｄ２，Ｄ３を持った回路のレイアウトを行うものとし、これら機能マクロＤ１，Ｄ２，Ｄ３の全てに対して最適な配置位置を求めるものとする。また、第１の実施の形態と同様に、回路周辺に配設した電源供給用の電源リング３１，３２を示す。
【００４４】
対象機能マクロセル使用率決定ステップＳ２Ａで、機能マクロＤ１，Ｄ２，Ｄ３の各々のセル使用率を設定する。本実施の形態では、Ｄ１＝７０％、Ｄ２＝８０％、Ｄ３＝６０％とそれぞれ設定する。
【００４５】
その後、電源配線、プリミティブブロックの配置を行った状態を図６（Ａ）に示す。
【００４６】
次に、対象機能マクロ配置範囲設定ステップＳ５Ａで、対象となる機能マクロＤ１，Ｄ２，Ｄ３に対して配置範囲１１，１２，１３の各々の設定を行う。配置範囲を設定した後の状態を図６（Ｂ）に示す。
【００４７】
次に、使用率判定ステップＳ６Ａで、機能マクロＤ１，Ｄ２，Ｄ３の各々のセル使用率が設定値を満たしているかを判定する。本実施の形態では、判定の結果、Ｄ１＝２６．３％、Ｄ２＝２９．９％、Ｄ３＝６４．０％となったものとすると、機能マクロＤ１，Ｄ２はセル使用率を満たしていないことになる。
【００４８】
従って、ここでは、セル使用率を満たしていない、機能マクロＤ１，Ｄ２に対して、再配置を行う。
【００４９】
まず、領域設定ステップＳ７Ａでは、複数の対象機能マクロの全てに対し実施する他は第１の実施の形態と同様に、機能マクロＤ１，Ｄ２，Ｄ３の重心を求める（ステップＳ７１）、各機能マクロＤ１，Ｄ２，Ｄ３の配置領域を、設定したセル使用率を満たすように縮小し（ステップＳ７２）、重心が新たな配置領域の中心となるように設定する（ステップＳ７３）。その際、設定した領域が大型マクロや配置禁止領域などと重なることによって、設定したセル使用率を超過することが予め予想される場合に加え、領域同士が接近し過ぎて、設定したセル使用率を超過することが予め予想される場合は、セル使用率を超過しないように、領域を移動させる（ステップＳ７４，Ｓ７５）。領域を設定した後の状態を機能マクロＤ１，Ｄ２の各々の重心２１，２２を含め図６（Ｃ）に示す。
【００５０】
次に、再配置ステップＳ８Ａでは、複数の対象機能マクロの全てに対し実施する他は第１の実施の形態と同様に、機能マクロが設定した領域内に収まるように、機能マクロに含まれるブロックを移動させる。まず、重心方向に移動可能かを判定する（ステップＳ８１）。ブロックが配置された位置から、重心方向に１ブロック分移動させた場合、移動先に同じ機能マクロに属する他のブロックが存在していれば、移動不可能、存在していなければ移動可能とする。他の機能マクロに属するブロックは存在していても無視する。移動可能なブロックを移動させ（ステップＳ８２）、さらにブロックが移動したことによってできたスペースに、残りのブロックを移動させる。この作業を重心方向に移動できるブロックが無くなるまで繰り返す（ステップＳ８１）。すべてのブロックが領域内に収まっているかを判定し（ステップＳ８３）、領域内に収まりきっていないブロックがある場合は、領域内の移動させても重心からの距離が変わらないブロックを移動させて（ステップＳ８５）、空いたスペースに領域外に配置されているブロックを移動させる（ステップＳ８６）。それぞれの機能マクロに対して、順次実行する。移動を終了した状態を図６（Ｄ）に示す。
【００５１】
配置移動を終えた後、他の機能マクロのブロックが設定領域内に存在すると、領域内のセル使用率が高くなりすぎるので、領域内に他の機能マクロのブロックが存在する場合は、これを領域の外に追い出す（ステップＳ９Ａ，Ｓ１０Ａ）。本処理もそれぞれの機能マクロに対して、順次実行する。
【００５２】
領域縮小や追い出し作業などで、ブロック同士の配置関係が最適なものとはいえない状態になっているので、既存の配置ツールを使用して、配置の微調整を行う（ステップＳ１１Ａ）。
【００５３】
その後、第１の実施の形態と共通の配線を行い（ステップＳ１２）、配線可能かのチェックを行う（ステップＳ１３）。問題が無ければレイアウト検証を行う（ステップＳ１４）。
【００５４】
次に、本発明の第３の実施の形態を図１と共通の構成要素には共通の参照文字および数字を付して同様にフローチャートで示す図７を参照すると、この図に示す本実施の形態の前述の第１の実施の形態との相違点は、対象機能マクロセル使用率決定ステップＳ２の代わりにセル使用率を決める時に最大値と最小値を設定する対象機能マクロセル使用率決定ステップＳ２Ｂと、対象機能マクロ配置範囲設定ステップＳ５との代わりに配置範囲を設定する時に最小セル使用率に基づいて配置範囲を設定する対象機能マクロ配置範囲設定ステップＳ５Ｂと、セル使用率判定ステップＳ６の代わりにセル使用率をチェックする時に最小セル使用率を満たしているかをチェックするセル使用率判定ステップＳ６Ｂと、他の機能マクロの含有判定ステップＳ９で他の機能マクロを含まない場合に設定した希望使用率以内になっているかを判定する設定セル使用率範囲内判定ステップＳ１００と、ステップＳ１００でセル使用率が最小セル使用率を満たしていない場合は配置縮小を、セル使用率が最大セル使用率を超過している場合は配置緩和を行いその結果を追い出し作業ステップＳ１０に適用する配置密度調整ステップＳ１０１とを有することである。
【００５５】
これにより、希望するセル使用率に幅を持たせることによって、配置領域内の混雑度が高すぎたり低過ぎたりするのを防ぐことができる。
【００５６】
次に、本発明の第４の実施の形態を図１と共通の構成要素には共通の参照文字および数字を付して同様にフローチャートで示す図８を参照すると、この図に示す本実施の形態の前述の第１の実施の形態との相違点は、ステップＳ９とステップＳ１０との代わりに、配置領域内に他の機能マクロを含んでいるかの判定を行う際と追い出し作業を行うときに、電源分離用の機能マクロの配置領域を、この配置領域を囲むための電源分離リングの幅を考慮して拡大して判定する他の機能マクロの含有判定ステップＳ９Ｂと、ステップＳ９Ｂの判定結果諾の場合に追い出し作業を行う追い出し作業ステップＳ１０Ｂとを有することである。
【００５７】
上記の第１〜第３の実施の形態では、自動配置ツールによって行われた配置状況から、同一機能マクロを近接して配置する際の最適な配置位置を求めて再配置を行うことにより、配線性の向上や配線遅延の短縮という効果が得られているが、配置範囲の設定時に電源保護の幅を考慮することにより、電源分離時の最適なフロアプランにも用いることができる。
【００５８】
本実施の形態では、電源配線（ステップＳ３）を配置改良後、配線ステップＳ１２の前に行う。電源分離実行後の状態をレイアウト図で示す図９を併せて参照すると、本フローでは電源分離を行う際、電源リング３３，３４で電源分離を行う機能マクロ、ここではＤ１を囲むことにより、電源分離を実現する。
【００５９】
電源分離実行時は他の電源から保護する必要があるため、異なる電源を持つブロック間には、一定の間隔が必要となる。電源を分離する機能マクロを囲む電源リング３３，３４は、機能マクロに電源を供給する目的と、他の電源系を持つブロックとの距離を保つための役割を果たす。
【００６０】
ステップＳ９Ｂで電源分離リングの幅を考慮して拡大して判定する理由は、電源リングを発生させる領域は、電源を分離し、保護するための間隔を維持する目的も有するため、この領域にブロックが存在しないようにするためである。
【００６１】
また、本構成において、セル使用率の設定は、第３の実施の形態のように幅を持たせるフローを使用しても良い。
【００６２】
次に、本発明の第５の実施の形態を図１と共通の構成要素には共通の参照文字および数字を付して同様にフローチャートで示す図１０を参照すると、この図に示す本実施の形態の前述の第１の実施の形態との相違点は、領域設定ステップＳ７の代わりに後述する領域設定ステップＳ７Ｂを有するとともに、領域設定ステップＳ７Ｂの領域設定後に新たな配置領域内でのセル使用率をチェックするセル使用率判定ステップＳ３００を追加したことである。
【００６３】
本実施の形態の領域設定ステップＳ７Ｂの詳細フローをフローチャートで示す図１１を参照すると、領域設定ステップＳ７Ｂの領域設定ステップＳ７との相違点は、配置領域縮小ステップＳ７２と配置領域移動ステップＳ７３の代わりに配置されたブロックの外周に沿って配置領域を設定する配置領域縮小ステップＳ７２Ａと、配置領域の各辺の線分を中心に向かって移動させる配置領域移動ステップＳ７３Ａとを有し、セル使用率判定ステップＳ７４と配置領域再設定Ｓ７５とを削除したことである。
【００６４】
図１０、図１１を参照して本実施の形態の動作について第１の実施の形態との相違点を重点的に説明すると、まず、領域設定ステップＳ７Ｂの領域設定時には、セル使用率のチェックは行わない。また、ステップＳ７２Ａ，Ｓ７３Ａでは、矩形のまま縮小するのではなく、配置されたブロックの外周に沿って領域を設定する。具体的には領域の各辺の線分を中心に向かって移動させる。線分が対象となる機能マクロに含まれるブロックと隣接している所は移動させない。
【００６５】
次に、ステップＳ３００で新たに設定した領域でのセル使用率チェックを行い、条件を満たしていなければ再配置ステップＳ８を行い、満たしていれば他の機能マクロを含むかをチェック（ステップＳ９）する。セル使用率チェック（ステップＳ３００）後は再配置（ステップＳ８）を行うが、配置が混み過ぎるのを避けるため、一通りブロックを移動させたら領域設定ステップＳ７に移る。
【００６６】
このように、設定した領域でのセル使用率をチェックし（ステップＳ３００）、希望する値を満たしていなければ、再配置（ステップＳ８）→領域設定（ステップＳ７）→セル使用率チェック（ステップＳ３００）を繰り返す。その後の作業は第１の実施の形態と同様に進める。
【００６７】
上述した第１〜第４の実施の形態では、領域を矩形で囲むことにより、ＣＰＵの負荷を軽減し、簡易に機能マクロの配置位置を計算しているが、領域を設定する際に矩形に固執せず、配置された形を生かした自由な領域設定を行うことにより、より初期は位置に近い、最適な配置を実現できる。
【００６８】
次に、本発明の第６の実施の形態を図１と共通の構成要素には共通の参照文字および数字を付して同様にフローチャートで示す図１２を参照すると、この図に示す本実施の形態の前述の第１の実施の形態との相違点は、領域設定ステップＳ７の代わりに配置領域を設定する際に押し込む（縮小対象の）線分の長さが電源分離リングの幅の２倍以下の場合は押し込まない、すなわち縮小しない領域設定ステップＳ７Ｃを有することである。
【００６９】
図１２及び本実施の形態の方法を用いて電源分離を実行した状態をレイアウト図で示す図１３を参照して本実施の形態の動作について第１の実施の形態との相違点を重点的に説明すると、ステップＳ７Ｃの領域を設定する際、押し込む線分の長さが、電源分離リング３３Ａ，３４Ａの幅の２倍以下の場合は押し込まない（縮小しない）。リング幅の２倍以下の線分を押し込んでも、スペースを電源リングが埋めるだけで、意味を持たないからである。ただし対象領域のコーナ部につながる線分はこの限りではない。また、他の機能マクロの含有判定ステップＳ９と、追い出し作業実行ステップＳ１０実行時は、電源分離リング３３Ａ，３４Ａの幅を考慮した物とする。
【００７０】
このように、本実施の形態を電源分離で用いる場合、配置位置に沿って領域を設定するので、電源分離機能マクロを配置する領域で余っている所を、他のブロックの配置位置として利用することができる。これにより配置密度向上にもつながる。
【００７１】
次に、本発明の第７の実施の形態を図１と共通の構成要素には共通の参照文字および数字を付して同様にフローチャートで示す図１４を参照すると、この図に示す本実施の形態の前述の第１の実施の形態との相違点は、フロアプランステップＳ１の代わりにフロアプラン実行時に従来どおりの手法で対象機能マクロに対してグルーピングを行い配置位置を指定するフロアプランステップＳ１Ａを有することである。
【００７２】
これにより、指定された機能マクロはこの範囲内に配置される。配置されたデータに対して本手法を用いて配置改良を行う。
【００７３】
このように、本実施の形態では、従来のレイアウト手法であるグルーピングと本発明を組み合わせることにより、機能ブロックの配置位置をある程度限定することもできる。
【００７４】
機能ブロックによっては、チップ上のある端子位置に近い位置に配置することが全体のレイアウトの流れや動作上の問題から要求されることがある。本実施の形態の手法により、その要求に対応することが可能になる。
【００７５】
次に、本発明の第８の実施の形態を図１と共通の構成要素には共通の参照文字および数字を付して同様にフローチャートで示す図１５を参照すると、この図に示す本実施の形態の前述の第１の実施の形態との相違点は、他の機能マクロの含有判定ステップＳ９と、追い出し作業実行ステップＳ１０を省略したことである。
【００７６】
これにより、領域設定ステップＳ７と、再配置ステップＳ８を行なうことにより本発明の最低限の目的である機能マクロの配置を集中させることができているので、ステップＳ９とステップＳ１０を省くことにより、全体フローの高速化が図れる効果がある。
【００７７】
【発明の効果】
以上説明したように、本発明の半導体集積回路のレイアウト方法は、機能マクロの配置位置を限定せずに自動配置を行い、予め指定した対象機能マクロの配置位置から、他の機能マクロとの接続関係を考慮した配置に基づき、対象機能マクロの配置密度が予め設定したセル使用率を満たすように配置領域を再設定し、対象機能マクロの再配置を行うため、最適な配置位置を実現できるという効果がある。
【００７８】
また、ブロックの配置範囲を希望するセル使用率を満たす範囲に収束させるため、機能マクロ内の配線が伸びてしまうことによる、タイミングエラーや、配線性の悪化を防ぐことができるという効果がある。
【図面の簡単な説明】
【図１】本発明の半導体集積回路のレイアウト方法の第１の実施の形態を示すフローチャートである。
【図２】図１の領域設定ステップの詳細を示すフローチャートである。
【図３】図１の再配置ステップの詳細を示すフローチャートである。
【図４】本実施の形態を適用したブロックの配置の一例を示すレイアウト図である。
【図５】本発明の半導体集積回路のレイアウト方法の第２の実施の形態を示すフローチャートである。
【図６】本実施の形態を適用したブロックの配置の一例を示すレイアウト図である。
【図７】本発明の半導体集積回路のレイアウト方法の第３の実施の形態を示すフローチャートである。
【図８】本実施の形態を適用したブロックの配置の一例を示すレイアウト図である。
【図９】本発明の半導体集積回路のレイアウト方法の第４の実施の形態を示すフローチャートである。
【図１０】本発明の半導体集積回路のレイアウト方法の第５の実施の形態を示すフローチャートである。
【図１１】図１０の領域設定ステップの詳細を示すフローチャートである。
【図１２】本発明の半導体集積回路のレイアウト方法の第６の実施の形態を示すフローチャートである。
【図１３】本実施の形態を適用したブロックの配置の一例を示すレイアウト図である。
【図１４】本発明の半導体集積回路のレイアウト方法の第７の実施の形態を示すフローチャートである。
【図１５】本発明の半導体集積回路のレイアウト方法の第８の実施の形態を示すフローチャートである。
【図１６】従来の半導体集積回路のレイアウト方法の一例を示すブロック図である。
【符号の説明】
１１，１２，１３　　配置範囲
２１，２２，２３　　重心
３１，３２，３３，３４　　電源リング
３３Ａ，３４Ａ　　電源分離リング
【図１】
2004013205.tif 000003
【図２】
2004013205.tif 000004
【図３】
2004013205.tif 000005
【図４】
2004013205.tif 000006
【図５】
2004013205.tif 000007
【図６】
2004013205.tif 000008
【図７】
2004013205.tif 000009
【図８】
2004013205.tif 000010
【図９】
2004013205.tif 000011
【図１０】
2004013205.tif 000012
【図１１】
2004013205.tif 000013
【図１２】
2004013205.tif 000014
【図１３】
2004013205.tif 000015
【図１４】
2004013205.tif 000016
【図１５】
2004013205.tif 000017
【図１６】
2004013205.tif 000018