説明

階層レイアウト設計装置、階層レイアウト設計方法およびプログラム

【課題】複数の下位階層ブロックに跨るセル同士を各下位階層ブロックに設けた端子を経由して相互に接続する場合に、セル間を結ぶ経路が迂回経路となること。
【解決手段】階層レイアウト設計装置は、第1の下位階層ブロックに含まれるセルから出力された信号を受信する出力端子を該セルの近傍に配置する出力端子配置部と、第2の下位階層ブロックに含まれる複数のセルへ前記出力端子から出力された信号を供給する入力端子を、該複数のセルを囲む最小の矩形領域の境界上であって、前記出力端子が配置された箇所からの距離が最短の箇所に配置する入力端子配置部と、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路(LSI)の階層レイアウト設計装置、階層レイアウト設計方法およびプログラムに関し、特に、下位階層ブロック毎に分割して配置配線を行うとともに、下位階層ブロック同士を接続するための端子の配置を決定する階層レイアウト設計装置、階層レイアウト設計方法およびプログラムに関する。
【背景技術】
【0002】
半導体集積回路(LSI)を設計する際に、回路全体のレイアウト設計を一括して行うと、データ量が膨大となり、困難を伴う。そこで、半導体集積回路を複数の下位階層ブロックに分割し、下位階層レイアウトごとにレイアウト設計を行う階層レイアウト設計が主流となっている。
【0003】
階層レイアウト設計において、各下位階層ブロック間の配線を上位階層で結線するために、各下位階層ブロックに下位階層ブロック端子(以下、単に「端子」という。)が生成される。上位階層でのタイミング収束性および回路収容性を向上させるには、下位階層ブロックにおいて、端子を好適な位置に配置する必要がある。近年の回路動作速度の高速化に伴い、上位階層でのタイミングが非常に厳しくなっており、下位階層ブロックにおいて、端子を好適な位置に配置する重要性が増している。
【0004】
例えば、特許文献1に、階層設計レイアウトにおいて、端子を最適な位置に配置する階層設計レイアウト方法が記載されている。
【0005】
図15は、特許文献1に記載された階層設計レイアウト処理手順を示すフローチャートである。ここでは、図15のステップS509に示した最適化処理手順について詳細に説明する。図16は、ステップS509に示した最適化処理手順を示すフローチャートである。
【0006】
図17は、図15のステップS508に示した端子位置仮決定処理後におけるレイアウト情報の一例を示す説明図である。図17において、レイアウト情報213は、チップ400上にフロアプランされた下位階層ブロック401〜403が仮配置された情報である。下位階層ブロック401、403内の黒塗り矩形はセルをあらわしている。ここで、下位階層ブロック401が一方の下位階層ブロックに該当し、下位階層ブロック403が他方の下位階層ブロックに該当する。
【0007】
レイアウト情報213では、下位階層ブロック401内のセル411から下位階層ブロック403内のセル431までセル間仮配線経路R1が仮配線されている。セル間仮配線経路R1は、配線禁止領域に設定された下位階層ブロック402を迂回して引かれている。
【0008】
また、下位階層ブロック401の境界を表すバウンダリ412とセル間仮配線経路R1との交点が端子410の端子位置となる。以降、端子位置Xと称す。同様に、下位階層ブロック403の境界を表すバウンダリ432とセル間仮配線経路R1との交点が端子430の端子位置となる。以降、端子位置Yと称す。
【0009】
また、ステップS509に示した最適化処理は仮決定された端子位置X、Yを最適化する。具体的には、仮配線経路検出部と、第1の仮配線経路上ポイント検出部と、第1のバウンダリポイント検出部と、第2の仮配線経路上ポイント検出部と、第2のバウンダリポイント検出部と、端子位置決定部と、から構成されている。
【0010】
まず、仮配線経路検出部により、未処理のセル間仮配線経路があるか否かを判断し(ステップS521)、未処理のセル間仮配線経路がある場合(ステップS521:Yes)、第1の仮配線経路上ポイント検出部により、一方の端子を基準端子に決定する(ステップS522)。図17に示したレイアウト情報では、セル間仮配線経路R1から端子位置Xと端子位置Yとの間の仮配線経路R2を検出し、一方の端子410を基準端子に決定する。
【0011】
次に、仮配線経路上において、第1の仮配線経路上ポイント検出処理、すなわち他方の下位階層ブロックから所定距離以内で、かつ一方の端子からの配線長が最短となる第1の仮配線上ポイントを検出する(ステップS523)。そして、第1のバウンダリポイント検出部により、第1のバウンダリポイントを検出する(ステップS524)。
【0012】
図18は、第1の仮配線経路上ポイント検出処理を示す説明図である。図18において、まず、仮配線経路R2上において、一方の端子410を基準とした場合、他方の端子430を有する他方の下位階層ブロック403から所定距離d1以内の経路R3を検出する。そして、この経路R3中、一方の端子410からの配線長が最短となる点Paを、第1の仮配線上ポイントとして検出する。そして、第1の仮配線経路上ポイントPaから他方の下位階層ブロック403のバウンダリ432までの距離が最短となるバウンダリ432上の点Pbを第1のバウンダリポイントとして検出する。
【0013】
次に、第2の仮配線経路上ポイント検出部により、第2の仮配線経路上ポイント検出処理、すなわち仮配線経路上において、一方の下位階層ブロックから所定距離以内で、かつ第1の仮配線経路上ポイントからの配線長が最短となる第2の仮配線経路上ポイントを検出する(ステップS525)。そして、第2のバウンダリポイント検出部により、第2のバウンダリポイントを検出する(ステップS526)。
【0014】
図19は、第2の仮配線経路上ポイント検出処理を示す説明図である。図19において、仮配線経路R2上で、一方の下位階層ブロック401から所定距離d2以内の経路R4を検出する。そして、この経路R4中、第1の仮配線経路上ポイントPaからの配線長が最短となる点Pcを、第2の仮配線経路上ポイントとして検出する。そして、第2の仮配線経路上ポイントPcから一方の下位階層ブロック401のバウンダリ412までの距離が最短となるバウンダリ412上の点Pdを第2のバウンダリポイントとして検出する。
【0015】
次に、端子位置決定部により、第1および第2のバウンダリポイントを端子アサイン候補に決定し(ステップS527)、第1および第2のバウンダリポイントに端子を配置することがデザインルールを遵守するか否かを判断する(ステップS528)。デザインルール違反となると判断された場合(ステップS528:No)、ステップS522に戻る。一方、デザインルールを遵守すると判断された場合(ステップS528:Yes)、第1および第2のバウンダリポイントを新たな端子位置に決定する(ステップS529)。
【0016】
図20は、端子位置決定処理結果を示す説明図である。図20において、第2のバウンダリポイントPdが一方の端子410の新たな端子位置に決定されている。第1のバウンダリポイントPbが他方の端子430の新たな端子位置に決定されている。
【0017】
そして、ステップS521に戻る。また、ステップS521において、未処理のセル間仮配線経路が検出されなかった場合(ステップS521:No)、図15に示したステップS510に移行する。
【先行技術文献】
【特許文献】
【0018】
【特許文献1】特開2008−009787号公報(図4−1〜4−4、図5−1、5−2)
【発明の概要】
【発明が解決しようとする課題】
【0019】
以下の分析は、本発明者によってなされたものである。
【0020】
特許文献1に記載された技術によると、複数の下位階層ブロックを接続する際、迂回経路の発生を抑制できない場合が生じうるという問題がある。
【0021】
その理由は、上位階層の配置配線時に下位階層ブロックのタイミング劣化の発生を抑止するため、端子を下位階層ブロックの境界を表すバウンダリ上に配置するからである。特許文献1に記載された技術によると、例えば、ある下位階層ブロックから2つの下位階層ブロックへの接続があり、これらの2つの接続が最初の下位階層ブロックを基準として座標上で反対側に配置されている場合に、これらの2つの接続のうちの一方を最短にできても、他方については迂回配線経路の発生を抑制できない場合がある。
【0022】
図21は、複数の下位階層ブロックが接続されている場合に、特許文献1に記載された技術により、端子の位置を決定した結果を示す図である。
【0023】
図21を参照すると、下位階層ブロック401は、下位階層ブロック403と接続されている。同時に、下位階層ブロック401は、下位階層ブロック401に対して、X(水平方向)座標に関して、下位階層ブロック403と反対側に位置する下位階層ブロック404と接続されている。
【0024】
下位階層ブロック401から下位階層ブロック403への接続は配線禁止領域を跨いでいない。したがって、ステップS509に示した最適化処理によって、下位階層ブロック端子は下位階層ブロック401と下位階層ブロック403を最短で接続するために、端子410の位置と端子430の位置に配置されると考えられる。このとき、配線経路は、配線経路Lのように最短の経路となる。
【0025】
特許文献1に記載された技術では複数の下位階層ブロックが同一信号で接続される場合が定義されていない。したがって、下位階層ブロック401から下位階層ブロック404への接続に関しては、図21に示すように、下位階層ブロック401が配線禁止領域に設定されていない場合に、端子の位置は、既に決定されていた端子410の位置にそのまま決定されると考えられる。このとき、端子410から下位階層ブロック401を通過し、下位階層ブロック404へ接続することで、端子440の位置が決定される。端子が多数存在する場合には、これらの端子のY(垂直方向)座標と、端子410のY座標とが、大きく隔たるように配置される。
【0026】
一般に、下位階層ブロック端子は、ネットリストの物理構造に従って生成される。下位階層ブロック401から下位階層ブロック403および404へ同一の信号が接続されている場合に、下位階層ブロック401を基準として下位階層ブロック403と下位階層ブロック404とが座標上で反対側に配置されていると、他の下位階層ブロックと接続するセルの多さに起因して、複数の端子を容易に生成することができず、下位階層ブロック401から下位階層ブロック404への配線がL1のような迂回配線経路となる。したがって、タイミング収束性が悪化したり、迂回配線経路により無駄な配線リソースを消費することで収容性が悪化したりして、設計品質が低下し、手戻りによる設計期間の増加を招く。
【0027】
そこで、複数の下位階層ブロックに跨るセル同士を各下位階層ブロックに設けた端子を経由して相互に接続する場合に、セル間を結ぶ経路が迂回経路となることを防ぐことが課題となる。
【課題を解決するための手段】
【0028】
本発明の第1の視点に係る階層レイアウト設計装置は、
第1の下位階層ブロックに含まれるセルから出力された信号を受信する出力端子を該セルの近傍に配置する出力端子配置部と、
第2の下位階層ブロックに含まれる複数のセルへ前記出力端子から出力された信号を供給する入力端子を、該複数のセルを囲む最小の矩形領域の境界上であって、前記出力端子が配置された箇所からの距離が最短の箇所に配置する入力端子配置部と、を備えている。
【0029】
本発明の第2の視点に係る階層レイアウト設計方法は、
第1の下位階層ブロックに含まれるセルから出力された信号を受信する出力端子を該セルの近傍に配置する工程と、
第2の下位階層ブロックに含まれる複数のセルへ前記出力端子から出力された信号を供給する入力端子を、該複数のセルを囲む最小の矩形領域の境界上であって、前記出力端子が配置された箇所からの距離が最短の箇所に配置する工程と、を含む。
【0030】
本発明の第3の視点に係るプログラムは、
第1の下位階層ブロックに含まれるセルから出力された信号を受信する出力端子を該セルの近傍に配置する処理と、
第2の下位階層ブロックに含まれる複数のセルへ前記出力端子から出力された信号を供給する入力端子を、該複数のセルを囲む最小の矩形領域の境界上であって、前記出力端子が配置された箇所からの距離が最短の箇所に配置する処理と、をコンピュータに実行させる。
【発明の効果】
【0031】
本発明に係る階層レイアウト設計装置、階層レイアウト設計方法およびプログラムによると、複数の下位階層ブロックに跨るセル同士を各下位階層ブロックに設けた端子を経由して相互に接続する場合に、セル間を結ぶ経路が迂回経路となることを防ぐことができる。
【図面の簡単な説明】
【0032】
【図1】本発明に係る階層レイアウト設計装置の構成を概略的に示すブロック図である。
【図2】実施形態に係る階層レイアウト設計方法の処理手順を示すフローチャートである。
【図3】実施形態に係る階層レイアウト設計方法における下位階層端子位置決定手順を示すフローチャートである。
【図4】実施形態に係る階層レイアウト設計方法におけるフロアプラン処理(図2のステップS112)の結果について説明するための図である。
【図5】実施形態に係る階層レイアウト設計方法における仮配置配線処理(図2のステップS113)の結果について説明するための図である。
【図6】実施形態に係る階層レイアウト設計方法における端子位置決定処理(図2のステップS114)の結果について説明するための図である。
【図7】実施形態に係る階層レイアウト設計方法における上位階層配置配線処理(図2のステップS115)の結果について説明するための図である。
【図8】実施形態に係る階層レイアウト設計方法における各下位階層の配置配線処理(図2のステップS117)について説明するための図である。
【図9】実施形態に係る階層レイアウト設計方法における階層レイアウトの結果について説明するための図である。
【図10】実施形態に係る階層レイアウト設計方法における下位階層ブロック内の迂回配線経路について説明するための図である。
【図11】実施形態に係る階層レイアウト設計方法における下位階層ブロック内の迂回配線抑制方法について説明するための図である。
【図12】実施形態に係る階層レイアウト設計方法における入力端子の移動(図3のステップS215)について説明するための図である。
【図13】実施形態に係る階層レイアウト設計方法における入力端子の移動(図3のステップS217)について説明するための図である。
【図14】実施形態に係る階層レイアウト設計方法を実現するためのシステム構成を示すブロック図である。
【図15】特許文献1に記載された階層設計レイアウト処理手順を示すフローチャートである。
【図16】特許文献1に記載された最適化手順を示すフローチャートである。
【図17】特許文献1に記載された仮決定処理後におけるレイアウト情報を一例として示す図である。
【図18】特許文献1に記載された第1の仮配線経路上ポイント検出処理について説明するための図である。
【図19】特許文献1に記載された第2の仮配線経路上ポイント検出処理について説明するための図である。
【図20】特許文献1に記載された端子位置決定部による決定処理結果について説明するための図である。
【図21】特許文献1に記載された端子位置決定処理の結果について説明するための図である。
【発明を実施するための形態】
【0033】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【0034】
図1は、本発明に係る階層レイアウト設計装置の構成を概略的に示すブロック図である。図1および図11を参照すると、階層レイアウト設計装置は、第1の下位階層ブロック(101)に含まれるセル(111)から出力された信号を受信する出力端子(21)をセル(111)の近傍に配置する出力端子配置部(31)と、第2の下位階層ブロック(102)に含まれる複数のセル(121,131)へ出力端子(21)から出力された信号を供給する入力端子(22)を、複数のセル(121,131)を囲む最小の矩形領域(S)の境界上であって、出力端子(21)が配置された箇所からの距離が最短の箇所に配置する入力端子配置部(32)と、を備えている。
【0035】
また、図12を参照すると、入力端子配置部(32)は、入力端子(22)が第2の下位階層ブロック(102)の領域外に配置された場合には、第2の下位階層ブロック(102)の領域内であって入力端子(22)の配置箇所からの距離が最短の箇所(220)へ、入力端子(22)を移動することが好ましい。
【0036】
一方、図13を参照すると、入力端子配置部(32)は、入力端子(22)が配線禁止領域(BR)に配置された場合には、配線禁止領域(BR)外であって入力端子(22)の配置箇所からの距離が最短の箇所(220)へ、入力端子を移動することが好ましい。
【0037】
また、階層レイアウト設計装置は、出力端子(21)を配置した領域を第1の下位階層ブロック(101)に配線禁止領域として設定するとともに、入力端子(22)を配置した領域を第2の下位階層ブロック(102)に配線禁止領域として設定する第1の配線禁止領域設定部(33)を備えていることが好ましい。
【0038】
さらに、図示しないが、出力端子配置部(31)は、出力端子(21)が配線禁止領域に配置された場合には、配線禁止領域外であって出力端子(21)の配置箇所からの距離が最短の箇所へ、出力端子(21)を移動することが好ましい。
【0039】
また、図7および図8を参照すると、階層レイアウト装置は、第1の下位階層ブロック(101)に配置された出力端子(21)と、第2の下位階層ブロック(103,104)に設けられた入力端子(23,24)との間を配線する上位階層配線部(35)と、配線に用いられた領域を第1の下位階層ブロック(101)および第2の下位階層ブロック(103,104)に配線禁止領域(BR)として設定する第2の配線禁止領域設定部(36)と、第2の配線禁止領域設定部(36)により設定された配線禁止領域を回避しつつ、第1の下位階層ブロック(101)および第2の下位階層ブロック(103,104)における配線を実施する下位階層配線部(37)と、を備えていることが好ましい。
【0040】
本発明に係る階層レイアウト設計装置によると、複数の下位階層ブロックに跨るセル同士を各下位階層ブロックに設けた端子を経由して相互に接続する場合に、セル間を結ぶ経路が迂回経路となることを防ぐことができる。
【0041】
また、本発明は、半導体集積回路のレイアウト設計方法に関し、特に、下位階層ブロック毎に分割して配置配線を行うために下位階層ブロック端子の位置決定処理を行う階層レイアウト設計方法に関する。
【0042】
図2を参照すると、階層レイアウト設計方法は、下位階層ブロック端子を下位階層ブロック領域内に配置する工程(S114)と、上位階層の配置配線を下位階層ブロックの配置配線より先に実施する工程(S115、S117)と、下位階層ブロック領域上に位置する上位階層の配置配線情報を下位階層ブロック内に配置配線禁止領域として設定する工程(S116)とを含むことが好ましい。
【0043】
また、図3を参照すると、下位階層ブロック端子を下位階層ブロック領域内に配置する工程(S114)は、さらに、下位階層ブロックの出力端子位置を下位階層ブロックの出力端子を駆動する下位階層ブロック領域内のセルの近傍に仮配置する工程(S212)と、下位階層ブロックの入力端子位置を下位階層ブロックの入力端子に接続される下位階層ブロック領域内のセルを囲む矩形領域の枠上で、かつ、前記セルに接続する他の階層(他の下位階層または上位階層)に属するセルの配置位置との距離が最も短い座標に仮配置する工程(S213)と、仮配置した入力端子が各々の下位階層ブロック領域外となった場合に(S214のYes)、下位階層ブロック領域内のうち、仮配置した位置からの距離が最も短い座標に移動する工程(S215)と、仮配置した入力端子および出力端子の座標が配線禁止領域内に存在する場合に(S216のYes)、各々の下位階層ブロック領域内における配線禁止領域外に移動する工程(S217)と、仮配置した入力端子および出力端子の配置位置を決定する工程(S218)と、配置位置が決定された下位階層ブロックの入力端子および出力端子の領域を配線禁止領域に設定する工程(S219)と、を含むことが好ましい。
【0044】
本発明によると、下位階層ブロック間を下位階層ブロック領域内を通過させて短距離の配線経路で接続することができ、複数の下位階層ブロックが接続される場合にも、迂回配線経路の発生を抑制することができる。
【0045】
(実施形態)
実施形態に係る階層レイアウト設計方法について、図面を参照して説明する。本実施形態に係る階層レイアウト設計方法は、図14に示されるようなコンピュータを用いた設計システム上において実現することができる。
【0046】
設計システムは、一例として、CAD(Computer Aided Design)装置として構成することができる。図14を参照すると、CAD装置は、中央処理装置(以下、CPUという)1、メモリ2、記憶装置3、表示装置4、入力装置5、および、ドライブ装置6を備え、これらはバス7を介して相互に接続されている。
【0047】
CPU1は、メモリ2を利用してプログラムを実行し、各種処理を実施する。メモリ2には、各種処理を提供するために必要なプログラムとデータが格納される。メモリ2は、キャッシュ・メモリ、システム・メモリおよびディスプレイ・メモリを含んでいてもよい。
【0048】
表示装置4は、レイアウト表示、パラメータ入力画面等の表示に用いられる。表示装置4として、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)等を用いることができる。入力装置5は、ユーザからの要求や指示、パラメータの入力に用いられる。入力装置5として、キーボードおよびマウス(非図示)等が用いられる。記憶装置3として、磁気ディスク装置、光ディスク装置または光磁気ディスク装置を用いることができる。記憶装置3には、後述する自動配線配置処理などの半導体装置設計処理のためのプログラムデータとファイルが格納される。CPU1は、入力装置5による指示に応答して、プログラムおよびデータをメモリ2へ転送して実行する。
【0049】
CPU1が実行するプログラムデータは、記録媒体8により提供される。ドライブ装置6は、記録媒体8を駆動し、その記憶内容にアクセスする。CPU1は、ドライブ装置6を介して記録媒体8からプログラムデータを読み出し、それを記憶装置3にインストールする。記録媒体8として、磁気テープ、メモリカード、フロッピー(登録商標)ディスク、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体を使用することができる。記録媒体8に、上述のプログラム、データを格納しておき、必要に応じて、メモリ2にロードして使用するようにしてもよい。
【0050】
また、記録媒体8として、通信媒体を介してアップロードまたはダウンロードされたプログラムデータを記録した媒体、ディスク装置を用いることができる。さらに、記録媒体8として、コンピュータによって直接実行可能なプログラムを記録した記録媒体のみならず、いったん他の記録媒体(ハードディスク等)にインストールすることによって実行可能となるようなプログラムを記録した記録媒体、または、暗号化されたり、圧縮されたりしたプログラムを記録した記録媒体を用いることができる。
【0051】
図2は、本実施形態に係る階層レイアウト設計方法の処理手順を示すフローチャートである。また、図3は、図2に示した下位階層端子位置決定処理工程S114の詳細な端子位置決定手順を示すフローチャートである。
【0052】
本実施形態に係る階層レイアウト設計方法について、図2および図3のフローチャートの手順に従って説明する。
【0053】
まず、設計対象の半導体集積回路に対するネットリストが読み込まれる(ステップS111)。
【0054】
次に、フロアプランが生成される(ステップS112)。このとき、チップ領域が形成され、同時に階層レイアウトを適用する下位階層ブロックが抽出され、下位階層ブロック形状および下位階層ブロック配置位置が決定される。
【0055】
図4は、フロアプラン生成処理(ステップS112)の結果を一例として示す図である。図4を参照すると、下位階層ブロック101,102,103,104が、各々下位階層ブロックの境界112,122,132,142で囲まれた形状に形成され、チップ領域100に配置される。
【0056】
次に、回路全体の仮配置配線処理が行われる(ステップS113)。
【0057】
図5は、回路全体の仮配置配線処理(ステップS113)の結果を示す図である。図5を参照すると、各下位階層ブロックに属するセル111,131,141が、各々の下位階層ブロック領域内に配置され、端子位置決定前の仮配線経路R0によって、下位階層ブロック間が接続される。
【0058】
次に、下位階層ブロック端子が配置される(ステップS114)。その理由は、下位階層ブロック単体で配置配線するときに下位階層ブロック外部との接続関係を認識するためである。
【0059】
図6は、下位階層端子位置決定処理(ステップS114)の結果を示す図である。図6を参照すると、各下位階層ブロックに属するセル111,131,141が、各々の下位階層ブロック領域内に配置されている。また、上位階層で下位階層ブロック間を接続するために、出力端子21が下位階層ブロックに属するセル111の近傍に配置され、入力端子23,24が、各々の下位階層ブロック領域内に配置されている。また、出力端子21および入力端子23,24が配置される位置は、必ずしも端子位置決定前の仮配線経路R0の座標とは重ならない。下位階層端子位置決定処理(ステップS114)の内容については、後に詳述する。
【0060】
次に、上位階層の配置配線処理が行われる(ステップS115)。下位階層ブロックよりも先に上位階層の配置配線を行う理由は、下位階層ブロックの配置配線前に上位階層での下位階層ブロック間のタイミング収束性を確認するためである。これにより、手戻りによる設計期間の増大を防ぐことができる。このとき、下位階層ブロックに属するすべてのセルを配置配線対象とする必要はなく、一般的な技術を用いて、下位階層ブロックに属するセルのうちの、下位階層ブロック外部と接続関係のあるセルのみを抽出するようにしてもよい。
【0061】
図7は、上位階層配置配線処理(ステップS115)の結果を示す図である。図7を参照すると、各下位階層ブロックに属するセル111,131,141が配線経路Lによって接続され、下位階層ブロック間の接続が完了する。このとき、下位階層端子位置決定処理(ステップS114)で決定された各下位階層ブロックの出力端子21と入力端子23,24とを中継するようにして配線が行われる。また、下位階層ブロック間のタイミング収束のために下位階層ブロック間の配線経路Lに挿入されるバッファ等の上位階層に属するセル10は、迂回配線経路の発生を抑制するために、必要に応じて下位階層領域内にも配置される。
【0062】
次に、下位階層領域内に存在する上位階層の配置配線情報が、下位階層領域内に配置配線禁止領域として設定される(ステップS116)。
【0063】
次に、各下位階層ブロックの配置配線処理が実施される(ステップS117)。
【0064】
図8は、各下位階層ブロックの配置配線処理(ステップS117)を示す図である。図8を参照すると、各下位階層ブロック101,102,104において、上位階層の配置配線情報を基に、配置禁止領域BP、および、配線禁止領域BRが設定されている。配置禁止領域BPおよび配線禁止領域BRは、上位階層の配置配線に使用される領域であり、各下位階層ブロックの配置配線処理には使用されない領域である。
【0065】
上位階層の配線を下位階層ブロックの内部に通すと、下位階層ブロック内のタイミングが劣化するため、一般に、上位階層の配置配線時に下位階層領域全体を配線禁止領域に設定する。しかし、本実施形態では、下位階層ブロック間を接続する際に迂回配線経路となることを防ぐために、下位階層ブロック端子を下位階層ブロック領域内部に配置する。したがって、上位階層の配線を下位階層ブロック領域内に通す必要がある。そこで、上位階層の配線情報に基づいて、配線禁止領域BRを設定し、各下位階層ブロックの配置配線処理(ステップS117)において、上位階層の配線の影響を考慮し、下位階層ブロック内のタイミング設計に反映させる。
【0066】
また、上位階層の配置配線(ステップS115)を下位階層ブロックの配置配線(ステップS117)よりも先に行うことで、上位階層の配線に必要な最低限の配線本数や配線層を抽出することができる。したがって、下位階層ブロック領域内を通過させる上位階層の配線のために設定する配線禁止領域を必要最低限とすることができ、無駄な配線リソースの消耗を防ぐことができる。
【0067】
各下位階層ブロックの配置配線処理(ステップS117)が完了すると、各下位階層レイアウト結果が上位階層に結合される(ステップS118)。上位階層は、ステップS115において、すでに配置配線済みであるため、以上の処理により、本実施形態の階層レイアウトが完了する。
【0068】
次に、図3を参照して、下位階層端子位置決定処理(ステップS114)における端子位置決定手順の詳細について説明する。
【0069】
なお、図3に示した手順において、処理対象の下位階層ブロックおよび端子の選択順序は任意である。
【0070】
まず、下位階層ブロック101が処理対象として選択される(ステップS210)。
【0071】
次に、下位階層ブロック101から任意に選択された出力端子21が出力端子であると判定される(ステップS211のYes)。
【0072】
次に、下位階層ブロック101の出力端子21は、下位階層ブロック101に属し、かつ、出力端子21を駆動するセル111の近傍の座標に仮配置される(ステップS212)。
【0073】
次に、出力端子21の座標が配線禁止領域内か否かが判定される(ステップS216)。その理由は、下位階層ブロックの端子が配線禁止領域上に配置されると、上位階層で下位階層ブロック間の配線ができなくなるからである。出力端子21は、配線禁止領域内にないため(ステップS216のNo)、配線禁止領域外に移動する処理(ステップS217)は実施されない。
【0074】
次に、出力端子21の位置が、仮配置した座標に決定される(ステップS218)。
【0075】
次に、出力端子21の領域が、配線禁止領域に設定される(ステップS219)。その理由は、以降の処理工程で他の端子の位置決定を行う際に、すでに位置が決定された端子の座標と重ならないようするためである。
【0076】
下位階層ブロック101について未処理の端子が存在すると判定された場合には(ステップS220のNo)、ステップS211に移行し、他の端子に対する処理が実施される。しかし、下位階層ブロック101について、未処理の端子は存在しないため(ステップS220のYes)、ステップS221に移行する。
【0077】
次に、未処理の下位階層ブロックがあると判定され(ステップS221のNo)、ステップS210に移行し、下位階層ブロック104に対する処理が実施される。
【0078】
下位階層ブロック101と同様に下位階層ブロック104から入力端子24が任意に選択され、選択された入力端子24が入力端子であると判定される(ステップS211のNo)。
【0079】
下位階層ブロック104に属するセルが複数存在する場合には、入力端子24に接続される複数のセル141を囲む矩形領域Sが設定される。矩形領域Sを設定する処理の内容については、後述する。次に、入力端子24に接続されるセル111の配置位置と、矩形領域Sとの距離Dが算出される。入力端子24は、距離Dが最短で、かつ、矩形領域Sの枠上の座標に仮配置される(ステップS213)。
【0080】
次に、入力端子24の座標が下位階層ブロック104領域外に配置されているか否かが判定される(ステップS214)。入力端子24は下位階層ブロック104の領域内に配置されているため(ステップS214のNo)、下位階層ブロック領域内に移動する処理(ステップS215)は実施されない。なお、ステップS215の処理の内容については、後述する。
【0081】
次に、入力端子24の座標が配線禁止領域内か否かが判定される(ステップS216)。入力端子24は、配線禁止領域内にないため(ステップS216のNo)、配線禁止領域外に移動する処理(ステップ217)は実施されない。
【0082】
次に、入力端子24の位置が、仮配置した座標に決定される(ステップS218)。
【0083】
次に、入力端子24の領域が、配線禁止領域に設定される(ステップS219)。
【0084】
下位階層ブロック104について未処理の端子が存在すると判定された場合には(ステップS220のNo)、ステップS211に移行し、他の端子に対する処理が実施される。しかし、下位階層ブロック104について未処理の端子は存在しないため(ステップS220のYes)、ステップS221に移行する。
【0085】
次に、未処理の下位階層ブロックがあると判定され(ステップS221のNo)、ステップS210に移行し、下位階層ブロック103に対する処理が実施される。
【0086】
下位階層ブロック103から任意に選択された入力端子23は、入力端子であるため(ステップS211のNo)、下位階層ブロック104に対する処理と同様の処理により、入力端子23の座標が決定される(ステップS213〜S218)。
【0087】
次に、入力端子23の領域が、配線禁止領域に設定される(ステップS219)。
【0088】
次に、下位階層ブロック103について未処理の端子が存在しないと判定される(ステップS220のYes)。
【0089】
次に、未処理の下位階層ブロックが存在しないと判定され(ステップS221のYes)、ステップS114の処理が完了する。
【0090】
次に、ステップS213において、矩形領域Sを設定する処理の詳細について説明する。
【0091】
入力端子は、出力端子の場合と異なり、下位階層ブロック内において、当該入力端子と接続されるセルが複数存在する場合がある。
【0092】
図10は、下位階層ブロック内の迂回配線経路を示す説明図である。下位階層ブロック102の入力端子22が、下位階層ブロック102に属するセル121の近傍の座標に出力端子と同等の処理で配置されたとする。このとき、下位階層ブロック101に属するセル111からセル121までの配線経路Lは、迂回しない。一方、セル111から下位階層ブロック102に属するセル131までの配線経路L1は、下位階層ブロック102の領域内で迂回し、無駄に配線リソースを消耗する。
【0093】
上記の場合、図11に示すように、下位階層ブロック102に属するセルにおいて、入力端子22と接続される複数のセル121,131を囲む矩形領域Sを設定する。そして、入力端子22と接続される下位階層ブロック102以外の階層の下位階層ブロック101に属するセル111の座標と、矩形領域Sとの距離Dが算出される。入力端子22は、距離Dが最短で、かつ、矩形領域Sの枠上の座標に仮配置される(ステップS213)。これにより、下位階層ブロック102の領域内で、迂回配線経路が発生することを抑制する。
【0094】
次に、入力端子を下位階層ブロック領域内の座標に移動する処理(ステップS215)の詳細について説明する。
【0095】
出力端子は、下位階層ブロックに属し、当該出力端子を駆動するセルの近傍の座標に配置される。したがって、出力端子は、下位階層ブロック領域外の座標に配置されることはない。一方、入力端子は、下位階層ブロックの形状が矩形でない場合には、下位階層ブロック領域外の座標に配置されることがある。このような場合には、各下位階層ブロックの配置配線を行う際に、下位階層ブロック外部との接続関係を認識することができなくなる。そこで、入力端子が下位階層ブロック領域外の座標に仮配置されたと判定された場合には(ステップS214のYes)、仮配置された下位階層ブロックの入力端子の座標から距離が最も短い下位階層ブロック領域内の座標に、入力端子を移動する(ステップS215)。
【0096】
図12は、入力端子の移動(ステップS215)について説明するための図である。本実施形態によると、まず、入力端子22は、図12に示す座標に仮配置される(ステップS213)。図12を参照すると、下位階層ブロック102の形状が矩形でないため、入力端子22は下位階層ブロック102の領域外の座標に配置されている(ステップS214のYes)。このとき、下位階層ブロック102の境界までの、水平方向距離X1および垂直方向距離Y1の各々の距離が算出され、距離が短い方向に入力端子22が移動される。図12に示すように、Y1<X1である場合には、入力端子22はY方向に移動される。すなわち、入力端子22は、Y座標に垂直方向距離Y1を加算した入力端子220の座標に仮配置される(ステップS215)。
【0097】
次に、入力端子および出力端子を配線禁止領域外の座標に移動する処理(ステップ217)の詳細について説明する。
【0098】
端子の入出力属性に関係なく、下位階層ブロックの端子が配線禁止領域上の座標に配置されると、上位階層で下位階層ブロック間の配線ができなくなる。そこで、入力端子または出力端子の座標が配線禁止領域内に存在すると判定された場合には(ステップS216のYes)、入力端子または出力端子を下位階層ブロック領域内の配線禁止領域外の座標に移動する(ステップS217)。
【0099】
図13は、入力端子の移動(ステップS217)について説明するための図である。図13を参照すると、本実施形態において、入力端子22は、図13に示す座標に仮配置される(ステップS213)。入力端子22の座標は、下位階層ブロック102領域内に存在する配線禁止領域BRの領域内に存在する(ステップS216のYes)。このとき、入力端子22を基準に配線禁止領域BRの枠に向かって、水平方向距離X1、X2および垂直方向距離Y1、Y2が算出され、水平方向と垂直方向の双方について、それぞれ距離が短い方に入力端子が移動される。図13に示すように、X1<X2,Y1<Y2である場合には、X座標に水平方向距離X1、Y座標に垂直方向距離Y1を加算した入力端子220の座標に、入力端子が仮配置される(ステップS217)。なお、出力端子が配線禁止領域と重なった場合にも、同様の処理(ステップS217)が行われる。
【0100】
本実施形態によると、複数の下位階層ブロックが接続されている場合にも、下位階層ブロック間の迂回配線経路を抑制することができる。
【0101】
実施形態に係る階層レイアウト設計方法によれば、下位階層ブロックの端子の位置を下位階層ブロックの領域内部に配置することで、図9に示したように、下位階層ブロック101(ないし下位階層ブロック101に属するセル111)から、下位階層ブロック103(ないし下位階層ブロック103に属するセル131)、および、下位階層ブロック104(ないし下位階層ブロック104に属するセル141)への2つの接続が、下位階層ブロック101を基準として、座標上で反対側に配置されていても、下位階層ブロック間の配線経路Lは、階層ブロック101から階層ブロック103までと、下位階層ブロック104までとの双方を最短で接続することができる。また、下位階層ブロック間の配線経路Lは、下位階層ブロック領域内(101,102等)を通過することで、迂回配線経路を抑制することができる。
【0102】
さらに、上位階層の配置配線(ステップS115)を下位階層ブロックの配置配線(ステップS117)よりも先に実施し、上位階層の配置配線情報を下位階層ブロック領域内で配置配線禁止領域に設定し(ステップS116)、下位階層ブロックの配置配線の際に上位階層の配線の影響を考慮することで(ステップS117)、下位階層ブロック内のタイミング設計に反映することが好ましい。したがって、上位階層の配線が下位階層ブロック領域内を通過していても、タイミングに関する問題が生じない。
【0103】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0104】
1 CPU(中央処理装置)
2 メモリ
3 記憶装置
4 表示装置
5 入力装置
6 ドライブ装置
7 バス
8 記憶媒体
10 上位階層に属するセル
21 出力端子
22,23,24 入力端子
31 出力端子配置部
32 入力端子配置部
33,36 配線禁止領域設定部
35 上位階層配線部
37 下位階層配線部
100,400 チップ領域
101,102,103,104,401,402,403,404 下位階層ブロック
111,121,131,141,411,431,441 セル
112,122,132,142,412,432,442 境界(バウンダリ)
220 移動後の入力端子
213 レイアウト情報
410,430,440 端子
BP 配置禁止領域
BR 配線禁止領域
D 距離
d1,d2 所定距離
L 下位階層ブロック間配線経路
L1 迂回配線経路
Pa 第1の仮配線上ポイント
Pb 第1のバウンダリポイント
Pc 第2の仮配線経路上ポイント
Pd 第2のバウンダリポイント
R0 端子位置決定前の仮配線経路
R1,R2,R3,R4 セル間仮配線経路
S 矩形領域
X,Y 端子位置
X1,X2 水平方向距離
Y1,Y2 垂直方向距離

