(57)【特許請求の範囲】
【請求項１】
基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援装置であって、
前記基板又は前記チップの端子について、
当該端子の位置を変更することにより、当該端子に接続する配線の少なくとも一つが他の配線の少なくとも一つと交差する場合に、当該端子の位置が変更可能かどうかを調べ、変更可能な場合に当該端子の位置を変更し、
当該端子の位置を変更することにより、当該端子に接続する配線が他の配線と交差しない場合には、当該端子の位置を変更しない端子位置変更手段を備える半導体装置設計支援装置。
【請求項２】
前記端子位置変更手段は、位置を変更する当該端子に接続する配線と他の配線の並行部分の長さに関する条件に基づいて当該端子の位置を変更する、請求項１に記載の半導体装置設計支援装置。
【請求項３】
前記端子位置変更手段は、
前記基板の端子の位置を変更する基板端子位置変更処理手段と、
前記チップの端子の位置を変更するチップ端子位置変更処理手段
を有する、請求項１又は２に記載の半導体装置設計支援装置。
【請求項４】
前記端子位置変更手段は、位置を変更する当該端子に接続する配線と他の配線の距離に関する条件に基づいて当該端子の位置を変更する、請求項１から３のいずれかに記載の半導体装置設計支援装置。
【請求項５】
指定される交換対象の端子に対して所定の条件を満たす交換先の端子を決定する端子交換先決定処理手段を有し、
前記端子位置変更手段は、前記交換対象の端子の位置と前記端子交換先決定処理手段により決定された前記交換先の端子の位置を交換する、
請求項１から４のいずれかに記載の半導体装置設計支援装置。
【請求項６】
三次元的な配置又は配線の設計を支援する請求項１から５のいずれかに記載の半導体装置設計支援装置。
【請求項７】
基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援装置であって、
前記基板又は前記チップの２つの第１及び第２の端子について、
前記第１の端子と前記第２の端子の位置を交換した場合に、前記第１の端子及び前記第２の端子に接続する配線の少なくとも一つが他の配線の少なくとも一つと交差するときに、前記第１及び前記第２の端子の位置が交換可能かどうかを調べ、交換可能な場合に前記第１及び前記第２の端子の位置を交換し、
前記第１の端子と前記第２の端子の位置を交換した場合に、前記第１の端子及び前記第２の端子に接続する配線が他の配線と交差しないときには、前記第１及び前記第２の端子の位置を交換しない端子位置変更手段を備える半導体装置設計支援装置。
【請求項８】
基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援方法であって、
端子位置変更手段が、前記基板又は前記チップの端子について、
当該端子の位置を変更することにより、当該端子に接続する配線の少なくとも一つが他の配線の少なくとも一つと交差する場合に、当該端子の位置が変更可能かどうかを調べ、変更可能な場合に当該端子の位置を変更し、
当該端子の位置を変更することにより、当該端子に接続する配線が他の配線と交差しない場合には、当該端子の位置を変更しないステップを含む半導体装置設計支援方法。
【請求項９】
請求項８記載の半導体装置設計支援方法をコンピュータに実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記録するコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置設計支援装置、半導体装置設計支援方法、その方法をコンピュータにより実行可能なプログラム、及び、そのプログラムを記録した記録媒体に関し、特に基板及び前記基板上に配置されるチップを有する半導体装置の設計を支援する半導体装置設計支援装置等に関する。
【背景技術】
【０００２】
近年ＬＳＩ製造プロセス技術の進歩によりＬＳＩの基板への集積度が一層進んでおり、ＳｉＰ(system in a package)という概念も出てきた。ＳｉＰは、微小なプリント基板上に複数のICチップや受動素子を３次元実装して微小なシステムを製造する技術をいう。シリコンチップ上に回路を書き込んでシステムを作製するSoC（System  On  a  Chip）に比較して、i)既存のチップを用いれば、短納期に量産が可能、ii)小さな設備投資で、iii)少量多品種の生産に有利などの利点を有する。
【０００３】
従来、このＳｉＰの設計においては、設計者は、ＳｉＰ基板の端子に関しては入れ替えを行って設計していたが、ＬＳＩチップの端子に関しては別部署へ依頼して対処していた。
【０００４】
なお、ＳｉＰに関する技術ではないが、従来の半導体チップ設計に関する技術を示す文献として、例えば特許文献１がある。
【０００５】
【特許文献１】特開２００４−３１８９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の設計においては、端子間の接続状況は人間が考えて決めていた。また、配線形状も経験に基づくマニュアル配線であった。そのため、端子は本当に端子間の配線が最短になるように設計されているかどうか不明であった。
【０００７】
さらに、チップ側端子に関しては別部署に依頼して対処されており、情報の伝達ミスが発生する可能性が大きかった。
【０００８】
そこで、本発明の目的は、基板の端子と基板上に配置されるチップの端子とが電気的配線により接続される半導体装置の設計の支援に適合する半導体装置設計支援装置、半導体装置設計支援方法、その方法をコンピュータにより実行可能なプログラム、及び、そのプログラムを記録した記録媒体を提案することである。
【課題を解決するための手段】
【０００９】
請求項１に係る発明は、基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援装置であって、前記基板又は前記チップの端子について、当該端子の位置を変更することにより、当該端子に接続する配線の少なくとも一つが他の配線の少なくとも一つと交差する場合に、当該端子の位置が変更可能かどうかを調べ、変更可能な場合に当該端子の位置を変更し、当該端子の位置を変更することにより、当該端子に接続する配線が他の配線と交差しない場合には、当該端子の位置を変更しない端子位置変更手段を備えるものである。
【００１０】
ＳｉＰにおいて、ＬＳＩチップが実装されて配線されるときは、ワイヤボンディングで配線される場合が多い。空中に配線されたワイヤを高周波の信号が通過する場合、配線が平行していると隣の配線の信号の影響が大きく、ノイズが発生してしまう。
【００１１】
請求項２に係る発明は、請求項１に記載の半導体装置設計支援装置であって、前記端子位置変更手段が、位置を変更する当該端子に接続する配線と他の配線の並行部分の長さに関する条件に基づいて当該端子の位置を変更するものである。
【００１２】
配線が平行している距離が長いほど、配線同士の信号が干渉してノイズが発生する可能性が大きくなる。請求項２に係る発明によれば、配線同士がある一定以上の距離を平行しないように設計されるため、ノイズの発生を防止することができる。
【００１３】
請求項３に係る発明は、請求項１又は２に記載の半導体装置設計支援装置であって、前記端子位置変更手段が、前記基板の端子の位置を変更する基板端子位置変更処理手段と、前記チップの端子の位置を変更するチップ端子位置変更処理手段を有するものである。
【００１４】
請求項４に係る発明は、請求項１から３のいずれかに記載の半導体装置設計支援装置であって、前記端子位置変更手段が、位置を変更する当該端子に接続する配線と他の配線の距離に関する条件に基づいて当該端子の位置を変更するものである。
【００１５】
一般的に、配線間の信号によるノイズは配線間隔が開くほど小さくなる。請求項４に係る発明によれば、信号線間隔が一定以上に大きくなるように配線されるため、ノイズの発生を防止することができる。
【００１６】
請求項５に係る発明は、請求項１から４のいずれかに記載の半導体装置設計支援装置であって、指定される交換対象の端子に対して所定の条件を満たす交換先の端子を決定する端子交換先決定処理手段を有し、前記端子位置変更手段は、前記交換対象の端子の位置と前記端子交換先決定処理手段により決定された前記交換先の端子の位置を交換するものである。
【００１７】
請求項６に係る発明は、請求項１から５のいずれかに記載の半導体装置設計支援装置であって、三次元的な配置又は配線の設計を支援するものである。
【００１８】
請求項７に係る発明は、基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援装置であって、前記基板又は前記チップの２つの第１及び第２の端子について、前記第１の端子と前記第２の端子の位置を交換した場合に、前記第１の端子及び前記第２の端子に接続する配線の少なくとも一つが他の配線の少なくとも一つと交差するときに、前記第１及び前記第２の端子の位置が交換可能かどうかを調べ、交換可能な場合に前記第１及び前記第２の端子の位置を交換し、前記第１の端子と前記第２の端子の位置を交換した場合に、前記第１の端子及び前記第２の端子に接続する配線が他の配線と交差しないときには、前記第１及び前記第２の端子の位置を交換しない端子位置変更手段を備えるものである。
【００１９】
請求項８に係る発明は、基板及び前記基板上に配置されるチップを有し、前記基板の端子と前記チップの端子とが電気的配線により接続される半導体装置の設計を支援する半導体装置設計支援方法であって、端子位置変更手段が、前記基板又は前記チップの端子について、当該端子の位置を変更することにより、当該端子に接続する配線の少なくとも一つが他の配線の少なくとも一つと交差する場合に、当該端子の位置が変更可能かどうかを調べ、変更可能な場合に当該端子の位置を変更し、当該端子の位置を変更することにより、当該端子に接続する配線が他の配線と交差しない場合には、当該端子の位置を変更しないステップを含むものである。
【００２０】
請求項９に係る発明は、請求項８記載の半導体装置設計支援方法をコンピュータに実行させるためのプログラムである。
【００２１】
請求項１０に係る発明は、請求項９に記載のプログラムを記録するコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００２２】
以上のように、本発明によれば、基板の端子の位置とチップの端子の位置を同時に設計することが可能となる。この設計により、ＬＳＩチップの端子の位置を前提としてＳｉＰ基板の端子の位置を設計することとは異なり、基板の端子とチップの端子を併せて設計する、いわば、ＳｉＰのトップダウン設計が可能となる。また、チップ側端子に関して他部署に依頼して対処することが不要になり、部署間の伝達ミスを防止することが可能となる。さらに、本発明によれば、基板の端子とチップの端子は、例えばこれらの間の接続の面積・体積が３次元的に最小となるよう配置可能であり、製造コストを最小にすることが可能となる。また、端子は自動的に配置可能であり、熟練技術者による配置・配線品質と同等の配置が可能となる。
【００２３】
上記したようにＳｉＰにおいて、ＬＳＩチップが実装されて配線されるときは、ワイヤボンディングで配線される場合が多い。空中に配線されたワイヤを高周波の信号が通過する場合、配線が平行していると隣の配線の信号の影響が大きく、ノイズが発生してしまう。これに対して、本発明によれば、端子位置変更手段が配線を交差するようにして配線が平行になることを避けることができ、ノイズの発生を防止することができる。また、配線が平行している距離が長いほど、配線同士の信号が干渉してノイズが発生する可能性が大きくなる。これに対して、請求項２に係る発明によれば、配線同士がある一定以上の距離を平行しないように設計されるため、ノイズの発生を防止することができる。
【発明を実施するための最良の形態】
【００２４】
図１は、本発明の実施の形態に係るＳｉＰ設計支援装置の概略ブロック図である。
【００２５】
図１を参照して、ＳｉＰ設計支援装置１は、制御部３と、電気的に接続されるＳｉＰ基板の端子（以下では「ＰＡＤ」という）とＬＳＩチップの端子（以下では「チップ端子」という）に対して処理を行う端子処理部５と、ＰＡＤからＳｉＰ基板上のＶＩＡ・端子まで配線を行う自動再配線処理部７を備える。端子処理部５は、ユーザにより選択された交換対象の端子に対して交換先の端子を決定する端子交換先決定処理部９と端子の位置の変更を行う端子位置変更処理部１１を有する。端子交換先決定処理部９は、ＰＡＤに関して交換先決定処理を行うＰＡＤ交換先決定処理部１３とチップ端子に関して交換先決定処理を行うチップ端子交換先決定処理部１５を有する。また、端子位置変更処理部１１は、ＰＡＤに関して位置変更処理を行うＰＡＤ位置変更処理部１７とチップ端子に関して位置変更処理を行うチップ端子位置変更処理部１９を有する。
【００２６】
ここで、変更においては、基板上のＰＡＤ位置やチップの端子位置は変更されずに、接続情報のみが変更される。すなわち、ＳｉＰ設計支援装置１では、基板上のＰＡＤとＬＳＩチップの端子との間には、どのＰＡＤと端子が接続されるのかの情報が与えられる。接続されるＰＡＤと端子が変更された場合、その物理的な位置は変更しないで、ＰＡＤと端子の接続情報のみが変更になる。そのため、見た目上は変更したＰＡＤと端子の位置が変更後の位置に移動したように見えるが、実際は位置が変更したのではなく接続情報のみが変更される。また、位置変更されたＰＡＤや端子に接続するワイヤの引きなおしも行われる。
【００２７】
自動再配線処理部７は、迷路法を用いて、ＰＡＤから基板上のＶＩＡ・端子まで１層・４５°配線を行う。ここで、迷路法は、配線アルゴリズムの一つであり、配線領域がメッシュ上に分割され、配線の基点から終点に向かって波紋状に番号がつけられ、その番号が終点に到達したときに最短となる番号により起点から終点までの最短配線経路が決定される手法である
【００２８】
図２を参照して、図１のＳｉＰ設計支援装置１の動作の一例を説明する。図２は、図１のＳｉＰ設計支援装置１による端子の位置変更の一例を示す図であり、変更前と変更後のＳｉＰ基板２１のＰＡＤ２５〜３９とＬＳＩチップ２３のチップ端子の間の接続状態を示す図である。図２（ａ）は変更前のＰＡＤとチップ端子の接続状態の一例を示す図であり、図２（ｂ）は変更後のＰＡＤとチップ端子の接続状態の一例を示す図である。
【００２９】
図２（ａ）を参照して、ＳｉＰ基板２１上にはＬＳＩチップ２３が配置され、ＳｉＰ基板２１には、ＬＳＩチップ２３を挟んで、一方に４つのＰＡＤ２５、２７、２９、３１があり、他方に４つのＰＡＤ３３、３５、３７、３９がある。ＳｉＰ基板２１のＰＡＤ２５〜３９とＬＳＩチップ２３のチップ端子とは、６つのＰＡＤ２５、２９、３１、３３、３５、３９はそれぞれ最も近いチップ端子と接続されているが、ＰＡＤ２７はＰＡＤ３７に最も近いチップ端子４１と接続され、ＰＡＤ３７はＰＡＤ２７に最も近いチップ端子４３と接続されている。
【００３０】
図２（ａ）のような接続状態において、ＰＡＤ２７とＰＡＤ３７の位置を交換するか、またはチップ端子４１とチップ端子４３の位置を交換することにより、図２（ｂ）にあるように、ＳｉＰ基板のＰＡＤとＬＳＩチップのチップ端子間の接続がトータルで最短となる。図１のＳｉＰ設計支援装置１は、このようなＰＡＤやチップ端子の位置を変更する処理を行うものである。
【００３１】
続いて、図３を参照して、図１のＳｉＰ設計支援装置１の動作の一例を説明する。図３は、図１のＳｉＰ設計支援装置１の動作の一例を示すフロー図である。
【００３２】
まず、図１の制御部３は、初期設定を行う（図３のステップＳＴＭ１）。この初期設定は、例えば、引数をチェックしたり、パラメータファイルや入力ファイルやコントロールファイルを読み込んだりすることにより行われる。
【００３３】
次に、図１の端子処理部５は、ＰＡＤやチップ端子の位置を変更する処理を行う（図３のステップＳＴＭ２）。このＰＡＤやチップ端子の位置を変更する処理については、図４〜図１２を用いてその一例を後述する。
【００３４】
次に、図１の自動再配線処理部７は、ＰＡＤから基板上のＶＩＡ・端子まで自動再配線処理を行う（図３のステップＳＴＭ３）。この自動再配線処理については、図１３を用いてその一例を後述する。そして、図３の処理を終了する。
【００３５】
続いて、図４を参照して、図３のステップＳＴＭ２の端子位置変更処理の一例を説明する。図４は、図３のステップＳＴＭ２の端子位置変更処理の一例を示すフロー図である。
【００３６】
まず、図１の端子処理部５は、ユーザにより選択された交換対象の端子がＰＡＤであるか否かの判断を行う（図４のステップＳＴＥ１）。交換対象の端子がＰＡＤであるならば図４のステップＳＴＥ２の処理を行い、ＰＡＤでないならば図４のステップＳＴＥ５の処理を行う。
【００３７】
図４のステップＳＴＥ２において、図１の端子処理部５は、交換先が指定されているか否かの判断を行う。指定されているのであるならば図４のステップＳＴＥ４の処理を行い、指定されていないならば図４のステップＳＴＥ３の処理を行う。
【００３８】
図４のステップＳＴＥ３において、図１のＰＡＤ変換先決定処理部９は、ＰＡＤ交換先決定処理を行う。このＰＡＤ交換先決定処理については、図５〜図８を用いてその一例を後述する。そして、図４のステップＳＴＥ４の処理を行う。
【００３９】
図４のステップＳＴＥ４において、図１のＰＡＤ位置変更処理部１７は、ＰＡＤ位置変更処理を行う。このＰＡＤ位置変更処理については、図９〜図１２を参照してその一例を後述する。そして、図１の端子処理部５は図４の処理を終了する。
【００４０】
図４のステップＳＴＥ５において、図１の端子処理部５は、交換先が指定されているか否かの判断を行う。指定されているのであるならば図４のステップＳＴＥ７の処理を行い、指定されていないならば図４のステップＳＴＥ６の処理を行う。
【００４１】
図４のステップＳＴＥ６において、図１の端子変換先決定処理部１３は、チップ端子交換先決定処理を行う。このチップ端子交換先決定処理は、図４のステップＳＴＥ３のＰＡＤ交換先決定処理と同様のものである。そして、図４のステップＳＴＥ７の処理を行う。
【００４２】
図４のステップＳＴＥ７において、図１のチップ端子位置変更処理部１９は、チップ端子位置変更処理を行う。このチップ端子位置変更処理は、図４のステップＳＴＥ４のＰＡＤ位置変更処理と同様のものである。そして、図１の端子処理部５は図４の処理を終了する。
【００４３】
続いて、図５から図８を参照して、図４のステップＳＴＥ３のＰＡＤ交換先決定処理の一例を説明する。このＰＡＤ交換先決定処理においては、選択されたＰＡＤが一つである場合、選択された交換対象のＰＡＤに対して交換先のＰＡＤが自動的に決定される。交換先のＰＡＤは、例えば図７を用いて説明されるスペーシングルールや図８を用いて説明される平行配線長ルールなどのルールに基づいて決定される。このとき、特定のネットを指定することにより、ワイヤ結線後に指定されたネットのワイヤと交差するようなＰＡＤが交換相手として認識される。なお、指定されたネットのＰＡＤはＦＩＸ属性となり、他のＰＡＤとの交換対象にはならないとする。
【００４４】
図５は、図４のステップＳＴＥ３のＰＡＤ交換先決定処理の一例を示すフロー図である。
【００４５】
まず、図１のＰＡＤ交換先決定処理部１３は、選択された交換対象のＰＡＤをＰＡＤ＿Ａとする（図５のステップＳＴＴ１）。
【００４６】
次に、図１のＰＡＤ交換先決定処理部１３は、未処理のＰＡＤから所定の順にＰＡＤを取得して、取得したＰＡＤをＰＡＤ＿Ｂとする（図５のステップＳＴＴ２）。取得する順は、例えばＰＡＤ＿Ａに近い順や優先度指定があれば優先度の順などである。
【００４７】
次に、図１のＰＡＤ交換先決定処理部１３は、指定ネットがあり、かつ、ＰＡＤ＿Ｂの場所からＰＡＤ＿Ａのワイヤを結線すると指定ネットのワイヤと交差しないか否かの判断を行う（図５のステップＳＴＴ３）。指定ネットがあって交差しないならば図５のステップＳＴＴ６の処理を行い、そうでないならば図５のステップＳＴＴ４の処理を行う。
【００４８】
図５のステップＳＴＴ４において、図１のＰＡＤ交換先決定処理部１３は、ＰＡＤ＿ＡとＰＡＤ＿Ｂの交換可能性をチェックする。この交換可能性のチェックの処理については、図６を参照してその一例を後述する。
【００４９】
次に、図１のＰＡＤ交換先決定処理部１３は、図５のステップＳＴＴ４の処理の結果に基づいてＰＡＤ＿ＡとＰＡＤ＿Ｂが交換可能であるか否かの判断を行う（図５のステップＳＴＴ５）。交換可能であるならば図５のステップＳＴＴ７の処理を行い、そうでないならば図５のステップＳＴＴ６の処理を行う。
【００５０】
図５のステップＳＴＴ６において、図１のＰＡＤ交換先決定処理部１３は、全ＰＡＤに対して処理を行ったか否かの判断を行う。処理を行っているならばエラー終了をし、そうでないならば図５のステップＳＴＴ２の処理を行う。
【００５１】
図５のステップＳＴＴ７において、図１のＰＡＤ交換先決定処理部１３は、ＰＡＤ＿Ａの交換先としてＰＡＤ＿Ｂを指定する。
【００５２】
次に、図１のＰＡＤ交換先決定処理部１３は、指定ネットがあるか否かの判断を行う（図５のステップＳＴＴ８）。指定ネットがあるならば、該当ネットのＰＡＤをＦＩＸとして（図５のステップＳＴＴ９）図５の処理を終了する。指定ネットがないならば、図５の処理を終了する。
【００５３】
以上、図５のフロー図に示されるようにして、ユーザにより選択された交換対象のＰＡＤに対して交換先のＰＡＤが決定される。
【００５４】
続いて、図６を参照して、図５のステップＳＴＴ４のＰＡＤ＿ＡとＰＡＤ＿Ｂの交換可能性のチェックの処理の一例を説明する。図６は、図５のステップＳＴＴ４のＰＡＤ＿ＡとＰＡＤ＿Ｂの交換可能性のチェックの処理の一例を示すフロー図である。
【００５５】
まず、図１のＰＡＤ交換先決定処理部１３は、ワイヤを仮削除する（図６のステップＳＴＣ１）。このワイヤの仮削除処理は、ＬＳＩチップの端子がＰＡＤ＿Ａ又はＰＡＤ＿Ｂと接続されているときに、ＰＡＤ＿Ａ又はＰＡＤ＿Ｂと接続されているＬＩＮＥ（基板側のＰＡＤとＬＳＩ側の端子を結ぶ情報）に対して、ボンディングワイヤの情報（ＷＩＲＥ情報）であってＬＳＩチップの端子（ＰＯＲＴＩＮＳＴ）と接続されているものを仮に削除する処理である。
【００５６】
次に、図１のＰＡＤ交換先決定処理部１３は、ＰＡＤ＿Ｂの位置をＰＡＤ＿Ａの新しい位置として仮配線する（図６のステップＳＴＣ２）。
【００５７】
次に、図１のＰＡＤ交換先決定処理部１３は、結線可能であるか否かを判断する（図６のステップＳＴＣ３）。結線可能であるならば図６のステップＳＴＣ４の処理を行い、そうでないならば図６のステップＳＴＣ８の処理を行う。この結線可能性の判断については、図７と図８を参照してその一例を後述する。
【００５８】
図６のステップＳＴＣ４において、図１のＰＡＤ交換先決定処理部１３は、結線したワイヤ長を上位ルーチンへ戻す。次に、結線したワイヤ形状を上位ルーチンへ戻す（図６のステップＳＴＣ５）。次に、仮に削除されたワイヤを復元し（図６のステップＳＴＣ６）、ＰＡＤ＿ＡとＰＡＤ＿Ｂは交換可能と判断して（図６のステップＳＴＣ７）、図６の処理を終了する。
【００５９】
図６のステップＳＴＣ８において、図１のＰＡＤ交換先決定処理部１３は、仮に削除されたワイヤを復元する。次に、ＰＡＤ＿ＡとＰＡＤ＿Ｂは交換可能でないと判断し（図６のステップＳＴＣ９）、図６の処理を終了する。
【００６０】
以上、図６のフロー図に示されるようにして、ＰＡＤ＿ＡとＰＡＤ＿Ｂの交換可能性がチェックされる。
【００６１】
続いて、図７と図８を参照して、図６のステップＳＴＣ３の結線可能性の判断についてその一例を説明する。
【００６２】
図７は、新規に作成する三次元空間内のボンデングワイヤを示す図である。図７を参照して、スペーシングルール、すなわち、配置されるＬＳＩチップの端子から基板上のＰＡＤへのボンディングワイヤの間隔に関するルールについて説明する。
【００６３】
図７を参照して、新規に作成する三次元空間内のボンデングワイヤ座標をＰ０、Ｐ１、Ｐ２、Ｐ３、Ｐ４とする。そして、他のワイヤと線分Ｐ１−Ｐ２、Ｐ２−Ｐ３、Ｐ３−Ｐ４の距離を求め、求めた距離の最小値を他ワイヤと線分Ｐ１−Ｐ２、Ｐ２−Ｐ３、Ｐ３−Ｐ４間の距離とする。
【００６４】
新規ボンデングワイヤと他ワイヤ間の距離が指定された距離より短い場合、スペーシングルールエラーとなりワイヤは結線できないとする。このように、他ワイヤとのスペーシングルールが指定され、このルールを満たした形状計算が行われる。
【００６５】
続いて、図８を参照して、平行配線長ルール、すなわち、配置されるＬＳＩチップの端子から基板上のＰＡＤへのボンディングワイヤが複数あるときに、指定されるワイヤ同士が平行に配線される距離の最小値に関するルールについて説明する。図８は、ワイヤ形状計算を行う際に他のワイヤに対する平行部分の長さを示す図である。平行部分の長さは、形状計算したワイヤＡ０−Ａ１と他のワイヤＢ０−Ｂ１が三次元的に平行でかつ一定距離以内にある場合に計算される。図８において、点Ａ０及び点Ａ１並びに点Ｂ０及び点Ｂ１は、ベクトルＡ０Ａ１とベクトルＢ０Ｂ１が同じ向きになるような点であり、点Ｂ０’及び点Ｂ１’は、それぞれ、点Ｂ０と点Ｂ１が直線Ａ０−Ａ１上に直線Ａ０−Ａ１と垂直方向に射影された点である。
【００６６】
図８（ａ）は、線分Ａ０−Ａ１上に点Ｂ１’があって点Ｂ０’がない場合の、線分Ａ０−Ａ１と線分Ｂ０−Ｂ１の平行部分の長さ｜Ａ０−Ｂ１’｜を示す図である。図８（ａ）を参照して、平行部分の長さ｜Ａ０−Ｂ１’｜の計算方法について説明する。
【００６７】
図８（ａ）を参照して、ベクトルＡ０Ａ１をその長さで割って求められる単位ベクトルをベクトルｅとし、ベクトルｘとベクトルｙの内積を（ｘ，ｙ）とすると、平行部分の長さ｜Ａ０−Ｂ１’｜は、｜（ベクトルＡ０Ｂ１，ベクトルｅ）｜により求められる。
【００６８】
点Ａ０、Ａ１、Ｂ０’、Ｂ１’の位置関係は、６通りある。以下では、図８（ｂ）〜（ｅ）を参照して、それぞれの場合の平行部分の長さについて説明する。
【００６９】
図８（ｂ）を参照して、線分Ａ０−Ａ１が線分Ｂ０’−Ｂ１’を含む場合、すなわち、（Ａ０Ｂ０，ｅ）＞＝０、（Ａ０Ｂ１，ｅ）＞０、（Ａ１Ｂ０’，ｅ）＜０、（Ａ１Ｂ０，ｅ）＜＝０の場合、平行部分の長さは線分Ｂ０’−Ｂ１’の長さである。
【００７０】
図８（ｃ）を参照して、線分Ａ０−Ａ１に点Ｂ０’があって点Ｂ１’がない場合、すなわち、（Ａ０Ｂ０，ｅ）＞＝０、（Ａ０Ｂ１，ｅ）＞０、（Ａ１Ｂ０’，ｅ）＜０、（Ａ１Ｂ０，ｅ）＞＝０の場合、平行部分の長さは線分Ｂ０’−Ａ１の長さである。
【００７１】
同様に、線分Ａ０−Ａ１の間に点Ｂ１’があって点Ｂ０’がない場合、すなわち、（Ａ０Ｂ０，ｅ）＜＝０、（Ａ０Ｂ１，ｅ）＞０、（Ａ１Ｂ０’，ｅ）＜０、（Ａ１Ｂ０，ｅ）＜＝０の場合、平行部分の長さは線分Ａ０−Ｂ１’の長さである。
【００７２】
図８（ｄ）を参照して、線分Ａ０−Ａ１と線分Ｂ０’−Ｂ１’が重ならない場合、すなわち、（Ａ０Ｂ０，ｅ）＞＝０、（Ａ０Ｂ１，ｅ）＞０、（Ａ１Ｂ０’，ｅ）＞０、（Ａ１Ｂ０，ｅ）＞＝０の場合、平行部分の長さは０である。
【００７３】
同様に、線分Ａ０−Ａ１と線分Ｂ０’−Ｂ１’が重ならない場合、すなわち、（Ａ０Ｂ０，ｅ）＜＝０、（Ａ０Ｂ１，ｅ）＜０、（Ａ１Ｂ０’，ｅ）＜０、（Ａ１Ｂ０，ｅ）＜＝０の場合、平行部分の長さは０である。
【００７４】
図８（ｅ）を参照して、線分Ａ０−Ａ１が線分Ｂ０’−Ｂ１’に含まれる場合、すなわち、（Ａ０Ｂ０，ｅ）＜＝０、（Ａ０Ｂ１，ｅ）＞０、（Ａ１Ｂ０’，ｅ）＜０、（Ａ１Ｂ０，ｅ）＞＝０の場合、平行部分の長さは線分Ａ０−Ａ１の長さである。
【００７５】
以上のようにして、平行部分の長さが計算される。この長さが指定された値より大きい場合、平行配線長エラーとなり、ワイヤは結線できないと判断される。
【００７６】
続いて、図９と図１０を参照して、図４のステップＳＴＥ４のＰＡＤ位置変更処理の一例を説明する。図９と図１０は、図４のステップＳＴＥ４のＰＡＤ位置変更処理の一例を示すフロー図である。図９と図１０においては、交換対象のＰＡＤの移動により押しのけられたＰＡＤの位置が最適になるように、他のＰＡＤの位置が変更される。そして、このとき変更されたＰＡＤの位置が再び最適になるように他のＰＡＤの位置が変更される。この処理を繰り返すことにより、必要最低限のＰＡＤのみが位置変更される。なお、一度位置が決められたＰＡＤは動かされないものとする。
【００７７】
まず、図１のＰＡＤ位置変更処理部１７は、交換対象のＰＡＤをＰＡＤ＿Ａとし、交換先のＰＡＤをＰＡＤ＿Ｂとする（図９のステップＳＴＰ１）。
【００７８】
次に、図１のＰＡＤ位置変更処理部１７は、ＰＡＤ＿ＡとＰＡＤ＿Ｂの位置を交換する（図９のステップＳＴＰ２）。このＰＡＤの位置を交換する処理については、図１１を用いてその一例を後述する。
【００７９】
次に、図１のＰＡＤ位置変更処理部１７は、指定ネットがあり、かつ、指定ネットのＰＡＤはＦＩＸでないか否かの判断を行う（図９のステップＳＴＰ３）。指定ネットがあって指定ネットのＰＡＤがＦＩＸでないならば図９のステップＳＴＰ５の処理を行い、そうでないならば図９のステップＳＴＰ４の処理を行う。
【００８０】
図９のステップＳＴＰ４において、図１のＰＡＤ位置変更処理部１７は、ＰＡＤ＿Ｂの位置変更処理を行う。このＰＡＤの位置変更処理については、図１２を用いてその一例を後述する。そして、図９と図１０の処理を終了する。
【００８１】
図９のステップＳＴＰ５において、図１のＰＡＤ位置変更処理部１７は、指定ネットのワイヤが交換したＰＡＤ＿Ａのワイヤと交差するか否かの判断をする。交差するならば図９のステップＳＴＰ６の処理を行い、そうでないならば図１０のステップＳＴＰ７の処理を行う。
【００８２】
図９のステップＳＴＰ６において、図１のＰＡＤ位置変更処理部１７は、指定ネットのＰＡＤをＦＩＸとする。そして、図９と図１０の処理を終了する。
【００８３】
図１０のステップＳＴＰ７において、図１のＰＡＤ位置変更処理部１７は、未処理のＰＡＤから所定の順にＰＡＤを取得して、取得したＰＡＤをＰＡＤ＿Ｃとする。取得する順は、例えば、ＰＡＤ＿Ａに近い順や、優先度指定があれば優先度の順などである。
【００８４】
次に、図１のＰＡＤ位置変更処理部１７は、指定ネット端子とＰＡＤ＿Ｃを結ぶワイヤはＰＡＤ＿Ａのワイヤと交差するか否かを判断する（図１０のステップＳＴＰ８）。交差するならば図１０のステップＳＴＰ９の処理を行い、そうでないならば図１０のステップＳＴＰ７の処理を行う。
【００８５】
図１０のステップＳＴＰ９において、図１のＰＡＤ位置変更処理部１７は、ＰＡＤ＿Ｃと指定ネットの端子間でワイヤを結線する。
【００８６】
次に、図１のＰＡＤ位置変更処理部１７は、図１０のステップＳＴＰ９で結線をすることができたか否かの判断を行う（図１０のステップＳＴＰ１０）。結線できたならば図１０のステップＳＴＰ１１の処理を行い、そうでないならば図１０のステップＳＴＰ７の処理を行う。
【００８７】
図１０のステップＳＴＰ１１において、図１のＰＡＤ位置変更処理部１７は、ＰＡＤ＿Ｃと指定ネットのＰＡＤの位置を交換する。次に、指定ネットのＰＡＤをＦＩＸとする（図１０のステップＳＴＰ１２）。
【００８８】
次に、図１のＰＡＤ位置変更処理部１７は、指定ネットのワイヤが結線できたか否かの判断を行う（図１０のステップＳＴＰ１３）。結線できたならば、ＰＡＤ＿Ｂの位置変更処理を行い（図１０のステップＳＴＰ１４）、ＰＡＤ＿Ｃの位置変更処理を行い（図１０のステップＳＴＰ１５）、図９と図１０の処理を終了する。図１０のステップＳＴＰ１４とステップＳＴＰ１５の位置変更処理は、図９のステップＳＴＰ４のＰＡＤの位置変更処理と同様のものである。結線できないならば、図９と図１０の処理を終了する。
【００８９】
以上、図９と図１０のフロー図に示されるようにして、図４のステップＳＴＥ４のＰＡＤの位置の変更処理が行われる。
【００９０】
続いて、図１１を参照して、図９のステップＳＴＰ２のＰＡＤ＿ＡとＰＡＤ＿Ｂの交換処理の一例を説明する。図１１は、図９のステップＳＴＰ２の処理の一例を示すフロー図である。
【００９１】
まず、図１のＰＡＤ位置変更処理部１７は、接続点変更処理を行う（図１１のステップＳＴＷ１）。具体的には、まず、ＰＡＤ＿Ａと接続されているＬＩＮＥに対して、ＰＡＤ＿Ｂの位置をＰＡＤ＿Ａの新しい位置として、ＰＡＤ＿Ａ−＞ＮＥＴ−＞ＬＩＮＥの接続点変更し、ＷＩＲＥ情報があり、ＰＯＲＴＩＮＳＴと接続されているならば、ＰＡＤ＿Ａ−＞ＮＥＴ−＞ＬＩＮＥ（−＞ＷＩＲＥ）をｆｒｅｅする。また、ＰＡＤ＿Ｂと接続されているＬＩＮＥに対して、ＰＡＤ＿Ａの位置をＰＡＤ＿Ｂの新しい位置として、ＰＡＤ＿Ｂ−＞ＮＥＴ−＞ＬＩＮＥの接続点変更する。
【００９２】
次に、図１のＰＡＤ位置変更処理部１７は、ＰＡＤ＿Ａの電気的な接続をＰＡＤ＿Ｂと交換し（図１１のステップＳＴＷ２）、ＰＡＤ＿Ｂの電気的な接続をＰＡＤ＿Ａと交換する（図１１のステップＳＴＷ３）。次に、図１のＰＡＤ位置変更処理部１７は、ＰＡＤ＿ＡとＰＡＤ＿Ｂが交換したことを格納する（図１１のステップＳＴＷ４）。そして、図１１の処理を終了する。
【００９３】
続いて、図１２を参照して、図９のステップＳＴＰ４のＰＡＤの位置変更処理を説明する。図１２は、図９のステップＳＴＰ４のＰＡＤ＿Ｂの位置変更処理の一例を示すフロー図である。
【００９４】
まず、図１のＰＡＤ位置変更処理部１７は、全ＰＡＤのうち、ＰＡＤ＿Ｂと交換可能なＰＡＤ（以下ではこのようなＰＡＤをＰＡＤ＿Ｙという）があれば、ＰＡＤ＿Ｂのワイヤが一番短くなるようなＰＡＤ＿Ｙと、そのときのＰＡＤ＿Ｂのワイヤ形状を記憶する（図１２のステップＳＴＸ１）。
【００９５】
次に、図１のＰＡＤ位置変更処理部１７は、ＰＡＤ＿Ｙが見つかったか否かの判断を行う（図１２のステップＳＴＸ２）。見つかったならば図１２のステップＳＴＸ３の処理を行い、そうでないならば図１２のステップＳＴＸ４の処理を行う。
【００９６】
図１２のステップＳＴＸ３において、図１のＰＡＤ位置変更処理部１７は、ＰＡＤ＿Ｂと記憶されたＰＡＤ＿Ｙの位置を交換する。そして、図１２のステップＳＴＸ１の処理を行う。
【００９７】
図１２のステップＳＴＸ４において、図１のＰＡＤ位置変更処理部１７は、ＰＡＤ＿Ｂに元々繋がっていたワイヤがルールを守っているか否かの判断を行う。ルールを守っていたならば、ワイヤを作成し（図１２のステップＳＴＸ５）、図１２の処理を終了する。そうでないならば、警告をして（図１２のステップＳＴＸ６）、図１２の処理を終了する。
【００９８】
続いて、図１３を参照して、図１の自動再配線処理部７による図３のステップＳＴＭ３の自動再配線処理の一例を説明する。図１３は、図３のステップＳＴＭ３の自動再配線処理の一例を示すフロー図である。
【００９９】
まず、図１の自動再配線処理部７は、コントロールファイルの基板のゾーンと接続するＬＡＹＥＲの配線幅によって（最大公約数）、配線グリッドと配線禁止領域を作成する（図１３のステップＳＴＲ１）。
【０１００】
次に、図１の自動再配線処理部７は、入れ換えが生じたＰＡＤについて、既配線削除処理と基板配線処理を行う（図１３のステップＳＴＲ２）。ここで、既配線削除処理は、ＮＥＴが基板配線のときに配線図形を削除する処理であり、基板配線処理は、ＮＥＴが基板配線のときに、基板配線のパスを迷路法により探し、一番短いパスによってＬＩＮＥを作成し、ＬＩＮＥをＮＥＴの配線図形とするものである。
【０１０１】
次に、図１の自動再配線処理部７は、配線グリッドを削除する（図１３のステップＳＴＲ３）。そして、図１３の処理を終了する。
【０１０２】
以上のようにして、図１のＳｉＰ設計支援装置１は、基板の端子の位置とチップの端子の位置を同時に変更し、自動的に再配線処理をすることができる。
【０１０３】
なお、基板上のＰＡＤとＬＳＩチップの端子の位置変更に関しては、図４に示されるようにどちらかを固定して他方を移動するだけでなく、両方を自動に動かしてもよい。すなわち、例えば一方（例えば基板上のＰＡＤ）を変更することにより、他方（例えばＬＳＩチップの端子）を変更するようにしてもよい。
【図面の簡単な説明】
【０１０４】
【図１】本発明の実施の形態に係るＳｉＰ設計支援装置１の概略ブロック図である。
【図２】図１のＳｉＰ設計支援装置１による端子の位置変更の一例を示す図であり、変更前と変更後のＳｉＰ基板２１のＰＡＤ２５〜３９とＬＳＩチップ２３のチップ端子の間の接続状態を示す図である。
【図３】図１のＳｉＰ設計支援装置１の動作の一例を示すフロー図である。
【図４】図３のステップＳＴＭ２の端子位置変更処理の一例を示すフロー図である。
【図５】図４のステップＳＴＥ３のＰＡＤ交換先決定処理の一例を示すフロー図である。
【図６】図５のステップＳＴＴ４のＰＡＤ＿ＡとＰＡＤ＿Ｂの交換可能性のチェックの処理の一例を示すフロー図である。
【図７】図６のステップＳＴＣ３の結線可能性の判断に用いられるスペーシングルールを説明するための図であって、新規に作成する三次元空間内のボンデングワイヤを示す図である。
【図８】図６のステップＳＴＣ３の結線可能性の判断に用いられる平行配線長ルールを説明するための図であって、ワイヤ形状計算を行う際に他のワイヤに対する平行部分の長さを示す図である。
【図９】図４のステップＳＴＥ４のＰＡＤ位置変更処理の一例を示す第１のフロー図である。
【図１０】図４のステップＳＴＥ４のＰＡＤ位置変更処理の一例を示す第２のフロー図である。
【図１１】図９のステップＳＴＰ２のＰＡＤ＿ＡとＰＡＤ＿Ｂの交換処理の一例を示すフロー図である。
【図１２】図９のステップＳＴＰ４のＰＡＤ＿Ｂの位置変更処理の一例を示すフロー図である。
【図１３】図３のステップＳＴＭ３の自動再配線処理の一例を示すフロー図である。
【符号の説明】
【０１０５】
１  ＳｉＰ設計支援装置
３  制御部
５  端子位置変更処理部
７  自動再配線処理部
９  ＰＡＤ交換先決定処理部
１１  ＰＡＤ位置変更処理部
１３  チップ端子交換先決定処理部
１５  チップ端子位置変更処理部
【図１】
0004663473.tif 000002
【図２】
0004663473.tif 000003
【図３】
0004663473.tif 000004
【図４】
0004663473.tif 000005
【図５】
0004663473.tif 000006
【図６】
0004663473.tif 000007
【図７】
0004663473.tif 000008
【図８】
0004663473.tif 000009
【図９】
0004663473.tif 000010
【図１０】
0004663473.tif 000011
【図１１】
0004663473.tif 000012
【図１２】
0004663473.tif 000013
【図１３】
0004663473.tif 000014