半導体装置設計支援装置、半導体装置設計支援方法、その方法をコンピュータにより実行可能なプログラム、及び、そのプログラムを記録した記録媒体
【課題】 基板の端子と基板上に配置されるチップの端子とが電気的配線により接続される半導体装置の設計の支援に適合する半導体装置設計支援装置等を提案する。
【解決手段】 SiP設計支援装置1は、基板及びチップの少なくとも一方の接続されるべき端子に対して処理を行う端子処理部5と端子処理部5による処理後の端子位置に基づいて再配線を行う自動再配線処理部7を備え、端子処理部5は選択された交換対象の端子に対して所定の条件を満たす交換先の端子を決定する端子交換先決定処理部9と交換対象の端子の位置と交換先の端子の位置を交換する端子位置変更手段11とを有する。
【解決手段】 SiP設計支援装置1は、基板及びチップの少なくとも一方の接続されるべき端子に対して処理を行う端子処理部5と端子処理部5による処理後の端子位置に基づいて再配線を行う自動再配線処理部7を備え、端子処理部5は選択された交換対象の端子に対して所定の条件を満たす交換先の端子を決定する端子交換先決定処理部9と交換対象の端子の位置と交換先の端子の位置を交換する端子位置変更手段11とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置設計支援装置、半導体装置設計支援方法、その方法をコンピュータにより実行可能なプログラム、及び、そのプログラムを記録した記録媒体に関し、特に基板及び前記基板上に配置されるチップを有する半導体装置の設計を支援する半導体装置設計支援装置等に関する。
【背景技術】
【0002】
近年LSI製造プロセス技術の進歩によりLSIの基板への集積度が一層進んでおり、SiP(system in a package)という概念も出てきた。SiPは、微小なプリント基板上に複数のICチップや受動素子を3次元実装して微小なシステムを製造する技術をいう。シリコンチップ上に回路を書き込んでシステムを作製するSoC(System On a Chip)に比較して、i)既存のチップを用いれば、短納期に量産が可能、ii)小さな設備投資で、iii)少量多品種の生産に有利などの利点を有する。
【0003】
従来、このSiPの設計においては、設計者は、SiP基板の端子に関しては入れ替えを行って設計していたが、LSIチップの端子に関しては別部署へ依頼して対処していた。
【0004】
なお、SiPに関する技術ではないが、従来の半導体チップ設計に関する技術を示す文献として、例えば特許文献1がある。
【0005】
【特許文献1】特開2004−31891号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の設計においては、端子間の接続状況は人間が考えて決めていた。また、配線形状も経験に基づくマニュアル配線であった。そのため、端子は本当に端子間の配線が最短になるように設計されているかどうか不明であった。
【0007】
さらに、チップ側端子に関しては別部署に依頼して対処されており、情報の伝達ミスが発生する可能性が大きかった。
【0008】
そこで、本発明の目的は、基板の端子と基板上に配置されるチップの端子とが電気的配線により接続される半導体装置の設計の支援に適合する半導体装置設計支援装置、半導体装置設計支援方法、その方法をコンピュータにより実行可能なプログラム、及び、そのプログラムを記録した記録媒体を提案することである。
【課題を解決するための手段】
【0009】
請求項1に係る発明は、基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援装置であって、前記基板及び前記チップの少なくとも一方の接続されるべき端子の位置を変更する端子位置変更手段を備えるものである。
【0010】
請求項2に係る発明は、請求項1記載の半導体装置設計支援装置であって、前記端子位置変更手段が前記基板の端子の位置を変更する基板端子位置変更処理手段と前記チップの端子の位置を変更するチップ端子位置変更処理手段を有するものである。
【0011】
請求項3に係る発明は、請求項1又は2記載の半導体装置設計支援装置であって、前記端子位置変更手段が位置を変更する端子に接続する配線の少なくとも一つが他の配線の少なくとも一つと交差するように端子の位置を変更するものである。
【0012】
SiPにおいて、LSIチップが実装されて配線されるときは、ワイヤボンディングで配線される場合が多い。空中に配線されたワイヤを高周波の信号が通過する場合、配線が平行していると隣の配線の信号の影響が大きく、ノイズが発生してしまう。請求項3に係る発明によれば、端子位置変更手段が配線を交差するようにして配線が平行になることを避けることができ、ノイズの発生を防止することができる。
【0013】
請求項4に係る発明は、請求項1から3のいずれかに記載の半導体装置設計支援装置であって、前記端子位置変更手段が位置を変更する端子に接続する配線と他の配線の距離に関する条件に基づいて端子の位置を変更するものである。
【0014】
一般的に、配線間の信号によるノイズは配線間隔が開くほど小さくなる。請求項4に係る発明によれば、信号線間隔が一定以上に大きくなるよう配線されるため、ノイズの発生を防止することができる。
【0015】
請求項5に係る発明は、請求項1から4のいずれかに記載の半導体装置設計支援装置であって、前記端子位置変更手段が位置を変更する端子に接続する配線と他の配線の並行部分の長さに関する条件に基づいて端子の位置を変更するものである。
【0016】
配線が平行している距離が長いほど、配線同士の信号が干渉してノイズが発生する可能性が大きくなる。請求項5に係る発明によれば、配線同士がある一定以上の距離を平行しないように設計されるため、ノイズの発生を防止することができる。
【0017】
請求項6に係る発明は、請求項1から5のいずれかに記載の半導体装置設計支援装置であって、指定される交換対象の端子に対して所定の条件を満たす交換先の端子を決定する端子交換先決定処理手段を有し、前記端子位置変更手段が、前記交換対象の端子の位置と前記端子交換先決定処理手段により決定された前記交換先の端子の位置を交換するものである。
【0018】
請求項7に係る発明は、請求項1から6のいずれかに記載の半導体装置設計支援装置であって、三次元的な配置又は配線の設計を支援するものである。
【0019】
請求項8に係る発明は、基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援方法であって、端子位置変更手段が前記基板及び前記チップの少なくとも一方の端子の位置を変更するステップを含むものである。
【0020】
請求項9に係る発明は、請求項8記載の半導体装置設計支援方法をコンピュータに実行させることが可能なプログラムである。
【0021】
請求項10に係る発明は、請求項9に記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体である。
【発明の効果】
【0022】
以上のように、本発明によれば、基板の端子の位置とチップの端子の位置を同時に設計することが可能となる。この設計により、LSIチップの端子の位置を前提としてSiP基板の端子の位置を設計することとは異なり、基板の端子とチップの端子を併せて設計する、いわば、SiPのトップダウン設計が可能となる。また、チップ側端子に関して他部署に依頼して対処することが不要となり、部署間の伝達ミスを防止することが可能となる。
【0023】
さらに、本発明によれば、基板の端子とチップの端子は、例えばこれらの間の接続の面積・体積が3次元的に最小となるよう配置可能であり、製造コストを最小にすることが可能となる。また、端子は自動的に配置可能であり、熟練技術者による配置・配線品質と同等の配置が可能となる。
【発明を実施するための最良の形態】
【0024】
図1は、本発明の実施の形態に係るSiP設計支援装置の概略ブロック図である。
【0025】
図1を参照して、SiP設計支援装置1は、制御部3と、電気的に接続されるSiP基板の端子(以下では「PAD」という)とLSIチップの端子(以下では「チップ端子」という)に対して処理を行う端子処理部5と、PADからSiP基板上のVIA・端子まで配線を行う自動再配線処理部7を備える。端子処理部5は、ユーザにより選択された交換対象の端子に対して交換先の端子を決定する端子交換先決定処理部9と端子の位置の変更を行う端子位置変更処理部11を有する。端子交換先決定処理部9は、PADに関して交換先決定処理を行うPAD交換先決定処理部13とチップ端子に関して交換先決定処理を行うチップ端子交換先決定処理部15を有する。また、端子位置変更処理部11は、PADに関して位置変更処理を行うPAD位置変更処理部17とチップ端子に関して位置変更処理を行うチップ端子位置変更処理部19を有する。
【0026】
ここで、変更においては、基板上のPAD位置やチップの端子位置は変更されずに、接続情報のみが変更される。すなわち、SiP設計支援装置1では、基板上のPADとLSIチップの端子との間には、どのPADと端子が接続されるのかの情報が与えられる。接続されるPADと端子が変更された場合、その物理的な位置は変更しないで、PADと端子の接続情報のみが変更になる。そのため、見た目上は変更したPADと端子の位置が変更後の位置に移動したように見えるが、実際は位置が変更したのではなく接続情報のみが変更される。また、位置変更されたPADや端子に接続するワイヤの引きなおしも行われる。
【0027】
自動再配線処理部7は、迷路法を用いて、PADから基板上のVIA・端子まで1層・45°配線を行う。ここで、迷路法は、配線アルゴリズムの一つであり、配線領域がメッシュ上に分割され、配線の基点から終点に向かって波紋状に番号がつけられ、その番号が終点に到達したときに最短となる番号により起点から終点までの最短配線経路が決定される手法である
【0028】
図2を参照して、図1のSiP設計支援装置1の動作の一例を説明する。図2は、図1のSiP設計支援装置1による端子の位置変更の一例を示す図であり、変更前と変更後のSiP基板21のPAD25〜39とLSIチップ23のチップ端子の間の接続状態を示す図である。図2(a)は変更前のPADとチップ端子の接続状態の一例を示す図であり、図2(b)は変更後のPADとチップ端子の接続状態の一例を示す図である。
【0029】
図2(a)を参照して、SiP基板21上にはLSIチップ23が配置され、SiP基板21には、LSIチップ23を挟んで、一方に4つのPAD25、27、29、31があり、他方に4つのPAD33、35、37、39がある。SiP基板21のPAD25〜39とLSIチップ23のチップ端子とは、6つのPAD25、29、31、33、35、39はそれぞれ最も近いチップ端子と接続されているが、PAD27はPAD37に最も近いチップ端子41と接続され、PAD37はPAD27に最も近いチップ端子43と接続されている。
【0030】
図2(a)のような接続状態において、PAD27とPAD37の位置を交換するか、またはチップ端子41とチップ端子43の位置を交換することにより、図2(b)にあるように、SiP基板のPADとLSIチップのチップ端子間の接続がトータルで最短となる。図1のSiP設計支援装置1は、このようなPADやチップ端子の位置を変更する処理を行うものである。
【0031】
続いて、図3を参照して、図1のSiP設計支援装置1の動作の一例を説明する。図3は、図1のSiP設計支援装置1の動作の一例を示すフロー図である。
【0032】
まず、図1の制御部3は、初期設定を行う(図3のステップSTM1)。この初期設定は、例えば、引数をチェックしたり、パラメータファイルや入力ファイルやコントロールファイルを読み込んだりすることにより行われる。
【0033】
次に、図1の端子処理部5は、PADやチップ端子の位置を変更する処理を行う(図3のステップSTM2)。このPADやチップ端子の位置を変更する処理については、図4〜図12を用いてその一例を後述する。
【0034】
次に、図1の自動再配線処理部7は、PADから基板上のVIA・端子まで自動再配線処理を行う(図3のステップSTM3)。この自動再配線処理については、図13を用いてその一例を後述する。そして、図3の処理を終了する。
【0035】
続いて、図4を参照して、図3のステップSTM2の端子位置変更処理の一例を説明する。図4は、図3のステップSTM2の端子位置変更処理の一例を示すフロー図である。
【0036】
まず、図1の端子処理部5は、ユーザにより選択された交換対象の端子がPADであるか否かの判断を行う(図4のステップSTE1)。交換対象の端子がPADであるならば図4のステップSTE2の処理を行い、PADでないならば図4のステップSTE5の処理を行う。
【0037】
図4のステップSTE2において、図1の端子処理部5は、交換先が指定されているか否かの判断を行う。指定されているのであるならば図4のステップSTE4の処理を行い、指定されていないならば図4のステップSTE3の処理を行う。
【0038】
図4のステップSTE3において、図1のPAD変換先決定処理部9は、PAD交換先決定処理を行う。このPAD交換先決定処理については、図5〜図8を用いてその一例を後述する。そして、図4のステップSTE4の処理を行う。
【0039】
図4のステップSTE4において、図1のPAD位置変更処理部17は、PAD位置変更処理を行う。このPAD位置変更処理については、図9〜図12を参照してその一例を後述する。そして、図1の端子処理部5は図4の処理を終了する。
【0040】
図4のステップSTE5において、図1の端子処理部5は、交換先が指定されているか否かの判断を行う。指定されているのであるならば図4のステップSTE7の処理を行い、指定されていないならば図4のステップSTE6の処理を行う。
【0041】
図4のステップSTE6において、図1の端子変換先決定処理部13は、チップ端子交換先決定処理を行う。このチップ端子交換先決定処理は、図4のステップSTE3のPAD交換先決定処理と同様のものである。そして、図4のステップSTE7の処理を行う。
【0042】
図4のステップSTE7において、図1のチップ端子位置変更処理部19は、チップ端子位置変更処理を行う。このチップ端子位置変更処理は、図4のステップSTE4のPAD位置変更処理と同様のものである。そして、図1の端子処理部5は図4の処理を終了する。
【0043】
続いて、図5から図8を参照して、図4のステップSTE3のPAD交換先決定処理の一例を説明する。このPAD交換先決定処理においては、選択されたPADが一つである場合、選択された交換対象のPADに対して交換先のPADが自動的に決定される。交換先のPADは、例えば図7を用いて説明されるスペーシングルールや図8を用いて説明される平行配線長ルールなどのルールに基づいて決定される。このとき、特定のネットを指定することにより、ワイヤ結線後に指定されたネットのワイヤと交差するようなPADが交換相手として認識される。なお、指定されたネットのPADはFIX属性となり、他のPADとの交換対象にはならないとする。
【0044】
図5は、図4のステップSTE3のPAD交換先決定処理の一例を示すフロー図である。
【0045】
まず、図1のPAD交換先決定処理部13は、選択された交換対象のPADをPAD_Aとする(図5のステップSTT1)。
【0046】
次に、図1のPAD交換先決定処理部13は、未処理のPADから所定の順にPADを取得して、取得したPADをPAD_Bとする(図5のステップSTT2)。取得する順は、例えばPAD_Aに近い順や優先度指定があれば優先度の順などである。
【0047】
次に、図1のPAD交換先決定処理部13は、指定ネットがあり、かつ、PAD_Bの場所からPAD_Aのワイヤを結線すると指定ネットのワイヤと交差しないか否かの判断を行う(図5のステップSTT3)。指定ネットがあって交差しないならば図5のステップSTT6の処理を行い、そうでないならば図5のステップSTT4の処理を行う。
【0048】
図5のステップSTT4において、図1のPAD交換先決定処理部13は、PAD_AとPAD_Bの交換可能性をチェックする。この交換可能性のチェックの処理については、図6を参照してその一例を後述する。
【0049】
次に、図1のPAD交換先決定処理部13は、図5のステップSTT4の処理の結果に基づいてPAD_AとPAD_Bが交換可能であるか否かの判断を行う(図5のステップSTT5)。交換可能であるならば図5のステップSTT7の処理を行い、そうでないならば図5のステップSTT6の処理を行う。
【0050】
図5のステップSTT6において、図1のPAD交換先決定処理部13は、全PADに対して処理を行ったか否かの判断を行う。処理を行っているならばエラー終了をし、そうでないならば図5のステップSTT2の処理を行う。
【0051】
図5のステップSTT7において、図1のPAD交換先決定処理部13は、PAD_Aの交換先としてPAD_Bを指定する。
【0052】
次に、図1のPAD交換先決定処理部13は、指定ネットがあるか否かの判断を行う(図5のステップSTT8)。指定ネットがあるならば、該当ネットのPADをFIXとして(図5のステップSTT9)図5の処理を終了する。指定ネットがないならば、図5の処理を終了する。
【0053】
以上、図5のフロー図に示されるようにして、ユーザにより選択された交換対象のPADに対して交換先のPADが決定される。
【0054】
続いて、図6を参照して、図5のステップSTT4のPAD_AとPAD_Bの交換可能性のチェックの処理の一例を説明する。図6は、図5のステップSTT4のPAD_AとPAD_Bの交換可能性のチェックの処理の一例を示すフロー図である。
【0055】
まず、図1のPAD交換先決定処理部13は、ワイヤを仮削除する(図6のステップSTC1)。このワイヤの仮削除処理は、LSIチップの端子がPAD_A又はPAD_Bと接続されているときに、PAD_A又はPAD_Bと接続されているLINE(基板側のPADとLSI側の端子を結ぶ情報)に対して、ボンディングワイヤの情報(WIRE情報)であってLSIチップの端子(PORTINST)と接続されているものを仮に削除する処理である。
【0056】
次に、図1のPAD交換先決定処理部13は、PAD_Bの位置をPAD_Aの新しい位置として仮配線する(図6のステップSTC2)。
【0057】
次に、図1のPAD交換先決定処理部13は、結線可能であるか否かを判断する(図6のステップSTC3)。結線可能であるならば図6のステップSTC4の処理を行い、そうでないならば図6のステップSTC8の処理を行う。この結線可能性の判断については、図7と図8を参照してその一例を後述する。
【0058】
図6のステップSTC4において、図1のPAD交換先決定処理部13は、結線したワイヤ長を上位ルーチンへ戻す。次に、結線したワイヤ形状を上位ルーチンへ戻す(図6のステップSTC5)。次に、仮に削除されたワイヤを復元し(図6のステップSTC6)、PAD_AとPAD_Bは交換可能と判断して(図6のステップSTC7)、図6の処理を終了する。
【0059】
図6のステップSTC8において、図1のPAD交換先決定処理部13は、仮に削除されたワイヤを復元する。次に、PAD_AとPAD_Bは交換可能でないと判断し(図6のステップSTC9)、図6の処理を終了する。
【0060】
以上、図6のフロー図に示されるようにして、PAD_AとPAD_Bの交換可能性がチェックされる。
【0061】
続いて、図7と図8を参照して、図6のステップSTC3の結線可能性の判断についてその一例を説明する。
【0062】
図7は、新規に作成する三次元空間内のボンデングワイヤを示す図である。図7を参照して、スペーシングルール、すなわち、配置されるLSIチップの端子から基板上のPADへのボンディングワイヤの間隔に関するルールについて説明する。
【0063】
図7を参照して、新規に作成する三次元空間内のボンデングワイヤ座標をP0、P1、P2、P3、P4とする。そして、他のワイヤと線分P1−P2、P2−P3、P3−P4の距離を求め、求めた距離の最小値を他ワイヤと線分P1−P2、P2−P3、P3−P4間の距離とする。
【0064】
新規ボンデングワイヤと他ワイヤ間の距離が指定された距離より短い場合、スペーシングルールエラーとなりワイヤは結線できないとする。このように、他ワイヤとのスペーシングルールが指定され、このルールを満たした形状計算が行われる。
【0065】
続いて、図8を参照して、平行配線長ルール、すなわち、配置されるLSIチップの端子から基板上のPADへのボンディングワイヤが複数あるときに、指定されるワイヤ同士が平行に配線される距離の最小値に関するルールについて説明する。図8は、ワイヤ形状計算を行う際に他のワイヤに対する平行部分の長さを示す図である。平行部分の長さは、形状計算したワイヤA0−A1と他のワイヤB0−B1が三次元的に平行でかつ一定距離以内にある場合に計算される。図8において、点A0及び点A1並びに点B0及び点B1は、ベクトルA0A1とベクトルB0B1が同じ向きになるような点であり、点B0’及び点B1’は、それぞれ、点B0と点B1が直線A0−A1上に直線A0−A1と垂直方向に射影された点である。
【0066】
図8(a)は、線分A0−A1上に点B1’があって点B0’がない場合の、線分A0−A1と線分B0−B1の平行部分の長さ|A0−B1’|を示す図である。図8(a)を参照して、平行部分の長さ|A0−B1’|の計算方法について説明する。
【0067】
図8(a)を参照して、ベクトルA0A1をその長さで割って求められる単位ベクトルをベクトルeとし、ベクトルxとベクトルyの内積を(x,y)とすると、平行部分の長さ|A0−B1’|は、|(ベクトルA0B1,ベクトルe)|により求められる。
【0068】
点A0、A1、B0’、B1’の位置関係は、6通りある。以下では、図8(b)〜(e)を参照して、それぞれの場合の平行部分の長さについて説明する。
【0069】
図8(b)を参照して、線分A0−A1が線分B0’−B1’を含む場合、すなわち、(A0B0,e)>=0、(A0B1,e)>0、(A1B0’,e)<0、(A1B0,e)<=0の場合、平行部分の長さは線分B0’−B1’の長さである。
【0070】
図8(c)を参照して、線分A0−A1に点B0’があって点B1’がない場合、すなわち、(A0B0,e)>=0、(A0B1,e)>0、(A1B0’,e)<0、(A1B0,e)>=0の場合、平行部分の長さは線分B0’−A1の長さである。
【0071】
同様に、線分A0−A1の間に点B1’があって点B0’がない場合、すなわち、(A0B0,e)<=0、(A0B1,e)>0、(A1B0’,e)<0、(A1B0,e)<=0の場合、平行部分の長さは線分A0−B1’の長さである。
【0072】
図8(d)を参照して、線分A0−A1と線分B0’−B1’が重ならない場合、すなわち、(A0B0,e)>=0、(A0B1,e)>0、(A1B0’,e)>0、(A1B0,e)>=0の場合、平行部分の長さは0である。
【0073】
同様に、線分A0−A1と線分B0’−B1’が重ならない場合、すなわち、(A0B0,e)<=0、(A0B1,e)<0、(A1B0’,e)<0、(A1B0,e)<=0の場合、平行部分の長さは0である。
【0074】
図8(e)を参照して、線分A0−A1が線分B0’−B1’に含まれる場合、すなわち、(A0B0,e)<=0、(A0B1,e)>0、(A1B0’,e)<0、(A1B0,e)>=0の場合、平行部分の長さは線分A0−A1の長さである。
【0075】
以上のようにして、平行部分の長さが計算される。この長さが指定された値より大きい場合、平行配線長エラーとなり、ワイヤは結線できないと判断される。
【0076】
続いて、図9と図10を参照して、図4のステップSTE4のPAD位置変更処理の一例を説明する。図9と図10は、図4のステップSTE4のPAD位置変更処理の一例を示すフロー図である。図9と図10においては、交換対象のPADの移動により押しのけられたPADの位置が最適になるように、他のPADの位置が変更される。そして、このとき変更されたPADの位置が再び最適になるように他のPADの位置が変更される。この処理を繰り返すことにより、必要最低限のPADのみが位置変更される。なお、一度位置が決められたPADは動かされないものとする。
【0077】
まず、図1のPAD位置変更処理部17は、交換対象のPADをPAD_Aとし、交換先のPADをPAD_Bとする(図9のステップSTP1)。
【0078】
次に、図1のPAD位置変更処理部17は、PAD_AとPAD_Bの位置を交換する(図9のステップSTP2)。このPADの位置を交換する処理については、図11を用いてその一例を後述する。
【0079】
次に、図1のPAD位置変更処理部17は、指定ネットがあり、かつ、指定ネットのPADはFIXでないか否かの判断を行う(図9のステップSTP3)。指定ネットがあって指定ネットのPADがFIXでないならば図9のステップSTP5の処理を行い、そうでないならば図9のステップSTP4の処理を行う。
【0080】
図9のステップSTP4において、図1のPAD位置変更処理部17は、PAD_Bの位置変更処理を行う。このPADの位置変更処理については、図12を用いてその一例を後述する。そして、図9と図10の処理を終了する。
【0081】
図9のステップSTP5において、図1のPAD位置変更処理部17は、指定ネットのワイヤが交換したPAD_Aのワイヤと交差するか否かの判断をする。交差するならば図9のステップSTP6の処理を行い、そうでないならば図10のステップSTP7の処理を行う。
【0082】
図9のステップSTP6において、図1のPAD位置変更処理部17は、指定ネットのPADをFIXとする。そして、図9と図10の処理を終了する。
【0083】
図10のステップSTP7において、図1のPAD位置変更処理部17は、未処理のPADから所定の順にPADを取得して、取得したPADをPAD_Cとする。取得する順は、例えば、PAD_Aに近い順や、優先度指定があれば優先度の順などである。
【0084】
次に、図1のPAD位置変更処理部17は、指定ネット端子とPAD_Cを結ぶワイヤはPAD_Aのワイヤと交差するか否かを判断する(図10のステップSTP8)。交差するならば図10のステップSTP9の処理を行い、そうでないならば図10のステップSTP7の処理を行う。
【0085】
図10のステップSTP9において、図1のPAD位置変更処理部17は、PAD_Cと指定ネットの端子間でワイヤを結線する。
【0086】
次に、図1のPAD位置変更処理部17は、図10のステップSTP9で結線をすることができたか否かの判断を行う(図10のステップSTP10)。結線できたならば図10のステップSTP11の処理を行い、そうでないならば図10のステップSTP7の処理を行う。
【0087】
図10のステップSTP11において、図1のPAD位置変更処理部17は、PAD_Cと指定ネットのPADの位置を交換する。次に、指定ネットのPADをFIXとする(図10のステップSTP12)。
【0088】
次に、図1のPAD位置変更処理部17は、指定ネットのワイヤが結線できたか否かの判断を行う(図10のステップSTP13)。結線できたならば、PAD_Bの位置変更処理を行い(図10のステップSTP14)、PAD_Cの位置変更処理を行い(図10のステップSTP15)、図9と図10の処理を終了する。図10のステップSTP14とステップSTP15の位置変更処理は、図9のステップSTP4のPADの位置変更処理と同様のものである。結線できないならば、図9と図10の処理を終了する。
【0089】
以上、図9と図10のフロー図に示されるようにして、図4のステップSTE4のPADの位置の変更処理が行われる。
【0090】
続いて、図11を参照して、図9のステップSTP2のPAD_AとPAD_Bの交換処理の一例を説明する。図11は、図9のステップSTP2の処理の一例を示すフロー図である。
【0091】
まず、図1のPAD位置変更処理部17は、接続点変更処理を行う(図11のステップSTW1)。具体的には、まず、PAD_Aと接続されているLINEに対して、PAD_Bの位置をPAD_Aの新しい位置として、PAD_A−>NET−>LINEの接続点変更し、WIRE情報があり、PORTINSTと接続されているならば、PAD_A−>NET−>LINE(−>WIRE)をfreeする。また、PAD_Bと接続されているLINEに対して、PAD_Aの位置をPAD_Bの新しい位置として、PAD_B−>NET−>LINEの接続点変更する。
【0092】
次に、図1のPAD位置変更処理部17は、PAD_Aの電気的な接続をPAD_Bと交換し(図11のステップSTW2)、PAD_Bの電気的な接続をPAD_Aと交換する(図11のステップSTW3)。次に、図1のPAD位置変更処理部17は、PAD_AとPAD_Bが交換したことを格納する(図11のステップSTW4)。そして、図11の処理を終了する。
【0093】
続いて、図12を参照して、図9のステップSTP4のPADの位置変更処理を説明する。図12は、図9のステップSTP4のPAD_Bの位置変更処理の一例を示すフロー図である。
【0094】
まず、図1のPAD位置変更処理部17は、全PADのうち、PAD_Bと交換可能なPAD(以下ではこのようなPADをPAD_Yという)があれば、PAD_Bのワイヤが一番短くなるようなPAD_Yと、そのときのPAD_Bのワイヤ形状を記憶する(図12のステップSTX1)。
【0095】
次に、図1のPAD位置変更処理部17は、PAD_Yが見つかったか否かの判断を行う(図12のステップSTX2)。見つかったならば図12のステップSTX3の処理を行い、そうでないならば図12のステップSTX4の処理を行う。
【0096】
図12のステップSTX3において、図1のPAD位置変更処理部17は、PAD_Bと記憶されたPAD_Yの位置を交換する。そして、図12のステップSTX1の処理を行う。
【0097】
図12のステップSTX4において、図1のPAD位置変更処理部17は、PAD_Bに元々繋がっていたワイヤがルールを守っているか否かの判断を行う。ルールを守っていたならば、ワイヤを作成し(図12のステップSTX5)、図12の処理を終了する。そうでないならば、警告をして(図12のステップSTX6)、図12の処理を終了する。
【0098】
続いて、図13を参照して、図1の自動再配線処理部7による図3のステップSTM3の自動再配線処理の一例を説明する。図13は、図3のステップSTM3の自動再配線処理の一例を示すフロー図である。
【0099】
まず、図1の自動再配線処理部7は、コントロールファイルの基板のゾーンと接続するLAYERの配線幅によって(最大公約数)、配線グリッドと配線禁止領域を作成する(図13のステップSTR1)。
【0100】
次に、図1の自動再配線処理部7は、入れ換えが生じたPADについて、既配線削除処理と基板配線処理を行う(図13のステップSTR2)。ここで、既配線削除処理は、NETが基板配線のときに配線図形を削除する処理であり、基板配線処理は、NETが基板配線のときに、基板配線のパスを迷路法により探し、一番短いパスによってLINEを作成し、LINEをNETの配線図形とするものである。
【0101】
次に、図1の自動再配線処理部7は、配線グリッドを削除する(図13のステップSTR3)。そして、図13の処理を終了する。
【0102】
以上のようにして、図1のSiP設計支援装置1は、基板の端子の位置とチップの端子の位置を同時に変更し、自動的に再配線処理をすることができる。
【0103】
なお、基板上のPADとLSIチップの端子の位置変更に関しては、図4に示されるようにどちらかを固定して他方を移動するだけでなく、両方を自動に動かしてもよい。すなわち、例えば一方(例えば基板上のPAD)を変更することにより、他方(例えばLSIチップの端子)を変更するようにしてもよい。
【図面の簡単な説明】
【0104】
【図1】本発明の実施の形態に係るSiP設計支援装置1の概略ブロック図である。
【図2】図1のSiP設計支援装置1による端子の位置変更の一例を示す図であり、変更前と変更後のSiP基板21のPAD25〜39とLSIチップ23のチップ端子の間の接続状態を示す図である。
【図3】図1のSiP設計支援装置1の動作の一例を示すフロー図である。
【図4】図3のステップSTM2の端子位置変更処理の一例を示すフロー図である。
【図5】図4のステップSTE3のPAD交換先決定処理の一例を示すフロー図である。
【図6】図5のステップSTT4のPAD_AとPAD_Bの交換可能性のチェックの処理の一例を示すフロー図である。
【図7】図6のステップSTC3の結線可能性の判断に用いられるスペーシングルールを説明するための図であって、新規に作成する三次元空間内のボンデングワイヤを示す図である。
【図8】図6のステップSTC3の結線可能性の判断に用いられる平行配線長ルールを説明するための図であって、ワイヤ形状計算を行う際に他のワイヤに対する平行部分の長さを示す図である。
【図9】図4のステップSTE4のPAD位置変更処理の一例を示す第1のフロー図である。
【図10】図4のステップSTE4のPAD位置変更処理の一例を示す第2のフロー図である。
【図11】図9のステップSTP2のPAD_AとPAD_Bの交換処理の一例を示すフロー図である。
【図12】図9のステップSTP4のPAD_Bの位置変更処理の一例を示すフロー図である。
【図13】図3のステップSTM3の自動再配線処理の一例を示すフロー図である。
【符号の説明】
【0105】
1 SiP設計支援装置
3 制御部
5 端子位置変更処理部
7 自動再配線処理部
9 PAD交換先決定処理部
11 PAD位置変更処理部
13 チップ端子交換先決定処理部
15 チップ端子位置変更処理部
【技術分野】
【0001】
本発明は、半導体装置設計支援装置、半導体装置設計支援方法、その方法をコンピュータにより実行可能なプログラム、及び、そのプログラムを記録した記録媒体に関し、特に基板及び前記基板上に配置されるチップを有する半導体装置の設計を支援する半導体装置設計支援装置等に関する。
【背景技術】
【0002】
近年LSI製造プロセス技術の進歩によりLSIの基板への集積度が一層進んでおり、SiP(system in a package)という概念も出てきた。SiPは、微小なプリント基板上に複数のICチップや受動素子を3次元実装して微小なシステムを製造する技術をいう。シリコンチップ上に回路を書き込んでシステムを作製するSoC(System On a Chip)に比較して、i)既存のチップを用いれば、短納期に量産が可能、ii)小さな設備投資で、iii)少量多品種の生産に有利などの利点を有する。
【0003】
従来、このSiPの設計においては、設計者は、SiP基板の端子に関しては入れ替えを行って設計していたが、LSIチップの端子に関しては別部署へ依頼して対処していた。
【0004】
なお、SiPに関する技術ではないが、従来の半導体チップ設計に関する技術を示す文献として、例えば特許文献1がある。
【0005】
【特許文献1】特開2004−31891号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の設計においては、端子間の接続状況は人間が考えて決めていた。また、配線形状も経験に基づくマニュアル配線であった。そのため、端子は本当に端子間の配線が最短になるように設計されているかどうか不明であった。
【0007】
さらに、チップ側端子に関しては別部署に依頼して対処されており、情報の伝達ミスが発生する可能性が大きかった。
【0008】
そこで、本発明の目的は、基板の端子と基板上に配置されるチップの端子とが電気的配線により接続される半導体装置の設計の支援に適合する半導体装置設計支援装置、半導体装置設計支援方法、その方法をコンピュータにより実行可能なプログラム、及び、そのプログラムを記録した記録媒体を提案することである。
【課題を解決するための手段】
【0009】
請求項1に係る発明は、基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援装置であって、前記基板及び前記チップの少なくとも一方の接続されるべき端子の位置を変更する端子位置変更手段を備えるものである。
【0010】
請求項2に係る発明は、請求項1記載の半導体装置設計支援装置であって、前記端子位置変更手段が前記基板の端子の位置を変更する基板端子位置変更処理手段と前記チップの端子の位置を変更するチップ端子位置変更処理手段を有するものである。
【0011】
請求項3に係る発明は、請求項1又は2記載の半導体装置設計支援装置であって、前記端子位置変更手段が位置を変更する端子に接続する配線の少なくとも一つが他の配線の少なくとも一つと交差するように端子の位置を変更するものである。
【0012】
SiPにおいて、LSIチップが実装されて配線されるときは、ワイヤボンディングで配線される場合が多い。空中に配線されたワイヤを高周波の信号が通過する場合、配線が平行していると隣の配線の信号の影響が大きく、ノイズが発生してしまう。請求項3に係る発明によれば、端子位置変更手段が配線を交差するようにして配線が平行になることを避けることができ、ノイズの発生を防止することができる。
【0013】
請求項4に係る発明は、請求項1から3のいずれかに記載の半導体装置設計支援装置であって、前記端子位置変更手段が位置を変更する端子に接続する配線と他の配線の距離に関する条件に基づいて端子の位置を変更するものである。
【0014】
一般的に、配線間の信号によるノイズは配線間隔が開くほど小さくなる。請求項4に係る発明によれば、信号線間隔が一定以上に大きくなるよう配線されるため、ノイズの発生を防止することができる。
【0015】
請求項5に係る発明は、請求項1から4のいずれかに記載の半導体装置設計支援装置であって、前記端子位置変更手段が位置を変更する端子に接続する配線と他の配線の並行部分の長さに関する条件に基づいて端子の位置を変更するものである。
【0016】
配線が平行している距離が長いほど、配線同士の信号が干渉してノイズが発生する可能性が大きくなる。請求項5に係る発明によれば、配線同士がある一定以上の距離を平行しないように設計されるため、ノイズの発生を防止することができる。
【0017】
請求項6に係る発明は、請求項1から5のいずれかに記載の半導体装置設計支援装置であって、指定される交換対象の端子に対して所定の条件を満たす交換先の端子を決定する端子交換先決定処理手段を有し、前記端子位置変更手段が、前記交換対象の端子の位置と前記端子交換先決定処理手段により決定された前記交換先の端子の位置を交換するものである。
【0018】
請求項7に係る発明は、請求項1から6のいずれかに記載の半導体装置設計支援装置であって、三次元的な配置又は配線の設計を支援するものである。
【0019】
請求項8に係る発明は、基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援方法であって、端子位置変更手段が前記基板及び前記チップの少なくとも一方の端子の位置を変更するステップを含むものである。
【0020】
請求項9に係る発明は、請求項8記載の半導体装置設計支援方法をコンピュータに実行させることが可能なプログラムである。
【0021】
請求項10に係る発明は、請求項9に記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体である。
【発明の効果】
【0022】
以上のように、本発明によれば、基板の端子の位置とチップの端子の位置を同時に設計することが可能となる。この設計により、LSIチップの端子の位置を前提としてSiP基板の端子の位置を設計することとは異なり、基板の端子とチップの端子を併せて設計する、いわば、SiPのトップダウン設計が可能となる。また、チップ側端子に関して他部署に依頼して対処することが不要となり、部署間の伝達ミスを防止することが可能となる。
【0023】
さらに、本発明によれば、基板の端子とチップの端子は、例えばこれらの間の接続の面積・体積が3次元的に最小となるよう配置可能であり、製造コストを最小にすることが可能となる。また、端子は自動的に配置可能であり、熟練技術者による配置・配線品質と同等の配置が可能となる。
【発明を実施するための最良の形態】
【0024】
図1は、本発明の実施の形態に係るSiP設計支援装置の概略ブロック図である。
【0025】
図1を参照して、SiP設計支援装置1は、制御部3と、電気的に接続されるSiP基板の端子(以下では「PAD」という)とLSIチップの端子(以下では「チップ端子」という)に対して処理を行う端子処理部5と、PADからSiP基板上のVIA・端子まで配線を行う自動再配線処理部7を備える。端子処理部5は、ユーザにより選択された交換対象の端子に対して交換先の端子を決定する端子交換先決定処理部9と端子の位置の変更を行う端子位置変更処理部11を有する。端子交換先決定処理部9は、PADに関して交換先決定処理を行うPAD交換先決定処理部13とチップ端子に関して交換先決定処理を行うチップ端子交換先決定処理部15を有する。また、端子位置変更処理部11は、PADに関して位置変更処理を行うPAD位置変更処理部17とチップ端子に関して位置変更処理を行うチップ端子位置変更処理部19を有する。
【0026】
ここで、変更においては、基板上のPAD位置やチップの端子位置は変更されずに、接続情報のみが変更される。すなわち、SiP設計支援装置1では、基板上のPADとLSIチップの端子との間には、どのPADと端子が接続されるのかの情報が与えられる。接続されるPADと端子が変更された場合、その物理的な位置は変更しないで、PADと端子の接続情報のみが変更になる。そのため、見た目上は変更したPADと端子の位置が変更後の位置に移動したように見えるが、実際は位置が変更したのではなく接続情報のみが変更される。また、位置変更されたPADや端子に接続するワイヤの引きなおしも行われる。
【0027】
自動再配線処理部7は、迷路法を用いて、PADから基板上のVIA・端子まで1層・45°配線を行う。ここで、迷路法は、配線アルゴリズムの一つであり、配線領域がメッシュ上に分割され、配線の基点から終点に向かって波紋状に番号がつけられ、その番号が終点に到達したときに最短となる番号により起点から終点までの最短配線経路が決定される手法である
【0028】
図2を参照して、図1のSiP設計支援装置1の動作の一例を説明する。図2は、図1のSiP設計支援装置1による端子の位置変更の一例を示す図であり、変更前と変更後のSiP基板21のPAD25〜39とLSIチップ23のチップ端子の間の接続状態を示す図である。図2(a)は変更前のPADとチップ端子の接続状態の一例を示す図であり、図2(b)は変更後のPADとチップ端子の接続状態の一例を示す図である。
【0029】
図2(a)を参照して、SiP基板21上にはLSIチップ23が配置され、SiP基板21には、LSIチップ23を挟んで、一方に4つのPAD25、27、29、31があり、他方に4つのPAD33、35、37、39がある。SiP基板21のPAD25〜39とLSIチップ23のチップ端子とは、6つのPAD25、29、31、33、35、39はそれぞれ最も近いチップ端子と接続されているが、PAD27はPAD37に最も近いチップ端子41と接続され、PAD37はPAD27に最も近いチップ端子43と接続されている。
【0030】
図2(a)のような接続状態において、PAD27とPAD37の位置を交換するか、またはチップ端子41とチップ端子43の位置を交換することにより、図2(b)にあるように、SiP基板のPADとLSIチップのチップ端子間の接続がトータルで最短となる。図1のSiP設計支援装置1は、このようなPADやチップ端子の位置を変更する処理を行うものである。
【0031】
続いて、図3を参照して、図1のSiP設計支援装置1の動作の一例を説明する。図3は、図1のSiP設計支援装置1の動作の一例を示すフロー図である。
【0032】
まず、図1の制御部3は、初期設定を行う(図3のステップSTM1)。この初期設定は、例えば、引数をチェックしたり、パラメータファイルや入力ファイルやコントロールファイルを読み込んだりすることにより行われる。
【0033】
次に、図1の端子処理部5は、PADやチップ端子の位置を変更する処理を行う(図3のステップSTM2)。このPADやチップ端子の位置を変更する処理については、図4〜図12を用いてその一例を後述する。
【0034】
次に、図1の自動再配線処理部7は、PADから基板上のVIA・端子まで自動再配線処理を行う(図3のステップSTM3)。この自動再配線処理については、図13を用いてその一例を後述する。そして、図3の処理を終了する。
【0035】
続いて、図4を参照して、図3のステップSTM2の端子位置変更処理の一例を説明する。図4は、図3のステップSTM2の端子位置変更処理の一例を示すフロー図である。
【0036】
まず、図1の端子処理部5は、ユーザにより選択された交換対象の端子がPADであるか否かの判断を行う(図4のステップSTE1)。交換対象の端子がPADであるならば図4のステップSTE2の処理を行い、PADでないならば図4のステップSTE5の処理を行う。
【0037】
図4のステップSTE2において、図1の端子処理部5は、交換先が指定されているか否かの判断を行う。指定されているのであるならば図4のステップSTE4の処理を行い、指定されていないならば図4のステップSTE3の処理を行う。
【0038】
図4のステップSTE3において、図1のPAD変換先決定処理部9は、PAD交換先決定処理を行う。このPAD交換先決定処理については、図5〜図8を用いてその一例を後述する。そして、図4のステップSTE4の処理を行う。
【0039】
図4のステップSTE4において、図1のPAD位置変更処理部17は、PAD位置変更処理を行う。このPAD位置変更処理については、図9〜図12を参照してその一例を後述する。そして、図1の端子処理部5は図4の処理を終了する。
【0040】
図4のステップSTE5において、図1の端子処理部5は、交換先が指定されているか否かの判断を行う。指定されているのであるならば図4のステップSTE7の処理を行い、指定されていないならば図4のステップSTE6の処理を行う。
【0041】
図4のステップSTE6において、図1の端子変換先決定処理部13は、チップ端子交換先決定処理を行う。このチップ端子交換先決定処理は、図4のステップSTE3のPAD交換先決定処理と同様のものである。そして、図4のステップSTE7の処理を行う。
【0042】
図4のステップSTE7において、図1のチップ端子位置変更処理部19は、チップ端子位置変更処理を行う。このチップ端子位置変更処理は、図4のステップSTE4のPAD位置変更処理と同様のものである。そして、図1の端子処理部5は図4の処理を終了する。
【0043】
続いて、図5から図8を参照して、図4のステップSTE3のPAD交換先決定処理の一例を説明する。このPAD交換先決定処理においては、選択されたPADが一つである場合、選択された交換対象のPADに対して交換先のPADが自動的に決定される。交換先のPADは、例えば図7を用いて説明されるスペーシングルールや図8を用いて説明される平行配線長ルールなどのルールに基づいて決定される。このとき、特定のネットを指定することにより、ワイヤ結線後に指定されたネットのワイヤと交差するようなPADが交換相手として認識される。なお、指定されたネットのPADはFIX属性となり、他のPADとの交換対象にはならないとする。
【0044】
図5は、図4のステップSTE3のPAD交換先決定処理の一例を示すフロー図である。
【0045】
まず、図1のPAD交換先決定処理部13は、選択された交換対象のPADをPAD_Aとする(図5のステップSTT1)。
【0046】
次に、図1のPAD交換先決定処理部13は、未処理のPADから所定の順にPADを取得して、取得したPADをPAD_Bとする(図5のステップSTT2)。取得する順は、例えばPAD_Aに近い順や優先度指定があれば優先度の順などである。
【0047】
次に、図1のPAD交換先決定処理部13は、指定ネットがあり、かつ、PAD_Bの場所からPAD_Aのワイヤを結線すると指定ネットのワイヤと交差しないか否かの判断を行う(図5のステップSTT3)。指定ネットがあって交差しないならば図5のステップSTT6の処理を行い、そうでないならば図5のステップSTT4の処理を行う。
【0048】
図5のステップSTT4において、図1のPAD交換先決定処理部13は、PAD_AとPAD_Bの交換可能性をチェックする。この交換可能性のチェックの処理については、図6を参照してその一例を後述する。
【0049】
次に、図1のPAD交換先決定処理部13は、図5のステップSTT4の処理の結果に基づいてPAD_AとPAD_Bが交換可能であるか否かの判断を行う(図5のステップSTT5)。交換可能であるならば図5のステップSTT7の処理を行い、そうでないならば図5のステップSTT6の処理を行う。
【0050】
図5のステップSTT6において、図1のPAD交換先決定処理部13は、全PADに対して処理を行ったか否かの判断を行う。処理を行っているならばエラー終了をし、そうでないならば図5のステップSTT2の処理を行う。
【0051】
図5のステップSTT7において、図1のPAD交換先決定処理部13は、PAD_Aの交換先としてPAD_Bを指定する。
【0052】
次に、図1のPAD交換先決定処理部13は、指定ネットがあるか否かの判断を行う(図5のステップSTT8)。指定ネットがあるならば、該当ネットのPADをFIXとして(図5のステップSTT9)図5の処理を終了する。指定ネットがないならば、図5の処理を終了する。
【0053】
以上、図5のフロー図に示されるようにして、ユーザにより選択された交換対象のPADに対して交換先のPADが決定される。
【0054】
続いて、図6を参照して、図5のステップSTT4のPAD_AとPAD_Bの交換可能性のチェックの処理の一例を説明する。図6は、図5のステップSTT4のPAD_AとPAD_Bの交換可能性のチェックの処理の一例を示すフロー図である。
【0055】
まず、図1のPAD交換先決定処理部13は、ワイヤを仮削除する(図6のステップSTC1)。このワイヤの仮削除処理は、LSIチップの端子がPAD_A又はPAD_Bと接続されているときに、PAD_A又はPAD_Bと接続されているLINE(基板側のPADとLSI側の端子を結ぶ情報)に対して、ボンディングワイヤの情報(WIRE情報)であってLSIチップの端子(PORTINST)と接続されているものを仮に削除する処理である。
【0056】
次に、図1のPAD交換先決定処理部13は、PAD_Bの位置をPAD_Aの新しい位置として仮配線する(図6のステップSTC2)。
【0057】
次に、図1のPAD交換先決定処理部13は、結線可能であるか否かを判断する(図6のステップSTC3)。結線可能であるならば図6のステップSTC4の処理を行い、そうでないならば図6のステップSTC8の処理を行う。この結線可能性の判断については、図7と図8を参照してその一例を後述する。
【0058】
図6のステップSTC4において、図1のPAD交換先決定処理部13は、結線したワイヤ長を上位ルーチンへ戻す。次に、結線したワイヤ形状を上位ルーチンへ戻す(図6のステップSTC5)。次に、仮に削除されたワイヤを復元し(図6のステップSTC6)、PAD_AとPAD_Bは交換可能と判断して(図6のステップSTC7)、図6の処理を終了する。
【0059】
図6のステップSTC8において、図1のPAD交換先決定処理部13は、仮に削除されたワイヤを復元する。次に、PAD_AとPAD_Bは交換可能でないと判断し(図6のステップSTC9)、図6の処理を終了する。
【0060】
以上、図6のフロー図に示されるようにして、PAD_AとPAD_Bの交換可能性がチェックされる。
【0061】
続いて、図7と図8を参照して、図6のステップSTC3の結線可能性の判断についてその一例を説明する。
【0062】
図7は、新規に作成する三次元空間内のボンデングワイヤを示す図である。図7を参照して、スペーシングルール、すなわち、配置されるLSIチップの端子から基板上のPADへのボンディングワイヤの間隔に関するルールについて説明する。
【0063】
図7を参照して、新規に作成する三次元空間内のボンデングワイヤ座標をP0、P1、P2、P3、P4とする。そして、他のワイヤと線分P1−P2、P2−P3、P3−P4の距離を求め、求めた距離の最小値を他ワイヤと線分P1−P2、P2−P3、P3−P4間の距離とする。
【0064】
新規ボンデングワイヤと他ワイヤ間の距離が指定された距離より短い場合、スペーシングルールエラーとなりワイヤは結線できないとする。このように、他ワイヤとのスペーシングルールが指定され、このルールを満たした形状計算が行われる。
【0065】
続いて、図8を参照して、平行配線長ルール、すなわち、配置されるLSIチップの端子から基板上のPADへのボンディングワイヤが複数あるときに、指定されるワイヤ同士が平行に配線される距離の最小値に関するルールについて説明する。図8は、ワイヤ形状計算を行う際に他のワイヤに対する平行部分の長さを示す図である。平行部分の長さは、形状計算したワイヤA0−A1と他のワイヤB0−B1が三次元的に平行でかつ一定距離以内にある場合に計算される。図8において、点A0及び点A1並びに点B0及び点B1は、ベクトルA0A1とベクトルB0B1が同じ向きになるような点であり、点B0’及び点B1’は、それぞれ、点B0と点B1が直線A0−A1上に直線A0−A1と垂直方向に射影された点である。
【0066】
図8(a)は、線分A0−A1上に点B1’があって点B0’がない場合の、線分A0−A1と線分B0−B1の平行部分の長さ|A0−B1’|を示す図である。図8(a)を参照して、平行部分の長さ|A0−B1’|の計算方法について説明する。
【0067】
図8(a)を参照して、ベクトルA0A1をその長さで割って求められる単位ベクトルをベクトルeとし、ベクトルxとベクトルyの内積を(x,y)とすると、平行部分の長さ|A0−B1’|は、|(ベクトルA0B1,ベクトルe)|により求められる。
【0068】
点A0、A1、B0’、B1’の位置関係は、6通りある。以下では、図8(b)〜(e)を参照して、それぞれの場合の平行部分の長さについて説明する。
【0069】
図8(b)を参照して、線分A0−A1が線分B0’−B1’を含む場合、すなわち、(A0B0,e)>=0、(A0B1,e)>0、(A1B0’,e)<0、(A1B0,e)<=0の場合、平行部分の長さは線分B0’−B1’の長さである。
【0070】
図8(c)を参照して、線分A0−A1に点B0’があって点B1’がない場合、すなわち、(A0B0,e)>=0、(A0B1,e)>0、(A1B0’,e)<0、(A1B0,e)>=0の場合、平行部分の長さは線分B0’−A1の長さである。
【0071】
同様に、線分A0−A1の間に点B1’があって点B0’がない場合、すなわち、(A0B0,e)<=0、(A0B1,e)>0、(A1B0’,e)<0、(A1B0,e)<=0の場合、平行部分の長さは線分A0−B1’の長さである。
【0072】
図8(d)を参照して、線分A0−A1と線分B0’−B1’が重ならない場合、すなわち、(A0B0,e)>=0、(A0B1,e)>0、(A1B0’,e)>0、(A1B0,e)>=0の場合、平行部分の長さは0である。
【0073】
同様に、線分A0−A1と線分B0’−B1’が重ならない場合、すなわち、(A0B0,e)<=0、(A0B1,e)<0、(A1B0’,e)<0、(A1B0,e)<=0の場合、平行部分の長さは0である。
【0074】
図8(e)を参照して、線分A0−A1が線分B0’−B1’に含まれる場合、すなわち、(A0B0,e)<=0、(A0B1,e)>0、(A1B0’,e)<0、(A1B0,e)>=0の場合、平行部分の長さは線分A0−A1の長さである。
【0075】
以上のようにして、平行部分の長さが計算される。この長さが指定された値より大きい場合、平行配線長エラーとなり、ワイヤは結線できないと判断される。
【0076】
続いて、図9と図10を参照して、図4のステップSTE4のPAD位置変更処理の一例を説明する。図9と図10は、図4のステップSTE4のPAD位置変更処理の一例を示すフロー図である。図9と図10においては、交換対象のPADの移動により押しのけられたPADの位置が最適になるように、他のPADの位置が変更される。そして、このとき変更されたPADの位置が再び最適になるように他のPADの位置が変更される。この処理を繰り返すことにより、必要最低限のPADのみが位置変更される。なお、一度位置が決められたPADは動かされないものとする。
【0077】
まず、図1のPAD位置変更処理部17は、交換対象のPADをPAD_Aとし、交換先のPADをPAD_Bとする(図9のステップSTP1)。
【0078】
次に、図1のPAD位置変更処理部17は、PAD_AとPAD_Bの位置を交換する(図9のステップSTP2)。このPADの位置を交換する処理については、図11を用いてその一例を後述する。
【0079】
次に、図1のPAD位置変更処理部17は、指定ネットがあり、かつ、指定ネットのPADはFIXでないか否かの判断を行う(図9のステップSTP3)。指定ネットがあって指定ネットのPADがFIXでないならば図9のステップSTP5の処理を行い、そうでないならば図9のステップSTP4の処理を行う。
【0080】
図9のステップSTP4において、図1のPAD位置変更処理部17は、PAD_Bの位置変更処理を行う。このPADの位置変更処理については、図12を用いてその一例を後述する。そして、図9と図10の処理を終了する。
【0081】
図9のステップSTP5において、図1のPAD位置変更処理部17は、指定ネットのワイヤが交換したPAD_Aのワイヤと交差するか否かの判断をする。交差するならば図9のステップSTP6の処理を行い、そうでないならば図10のステップSTP7の処理を行う。
【0082】
図9のステップSTP6において、図1のPAD位置変更処理部17は、指定ネットのPADをFIXとする。そして、図9と図10の処理を終了する。
【0083】
図10のステップSTP7において、図1のPAD位置変更処理部17は、未処理のPADから所定の順にPADを取得して、取得したPADをPAD_Cとする。取得する順は、例えば、PAD_Aに近い順や、優先度指定があれば優先度の順などである。
【0084】
次に、図1のPAD位置変更処理部17は、指定ネット端子とPAD_Cを結ぶワイヤはPAD_Aのワイヤと交差するか否かを判断する(図10のステップSTP8)。交差するならば図10のステップSTP9の処理を行い、そうでないならば図10のステップSTP7の処理を行う。
【0085】
図10のステップSTP9において、図1のPAD位置変更処理部17は、PAD_Cと指定ネットの端子間でワイヤを結線する。
【0086】
次に、図1のPAD位置変更処理部17は、図10のステップSTP9で結線をすることができたか否かの判断を行う(図10のステップSTP10)。結線できたならば図10のステップSTP11の処理を行い、そうでないならば図10のステップSTP7の処理を行う。
【0087】
図10のステップSTP11において、図1のPAD位置変更処理部17は、PAD_Cと指定ネットのPADの位置を交換する。次に、指定ネットのPADをFIXとする(図10のステップSTP12)。
【0088】
次に、図1のPAD位置変更処理部17は、指定ネットのワイヤが結線できたか否かの判断を行う(図10のステップSTP13)。結線できたならば、PAD_Bの位置変更処理を行い(図10のステップSTP14)、PAD_Cの位置変更処理を行い(図10のステップSTP15)、図9と図10の処理を終了する。図10のステップSTP14とステップSTP15の位置変更処理は、図9のステップSTP4のPADの位置変更処理と同様のものである。結線できないならば、図9と図10の処理を終了する。
【0089】
以上、図9と図10のフロー図に示されるようにして、図4のステップSTE4のPADの位置の変更処理が行われる。
【0090】
続いて、図11を参照して、図9のステップSTP2のPAD_AとPAD_Bの交換処理の一例を説明する。図11は、図9のステップSTP2の処理の一例を示すフロー図である。
【0091】
まず、図1のPAD位置変更処理部17は、接続点変更処理を行う(図11のステップSTW1)。具体的には、まず、PAD_Aと接続されているLINEに対して、PAD_Bの位置をPAD_Aの新しい位置として、PAD_A−>NET−>LINEの接続点変更し、WIRE情報があり、PORTINSTと接続されているならば、PAD_A−>NET−>LINE(−>WIRE)をfreeする。また、PAD_Bと接続されているLINEに対して、PAD_Aの位置をPAD_Bの新しい位置として、PAD_B−>NET−>LINEの接続点変更する。
【0092】
次に、図1のPAD位置変更処理部17は、PAD_Aの電気的な接続をPAD_Bと交換し(図11のステップSTW2)、PAD_Bの電気的な接続をPAD_Aと交換する(図11のステップSTW3)。次に、図1のPAD位置変更処理部17は、PAD_AとPAD_Bが交換したことを格納する(図11のステップSTW4)。そして、図11の処理を終了する。
【0093】
続いて、図12を参照して、図9のステップSTP4のPADの位置変更処理を説明する。図12は、図9のステップSTP4のPAD_Bの位置変更処理の一例を示すフロー図である。
【0094】
まず、図1のPAD位置変更処理部17は、全PADのうち、PAD_Bと交換可能なPAD(以下ではこのようなPADをPAD_Yという)があれば、PAD_Bのワイヤが一番短くなるようなPAD_Yと、そのときのPAD_Bのワイヤ形状を記憶する(図12のステップSTX1)。
【0095】
次に、図1のPAD位置変更処理部17は、PAD_Yが見つかったか否かの判断を行う(図12のステップSTX2)。見つかったならば図12のステップSTX3の処理を行い、そうでないならば図12のステップSTX4の処理を行う。
【0096】
図12のステップSTX3において、図1のPAD位置変更処理部17は、PAD_Bと記憶されたPAD_Yの位置を交換する。そして、図12のステップSTX1の処理を行う。
【0097】
図12のステップSTX4において、図1のPAD位置変更処理部17は、PAD_Bに元々繋がっていたワイヤがルールを守っているか否かの判断を行う。ルールを守っていたならば、ワイヤを作成し(図12のステップSTX5)、図12の処理を終了する。そうでないならば、警告をして(図12のステップSTX6)、図12の処理を終了する。
【0098】
続いて、図13を参照して、図1の自動再配線処理部7による図3のステップSTM3の自動再配線処理の一例を説明する。図13は、図3のステップSTM3の自動再配線処理の一例を示すフロー図である。
【0099】
まず、図1の自動再配線処理部7は、コントロールファイルの基板のゾーンと接続するLAYERの配線幅によって(最大公約数)、配線グリッドと配線禁止領域を作成する(図13のステップSTR1)。
【0100】
次に、図1の自動再配線処理部7は、入れ換えが生じたPADについて、既配線削除処理と基板配線処理を行う(図13のステップSTR2)。ここで、既配線削除処理は、NETが基板配線のときに配線図形を削除する処理であり、基板配線処理は、NETが基板配線のときに、基板配線のパスを迷路法により探し、一番短いパスによってLINEを作成し、LINEをNETの配線図形とするものである。
【0101】
次に、図1の自動再配線処理部7は、配線グリッドを削除する(図13のステップSTR3)。そして、図13の処理を終了する。
【0102】
以上のようにして、図1のSiP設計支援装置1は、基板の端子の位置とチップの端子の位置を同時に変更し、自動的に再配線処理をすることができる。
【0103】
なお、基板上のPADとLSIチップの端子の位置変更に関しては、図4に示されるようにどちらかを固定して他方を移動するだけでなく、両方を自動に動かしてもよい。すなわち、例えば一方(例えば基板上のPAD)を変更することにより、他方(例えばLSIチップの端子)を変更するようにしてもよい。
【図面の簡単な説明】
【0104】
【図1】本発明の実施の形態に係るSiP設計支援装置1の概略ブロック図である。
【図2】図1のSiP設計支援装置1による端子の位置変更の一例を示す図であり、変更前と変更後のSiP基板21のPAD25〜39とLSIチップ23のチップ端子の間の接続状態を示す図である。
【図3】図1のSiP設計支援装置1の動作の一例を示すフロー図である。
【図4】図3のステップSTM2の端子位置変更処理の一例を示すフロー図である。
【図5】図4のステップSTE3のPAD交換先決定処理の一例を示すフロー図である。
【図6】図5のステップSTT4のPAD_AとPAD_Bの交換可能性のチェックの処理の一例を示すフロー図である。
【図7】図6のステップSTC3の結線可能性の判断に用いられるスペーシングルールを説明するための図であって、新規に作成する三次元空間内のボンデングワイヤを示す図である。
【図8】図6のステップSTC3の結線可能性の判断に用いられる平行配線長ルールを説明するための図であって、ワイヤ形状計算を行う際に他のワイヤに対する平行部分の長さを示す図である。
【図9】図4のステップSTE4のPAD位置変更処理の一例を示す第1のフロー図である。
【図10】図4のステップSTE4のPAD位置変更処理の一例を示す第2のフロー図である。
【図11】図9のステップSTP2のPAD_AとPAD_Bの交換処理の一例を示すフロー図である。
【図12】図9のステップSTP4のPAD_Bの位置変更処理の一例を示すフロー図である。
【図13】図3のステップSTM3の自動再配線処理の一例を示すフロー図である。
【符号の説明】
【0105】
1 SiP設計支援装置
3 制御部
5 端子位置変更処理部
7 自動再配線処理部
9 PAD交換先決定処理部
11 PAD位置変更処理部
13 チップ端子交換先決定処理部
15 チップ端子位置変更処理部
【特許請求の範囲】
【請求項1】
基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援装置であって、
前記基板及び前記チップの少なくとも一方の接続されるべき端子の位置を変更する端子位置変更手段を備える半導体装置設計支援装置。
【請求項2】
前記端子位置変更手段は前記基板の端子の位置を変更する基板端子位置変更処理手段と前記チップの端子の位置を変更するチップ端子位置変更処理手段を有する請求項1記載の半導体装置設計支援装置。
【請求項3】
前記端子位置変更手段は位置を変更する端子に接続する配線の少なくとも一つが他の配線の少なくとも一つと交差するように端子の位置を変更する請求項1又は2記載の半導体装置設計支援装置。
【請求項4】
前記端子位置変更手段は位置を変更する端子に接続する配線と他の配線の距離に関する条件に基づいて端子の位置を変更する請求項1から3のいずれかに記載の半導体装置設計支援装置。
【請求項5】
前記端子位置変更手段は位置を変更する端子に接続する配線と他の配線の並行部分の長さに関する条件に基づいて端子の位置を変更する請求項1から4のいずれかに記載の半導体装置設計支援装置。
【請求項6】
指定される交換対象の端子に対して所定の条件を満たす交換先の端子を決定する端子交換先決定処理手段を有し、
前記端子位置変更手段は、前記交換対象の端子の位置と前記端子交換先決定処理手段により決定された前記交換先の端子の位置を交換する、
請求項1から5のいずれかに記載の半導体装置設計支援装置。
【請求項7】
三次元的な配置又は配線の設計を支援する請求項1から6のいずれかに記載の半導体装置設計支援装置。
【請求項8】
基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援方法であって、
端子位置変更手段が前記基板及び前記チップの少なくとも一方の端子の位置を変更するステップを含む半導体装置設計支援方法。
【請求項9】
請求項8記載の半導体装置設計支援方法をコンピュータに実行させることが可能なプログラム。
【請求項10】
請求項9に記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体。
【請求項1】
基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援装置であって、
前記基板及び前記チップの少なくとも一方の接続されるべき端子の位置を変更する端子位置変更手段を備える半導体装置設計支援装置。
【請求項2】
前記端子位置変更手段は前記基板の端子の位置を変更する基板端子位置変更処理手段と前記チップの端子の位置を変更するチップ端子位置変更処理手段を有する請求項1記載の半導体装置設計支援装置。
【請求項3】
前記端子位置変更手段は位置を変更する端子に接続する配線の少なくとも一つが他の配線の少なくとも一つと交差するように端子の位置を変更する請求項1又は2記載の半導体装置設計支援装置。
【請求項4】
前記端子位置変更手段は位置を変更する端子に接続する配線と他の配線の距離に関する条件に基づいて端子の位置を変更する請求項1から3のいずれかに記載の半導体装置設計支援装置。
【請求項5】
前記端子位置変更手段は位置を変更する端子に接続する配線と他の配線の並行部分の長さに関する条件に基づいて端子の位置を変更する請求項1から4のいずれかに記載の半導体装置設計支援装置。
【請求項6】
指定される交換対象の端子に対して所定の条件を満たす交換先の端子を決定する端子交換先決定処理手段を有し、
前記端子位置変更手段は、前記交換対象の端子の位置と前記端子交換先決定処理手段により決定された前記交換先の端子の位置を交換する、
請求項1から5のいずれかに記載の半導体装置設計支援装置。
【請求項7】
三次元的な配置又は配線の設計を支援する請求項1から6のいずれかに記載の半導体装置設計支援装置。
【請求項8】
基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援方法であって、
端子位置変更手段が前記基板及び前記チップの少なくとも一方の端子の位置を変更するステップを含む半導体装置設計支援方法。
【請求項9】
請求項8記載の半導体装置設計支援方法をコンピュータに実行させることが可能なプログラム。
【請求項10】
請求項9に記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2007−102381(P2007−102381A)
【公開日】平成19年4月19日(2007.4.19)
【国際特許分類】
【出願番号】特願2005−289296(P2005−289296)
【出願日】平成17年9月30日(2005.9.30)
【出願人】(391043332)財団法人福岡県産業・科学技術振興財団 (53)
【出願人】(504369731)ケイレックス・テクノロジー株式会社 (14)
【Fターム(参考)】
【公開日】平成19年4月19日(2007.4.19)
【国際特許分類】
【出願日】平成17年9月30日(2005.9.30)
【出願人】(391043332)財団法人福岡県産業・科学技術振興財団 (53)
【出願人】(504369731)ケイレックス・テクノロジー株式会社 (14)
【Fターム(参考)】
[ Back to top ]