(57)【特許請求の範囲】
【請求項１】
基板に設けられる円形状導体に係る位置情報を少なくとも記憶する記憶部と、
前記記憶部によって記憶された位置情報から定まる前記円形状導体の外形を形成する閉曲線を周方向に所定の幅で分割して得られる複数の導体部分ごとに、各導体部分を複数の移動条件それぞれで前記円形状導体の半径方向に移動させた場合における各移動後の位置情報を算出する算出部と、
前記導体部分ごとに、前記算出部によって算出された各移動後の位置情報の中から移動距離が最短となる位置情報を抽出し、抽出した位置情報を前記導体部分の移動先として決定する決定部と、
を有することを特徴とする基板設計装置。
【請求項２】
前記算出部は、多層基板において接続される各層の円形状導体ごとに、前記各移動後の位置情報を算出し、
前記決定部は、前記算出部によって算出された各移動後の位置情報の中から移動距離が最短となる位置情報を各層ごとに抽出し、抽出した位置情報によって形成された各層ごとの閉曲線を重畳させた場合の重複領域に内接する円上に前記導体部分の移動先を決定することを特徴とする請求項１に記載の基板設計装置。
【請求項３】
前記算出部は、前記基板に係る設計基準に基づいて前記導体部分を前記半径方向に移動させた場合における移動後の位置情報と、前記導体部分の前記半径方向に位置する障害物と当該導体部分との中点位置に前記導体部分を移動させた場合における移動後の位置情報とを算出することを特徴とする請求項１又は２に記載の基板設計装置。
【請求項４】
前記算出部は、前記半径方向に障害物がなく他の円形状導体が位置する場合に、当該他の円形状導体と前記導体部分との距離から前記設計基準に基づく距離を減算し、減算後の距離を２等分した距離だけ前記導体部分を移動させた場合における移動後の位置情報を算出することを特徴とする請求項３に記載の基板設計装置。
【請求項５】
コンピュータによる基板設計方法であって、
基板に設けられる円形状導体に係る位置情報を少なくとも記憶する記憶部によって記憶された位置情報から定まる前記円形状導体の外形を形成する閉曲線を周方向に所定の幅で分割して得られる複数の導体部分ごとに、各導体部分を複数の移動条件それぞれで前記円形状導体の半径方向に移動させた場合における各移動後の位置情報を算出する算出ステップと、
前記導体部分ごとに、前記算出ステップによって算出された各移動後の位置情報の中から移動距離が最短となる位置情報を抽出し、抽出した位置情報を前記導体部分の移動先として決定する決定ステップと、
を含むことを特徴とする基板設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、基板設計装置及び基板設計方法に関する。
【背景技術】
【０００２】
従来、基板におけるビアパッド（Via  pad）やボンディングパッド（Bonding  Pad）などの円形状導体をＣＡＤ（Computer  Aided  Design）システムを用いて設計する技術が知られている。例えば、ＣＡＤシステムを用いた設計では、ビアパッドやボンディングパッドなどの円形状導体の位置やサイズ（Size）などが設計される。
【０００３】
ここで、例えば、設計されたビアパッドのサイズが小さいと、ビアを形成するための貫通孔を設ける段階で不良が発生することがある。例えば、ビアパッドのサイズが小さい場合には、貫通孔がビアパッドの中心からはずれ、ビアパッド内に納まらない位置に形成されてしまう不良が発生する。従って、ビアパッドが小さいことにより発生する不良を防ぐために、ＣＡＤシステムを用いてビアパッドを拡大する修正が実行される。
【０００４】
例えば、設計者は、自身の空間把握能力、ＣＡＤシステムの測長機能及び移動機能を用いてビアパッドを拡大する修正を手作業で実行する。図１８は、従来の手作業によるビアパッドの修正の一例を示す図である。図１８においては、ＣＡＤシステムによるビアパッドの設計が実行された後のビアパッドの修正について示す。また、図１８においては、多層基板におけるビアパッドの設計が実行された後のビアパッドについて各層を重畳した図を示す。
【０００５】
例えば、図１８の（Ａ）に示すように、ＣＡＤシステムによって設計された多層基板の第１層に配線２４と配線２５とが設計され、ＣＡＤシステムによって設計された多層基板の第２層に配線２６と配線２７とが設計されている。そして、第１層と第２層とを接続するためのビアパッド１９が第１層及び第２層それぞれに設計されている場合には、設計者は、まず、各層における配線の修正を実行する。
【０００６】
例えば、設計者は、図１８の（Ｂ）に示すように、第１層について、ＣＡＤシステムの測長機能により配線２５とビアパッド１９との間の距離８７を広げることが可能であることを見つける。そして、設計者は、図１８の（Ｃ）に示すように、ＣＡＤシステムの移動機能により配線２５とビアパッド１９との間を広げる修正を手作業で実行する。その後、設計者は、図１８の（Ｄ）に示すように、ＣＡＤシステムの測長機能により配線２５とビアパッド１９との間の距離８８を測定する。
【０００７】
同様に、設計者は、第２層について配線の修正を実行する。例えば、設計者は、図１８の（Ｅ）に示すように、ＣＡＤシステムの測長機能により配線２６とビアパッド１９との間の距離８９及び距離９０を広げることが可能であることを見つける。そして、設計者は、図１８の（Ｆ）に示すように、ＣＡＤシステムの移動機能により配線２６とビアパッド１９との間を広げる修正を手作業で実行する。その後、設計者は、図１８の（Ｇ）に示すように、ＣＡＤシステムの測長機能により配線２６とビアパッド１９との間の距離９１及び距離９２を測定する。
【０００８】
各層における配線の修正が終了すると、設計者は、図１８の（Ｈ）に示すように、第１層において測定した距離８８と、第２層において測定した距離９１及び距離９２とに基づいて、ビアパッド１９を拡大する修正を手作業で実行する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平５−２９０１２６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述した従来技術では、基板の歩留まりを向上させることが困難であるという問題があった。具体的には、上述した従来技術では、手作業でビアパッドを修正することから、複数の条件を満たすように修正することは容易ではなく、基板の歩留まりを向上させることが困難である。例えば、設計者がビアパッドを拡大することに注視してしまい、ビアパッドと配線との距離をデザインルールで規定された距離よりも短くしてしまうなどのミスが生じることとなり、基板の歩留まりを向上させることが困難である。
【００１１】
そこで、本開示の技術は、上述した従来技術の問題に鑑みて、基板の歩留まりを向上させることを可能にする基板設計装置及び基板設計方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、開示の基板設計装置は、基板に設けられる円形状導体に係る位置情報を少なくとも記憶する記憶部を備える。また、開示の基板設計装置は、位置情報から定まる円形状導体の外形を形成する閉曲線を周方向に分割して得られる複数の導体部分ごとに、各導体部分を複数の移動条件それぞれで半径方向に移動させた場合における各移動後の位置情報を算出する算出部を備える。また、開示の基板設計装置は、導体部分ごとに、算出部によって算出された各移動後の位置情報の中から移動距離が最短となる位置情報を抽出し、抽出した位置情報を導体部分の移動先として決定する決定部を備える。
【発明の効果】
【００１３】
開示の基板設計装置は、基板の歩留まりを向上させることを可能にする。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係る基板設計装置の構成を示す図である。
【図２】図２は、実施例１に係る設計情報記憶部によって記憶された情報の例を模式的に示す図である。
【図３】図３は、実施例１に係る移動データ記憶部によって記憶される情報の例を示す図である。
【図４】図４は、実施例１に係る制御部による配線の修正の一例を模式的に示した図である。
【図５】図５は、実施例１に係る分割部による処理を模式的に示す図である。
【図６】図６は、実施例１に係る検出部による処理を模式的に示す図である。
【図７】図７は、実施例１に係るデザインルール情報に基づいた移動先候補算出の一例を模式的に示す図である。
【図８】図８は、実施例１に係る均等位置情報に基づいた移動先候補算出の一例を模式的に示す図である。
【図９】図９は、実施例１に係る決定部による閉曲線の重畳処理の一例を模式的に示す図である。
【図１０】図１０は、実施例１に係る決定部による内接円の算出の一例を模式的に示す図である。
【図１１】図１１は、実施例１に係るデータ処理部による処理の一例を模式的に示す図である。
【図１２】図１２は、実施例１に係る基板設計装置による修正処理の手順を示すフローチャートである。
【図１３】図１３は、実施例２に係る基板設計装置の構成を示す図である。
【図１４】図１４は、実施例２に係る移動データ記憶部によって記憶される情報の例を示す図である。
【図１５】図１５は、実施例２に係るビアパッド間移動距離情報に基づいた移動先候補算出の一例を模式的に示す図である。
【図１６】図１６は、実施例２に係る基板設計装置による修正処理の手順を示すフローチャートである。
【図１７】図１７は、実施例３に係る配線設計プログラムを実行するコンピュータを示す図である。
【図１８】図１８は、従来の手作業によるビアパッドの修正の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照して、本願の開示する基板設計装置及び基板設計方法の実施例を詳細に説明する。なお、本願の開示する基板設計装置及び基板設計方法は、以下の実施例により限定されるものではない。
【実施例１】
【００１６】
実施例１に係る基板設計装置は、基板に設計された円形状導体に係る位置情報に基づいて、円形状導体のサイズや位置を修正する。なお、円形状導体とは、外形が円形状の導体を意味する。例えば、円形状導体は、ビアパッドやボンディングパッドなどである。具体的には、実施例１に係る基板設計装置は、円形状導体の外形を形成する閉曲線を周方向に仮想的に分割した導体部分ごとに、複数の移動条件それぞれで半径方向に移動させた場合の移動先の位置情報を算出する。そして、実施例１に係る基板設計装置は、仮想的に分割した導体部分ごとに、算出した位置情報の中から移動距離が最短となる位置情報を導体部分の移動先として決定する。なお、以下では、円形状導体としてビアパッドを例に挙げて説明するが、円形状導体としてボンディングパッドが用いられる場合であってもよい。
【００１７】
例えば、複数の層に跨るビアを形成するためのビアパッドのサイズや位置を修正する場合には、実施例１に係る基板設計装置は、以下に示すようにビアパッドの位置を修正する。実施例１に係る基板設計装置は、まず、多層基板において各層のビアパッドごとに、ビアパッドの外形を形成する閉曲線を周方向に仮想的に分割する。また、実施例１に係る基板設計装置は、分割して得られた導体部分ごとに、複数の移動条件それぞれで半径方向に移動させた場合の移動先の位置情報を算出する。そして、実施例１に係る基板設計装置は、各層のビアパッドそれぞれの導体部分の位置情報を算出する。
【００１８】
ここで、複数の移動条件とは、例えば、配線とビアパッドとの間の距離がデザインルールで規定された距離よりも短くならないようにすることや、ビアパッドの半径方向に位置する障害物と導体部分との中点位置に導体部分を移動することなどである。また、デザインルールとは、基板を設計する上で規定されているルールである。デザインルールには、例えば、配線とビアパッドとの間の最短距離などが規定されている。
【００１９】
そして、実施例１に係る基板設計装置は、導体部分ごとに、算出した各移動後の位置情報の中から移動距離が最短となる位置情報を抽出する。その後、実施例１に係る基板設計装置は、導体部分ごとに抽出した位置情報により各層ごとの移動後のビアパッドの閉曲線を生成する。そして、実施例１に係る基板設計装置は、生成した各層の閉曲線を重畳させ、重複領域に内接する円を複数の層に跨るビアを形成するためのビアパッドの外形として決定する。
【００２０】
従って、実施例１に係る基板設計装置は、基板に設けられた円形状導体のサイズや位置を複数の移動条件を用いて自動的に修正することができる。例えば、実施例１に係る基板設計装置によれば、ビアを形成するために複数の層に設けられたビアパッドを各層の配線状態などを考慮した上で拡大することができる。例を挙げると、実施例１に係る基板設計装置は、例えば、ビアパッドと配線との距離が十分にある場合には、配線との距離に余裕を確保しつつ、ビアパッドを拡大することができる。また、実施例１に係る基板設計装置は、ビアパッドと配線との距離が短い場合には、デザインルール（例えば、配線の周囲に設定された禁止領域にビアパッドを配置しないこと）を満たすようにビアパッドを拡大することができる。すなわち、実施例１に係る基板設計装置は、基板に設けられた円形状導体の修正に係る人為的ミス及び貫通孔形成に伴う不良を低減することができ、基板の歩留まりを向上させることを可能にする。
【００２１】
［実施例１に係る基板設計装置の構成］
まず、実施例１に係る基板設計装置の構成について説明する。図１は、実施例１に係る基板設計装置１００の構成を示す図である。図１に示すように、基板設計装置１００は、入出力制御Ｉ／Ｆ（interface）部１１０と、入力部１２０と、表示部１３０と、記憶部１４０と、制御部１５０とを有し、ＣＡＤ（Computer  Aided  Design）システムによって設計された基板上の円形状導体を拡大する修正を実行する。なお、基板設計装置１００は、例えば、ＰＣ（Personal  Computer）、ワークステーション又は配線設計用の専用装置である。
【００２２】
入出力制御Ｉ／Ｆ部１１０は、入力部１２０、表示部１３０と制御部１５０との間での各種情報のやり取りを制御するインタフェース部である。入力部１２０は、設計者による種々の情報の入力処理を受付ける。例えば、入力部１２０は、ビアパッドの修正回数の入力を受付ける。なお、ビアパッドの修正回数については、後に詳述する。例を挙げると、入力部１２０は、キーボードやタッチパネルなどである。表示部１３０は、設計者に設計の情報を表示出力する。例えば、表示部１３０は、設計後の基板の情報を表示出力する。例を挙げると、表示部１３０は、ディスプレイなどである。
【００２３】
記憶部１４０は、図１に示すように、設計情報記憶部１４１と、移動条件記憶部１４２と、移動データ記憶部１４３とを有し、入力部１２０を介して利用者から入力された情報や後述する制御部１５０による処理結果などを記憶する。記憶部１４０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
【００２４】
設計情報記憶部１４１は、基板上の円形状導体に係る位置情報を少なくとも記憶する。具体的には、設計情報記憶部１４１は、基板の形状、基板の層数、配線や円形状導体の位置などの設計情報を記憶する。ここで、円形状導体とは、例えば、ビアパッドやボンディングパッドなどである。なお、ビアパッドとは、多層基板の層間を接続するビアを形成するために基板に設けられるパッドである。また、ボンディングパッドとは、半導体チップを基板に接続するパッドである。
【００２５】
図２は、実施例１に係る設計情報記憶部１４１によって記憶された情報の例を模式的に示す図である。図２においては、図２の（Ａ）が半導体パッケージの外観図を示す。また、図２においては、図２の（Ｂ）が図２の（Ａ）に示す半導体パッケージに含まれる多層基板の断面図を示す。また、図２においては、図２の（Ｃ）が図２の（Ａ）に示す半導体パッケージに含まれる基板の一部の上面図を示す。
【００２６】
図２の（Ｂ）に示すように、ＣＡＤシステムによる設計では、例えば、配線が施される層である配線層１〜４を有する多層基板について各層ごとに配線やビアパッドなどが設計される。例を挙げると、ＣＡＤシステムによる設計では、図２の（Ｂ）に示すように、配線層１〜４の層間を接続するビア５を形成するためのビアパッド１０が各層に配置される。同様に、ＣＡＤシステムによる設計では、図２の（Ｂ）に示すように、配線層２と３とを接続するビア６を形成するためのビアパッド８や配線層２〜４を接続するビア７を形成するためのビアパッド９などが各層に配置される。
【００２７】
また、ＣＡＤシステムによる設計では、図２の（Ｃ）に示すように、ボンディングパッド３０が配置され、配線２０によってビア１０と接続される。そして、ＣＡＤシステムによる設計では、図２に示すように、半導体チップとボンディングパッド３０とが配線４０によって接続される。
【００２８】
例えば、設計情報記憶部１４１は、図２に示すビア１０や、ボンディングパッド３０からビア１０に接続された配線２０などの位置データを記憶する。ここで、設計情報記憶部１４１は、例えば、ビア１０やボンディングパッド３０などの中心の座標、径及び径の曲率などを記憶する。また、設計情報記憶部１４１は、配線２０の位置データとして、例えば、図２に示す配線２０の始点、終点、配線の角度が変化する地点などの座標及び配線幅などを記憶する。同様に、設計情報記憶部１４１は、ＣＡＤシステムによって設計された全ての配線やビアなどの位置データを記憶する。
【００２９】
移動条件記憶部１４２は、後述する制御部１５０による円形状導体の修正に用いられる移動条件を記憶する。例えば、移動条件記憶部１４２は、拡大させる円形状導体と障害物との距離がデザインルールに規定された距離よりも短くならない位置まで円形状導体を拡大させる旨の条件であるデザインルール情報を記憶する。また、移動条件記憶部１４２は、半径方向に位置する障害物と円形状導体との中点位置まで円形状導体を拡大させる旨の条件である均等位置情報を記憶する。
【００３０】
移動データ記憶部１４３は、後述する制御部１５０によって実行される修正の処理結果である移動データを記憶する。図３は、実施例１に係る移動データ記憶部１４３によって記憶される情報の例を示す図である。図３に示すように、移動データ記憶部１４３は、ビアＩＤ（Identifier）ごとに、原点、移動先候補及び移動先をセグメントＩＤに対応付けた移動データを記憶する。また、移動データ記憶部１４３は、図３に示すように、移動先候補としてデザインルール、均等位置をセグメントＩＤに対応付けた移動データを記憶する。
【００３１】
ここで、図３に示すビアＩＤとは、ビアを一意に特定するための識別子である。また、図３に示すセグメントＩＤとは、後述する制御部１５０が円形状導体の外形を形成する閉曲線を仮想的に分割した一部分であるセグメントを一意に特定するための識別子である。例えば、ビアＩＤ及びセグメントＩＤは、後述する制御部１５０によって閉曲線が分割された時点でシーケンシャルに付加される。配線層とは、ＣＡＤシステムによって配線及びビアパッドなどが配置された面を示す。また、図３に示す原点とは、セグメントの移動が実行される前の座標を示す。また、図３に示す移動先候補に列挙された座標は、移動条件に基づいて算出された移動先候補の座標を示す。
【００３２】
また、図３に示すデザインルールに対応付けられた座標は、セグメントをデザインルール情報に基づいて移動させた場合の移動後の座標を示す。また、図３に示す均等位置に対応付けられた座標は、セグメントを均等位置情報に基づいて移動させた場合の移動後の座標を示す。また、図３に示す移動先に対応付けられた座標は、後述する制御部１５０によって決定された各セグメントの移動先の座標を示す。
【００３３】
例えば、移動データ記憶部１４３は、図３に示すように、「ビアＩＤ：１」に対応付けて、「セグメントＩＤ：配線層１、１」、「原点：（Ｘ1，Ｙ1）」、「移動先候補、デザインルール：（Ｘ11，Ｙ11）」、「移動先候補、均等位置：（Ｘ12，Ｙ12）」を記憶する。また、移動データ記憶部１４３は、図３に示すように、「ビアＩＤ：１」に対応付けて「移動先：（Ｘ12，Ｙ12）」を記憶する。すなわち、上記した情報は、「ビアＩＤ：１」のビアを形成するために配線層１に配置されたビアパッドの「セグメント：１」が、「原点：（Ｘ1，Ｙ1）」に位置していることを意味する。また、上記した情報は、「ビアＩＤ：１」のビアを形成するために配線層１に配置されたビアパッドの「セグメント：１」の、デザインルールを条件とした移動先候補が「（Ｘ11，Ｙ11）」であることを意味する。また、上記した情報は、「ビアＩＤ：１」のビアを形成するために配線層１に配置されたビアパッドの「セグメント：１」の、均等位置を条件とした移動先候補が「（Ｘ12，Ｙ12）」であることを意味する。また、上記した情報は、「ビアＩＤ：１」のビアを形成するために配線層１に配置されたビアパッドの「セグメント：１」の移動先が「（Ｘ12，Ｙ12）」であることを意味する。
【００３４】
同様に、移動データ記憶部１４３は、図３に示すように、「ビアＩＤ：１、セグメントＩＤ：配線層１、２」及び「ビアＩＤ：１、セグメントＩＤ：配線層１、３」それぞれに「原点」、「移動先候補」及び「移動先」を対応付けて記憶する。
【００３５】
また、移動データ記憶部１４３は、図３に示すように、「ビアＩＤ：１」に対応付けて「セグメントＩＤ：配線層２、１」、「原点：（Ｘ1，Ｙ1）」、「移動先候補、デザインルール：（Ｘ13，Ｙ13）」、「移動先候補、均等位置：（Ｘ14，Ｙ14）」を記憶する。また、移動データ記憶部１４３は、図３に示すように、「セグメントＩＤ：配線層２、１」に対応付けて「移動先：（Ｘ14，Ｙ14）」を記憶する。同様に、移動データ記憶部１４３は、図３に示すように、「ビアＩＤ：１」の「配線層３」及び「配線層４」におけるセグメントそれぞれに「原点」、「移動先候補」及び「移動先」を対応付けて記憶する。すなわち、移動データ記憶部１４３は、ビアごとに、各層に配置されたビアパッドの位置情報を記憶する。
【００３６】
図１に戻って、制御部１５０は、分割部１５１と、検出部１５２と、算出部１５３と、決定部１５４と、データ処理部１５５とを有し、ＣＡＤシステムによって設計された基板上の円形状導体を拡大する処理を実行する。制御部１５０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの制御回路、または、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路である。
【００３７】
ここで、制御部１５０は、基板上の円形状導体を拡大する処理を実行する前に、ＣＡＤシステムによって設計された基板上の配線の位置を修正する。具体的には、制御部１５０は、配線を長手方向に仮想的に分割した配線部分ごとに、複数の移動条件それぞれで移動させた場合の移動先の位置情報を移動先候補として算出する。そして、実施例１に係る基板設計装置は、仮想的に分割した配線部分ごとに、算出した移動先候補の中から移動距離が最短となる移動先候補を配線部分の移動先として決定する。なお、複数の移動条件とは、例えば、配線間の距離がデザインルールで規定された距離よりも短くならないようにすることや配線間の距離を均等にすることなどである。
【００３８】
図４は、実施例１に係る制御部１５０による配線の修正の一例を模式的に示した図である。図４においては、図４の（Ａ）がＣＡＤシステムによって設計された半導体パッケージに含まれる多層基板の断面図を示す。図４の（Ａ）に示すように、多層基板は、ＣＡＤシステムによって配線及びビアなどが設計された配線層１〜４を有する。また、多層基板は、配線層1〜4の各層間を接続するビア１０１を形成するためのビアパッド１１〜１４をそれぞれ配線層１〜４に有する。また、図４においては、図４の（Ｂ）及び（Ｃ）が、図４の（Ａ）に示す多層基板の配線層１に設計された配線及びビアの一部の上面図を示す。図４の（Ｂ）に示すように、配線層１は、ビアパッド１１とともに配線２１〜２３を有する。
【００３９】
例えば、制御部１５０は、図４の（Ｂ）に示す配線２１〜２３を長手方向に所定の幅のセグメントに分割する。そして、制御部１５０は、配線２１〜２３のセグメントごとに、複数の移動条件それぞれで移動させた場合の位置を算出して、移動距離が最短となる位置にセグメントを移動させる。例えば、制御部１５０は、図４の（Ｃ）に示すように、配線２１〜２３の各配線間やビアパッド１１と配線２１との間などの距離を広げる修正を実行する。制御部１５０は、ＣＡＤシステムによって設計されたすべての配線に対して位置を修正する処理を実行して、設計情報記憶部１４１によって記憶された設計情報を更新する。例えば、制御部１５０は、配線の座標を修正後の座標に更新する。
【００４０】
分割部１５１は、設計情報記憶部１４１によって記憶された位置情報から定まる円形状導体の外形を形成する閉曲線を、周方向に所定の幅で分割する。具体的には、分割部１５１は、設計情報記憶部１４１によって記憶された円形状導体の位置データに基づいて、基板上に配置された円形状導体の外形を形成する閉曲線を周方向に所定の幅のセグメントに分割する。例えば、分割部１５１は、配線層１〜４それぞれに配置されたすべての円形状導体の閉曲線を周方向に所定の幅のセグメントに分割する。なお、分割部１５１による円形状導体の閉曲線の分割は、どの層のどの位置から開始されてもよい。
【００４１】
図５は、実施例１に係る分割部１５１の処理を模式的に示す図である。図５においては、図５の（Ａ）が図４の（Ｃ）に対応する。例えば、図５の（Ａ）に示すように配線２１〜２３の位置が修正されると、分割部１５１は、ビアパッド１１の外円を周方向に所定の幅に分割する。すなわち、分割部１５１は、図５の（Ｂ）に示すように、ビアパッド１１の外円を周方向に複数のセグメントに分割する。ここで、図５の（Ｃ）は、図５の（Ｂ）に示すビアパッド１１を拡大した図を示す。図５の（Ｃ）に示すように、分割部１５１が分割した各セグメントにおける任意の位置の座標が原点６０として決定される。例えば、各セグメントの中点の座標が原点６０として決定される。
【００４２】
そして、分割部１５１は、各セグメントにビアＩＤ及びセグメントＩＤを付加して、原点を対応付けて移動データ記憶部１４３に格納する。例えば、分割部１５１は、図３に示すように、「ビアＩＤ１、セグメントＩＤ：配線層１、１」に「原点：（Ｘ1、Ｙ1）」を対応付けて移動データ記憶部１４３に格納する。同様に、分割部１５１は、配線層２〜４のビアパッド１２〜１４それぞれの外円を周方向に複数のセグメントに分割する。なお、ビアパッドの外円を分割する幅は、設計者によって任意に設定される。また、図５は、分割部１５１の処理を模式的に示すが、実際には、配線やビアパッドの座標のデータを用いた演算処理が実行されている。
【００４３】
図１に戻って、検出部１５２は、分割部１５１による配線の分割処理によって決定された原点の座標に基づいて、セグメントごとに他部品を検出する。具体的には、検出部１５２は、設計情報記憶部１４１によって記憶された設計情報に基づいて、原点の座標から所定の距離内に位置する配線やビアパッドなどの他部品を障害物として検出する。
【００４４】
図６は、実施例１に係る検出部１５２による処理を模式的に示す図である。図６においては、図６の（Ａ）が図５の（Ｂ）に対応する。また、図６の（Ｂ）においては、図６の（Ａ）のビアパッド１１及び配線２１を拡大した図を示す。図６に示す点６１は、ビアパッド１１に含まれるセグメントの原点を示す。また、図６の（Ｂ）に示す点６２は、ビアパッド１１の中心を示す。また、図６の（Ｂ）に示す線７１は、原点６１と中心６２とを通過する直線を示す。
【００４５】
例えば、図６の（Ａ）の原点６１を有するセグメントの障害物を検出する場合には、検出部１５２は、まず、原点６１と中心６２とを通過する直線を算出する。例えば、検出部１５２は、図６の（Ｂ）に示す直線７１を算出する。そして、検出部１５２は、算出した直線上で任意の距離内に位置する配線やビアパッドなどを障害物として検出する。例えば、検出部１５２は、配線２１を原点６１を有するセグメントの障害物として検出する。なお、図６は、検出部１５２の処理を模式的に示すが、実際には、配線やビアパッドの座標のデータを用いた演算処理が実行されている。
【００４６】
図１に戻って、算出部１５３は、分割部１５１によって分割された導体部分ごとに当該導体部分を複数の移動条件それぞれで半径方向に移動させた場合における各移動後の位置情報を算出する。また、算出部１５３は、多層基板において各層間を接続する各層の円形状導体ごとに、各移動後の位置情報を算出する。
【００４７】
具体的には、算出部１５３は、基板に係る設計基準に基づいて導体部分を半径方向に移動させた場合における移動後の位置情報を算出する。例えば、算出部１５３は、移動条件記憶部１４２によって記憶されたデザインルール情報に基づいて、分割部１５１が分割したセグメントの移動先候補を算出する。ここで、デザインルール情報に基づいて移動先候補を算出する場合には、算出部１５３は、まず、原点から障害物までの距離を算出する。そして、算出部１５３は、ビアパッドを拡大する方向に原点を移動した場合に、障害物との距離がデザインルールによって規定された距離よりも短くならない位置を移動先候補として算出する。図７は、実施例１に係るデザインルール情報に基づいた移動先候補算出の一例を模式的に示す図である。図７においては、図６に示す処理の後の状態を示す。すなわち、検出部１５２によって配線２１が原点６１を含むセグメントの障害物として検出された後の状態について示す。図７に示すように、算出部１５３は、線７１上における原点６１から障害物である配線２１までの距離を算出する。そして、算出部１５３は、配線２１からデザインルールで規定された距離８１を離した位置６３を移動先候補として算出する。なお、図７に示す矢印５１は、デザインルール情報に基づいてセグメントを移動する方向を指示す。
【００４８】
また、算出部１５３は、導体部分の半径方向に位置する障害物と当該導体部分との中点位置に導体部分を移動させた場合における移動後の位置情報を算出する。例えば、算出部１５３は、移動条件記憶部１４２によって記憶された均等位置情報に基づいて、セグメントの移動先候補を算出する。ここで、均等位置情報に基づいて移動先候補を算出する場合には、算出部１５３は、円形状導体の中心と原点とを通過する線上において、検出部１５２によって検出された障害物と原点とからの距離がそれぞれ等しい位置を移動先候補として算出する。図８は、実施例１に係る均等位置情報に基づいた移動先候補算出の一例を模式的に示す図である。図８においては、図７と同様に、検出部１５２によって配線２１が原点６１を含むセグメントの障害物として検出された後の状態について示す。例えば、図８に示すように、算出部１５３は、線７１上において、検出部１５２によって障害物として検出された配線２１からの距離８２が等しい位置６４を移動先候補として算出する。なお、図８に示す矢印５２は、均等位置情報に基づいてセグメントを移動する方向を指示す。
【００４９】
そして、算出部１５３は、分割部１５１によって分割された全てのセグメントに対して移動先候補を算出して、算出した移動先候補をセグメントＩＤに対応付けて移動データ記憶部１４３に格納する。例えば、算出部１５３は、図３に示すように、「ビアＩＤ：１、セグメントＩＤ：配線層１、１、原点：（Ｘ1，Ｙ1）、デザインルール：（Ｘ11，Ｙ11）、均等位置：（Ｘ12，Ｙ12）」を移動データ記憶部１４３に格納する。同様に、算出部１５３は、図３に示すように、分割部１５１によって分割された配線層１〜４の全てのセグメントに対して移動先候補を算出して、算出した移動先候補をセグメントＩＤに対応付けて移動データ記憶部１４３に格納する。なお、検出部１５２によって障害物が検出されなかったセグメントに対しては、算出部１５３は、原点から所定の距離を移動した位置を算出し、算出した位置の情報を移動データ記憶部１５３に格納する。例えば、算出部１５３は、ビアパッド１１の半径の１．５倍の距離を移動した位置を算出し、算出した位置の情報を移動データ記憶部１５３に格納する。なお、図７及び８は、算出部１５３の処理を模式的に示すが、実際には、配線やビアの座標のデータを用いた演算処理が実行されている。
【００５０】
図１に戻って、決定部１５４は、導体部分ごとに、算出部１５３によって算出された移動先候補の中から移動距離が最短となる移動先候補を抽出し、抽出した移動先候補を導体部分の移動先として決定する。
【００５１】
具体的には、決定部１５４は、移動データ記憶部１４３によって記憶された各層のセグメントごとに、原点から移動先候補それぞれまでの移動距離を算出する。そして、決定部１５４は、算出した移動距離が最短である移動先候補を抽出し、抽出した移動先候補を移動先として決定する。そして、決定部１５４は、決定した移動先を移動データ記憶部１４３に格納する。例えば、決定部１５４は、図３に示す「ビアＩＤ：１、セグメントＩＤ：配線層１、１」の移動先候補の中から「原点：（Ｘ1，Ｙ1）」からの移動距離が最短となる「均等位置：（Ｘ12，Ｙ12）」を「セグメントＩＤ：層１、１」のセグメントの移動先と決定する。そして、決定部１５４は、図３に示すように、決定した移動先「（Ｘ12，Ｙ12）」を移動データ記憶部１４３に格納する。同様に、決定部１５４は、図３に示すように、「ビアＩＤ：１、セグメントＩＤ：配線層１、２」以降の配線層１のビアパッドの全てのセグメントの移動先を決定して、移動データ記憶部１４３に格納する。
【００５２】
また、決定部１５４は、算出部１５３によって算出された各移動後の位置情報の中から移動距離が最短となる位置情報を各層ごとに抽出する。例えば、決定部１５４は、図３に示すように、配線層２〜４のビアパッドの全てのセグメントの移動先を決定して、移動データ記憶部１４３に格納する。
【００５３】
そして、決定部１５４は、抽出した位置情報によって形成された各層ごとの閉曲線を重畳させた場合の重複領域に内接する円上に前記導体部分の移動先を決定する。具体的には、決定部１５４は、各層ごとに決定した各セグメントの移動先によって形成される層ごとの閉曲線を重畳させた重複領域の内接円に円形状導体が形成されるように移動先を再度決定する。
【００５４】
図９は、実施例１に係る決定部１５４による閉曲線の重畳処理の一例を模式的に示す図である。図９においては、図４に示す配線層１〜４のビアパッド１１〜１４の各セグメントの移動先を決定した後の処理について示す。図９の（Ａ）に示すビアパッド１１のように、ビア１０１に係るビアパッド１１〜１４の全てのセグメントの移動先を決定すると、決定部１５４は、決定したビアパッドのセグメントを移動先に移動した場合に形成される閉曲線を配線層ごとに算出する。例えば、決定部１５４は、図４に示す配線層１〜４のビアパッド１１〜１４の閉曲線を算出する。そして、決定部１５４は、配線層ごとに算出した閉曲線をセグメントの座標に基づいて重畳した場合の重複領域であるＡｎｄ形状を抽出する。例えば、決定部１５４は、図９の（Ｂ）に示すように、ビアパッド１１〜１４の閉曲線をセグメントの座標に基づいて重畳した場合のＡｎｄ形状１５を抽出する。
【００５５】
その後、決定部１５４は、抽出したＡｎｄ形状を所定量ずつ縮小するオフセット（offset）を実行することでＡｎｄ形状の中心を算出する。具体的には、決定部１５４は、抽出したＡｎｄ形状が任意のサイズの矩形内に収まる大きさになるまで、Ａｎｄ形状を段階的に縮小する。そして、決定部１５４は、Ａｎｄ形状が任意のサイズの矩形内に収まる大きさになった場合に、該矩形の中心をＡｎｄ形状の中心として算出する。そして、決定部１５４は、算出した中心に基づいた内接円を算出する。図１０は、実施例１に係る決定部１５４による内接円の算出の一例を模式的に示す図である。例えば、決定部１５４は、図１０の（Ａ）に示すように、Ａｎｄ形状１５に対してオフセットを実行することにより、Ａｎｄ形状１５を同一の形状で段階的に縮小する。そして、決定部１５４は、図１０の（Ｂ）に示すように、Ａｎｄ形状を所定のサイズの矩形内に収まるまで段階的に縮小する。そして、決定部１５４は、Ａｎｄ形状１５が矩形内に収まった場合に、矩形の中心６５をＡｎｄ形状１５の中心として算出する。
【００５６】
その後、決定部１５４は、算出した中心を中心とし、Ａｎｄ形状に内接する円を算出する。例えば、決定部１５４は、図１０の（Ｃ）に示すように、中心６５を中心とした内接円１６を算出する。そして、決定部１５４は、Ａｎｄ形状の抽出に用いた閉曲線に含まれるセグメントの移動先を、算出した内接円の外周の座標に再度決定して、移動データ記憶部１４３に格納する。例えば、決定部１５４は、図３に示すように、「ビアＩＤ：１、セグメントＩＤ：配線層１、１」の移動先として移動データ記憶部１４３に格納された「（Ｘ12，Ｙ12）」を内接円１６の外周の座標に更新する。同様に、決定部１５４は、移動データ記憶部１４３によって記憶された「ビアＩＤ：１」の配線層１〜４のビアパッドの全てのセグメントの移動先を内接円１６の外周の座標に更新する。なお、図９及び１０は、決定部１５４の処理を模式的に示すが、実際には、ビアパッドの座標のデータを用いた演算処理が実行されている。なお、上述した例では、オフセットを用いて中心を算出する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、Ａｎｄ形状に接する矩形を用いて中心を算出する場合であってもよい。
【００５７】
図１に戻って、データ処理部１５５は、移動データ記憶部１４３によって記憶された移動データに基づいて、設計情報記憶部１４１が記憶する設計情報を更新する。例えば、データ処理部１５５は、設計情報記憶部１４１によって記憶されたビアパッドの座標データを移動データ記憶部１４３によって記憶された移動先の座標に更新する。そして、データ処理部１５５は、ビアパッドの修正を所定の回数実行したか否かを判定する。
【００５８】
ここで、ビアパッドの修正が所定の回数実行されていない場合には、データ処理部１５５は、移動データ記憶部１４３によって記憶された移動データを初期化する。そして、データ処理部１５５は、分割部１５１、検出部１５２、算出部１５３及び決定部１５４に対して、再度、ビアパッドの修正に係る処理を実行させる。
【００５９】
一方、ビアパッドの修正が所定の回数実行された場合には、データ処理部１５５は、設計情報記憶部１４１によって記憶された修正後の設計情報を用いてビアパッドや配線の修正後の状態を表示部１３０に表示させる。なお、ビアパッドの修正を行う所定の回数は、例えば、設計者や利用者などにより任意の回数が設定される。
【００６０】
図１１は、実施例１に係るデータ処理部１５５による処理の一例を模式的に示す図である。例えば、データ処理部１５５は、図１１の（Ａ）に示すように、設計情報記憶部１４１によって記憶された修正後の座標を用いて、内接円１６上に配置されることで拡大されたビアパッドや位置が修正された配線２１〜２３を表示部１３０に表示させる。
【００６１】
また、データ処理部１５５は、ビアパッドや配線の修正が終了した場合に、更新した設計情報に基づいて、基板設計に係る他の部品を再配置する。例えば、データ処理部１５５は、図１１の（Ｂ）に示すように、引き込み配線２４やティアドロップ２５をビアパッド上に再配置する。なお、上述した処理を経て更新された設計情報を用いて半導体パッケージの製造工程であるエッチング処理が実行される。
【００６２】
［実施例１に係る基板設計装置による修正処理の手順］
次に、実施例１に係る基板設計装置１００による修正処理の手順を説明する。図１２は、実施例１に係る基板設計装置１００による修正処理の手順を示すフローチャートである。なお、図１２においては、配線間の距離の修正が実行された後の処理について示すが、開示の技術はこれに限定されるものではなく、例えば、ビアパッドの修正を実行した後に配線の修正を実行する場合であってもよい。図１２に示すように、実施例１に係る基板設計装置１００においては、修正処理の実行コマンドである開始コマンドが実行されると、まず、分割部１５１は、設計情報記憶部１４１によって記憶された設計情報を参照してビアを選択する（ステップＳ１０１）。続いて、分割部１５１は、選択したビアに含まれるビアパッドを選択する（ステップＳ１０２）。その後、分割部１５１は、ビアパッドの外円をｎ個のセグメントに分割する（ステップＳ１０３）。具体的には、分割部１５１は、設計情報記憶部１４１によって記憶されたビアパッドの位置データに基づいて、ビアパッドの外円を周方向に所定の幅のセグメントに分割する。
【００６３】
そして、検出部１５２は、Ｐ＝１として（ステップＳ１０４）、１個目のセグメントに対して障害物検出の処理を実行する（ステップＳ１０５）。ここで、障害物が検出された場合には（ステップＳ１０５肯定）、算出部１５３は、デザインルール及び均等位置での移動先候補を算出する（ステップＳ１０６）。その後、決定部１５４は、算出部１５３によって算出された移動先候補から移動距離が最短の移動先候補を抽出して、抽出した移動先候補を移動先として決定する（ステップＳ１０７）。
【００６４】
一方、障害物が検出されなかった場合には（ステップＳ１０５否定）、算出部１５３は、所定の距離をとった位置を算出して、決定部１５４は、算出された位置を移動先として決定する（ステップＳ１０８）。その後、決定部１５４は、Ｐ＝ｎか否かを判定する（ステップＳ１０９）。すなわち、決定部１５４は、全てのセグメントに対して処理したか否かを判定する。
【００６５】
ここで、Ｐ＝ｎではない場合には（ステップＳ１０９否定）、検出部１５２は、Ｐに１を加算（Ｐ＝Ｐ+１）して（ステップＳ１１０）、次のセグメントに対して障害物検出の処理を実行する（ステップＳ１０５）。一方、Ｐ＝ｎである場合には（ステップＳ１０９肯定）、決定部１５４は、分割部１５１によって選択されたビアに含まれる全配線層のビアパッドのセグメントの移動先を決定したか否かを判定する（ステップＳ１１１）。
【００６６】
ここで、分割部１５１によって選択されたビアに含まれる全配線層のビアパッドのセグメントの移動先を決定していない場合には（ステップＳ１１１否定）、ステップＳ１０２に戻って、分割部１５１は、ビアパッドを選択する。一方、全配線層のビアパッドのセグメントの移動先を決定した場合には（ステップＳ１１１肯定）、決定部１５４は、ビアパッドごとに、ビアパッドの外形を形成する閉曲線を算出して、算出した複数の閉曲線のＡｎｄ形状を抽出する（ステップＳ１１２）。そして、決定部１５４は、抽出したＡｎｄ形状の中心を決定して、内接円を新たな移動先として決定して（ステップＳ１１３）、移動データ記憶部１４３によって記憶された移動データを更新する。その後、データ処理部１５５は、設計情報記憶部１４１によって記憶された設計情報を移動データ記憶部１４３によって記憶された移動データに更新することで、ビアパッドを拡大方向に修正する（ステップＳ１１４）。
【００６７】
続いて、データ処理部１５５は、全てのビアを処理したか否かを判定する（ステップＳ１１５）。ここで、全てのビアを処理していない場合には（ステップＳ１１５否定）、ステップＳ１０１に戻って、分割部１５１は、設計情報記憶部１４１によって記憶された設計情報を参照してビアを選択する。一方、全てのビアを処理している場合には（ステップＳ１１５肯定）、データ処理部１５５は、ビアパッドの修正を設計者や操作者などにより設定された回数実行したか否かを判定する（ステップＳ１１６）。
【００６８】
ここで、設定された回数実行していない場合には（ステップＳ１１６否定）、データ処理部１５５は、移動データ記憶部１４３によって記憶された移動データを初期化した後に（ステップＳ１１７）、ステップＳ１０１に戻って、再度、修正処理を実行させる。一方、設定された回数実行した場合には（ステップＳ１１６肯定）、基板設計装置１００は、修正処理を終了する。
【００６９】
［実施例１の効果］
上述したように、実施例１によれば、設計情報記憶部１４１は、基板に設けられるビアパッドに係る位置情報を少なくとも記憶する。そして、算出部１５３は、位置情報から定まるビアパッドの外形を形成する閉曲線を周方向に所定の幅で分割して得られるセグメントごとに当該セグメントを複数の移動条件それぞれで半径方向に移動させた場合における各移動後の移動先候補を算出する。そして、決定部１５４は、セグメントごとに、算出部１５３によって算出された各移動後の移動先候補の中から移動距離が最短となる移動先候補を抽出し、抽出した移動先候補をセグメントの移動先として決定する。従って、実施例１に係る基板設計装置１００は、複数の移動条件を用いて移動先を決定することができ、ビアパッドの修正に係るミスを低減し、基板の歩留まりを向上させることを可能にする。
【００７０】
例えば、実施例１に係る基板設計装置１００は、従来、設計者が自身の空間把握能力とＣＡＤシステムの測長機能と配線移動機能とを用いて手作業で行っていたビアパッドを拡大する修正をシステム化することを可能にする。すなわち、実施例１に係る基板設計装置１００は、設計されたビアパッドが小さく貫通孔がビアパッド内におさまらないなどの不良を回避するためのビアパッド拡大の修正を確実に行うことができ、基板の歩留まりを向上させることを可能にする。なお、ＣＡＤシステムの測長機能とは、配線やビアパッドなどの座標データに基づいて配線間や配線とビアパッドとの間の距離を測定する機能である。また、ＣＡＤシステムの移動機能とは、設計者の入力操作に基づいて、ＣＡＤシステムにより設計された配線やビアパッドを移動させる機能である。
【００７１】
また、実施例１によれば、算出部１５３は、多層基板において各層間を接続する各層のビアパッドごとに、各移動後の位置情報を算出する。そして、決定部１５４は、各移動後の位置情報の中から移動距離が最短となる位置情報を各層ごとに抽出し、抽出した位置情報によって形成された各層ごとの閉曲線を重畳させた場合の重複領域に内接する円上にセグメントの移動先を決定する。従って、実施例１に係る基板設計装置１００は、複数の層に跨って設計されるビアなどに対しても、ビアパッドを拡大する修正を確実に行うことができ、基板の歩留まりをより向上させることを可能にする。
【００７２】
また、実施例１によれば、算出部１５３は、基板に係るデザインルールに基づいてセグメントを半径方向に移動させた場合における移動後の移動先候補を算出する。また、算出部１５３は、セグメントの半径方向に位置する障害物と当該セグメントとの中点位置にセグメントを移動させた場合における移動後の移動先候補を算出する。従って、実施例１に係る基板設計装置１００は、製造上遵守する規定に従いつつ、障害物との距離のバランスがとれた適切な位置にビアを配置することを可能にする。
【実施例２】
【００７３】
［実施例２に係る基板設計装置の構成］
上述した実施例１では、障害物が配線である場合のビアパッドの修正について説明した。実施例２では、同一層上でビアパッドが隣接する場合のビアパッドの修正について説明する。まず、実施例２に係る基板設計装置の構成について説明する。図１３は、実施例２に係る基板設計装置２００の構成を示す図である。実施例２に係る基板設計装置２００は、図１３に示すように、実施例１に係る基板設計装置１００と比較して、移動条件記憶部２４２及び移動データ記憶部２４３によって記憶されるデータと、算出部２５３及び決定部２５４による処理内容とが異なる。以下、これらを中心に説明する。
【００７４】
移動条件記憶部２４２は、ビアパッド間移動距離情報を記憶する。なお、ビアパッド間移動距離情報とは、他のビアパッドとセグメントとの距離からデザインルールに基づく距離を減算し、減算後の距離を２等分した距離だけセグメントを移動させる旨の条件である。
【００７５】
移動データ記憶部２４３は、後述する算出部２５３によってビアパッド間移動距離情報に基づいて算出された移動先候補を記憶する。図１４は、実施例２に係る移動データ記憶部２４３によって記憶される情報の例を示す図である。図１４に示すように、移動データ記憶部２４３は、セグメントＩＤ、原点、移動先候補及び移動先をビアＩＤに対応付けた移動データを記憶する。また、移動データ記憶部２４３は、図１４に示すように、移動先候補としてデザインルール及び均等位置に加えてビアパッド間移動距離をセグメントＩＤに対応付けた移動データを記憶する。
【００７６】
ここで、図１４に示すビアパッド間移動距離とは、セグメントをビアパッド間移動距離情報に基づいて移動させた場合の移動後の位置の座標を示す。例えば、移動データ記憶部２４３は、図１４に示すように、「ビアＩＤ：１７、セグメントＩＤ：配線層１、１」に対応付けて「原点：（Ｘ4，Ｙ4）」、「移動先候補、デザインルール：−」、「移動先候補、均等位置：−」、「ビアパッド間移動距離：（Ｘ41，Ｙ41）」を記憶する。また、移動データ記憶部２４３は、図１４に示すように、「ビアＩＤ：１７、セグメントＩＤ：配線層１」に対応付けて「移動先：（Ｘ41，Ｙ41）」を記憶する。同様に、移動データ記憶部２４３は、図１４に示すように、「ビアＩＤ：１７、セグメントＩＤ：配線層１、２」及び「ビアＩＤ：１７、セグメントＩＤ：配線層１、３」それぞれに「原点」、「移動先候補」及び「移動先」を対応付けて記憶する。
【００７７】
また、移動データ記憶部１４３は、図１４に示すように、「ビアＩＤ：１８、セグメントＩＤ：配線層１、１」に対応付けて「原点：（Ｘ7，Ｙ7）」、「デザインルール：−」、「均等位置：−」、「ビアパッド間移動距離：（Ｘ71，Ｙ71）」を記憶する。また、移動データ記憶部２４３は、図１４に示すように、「ビアＩＤ：１８、セグメントＩＤ：配線層１、１」に対応付けて「移動先：（Ｘ71，Ｙ71）」を記憶する。同様に、移動データ記憶部２４３は、図１４に示すように、「ビアＩＤ：１８、セグメントＩＤ：配線層１、２」及び「ビアＩＤ：１８、セグメントＩＤ：配線層１、３」それぞれに「原点」、「移動先候補」及び「移動先」を対応付けて記憶する。なお、図１４に示す「−」は、座標のデータが記憶されていないことを示す。
【００７８】
図１３に戻って、算出部２５３は、半径方向に障害物がなく他の円形状導体が位置する場合に、前記半径方向に障害物がなく他の円形状導体が位置する場合に、当該他の円形状導体と前記導体部分との距離から前記設計基準に基づく距離を減算し、減算後の距離を２等分した距離だけ前記導体部分を移動させた場合における移動後の位置情報を算出する。具体的には、算出部２５３は、移動条件記憶部２４２によって記憶されたビアパッド間移動距離情報に基づいて、セグメントの移動先候補を算出する。ここで、ビアパッド間移動距離情報に基づいて移動先候補を算出する場合には、算出部２５３は、まず、セグメントから障害物までの距離を算出する。そして、算出部２５３は、算出した距離からデザインルールによって規定された距離を減算した後、２等分した距離だけ移動させた位置を移動先候補として算出する。
【００７９】
図１５は、実施例２に係るビアパッド間移動距離情報に基づいた移動先候補算出の一例を模式的に示す図である。図１５においては、同一層にビアパッドが隣接した状態の移動先候補算出の例について示す。例えば、図１５の（Ａ）に示すように「ビアＩＤ：１８」のビアパッド１８と「ビアＩＤ：１７」のビアパッド１７とが隣接している場合には、算出部２５３は、まず、図１５の（Ｂ）に示すように、ビアパッド１７とビアパッド１８との距離８３を算出する。そして、算出部２５３は、算出した距離８３からデザインルールによって規定された距離８４を減算した距離８５を算出する。さらに、算出部２５３は、算出した距離８５の中点６８と、セグメントから中点までの距離８６を算出する。
【００８０】
すなわち、算出部２５３は、図１５の（Ｃ）に示すように、ビアパッド１７の原点６６を半径方向に移動させる距離８６を決定する。そして、算出部２５３は、原点６６を半径方向に距離８６を移動させた位置６８を移動先候補として算出する。なお、図１５に示す矢印５３は、ビアパッド間移動距離情報に基づいてセグメントを移動する方向を指示する。そして、算出部２５３は、ビアパッド１７及びビアパッド１８の全てのセグメントに対してビアパッド間移動距離に基づいた移動先候補を算出し、算出した移動先候補を移動データ記憶部２４３に格納する。
【００８１】
例えば、算出部２５３は、図１４に示すように、「ビアＩＤ：１７、セグメントＩＤ：配線層１、１」に対応付けて「原点：（Ｘ4，Ｙ4）」、「デザインルール：−」、「均等位置：−」、「ビアパッド間移動距離：（Ｘ41，Ｙ41）」を移動データ記憶部２４３に格納する。同様に、算出部２５３は、図１４に示すように、分割部１５１によって分割されたビアパッド１７及びビアパッド１８のセグメントに対して移動先候補を算出して、算出した移動先候補をセグメントＩＤに対応付けて移動データ記憶部２４３に格納する。なお、図１５は、算出部２５３の処理を模式的に示すが、実際には、配線やビアの座標のデータを用いた演算処理が実行されている。
【００８２】
上述したように、算出部２５３は、障害物としてビアパッドのみが検出された場合には、デザインルール情報及び均等位置情報に基づいた移動先候補の算出は行わず、ビアパッド間移動距離情報に基づく移動先候補の算出のみを実行する。従って、決定部２５４は、移動データ記憶部２４３によって記憶されたビアパッド間移動距離情報に基づく移動先候補をセグメントごとの移動先として決定することとなる。すなわち、図１５の（Ａ）に示すように同一配線層にビアパッドが隣接するような場合には、実施例２に係る基板設計装置２００は、図１５の（Ｄ）に示すように、ビアパッド１７とビアパッド１８とをビアパッド間移動距離情報に基づいて拡大する修正を実行することとなる。
【００８３】
［実施例２に係る基板設計装置による修正処理の手順］
次に、実施例２に係る基板設計装置２００による修正処理の手順を説明する。図１６は、実施例２に係る基板設計装置２００による修正処理の手順を示すフローチャートである。なお、図１６においては、配線間の距離の修正が実行された後の処理について示すが、開示の技術はこれに限定されるものではなく、例えば、ビアパッドの修正を実行した後に、配線の修正を実行する場合であってもよい。図１６に示すように、実施例２に係る基板設計装置２００においては、修正処理の実行コマンドである開始コマンドが実行されると、分割部１５１は、設計情報記憶部１４１によって記憶された設計情報を参照してビアを選択する（ステップＳ２０１）。続いて、分割部１５１は、設計情報を参照してビアパッドを選択する（ステップＳ２０２）。そして、分割部１５１は、ビアパッドの外円をｎ個のセグメントに分割する（ステップＳ２０３）。
【００８４】
その後、検出部１５２は、ｐ＝１として（ステップＳ２０４）、１個目のセグメントに対して障害物検出の処理を実行する（ステップＳ２０５）。ここで、障害物を検出すると（ステップＳ２０５肯定）、検出部１５２は、障害物がビアパッドであるか否かを判定する（ステップＳ２０６）。ここで、障害物がビアパッドではない場合には（ステップＳ２０６否定）、算出部２５３は、デザインルール及び均等位置での移動先候補を算出する（ステップＳ２０７）。一方、障害物がビアパッドである場合には（ステップＳ２０６肯定）、算出部２５３は、ビアパッド間移動距離での移動先候補を算出する（ステップＳ２０８）。その後、決定部２５４は、算出部２５３によって算出された移動先候補から、移動距離が最短となる移動先候補を抽出して、抽出した移動先候補を移動先として決定する（ステップＳ２０９）。
【００８５】
一方、障害物が検出されなかった場合には（ステップＳ２０５否定）、算出部２５３は、所定の距離をとった位置を算出して、決定部２５４は、算出された位置を移動先として決定する（ステップＳ２１０）。その後、決定部２５４は、Ｐ＝ｎか否かを判定する（ステップＳ２１１）。ここで、Ｐ＝ｎではない場合には（ステップＳ２１１否定）、検出部１５２は、Ｐに１を加算（Ｐ＝Ｐ+１）して（ステップＳ２１２）、次のセグメントに対して障害物検出の処理を実行する（ステップＳ２０５）。一方、Ｐ＝ｎである場合には（ステップＳ２１１肯定）、決定部２５４は、分割部１５１によって選択されたビアに含まれる全配線層のビアパッドのセグメントの移動先を決定したか否かを判定する（ステップＳ２１３）。
【００８６】
ここで、分割部１５１によって選択されたビアに含まれる全配線層のビアパッドのセグメントの移動先を決定していない場合には（ステップＳ２１３否定）、ステップＳ２０２に戻って、分割部１５１は、ビアパッドを選択する。一方、全配線層のビアパッドのセグメントの移動先を決定した場合には（ステップＳ２１３肯定）、決定部２５４は、ビアパッドごとに、ビアパッドの外形を形成する閉曲線を算出し、算出した複数の閉曲線のＡｎｄ形状を抽出する（ステップＳ２１４）。そして、決定部２５４は、抽出したＡｎｄ形状の中心を決定して、内接円を新たな移動先として決定して（ステップＳ２１５）、移動データ記憶部１４３によって記憶された移動データを更新する。その後、データ処理部１５５は、設計情報記憶部１４１によって記憶された設計情報を移動データ記憶部１４３によって記憶された移動データに更新することで、ビアパッドを拡大方向に修正する（ステップＳ２１６）。続いて、データ処理部１５５は、全てのビアを処理したか否かを判定する（ステップＳ２１７）。
【００８７】
ここで、全てのビアを処理していない場合には（ステップＳ２１７否定）、ステップＳ２０１に戻って、分割部１５１は、設計情報記憶部１４１によって記憶された設計情報を参照してビアを選択する。一方、全てのビアを処理している場合には（ステップＳ２１７肯定）、データ処理部１５５は、ビアパッドの修正を設定された回数実行したか否かを判定する（ステップＳ２１８）。
【００８８】
ここで、設定された回数実行していない場合には（ステップＳ２１８否定）、データ処理部１５５は、移動データ記憶部１４３によって記憶された移動データを初期化した後に（ステップＳ２１９）、ステップＳ２０１に戻って、再度、修正処理を実行させる。一方、設定された回数実行した場合には（ステップＳ２１８肯定）、基板設計装置１００は、修正処理を終了する。
【００８９】
［実施例２の効果］
上述したように、実施例２によれば、算出部２５３は、半径方向に障害物がなく、他のビアパッドが位置する場合に、当該他のビアパッドとセグメントとの距離からデザインルールに基づく距離を減算し、減算後の距離を２等分した距離だけセグメントを移動させた場合における移動後の位置情報を算出する。従って、実施例２に係る基板設計装置２００は、デザインルールを考慮しつつ、隣接するビアパッドの双方を均等に修正することを可能にする。例えば、実施例２に係る基板設計装置２００は、ビアパッドが隣接している場合に、一方のビアパッドのみが拡大することを防止し、双方のビアパッドをバランスよく拡大することを可能にする。
【実施例３】
【００９０】
これまでいくつかの実施例を説明したが、本願が開示する技術はこれらの実施例に限定されるものではない。すなわち、これらの実施例は、その他の様々な形態で実施されることが可能であり、種々の省略、置き換え、変更を行うことができる。
【００９１】
上述した実施例１では、多層基板の配線層１〜４に設計されたビアパッドを修正する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、一層である単一の基板上に設計されたボンディングパッドを修正する場合であってもよい。係る場合には、セグメントごとに、各移動条件に基づいて算出された移動先候補の中から移動距離が最短となる移動先候補を移動先として抽出する。そして、全てのセグメントの移動先の中からボンディングパッドの中心との距離が最短となる移動先を抽出する。その後、ボンディングパッドの中心と抽出した移動先との距離を半径とした円を算出し、算出した円の外周をボンディングパッドのセグメントの最終的な移動先として決定する。
【００９２】
さらに、単一の基板上に複数のボンディングパッドが設計された場合には、各ボンディングパッドについて、上記した修正を実行して、各ボンディングパッドのセグメントの移動先を決定する。その後、複数のボンディングパッドの中から半径が最小となるボンディングパッドを抽出する。そして、抽出したボンディングパッドの半径を基板上に設計されたすべてのボンディングパッドの半径として決定する。そして、各ボンディングパッドの半径が決定した半径になるように、セグメントの最終的な移動先を決定する。すなわち、同一基板上で同一サイズのボンディングパッドを形成する際に、最大のボンディングパッドを形成することが可能となる。
【００９３】
また、上述した実施例１及び２では、半導体パッケージに係る基板のビアパッドを修正する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、ＣＡＤシステムによって設計される配線基板であればどのようなものであってもよい。例を挙げると、開示の技術は、インポーザやＴＳＶ（Through-Silicon  Via）を設計する場合に用いられてもよい。係る場合には、インポーザやＴＳＶなどで層間の貫通電極を形成することになるが、上記説明したビアパッドと同様の拡大方法により貫通電極の直径を拡大する。
【００９４】
また、上述した実施例１及び２では、円形状導体として円形のビアパッドを用いる場合意ついて説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、楕円形の導体を用いる場合であってもよい。
【００９５】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示された構成要素と同一であることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１に示す分割部１５１と検出部１５２とを一つの処理部として統合してもよい。また、一方で、図１に示す検出部１５２を、距離を算出する距離算出部と、距離算出部によって算出された距離に基づいて障害物を検出する検出部とに分散してもよい。
【００９６】
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。例えば、図１６における障害物がビアであるか否かの判定を手動で行ってもよい。一方、手動的に行われるとして説明した処理の全部または一部を自動的に行うこともできる。例えば、図１２における開始コマンドの実行を自動で行うこともできる。また、設計情報記憶部１４１を基板設計装置１００の外部装置としてネットワーク経由で接続するようにしてもよい。また、設計情報記憶部１４１を別の装置が有し、ネットワークに接続されて協働することで、上記した基板設計装置１００の機能を実現するようにしてもよい。
【００９７】
［配線設計プログラム］
ところで、上記実施例１及び２では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、開示の技術はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行するようにしてもよい。そこで、以下では、図１７を用いて上記実施例１に示した基板設計装置１００と同様の機能を有する配線設計プログラムを実行するコンピュータの一例を説明する。図１７は、実施例３に係る基板設計プログラムを実行するコンピュータを示す図である。
【００９８】
図１７に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０とを有する。また、図１７に示すように、コンピュータ１０００は、例えば、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００９９】
メモリ１０１０は、図１７に示すように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１７に示すように、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、図１７に示すように、ディスクドライブ１１００に接続される。例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、図１７に示すように、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、図１７に示すように、例えばディスプレイ１１３０に接続される。
【０１００】
ここで、図１７に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、配線設計プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクに記憶される。具体的には、分割部１５１と同様の情報処理を実行する分割手順と、検出部１５２と同様の情報処理を実行する検出手順と、算出部１５３と同様の情報処理を実行する算出手順とが記述されたプログラムモジュールが、ハードディスクに記憶される。また、決定部１５４と同様の情報処理を実行する決定手順と、データ処理部１５５と同様の情報処理を実行するデータ処理手順とが記述されたプログラムモジュールが、ハードディスクに記憶される。
【０１０１】
また、設計情報記憶部１４１に記憶されるデータのように、配線設計プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えばハードディスクに記憶される。そして、ＣＰＵ１０２０が、ハードディスクに記憶されたプログラムモジュールやプログラムデータを必要に応じてＲＡＭ１０１２に読み出し、分割手順、検出手順、算出手順、決定手順、データ処理手順を実行する。
【０１０２】
なお、配線設計プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、配線設計プログラムに係るプログラムモジュールやプログラムデータは、ネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェースを介してＣＰＵ１０２０によって読み出されてもよい。ネットワークとしては、例えば、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）などが挙げられる。
【符号の説明】
【０１０３】
１００、２００  基板設計装置
１４１  設計情報記憶部
１４２、２４２  移動条件記憶部
１４３、２４３  移動データ記憶部
１５１  分割部
１５２  検出部
１５３、２５３  算出部
１５４、２５４  決定部
【図１】
0005526016.tif 000002
【図２】
0005526016.tif 000003
【図３】
0005526016.tif 000004
【図４】
0005526016.tif 000005
【図５】
0005526016.tif 000006
【図６】
0005526016.tif 000007
【図７】
0005526016.tif 000008
【図８】
0005526016.tif 000009
【図９】
0005526016.tif 000010
【図１０】
0005526016.tif 000011
【図１１】
0005526016.tif 000012
【図１２】
0005526016.tif 000013
【図１３】
0005526016.tif 000014
【図１４】
0005526016.tif 000015
【図１５】
0005526016.tif 000016
【図１６】
0005526016.tif 000017
【図１７】
0005526016.tif 000018
【図１８】
0005526016.tif 000019