【特許請求の範囲】
【請求項1】
第1の下位階層ブロックに含まれるセルから出力された信号を受信する出力端子を該セルの近傍に配置する出力端子配置部と、
第2の下位階層ブロックに含まれる複数のセルへ前記出力端子から出力された信号を供給する入力端子を、該複数のセルを囲む最小の矩形領域の境界上であって、前記出力端子が配置された箇所からの距離が最短の箇所に配置する入力端子配置部と、を備えていることを特徴とする階層レイアウト設計装置。
【請求項2】
前記入力端子配置部は、前記入力端子が前記第2の下位階層ブロックの領域外に配置された場合には、前記第2の下位階層ブロックの領域内であって前記入力端子の配置箇所からの距離が最短の箇所へ、前記入力端子を移動することを特徴とする、請求項1に記載の階層レイアウト設計装置。
【請求項3】
前記出力端子配置部は、前記出力端子が配線禁止領域に配置された場合には、該配線禁止領域外であって前記出力端子の配置箇所からの距離が最短の箇所へ、前記出力端子を移動することを特徴とする、請求項1または2に記載の階層レイアウト設計装置。
【請求項4】
前記入力端子配置部は、前記入力端子が配線禁止領域に配置された場合には、該配線禁止領域外であって前記入力端子の配置箇所からの距離が最短の箇所へ、前記入力端子を移動することを特徴とする、請求項1ないし3のいずれか1項に記載の階層レイアウト設計装置。
【請求項5】
前記出力端子を配置した領域を前記第1の下位階層ブロックに配線禁止領域として設定するとともに、前記入力端子を配置した領域を前記第2の下位階層ブロックに配線禁止領域として設定する第1の配線禁止領域設定部を備えていることを特徴とする、請求項1ないし4のいずれか1項に記載のレイアウト設計装置。
【請求項6】
前記第1の下位階層ブロックに配置された前記出力端子と、前記第2の下位階層ブロックに設けられた前記入力端子との間を配線する上位階層配線部と、
前記配線に用いられた領域を前記第1の下位階層ブロックおよび前記第2の下位階層ブロックに配線禁止領域として設定する第2の配線禁止領域設定部と、
前記第2の配線禁止領域設定部により設定された配線禁止領域を回避しつつ、前記第1の下位階層ブロックおよび前記第2の下位階層ブロックにおける配線を実施する下位階層配線部と、を備えていることを特徴とする、請求項1ないし5のいずれか1項に記載の階層レイアウト設計装置。
【請求項7】
第1の下位階層ブロックに含まれるセルから出力された信号を受信する出力端子を該セルの近傍に配置する工程と、
第2の下位階層ブロックに含まれる複数のセルへ前記出力端子から出力された信号を供給する入力端子を、該複数のセルを囲む最小の矩形領域の境界上であって、前記出力端子が配置された箇所からの距離が最短の箇所に配置する工程と、を含むことを特徴とする階層レイアウト設計方法。
【請求項8】
前記入力端子が前記第2の下位階層ブロックの領域外に配置された場合には、前記第2の下位階層ブロックの領域内であって前記入力端子の配置箇所からの距離が最短の箇所へ、前記入力端子を移動する工程を含むことを特徴とする、請求項7に記載の階層レイアウト設計方法。
【請求項9】
前記出力端子が配線禁止領域に配置された場合には、該配線禁止領域外であって前記出力端子の配置箇所からの距離が最短の箇所へ、前記出力端子を移動する工程を含むことを特徴とする、請求項7または8に記載の階層レイアウト設計方法。
【請求項10】
前記入力端子が配線禁止領域に配置された場合には、該配線禁止領域外であって前記入力端子の配置箇所からの距離が最短の箇所へ、前記入力端子を移動する工程を含むことを特徴とする、請求項7ないし9のいずれか1項に記載の階層レイアウト設計方法。
【請求項11】
前記出力端子を配置した領域を前記第1の下位階層ブロックに配線禁止領域として設定する工程と、
前記入力端子を配置した領域を前記第2の下位配線ブロックに配線禁止領域として設定する工程と、を含むことを特徴とする、請求項7ないし10のいずれか1項に記載のレイアウト設計方法。
【請求項12】
前記第1の下位階層ブロックに配置された前記出力端子と、前記第2の下位階層ブロックに設けられた前記入力端子との間を配線する工程と、
前記配線に用いられた領域を前記第1の下位階層ブロックおよび前記第2の下位階層ブロックに配線禁止領域として設定する工程と、
設定された配線禁止領域を回避しつつ、前記第1の下位階層ブロックおよび前記第2の下位階層ブロックにおける配線を実施する工程と、を含むことを特徴とする、請求項7ないし11のいずれか1項に記載の階層レイアウト設計方法。
【請求項13】
第1の下位階層ブロックに含まれるセルから出力された信号を受信する出力端子を該セルの近傍に配置する処理と、
第2の下位階層ブロックに含まれる複数のセルへ前記出力端子から出力された信号を供給する入力端子を、該複数のセルを囲む最小の矩形領域の境界上であって、前記出力端子が配置された箇所からの距離が最短の箇所に配置する処理と、をコンピュータに実行させることを特徴とするプログラム。
【請求項14】
前記入力端子が前記第2の下位階層ブロックの領域外に配置された場合には、前記第2の下位階層ブロックの領域内であって前記入力端子の配置箇所からの距離が最短の箇所へ、前記入力端子を移動する処理を、コンピュータに実行させることを特徴とする、請求項13に記載のプログラム。
【請求項15】
前記出力端子が配線禁止領域に配置された場合には、該配線禁止領域外であって前記出力端子の配置箇所からの距離が最短の箇所へ、前記出力端子を移動する処理を、コンピュータに実行させることを特徴とする、請求項13または14に記載のプログラム。
【請求項16】
前記入力端子が配線禁止領域に配置された場合には、該配線禁止領域外であって前記入力端子の配置箇所からの距離が最短の箇所へ、前記入力端子を移動する処理を、コンピュータに実行させることを特徴とする、請求項13ないし15のいずれか1項に記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2012−168667(P2012−168667A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−28037(P2011−28037)
【出願日】平成23年2月14日(2011.2.14)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】