(57)【要約】【課題】半導体パッケージの基板面上においてビアを配置すべき位置を基板面上に相当する仮想平面上で設計する設計処理を、演算処理装置により容易に実行することができる自動設計方法およびこの設計処理をコンピュータに実行させるためのコンピュータプログラムを実現する。【解決手段】ビアが形成される半導体パッケージの基板面に相当する仮想平面において、ビアを配置すべき位置を設計する設計処理を、コンピュータにより実行する自動設計方法は、ビアを母点としたドローネ三角形を作成する作成ステップと、所定の長さ以下のドローネ三角形の一辺を構成する２つのビアの存在の有無を検査する検査ステップと、検査ステップにおいて所定の長さ以下の一辺を構成する２つのビアが存在すると判定された場合、当該ビアのうちのいずれか一方のビアを、一辺上を少なくとも所定の長さだけ移動させ、移動後の位置をビアの位置として確定する移動ステップと、を備える。【選択図】図１
2010146406.tif 000002
【特許請求の範囲】
【請求項１】
ビアが形成される半導体パッケージの基板面上に相当する仮想平面上において、前記ビアを配置すべき位置を設計する設計処理を、コンピュータにより実行する自動設計方法であって、
前記仮想平面上に配置したビアの位置を母点としたドローネ三角形を前記仮想平面上に作成する作成ステップと、
所定の長さ以下の前記ドローネ三角形の一辺を構成する２つの前記ビアの存在の有無を検査する検査ステップと、
前記検査ステップにおいて前記ドローネ三角形の前記一辺が前記所定の長さ以下であると判定された当該一辺を構成する前記ビアの組全てについて、当該ビアのうちのいずれか一方のビアを、いずれかの前記ドローネ三角形の辺上に沿って少なくとも前記所定の長さだけ移動させ、移動後の位置をビアの位置として確定する移動ステップと、
を備えることを特徴とする自動設計方法。
【請求項２】
前記移動ステップは、前記所定の長さ以下の前記一辺を構成する前記ビアのうち、接続先であるボンディングパッドにより近い位置にあるビアを、前記一辺上を少なくとも前記所定の長さだけ移動させる請求項１に記載の自動設計方法。
【請求項３】
前記仮想平面上において、前記半導体パッケージの基板面上に配置すべきボンディングパッドを、該ボンディングパッドが配置される前記半導体パッケージの４辺に対応してグループ分けする第１のグループ分けステップと、
前記仮想平面上の前記ビアを、当該ビアの接続先であるボンディングパッドが属する前記グループにグループ分けする第２のグループ分けステップと、
同じグループに属する前記ボンディングパッドおよび前記ビアを収容する領域を画定する境界線を設定する境界線設定ステップと、
をさらに備え、
前記移動ステップは、移動させるべき前記ビアを、当該ビアが属するグループの領域内で移動させる請求項１に記載の自動設計方法。
【請求項４】
前記仮想平面上の全ての前記ビアについて前記検査ステップを実行し、かつ移動すべき前記ビアの移動が前記移動ステップにより完了した後、前記仮想平面上のビアの位置を母点として前記作成ステップを再度実行した上で、前記検査ステップおよび前記移動ステップを実行する請求項１〜３のいずれか一項に記載の自動設計方法。
【請求項５】
前記ドローネ三角形の辺の全てが前記所定の長さ以上であるか否かを判定する判定ステップをさらに備え、
前記判定ステップにおいて前記ドローネ三角形の一辺が全て前記所定の長さ以上であると判定されるまで、前記作成ステップ、前記検査ステップおよび前記移動ステップが繰り返し実行する請求項４に記載の自動設計方法。
【請求項６】
ビアが形成される半導体パッケージの基板面上に相当する仮想平面上において、前記ビアを配置すべき位置を設計する設計処理を、コンピュータに実行させるためのコンピュータプログラムであって、
前記仮想平面上に配置したビアの位置を母点としたドローネ三角形を前記仮想平面上に作成する作成ステップと、
所定の長さ以下の前記ドローネ三角形の一辺を構成する２つの前記ビアの存在の有無を検査する検査ステップと、
前記検査ステップにおいて前記ドローネ三角形の前記一辺が前記所定の長さ以下であると判定された当該一辺を構成する前記ビアの組全てについて、当該ビアのうちのいずれか一方のビアを、いずれかの前記ドローネ三角形の辺上に沿って少なくとも前記所定の長さだけ移動させ、移動後の位置をビアの位置として確定する移動ステップと、
を備えることを特徴とする設計処理をコンピュータに実行させるためのコンピュータプログラム。
【請求項７】
前記移動ステップは、前記所定の長さ以下の前記一辺を構成する前記ビアのうち、接続先であるボンディングパッドにより近い位置にあるビアを、前記一辺上を少なくとも前記所定の長さだけ移動させる請求項６に記載の設計処理をコンピュータに実行させるためのコンピュータプログラム。
【請求項８】
前記仮想平面上において、前記半導体パッケージの基板面上に配置すべきボンディングパッドを、該ボンディングパッドが配置される前記半導体パッケージの４辺に対応してグループ分けする第１のグループ分けステップと、
前記仮想平面上の前記ビアを、当該ビアの接続先であるボンディングパッドが属する前記グループにグループ分けする第２のグループ分けステップと、
同じグループに属する前記ボンディングパッドおよび前記ビアを収容する領域を画定する境界線を設定する境界線設定ステップと、
をさらに備え、
前記移動ステップは、移動させるべき前記ビアを、当該ビアが属するグループの領域内で移動させる請求項６に記載の設計処理をコンピュータに実行させるためのコンピュータプログラム。
【請求項９】
前記仮想平面上の全ての前記ビアについて前記検査ステップを実行し、かつ移動すべき前記ビアの移動が前記移動ステップにより完了した後、前記仮想平面上のビアの位置を母点として前記作成ステップを再度実行した上で、前記検査ステップおよび前記移動ステップを実行する請求項６〜８のいずれか一項に記載の設計処理をコンピュータに実行させるためのコンピュータプログラム。
【請求項１０】
前記ドローネ三角形の辺の全てが前記所定の長さ以上であるか否かを判定する判定ステップをさらに備え、
前記判定ステップにおいて前記ドローネ三角形の一辺が全て前記所定の長さ以上であると判定されるまで、前記作成ステップ、前記検査ステップおよび前記移動ステップが繰り返し実行する請求項９に記載の設計処理をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体パッケージの基板面上においてビアを配置すべき位置を基板面上に相当する仮想平面上で設計する設計処理を、演算処理装置により実行する自動設計方法およびそのコンピュータプログラムに関する。
【背景技術】
【０００２】
ＬＳＩやＰＣＢなどの半導体集積回路、ＣＳＰ、ＰＢＧＡ、ＥＢＧＡ、ＨＤＳなどの半導体パッケージ、ならびにＭＣＭ／Ｓｉｐなどの配線基板においては、半導体チップの電極端子と基板のボンディングパッドとの間をワイヤで配線してそれぞれ電気的に接続する。半導体パッケージの配線のルートの設計においては、設計者自身がＣＡＤシステムを用いて仮想平面上で半導体パッケージを自らの技量や経験や勘を頼りに試行錯誤しながら設計する（例えば、特許文献１参照）。また、本出願人は、演算処理で自動的に配線のルートの位置を決定できる自動配線設計処理を既に提案している（例えば、特許文献２参照）。
【０００３】
各種基板の設計においては、ビア（Ｖｉａ）の配置および配線のルートをどのように決めるかが大きな課題である。配線のルートはビアの配置の仕方次第で大きく変わる。図１６〜１８は、従来技術によるビアの配置設計について説明する図である。なお、図１６〜１８において、図中の丸印「○」は仮想平面上のビア（参照符号Ｖ）を示し、方形「□」は仮想平面上のボンディングパッド（参照符号ＢＰ）を示す。また、ビアとボンディングパッドとを結ぶ仮想平面上のラッツを実線（参照符号Ｒ）で示す。
【０００４】
ここでは一例として、半導体パッケージの基板面に相当する仮想平面Ｐ上にボンディングパッド、ラッツおよびビアが図１６に示すように仮配置された場合について説明する。ビアＶはボール上にあると仮定する。図１６に示すようなビア配置において、ラッツ同士の交差およびラッツとビアとの交差を解消すべく基板１層で配線設計しようとすると、図１７に示すように、ビアが密集しているところでは配線間のクリアランスが確保できない領域（図中、点線で囲まれた領域Ｃ）が発生する。このような配線間のクリアランス不足を解消するためには、図１８に示すように、ビアＶ１、Ｖ２、Ｖ３、Ｖ４およびＶ５（図中、点線の丸印で示す。）を、Ｖ１’、Ｖ２’、Ｖ３’、Ｖ４’およびＶ５’ （図中、太線の丸印で示す。）の位置に移動させる必要がある。しかしながら、ビアの移動先によっては、当該移動先においてもさらに配線間のクリアランス不足が発生してしまう可能性があるので、基板面全体のバランスを考慮してビアおよび配線の位置を設計しなければならず、ビアの移動先を決定するのは容易ではない。また、図１８に示すように、ビアの移動により配線間のクリアランスを確保することができたとしても、配線が極めて冗長になってしまい必ずしも最適解とは言えない場合もある。
【０００５】
本出願人は、半導体パッケージの基板面上においてビアを配置すべき位置を基板面上に相当する仮想平面上で設計する設計処理を、演算処理装置により容易に実行することができる自動設計方法およびこの設計処理をコンピュータに実行させるためのコンピュータプログラムに関する発明を特願２００７−３２６３５２として既に特許出願している。この発明によれば、ボンディングパッドを半導体パッケージの基板面の４辺ごとのグループに分け、ボロノイ図法を用いて境界線を設定した上で、他のグループに属するビア（例えば「フローティングビア」と称する。）を、当該フローティングビアが属するボンディングパッドのグループ内の他のビアが複数の隣接している領域を画定する境界線上の位置に移動して配置し直すものである。
【０００６】
これ以外にも、ビアの配置設計に関する論文も既にいくつか提案されている（例えば、非特許文献１および２参照）。
【０００７】
【特許文献１】特開２００１−１３５６７１号公報
【特許文献２】特開２００６−２６８４６２号公報
【非特許文献１】ケイヤン・クー（Ｋｅｉ−Ｙｏｎｇ  Ｋｈｏｏ）、ジェーソン・コング（ＪａｓｏｎＣｏｎｇ）著、「Ａ  Ｆａｓｔ  Ｍｕｌｔｉｌａｙｅｒ  Ｇｅｎｅｒａｌ  Ａｒｅａ  Ｒｏｕｔｅｒ  ｆｏｒ  ＭＣＭ  Ｄｅｓｉｇｓ」、（米国）、ＩＥＥＥトランザクション（回路およびシステム）、アナログおよびディジタル信号処理、Ｖｏｌ．３９、１９９２年１１月、
【非特許文献２】タル・ダヤン（Ｔａｌ  Ｄａｙａｎ）、ウェイン・ウェミン・ダイ（Ｗａｙｎｅ  Ｗｅｉ−Ｍｉｎｇ  Ｄａｉ）著、「Ｌａｙｅｒ  Ａｓｓｉｇｎｍｅｎｔ  ｆｏｒ  Ｒｕｂｂｅｒ  Ｂａｎｄ  Ｒｏｕｔｉｎｇ」、（米国）、カリフォルニア大学サンタクルズ校（Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｃａｌｉｆｏｒｎｉａ  Ｓａｎｔａ  Ｃｒｕｚ）、１９９３年１月２０日、ＵＣＳＣ−ＣＲＬ−９３−０４、コンピュータ工学専攻における研究委員会（Ｂｏａｒｄ  ｏｆ  Ｓｔｕｄｉｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｅｎｇｉｎｅｅｒｉｎｇ）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記いずれのビアの配置設計の従来例においても、ビアが密集しているところでは配線間のクリアランスが確保できない領域が発生してしまう。このような配線間のクリアランス不足を解消するためのビアの移動先の設計は、基板面全体のバランスを考慮してビアおよび配線の位置を設計しなければならず、ビアの移動先を決定するのは容易ではない。
【０００９】
例えば、特願２００７−３２６３５２に係る発明によれば、ボロノイ図法を用いて設定する境界線付近にビアが密集してしまうことがある。
【００１０】
従って本発明の目的は、上記問題に鑑み、半導体パッケージの基板面上においてビアを配置すべき位置を基板面上に相当する仮想平面上で設計する設計処理を、演算処理装置により容易に実行することができる自動設計方法およびこの設計処理をコンピュータに実行させるためのコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を実現するために、本発明においては、ビアが形成される半導体パッケージの基板面上に相当する仮想平面上において、ビアを配置すべき位置を設計する設計処理を、コンピュータにより実行する自動設計方法は、仮想平面上に配置したビアの位置を母点としたドローネ三角形を仮想平面上に作成する作成ステップと、所定の長さ以下のドローネ三角形の一辺を構成する２つのビアの存在の有無を検査する検査ステップと、検査ステップにおいてドローネ三角形の一辺が所定の長さ以下であると判定された当該一辺を構成するビアの組全てについて、当該ビアのうちのいずれか一方のビアを、いずれかのドローネ三角形の辺上に沿って少なくとも所定の長さだけ移動させ、移動後の位置をビアの位置として確定する移動ステップと、を備える。
【００１２】
上記処理は、コンピュータ等の演算処理装置が実行することができるコンピュータプログラムの形式で実現できる。また、このコンピュータプログラムを記録媒体に格納するという事項も当業者には自明である。
【００１３】
すなわち、ビアが形成される半導体パッケージの基板面上に相当する仮想平面上において、ビアを配置すべき位置を設計する設計処理を、コンピュータに実行させるためのコンピュータプログラムは、仮想平面上に配置したビアの位置を母点としたドローネ三角形を仮想平面上に作成する作成ステップと、所定の長さ以下のドローネ三角形の一辺を構成する２つのビアの存在の有無を検査する検査ステップと、検査ステップにおいてドローネ三角形の一辺が所定の長さ以下であると判定された当該一辺を構成するビアの組全てについて、当該ビアのうちのいずれか一方のビアを、いずれかのドローネ三角形の辺上に沿って少なくとも所定の長さだけ移動させ、移動後の位置をビアの位置として確定する移動ステップと、を備える。
【発明の効果】
【００１４】
本発明によれば、半導体パッケージの基板面上においてビアを配置すべき位置を基板面上に相当する仮想平面上で設計する設計処理を、演算処理装置を用いて効率的に実行することができる。このように演算処理装置を用いて自動的に設計することができるので設計における工数を減らすことができ、設計者の作業時間が大幅に短縮され、負担も低減される。また、結果として半導体パッケージの製造コストも低減できる。
【発明を実施するための最良の形態】
【００１５】
図１は、本発明の実施例による自動設計方法の動作フローを示すフローチャートである。また、図２〜１４は、本発明の実施例による自動設計方法を適用した場合の具体例を説明する図である。ここでは一例として、半導体パッケージの基板面に相当する仮想平面Ｐ上にビアおよびボンディングパッドが図２に示すように配置されていた場合について説明する。なお、図２〜１４において、図中の二重丸印「◎」は仮想平面上のビアを示し、方形「□」は仮想平面上のボンディングパッドを示す。また、ドローネ三角形の辺をを実線で示す。また、各グループの領域の境界線を点線で示す。ここでは、例えば、特願２００７−３２６３５２に係る発明を実行することによって図２に示すような配置が得られたと仮定する。
【００１６】
まず、図１のステップＳ１０１において、コンピュータは、仮想平面Ｐ上において、半導体パッケージの基板面上に配置すべきボンディングパッドを、該ボンディングパッドが配置される半導体パッケージの４辺に対応してグループ分けする。次いで、ステップＳ１０２において、コンピュータは、仮想平面上のビアを、当該ビアの接続先であるボンディングパッドが属するグループにグループ分けする。次いで、ステップＳ１０３において、コンピュータは、同じグループに属するボンディングパッドおよびビアを収容する領域を画定する境界線を設定する。図２以降に示す例では、各グループの領域の境界線を点線で示す。なお、図２以降に示す例では、説明を簡明にするために、半導体パッケージの４辺に対応するグループ（すなわち４つのグループ）のうち、２つのグループについて示している。この例では、境界線付近にビアが密集しているところがある。
【００１７】
次いで、ステップＳ１０４において、コンピュータは、仮想平面Ｐ上に配置したビアの位置を母点としたドローネ三角形を作成する。図２の例についてドローネ三角形を作成すると、図３に示すようになる。
【００１８】
次いで、ステップＳ１０５において、コンピュータは、所定の長さ以下のドローネ三角形の一辺を構成する２つのビアの存在の有無を検査する。ここで、「所定の長さ」とは、半導体パッケージの基板面上におけるボールピッチ（ｂａｌｌ  ｐｉｔｃｈ）に依存して設定されるものである。この「所定の長さ」は、２つのボールの間の距離である「１ボールピッチ」に設定するが、２つのボールの間にｎ個（ｎは正の整数）のビアが存在するような場合には、「所定の長さ」を１／ｎボールピッチに設定することも可能である。なお、「所定の長さ」は、初期値として１ボールピッチに設定するのが好ましく、この「所定の長さ」を１ボールピッチに設定して本発明の自動配線処理を複数回実行してビアを移動させたにもかかわらず、移動後のビアを母点としてドローネ三角形を形成すると未だ１ボールピッチ以下のドローネ三角形の一辺が存在してしまうような場合は、２つのボールの間にｎ個のビアが存在する限り、「所定の長さ」を１／ｎボールピッチに設定し、再度、本発明の自動配線処理を実行する。
【００１９】
図４に示す例では、図中、太線の二重丸印「◎」で示すビアＶ１とビアＶ２との間のドローネ三角形の辺が１ボールピッチ以下であり、すなわち、ビアＶ１とビアＶ２とが近接している。
【００２０】
次いで、ステップＳ１０６において、コンピュータは、ステップＳ１０５においてドローネ三角形の一辺が所定の長さ以下であると判定された当該一辺を構成するビアの組全てについて、当該ビアのうちのいずれか一方のビアを、いずれかのドローネ三角形の辺上に沿って少なくとも所定の長さすなわち１ボールピッチだけ移動させ、移動後の位置をビアの位置として確定する。また、ビアを移動させたときは、移動後のビアを母点として新たにドローネ三角形を構成する。
【００２１】
このステップＳ１０６における移動処理は、ステップＳ１０５においてドローネ三角形の一辺が所定の長さすなわち１ボールピッチ以下であると判定された当該一辺を構成するビアの組全てについて、適用されるものである。
【００２２】
また、ステップＳ１０６における移動処理は、所定の長さ以下のドローネ三角形の一辺を構成するビアのうち、接続先であるボンディングパッドにより近い位置にあるビアを、いずれかのドローネ三角形の辺上に沿って、少なくとも所定の長さすなわち１ボールピッチだけ移動させる。ただし、ビアを所定の長さだけ移動させると他のビアを重なってしまう場合、すなわち、当該ビアから１ボールピッチまでの間に他のビアが存在するような場合は、当該他のビアに重ならないまでの範囲での移動とする。
【００２３】
また、ドローネ三角形の辺は、ビアが属する領域以外の領域にある他のビアとに対しても構成されることがあるが、ステップＳ１０６における移動処理では、移動させるべきビアは、当該ビアが属するグループの領域内において、いずれかのドローネ三角形の辺に沿って、移動させる。
【００２４】
図４に示す例では、図中、太線の二重丸印「◎」で示すビアＶ１とビアＶ２との間のドローネ三角形の辺が１ボールピッチ以下であり、すなわち、ビアＶ１とビアＶ２とが近接している。１ボールピッチ以下のドローネ三角形の一辺を構成するビアＶ１およびビアＶ２のうち、接続先であるボンディングパッドにより近い位置にあるのはビアＶ１であるので、このビアＶ１を、ドローネ三角形の辺ｒ１上に沿って、１ボールピッチだけ移動させる。移動後のビアＶ１’の位置は図５に示される。
【００２５】
上述のように、このステップＳ１０６における移動処理は、ステップＳ１０５においてドローネ三角形の一辺が所定の長さすなわち１ボールピッチ以下であると判定された当該一辺を構成するビアの組全てについて、適用されるものである。
【００２６】
すなわち、図５に示す例では、ビアＶ３とビアＶ４との間のドローネ三角形の辺が１ボールピッチ以下であり、すなわち、ビアＶ３とビアＶ４とが近接している。したがって、図６に示すようにビアＶ３とビアＶ４（図中、太線の二重丸印「◎」で示す）も、ステップＳ１０５の検査処理で、ドローネ三角形の一辺が所定の長さ（１ボールピッチ）以下であるとして抽出される。１ボールピッチ以下のドローネ三角形の一辺を構成するビアＶ３およびビアＶ４のうち、接続先であるボンディングパッドにより近い位置にあるのはビアＶ３ので、このビアＶ３を移動させることになる。ただし、ステップＳ１０６における移動処理では、移動させるべきビアは、当該ビアが属するグループの領域内において、いずれかのドローネ三角形の辺に沿って、移動させなければならない。すなわち、ビアＶ３の移動経路としては、ドローネ三角形の辺ｒ３上に沿って移動させた方が、辺ｒ２上に沿って移動させるよりも、ビアＶ３と同じグループに属するボンディングパッドにより近くに近づけることができるが、ビアＶ３とは異なるグループの領域を通過してしまうことになるので、辺ｒ３ではなく辺ｒ２を、ビアＶ３の移動経路とする。このビアＶ３を、ドローネ三角形の辺ｒ３上に沿って、１ボールピッチだけ移動させたとき、移動後のビアＶ３’の位置は図７に示される。
【００２７】
図７に示す例では、ビアＶ２とビアＶ５との間のドローネ三角形の辺が１ボールピッチ以下であり、すなわち、ビアＶ２とビアＶ５とが近接している。したがって、ビアＶ２とビアＶ５（図中、太線の二重丸印「◎」で示す）も、ステップＳ１０５の検査処理で、ドローネ三角形の一辺が所定の長さ（１ボールピッチ）以下であるとして抽出される。ここで、ビアＶ２については、ビアＶ１の際にも、ステップＳ１０５の検査処理で抽出されていたが、この場合はビアＶ２ではなくビアＶ１が移動の対象となった。しｔがって、ビアＶ５との関係では、ビアＶ２は、再度、所定の長さ（１ボールピッチ）以下であるドローネ三角形の辺を構成するビアの１つとして、抽出されることになる。１ボールピッチ以下のドローネ三角形の一辺を構成するビアＶ２およびビアＶ５のうち、接続先であるボンディングパッドにより近い位置にあるのはビアＶ５ので、このビアＶ５を移動させることになる。ただし、ステップＳ１０６における移動処理では、移動させるべきビアは、当該ビアが属するグループの領域内において、いずれかのドローネ三角形の辺に沿って、移動させなければならない。すなわち、ビアＶ５の移動経路としては、ドローネ三角形の辺ｒ４が選択される。このビアＶ５を、ドローネ三角形の辺ｒ４上に沿って、１ボールピッチだけ移動させたとき、移動後のビアＶ５’の位置は図８に示される。
【００２８】
図８に示す例では、この他に、ビアＶ６とビアＶ７との間、ビアＶ８とビアＶ９との間、およびビアＶ１０とビアＶ１１との間が１ボールピッチ以下である。したがって、これらについても、ステップＳ１０６の移動処理を実行する。この結果、図９に示すように、ビアＶ６はＶ６’の位置に、ビアＶ８はＶ８’の位置に、ビアＶ１０はＶ１０’の位置に、それぞれ移動する。
【００２９】
仮想平面上の全てのビアについてステップＳ１０５における検査処理を実行し、かつ移動すべきビアの移動がステップＳ１０６における移動処理により完了した後、このときの仮想平面上のビアの位置を母点としてステップＳ１０４のドローネ三角形の作成処理を再度実行し、ステップＳ１０５における検査処理およびステップＳ１０６における移動処理を実行する。図１のステップＳ１０７では、コンピュータは、仮想平面上のドローネ三角形の辺の全てが所定の長さ（すなわち１ボールピッチ）以上であるか否かを判定する。ステップＳ１０７においてドローネ三角形の辺の全てが所定の長さである場合以外は、ステップＳ１０４へ戻る。すなわち、ステップＳ１０７の判定処理においてドローネ三角形の一辺が全て前記所定の長さ以上であると判定されるまで、ステップＳ１０４、ステップＳ１０５およびステップＳ１０６が繰り返し実行される。
【００３０】
図９に示すようにステップＳ１０６の移動処理により、ビアＶ１’、ビアＶ３’、ビアＶ５’、ビアＶ６’、ビアＶ８’およびビアＶ１０’が、新たに配置し直されたことになる。ステップＳ１０７の判定処理において、ドローネ三角形の一辺が全て前記所定の長さ以上であるとは判定されないので、再度、ステップＳ１０４のドローネ三角形の作成処理へ戻る。図９に示すような各ビアについて、ステップＳ１０４のドローネ三角形の作成処理を再度実行し、ステップＳ１０５における検査処理を実行すると、図１０を示すように、ビアＶ１’とビアＶ１２との間、およびビアＶ６’とビアＶ１３との間が１ボールピッチ以下であることが抽出される。したがって、これら、ビアＶ１’とビアＶ１２、およびビアＶ６’とビアＶ１３について、ステップＳ１０６における移動処理を実行することになる。この結果、図１１に示すように、ビアＶ１２はＶ１２’の位置に、ビアＶ１３はＶ１３’の位置に、それぞれ移動する。
【００３１】
図１１に示すようにステップＳ１０６の移動処理により、ビアＶ１２’およびビアＶ１３’が、新たに配置し直されたことになる。ステップＳ１０７の判定処理において、ドローネ三角形の一辺が全て前記所定の長さ以上であるとは判定されないので、再度、ステップＳ１０４のドローネ三角形の作成処理へ戻る。図１１に示すような各ビアについて、ステップＳ１０４のドローネ三角形の作成処理を再度実行すると、図１２に示すようになる。このとき、ステップＳ１０５における検査処理を実行すると、およびビアＶ１２’とビアＶ１４’との間が１ボールピッチ以下であることが抽出される。したがって、ビアＶ１２’とビアＶ１４’について、ステップＳ１０６における移動処理を実行することになる。この結果、図１３に示すように、ビアＶ１４はＶ１４’の位置に移動する。
【００３２】
図１３に示すようにステップＳ１０６の移動処理により、ビアＶ１４’が新たに配置し直されたことになる。ステップＳ１０７の判定処理において、ドローネ三角形の一辺が全て前記所定の長さ以上であるとは判定されないので、再度、ステップＳ１０４のドローネ三角形の作成処理へ戻る。図１３に示すような各ビアについて、ステップＳ１０４のドローネ三角形の作成処理を再度実行し、ステップＳ１０５における検査処理を実行すると、ビアＶ１４’とビアＶ１５との間が１ボールピッチ以下であることが抽出される。したがって、ビアＶ１４’とビアＶ１５について、ステップＳ１０６における移動処理を実行することになる。この結果、図１４に示すように、ビアＶ１５はＶ１５’の位置に移動する。
【００３３】
図１４に示すようなビア配置の下では、ステップＳ１０７の判定処理において、ドローネ三角形の一辺が全て前記所定の長さ以上であると判定されるので処理を終了する。
【００３４】
なお、上記の処理を繰り返したにもかかわらず、未だ１ボールピッチ以下のドローネ三角形の一辺が存在し、同じビアについて何度も移動させるような結果が生じた場合は、２つのボールの間にｎ個のビアが存在するような基板である限りは、「所定の長さ」を１／ｎボールピッチに設定し、再度、本発明の自動配線処理を実行する。例えば、２つのボールの間に２個のビアが存在するような基板であるならば「所定の長さ」を１／２ボールピッチに設定し、２つのボールの間に３個のビアが存在するような基板であるならば「所定の長さ」を１／３ボールピッチに設定し、といったように、可能な限り、所定の長さを変更設定してステップＳ１０４〜Ｓ１０７の処理を実行すればよい。
【００３５】
本発明の実施例では、ステップＳ１０６の移動処理が完了し、再度ステップＳ１０５の検査処理を実行する前に、ステップＳ１０４を実行してドローネ三角形を作成し直していた。このドローネ三角形の作成し直しを省略して、ステップＳ１０５の検査処理およびステップＳ１０６の移動処理を実行するようにしてもよい。
【００３６】
上述した本実施例による自動設計方法は、コンピュータを用いて実現される。図１５は、記録媒体に格納されたプログラムにより動作する本発明の実施例による自動設計装置の構成を示すブロック図である。
【００３７】
本発明による自動設計処理をコンピュータに実行させるプログラムは、図１５に示すように、記憶媒体（フレキシブルディスク、ＣＤ−ＲＯＭ等の外部記憶媒体）１１０に格納されており、例えば、次に説明するような構成によるコンピュータにインストールされて自動設計装置として動作する。
【００３８】
ＣＰＵ１１１は、自動設計装置全体を制御する。このＣＰＵ１１１に、バス１１２を介してＲＯＭ１１３、ＲＡＭ１１４、ＨＤ（ハードディスク装置）１１５、マウスやキーボード等の入力装置１１６、外部記憶媒体ドライブ装置１１７およびＬＣＤ、ＣＲＴ、プラズマディスプレイ、有機ＥＬ等の表示装置１１８が接続されている。ＣＰＵ１１１の制御プログラムはＲＯＭ１１３に格納されている。
【００３９】
本発明による自動設計処理を実行するプログラム（自動設計処理プログラム）は、記憶媒体１１０からＨＤ１１５にインストール（記憶）される。また、ＲＡＭ１１４には、自動設計処理をＣＰＵ１１１が実行する際の作業領域や、自動設計処理を実行するプログラムの一部が記憶される領域が確保されている。また、ＨＤ１１５には、入力データ、最終データ、さらにＯＳ（オペレーティングシステム）等が予め記憶される。
【００４０】
まず、コンピュータの電源を投入すると、ＣＰＵ１１１がＲＯＭ１１０から制御プログラムを読み出し、さらにＨＤ１１５からＯＳを読み込み、ＯＳを起動させる。これによりコンピュータは自動設計処理プログラムを記憶媒体１１０からインストール可能な状態となる。
【００４１】
次に、記憶媒体１１０を外部記憶媒体ドライブ装置１１７に装着し、入力装置１１６から制御コマンドをＣＰＵ１１１に入力し、記憶媒体１１０に格納された自動設計処理プログラムを読み取ってＨＤ１１５等に記憶する。つまり自動設計処理プログラムがコンピュータにインストールされる。
【００４２】
その後は、自動設計処理プログラムを起動させると、コンピュータは自動設計装置として動作する。オペレータは、表示装置１１８に表示される対話形式による作業内容と手順に従って、入力装置１１６を操作することで、上述した自動設計処理を実行することができる。処理の結果得られた「配線の最適ルートに関するデータ」は、例えば、ＨＤ１１５に記憶しておいて後日利用できるようにしたり、あるいは、処理結果を表示装置１１８に視覚的に表示するのに用いてもよい。
【００４３】
なお、図１５のコンピュータでは、記憶媒体１１０に記憶されたプログラムをＨＤ１１５にインストールするようにしたが、これに限らず、ＬＡＮ等の情報伝送媒体を介して、コンピュータにインストールされてもよいし、コンピュータに内蔵のＨＤ１１５に予めインストールされておいてもよい。
【産業上の利用可能性】
【００４４】
本発明は、ＬＳＩやＰＣＢなどの半導体集積回路、ＣＳＰ、ＰＢＧＡ、ＥＢＧＡ、ＨＤＳなどの半導体パッケージ、ならびにＭＣＭ／Ｓｉｐなどの配線基板の設計に適用することができる。
【００４５】
本発明によれば、半導体パッケージの基板面上においてビアを配置すべき位置を基板面上に相当する仮想平面上で設計する設計処理を、演算処理装置を用いて効率的に実行することができる。このように演算処理装置を用いて自動的に設計することができるので設計における工数を減らすことができ、設計者の作業時間が大幅に短縮され、負担も低減される。また、結果として半導体パッケージの製造コストも低減できる。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施例による自動設計方法の動作フローを示すフローチャートである。
【図２】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その１）である。
【図３】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その２）である。
【図４】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その３）である。
【図５】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その４）である。
【図６】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その５）である。
【図７】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その６）である。
【図８】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その７）である。
【図９】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その８）である。
【図１０】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その９）である。
【図１１】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その１０）である。
【図１２】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その１１）である。
【図１３】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その１２）である。
【図１４】本発明の実施例による自動設計方法を適用した場合の具体例を説明する図（その１３）である。
【図１５】記録媒体に格納されたプログラムにより動作する本発明の実施例による自動設計装置の構成を示すブロック図である。
【図１６】従来技術によるビアの配置設計について説明する図（その１）である。
【図１７】従来技術によるビアの配置設計について説明する図（その２）である。
【図１８】従来技術によるビアの配置設計について説明する図（その３）である。
【符号の説明】
【００４７】
１１０    記録媒体
１１１    ＣＰＵ
１１２    バス
１１３    ＲＯＭ
１１４    ＲＡＭ
１１５    ハードディスク装置
１１６    入力装置
１１７    外部記憶媒体ドライブ装置
１１８    表示装置
【図１】
2010146406.tif 000003
【図２】
2010146406.tif 000004
【図３】
2010146406.tif 000005
【図４】
2010146406.tif 000006
【図５】
2010146406.tif 000007
【図６】
2010146406.tif 000008
【図７】
2010146406.tif 000009
【図８】
2010146406.tif 000010
【図９】
2010146406.tif 000011
【図１０】
2010146406.tif 000012
【図１１】
2010146406.tif 000013
【図１２】
2010146406.tif 000014
【図１３】
2010146406.tif 000015
【図１４】
2010146406.tif 000016
【図１５】
2010146406.tif 000017
【図１６】
2010146406.tif 000018
【図１７】
2010146406.tif 000019
【図１８】
2010146406.tif 000020