(57)【要約】【課題】並行する回路ブロック間配線のリピータ挿入位置の重なりを抑制できる半導体レイアウトシステムを提供する。【解決手段】配線情報記憶部２０１は、配線の始点座標及び終点座標を含む回路ブロック間配線の配線情報を記憶する。グループ化処理部２１は、リピータ挿入対象の回路ブロック間配線のうちで、始点座標のＸ方向の座標又はＹ方向の座標の差が所定距離以内で、かつ、互いに並行して延びる配線部分を有する回路ブロック間配線をグループ化する。リピータ挿入基点決定部２２は、同じグループに所属する回路ブロック間配線について、始点座標からの距離が相互に異なる位置の座標をリピータ挿入基点に決定する。リピータ挿入処理部２３は、リピータ挿入基点を基点に、リピータ挿入対象の回路ブロック間配線に挿入するリピータセルの位置を決定する。【選択図】図１
2010186304.tif 000002
【特許請求の範囲】
【請求項１】
配線の始点座標及び終点座標を含む回路ブロック間配線の配線情報を記憶する配線情報記憶部を参照し、リピータ挿入対象の回路ブロック間配線のうちで、始点座標のＸ方向の座標又はＹ方向の座標の差が所定距離以内で、かつ、互いに並行して延びる配線部分を有する回路ブロック間配線をグループ化するグループ化処理部と、
同じグループに所属する回路ブロック間配線について、前記始点座標からの距離が相互に異なる位置の座標をリピータ挿入基点に決定し、リピータ挿入基点位置情報として記憶するリピータ挿入基点決定部と、
前記配線情報及びリピータ挿入基点位置情報を参照し、前記リピータ挿入基点を基点に、リピータ挿入対象の回路ブロック間配線に挿入するリピータセルの位置を決定し、リピータセルの配置情報として配置情報記憶部に記憶するリピータ挿入処理部とを備える半導体レイアウトシステム。
【請求項２】
前記グループ化処理部は、前記リピータ挿入対象の回路ブロック間配線のうちで、前記Ｘ方向の座標又はＹ方向の座標の差が所定距離以内の回路ブロック間配線をグループ候補とし、該グループ候補の回路ブロック間配線について互いに並行して延びる配線部分の長さを求め、該並行して延びる配線部分の長さが所定の長さ以上の回路ブロック間配線を同じグループにグループ化する、請求項１に記載の半導体レイアウトシステム。
【請求項３】
前記グループ化処理部は、更に、前記並行して延びる配線部分の長さが所定の長さ以上の回路ブロック間配線のマンハッタンレシオを計算し、該マンハッタンレシオの値を相互に比較して差が所定の値以内の回路ブロック間配線を同じグループにグループ化する、請求項２に記載の半導体レイアウトシステム。
【請求項４】
前記リピータ挿入基点決定部は、所定のずらし長をαとし、前記回路ブロック間配線の経路上で前記始点座標からα×（ｉ−１）（ｉ＝１、２、・・・、同じグループに所属する回路ブロック間配線の数）離れた位置の座標をリピータ挿入基点に決定する、請求項１乃至３の何れか一に記載の半導体レイアウトシステム。
【請求項５】
前記配線情報記憶部及び前記配置情報記憶部を参照し、前記リピータセル同士の重なりを解消するようにリピータセルの位置を移動する重なりほぐし処理を行い、該重なりほぐし処理の結果を前記配置情報記憶部に記憶する重なりほぐし処理部と、
前記重なりほぐし処理部が重なりほぐし処理を行った後に、前記配線情報記憶部及び前記配置情報記憶部を参照して前記回路ブロック間配線の再配線を行い、再配線結果を前記配線情報記憶部に記憶する配線部とを更に備える、請求項１乃至４の何れか一に記載の半導体レイアウトシステム。
【請求項６】
コンピュータが、配線の始点座標及び終点座標を含む回路ブロック間配線の配線情報を記憶する配線情報記憶部を参照し、リピータ挿入対象の回路ブロック間配線のうちで、始点座標のＸ方向の座標又はＹ方向の座標の差が所定距離以内で、かつ、互いに並行して延びる配線部分を有する回路ブロック間配線をグループ化するグループ化ステップと、
前記コンピュータが、同じグループに所属する回路ブロック間配線について、前記始点座標からの距離が相互に異なる位置の座標をリピータ挿入基点に決定し、リピータ挿入基点位置情報として記憶するリピータ挿入基点決定ステップと、
前記配線情報及びリピータ挿入基点位置情報を参照し、前記リピータ挿入基点を基点に、リピータ挿入対象の回路ブロック間配線に挿入するリピータセルの位置を決定し、リピータセルの配置情報として配置情報記憶部に記憶するリピータ挿入ステップとを有する半導体レイアウト方法。
【請求項７】
前記グループ化ステップでは、前記コンピュータは、前記リピータ挿入対象の回路ブロック間配線のうちで、前記Ｘ方向の座標又はＹ方向の座標の差が所定距離以内の回路ブロック間配線をグループ候補とし、前記グループ候補の回路ブロック間配線について互いに並行して延びる配線部分の長さを求め、該並行して延びる配線部分の長さが所定の長さ以上の回路ブロック間配線を同じグループにグループ化する、請求項６に記載の半導体レイアウト方法。
【請求項８】
前記グループ化ステップでは、コンピュータは、更に、前記並行して延びる配線部分の長さが所定の長さ以上の回路ブロック間配線のマンハッタンレシオを計算し、該マンハッタンレシオの値を相互に比較して差が所定の値以内の回路ブロック間配線を同じグループにグループ化する、請求項７に記載の半導体レイアウト方法。
【請求項９】
前記リピータ挿入基点決定ステップでは、前記コンピュータは、所定のずらし長をαとし、前記回路ブロック間配線の経路上で前記始点座標からα×（ｉ−１）（ｉ＝１、２、・・・、同じグループに所属する回路ブロック間配線の数）離れた位置の座標をリピータ挿入基点に決定する、請求項６乃至８の何れか一に記載の半導体レイアウト方法。
【請求項１０】
前記コンピュータが、前記配線情報記憶部及び前記配置情報記憶部を参照して、前記リピータセル同士の重なりを解消するようにリピータセルの位置を移動し、該移動の結果を前記配置情報記憶部に記憶する重なりほぐしステップと、
前記コンピュータが、前記重なりほぐしステップに後続して、前記配線情報記憶部及び前記配置情報記憶部を参照して前記回路ブロック間配線の再配線を行い、再配線結果を前記配線情報記憶部に記憶する再配線ステップとを更に有する、請求項６乃至９の何れか一に記載の半導体レイアウト方法。
【請求項１１】
コンピュータに、
配線の始点座標及び終点座標を含む回路ブロック間配線の配線情報を記憶する配線情報記憶部を参照し、リピータ挿入対象の回路ブロック間配線のうちで、始点座標のＸ方向の座標又はＹ方向の座標の差が所定距離以内で、かつ、互いに並行して延びる配線部分を有する回路ブロック間配線をグループ化するグループ化処理と、
同じグループに所属する回路ブロック間配線について、前記始点座標からの距離が相互に異なる位置の座標をリピータ挿入基点に決定し、リピータ挿入基点位置情報として記憶するリピータ挿入基点決定処理と、
前記配線情報及びリピータ挿入基点位置情報を参照し、前記リピータ挿入基点を基点に、リピータ挿入対象の回路ブロック間配線に挿入するリピータセルの位置を決定し、リピータセルの配置情報として配置情報記憶部に記憶するリピータ挿入処置とを実行させるプログラム。
【請求項１２】
前記グループ化処理では、前記リピータ挿入対象の回路ブロック間配線のうちで、前記Ｘ方向の座標又はＹ方向の座標の差が所定距離以内の回路ブロック間配線をグループ候補とし、前記グループ候補の回路ブロック間配線について互いに並行して延びる配線部分の長さを求め、該並行して延びる配線部分の長さが所定の長さ以上の回路ブロック間配線を同じグループにグループ化する、請求項１１に記載のプログラム。
【請求項１３】
前記グループ化処理では、更に、前記並行して延びる配線部分の長さが所定の長さ以上の回路ブロック間配線のマンハッタンレシオを計算し、該マンハッタンレシオの値を相互に比較して差が所定の値以内の回路ブロック間配線を同じグループにグループ化する、請求項１２に記載のプログラム。
【請求項１４】
前記リピータ挿入基点決定処理では、所定のずらし長をαとし、前記回路ブロック間配線の経路上で前記始点座標からα×（ｉ−１）（ｉ＝１、２、・・・、同じグループに所属する回路ブロック間配線の数）離れた位置の座標をリピータ挿入基点に決定する、請求項１１乃至１３の何れか一に記載のプログラム。
【請求項１５】
前記コンピュータに、
前記配線情報記憶部及び前記配置情報記憶部を参照して、前記リピータセル同士の重なりを解消するようにリピータセルの位置を移動し、該移動の結果を前記配置情報記憶部に記憶する重なりほぐし処理と、
前記重なりほぐし処理に後続して、前記配線情報記憶部及び前記配置情報記憶部を参照して前記回路ブロック間配線の再配線を行い、再配線結果を前記配線情報記憶部に記憶する再配線処理とを更に実行させる、請求項１１乃至１４の何れか一に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体レイアウトシステム、方法、プログラムに関し、更に詳しくは、階層レイアウト設計を行う半導体レイアウトシステム、方法、及び、プログラムに関する。
【背景技術】
【０００２】
半導体集積回路のレイアウト設計の手法として、階層的なレイアウト設計がある。階層的なレイアウト設計では、階層ブロック（回路ブロック）内の配置・配線と、階層ブロックの配置・配線とを階層的に行う。一般に、階層ブロック間の配線は、階層ブロック内の配線よりも長くなりやすい。階層ブロック間の配線のような長い配線は、配線の寄生素子に起因する遅延が大きい。そこで、遅延の改善を図ることを目的として、配線の途中にリピータと呼ばれるバッファやインバータセルを一定間隔で挿入することが、一般に行われる（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３１３９２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、階層的なレイアウト設計では、階層ブロックのある辺から別の階層ブロックのある辺に向けて、複数の配線が並行して走る傾向がある。その並行して走る階層ブロック間の配線は、配線長も似た長さになる。一般に、リピータは、階層ブロック間の配線に、等間隔で挿入される。並行して走る階層ブロック間の配線に、遅延補償を目的としてリピータを挿入すると、並行して走る階層ブロック間の配線の間で、リピータ挿入位置が近接することになる。
【０００５】
リピータ挿入位置が近接し、リピータセルを配置する領域が重なる場合、リピータセルを配置する位置をずらす処理が必要になる。また、それに伴い、階層ブロック間の配線のルートの変更も必要になる。並行する階層ブロック間の配線間で、近接した位置にリピータが挿入されると、リピータセルの配置位置が重なる箇所が増え、移動が必要なリピータセルの数が増加し、また、リピータセルの移動量も増加する。それに伴って、リピータセル移動後の階層ブロック間配線の修正箇所も増大する。また、階層ブロック間の配線に多くの迂回箇所が発生するなど、レイアウトが煩雑になる。
【０００６】
本発明は、半導体レイアウト設計で回路ブロック間配線にリピータセルを挿入する際に、並行する回路ブロック間配線のリピータ挿入位置の重なりを抑制できる半導体レイアウトシステム、方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の半導体レイアウトシステムは、配線の始点座標及び終点座標を含む回路ブロック間配線の配線情報を記憶する配線情報記憶部を参照し、リピータ挿入対象の回路ブロック間配線のうちで、始点座標のＸ方向の座標又はＹ方向の座標の差が所定距離以内で、かつ、互いに並行して延びる配線部分を有する回路ブロック間配線をグループ化するグループ化処理部と、同じグループに所属する回路ブロック間配線について、前記始点座標からの距離が相互に異なる位置の座標をリピータ挿入基点に決定し、リピータ挿入基点位置情報として記憶するリピータ挿入基点決定部と、前記配線情報及びリピータ挿入基点位置情報を参照し、前記リピータ挿入基点を基点に、リピータ挿入対象の回路ブロック間配線に挿入するリピータセルの位置を決定し、リピータセルの配置情報として配置情報記憶部に記憶するリピータ挿入処理部とを備えることを特徴とする。
【０００８】
本発明の半導体レイアウト方法は、コンピュータが、配線の始点座標及び終点座標を含む回路ブロック間配線の配線情報を記憶する配線情報記憶部を参照し、リピータ挿入対象の回路ブロック間配線のうちで、始点座標のＸ方向の座標又はＹ方向の座標の差が所定距離以内で、かつ、互いに並行して延びる配線部分を有する回路ブロック間配線をグループ化するグループ化ステップと、前記コンピュータが、同じグループに所属する回路ブロック間配線について、前記始点座標からの距離が相互に異なる位置の座標をリピータ挿入基点に決定し、リピータ挿入基点位置情報として記憶するリピータ挿入基点決定ステップと、前記配線情報及びリピータ挿入基点位置情報を参照し、前記リピータ挿入基点を基点に、リピータ挿入対象の回路ブロック間配線に挿入するリピータセルの位置を決定し、リピータセルの配置情報として配置情報記憶部に記憶するリピータ挿入ステップとを有することを特徴とする。
【０００９】
本発明のプログラムは、コンピュータに、配線の始点座標及び終点座標を含む回路ブロック間配線の配線情報を記憶する配線情報記憶部を参照し、リピータ挿入対象の回路ブロック間配線のうちで、始点座標のＸ方向の座標又はＹ方向の座標の差が所定距離以内で、かつ、互いに並行して延びる配線部分を有する回路ブロック間配線をグループ化するグループ化処理と、同じグループに所属する回路ブロック間配線について、前記始点座標からの距離が相互に異なる位置の座標をリピータ挿入基点に決定し、リピータ挿入基点位置情報として記憶するリピータ挿入基点決定処理と、前記配線情報及びリピータ挿入基点位置情報を参照し、前記リピータ挿入基点を基点に、リピータ挿入対象の回路ブロック間配線に挿入するリピータセルの位置を決定し、リピータセルの配置情報として配置情報記憶部に記憶するリピータ挿入処置とを実行させることを特徴とする。
【発明の効果】
【００１０】
本発明の半導体レイアウトシステム、方法、及び、プログラムは、並行する回路ブロック間配線のリピータ挿入位置の重なりを抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態の半導体レイアウトシステムを示すブロック図。
【図２】配線情報記憶部のデータ例を示す図。
【図３】動作手順を示すフローチャート。
【図４】設計対象の半導体装置における回路ブロックと回路ブロック間の配線とを示す図。
【図５】リピータ挿入基点を示す図。
【図６】リピータセル挿入後の状態を示す図。
【図７】重なりほぐし処理及び再配線後の状態を示す図。
【図８】比較例におけるリピータ挿入後の状態を示す図。
【図９】比較例における重なりほぐし処理及び再配線後の状態を示す図。
【発明を実施するための形態】
【００１２】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図１は、本発明の一実施形態の半導体レイアウトシステムを示している。半導体レイアウトシステムは、データ処理装置２０と、記憶装置２００とを有する。データ処理装置２０は、グループ化処理部２１、リピータ挿入基点決定部２２、リピータ挿入処理部２３、重なりほぐし処理部２４、及び、配線部２５を有する。データ処理装置２０内の各部の機能は、データ処理装置２０上で所定のプログラムを実行することで実現可能である。記憶装置２００は、配線情報記憶部２０１と、配置情報記憶部２０２とを有する。記憶装置２００は、半導体メモリや、ハードディスクドライブ等の記憶装置である。
【００１３】
本実施形態のレイアウトシステムが処理を行う前の段階で、回路ブロックの配置、及び、回路ブロック間の配線は決定しているものとする。回路ブロックの配置、及び、回路ブロック間の配線は、レイアウトシステムが回路接続情報に基づいて決定する。或いは、レイアウトシステムとは別の装置を用いて回路ブロックの配置及び配線の決定を行ってもよい。また、回路ブロック間配線のうち、リピータ挿入対象となる配線も決定しているとする。例えば、タイミング検証を行い、遅延時間が長くタイミング制約を満たさない配線をリピータ挿入対象とする。或いは、配線長が所定以上の配線を、リピータ挿入対象としてもよい。
【００１４】
記憶装置２００には、回路ブロックの配置、及び、回路ブロック間の配線の結果が記憶されている。配線情報記憶部２０１は、回路ブロック間の配線の情報を記憶する。回路ブロック間の配線情報は、配線の始点座標と、終点座標、及び、途中の経路の情報を含む。また、配線情報記憶部２０１は、リピータ挿入処理を行う対象の回路ブロック間配線について、リピータ挿入の際の基点となるリピータ挿入基点に関する情報（リピータ挿入基点情報）を含む。配置情報記憶部２０２は、回路ブロックを構成するセルの配置情報を記憶する。回路ブロックの配置情報は、セルの配置座標、及び、セルの配置の向きを含む。
【００１５】
図２に、配線情報の具体例を示す。図２には、ｎｅｔ１〜ｎｅｔ６までの６つの回路ブロック間配線の配線情報が示されている。回路ブロック間配線は、１以上の配線セグメントの集合で表される。配線セグメントには、始点座標と終点座標とのペアが記憶される。配線セグメントの配線は、始点座標と終点座標とを結ぶ直線で表される。配線セグメントの終点座標は、次の配線セグメントの始点座標と重なる。例えば、ｎｅｔ１の配線セグメント１の終点座標は（ｘ２，ｙ１）であり、この座標は、配線セグメント２の始点座標と重なっている。配線セグメント１から順に、配線セグメント２、配線セグメント３と辿っていくことで、ある回路ブロックから別の回路ブロックへの配線ルートが構成できる。
【００１６】
グループ化処理部２１は、配線情報記憶部２０１を参照し、リピータ挿入対象の回路ブロック間配線のうちで、似た位置を始点座標とし、かつ、互いに並行して延びる配線部分を有する回路ブロック間配線をグループ化する。グループ化処理部２１は、具体的には、始点座標のＸ方向の座標又はＹ方向の座標の差が所定距離以内の回路ブロック間配線を、似た位置を始点座標とする回路ブロック間配線とする。グループ化処理部２１は、更に、回路ブロック間配線の配線経路の類似性を求め、似た位置を始点座標とし、互いに並行して延びる配線部分を有し、かつ、配線経路が類似する回路ブロック間配線をグループ化してもよい。
【００１７】
グループ化処理部２１は、配線経路の類似性を判断する際の指標として、例えばマンハッタンレシオを用いる。マンハッタンレシオは、マンハッタン長と実際の配線のルートの長さとの比で定義される。グループ化処理部２１は、マンハッタンレシオの値を相互に比較し、マンハッタンレシオの値が似た値となるネットをグループ化する。具体的には、マンハッタンレシオの値の差が所定の値以内のネットを、マンハッタンレシオが似た値になるネットとする。或いは、差に変えて、マンハッタンレシオの比を用い、比が所定の範囲以内に収まるネットを、マンハッタンレシオが似た値になるネットとしてもよい。
【００１８】
リピータ挿入基点決定部２２は、リピータ挿入対象の回路ブロック間配線にリピータセルを挿入する際の基点となる位置（リピータ挿入基点）を決定する。リピータ挿入基点決定部２２は、グループ化された回路ブロック間配線について、始点座標からの距離が相互に異なる位置の座標をリピータ挿入基点に決定する。リピータ挿入基点決定部２２は、決定したリピータ挿入基点を、リピータ挿入基点位置情報として配線情報記憶部２０１に記憶する。リピータ挿入基点決定部２２は、リピータ挿入基点情報をリピータ挿入処理部２３に通知するだけでもよい。
【００１９】
リピータ挿入処理部２３は、配線情報及びリピータ挿入基点位置情報を参照し、リピータ挿入位置を基点に、リピータ挿入対象の回路ブロック間配線に挿入するリピータセルの位置を決定する。より詳細には、リピータ挿入処理部２３は、各リピータ挿入対象の回路ブロック間配線について、リピータ挿入基点から所定間隔の道のりとなる座標を算出し、その座標をリピータセルの挿入位置と決定する。リピータ挿入処理部２３は、決定したリピータセル挿入位置を、配置情報記憶部２０２に記憶する。
【００２０】
重なりほぐし処理部２４は、配置情報記憶部２０２を参照して、セル同士が重なっている箇所が存在するか否かを調べる。重なりほぐし処理部２４は、セルが重なる箇所があるときは、重なりほぐし処理を行い、セルの重なりが解消するようにリピータセルの位置を移動する。重なりほぐし処理部２４は、重なりほぐし処理の結果を、配置情報記憶部２０２に記憶する。配線部２５は、重なりほぐし処理部２４が重なりほぐし処理を行った後に、配線情報記憶部２０１及び配置情報記憶部２０２を参照し、リピータセルを含む回路ブロック間の再配線を行う。配線部２５は、再配線結果を、配線情報記憶部２０１に記憶する。
【００２１】
図３に、リピータ挿入基点決定の処理手順を示す。リピータ挿入基点を決定する処理に先立って、回路ブロックの配置、及び、回路ブロック間の配線を決定し、配置情報記憶部２０２及び配線情報記憶部２０１に記憶しておく。また、回路ブロック間の配線のうち、リピータ挿入対象の配線（ネット）を決定しておく。
【００２２】
グループ化処理部２１は、配線情報記憶部２０１から、リピータ挿入対象のネットの始点座標を取得する。リピータ挿入基点決定部２２は、始点が同じ直線上に並ぶネット、つまり、始点座標のＸ座標又はＹ座標が一致するネットをグループ化する（ステップＳ１）。リピータ挿入基点決定部２２は、例えば、ネットの始点座標のＸ座標が相互に等しいリピータ挿入対象ネットが複数あるときは、そのＸ座標が同じ複数のネットをグループ化する。Ｘ座標及びＹ座標は、完全に一致している必要はなく、差が所定の距離以内であれば同じ座標とみなしてよい。ステップＳ１でグループ化されたリピータ挿入対象ネットは、グループ候補のネットに相当する。
【００２３】
グループ化処理部２１は、ステップＳ１でグループ化された各ネットについて、互いに並行して延びる配線部分の長さを求める。より詳細には、グループ化処理部２１は、各ネットについて、所定間隔以下の間隔で同じグループの他のネットと並行して走る部分の長さ（並行配線長）を求める。リピータ挿入基点決定部２２は、並行配線長が所定のしきい値以上のネットをグループに残し、並行配線長が短いネットはグループから削除する（ステップＳ２）。ここまでの処理で、始点座標のＸ方向の座標又はＹ方向の座標の差が一致し、かつ、並行配線長が所定の長さ以上あるネットが、グループ化される。グループ化処理部２１は、ステップＳ１でネットが複数のグループにグループ化されているときは、各グループについて、ステップＳ２の処理を行う。
【００２４】
グループ化処理部２１は、更に、配線経路の類似度の観点からグループ化を行う。グループ化処理部２１は、ステップＳ２でグループに残った各ネットについて、マンハッタンレシオを計算する。グループ化処理部２１は、各ネットのマンハッタンレシオを相互に比較する。リピータ挿入基点決定部２２は、マンハッタンレシオが似た値になるネットをグループ化する（ステップＳ３）。リピータ挿入基点決定部２２は、この処理を、ステップＳ１で生成された各グループについて行う。グループ化処理部２１は、ステップＳ１〜Ｓ３を実行することで、始点座標のＸ座標又はＹ座標が同じで、並行配線長が長く、かつ、マンハッタンレシオが同程度のネットをグループ化する。
【００２５】
リピータ挿入基点決定部２２は、グループ化処理の結果を受け取り、グループ化されたネットのリピータ挿入基点を決定する（ステップＳ４）。リピータ挿入基点決定部２２は、同じグループにグループ化されたネットに対し、始点座標からの距離が相互に異なる位置の座標をリピータ挿入基点に決定する。例えば、リピータ挿入基点決定部２２は、所定のずらし長をαとし、ネットの経路上で始点座標からα×（ｉ−１）（ｉ＝１、２、・・・、同じグループに所属する回路ブロック間配線の数）離れた位置の座標を求め、これをリピータ挿入基点に決定する。
【００２６】
ここで、ずらし長αは、リピータ挿入位置の“ずらし長”である。ずらし長αの値は、リピータの挿入間隔よりも小さく、かつ、リピータセルのＸ方向のサイズ又はＹ方向のサイズのうちの大きい方よりも大きい。オペレータは、リピータ挿入基点決定部２２に対して、任意のずらし長αを指定することができる。或いは、リピータ挿入基点決定部２２が、リピータ挿入間隔や、グループ化されたネットの数などから、ずらし長αの値を自身で決定してもよい。
【００２７】
リピータ挿入基点決定部２２は、ステップＳ３でグループ化した各グループについて、ステップＳ４の処理を行う。リピータ挿入基点決定部２２は、決定したリピータ挿入基点を、リピータ挿入基点情報として配線情報記憶部２０１に記憶する。
【００２８】
リピータ挿入処理部２３は、リピータ挿入対象ネットからネットを１つ選択し、そのネットの配線情報及びリピータ挿入基点情報を、配線情報記憶部２０１から読み出す。リピータ挿入処理部２３は、リピータ挿入基点から、所定の間隔に相当する道のりに位置する当該ネットの配線上の座標を算出する（ステップＳ５）。リピータ挿入処理部２３は、ステップＳ５で算出した座標を、リピータセルの配置座標として、配置情報記憶部２０２に記憶する（ステップＳ６）。
【００２９】
リピータ挿入処理部２３は、全てのリピータ挿入対象ネットに対して、ステップＳ５及びＳ６の処理を行う。リピータ挿入処理部２３は、ステップＳ４でリピータ挿入基点が決定されていないネット、つまり、ステップＳ１〜Ｓ３のグループ化でグループ化から漏れたネットについては、ネットの始点座標をリピータ挿入基点として用い、リピータ挿入座標を算出する。或いは、ステップＳ４で、リピータ挿入基点決定部２２が、何れのグループにも所属しないネットについては、始点座標をリピータ挿入基点として決定し、それを配線情報記憶部２０１に記憶しておいてもよい。
【００３０】
重なりほぐし処理部２４は、リピータ挿入対象ネットのリピータ挿入座標が決定すると、配置情報記憶部２０２を参照し、セル同士の重なり、配置位置のずれや向きを直す重なりほぐし処理を行う。重なりほぐし処理部２４は、重なりほぐし処理の結果を、配置情報記憶部２０２に記憶する（ステップＳ７）。配線部２５は、配線情報記憶部２０１と配置情報記憶部２０２とを参照し、リピータ挿入後の状態の回路の再配線を行う。配線部２５は、再配線結果を、配線情報記憶部２０１に記憶する（ステップＳ８）。
【００３１】
以下、具体例を用いて説明する。図４に、回路ブロックと回路ブロック間の配線とを示す。図４には、回路ブロック５０１〜５０３の３つの回路ブロックを図示している。回路ブロック５０１は、出力端子５０４〜５０８を有している。また、回路ブロック５０３は、入出力端子５０９〜５１２を有している。ネット５１３〜５１８は、回路ブロック間を接続する配線である。ネット５１３〜５１８は、図２に示す配線情報のｎｅｔ１〜ｎｅｔ６に対応する。なお、図４では、ネット５１３〜５１８は、配線の中心線のみを図示している。
【００３２】
各ネットは、ある回路ブロックの出力端子又は入出力端子と、別の回路ブロックの入力端子又は入出力端子との間を接続する。例えば、ｎｅｔ１であるネット５１３は、回路ブロック５０１の出力端子５０８と、回路ブロック５０３の入出力端子５１０との間を接続する。ｎｅｔ６であるネット５１８は、図示しない回路ブロック間を接続するネットであり、図４では、始点及び終点の端子は省略して図示している。
【００３３】
配線情報記憶部２０１には、ネット５１３〜５１８の配線情報が記憶されている。また、配置情報記憶部２０２には、回路ブロック５０１〜５０３の配置位置、及び、配置の向きが記憶されている。なお、ネットの始点は、信号の出力側、つまり、出力端子側に定義する。図４に示されたネット５１３〜５１８は、全てリピータ挿入対象ネットである。
【００３４】
グループ化処理部２１は、まず、ステップＳ１で、始点のＸ座標又はＹ座標が一致するネットをグループ化する。図２を参照すると、回路ブロック５０１の出力端子５０４〜５０８を始点とするネット５１３〜５１７（ｎｅｔ１〜ｎｅｔ５）の始点のＸ座標はｘ１である。グループ化処理部２１は、は、始点のＸ座標が相互に一致するｎｅｔ１〜ｎｅｔ５をグループ化する。図４に示すｎｅｔ１〜ｎｅｔ６のうち、ｎｅｔ６は、始点座標が一致しないので、グループ化対象から外れる。
【００３５】
次いで、グループ化処理部２１は、ステップＳ２で、グループ化されたｎｅｔ１〜ｎｅｔ５間での並行配線長を調べる。ｎｅｔ１〜ｎｅｔ５のうち、ｎｅｔ１〜ｎｅｔ３、ｎｅｔ５には、所定間隔以内で、かつ、平行して延びる配線部分が所定の長さ以上ある。従って、グループ化処理部２１は、これらをグループに残す。ｎｅｔ４については、ｎｅｔ１〜ｎｅｔ３、ｎｅｔ５と並行して延びる部分が短い。グループ化処理部２１は、ｎｅｔ４をグループから外す。ここまでの処理で、ｎｅｔ１〜ｎｅｔ３、ｎｅｔ５がグループ化される。
【００３６】
続いて、グループ化処理部２１は、ステップＳ３で、ｎｅｔ１〜ｎｅｔ３、ｎｅｔ５のマンハッタンレシオを算出する。マンハッタンレシオは、マンハッタン長と実際の配線のルートの長さとの比で定義される。ｎｅｔ１〜ｎｅｔ３は、同じような経路で回路ブロック５０１と回路ブロック５０３とを接続するので、マンハッタンレシオは似た値になる。ｎｅｔ５は、回路ブロック５０２を迂回する形で回路ブロック５０１と回路ブロック５０３とを接続しており、配線経路が、ｎｅｔ１〜ｎｅｔ３とは異なっている。その結果、ｎｅｔ５のマンハッタンレシオは、ｎｅｔ１〜ｎｅｔ３のマンハッタンレシオとは異なる値になる。グループ化処理部２１は、ｎｅｔ５をグループから外し、ｎｅｔ１〜ｎｅｔ３をグループに残す。
【００３７】
ステップＳ１〜Ｓ３のグループ化で、始点座標のＸ座標又はＹ座標が一致し、並行して延びる配線部分がある程度あり、かつ、配線経路が似たルートとなるネットが、グループ化される。リピータ挿入基点決定部２２は、ステップＳ４で、グループ化されたｎｅｔ１〜ｎｅｔ３のリピータ挿入基点を、始点座標からネットの経路上でずらし長αずつずらした位置に決定する。リピータ挿入基点決定部２２は、グループが複数あるときは、各グループについて、そのグループに所属するネットのリピータ挿入基点を、ずらし長αずつずらした位置に決定する。リピータ挿入基点決定部２２は、決定したリピータ挿入基点を、配線情報記憶部２０１に記憶する。
【００３８】
図５に、リピータ挿入基点を示す。リピータ挿入基点決定部２２は、ｎｅｔ１はずらし長＝０として、ｎｅｔ１の始点座標（ｘ１，ｙ１）をリピータ挿入基点と決定する。リピータ挿入基点決定部２２は、ｎｅｔ２はずらし長＝αとして、ｎｅｔ２の始点座標からｎｅｔ２の配線経路上でαだけ離れた距離に位置する座標（ｘ２＋２ｔ，ｙ１＋２ｔ−（α−（（ｘ２＋２ｔ）−ｘ１）））をリピータ挿入基点として決定する。リピータ挿入基点決定部２２は、ｎｅｔ３はずらし長＝２αとして、ｎｅｔ３の始点座標からｎｅｔ３の配線経路上で２αだけ離れた距離に位置する座標（ｘ２＋４ｔ，ｙ１＋４ｔ−（２α−（（ｘ２＋４ｔ）−ｘ１）））をリピータ挿入基点に決定する。図５では、ｎｅｔ２、ｎｅｔ３のリピータ挿入基点を、ネット上の黒丸で示している。
【００３９】
リピータ挿入処理部２３は、ステップＳ５で、リピータ挿入対象ネット（ｎｅｔ１〜ｎｅｔ６）のそれぞれについて、リピータ挿入基点からネットの経路上で所定間隔となる位置の座標を算出し、その座標を、リピータセルを配置する座標として決定する。リピータ挿入処理部２３は、グループ化されたｎｅｔ１〜ｎｅｔ３については、配線情報記憶部２０１にリピータ挿入位置として記憶された座標をリピータ挿入基点として、その基点からリピータ挿入位置を決定していく。リピータ挿入処理部２３は、何れのグループにも所属していないｎｅｔ４〜ｎｅｔ６については、ネットの始点座標をリピータ挿入基点として、リピータ挿入位置を決定する。リピータ挿入処理部２３は、ステップＳ６で、決定したリピータ挿入位置を配置情報記憶部２０２に記憶する。
【００４０】
図６に、リピータセルが挿入された状態を示す。図６では、斜線で塗りつぶした四角の箱が、リピータセルを表している。リピータ挿入処理部２３は、ｎｅｔ１については、始点である出力端子５０８の座標を基点とし、出力端子５０８から所定間隔でリピータセルを挿入する。リピータ挿入処理部２３は、ｎｅｔ２については、始点である出力端子５０７からずらし長αだけ離れた位置を基点とし、基点から所定間隔でリピータセルを挿入する。また、リピータ挿入処理部２３は、ｎｅｔ３については、始点である出力端子５０６からずらし長２αだけ離れた位置を基点とし、基点から所定間隔でリピータセルを挿入する。
【００４１】
重なりほぐし処理部２４は、ステップＳ７で、配置情報記憶部２０２を参照して各リピータセルの配置座標を調べ、位置が重なるリピータセルがあるか否かを調べる。重なりほぐし処理部２４は、位置が重なるリピータセルがあるときは、リピータセルをセルの配置行列（サイト）に合わせて移動し、重なりを解消する。重なりほぐし処理部２４は、移動後のリピータセルの座標を、配置情報記憶部２０２に記憶する。配線部２５は、配線情報記憶部２０１と配置情報記憶部２０２とを参照し、再配線を行う。配線部２５は、再配線結果を、配線情報記憶部２０１に記憶する。
【００４２】
図７に、重なりほぐし処理及び再配線後の状態を示す。図６では、ネット５１５（ｎｅｔ３）の出力端子５０６から数えて１つ目のリピータセルの配置位置と、ネット５１７（ｎｅｔ５）の出力端子５０４から数えて１つ目のリピータセルの配置位置とが重なっている。重なりほぐし処理部２４は、位置が重なるリピータセルの少なくとも一方を移動し、リピータセルの重なりを解消する。配線部２５は、挿入するリピータセルの配置に合わせて、回路ブロック間の配線を再配線する。重なりほぐし処理及び再配線を行うことで、図７に示す回路が得られる。
【００４３】
ここで、比較例として、リピータ挿入基点をずらさずにリピータ挿入を行った場合を考える。図８に、比較例におけるリピータセル挿入後の状態を示す。図４に示す回路にて、リピータ挿入基点を回路ブロック間配線の始点に固定し、リピータセル挿入を行うと、図８に示すようになる。ネット５１３〜５１５（ｎｅｔ１〜ｎｅｔ３）は、回路ブロック５０１の同一直線上に始点があり、隣接して平行に走る。従って、ネットの始点をリピータ挿入基点として一定間隔でリピータセルを挿入すると、図８に示すように、１段目、２段目、３段目のそれぞれでリピータセルの挿入位置が近接し、リピータセルが密集して配置される。図９に、比較例にて重なりほぐし処理及び再配線を施した後の状態を示す。図８に示すリピータセル挿入から、リピータセルの位置が重ならないようにリピータセルを移動し、回路ブロック間の配線を再配線すると、図９に示すようになる。
【００４４】
図６と図８とを比較すると、本実施形態では、ネット５１３〜５１５（ｎｅｔ１〜ｎｅｔ３）のリピータ挿入位置がネットの始点からずらし長αずつずれているため、ネット５１３〜５１５に挿入されるリピータセルの位置は近接しない。このため、図７と図９とを比較するとわかるように、本実施形態では、比較例に比して、重なりほぐし処理で移動する必要があるリピータセルは少なくて済む。また、比較例では、リピータセルが密集するため、重なりほぐし処理で移動するリピータセルの移動量が大きくなる。これに対し、本実施形態では、図６に示すように、リピータ挿入で、多数のリピータセルが重なる位置に配置されないので、リピータセルの移動量を減らすことができる。リピータセルの移動量が大きいと、それに伴って、回路ブロック間配線の経路変更も多くなり、再配線後の回路ブロック間配線に迂回箇所が多くなる（図９）。これに対し、本実施形態では、リピータセルの移動量が少なくて済むので、配線の迂回箇所の少なくて済む（図７）。
【００４５】
本実施形態の半導体レイアウトシステムは、最小構成として、グループ化処理部２１と、リピータ挿入基点決定部２２と、リピータ挿入処理部２３とを備える。グループ化処理部２１は、配線情報記憶部２０１を参照し、リピータ挿入対象の回路ブロック間配線のうちで、始点のＸ座標又はＹ座標の差が所定距離以内で、かつ、互いに並行して延びる配線部分を有する回路ブロック間配線をグループ化する。リピータ挿入基点決定部２２は、同じグループに所属する回路ブロック間配線について、始点座標からの距離が相互に異なる位置の座標をリピータ挿入基点に決定し、リピータ挿入基点位置情報として記憶する。リピータ挿入処理部２３は、配線情報及びリピータ挿入基点位置情報を参照し、リピータ挿入基点を基点に、リピータ挿入対象の回路ブロック間配線に挿入するリピータセルの位置を決定し、リピータセルの配置情報として配置情報記憶部２０２に記憶する。
【００４６】
本実施形態の半導体レイアウトシステムでは、似た位置を始点とし、並行して延びる部分を有する回路ブロック間配線をグループ化し、グループに所属する回路ブロック間配線のリピータ挿入基点を、始点からの距離が相互に異なる位置の座標に設定する。その後、始点からの距離をずらしたリピータ挿入基点を基点にリピータ挿入位置を決定する。このようにすることで、似た位置を始点とし、並行して延びる部分を有する回路ブロック間同士で、リピータ挿入位置が重なることを防ぐことができる。その結果、重なりほぐし処理で移動する必要があるリピータセルの数を減らすことができると共に、リピータセルの移動量を少なくすることができる。また、リピータセル移動後の再配線で、配線の迂回箇所を少なくすることができる。
【００４７】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の半導体レイアウトシステム、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【符号の説明】
【００４８】
２０：データ処理装置
２１：グループ化処理部
２２：リピータ挿入基点決定部
２３：リピータ挿入処理部
２４：重なりほぐし処理部
２５：配線部
２００：記憶装置
２０１：配線情報記憶部
２０２：配置情報記憶部
５０１〜５０３：回路ブロック
５０４〜５０８：出力端子
５０９〜５１２：入出力端子
５１３〜５１８：回路ブロック間配線（ネット）
【図１】
2010186304.tif 000003
【図２】
2010186304.tif 000004
【図３】
2010186304.tif 000005
【図４】
2010186304.tif 000006
【図５】
2010186304.tif 000007
【図６】
2010186304.tif 000008
【図７】
2010186304.tif 000009
【図８】
2010186304.tif 000010
【図９】
2010186304.tif 000011