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