JP4262660B2 - シーケンス・ペア作成装置及びシーケンス・ペア作成方法 - Google Patents

シーケンス・ペア作成装置及びシーケンス・ペア作成方法 Download PDF

Info

Publication number
JP4262660B2
JP4262660B2 JP2004284515A JP2004284515A JP4262660B2 JP 4262660 B2 JP4262660 B2 JP 4262660B2 JP 2004284515 A JP2004284515 A JP 2004284515A JP 2004284515 A JP2004284515 A JP 2004284515A JP 4262660 B2 JP4262660 B2 JP 4262660B2
Authority
JP
Japan
Prior art keywords
block
blocks
ord
belonging
binary
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.)
Expired - Fee Related
Application number
JP2004284515A
Other languages
English (en)
Other versions
JP2006099416A (ja
Inventor
繁寿 中武
真裕 川北
隆夫 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004284515A priority Critical patent/JP4262660B2/ja
Publication of JP2006099416A publication Critical patent/JP2006099416A/ja
Application granted granted Critical
Publication of JP4262660B2 publication Critical patent/JP4262660B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、任意のサイズの矩形モジュールを重なりなくチップに配置する矩形パッキングを最適化する一方法であるシーケンス・ペア法で使用されるシーケンス・ペアを作成する技術に関する。
VLSIレイアウト設計において、最初の最も重要な設計過程はモジュールの配置(placement)である。VLSIのチップ上に回路ブロック(以下、単に「ブロック」という。)単位でモジュールを置く位置を指定する設計過程はフロアプラン(floorplan)と呼ばれる。フロアプランにおいては、ブロックを可能な限り小さい領域に納めることにより、チップ内における信号遅延を一定限度に納め回路の高速化が可能となり、またVLSIの小型化、製造コストの低減等も可能となる。このように、チップ配置を最適化してチップ面積を圧縮することを、コンパクションという。
任意サイズの矩形ブロックを幾つか与え、それらを最小の矩形境界の中にブロック同士が互いに重なり合わないように配置する問題は、矩形パッキング問題(rectangle packing problem:以下、「RP」という。)として知られている。高さと幅が実数で与えられたm個の矩形ブロックの集合をMとする。Mの「パッキング(packing)」とは、各ブロックの重なりのない配置をいう。パッキングの最小の矩形境界のことを「チップ(chip)」と呼ぶ。RPとは、チップの面積が最小となるMのパッキングを見つける問題である。また、「フロアプラン」とは、チップCを、高々1つのブロックが含まれる部屋(room)と呼ばれる矩形領域に分割することであると定義される。
フロアプランの本質は、このRPを解くことにある。しかし、VLSIレイアウト設計では、配置すべきブロックの個数が多いため、人手でブロック配置を行うと必ずしも最適な配置が求まらず、しかも時間がかかる。従って、VLSIレイアウト設計のフロアプランを行うCAD装置等においては、RPを効率よく解くアルゴリズムが必要とされる。
ところで、RPはNP困難(NP-hard)であることが知られている。しかも、各ブロックの高さと幅は連続的な実数値を採るため、RPは単純な組み合わせ最適化問題でもない。従って、RPを解く場合、通常は組み合わせ探索(combinational search)のような反復的なアプローチが採られる。
組み合わせ探索においては、構造を規定する符号の集合である解空間(solution space)を定義する。解空間に属するある符号に対してパッキングが存在する場合、その符号は実行可能(feasible)であるという。実行可能な各符号の評価は、その符号に対応するパッキングのチップ面積を評価することによって行われる。組み合わせ探索では、パッキングが最もよい評価となる実現可能な符号を探索する。
組み合わせ探索によってすべての符号を探索すれば、最適なパッキングを求めることができる。しかしながら、ブロックの数が多数ある場合には、探索範囲は極めて大きくなり現実的ではない。従って、通常は発見的探索(heuristic search)法が採られる。発見的探索法を採る場合、効率的な探索を行うためには、どのような解空間を選択するかが重要となる。効率的な探索を行うためには、解空間はP許容(P-admissible)であることが必要とされる。P許容な解空間とは、以下の4つの条件を満たす解空間をいう:(1)解空間は有限であること。(2)すべての解は実行可能であること。(3)各符号の評価は多項式時間で可能であり、従って、各符号に対応するパッキングも実現できること。(4)RPの最適解となるパッキングは、解空間における最もよい評価の符号に一致すること。
P許容な解空間を与える極めて効率的な解空間として、各符号をブロック名の順列の対であるシーケンス・ペア(sequence-pair)で表したものが知られている(特許文献1,2,非特許文献1,2参照)。この解空間の特徴は、以下の通りである:(1)ブロック名の順列の対だけで表されるので、組み合わせ数は(n!)である。(2)どのようなパッキングでも表現可能であり、勿論、最小面積解も表現可能であることが証明されている。(3)すべてのシーケンス・ペアがパッキングを表す(実行可能な符号のみを含む)。以下、フロアプランナによるシーケンス・ペアを用いたRPの解法について概説する。
シーケンス・ペアを用いた方法(以下、「シーケンス・ペア法」という。)では、まず初期条件として、最適化を行う前のブロック配置(パッキング)が与えられる。この初期のブロック配置は、CAD装置等により、設計者が初期レイアウトを作成しこの初期レイアウト内の回路素子や配線を矩形近似する等によって与えられる。そして、フロアプランナは、まず与えられた初期のブロック配置からシーケンス・ペアを抽出する。次に、フロアプランナは、抽出された初期のシーケンス・ペアを初期状態として、発見的探索法(例えば、焼きなまし法(Simulated Annealing method)等)により組み合わせ探索を行い、最適なシーケンス・ペアを探索する。このとき、シーケンス・ペアの最適性を判定する評価値として、各シーケンス・ペアに対応するチップ面積が用いられる。そして、最後に、フロアプランナは、評価値が最適となるシーケンス・ペアに対応するパッキングを、最適なパッキングとして出力する。
〔1〕パッキングからシーケンス・ペアの抽出
まず、パッキングからシーケンス・ペアの抽出を説明する(非特許文献1参照)。
チップC上のパッキングをΠと記す。上述のように、フロアプランとは、チップCを、高々1つのブロックが含まれる部屋に分割することをいう。1つのブロックも含まれない部屋は「空(empty)である」という。チップCの4つの辺を含む各部屋の境界を構成する線分を切断線分(cutting-seg)という。図12は6つのブロックのあるパッキングΠのフロアプランを表したものである。a〜dがブロックであり、点線が切断線分を表している。
パッキングΠにおいて、空でない各部屋の中心にペブル(pebble)pを置く。ペブルpを、その部屋の一辺をなす切断線分にぶつかるまで右に移動させる。次に、ペブルpが切断線分にぶつかると、今度は当該切断線分の上方でT字状に直交する切断線分にぶつかるまで、ペブルpを上向きに移動させる。次に、ペブルpが切断線分にぶつかると、今度は当該切断線分の右方でT字状に直交する切断線分にぶつかるまで、ペブルpを右向きに移動させる。以下同様に、チップの右上隅にペブルpが到達するまで、ペブルpを上、右、上、…のように移動させる。このようにして得られるペブルpの軌跡を「右上軌跡(right-up locus)」という。同様に、「上左軌跡(up-left locus)」、「左下軌跡(left-down locus)」、「下右軌跡(down-right locus)」を定義する。図13は、図12のパッキングΠにおいて、ブロックdに対する右上軌跡、上左軌跡、左下軌跡、及び下右軌跡を表す。以下では、ブロックxの右上軌跡、上左軌跡、左下軌跡、及び下右軌跡を、それぞれRU(x),UL(x),LD(x),DR(x)と記す。
あるブロックxの左下軌跡と右上軌跡との和を「正軌跡(positive locus)」という。また、ブロックxの上左軌跡と下右軌跡との和を「負軌跡(negative locus)」という。パッキングΠが与えられると、1つのブロックに対して1つの正軌跡及び負軌跡が一意的に定まる。従って、以下ではそれぞれの正軌跡と負軌跡は、ブロック名により参照する。図14は、図12のパッキングΠに対する正軌跡(a)及び負軌跡(b)を表した図である。
このとき、次の定理が成り立つことが証明できる:『(定理1)すべての正軌跡は互いに交差しない。同様に、すべての負軌跡は互いに交差しない。』この定理1により、m本の正軌跡、負軌跡には、それぞれ線形順序関係があることが分かる。そこで、正軌跡はチップCの左上から右下に向けて順序づけることとし、負軌跡はチップCの左下から右上に向けて順序づけることとする。正軌跡、負軌跡の順列を、それぞれP,Mと記す。各軌跡は、ブロック名によって一意的に特定される。従って、P,Mはモジュール名の順列として表すことができる。このようにして得られるモジュール名の順列の対(P,M)を「シーケンス・ペア」と定義する。例えば、図14においては、順列P,Mは、それぞれ、P=(abdecf),M=(cbfade)と表される。
以上のようなパッキングΠをシーケンス・ペアに対応させる操作を「グリッティング(gridding)」といい、Gridding(Π)と記す。Gridding(Π)=(P,M)である。
ブロック集合BのパッキングΠに対応するシーケンス・ペアが与えられた場合、ブロック集合Bに属する任意の2つのブロックx,x’に対して、以下の4つのBの部分集合Maa(x),Mbb(x),Mba(x),Mab(x)が固有に定まる:
Figure 0004262660
例えば、図12のパッキングから得られるシーケンス・ペア(P,M)=(abdecf,cbfade)に対して、ブロックbに対する4つの部分集合は、Maa(b)={d,e,f},Mbb(b)=φ,Mba(b)={a},Mab(b)={c}である。また、各ブロック間には、次のような双対関係(dual relation)が成立する:
Figure 0004262660
ブロックxの左辺がブロックx’の右辺よりも右であれば、xはx’の「右に」あるという。同様に、2つのブロック間の「左に」、「上に」、「下に」の関係も定義される。このとき、次の定理が成り立つことが証明されている:『(定理2)Gridding(Π)=(P,M)とする。Πにおいて、x’∈Maa(x)ならばx’はxの右にある。同様に、x’∈Mbb(x)ならばx’はxの左にある。x’∈Mab(x)ならばx’はxの下にある。x’∈Mba(x)ならばx’はxの上にある。』
〔2〕シーケンス・ペアからパッキングの生成
シーケンス・ペアが抽出されると、このシーケンス・ペアにおいてブロックの並べ替えを行うことによって、最適なパッキングを探索する。探索は、焼きなまし法等の発見的方法を使用するのが効率的である。この際、シーケンス・ペアの並べ替えにより得られる各パッキングの評価を行う場合、シーケンス・ペアからパッキングを生成する必要がある。シーケンス・ペアからパッキングを生成する方法については、非特許文献1や特許文献1などで述べられているが、簡単に概説しておく。
まず、シーケンス・ペア(P,M)から次のような幾何学的制約が導かれる:
(1)『任意の2つのブロックx,x’に対して、x’∈Maa(x)ならば、Πにおいてx’はxの右、x’∈Mbb(x)ならば、x’はxの左になければならない。』
(2)『任意の2つのブロックx,x’に対して、x’∈Mab(x)ならば、x’はxの下、x’∈Mba(x)ならば、x’はxの上になければならない。』
かかる幾何学的制約を満たすΠを(P,M)パッキングと呼ぶ。非特許文献1においては、すべてのシーケンス・ペア(P,M)に対して(P,M)パッキングが存在することが証明されている。図15に、(P,M)=(abdecf,cbfade)に対応する(P,M)パッキングを示す。
次に、ブロック集合Bの(P,M)パッキングのうち、チップ面積が最小となるパッキングを求める方法を説明する。このようなパッキングを(P,M)-optimalと呼ぶ。(P,M)-optimalは、接点に重みづけがされた有向無閉路グラフに対して、最長路アルゴリズムを適用することによってO(m)回の計算で得られる。
まず、シーケンス・ペア(P,M)の幾何学的制約(1)から、水平制約グラフGH=(V,E)を次のように定義する:
Figure 0004262660
ここで、V,V,Vは節点の集合、E,E,Eは枝の集合である。s,tは、それぞれ、涌出点(source)及び吸収点(sink)を表し、iはそれ以外の水平制約グラフGHの節点を表す。ш(x)は節点xの重みを表す。w(xi)はブロックxiの幅を表す。
垂直制約グラフGVは、幾何学的制約(2)の上下の位置関係と各ブロックx(∈B)の高さh(x)に基づいて同様に定義する。図16は(P,M)=(abdecf,cbfade)に対応する(P,M)パッキングの(a)水平制約グラフ、及び(b)垂直制約グラフである。何れのグラフも有向閉路を含まない。また、各ブロックの対(xi,xj)に対して、GH又はGVの何れか一方に辺が存在し、両方に辺が存在することはない。従って、各ブロックのx座標とy座標は、配置の制約を満たしつつ独立に決定することができ、その結果、重なりのないブロック配置が得られる。各モジュールxi(∈B)のx座標及びy座標は、それぞれ、グラフGH,GV内の涌出点sと節点iとの間の最長路(路上の節点の重みの和が最大の路)における節点i以外の節点の重みの和として決定される。同様に、チップの高さと幅は、それぞれ、グラフGH,GV内の涌出点sと吸収点tとの間の最長路における節点の重みの和として決定される。チップの幅と高さとは独立に最小化することができ、その結果得られるパッキングは(P,M)-optimalである。図17は最長路計算の結果得られたブロック配置の一例を示している。
特開平9−108934号公報 特開平9−108933号公報 H.Murata, K.Fujiyoshi, S.Nakatake, and Y.Kajitani, "VLSI module placement based on rectangle-packing by the sequence pair," IEEE Transaction on Computer Aided Design of Integrated Circuits and Systems, Vol.15, No.12, pp.1518-1524, 1996. Y.Kubo, S.Nakatake, Y.Kajitani, and M.Kawakita, "Explicit Expression and Simultaneous Optimization of Placement and Routing for Analog IC Layouts," Proceedings of IEEE/ACM Asia South Pacific Design Automation Conference 2002, pp.467-472, 2002.
上述のように、従来のVLSIのコンパクションにおける幾何学的制約の抽出は、基本的には、初期レイアウトとして与えられた回路素子や配線を矩形近似し、それらの矩形状のブロックの上下左右の位置関係を抽出することによりなされる。この場合、ブロック同士に重なりがある場合には、ブロックの形状と初期の位置座標から判断し、初期レイアウト上での各ブロックのおよその位置関係を維持するように、各ブロックの上下左右の位置関係を抽出して初期のシーケンス・ペアを決定する必要がある。この決定次第では、配線の結線を切断してしまったり、回路性能を著しく低下させてしまったりする場合がある。
また、レイアウト設計においては、設計規則により各ブロック間に所定のクリアランスをとることが要求される。かかる設計規則による制約が課せられた場合、初期のシーケンス・ペアを決定する際にも設計規則を考慮して決定する必要が生じる。
更に、回路性能を向上させるため、一連の回路素子を直線上に配置したり、幾つかの回路素子を対称に配置したりするように要求される場合も多い。従って、この場合、初期レイアウトにおける幾つかのブロックの直線的配列の制約や対称配置の制約を保存するように、初期のシーケンス・ペアを決定する必要がある。
しかしながら、上述のように、従来の方法では、初期のパッキングからシーケンス・ペアの抽出する際に、各ブロック間の具体的な配置制約に関する情報は捨象され、上に述べた各種の制約は考慮されない。従って、必ずしも設計規則の制約や回路性能向上を図るための制約を満たすコンパクションができないという問題がある。
そこで、本発明の目的は、与えられたブロック配置から、初期レイアウトにおけるブロックの配置上の制約を反映したシーケンス・ペアを抽出することが可能なシーケンス・ペア作成技術を提供することにある。
本発明に係るシーケンス・ペア作成装置の第1の構成は、幅及び高さが与えられたN(≧2)個の矩形のブロックの集合(以下、「ブロック集合」という。)Bに属する各ブロックbi(i=1,…,N)の幅w(bi)及び高さh(bi)の情報(以下、「サイズ情報」という。)、並びに前記ブロック集合Bに属するすべてのブロックをチップ上に配置する場合の各ブロックbi(i=1,…,N)の位置座標(x(bi),y(bi))からなるブロック配置情報を記憶するブロック配置記憶手段を有し、それぞれが独立な前記ブロック集合Bに属するブロックbi(i=1,…,N)の順列P及びMの対であって、前記ブロック集合Bに属するすべてのブロックをチップ上に配置する場合の各ブロック間の位置関係を特定するシーケンス・ペア(P,M)の作成を行うシーケンス・ペア作成装置であって、前記順列P,Mにおける2つのブロックbi,bj(∈B)間の順序関係であって、前記ブロック配置情報及びサイズ情報から抽出され又は外部入力により指定される各ブロック間の配置制約から導出される関係である二項関係pord(bi,bj),mord(bi,bj)を、前記ブロック配置情報及びサイズ情報に従って決定する二項関係決定手段と、前記二項関係決定手段により決定されるすべての二項関係pord(bi,bj),mord(bi,bj)(bi,bj∈B)を満たすように、前記ブロック配置情報及びサイズ情報に基づいて前記順列P,Mにおけるブロックの全順序関係を決定する全順序関係決定手段とを備えていることを特徴とする。
この構成により、二項関係決定手段が、ブロック配置情報及びサイズ情報から抽出され又は外部入力により指定される各ブロック間の配置制約を、2つのブロック間の二項関係pord(bi,bj),mord(bi,bj)として抽出する。全順序関係決定手段は、すべての二項関係pord(bi,bj),mord(bi,bj)(bi,bj∈B)を満たすように、順列P,Mにおけるブロックの全順序関係を決定する。従って、これによって得られるシーケンス・ペア(P,M)は、上記の各ブロック間の配置制約が取り込まれたものとなる。
従って、各ブロック間の配置制約が取り込まれたシーケンス・ペア(P,M)に基づいて、チップ上への各ブロックのパッキングを行えば、配置制約を充足する最適パッキングを行うことが可能となる。
この場合、シーケンス・ペア(P,M)の作成時に各ブロック間の配置制約を取り込むのではなく、一旦、各ブロック間の配置制約を2つのブロック間の二項関係pord(bi,bj),mord(bi,bj)として抽象化して抽出し、抽出された二項関係pord(bi,bj),mord(bi,bj)を各順列P,Mの全順序決定時に取り込む。従って、順列P,Mへの各ブロック間の配置制約の取り込みが容易であり、少ない計算量で実行することが可能となる。
本発明に係るシーケンス・ペア作成装置の第2の構成は、前記第1の構成において、前記二項関係決定手段は、前記ブロック配置記憶手段に記憶された2つのブロックbi,bj(∈B)の位置座標(x(bi),y(bi)),(x(bj),y(bj))、幅w(bi),w(bj)、及び高さh(bi),h(bj)を参照することにより、ブロックbi及びブロックbjの垂直方向(以下、「y方向」という。)の辺のy座標に0以上の所定幅のクリアランスがなく、且つブロックbi及びブロックbjの水平方向(以下、「x方向」という。)に0以上の所定幅のクリアランスがある場合、ブロックbi,bjの位置座標の左右関係に従ってブロックbiとブロックbjとの間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定し、ブロックbi及びブロックbjのx方向の辺のx座標に0以上の所定幅のクリアランスがなく、且つブロックbi及びブロックbjのy方向に0以上の所定幅のクリアランスがある場合、ブロックbi,bjの位置座標の上下関係に従ってブロックbiとブロックbjとの間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する離反制約抽出手段を備えていることを特徴とする。ここで、「クリアランス」とは、許容される二つのブロック間の距離の最小値をいう。
この構成によれば、離反制約抽出手段は、2つのブロックbi,bj間で、ブロック配置記憶手段に記憶されたブロック配置情報及びサイズ情報において、x方向のクリアランスがありy方向のクリアランスがない場合には、ブロックbi,bjは左右の順序関係があると判断する。そして、ブロックbi,bjの位置座標の左右関係に従って二項関係pord(bi,bj),mord(bi,bj)を決定する。
一方、離反制約抽出手段は、2つのブロックbi,bj間で、ブロック配置記憶手段に記憶されたブロック配置情報及びサイズ情報において、y方向のクリアランスがありx方向のクリアランスがない場合には、ブロックbi,bjは上下の順序関係があると判断する。そして、ブロックbi,bjの位置座標の上下関係に従って二項関係pord(bi,bj),mord(bi,bj)を決定する。
これにより、ブロック配置記憶手段に記憶されたブロック配置情報及びサイズ情報において、設計基準を満たして配置されているブロックの順序関係を抽出し、その順序関係をシーケンス・ペアに反映させることが可能となる。
本発明に係るシーケンス・ペア作成装置の第3の構成は、前記第1の構成において、前記二項関係決定手段は、前記ブロック配置記憶手段に記憶されたブロック集合Bの部分集合Bk(⊆B)に属する各ブロックbi(∈Bk)に対して、それらのブロックの左辺又は右辺若しくは代表点を垂直直線上に揃える配置制約(以下、「垂直共線制約(vertical collinear constraint)」という。)が課せられている場合、前記各ブロックbi(∈Bk)の位置座標の上下関係に従って、前記部分集合Bkに属する2つのブロックbi,bj間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する垂直共線制約抽出手段を備えていることを特徴とする。
この構成によれば、垂直共線制約抽出手段は、ブロック配置記憶手段に記憶されたブロック配置情報及びサイズ情報から抽出され、又は設計者によって外部から入力される垂直共線制約に従って、二項関係pord(bi,bj),mord(bi,bj)を決定する。全順序関係決定手段は、この二項関係を満たす順列P,Mの全順序関係を決定する。これにより、初期のブロック配置で与えられた垂直共線制約、又は設計者によって外部入力により与えられた垂直共線制約をシーケンス・ペアに反映させることが可能となる。
ここで、ブロックの「代表点」とは、そのブロックの位置を代表する点である。代表点は、通常はブロックの重心点とされるが、それに限られるものではない。
本発明に係るシーケンス・ペア作成装置の第4の構成は、前記第1の構成において、前記二項関係決定手段は、前記ブロック配置記憶手段に記憶されたブロック集合Bの部分集合Bkに属する各ブロックに対して、それらのブロックの上辺又は下辺若しくは代表点を水平直線上に揃える配置制約(以下、「水平共線制約(horizontal collinear constraint)」という。)が課せられている場合、前記部分集合Bkに属する各ブロックbi(∈Bk)の位置座標の左右関係に従って、前記部分集合Bkに属する2つのブロックbi,bj間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する水平共線制約抽出手段を備えていることを特徴とする。
この構成によれば、垂直共線制約抽出手段は、ブロック配置記憶手段に記憶されたブロック配置情報及びサイズ情報から抽出され、又は設計者によって外部から入力される水平共線制約に従って、二項関係pord(bi,bj),mord(bi,bj)を決定する。全順序関係決定手段は、この二項関係を満たす順列P,Mの全順序関係を決定する。これにより、初期のブロック配置で与えられた水平共線制約、又は設計者によって外部入力により与えられた水平共線制約をシーケンス・ペアに反映させることが可能となる。
本発明に係るシーケンス・ペア作成装置の第5の構成は、前記第1の構成において、前記二項関係決定手段は、前記ブロック配置記憶手段に記憶されたブロック集合Bに属する3つのブロックbi,bj,bkに対して、ブロックbi及びブロックbkをブロックbjに対して水平方向の対称位置に配置する制約(以下、「水平対称制約(horizontal symmetrical constraint)」という。)が課せられている場合、ブロックbi及びブロックbkについて、両ブロックの位置座標の左右関係に従って、順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する水平対称制約抽出手段を備えていることを特徴とする。
この構成によれば、垂直共線制約抽出手段は、ブロック配置記憶手段に記憶されたブロック配置情報及びサイズ情報から抽出され、又は設計者によって外部から入力される水平対称制約に従って、二項関係pord(bi,bj),mord(bi,bj)を決定する。全順序関係決定手段は、この二項関係を満たす順列P,Mの全順序関係を決定する。これにより、初期のブロック配置で与えられた水平対称制約、又は設計者によって外部入力により与えられた水平対称制約をシーケンス・ペアに反映させることが可能となる。
本発明に係るシーケンス・ペア作成装置の第6の構成は、前記第1の構成において、前記二項関係決定手段は、前記ブロック配置記憶手段に記憶されたブロック集合Bに属する3つのブロックbi,bj,bkに対して、ブロックbi及びブロックbkをブロックbjに対して垂直方向の対称位置に配置する制約(以下、「垂直対称制約(vertical symmetrical constraint)」という。)が課せられている場合、ブロックbi及びブロックbkについて、両ブロックの位置座標の上下関係に従って、順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する垂直対称制約抽出手段を備えていることを特徴とする。
この構成によれば、垂直共線制約抽出手段は、ブロック配置記憶手段に記憶されたブロック配置情報及びサイズ情報から抽出され、又は設計者によって外部から入力される垂直対称制約に従って、二項関係pord(bi,bj),mord(bi,bj)を決定する。全順序関係決定手段は、この二項関係を満たす順列P,Mの全順序関係を決定する。これにより、初期のブロック配置で与えられた垂直対称制約、又は設計者によって外部入力により与えられた垂直対称制約をシーケンス・ペアに反映させることが可能となる。
本発明に係るシーケンス・ペア作成装置の第7の構成は、前記第1乃至6の何れか一の構成において、前記二項関係決定手段は、前記ブロック集合Bに属する3つのブロックbi,bj,bkについて、二項関係pord(bi,bj),pord(bj,bk)が決定され且つ二項関係pord(bi,bk)が未決定の場合、二項関係pord(bi,bj),pord(bj,bk)から二項関係pord(bi,bk)を推移的に決定し、二項関係mord(bi,bj),mord(bj,bk)が決定され且つ二項関係mord(bi,bk)が未決定の場合、二項関係mord(bi,bj),mord(bj,bk)から二項関係mord(bi,bk)を推移的に決定する二項関係推移決定手段を備えていることを特徴とする。
この構成により、離反制約、水平共線制約、垂直共線制約、水平対称制約、垂直対称制約等の各種制約により二項関係pord(bi,bj),pord(bj,bk)(又はmord(bi,bj),mord(bj,bk))が与えられた場合、二項関係推移決定手段は、二項関係pord(bi,bk)(又はmord(bi,bk))を推移的に無矛盾となるように決定する。これにより、全順序関係決定手段は、ブロックbi,bj,bk間の順序関係が無矛盾となるように、順列P,Mの全順序関係を決定することができる。
本発明に係るシーケンス・ペア作成装置の第8の構成は、前記第1乃至7の何れか一の構成において、前記二項関係決定手段は、前記ブロック集合Bに属する2つのブロックbi,bjについて、ブロックbiがブロックbjの左にある場合には順列P,Mにおける二項関係をpord(bi,bj)=1,mord(bi,bj)=1に決定し、ブロックbiがブロックbjの下にある場合には順列P,Mにおける二項関係をpord(bi,bj)=0,mord(bi,bj)=1に決定するものであり、前記全順序関係決定手段は、順列Pにおける順序が未決定のブロックの集合Bn(⊆B)に属するブロックbi(∈Bn)について、集合Bnに属する当該ブロックbi以外のすべてのブロックbj(∈Bn)との間の二項関係pord(bi,bj)が1でないものを抽出し、抽出されたブロックの集合を集合Bs(⊆Bn)とし、集合Bsに属するブロックbiのうち、集合Bsに属する当該ブロックbi以外のすべてのブロックbj(∈Bs)に対して、当該ブロックbiの右辺がブロックbjの左辺よりも左又は共線位置にあるもの、若しくは当該ブロックbiの下辺がブロックbjの上辺よりも上にあるものを選択し、選択された当該ブロックbiを順列Pに左から詰めて並べるという操作を繰り返すことにより、順列Pにおける各ブロックの順序を、左から順次決定するP順序決定手段と、順列Mにおける順序が未決定のブロックの集合Bm(⊆B)に属するブロックbi(∈Bm)について、集合Bmに属する当該ブロックbi以外のすべてのブロックbj(∈Bm)との間の二項関係mord(bi,bj)が1でないものを抽出し、抽出されたブロックの集合を集合Bt(⊆Bm)とし、集合Btに属するブロックbiのうち、集合Btに属する当該ブロックbi以外のすべてのブロックbj(∈Bt)に対して、当該ブロックbiの右辺がブロックbjの左辺よりも左又は共線位置にあるもの、若しくは当該ブロックbiの下辺がブロックbjの上辺よりも上にあるものを選択し、選択された当該ブロックbiを順列Mに左から詰めて並べるという操作を繰り返すことにより、順列Mにおける各ブロックの順序を、左から順次決定するM順序決定手段とを備えていることを特徴とする。
この構成により、全順序関係決定手段は、二項関係pord(bi,bj),mord(bi,bj)より、順列P,Mにおけるブロックbi,bjの順序関係を一意的決定することができる。従って、離反制約、水平共線制約、垂直共線制約、水平対称制約、垂直対称制約等の各種制約をシーケンス・ペアに反映させることが可能となる。
本発明に係るシーケンス・ペア作成装置の第9の構成は、前記第1乃至8の何れか一の構成において、前記ブロック配置記憶手段に記憶された前記ブロック集合Bに属するブロックに重なりがある場合、重なった2つのブロックの何れか一方又は両方の幅又は高さを短縮することにより、ブロック間の重なりのないブロック配置情報及びサイズ情報を生成する重なり除去手段を備え、前記全順序関係決定手段は、前記二項関係決定手段により決定された二項関係pord(bi,bj),mord(bi,bj)を満たすように、前記重なり除去手段により生成されたブロック間の重なりのないブロック配置情報及びサイズ情報に従って前記順列P,Mにおけるブロックの全順序関係を決定することを特徴とする。
この構成によれば、初期に与えられたブロック配置において、ブロック間に重なりがある場合、重なり除去手段がその重なりを除去する。そして、全順序関係決定手段は、重なりのないブロック配置を用いてシーケンス・ペアを生成する。これにより、ブロック同士の重なりによってブロック間の順序関係が決定できないという事態が生じることを回避することができる。
本発明に係るシーケンス・ペア作成方法の第1の構成は、形状が与えられたN(≧2)個の矩形のブロックの集合(以下、「ブロック集合」という。)Bに属する各ブロックbi(i=1,…,N)の幅w(bi)及び高さh(bi)の情報(以下、「サイズ情報」という。)、及び前記ブロック集合Bに属するすべてのブロックをチップ上に配置する場合の各ブロックbi(i=1,…,N)の位置座標(x(bi),y(bi))からなるブロック配置情報に基づき、前記ブロック集合Bに属するブロックbi(i=1,…,N)の順列P及びMの対であって、前記ブロック集合Bに属するすべてのブロックをチップ上に配置する場合の各ブロック間の位置関係を特定するシーケンス・ペア(P,M)の作成を行うシーケンス・ペア作成方法であって、前記順列P及びMにおける2つのブロックbi,bj(∈B)間の順序関係であって、前記ブロック配置情報及び各ブロックのサイズ情報から抽出され又は外部入力により指定される各ブロック間の配置制約から導出される関係である二項関係pord(bi,bj),mord(bi,bj)を、前記ブロック配置情報及び各ブロックのサイズ情報に従って決定する二項関係決定ステップと、前記二項関係決定ステップで決定されるすべての二項関係pord(bi,bj),mord(bi,bj)(bi,bj∈B)を満たすように、前記ブロック配置情報及び各ブロックのサイズ情報に基づいて前記順列P及びMにおける各ブロックの全順序関係を決定する全順序関係決定ステップとを有することを特徴とする。
本発明に係るシーケンス・ペア作成方法の第2の構成は、前記第1の構成において、前記二項関係決定ステップにおいて、前記ブロック集合Bに属する2つのブロックbi,bj(∈B)の位置座標(x(bi),y(bi)),(x(bj),y(bj))、幅w(bi),w(bj)、及び高さh(bi),h(bj)を参照することにより、ブロックbi及びブロックbjの垂直方向(以下、「y方向」という。)の辺のy座標に0以上の所定幅のクリアランスがなく、且つブロックbi及びブロックbjの水平方向(以下、「x方向」という。)に0以上の所定幅のクリアランスがある場合、ブロックbi,bjの位置座標の左右関係に従ってブロックbiとブロックbjとの間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定し、ブロックbi及びブロックbjのx方向に0以上の所定幅のクリアランスがなく、且つブロックbi及びブロックbjのy方向に0以上の所定幅のクリアランスがある場合、ブロックbi,bjの位置座標の上下関係に従ってブロックbiとブロックbjとの間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する離反制約抽出ステップを有していることを特徴とする。
本発明に係るシーケンス・ペア作成方法の第3の構成は、前記第1の構成において、前記二項関係決定ステップにおいて、前記ブロック集合Bの部分集合Bk(⊆B)に属する各ブロックbi(∈Bk)に対して、それらのブロックの左辺又は右辺若しくは代表点を垂直直線上に揃える配置制約(以下、「垂直共線制約(vertical collinear constraint)」という。)が課せられている場合、前記各ブロックbi(∈Bk)の位置座標の上下関係に従って、前記部分集合Bkに属する2つのブロックbi,bj間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する垂直共線制約抽出ステップを有していることを特徴とする。
本発明に係るシーケンス・ペア作成方法の第4の構成は、前記第1の構成において、前記二項関係決定ステップにおいて、前記ブロック集合Bの部分集合Bkに属する各ブロックに対して、それらのブロックの上辺又は下辺若しくは代表点を水平直線上に揃える配置制約(以下、「水平共線制約(horizontal collinear constraint)」という。)が課せられている場合、前記部分集合Bkに属する各ブロックbi(∈Bk)の位置座標の左右関係に従って、前記部分集合Bkに属する2つのブロックbi,bj間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する水平共線制約抽出ステップを有していることを特徴とする。
本発明に係るシーケンス・ペア作成方法の第5の構成は、前記第1の構成において、前記二項関係決定ステップにおいて、前記ブロック集合Bに属する3つのブロックbi,bj,bkに対して、ブロックbi及びブロックbkをブロックbjに対して水平方向の対称位置に配置する制約(以下、「水平対称制約(horizontal symmetrical constraint)」という。)が課せられている場合、ブロックbi及びブロックbkについて、両ブロックの位置座標の左右関係に従って、順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する水平対称制約抽出ステップを有していることを特徴とする。
本発明に係るシーケンス・ペア作成方法の第6の構成は、前記第1の構成において、前記二項関係決定ステップにおいて、前記ブロック集合Bに属する3つのブロックbi,bj,bkに対して、ブロックbi及びブロックbkをブロックbjに対して垂直方向の対称位置に配置する制約(以下、「垂直対称制約(vertical symmetrical constraint)」という。)が課せられている場合、ブロックbi及びブロックbkについて、両ブロックの位置座標の上下関係に従って、順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する垂直対称制約抽出ステップを有していることを特徴とする。
本発明に係るシーケンス・ペア作成方法の第7の構成は、前記第1乃至6の何れか一の構成において、前記二項関係決定ステップにおいて、前記ブロック集合Bに属する3つのブロックbi,bj,bkについて、二項関係pord(bi,bj),pord(bj,bk)が決定され且つ二項関係pord(bi,bk)が未決定の場合、二項関係pord(bi,bj),pord(bj,bk)から二項関係pord(bi,bk)を推移的に決定し、二項関係mord(bi,bj),mord(bj,bk)が決定され且つ二項関係mord(bi,bk)が未決定の場合、二項関係mord(bi,bj),mord(bj,bk)から二項関係mord(bi,bk)を推移的に決定する二項関係推移決定ステップを有していることを特徴とする。
本発明に係るシーケンス・ペア作成方法の第8の構成は、前記第1乃至7の何れか一の構成において、前記二項関係決定ステップにおいては、前記ブロック集合Bに属する2つのブロックbi,bjについて、ブロックbiがブロックbjの左にある場合には順列P,Mにおける二項関係をpord(bi,bj)=1,mord(bi,bj)=1に決定し、ブロックbiがブロックbjの下にある場合には順列P,Mにおける二項関係をpord(bi,bj)=0,mord(bi,bj)=1に決定し、前記全順序関係決定ステップにおいて、順列Pにおける順序が未決定のブロックの集合Bn(⊆B)に属するブロックbi(∈Bn)について、集合Bnに属する当該ブロックbi以外のすべてのブロックbj(∈Bn)との間の二項関係pord(bi,bj)が1でないものを抽出し、抽出されたブロックの集合を集合Bs(⊆Bn)とし、集合Bsに属するブロックbiのうち、集合Bsに属する当該ブロックbi以外のすべてのブロックbj(∈Bs)に対して、当該ブロックbiの右辺がブロックbjの左辺よりも左又は共線位置にあるもの、若しくは当該ブロックbiの下辺がブロックbjの上辺よりも上にあるものを選択し、選択された当該ブロックbiを順列Pに左から詰めて並べるという操作を繰り返すことにより、順列Pにおける各ブロックの順序を、左から順次決定するP順序決定ステップと、順列Mにおける順序が未決定のブロックの集合Bm(⊆B)に属するブロックbi(∈Bm)について、集合Bmに属する当該ブロックbi以外のすべてのブロックbj(∈Bm)との間の二項関係mord(bi,bj)が1でないものを抽出し、抽出されたブロックの集合を集合Bt(⊆Bm)とし、集合Btに属するブロックbiのうち、集合Btに属する当該ブロックbi以外のすべてのブロックbj(∈Bt)に対して、当該ブロックbiの右辺がブロックbjの左辺よりも左又は共線位置にあるもの、若しくは当該ブロックbiの下辺がブロックbjの上辺よりも上にあるものを選択し、選択された当該ブロックbiを順列Mに左から詰めて並べるという操作を繰り返すことにより、順列Mにおける各ブロックの順序を、左から順次決定するM順序決定ステップとを備えていることを特徴とする。
本発明に係るシーケンス・ペア作成方法の第9の構成は、前記第1乃至8の何れか一の構成において、前記ブロック集合Bに属するブロックに重なりがある場合、重なった2つのブロックの何れか一方又は両方の幅又は高さを短縮することにより、ブロック間の重なりのないブロック配置情報及びサイズ情報を生成する重なり除去ステップを備え、前記全順序関係決定ステップにおいては、前記二項関係決定ステップにおいて決定された二項関係pord(bi,bj),mord(bi,bj)を満たすように、前記重なり除去ステップにおいて生成されたブロック間の重なりのないブロック配置情報及びサイズ情報に従って前記順列P,Mにおけるブロックの全順序関係を決定することを特徴とする。
本発明に係るプログラムは、前記第1乃至第9の構成のシーケンス・ペア作成方法をコンピュータに実行させることを特徴とする。
以上のように、本発明によれば、二項関係決定手段により各ブロック間の配置制約を2つのブロック間の二項関係pord(bi,bj),mord(bi,bj)として抽出し、全順序関係決定手段は、この二項関係pord(bi,bj),mord(bi,bj)をすべて満たすように各順列P,Mの全順序を決定する。これにより、少ない計算量で、各ブロック間の配置制約を取り込んだ順列P,Mを生成することが可能となる。
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
図1は、本発明の実施例1に係るシーケンス・ペア作成装置の構成を表す図である。シーケンス・ペア作成装置1は、入力部2、表示部3、中央演算装置4、ブロック配置記憶手段5、配置制約記憶手段6、二項関係記憶手段7、及びシーケンス・ペア記憶手段8を備えている。
入力部2は、設計者が初期のブロック配置情報やサイズ情報、各種制約に関する情報等を入力する部分である。表示部3は、ディスプレイやプリンタ等であり、ブロック配置情報やシーケンス・ペアの情報を出力する。中央演算装置4は、初期のブロック配置情報、サイズ情報、及び各種制約の情報から、シーケンス・ペアを作成する演算処理を行う。
ブロック配置記憶手段5は、入力部2から入力されるブロック配置情報及びサイズ情報を一時的に記憶する。以下では、ブロック配置記憶手段5に保存されるブロック配置情報に含まれるブロックの集合をBと記す。配置制約記憶手段6は、入力部2から各種制約の情報が入力された場合にはそれを記憶する。二項関係記憶手段7は、中央演算装置4によりブロック配置情報及びサイズ情報から各種制約に基づいて決定されるブロック間の二項関係の情報を記憶する。シーケンス・ペア記憶手段8は、中央演算装置4においてブロック配置情報及びサイズ情報から抽出されるシーケンス・ペアを記憶する。
中央演算装置4は、二項関係決定手段9、重なり除去手段10、及び全順序関係決定手段11を備えている。これらは、入力部2からプログラムをロードすることによって機能的モジュールとして構成される。
二項関係決定手段9は、ブロック配置記憶手段5に記憶されたブロック配置に含まれる各ブロックの二項関係pord(bi,bj),mord(bi,bj)を、ブロック配置情報及びサイズ情報に従って決定する。ここで、二項関係pord(bi,bj),mord(bi,bj)は、作成するシーケンス・ペア(P,M)の各順列P,Mにおける2つのブロックbi,bj(∈B)間の順序関係であって、ブロック配置情報及びサイズ情報から抽出され又は外部入力により指定される各ブロック間の配置制約から導出される関係をいう。
二項関係決定手段9は、更に、離反制約抽出手段12、垂直共線制約抽出手段13、水平共線制約抽出手段14、水平対称制約抽出手段15、垂直対称制約抽出手段16、及び二項関係推移決定手段17の部分構成を備えている。
離反制約抽出手段12は、ブロック配置情報及びサイズ情報から、離反制約を満たすブロック対を抽出し、そのブロック対に対する順列P,Mにおける二項関係を決定する。尚、離反制約については、後で詳細に説明する。
垂直共線制約抽出手段13及び水平共線制約抽出手段14は、ブロック配置情報及びサイズ情報から抽出され、又は設計者によって入力部2から入力される垂直共線制約,水平共線制約に従って、当該制約の対称となるブロックについての順列P,Mにおける二項関係を決定する。尚、垂直共線制約及び水平共線制約については、後で詳細に説明する。
水平対称制約抽出手段15及び垂直対称制約抽出手段16は、ブロック配置情報及びサイズ情報から抽出され、又は設計者によって入力部2から入力される垂直対称制約,水平対称制約に従って、当該制約の対称となるブロックについての順列P,Mにおける二項関係を決定する。尚、垂直対称制約及び水平対称制約については、後で詳細に説明する。
これらの各制約抽出手段により抽出される順列P,Mにおけるブロック間の二項関係は、二項関係記憶手段7に保存される。二項関係推移決定手段17は、二項関係記憶手段7に保存された二項関係に基づいて、二項関係が未決定のブロック対に関して推移的に二項関係が決定できるものについて二項関係を決定する。
重なり除去手段10は、ブロック配置記憶手段5に記憶されたブロック配置Φにおいてブロック集合Bに属するブロックに重なりがある場合、重なった2つのブロックの何れか一方又は両方の幅又は高さを短縮することにより、ブロック間の重なりのないブロック配置情報及びサイズ情報(パッキングΠ)を生成する。
全順序関係決定手段11は、二項関係決定手段9により決定されるすべての二項関係pord(bi,bj),mord(bi,bj)(bi,bj∈B)を満たすように、重なり除去手段10による重なり除去がされたブロック配置情報及びサイズ情報(パッキングΠ)に基づいて順列P,Mにおけるブロックの全順序関係を決定する。
全順序関係決定手段11は、更に、P順序決定手段18及びM順序決定手段19の部分構成を備えている。P順序決定手段18及びM順序決定手段19は、それぞれ、シーケンス・ペアの順列P及び順列Mにおけるブロックの全順序決定処理を行う。
以上のように構成された本実施例に係るシーケンス・ペア作成装置1について、以下その動作を説明する。
まず、本発明の実施例1に係るシーケンス・ペア作成装置によるシーケンス・ペアの作成方法の全体の流れを図2に示す。最初に、設計者によって、入力部2を介してブロック配置記憶手段5に初期のブロック配置情報及び各ブロックのサイズ情報が入力される(S1)。また、このとき、設計者は、必要に応じて、特定のブロック間の各種制約(ブロック間のクリアランスや垂直共線制約等)を入力部2から入力する。入力された各種制約は、配置制約記憶手段6に格納される。
次に、二項関係決定手段9は、ブロック配置記憶手段5に保存されているブロック配置情報及びサイズ情報から、各種制約により導出されるシーケンス・ペア(P,M)の順列P,Mにおけるブロック対間の二項関係を抽出し、抽出された二項関係を二項関係記憶手段7に保存する(S2)。
次いで、重なり除去手段10は、ブロック配置記憶手段5に保存されているブロック配置情報及びサイズ情報から、重なりのあるブロック対を探索し、重なりを除去する処理を行う。この重なり除去処理がされたブロック配置情報及びサイズ情報は、全順序関係決定手段11に出力される(S3)。
最後に、全順序関係決定手段11において、P順序決定手段18により順列Pの全順序の確定処理が行われる(S4)。また、M順序決定手段19により順列Mの全順序の確定処理が行われる(S5)。これにより、シーケンス・ペア(P,M)が確定する。確定したシーケンス・ペア(P,M)は、シーケンス・ペア記憶手段8に出力され、ここに保存される。
以上がシーケンス・ペア方法の全体的な処理の流れであるが、以下、主要な各ステップにおける演算処理に関して詳細に説明する。
〔1〕準備
最初に、以下の説明で使用する各用語の定義を述べる。ブロック配置記憶手段5に記憶されている初期のブロック配置に含まれるすべてのブロック集合をB={b,b,…,bN}と記す。Nはブロック集合Bの全ブロック数である。各ブロックは矩形である。ブロックbi(∈B)の位置を特定する座標(位置座標)を(x(bi),y(bi))と記す。ここでは、各ブロックの位置座標は当該ブロックの左下の座標を表すものとする。ブロック配置情報は、各ブロックの位置座標の集合{(x(bi),y(bi))|∀bi∈B}により与えられる。また、ブロックbi(∈B)の幅をw(bi)、高さをh(bi)と記す。各ブロックのサイズ情報は、各ブロックの幅と高さの組の集合{(w(bi),h(bi))|∀bi∈B}により与えられる。
〔1−1〕各種制約の定義
(1)離反制約
離反制約とは、ブロック集合Bに属する任意の2つのブロックbi,bjの対(bi,bj)に対し、ブロック間の間隔(クリアランス)が所定の値以上でなければならないとする制約をいう。x(bi)<x(bj)の場合、水平方向の離反制約は次のように表される:
Figure 0004262660
同様に、y(bi)<y(bj)の場合、水平方向の離反制約は次のように表される:
Figure 0004262660
離反制約は、設計仕様から課される制約である。すなわち、チップ上において、各素子ブロック間での絶縁性を確保するために、所定の距離のクリアランスを確保することが要求される。離反制約は、ブロックの初期配置Φにおいてクリアランスを確保して配置されているブロックを抽出し、そのクリアランスによる配置関係をシーケンス・ペアに保存させるために課される。
具体的に、離反制約を図3の例を用いて説明する。ブロックbに注目する。図3(a)において、ブロックbに対して式(8)の水平方向の離反制約を満たすブロックは、b4,b,b,b,b9である。また、図3(b)において、ブロックbに対して式(9)の垂直方向の離反制約を満たすブロックは、b1,b,b,b,b10である。
(2)共線制約
共線制約とは、ブロック集合Bのある部分集合Bk(∈B)に対して、部分集合Bk(⊆B)内のすべてのブロックbi(∈Bk)について上下左右の何れかの辺若しくは代表点を一直線上に揃える制約をいう。上辺又は下辺若しくは代表点を水平直線上に揃える制約を水平共線制約、左辺又は右辺若しくは代表点を垂直直線上に揃える制約を垂直共線制約という。また、部分集合Bk(∈B)に属する各ブロックに対して、左辺を揃えるようにブロックを配置する共線制約をALIGNL(Bk)、下辺を揃えるようにブロックを配置する共線制約をALIGNB(Bk)、右辺を揃えるようにブロックを配置する共線制約をALIGNR(Bk)、上辺を揃えるようにブロックを配置する共線制約をALIGNT(Bk)と記す。部分集合Bk(∈B)に属する各ブロックに対して、代表点を水平直線上に揃えるようにブロックを配置する共線制約をALIGNCH(Bk)、代表点を垂直直線上に揃えるようにブロックを配置する共線制約をALIGNCV(Bk)と記す。
共線制約は、チップ上に部品を配置する場合において、同様の回路構造が繰り返して並べられているような場合に、各構造を直線上に整列するように部品配置を行うために課せられる制約である。
具体的に、共線制約を図4の例を用いて説明する。図4(a)において、4つのブロックb,b,b,bは左辺が一直線上に揃えられている。従って、図4(a)の4つのブロックの集合Bk={b,b,b,b}は、共線制約ALIGNL(Bk)が課されている。また、図4(b)において、4つのブロックb,b,b,bは下辺が一直線上に揃えられている。従って、図4(b)の4つのブロックの集合Bk={b,b,b,b}は、共線制約ALIGNB(Bk)が課されている。
(3)対称制約
対称制約とは、ブロック集合Bに属する3つのブロックbi,bj,bk(∈B)に対して、bjを中心として左右方向又は上下方向にbi及びbjを対称に配置する制約をいう。左右方向の対称制約を水平対称制約といい、SYMMH(bi, bj, bk)と記す。上下方向の対称制約を垂直対称制約といい、SYMMV(bi, bj, bk)と記す。図5(a)は、水平対称制約SYMMH(bi, bj, bk)の一例を示しており、図5(b)は、垂直対称制約SYMMV(bi, bj, bk)の一例を示している。
x(bi)<x(bj)<x(bk)の場合、水平対称制約は次のように表される:
Figure 0004262660
y(bi)<y(bj)<y(bk)の場合、垂直対称制約は次のように表される:
Figure 0004262660
対称制約は、例えば、MOSトランジスタで構成される差動増幅回路のように、チップ上に部品を対称に配置する必要がある場合に課される制約である。
〔1−2〕シーケンス・ペア
ブロック集合Bに属するブロック間の左右関係及び上下関係を非特許文献1と同様に次のように定義する:
(1)左右関係
ブロック集合Bに属する任意の2つのブロックbi,bjの対(bi,bj)について、関係x(bi)+w(bi)≦x(bj)が成り立つとき、ブロックbiはブロックbjの左にある(又は、ブロックbjはブロックbiの右にある)という。
(2)上下関係
ブロック集合Bに属する任意の2つのブロックbi,bjの対(bi,bj)について、関係y(bi)+h(bi)≦y(bj)が成り立つとき、ブロックbiはブロックbjの下にある(又は、ブロックbjはブロックbiの上にある)という。
また、シーケンス・ペアについても、非特許文献1と同様に次のように定義する:
(3)シーケンス・ペア
N個のブロックからなるブロック集合B={b,b,…,bN}が与えられたとする。集合Bのすべてのブロックの順列(sequence)である2つのブロック順列をP=(p,p,…,pN)(∀pi∈B)及びM=(m,m,…,mN)(∀mi∈B)と記す。このとき、2つの順列の対(P,M)をシーケンス・ペアという。
(4)ブロック配置のシーケンス・ペア
順列Pにおけるブロックbi(∈B)の順序をα(bi)、順列Mにおけるブロックbi(∈B)の順序をβ(bi)と記す。すなわち、
Figure 0004262660
である。
あるブロック配置において、ブロックの順列P,Mが、
(a)α(bi)<α(bj)∧β(bi)<β(bj)のとき、biはbjの左にある(bjはbiの右にある)、
(b)α(bi)>α(bj)∧β(bi)<β(bj)のとき、biはbjの下にある(bjはbiの上にある)、
という関係を満たしている場合、シーケンス・ペア(P,M)を、このブロック配置のシーケンス・ペアという。
〔2〕二項関係の抽出処理
次に、図2のステップS2における2項順序の抽出処理について説明する。ここで、順列P,Mにおける二項関係は、それぞれ、次のように定義される変数pord(bi,bj),mord(bi,bj)により表される:
Figure 0004262660
図6は、二項関係決定手段9による二項関係の抽出処理の手順を示すフローチャートである。まず、離反制約抽出手段12により離反制約から決まる二項関係pord,mordの抽出が行われ、抽出された二項関係pord,mordは二項関係記憶手段7に記憶される(S10)。次いで、垂直共線制約抽出手段13及び水平共線制約抽出手段14により、垂直共線制約,水平共線制約から決まる二項関係pord,mordの抽出が行われ、抽出された二項関係pord,mordは二項関係記憶手段7に記憶される(S11)。次いで、水平対称制約抽出手段15及び垂直対称制約抽出手段16により、水平対称制約,垂直対称制約から決まる二項関係pord,mordの抽出が行われ、抽出された二項関係pord,mordは二項関係記憶手段7に記憶される(S12)。最後に、二項関係推移決定手段17が、未だ決定されていないブロック間の二項関係のうち、二項関係記憶手段7に保存された各ブロック間の二項関係に基づき推移的に決定することができる二項関係を決定し、二項関係記憶手段7に保存する(S13)。これらの各ステップにおける演算処理は、具体的には次のようにして実行される。
〔2−1〕離反制約からの二項関係の抽出(S10)
まず、離反制約抽出手段12は、ブロック配置記憶手段5に記憶されている2つのブロックbi,bjを選択し、それらの位置座標(x(bi),y(bi)),(x(bj),y(bj))及びサイズ(w(bi),h(bi)),(w(bj),h(bj))を読み出す。また、ブロックbi,bj間のクリアランスDh(bi,bj),Dv(bi,bj)を配置制約記憶手段6から読み出す。尚、Dh(bi,bj),Dv(bi,bj)は、0以上の値が設定されている。また、これらのクリアランスの値は、すべてのブロック対について一定としてもよい。
次に、離反制約抽出手段12は、ブロック対(bi,bj)に対して次の関係が成立するか否かを検査する:
Figure 0004262660
式(15)の関係が成立するとき、「biはbjの左にある」と決定し、
Figure 0004262660
のように順序を確定する。すなわち、離反制約抽出手段12は、順列P,Mにおけるbiとbjの二項関係を、
Figure 0004262660
と決定し、これを二項関係記憶手段7に保存する。例えば、図3の例では、離反制約抽出手段12は、ブロックb0に対して、「b6,b7,b8はb0の左にある」と決定する。
同様に、離反制約抽出手段12は、ブロック対(bi,bj)に対して次の関係が成立するか否かを検査する:
Figure 0004262660
式(18)の関係が成立するとき、「biはbjの下にある」と決定し、
Figure 0004262660
のように順序を確定する。すなわち、離反制約抽出手段12は、順列P,Mにおけるbiとbjの二項関係を、
Figure 0004262660
と決定し、これを二項関係記憶手段7に保存する。例えば、図3の例では、離反制約抽出手段12は、ブロックb0に対して、「b7,b8,b9,b10はb0の下にある」と決定する。
〔2−2〕共線制約からの二項関係の抽出(S11)
垂直共線制約抽出手段13及び水平共線制約抽出手段14は、ブロック配置記憶手段5に記憶されたブロック集合Bの中から、一辺又はブロックの代表点が水平又は垂直直線上に並べられた一連のブロック群を抽出し、これを共線制約が課せられる部分集合Bk(⊆B)とする。また、設計者により共線制約が課せられる部分集合Bk(⊆B)が予め指定されている場合には、その部分集合Bkを配置制約記憶手段6から読み出す。
次に、垂直共線制約抽出手段13及び水平共線制約抽出手段14は、部分集合Bkにおいて、Bkに属する各ブロックbi(i=1,2,…,Nk)をx(bi)が小さい順に整列する。以下、この整列を行ったときのブロックbiの順序をxord(bi)と記す。同様に、部分集合Bkにおいて、Bkに属する各ブロックbi(i=1,2,…,Nk)をy(bi)が小さい順に整列する。以下、この整列を行ったときのブロックbiの順序をyord(bi)と記す。
(1)部分集合Bkに対してALIGNL(Bk)又はALIGNR(Bk)若しくはALIGNCV(Bk)が与えられている場合、垂直共線制約抽出手段13は、Bkに属する各ブロック対(bi,bj)について、yord(bi)<yord(bj)ならば、「biはbjの下にある」と決定し、
Figure 0004262660
のように順序を確定する。すなわち、垂直共線制約抽出手段13は、順列P,Mにおけるbiとbjの二項関係を、
Figure 0004262660
と決定し、これを二項関係記憶手段7に保存する。
(2)部分集合Bkに対してALIGNB(Bk)又はALIGNT(Bk)若しくはALIGNCH(Bk)が与えられている場合、水平共線制約抽出手段14は、Bkに属する各ブロック対(bi,bj)について、xord(bi)<xord(bj)ならば、「biはbjの左にある」と決定し、
Figure 0004262660
のように順序を確定する。すなわち、水平共線制約抽出手段14は、順列P,Mにおけるbiとbjの二項関係を、
Figure 0004262660
と決定し、これを二項関係記憶手段7に保存する。
〔2−3〕対称制約からの二項関係の抽出(S12)
水平対称制約抽出手段15及び垂直対称制約抽出手段16は、ブロック配置記憶手段5に記憶されたブロック集合Bの中から、左右方向又は上下方向に対称に並べられた3つのブロック群を抽出し、これを対称制約が課せられるブロックbi,bj,bk(∈B)とする。また、設計者により対称制約が課せられた3つのブロックbi,bj,bk(∈B)が予め指定されている場合には、そのブロックbi,bj,bkを配置制約記憶手段6から読み出す。
水平対称制約抽出手段15及び垂直対称制約抽出手段16による対称制約に基づく二項関係の決定は次のようにして実行される。
(1)ブロックbi,bj,bk(x(bi)<x(bj)<x(bk))に対してSYMMH(bi, bj, bk)が与えられた場合、水平対称制約抽出手段15は、「biはbkの左にある」と決定し、
Figure 0004262660
のように順序を確定する。すなわち、水平対称制約抽出手段15は、順列P,Mにおけるbiとbkの二項関係を、
Figure 0004262660
と決定し、これを二項関係記憶手段7に保存する。
(2)ブロックbi,bj,bk(y(bi)<y(bj)<y(bk))に対してSYMMV(bi, bj, bk)が与えられた場合、垂直対称制約抽出手段16は、「biはbkの下にある」と決定し、
Figure 0004262660
のように順序を確定する。すなわち、垂直対称制約抽出手段16は、順列P,Mにおけるbiとbkの二項関係を、
Figure 0004262660
と決定し、これを二項関係記憶手段7に保存する。
〔2−4〕二項関係の推移的確定(S13)
二項関係推移決定手段17は、二項関係記憶手段7に保存されている確定した二項関係から推移的に確定することが可能な二項関係を確定する。これは、例えば次のようにして行われる。
3つのブロックbi,bj,bkに対して、bi,bj及びbj,bkの順列Pにおける二項関係がpord(bi,bj)=1 ∧ pord(bj,bk)=1のように確定していたとする。このとき、bi,bkの順列Pにおける二項関係が推移的に確定し、pord(bi,bk)=1と決定される。
同様に、3つのブロックbi,bj,bkに対して、bi,bj及びbj,bkの順列Mにおける二項関係がmord(bi,bj)=1 ∧ mord(bj,bk)=1のように確定していたならば、bi,bkの順列Mにおける二項関係はmord(bi,bk)=1と決定される。
〔3〕ブロック外形の重なりの除去処理
次に、図2のステップS3におけるブロック外形の重なりの除去処理について説明する。重なり除去処理では、初期値として与えられたブロック配置Φにおいて、Φに含まれるブロックに重なりがある場合、そのブロックの形状を小さく変形することによって、Φのブロック同士の重なりを除去し、重なりのないブロック配置であるパッキングΠを生成する。
このような重なり除去処理を行う理由は、〔背景技術〕の欄で説明したように、シーケンス・ペアは重なりのないブロック配置(パッキングΠ)に対して、ブロック間の順序づけを行うことにより得られるものであるため、ブロック間の重なりがあると各ブロックの順序づけが不能となるからである。
図7は、ブロック外形の重なりの除去処理の流れを表すフローチャートである。まず、重なり除去手段10は、ブロック配置記憶手段5から、検査対象のブロック対bi,bjを選択して読み出す(S20)。そして、ブロックbi,bjにブロックの重なりがあるか否かを検査する。ブロックの重なりがある場合には、重なりのあるブロックbi,bjを縮小し、重なりを除去する(S22)。一方、重なりがない場合には何もしない。そして、すべてのブロック対についての検査が終わるまで(S23)、ステップS20〜S22を繰り返す。
以下、ステップS22における処理について具体的に説明するが、その前に、ブロックの重なり方については、次のように定義しておく。
(1)ブロック集合Bに属するブロック対(bi,bj)に対して、次の関係の何れかが成り立つとき、ブロックbiとブロックbjは「角部が重なる」という:
Figure 0004262660
Figure 0004262660
図8(a)は、角部が重なったブロックbi,bjの一例を示している。
(2)ブロック集合Bに属するブロック対(bi,bj)に対して、次の関係が成り立つとき、ブロックbjはブロックbiに「含まれる」という:
Figure 0004262660
図8(b)は、ブロックbjがブロックbiに含まれている例を示す。
(3)ブロック集合Bに属するブロック対(bi,bj)に対して、次の関係が成り立つとき、ブロックbiとブロックbjは「交差する」という:
Figure 0004262660
〔3−1〕ブロックの角部が重なる場合の重なり除去処理
2つのブロックbi,bjの角部が重なっている場合の重なり除去処理は次のように行われる。まず、ブロックbi,bjの外形の重なりの水平方向の長さをdx、垂直方向の長さをdyとする。図9(a)にdx,dyの具体的な例を示す。
(1)dx<dyの場合、ブロックbi,bjの重なりがなくなるように、bi,bjの水平方向の長さを、それぞれdx/2ずつ短くする。例えば、x(bi)<x(bj)ならば、biの外形の幅をw’(bi)=w(bi)−dx/2、bjの外形の左下隅のx座標をx’(bj)=x(bj)+dx/2、bjの外形の幅をw’(bj)=w(bj)−dx/2とする。図9(b)に、dx<dyの場合の重なり除去処理の一例を示す。
(2)dy<dxの場合、ブロックbi,bjの重なりがなくなるように、bi,bjの垂直方向の長さを、それぞれdy/2ずつ短くする。例えば、y(bi)<y(bj)ならば、biの外形の高さをh’(bi)=h(bi)−dy/2、bjの外形の左下隅のy座標をy’(bj)=y(bj)+dy/2、bjの外形の高さをh’(bj)=h(bj)−dy/2とする。
〔3−2〕ブロックが包含関係にある場合及び交差する場合の重なり除去処理
2つのブロックbi,bjが包含関係にある場合及び交差する場合の重なり除去処理は次のように行われる。まず、重なり除去手段は、ブロックbi,bjについて次の4つの値を計算する:
Figure 0004262660
次に、dx,dx,dy,dyのうち、dx又はdxが最小となる場合には、ブロックbi,bjの重なりがなくなるまで、水平方向にbi又はbjの幅を小さくする。例えば、初期配置Φにおいて図10(a)のようにブロックbi,bjが配置されていたとする。図10(a)において、min(dx,dx,dy,dy)=dxである。このとき、biの幅はw’(bi)=max(0,w(bi)−dx/2)に変更され、bjの幅はw’(bj)=max(0,w(bj)−dx1/2)に変更される。図10(b)は図10(a)のブロックbi,bjに対して重なり除去処理を行った結果を表している。
尚、初期のブロック配置Φにおいて、図10(c)に示すようにw(bj)<dx/2の場合もあり得る。この場合、w’(bj)=max(0,w(bj)−dx1/2)=0となる。このようにブロックbjの幅が0となった場合、そのブロックの位置は、dxを測る基準となったブロックbiの辺の位置まで移動される。図10(d)にその様子を示す。
dy又はdyが最小となる場合には、同様に、ブロックbi,bjの重なりがなくなるまで、垂直方向にbi又はbjの高さを小さくする。例えば、min(dx1,dx2,dy1,dy2)=dy1のときは、biの高さはh’(bi)=max(0,h(bi)−dy/2)に変更され、bjの高さはh’(bj)=max(0,h(bj)−dy1/2)に変更される。尚、変更後のブロックの高さが0となる場合の処理も、dx又はdxが最小となる場合と同様である。
〔4〕全順序関係確定処理
最後に、図2のステップS4,S5における全順序関係確定処理について説明する。全順序関係確定処理は、順列Pと順列Mについて独立に行われる。
〔4−1〕順列Pの全順序確定処理
図11は、順列Pの全順序確定処理の流れを示すフローチャートである。この処理では、P順序決定手段18は、順列Pの先頭からブロックの順序を確定していく。ここで、順列Pにおいてブロックbi(∈B)の順序が確定しているか否かを表す変数として、次のように定義される変数fixp(bi)を用いる:
Figure 0004262660
また、以下では、順列Pにおける確定済みのブロック数をNpと記す。
まず、P順序決定手段18は、すべての変数fixp(bi)(∀bi∈B)を0に初期化するとともに、Npを0に初期化する(S30)。
次に、現時点でP順序未確定(fixp(bk)=0)のブロックbkであって、当該bk以外のP順序未確定(fixp(bj)=0)のすべてのブロックbj(∈B)に対して、二項関係pord(bj,bi)が1ではないブロックbkを抽出する(S31)。以下、このようなブロックbkの集合をBs(⊆B)と記す。
次に、P順序決定手段18は、ブロック集合Bに属し、P順序未確定(fixp(bj)=0)であるすべてのブロックbjに対して、x(bi)+w(bi)≦x(bj)又はy(bi)>y(bj)+h(bj)を満たすブロックbiを、集合Bsの中から抽出する(S32)。
そして、抽出されたブロックbiの順序を、順列PのNp+1番目に確定する(α(bi)=Np+1とする)とともに、fixp(bi)を1に設定する(S33)。
以上のステップS31〜S33までの処理を、ブロック集合Bに属するすべてのブロックの順列Pにおける順序が確定するまで繰り返す(S34)。
〔4−2〕順列Mの全順序確定処理
M順序決定手段19による順列Mの全順序確定処理も、順列Pの全順序確定処理と同様に行う。すなわち、この処理でも、M順序決定手段19は、順列Mの先頭からブロックの順序を確定していく。ここでも、順列Mにおいてブロックbi(∈B)の順序が確定しているか否かを表す変数として、次のように定義される変数fixm(bi)を用いる:
Figure 0004262660
また、順列Mにおける確定済みのブロック数をNmと記す。
まず、M順序決定手段19は、すべての変数fixm(bi)(∀bi∈B)を0に初期化するとともに、Nmを0に初期化する。次に、現時点でM順序未確定のブロックbkであって、当該bk以外のM順序未確定のすべてのブロックbj(∈B)に対して、二項関係mord(bj,bi)が1ではないブロックbkを抽出する(このようなブロックbkの集合をBs(⊆B)と記す)。次に、ブロック集合Bに属し、M順序未確定のすべてのブロックbjに対して、x(bi)+w(bi)≦x(bj)又はy(bi)>y(bj)+h(bj)を満たすブロックbiを、集合Bsの中から抽出する。そして、抽出されたブロックbiの順序を、順列MのNm+1番目に確定する(β(bi)=Nm+1とする)とともに、fixm(bi)を1に設定する。
以上の処理を、ブロック集合Bに属するすべてのブロックの順列Mにおける順序が確定するまで繰り返す。これにより、各種制約に基づく順列P,Mにおける二項関係をすべて満たすシーケンス・ペア(P,M)を作成することができる。
本発明の実施例1に係るシーケンス・ペア作成装置の構成を表す図である。 本発明の実施例1に係るシーケンス・ペア作成装置によるシーケンス・ペアの作成方法の全体の流れを表すフローチャートである。 離反制約の例を示す図である。 共線制約の例を示す図である。 対称制約の例を示す図である。 二項関係決定手段9による二項関係の抽出処理の手順を示すフローチャートである。 ブロック外形の重なりの除去処理の流れを表すフローチャートである。 ブロックの重なりの例を表す図である。 ブロックの角部が重なる場合の重なり除去処理の例を表す図である。 ブロックが包含関係にある場合の重なり除去処理の例を表す図である。 順列Pの全順序確定処理の流れを示すフローチャートである。 6つのブロックのあるパッキングΠのフロアプランを表したものである。 図12のパッキングΠにおいて、ブロックdに対する右上軌跡、上左軌跡、左下軌跡、及び下右軌跡を表す図である。 図12のパッキングΠに対する正軌跡(a)及び負軌跡(b)を表した図である。 (P,M)=(abdecf,cbfade)に対応する(P,M)パッキングである。 (P,M)=(abdecf,cbfade)に対応する(P,M)パッキングの(a)水平制約グラフ、及び(b)垂直制約グラフである。 最長路計算の結果得られたブロック配置の一例である。
符号の説明
1 シーケンス・ペア作成装置
2 入力部
3 表示部
4 中央演算装置
5 ブロック配置記憶手段
6 配置制約記憶手段
7 二項関係記憶手段
8 シーケンス・ペア記憶手段
9 二項関係決定手段
10 重なり除去手段
11 全順序関係決定手段
12 離反制約抽出手段
13 垂直共線制約抽出手段
14 水平共線制約抽出手段
15 水平対称制約抽出手段
16 垂直対称制約抽出手段
17 二項関係推移決定手段
18 P順序関係決定手段
19 M順序関係決定手段



Claims (19)

  1. 幅及び高さが与えられたN(≧2)個の矩形のブロックの集合(以下、「ブロック集合」という。)Bに属する各ブロックbi(i=1,…,N)の幅w(bi)及び高さh(bi)の情報(以下、「サイズ情報」という。)、並びに前記ブロック集合Bに属するすべてのブロックをチップ上に配置する場合の各ブロックbi(i=1,…,N)の位置座標(x(bi),y(bi))からなるブロック配置情報を記憶するブロック配置記憶手段を有し、
    それぞれが独立な前記ブロック集合Bに属するブロックbi(i=1,…,N)の順列P及びMの対であって、前記ブロック集合Bに属するすべてのブロックをチップ上に配置する場合の各ブロック間の位置関係を特定するシーケンス・ペア(P,M)の作成を行うシーケンス・ペア作成装置であって、
    前記順列P,Mにおける2つのブロックbi,bj(∈B)間の順序関係であって、前記ブロック配置情報及びサイズ情報から抽出され又は外部入力により指定される各ブロック間の配置制約から導出される関係である二項関係pord(bi,bj),mord(bi,bj)を、前記ブロック配置情報及びサイズ情報に従って決定する二項関係決定手段と、
    前記二項関係決定手段により決定されるすべての二項関係pord(bi,bj),mord(bi,bj)(b,b∈B)を満たすように、前記ブロック配置情報及びサイズ情報に基づいて前記順列P,Mにおけるブロックの全順序関係を決定する全順序関係決定手段と、
    を備えていることを特徴とするシーケンス・ペア作成装置。
  2. 前記二項関係決定手段は、
    前記ブロック配置記憶手段に記憶された2つのブロックbi,bj(∈B)の位置座標(x(bi),y(bi)),(x(bj),y(bj))、幅w(bi),w(bj)、及び高さh(bi),h(bj)を参照することにより、
    ブロックbi及びブロックbjの垂直方向(以下、「y方向」という。)の辺のy座標に0以上の所定幅のクリアランスがなく、且つブロックbi及びブロックbjの水平方向(以下、「x方向」という。)に0以上の所定幅のクリアランスがある場合、ブロックbi,bjの位置座標の左右関係に従ってブロックbiとブロックbjとの間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定し、
    ブロックbi及びブロックbjのx方向の辺のx座標に0以上の所定幅のクリアランスがなく、且つブロックbi及びブロックbjのy方向に0以上の所定幅のクリアランスがある場合、ブロックbi,bjの位置座標の上下関係に従ってブロックbiとブロックbjとの間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する離反制約抽出手段
    を備えていることを特徴とする請求項1記載のシーケンス・ペア作成装置。
  3. 前記二項関係決定手段は、
    前記ブロック配置記憶手段に記憶されたブロック集合Bの部分集合Bk(⊆B)に属する各ブロックbi(∈Bk)に対して、それらのブロックの左辺又は右辺若しくは代表点を垂直直線上に揃える配置制約(以下、「垂直共線制約(vertical collinear constraint)」という。)が課せられている場合、前記各ブロックbi(∈Bk)の位置座標の上下関係に従って、前記部分集合Bkに属する2つのブロックbi,bj間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する垂直共線制約抽出手段
    を備えていることを特徴とする請求項1記載のシーケンス・ペア作成装置。
  4. 前記二項関係決定手段は、
    前記ブロック配置記憶手段に記憶されたブロック集合Bの部分集合Bkに属する各ブロックに対して、それらのブロックの上辺又は下辺若しくは代表点を水平直線上に揃える配置制約(以下、「水平共線制約(horizontal collinear constraint)」という。)が課せられている場合、前記部分集合Bkに属する各ブロックbi(∈Bk)の位置座標の左右関係に従って、前記部分集合Bkに属する2つのブロックbi,bj間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する水平共線制約抽出手段
    を備えていることを特徴とする請求項1記載のシーケンス・ペア作成装置。
  5. 前記二項関係決定手段は、
    前記ブロック配置記憶手段に記憶されたブロック集合Bに属する3つのブロックbi,bj,bkに対して、ブロックbi及びブロックbkをブロックbjに対して水平方向の対称位置に配置する制約(以下、「水平対称制約(horizontal symmetrical constraint)」という。)が課せられている場合、ブロックbi及びブロックbkについて、両ブロックの位置座標の左右関係に従って、順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する水平対称制約抽出手段
    を備えていることを特徴とする請求項1記載のシーケンス・ペア作成装置。
  6. 前記二項関係決定手段は、
    前記ブロック配置記憶手段に記憶されたブロック集合Bに属する3つのブロックbi,bj,bkに対して、ブロックbi及びブロックbkをブロックbjに対して垂直方向の対称位置に配置する制約(以下、「垂直対称制約(vertical symmetrical constraint)」という。)が課せられている場合、ブロックbi及びブロックbkについて、両ブロックの位置座標の上下関係に従って、順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する垂直対称制約抽出手段
    を備えていることを特徴とする請求項1記載のシーケンス・ペア作成装置。
  7. 前記二項関係決定手段は、
    前記ブロック集合Bに属する3つのブロックbi,bj,bkについて、二項関係pord(bi,bj),pord(bj,bk)が決定され且つ二項関係pord(bi,bk)が未決定の場合、二項関係pord(bi,bj),pord(bj,bk)から二項関係pord(bi,bk)を推移的に決定し、
    二項関係mord(bi,bj),mord(bj,bk)が決定され且つ二項関係mord(bi,bk)が未決定の場合、二項関係mord(bi,bj),mord(bj,bk)から二項関係mord(bi,bk)を推移的に決定する二項関係推移決定手段
    を備えていることを特徴とする請求項1乃至6の何れか一に記載のシーケンス・ペア作成装置。
  8. 前記二項関係決定手段は、
    前記ブロック集合Bに属する2つのブロックbi,bjについて、ブロックbiがブロックbjの左にある場合には順列P,Mにおける二項関係をpord(bi,bj)=1,mord(bi,bj)=1に決定し、ブロックbiがブロックbjの下にある場合には順列P,Mにおける二項関係をpord(bi,bj)=0,mord(bi,bj)=1に決定するものであり、
    前記全順序関係決定手段は、
    順列Pにおける順序が未決定のブロックの集合Bn(⊆B)に属するブロックbi(∈Bn)について、集合Bnに属する当該ブロックbi以外のすべてのブロックbj(∈Bn)との間の2項順序関係pord(bi,bj)が1でないものを抽出し、抽出されたブロックの集合を集合Bs(⊆Bn)とし、
    集合Bsに属するブロックbiのうち、集合Bsに属する当該ブロックbi以外のすべてのブロックbj(∈Bs)に対して、当該ブロックbiの右辺がブロックbjの左辺よりも左又は共線位置にあるもの、若しくは当該ブロックbiの下辺がブロックbjの上辺よりも上にあるものを選択し、選択された当該ブロックbiを順列Pに左から詰めて並べる
    という操作を繰り返すことにより、順列Pにおける各ブロックの順序を、左から順次決定するP順序決定手段と、
    順列Mにおける順序が未決定のブロックの集合Bm(⊆B)に属するブロックbi(∈Bm)について、集合Bmに属する当該ブロックbi以外のすべてのブロックbj(∈Bm)との間の2項順序関係mord(bi,bj)が1でないものを抽出し、抽出されたブロックの集合を集合Bt(⊆Bm)とし、
    集合Btに属するブロックbiのうち、集合Btに属する当該ブロックbi以外のすべてのブロックbj(∈Bt)に対して、当該ブロックbiの右辺がブロックbjの左辺よりも左又は共線位置にあるもの、若しくは当該ブロックbiの下辺がブロックbjの上辺よりも上にあるものを選択し、選択された当該ブロックbiを順列Mに左から詰めて並べる
    という操作を繰り返すことにより、順列Mにおける各ブロックの順序を、左から順次決定するM順序決定手段と、
    を備えていることを特徴とする請求項1乃至7の何れか一記載のシーケンス・ペア作成装置。
  9. 前記ブロック配置記憶手段に記憶された前記ブロック集合Bに属するブロックに重なりがある場合、重なった2つのブロックの何れか一方又は両方の幅又は高さを短縮することにより、ブロック間の重なりのないブロック配置情報及びサイズ情報を生成する重なり除去手段を備え、
    前記全順序関係決定手段は、前記二項関係決定手段により決定された二項関係pord(bi,bj),mord(bi,bj)を満たすように、前記重なり除去手段により生成されたブロック間の重なりのないブロック配置情報及びサイズ情報に従って前記順列P,Mにおけるブロックの全順序関係を決定すること
    を特徴とする請求項1乃至8の何れか一に記載のシーケンス・ペア作成装置。
  10. 幅及び高さが与えられたN(≧2)個の矩形のブロックの集合(以下、「ブロック集合」という。)Bに属する各ブロックbi(i=1,…,N)の幅w(bi)及び高さh(bi)の情報(以下、「サイズ情報」という。)、及び前記ブロック集合Bに属するすべてのブロックをチップ上に配置する場合の各ブロックbi(i=1,…,N)の位置座標(x(bi),y(bi))からなるブロック配置情報を記憶するブロック配置記憶手段と、中央演算装置とを有するコンピュータにより、
    それぞれが独立な前記ブロック集合Bに属するブロックbi(i=1,…,N)の順列P及びMの対であって、前記ブロック集合Bに属するすべてのブロックをチップ上に配置する場合の各ブロック間の位置関係を特定するシーケンス・ペア(P,M)のデータの作成を行うシーケンス・ペア作成方法であって、
    前記中央演算装置が、前記ブロック配置記憶手段から前記ブロック配置情報及び前記サイズ情報を読み出し、前記順列P及びMにおける2つのブロックbi,bj(∈B)間の順序関係であって、前記ブロック配置情報及び各ブロックのサイズ情報から抽出され又は外部入力により指定される各ブロック間の配置制約から導出される関係である二項関係pord(bi,bj),mord(bi,bj)を、前記ブロック配置情報及び各ブロックのサイズ情報に従って決定する二項関係決定ステップと、
    前記中央演算装置が、前記二項関係決定ステップで決定されるすべての二項関係pord(bi,bj),mord(bi,bj)(b,b∈B)を満たすように、前記ブロック配置情報及び各ブロックのサイズ情報に基づいて前記順列P及びMにおける各ブロックの全順序関係を決定する全順序関係決定ステップと、
    を有することを特徴とするシーケンス・ペア作成方法。
  11. 前記二項関係決定ステップにおいて、
    前記中央演算装置が、前記ブロック配置記憶手段に記憶された、前記ブロック集合Bに属する2つのブロックbi,bj(∈B)の位置座標(x(bi),y(bi)),(x(bj),y(bj))、幅w(bi),w(bj)、及び高さh(bi),h(bj)を参照することにより、
    ブロックbi及びブロックbjの垂直方向(以下、「y方向」という。)の辺のy座標に0以上の所定幅のクリアランスがなく、且つブロックbi及びブロックbjの水平方向(以下、「x方向」という。)に0以上の所定幅のクリアランスがある場合、ブロックbi,bjの位置座標の左右関係に従ってブロックbiとブロックbjとの間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定し、
    ブロックbi及びブロックbjのx方向に0以上の所定幅のクリアランスがなく、且つブロックbi及びブロックbjのy方向に0以上の所定幅のクリアランスがある場合、ブロックbi,bjの位置座標の上下関係に従ってブロックbiとブロックbjとの間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する離反制約抽出ステップを有していることを特徴とする請求項10記載のシーケンス・ペア作成方法。
  12. 前記二項関係決定ステップにおいて、
    前記中央演算装置が、前記ブロック配置記憶手段に記憶された前記ブロック集合Bの部分集合Bk(⊆B)に属する各ブロックbi(∈Bk)に対して、それらのブロックの左辺又は右辺若しくは代表点を垂直直線上に揃える配置制約(以下、「垂直共線制約(vertical collinear constraint)」という。)が課せられている場合、前記各ブロックbi(∈Bk)の位置座標の上下関係に従って、前記部分集合Bkに属する2つのブロックbi,bj間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する垂直共線制約抽出ステップを有していることを特徴とする請求項10記載のシーケンス・ペア作成方法。
  13. 前記二項関係決定ステップにおいて、
    前記中央演算装置が、前記ブロック配置記憶手段に記憶された前記ブロック集合Bの部分集合Bkに属する各ブロックに対して、それらのブロックの上辺又は下辺若しくは代表点を水平直線上に揃える配置制約(以下、「水平共線制約(horizontal collinear constraint)」という。)が課せられている場合、前記部分集合Bkに属する各ブロックbi(∈Bk)の位置座標の左右関係に従って、前記部分集合Bkに属する2つのブロックbi,bj間の順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する水平共線制約抽出ステップを有していることを特徴とする請求項10記載のシーケンス・ペア作成方法。
  14. 前記二項関係決定ステップにおいて、
    前記中央演算装置が、前記ブロック配置記憶手段に記憶された前記ブロック集合Bに属する3つのブロックbi,bj,bkに対して、ブロックbi及びブロックbkをブロックbjに対して水平方向の対称位置に配置する制約(以下、「水平対称制約(horizontal symmetrical constraint)」という。)が課せられている場合、ブロックbi及びブロックbkについて、両ブロックの位置座標の左右関係に従って、順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する水平対称制約抽出ステップを有していることを特徴とする請求項10記載のシーケンス・ペア作成方法。
  15. 前記二項関係決定ステップにおいて、
    前記中央演算装置が、前記ブロック配置記憶手段に記憶された前記ブロック集合Bに属する3つのブロックbi,bj,bkに対して、ブロックbi及びブロックbkをブロックbjに対して垂直方向の対称位置に配置する制約(以下、「垂直対称制約(vertical symmetrical constraint)」という。)が課せられている場合、ブロックbi及びブロックbkについて、両ブロックの位置座標の上下関係に従って、順列P,Mにおける二項関係pord(bi,bj),mord(bi,bj)を決定する垂直対称制約抽出ステップを有していることを特徴とする請求項10記載のシーケンス・ペア作成方法。
  16. 前記二項関係決定ステップにおいて、
    前記中央演算装置が、前記ブロック配置記憶手段に記憶された前記ブロック集合Bに属する3つのブロックbi,bj,bkについて、二項関係pord(bi,bj),pord(bj,bk)が決定され且つ二項関係pord(bi,bk)が未決定の場合、二項関係pord(bi,bj),pord(bj,bk)から二項関係pord(bi,bk)を推移的に決定し、
    二項関係mord(bi,bj),mord(bj,bk)が決定され且つ二項関係mord(bi,bk)が未決定の場合、二項関係mord(bi,bj),mord(bj,bk)から二項関係mord(bi,bk)を推移的に決定する二項関係推移決定ステップを有していることを特徴とする請求項10乃至15の何れか一に記載のシーケンス・ペア作成方法。
  17. 前記二項関係決定ステップにおいては、
    前記中央演算装置が、前記ブロック集合Bに属する2つのブロックbi,bjについて、ブロックbiがブロックbjの左にある場合には順列P,Mにおける二項関係をpord(bi,bj)=1,mord(bi,bj)=1に決定し、ブロックbiがブロックbjの下にある場合には順列P,Mにおける二項関係をpord(bi,bj)=0,mord(bi,bj)=1に決定し、
    前記全順序関係決定ステップにおいて、
    前記中央演算装置が、順列Pにおける順序が未決定のブロックの集合Bn(⊆B)に属するブロックbi(∈Bn)について、集合Bnに属する当該ブロックbi以外のすべてのブロックbj(∈Bn)との間の2項順序関係pord(bi,bj)が1でないものを抽出し、抽出されたブロックの集合を集合Bs(⊆Bn)とし、
    集合Bsに属するブロックbiのうち、集合Bsに属する当該ブロックbi以外のすべてのブロックbj(∈Bs)に対して、当該ブロックbiの右辺がブロックbjの左辺よりも左又は共線位置にあるもの、若しくは当該ブロックbiの下辺がブロックbjの上辺よりも上にあるものを選択し、選択された当該ブロックbiを順列Pに左から詰めて並べる
    という操作を繰り返すことにより、順列Pにおける各ブロックの順序を、左から順次決定するP順序決定ステップと、
    前記中央演算装置が、順列Mにおける順序が未決定のブロックの集合Bm(⊆B)に属するブロックbi(∈Bm)について、集合Bmに属する当該ブロックbi以外のすべてのブロックbj(∈Bm)との間の2項順序関係mord(bi,bj)が1でないものを抽出し、抽出されたブロックの集合を集合Bt(⊆Bm)とし、
    集合Btに属するブロックbiのうち、集合Btに属する当該ブロックbi以外のすべてのブロックbj(∈Bt)に対して、当該ブロックbiの右辺がブロックbjの左辺よりも左又は共線位置にあるもの、若しくは当該ブロックbiの下辺がブロックbjの上辺よりも上にあるものを選択し、選択された当該ブロックbiを順列Mに左から詰めて並べる
    という操作を繰り返すことにより、順列Mにおける各ブロックの順序を、左から順次決定するM順序決定ステップと、を備えていることを特徴とする請求項10乃至16の何れか一に記載のシーケンス・ペア作成方法。
  18. 前記中央演算装置が、前記ブロック配置記憶手段に記憶された前記ブロック集合Bに属するブロックに重なりがある場合、重なった2つのブロックの何れか一方又は両方の幅又は高さを短縮することにより、ブロック間の重なりのないブロック配置情報及びサイズ情報を生成する重なり除去ステップを備え、
    前記全順序関係決定ステップにおいては、前記中央演算装置が、前記二項関係決定ステップにおいて決定された二項関係pord(bi,bj),mord(bi,bj)を満たすように、前記重なり除去ステップにおいて生成されたブロック間の重なりのないブロック配置情報及びサイズ情報に従って前記順列P,Mにおけるブロックの全順序関係を決定することを特徴とする請求項10乃至17の何れか一に記載のシーケンス・ペア作成方法。
  19. コンピュータに読み込んで実行させることによって、請求項10乃至18のシーケンス・ペア作成方法を前記コンピュータに実行させることを特徴とするプログラム。
JP2004284515A 2004-09-29 2004-09-29 シーケンス・ペア作成装置及びシーケンス・ペア作成方法 Expired - Fee Related JP4262660B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004284515A JP4262660B2 (ja) 2004-09-29 2004-09-29 シーケンス・ペア作成装置及びシーケンス・ペア作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004284515A JP4262660B2 (ja) 2004-09-29 2004-09-29 シーケンス・ペア作成装置及びシーケンス・ペア作成方法

Publications (2)

Publication Number Publication Date
JP2006099416A JP2006099416A (ja) 2006-04-13
JP4262660B2 true JP4262660B2 (ja) 2009-05-13

Family

ID=36239164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004284515A Expired - Fee Related JP4262660B2 (ja) 2004-09-29 2004-09-29 シーケンス・ペア作成装置及びシーケンス・ペア作成方法

Country Status (1)

Country Link
JP (1) JP4262660B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584445B2 (en) 2007-03-29 2009-09-01 Shigetoshi Nakatake Sequence-pair creating apparatus and sequence-pair creating method
JP5875897B2 (ja) * 2012-03-05 2016-03-02 アズビル株式会社 グラフィック画面作成装置、グラフィック画面作成方法およびグラフィック画面作成プログラム

Also Published As

Publication number Publication date
JP2006099416A (ja) 2006-04-13

Similar Documents

Publication Publication Date Title
Kahng et al. VLSI physical design: from graph partitioning to timing closure
US7484197B2 (en) Minimum layout perturbation-based artwork legalization with grid constraints for hierarchical designs
Kuh et al. Recent advances in VLSI layout
US8930869B2 (en) Method, program, and apparatus for aiding wiring design
Hutton et al. Characterization and parameterized generation of synthetic combinational benchmark circuits
Chen et al. Routability-driven blockage-aware macro placement
US9471733B1 (en) Solving a circuit network in multicore or distributed computing environment
Kahng et al. TritonRoute-WXL: The open-source router with integrated DRC engine
Utyamishev et al. Multiterminal pathfinding in practical VLSI systems with deep neural networks
JP4376670B2 (ja) スタイナー木処理装置、スタイナー木処理方法及びスタイナー木処理プログラム
Chen et al. ABOUT THIS CHAPTER
JP4262660B2 (ja) シーケンス・ペア作成装置及びシーケンス・ペア作成方法
US9639648B2 (en) Goal-based cell partitioning in the presence of obstacles
US7584445B2 (en) Sequence-pair creating apparatus and sequence-pair creating method
Bairamkulov et al. Graphs in VLSI
US8132141B2 (en) Method and apparatus for generating a centerline connectivity representation
Chen et al. Simultaneous placement with clustering and duplication
Torabi et al. A fast hierarchical adaptive analog routing algorithm based on integer linear programming
Posser et al. Challenges and approaches in vlsi routing
Chen et al. Floorplanning
Kar et al. STAIRoute: Global routing using monotone staircase channels
Yang et al. SIAR: Splitting-graph-based interactive analog router
JP4241582B2 (ja) レイアウト作成装置及びレイアウト作成方法
Liu Toward More Efficient Annealing-Based Placement for Heterogeneous FPGAs
Lin et al. Multilevel Fixed-Outline Component Placement and Graph-Based Ball Assignment for System in Package

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060421

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20070125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081030

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090129

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090209

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees