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