JP4241582B2 - レイアウト作成装置及びレイアウト作成方法 - Google Patents

レイアウト作成装置及びレイアウト作成方法 Download PDF

Info

Publication number
JP4241582B2
JP4241582B2 JP2004332031A JP2004332031A JP4241582B2 JP 4241582 B2 JP4241582 B2 JP 4241582B2 JP 2004332031 A JP2004332031 A JP 2004332031A JP 2004332031 A JP2004332031 A JP 2004332031A JP 4241582 B2 JP4241582 B2 JP 4241582B2
Authority
JP
Japan
Prior art keywords
block
constraint
arrangement
sch
layout
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
JP2004332031A
Other languages
English (en)
Other versions
JP2006146333A (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 JP2004332031A priority Critical patent/JP4241582B2/ja
Publication of JP2006146333A publication Critical patent/JP2006146333A/ja
Application granted granted Critical
Publication of JP4241582B2 publication Critical patent/JP4241582B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、半導体集積回路のレイアウトの自動作成に使用されるレイアウト作成技術に関し、特に、回路図から得られる各部品の位置関係を反映させたレイアウト配置を得ることが可能なレイアウト作成技術に関する。
近年の集積回路の大規模化、高集積化に伴い、特にアナログ集積回路の設計は、高性能な集積回路を設計する上でのボトルネックとなりつつある。その理由の一つは、半導体集積回路の設計には、設計自動化ツールが用いられるのが一般化してきているが、アナログ・セルのレイアウトを自動的に設計する設計ツールは、まだ十分なものが開発されてはいないことにある。
集積回路が微細化されると、集積回路を構成する部品や配線のレイアウト上の配置関係が回路全体の電気的特性に与える影響が顕在化する。従って、自動設計ツールを使用してレイアウト設計を行う場合、自動作成されるマスク図版に、レイアウト上の制約を正しく反映させる必要がある。
また、一般に、回路図における各デバイスの配置は、度々、望ましいレイアウト構成を反映していることが多いという事実が知られている。例えば、差動アンプなどは、一般に回路図上ではトランジスタの対が線対称な位置に配置されるが、レイアウト構成においてもこれらのトランジスタは線対称に配置するのが望ましい。従って、回路図から抽出されるデバイスの配置情報をできる限りレイアウト上の部品配置に反映させることが望ましい。
このような回路図上の部品配置を考慮したマスク図版の設計を行うレイアウト作成装置としては、特許文献1又は非特許文献1に記載のものが公知である。図21に、従来のレイアウト作成装置のシステムブロック図を示す(非特許文献1参照)。特許文献1又は非特許文献1に記載の従来のレイアウト作成装置101は、関係記注(relationship annotation)モジュール102、デバイス生成(device generation)モジュール103、配置(placement)モジュール104、及びルーティング(routing)モジュール105の4つの主要なモジュールを備えた構成を有する。
まず、設計者は、回路図エディタを用いて回路図(schematic)106を作成する。次に、設計者は、関係記注モジュール102を用いて、作成した回路図内に部品配置上の制約(関連づけられた部品との配置関係)を記注する。ここで、回路図内の各部品は、整合(matches)、Xの鏡映(mirrors in X)、及びYの鏡映(mirrors in Y)の3つの関係が記注される。
整合とは、同じ配置方位を有し、物理的位置が近接し、同じxy座標を有することを表す配置関係である。Xの鏡映とは、X軸に対して軸対象な配置方位を有し、物理的位置が近接し、同じx座標を有することを表す配置関係である。Yの鏡映とは、Y軸に対して軸対象な配置方位を有し、物理的位置が近接し、同じy座標を有することを表す配置関係である。
各部品は、それが関係づけられた部品にポインタにより記注される。これにより、関係づけられた部品のリストが作成される。図22は関係づけられた部品のリスト構造の一例を示した図である。各部品に対して、エレメント・フィールド(element field)が用意されている。エレメント・フィールドは、部品名(component)プロパティ、関係(relationship)プロパティ、及び"related_to"プロパティから構成されている。部品名プロパティには、部品名が格納される。関係プロパティには、関連づけられた部品との配置関係、すなわち、「整合」、「Xの鏡映」、又は「Yの鏡映」、若しくは「NULL」の何れかが格納される。"related_to"プロパティには、関係づけられた部品へのポインタが格納される。"related_to"プロパティを持たない部品を「葉節点(leaf node)」という。
葉節点に対しては、固定した配置方位(例えば、0°)が与えられる。葉節点以外の各部品の配置方位は、リスト内の"related_to"プロパティによるリンクを辿って葉節点に到達するまでトラバースすることによって決定される。
例えば、図22において、Q3の配置方位は0°である。Q2の配置方位は、Q3に対して「Yの鏡映」から算出される。Q4の配置方位は、Q3に対して「Xの鏡映」から算出される。また、Q1の配置方位は、Q3に対して「Yの鏡映」の後「Xの鏡映」から算出される。その結果、Q1〜Q4の部品の配置関係は、例えば、図23のように決定される。
設計者により記注された部品配置上の制約は、例えば、図24のように、回路図上にグラフィックスで表示される。すなわち、使用者は、回路図を見ながら、各部品のレイアウト上の配置制約に対する指示を指定することが可能となる。
デバイス生成モジュール103は、各部品のエレメント・フィールドの部品名プロパティを参照し、ユーザ定義のマクロ・ルーチンを実行し、各部品に対するマスク図版を生成する。このとき、デバイス生成モジュール103は、部品名の参照指示子接頭辞(reference designator prefix)により特定される部品タイプのマクロを選択し実行する。ここで、参照指示子接頭辞とは、例えば、抵抗に対する「R」、トランジスタに対する「Q」のような、部品の種類に対応して与えられる接頭辞をいう。各部品に対するマスク図版の情報は、デバイス原図ライブラリ(device artwork library)107に格納される。
次に、配置モジュール104は、デバイス原図ライブラリ107に保存された図版を使用して、関係記注モジュールに記注された配置関係と、回路図上の各部品の位置関係を考慮しながら、各部品のレイアウト上の配置を決定する。この方法は、回路図位置法(schematic position method)と呼ばれる。
配置モジュール104は、まず、配置する部品を、次のようなグラフ表現により、配置グループに分ける:
(1)V={vi}はオブジェクト(部品)の集合。
(2)Eは有向枝の集合。ここで、viの"related_to"リンクがvjを指すならば、eijは、viからvjへの有向枝とする。
(3)G=(V,E)は互いに非連結な有向グラフの集合。
これらのグラフを「配置グループ」と呼ぶ。
回路図位置法では、レイアウトにおける部品間の相対位置を、回路図中に描かれている部品間の相対位置と同じにする。これにより、設計者は、物理的なレイアウト配置を考慮しながら回路図を作成することができる。
具体的には、関係づけられた部品の配置グループにおいて、当該配置グループ内の部品dに対して、部品dのレイアウト平面上の目標座標(xt,yt)は次の式により計算される:
Figure 0004241582
また、各グループがレイアウト配置される前に、各グループ内の部品は、記注された部品間の配置関係の制約を満たすために、他のグループとは独立に(数2)に示されたアルゴリズム1に従って配置される。更に、全ての配置グループをレイアウト内に配置する手順は、(数3)に示されたアルゴリズム2によって実行される:
Figure 0004241582
Figure 0004241582
以上のようにして、各部品の配置が行われると、最後にルーティング・モジュール105が、シンボリック・ワイヤ法やポリゴン・パス法を使って配線の引き回しを行い、レイアウト設計が完了する。
米国特許第5,303,161号明細書 特開平9−108934号公報 S. W. Mehranfar, "A Technology-Independent Approach to Custom Analog Cell Generation", IEEE Transaction on Solid-State Circuit, Vol.26, No.3, pp.386-393, 1991. 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.
近年では、特に、半導体集積回路の需要が高まり、一層の設計期間の短縮を目的とした自動設計の導入が求められている。一方、自動設計した集積回路の回路性能についても高い品質が要求されている。回路性能の品質は、部品/ブロック配置の品質に依るとことが大きい。
上記従来のレイアウト作成装置では、回路図の配置を反映したレイアウト配置を作成することが可能となるため、回路の設計者は、回路図を作成した時点で、その回路における各部品のレイアウト上の配置関係をレイアウト配置設計に反映させることが可能となる。従って、高性能の半導体集積回路を設計することを容易化するのに役立つ。
しかしながら、上記従来のレイアウト作成装置では、部品及びブロック同士が重なることがないレイアウト配置は得られるが、各ブロックができるだけ小さい領域に配置されるようなレイアウト配置を得ることはできない。従って、作成されるレイアウト配置は、隙間が多く、半導体集積回路の高集積化を図る上で問題がある。
ところで、回路性能の善し悪しを部品/ブロック配置で評価する方法は従来から研究されているが、現在のところ、標準的に利用できる評価関数を定式化するところまでは至っていない。そこで、上述のように、通常は、回路設計者の作成する回路図に近いレイアウト配置が高品質な回路性能を持つという経験則がいわれている。しかしながら、部品/ブロック配置において、回路図と部品/ブロック配置の”近さ”を定量的な評価関数として規定することは、回路性能を定式化することと同様に難しい。
そこで、本発明の目的は、評価関数を用いず、部品/ブロックの近接性や相対位置に関する制約を生成し、それらの制約を満たすことにより回路図に近いレイアウト配置であって、各ブロックができるだけ小さい領域に配置されるようなレイアウト配置の圧縮(コンパクション)が容易な形式の初期配置を与えることが可能なレイアウト作成装置を提供することにある。
本発明に係るレイアウト作成装置の第1の構成は、複数の部品、各部品間を接続するネット、並びに各部品及び各ネットの平面上の位置情報を有する回路図データから、当該回路図データに含まれる部品の集合(以下、「部品集合」という。)Cに属する各部品ci(i=1,…,N)のレイアウトであるブロックbiをレイアウト平面上に配置し、当該回路図データに対応するレイアウト・データを作成するレイアウト作成装置であって、それぞれが独立なブロックbi(i=1,…,N)の順列P及びMの対であって、全ての前記ブロックをレイアウト平面上に配置する場合の各ブロックの位置関係を(数4)に従って特定するシーケンス・ペア(P,M)の生成を行うシーケンス・ペア生成手段と、前記シーケンス・ペア生成手段が生成するシーケンス・ペア(P,M)により指定された位置関係を満たすように、すべてのブロックbi(i=1,…,N)をレイアウト平面上に配置することで、レイアウト・データを生成するブロック配置手段とを備え、前記シーケンス・ペア生成手段は、前記回路図データに含まれる各部品ciを回路図平面上において代表点(xsch(ci),ysch(ci))で置き換え、回路図平面上におけるこれらの代表点(xsch(ci),ysch(ci))の位置関係に基づいて各部品ciに対応するブロックbiのシーケンス・ペア(P,M)の生成を行うことを特徴とする。
Figure 0004241582
この構成により、回路図平面における各部品間の位置関係は、シーケンス・ペア生成手段によりシーケンス・ペアとして抽出される。そして、抽出されたシーケンス・ペアを用いて、ブロック配置手段が各部品に対応するブロックをレイアウト平面上に配置する。これにより、回路図から抽出された各部品間の位置関係は、レイアウト平面上の各ブロック間の位置関係に反映される。
また、生成されるシーケンス・ペアを初期配置として、ヒューリスティックな方法(例えば、焼きなまし法(Simulated Annealing method)等)を用いて圧縮(コンパクション)処理を行うことは容易である。従って、各ブロックができるだけ小さい領域に配置されるレイアウト配置の圧縮が容易となる。
尚、シーケンス・ペアに関しては、特許文献2や非特許文献2に記載されているが、後で詳細に説明する。
本発明に係るレイアウト作成装置の第2の構成は、上記第1の構成において、前記シーケンス・ペア生成手段は、前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、部品cjの回路図平面上の代表点の座標(以下、「回路図平面上の座標」という。)(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の右側半平面における45度及び−45度の勾配を持つ2本の半直線に挟まれる領域内に属する場合、順列Pにおける前記部品cjに対するブロックbjの順序α(bj)(以下同様に、順列Pにおけるブロックbxの順序をα(bx)と記す。)を前記部品ciに対するブロックbiの順序α(bi)よりも後とし、順列Mにおけるブロックbjの順序β(bj)(以下同様に、順列Mにおけるブロックbxの順序をβ(bx)と記す。)をブロックbiの順序β(bi)よりも後とするとともに、前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の上側半平面における45度及び−45度の勾配を持つ2本の半直線に挟まれる領域内に属する場合、順列Pにおけるブロックbjの順序α(bj)をブロックbiの順序α(bi)よりも前とし、順列Mにおけるブロックbjの順序β(bj)をブロックbiの順序β(bi)よりも後とするように各順列P,Mについて各ブロックの整列を行うことによりシーケンス・ペア(P,M)の生成を行うことを特徴とする。
このように、回路図上の各部品を点と見なし、回路図に対して45度及び−45度の傾斜座標軸を基準として各部品の左右関係、上下関係を抽出することにより、回路図から各部品の位置関係をシーケンス・ペアとして抽出することが可能となる。
本発明に係るレイアウト作成装置の第3の構成は、上記第1又は2の構成において、ネットで接続された前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、前記部品ci,cjの回路図平面上の座標(xsch(ci),ysch(ci)),(xsch(cj),ysch(cj))の位置関係に基づいて、前記部品ci,cjに対応するブロックbi,bjのレイアウト平面上における配置制約a(bi,bj)を設定する配置制約設定手段を備え、前記ブロック配置手段は、前記シーケンス・ペア生成手段が生成するシーケンス・ペア(P,M)により指定された位置関係を満たし、且つ前記配置制約設定手段により設定される配置制約を満たすように、すべてのブロックbi(i=1,…,N)をレイアウト平面上に配置することでレイアウト・データを生成することを特徴とする。
シーケンス・ペアでは、回路図上における各部品間の相対的な位置関係は抽出されるが、その位置関係は抽象化された位置関係、すなわち、一方の部品を原点とする(P,M)平面において、45度及び−45度の傾きを持ったP軸及びM軸により4分割される(P,M)平面のどの象限に他方の部品が存在するかという情報である。従って、回路図に含まれている、例えば、2つの部品を共線上に配置するといった、より具体的な位置関係を表す情報は捨象されている。
そこで、配置制約設定手段が、部品ci,cjの回路図平面上の座標(xsch(ci),ysch(ci)),(xsch(cj),ysch(cj))の位置関係に基づいて、部品ci,cjに対応するブロックbi,bjのレイアウト平面上における配置制約a(bi,bj)を設定することにより、上述のような、シーケンス・ペアで捨象されたより具体的な位置関係が抽出される。そして、ブロック配置手段により、かかる位置関係も反映したレイアウト平面上のブロック配置を生成することが可能となる。
本発明に係るレイアウト作成装置の第4の構成は、上記第3の構成において、前記配置制約設定手段は、ネットで接続された前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の右側半平面における−45度より大きく45度未満の所定の角度の正負の勾配を持つ2本の半直線に挟まれる領域内に属し、且つ、順列Pにおけるブロックbi,bjの順序α(bi),α(bj)及び順列Mにおけるブロックbi,bjの順序β(bi),β(bj)に対してα(bi)<α(bk)<α(bj)且つβ(bi)<β(bk)<β(bj)となるブロックbkが存在しない場合、ブロックbiとブロックbjの下辺又は上辺若しくは代表点を水平直線上に揃える配置制約(以下、「水平共線制約(horizontal collinear constraint)」という。)を設定する水平共線制約設定手段を備えていることを特徴とする。
この構成により、水平共線制約設定手段は、2つの部品を水平共線上に配置するといった水平共線制約を、配置制約a(bi,bj)として回路図から抽出する。これにより、回路図に含まれる水平共線制約を、部品のブロックのレイアウト平面上への配置に反映させることが可能となる。
ここで、ブロックの「代表点」とは、そのブロックの位置を代表する点である。代表点は、通常はブロックの重心点とされるが、それに限られるものではない。
本発明に係るレイアウト作成装置の第5の構成は、上記第3の構成において、前記配置制約設定手段は、ネットで接続された前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の上側半平面における45度より大きく135度未満の所定の角度の正負の勾配を持つ2本の半直線に挟まれる領域内に属し、且つ、順列Pにおけるブロックbi,bjの順序α(bi),α(bj)及び順列Mにおけるブロックbi,bjの順序β(bi),β(bj)に対してα(bi)>α(bk)>α(bj)且つβ(bi)<β(bk)<β(bj)となるブロックbkが存在しない場合、ブロックbiとブロックbjの左辺又は右辺若しくは代表点を垂直直線上に揃える配置制約(以下、「垂直共線制約(vertical collinear constraint)」という。)を設定する垂直共線制約設定手段を備えていることを特徴とする。
この構成により、垂直共線制約設定手段は、2つの部品を垂直共線上に配置するといった垂直共線制約を、配置制約a(bi,bj)として回路図から抽出する。これにより、回路図に含まれる垂直共線制約を、部品のブロックのレイアウト平面上への配置に反映させることが可能となる。
本発明に係るレイアウト作成装置の第6の構成は、上記第3乃至5の何れか一の構成において、前記ブロック配置手段は、順列M(又はP)の順位に従って、順次ブロックbiを選択する配置ブロック選択手段と、前記配置ブロック選択手段により選択されたブロックbiについて、他のブロックbjとの配置制約a(bi,bj)が設定されている場合、当該配置制約a(bi,bj)に従って当該ブロックbj又は前記ブロックbiの位置を移動させる配置制約処理手段と、前記配置制約処理手段により前記ブロックbiについての配置制約がすべて満たされた後に、前記ブロックbiよりも順列M(又はP)の順位が後である全てのブロックについて、前記ブロックbiに対してシーケンス・ペア(P,M)により(数4)により指定される前記ブロックbiに対する位置関係が満たされるようにその位置又は前記ブロックbiの位置を移動させるブロック配置移動手段と、を備えていることを特徴とする。
この構成により、シーケンス・ペア(P,M)と、各ブロック間の配置制約a(bi,bj)により、次のようにしてレイアウト平面上のブロック配置が構成される:
まず、初期配置として各ブロックに適当な位置を与えておいて、
(1)配置ブロック選択手段が、順列M(又はP)の順位に従って、ブロックbiを選択する;
(2)ブロックbiに配置制約a(bi,bj)が設定されていれば、配置制約処理手段は、その配置制約a(bi,bj)に従ってブロックbi又はbjを移動させる;
(3)ブロックbiに設定された配置制約a(bi,bj)の全てに対して配置制約処理手段による移動処理が終わった後、ブロック配置移動手段は、ブロックbiよりも順列M(又はP)の順位が後である全てのブロックについて、ブロックbiに対してシーケンス・ペア(P,M)により(数4)により指定されるブロックbiに対する位置関係が満たされるようにその位置又は前記ブロックbiの位置を移動させる。
この処理によって、配置制約手段は、各ブロック間の配置制約を満たし、シーケンス・ペア(P,M)により指定されるブロック間の配置関係に従ったブロック配置を行うことが可能となる。
本発明に係るレイアウト作成装置の第7の構成は、上記第6の構成において、前記配置ブロック選択手段により選択されたブロックbiについて、他のブロックbjとの配置制約a(bi,bj)が設定されている場合において、当該ブロックbjの順列M(又はP)における順位β(bj)(又はα(bj))が、前記ブロックbiの順列M(又はP)における順位β(bi)(又はα(bi))よりも前である場合、前記配置ブロック選択手段が選択するブロックの順列M(又はP)の順位を順位β(bj)(又はα(bj))に戻す選択順位引戻手段と、前記各配置制約a(bi,bj)に対して、当該配置制約a(bi,bj)が前記配置制約処理手段により参照された回数を計数する制約参照計数手段と、前記配置制約処理手段により参照された回数が所定の回数に達した配置制約a(bi,bj)を削除する配置制約削除手段と、を備えていることを特徴とする。
この構成により、シーケンス・ペア(P,M)と、各ブロック間の配置制約a(bi,bj)により、次のようにしてレイアウト平面上のブロック配置が構成される:
まず、初期配置として各ブロックに適当な位置を与えておいて、
(1)配置ブロック選択手段が、順列M(又はP)の順位に従って、ブロックbiを選択する;
(2)ブロックbiに配置制約a(bi,bj)が設定されていれば、配置制約処理手段は、その配置制約a(bi,bj)に従ってブロックbi又はbjを移動させる。このとき、制約参照計数手段は、各配置制約a(bi,bj)が参照された回数を計数する;
(3)ブロックbiに設定された配置制約a(bi,bj)のうちで、β(bj)<β(bi)(又はα(bj)<α(bi))となる配置制約がある場合、選択順位引戻手段が、配置ブロック選択手段のブロック選択順位をβ(bj)(又はα(bj))に引き戻し、(1),(2)の処理を繰り返す。また、参照された回数が所定の回数に達した配置制約が現れた場合、配置制約削除手段はその配置制約を削除する;
(4)ブロックbiに設定された配置制約a(bi,bj)の全てに対して配置制約処理手段による移動処理が終わった後、ブロック配置移動手段は、ブロックbiよりも順列M(又はP)の順位が後である全てのブロックについて、ブロックbiに対してシーケンス・ペア(P,M)により(数4)により指定されるブロックbiに対する位置関係が満たされるようにその位置又は前記ブロックbiの位置を移動させる。
この処理によって、配置制約手段は、各ブロック間の配置制約を満たし、シーケンス・ペア(P,M)により指定されるブロック間の配置関係に従ったブロック配置を行うことが可能となる。また、回路図から自動抽出された配置制約に矛盾が存在する場合には、矛盾がある一群の配置制約が循環的に参照され続けることとなる。この場合、制約参照計数手段が各配置制約の参照回数を計数し、一定以上参照されると配置制約削除手段がその配置制約を削除することで、自動的に矛盾が解消される。
本発明に係るレイアウト作成装置の第8の構成は、上記第7の構成において、前記各配置制約a(bi,bj)により配置制約されるブロック対(bi,bj)間を接続するネットに対して、配置制約の必要性を表す優先順位を設定する優先順位設定手段を備え、前記配置制約削除手段は、前記配置制約処理手段により参照された回数が所定の回数に達した配置制約a(bi,bj)について、前記優先順位設定手段により設定された優先順位が最も低いものを削除することを特徴とする。
このように、ブロック対(bi,bj)間のネットに優先順位をつけておき、配置制約削除手段が矛盾がある配置制約を削除する際には優先順位が低いネットに対する配置制約を削除することで、より最適化されたレイアウト配置を得ることが可能となる。
ここで、「優先順位」は、そのネットが他の部品の電気的特性に及ぼす影響が大きい順に高い優先順位を与えることが好ましい。例えば、アナログ回路の場合には、ネットを流れる電流のより大きい方が優先順位をより高くし、ネットを流れる信号振幅がより大きい方がより優先順位を高くするといったことが考えられる。また、デジタル回路の場合には、信号遅延の余裕度が小さいネットほどより優先順位を高くするといったことが考えられる。優先順位設定手段が優先順位を設定する方法としては、ユーザにより入力された優先順位を設定する方法や、アナログ回路シミュレータによる直流解析・小信号解析の結果又はデジタル回路シミュレータによるタイミング解析の結果を参照して自動的に優先順位を各ネットに付与する方法等を用いることができる。
本発明に係るレイアウト作成方法の第1の構成は、複数の部品、各部品間を接続するネット、並びに各部品及び各ネットの平面上の位置情報を有する回路図データから、当該回路図データに含まれる部品の集合(以下、「部品集合」という。)Cに属する各部品ci(i=1,…,N)のレイアウトであるブロックbiをレイアウト平面上に配置し、当該回路図データに対応するレイアウト・データを作成するレイアウト作成方法であって、それぞれが独立なブロックbi(i=1,…,N)の順列P及びMの対であって、全ての前記ブロックをレイアウト平面上に配置する場合の各ブロックの位置関係を(数5)に従って特定するシーケンス・ペア(P,M)の生成を行うシーケンス・ペア生成ステップと、生成された前記シーケンス・ペア(P,M)により指定される位置関係を満たすように、すべてのブロックbi(i=1,…,N)をレイアウト平面上に配置することで、レイアウト・データを生成するブロック配置ステップと、を有しており、前記シーケンス・ペア生成ステップにおいて、前記回路図データに含まれる各部品ciを回路図平面上において代表点(xsch(ci),ysch(ci))で置き換え、回路図平面上におけるこれらの代表点(xsch(ci),ysch(ci))の位置関係に基づいて各部品ciに対応するブロックbiのシーケンス・ペア(P,M)の生成を行うことを特徴とする。
Figure 0004241582
本発明に係るレイアウト作成方法の第2の構成は、上記第1の構成において、前記シーケンス・ペア生成ステップにおいて、前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、前記部品cjの回路図平面上の代表点の座標(以下、「回路図平面上の座標」という。)(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の右側半平面における45度及び−45度の勾配を持つ2本の半直線に挟まれる領域内に属する場合、順列Pにおける前記部品cjに対するブロックbjの順序α(bj)(以下同様に、順列Pにおけるブロックbxの順序をα(bx)と記す。)を前記部品ciに対するブロックbiの順序α(bi)よりも後とし、順列Mにおけるブロックbjの順序β(bj)(以下同様に、順列Mにおけるブロックbxの順序をβ(bx)と記す。)をブロックbiの順序β(bi)よりも後とするとともに、前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の上側半平面における45度及び−45度の勾配を持つ2本の半直線に挟まれる領域内に属する場合、順列Pにおけるブロックbjの順序α(bj)をブロックbiの順序α(bi)よりも前とし、順列Mにおけるブロックbjの順序β(bj)をブロックbiの順序β(bi)よりも後とするように各順列P,Mについて各ブロックの整列を行うことによりシーケンス・ペア(P,M)の生成を行うことを特徴とする。
本発明に係るレイアウト作成方法の第3の構成は、上記第1又は2の構成において、前記シーケンス・ペア生成ステップの後に、ネットで接続された前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、前記部品ci,cjの回路図平面上の座標(xsch(ci),ysch(ci)),(xsch(cj),ysch(cj))の位置関係に基づいて、前記部品ci,cjに対応するブロックbi,bjのレイアウト平面上における配置制約a(bi,bj)を設定する配置制約設定ステップを備え、前記ブロック配置ステップにおいては、前記シーケンス・ペア生成ステップにおいて生成されるシーケンス・ペア(P,M)により指定された位置関係を満たし、且つ前記配置制約設定ステップにおいて設定される配置制約を満たすように、すべてのブロックbi(i=1,…,N)をレイアウト平面上に配置することでレイアウト・データを生成することを特徴とする。
本発明に係るレイアウト作成方法の第4の構成は、上記第3の構成において、前記配置制約設定ステップにおいて、ネットで接続された前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の右側半平面における−45度より大きく45度未満の所定の角度の正負の勾配を持つ2本の半直線に挟まれる領域内に属し、且つ、順列Pにおけるブロックbi,bjの順序α(bi),α(bj)及び順列Mにおけるブロックbi,bjの順序β(bi),β(bj)に対してα(bi)<α(bk)<α(bj)且つβ(bi)<β(bk)<β(bj)となるブロックbkが存在しない場合、ブロックbiとブロックbjの下辺又は上辺若しくは代表点を水平直線上に揃える配置制約(以下、「水平共線制約(horizontal collinear constraint)」という。)を設定する水平共線制約設定ステップを有していることを特徴とする。
本発明に係るレイアウト作成方法の第5の構成は、上記第3の構成において、前記配置制約設定ステップにおいて、ネットで接続された前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の上側半平面における45度より大きく135度未満の所定の角度の正負の勾配を持つ2本の半直線に挟まれる領域内に属し、且つ、順列Pにおけるブロックbi,bjの順序α(bi),α(bj)及び順列Mにおけるブロックbi,bjの順序β(bi),β(bj)に対してα(bi)>α(bk)>α(bj)且つβ(bi)<β(bk)<β(bj)となるブロックbkが存在しない場合、ブロックbiとブロックbjの左辺又は右辺若しくは代表点を垂直直線上に揃える配置制約(以下、「垂直共線制約(vertical collinear constraint)」という。)を設定する垂直共線制約設定ステップを有していることを特徴とする。
本発明に係るレイアウト作成方法の第6の構成は、上記第3乃至5の何れか一の構成において、前記ブロック配置ステップにおいて、順列M(又はP)の順位に従って、順次ブロックbiを選択する配置ブロック選択ステップと、前記配置ブロック選択ステップで選択されるブロックbiについて、他のブロックbjとの配置制約a(bi,bj)が設定されている場合、当該配置制約a(bi,bj)に従って当該ブロックbj又は前記ブロックbiの位置を移動させる配置制約処理ステップと、前記配置制約処理ステップにおいて前記ブロックbiについての配置制約がすべて満たされた後に、前記ブロックbiよりも順列M(又はP)の順位が後である全てのブロックについて、前記ブロックbiに対してシーケンス・ペア(P,M)により(数5)により指定される前記ブロックbiに対する位置関係が満たされるようにその位置又は前記ブロックbiの位置を移動させるブロック配置移動ステップと、を有していることを特徴とする。
本発明に係るレイアウト作成方法の第7の構成は、上記第6の構成において、前記配置ブロック選択ステップにおいて選択されるブロックbiについて、他のブロックbjとの配置制約a(bi,bj)が設定されている場合において、当該ブロックbjの順列M(又はP)における順位β(bj)(又はα(bj))が、前記ブロックbiの順列M(又はP)における順位β(bi)(又はα(bi))よりも前である場合、前記配置ブロック選択ステップにおいて選択されるブロックの順列M(又はP)の順位を順位β(bj)(又はα(bj))に戻す選択順位引戻ステップと、前記各配置制約a(bi,bj)に対して、当該配置制約a(bi,bj)が前記配置制約処理ステップにおいて参照された回数を計数する制約参照計数ステップと、前記配置制約処理ステップにおいて参照された回数が所定の回数に達した配置制約a(bi,bj)を削除する配置制約削除ステップと、を有していることを特徴とする。
本発明に係るレイアウト作成方法の第8の構成は、上記第7の構成において、前記各配置制約a(bi,bj)により配置制約されるブロック対(bi,bj)間を接続するネットに対して、配置制約の必要性を表す優先順位を設定する優先順位設定ステップを有し、前記配置制約削除ステップにおいては、前記配置制約処理ステップにおいて参照された回数が所定の回数に達した配置制約a(bi,bj)について、前記優先順位設定ステップにおいて設定された優先順位が最も低いものを削除することを特徴とする。
本発明に係るプログラムは、上記第1乃至8の何れか一のレイアウト作成方法をコンピュータに実行させることを特徴としている。
以上のように、本発明によれば、回路図平面における各部品間の位置関係は、シーケンス・ペア生成手段によりシーケンス・ペアとして抽出され、このシーケンス・ペアを用いて、ブロック配置手段が各部品に対応するブロックをレイアウト平面上に配置する。これにより、回路図から抽出された各部品間の位置関係は、レイアウト平面上の各ブロック間の位置関係に反映される。これにより、回路図に近いレイアウト配置を得ることができる。
また、生成されるシーケンス・ペアを初期配置として、焼きなまし法等のヒューリスティックな方法を用いて圧縮処理を行うことは容易である。すなわち、各ブロックができるだけ小さい領域に配置されるようなレイアウト配置の圧縮が容易な形式の初期配置を与えることが可能となる。
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
図1は、本発明の実施例1に係るレイアウト作成装置の構成を表すブロック図である。レイアウト作成装置1は、回路図データ記憶手段2、部品レイアウト・ライブラリ3、シーケンス・ペア生成手段4、シーケンス・ペア記憶手段5、配置制約設定手段6、配置制約記憶手段7、優先順位決定手段8、ブロック配置手段9、ブロック配置記憶手段10、及びシーケンス・ペア圧縮処理手段11を備えている。
ユーザにより入力される回路図データ20は、回路図データ記憶手段2に一時的に保存される。ここで、回路図データ20には、複数の部品、各部品間を接続するネット、並びに各部品及び各ネットの回路図平面上の位置情報が含まれている。
部品レイアウト・ライブラリ3には、ユーザにより入力される各部品のレイアウト・データが含まれている。一般に部品レイアウト・データは、複数のレイヤにわたる複雑な形状であるが、レイアウト作成装置1は、これらの部品レイアウト・データを矩形で近似する。そして、部品レイアウト・ライブラリ3には、矩形近似された各ブロックの高さ及び幅が保存されている。
シーケンス・ペア生成手段4は、回路図データ記憶手段2に記憶された回路図データ20に基づき、シーケンス・ペア(P,M)を作成する。作成されたシーケンス・ペア(P,M)は、シーケンス・ペア記憶手段5に保存される。
配置制約設定手段6は、シーケンス・ペア記憶手段5に保存されているシーケンス・ペア(P,M)を参照して、回路図データ記憶手段2に記憶されている回路図データから、各部品間の配置制約を抽出する。本実施例においては、配置制約設定手段6は、水平共線制約設定手段12及び垂直共線制約設定手段13を備えている。水平共線制約設定手段12は、回路図データ20から水平共線制約を抽出する。垂直共線制約設定手段13は、回路図データ20から垂直共線制約を抽出する。抽出された各種配置制約は、配置制約記憶手段7に保存される。
優先順位決定手段8は、配置制約記憶手段7に保存された各配置制約によって関係づけられるブロック対を接続するネットに対して、優先順位を設定する。このとき、優先順位決定手段8は、アナログ回路シミュレータ22により回路図データ20に基づき直流解析,小信号解析により得られる各ネットの電流値,小信号振幅等、又はデジタル回路シミュレータ23により得られる各ネットの遅延の余裕度に基づいて、各ネットの優先順位を決定する。
ブロック配置手段9は、シーケンス・ペア記憶手段5に記憶されたシーケンス・ペア(P,M)及び配置制約記憶手段7に記憶された各部品間の配置制約、並びに部品レイアウト・ライブラリ3に記憶された各部品の幅及び高さの情報に基づき、各ブロックをレイアウト平面上に配置する。そして、得られた各ブロックのレイアウト配置は、初期配置としてブロック配置記憶手段10に保存される。
ブロック配置手段9は、配置ブロック選択手段14、配置制約処理手段15、制約参照計数手段16、選択順位引戻手段17、配置制約削除手段18、及びブロック配置移動手段19を備えている。
配置ブロック選択手段14は、順列Mの順位に従って、順次ブロックbiを選択する。配置制約処理手段15は、選択されたブロックbiについて、他のブロックbjとの間の配置制約a(bi,bj)が設定されている場合には、当該配置制約a(bi,bj)に従ってブロックbi又はbjを移動させる処理を行う。制約参照計数手段16は、配置制約処理手段15によって各配置制約が参照された回数を計数する。選択順位引戻手段17は、選択されたブロックbiに対して、当該ブロックbiと配置制約a(bi,bj)が設定されているブロックbjであって、順列Mにおける順位β(bj)がブロックbiの順位β(bi)よりも前のものがあった場合に、次に配置ブロック選択手段14が参照するブロックの順列Mの順位をβ(bj)に再設定する処理を行う。配置制約削除手段18は、各配置制約が参照された回数が所定の回数を超えた場合、それらの配置制約のうち、その配置制約に対応するネットの優先順位が最も低いものを削除する処理を行う。
ブロック配置移動手段19は、選択されたブロックbiについて、配置制約処理手段15により配置制約が全て満たされた場合に、順列Mにおける順位が後である全てのブロックについて、ブロックbiに対してシーケンス・ペアにより指定される位置関係が満たされるように、レイアウト平面上での位置を移動する処理を行う。
シーケンス・ペア圧縮処理手段11は、ブロック配置記憶手段10に保存されている各ブロックのレイアウト配置(初期配置)に基づいて、シーケンス・ペア法に基づく圧縮処理を行う。圧縮処理された各ブロックのレイアウト配置は、再びブロック配置記憶手段10に保存され、ブロック配置レイアウト・データ24として出力される。
尚、これらレイアウト作成装置1の各構成は、実際には、コンピュータにプログラムをロードして実行することによって、機能モジュールとして実現される。
以上のように構成された本実施例に係るレイアウト作成装置1について、以下その動作を説明する。説明の順序としては、まず、ここで使用する用語の定義を行い、次に、シーケンス・ペア法の概略について説明し、その後動作の詳細及び具体例を述べる。
〔1〕用語の定義
〔定義1〕(回路)
部品(ランドを含む。)をci(iは部品を特定する添字。)と記し、部品の集合(以下、「部品集合(set of component)」という。)をC={c,c,…,cN}と記す。Nは部品の総数である。部品集合Cの部分集合Ck(⊆C)に属する各部品間を接続する接続線を「ネット(net)」といい、nk=n(Ck)(kはネットを特定する添字。)と記す。特に、部品ciとcjとの間を接続するネットをn(ci,cj)と記す。ネットの集合(以下、「ネット集合(set of nets)」という。)をNET={n,n,…,nNnet}と記す。Nnetはネットの総数である。部品集合C及びネット集合NETの組(C,NET)を「回路(circuit)」といい、K=(C,NET)と記す。 (定義終り)
〔定義2〕(回路図平面)
回路Kを構成する部品及びネットを、図形記号により2次元平面上に表した図面を「回路図(schematic)」という。回路図が表された平面を「回路図平面」といい、SCHと記す。回路図平面SCHにおける部品ci(∈C)の座標を(xsch(ci),ysch(ci))と記す。 (定義終り)
〔定義3〕(ネットリスト)
ある回路Kにおいて、回路Kの部品間の接続状態を表現したデータを「ネットリスト(net list)」といい、NLと記す。 (定義終り)
〔定義4〕(ブロック集合)
ある回路Kにおける各部品ciのレイアウトを矩形で表現したものを「ブロック(block)」といい、biと記す。N個のブロックbi(i=1,…,N)を考える。ブロックbiの集合を「ブロック集合(set of block)」といい、B={b,b,…,bN}と記す。ブロックbiの幅及び高さを、それぞれw(bi),h(bi)と記す。ブロック集合Bは部品集合Cに一対一対応する。すなわち、ブロック集合Bに属するブロックbiは、部品集合Cに属する部品ciに対応する。 (定義終り)
〔定義5〕(レイアウト平面)
ブロックが配置される平面を「レイアウト平面」という。レイアウト平面上におけるブロックbiの左下隅座標をそのブロックbiの「位置座標」といい、(x(bi),y(bi))と記す。 (定義終り)
〔定義6〕(左右(水平)順序)
ブロック集合Bに属する任意の2つのブロックbi,bjの対(bi,bj)について、関係x(bi)+w(bi)≦x(bj)が成り立つとき、ブロックbiはブロックbjの「左にある("left to")」(又は、ブロックbjはブロックbiの「右にある("right to")」)という。 (定義終り)
〔定義7〕(上下(垂直)順序)
ブロック集合Bに属する任意の2つのブロックbi,bjの対(bi,bj)について、関係y(bi)+h(bi)≦y(bj)が成り立つとき、ブロックbiはブロックbjの「下にある("below")」(又は、ブロックbjはブロックbiの「上にある("above")」)という。 (定義終り)
〔定義8〕(シーケンス・ペア)
N個のブロックを元とするブロック集合B={b,b,…,bN}が与えられたとする。ブロック集合Bの全ての元の順列である2つの順列をP=(p,p,…,pN)(∀pi∈B)及びM=(m,m,…,mN)(∀mi∈B)と記す。このとき、2つの順列P,Mの対(P,M)を「シーケンス・ペア(sequence pair)」という。
(定義終り)
〔定義9〕(ブロック配置のシーケンス・ペア)
ブロックbi(∈B)の順列Pにおける順序をα(bi)、ブロックbiの順列Mにおける順序をβ(bi)と記す。pα(bi)=bi,mβ(bi)=biである。あるブロック配置において、順列P,Mが次の条件を満たしている場合、このシーケンス・ペア(P,M)を、この「ブロック配置のシーケンス・ペア」という:
Figure 0004241582
(定義終り)
〔定義10〕(共線制約)
ブロック集合Bの或る部分集合Bk(Bk⊆B)に対して、当該部分集合Bk内の全てのブロックbi(∈Bk)について、上下左右の何れかの辺又は代表点を垂直又は水平直線上に揃えるという制約を「共線制約(collinear(align) constraint)」という。
(1)部分集合Bk内の全てのブロックbi(∈Bk)について、左辺を揃えるようにブロックを配置する共線制約をALIGNL(Bk)と記す。
(2)部分集合Bk内の全てのブロックbi(∈Bk)について、下辺を揃えるようにブロックを配置する共線制約をALIGNB(Bk)と記す。
(3)部分集合Bk内の全てのブロックbi(∈Bk)について、右辺を揃えるようにブロックを配置する共線制約をALIGNR(Bk)と記す。
(4)部分集合Bk内の全てのブロックbi(∈Bk)について、上辺を揃えるようにブロックを配置する共線制約をALIGNT(Bk)と記す。
(5)部分集合Bk内の全てのブロックbi(∈Bk)について、代表点を水平直線上に揃えるようにブロックを配置する共線制約をALIGNCH(Bk)と記す。
(6)部分集合Bk内の全てのブロックbi(∈Bk)について、代表点を垂直直線上に揃えるようにブロックを配置する共線制約をALIGNCV(Bk)と記す。
(定義終り)
尚、以下の説明においては、ALIGNCH(Bk)及びALIGNCV(Bk)における代表点は、ブロックの重心点であるとする。
〔2〕シーケンス・ペア法
次に、シーケンス・ペア法による圧縮処理について説明する。シーケンス・ペア法による圧縮処理は、特許文献2及び非特許文献2等において既に公知であるため、ここでは、その概要を簡単に述べる。
シーケンス・ペア法による圧縮処理は、与えられた初期のシーケンス・ペアに基づき、焼きなまし法のようなヒューリスティックな方法で(P,M)解空間の探索を行うことにより最適なパッキングΠを見つけ出すことによって行われる。ここで、ブロック集合Bの「パッキング(packing)」とは、各ブロックの重なりのない配置をいう。
この際、シーケンス・ペアの並べ替えにより得られる各パッキングの評価を行う場合、シーケンス・ペアからパッキングを生成する必要がある。そこで、シーケンス・ペアからパッキングを生成する方法について概説する。
まず、シーケンス・ペア(P,M)が与えられた場合、ブロック集合Bに属する任意のブロックbi(∈B)に対して、以下の4つのBの部分集合Maa(bi),Mbb(bi),Mba(bi),Mab(bi)が固有に定まる:
Figure 0004241582
これらの部分集合Maa(bi),Mbb(bi),Mba(bi),Mab(bi)に対して、次のような幾何学的制約が導かれる:
(1)『任意の2つのブロックbi,bj(∈B)に対して、bj∈Maa(bi)ならば、Πにおいてbjはbiの右、bj∈Mbb(bi)ならば、bjはbiの左になければならない。』
(2)『任意の2つのブロックbi,bj(∈B)に対して、bj∈Mab(bi)ならば、bjはbiの下、bj∈Mba(bi)ならば、bjはbiの上になければならない。』
かかる幾何学的制約を満たすΠを(P,M)パッキングと呼ぶ。すべてのシーケンス・ペア(P,M)に対して(P,M)パッキングが存在することが既に証明されている。図2に、(P,M)=(abdecf,cbfade)に対応する(P,M)パッキングを示す。
次に、ブロック集合Bの(P,M)パッキングのうち、チップ面積が最小となるパッキングを求める方法を説明する。このようなパッキングを(P,M)-optimalと呼ぶ。(P,M)-optimalは、接点に重みづけがされた有向無閉路グラフに対して、最長路アルゴリズムを適用することによってO(m)回の計算で得られる。
まず、シーケンス・ペア(P,M)の幾何学的制約(1)から、水平制約グラフGH=(V,E)を次のように定義する:
Figure 0004241582
ここで、V,V,Vは節点の集合、E,E,Eは枝の集合である。s,tは、それぞれ、涌出点(source)及び吸収点(sink)を表し、iはそれ以外の水平制約グラフGHの節点を表す。ш(x)は節点xの重みを表す。w(bk)はブロックbkの幅を表す。
垂直制約グラフGVは、幾何学的制約(2)の上下の位置関係と各ブロックbi(∈B)の高さh(bi)に基づいて同様に定義する。図3は(P,M)=(abdecf,cbfade)に対応する(P,M)パッキングの(a)水平制約グラフ、及び(b)垂直制約グラフである。何れのグラフも有向閉路を含まない。また、各ブロックの対(bi,bj)に対して、GH又はGVの何れか一方に辺が存在し、両方に辺が存在することはない。従って、各ブロックのx座標とy座標は、配置の制約を満たしつつ独立に決定することができ、その結果、重なりのないブロック配置が得られる。各モジュールbi(∈B)のx座標及びy座標は、それぞれ、グラフGH,GV内の涌出点sと節点iとの間の最長路(路上の節点の重みの和が最大の路)における節点i以外の節点の重みの和として決定される。同様に、チップの高さと幅は、それぞれ、グラフGH,GV内の涌出点sと吸収点tとの間の最長路における節点の重みの和として決定される。チップの幅と高さとは独立に最小化することができ、その結果得られるパッキングは(P,M)-optimalである。図4は最長路計算の結果得られたブロック配置の一例を示している。
〔3〕レイアウト作成装置1の動作の詳細
〔3−1〕処理全体の流れ
図5は、実施例1に係るレイアウト作成装置1によるレイアウト作成方法の全体の流れを表すフローチャートである。
まず、ユーザは、回路図データ20(ネットリストNLを含む。)及び部品レイアウト・データ21を入力し、回路図データ記憶手段2,部品レイアウト・ライブラリ3に保存する(S1)。回路図データ20には、ブロック集合B、ネットリストNL、及び、各部品と各ネットの回路図平面上の配置情報が含まれている。部品レイアウト・データ21には、部品集合Bに属する各部品biの幅w(bi)及び高さh(bi)が含まれている。
次に、シーケンス・ペア生成手段4は、回路図データ記憶手段2に保存されている回路図からシーケンス・ペア(P,M)を生成し、シーケンス・ペア記憶手段5に保存するシーケンス・ペアの抽出処理を行う(S2)。次に、配置制約設定手段6は、シーケンス・ペア記憶手段5に保存されたシーケンス・ペアを参照して、回路図データ記憶手段2に保存されている回路図から共線制約の抽出処理を行う(S3)。次に、優先順位決定手段8は、回路図に含まれる各ネットに対して、優先順位の作成処理を行う(S4)。
次に、ブロック配置手段9は、シーケンス・ペア記憶手段5に保存されたシーケンス・ペア、並びに配置制約記憶手段7に記憶された配置制約及び各ネットの優先順位に基づいて、冗長な共線制約の削除と配置圧縮処理を行う(S5)。これにより得られるレイアウト平面上のブロック配置は、初期配置としてブロック配置記憶手段10に保存される。
次に、シーケンス・ペア圧縮処理手段11は、上述したシーケンス・ペア法を用いて、ブロック配置記憶手段10に保存されているレイアウト平面上のブロックの初期配置に対しブロック配置の圧縮処理を行う(S6)。これにより圧縮されたブロック配置は、初期配置としてブロック配置記憶手段10に保存される。最後に、ブロック配置記憶手段10に保存された圧縮されたブロック配置が出力される(S7)。
以下、上記レイアウト作成方法における重要な処理について詳細に説明する。
〔3−2〕シーケンス・ペアの抽出処理
まず、シーケンス・ペア生成手段4は、ブロック集合Bに属するすべてのブロックbi(∈B)の順列P,Mの初期値を適当に与える。
次に、シーケンス・ペア生成手段4は、部品集合Cに属する各部品ci(∈C)について、回路図平面SCH上における代表点の座標(xsch(ci),ysch(ci))を抽出する。例えば、回路図データ記憶手段2に格納されている回路図が図6のような回路図であったとする。まず、各部品を代表点で置きかえると図7のようになる。図7においては、「●」で示された点が各部品の代表点を表し、各代表点間を接続する線分はネットを表している。
最後に、シーケンス・ペア生成手段4は、抽出した部品の座標(xsch(ci),ysch(ci))に基づいて、以下のような条件下でブロックbi(∈B)の順列P,Mの整列を行うことによって、シーケンス・ペアP,Mを作成する:
Figure 0004241582
この処理を、図6の回路図を例にとって具体的に説明すれば次のようになる。例えば、部品Q3について考える。部品Q3について、(数9)の条件1を満たす部品は、回路図平面上の部品Q3の位置に対して右側半平面における45°及び−45°の勾配を持つ2本の半直線に挟まれた領域内にある部品である。すなわち、図8において斜線で示された領域内にある部品(R1,C1,LO_I1,LO_I2,OUT1,OUT2,及びL_I)である。従って、これらの部品の順列Pにおける順位は、部品Q3の順位よりも後となる。また、これらの部品の順列Mにおける順位は、部品Q3の順位よりも後となる。
一方、部品Q3について、(数9)の条件2を満たす部品は、回路図平面上の部品Q3の位置に対して上側半平面における45°及び−45°の勾配を持つ2本の半直線に挟まれた領域内にある部品である。すなわち、図9において斜線で示された領域内にある部品(R1,R2,Q1,Q2,Q5,及びVCC)である。従って、これらの部品の順列Pにおける順位は、部品Q3の順位よりも前となる。また、これらの部品の順列Mにおける順位は、部品Q3の順位よりも後となる。
順列P,Mの整列は、通常のソート・アルゴリズムを使用して実行される。これにより、回路図における各部品ci(∈C)の位置関係はシーケンス・ペア(P,M)に取り込まれる。
〔3−3〕共線制約の抽出処理
まず、配置制約設定手段6には、所定の角度パラメータθ(0°<θ<45°)の値が与えられる。θの値は固定値としてもよいが、ユーザにより変更可能な値としてもよい。通常はθ=5°〜10°程度に設定することが好ましい。
次に、水平共線制約設定手段12は、部品集合Cに属する各部品の対(ci,cj)について、次の条件1〜3が満たされているか否かを判定する:
Figure 0004241582
部品の対(ci,cj)が上記条件1〜3を満たす場合には、ALIGNB(bi,bj)を設定し、配置制約記憶手段7に保存する。
また、垂直共線制約設定手段13は、部品集合Cに属する各部品の対(ci,cj)について、上記条件1,2及び次の条件4が満たされているか否かを判定する:
Figure 0004241582
部品の対(ci,cj)が上記条件1,2,4を満たす場合には、ALIGNL(bi,bj)を設定し、配置制約記憶手段7に保存する。
この処理の意味を図6の回路図を例にとって具体的に説明する。例えば、図6の部品Q10に着目した場合、部品Q10に対して上記条件3を満たす部品は、回路図平面上の部品Q10の位置に対して右側半平面におけるθ及び−θの勾配を持つ2本の半直線に挟まれた領域内にある部品である。すなわち、図10に示したように、部品Q7及び部品OUT2がこの条件を満たす。更に、条件1,2を課した場合、部品Q10に対して全ての条件を満たす部品はQ7であることが分かる。従って、ALIGNB(Q10,Q7)が設定される。
同様に、部品Q10に対して上記条件4を満たす部品は、回路図平面上の部品Q10の位置に対して右側半平面におけるθ及び−θの勾配を持つ2本の半直線に挟まれた領域内にある部品である。すなわち、図10に示したように、部品R2,Q6,Q9がこの条件を満たす。更に、条件1,2を課した場合、部品Q10に対して全ての条件を満たす部品はQ9であることが分かる。従って、ALIGNL(Q10,Q9)が設定される。
このようにして、回路図における部品の共線位置関係が、ALIGNB(bi,bj)及びALIGNL(bi,bk)として抽出される。尚、ALIGNB(bi,bj)及びALIGNL(bi,bk)の代わりにALIGNT(bi,bj),ALIGNCH(bi,bj)及びALIGNR(bi,bk),ALIGNCV(bi,bj)を用いてもよい。
〔3−4〕優先順位の作成処理
優先順位は、各部品間を接続するネットについて設定される。図11は、アナログ回路における共線制約の優先順位の決定方法の一例を表すフローチャートである。
まず、前提条件として、回路図データ20に基づいて、アナログ回路シミュレータ22によりこの回路の直流解析、及び小信号解析が既に実施されており、各ネットの電流値及び小信号振幅の値が算出されているものとする。
優先順位決定手段8は、まず、各共線制約ak=ALIGNχ(bi, bj)について、akに対するネットnk(bi, bj)の電流値の大きい順に整列する(S11)。ここで、χはB,T,CH,L,R,CVの何れかを表す。次に、優先順位決定手段8は、各共線制約akのうち、akに対するネットnk(bi, bj)の電流値が同じものについては、ネットnk(bi, bj)の小信号振幅が大きい順に整列する(S12)。次に、優先順位決定手段8は、各共線制約akのうち、akに対するネットnk(bi, bj)の電流値及び小信号振幅が同じものについては、bi, bjの位置の共線制約からの外れ距離が小さい順に整列する(S13)。最後に、優先順位決定手段8は、上記ステップS11〜S13で整列された順番に、共線制約akの優先順位を付与する(S14)。これらの優先順位は、共線制約akとともに配置制約記憶手段7に保存される。
また、図12は、デジタル回路における共線制約の優先順位の決定方法の一例を表すフローチャートである。
まず、前提条件として、回路図データ20に基づいて、デジタル回路シミュレータ23によりこの回路のタイミング解析が既に実施されており、各ネットの遅延の余裕度の値が算出されているものとする。
優先順位決定手段8は、まず、各共線制約ak=ALIGNχ(bi, bj)について、akに対するネットnk(bi, bj)の遅延の余裕度の大きい順に整列する(S21)。ここで、χはB,T,CH,L,R,CVの何れかを表す。次に、優先順位決定手段8は、各共線制約akのうち、akに対するネットnk(bi, bj)の遅延の余裕度が同じものについては、bi, bjの位置の共線制約からの外れ距離が小さい順に整列する(S22)。最後に、優先順位決定手段8は、上記ステップS21,S22で整列された順番に、共線制約akの優先順位を付与する(S23)。これらの優先順位は、共線制約akとともに配置制約記憶手段7に保存される。
〔3−5〕冗長な共線制約の削除と配置圧縮処理
〔3−5−1〕全体の処理の流れ
図13は、ブロック配置手段9による冗長な共線制約の削除と配置圧縮処理の全体の流れを表すフローチャートである。まず、ブロック配置手段9は、後述する配置圧縮処理を実行する(S31)。配置圧縮処理の結果、冗長な共線制約akがあると、当該共線制約akを含む一群の共線制約{ak}が何度も(無限循環的に)参照されるため、それら共線制約ak(∈{ak})の参照回数c(ak)は予め設定された閾値cmaxに達する。
そこで、ブロック配置手段9は、参照回数c(ak)が閾値cmaxに達した共線制約があるか否かを検査し(S32)、ある場合には、閾値cmaxに達した一群の共線制約{ak}のなかで最も優先順位が低いものを削除する(S33)。そして、冗長な共線制約を1つだけ削除した状態で、再びステップS31に戻る。
これにより、冗長な共線制約が存在すればそれは順次削除されてゆき、最後に冗長性が削除された共線制約のみが残る。ステップS32で、参照回数c(ak)が閾値cmaxに達した共線制約がなくなった時点で処理を終了する。
〔3−5−2〕配置圧縮処理
次に、図13のステップS31における配置圧縮処理について詳細に説明する。図14〜図16は、配置圧縮処理の流れを表すフローチャートである。まず、ブロック配置手段9は、全ブロックbi (∀bi∈B)の位置座標を(0,0)に初期化する(S41)。これにより、例えば、図17(a)に示したように、全てのブロックはレイアウト平面の左下隅の原点位置に重ねて配置された状態となる。
そして、ブロック配置手段9は、全ブロックbi (∀bi∈B)の配置を未決定とする(S42)。ここで、ブロック配置手段9は、ブロックbiの配置が決定されたか否かを表示するフラグとして変数fixxy(bi)を有している。fixxy(bi)=0のときはブロックbiの配置は未決定、fixxy(bi)=1のときはブロックbiの配置は決定済みを表す。ステップS42において、全てのfixxy(bi)(∀bi∈B)は0に初期化される。更に、制約参照計数手段16は、全ての共線制約ALIGN(ak)の参照回数c(ak)を0に初期化する(S43)。
次に、配置ブロック選択手段14は、参照する順列Mのブロックの順位を表す変数iを1に初期化する(S44)。
次に、配置ブロック選択手段14は、順列Mのブロックmi (∈B)を選択し、ブロックmiの配置を決定済み(fixxy(mi)=1)とする(S45)。
次いで、配置制約処理手段15は、ブロック集合Bから、ブロックmi以外の1つのブロックbk(≠mi)を選択する(S46)。そして、ブロックmiとブロックbkの間に次の関係が成り立つか否か、すなわち配置制約が存在するか否かを検査する(S47):
Figure 0004241582
ここで、∃xF(x)は、F(x)であるxが存在する(存在作用素)ことを表す。
関係式(7)が成り立つ場合、制約参照計数手段16は、ブロックmiとブロックbkの間の配置制約akの参照回数c(ak)を1だけ増加させる(S48)。その結果、c(ak)が閾値cmaxに達した場合には、ステップS55に移る。c(ak)が閾値cmaxより小さければ、配置制約処理手段15は、ブロックmi,bkのレイアウト平面上の座標(x(mi),y(mi)),(x(bk),y(bk))を検査し、共線制約akが充足されているかどうかを調べる(S50)。共線制約akが充足されていれば、ステップS55に移る。共線制約akが充足されていなければ、配置制約処理手段15は、ブロックmi,bkが共線制約を満たすように、次の手順に従って何れか一方のブロックを移動する:
Figure 0004241582
ここで、ブロックbkの順列Mにおける順序β(bk)がブロックmiの順列Mにおける順序iよりも後であれば(S52)、ステップS55に移行する。一方、β(bk)<iの場合には(S52)、選択順位引戻手段17は、系列Mのブロックbk及びブロックbkよりも順位が後の全てのブロックbj(β(bk) ≦ j )を配置未決定(fixxy(bj)=0)とする(S53)。そして、iをβ(bk)とし、ステップS45に戻る。
ステップS55においては、配置制約処理手段15は、mi以外の全てのブロックbkを選択したか否かを判定する(S55)。まだ未選択のものがあれば、ステップS46に戻る。全て選択された場合には、ステップS56に移行する。
ステップS56において、ブロック配置移動手段19は、配置未決定のブロックbj (fixxy(bi)=0)を選択する(S56)。
そして、選択したブロックbjの順列Pにおける順位α(bj)がブロックmiの順列Pにおける順位α(mi)よりも前(α(bj)<α(mi))であれば(S57)、ブロックbjのy座標y(bj)をmax(y(bj), y(mi)+h(mi))とする(S58)。そうでなければ、ブロックbjのx座標x(bj)をmax(x(bj), x(mi)+w(mi))とする(S59)。
そして、全ての配置未決定ブロックbjについての処理が終わるまで(S60)、ステップS56〜S59を繰り返す。
全ての配置未決定ブロックbjについてステップS56〜S59の処理が終わると(S60)、配置ブロック選択手段14はi=Nか否かを判定する(S61)。i=Nの場合には、配置圧縮処理を終了する。i<Nの場合には、配置ブロック選択手段14はiを1だけ増加させて、ステップS45に戻る。
以上の処理の結果、ブロック集合Bの全てのブロックの初期配置が確定する。確定した初期配置は、ブロック配置記憶手段10に保存される。
尚、以上の配置圧縮処理をわかりやすく説明するため、図17に配置圧縮処理の一例を示した。図17においては、ブロックb〜bの配置を行う。シーケンス・ペア(P,M)は、P=(3,1,2,4),M=(1,2,3,4)が与えられているとする。初期状態では図17(a)の状態にある。
まず、順列Mの1番目のブロックbについて配置圧縮処理を行うと、各ブロックの配置は図17(b)のようになる。さらに、順列Mの2番目のブロックbについて配置圧縮処理を行うと、各ブロックの配置は図17(c)のようになる。以下、順列Mの3番目のブロックb、順列Mの4番目のブロックbについて配置圧縮処理を行っても各ブロックの配置は図17(c)の状態に維持される。
尚、この場合において、仮に共線制約としてALIGNT(2,4)が課されている場合、順列Mの2番目のブロックbについて配置圧縮処理が終了した段階で、各ブロックの配置は図17(d)のようになる。
〔4〕具体例
最後に、実際に本実施例に係るレイアウト作成装置1により、図6の回路図のブロック配置を行った例を図18に示す。図18は、ブロック配置手段9により出力される初期配置である。この初期配置に基づき、シーケンス・ペア圧縮処理手段11によって配置圧縮処理を行うと、図19のようなレイアウト配置が得られる。
一方、比較例として、初期配置を行わずに、従来の方法でブロック配置を行った一例を図20に示す。図19と図20を比べると、本実施例に係るレイアウト作成装置1は、初期配置を行ってからシーケンス・ペア圧縮処理手段11による配置圧縮処理を実行することにより、より望ましいレイアウト配置が得られることが分かる。
本発明の実施例1に係るレイアウト作成装置の構成を表すブロック図である。 (P,M)=(abdecf,cbfade)に対応する(P,M)パッキングを示す図である。 (P,M)=(abdecf,cbfade)に対応する(P,M)パッキングの(a)水平制約グラフ、及び(b)垂直制約グラフである。 最長路計算の結果得られたブロック配置の一例を示す図である。 実施例1に係るレイアウト作成装置1によるレイアウト作成方法の全体の流れを表すフローチャートである。 回路図データ記憶手段2に格納されている回路図の一例である。 図6の回路図の各部品を代表点で表した図である。 回路図からのシーケンス・ペアの抽出方法を説明する図である。 回路図からのシーケンス・ペアの抽出方法を説明する図である。 回路図からの共線制約の抽出方法を説明する図である。 アナログ回路における共線制約の優先順位の決定方法の一例を表すフローチャートである。 デジタル回路における共線制約の優先順位の決定方法の一例を表すフローチャートである。 ブロック配置手段9による冗長な共線制約の削除と配置圧縮処理の全体の流れを表すフローチャートである。 配置圧縮処理の流れを表すフローチャートである。 配置圧縮処理の流れを表すフローチャートである。 配置圧縮処理の流れを表すフローチャートである。 配置圧縮処理の一例を示す図である。 図6の回路図のブロック配置を行った例である。 図18の初期配置に基づき、シーケンス・ペア圧縮処理手段11によって配置圧縮処理を行った結果である。 図6の回路図のブロック配置を、初期配置を行わずに、従来の方法でブロック配置を行った一例である。 従来のレイアウト作成装置のシステムブロック図である。 関係づけられた部品のリスト構造の一例を示した図である。 図22の部品のリストから生成される部品の配置関係を表す図である。 設計者により部品配置上の制約が記注された回路図の例である。
符号の説明
1 レイアウト作成装置
2 回路図データ記憶手段
3 部品レイアウト・ライブラリ
4 シーケンス・ペア生成手段
5 シーケンス・ペア記憶手段
6 配置制約設定手段
7 配置制約記憶手段
8 優先順位決定手段
9 ブロック配置手段
10 ブロック配置記憶手段
11 シーケンス・ペア圧縮処理手段
12 水平共線制約設定手段
13 垂直共線制約設定手段
14 配置ブロック選択手段
15 配置制約処理手段
16 制約参照計数手段
17 選択順位引戻手段
18 配置制約削除手段
19 ブロック配置移動手段
20 回路図データ
21 部品レイアウト・データ
22 アナログ回路シミュレータ
23 デジタル回路シミュレータ
24 ブロック配置レイアウト・データ

Claims (13)

  1. 複数の部品、各部品間を接続するネット、並びに各部品及び各ネットの平面上の位置情報を有する回路図データから、当該回路図データに含まれる部品の集合(以下、「部品集合」という。)Cに属する各部品ci(i=1,…,N)のレイアウトであるブロックbiをレイアウト平面上に配置し、当該回路図データに対応するレイアウト・データを作成するレイアウト作成装置であって、
    それぞれが独立なブロックbi(i=1,…,N)の順列P及びMの対であって、全ての前記ブロックをレイアウト平面上に配置する場合の各ブロックの位置関係を(数1)に従って特定するシーケンス・ペア(P,M)の生成を行うシーケンス・ペア生成手段と、
    前記シーケンス・ペア生成手段が生成するシーケンス・ペア(P,M)により指定された位置関係を満たすように、すべてのブロックbi(i=1,…,N)をレイアウト平面上に配置することで、レイアウト・データを生成するブロック配置手段と、
    を備え、
    前記シーケンス・ペア生成手段は、前記回路図データに含まれる各部品ciを回路図平面上において代表点(xsch(ci),ysch(ci))で置き換え、回路図平面上におけるこれらの代表点(xsch(ci),ysch(ci))の位置関係に基づいて各部品ciに対応するブロックbiのシーケンス・ペア(P,M)の生成を行うものであり、
    ネットで接続された前記部品集合Cに属する任意の2つの部品c i ,c j (∈C)について、前記部品c i ,c j の回路図平面上の座標(x sch (c i ),y sch (c i )),(x sch (c j ),y sch (c j ))の位置関係に基づいて、前記部品c i ,c j に対応するブロックb i ,b j のレイアウト平面上における配置制約a(b i ,b j )を設定する配置制約設定手段を備え、
    前記ブロック配置手段は、前記シーケンス・ペア生成手段が生成するシーケンス・ペア(P,M)により指定された位置関係を満たし、且つ前記配置制約設定手段により設定される配置制約を満たすように、すべてのブロックb i (i=1,…,N)をレイアウト平面上に配置することでレイアウト・データを生成するものであって、
    順列M(又はP)の順位に従って、順次ブロックb i を選択する配置ブロック選択手段と、
    前記配置ブロック選択手段により選択されたブロックb i について、他のブロックb j との配置制約a(b i ,b j )が設定されている場合、当該配置制約a(b i ,b j )に従って当該ブロックb j 又は前記ブロックb i の位置を移動させる配置制約処理手段と、
    前記配置制約処理手段により前記ブロックb i についての配置制約がすべて満たされた後に、前記ブロックb i よりも順列M(又はP)の順位が後である全てのブロックについて、前記ブロックb i に対してシーケンス・ペア(P,M)により(数1)により指定される前記ブロックb i に対する位置関係が満たされるようにその位置又は前記ブロックb i の位置を移動させるブロック配置移動手段と、を備えていること
    を特徴とするレイアウト作成装置。
    Figure 0004241582
  2. 前記シーケンス・ペア生成手段は、
    前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、
    部品cjの回路図平面上の代表点の座標(以下、「回路図平面上の座標」という。)(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の右側半平面における45度及び−45度の勾配を持つ2本の半直線に挟まれる領域内に属する場合、順列Pにおける前記部品cjに対するブロックbjの順序α(bj)(以下同様に、順列Pにおけるブロックbxの順序をα(bx)と記す。)を前記部品ciに対するブロックbiの順序α(bi)よりも後とし、順列Mにおけるブロックbjの順序β(bj)(以下同様に、順列Mにおけるブロックbxの順序をβ(bx)と記す。)をブロックbiの順序β(bi)よりも後とするとともに、
    前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の上側半平面における45度及び−45度の勾配を持つ2本の半直線に挟まれる領域内に属する場合、順列Pにおけるブロックbjの順序α(bj)をブロックbiの順序α(bi)よりも前とし、順列Mにおけるブロックbjの順序β(bj)をブロックbiの順序β(bi)よりも後とするように各順列P,Mについて各ブロックの整列を行うことによりシーケンス・ペア(P,M)の生成を行うこと
    を特徴とする請求項1記載のレイアウト作成装置。
  3. 前記配置制約設定手段は、
    ネットで接続された前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の右側半平面における−45度より大きく45度未満の所定の角度の正負の勾配を持つ2本の半直線に挟まれる領域内に属し、且つ、順列Pにおけるブロックbi,bjの順序α(bi),α(bj)及び順列Mにおけるブロックbi,bjの順序β(bi),β(bj)に対してα(bi)<α(bk)<α(bj)且つβ(bi)<β(bk)<β(bj)となるブロックbkが存在しない場合、ブロックbiとブロックbjの下辺又は上辺若しくは代表点を水平直線上に揃える配置制約(以下、「水平共線制約」という。)を設定する水平共線制約設定手段
    を備えていることを特徴とする請求項1又は2記載のレイアウト作成装置。
  4. 前記配置制約設定手段は、
    ネットで接続された前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の上側半平面における45度より大きく135度未満の所定の角度の正負の勾配を持つ2本の半直線に挟まれる領域内に属し、且つ、順列Pにおけるブロックbi,bjの順序α(bi),α(bj)及び順列Mにおけるブロックbi,bjの順序β(bi),β(bj)に対してα(bi)>α(bk)>α(bj)且つβ(bi)<β(bk)<β(bj)となるブロックbkが存在しない場合、ブロックbiとブロックbjの左辺又は右辺若しくは代表点を垂直直線上に揃える配置制約(以下、「垂直共線制約」という。)を設定する垂直共線制約設定手段
    を備えていることを特徴とする請求項1又は2記載のレイアウト作成装置。
  5. 前記配置ブロック選択手段により選択されたブロックbiについて、他のブロックbjとの配置制約a(bi,bj)が設定されている場合において、当該ブロックbjの順列M(又はP)における順位β(bj)(又はα(bj))が、前記ブロックbiの順列M(又はP)における順位β(bi)(又はα(bi))よりも前である場合、前記配置ブロック選択手段が選択するブロックの順列M(又はP)の順位を順位β(bj)(又はα(bj))に戻す選択順位引戻手段と、
    前記各配置制約a(bi,bj)に対して、当該配置制約a(bi,bj)が前記配置制約処理手段により参照された回数を計数する制約参照計数手段と、
    前記配置制約処理手段により参照された回数が所定の回数に達した配置制約a(bi,bj)を削除する配置制約削除手段と、
    を備えていることを特徴とする請求項1乃至4の何れか一記載のレイアウト作成装置。
  6. 前記各配置制約a(bi,bj)により配置制約されるブロック対(bi,bj)間を接続するネットに対して、配置制約の必要性を表す優先順位を設定する優先順位設定手段を備え、
    前記配置制約削除手段は、前記配置制約処理手段により参照された回数が所定の回数に達した配置制約a(bi,bj)について、前記優先順位設定手段により設定された優先順位が最も低いものを削除すること
    を特徴とする請求項5記載のレイアウト作成装置。
  7. 複数の部品、各部品間を接続するネット、並びに各部品及び各ネットの平面上の位置情報を有する回路図データを記憶する回路図データ記憶手段と、部品のレイアウトであるブロックの形状情報を記憶する部品レーアウト・ライブラリと、シーケンス・ペア記憶手段と、ブロック配置記憶手段と、配置制約記憶手段と、を備えたコンピュータにより、前記回路図データから、当該回路図データに含まれる部品の集合(以下、「部品集合」という。)Cに属する各部品ci(i=1,…,N)のブロックbiをレイアウト平面上に配置し、当該回路図データに対応するレイアウト・データを作成するレイアウト作成方法であって、
    前記回路図データ記憶手段に記憶された前記回路図データに基づき、それぞれが独立な前記ブロックbi(i=1,…,N)の順列P及びMの対であって、全ての前記ブロックをレイアウト平面上に配置する場合の各ブロックの位置関係を(数2)に従って特定するシーケンス・ペア(P,M)のデータを生成し、前記シーケンス・ペア記憶手段に保存するシーケンス・ペア生成ステップと、
    前記シーケンス・ペア記憶手段に保存された前記シーケンス・ペア(P,M)のデータにより指定される位置関係を満たすように、すべての前記ブロックbi(i=1,…,N)をレイアウト平面上に配置することで、前記レイアウト・データを生成し前記ブロック配置記憶手段に保存するブロック配置ステップと、
    を有しており、
    前記シーケンス・ペア生成ステップにおいて、前記回路図データに含まれる前記各部品ciを回路図平面上において代表点(xsch(ci),ysch(ci))で置き換え、回路図平面上におけるこれらの代表点(xsch(ci),ysch(ci))の位置関係に基づいて前記各部品ciに対応する前記ブロックbiのシーケンス・ペア(P,M)の生成を行い、
    さらに前記シーケンス・ペア生成ステップの後に、
    前記回路図データ記憶手段に記憶された前記回路図データを参照することにより、ネットで接続された前記部品集合Cに属する任意の2つの部品c i ,c j (∈C)について、前記部品c i ,c j の回路図平面上の座標(x sch (c i ),y sch (c i )),(x sch (c j ),y sch (c j ))の位置関係に基づいて、前記部品c i ,c j に対応するブロックb i ,b j のレイアウト平面上における配置制約a(b i ,b j )を設定し、前記配置制約記憶手段に保存する配置制約設定ステップを有し、
    前記ブロック配置ステップは、前記シーケンス・ペア記憶手段に保存されたシーケンス・ペア(P,M)により指定された位置関係を満たし、且つ前記配置制約記憶手段に保存された配置制約を満たすように、すべてのブロックb i (i=1,…,N)をレイアウト平面上に配置することでレイアウト・データを生成し前記ブロック配置記憶手段に保存する処理を行うステップであって、
    順列M(又はP)の順位に従って、順次ブロックb i を選択する配置ブロック選択ステップと、
    前記配置ブロック選択ステップで選択されるブロックb i について、他のブロックb j との配置制約a(b i ,b j )が設定されている場合、当該配置制約a(b i ,b j )に従って当該ブロックb j 又は前記ブロックb i の位置を移動させる配置制約処理ステップと、
    前記配置制約処理ステップにおいて前記ブロックb i についての配置制約がすべて満たされた後に、前記ブロックb i よりも順列M(又はP)の順位が後である全てのブロックについて、前記ブロックb i に対してシーケンス・ペア(P,M)により(数2)により指定される前記ブロックb i に対する位置関係が満たされるようにその位置又は前記ブロックb i の位置を移動させるブロック配置移動ステップと、
    を有していることを特徴とするレイアウト作成方法。
    Figure 0004241582
  8. 前記シーケンス・ペア生成ステップにおいて、
    前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、
    前記部品cjの回路図平面上の代表点の座標(以下、「回路図平面上の座標」という。)(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の右側半平面における45度及び−45度の勾配を持つ2本の半直線に挟まれる領域内に属する場合、順列Pにおける前記部品cjに対するブロックbjの順序α(bj)(以下同様に、順列Pにおけるブロックbxの順序をα(bx)と記す。)を前記部品ciに対するブロックbiの順序α(bi)よりも後とし、順列Mにおけるブロックbjの順序β(bj)(以下同様に、順列Mにおけるブロックbxの順序をβ(bx)と記す。)をブロックbiの順序β(bi)よりも後とするとともに、
    前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の上側半平面における45度及び−45度の勾配を持つ2本の半直線に挟まれる領域内に属する場合、順列Pにおけるブロックbjの順序α(bj)をブロックbiの順序α(bi)よりも前とし、順列Mにおけるブロックbjの順序β(bj)をブロックbiの順序β(bi)よりも後とするように各順列P,Mについて各ブロックの整列を行うことによりシーケンス・ペア(P,M)の生成を行うこと
    を特徴とする請求項7記載のレイアウト作成方法。
  9. 前記配置制約設定ステップにおいて、
    ネットで接続された前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の右側半平面における−45度より大きく45度未満の所定の角度の正負の勾配を持つ2本の半直線に挟まれる領域内に属し、且つ、順列Pにおけるブロックbi,bjの順序α(bi),α(bj)及び順列Mにおけるブロックbi,bjの順序β(bi),β(bj)に対してα(bi)<α(bk)<α(bj)且つβ(bi)<β(bk)<β(bj)となるブロックbkが存在しない場合、ブロックbiとブロックbjの下辺又は上辺若しくは代表点を水平直線上に揃える配置制約(以下、「水平共線制約」という。)を設定する水平共線制約設定ステップ
    を有していることを特徴とする請求項7又は8記載のレイアウト作成方法。
  10. 前記配置制約設定ステップにおいて、
    ネットで接続された前記部品集合Cに属する任意の2つの部品ci,cj(∈C)について、前記部品cjの回路図平面上の座標(xsch(cj),ysch(cj))が、前記部品ciの回路図平面上の座標(xsch(ci),ysch(ci))の上側半平面における45度より大きく135度未満の所定の角度の正負の勾配を持つ2本の半直線に挟まれる領域内に属し、且つ、順列Pにおけるブロックbi,bjの順序α(bi),α(bj)及び順列Mにおけるブロックbi,bjの順序β(bi),β(bj)に対してα(bi)>α(bk)>α(bj)且つβ(bi)<β(bk)<β(bj)となるブロックbkが存在しない場合、ブロックbiとブロックbjの左辺又は右辺若しくは代表点を垂直直線上に揃える配置制約(以下、「垂直共線制約」という。)を設定する垂直共線制約設定ステップ
    を有していることを特徴とする請求項7又は8記載のレイアウト作成方法。
  11. 前記配置ブロック選択ステップにおいて選択されるブロックbiについて、他のブロックbkとの配置制約a(bi,bj)が設定されている場合において、当該ブロックbjの順列M(又はP)における順位β(bj)(又はα(bj))が、前記ブロックbiの順列M(又はP)における順位β(bi)(又はα(bi))よりも前である場合、前記配置ブロック選択ステップにおいて選択されるブロックの順列M(又はP)の順位を順位β(bj)(又はα(bj))に戻す選択順位引戻ステップと、
    前記各配置制約a(bi,bj)に対して、当該配置制約a(bi,bj)が前記配置制約処理ステップにおいて参照された回数を計数する制約参照計数ステップと、
    前記配置制約処理ステップにおいて参照された回数が所定の回数に達した配置制約a(bi,bj)を削除する配置制約削除ステップと、
    を有していることを特徴とする請求項7乃至10の何れか一記載のレイアウト作成方法。
  12. 前記各配置制約a(bi,bj)により配置制約されるブロック対(bi,bj)間を接続するネットに対して、配置制約の必要性を表す優先順位を設定する優先順位設定ステップを有し、
    前記配置制約削除ステップにおいては、前記配置制約処理ステップにおいて参照された回数が所定の回数に達した配置制約a(bi,bj)について、前記優先順位設定ステップにおいて設定された優先順位が最も低いものを削除すること
    を特徴とする請求項11記載のレイアウト作成方法。
  13. 請求項7乃至12のいずれか一のレイアウト作成方法をコンピュータに実行させることを特徴とするプログラム。
JP2004332031A 2004-11-16 2004-11-16 レイアウト作成装置及びレイアウト作成方法 Expired - Fee Related JP4241582B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004332031A JP4241582B2 (ja) 2004-11-16 2004-11-16 レイアウト作成装置及びレイアウト作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004332031A JP4241582B2 (ja) 2004-11-16 2004-11-16 レイアウト作成装置及びレイアウト作成方法

Publications (2)

Publication Number Publication Date
JP2006146333A JP2006146333A (ja) 2006-06-08
JP4241582B2 true JP4241582B2 (ja) 2009-03-18

Family

ID=36625970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004332031A Expired - Fee Related JP4241582B2 (ja) 2004-11-16 2004-11-16 レイアウト作成装置及びレイアウト作成方法

Country Status (1)

Country Link
JP (1) JP4241582B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009000934A1 (en) * 2007-06-28 2008-12-31 Sagantec Israel Ltd Semiconductor layout modification method based on design rule and user constraints
CN116451324A (zh) * 2023-04-17 2023-07-18 中国建筑装饰集团有限公司 一种适用于基层结构块材饰面的三维排版系统及使用方法

Also Published As

Publication number Publication date
JP2006146333A (ja) 2006-06-08

Similar Documents

Publication Publication Date Title
US10268795B2 (en) Method and system for timing optimization with detour prediction
US8977995B1 (en) Timing budgeting of nested partitions for hierarchical integrated circuit designs
US7739646B2 (en) Analog and mixed signal IC layout system
US11120191B2 (en) Multi-tier co-placement for integrated circuitry
EP0055365A2 (en) Topology generation process for automated circuit design
US20030005398A1 (en) Timing-driven global placement based on geometry-aware timing budgets
US10922461B2 (en) Method and apparatus for performing rewind structural verification of retimed circuits driven by a plurality of clocks
US7089521B2 (en) Method for legalizing the placement of cells in an integrated circuit layout
US6810506B1 (en) Methodology for stitching reduced-order models of interconnects together
Coudert et al. Incremental cad
US9147030B2 (en) Multiple-instantiated-module (mim) aware pin assignment
US6868374B1 (en) Method of power distribution analysis for I/O circuits in ASIC designs
US6519745B1 (en) System and method for estimating capacitance of wires based on congestion information
Chen et al. Routability-driven blockage-aware macro placement
CN109074412B (zh) 使用自动焊接和自动克隆的电路中的连接的交互式布线
US10417374B1 (en) Method and apparatus for performing register retiming by utilizing native timing-driven constraints
US9824177B1 (en) Method and apparatus for verifying structural correctness in retimed circuits
Chen et al. Simultaneous timing-driven placement and duplication
US10489535B2 (en) Method and apparatus for reducing constraints during rewind structural verification of retimed circuits
JP4241582B2 (ja) レイアウト作成装置及びレイアウト作成方法
US20230325574A1 (en) Method for Automated Standard Cell Design
US8504953B2 (en) Schematic generation visualization aid for netlists comprising analog circuits
US20040003363A1 (en) Integrated circuit design and manufacture utilizing layers having a predetermined layout
US7584445B2 (en) Sequence-pair creating apparatus and sequence-pair creating method
Chen et al. Simultaneous placement with clustering and duplication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060602

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080916

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081107

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: 20081216

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: 20081222

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

Free format text: PAYMENT UNTIL: 20120109

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