JPH09283629A - 半導体集積回路の論理素子配置処理方法 - Google Patents
半導体集積回路の論理素子配置処理方法Info
- Publication number
- JPH09283629A JPH09283629A JP8087761A JP8776196A JPH09283629A JP H09283629 A JPH09283629 A JP H09283629A JP 8087761 A JP8087761 A JP 8087761A JP 8776196 A JP8776196 A JP 8776196A JP H09283629 A JPH09283629 A JP H09283629A
- Authority
- JP
- Japan
- Prior art keywords
- logic element
- integrated circuit
- semiconductor integrated
- logic
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
(57)【要約】
【課題】本発明の目的は、半導体集積回路の動作速度に
関して、より最適な半導体集積回路の論理素子配置が行
える半導体集積回路の論理素子配置処理方法を提供する
にある。 【解決手段】論理ブロック単位に論理分割して階層的に
論理設計されている論理素子群の各論理素子を、半導体
集積回路の基板上に配置する。そのために、配置位置指
示処理部110によって、半導体集積回路の基板上を領
域分割し、この分割された領域の中の特定の領域に、論
理素子もしくは論理ブロックからなる論理素子群の中の
特定の論理素子群を対応づけて配置位置を指示する。さ
らに、論理素子(群)配置処理部120は、この配置位
置の指示に基づいて、特定の論理素子群を基板上に配置
し、さらに、他の論理素子を基板上に配置する。
関して、より最適な半導体集積回路の論理素子配置が行
える半導体集積回路の論理素子配置処理方法を提供する
にある。 【解決手段】論理ブロック単位に論理分割して階層的に
論理設計されている論理素子群の各論理素子を、半導体
集積回路の基板上に配置する。そのために、配置位置指
示処理部110によって、半導体集積回路の基板上を領
域分割し、この分割された領域の中の特定の領域に、論
理素子もしくは論理ブロックからなる論理素子群の中の
特定の論理素子群を対応づけて配置位置を指示する。さ
らに、論理素子(群)配置処理部120は、この配置位
置の指示に基づいて、特定の論理素子群を基板上に配置
し、さらに、他の論理素子を基板上に配置する。
Description
【0001】
【発明の属する技術分野】本発明は、半導体集積回路の
論理素子配置処理方法に係り、特に、信号伝播遅延時間
に関して論理素子の最適配置をする半導体集積回路の論
理素子配置処理方法に関する。
論理素子配置処理方法に係り、特に、信号伝播遅延時間
に関して論理素子の最適配置をする半導体集積回路の論
理素子配置処理方法に関する。
【0002】
【従来の技術】半導体集積回路の論理素子を配置する処
理方法としては、従来は、例えば、米国特許第4577
276号明細書に記載されているものが知られている。
この方式は、エッジプロパゲーション法と呼ばれてお
り、基板上の論理素子の配置領域を領域分割し、それぞ
れの領域に配置する論理素子を決定する処理を繰り返し
実行して論理素子の配置を行うものである。
理方法としては、従来は、例えば、米国特許第4577
276号明細書に記載されているものが知られている。
この方式は、エッジプロパゲーション法と呼ばれてお
り、基板上の論理素子の配置領域を領域分割し、それぞ
れの領域に配置する論理素子を決定する処理を繰り返し
実行して論理素子の配置を行うものである。
【0003】また、例えば、27th ACM/IEE
E Design Automation Confe
rence Paper 6.1 ”TIMING D
RIVEN PLACEMENT USING COM
PUTER PATH DELAYS”に記載されてい
るように、基板上の論理素子を配置する領域をサブ領域
まで分割し、論理素子群をサブ論理ブロックに分割し、
それらのサブ論理ブロックをサブ領域に対して対応付け
し、この対応関係に基づいて、サブ論理ブロックに属す
る論理素子群をサブ領域に配置することによって、半導
体集積回路の基板上における論理素子の配置を行うもの
である。
E Design Automation Confe
rence Paper 6.1 ”TIMING D
RIVEN PLACEMENT USING COM
PUTER PATH DELAYS”に記載されてい
るように、基板上の論理素子を配置する領域をサブ領域
まで分割し、論理素子群をサブ論理ブロックに分割し、
それらのサブ論理ブロックをサブ領域に対して対応付け
し、この対応関係に基づいて、サブ論理ブロックに属す
る論理素子群をサブ領域に配置することによって、半導
体集積回路の基板上における論理素子の配置を行うもの
である。
【0004】
【発明が解決しようとする課題】しかしながら、上述し
た2つの従来の方式は、いずれも、論理素子間の配線長
を短縮することを目的としたものである。半導体集積回
路の動作速度を律速するのは、特定の論理素子間の結線
に係る信号伝播遅延時間であり、論理素子間の全ての配
線長を短くしようとする従来技術では、半導体集積回路
の動作速度に関して必ずしも最適の配置結果を得られな
いという問題があった。
た2つの従来の方式は、いずれも、論理素子間の配線長
を短縮することを目的としたものである。半導体集積回
路の動作速度を律速するのは、特定の論理素子間の結線
に係る信号伝播遅延時間であり、論理素子間の全ての配
線長を短くしようとする従来技術では、半導体集積回路
の動作速度に関して必ずしも最適の配置結果を得られな
いという問題があった。
【0005】本発明の目的は、半導体集積回路の動作速
度に関して、より最適な半導体集積回路の論理素子配置
が行える半導体集積回路の論理素子配置処理方法を提供
するにある。
度に関して、より最適な半導体集積回路の論理素子配置
が行える半導体集積回路の論理素子配置処理方法を提供
するにある。
【0006】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、論理ブロック単位に論理分割して階層的
に論理設計されている論理素子群の各論理素子を、半導
体集積回路の基板上に配置する半導体集積回路の論理素
子配置処理方法において、上記半導体集積回路の基板上
を領域分割し、この分割された領域の中の特定の領域
に、論理素子もしくは論理ブロックからなる論理素子群
の中の特定の論理素子群を対応づけて配置位置を指示
し、次に、この配置位置の指示に基づいて、上記特定の
論理素子群を上記基板上に配置し、さらに、他の論理素
子を上記基板上に配置するようにしたものであり、かか
る方法により、半導体集積回路の動作速度を向上し得る
ものとなる。
に、本発明は、論理ブロック単位に論理分割して階層的
に論理設計されている論理素子群の各論理素子を、半導
体集積回路の基板上に配置する半導体集積回路の論理素
子配置処理方法において、上記半導体集積回路の基板上
を領域分割し、この分割された領域の中の特定の領域
に、論理素子もしくは論理ブロックからなる論理素子群
の中の特定の論理素子群を対応づけて配置位置を指示
し、次に、この配置位置の指示に基づいて、上記特定の
論理素子群を上記基板上に配置し、さらに、他の論理素
子を上記基板上に配置するようにしたものであり、かか
る方法により、半導体集積回路の動作速度を向上し得る
ものとなる。
【0007】上記半導体集積回路の論理素子配置処理方
法において、好ましくは、上記領域分割は、上記基板平
面上の位置を記述する任意の2次元座標系において、領
域を分割する境界線の座標,領域を分割する個数若しく
は領域を分割する座標幅に基づいてなされるようにした
ものである。
法において、好ましくは、上記領域分割は、上記基板平
面上の位置を記述する任意の2次元座標系において、領
域を分割する境界線の座標,領域を分割する個数若しく
は領域を分割する座標幅に基づいてなされるようにした
ものである。
【0008】上記半導体集積回路の論理素子配置処理方
法において、好ましくは、上記領域分割は、分割前の全
領域,分割された領域に対して、さらに、階層的若しく
は多重的に繰り返しなされるようにしたものであり、か
かる方法により、大きさの異なる論理素子や論理ブロッ
クを同一のレベルで処理し得るものとなる。
法において、好ましくは、上記領域分割は、分割前の全
領域,分割された領域に対して、さらに、階層的若しく
は多重的に繰り返しなされるようにしたものであり、か
かる方法により、大きさの異なる論理素子や論理ブロッ
クを同一のレベルで処理し得るものとなる。
【0009】上記半導体集積回路の論理素子配置処理方
法において、好ましくは、上記配置位置の指示は、上記
階層的な領域分割により生成された親子関係を持つ分割
領域と、論理的に親子関係を持つ論理素子と論理素子群
とを、それぞれ対応づけて行うようにしたものである。
法において、好ましくは、上記配置位置の指示は、上記
階層的な領域分割により生成された親子関係を持つ分割
領域と、論理的に親子関係を持つ論理素子と論理素子群
とを、それぞれ対応づけて行うようにしたものである。
【0010】上記半導体集積回路の論理素子配置処理方
法において、好ましくは、上記基板上への論理素子群の
配置は、上記配置位置の指示の際に使用する領域を分割
する分割線を基準として行うようにしたものであり、か
かる方法により、自動配置処理において配置指示を確実
に守らせ得るものとなる。
法において、好ましくは、上記基板上への論理素子群の
配置は、上記配置位置の指示の際に使用する領域を分割
する分割線を基準として行うようにしたものであり、か
かる方法により、自動配置処理において配置指示を確実
に守らせ得るものとなる。
【0011】
【発明の実施の形態】以下、本発明の一実施の形態によ
る半導体集積回路の論理素子配置処理方法について、図
1乃至図13を用いて説明する。図1は、本発明の一実
施の形態による半導体集積回路の論理素子配置処理方法
を実現するシステムのブロック図であり、図2は、本発
明の一実施の形態による半導体集積回路の論理素子配置
処理方法における論理素子(群)の配置位置指示処理を
示すフローチャートである。
る半導体集積回路の論理素子配置処理方法について、図
1乃至図13を用いて説明する。図1は、本発明の一実
施の形態による半導体集積回路の論理素子配置処理方法
を実現するシステムのブロック図であり、図2は、本発
明の一実施の形態による半導体集積回路の論理素子配置
処理方法における論理素子(群)の配置位置指示処理を
示すフローチャートである。
【0012】図1において、本発明の一実施の形態によ
る半導体集積回路の論理素子配置処理方法を実現するシ
ステムは、論理素子もしくは論理ブロック等の論理素子
群の配置位置を指示する配置位置指示処理部110と、
配置位置指示処理部110において、指示された配置位
置を守って基板上への論理素子(群)を配置する処理を
行う配置処理部120から構成されている。配置位置指
示処理部110の処理については、図2に示すフローチ
ャートを用いて後述する。
る半導体集積回路の論理素子配置処理方法を実現するシ
ステムは、論理素子もしくは論理ブロック等の論理素子
群の配置位置を指示する配置位置指示処理部110と、
配置位置指示処理部110において、指示された配置位
置を守って基板上への論理素子(群)を配置する処理を
行う配置処理部120から構成されている。配置位置指
示処理部110の処理については、図2に示すフローチ
ャートを用いて後述する。
【0013】配置処理部120は、さらに、配置位置決
定のための分割線処理部122と、分割領域への割り付
け処理部124と、分割領域内での再分割処理部126
から構成されている。分割線処理部122の処理につい
ては、図10に示すフローチャートを用いて後述する。
割り付け処理部124の処理については、図13に示す
フローチャートの前半のステップ1301,…,130
5を用いて後述する。再分割処理部126の処理につい
ては、図13に示すフローチャートの後半のステップ1
306,…,1310を用いて後述する。
定のための分割線処理部122と、分割領域への割り付
け処理部124と、分割領域内での再分割処理部126
から構成されている。分割線処理部122の処理につい
ては、図10に示すフローチャートを用いて後述する。
割り付け処理部124の処理については、図13に示す
フローチャートの前半のステップ1301,…,130
5を用いて後述する。再分割処理部126の処理につい
ては、図13に示すフローチャートの後半のステップ1
306,…,1310を用いて後述する。
【0014】次に、図2を用いて、論理素子(群)の配
置位置指示処理部110の処理について説明する。配置
位置指示処理部110は、論理素子もしくは論理ブロッ
ク等の論理素子群の配置位置を指示し、自動配置システ
ムを起動する。
置位置指示処理部110の処理について説明する。配置
位置指示処理部110は、論理素子もしくは論理ブロッ
ク等の論理素子群の配置位置を指示し、自動配置システ
ムを起動する。
【0015】ステップ201において、配置位置指示処
理部110は、半導体集積回路の基板上を領域分割し、
領域定義カードを作成する。
理部110は、半導体集積回路の基板上を領域分割し、
領域定義カードを作成する。
【0016】ここで、半導体集積回路の基板上の領域分
割について、図3を用いて説明し、領域定義カードにつ
いて、図4を用いて説明する。図3は、本発明の一実施
の形態による半導体集積回路の論理素子配置処理方法に
おける半導体集積回路の基板上の領域分割の説明図であ
り、図4は、本発明の一実施の形態による半導体集積回
路の論理素子配置処理方法において用いる領域定義カー
ドの説明図である。
割について、図3を用いて説明し、領域定義カードにつ
いて、図4を用いて説明する。図3は、本発明の一実施
の形態による半導体集積回路の論理素子配置処理方法に
おける半導体集積回路の基板上の領域分割の説明図であ
り、図4は、本発明の一実施の形態による半導体集積回
路の論理素子配置処理方法において用いる領域定義カー
ドの説明図である。
【0017】図3に示すように、半導体集積回路の基板
上を、階層的に領域分割される。この例では、基板平面
上の位置を記述するための2次元座標系として、図に示
したように、最も一般的な直交するX/Yの2軸を用い
ている。基板平面は、X1からX4までと、Y1からY
4までの太線で示される領域に展開しているものとす
る。
上を、階層的に領域分割される。この例では、基板平面
上の位置を記述するための2次元座標系として、図に示
したように、最も一般的な直交するX/Yの2軸を用い
ている。基板平面は、X1からX4までと、Y1からY
4までの太線で示される領域に展開しているものとす
る。
【0018】分割領域を定義するやり方として、分割数
を指定して分割する方法をとるものとしている。ここで
は、基板平面をX軸方向及びY軸方向について、それぞ
れ、3分割するものとする。
を指定して分割する方法をとるものとしている。ここで
は、基板平面をX軸方向及びY軸方向について、それぞ
れ、3分割するものとする。
【0019】MESH1は、基板全体をX/Y軸の両方
向ともに3等分する領域を表わしている。基板全体の形
状を示す座標X1,X4,Y1,Y4を予め与えられて
おけば、X軸方向の幅(X4−X1)を3等分して座標
X2とX3が計算でき、また、Y軸方向の幅(Y4−Y
1)を3等分して座標Y2とY3が計算できるため、分
割数を指定するだけで分割領域の定義が可能となる。即
ち、X2=(X4−X1)/3,X3=2・(X4−X
1)/3の座標で表され、Y2=(Y4−Y1)/3,
Y3=2・(Y4−Y1)/3の座標で表される。
向ともに3等分する領域を表わしている。基板全体の形
状を示す座標X1,X4,Y1,Y4を予め与えられて
おけば、X軸方向の幅(X4−X1)を3等分して座標
X2とX3が計算でき、また、Y軸方向の幅(Y4−Y
1)を3等分して座標Y2とY3が計算できるため、分
割数を指定するだけで分割領域の定義が可能となる。即
ち、X2=(X4−X1)/3,X3=2・(X4−X
1)/3の座標で表され、Y2=(Y4−Y1)/3,
Y3=2・(Y4−Y1)/3の座標で表される。
【0020】MESH−2は、MESH−1の中の右上
の領域,即ち、X3からX4までと、Y3からY4まで
によって定義される領域を、X軸方向に2分割し、Y軸
方向に3分割する領域を表している。MESH−2のX
軸方向の分割線の座標をX5とする。また、MESH−
2のY軸方向の分割線の座標を、それぞれ、Y5,Y6
とする。
の領域,即ち、X3からX4までと、Y3からY4まで
によって定義される領域を、X軸方向に2分割し、Y軸
方向に3分割する領域を表している。MESH−2のX
軸方向の分割線の座標をX5とする。また、MESH−
2のY軸方向の分割線の座標を、それぞれ、Y5,Y6
とする。
【0021】MESH−3は、MESH−1の中の左側
中央の領域,即ち、X1からX2までと、Y2からY3
までによって定義される領域を、X軸方向に3分割し、
Y軸方向に2分割する領域を表している。MESH−3
のX軸方向の分割線の座標を、それぞれ、X6,X7と
する。また、MESH−3のY軸方向の分割線の座標を
Y7とする。
中央の領域,即ち、X1からX2までと、Y2からY3
までによって定義される領域を、X軸方向に3分割し、
Y軸方向に2分割する領域を表している。MESH−3
のX軸方向の分割線の座標を、それぞれ、X6,X7と
する。また、MESH−3のY軸方向の分割線の座標を
Y7とする。
【0022】MESH−4は、MESH−2の左下の領
域,即ち、X3からX5までと、Y3からY5までによ
って定義される領域を、X軸方向に2分割し、Y軸方向
に2分割する領域を表している。MESH−4のX軸方
向の分割線の座標をX8とする。また、MESH−4の
Y軸方向の分割線の座標をY8とする。
域,即ち、X3からX5までと、Y3からY5までによ
って定義される領域を、X軸方向に2分割し、Y軸方向
に2分割する領域を表している。MESH−4のX軸方
向の分割線の座標をX8とする。また、MESH−4の
Y軸方向の分割線の座標をY8とする。
【0023】以上のようにして、大きな分割領域の一つ
の領域を、さらに、再分割し、再分割された領域の一つ
をさらに、分割するというように、階層構造にて、領域
分割を行う。図示した例では、MESH−4が最小分割
領域であり、X軸方向を12分割し、Y軸方向を18分
割したものであるが、これは、説明の都合上であり、実
際には、さらに、小さな領域まで、階層分割を行う。そ
して、最小の分割領域の大きさは、一つの論理素子が配
置される大きさ程度まで分割を行う。
の領域を、さらに、再分割し、再分割された領域の一つ
をさらに、分割するというように、階層構造にて、領域
分割を行う。図示した例では、MESH−4が最小分割
領域であり、X軸方向を12分割し、Y軸方向を18分
割したものであるが、これは、説明の都合上であり、実
際には、さらに、小さな領域まで、階層分割を行う。そ
して、最小の分割領域の大きさは、一つの論理素子が配
置される大きさ程度まで分割を行う。
【0024】次に、図4を用いて、領域定義カードの指
定例について説明する。「MESHDEF=MESH
1」は、MESHDEFカードでMESH1を定義する
ことを宣言している。この宣言に続く「CHIP=
(3,3)」は、基板(CHIP)全体を、X/Y軸の
両方向ともに3等分することを示している。この2つの
領域定義カードによって、図3に示したMESH−1の
分割領域が定義される。
定例について説明する。「MESHDEF=MESH
1」は、MESHDEFカードでMESH1を定義する
ことを宣言している。この宣言に続く「CHIP=
(3,3)」は、基板(CHIP)全体を、X/Y軸の
両方向ともに3等分することを示している。この2つの
領域定義カードによって、図3に示したMESH−1の
分割領域が定義される。
【0025】「MESHDEF=MESH2」は、ME
SHDEFカードでMESH2を定義することを宣言し
ている。この宣言に続く「MESH1(3,3)=
(2,3)」において、左辺は、先に定義したMESH
1のX/Y軸の両方向ともに、原点側から数えて3番目
の領域を分割することを示し、右辺は、その指定された
領域をX軸方向に2分割し、Y軸方向に3分割すること
を示している。この2つの領域定義カードによって、図
3に示したMESH−2の分割領域が定義される。
SHDEFカードでMESH2を定義することを宣言し
ている。この宣言に続く「MESH1(3,3)=
(2,3)」において、左辺は、先に定義したMESH
1のX/Y軸の両方向ともに、原点側から数えて3番目
の領域を分割することを示し、右辺は、その指定された
領域をX軸方向に2分割し、Y軸方向に3分割すること
を示している。この2つの領域定義カードによって、図
3に示したMESH−2の分割領域が定義される。
【0026】「MESHDEF=MESH3」は、ME
SHDEFカードでMESH3を定義することを宣言し
ている。この宣言に続く「MESH1(1,2)=
(3,2)」において、左辺は、先に定義したMESH
1のX軸方向は、原点側から数えて1番目で、Y軸方向
は、原点側から数えて2番目の領域を分割することを示
し、右辺は、その指定された領域をX軸方向に3分割
し、Y軸方向に2分割することを示している。この2つ
の領域定義カードによって、図3に示したMESH−3
の分割領域が定義される。
SHDEFカードでMESH3を定義することを宣言し
ている。この宣言に続く「MESH1(1,2)=
(3,2)」において、左辺は、先に定義したMESH
1のX軸方向は、原点側から数えて1番目で、Y軸方向
は、原点側から数えて2番目の領域を分割することを示
し、右辺は、その指定された領域をX軸方向に3分割
し、Y軸方向に2分割することを示している。この2つ
の領域定義カードによって、図3に示したMESH−3
の分割領域が定義される。
【0027】「MESHDEF=MESH4」は、ME
SHDEFカードでMESH4を定義することを宣言し
ている。この宣言に続く「MESH2(1,1)=
(2,2)」において、左辺は、先に定義したMESH
2のX/Y軸の両方向に、原点側から数えて1番目の領
域を分割することを示し、右辺は、その指定された領域
をX軸方向に2分割し、Y軸方向に2分割することを示
している。この2つの領域定義カードによって、図3に
示したMESH−4の分割領域が定義される。
SHDEFカードでMESH4を定義することを宣言し
ている。この宣言に続く「MESH2(1,1)=
(2,2)」において、左辺は、先に定義したMESH
2のX/Y軸の両方向に、原点側から数えて1番目の領
域を分割することを示し、右辺は、その指定された領域
をX軸方向に2分割し、Y軸方向に2分割することを示
している。この2つの領域定義カードによって、図3に
示したMESH−4の分割領域が定義される。
【0028】このように、任意の階層、任意の分割数で
の領域定義が、本実施の形態では可能であり、定義した
分割領域を2次元配列に見立てて、例えば、MESH1
のX/Y両方向ともに3番目の領域をMESH1(3,
3)と名付けている。
の領域定義が、本実施の形態では可能であり、定義した
分割領域を2次元配列に見立てて、例えば、MESH1
のX/Y両方向ともに3番目の領域をMESH1(3,
3)と名付けている。
【0029】以上のような領域定義カードによって、図
3に示したような階層領域分割が定義できる。
3に示したような階層領域分割が定義できる。
【0030】なお、図3に示した例では、MESH2を
表わすのに、MESH1の(3,3)の領域のみをX方
向に2分割、Y方向に3分割して定義したが、基板全体
をX方向に6分割、Y方向に9分割して定義しても、同
じ領域が定義できる。このように同じ領域を違う分割形
状で多重的に定義しても、階層的な領域分割を取り扱う
ことができる。
表わすのに、MESH1の(3,3)の領域のみをX方
向に2分割、Y方向に3分割して定義したが、基板全体
をX方向に6分割、Y方向に9分割して定義しても、同
じ領域が定義できる。このように同じ領域を違う分割形
状で多重的に定義しても、階層的な領域分割を取り扱う
ことができる。
【0031】また、図3に示した例では、基板平面上の
位置を記述するための2次元座標系として、最も一般的
な直交するX/Yの2軸を用いているが、これに代え
て、対象とする基板および論理素子の形状や配線の走る
方向に応じて、X/Y軸を原点Oを中心に回転させたも
のや、X/Y軸が直交しないものや、あるいは、X/Y
軸の代わりに原点からの距離とある基準方向からの角度
を用いたものも使用可能である。
位置を記述するための2次元座標系として、最も一般的
な直交するX/Yの2軸を用いているが、これに代え
て、対象とする基板および論理素子の形状や配線の走る
方向に応じて、X/Y軸を原点Oを中心に回転させたも
のや、X/Y軸が直交しないものや、あるいは、X/Y
軸の代わりに原点からの距離とある基準方向からの角度
を用いたものも使用可能である。
【0032】また、分割領域を定義するやり方として、
分割数を指定して分割する方法をとるものとしている
が、これに代えて、分割幅を指定して分割する方法や、
分割境界の座標を指定して分割する方法や、以上の3種
類を組み合わせて分割する方法も使用可能である。
分割数を指定して分割する方法をとるものとしている
が、これに代えて、分割幅を指定して分割する方法や、
分割境界の座標を指定して分割する方法や、以上の3種
類を組み合わせて分割する方法も使用可能である。
【0033】分割幅を指定して分割するやり方によれ
ば、X方向の分割幅WXとY方向の分割幅WYを与えれ
ば、それぞれX1とY1から順番にWXとWYを加えて
いくやり方で座標X2,X3,Y2,Y3が計算できる
ため、分割幅を指定するだけで分割領域の定義が可能と
なる。このとき、分割数で割っていったときに余りが出
る場合や、分割幅で区切っていったときに最後に分割幅
以下の領域ができてしまう場合などがあるので、厳密に
は等分割にはならない。
ば、X方向の分割幅WXとY方向の分割幅WYを与えれ
ば、それぞれX1とY1から順番にWXとWYを加えて
いくやり方で座標X2,X3,Y2,Y3が計算できる
ため、分割幅を指定するだけで分割領域の定義が可能と
なる。このとき、分割数で割っていったときに余りが出
る場合や、分割幅で区切っていったときに最後に分割幅
以下の領域ができてしまう場合などがあるので、厳密に
は等分割にはならない。
【0034】また、半導体集積回路の基板上で論理素子
の配置できる場所が、論理素子の基本回路構造の整数倍
の位置に限定されている場合には、分割境界の座標をこ
の位置に合わせて修正する必要もある。しかし、計算法
を決めておけば一意に分割領域が決まるので、簡単な分
割領域の定義法として有効である。
の配置できる場所が、論理素子の基本回路構造の整数倍
の位置に限定されている場合には、分割境界の座標をこ
の位置に合わせて修正する必要もある。しかし、計算法
を決めておけば一意に分割領域が決まるので、簡単な分
割領域の定義法として有効である。
【0035】もちろん、分割境界の座標X2、X3、Y
2、Y3を個別に指定して分割することも可能である。
2、Y3を個別に指定して分割することも可能である。
【0036】領域定義カードとしては、分割幅を指定し
て分割する方法では、定義例の「=(3,3)」の代わ
りに「=WIDTH(50,60)」と指定すれば、X
方向の分割幅を50、Y方向の分割幅を60で分割する
ことを指示できる。また、分割境界の座標を指定して分
割する方法では、定義例の「=(3,3)」の代わりに
「=(X,Y)」と指定して、その分割定義カードの下
に「X=100,200」の分割定義カードと「Y=1
50,300」の分割定義カードの2枚のカードを入れ
れば、X方向の分割境界の座標を100と200、Y方
向の分割境界の座標を150と300として分割するこ
とを指示できる。
て分割する方法では、定義例の「=(3,3)」の代わ
りに「=WIDTH(50,60)」と指定すれば、X
方向の分割幅を50、Y方向の分割幅を60で分割する
ことを指示できる。また、分割境界の座標を指定して分
割する方法では、定義例の「=(3,3)」の代わりに
「=(X,Y)」と指定して、その分割定義カードの下
に「X=100,200」の分割定義カードと「Y=1
50,300」の分割定義カードの2枚のカードを入れ
れば、X方向の分割境界の座標を100と200、Y方
向の分割境界の座標を150と300として分割するこ
とを指示できる。
【0037】次に、図2に戻って、ステップ202にお
いて、配置位置指示処理部110は、論理ブロック以外
の単位で論理素子群を定義したいか否かを判断し、論理
ブロック以外の単位で論理素子群を定義したい場合は、
ステップ203に進む。定義したくない場合には、ステ
ップ204に進む。
いて、配置位置指示処理部110は、論理ブロック以外
の単位で論理素子群を定義したいか否かを判断し、論理
ブロック以外の単位で論理素子群を定義したい場合は、
ステップ203に進む。定義したくない場合には、ステ
ップ204に進む。
【0038】ステップ203において、配置位置指示処
理部110は、予め論理素子もしくは論理ブロックをま
とめてグループ化し、グループ定義カードを作成する。
理部110は、予め論理素子もしくは論理ブロックをま
とめてグループ化し、グループ定義カードを作成する。
【0039】ここで、論理素子をまとめてグループ化す
る場合について、図5を用いて説明する。図5は、本発
明の一実施の形態による半導体集積回路の論理素子配置
処理方法において用いるグループ化の説明図である。
る場合について、図5を用いて説明する。図5は、本発
明の一実施の形態による半導体集積回路の論理素子配置
処理方法において用いるグループ化の説明図である。
【0040】論理素子であるアンド回路CELL C,
フリップフロップ回路CELL D,及びアンド回路C
ELL Eが、図示のように接続されている場合に、こ
れらを個別の論理素子として配置指定するようにしても
よいが、これをグループ化して配置指定した方が都合の
よい場合には、これをグループ化して定義するようにし
ている。
フリップフロップ回路CELL D,及びアンド回路C
ELL Eが、図示のように接続されている場合に、こ
れらを個別の論理素子として配置指定するようにしても
よいが、これをグループ化して配置指定した方が都合の
よい場合には、これをグループ化して定義するようにし
ている。
【0041】次に、グループ定義カードについて、図6
を用いて説明する。図6は、本発明の一実施の形態によ
る半導体集積回路の論理素子配置処理方法において用い
るグループ定義カードの説明図である。
を用いて説明する。図6は、本発明の一実施の形態によ
る半導体集積回路の論理素子配置処理方法において用い
るグループ定義カードの説明図である。
【0042】「GROUPDEF」は、グループを定義
することを宣言している。この宣言に続く「GROUP
B=CELL C,CELL D,CELL E」
は、グループBが、論理素子Cと論理素子Dと論理素子
Eから構成されることが定義される。
することを宣言している。この宣言に続く「GROUP
B=CELL C,CELL D,CELL E」
は、グループBが、論理素子Cと論理素子Dと論理素子
Eから構成されることが定義される。
【0043】以上のようにして、グループ化して配置指
定した方が都合のよい場合には、グループ定義カードに
よって、グループ化して定義するようにしている。
定した方が都合のよい場合には、グループ定義カードに
よって、グループ化して定義するようにしている。
【0044】次に、図2に戻って、ステップ204にお
いて、配置位置指示処理部110は、論理素子群を領域
に対応づけ、配置指示カードを作成する。ここで、論理
素子群を分割された領域に対応づけする方法について、
図7、図8を用いて説明する。図7は、論理素子群の説
明図であり、図8は、本発明の一実施の形態による半導
体集積回路の論理素子配置処理方法において指定される
領域の説明図である。
いて、配置位置指示処理部110は、論理素子群を領域
に対応づけ、配置指示カードを作成する。ここで、論理
素子群を分割された領域に対応づけする方法について、
図7、図8を用いて説明する。図7は、論理素子群の説
明図であり、図8は、本発明の一実施の形態による半導
体集積回路の論理素子配置処理方法において指定される
領域の説明図である。
【0045】図7に示すように、論理ブロックBlo.
Aは、n個の論理素子A1,…,Anから構成されてい
るとする。論理ブロックBlo.Bは、m個の論理素子
B1,B2,…Bmから構成されているとする。論理ブ
ロックBlo.Cは、p個の論理素子C1,…Cpから
構成されているとする。論理グループGr.Bは、論理
素子C,D,Eから構成されているとする。論理ブロッ
クBlo.Dは、論理素子D1,D2から構成されてい
るとする。
Aは、n個の論理素子A1,…,Anから構成されてい
るとする。論理ブロックBlo.Bは、m個の論理素子
B1,B2,…Bmから構成されているとする。論理ブ
ロックBlo.Cは、p個の論理素子C1,…Cpから
構成されているとする。論理グループGr.Bは、論理
素子C,D,Eから構成されているとする。論理ブロッ
クBlo.Dは、論理素子D1,D2から構成されてい
るとする。
【0046】ここで、半導体集積回路の動作速度を考慮
して、特定の論理素子(群)の配置を検討する。論理ブ
ロックBlo.Aは、基板の複数の入力端子の内のほぼ
中央に位置する入力端子IN2から信号が入力され、基
板の複数の出力端子の内のほぼ中央に位置する出力端子
OUT2から出力するように配置するのが適当であると
して、図7に示すように、基板のほぼ中央に配置したい
ものとする。
して、特定の論理素子(群)の配置を検討する。論理ブ
ロックBlo.Aは、基板の複数の入力端子の内のほぼ
中央に位置する入力端子IN2から信号が入力され、基
板の複数の出力端子の内のほぼ中央に位置する出力端子
OUT2から出力するように配置するのが適当であると
して、図7に示すように、基板のほぼ中央に配置したい
ものとする。
【0047】また、論理ブロックBlo.Bは、基板の
左上の入力端子IN1から信号が入力されるものとし、
論理ブロックBlo.Cは、基板の左下の入力端子IN
3から信号が入力されるものとすると、論理ブロックB
lo.B及び論理ブロックBlo.Cは、図7に示すよ
うな位置に配置したいものとする。さらに、論理グルー
プGr.Bの中の論理素子Cは、論理ブロックBlo.
Bの出力信号と、論理ブロックBlo.Cの出力信号の
アンドをとるものとすると、論理素子Cの位置は、論理
ブロックBlo.Bと論理ブロックBlo.Cと論理グ
ループGr.Bのバランスの中点に配置することが好ま
しく、図7に示すような位置に配置したいものとする。
左上の入力端子IN1から信号が入力されるものとし、
論理ブロックBlo.Cは、基板の左下の入力端子IN
3から信号が入力されるものとすると、論理ブロックB
lo.B及び論理ブロックBlo.Cは、図7に示すよ
うな位置に配置したいものとする。さらに、論理グルー
プGr.Bの中の論理素子Cは、論理ブロックBlo.
Bの出力信号と、論理ブロックBlo.Cの出力信号の
アンドをとるものとすると、論理素子Cの位置は、論理
ブロックBlo.Bと論理ブロックBlo.Cと論理グ
ループGr.Bのバランスの中点に配置することが好ま
しく、図7に示すような位置に配置したいものとする。
【0048】また、論理ブロックBlo.Dは、その入
力信号を論理グループGr.Bの出力信号とし、その出
力信号を基板の右上の出力端子OUT1から出力するも
のとすると、図7に示すような位置に配置したいものと
する。
力信号を論理グループGr.Bの出力信号とし、その出
力信号を基板の右上の出力端子OUT1から出力するも
のとすると、図7に示すような位置に配置したいものと
する。
【0049】以上のようにして、信号伝播遅延時間が少
なくなり、動作速度が早くなるような配置を検討した結
果、図7に示すような大まかな配置が決定したものとす
る。
なくなり、動作速度が早くなるような配置を検討した結
果、図7に示すような大まかな配置が決定したものとす
る。
【0050】次に、配置位置の指示について、図8を用
いて説明する。以上のような検討結果に基づいて、配置
位置を指示する。即ち、論理ブロックBlo.Aは、基
板のほぼ中央に配置すればよく、図8の領域Aに配置を
指示すればよい。また、論理グループGr.Bは、基板
の右上に配置すればよく、図8の領域Bに配置を指示す
ればよい。ここで、論理グループGr.Bの中の論理素
子Cは、特に、図8の領域Bの中でも、領域Cに配置す
るのが好適である。
いて説明する。以上のような検討結果に基づいて、配置
位置を指示する。即ち、論理ブロックBlo.Aは、基
板のほぼ中央に配置すればよく、図8の領域Aに配置を
指示すればよい。また、論理グループGr.Bは、基板
の右上に配置すればよく、図8の領域Bに配置を指示す
ればよい。ここで、論理グループGr.Bの中の論理素
子Cは、特に、図8の領域Bの中でも、領域Cに配置す
るのが好適である。
【0051】次に、図9を用いて、上述した領域定義を
使用して、論理素子もしくは論理ブロック等の論理素子
群の配置位置を指示するための、配置指示カードについ
て説明する。図9は、本発明の一実施の形態による半導
体集積回路の論理素子配置処理方法において用いる配置
指示定義カードの説明図である。
使用して、論理素子もしくは論理ブロック等の論理素子
群の配置位置を指示するための、配置指示カードについ
て説明する。図9は、本発明の一実施の形態による半導
体集積回路の論理素子配置処理方法において用いる配置
指示定義カードの説明図である。
【0052】配置指示カードでは、先程名付けた分割領
域の名称と論理素子もしくは論理ブロック等の論理素子
群の名称を”=”で結んで対応づけることにより、配置
位置を指示するようにしている。
域の名称と論理素子もしくは論理ブロック等の論理素子
群の名称を”=”で結んで対応づけることにより、配置
位置を指示するようにしている。
【0053】最初の配置指示カード「PLACE」は、
論理素子群の配置位置の指示を定義している。次の配置
指示カード「BLOCK A=MESH1 (2,
2)」は、BLOCK Aという名称の論理ブロック
を、MESH1のX/Y軸の両方向に原点から2番目の
領域位置(図8の領域A)に配置指示している。
論理素子群の配置位置の指示を定義している。次の配置
指示カード「BLOCK A=MESH1 (2,
2)」は、BLOCK Aという名称の論理ブロック
を、MESH1のX/Y軸の両方向に原点から2番目の
領域位置(図8の領域A)に配置指示している。
【0054】また、配置指示カード「GROUP B=
MESH2 (1,1)」は、GROUP Bという名
称の論理素子群を、MESH2のX/Y軸の両方向に原
点から1番目の領域位置(図8の領域B)に配置指示し
ている。
MESH2 (1,1)」は、GROUP Bという名
称の論理素子群を、MESH2のX/Y軸の両方向に原
点から1番目の領域位置(図8の領域B)に配置指示し
ている。
【0055】さらに、配置指示カード「CELL C=
MESH4 (1,2)は、CELL Cという論理素
子を、MESH4のX軸方向に1番目で、Y軸方向に2
番目の領域位置(図8の領域C)に配置指示している。
MESH4 (1,2)は、CELL Cという論理素
子を、MESH4のX軸方向に1番目で、Y軸方向に2
番目の領域位置(図8の領域C)に配置指示している。
【0056】ここで、GROUP Bという名称の論理
素子群は、図6に示したグループ指示の定義カードによ
り、CELL C,CELL D,CELL Eという
名称の論理素子から構成されていることがわかる。ここ
で、CELL Cを含むGROUP Bという名称の論
理素子群は、図8の領域Bに配置することを指示され、
その中でも特にCELL Cは、領域Bの左上の部分に
当たる図8の領域Cに配置するよう指示されている。す
なわち、階層的な領域分割により生成された親子関係を
持つ分割領域と、同じく論理的に親子関係を持つ論理素
子もしくは論理素子群とをそれぞれ対応づけることによ
り、異なる論理階層の論理素子の配置指示が一括して行
われている。これにより、論理素子もしくは論理素子群
を半導体集積回路の基板上の特定の位置に対応づけるこ
とができ、配置位置の指示が可能となる。
素子群は、図6に示したグループ指示の定義カードによ
り、CELL C,CELL D,CELL Eという
名称の論理素子から構成されていることがわかる。ここ
で、CELL Cを含むGROUP Bという名称の論
理素子群は、図8の領域Bに配置することを指示され、
その中でも特にCELL Cは、領域Bの左上の部分に
当たる図8の領域Cに配置するよう指示されている。す
なわち、階層的な領域分割により生成された親子関係を
持つ分割領域と、同じく論理的に親子関係を持つ論理素
子もしくは論理素子群とをそれぞれ対応づけることによ
り、異なる論理階層の論理素子の配置指示が一括して行
われている。これにより、論理素子もしくは論理素子群
を半導体集積回路の基板上の特定の位置に対応づけるこ
とができ、配置位置の指示が可能となる。
【0057】次に、図2に戻って、ステップ205にお
いて、配置位置指示処理部110は、それまでに作成し
たカードを配置指示情報格納用のファイルに格納する。
いて、配置位置指示処理部110は、それまでに作成し
たカードを配置指示情報格納用のファイルに格納する。
【0058】以上の準備を行った後、ステップ206に
おいて、配置位置指示処理部110は、自動配置システ
ムを起動する。
おいて、配置位置指示処理部110は、自動配置システ
ムを起動する。
【0059】図4,図6,図9に示したカードは、全て
配置指示情報格納用のファイルに収めて、自動配置シス
テムが読み込みを行う。また、配置指示情報ファイル
は、カードイメージファイルを用いることで、汎用的な
エディタにより作成、編集が可能である。以上により、
論理素子もしくは論理素子群の配置位置を外部より指示
し、自動配置システムを起動するまでを行うことができ
る。
配置指示情報格納用のファイルに収めて、自動配置シス
テムが読み込みを行う。また、配置指示情報ファイル
は、カードイメージファイルを用いることで、汎用的な
エディタにより作成、編集が可能である。以上により、
論理素子もしくは論理素子群の配置位置を外部より指示
し、自動配置システムを起動するまでを行うことができ
る。
【0060】次に、論理素子(群)配置処理部120の
処理について、図10,図11,図12,図13,図1
4を用いて説明する。図10は、本発明の一実施の形態
による半導体集積回路の論理素子配置処理方法における
論理素子群の配置処理を示すフローチャートであり、図
11は、本発明の一実施の形態による半導体集積回路の
論理素子配置処理方法において用いる座標テーブルの構
成図であり、図12は、本発明の一実施の形態による半
導体集積回路の論理素子配置処理方法において用いる分
割順序テーブルの構成図であり、図13は、本発明の一
実施の形態による半導体集積回路の論理素子配置処理方
法における論理素子群の配置処理を示す図10に続くフ
ローチャートであり、図14は、本発明の一実施の形態
による半導体集積回路の論理素子配置処理方法における
論理素子群の配置処理において用いる分割領域テーブル
の構成図である。
処理について、図10,図11,図12,図13,図1
4を用いて説明する。図10は、本発明の一実施の形態
による半導体集積回路の論理素子配置処理方法における
論理素子群の配置処理を示すフローチャートであり、図
11は、本発明の一実施の形態による半導体集積回路の
論理素子配置処理方法において用いる座標テーブルの構
成図であり、図12は、本発明の一実施の形態による半
導体集積回路の論理素子配置処理方法において用いる分
割順序テーブルの構成図であり、図13は、本発明の一
実施の形態による半導体集積回路の論理素子配置処理方
法における論理素子群の配置処理を示す図10に続くフ
ローチャートであり、図14は、本発明の一実施の形態
による半導体集積回路の論理素子配置処理方法における
論理素子群の配置処理において用いる分割領域テーブル
の構成図である。
【0061】図10は、配置指示情報ファイルを読み込
み、読み込まれた領域定義情報より、後続の配置処理で
用いる分割順序テーブルを作成するまでの処理フローを
示している。
み、読み込まれた領域定義情報より、後続の配置処理で
用いる分割順序テーブルを作成するまでの処理フローを
示している。
【0062】図10のステップ1001において、論理
素子(群)配置処理部120の分割線決定処理部122
は、配置指示の有無が判断される。配置指示がある場合
は、ステップ1002に進み、配置指示がない場合に
は、ステップ1005に進む。
素子(群)配置処理部120の分割線決定処理部122
は、配置指示の有無が判断される。配置指示がある場合
は、ステップ1002に進み、配置指示がない場合に
は、ステップ1005に進む。
【0063】配置指示があると、ステップ1002にお
いて、分割線決定処理部122は、配置指示情報ファイ
ルより、領域定義,グループ定義,配置指示情報を読み
込む。領域定義は、図4に示されたように配置指示情報
ファイルに格納されており、グループ定義は、図6に示
されたように配置指示情報ファイルに格納されており、
配置指示情報は、図9に示されたように配置指示情報フ
ァイルに格納されている。
いて、分割線決定処理部122は、配置指示情報ファイ
ルより、領域定義,グループ定義,配置指示情報を読み
込む。領域定義は、図4に示されたように配置指示情報
ファイルに格納されており、グループ定義は、図6に示
されたように配置指示情報ファイルに格納されており、
配置指示情報は、図9に示されたように配置指示情報フ
ァイルに格納されている。
【0064】ステップ1003において、分割線決定処
理部122は、読み込んだ領域定義を基に、全ての領域
分割線の位置を計算して求め、X座標/Y座標別に座標
テーブルに登録する。
理部122は、読み込んだ領域定義を基に、全ての領域
分割線の位置を計算して求め、X座標/Y座標別に座標
テーブルに登録する。
【0065】ここで、図11を用いて、X座標/Y座標
別の座標テーブルの構成について説明する。図11
(A)は、ステップ1003において、X座標/Y座標
別の座標テーブルにそれぞれ、分割線の位置が登録され
た状態を示している。階層領域定義は、図4に示したよ
うに、MESH1,MESH2,MESH3,MESH
4の順に、大きな領域を順次再分割していく形態であ
り、図3に示したそれぞれの分割線が順次X座標/Y座
標別の座標テーブルに登録される。ここで、X1,X
4,Y1,Y4以外の分割線の位置は、それぞれ、X
1,X4、Y1,Y4に基づいて分割線の位置が計算さ
れたものであり、例えば、X2=(X4−X1)/3の
ように計算された値が登録されている。
別の座標テーブルの構成について説明する。図11
(A)は、ステップ1003において、X座標/Y座標
別の座標テーブルにそれぞれ、分割線の位置が登録され
た状態を示している。階層領域定義は、図4に示したよ
うに、MESH1,MESH2,MESH3,MESH
4の順に、大きな領域を順次再分割していく形態であ
り、図3に示したそれぞれの分割線が順次X座標/Y座
標別の座標テーブルに登録される。ここで、X1,X
4,Y1,Y4以外の分割線の位置は、それぞれ、X
1,X4、Y1,Y4に基づいて分割線の位置が計算さ
れたものであり、例えば、X2=(X4−X1)/3の
ように計算された値が登録されている。
【0066】次に、ステップ1004において、分割線
決定処理部122は、X座標/Y座標それぞれについて
座標テーブルを昇順にソートする。ソートされた結果
は、図11(B)に示すようになる。
決定処理部122は、X座標/Y座標それぞれについて
座標テーブルを昇順にソートする。ソートされた結果
は、図11(B)に示すようになる。
【0067】一方、ステップ1001において、配置指
示がないと判断された場合は、ステップ1005におい
て、分割線決定処理部122は、半導体集積回路の基板
上を分割して論理素子の配置位置を決定するための分割
線の座標を、以下の方法で求める。即ち、分割線間隔
が、最大の論理素子の占める大きさに合うように、X,
Y方向それぞれの分割数を決め、各々の分割線の座標を
X座標/Y座標それぞれについて昇順に座標テーブルに
登録する。例えば、X座標に付いてみると、最大の論理
素子の占める大きさを(X4−X1)/100とする
と、X1,(X4−X1)/100,2・(X4−X
1)/100,3・(X4−X1)/100,…,X4
のように、座標テーブルに登録される。
示がないと判断された場合は、ステップ1005におい
て、分割線決定処理部122は、半導体集積回路の基板
上を分割して論理素子の配置位置を決定するための分割
線の座標を、以下の方法で求める。即ち、分割線間隔
が、最大の論理素子の占める大きさに合うように、X,
Y方向それぞれの分割数を決め、各々の分割線の座標を
X座標/Y座標それぞれについて昇順に座標テーブルに
登録する。例えば、X座標に付いてみると、最大の論理
素子の占める大きさを(X4−X1)/100とする
と、X1,(X4−X1)/100,2・(X4−X
1)/100,3・(X4−X1)/100,…,X4
のように、座標テーブルに登録される。
【0068】以上のようにして、座標テーブルへの分割
線の位置の登録が終了すると、ステップ1006におい
て、分割線決定処理部122は、X/Y交互に座標テー
ブル上でバイナリサーチを行い、この順番に分割順序テ
ーブルに登録する。
線の位置の登録が終了すると、ステップ1006におい
て、分割線決定処理部122は、X/Y交互に座標テー
ブル上でバイナリサーチを行い、この順番に分割順序テ
ーブルに登録する。
【0069】例えば、図3に示した分割線の位置の例に
ついて、X座標方向を例にとって、以下に説明する。図
12は、登録される分割順序テーブルの一例を示してい
る。図11(B)に示す座標テーブルにおいて、中央位
置の座標は、X2若しくはX3である。ここで、例え
ば、X2を選択し、図12に示す分割順序テーブルに登
録する。次に、座標X1と座標X2間でバイナリサーチ
を行い、例えば、X6を選択し、分割順序テーブルに登
録する。次に、座標X2と座標X4間でバイナリサーチ
を行い、X8を選択し、分割順序テーブルに登録する。
次に、座標X6と座標X2間でバイナリサーチを行い、
X7を選択し、分割順序テーブルに登録する。以下、順
次バイナリサーチを行い、図12に示すように、X2,
X6,X8,X7,X3,X5を分割順序テーブルに登
録する。Y座標についても同様にバイナリサーチを行
い、分割順序テーブルに登録する。
ついて、X座標方向を例にとって、以下に説明する。図
12は、登録される分割順序テーブルの一例を示してい
る。図11(B)に示す座標テーブルにおいて、中央位
置の座標は、X2若しくはX3である。ここで、例え
ば、X2を選択し、図12に示す分割順序テーブルに登
録する。次に、座標X1と座標X2間でバイナリサーチ
を行い、例えば、X6を選択し、分割順序テーブルに登
録する。次に、座標X2と座標X4間でバイナリサーチ
を行い、X8を選択し、分割順序テーブルに登録する。
次に、座標X6と座標X2間でバイナリサーチを行い、
X7を選択し、分割順序テーブルに登録する。以下、順
次バイナリサーチを行い、図12に示すように、X2,
X6,X8,X7,X3,X5を分割順序テーブルに登
録する。Y座標についても同様にバイナリサーチを行
い、分割順序テーブルに登録する。
【0070】次に、図13は、この分割順序テーブルを
もとにして半導体集積回路の基板上を領域に分割し、全
ての論理素子を分割領域と1対1に割り当てることで配
置位置を決定するまでの処理フローを示している。
もとにして半導体集積回路の基板上を領域に分割し、全
ての論理素子を分割領域と1対1に割り当てることで配
置位置を決定するまでの処理フローを示している。
【0071】図13のステップ1301において、論理
素子(群)配置処理部120の割付け処理部124は、
分割順序テーブルから、最初の分割線を取り出す。即
ち、X軸方向についてみるなら、図12に示した分割順
序テーブルから、最初の分割線であるX2を取り出す。
素子(群)配置処理部120の割付け処理部124は、
分割順序テーブルから、最初の分割線を取り出す。即
ち、X軸方向についてみるなら、図12に示した分割順
序テーブルから、最初の分割線であるX2を取り出す。
【0072】ステップ1302において、割付け処理部
124は、分割対象領域内の配置指示された論理素子
を、指定された位置を含む分割領域に割り当てる。ま
た、ステップ1303において、分割対象領域内の残り
の論理素子を、分割線の両側の領域の容量のバランスを
取りながら、分割線をまたぐ結線数が最小となるよう分
配し、その結果をそれぞれの分割領域テーブルに格納す
る。
124は、分割対象領域内の配置指示された論理素子
を、指定された位置を含む分割領域に割り当てる。ま
た、ステップ1303において、分割対象領域内の残り
の論理素子を、分割線の両側の領域の容量のバランスを
取りながら、分割線をまたぐ結線数が最小となるよう分
配し、その結果をそれぞれの分割領域テーブルに格納す
る。
【0073】即ち、配置指示されているものが、図9の
配置指示定義カードに記載のように、論理ブロックBL
OCK A,論理グループGROUP B,論理素子C
ELL Cとし、それ以外の論理素子、論理ブロックの
配置は指示されていないものとする。ステップ1302
では、配置指示されているものに対する処理であるの
で、最初の分割線X2に対して、図9の配置指示定義カ
ードによって指示されているように、論理ブロックBL
OCK A,論理グループGROUP B,論理素子C
ELL Cを配置する。これらの配置指示された論理素
子(群)は、いずれも、分割線の右側(X軸方向の座標
値が大なる側)に配置されるものであるため、そのよう
に、分割領域テーブルに格納される。
配置指示定義カードに記載のように、論理ブロックBL
OCK A,論理グループGROUP B,論理素子C
ELL Cとし、それ以外の論理素子、論理ブロックの
配置は指示されていないものとする。ステップ1302
では、配置指示されているものに対する処理であるの
で、最初の分割線X2に対して、図9の配置指示定義カ
ードによって指示されているように、論理ブロックBL
OCK A,論理グループGROUP B,論理素子C
ELL Cを配置する。これらの配置指示された論理素
子(群)は、いずれも、分割線の右側(X軸方向の座標
値が大なる側)に配置されるものであるため、そのよう
に、分割領域テーブルに格納される。
【0074】ここで、図14を用いて分割領域テーブル
の一例について説明する。図14(A)に示すように、
分割領域テーブルは、分割対象の分割線と、この分割線
の左側に配置する論理素子(群)を格納するフィールド
と、分割線の右側に配置する論理素子(群)を格納する
フィールドとから構成されている。分割線X2に対し
て、ステップ1302によって、分割線X2の右側に
は、論理ブロックBLOCK A,論理グループGRO
UP B,論理素子CELL Cが配置されるので、
A,B,Cが格納される。
の一例について説明する。図14(A)に示すように、
分割領域テーブルは、分割対象の分割線と、この分割線
の左側に配置する論理素子(群)を格納するフィールド
と、分割線の右側に配置する論理素子(群)を格納する
フィールドとから構成されている。分割線X2に対し
て、ステップ1302によって、分割線X2の右側に
は、論理ブロックBLOCK A,論理グループGRO
UP B,論理素子CELL Cが配置されるので、
A,B,Cが格納される。
【0075】さらに、ステップ1303において、割付
け処理部124は、配置指示のされていない残りの論理
素子(群)Rがバランスをとって、左右に配置されるの
で、それぞれ、例えば、左側にR1が格納され、右側に
R2が配置される。ここで、R1,R2の詳細について
は、説明を省略する。
け処理部124は、配置指示のされていない残りの論理
素子(群)Rがバランスをとって、左右に配置されるの
で、それぞれ、例えば、左側にR1が格納され、右側に
R2が配置される。ここで、R1,R2の詳細について
は、説明を省略する。
【0076】ステップ1304において、割付け処理部
124は、分割順序テーブルから次の分割線を取りだ
す。ここでは、図12に示す分割順序テーブルから次の
分割線X6を取りだす。
124は、分割順序テーブルから次の分割線を取りだ
す。ここでは、図12に示す分割順序テーブルから次の
分割線X6を取りだす。
【0077】ステップ1305は、割付け処理部124
は、分割線の処理終了を判断するステップであるので、
ステップ1304において、次の分割線が取り出せた場
合には、ステップ1302に戻って、ステップ130
2,1303,1304を実行する。
は、分割線の処理終了を判断するステップであるので、
ステップ1304において、次の分割線が取り出せた場
合には、ステップ1302に戻って、ステップ130
2,1303,1304を実行する。
【0078】ここでは、分割線X6に対する処理である
ため、図14(A)の左側のフィールドに格納された論
理素子(群)に対する処理を行う。図14(A)の左側
のフィールドには、配置指示のない論理素子(群)R1
のみが格納されているため、ステップ1302をパスす
る。次に、ステップ1303の処理によって、分割線X
6の左側に、例えば、論理素子(群)R1ー1を配置
し、分割線X6の右側に、例えば、論理素子(群)R1
ー2を配置するように処理を行い、その結果を図14
(B)に示すように、分割領域テーブルに格納する。
ため、図14(A)の左側のフィールドに格納された論
理素子(群)に対する処理を行う。図14(A)の左側
のフィールドには、配置指示のない論理素子(群)R1
のみが格納されているため、ステップ1302をパスす
る。次に、ステップ1303の処理によって、分割線X
6の左側に、例えば、論理素子(群)R1ー1を配置
し、分割線X6の右側に、例えば、論理素子(群)R1
ー2を配置するように処理を行い、その結果を図14
(B)に示すように、分割領域テーブルに格納する。
【0079】次に、ステップ1304において、次の分
割線X8を図12の分割順序テーブルから読み出す。ス
テップ1305の判断で、NOとなり、ステップ130
2に戻る。
割線X8を図12の分割順序テーブルから読み出す。ス
テップ1305の判断で、NOとなり、ステップ130
2に戻る。
【0080】ここでは、分割線X8に対する処理である
ため、図14(A)の右側のフィールドに格納された論
理素子(群)に対する処理を行う。図14(A)の右側
のフィールドには、配置指示のある論理素子(群)A,
B,C及び配置指示のない論理素子(群)R2が格納さ
れているため、ステップ1302では、配置指示のある
論理素子(群)A,B,Cの配置処理を行う。即ち、図
9の配置指示に基づいて、論理素子(群)A,Cは、分
割線X8の左側に配置され、論理素子(群)Bは、分割
線X8を跨ぐ形で、B1,B2と分割して、それぞれ、
左右に配置する。
ため、図14(A)の右側のフィールドに格納された論
理素子(群)に対する処理を行う。図14(A)の右側
のフィールドには、配置指示のある論理素子(群)A,
B,C及び配置指示のない論理素子(群)R2が格納さ
れているため、ステップ1302では、配置指示のある
論理素子(群)A,B,Cの配置処理を行う。即ち、図
9の配置指示に基づいて、論理素子(群)A,Cは、分
割線X8の左側に配置され、論理素子(群)Bは、分割
線X8を跨ぐ形で、B1,B2と分割して、それぞれ、
左右に配置する。
【0081】さらに、ステップ1303の処理によっ
て、配置指示のない論理素子(群)R2の配置処理を行
い、分割線X8の左側に、例えば、論理素子(群)R2
ー1を配置し、分割線X8の右側に、例えば、論理素子
(群)R2ー2を配置するように処理を行い、その結果
を図14(C)に示すように、分割領域テーブルに格納
する。ここで、図14(A)に示した分割領域テーブル
の格納内容は、図14(B),(C)に示すように再分
割されているため、図14(A)に示した分割領域テー
ブルは内容を消去する。
て、配置指示のない論理素子(群)R2の配置処理を行
い、分割線X8の左側に、例えば、論理素子(群)R2
ー1を配置し、分割線X8の右側に、例えば、論理素子
(群)R2ー2を配置するように処理を行い、その結果
を図14(C)に示すように、分割領域テーブルに格納
する。ここで、図14(A)に示した分割領域テーブル
の格納内容は、図14(B),(C)に示すように再分
割されているため、図14(A)に示した分割領域テー
ブルは内容を消去する。
【0082】次に、ステップ1304において、次の分
割線X7を図12の分割順序テーブルから読み出す。ス
テップ1305の判断で、NOとなり、ステップ130
2に戻り、以下、ステップ1302,1303,130
4を実行する。ステップ1302,1303,1304
を繰り返し実行することによって、領域が細分割され、
それぞれの分割線の左右に論理素子(群)が配置され
る。また、それに伴って、最初の内に形成された分割領
域テーブルは順次消去されるので、分割領域テーブル
は、最小の分割単位に対して形成されていることにな
る。また、以上の分割配置処理は、X軸方向だけでな
く、Y軸方向についても同様になされる。
割線X7を図12の分割順序テーブルから読み出す。ス
テップ1305の判断で、NOとなり、ステップ130
2に戻り、以下、ステップ1302,1303,130
4を実行する。ステップ1302,1303,1304
を繰り返し実行することによって、領域が細分割され、
それぞれの分割線の左右に論理素子(群)が配置され
る。また、それに伴って、最初の内に形成された分割領
域テーブルは順次消去されるので、分割領域テーブル
は、最小の分割単位に対して形成されていることにな
る。また、以上の分割配置処理は、X軸方向だけでな
く、Y軸方向についても同様になされる。
【0083】すべての分割線について処理が完了する
と、ステップ1305において、YESと判断され、ス
テップ1306に進む。
と、ステップ1305において、YESと判断され、ス
テップ1306に進む。
【0084】ステップ1306において、論理素子
(群)配置処理部120の再分割処理部126は、分割
領域テーブルから最初の領域を取り出す。さらに、ステ
ップ1307において、再分割処理部126は、領域内
の論理素子数が1個以下か判定する。これは、ステップ
1302,1303,1304を繰り返し実行すること
によって、領域が細分割され、それぞれの分割線の左右
に論理素子(群)が配置され、また、分割領域テーブル
は、最小の分割単位に対して形成されていることになっ
ているが、この分割単位が適当であるかどうかを判断し
ている。分割領域内に論理素子が2個以上ある場合,即
ち、分割が不十分である場合には、ステップ1308に
進む。
(群)配置処理部120の再分割処理部126は、分割
領域テーブルから最初の領域を取り出す。さらに、ステ
ップ1307において、再分割処理部126は、領域内
の論理素子数が1個以下か判定する。これは、ステップ
1302,1303,1304を繰り返し実行すること
によって、領域が細分割され、それぞれの分割線の左右
に論理素子(群)が配置され、また、分割領域テーブル
は、最小の分割単位に対して形成されていることになっ
ているが、この分割単位が適当であるかどうかを判断し
ている。分割領域内に論理素子が2個以上ある場合,即
ち、分割が不十分である場合には、ステップ1308に
進む。
【0085】ステップ1308において、再分割処理部
126は、X/Y交互に領域の2分割を繰り返し、容量
の範囲内で分割線を跨ぐ結線数が最小となるように、論
理素子の分配を繰り返し、分割領域内の論理素子数を1
個以下にする。
126は、X/Y交互に領域の2分割を繰り返し、容量
の範囲内で分割線を跨ぐ結線数が最小となるように、論
理素子の分配を繰り返し、分割領域内の論理素子数を1
個以下にする。
【0086】ステップ1307において、領域内の論理
素子数が1個以下と判定された場合及びステップ130
8における処理が終了すると、ステップ1309に進
む。
素子数が1個以下と判定された場合及びステップ130
8における処理が終了すると、ステップ1309に進
む。
【0087】ステップ1309において、再分割処理部
126は、分割領域テーブルから次の分割領域を取り出
し、ステップ1310において、全ての分割領域を処理
するまで、ステップ1307,1308,1309を繰
り返す。
126は、分割領域テーブルから次の分割領域を取り出
し、ステップ1310において、全ての分割領域を処理
するまで、ステップ1307,1308,1309を繰
り返す。
【0088】全ての分割領域の処理が終了した時点で、
全ての論理素子の配置位置が決定する。
全ての論理素子の配置位置が決定する。
【0089】上記処理により、半導体集積回路の基板上
での論理素子もしくは論理素子群の配置位置の指定と、
その指定を守った配置が実現される。
での論理素子もしくは論理素子群の配置位置の指定と、
その指定を守った配置が実現される。
【0090】本実施の形態によれば、配置位置の指示
は、論理ブロック単位や論理素子単位の論理素子(群)
単位で行われる。通常、半導体集積回路で処理されるデ
ータは、半導体集積回路の基板上をある流れに沿って移
動するため、その流れに沿った位置に関係する論理素子
を配置することによって、半導体集積回路の動作速度を
向上し得るものとなる。
は、論理ブロック単位や論理素子単位の論理素子(群)
単位で行われる。通常、半導体集積回路で処理されるデ
ータは、半導体集積回路の基板上をある流れに沿って移
動するため、その流れに沿った位置に関係する論理素子
を配置することによって、半導体集積回路の動作速度を
向上し得るものとなる。
【0091】また、基板上を階層的に領域分割すること
で配置位置を指示することにより、論理ブロックや論理
素子といった大きさの格段に異なるものを、同一手法で
同時に処理できるものとなる。
で配置位置を指示することにより、論理ブロックや論理
素子といった大きさの格段に異なるものを、同一手法で
同時に処理できるものとなる。
【0092】また、外部からの配置指示情報を与える手
段としての領域分割の分割線と、後続の配置処理におい
て各論理素子の配置位置を決定する際に使用する分割線
を一致させることにより、自動配置処理において配置指
示を確実に守ることが可能となる。
段としての領域分割の分割線と、後続の配置処理におい
て各論理素子の配置位置を決定する際に使用する分割線
を一致させることにより、自動配置処理において配置指
示を確実に守ることが可能となる。
【0093】以上に説明したように、本実施の形態によ
れば、半導体集積回路の動作速度を律速する特定の論理
素子もしくは論理ブロック等の論理素子群の配置位置に
関し、その情報を知っている半導体集積回路の論理設計
者が配置位置を指示し、後続の配置処理において、指示
された配置位置を守って配置することにより、半導体集
積回路の動作速度を向上させることができるようにな
る。
れば、半導体集積回路の動作速度を律速する特定の論理
素子もしくは論理ブロック等の論理素子群の配置位置に
関し、その情報を知っている半導体集積回路の論理設計
者が配置位置を指示し、後続の配置処理において、指示
された配置位置を守って配置することにより、半導体集
積回路の動作速度を向上させることができるようにな
る。
【0094】
【発明の効果】本発明によれば、半導体集積回路の論理
素子配置処理において、半導体集積回路の動作速度に関
して、より最適な半導体集積回路の論理素子配置が行え
るようになる。
素子配置処理において、半導体集積回路の動作速度に関
して、より最適な半導体集積回路の論理素子配置が行え
るようになる。
【図1】本発明の一実施の形態による半導体集積回路の
論理素子配置処理方法を実現するシステムのブロック図
である。
論理素子配置処理方法を実現するシステムのブロック図
である。
【図2】本発明の一実施の形態による半導体集積回路の
論理素子配置処理方法における論理素子(群)の配置位
置指示処理を示すフローチャートである。
論理素子配置処理方法における論理素子(群)の配置位
置指示処理を示すフローチャートである。
【図3】本発明の一実施の形態による半導体集積回路の
論理素子配置処理方法における半導体集積回路の基板上
の領域分割の説明図である。
論理素子配置処理方法における半導体集積回路の基板上
の領域分割の説明図である。
【図4】本発明の一実施の形態による半導体集積回路の
論理素子配置処理方法において用いる領域定義カードの
説明図である。
論理素子配置処理方法において用いる領域定義カードの
説明図である。
【図5】本発明の一実施の形態による半導体集積回路の
論理素子配置処理方法において用いるグループ化の説明
図である。
論理素子配置処理方法において用いるグループ化の説明
図である。
【図6】本発明の一実施の形態による半導体集積回路の
論理素子配置処理方法において用いるグループ定義カー
ドの説明図である。
論理素子配置処理方法において用いるグループ定義カー
ドの説明図である。
【図7】論理素子群の説明図である。
【図8】本発明の一実施の形態による半導体集積回路の
論理素子配置処理方法において指定される領域の説明図
である。
論理素子配置処理方法において指定される領域の説明図
である。
【図9】本発明の一実施の形態による半導体集積回路の
論理素子配置処理方法において用いる配置指示定義カー
ドの説明図である。
論理素子配置処理方法において用いる配置指示定義カー
ドの説明図である。
【図10】本発明の一実施の形態による半導体集積回路
の論理素子配置処理方法における論理素子群の配置処理
を示すフローチャートである。
の論理素子配置処理方法における論理素子群の配置処理
を示すフローチャートである。
【図11】本発明の一実施の形態による半導体集積回路
の論理素子配置処理方法において用いる座標テーブルの
構成図である。
の論理素子配置処理方法において用いる座標テーブルの
構成図である。
【図12】本発明の一実施の形態による半導体集積回路
の論理素子配置処理方法において用いる分割順序テーブ
ルの構成図である。
の論理素子配置処理方法において用いる分割順序テーブ
ルの構成図である。
【図13】本発明の一実施の形態による半導体集積回路
の論理素子配置処理方法における論理素子群の配置処理
を示すフローチャートである。
の論理素子配置処理方法における論理素子群の配置処理
を示すフローチャートである。
【図14】本発明の一実施の形態による半導体集積回路
の論理素子配置処理方法における論理素子群の配置処理
において用いる分割領域テーブルの構成図である。
の論理素子配置処理方法における論理素子群の配置処理
において用いる分割領域テーブルの構成図である。
110…配置位置指示処理部 120…論理素子(群)配置処理部 122…分割線決定処理部 124…割付け処理部 126…再分割処理部 Blo.A,Blo.B,Blo.C,Blo.D…論
理ブロック Gr.B…論理素子グループ Cell C,Cell D,Cell E…論理素子
理ブロック Gr.B…論理素子グループ Cell C,Cell D,Cell E…論理素子
───────────────────────────────────────────────────── フロントページの続き (72)発明者 徳山 弘毅 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 (72)発明者 檜山 徹 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 (72)発明者 石井 建基 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内
Claims (5)
- 【請求項1】 論理ブロック単位に論理分割して階層的
に論理設計されている論理素子群の各論理素子を、半導
体集積回路の基板上に配置する半導体集積回路の論理素
子配置処理方法において、 上記半導体集積回路の基板上を領域分割し、この分割さ
れた領域の中の特定の領域に、論理素子もしくは論理ブ
ロックからなる論理素子群の中の特定の論理素子群を対
応づけて配置位置を指示し、 次に、この配置位置の指示に基づいて、上記特定の論理
素子群を上記基板上に配置し、さらに、他の論理素子を
上記基板上に配置することを特徴とする半導体集積回路
の論理素子配置処理方法。 - 【請求項2】 請求項1記載の半導体集積回路の論理素
子配置処理方法において、 上記領域分割は、上記基板平面上の位置を記述する任意
の2次元座標系において、領域を分割する境界線の座
標,領域を分割する個数若しくは領域を分割する座標幅
に基づいてなされることを特徴とする半導体集積回路の
論理素子配置処理方法。 - 【請求項3】 請求項1記載の半導体集積回路の論理素
子配置処理方法において、 上記領域分割は、分割前の全領域,分割された領域に対
して、さらに、階層的若しくは多重的に繰り返しなされ
ることを特徴とする半導体集積回路の論理素子配置処理
方法。 - 【請求項4】 請求項3記載の半導体集積回路の論理素
子配置処理方法において、 上記配置位置の指示は、上記階層的な領域分割により生
成された親子関係を持つ分割領域と、論理的に親子関係
を持つ論理素子と論理素子群とを、それぞれ対応づけて
行うことを特徴とする半導体集積回路の論理素子配置処
理方法。 - 【請求項5】 請求項1記載の半導体集積回路の論理素
子配置処理方法において、 上記基板上への論理素子群の配置は、上記配置位置の指
示の際に使用する領域を分割する分割線を基準として行
われることを特徴とする半導体集積回路の論理素子配置
処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8087761A JPH09283629A (ja) | 1996-04-10 | 1996-04-10 | 半導体集積回路の論理素子配置処理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8087761A JPH09283629A (ja) | 1996-04-10 | 1996-04-10 | 半導体集積回路の論理素子配置処理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09283629A true JPH09283629A (ja) | 1997-10-31 |
Family
ID=13923942
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8087761A Pending JPH09283629A (ja) | 1996-04-10 | 1996-04-10 | 半導体集積回路の論理素子配置処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09283629A (ja) |
-
1996
- 1996-04-10 JP JP8087761A patent/JPH09283629A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6035106A (en) | Method and system for maintaining hierarchy throughout the integrated circuit design process | |
| Sait et al. | VLSI physical design automation: theory and practice | |
| US5251147A (en) | Minimizing the interconnection cost of electronically linked objects | |
| US5638293A (en) | Optimal pad location method for microelectronic circuit cell placement | |
| EP0789311A2 (en) | System and method for emulating memory | |
| US6966045B2 (en) | Method and computer program product for estimating wire loads | |
| US6336209B1 (en) | Information processing system that processes portions of an application program using programmable logic circuits | |
| US5113352A (en) | Integrating the logical and physical design of electronically linked objects | |
| US5550714A (en) | Schematic generator and schematic generating method | |
| WO2003038689A1 (en) | Scalable, partitioning integrated circuit layout system | |
| JPH04241072A (ja) | 配線経路探索装置及び配線経路探索方法 | |
| US6920624B2 (en) | Methodology of creating an object database from a Gerber file | |
| Hong et al. | Wire-routing machines—New tools for VLSI physical design | |
| US6532578B2 (en) | Method of configuring integrated circuits using greedy algorithm for partitioning of N points in P isothetic rectangles | |
| JPH03206563A (ja) | 階層論理分割方法及び階層論理処理装置 | |
| US6000038A (en) | Parallel processing of Integrated circuit pin arrival times | |
| JPH09283629A (ja) | 半導体集積回路の論理素子配置処理方法 | |
| KR100491773B1 (ko) | 그래픽처리시스템 | |
| US6189129B1 (en) | Figure operation of layout for high speed processing | |
| US7397256B2 (en) | Automatic design method for semiconductor device | |
| Spiers et al. | A high performance routing engine | |
| JPH0645446A (ja) | 配置配線方法 | |
| Tanomaru et al. | An evolutionary method for automatic wire routing | |
| EP0285264A2 (en) | A method of placing blocks on a carrier | |
| JPH03149603A (ja) | 自動組立機の部品実装順序決定処理方法 |