(57)【要約】【課題】  スキャンパスの端子位置として、スキャンパス総配線長を短縮するための最適な配置位置を得られない。【解決手段】  レイアウト情報を参照して各マクロのスキャンイン端子およびスキャンアウト端子の仮配置位置の決定を行い、当該決定に基づいてレイアウト情報を更新し、スキャンイン外部端子および複数のマクロについて、更新されたレイアウト情報とスキャンパス接続情報とを参照して、スキャンイン外部端子を始点に順次最も近い距離に配置されているマクロを接続するようにスキャンパス接続情報を更新し、更新されたレイアウト情報と更新されたスキャンパス接続情報とを参照して、スキャンパス総配線長が最も短くなるようにスキャンパス接続順の決定を行い、当該決定に基づいて更新されたスキャンパス接続情報をさらに更新するスキャンパス付替部とを有する。【選択図】      図１
2010160598.tif 000002
【特許請求の範囲】
【請求項１】
集積回路内のレイアウトを示すレイアウト情報を記憶するレイアウト情報記憶部と、
集積回路内のスキャンパス情報を示すスキャンパス接続情報を記憶するスキャンパス接続情報記憶部と、
前記レイアウト情報を参照して各マクロのスキャンイン端子およびスキャンアウト端子の仮配置位置の決定を行い、当該決定に基づいて前記レイアウト情報を更新するマクロ信号端子位置決定部と、
スキャンイン外部端子および複数の前記マクロについて、前記マクロ信号端子位置決定部により更新されたレイアウト情報と前記スキャンパス接続情報とを参照して、前記スキャンイン外部端子を始点に順次最も近い距離に配置されている前記マクロを接続するように前記スキャンパス接続情報を更新する初期スキャンパス経路決定部と、
前記マクロ信号端子位置決定部により更新されたレイアウト情報と前記初期スキャンパス経路決定部により更新されたスキャンパス接続情報とを参照して、スキャンパス総配線長が最も短くなるようにスキャンパス接続順の決定を行い、当該決定に基づいて前記初期スキャンパス経路決定部により更新されたスキャンパス接続情報を更新するスキャンパス付替部と
を有することを特徴とする集積回路設計装置。
【請求項２】
前記マクロのスキャンイン端子およびスキャンアウト端子を仮配置する位置は、各前記マクロ内の当該マクロの重心位置である
ことを特徴とする請求項１記載の集積回路設計装置。
【請求項３】
前記マクロのスキャンイン端子およびスキャンアウト端子を仮配置する位置は、各前記マクロ内の当該マクロの中心位置である
ことを特徴とする請求項１記載の集積回路設計装置。
【請求項４】
前記初期スキャンパス経路決定部は、前記スキャンイン外部端子、前記スキャンアウト外部端子および各前記マクロ間の互いの距離についてそれぞれ最短距離の値を算出し、算出した最短距離の値に基づいて、最初に前記スキャンイン外部端子から最も近い前記マクロを選択し、前記選択したマクロから一番近くかつ未選択の前記マクロを順次選択し、前記スキャンイン外部端子、前記選択された順の各前記マクロおよび前記スキャンアウト外部端子をこれらの順に接続するようにスキャンパス接続情報を更新する
ことを特徴とする請求項１乃至３のいずれかに記載の集積回路設計装置。
【請求項５】
スキャンパス付替部は、前記初期スキャンパス経路決定部により決定されたスキャンパス接続情報に基づいて第１スキャンパス総配線長を算出する総配線長算出部と、
当該第１スキャンパス総配線長を第２スキャンパス総配線長として採用する総配線長選択部とを含み、
前記総配線長算出部は、更に前記スキャンパス接続情報のうちの任意の前記マクロのスキャンパス接続順を入れ替えた場合の第３スキャンパス総配線長を算出し、
前記総配線長選択部は、更に前記第２スキャンパス総配線長と前記第３スキャンパス総配線長とのうちの短いほうを新たな第２スキャンパス総配線長として採用し、
算出した前記第３スキャンパス総配線長が前記第１スキャンパス総配線長の所定の割合以下である場合の前記スキャンパス接続順をスキャンパス総配線長が最も短くなるスキャンパス接続順であると決定する
ことを特徴とする請求項１乃至４のいずれかに記載の集積回路設計装置。
【請求項６】
スキャンパス付替部は、前記初期スキャンパス経路決定部により決定されたスキャンパス接続情報に基づいて第１スキャンパス総配線長を算出する総配線長算出部と、
当該第１スキャンパス総配線長を第２スキャンパス総配線長として採用する総配線長選択部とを含み、
前記総配線長算出部は、更に前記スキャンパス接続情報のうちの任意の前記マクロのスキャンパス接続順を入れ替えた場合の第３スキャンパス総配線長を算出し、
前記総配線長選択部は、更に前記第２スキャンパス総配線長と前記第３スキャンパス総配線長とのうちの短いほうを新たな第２スキャンパス総配線長として採用し、
前記第３スキャンパス総配線長の算出を所定の回数実行した場合の前記新たな第２スキャンパス総配線長に対応する前記スキャンパス接続順をスキャンパス総配線長が最も短くなるスキャンパス接続順であると決定する
ことを特徴とする請求項１乃至４のいずれかに記載の集積回路設計装置。
【請求項７】
集積回路内の論理接続を示す論理接続情報を記憶する論理接続情報記憶部と、
前記論理接続情報および前記レイアウト情報を参照して、各前記マクロの全ての一般信号端子について端子間の接続配線長が最短となる端子位置の決定を行い、当該決定に基づいて前記レイアウト情報を更新する一般信号端子位置決定部と
を有することを特徴とする請求項１乃至６のいずれかに記載の集積回路設計装置。
【請求項８】
前記スキャンパス付替部により更新されたスキャンパス接続情報に基づいて、前記論理接続情報を更新する論理接続情報更新部と、
前記スキャンパス付替部により更新されたスキャンパス接続情報および前記論理接続情報更新部により更新された論理接続情報を参照して、前記マクロの他の信号が使用してない端子位置であってかつ接続される前記スキャンイン端子と前記スキャンアウト端子との距離が最短となるように前記マクロのスキャンイン端子およびスキャンアウト端子の位置をそれぞれ決定し、当該決定した位置に基づいて前記一般信号端子位置決定部により更新されたレイアウト情報を更新するマクロスキャン端子位置決定部と
を有することを特徴とする請求項７記載の集積回路設計装置。
【請求項９】
集積回路内のレイアウトを示すレイアウト情報を参照して各マクロのスキャンイン端子およびスキャンアウト端子の仮配置位置の決定を行い、当該決定に基づいて前記レイアウト情報の第１更新を実施し、
スキャンイン外部端子および複数の前記マクロについて、前記第１更新されたレイアウト情報および集積回路内のスキャンパス情報を示すスキャンパス接続情報を参照して、前記スキャンイン外部端子を始点に順次最も近い距離に配置されている各前記マクロを接続するようにスキャンパス接続情報の第１更新を実施し、
前記第１更新されたレイアウト情報と前記第１更新されたスキャンパス接続情報とを参照して、スキャンパス総配線長が最も短くなるようにスキャンパス接続順の決定を行い、当該決定に基づいて前記第１更新されたスキャンパス接続情報の第２更新を実施する
ことを特徴とする設計方法。
【請求項１０】
前記マクロのスキャンイン端子およびスキャンアウト端子を仮配置する位置は、各前記マクロ内の当該マクロの重心位置である
ことを特徴とする請求項９記載の設計方法。
【請求項１１】
前記マクロのスキャンイン端子およびスキャンアウト端子を仮配置する位置は、各前記マクロ内の当該マクロの中心位置である
ことを特徴とする請求項９記載の設計方法。
【請求項１２】
前記スキャンパス接続情報の第１更新の実施は、前記スキャンイン外部端子、前記スキャンアウト外部端子および各前記マクロ間の互いの距離についてそれぞれ最短距離の値を算出し、算出した最短距離の値に基づいて、最初に前記スキャンイン外部端子から最も近い前記マクロを選択し、前記選択したマクロから一番近くかつ未選択の前記マクロを順次選択し、前記スキャンイン外部端子、前記選択された順の各前記マクロおよび前記スキャンアウト外部端子をこれらの順に接続する
ことであることを特徴とする請求項９乃至１１のいずれかに記載の設計方法。
【請求項１３】
前記スキャンパス接続情報の第２更新の実施は、前記第１更新により決定されたスキャンパス接続情報に基づいて第１スキャンパス総配線長を算出し、
当該第１スキャンパス総配線長を第２スキャンパス総配線長として採用し、
前記スキャンパス接続情報のうちの任意の前記マクロのスキャンパス接続順を入れ替えた場合の第３スキャンパス総配線長を算出し、
前記第２スキャンパス総配線長と前記第３スキャンパス総配線長とのうちの短いほうを新たな第２スキャンパス総配線長として採用し、
算出した前記第３スキャンパス総配線長が前記第１スキャンパス総配線長の所定の割合以下である場合の前記スキャンパス接続順をスキャンパス総配線長が最も短くなるスキャンパス接続順であると決定する
ことであることを特徴とする請求項９乃至１２のいずれかに記載の設計方法。
【請求項１４】
前記スキャンパス接続情報の第２更新の実施は、前記第１更新により決定されたスキャンパス接続情報に基づいて第１スキャンパス総配線長を算出し、
当該第１スキャンパス総配線長を第２スキャンパス総配線長として採用し、
前記スキャンパス接続情報のうちの任意の前記マクロのスキャンパス接続順を入れ替えた場合の第３スキャンパス総配線長を算出し、
前記第２スキャンパス総配線長と前記第３スキャンパス総配線長とのうちの短いほうを新たな第２スキャンパス総配線長として採用し、
前記第３スキャンパス総配線長の算出を所定の回数実行した場合の前記新たな第２スキャンパス総配線長に対応する前記スキャンパス接続順をスキャンパス総配線長が最も短くなるスキャンパス接続順であると決定する
ことであることを特徴とする請求項９乃至１２のいずれかに記載の設計方法。
【請求項１５】
集積回路内の論理接続を示す論理接続情報および前記レイアウト情報を参照して、各前記マクロの全ての一般信号端子について端子間の接続配線長が最短となる端子位置の決定を行い、当該決定に基づいて前記レイアウト情報の第２更新を実施する
ことを特徴とする請求項９乃至１４のいずれかに記載の設計方法。
【請求項１６】
前記第２更新を実施されたスキャンパス接続情報に基づいて、前記論理接続情報を更新し、
前記第２更新を実施されたスキャンパス接続情報および前記更新された論理接続情報を参照して、前記マクロの他の信号が使用してない端子位置であってかつ接続される前記スキャンイン端子と前記スキャンアウト端子との距離が最短となるように前記マクロのスキャンイン端子およびスキャンアウト端子の位置をそれぞれ決定し、当該決定した位置に基づいて前記第２更新を実施されたレイアウト情報を更新する
ことを特徴とする請求項１５記載の設計方法。
【請求項１７】
集積回路内のレイアウトを示すレイアウト情報を参照して各マクロのスキャンイン端子およびスキャンアウト端子の仮配置位置の決定を行い、当該決定に基づいて前記レイアウト情報の第１更新を実施し、
スキャンイン外部端子および複数の前記マクロについて、前記第１更新されたレイアウト情報および集積回路内のスキャンパス情報を示すスキャンパス接続情報を参照して、前記スキャンイン外部端子を始点に順次最も近い距離に配置されている各前記マクロを接続するようにスキャンパス接続情報の第１更新を実施し、
前記第１更新されたレイアウト情報と前記第１更新されたスキャンパス接続情報とを参照して、スキャンパス総配線長が最も短くなるようにスキャンパス接続順の決定を行い、当該決定に基づいて前記第１更新されたスキャンパス接続情報の第２更新を実施する処理
をコンピュータに実行させることを特徴とするプログラム。
【請求項１８】
前記マクロのスキャンイン端子およびスキャンアウト端子を仮配置する位置は、各前記マクロ内の当該マクロの重心位置である
ことを特徴とする請求項１７記載のプログラム。
【請求項１９】
前記マクロのスキャンイン端子およびスキャンアウト端子を仮配置する位置は、各前記マクロ内の当該マクロの中心位置である
ことを特徴とする請求項１７記載のプログラム。
【請求項２０】
前記スキャンパス接続情報の第１更新の実施は、前記スキャンイン外部端子、前記スキャンアウト外部端子および各前記マクロ間の互いの距離についてそれぞれ最短距離の値を算出し、算出した最短距離の値に基づいて、最初に前記スキャンイン外部端子から最も近い前記マクロを選択し、前記選択したマクロから一番近くかつ未選択の前記マクロを順次選択し、前記スキャンイン外部端子、前記選択された順の各前記マクロおよび前記スキャンアウト外部端子をこれらの順に接続する処理
をコンピュータに実行させることであることを特徴とする請求項１７乃至１９のいずれかに記載のプログラム。
【請求項２１】
前記スキャンパス接続情報の第２更新の実施は、前記第１更新により決定されたスキャンパス接続情報に基づいて第１スキャンパス総配線長を算出し、
当該第１スキャンパス総配線長を第２スキャンパス総配線長として採用し、
前記スキャンパス接続情報のうちの任意の前記マクロのスキャンパス接続順を入れ替えた場合の第３スキャンパス総配線長を算出し、
前記第２スキャンパス総配線長と前記第３スキャンパス総配線長とのうちの短いほうを新たな第２スキャンパス総配線長として採用し、
算出した前記第３スキャンパス総配線長が前記第１スキャンパス総配線長の所定の割合以下である場合の前記スキャンパス接続順をスキャンパス総配線長が最も短くなるスキャンパス接続順であると決定する処理
をコンピュータに実行させることであることを特徴とする請求項１７乃至２０のいずれかに記載のプログラム。
【請求項２２】
前記スキャンパス接続情報の第２更新の実施は、前記第１更新により決定されたスキャンパス接続情報に基づいて第１スキャンパス総配線長を算出し、
当該第１スキャンパス総配線長を第２スキャンパス総配線長として採用し、
前記スキャンパス接続情報のうちの任意の前記マクロのスキャンパス接続順を入れ替えた場合の第３スキャンパス総配線長を算出し、
前記第２スキャンパス総配線長と前記第３スキャンパス総配線長とのうちの短いほうを新たな第２スキャンパス総配線長として採用し、
前記第３スキャンパス総配線長の算出を所定の回数実行した場合の前記新たな第２スキャンパス総配線長に対応する前記スキャンパス接続順をスキャンパス総配線長が最も短くなるスキャンパス接続順であると決定する処理
をコンピュータに実行させることであることを特徴とする請求項１７乃至２０のいずれかに記載のプログラム。
【請求項２３】
集積回路内の論理接続を示す論理接続情報および前記レイアウト情報を参照して、各前記マクロの全ての一般信号端子について端子間の接続配線長が最短となる端子位置の決定を行い、当該決定に基づいて前記レイアウト情報の第２更新を実施する処理
をコンピュータに実行させることを特徴とする請求項１７乃至２２のいずれかに記載のプログラム。
【請求項２４】
前記第２更新を実施されたスキャンパス接続情報に基づいて、前記論理接続情報を更新し、
前記第２更新を実施されたスキャンパス接続情報および前記更新された論理接続情報を参照して、前記マクロの他の信号が使用してない端子位置であってかつ接続される前記スキャンイン端子と前記スキャンアウト端子との距離が最短となるように前記マクロのスキャンイン端子およびスキャンアウト端子の位置をそれぞれ決定し、当該決定した位置に基づいて前記第２更新を実施されたレイアウト情報を更新する処理
をコンピュータに実行させることを特徴とする請求項２３記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路設計装置、設計方法およびプログラムに関し、特に、配線長の最適化に係る集積回路設計装置、設計方法およびプログラムに関する。
【背景技術】
【０００２】
例えばＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）などの大規模な集積回路のレイアウト設計において、チップをマクロ（ブロックとも呼ばれる）という設計単位に分割し、各マクロのレイアウト処理を並列的に行う階層レイアウト設計を行うことにより設計期間を短縮する方法が広く用いられている。
【０００３】
階層レイアウト設計の処理手順として、まずチップデータの階層構造を決定したのち、マクロブロックのＬＳＩ上での位置や大きさ、マクロブロックの端子位置を決定し（フロアプラン処理）、この決定された端子位置に従ってのトップレイアウト（マクロブロック間の配線処理）、およびマクロブロック内のレイアウト処理と配線処理とを行うといった、トップダウン的な手順が広く用いられている。
【０００４】
このようなＬＳＩのレイアウト設計において、マクロブロックの端子位置は各マクロの接続関係や大きさ、相対位置関係を元にして、なるべくマクロ間の配線経路が最短となるよう決定される。
【０００５】
例えば、階層レイアウト設計の関連技術が特許文献１に記載されている。特許文献１に記載された自動配置配線処理方法は、上述した階層レイアウト設計により得られるマクロブロック内の配置配線結果を参照し、改めてマクロ端子位置を再決定する過程により、マクロ間配線の迂回を抑制するものである。
【０００６】
また、レイアウト設計の関連技術が特許文献２に記載されている。特許文献２に記載されたレイアウト設計方法は、スキャンパス長を考慮したスキャンフリップフロップの接続順序の決定とスキャンパス間のノードの交換とを行うステップにより、総スキャンパス長を削減するものである。
【０００７】
以上説明した技術の具体例について、図２５および図２６を用いて説明する。
図２５はＬＳＩのレイアウト時におけるスキャンパス接続順および端子位置を示している。
【０００８】
ＬＳＩレイアウト対象となるマクロＡ、Ｂ、ＣおよびＤがＬＳＩ内に配置されており、ＬＳＩの外部スキャンイン端子ＳＩとＬＳＩのスキャンアウト外部端子ＳＯとがＬＳＩ外周に配置されている。
【０００９】
各マクロＡ〜Ｄもそれぞれスキャンイン端子ＳＩＡ〜ＳＩＤとスキャンアウト端子ＳＯＡ〜ＳＯＤとを有しており、マクロＡ、マクロＢ、マクロＣおよびマクロＤの外周にそれぞれスキャンイン端子ＳＩＡとスキャンアウト端子ＳＯＡ、スキャンイン端子ＳＩＢとスキャンアウト端子ＳＯＢ、スキャンイン端子ＳＩＣとスキャンアウト端子ＳＯＣおよびスキャンイン端子ＳＩＤとスキャンアウト端子ＳＯＤが配置されている。
【００１０】
スキャンパス接続順はフロアプランを行う前の論理設計の段階で決定され、各マクロのスキャンイン端子は、必ず外部スキャンイン端子あるいは別のマクロのスキャンアウト端子のどれか１つのみに接続される。また、スキャンアウト端子は、必ず外部スキャンアウト端子あるいは別のマクロのスキャンイン端子のどれか１つのみに接続される。
【００１１】
図２５の例ではスキャンパスはスキャンイン端子ＳＩを始点として、マクロＣ→マクロＤ→マクロＡ→マクロＢ→スキャンアウト端子ＳＯの順に接続されている。以下、マクロ間のスキャンパス接続順ついては、例えば「スキャンイン端子ＳＩ→マクロＣ→マクロＤ→マクロＡ→マクロＢ→スキャンアウト端子ＳＯ」を「ＳＩ−Ｃ−Ｄ−Ａ−Ｂ−ＳＯ」のように簡略化して表記する。
【００１２】
ここで、各マクロのスキャンイン端子ＳＩＡ、ＳＩＢ、ＳＩＣ、ＳＩＤや、スキャンアウト端子ＳＯＡ、ＳＯＢ、ＳＯＣ、ＳＯＤの位置は、その他の端子と同様、端子間の距離が最短となるような位置に配置されている。
【００１３】
次に、図２５のフロアプランを基にスキャン付け替えを実施した後のレイアウトを図２６に示す。スキャンパスは、それ自身の特徴として、パス中の全てのシフトレジスタ（およびそれを内包するマクロ）が一筆書き状に接続されていれば良く、その接続順については特に制約されないことが多い。このようなケースにおいて、スキャンパスは、位置が確定したマクロ端子やシフトレジスタの配置位置を考慮して、スキャンパス総配線長が短くなるように接続順の付け替え（スキャン付け替え）を行うことが可能であり、自動化による付け替え処理が一般的に行われている。
【００１４】
付け替え処理により、スキャンパスは、図２６に示すようにＳＩ−Ａ−Ｂ−Ｃ−Ｄ−ＳＯの順に接続される。これが、本レイアウトにおける最適な接続順であり、スキャンパス総配線長の最適解である。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開平０７−１４７３２４号公報
【特許文献２】特開平０９−３０５６４２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、上述した特許文献１あるいは２に記載された技術では、スキャンパスに接続する端子がスキャンパス最適化前の論理接続情報を参照して決定されること、即ちフロアプラン処理前の論理設計時点で決定されることへの対処ができなかった。このため、スキャンパスの端子位置として、スキャンパス総配線長を短縮するための最適な配置位置を得られない、即ちここで得られるスキャンパス総配線長の最適解は、スキャンパス総配線長を更に短縮する余地を残したものとなる場合があるという問題があった。
【００１７】
具体的な例として、図２６を参照すると、スキャンイン外部端子ＳＩとマクロＡのスキャンイン端子ＳＩＡとの間およびスキャンアウト外部端子ＳＯとマクロＤのスキャンアウト端子ＳＯＤとの間は必ずしも最短距離ではないことが判る。
【００１８】
本発明の目的は上述の問題点を解決し、配線長の最適化を可能とした集積回路設計装置、設計方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１９】
本発明の集積回路設計装置は、集積回路内のレイアウトを示すレイアウト情報を記憶するレイアウト情報記憶部と、
集積回路内のスキャンパス情報を示すスキャンパス接続情報を記憶するスキャンパス接続情報記憶部と、
前記レイアウト情報を参照して各マクロのスキャンイン端子およびスキャンアウト端子の仮配置位置の決定を行い、当該決定に基づいて前記レイアウト情報を更新するマクロ信号端子位置決定部と、
スキャンイン外部端子および複数の前記マクロについて、前記マクロ信号端子位置決定部により更新されたレイアウト情報と前記スキャンパス接続情報とを参照して、前記スキャンイン外部端子を始点に順次最も近い距離に配置されている前記マクロを接続するように前記スキャンパス接続情報を更新する初期スキャンパス経路決定部と、
前記マクロ信号端子位置決定部により更新されたレイアウト情報と前記初期スキャンパス経路決定部により更新されたスキャンパス接続情報とを参照して、スキャンパス総配線長が最も短くなるようにスキャンパス接続順の決定を行い、当該決定に基づいて前記初期スキャンパス経路決定部により更新されたスキャンパス接続情報を更新するスキャンパス付替部とを有する。
【００２０】
本発明の設計方法は、集積回路内のレイアウトを示すレイアウト情報を参照して各マクロのスキャンイン端子およびスキャンアウト端子の仮配置位置の決定を行い、当該決定に基づいて前記レイアウト情報の第１更新を実施し、
スキャンイン外部端子および複数の前記マクロについて、前記第１更新されたレイアウト情報および集積回路内のスキャンパス情報を示すスキャンパス接続情報を参照して、前記スキャンイン外部端子を始点に順次最も近い距離に配置されている各前記マクロを接続するようにスキャンパス接続情報の第１更新を実施し、
前記第１更新されたレイアウト情報と前記第１更新されたスキャンパス接続情報とを参照して、スキャンパス総配線長が最も短くなるようにスキャンパス接続順の決定を行い、当該決定に基づいて前記第１更新されたスキャンパス接続情報の第２更新を実施する。
【００２１】
本発明のプログラムは、集積回路内のレイアウトを示すレイアウト情報を参照して各マクロのスキャンイン端子およびスキャンアウト端子の仮配置位置の決定を行い、当該決定に基づいて前記レイアウト情報の第１更新を実施し、
スキャンイン外部端子および複数の前記マクロについて、前記第１更新されたレイアウト情報および集積回路内のスキャンパス情報を示すスキャンパス接続情報を参照して、前記スキャンイン外部端子を始点に順次最も近い距離に配置されている各前記マクロを接続するようにスキャンパス接続情報の第１更新を実施し、
前記第１更新されたレイアウト情報と前記第１更新されたスキャンパス接続情報とを参照して、スキャンパス総配線長が最も短くなるようにスキャンパス接続順の決定を行い、当該決定に基づいて前記第１更新されたスキャンパス接続情報の第２更新を実施する処理  をコンピュータに実行させる。
【発明の効果】
【００２２】
本発明には、スキャンパス総配線長を更に短縮する余地を低減したスキャンパス総配線長の最適解を導出するスキャンパス接続情報を得ることができるという効果がある。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態の構成を示すブロック図である。
【図２】本発明の第１および第２の実施形態における処理対象ＬＳＩ例の論理的な接続を示す図である。
【図３】本発明の第１および第２の実施形態における論理接続情報の構造を示す図である。
【図４】本発明の第１および第２の実施形態における処理対象ＬＳＩ例の物理的な構造を示す図である。
【図５】本発明の第１および第２の実施形態におけるレイアウト情報の構造を示す図である。
【図６】本発明の第１および第２の実施形態におけるスキャンパス接続情報の構造を示す図である。
【図７】本発明の第１の実施形態のマクロ信号端子位置決定部により決定されたマクロのスキャンイン、スキャンアウト端子位置を示す図である。
【図８】本発明の第１の実施形態のマクロ信号端子位置決定部により更新されたレイアウト情報の端子レイアウト情報を示す図である。
【図９】本発明の第１および第２の実施形態における処理対象ＬＳＩ例の物理的な構造を各部分の距離を含めて示す図である。
【図１０】本発明の第１および第２の実施形態における接続距離テーブルの構造を示す図である。
【図１１】本発明の第１の実施形態の全体の動作を示すフローチャートである。
【図１２】本発明の第１および第２の実施形態の初期スキャンパス経路決定部により変更されたスキャンパス接続情報を示す図である。
【図１３】本発明の第１および第２の実施形態の初期スキャンパス経路決定部により変更されたスキャンパス接続情報に基づいたスキャンパスの接続イメージである。
【図１４】本発明の第１および第２の実施形態のスキャンパス付け替えにより変更されたスキャンパス接続情報を示す図である。
【図１５】本発明の第１および第２の実施形態のスキャンパス付け替えにより変更されたスキャンパス接続情報に基づいたスキャンパスの接続イメージである。
【図１６】本発明の第２の実施形態の実施形態の構成を示すブロック図である。
【図１７】本発明の第２の実施形態のマクロ信号端子位置決定部により決定されたマクロのスキャンイン、スキャンアウト端子位置を示す図である。
【図１８】本発明の第２の実施形態のマクロ信号端子位置決定部により更新されたレイアウト情報の端子レイアウト情報を示す図である。
【図１９】本発明の第１および第２の実施形態の論理接続情報更新部により、スキャンパス付け替え部により更新されたスキャンパス接続情報の内容に基づいてスキャンパスを接続するように、更新された処理対象ＬＳＩ例の論理的な接続を示す図である。
【図２０】本発明の第１および第２の実施形態の論理接続情報更新部により更新された論理接続情報を示す図である。
【図２１】本発明の第１および第２の実施形態のマクロスキャン端子位置決定部により、スキャンイン端子およびスキャンアウト端子を移動された、処理対象ＬＳＩ例のレイアウトを示す図である。
【図２２】本発明の第１および第２の実施形態のマクロスキャン端子位置決定部により、更新されたレイアウト情報の端子レイアウト情報を示す図である。
【図２３】本発明の第２の実施形態の実施形態の全体の動作を示すフローチャートである。
【図２４】本発明の第２の実施形態のスキャンパス付替部の構成を示すブロック図である。
【図２５】背景技術における、ＬＳＩレイアウト時の、スキャンパス接続順、および端子位置を示す図である。
【図２６】背景技術における、ＬＳＩレイアウト時の、スキャンパス接続順、および端子位置を示す図である。
【発明を実施するための形態】
【００２４】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００２５】
以下の説明では、例えば図２に示すような論理的な接続を有し、例えば図４に示すような物理的な構造を有する、スキャンイン外部端子ＳＩ、スキャンアウト外部端子ＳＯ、マクロＡ、マクロＢ、マクロＣおよびマクロＤからなるＬＳＩを例にして説明する。尚、本実施形態は、対象とするＬＳＩのマクロの数、論理的な接続、物理的な配置、マクロ以外のその他一般セル、ＩＯセルおよびそれらの端子などについて、上記の例によって限定されるものではない。
【００２６】
図１は、本発明の第１の実施形態を示すブロック図である。図１を参照すると本発明の第１の実施形態は、マクロ信号端子位置決定部１０３、初期スキャンパス経路決定部１０４、スキャンパス付替部１０５、レイアウト情報記憶部１２２およびスキャンパス接続情報記憶部１２３から構成されている。
【００２７】
ここで、各構成要素の説明の前に、各構成要素が参照、生成、更新するデータの構造について説明する。
【００２８】
レイアウト情報２０２は、例えば、図４に示すようなスキャンイン外部端子ＳＩ、スキャンアウト外部端子ＳＯおよびマクロＡ〜Ｄのレイアウトに関する情報を、図５に示すようなデジタル情報に変換したものである。
【００２９】
図５に示す例では、レイアウト情報２０２は、ＬＳＩレイアウト情報２０２１、マクロレイアウト情報２０２２、端子レイアウト情報２０２３とからなる。そして、ＬＳＩレイアウト情報２０２１は、ＬＳＩの位置および大きさの情報を含む。また、マクロレイアウト情報２０２２は、マクロＡ〜Ｄの位置および大きさの情報を含む。また、端子レイアウト情報２０２３は、スキャンイン外部端子ＳＩとスキャンアウト外部端子ＳＯ、マクロＡ〜Ｄのスキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤ、一般信号端子ＤＩＡ、一般信号端子ＤＩＢ、一般信号端子ＤＩＣおよび一般信号端子ＤＯＤそれぞれの端子位置情報および配置状態とを含む。
【００３０】
スキャンパス接続情報２０３は、図６に示すように、マクロ名／スキャン外部端子名と、各マクロ名に対応するスキャンイン端子名およびスキャンアウト端子名と、これらのマクロ名／スキャン外部端子名で示されるマクロＡ〜Ｄ／スキャンイン外部端子ＳＩ、スキャンアウト外部端子ＳＯの接続順とを含む。
【００３１】
接続距離テーブル２０４は、図１０に示すように、スキャンイン外部端子ＳＩ、スキャンアウト外部端子ＳＯおよびマクロＡ〜Ｄ間の互いの距離の情報を含む。
【００３２】
マクロ信号端子位置決定部１０３は、レイアウト情報２０２を参照し、スキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤの仮配置位置の決定を行い、この決定に基づいてレイアウト情報２０２を更新する。
【００３３】
初期スキャンパス経路決定部１０４は、マクロ信号端子位置決定部１０３により更新されたレイアウト情報２０２とスキャンパス接続情報２０３とに基づいて、互いの距離が近いマクロＡ〜Ｄを接続するようにスキャンパスの接続経路の決定を行い、この決定に基づいてスキャンパス接続情報２０３を更新する。
【００３４】
スキャンパス付替部１０５は、初期スキャンパス経路決定部１０４により更新されたスキャンパス接続情報２０３とマクロ信号端子位置決定部１０３により更新されたレイアウト情報２０２とに基づいて、スキャンパス総配線長（スキャンイン外部端子ＳＩ、スキャンアウト外部端子ＳＯおよび各マクロＡ〜Ｄの辺間のスキャンパス経路の合計距離）が最も短くなるようにスキャンパス接続順の決定を行い、この決定に基づいてスキャンパス接続情報２０３を更新する。
【００３５】
レイアウト情報記憶部１２２およびスキャンパス接続情報記憶部１２３は、それぞれレイアウト情報２０２およびスキャンパス接続情報２０３を記憶する。尚、レイアウト情報記憶部１２２およびスキャンパス接続情報記憶部１２３のうちのいずれか一つ以上は、マクロ信号端子位置決定部１０３、初期スキャンパス経路決定部１０４またはスキャンパス付替部１０５のいずれかに含まれるように構成されていてもよい。あるいは、レイアウト情報記憶部１２２およびスキャンパス接続情報記憶部１２３のうちのいずれか一つ以上は、図示しない記憶部に纏めて含まれるように構成されていてもよい。
【００３６】
次に本実施形態の動作を、図１〜１５を参照し、具体的な例を示して更に詳細に説明する。
【００３７】
図１１は、本実施形態の全体の動作を示すフローチャートである。
【００３８】
前提として、レイアウト情報２０２およびスキャンパス接続情報２０３は、それぞれ図５および図６に示す内容が格納されているものとする。
【００３９】
尚、図５に示す初期状態のレイアウト情報２０２において、ＬＳＩおよびマクロＡ〜Ｄの位置および大きさとスキャンイン外部端子ＳＩとスキャンアウト外部端子ＳＯの端子位置とには決定された内容が格納されている。そして、マクロＡ〜Ｄのスキャンイン端子ＳＩＡ〜ＳＩＤとスキャンアウト端子ＳＯＡ〜ＳＯＤ端子位置とはまだ決定されていない状態であるため、有効な内容が格納されておらず、配置状態には「配置未」が格納されている。
【００４０】
また、図６に示す初期状態のスキャンパス接続情報２０３において、接続順は図２に示すＬＳＩの論理的な接続を反映したものであり、図４に示すＬＳＩの物理的な構造は考慮されていない状態である。
【００４１】
まず、マクロ信号端子位置決定部１０３は、レイアウト情報２０２を参照し、スキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤの仮配置の決定を行い、この決定に基づいてレイアウト情報２０２を更新する（ステップＳ３０２）。
【００４２】
マクロ信号端子位置決定部１０３により決定されたマクロＡ〜Ｄのスキャンイン、スキャンアウト端子位置を図７に示す。スキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤはそれぞれのマクロＡ〜Ｄの重心上に仮配置されている。尚、図７では、スキャンイン端子ＳＩＡとスキャンアウト端子ＳＯＡは、識別可能とするために部分的に重なって（部分的にずれて）記載されているが、実際には、同じ重心位置に重なって配置されている。また、マクロ信号端子位置決定部１０３により更新されたレイアウト情報２０２の端子レイアウト情報２０２３を図８に示す。
【００４３】
次に初期スキャンパス経路決定部１０４は、スキャンパス接続情報２０３とマクロ信号端子位置決定部１０３により変更されたレイアウト情報２０２とを参照し、互いの距離が近いマクロＡ〜Ｄ同士が接続されるようにスキャンパスの接続の決定を行い、この決定に基づいてスキャンパス接続情報２０３を更新する（ステップＳ３０４）。
【００４４】
詳細な手順について一例を示すと、まず、マクロＡ〜Ｄ、スキャンイン外部端子ＳＩおよびスキャンアウト外部端子ＳＯ間の互いの距離それぞれについて、最短距離の値を算出し、初期スキャンパス経路決定部１０４内の接続距離テーブル２０４に格納する。図９に示すレイアウトにおいては、スキャンイン外部端子ＳＩからマクロＡの辺までの最短距離は「１」が登録され、マクロＢまでの最短距離は「６」が登録される。他の端子間の最短距離についても同様にして登録される。
【００４５】
初期スキャンパス経路決定部１０４により登録された接続距離テーブル２０４を図１０に示す。
【００４６】
続けて、初期スキャンパス経路決定部１０４は、接続距離テーブル２０４を参照して、スキャンイン外部端子ＳＩから順に一番近い距離のマクロＡ〜Ｄを１つずつ選択する。その際、初期スキャンパス経路決定部１０４は、マクロＡ〜Ｄが既に選択済みのものがある場合、まだ選択されていないマクロＡ〜Ｄで一番距離が近いものを選択し、全てのマクロＡ〜Ｄが選択済みの場合、スキャンアウト外部端子ＳＯを選択する。この選択によって決定した順番に対応するようにスキャンパス接続情報２０３の接続順を更新する（ステップＳ３０６）。
【００４７】
例えば、図１０の接続距離テーブル２０４において、スキャンイン外部端子ＳＩに一番近いマクロＡ（距離「１」）がまず選択され、次に、マクロＡからみて一番近いマクロＢか、もしくはマクロＤ（ともに距離「１」）が選択される。ここではマクロＤが選択されるものとする。マクロＤについてはマクロＡかマクロＣが最短距離であるが、既にマクロＡは選択済みであるため、次に近いマクロＣ（距離「１」）が選択される。以後同様な処理を行い、変更されたスキャンパス接続情報２０３を図１２に示す。本実施形態の例ではＳＩ−Ａ−Ｄ−Ｃ−Ｂ−ＳＯの順に接続が変更されている。図１２に示すスキャンパス接続情報２０３に基づいて接続されたスキャンパスの接続は、図１３に示すスキャンパスの接続イメージのようにマクロＢからスキャンアウト外部端子ＳＯの距離が大きく、スキャンパス総配線長は「１５」であることが判る。
【００４８】
次に、スキャンパス付替部１０５は、初期スキャンパス経路決定部１０４により更新されたスキャンパス接続情報２０３と、マクロ信号端子位置決定部１０３により変更されたレイアウト情報２０２を参照し、スキャンパス総配線長が短くなるようにスキャンパス接続順の入れ替えを行い、この入れ替えたスキャンパス接続順に基づいてスキャンパス接続情報２０３を更新する（ステップＳ３０８）。
【００４９】
スキャンパス総配線長の計算においては初期スキャンパス経路決定部１０４と同様、マクロＡ〜Ｄ同士を結ぶ辺間の距離で最短となるものを求め、それらの総和として算出する。
【００５０】
付け替え処理の具体的な方法については、組み合わせ最適化問題の１つである巡回セールスマン問題に対する解法として存在しており、一例としては、始終点を除く任意の２点、もしくは３点を逐次的に入れ替え（例えばＳＩ−Ａ−Ｃ−Ｄ−Ｂ−ＳＯの順番をＳＩ−Ｃ−Ａ−Ｄ−Ｂ−ＳＯに変更し）、総配線長が変更前より短くなれば採用するといった処理を、総配線長が最初の長さの一定の割合以下になるか、繰り返し回数が一定値を超えるまで繰り返すなどがある。
【００５１】
スキャンパス付替部１０５により変更されたスキャンパス接続情報２０３を図１４に示す。図１４に示すスキャンパス接続情報２０３に基づいて接続されたスキャンパスの接続は、図１５に示すスキャンパスの接続イメージのように全て最短距離で接続されており、スキャンパス総配線長は「５」であることが判る。
【００５２】
尚、付け替え可能なスキャンパス経路の組み合わせ数はマクロ数をｎとするとｎ！となる。本実施形態の例では、マクロ数を４として、組み合わせは４！＝２４通りであり、全てのスキャンパス経路の組み合わせを総当たり的に試すことにより、経路としての最適解（この場合はＳＩ−Ａ−Ｂ−Ｃ−Ｄ−ＳＯであり、関連技術で引用したものと同じ経路）を求めることができる。しかし、ｎが数十の値であって、全ての組み合わせを試すことが実用的でない場合は、上述したように実用的な時間内で求められる近似解を最適解と見做すこととしてもよい。
【００５３】
上述した本実施形態における効果は、スキャンパス総配線長の最適解として、スキャンパス総配線長を更に短縮する余地を低減するスキャンパス接続情報を得ることができる点である。その理由は、スキャンパス接続情報とレイアウト情報とを参照し、スキャンパス総配線長が短くなるようにスキャンパス接続順を入れ替えて、スキャンパス接続情報を更新するようにしたからである。
【００５４】
即ち、ＬＳＩなどのレイアウト設計において、階層分割設計を行う場合の階層マクロのスキャンイン、スキャンアウト端子位置を一旦マクロの重心位置に仮配置をした後、スキャンパス経路の最適化処理をマクロ間の最短距離、もしくは仮配置された端子間の最短距離を考慮して行うようにしたことで、スキャンパス総配線長の最適解として、スキャンパス総配線長を更に短縮する余地を低減したスキャンパス接続情報を得ることができる効果がある。
【００５５】
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。
【００５６】
図１６は、本発明の第２の実施形態を示すブロック図である。図１６を参照すると本発明の第２の実施形態は、入力部１０１、一般信号端子位置決定部１０２、論理接続情報更新部１０６、マクロスキャン端子位置決定部１０７および出力部１０８を有する点と、レイアウト情報記憶部１２２およびスキャンパス接続情報記憶部１２３に替えて記憶部２００を有する点において、第１の実施形態と異なっている。また、本発明の第２の実施形態は、マクロ信号端子位置決定部１０３の動作が、第１の実施形態と異なっている。
【００５７】
ここで、各構成要素の説明の前に、各構成要素が参照、生成、更新するデータの構造について説明する。
【００５８】
論理接続情報２０１は、例えば、図２に示すようなスキャンイン外部端子ＳＩ、スキャンアウト外部端子ＳＯ、マクロＡ〜Ｄ間の論理的な接続を、図３に示すようにデジタル情報に変換したものである。
【００５９】
図３に示す例では、論理接続情報２０１は、スキャンイン外部端子ＳＩとスキャンアウト外部端子ＳＯとマクロＡ〜Ｄのスキャンイン端子ＳＩＡ、ＳＩＢ、ＳＩＣ、ＳＩＤとマクロＡ〜Ｄのスキャンアウト端子ＳＯＡ、ＳＯＢ、ＳＯＣ、ＳＯＤとの接続関係、および一般信号端子ＤＩＡ〜ＤＩＤの接続関係をｆｒｏｍ（ある接続の一方の端子）とｔｏ（ｆｒｏｍ側の端子に対応するもう一方の端子）として示す情報を含む。
【００６０】
入力部１０１は、論理接続情報２０１、レイアウト情報２０２、スキャンパス接続情報２０３を入力する。
【００６１】
記憶部２００は、論理接続情報２０１、レイアウト情報２０２、スキャンパス接続情報２０３および接続距離テーブル２０４を記憶する。
【００６２】
一般信号端子位置決定部１０２は、論理接続情報２０１およびレイアウト情報２０２を参照し、各マクロＡ〜Ｄ間の接続関係と位置関係とに基づいて、マクロＡ〜Ｄの全ての一般信号端子ＤＩＡ〜ＤＩＤについて、端子間の接続配線長が最短となる端子位置の決定を行い、この決定に基づいてレイアウト情報２０２を更新する。
【００６３】
マクロ信号端子位置決定部１０３は、スキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤについてマクロＡ〜Ｄのマクロ内であって信号端子位置ではない位置（例えば、重心位置または中心位置であってよい）に仮配置するようにレイアウト情報２０２を更新する。
【００６４】
論理接続情報更新部１０６は、スキャンパス付替部１０５により更新されたスキャンパス接続情報２０３に基づいて、論理接続情報２０１を更新する。
【００６５】
マクロスキャン端子位置決定部１０７は、スキャンパス付替部１０５により更新されたスキャンパス接続情報２０３を参照し、マクロＡ〜Ｄのスキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤを、接続されるスキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤ間の距離が最短となる位置の決定を行い、この決定に基づいてレイアウト情報２０２を更新する。
【００６６】
出力部１０８は、論理接続情報更新部１０６により更新された論理接続情報２０１、マクロスキャン端子位置決定部１０７により更新されたレイアウト情報２０２、およびスキャンパス付替部１０５により更新されたスキャンパス接続情報２０３を出力する。
【００６７】
次に本実施形態の動作を、図２〜６、図９、図１０、図１２〜２４を参照して詳細に説明する。
【００６８】
図２３は、本実施形態の全体の動作を示すフローチャートである。
【００６９】
まず、入力部１０１は、図３に示すような論理接続情報２０１、図５に示すようなレイアウト情報２０２、図６に示すようなスキャンパス接続情報２０３を入力し、これらを記憶部２００に記憶させる（ステップＳ４０２）。
【００７０】
入力部１０１への入力は、例えば、キーボードなどからの入力するようにしてもよいし、ネットワークで接続されたコンピュータ等から入力するようにしてもよい。
【００７１】
次に、一般信号端子位置決定部１０２は、論理接続情報２０１およびレイアウト情報２０２を参照し、各マクロＡ〜Ｄ間の接続関係と位置関係とに基づいて、マクロＡ〜Ｄの全ての一般信号端子ＤＩＡ〜ＤＩＤについては端子間の接続配線長が最短となる端子位置の決定を行い、この決定に基づいてレイアウト情報２０２を更新する（ステップＳ４０４）。
【００７２】
次に、マクロ信号端子位置決定部１０３は、スキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤについてはマクロ重心上に仮配置するようの決定を行い、この決定に基づいてレイアウト情報２０２を更新する（ステップＳ４０６）。
【００７３】
一般信号端子位置決定部１０２およびマクロ信号端子位置決定部１０３により決定されたマクロＡ〜Ｄの端子位置を図７に示す。一般信号端子ＤＩＡ、ＤＯＤと一般信号端子ＤＯＢ、ＤＩＣがそれぞれマクロＡ〜Ｄ辺上に最短となる位置で配置されているが、スキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤはそれぞれのマクロＡ〜Ｄの重心上に仮配置されている。尚、図７では、スキャンイン端子ＳＩＡとスキャンアウト端子ＳＯＡは、識別可能とするために部分的に重なって（部分的にずれて）記載されているが、実際には、同じ重心位置に重なって配置されている。また、マクロ信号端子位置決定部１０３により更新されたレイアウト情報２０２の端子レイアウト情報２０２３を図８に示す。
【００７４】
ステップＳ３０４からステップＳ３０８の動作は、第１の実施形態と同様であるため説明を省略する。
【００７５】
次に、論理接続情報更新部１０６は、スキャンパス付替部１０５により更新されたスキャンパス接続情報２０３の内容に基づいてスキャンパスを接続するように論理接続情報２０１を更新する（ステップＳ４０８）。
【００７６】
接続の具体的な方法としては、スキャンイン外部端子ＳＩとその直後のマクロＡ〜Ｄのスキャンイン端子ＳＩＡ〜ＳＩＤを接続し、スキャンアウト外部端子ＳＯと、その直前のマクロＡ〜Ｄのスキャンアウト端子ＳＯＡ〜ＳＯＤを接続する。その他のマクロＡ〜Ｄはスキャンアウト端子ＳＯＡ〜ＳＯＤと直後のマクロＡ〜Ｄのスキャンイン端子ＳＩＡ〜ＳＩＤを接続する。本手段により更新されたＬＳＩの論理的な接続を図１９に示す。また、論理接続情報２０１は、図２０に示すように更新される。
【００７７】
次に、マクロスキャン端子位置決定部１０７は、スキャンパス付替部１０５により更新されたスキャンパス接続情報２０３を参照し、マクロＡ〜Ｄのスキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤを、マクロ信号端子位置決定部１０３によって仮配置された位置から、接続されるスキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤ間の距離が最短となる位置になるよう移動し、この移動した位置に基づいてレイアウト情報２０２を更新する（ステップＳ４１０）。
【００７８】
その際、マクロ信号端子位置決定部１０３で決定された、一般信号端子ＤＩＡ〜ＤＩＤと重ならないように移動する。本手段によりスキャンイン端子ＳＩＡ〜ＳＩＤ、スキャンアウト端子ＳＯＡ〜ＳＯＤが移動された状態のレイアウトを図２１に示す。また、レイアウト情報２０２は、端子レイアウト情報２０２３が図２２に示すように更新される。
【００７９】
次に、出力部１０８は、論理接続情報更新部１０６により更新された論理接続情報２０１、マクロスキャン端子位置決定部１０７により更新されたレイアウト情報２０２、およびスキャンパス付替部１０５により更新されたスキャンパス接続情報２０３を図示しない出力先へ出力する（ステップＳ４１２）。
【００８０】
図示しない出力先は、例えば、表示装置やプリンタであってもよいし、ネットワークで接続されたコンピュータ等であってもよい。
【００８１】
次に、スキャンパス付替部１０５の、実施形態の一例を説明する。図２４は、スキャンパス付替部１０５の構成を示すブロック図である。図２４を参照すると、スキャンパス付替部１０５は、総配線長算出部１５１と総配線長選択部１５２とを含む。
【００８２】
総配線長算出部１５１は、初期スキャンパス経路決定部１０４により決定されたスキャンパス接続情報２０３に基づいて第１スキャンパス総配線長を算出する。また、総配線長算出部１５１は、初期スキャンパス経路決定部１０４により決定されたスキャンパス接続情報２０３のうちの任意のマクロＡ〜Ｄのスキャンパス接続順を入れ替えた場合の第３スキャンパス総配線長を算出する。
【００８３】
総配線長選択部１５２は、第１スキャンパス総配線長を第２スキャンパス総配線長として採用する。また、総配線長選択部１５２は、第２スキャンパス総配線長と第３スキャンパス総配線長とのうちの短いほうを新たな第２スキャンパス総配線長として採用する。
【００８４】
更に、総配線長選択部１５２は、総配線長算出部１５１が算出した第３スキャンパス総配線長が第１スキャンパス総配線長の所定の割合以下である場合のスキャンパス接続順をスキャンパス総配線長が最も短くなるスキャンパス接続順であると決定する。
【００８５】
あるいは、総配線長選択部１５２は、総配線長算出部１５１が第３スキャンパス総配線長の算出を所定の回数実行した場合の新たな第２スキャンパス総配線長に対応するスキャンパス接続順をスキャンパス総配線長が最も短くなるスキャンパス接続順であると決定するようにしてもよい。
【００８６】
上述した本実施形態における効果は、スキャンパス総配線長の最適解として、スキャンパス総配線長を更に短縮する余地を低減する端子レイアウト情報を得ることができる点である。その理由は、スキャンパス接続情報を論理接続情報とレイアウト情報とを参照し、スキャンパス総配線長が短くなるようにスキャンパス接続順を入れ替えて更新したスキャンパス接続情報に基づいて、スキャンイン／アウト端子の位置を決定するようにしたからである。
【００８７】
即ち、ＬＳＩなどのレイアウト設計において、階層分割設計を行う場合の階層マクロのスキャンイン、スキャンアウト端子位置を一旦マクロの重心位置に仮配置をした後、スキャンパス経路の最適化処理をマクロ間の最短距離、もしくは仮配置された端子間の最短距離を考慮して行い、これに基づいてスキャンイン／アウト端子の位置を決定するようにしたことで、スキャンパス総配線長の最適解として、スキャンパス総配線長を更に短縮する余地を低減した端子レイアウト情報を得ることができる効果がある。
【００８８】
以上の各実施形態で説明した各構成要素は、例えば、プログラムにより所定の処理をコンピュータに実行させてもよい。
【００８９】
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が１個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたり、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
【００９０】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
【００９１】
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作の実行タイミングと他の動作の実行タイミングとの一部乃至全部が重複していたりしていてもよい。
【００９２】
尚、以上説明した各実施形態における各構成要素は、必要に応じ可能であれば、ハードウェアで実現されても良いし、ソフトウェアで実現されても良いし、ハードウェアとソフトウェアの混在により実現されても良い。
【産業上の利用可能性】
【００９３】
本発明は、集積回路のレイアウト設計支援装置、集積回路のレイアウト設計支援方法などに適用できる。例えば、ＬＳＩの大規模化、高速化、およびプロセスの微細化に起因して、ＬＳＩのテスト時間やテストの消費電力の増加が問題となってきており、１本のスキャンパスでＬＳＩ全体を一括してテストすることは適切でなくなってきている。このため、数十もしくは数百本のスキャンパスがＬＳＩ内に存在することも珍しくなく、スキャンパスの配線長増加がＬＳＩ全体の配線性に影響を与える影響も無視できなくなってきている。本発明は、以上のような背景を有するスキャンパスのレイアウト設計にも適用できる。
【符号の説明】
【００９４】
１０１    入力部
１０３    マクロ信号端子位置決定部
１０４    初期スキャンパス経路決定部
１０５    スキャンパス付替部
１０６    論理接続情報更新部
１０７    マクロスキャン端子位置決定部
１０８    出力部
１２２    レイアウト情報記憶部
１２３    スキャンパス接続情報記憶部
１５１    総配線長算出部
１５２    総配線長選択部
２００    記憶部
２０１    論理接続情報
２０２    レイアウト情報
２０２１    ＬＳＩレイアウト情報
２０２２    マクロレイアウト情報
２０２３    端子レイアウト情報
２０３    スキャンパス接続情報
２０４    接続距離テーブル
Ａ    マクロ
Ｂ    マクロ
Ｃ    マクロ
Ｄ    マクロ
ＳＩ    スキャンイン外部端子
ＳＩＡ    スキャンイン端子
ＳＩＢ    スキャンイン端子
ＳＩＣ    スキャンイン端子
ＳＩＤ    スキャンイン端子
ＳＯ    スキャンアウト外部端子
ＳＯＡ    スキャンアウト端子
ＳＯＢ    スキャンアウト端子
ＳＯＣ    スキャンアウト端子
ＳＯＤ    スキャンアウト端子
ＤＩＡ    一般信号端子
ＤＯＢ    一般信号端子
ＤＩＣ    一般信号端子
ＤＯＤ    一般信号端子
【図１】
2010160598.tif 000003
【図２】
2010160598.tif 000004
【図３】
2010160598.tif 000005
【図４】
2010160598.tif 000006
【図５】
2010160598.tif 000007
【図６】
2010160598.tif 000008
【図７】
2010160598.tif 000009
【図８】
2010160598.tif 000010
【図９】
2010160598.tif 000011
【図１０】
2010160598.tif 000012
【図１１】
2010160598.tif 000013
【図１２】
2010160598.tif 000014
【図１３】
2010160598.tif 000015
【図１４】
2010160598.tif 000016
【図１５】
2010160598.tif 000017
【図１６】
2010160598.tif 000018
【図１７】
2010160598.tif 000019
【図１８】
2010160598.tif 000020
【図１９】
2010160598.tif 000021
【図２０】
2010160598.tif 000022
【図２１】
2010160598.tif 000023
【図２２】
2010160598.tif 000024
【図２３】
2010160598.tif 000025
【図２４】
2010160598.tif 000026
【図２５】
2010160598.tif 000027
【図２６】
2010160598.tif 000028