IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧

特許7702927パーツの自動配置方法およびパーツの自動配置プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-26
(45)【発行日】2025-07-04
(54)【発明の名称】パーツの自動配置方法およびパーツの自動配置プログラム
(51)【国際特許分類】
   G06F 30/392 20200101AFI20250627BHJP
   H10D 89/10 20250101ALI20250627BHJP
【FI】
G06F30/392
H10D89/10 C
【請求項の数】 6
(21)【出願番号】P 2022154719
(22)【出願日】2022-09-28
(65)【公開番号】P2024048673
(43)【公開日】2024-04-09
【審査請求日】2024-09-17
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】100088672
【弁理士】
【氏名又は名称】吉竹 英俊
(74)【代理人】
【識別番号】100088845
【弁理士】
【氏名又は名称】有田 貴弘
(72)【発明者】
【氏名】瓜生 勝美
(72)【発明者】
【氏名】大久野 幸史
(72)【発明者】
【氏名】野村 典嗣
【審査官】松浦 功
(56)【参考文献】
【文献】特開平09-160941(JP,A)
【文献】特開平09-259155(JP,A)
【文献】特開平11-045942(JP,A)
【文献】特開2003-085224(JP,A)
【文献】特開2006-164219(JP,A)
【文献】特開2006-309748(JP,A)
【文献】特開2012-212154(JP,A)
【文献】米国特許第08578314(US,B1)
【文献】米国特許出願公開第2010/0115484(US,A1)
【文献】米国特許出願公開第2015/0143309(US,A1)
【文献】米国特許出願公開第2018/0173090(US,A1)
【文献】米国特許出願公開第2019/0179993(US,A1)
【文献】米国特許出願公開第2020/0151298(US,A1)
【文献】韓国公開特許第10-2017-0078775(KR,A)
【文献】韓国公開特許第10-2018-0041765(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 -30/398
H10D 89/10
(57)【特許請求の範囲】
【請求項1】
複数種類のパーツをコンピュータ支援設計ツールで設定される配置エリアに自動で配置するパーツの自動配置方法であって、
前記複数種類のパーツのそれぞれのパーツは、前記配置エリアの互いに直交する第1の方向および第2の方向にそれぞれ平行な辺を有する矩形状であって、
(a)前記パーツごとに設定される前記パーツに隣接して配置できる隣接配置パーツを示すパーツ境界条件を取得するパーツ条件取得工程と、
(b)前記パーツごとに設定される前記配置エリアへの配置順を取得するパーツ配置順取得工程と、
(c)前記配置エリアに設定される前記第1の方向または前記第2の方向に平行な境界線により隔てられる2つの領域に配置できる境界パーツを示す境界線境界条件を取得する境界線取得工程と、
(d)前記パーツ境界条件と前記境界線境界条件とを比較し、一致した場合に前記パーツのストレッチ設定の有無を確認するストレッチ設定確認工程と、
(e)前記ストレッチ設定がある場合、前記パーツ境界条件に基づいて、前記パーツの前記境界線上での連続配置の可否を確認する連続配置確認工程と、
(f)前記パーツの前記連続配置が可能な場合に、前記境界線の長さに基づいて前記パーツを元のパーツサイズから整数倍ストレッチしてストレッチパーツとするストレッチ工程と、
(g)前記ストレッチパーツを配置するパーツ配置工程と、
(h)前記パーツ配置工程の後、前記境界線および前記境界線境界条件を更新する更新工程と、を備え、
前記工程(a)~(h)を繰り返すことで、前記複数種類のパーツを前記配置エリアに自動で配置する、パーツの自動配置方法。
【請求項2】
複数種類のパーツをコンピュータ支援設計ツールで設定される配置エリアに自動で配置するパーツの自動配置方法であって、
前記複数種類のパーツのそれぞれのパーツは、前記配置エリアの互いに直交する第1の方向および第2の方向にそれぞれ平行な辺を有する矩形状であって、
(a)前記パーツごとに設定される前記パーツに隣接して配置できる隣接配置パーツを示すパーツ境界条件を取得するパーツ条件取得工程と、
(b)前記パーツごとに設定される前記配置エリアへの配置順を取得するパーツ配置順取得工程と、
(c)前記配置エリアに設定される前記第1の方向または前記第2の方向に平行な境界線により隔てられる2つの領域に配置できる境界パーツを示す境界線境界条件を取得する境界線取得工程と、
(d)前記パーツ境界条件と前記境界線境界条件とを比較し、一致した場合に前記パーツのアレイ設定の有無を確認するアレイ設定確認工程と、
(e)前記アレイ設定がある場合、前記パーツ境界条件に基づいて、前記パーツの前記境界線上での連続配置の可否を確認する連続配置確認工程と、
(f)前記パーツの前記連続配置が可能な場合に、前記境界線の長さに基づいて前記パーツをパーツサイズの整数倍の個数のアレイとして配置するアレイ配置のアレイ数を計算するアレイ数計算工程と、
(g)前記アレイ数に基づいて前記パーツをアレイ配置するアレイ配置工程と、
(h)前記アレイ配置工程の後、前記境界線および前記境界線境界条件を更新する更新工程と、を備え、
前記工程(a)~(h)を繰り返すことで、前記複数種類のパーツを前記配置エリアに自動で配置する、パーツの自動配置方法。
【請求項3】
前記工程(d)において、前記パーツの境界条件と前記境界線境界条件とが一致しない場合に、
(i)前記パーツを前記配置順が前記パーツの次である異なる種類のパーツに変更するパーツ種類変更工程を備える、請求項1または請求項2記載のパーツの自動配置方法。
【請求項4】
複数種類のパーツをコンピュータ支援設計ツールで設定される配置エリアに自動で配置するステップをコンピュータに実行させるパーツの自動配置プログラムであって、
前記複数種類のパーツのそれぞれのパーツは、前記配置エリアの互いに直交する第1の方向および第2の方向にそれぞれ平行な辺を有する矩形状であって、
(a)前記パーツごとに設定される前記パーツに隣接して配置できる隣接配置パーツを示すパーツ境界条件を取得するパーツ条件取得ステップと、
(b)前記パーツごとに設定される前記配置エリアへの配置順を取得するパーツ配置順取得ステップと、
(c)前記配置エリアに設定される前記第1の方向または前記第2の方向に平行な境界線により隔てられる2つの領域に配置できる境界パーツを示す境界線境界条件を取得する境界線取得ステップと、
(d)前記パーツ境界条件と前記境界線境界条件とを比較し、一致した場合に前記パーツのストレッチ設定の有無を確認するストレッチ設定確認ステップと、
(e)前記ストレッチ設定がある場合、前記パーツ境界条件に基づいて、前記パーツの前記境界線上での連続配置の可否を確認する連続配置確認ステップと、
(f)前記パーツの前記連続配置が可能な場合に、前記境界線の長さに基づいて前記パーツを元のパーツサイズから整数倍ストレッチしてストレッチパーツとするストレッチ工程と、
(g)前記ストレッチパーツを配置するパーツ配置ステップと、
(h)前記パーツ配置ステップの後、前記境界線および前記境界線境界条件を更新する更新ステップと、を備え、
前記ステップ(a)~(h)を繰り返すことで、前記複数種類のパーツを前記配置エリアに自動で配置する、パーツの自動配置プログラム。
【請求項5】
複数種類のパーツをコンピュータ支援設計ツールで設定される配置エリアに自動で配置するステップをコンピュータに実行させるパーツの自動配置プログラムであって、
前記複数種類のパーツのそれぞれのパーツは、前記配置エリアの互いに直交する第1の方向および第2の方向にそれぞれ平行な辺を有する矩形状であって、
(a)前記パーツごとに設定される前記パーツに隣接して配置できる隣接配置パーツを示すパーツ境界条件を取得するパーツ条件取得ステップと、
(b)前記パーツごとに設定される前記配置エリアへの配置順を取得するパーツ配置順取得ステップと、
(c)前記配置エリアに設定される前記第1の方向または前記第2の方向に平行な境界線により隔てられる2つの領域に配置できる境界パーツを示す境界線境界条件を取得する境界線取得ステップと、
(d)前記パーツ境界条件と前記境界線境界条件とを比較し、一致した場合に前記パーツのアレイ設定の有無を確認するステップと、
(e)前記アレイ設定がある場合、前記パーツ境界条件に基づいて、前記パーツの前記境界線上での連続配置の可否を確認する連続配置確認ステップと、
(f)前記パーツの前記連続配置が可能な場合に、前記境界線の長さに基づいて前記パーツをパーツサイズの整数倍の個数のアレイとして配置するアレイ配置のアレイ数を計算するアレイ数計算工程と、
(g)前記アレイ数に基づいて前記パーツをアレイ配置するアレイ配置ステップと、
(h)前記アレイ配置ステップの後、前記境界線および前記境界線境界条件を更新する更新ステップと、を備え、
前記ステップ(a)~(h)を繰り返すことで、前記複数種類のパーツを前記配置エリアに自動で配置する、パーツの自動配置プログラム。
【請求項6】
前記ステップ(d)において、前記パーツの境界条件と前記境界線境界条件とが一致しない場合に、
(i)前記パーツを前記配置順が前記パーツの次である異なる種類のパーツに変更するパーツ種類変更ステップを備える、請求項4または請求項5記載のパーツの自動配置プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、パーツの自動配置方法に関し、特に、半導体チップを構成する複数種類の半導体パーツを自動配置するパーツの自動配置方法に関する。
【背景技術】
【0002】
半導体装置の自動配置配線においては、特許文献1に開示されるように、アナログ回路とデジタル回路を境界線でブロック化してデジタル回路の自動配置配線を行う方法があるが、パワーデバイス用の半導体チップは、同一構造のユニットセルが複数並列に配置された構造を採り、幾何学的要素が強い配置となっており、特許文献1に開示の自動配置配線方法では対応できない。
【0003】
パワーデバイス用の半導体チップの半導体パーツの自動配置には、配置マップをプログラムで読み込ませた上で、配置数量と寸法調整を行ってチップサイズを微調整するマップ方式が挙げられるが、マップ方式には以下の問題が挙げられる。
【0004】
すなわち、マップ方式の場合、チップサイズ調整用の配置数量調整パーツと固定パーツを識別する必要があるため、ユーザーの設定量が増える。
【0005】
また、同一パーツの配置がある場合にパーツ分の座標設定が必要であり、アレイを使用する場合でも、縦横のアレイ数の設定が必要となる。
【0006】
また、パーツの回転および反転の設定が座標に関連付けられているため、同一パーツでも座標ごとに回転および反転の方向が異なると、ユーザーの設定量が増える。
【0007】
一方、マップ方式を用いず、自由配置する場合は、パーツ配置の有無の識別のため、メッシュを設けて配置座標を予め設ける方法が挙げられるが、パワーデバイス用の半導体チップは、大きさが数cmに達するのに対して、配置座標間隔は0.1μm以下であるため、1010個以上のメッシュが必要となり、計算機への負荷が大きくなる。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2016-105234号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
本開示は上記のような問題を解決するためになされたものであり、ユーザーのパーツの自動配置のための設定の負担を軽減し、計算機に加わる負荷が少ない、パーツの自動配置方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本開示に係るパーツの自動配置方法は、複数種類のパーツをコンピュータ支援設計ツールで設定される配置エリアに自動で配置するパーツの自動配置方法であって、複数種類のパーツのそれぞれのパーツは、配置エリアの互いに直交する第1の方向および第2の方向にそれぞれ平行な辺を有する矩形状であって、前記パーツごとに設定される前記パーツに隣接して配置できる隣接配置パーツを示すパーツ境界条件を取得するパーツ条件取得工程(a)、前記パーツごとに設定される前記配置エリアへの配置順を取得するパーツ配置順取得工程(b)と、前記配置エリアに設定される前記第1の方向または前記第2の方向に平行な境界線により隔てられる2つの領域に配置できる境界パーツを示す境界線境界条件を取得する境界線取得工程(c)と、前記パーツ境界条件と前記境界線境界条件とを比較し、一致した場合に前記パーツのストレッチ設定の有無を確認するストレッチ設定確認工程(d)と、前記ストレッチ設定がある場合、前記パーツ境界条件に基づいて、前記パーツの前記境界線上での連続配置の可否を確認する連続配置確認工程(e)と、前記パーツの前記連続配置が可能な場合に、前記境界線の長さに基づいて前記パーツを元のパーツサイズから整数倍ストレッチしてストレッチパーツとするストレッチ工程(f)と、前記ストレッチパーツを配置するパーツ配置工程(g)と、前記パーツ配置工程の後、前記境界線および前記境界線境界条件を更新する更新工程(h)と、を備え、前記工程(a)~(h)を繰り返すことで、前記複数種類のパーツを前記配置エリアに自動で配置する。
【発明の効果】
【0011】
本開示に係るパーツの自動配置方法によれば、パーツを元のパーツサイズから整数倍ストレッチしてストレッチパーツとするストレッチ工程を備えることで、ユーザーのパーツの自動配置のための設定の負担を軽減し、また、計算機に加わる負荷を少なくすることができる。
【図面の簡単な説明】
【0012】
図1】ユーザーが事前に準備するファイルを模式的に示した図である。
図2】ユーザーが事前に準備するファイルを模式的に示した図である。
図3】ユーザーが事前に準備するファイルを模式的に示した図である。
図4】ユーザーが事前に準備するコマンドファイルの一例を模式的に示した図である。
図5】パーツ境界条件の一例を模式的に示す図である。
図6】パーツ配列書式の一例を模式的に示す図である。
図7】チップ配置エリアを規定する初期ラインを模式的に示す図である。
図8】境界条件の設定例を示す図である。
図9】境界条件の設定例を示す図である。
図10】ラインの設定内容を模式的に示す図である。
図11】初期ラインの設定内容を模式的に示す図である。
図12】パーツ配置工程を説明する模式図である。
図13】パーツ配置工程の他の例を説明する模式図である。
図14】チップサイズの変更を説明する模式図である。
図15】パーツのストレッチを説明する模式図である。
図16】境界線の仮配置によるストレッチ方法を説明する図である。
図17】パーツの手動配置を説明する模式図である。
図18】パーツの自動配置を説明する模式図である。
図19】チップ配置エリアの境界線の設定例を示す模式図である。
図20】ストレッチの失敗例を説明する模式図である。
図21】ストレッチの成功例を説明する模式図である。
図22】前提技術によるパーツの配置例を説明する模式図である。
図23】前提技術によるパーツの配置の他の例を説明する模式図である。
図24】細切れパーツにストレッチ設定をした場合の配置例を説明する模式図である。
図25】細切れパーツにストレッチ設定をした場合の配置の他の例を説明する模式図である。
図26】実施の形態1のパーツの自動配置方法のフローチャートである。
図27】前提技術によるパーツの配置例を説明する模式図である。
図28】前提技術によるパーツの配置の他の例を説明する模式図である。
図29】前提技術によるパーツの配置の他の例を説明する模式図である。
図30】前提技術によるパーツの配置の他の例を説明する模式図である。
図31】パーツのアレイ配置を設定した場合の配置例を説明する模式図である。
図32】パーツのアレイ配置を設定した場合の配置の他の例を説明する模式図である。
図33】パーツのアレイ配置を設定した場合の配置の他の例を説明する模式図である。
図34】パーツのアレイ配置を設定した場合の配置の他の例を説明する模式図である。
図35】実施の形態2のパーツの自動配置方法のフローチャートである。
【発明を実施するための形態】
【0013】
<前提技術>
実施の形態の説明に先立って、本開示を実現するための前提技術である自動配置の境界法について説明する。
【0014】
半導体装置の製造工程において、半導体基板へのパターンの転写には写真製版技術が用いられる。写真製版技術では、半導体基板上に塗布された感光材料に対して、フォトマスク越しに光を照射する。フォトマスクには、半導体チップのパターンが描かれており、フォトマスクの作成にはCAD(computer-aided design:コンピュータ支援設計)ツールとも称されるCAD装置が用いられる。CAD装置を用いて作成されるフォトマスクのCAD図は、階層構造を持つ。すなわち、半導体チップを構成する複数種類のパーツが配置されたファイルと、各種のパーツがそれぞれ描かれたファイルとに分けることで、半導体装置の全体像を容易に管理できるようにしている。
【0015】
電力制御用の半導体装置であるパワーデバイスでは、大電流を制御するために、ユニットセル(以下、「セル」と表記)と呼ばれるトランジスタが、複数並列接続されて配置されている。セルの配置数は、例えば、数百万個に達する。パワーデバイス用のCAD図では、半導体チップの配置エリアに、半導体パーツ(以下、「パーツ」と表記)が隙間なく配置されている。パーツを隙間なく適所に配置することは、CAD装置の描画面におけるパーツの自動配置により実現する。
【0016】
パーツが隙間なく配置される条件下においては、パーツは他の半導体チップのパーツと接している。これは、初期状態ではダイシングライン等と接しているものと定義する。パーツに隣接条件、すなわち境界条件を与えることで、任意の半導体チップが配置可能となる。これを自動配置の境界法と呼称する。
【0017】
自動配置の境界法は以下の事前準備および工程で構成される。
【0018】
<ユーザーの事前準備>
図1図3は、ユーザーが事前に準備するファイルを模式的に示した図である。図1は、複数のパーツCADファイルと複数のパーツ設定ファイルを示しており、両者は1対1に対応している。図2は、コマンドファイルであり、チップ描画サイズ,パーツの配置順番設定、配置オプション設定等が記載されている。図3はストレッチ設定ファイルであり、必要に応じて準備される。なお、ストレッチ設定については後に説明する。
【0019】
ユーザーは配置するCADパーツ群を準備し、全てのパーツの全てのコーナーと全ての辺に境界条件を設定し、許可される回転および反転を設定し、パーツ設定ファイルに記載する。これらについては、後に説明する。
【0020】
ここで、境界条件は具体的には、コーナーと辺に隣接するパーツのことである。CADプログラムは配置済パーツとこの境界条件からパーツの配置場所を決定する。
【0021】
ユーザーがパーツに設定する境界条件は、パーツを配置するために必要な境界条件のみで済む。
【0022】
パーツのサイズはユーザーが設定しなくてもCAD装置にパーツアウトライン、すなわち座標または寸法の出力機能があればCADプログラムで設定できる。この機能がCAD装置にない場合にパーツのサイズを自動認識させたい場合は、別途にプログラムを作成する。
【0023】
ユーザーは必要に応じてパーツにストレッチ条件を設定する。これはストレッチ設定と呼称するが、ストレッチ設定はCAD装置に装備されているストレッチ機能があれば、CADプログラムで設定できる。この機能がCAD装置にない場合は、別途にプログラム作成する。
【0024】
ユーザーはコマンドファイルを準備する。図4は、ユーザーが事前に準備するコマンドファイルの一例を模式的に示した図である。図4に示すように、コマンドファイルには、実行コマンドとして、チップ描画サイズ(単位mm)、ファイル類の名称、パーツの配置順、配置オプションが記載されている。コマンドの記載には、CAD装置に装備されているプログラム言語を用いるが、図4では、便宜的にコマンドを和文で示している。
【0025】
図4では、ファイル類の名称としては、ファイルがあるディレクトリ名を示し、配置オプションとしては、「2境界条件配置1」を記載しているが、これについて後に説明する。
【0026】
また、配置オプションの基本設定をCADプログラムに予め設定しておき、配置オプションの記載を省略した場合には基本設定を適用する形態にすれば、配置オプションの記載は省略することができる。
【0027】
<工程>
次に、自動配置の境界法の実行工程について説明する。
【0028】
(1)パーツ条件取得工程
CADツール上のチップ配置エリアの互いに直交するX方向およびY方向において、複数種類のパーツが、X方向またはY方向に平行な辺を有する矩形パーツである場合に、パーツの種類ごとに、当該パーツに隣接して配置することが許可されるパーツ(隣接配置パーツ)の種類を示すパーツ境界条件を取得する。これは、図4に示した、コマンドファイルから取得することができる。
【0029】
矩形パーツには4辺および4頂点の合計8個の境界条件が設定可能である。図5は、パーツ境界条件の一例を模式的に示す図である。図5に示されるように、矩形パーツの4辺には、Top境界条件(BT)、Bottom境界条件(BB)、Left境界条件(BL)、Right境界条件(BR)が設定される。また、4頂点には、Corner0境界条件(BC0)、Corner1境界条件(BC1)、Corner2境界条件(BC2)、Corn3境界条件(BC3)が設定される。また、図5において、右上の頂点の座標は(Xmax,Ymax)とされ、左下の頂点の座標は(Xmin,Ymin)とされている。
【0030】
また、図6は、パーツ配列書式の一例を模式的に示す図である。図6に示されるように、パーツ配列書式としては、(Xmin、Ymin、Xmax、Ymax、Bottom境界条件、Right境界条件、Top境界条件、Left境界条件、Corner0境界条件、Corner1境界条件、Corner2境界条件、Corner3境界条件、許可される回転・反転方向)が記載される。
【0031】
(2)パーツ配置順取得工程
パーツの種類ごとに設定される、チップ配置エリアへの配置順を取得する。これは、図4に示した、コマンドファイルから取得することができる。
【0032】
(3)境界線取得工程
チップ配置エリアの終端を示す線であるエリア終端線とX方向またはY方向に平行な境界線が配置され、境界線により隔てられる2つの領域に配置することが許可されるパーツ(境界パーツ)を示す境界線境界条件を取得する。
【0033】
パーツが配置されていない初期状態では、半導体チップの描画エリアに初期ラインが配置される。初期ラインは矩形の描画エリアを取り囲むように4本配置される。図7は、チップ配置エリア、すなわちチップ画面を規定する初期ラインを模式的に示す図である。図7に示されるように、初期ラインとして、ラインXLine0、ラインXLine1、ラインYLine0、ラインYLine1が配置される。また、図7において、右上の頂点の座標は(Xmax,Ymax)とされ、左下の頂点の座標は(Xmin,Ymin)とされている。
【0034】
図7において、4本の各ライン(境界線)の外側には、それぞれ境界条件が設定されている。すなわち、ラインXLine0の外側にはBottom境界条件(DL)が設定され、ラインXLine1の外側にはTop境界条件(DL)が設定され、ラインYLine0の外側にはLeft境界条件(DL)が設定され、ラインYLine1の外側にはRight境界条件(DL)が設定されている。
【0035】
ここで、半導体チップの描画エリアの外にはダイシングライン(DL)があると仮定して、ここでは境界条件をDLとしている。ダイシングライン(DL)もパーツとして扱うことができる。
【0036】
なお、図7では、4本のラインでチップ画面を規定するので、内側には境界条件が設定されていないが、ラインで分けられる2つの領域には、それぞれ境界条件を設定することができる。図8は、Xラインで分けられる上下の2つの領域に、Top境界条件とBottom境界条件が設定されることを示している。図9は、Yラインで分けられる左右の2つの領域に、Left境界条件とRight境界条件が設定されることを示している。
【0037】
ここで、図10は、ラインの設定内容を模式的に示す図であり、XLine配列書式としては、(Xmin、Y、Xmax、Y、Bottom境界条件、Top境界条件)が記載され、YLine配列書式としては、(X、Ymin、X、Ymax、Left境界条件、Right境界条件)が記載される。
【0038】
また、図11は、ラインの設定例として、図7に示した初期ラインの設定内容を模式的に示す図である。Line0としては、(Xmin、Ymin、Xmax、Ymin、DL、無)が記載され、XLine1としては、(Xmin、Ymax、Xmax、Ymax、無、DL)が記載され、YLine0としては(Xmin、Ymin、Xmin、Ymax、DL、無)が記載され、YLine1としては(Xmin、Ymax、Xmax、Ymax、無、DL)が記載される。
【0039】
初期状態において、各ラインの一方の境界条件には境界条件DLが設定され、他方の境界条件には空白を示す境界条件「無」(ブランク)が設定される。
【0040】
(4)パーツ配置工程
パーツに対して設定されたパーツ境界条件とチップ配置エリアに配置された境界線に対して設定された境界線境界条件とを比較し、一致した場合にパーツを配置する。図12は、パーツ配置工程を説明する模式図である。
【0041】
図12において、左図のチップ配置エリアには左下にパーツAが配置されており、その右隣に新たなパーツAを境界パーツBPとして配置する状況を示している。この場合、新たなパーツAのパーツ境界条件と、チップ配置エリアの境界線境界条件とが一致することで、図12の右図のように新たなパーツAが配置される。この場合、ラインYLine2のLeft境界条件はパーツAであり、ラインYLine0のBottom境界条件はDLであり、新たなパーツAのLeft境界条件はパーツAであり、新たなパーツAのBottom境界条件はDLであるので、パーツ境界条件と境界線境界条件とが一致する。なお、図12に示されるようなパーツ配置を、「2境界条件配置1」と呼称する。
【0042】
(5)境界線更新工程
パーツ配置工程でパーツを配置した後、境界線および境界線境界条件を更新する。境界線は空白領域に隣接して取り囲むように更新され、図12の右図のように、2つのパーツAの上辺に沿って境界ラインXLine2が設定され、新たに配置されたパーツAの右辺に沿ってラインYLine2が設定される。
【0043】
また、図13は、パーツ配置工程の他の例を説明する模式図である。図13において、左図のチップ配置エリアには左下にパーツAが配置されており、その右隣斜め上に新たなパーツAを境界パーツBPとして配置する状況を示している。この場合、新たなパーツAの境界条件Corner0と、チップ配置エリアの境界条件XLine2およびYLine2を比較し、Corner0=XLine2、Corner0=YLine2の条件を満たした場合に新たなパーツAが配置される。この場合、ラインYLine2のBottom境界条件はパーツAであり、ラインYLine2のLeft境界条件はパーツAであり、新たなパーツAのCorner0の境界条件はパーツAであるので、パーツ境界条件と境界線境界条件とが一致する。
【0044】
図13の右図には、新たに配置されたパーツAの4辺に沿って、ラインXLine3、ラインXLine4、ラインYLine3、ラインYLine4が設定された状態を示している。なお、図13に示されるようなパーツ配置を、「2境界条件配置2」と呼称する。
【0045】
(6)第1の繰り返し工程
パーツ配置工程と境界線更新工程とを繰り返し実行する。
【0046】
(7)パーツ種類変更工程
パーツ境界条件と境界線境界条件とが不一致である場合に、配置するパーツの種類を配置順が次である異なる種類のパーツに変更する。これにより、パーツ配置に費やす時間が長時間となることを抑制できる。
【0047】
(8)第2の繰り返し工程
配置順に従って、第1の繰り返し工程またはパーツ種類変更工程を繰り返し実行する。パーツ配置工程を繰り返すことにより、半導体チップの配置を完成させる。
【0048】
<パワーデバイスへの適用>
図14はチップサイズの変更を説明する模式図である。パワーデバイスではセル数が多い程、電流駆動能力が向上する。このため、図14の左図に示されるパーツ配置よりもセル数を増やしたい場合は、チップ配置エリアを図14の右図のように広げる。ここで、図14の左図にはパーツA、B、C、Dが配置されているが、このうち中央部の4つのパーツDがセルに該当し、その周囲のパーツA、B、Cは、例えば、パワーデバイスの終端構造に該当する。
【0049】
セル外形寸法より大きな寸法でチップの寸法調整を行う場合は、セル数の調整で行うことができるが、セル外形寸法より小さな寸法でチップの外形寸法調整を行う場合は、パーツの外形寸法調整、すなわちパーツのストレッチで行う。
【0050】
図15は、パーツのストレッチを説明する模式図である。図15の左図に示されたパーツ配置よりもセル数を増やす場合、まず、パーツ寸法を調整する幅を把握するために、図15の右上図のように、パーツ配置順とパーツ境界条件に沿ってパーツA、B、C、Dの順に配置する。なお、隙間は、図15の右上図のように隙間を規定する境界線(ライン)を用いて算出することができる。
【0051】
図15の右上図の状態を作成した後、配置されたパーツを削除し、ラインを初期状態に戻す。その後、把握したパーツ間の隙間分だけパーツA~Cをストレッチしながら再配置することで、図15の右下図のように隙間を埋める。
【0052】
前提技術である自動配置の境界法においては、セル数は自動調整されるが、パーツの外形寸法調整には工夫が必要である。
【0053】
以下、図16を用いて境界線の仮配置によるストレッチ方法を説明する。図16は、パーツの外形寸法調整の基本フローを説明する模式図である。図16の最上段には、寸法調整パーツA、B、CがCAD装置によって検知されたことを模式的に表している。
【0054】
寸法調整パーツを検知すると、CADプログラムは境界線の仮配置工程に入り、図16の中段左図のように、半導体チップの描画エリアに初期ラインを設定する。
【0055】
CADプログラムは、境界線の仮配置工程中、ストレッチが伴わない境界配置工程を進めるが、図16の中段右図のようにパーツは配置せず境界線のみを更新することで、ストレッチ寸法を把握する。すなわち、図中の境界線の2箇所の出っ張りを把握することで、ストレッチ寸法を算出する。
【0056】
次に、CADプログラムは、図16の下段左図のように境界線を初期状態に戻し、算出したストレッチ寸法を寸法調整パーツA~Cに適用しつつパーツを再配置することで、図16の下段右図のように、ストレッチされた寸法調整パーツA~Cが、複数のパーツDを取り囲んだパーツ配置を得る。
【0057】
ここで、手動配置と自動配置の差について、図17および図18を用いて説明する。図17は、パーツの手動配置を説明する模式図である。図17に示されるように、手動配置ではパーツBとパーツCは1パーツとして配置される。セルに対応するパーツDは2×2個のアレイ状に配置される。
【0058】
図18は、パーツの自動配置を説明する模式図である。図18に示されるように、自動配置では、パーツB、C、Dが細切れで配置される。パーツを細切れにすると以下の問題が発生する。すなわち、配置されるパーツ数の増加に伴い配置時間が長くなる。また、自動配置によるチップのCAD図と、手動配置によるチップのCAD図とが異なるため、自動配置によるチップのCAD図をユーザーが編集し難い。
【0059】
以上説明した前提技術におけるパーツの自動配置方法に対して、本開示は、配置時間が短く、手動配置に近いCAD図を提供する。また、本開示では、前提技術では細切れとなるパーツを最適な状態で配置する方法を提供する。
【0060】
細切れパーツを最適配置する方法は、ストレッチとアレイ化が考えられる。ここでは、ストレッチとアレイ化はCAD装置に備わっている機能として説明する。この機能がCAD装置にない場合は、該当工程のプログラムを追加する。
【0061】
自動配置の境界法では、図7を用いて説明したように、チップ配置エリアに境界線と境界線境界条件が設定されている。また、チップ配置エリアの境界線は、1境界線/1境界条件となっている。図19は、チップ配置エリアの境界線の設定例を示す模式図である。図19に示されるように、連続する同じパーツA上のラインは1つのラインAで定義され、同じパーツAでも、単独のパーツAの場合は別のラインDで定義される。また、パーツBのように、複数の辺に対してはラインG、ラインFのように異なるラインが定義される。このため、チップ配置エリアの境界線の長さから、ストレッチ量およびアレイ数を算出できる。
【0062】
ストレッチを利用する場合、細切れパーツのストレッチと、境界線の仮配置工程のストレッチが競合する。境界線の仮配置は、図16を用いて説明したように、パーツ数で調整できない寸法をストレッチで調整することを目的としている。
【0063】
境界線の仮配置中に、普通に細切れパーツのストレッチを行うと、パーツ数で調整できる寸法も、パーツ数で調整できない寸法も細切れパーツがストレッチしてしまうため、境界線の仮配置が目的を達成することができない。
【0064】
図20は、ストレッチの失敗例を説明する模式図である。図20の中段左図のように、半導体チップの描画エリアに初期ラインをした後、通常のストレッチを行うと、パーツBとパーツCがストレッチされ、図20の中段右図のように、境界線の仮配置の隙間を埋めてしまう。
【0065】
CADプログラムは、図20の下段左図のように境界線を初期状態に戻し、パーツを再配置するが、図20の下段右図のように、ストレッチされたパーツBとパーツCがアレイ配置されたパーツDを取り囲むが、隙間が残ってしまう。
【0066】
この問題を回避するため、細切れパーツのストレッチ量は細切れパーツの外形寸法の整数倍のみとするようにCADプログラムを設定する。
【0067】
図21は、ストレッチの成功例を説明する模式図である。寸法調整パーツを検知した、CADプログラムは境界線の仮配置工程に入り、図21の中段左図のように、半導体チップの描画エリアに初期ラインを設定する。
【0068】
CADプログラムは、境界線の仮配置工程中、ストレッチが伴わない境界配置工程を進めるが、図21の中段右図のようにパーツは配置せず境界線のみを更新することで、ストレッチ寸法を把握する。すなわち、図中の境界線の2箇所の出っ張りを把握することで、ストレッチ寸法を算出する。この際、細切れパーツのストレッチ量は細切れパーツの外形寸法の整数倍のみとする規則に従ったストレッチを行う。これについては、実施の形態1においてさらに説明する。
【0069】
次に、CADプログラムは、図21の下段左図のように境界線を初期状態に戻し、算出したストレッチ寸法を寸法調整パーツA~Cに適用することで、図21の下段右図のように、ストレッチされた寸法調整パーツA~Cが、アレイ配置されたパーツDを取り囲んだパーツ配置を得る。
【0070】
<実施の形態1>
次に、本開示に係るパーツの自動配置方法の実施の形態1について、図22図25を用いて説明する。
【0071】
(1)事前準備
まず、前提技術に加えてストレッチしたい細切れパーツにストレッチ設定する。前提技術ではストレッチは境界線の仮配置工程で利用した。ストレッチを細切れパーツに利用するのか、境界線の仮配置に利用するのかを識別したい場合は、識別子を設定する。
【0072】
(2)前提技術のパーツ配置例
図22は、前提技術によるパーツの配置例を説明する模式図である。図22において、パーツAは図5に示したパーツの境界条件に該当する境界条件が設定されている。すなわち、図22の左図にはパーツAの設定ファイルが示されており、項目BB(Bottom境界条件)、項目BR(Right境界条件)、項目BT(Top境界条件)、項目BL(Left境界条件)、項目BC0(Corner0境界条件)、項目BC1(Corner1境界条件)、項目BC2(Corner2境界条件)、項目BC3(Corn3境界条件)が上から順に設定されている。さらに項目RとしてパーツAの回転を設定する項目が設けられているが、項目Rには無回転を表すR0が設定されている。
【0073】
パーツAの設定ファイルでは、項目BBにはパーツBが設定され、項目BLにはパーツCが設定されている。
【0074】
図22の左から2番目の図においては、紙面垂直方向(Y軸方向)に細長いパーツCの右辺の下部と上部にそれぞれパーツBが配置されたチップ配置エリアが示されており、当該チップ配置エリアには、図7に示した境界線の境界条件に該当する境界条件が設定されている。
【0075】
すなわち、チップ配置エリアには、紙面水平方向(X軸方向)に平行であるラインXLineとして、ラインXLine1、ラインXLine2が設定され、Y軸方向に平行であるラインYLineとして、ラインYLine1、ラインYLine2が設定されている。
【0076】
ラインXLine1には、Bottom境界条件としてパーツBが設定され、ラインXLine2には、Top境界条件としてパーツBが設定されている。また、ラインYLine1には、Left境界条件としてパーツBが設定され、ラインYLine2には、Left境界条件としてパーツCが設定されている。
【0077】
このようなラインXLineとラインYLineを総当たりで参照すると、ラインXLine1については、Bottom境界条件のパーツBとパーツA、パーツAの項目BBに設定されたパーツBが一致し、ラインYLine2については、Left境界条件のパーツCとパーツA、パーツAの項目BLに設定されたパーツCが一致するため、図22の左から3番目の図に示すように、下側のパーツBの上にパーツAが配置可能である。
【0078】
パーツAを配置した後には、図22の左から3番目の図に示すように、チップ配置エリアの境界線の更新および追加を行う。すなわち、ラインXLine1およびラインYLine2の座標を更新し、パーツAの上辺にラインXLine3を追加し、Bottom境界条件としてパーツAを設定し、パーツAの右辺にラインYLine4を追加し、Left境界条件としてパーツAを設定する。
【0079】
パーツAのパーツ境界条件とチップ配置エリアの境界線境界条件との比較、パーツAの配置、境界線の更新を繰り返すが、ラインXLineとラインYLineを総当たりで参照しても、境界条件の一致が不可能な状態となれば、パーツAの配置を完了する。
【0080】
図22の例では、パーツAの設定ファイルにおいて、項目BBにはパーツBが設定されているだけであるので、パーツAの上にパーツAを配置することはできず、図22の左から3番目の図に示すように、パーツAは連続配置できない。このような場合、図4に示したコマンドファイルの例では、パーツの配置順としてパーツAの次に記載されるパーツDを対象に本実施の形態1の方法による配置を行う。
【0081】
図23は、前提技術によるパーツの配置の他の例を説明する模式図である。図23において、左図にはパーツAの設定ファイルが示されているが、図22とは異なり、項目BBにはパーツBとパーツAが設定されている。このような設定に基づいたチップ配置エリアでの境界線の設定は、図23の左から2番目の図および3番目の図は図22と同じである。
【0082】
しかし、パーツAの設定ファイルでは、項目BBにはパーツBとパーツAが設定されているため、図23の左から4番目の図に示すように、パーツAの上にパーツAを連続配置できる。さらに、図23の左から5番目の図のように、さらにパーツAを連続配置でき、図23の左から6番目の図に示すように、下側のパーツBから上側のパーツBまで、隙間なくパーツAを連続配置できる。
【0083】
(3)細切れパーツのストレッチ配置例
次に、細切れパーツにストレッチ設定をした場合の配置例について、図24および図25を用いて説明する。
【0084】
図24は、細切れパーツにストレッチ設定をした場合の配置例を説明する模式図である。図24において、左図にはパーツAの設定ファイルが示されているが、図22の左図の項目に加えて、細切れパーツのストレッチ設定の項目Sが設けられており、項目Sにはストレッチ有りを表すS1が設定されている。また、ストレッチ設定は、ストレッチ機能がCAD装置に備わっており、かつ、設定内容を参照できる場合は、CAD装置を通じてパーツAのデータから読み込むこともできる。
【0085】
細切れパーツのストレッチ工程では、まず、境界条件が一致したパーツB上の境界線上および、パーツC上の境界線上に、パーツAがストレッチできるか確認する。図24においては、パーツAの右方向およびパーツAの上方向にパーツAが連続配置可能かを確認する。パーツAの境界条件設定からは、パーツAの項目BLにはパーツAが記載されていないので、パーツAの右方向には連続配置できない。また、パーツAの項目BBにはパーツAが記載されていないので、パーツAの上方向には連続配置できない。
【0086】
このため、図24の左から3番目の図に示すように、下側のパーツBの上にパーツAを配置できても、パーツAを右方向にも上方向にもストレッチすることができない。
【0087】
図25は、細切れパーツにストレッチ設定をした場合の配置の他の例を説明する模式図である。細切れパーツのストレッチ工程では、境界条件が一致したパーツB上の境界線上および、パーツC上の境界線上に、パーツAが連続配置できるか確認する。図25において、左図にはパーツAの設定ファイルが示されているが、図24とは異なり、項目BBにはパーツBとパーツAが設定されており、パーツAの上方向にパーツAが連続配置可能となっている。また、パーツAの設定ファイルには細切れパーツのストレッチ設定の項目Sにはストレッチ有りを表すS1が設定されているので、ストレッチ設定を取得する。
【0088】
このような設定に基づいたチップ配置エリアでの境界線の設定は、図25の左から2番目の図におけるパーツC上の境界線上に、パーツAがストレッチ可能であるため、パーツC上の境界線の高さCを評価する。境界線の高さCは、パーツCの右辺の境界線を設定した際に取得される。
【0089】
境界線の高さCの評価工程では、図25の左から3番目の図に示すパーツAの高さhに対して、C≧(n+1)・hとなる最大の整数nを算出することで、図25の左から4番目の図に示すように、高さhのパーツAをn・hのストレッチ寸法分だけストレッチしたパーツAをストレッチパーツSPとして配置する。
【0090】
ストレッチパーツSPを配置した後、図25の左から5番目の図に示すように、チップ配置エリアに配置予定の新境界線として、空白領域を取り囲むように定義する。
【0091】
このように、パーツの自動配置において、細切れパーツをストレッチパーツとすることで、パーツを隙間なくチップ配置エリアに配置することができる。
【0092】
以上説明した実施の形態1のパーツの自動配置方法のフローチャートを図26に示す。図26に示すように、実施の形態1のパーツの自動配置方法は、パーツ条件取得工程(S1)において、パーツごとに設定されるパーツに隣接して配置できる隣接配置パーツを示すパーツ境界条件を取得する。次に、パーツ配置順取得工程(S2)において、パーツごとに設定される配置エリアへの配置順を取得する。次に、境界線取得工程(S3)において、配置エリアに設定される直交する第1の方向または第2の方向に平行な境界線により隔てられる2つの領域に配置できる境界パーツを示す境界線境界条件を取得する。次に、ストレッチ設定確認工程(S4)において、パーツ境界条件と境界線境界条件とを比較し、一致した場合にパーツのストレッチ設定の有無を確認する。そして、ストレッチ設定がある場合、連続配置確認工程(S5)において、パーツ境界条件に基づいて、パーツの境界線上での連続配置の可否を確認する。次に、パーツの連続配置が可能な場合に、ストレッチ工程(S6)において、境界線の長さに基づいてパーツを元のパーツサイズから整数倍ストレッチしてストレッチパーツとする。次に、パーツ配置工程(S7)において、ストレッチパーツを配置する。その後、更新工程において境界線および境界線境界条件を更新する。
【0093】
以上説明した実施の形態1のパーツの自動配置方法は、CADツールのプログラムとしてCADツールの記憶装置に格納され、CPU(Central Processing Unit)などのプロセッサで記憶装置に格納されたプログラムを実行することでパーツの自動配置が実行される。
【0094】
<実施の形態2>
次に、本開示に係るパーツの自動配置方法の実施の形態2について、図27図34を用いて説明する。
【0095】
(1)前提技術のパーツ配置例
図27は、前提技術によるパーツの配置例を説明する模式図である。図27において、パーツAは図5に示したパーツの境界条件に該当する境界条件が設定されている。すなわち、図27の左図にはパーツAの設定ファイルが示されており、項目BB、項目BR、項目BT、項目BL、項目BC0、項目BC1、項目BC2、項目BC3が上から順に設定されている。さらに項目RとしてパーツAの回転を設定する項目が設けられているが、項目Rには無回転を表すR0が設定されている。
【0096】
パーツAの設定ファイルでは、項目BBにはパーツBが設定され、項目BLにはパーツCが設定されている。
【0097】
図27の左から2番目の図においては、X軸方向に細長いパーツBの左端部上にパーツCが設置され、パーツCの上部にパーツDが設置されている。また、パーツCの右辺に接してパーツEが配置されたチップ配置エリアが示されている。
【0098】
このようなチップ配置エリアでは、Bottom境界条件のパーツBとパーツA、パーツAの項目BBに設定されたパーツBが一致し、Left境界条件のパーツCとパーツA、パーツAの項目BLに設定されたパーツCが一致するため、図27の左から3番目の図に示すように、パーツBの上であってパーツの左辺に接してパーツAが配置可能である。
【0099】
図27の例では、パーツAの設定ファイルにおいて、項目BLにはパーツCが設定されているだけであるので、パーツAの右にパーツAを配置することはできず、図26の左から3番目の図に示すように、パーツAをパーツBの上にX軸方向に連続配置できない。
【0100】
図28は、前提技術によるパーツの配置の他の例を説明する模式図である。図28において、左図にはパーツAの設定ファイルが示されているが、図27とは異なり、項目BLにはパーツCとパーツAが設定されている。このような設定に基づいたチップ配置エリアでの境界線の設定は、図28の左から2番目の図は図27と同じである。
【0101】
しかし、パーツAの設定ファイルでは、項目BLにはパーツCとパーツAが設定されているため、図28の左から3番目の図に示すように、パーツAをパーツBの上にX軸方向に連続配置できる。
【0102】
図29は、前提技術によるパーツの配置の他の例を説明する模式図である。図29において、左図にはパーツAの設定ファイルが示されているが、図27とは異なり、項目BBにはパーツBとパーツAが設定されている。このような設定に基づいたチップ配置エリアでの境界線の設定は、図29の左から2番目の図は図27と同じである。
【0103】
しかし、パーツAの設定ファイルでは、項目BBにはパーツBとパーツAが設定されているため、図29の左から3番目の図に示すように、パーツAをパーツA上にY軸方向に連続配置できる。
【0104】
図30は、前提技術によるパーツの配置の他の例を説明する模式図である。図30において、左図にはパーツAの設定ファイルが示されているが、図27とは異なり、項目BBにはパーツBとパーツAが設定され、項目BLにはパーツCとパーツAが設定されている。このような設定に基づいたチップ配置エリアでの境界線の設定は、図30の左から2番目の図は図27と同じである。
【0105】
しかし、パーツAの設定ファイルでは、項目BBにはパーツBとパーツAが設定され、項目BLにはパーツCとパーツAが設定されているため、図30の左から3番目の図に示すように、パーツAをパーツBの上にX軸方向に連続配置でき、かつ、パーツAをパーツA上にY軸方向に連続配置できる。
【0106】
(2)アレイ配置例
次に、細切れパーツにアレイ配置を設定した場合の配置例について、図31図34を用いて説明する。
【0107】
図31は、パーツのアレイ配置を設定した場合の配置例を説明する模式図である。図30において、左図にはパーツAの設定ファイルが示されているが、図27の左図の項目に加えて、アレイ設定の項目Aが設けられており、項目Aにはアレイ設定有りを表すA1が設定されている。なお、アレイ設定の有無は、コマンドファイルの配置順に記載のパーツに対する配置オプションに追記設定する形態とすることもできる。
【0108】
アレイ配置工程では、まず、境界条件が一致したパーツB上の境界線上および、パーツC上の境界線上に、パーツAがアレイ配置可能かを確認する。図31においては、パーツAの右方向およびパーツAの上方向にパーツAが配置可能か確認する。パーツAの境界条件設定からは、パーツAの項目BLにはパーツAが記載されていないのでパーツAの右方向には配置できない。また、パーツAの項目BBにはパーツAが記載されていないので、パーツAの上方向には配置できない。
【0109】
このため、図31の左から3番目の図に示すように、パーツBの上にパーツAを配置できても、パーツAを右方向にも上方向にも配置できず、パーツAをアレイ配置せず、パーツ配置する。
【0110】
図32は、パーツのアレイ配置を設定した場合の配置の他の例を説明する模式図である。図32において、左図にはパーツAの設定ファイルが示されているが、図31とは異なり、項目BLにはパーツCとパーツAが設定されている。
【0111】
アレイ配置工程では、境界条件が一致したパーツB上の境界線上へのアレイ配置が許可されているため、パーツB上の境界線幅wbを評価する。境界線幅wbは、パーツBの上辺の境界線を設定した際に取得される。
【0112】
境界線幅wbの評価工程では、図32の左から3番目の図に示すパーツAの幅waに対して、wb≧wa・nとなる最大の整数nを算出する。図32の例では、パーツAの境界線上にはパーツAはアレイ配置できないため、Y方向のアレイ配置数は1となり、図32の左から4番目の図に示すように、X方向にn×1個のパーツAをアレイARとして配置することになる。
【0113】
図33は、パーツのアレイ配置を設定した場合の配置の他の例を説明する模式図である。図33において、左図にはパーツAの設定ファイルが示されているが、図31とは異なり、項目BBにはパーツBとパーツAが設定されている。
【0114】
アレイ配置工程では、境界条件が一致したパーツCの境界線上へのアレイ配置が許可されているため、パーツCの境界線高さhcを評価する。境界線高さhcは、パーツCの右辺の境界線を設定した際に取得される。
【0115】
境界線高さhcの評価工程では、図33の左から3番目の図に示すパーツAの高さhaに対して、hc≧ha・mとなる最大の整数mを算出する。図33の例では、パーツBの境界線上にはパーツAはアレイ配置できないため、X方向のアレイ配置数は1となり、図33の左から4番目の図に示すように、Y方向にm×1個のパーツAをアレイARとして配置することになる。
【0116】
図34は、パーツのアレイ配置を設定した場合の配置の他の例を説明する模式図である。図34において、左図にはパーツAの設定ファイルが示されているが、図31とは異なり、項目BBにはパーツBとパーツAが設定され、項目BLにはパーツCとパーツAが設定されている。
【0117】
アレイ配置工程では、境界条件が一致したパーツB上の境界線上へのアレイ配置が許可されているため、パーツB上の境界線幅wbを評価する。また、境界条件が一致したパーツCの境界線上へのアレイ配置が許可されているため、パーツCの境界線高さhcを評価する。
【0118】
境界線幅wbの評価工程では、図34の左から3番目の図に示すパーツAの幅waに対して、wb≧wa・nとなる最大の整数nを算出し、パーツAの高さhaに対して、hc≧ha・mとなる最大の整数mを算出する。図34の例では、パーツAの境界線上にもパーツBの境界線上にもパーツAはアレイ配置できるため、図34の左から4番目の図に示すように、X方向、Y方向にn×m個のパーツAをアレイARとして配置することになる。
【0119】
なお、1×1個のアレイ配置を避けたい場合は、X方向とY方向のパーツ数が共に1つの場合には、アレイ配置ではなくパーツ配置を選択する。そのために、アレイ配置またはパーツ配置を選択できるように、アレイ配置のスイッチを設ける。
【0120】
アレイ配置数が決まった後、チップ配置エリアに配置予定の新境界線として、空白領域を取り囲むように定義する。
【0121】
このように、パーツの自動配置において、細切れパーツをアレイ配置することで、パーツを隙間なくチップ配置エリアに配置することができる。
【0122】
以上説明した実施の形態2のパーツの自動配置方法のフローチャートを図35に示す。図35に示すように、実施の形態1のパーツの自動配置方法は、パーツ条件取得工程(S11)において、パーツごとに設定されるパーツに隣接して配置できる隣接配置パーツを示すパーツ境界条件を取得する。次に、パーツ配置順取得工程(S12)において、パーツごとに設定される配置エリアへの配置順を取得する。次に、境界線取得工程(S13)において、配置エリアに設定される直交する第1の方向または第2の方向に平行な境界線により隔てられる2つの領域に配置できる境界パーツを示す境界線境界条件を取得する。次に、アレイ設定確認工程(S14)において、パーツ境界条件と境界線境界条件とを比較し、一致した場合に前記パーツのアレイ設定の有無を確認する。そして、アレイ設定がある場合、連続配置確認工程(S15)において、パーツ境界条件に基づいて、パーツの境界線上での連続配置の可否を確認する。次に、パーツの連続配置が可能な場合に、アレイ数計算工程(S16)において、境界線の長さに基づいてパーツをパーツサイズの整数倍の個数のアレイとして配置するアレイ配置のアレイ数を計算する。次に、アレイ配置工程(S17)において、アレイ数に基づいてパーツをアレイ配置する。その後、更新工程(S18)において、境界線および境界線境界条件を更新する。
【0123】
以上説明した実施の形態2のパーツの自動配置方法は、CADツールのプログラムとしてCADツールの記憶装置に格納され、CPUなどのプロセッサで記憶装置に格納されたプログラムを実行することでパーツの自動配置が実行される。
【0124】
なお、本開示は、その開示の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【0125】
以上説明した本開示を付記としてまとめて記載する。
【0126】
(付記1)
複数種類のパーツをコンピュータ支援設計ツールで設定される配置エリアに自動で配置するパーツの自動配置方法であって、
前記複数種類のパーツのそれぞれのパーツは、前記配置エリアの互いに直交する第1の方向および第2の方向にそれぞれ平行な辺を有する矩形状であって、
(a)前記パーツごとに設定される前記パーツに隣接して配置できる隣接配置パーツを示すパーツ境界条件を取得するパーツ条件取得工程と、
(b)前記パーツごとに設定される前記配置エリアへの配置順を取得するパーツ配置順取得工程と、
(c)前記配置エリアに設定される前記第1の方向または前記第2の方向に平行な境界線により隔てられる2つの領域に配置できる境界パーツを示す境界線境界条件を取得する境界線取得工程と、
(d)前記パーツ境界条件と前記境界線境界条件とを比較し、一致した場合に前記パーツのストレッチ設定の有無を確認するストレッチ設定確認工程と、
(e)前記ストレッチ設定がある場合、前記パーツ境界条件に基づいて、前記パーツの前記境界線上での連続配置の可否を確認する連続配置確認工程と、
(f)前記パーツの前記連続配置が可能な場合に、前記境界線の長さに基づいて前記パーツを元のパーツサイズから整数倍ストレッチしてストレッチパーツとするストレッチ工程と、
(g)前記ストレッチパーツを配置するパーツ配置工程と、
(h)前記パーツ配置工程の後、前記境界線および前記境界線境界条件を更新する更新工程と、を備え、
前記工程(a)~(h)を繰り返すことで、前記複数種類のパーツを前記配置エリアに自動で配置する、パーツの自動配置方法。
【0127】
(付記2)
複数種類のパーツをコンピュータ支援設計ツールで設定される配置エリアに自動で配置するパーツの自動配置方法であって、
前記複数種類のパーツのそれぞれのパーツは、前記配置エリアの互いに直交する第1の方向および第2の方向にそれぞれ平行な辺を有する矩形状であって、
(a)前記パーツごとに設定される前記パーツに隣接して配置できる隣接配置パーツを示すパーツ境界条件を取得するパーツ条件取得工程と、
(b)前記パーツごとに設定される前記配置エリアへの配置順を取得するパーツ配置順取得工程と、
(c)前記配置エリアに設定される前記第1の方向または前記第2の方向に平行な境界線により隔てられる2つの領域に配置できる境界パーツを示す境界線境界条件を取得する境界線取得工程と、
(d)前記パーツ境界条件と前記境界線境界条件とを比較し、一致した場合に前記パーツのアレイ設定の有無を確認するアレイ設定確認工程と、
(e)前記アレイ設定がある場合、前記パーツ境界条件に基づいて、前記パーツの前記境界線上での連続配置の可否を確認する連続配置確認工程と、
(f)前記パーツの前記連続配置が可能な場合に、前記境界線の長さに基づいて前記パーツをパーツサイズの整数倍の個数のアレイとして配置するアレイ配置のアレイ数を計算するアレイ数計算工程と、
(g)前記アレイ数に基づいて前記パーツをアレイ配置するアレイ配置工程と、
(h)前記アレイ配置工程の後、前記境界線および前記境界線境界条件を更新する更新工程と、を備え、
前記工程(a)~(h)を繰り返すことで、前記複数種類のパーツを前記配置エリアに自動で配置する、パーツの自動配置方法。
【0128】
(付記3)
前記工程(d)において、前記パーツの境界条件と前記境界線境界条件とが一致しない場合に、
(i)前記パーツを前記配置順が前記パーツの次である異なる種類のパーツに変更するパーツ種類変更工程を備える、付記1または付記2記載のパーツの自動配置方法。
【0129】
(付記4)
複数種類のパーツをコンピュータ支援設計ツールで設定される配置エリアに自動で配置するステップをコンピュータに実行させるパーツの自動配置プログラムであって、
前記複数種類のパーツのそれぞれのパーツは、前記配置エリアの互いに直交する第1の方向および第2の方向にそれぞれ平行な辺を有する矩形状であって、
(a)前記パーツごとに設定される前記パーツに隣接して配置できる隣接配置パーツを示すパーツ境界条件を取得するパーツ条件取得ステップと、
(b)前記パーツごとに設定される前記配置エリアへの配置順を取得するパーツ配置順取得ステップと、
(c)前記配置エリアに設定される前記第1の方向または前記第2の方向に平行な境界線により隔てられる2つの領域に配置できる境界パーツを示す境界線境界条件を取得する境界線取得ステップと、
(d)前記パーツ境界条件と前記境界線境界条件とを比較し、一致した場合に前記パーツのストレッチ設定の有無を確認するストレッチ設定確認ステップと、
(e)前記ストレッチ設定がある場合、前記パーツ境界条件に基づいて、前記パーツの前記境界線上での連続配置の可否を確認する連続配置確認ステップと、
(f)前記パーツの前記連続配置が可能な場合に、前記境界線の長さに基づいて前記パーツを元のパーツサイズから整数倍ストレッチしてストレッチパーツとするストレッチ工程と、
(g)前記ストレッチパーツを配置するパーツ配置ステップと、
(h)前記パーツ配置ステップの後、前記境界線および前記境界線境界条件を更新する更新ステップと、を備え、
前記ステップ(a)~(h)を繰り返すことで、前記複数種類のパーツを前記配置エリアに自動で配置する、パーツの自動配置プログラム。
【0130】
(付記5)
複数種類のパーツをコンピュータ支援設計ツールで設定される配置エリアに自動で配置するステップをコンピュータに実行させるパーツの自動配置プログラムであって、
前記複数種類のパーツのそれぞれのパーツは、前記配置エリアの互いに直交する第1の方向および第2の方向にそれぞれ平行な辺を有する矩形状であって、
(a)前記パーツごとに設定される前記パーツに隣接して配置できる隣接配置パーツを示すパーツ境界条件を取得するパーツ条件取得ステップと、
(b)前記パーツごとに設定される前記配置エリアへの配置順を取得するパーツ配置順取得ステップと、
(c)前記配置エリアに設定される前記第1の方向または前記第2の方向に平行な境界線により隔てられる2つの領域に配置できる境界パーツを示す境界線境界条件を取得する境界線取得ステップと、
(d)前記パーツ境界条件と前記境界線境界条件とを比較し、一致した場合に前記パーツのアレイ設定の有無を確認するステップと、
(e)前記アレイ設定がある場合、前記パーツ境界条件に基づいて、前記パーツの前記境界線上での連続配置の可否を確認する連続配置確認ステップと、
(f)前記パーツの前記連続配置が可能な場合に、前記境界線の長さに基づいて前記パーツをパーツサイズの整数倍の個数のアレイとして配置するアレイ配置のアレイ数を計算するアレイ数計算工程と、
(g)前記アレイ数に基づいて前記パーツをアレイ配置するアレイ配置ステップと、
(h)前記アレイ配置ステップの後、前記境界線および前記境界線境界条件を更新する更新ステップと、を備え、
前記ステップ(a)~(h)を繰り返すことで、前記複数種類のパーツを前記配置エリアに自動で配置する、パーツの自動配置プログラム。
【0131】
(付記6)
前記ステップ(d)において、前記パーツの境界条件と前記境界線境界条件とが一致しない場合に、
(i)前記パーツを前記配置順が前記パーツの次である異なる種類のパーツに変更するパーツ種類変更ステップを備える、付記4または付記5記載のパーツの自動配置プログラム。
【符号の説明】
【0132】
AR アレイ、BP 境界パーツ、SP ストレッチパーツ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35