(57)【要約】【課題】エレクトロマイグレーションの問題を解決し、高集積化を実現したレイアウト設計を行うこと【解決手段】周波数解析部８０２は、レイアウト対象の半導体集積回路の設計情報に基づき、半導体集積回路に含まれる各配線の動作周波数が記載された配線周波数データを生成する。配線部８１０は、設計情報に従って、半導体集積回路に含まれる一の配線の配設位置を定めると共に当該配線上に１つ以上の単一ビアの配置し、配線周波数データ及び設計情報に基づいて当該配線のエレクトロマイグレーションチェックを行う。配線部８１０は、チェック結果に基づき当該配線上の前記単一ビアの少なくとも一部を冗長ビアに変換する変換処理を実行して当該配線の配設位置を調整して前記半導体集積装置のレイアウトに反映させる。配線部８１０は、上述の処理を全ての配線について行う。【選択図】図２
2013225194.tif 000002
【特許請求の範囲】
【請求項１】
レイアウト対象の半導体集積回路の設計情報に基づき、前記半導体集積回路に含まれる各配線の動作周波数が記載された配線周波数データを生成する周波数解析部と、
前記設計情報に従って、前記半導体集積回路に含まれる一の配線の配設位置を定めると共に当該配線上に１つ以上の単一ビアの配置し、前記配線周波数データ及び前記設計情報に基づいて当該配線のエレクトロマイグレーションチェックを行い、当該チェック結果に基づき当該配線上の前記単一ビアの少なくとも一部を冗長ビアに変換する変換処理を実行し、ビア変換に伴う当該配線の配置位置調整を行って前記半導体集積装置のレイアウトに反映させる処理、を前記半導体集積回路に含まれる全ての配線について行う配線部と、
を備える半導体レイアウト装置。
【請求項２】
前記配線部は、前記配線周波数データに基づいて、前記半導体集積回路内の各配線の配設の優先順位を定めることを特徴とする請求項１に記載の半導体レイアウト装置。
【請求項３】
前記配線部は、前記配線周波数データ及び前記半導体集積回路に含まれる各配線のタイミングに基づいて、前記半導体集積回路内の各配線の配設の優先順位を定める、請求項１に記載の半導体レイアウト装置。
【請求項４】
前記配線部は、前記半導体集積回路内の各配線のうち、クロックに関する配線を他の配線よりも先に配設する、請求項１に記載の半導体レイアウト装置。
【請求項５】
前記配線部は、前記変換処理の際に、対象となる配線上の全ての単一ビアを冗長ビアに変換する、請求項１に記載の半導体レイアウト装置。
【請求項６】
前記配線部は、前記変換処理の際に、対象となる配線上の単一ビアのうち、当該配線上のセルとの距離が短い単一ビアから優先して冗長ビアに変換する、請求項１に記載の半導体レイアウト装置。
【請求項７】
コンピュータに、
レイアウト対象の半導体集積回路の設計情報に基づき、前記半導体集積回路に含まれる各配線の動作周波数が記載された配線周波数データを生成する周波数解析ステップと、
前記設計情報に従って、前記半導体集積回路に含まれる一の配線の配設位置を定めると共に当該配線上に１つ以上の単一ビアの配置し、前記配線周波数データ及び前記設計情報に基づいて当該配線のエレクトロマイグレーションチェックを行い、当該チェック結果に基づき当該配線上の前記単一ビアの少なくとも一部を冗長ビアに変換する変換処理を実行し、ビア変換に伴う当該配線の配置位置調整を行って前記半導体集積装置のレイアウトに反映させる処理、を前記半導体集積回路に含まれる全ての配線について行う配線ステップと、
を実行させる半導体レイアウトプログラム。
【請求項８】
前記配線ステップでは、前記配線周波数データに基づいて、前記半導体集積回路内の各配線の配設の優先順位を定めることを特徴とする請求項７に記載の半導体レイアウトプログラム。
【請求項９】
前記配線ステップでは、前記配線周波数データ及び前記半導体集積回路に含まれる各配線のタイミングに基づいて、前記半導体集積回路内の各配線の配設の優先順位を定める、請求項７に記載の半導体レイアウトプログラム。
【請求項１０】
前記配線ステップでは、前記半導体集積回路内の各配線のうち、クロックに関する配線を他の配線よりも先に配設する、請求項７に記載の半導体レイアウトプログラム。
【請求項１１】
前記配線ステップでは、前記変換処理の際に、対象となる配線上の全ての単一ビアを冗長ビアに変換する、請求項７に記載の半導体レイアウトプログラム。
【請求項１２】
前記配線ステップでは、前記変換処理の際に、対象となる配線上の単一ビアのうち、当該配線上のセルとの距離が短い単一ビアから優先して冗長ビアに変換する、請求項７に記載の半導体レイアウトプログラム。
【請求項１３】
レイアウト対象の半導体集積回路の設計情報に基づき、前記半導体集積回路に含まれる各配線の動作周波数が記載された配線周波数データを生成し、
前記設計情報に従って、前記半導体集積回路に含まれる一の配線の配設位置を定めると共に当該配線上に１つ以上の単一ビアの配置し、前記配線周波数データ及び前記設計情報に基づいて当該配線のエレクトロマイグレーションチェックを行い、当該チェック結果に基づき当該配線上の前記単一ビアの少なくとも一部を冗長ビアに変換する変換処理を実行し、ビア変換に伴う当該配線の配置位置調整を行って前記半導体集積装置のレイアウトに反映させる処理、を前記半導体集積回路に含まれる全ての配線について行う、
半導体レイアウト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体レイアウト装置、半導体レイアウト方法、及び半導体レイアウトプログラムに関し、例えばエレクトロマイグレーションチェックを行う半導体レイアウト装置、半導体レイアウト方法、及び半導体レイアウトプログラムに関する。
【背景技術】
【０００２】
近年のＬＳＩ（Large Scale Integration）の微細化によって、エレクトロマイグレーションによる経年劣化の問題が顕在化してきている。特に自動車等で用いられるＬＳＩには、高い信頼性が必要とされる。この問題に対応するために、ＬＳＩ設計において、ビアを複数配置する冗長ビア化の対策が行われている。単一ビアを冗長ビア（複数のビア）に変換することにより、ビアに冗長性を持たせることができ、経年劣化の問題に対応することができる。しかしながら、単一ビアから冗長ビアに変換を行うことにより、配線の困難性が増加し、配線面積が増加するという問題が生じる。
【０００３】
特許文献１には、アンテナ効果やタイミング制約等のエラーに関する設計制約違反を生じさせないようにしつつ、冗長ビアを最大限設置する半導体装置の設計方法が開示されている。特許文献１には、原則として全ての配線が冗長ビア化されたレイアウトデータに対してエラー解析を行い、エラーが発見された場合には冗長ビアを単一ビアに戻すことが開示されている（特許文献１図１、図２等）。また、特許文献１には、全ての配線が単一ビア化されたレイアウトデータを、冗長ビアに順次変換する技術が開示されている（特許文献１請求項１１等）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１３５１５２号公報
【非特許文献】
【０００５】
【非特許文献１】桜井貴康編、"低消費電力、高速ＬＳＩ技術"、リアライズ社、１９９８
【非特許文献２】"消費電力解析機能が拡張されたシノプシス PrimeTimeソリューションのご紹介"、 [平成24年3月30日検索]、インターネット＜URL：http://www.synopsys.co.jp/products/technology/primetimepx/primetimepx.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の設計方法は、半導体装置上の全ての配線を配設した後（配置位置を決めた後）に、ビアの変換（単一ビアから冗長ビアへの変換、または冗長ビアから単一ビアへの変換）を行うものである。ここで全ての配線上のビアを冗長ビアとして配線配設を行い、全ての配線配設の終了後に冗長ビアを単一ビアに変換する場合、配線配設の時点で各配線の間隔を、ビア変換を考慮して余分に設ける必要が生じる。例えば、半導体装置上に１０本の配線を配設する必要がある場合、１０本の配線上のビアを全て冗長ビアとして配線配設を行い、その後に単一ビア化を行うため、１０本の配線の間隔がそれぞれ冗長ビアに対応した広さとなる。すなわち、無駄な配線間隔が生じ、高集積化の妨げとなる。
【０００７】
一方、全ての配線上のビアを単一ビアとして配線配設を行い、全ての配線配設の終了後に単一ビアを冗長ビアに変換する場合、ＤＲＣ（Design Rule Check）エラーが生じ、配線の移動を行う必要が生じる。配線の移動を行う場合、タイミング制約に影響を与え、他の配線配設にも影響が生じる。すなわち、配線の配設処理が収束せず、所望のレイアウトを得ることが出来ない場合がある。
【０００８】
つまり、特許文献１の設計方法では、エレクトロマイグレーションの問題を解決し、高集積化を実現したレイアウト設計を行うことが出来ないという問題があった。
【０００９】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
一実施の形態によれば、半導体レイアウト装置は、設計情報からレイアウト対象の半導体集積回路内の各配線の動作周波数を算出する。半導体レイアウト装置は、算出した各配線の動作周波数を用いて、レイアウト対象の半導体集積回路の配線の配置位置を定めるとともに、当該配線上に単一ビアを配置する。そして、半導体レイアウト装置は、当該配線についてのエレクトロマイグレーションチェックを行い、チェック結果に応じて冗長ビア化を行うとともに、当該配線の配置位置を調節する。
【発明の効果】
【００１１】
前記一実施の態様によれば、エレクトロマイグレーションの問題を解決し、高集積化を実現したレイアウト設計を行うことが出来る半導体レイアウト装置、半導体レイアウト方法、及び半導体レイアウトプログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態１にかかる半導体レイアウト装置を実施するためのコンピュータシステム構成の一例を示す図である。
【図２】本発明の実施の形態１にかかる半導体レイアウト装置８００の構成を示すブロック図である。
【図３】回路構成の一例を示す図である。
【図４】本発明の実施の形態１にかかるセルライブラリＤ８０３（詳細にはＬｉｂｒａｒｙ形式のセルライブラリＤ８０３）の一例を示す図である。
【図５】本発明の実施の形態１にかかるタイミング制約データＤ８０６の一例を示す図である。
【図６】本発明の実施の形態１にかかる配線周波数データＤ８０４の一例を示す図である。
【図７】本発明の実施の形態１にかかるクロック配線部８０４の動作を示すフローチャートである。
【図８】本発明の実施の形態１にかかる優先順位データＤ９０１の一例を示す図である。
【図９】本発明の実施の形態１にかかる電流データＤ９０３の一例を示す図である。
【図１０】本発明の実施の形態１にかかる通常配線部８０５の動作を示すフローチャートである。
【図１１】本発明の実施の形態１にかかる半導体レイアウト装置８００の構成を示すブロック図である。
【図１２】本発明の実施の形態１にかかる半導体レイアウト装置８００によるレイアウト処理の具体例を示す図である。
【発明を実施するための形態】
【００１３】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、簡略化している。なお、各図面において、同一の要素には同一の符号を付し、必要に応じて重複説明を省略する。
【００１４】
はじめに本実施の形態にかかる半導体レイアウト装置のハードウェア構成を説明する。図１は、本実施の形態にかかる半導体レイアウト装置を実施するためのコンピュータシステム構成の一例を示す図である。図示するように、当該システムは、コンピュータ装置１０と、サーバ２０と、を有する。サーバ２０は、内部に記録媒体３０を備える。コンピュータ装置１０と、サーバ２０は、ネットワーク４０を介して接続する。
【００１５】
ネットワーク４０は、移動体通信網や、専用線網や、ＬＡＮ（Local Area Network）といった有線通信や無線通信を含めた各種のネットワーク、あるいはこれらのネットワークが相互に接続されたネットワークを適用可能である。
【００１６】
サーバ２０は、ＣＰＵ（Central Processing Unit）で構成される処理部（図示せず）と、記録媒体３０と、入出力インターフェースである入出力部（図示せず）と、を備える。サーバ２０は、本実施の形態における半導体レイアウト装置を実現するための実行プログラムや、ネットリスト等などのデータを、記録媒体３０内に記憶している。実行プログラムには、後述する半導体レイアウト処理のためのプログラム（半導体レイアウトプログラム）が含まれている。記録媒体３０は、ハードディスクなどの記憶装置を用いて構成されている。サーバ２０は、実行プログラムやデータを、ネットワーク４０を介してコンピュータ装置１０へ提供することが可能である。
【００１７】
コンピュータ装置１０は、ＣＰＵ（図示せず）と、記憶装置（図示せず）と、通信部（図示せず）と、入出力インターフェース（図示せず）と、を備える。コンピュータ装置１０は、例えばエンジニアリングワークステーション等である。本実施の形態にかかる半導体レイアウト装置は、コンピュータ装置１０によって実現される（半導体レイアウト装置は、コンピュータ装置１０に内蔵される。換言すると、半導体レイアウト装置は、コンピュータ装置１０の一機能として実現される。）。コンピュータ装置４０は、サーバ２０上の実行プログラム（半導体レイアウトプログラムを含む）をネットワーク２０を介してダウンロードする。そして、コンピュータ装置１０は、ダウンロードした各データが記憶される記録媒体から実行プログラム（半導体レイアウトプログラムを含む）を読み出して実行する。
【００１８】
なお、本実施の形態におけるタイミング解析装置の実行プログラムは、サーバ２０の記録媒体３０に記憶される形態には限定しない。実行プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータ装置１０に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、実行プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータ装置１０に供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、実行プログラムをコンピュータ装置１０に供給できる。
【００１９】
続いて、本実施の形態にかかる半導体レイアウト装置８００の構成について説明する。図２は、本実施の形態にかかる半導体レイアウト装置８００の構成を示すブロック図である。半導体レイアウト装置８００は、周波数解析部８０２と、セル配置部８０３と、配線部８１０と、ルールエラー修復部８０６と、を備える。配線部８１０は、クロック配線部８０４と、通常配線部８０５と、を備える。
【００２０】
半導体レイアウト装置８００は、記録媒体３０からネットリストＤ８０１と、製造ルールＤ８０２と、セルライブラリＤ８０３と、動作パターンデータＤ８０５と、タイミング制約データＤ８０６と、を読み出して使用する。ネットリストＤ８０１と、製造ルールＤ８０２と、セルライブラリＤ８０３と、動作パターンデータＤ８０５と、タイミング制約データＤ８０６と、は、半導体レイアウト装置８００がレイアウト対象とする半導体集積回路を設計するための各種情報である。これらの情報の一部または全部を設計情報とも記載する。
【００２１】
なお、上述の説明では記録媒体３０は、サーバ２０内にあるものとして説明したが、必ずしもこれに限られず、半導体レイアウト装置８００が読み出し可能な任意の記憶装置（例えばコンピュータ装置１０に着脱可能なＵＳＢメモリ、コンピュータ装置１０の内部記憶装置等）であればよい。
【００２２】
ネットリストＤ８０１には、レイアウト対象の半導体集積回路の回路構成が記述されている。すなわち、ネットリストＤ８０１には、回路の論理的な接続関係が記述されている。ネットリストＤ８０１は、たとえばＶｅｒｉｌｏｇ等の記述言語で記述され、ＩＥＥＥ１３６４−２００５にその記述方法が規定されている。
【００２３】
図３は、ネットリストＤ８０１から把握できる回路構成の一例を示す図である。図３の例では、ＡＮＤ回路、ＯＲ回路等の接続関係を把握することができる。
【００２４】
製造ルールＤ８０２は、レイアウト対象の半導体集積回路の各製造元が定める情報である。製造ルールＤ８０２には、製造上の問題とならないための制約が記述されている。製造ルールＤ８０２は、たとえばエレクトロマイグレーションや製造上の間隔違反、配線幅の制約等が記述されている。
【００２５】
セルライブラリＤ８０３には、スタンダードセルや、マクロセル等の遅延情報や、電力情報が記述されている。セルライブラリＤ８０３は、例えばＳｙｎｏｐｓｙｓ社のＬｉｂｒａｒｙと呼ばれる形式で記述される。
【００２６】
図４は、あるセルに関するセルライブラリＤ８０３（詳細にはＬｉｂｒａｒｙ形式のセルライブラリＤ８０３）の一例を示す図である。セルライブラリＤ８０３は、レイアウト対象の半導体集積回路内のセル毎に設けられる。図４に示すセルライブラリＤ８０３内には、スイッチング時の電力、貫通電力、リーク電力等が記載される。スイッチング電力や貫通電力に関しては、入力波形の傾きと、出力側の負荷容量と、の関係から定まる電力を示すテーブルが記載される。リーク電力は、端子の状況により変化する。そのため、セルライブラリＤ８０３内のリーク電力の欄には、端子状態と電力との関係が記載されている。
【００２７】
動作パターンデータＤ８０５には、レイアウト対象の半導体集積回路を動作させるための各種の動作パターンが記述されている。動作パターンデータＤ８０５は、例えばパワー解析や論理シミュレーションの際の入力データとなる。動作パターンデータＤ８０５は、たとえばＳｙｎｏｐｓｙｓ社のＶＣＤ（Ｖａｌｕｅ  Ｃｈａｎｇｅｄ  Ｄｕｍｐ）ファイルという形式で記述される。動作パターンデータＤ８０５は、ＩＥＥＥ  Ｓｔａｎｄａｒｄ  １３６４−１９９５においてその詳細な記述方法が規定されている。
【００２８】
タイミング制約データＤ８０６は、レイアウト対象の半導体集積回路を動作させるためのタイミングに関する制約が記述されている。タイミング制約データＤ８０６は、ＳＴＡ（Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ）等の静的タイミング解析を行うための入力となるデータである。例えば、タイミング制約データＤ８０６は、Ｓｙｎｏｐｓｙｓ社のＳＤＣ（Ｓｙｎｏｐｓｙｓ  Ｄｅｓｉｇｎ  Ｃｏｎｓｔｒａｉｎｔ）と呼ばれる形式で記述される。タイミング制約データＤ８０６は、消費電力計算や論理シミュレーションの結果として算出される。
【００２９】
図５は、タイミング制約データＤ８０６の一例を示す図である。タイミング制約データＤ８０６には、各クロックの周波数や、動作時のタイミングが記述される。例えば図５では、ＰＬ１＿ＣＬＫＯは、１．２５の周期で動作することが記述されている。
【００３０】
以下、図２を参照し、半導体レイアウト装置８００内の各処理部の処理を説明する。なお、説明において適宜図２〜図５を参照する。
【００３１】
周波数解析部８０２は、上述の設計情報（ネットリストＤ８０１、製造ルールＤ８０２、セルライブラリＤ８０３、動作パターンデータＤ８０５、タイミング制約データＤ８０６）を用いてレイアウト対象の半導体集積回路の各配線の動作周波数を記述した配線周波数データＤ８０４を生成して、記録媒体３０に書き込む。以下、図３を参照し、周波数解析部８０２による配線周波数データＤ８０４の算出方法を説明する。
【００３２】
周波数解析部８０２は、ネットリストＤ８０１を参照することにより、半導体集積回路内の接続関係（例えば図３に示す接続関係）を把握する。そして、周波数解析部８０２は、タイミング制約データＤ８０６を参照する。タイミング制約データＤ８０６には、前述のようにクロック等の周期が記載されている。このタイミング制約データＤ８０６を参照することにより、周波数解析部８０２は、各配線の動作周波数を算出する。
【００３３】
以下、図３を参照する。例えば、周波数解析部８０２は、タイミング制約データＤ８０６の記述から配線ｃの動作周波数を確定する。同様に、周波数解析部８０２は、タイミング制約データＤ８０６の記述から配線ａ、ｂ、ｓ０の動作周波数を確定する。次に、周波数解析部８０２は、算出した各配線の動作周波数を基に、各回路の動作を確定する。例えば、図３の最下部に位置するＯＲ回路は、配線ａ、ｂの動作から、セルライブラリＤ８０３を用いてその出力動作を論理的に算出することができる。このように、周波数解析部８０２は、伝搬的な処理により配線周波数データＤ８０４を算出する。なお、周波数解析部８０２の処理は、一般的な消費電力解析ツールの一機能と同等の処理であり、他の手法で配線周波数データＤ８０４を生成しても良い。
【００３４】
図６は、配線周波数データＤ８０４の一例を示す図である。図示するように、各配線についての動作周波数、及びトグル数が記述されている。
【００３５】
セル配置部８０３は、ネットリストＤ８０１と、製造ルールＤ８０２と、セルライブラリＤ８０３と、を参照し、ネットリストＤ８０１内に規定された各セルの配置位置を記述した配置後レイアウトデータＤ８０７を生成する。当該セルの配置処理は、一般的なレイアウトツールの手法を用いて行えばよい。
【００３６】
クロック配線部８０４は、ネットリストＤ８０１、製造ルールＤ８０２、セルライブラリＤ８０３、配線周波数データＤ８０４、タイミング制約データＤ８０６、配置後レイアウトデータＤ８０７、を基にクロック配線後レイアウトデータＤ８０８を生成する。ここで、クロック配線後レイアウトデータＤ８０８とは、クロックに関する配線が配設され、かつ必要に応じて冗長ビア化が行われた配線を含むレイアウトが記述されたデータである。なお、本明細書において配設とは、配線位置を決定することを意味する。クロック配線部８０４の詳細な動作については、図７を参照して後述する。
【００３７】
通常配線部８０５は、ネットリストＤ８０１、製造ルールＤ８０２、セルライブラリＤ８０３、配線周波数データＤ８０４、タイミング制約データＤ８０６、クロック配線後レイアウトデータＤ８０８、を基に通常配線後レイアウトデータＤ８０９を生成する。ここで、通常配線後レイアウトデータＤ８０９とは、通常（クロック配線以外）の配線が配設され、かつ必要に応じて冗長ビア化が行われた配線を含むレイアウトが記述されたデータである。通常配線部８０５の詳細な動作については、図１０を参照して後述する。
【００３８】
ルールエラー修復部８０６は、ネットリストＤ８０１、製造ルールＤ８０２、セルライブラリＤ８０３、配線周波数データＤ８０４、タイミング制約データＤ８０６、通常配線後レイアウトデータＤ８０９、を基にレイアウトデータＤ８１０を生成する。ルールエラー修復部８０６は、例えば製造ルールＤ８０２を用いて通常配線後レイアウトデータＤ８０９のＤＲＣ（Ｄｅｓｉｇｎ  Ｒｕｌｅ  Ｃｈｅｃｋ）を行い、エラーを修復することにより、レイアウトデータＤ８１０を生成する。当該レイアウトデータＤ８１０がレイアウト対象の半導体集積回路のレイアウト情報として使用される。
【００３９】
なお、クロック配線部８０４の処理終了後に、オプティマイゼーション処理（クロックの合わせ込み処理）等を適宜行っても良い。
【００４０】
続いて、図７を参照して、クロック配線部８０４の詳細な動作について説明する。図７は、クロック配線部８０４の動作を示すフローチャートである。クロック配線部８０４は、クロックに関する配線の配設を行う際に、各セルに対して同タイミングにクロックが到達するようにバッファを適宜配置する。なお、説明の便宜のため、バッファの配置については、以下の説明では省略する。クロック配線部８０４は、クロック配線のみを処理対象とする。すなわち、クロック配線部８０４の処理により、クロック配線が通常の配線より先に（優先的に）配設される。
【００４１】
クロック配線部８０４は、ネットリストＤ８０１、配線周波数データＤ８０４、タイミング制約データＤ８０６を基に、レイアウト対象の半導体集積回路の各配線に対して優先順位を付与した優先順位データＤ９０１を生成する（Ｓ９０１）。以下、優先順位付けの方法の一例について説明する。
【００４２】
クロック配線部８０４は、タイミングが厳しい配線を優先的に（先に）配設するほか、エレクトロマイグレーション違反の可能性が高い配線を優先的に配設する。例えば、クロック配線部８０４は、タイミング制約データＤ８０６に対してタイミング解析を実施する。なお、セル配置部８０３がタイミング解析を行っている場合には、その結果を用いても良い。
【００４３】
各配線のタイミングは、クロックとデータ遅延との差分を基に解析したパス間のＳｌａｃｋ（タイミング違反）を時間値として求めることができる。ネットは、複数のパスへの配線であるため、最も悪いパスのＳｌａｃｋ値を算出し、これらの値を記述した優先順位データＤ９０１を生成する。図８は、優先順位データＤ９０１の一例を示す図である。図示するように、各配線（ネット）に対してＳｌａｃｋ値が関連付けられている。
【００４４】
続いて、クロック配線部８０４は、Ｓ９０１で生成した優先順位データＤ９０１内の各配線（ネット）をソートする（Ｓ９０２）。このソートの一例を以下に説明する。
【００４５】
クロック配線部８０４は、例えばＳｌａｃｋ値がマイナスである配線（タイミング制約に違反する配線）のみを優先的に抽出し、Ｓｌａｃｋ値に係数、及び動作周波数を乗算した算出値を求める（下式参照）。Ｓｌａｃｋ値がマイナスではない配線に関しては、動作周波数を算出値として用いる。
Ｓｌａｃｋ値×係数×動作周波数  （なお、係数はオプションである）
【００４６】
クロック配線部８０４は、算出値の大きさを基に優先順位データＤ９０１内の配線をソートする。これにより、クロック配線部８０４は、タイミングが厳しく、エレクトロマイグレーション違反の可能性が高い配線の優先順位を高くする。
【００４７】
なお、クロック配線部８０４は、動作周波数のみを用いてソートを行っても良い。これにより、タイミング違反を考慮できないものの、一定程度の効果を得ることができる。
【００４８】
続いて、クロック配線部８０４は、優先順位の高い配線から配設処理を行い、配設処理を行った当該配線についてのビアの配置を決定する（Ｓ９０３〜Ｓ９０８）。以下、詳細を説明する。クロック配線部８０４は、優先順位データＤ９０１を読み出し、優先順位が最も高い配線の配設処理を実行する（Ｓ９０４）。そして、クロック配線部８０４は、この配線の配置位置を記述した配線データＤ９０２に書き込む（Ｓ９０４）。この際、クロック配線部８０４は、単一ビアをこの配線上に配置する。
【００４９】
クロック配線部８０４は、Ｓ９０４にて配線の配置位置を決定した後に、各データ（セルライブラリＤ８０３、配線周波数データＤ８０４、配線データＤ９０２）を用いて、この配線についての電力計算を行う（Ｓ９０５）。クロック配線部８０４は、配線データＤ９０２を参照することにより配線長を算出し、この配線長から配線容量を算出する。配線容量の算出処理には、例えばＬＰＥ（レイアウト寄生素子抽出）を行えば良い。なお、配線容量は、後に配設される配線状況により変化する場合があるため、算出後に係数を乗算する等して重み付けを適宜行っても良い。
【００５０】
クロック配線部８０４は、算出した配線容量と、セルライブラリＤ８０３と、配線周波数Ｄ８０４と、を基に、対象としている配線と接続するセルの電力を算出する。前述のようにセルライブラリＤ８０３には、入力波形なまりと、負荷容量と、の関係がテーブルで記載されている。配線の配設段階では、入力波形なまりが定まらない場合があるため、たとえば最も電力を消費する入力波形なまりを選択して、電力計算を行えばよい。電力算出の詳細は、一般的に以下の算出式（数１）を用いて行われる。詳細には、非特許文献１、非特許文献２を参照されたい。
【００５１】
【数１】
2013225194.tif 000003
【００５２】
電力の算出後に、以下の一般式（数２）を用いることにより、クロック配線部８０４は、セルから当該配線に流れる電流が記載された電流データＤ９０３を算出する。図９は、電流データＤ９０３の一例を示す図である。
【００５３】
【数２】
2013225194.tif 000004
【００５４】
クロック配線部８０４は、配設対象の配線に対する電力算出（Ｓ９０５）の後に、当該配線に関するエレクトロマイグレーションチェックを実行する（Ｓ９０６）。詳細には、クロック配線部８０４は、電流データＤ９０３を参照することにより、セルから配線に流れる電流を求め、当該電流と配線の断面構造から電流密度を算出する。そして、クロック配線部８０４は、この電流密度を以下の（数３）に入力することによりエレクトロマイグレーションでの配線寿命を算出する。そして、クロック配線部８０４は、製造ルールＤ８０２に規定された制約条件と比較する等により、当該配線がエレクトロマイグレーションに違反しているか（エレクトロマイグレーションエラーであるか）をチェックする（Ｓ９０６）。
【００５５】
【数３】
2013225194.tif 000005
【００５６】
エラーが存在する場合、クロック配線部８０４は、処理対象の配線上の単一ビアを冗長ビアに変換する（Ｓ９０７）。クロック配線部８０４は、冗長ビアに変換する際に製造ルールＤ８０２をチェックし、ビアの間隔違反等が生じる場合には当該配線の配置位置を調節する（Ｓ９０７）。ここで、クロック配線部８０４は、配設対象以外の配線の位置を変更しない。配置位置の調節によっても制約違反が解消しない場合、クロック配線部８０４は、冗長ビアへの変換を断念する、または対象とする配線上の一部の単一ビアのみを冗長ビアに変換する。一部の単一ビアを冗長ビアに変換する場合、クロック配線部８０４は、セルとの距離が近い単一ビアを優先して単一ビアに変換すればよい。
【００５７】
クロック配線部８０４は、Ｓ９０４〜Ｓ９０６の処理を優先順位に応じて全ての配線について行う（Ｓ９０８）。クロック配線部８０４は、このように１本ずつ配線の配設、及びその配線上のビアの配置（どこにビアを配置するか、冗長ビアを配置するか、それとも単一ビアを配置するか）を算出し、当該情報が反映されたクロック配線後レイアウトデータＤ８０８を生成する。
【００５８】
続いて、図１０を参照して、通常配線部８０５の動作について説明する。通常配線部８０５は、クロック配線以外の配線の配置を決定するとともに、当該配線上のビアについて規定する処理である。
【００５９】
通常配線部８０５の処理は、扱う配線がクロックに関する配線では無い点を除けば、クロック配線部８０４の処理と同様である。すなわち、Ｓ１００１〜Ｓ１００８の処理（図１０）は、Ｓ９０１〜Ｓ９０８の処理（図７）と対応する。以下、図１０を参照する。
【００６０】
はじめに通常配線部８０５は、Ｓ９０１と同様の処理を行い、各配線に対して優先順位を付与した優先順位データＤ１００１を生成する（Ｓ１００１）。通常配線部８０５は、Ｓ１００１で生成した優先順位データＤ１００１内の各配線（ネット）をソートする（Ｓ１００２）。
【００６１】
続いて、通常配線部８０５は、優先順位の高い配線から配設処理を行い、配設処理を行った当該配線についてのビアの配置を決定する（Ｓ１００３〜Ｓ１００８）。通常配線部８０５は、優先順位データＤ１００１を読み出し、優先順位が最も高い配線の配設処理を実行する（Ｓ１００４）。そして、通常配線部８０５は、この配線の設置位置を記述した配線データＤ１００２に書き込む（Ｓ１００４）。この際、通常配線部８０５は、単一ビアをこの配線上に配置する。
【００６２】
通常配線部８０５は、Ｓ９０４にて配線の配置位置を決定した後に、各データ（セルライブラリＤ８０３、配線周波数データＤ８０４、配線データＤ１００２）を用いて、この配線についての電力計算を行う（Ｓ１００５）。そして、通常配線部８０５は、配設対象の配線にする電力算出（Ｓ１００５）の後に、当該配線に関するエレクトロマイグレーションチェックを実行する（Ｓ１００６）。エラーが存在する場合、通常配線部８０５は、処理対象の配線上の単一ビアを冗長ビアに変換し、当該配線の配置位置を調整する（Ｓ１００７）。
【００６３】
通常配線部８０５は、Ｓ１００４〜Ｓ１００６の処理を優先順位に応じて全ての配線について行う（Ｓ１００８）。通常配線部８０５は、このように１本ずつ配線の配設、及びその配線上のビアの配置（どこにビアを配置するか、冗長ビアを配置するか、それとも単一ビアを配置するか）を算出し、当該情報が反映された通常配線後レイアウトデータＤ８０９を生成する。
【００６４】
上述の説明では、配線部８１０内に２つの処理部があるものとして説明したが、必ずしもこれに限られず、図１１に示す構成としても良い。配線部８１０は、クロック配線と通常の配線を分類せずに扱う。この場合、配線部８１０は、図７と同一の処理を行うが、配線の優先順位付けの段階で、クロック配線の優先順位が通常配線の優先順位よりも必ず高くなるように設定する。そして、配線部８１０は、配線後レイアウトデータＤ８１１（図１０における通常配線後レイアウトデータＤ８０９に相当）を生成する。
【００６５】
続いて、図１２を参照して、本実施の形態にかかる半導体レイアウト装置８００によるレイアウト処理の具体例を説明する。図１２は、本実施の形態にかかる半導体レイアウト装置８００によるレイアウト処理の流れを示す図である。
【００６６】
図１２（Ａ）は、最も優先順位の高い配線Ｎ１０１を配置した状態を示す図である。配線Ｎ１０１は、セルＣ１０１と接続する配線である。この段階で、配線部８１０は、エレクトロマイグレーションチェックを行う。ここで、エレクトロマイグレーションチェックにおいてエラーが生じた（タイミング及びエレクトロマイグレーションの少なくとも一方が厳しい）ものとする。
【００６７】
図１２（Ｂ）は、配線部８１０が配線Ｎ１０１上の単一ビア（Ｖ１０１）を冗長ビア化した状態（Ｖ１０１及びＶ１０４を有する状態）を示す図である。
【００６８】
図１２（Ｃ）は、配線部８１０が次の配線（Ｎ１０２）の配設を検討している段階を模式的に示す図である。配線部８１０は、配線Ｎ１０２の配置位置を図１２（Ｃ）に示す位置にすることを検討する。しかしこの場合、配線Ｎ１０２の近傍にビアＶ１０４が配置されているため、単一ビアＶ１０２を配置した段階でビア間隔Ｔ１０１が規定間隔を違反することを把握できる。そこで、配線部８１０は、配線Ｎ１０２の配置位置を調整する。ここで、配設が終了しているＮ１０１についての配置位置及びビアの配置については変更を行わない。
【００６９】
図１２（Ｄ）は、配線部８１０による全ての配線配設が終了した場合のレイアウトを示す図である。配線部８１０は、配線１本ずつ配設位置を決めるとともに、既に配設した配線については変更を行わない。そして、配線部８１０は、ある配線の配設時にエレクトロマイグレーションチェックにおいてエラーが生じる場合には、当該配線の単一ビアを冗長ビアに変換し、冗長ビア化に伴う配線間隔を調整（当該配線の配置位置が制約違反にならないように調整）する。
【００７０】
続いて、本実施の形態にかかる半導体レイアウト装置８００の効果について説明する。本実施の形態にかかる配線部８１０は、１本毎に配設処理を行い、配設処理を行う際に、まず単一ビアを配置する。そして、配線部８１０は、エレクトロマイグレーションのエラーが生じる配線のみを冗長ビアに変換する。これにより、他の配線間隔を余分に設ける必要が無くなり、高集積化を図ることができる。さらに、配線部８１０は、配線周波数データ（Ｄ８０４）を用いることにより、１本の配線の配設毎にエレクトロマイグレーションのチェックを行うことができる。配線部８１０は、ある配線上の単一ビアを冗長ビアに変換する場合には、当該配線についてのみ配設位置を調節する。そのため、配線工程が早期に収束する。すなわち、本実施の形態にかかる半導体レイアウト装置８００は、エレクトロマイグレーションの問題を解決し、高集積化を実現したレイアウト設計を行うことが出来る。
【００７１】
さらに、配線部８１０は、エレクトロマイグレーションエラーの生じやすい（動作周波数が高い）配線の順序を示す優先順位を定める。そして、配線部８１０は、その優先順位に従って１本ずつ配設を行う。そのため、冗長ビアにしなければいけない可能性の高い配線については、他の配線の配置位置の影響を受けることなく冗長ビアに変更することができる。換言すると、ある配線についてエレクトロマイグレーションチェックのエラーが生じた場合であっても他の配線（及び他の配線上のビア）の配設位置によっては冗長ビア化が出来ない場合がある。本実施の形態にかかる半導体レイアウト装置８００は、冗長ビア化を行う必要が高い順序で配線の配設を行うため、冗長ビア化の必要性が高い配線について冗長ビア化できないという状況を回避できる。
【００７２】
さらに、配線部８１０は、動作周波数に加え、各配線のタイミング（上述のＳｌａｃｋ値）をも考慮して配設の優先順位を定めている。これにより、より正確に冗長ビア化が求められる配線を算出することが可能となる。
【００７３】
また、配線部８１０は、ある配線上の単一ビアを冗長ビアに変更する場合、全てのビアを冗長ビアにしてもよい。これにより、エレクトロマイグレーションの問題をより確実に回避することができる。
【００７４】
一方、配線部８１０は、ある配線上の単一ビアを冗長ビアに変更する場合、セルに近い一部のビアを冗長ビアにしてもよい。これにより、エレクトロマイグレーションの問題を解決し、かつ面積増加を最小限に抑えることができる。
【００７５】
さらに、配線部８１０は、クロック配線を通常の配線よりも優先して配設している。これにより、クロック配線の冗長ビア化が担保される。また、クロック配線についての配置位置を定め、当該配線上のビアの配置を優先的に定めることにより、オプティマイゼーション等の処理を通常の配線の配設前に行うことができる。
【００７６】
以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【符号の説明】
【００７７】
１０  コンピュータ装置
２０  サーバ
３０  記録媒体
４０  ネットワーク
８００  半導体レイアウト装置
８０２  周波数解析部
８０３  セル配置部
８０４  クロック配線部
８０５  通常配線部
８０６  ルールエラー修復部
８１０  配線部
Ｄ８０１  ネットリスト
Ｄ８０２  製造ルール
Ｄ８０３  セルライブラリ
Ｄ８０４  配線周波数データ
Ｄ８０５  動作パターンデータ
Ｄ８０６  タイミング制約データ
Ｄ８０７  配置後レイアウトデータ
Ｄ８０８  クロック配線後レイアウトデータ
Ｄ８０９  通常配線後レイアウトデータ
Ｄ８１０  レイアウトデータ
Ｄ８１１  配線後レイアウトデータ
Ｄ９０１  優先順位データ
Ｄ９０２  配線データ
Ｄ９０３  電流データ
Ｃ１０１  セル
Ｎ１０１  配線
Ｎ１０２  配線
Ｖ１０１  ビア
Ｖ１０２  ビア
Ｖ１０３  ビア
Ｖ１０４  ビア
【図１】
2013225194.tif 000006
【図２】
2013225194.tif 000007
【図３】
2013225194.tif 000008
【図４】
2013225194.tif 000009
【図５】
2013225194.tif 000010
【図６】
2013225194.tif 000011
【図７】
2013225194.tif 000012
【図８】
2013225194.tif 000013
【図９】
2013225194.tif 000014
【図１０】
2013225194.tif 000015
【図１１】
2013225194.tif 000016
【図１２】
2013225194.tif 000017