(57)【要約】【課題】メモリやアナログなどのカスタムコアのレイアウト設計では、人手によるレイアウト設計が多く、レイアウト設計中に電流情報の認識が困難であり、またエレクトロマイグレーションに関するルールがプロセスの微細化により複雑化するため、エレクトロマイグレーションを守ったレイアウト設計がより困難となり、レイアウト設計後の修正工数が大きい。【解決手段】回路シミュレーションの結果から得た電流情報から電流成分に加工する工程と、配線、ビアのエレクトロマイグレーションに対する許容電流値に関する情報を使って、配線幅やビアの個数を決定、適宜変更する工程と、エレクトロマイグレーションに関するエラーが起きやすい場所を検出・修正する工程を有する。【選択図】図２
2008186061.tif 000002
【特許請求の範囲】
【請求項１】
回路シミュレーションを行う工程と、前記回路シミュレーションの結果を複数の電流情報に変換する工程と、配線、ビアのエレクトロマイグレーションに関する許容電流情報を読み込む工程と、レイアウト上に作成する配線、ビアの電気的接続情報を設定する工程と、前記電気的接続情報から配線、ビアの個数、形状を算出する算出工程と、レイアウト上に配線、ビアを作成する作成工程と、前記電流情報と前記許容電流からエレクトロマイグレーションを満たさない配線、ビアを検出し、修正する検証工程を有することを特徴とする半導体設計方法。
【請求項２】
前記回路シミュレーションはレイアウト設計前に実施され、複数の異なる条件で実施される請求項１に記載の半導体設計方法。
【請求項３】
さらに、前記回路シミュレーションの結果はインスタンスの入出力端子に関する電流値を有し、前記算出工程は、前記電流情報作成工程で得られた複数の電流情報に応じて異なる許容電流情報を使用するか、または算出方法を変更する請求項１または請求項２に記載の半導体設計方法。
【請求項４】
前記作成工程は、配線作成中にレイアウトデータとの接続した場合、配線の形状を変更あるいは新規に配線データを作成する修正工程を有する請求項１に記載の半導体設計方法。
【請求項５】
前記算出工程は、ビアを流れる電流方向を設定し、前記電気的接続情報と前記許容電流情報から、ビアの個数、形状を算出する工程と、ビア作成後にビアに関するデータベースを作成する工程を有する請求項１または請求項２記載の半導体設計方法。
【請求項６】
前記検証工程は、同一配線層で接続されている配線とビアの接続関係と、前記ビアの電流に関するデータベースからビアに関する許容電流値の不足を検出し、修正を行う工程を有する請求項５に記載の半導体設計方法。
【請求項７】
前記検証工程は、前記ビアの電流に関するデータベースによって、接続関係にある配線に関する許容電流値の不足を検出し、修正を行う工程を有する請求項５に記載の半導体設計方法。
【請求項８】
前記許容電流情報は、レイアウトデータ上のビアと配線の位置関係によって異なり、前記生成工程、算出工程は、前記許容電流情報で設定されたビアと配線の位置関係が同じレイアウトデータを用いることを特徴とする請求項１または請求項２に記載の半導体設計方法。
【請求項９】
前記算出工程は、指定された面積に対してビアの許容電流量が最大化するようなレイアウトデータを構成する請求項８に記載の半導体設計方法。
【請求項１０】
さらに、前記電流情報に応じて接続を行うレイアウトデータの限定、または算出方法を変更する工程を有する請求項３に記載の半導体設計方法。
【請求項１１】
前記算出工程または検証工程は、前記電気的接続情報として設定した配線の形状から電流値を想定し、前記許容電流情報からビアの個数、形状を算出する請求項１に記載の半導体設計方法。
【請求項１２】
レイアウト設計前にレイアウトデータの配線情報を設定する工程を有し、前記回路シミュレーションは前記配線情報に基づいた等価回路を追加して実施し、前記回路シミュレーションの結果と配線情報から算出される許容電流値とを比較する請求項１または請求項２に記載の半導体設計方法。
【請求項１３】
前記配線情報からビアに関する情報を算出し、前記等価回路に追加する請求項１２に記載の半導体設計方法。
【請求項１４】
前記回路シミュレーションは、回路図上の異なる２つのノード間に与えた情報のうち特性が同じノード間においては、前記等価回路を追加する請求項１２に記載の半導体設計方法。
【請求項１５】
前記配線情報とレイアウト設計後の配線情報を比較する工程を有する請求項１２に記載の半導体設計方法。
【請求項１６】
請求項１から請求項１５までのいずれかに記載の半導体設計方法における各手順を実現する複数の手段を有する半導体設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体の設計方法にかかわり、特にエレクトロマイグレーションによる故障を抑制するためのレイアウト設計の技術に関する。
【背景技術】
【０００２】
半導体プロセスの微細化に伴い、電流量の増加、配線断面積の減少等によりエレクトロマイグレーション（ＥＭ）と呼ばれる金属配線の断線を引き起こす可能性が増加している。従来の設計フローでは、図４０に示すように、レイアウト設計後、レイアウトデータの寄生素子抽出（ＬＰＥ：Layout Parameter Extractor）を行い、ＬＰＥ後のネットリストに対し回路シミュレーションを実施し、各配線、ビアを通る電流量を測定し、プロセスルールごとに決まっている配線、ビアに関するエレクトロマイグレーションルールに違反しているかどうかを判定する。エレクトロマイグレーションルール違反が発生した場合、手作業もしくは自動化手法によるレイアウト修正が行われ、再度、ＬＰＥないし回路シミュレーションを実施し、エレクトロマイグレーションエラーがなくなるまで続ける。エレクトロマイグレーションエラーが起きた場合の修正方法としては、特許文献１ではレイアウト設計後の検証でエレクトロマイグレーションエラーを起こしている箇所では、エレクトロマイグレーションエラーを回避するように配線の分岐数を増加する方法が記載されている。また、特許文献２では配線の各分岐での電流量を計算し、エレクトロマイグレーションエラーを起こしている配線データに対して、配線幅を増加する方法が記載されている。
【特許文献１】特開平１１−９７５４１号公報
【特許文献２】特開２００２−２１７２９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
アナログコアやメモリコアなどのカスタムコアのレイアウト設計では、任意のサイズのデバイスが使用され、回路の動作特性や面積を考慮したデバイスの配置や配線設計を行う必要があり、主に人手による設計が行われている。レイアウトの配線に関する制約として、回路設計者からレイアウト設計者から渡される情報の多くは、ノイズの影響に配慮した一部の信号配線に対する配線幅や間隔やシールド配線などの情報であり、エレクトロマイグレーションに関する指示はされることは少ない。このため、エレクトロマイグレーションの考慮にはレイアウト設計者の経験によるところが大きいが、エレクトロマイグレーションを正確に考慮するには、回路シミュレーションでの素子の電流情報が必要であるため、人手による設計では、エレクトロマイグレーションを考慮したレイアウト設計を行うことは基本的に難しく、エラーを生じやすい。エレクトロマイグレーションエラーを検出するために、レイアウト設計後、寄生素子抽出を行い、エレクトロマイグレーション検証を実行するが、寄生素子抽出やエレクトロマイグレーション検証にかかる工数は素子数の増大に伴い増加している。また、エレクトロマイグレーションルール違反する配線やビアの修正を行う場合は、上記の制約を考えながら行う必要があり、周囲のレイアウト形状の修正も必要な場合は、より修正工数が大きくなる。
【０００４】
さらに、エレクトロマイグレーションに対する配線、ビアの許容電流量は、配線、ビアに流れる電流が一方向に流れるのか双方向に流れるのか、あるいは使用する配線層や配線幅等によっても異なるため、考慮すべき項目が多く、人手によるレイアウト設計で対応することは難しい。
【０００５】
本発明は上記のような実情に鑑みてなされたもので、エレクトロマイグレーションの厳しいプロセスにおいて、人手によるレイアウト設計を行う場合においても、電流方向等の条件によって変わるエレクトロマイグレーションルールを考慮しながらレイアウト設計を行うことで設計工数の増大を回避し、効率良く信頼性の高い半導体装置の設計方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の半導体設計方法は、回路シミュレーションを行う工程と、前記回路シミュレーションの結果を複数の電流情報に変換する工程と、配線、ビアのエレクトロマイグレーションに関する許容電流情報を読み込む工程と、レイアウト上に作成する配線、ビアの電気的接続情報を設定する工程と、前記電気的接続情報から配線、ビアの個数、形状を算出する算出工程と、レイアウト上に配線、ビアを作成する作成工程と、前記電流情報と前記許容電流からエレクトロマイグレーションを満たさない配線、ビアを検出し、修正する検証工程を有する。
【０００７】
この半導体設計方法によれば、回路シミュレーションの結果とシミュレーション結果を加工した電流情報を使い、設計者が仮定した接続関係から配線、ビアに流れる電流量を見積もり、電流量に対応した配線、ビアの個数、形状を算出することで、設計者の意図するレイアウト設計を行いながら、エレクトロマイグレーションエラーの発生しにくいレイアウトを作成することが可能となる。さらに、レイアウト作成後に接続情報から電流量を見積もり、エレクトロマイグレーションエラーを起こす可能性のある箇所を検出できるので、少ない工数でレイアウト設計を行うことが可能となる。
【０００８】
さらに本発明の半導体設計方法は、前記回路シミュレーションはレイアウト設計前に実施され、複数の異なる条件で実施するものとする。
【０００９】
この半導体設計方法によれば、複数の条件によって実行された回路シミュレーションの中で最も厳しい結果を使用することで、よりエレクトロマイグレーションに対する耐性のあるレイアウト設計が可能である。ここで複数の条件とはトランジスタのモデル、温度、電圧等を意味する。
【００１０】
さらに、前記回路シミュレーションの結果はインスタンスの入出力端子に関する電流値を有し、前記算出工程は、前記電流情報作成工程で得られた複数の電流情報に応じて異なる許容電流情報を使用するか、または算出方法を変更する。
【００１１】
この半導体設計方法によれば、電流成分や電流方向に応じて異なる許容電流値を反映したレイアウト設計が可能となり、エレクトロマイグレーションエラーを起こしにくいレイアウトを設計することができる。ここで電流方向とは、平均的に配線に対して単一の方向に流れる単方向電流か、平均的に逆向きにも同程度流れる双方向電流などである。この半導体設計方法により、配線に対して単方向に流れる度合いが大きいほど発生しやすくなるエレクトロマイグレーションを考慮した配線幅、ビア個数の決定が可能となる。
【００１２】
さらに本発明の半導体設計方法によれば、前記作成工程は、配線の作成により前記電気的接続情報が変更された場合、更新された電気的接続情報から求められる電流値と配線の形状から求められる許容電流値とを比較し、許容電流値が不足している場合、配線の形状を変更する修正工程を有する。
【００１３】
この半導体設計方法によれば、配線作成中に仮定したものと異なる接続関係を構築した場合でも、電流量を再計算し変更に応じて配線データの形状を修正することが可能となることが可能となる。
【００１４】
さらに、本発明の半導体設計方法によれば、前記作成工程は、配線作成中にレイアウトデータと接続した場合、配線の形状を変更あるいは新規に配線データを作成する修正工程を有する。
【００１５】
この半導体設計方法によれば、配線作成中に当初接続を予定していないインスタンスの端子などのレイアウトデータと接続した場合も、エレクトロマイグレーションルールを守るために配線幅の修正や周囲形状など必要に応じ配線幅の設定、作成が可能となるので、エレクトロマイグレーションルールを守りつつ設計者の意図したレイアウトを作成することが可能となる
さらに、本発明の半導体設計方法によれば、前記算出工程は、ビアを流れる電流方向を設定し、前記電気的接続情報と前記許容電流情報から、ビアの個数、形状を算出する工程と、ビア作成後にビアに関するデータベースを作成する工程を有する。
【００１６】
この半導体設計方法によれば、ビアの電流を見積もることで、ビアに関するレイアウトデータを、エレクトロマイグレーションエラーを起こしにくいデータにすることが可能となり、さらにビアに流れる電流をデータベース化することで、それ以外の配線やビアに流れる電流量を見積もることが可能となり、エレクトロマイグレーションエラーが発生しにくい配線やビアに関するレイアウトデータを作成することが可能となる。
【００１７】
さらに本発明の半導体設計方法は、前記検証工程は、同一配線層で接続されている配線とビアの接続関係と、前記ビアの電流に関するデータベースからビアに関する許容電流値の不足を検出し、修正を行う工程を有する。
【００１８】
この半導体設計方法によれば、配線に接続しているビアやインスタンス端子から予想される電流量に対してビアが不足している場合でも、レイアウトデータの接続関係とビアに設定した電流の向きからビアの過不足を検出し、修正することが可能となり、エレクトロマイグレーションエラーを起こしにくいレイアウトデータを作成することが可能となる。
【００１９】
さらに本発明の半導体設計方法は、前記検証工程は、前記ビアの電流に関するデータベースによって、接続関係にある配線に関する許容電流値の不足を検出し、修正を行う工程を有する。
【００２０】
この半導体設計方法によれば、エレクトロマイグレーションエラーを起こす可能性がある配線において、その配線に接続するビアに関する電流量に対応した配線に関するレイアウトデータに変更されるので、エレクトロマイグレーションエラーを防止することが可能となる。
【００２１】
さらに本発明の半導体設計方法は、前記許容電流情報は、レイアウトデータ上のビアと配線の位置関係によって異なり、前記算出工程、生成工程は、前記許容電流情報で設定されたビアと配線の位置関係が同じレイアウトデータを用いる。
【００２２】
この半導体設計方法によれば、ビアと配線の位置関係によって異なるエレクトロマイグレーションの許容電流値を考慮しながら、容易にレイアウト設計することが可能となる。
【００２３】
さらに本発明の半導体設計方法は、前記レイアウト設計工程は、指定された面積に対してビアの許容電流量が最大化するようにレイアウトデータを構成する。
【００２４】
この半導体設計方法によれば、設計者が想定している面積の中でエレクトロマイグレーションエラーが起きにくいレイアウトデータを作成することが可能となる。
【００２５】
さらに本発明の半導体設計方法は、前記電流情報に応じて配線形状の算出や接続を行うレイアウトデータを限定、または算出方法を変更する。
【００２６】
この半導体設計方法によれば、ＭＯＳのゲート端子などに接続して電流が双方向に流れる配線を考慮してエレクトロマイグレーションの考慮を行うことが可能となる。
前記算出工程は、前記電気的接続情報として設定した配線の形状から電流値を想定し、前記許容電流情報からビアの個数、形状を算出する。
この発明によれば、配線形状がエレクトロマイグレーションルールを満たしていれば、エレクトロマイグレーションのルールを守ったビアを作成することが容易に可能となり、より少ない工数でレイアウト設計を行うことが可能となる。
【００２７】
さらに本発明の半導体設計方法は、レイアウト設計前にレイアウトデータの配線情報を設定する工程を有し、前記回路シミュレーションは前記配線情報に基づいた等価回路を追加して実施し、前記回路シミュレーションの結果と配線情報から算出される許容電流値とを比較する。
【００２８】
この半導体設計方法によれば、回路シミュレーション時に等価回路により配線形状を見込んだシミュレーションを実施することが可能となり、レイアウト設計する前にエレクトロマイグレーションエラーが発生するおそれの低い配線形状を見積もることが可能となり、レイアウト設計後のエレクトロマイグレーションエラーに起因する修正工数を削減することが可能となる。
【００２９】
さらに本発明の半導体設計方法は、前記配線情報からビアに関する情報を算出し、前記等価回路に追加する。
【００３０】
この半導体設計方法によれば、配線情報からビアも含めた等価回路が作成可能なので、より正確な回路シミュレーションを実施することができ、エレクトロマイグレーションエラーに関する修正工数を削減することが可能となる。
【００３１】
さらに本発明の半導体設計方法は、前記回路シミュレーションは、回路図上の異なる２つのノード間に与えた情報のうち特性が同じノード間においては、前記等価回路を追加する。
【００３２】
この半導体設計方法によれば、配線間の関係を考慮した回路シミュレーションを実施することが可能となるので、エレクトロマイグレーションエラーが発生する可能性の低い配線形状を見積もることが可能となり、レイアウト設計後のエレクトロマイグレーションエラーに起因する修正工数を削減することが可能となる。
【００３３】
さらに本発明の半導体設計方法は、前記配線情報とレイアウト設計後の配線情報を比較する工程を有する。
【００３４】
この半導体設計方法によれば、回路生成時、回路シミュレーション時に見込んだ配線形状を保っているか検証することができるので、レイアウト後の修正工数を削減することが可能となる。
【発明の効果】
【００３５】
本発明によれば、回路シミュレーションで得た結果から、レイアウトデータでの接続関係から変化する電流量に対してもエレクトロマイグレーションエラーを起こしにくいレイアウトデータを作成できるとともに、複雑化するエレクトロマイグレーションルールも容易に考慮できるため、人手によるレイアウト設計においてもエレクトロマイグレーションエラーが発生しにくく、より少ない工数でレイアウト設計を行うことが可能となる。
【発明を実施するための最良の形態】
【００３６】
以下、本発明の実施の形態における半導体設計方法について図面を参照しつつ詳細に説明する。
【００３７】
（実施の形態１）
図１は本発明の実施の形態１における半導体設計方法に関する設計装置の構成を示すブロック図である。この設計装置は、設計者が操作内容を入力する入力装置Ｅ１と、操作内容に応じて内部に設定された処理内容に従って処理を実施する処理装置Ｅ２と、処理結果のデータを記憶する記憶装置Ｅ３と、処理結果を表示する表示装置Ｅ４から構成されている。
【００３８】
図２は本発明の半導体設計方法に関する設計フローを示したもので、実線はフローの順番を、一点鎖線はデータの流れを示している。設計者は回路図作成工程Ｓ１０の後、図示しないトランジスタモデルや検証条件を複数設定し、回路シミュレーション工程Ｓ２０を実施し、シミュレーション結果Ｄ１０が作成される。回路シミュレーション後、シミュレーション結果Ｄ１０に対して電流情報作成工程Ｓ３０を実施し、電流情報Ｄ２０を作成する。レイアウト設計工程Ｓ４０はセル、素子等のインスタンスと、外部との入出力端子であるピンを配置する配置工程Ｓ５０と、配線、ビアの編集を行う配線工程Ｓ６０と、エレクトロマイグレーションルール違反を起こしている配線、ビアを検出し、修正を行う検証工程Ｓ７０からなる。レイアウト設計工程Ｓ４０は、記憶装置Ｅ３に格納されている電流情報Ｄ２０と配線、ビアに関するエレクトロマイグレーションに関する許容電流値を記述している許容電流情報Ｄ３０に基づき、エレクトロマイグレーションを満足するように配線、ビアの作成、編集を行う。レイアウト設計工程Ｓ４０において、配置工程Ｓ５０、配線工程Ｓ６０、検証工程Ｓ７０は入力装置Ｅ１からの設計者による入力内容に必要に応じ、任意の順番で実施される。
【００３９】
図３で示すＭＯＳトランジスタから構成される回路でのエレクトロマイグレーションを考慮したレイアウト設計を例に説明する。図３において、ＶＤＤは電源電位、ＶＳＳは接地電位、ＶＮＢ，ＶＰＢはこのセルの入力端子、ＯＵＴは出力端子である。本実施の形態では、電源電位、接地電位、入力端子、出力端子を外部入出力端子と定義する。鎖線で囲まれたＩＮＶ１，ＩＮＶ２，ＩＮＶ３は同一の構成からなり、縦続接続されている。本実施の形態では、回路シミュレーション結果Ｄ１０は、ＭＯＳトランジスタであれば、図３の一点鎖線で囲まれたトランジスタＰＡ１，ＮＡ１に示すように、ゲートＧ、ソースＳ、ドレインＤの３端子の電流情報を持ち、電流情報作成工程Ｓ３０により電流情報Ｄ２０として加工され、電流情報Ｄ２０に基づきエレクトロマイグレーションを考慮したレイアウト設計が行われる。
【００４０】
図４は電流情報作成工程Ｓ３０のフロー図である。まず同一のネットごとに端子をグループ化し、複数の異なる条件、トランジスタモデル、温度、電圧等に対して、端子ごとにシミュレーション結果Ｄ１０から必要な電流成分を算出し、実施した結果から最も電流値の大きいデータを使用する。これを回路の全ネット対して実行する。本例では回路シミュレーションは過渡解析を想定しており、ＤＣは全解析時間での平均電流であり、さらに電流が０以上の部分から算出される平均電流であるＤＣ＋と電流が０未満の部分から算出される平均電流であるＤＣ−が計算される。さらに外部入出力端子についても同じ成分の電流情報を回路シミュレーションの結果Ｄ１０から算出され、電流情報Ｄ２０に格納される。基本的にゲート端子はＤＣ電流がほぼ０であり、ソース端子、ドレイン端子はＤＣ電流が＋または−の値を持っている。ここで電流量の符号は、流出する方をマイナス、流入する方をプラスとしている。
【００４１】
図５は図３の回路図に対して電流情報作成工程Ｓ３０によりネットＶＳＳ，ｎｏｄｅ１、ＮＮ１の電流情報Ｄ２０を作成した例である。図６、図７はそれぞれＶＳＳに接続しているＮＡ１のソース端子と、ｎｏｄｅ１に接続しているＮＡ２のゲート端子の電流波形例である。ＮＡ１のソース端子などのＶＳＳにつながるＭＯＳのソース端子は電流が流出方向であり、全解析時間内でマイナスとなるので、平均電流ＤＣと−成分のＤＣ電流は同じになる。一方、ｎｏｄｅ１につながる端子は、トランジスタＮＢ２，ＰＢ２のゲート端子は流入する電流と流出する電流が等しく、ＤＣ電流がほぼ０であるのに対し、トランジスタＮＢ１，ＰＢ１のドレイン端子については、ＤＣ電流が逆符号で、トランジスタＮＢ１のドレイン端子のＤＣ＋、ＰＢ１のドレイン端子のＤＣ−がほぼ等しい。
【００４２】
図８は許容電流情報Ｄ３０の例であり、配線、ビアのエレクトロマイグレーションの許容電流値を示している。配線は１μｍ当たり、ビアは１個当たりの許容電流情報である。本実施の形態では、エレクトロマイグレーションをより正確に見積もるために、電流の方向や、形状による許容電流値の変更を設定する。方向については、ＤＣの値が大きいほど一方向に流れる電流が大きいことが想定されるため、配線に対してはより厳しいエレクトロマイグレーションルールを設定する必要がある。このため、図８では配線、ビアともに許容電流値はＤＣの値により異なる値を設定している。他方、ＤＣの絶対値がほぼ０に近い場合は、電流は一方向だけでなく、逆方向にも流れていると考えられるため、エレクトロマイグレーションの許容電流値は大きいものを使用する。本実施の形態では一方向に流れる電流か否かを判定する平均電流の絶対値に対する閾値ＤＣｍｉｎを０．１ｍＡとする。また、ビアに関しては、エレクトロマイグレーションに対する許容電流値はビアと配線とのマージン、すなわち配線がビアに対してどれだけオーバーラップ量を持っているかによって異なるため、図９に示すようにビアと配線間のマージンごとに異なる許容電流値を設定している。
なお、本実施の形態では配線構造は図１０に示すものとし、Ｍ１は最下層の金属配線層であり、１つ上層の配線層であるＭ２とビアＶｉａ１で接続される。さらにＭ２から１つ上層の配線層であるＭ３とはビアＶｉａ２で接続される。
【００４３】
本例では簡単化のために、図８に示すように、配線についてはＭ２から上層の配線層、ビアについてはＶｉａ１より上のビア層についてエレクトロマイグレーションに対する許容電流値は同一であるとする。
【００４４】
次に、本実施の形態のレイアウト設計工程Ｓ４０について説明する。
【００４５】
レイアウト設計工程Ｓ４０の中の配置工程Ｓ５０は、デバイス、機能セルを配置するインスタンス配置工程Ｓ５１、外部との入出力端子、電源、接地端子のピンデータを配置するピン配置工程Ｓ５２から構成される。図１１（ａ）はピン配置工程Ｓ５２のフロー図を示したもので、設計者が入力装置Ｅ１から外部入出力端子を選択すると、電流情報Ｄ２０から該当する外部入出力端子の電流情報を取得する。続いて、設計者が入力装置Ｅ１からピンとして発生する配線層とピンの分割数、分割割合を入力すると、許容電流情報Ｄ３０から発生する各ピンの配線幅を算出する。設計者は、必要であれば配線幅を修正し、レイアウト上の任意の場所に発生する。発生後、対応する電流情報に関するテーブルを図１１（ｂ）のように作成する。
【００４６】
配線工程Ｓ６０は、配線作成工程Ｓ６１、ビア作成工程Ｓ６２から構成される。
【００４７】
図１２（ａ）は配線作成工程Ｓ６１のフロー図である。配線作成工程Ｓ６１では、まず設計者が入力装置Ｅ１より始点となるレイアウト座標を指定する。本例では基本的に配線層Ｍ１層以上の配線層で配線を作成することを考えているため、指定した座標がＭＯＳゲート端子上の場合、図１２（ｂ）に見られる処理を行う。すなわち、設計者が接続の必要性があると認識している同一ネットのゲート端子をポリシリコンで接続し、さらにゲート端子上にそれぞれ配線層Ｍ１に接続するためのビアデータを作成する。ゲート端子以外の場合、配線データが接続を予定する電流情報を持ったレイアウトデータ、すなわちインスタンス端子、ビアデータを必要に応じて選択する。この際に選択可能なレイアウトデータは、当然同一ネットに接続するデータのみである。続いてこれらの情報に基づき２つの配線幅を算出する。１つは始点が電流情報を持ったレイアウトデータの場合に、エレクトロマイグレーションルールを満足する配線幅を算出する。２つ目は、始点のレイアウトデータと接続予定のレイアウトデータの電流情報から電流量を算出し、すべてのデータが接続してもエレクトロマイグレーションルールを満たすような配線幅を算出する。後者の算出方法は、平均電流ＤＣが絶対値で閾値ＤＣ_ｍｉｎ以上のデータと、以下のデータでまとめ、各々ＤＣ＋，ＤＣ−を足し合わせたうち大きい値と許容電流情報Ｄ３０から配線幅を算出する。２つの配線幅がエレクトロマイグレーションに関するルールを満足するのに必要な配線幅として表示装置Ｅ４に表示される。設計者は最終的な配線幅を入力装置Ｅ１から決定し、始点から配線を作成する。なお仮に始点および接続予定データに電流情報を持ったレイアウトデータが存在しない場合は、任意の配線幅を設計者が設定する。また配線データの作成途中に電流情報を持ったレイアウトデータであるインスタンス端子、ビアデータと接続した場合は、あらかじめ想定していた配線データの接続情報からの変更となるため、修正工程Ｓ６１１にて配線データの修正を行う。
【００４８】
図１３は配線修正工程Ｓ６１１を示したものである。作成中の配線データが電流情報を持ったレイアウトデータと接続する場合、配線作成時に想定していた電流情報と新規に接続したレイアウトデータの電流情報から、再度配線幅を算出する。算出方法は前述の通りである。新たに算出された配線幅が現在作成中の配線データの配線幅を超えない場合は修正を行わない。超える場合は、配線幅を新たに算出されたものに変更するか、もしくは新規に接続するレイアウトデータとは接続せずに配線を一旦終了し、終了した座標から次に接続するレイアウトデータに対して、エレクトロマイグレーションルールを満たす配線幅で新規の配線データを作成し、レイアウトデータと接続するかを選択する。なお、配線作成中にゲート端子と接続するビアデータと接続した場合は、修正工程は行わないものとする。
【００４９】
続いてビアデータ作成工程Ｓ６２について説明する。図１４はビア作成工程Ｓ６２を示したものである。設計者は入力装置Ｅ１よりビアデータを配置するレイアウトデータを指定する。次に指定されたレイアウトデータから電流情報を取得する。インスタンス端子、ビアデータを指定すれば各々の電流情報が取得され、配線データであれば配線データに接続するレイアウトデータの電流情報が取得される。次に算出工程、配置工程が実施される。図１５（ａ）はビアデータの算出工程、配置工程を図示したものである。設計者は入力装置Ｅ１から配置するビアデータに対して、電流方向を設定する。すなわち、ビアデータを図１５（ｂ）のように端子ＩＮ，ＯＵＴを持ち、ビアデータ間をＩＮからＯＵＴの向きに電流が流れると考える。端子ＩＮはビアデータ作成時に使用された電流情報と逆符号の電流情報を持ち、端子ＯＵＴは同符号の電流情報を持つものとする。続いてビアデータを何分割して配置するかを入力し、各ビアデータに対して配置するレイヤーを指定する。設計者がビアデータのマージン量、Ｘ軸、Ｙ軸の個数を直接指定する場合は、左のフローのように実施され、許容電流値を満足するビアデータが配置される。また設計者がビアデータの配置領域だけを指定する場合は、領域指定後、図１６に見られる工程Ｓ６２１により最大の許容電流を持つビアデータが求められる。ビアデータの一辺の長さＬはマージン量をｍａｇ、ビアの１辺の長さをＷ、ビア間のスペーシングをＳ、ビア個数をＮとすると、
Ｌ＝ｍａｇ＊２＋Ｗ＊Ｎ＋Ｓ＊（Ｎ−１）
と計算されるので、この長さが指定された領域のＸ軸、Ｙ軸の１辺の長さに入る最大の整数Ｎｘ，Ｎｙを求める。Ｎｘ×Ｎｙにビアの許容電流量を掛けたものがこのマージン量に対する許容電流量になるので、複数のマージン量に対して許容電流量が設定されている場合は、すべてのマージン量に対し計算を行い最大の許容電流情報を持つビアデータが算出され、許容電流値が電流情報から求められる電流値を満たせばビアデータは指定された面積の中心座標に配置される。２つの配置方法は用途に応じて使い分けることが望ましい。たとえばＸ，Ｙ個数を設定する方法は配置したいビアデータのパターンがおおよそ決まっている場合に使用する。また領域を指定する方法では、配置領域に対してできるだけ多くのビアを配置するような場合に使用することで、細かい設定をする必要がなく、工数が削減される。
【００５０】
後処理では、配置されたビアデータに関して図１７に示すようなテーブルが作成される。ここで、ＩＮ側、ＯＵＴ側と書かれている箇所は、前述したビアデータのＩＮ、ＯＵＴ端子に接続するレイアウトデータである。なおビア作成工程では電流値の算出にあたって、ＤＣについても単純加算を行い、使用する許容電流情報を決める。
【００５１】
具体的に図３の回路図、図５の電流情報、図８の許容電流情報に対する上記レイアウト設計工程Ｓ４０を使った設計方法の例を示す。
【００５２】
図１８（ａ）は具体的に配置工程Ｓ５０によって、トランジスタＮＡ１，ＮＢ１を配置した図である。Ｇ，Ｓ，Ｄはそれぞれレイアウト上のゲート端子、ソース端子、ドレイン端子である。ソース端子、ドレイン端子上には配線のためあらかじめトランジスタの拡散領域と接続しているＭ１層が配置されており、例えばビア作成工程Ｓ６２などで入力装置Ｅ１から指定すると、電流情報が取得される。
【００５３】
図１９はビアデータ生成工程によりトランジスタＮＡ１のソース端子にビアデータＶＤ１を配置した図である。まずビアデータ作成工程で、入力装置Ｅ１から配置座標をトランジスタＮＡ１のソース端子上に設定すると、処理装置Ｅ２がインスタンス端子上であると認識し、端子電流値が取得される。端子電流値は図５よりトランジスタＮＡ１のソース端子ではＤＣ電流＝０．５ｍＡ等の電流情報が取得される。続いて電流の向きはＩＮ端子側に接続するものとし、分割数は１、レイヤーはＶｉａ１として設定し、形状設定で配置するものとする。マージン量を０．１μｍに設定すると、ＤＣ＝―０．５ｍＡであるため、図８のＤＣ電流０．１ｍＡ以上の許容電流情報が参照され、ＤＣ−＝０．５ｍＡ、マージン量０．１μｍから、エレクトロマイグレーションルールを満足するためにはビア個数３個必要であると算出される。
【００５４】
次に、設計者が入力装置Ｅ１より配置するビアデータのＸ個数、Ｙ個数を入力する。図１９左図はＸ軸１個、Ｙ軸３個として配置したものである。仮に配線制約等からＸ軸方向をより幅をとならないビアにしたい場合は、マージン量を０μｍとすると、先ほどと同じ処理が実施され、必要となるビア数がＤＣ＋、に対して各々５個と算出され、設計者の指示によりＸ軸１個、Ｙ軸５個として配置すると、図１９右図のように配置される。配置後、使用された電流情報がビアデータごとにテーブルとして作成される。図２０は図１９左図のビアデータに関して作成したテーブルである。
【００５５】
次に、トランジスタＮＡ１のドレイン端子とトランジスタＮＢ１のソース端子間のネットＮＮ１を接続するために、配線作成工程Ｓ６１の実施を入力装置Ｅ１から指示する。入力装置Ｅ１からトランジスタＮＡ１のドレイン端子を配線の始点として指定する。始点であるＮＡ１のドレイン端子の電流情報から配線幅が見積られ、図５のネットＮＮ１に関するトランジスタＮＡ１のドレイン端子に関する電流情報から、ＤＣ＝０．５ｍＡよりＤＣ電流０．１ｍＡ以上許容電流情報が使用され、ＤＣ＋に対しては０．８４μｍの配線幅が必要であると計算される。本例では、接続予定となる端子、ビアデータは選択しなかったが、仮にトランジスタＮＢ１のソース端子を選択したとしても、電流値が逆符号で同じ大きさであるために、配線幅は変更されない。表示装置Ｅ４に先ほど算出した配線幅Ｗ＝０．８４μｍが表示されるので、配線幅の修正が必要なければ、設計者が入力装置Ｅ１から配線幅を０．８４μｍと入力し、図１８（ｂ）のようにトランジスタＮＡ１のドレイン端子からトランジスタＮＢ１のソース端子に向けて、配線幅Ｗ＝０．８４μｍの配線データＰＤ_ＮＮ１を作成する。
【００５６】
仮に図２１（ａ）のようにトランジスタＮＢ１がゲート幅を等分割した２つのＭＯＳトランジスタＮＢ１１，ＮＢ１２から構成されている場合を考える。ｎｏｄｅ１に関する電流情報は図２２を使用するとする。
【００５７】
トランジスタＮＢ１のソース端子から配線を行うことを考える。設計者が入力装置Ｅ１から配線データ作成工程の実施を指示し、ＭＯＳトランジスタＮＢ１１のソース端子を選択すると、前述のように電流情報が取得される。ＤＣ＝−０．２５ｍＡなので、平均電流の絶対値０．１ｍＡ以上の許容電流情報が使用され、前述と同様なフローで配線幅は０．４２μｍと求められ、表示装置Ｅ４に表示される。本例では接続予定のデータを選択せずに、配線幅０．４２μｍで配線データを作成する。設計者は入力装置Ｅ１から配線幅を０．４２μｍと入力し、配線データＰＤ_ＮＮ１をＭＯＳトランジスタＮＢ１１のソース端子を始点として配線の作成を開始し、トランジスタＮＡ１のドレイン端子に接続する。トランジスタＮＡ１のドレイン端子に接続すると、修正工程が配線データＰＤ_ＮＮ１１に関して実施され、まず電流値の計算が行われる。ともにＤＣの絶対値は０．１ｍＡであり、トランジスタＮＡ１のドレイン端子はＤＣ＋に値を持っているが、ＭＯＳトランジスタＮＢ１１のソース端子は逆にＤＣ−に値を持つので、この場合、個別に計算され、今回のケースであれば接続したトランジスタＮＡ１のドレイン電流はＤＣ＋＝０．５ｍＡに対して、配線データＰＤ_ＮＮ１の配線幅から算出許容電流値が不足しているので、配線データに関する修正が行われる。具体的には配線幅を許容電流値に合わせる処理を実施する場合は、図２１（ｃ）右図のように配線幅がＷ１＝０．４２μｍからＷ２＝０．８４μｍに変更される。配線を新規に作成する処理を実施する場合は、中間地点で０．４２μｍの配線幅を持つ配線データＰＤ_ＮＮ１が作成された後、トランジスタＮＡ１のドレイン端子に接続する配線については、許容電流値に適合するために図２１（ｃ）左図のように０．８４μｍの配線幅を持つ配線データＰＤ_ＮＮ１２が作成される。ここでは、配線幅０．８４μｍで、トランジスタＮＡ１、ＭＯＳトランジスタＮＢ１１間を接続するように入力装置Ｅ１から指示すると、図２１（ｃ）左図のように配線データが修正される。続いて、ＭＯＳトランジスタＮＢ１２と接続する配線データを作成する。ＭＯＳトランジスタＮＢ１２のソース端子から配線データを作成するよう入力装置Ｅ１から指示すると、図２２の電流情報から配線幅が０．４２μｍと設定され、図２１（ｄ）のように配線データＰＤ_ＮＮ１３を作成する。
【００５８】
図２３（ａ）はＩＮＶ１作成のため、トランジスタＰＡ１，ＰＢ１をインスタンス配置工程Ｓ５１によって配置し、トランジスタＰＡ１のドレイン端子とトランジスタＰＢ１のソース端子間の配線データＰＤ_ＰＰ１を配線作成工程により作成したレイアウトデータである。
【００５９】
次にトランジスタＰＢ１のドレイン端子とトランジスタＮＢ１のドレイン端子間のネット名ｎｏｄｅ１に関する配線データを作成する。配線データ作成工程の実施を入力装置Ｅ１から指示し、配線データの始点となるトランジスタＮＢ１のドレイン端子を入力装置Ｅ１から選択し、また追加で接続データを選択しないとすると、図５の電流情報と図８の許容電流情報から配線幅Ｗ＝０．８４μｍとなる。ここでは、配線幅０．８４μｍが表示装置Ｅ４に表示される。設計者は配線幅０．８４μｍとして入力し、トランジスタＮＢ１のドレイン端子を起点として配線を行う。トランジスタＰＢ１のドレイン端子に接続すると、修正工程が実行されるが、このケースではＰＢ１のドレイン端子のＤＣ−とＮＢ１のドレイン端子のＤＣ＋が同じ大きさのため、配線幅の修正は必要ないと判断される。続いて、トランジスタＮＢ２，ＰＢ２のゲート端子に接続を行う。配線作成工程で配線データの始点として、設計者は入力装置Ｅ１からトランジスタＮＢ２のゲート端子を選択すると、ゲート端子なので、図１２（ｂ）に示すような形で処理される。具体的にはまず接続するゲート端子があれば指定する。ここでは、トランジスタＰＢ２のゲート端子を選択する。さらに、トランジスタＮＢ２，ＰＢ２の接続したゲート端子上にゲート端子からＭ１層まで図示しないコンタクトを作成したあと、Ｖｉａ１のビアデータＶＤ_ｎｏｄｅ１２を作成する。ビアデータを作成する。ビアデータの作成はビア作成工程Ｓ６２と同じであり、電流情報はトランジスタＮＢ２，ＰＢ２のゲート端子の電流量から計算されたものになるので、ＤＣ＝０ｍＡ、ＤＣ＋＝０．５ｍＡ、ＤＣ−＝０．５ｍＡになる。分割数１とし、マージンを０．１μｍとすると、許容電流情報は平均電流の絶対値０．１ｍＡ未満が使用され、ビア数は１個と求められ配置を行い、配置後ビアデータに関するテーブルが作成される。続いて、配線データＰＤ_ｎｏｄｅ１１についても同様にビアデータを配置するために、ビア生成工程を実施すると、前記と同様に電流情報が求められる。このケースでは、ＮＢ２，ＰＢ２のドレイン端子の電流情報が、同じ大きさで異なる符号のＤＣを持つために、加算されることでＤＣは０ｍＡとなるため、０．１ｍＡ以下の許容電流値が使用され、ＤＣ＋＝０．５ｍＡ、ＤＣ−＝０．５ｍＡであるから、分割数１、ビアをＶｉａ１、マージン０．１μｍとすると、ビア１個と算出され、配線ＰＤ_ｎｏｄｅ１１上にビア名ＶＤ_ｎｏｄｅ１１として配置する。続いて、ビアデータＶＤ_ｎｏｄｅ１１，ＶＤ_ｎｏｄｅ１２間を接続する配線データＰＤ_ｎｏｄｅ１２を作成する。配線作成工程の指示を入力装置Ｅ１に入力し、始点のビアとしてＶＤ_ｎｏｄｅ１１を選択し、接続箇所を未指定にすると電流情報よりＤＣ電流＝０ｍＡ、ＤＣ＋＝０．５ｍＡ、ＤＣ−＝０．５ｍＡとなるから、必要な配線幅は０．４２μｍとなる。ビアデータＶＤ_ｎｏｄｅ１１を始点として配線を作成し、ＶＤ_ｎｏｄｅ１２と接続する。ＶＤ_ｎｏｄｅ１２はゲート電極に接続するビアデータなので、修正工程Ｓ６１１が実施されず、図２３（ｃ）のように作成される。仮にビアデータＶＤ_ｎｏｄｅ１２を始点としてＶＤ_ｎｏｄｅ１１に対して配線データを作成した場合は、修正��程が実施されるが、配線データの許容電流値を超過しないので、配線幅は修正されない。次に、ネットＶＳＳに関する配線データを作成する。図２４（ａ）はＩＮＶ１，ＩＮＶ２，ＩＮＶ３をＸ軸方向に配置し、トランジスタＮＡ１，ＮＡ２，ＮＡ３を図示したものである。トランジスタＮＡ１，ＮＡ２，ＮＡ３のソース端子間を接続する配線データＰＤ_ＶＳ１を配線層Ｍ２層で作成する場合を考える。すでに、トランジスタＮＡ１，ＮＡ２，ＮＡ３のソース端子上には各ソース端子の電流量に対応したビアデータＶＤ_ＶＳ１〜ＶＤ_ＶＳ３が作成されている。配線作成工程Ｓ６１の実施を指定し、配線の始点を選択する。ここでは、配線の始点をＶＤ_ＶＳ１上に設定する。続いて、接続予定のビアデータＶＤ_ＶＳ２，ＶＤ_ＶＳ３を選択すると、配線データの配線幅は最小値であるビアデータＶＤ_ＶＳ１に流入する電流量を満足する配線幅０．５μｍと、ビアデータＶＤ_ＶＳ１〜ＶＤ_ＶＳ３の電流量から配線幅１．５μｍが算出され、表示装置Ｅ４に表示され、設計者が配線幅を設定し配線を行う。ここでは、配線幅１．５μｍに設定して配線データの作成を行う。配線データＰＤ_ＶＳ１がビアデータＶＤ_ＶＳ２，ＶＤ_ＶＳ３と接続するごとに接続工程Ｓ６１１が実施されるが、配線幅がビアデータＶＤ_ＶＳ２，ＶＤ_ＶＳ３の電流量を考慮した幅となっているため、図２４（ｂ）に示すようにビアデータＶＤ_ＶＳ２，ＶＤ_ＶＳ３の接続時にも形状の変更はない。
【００６０】
図２５（ａ）は図２４の場合とは異なり、配線幅を決定する際に、始点をビアデータＶＤ_ＶＳ１、接続予定のデータとしてビアデータＶＤ_ＶＳ２を選択し、配線幅を１．０μｍに設定したものである。配線データＰＤ_ＶＳ２がビアデータＶＤ_ＶＳ２を接続した後、ビアデータＶＤ_ＶＳ３と接続する場合には、接続工程Ｓ６１１が実施されるが、電流量が配線幅に対して超過するため、処理装置Ｅ２は表示装置Ｅ４から設計者に対し、配線幅の修正か、新規配線データの作成を行うか、選択を求める。設計者が配線層Ｍ２のＹ軸方向の領域をできるだけ少なくすることを考え、後述するように画面両端から電源配線を行うことを想定し、配線幅は変更なしで配線データの作成を選択すると、配線データはビアデータＶＤ_ＶＳ２，ＶＤ_ＶＳ３間で分割され、同じ配線幅を持った新しい配線データＰＤ_ＶＳ３が作成され、ビアデータＶＤ_ＶＳ３と接続する。処理終了後、ビアデータの接続内容に関するテーブルが更新される。
【００６１】
次に、ネットＶＳＳの外部接続用のピンデータとネットＶＳＳの配線データとの接続を考える。図２４（ｂ）で作成された配線データＰＤ_ＶＳと接続する場合を考える。ピンデータは電流情報Ｄ２０から対応する外部入出力端子の電流情報より配線幅が求められる。入力装置Ｅ１よりピン生成工程の実施を指示し、指定する外部入出力端子をＶＳＳ、分割数を１、配線層をＭ３とすると、図５、図８より必要となる配線幅は１．５μｍと算出される。設計者は配線幅を１．５μｍに設定し、ピンデータＰＮ_ＶＳ所望の位置に配置する。配置後、電流情報がピンデータＰＮ_ＶＳに付加される。
【００６２】
図２６（ａ）はピン配置工程Ｓ５２でピンデータＰＮ_ＶＳ１を画面左上に配置したものである。続いて、ピンデータを始点とした配線データをすでに説明しているように配線作成工程Ｓ６１で作成する。図２６（ｂ）はピンデータＰＮ_ＶＳ１から配線データＰＤ_ＶＳ４を配線幅１．５μｍとして画面−Ｙ軸方向に作成したものである。さらに配線データＰＤ_ＶＳを−Ｘ軸方向に延長したものである。両者の重なり部分に接続用のビアデータを配置する。ビアデータの生成を入力装置Ｅ１から指示し、作成する座標を配線データＰＤ_ＶＳとＰＤ_ＶＳ４の交点とする。ビアデータＶＤ_ＶＳ４は配線データＰＤ_ＶＳ，ＰＤ_ＶＳ４間に作成され、電流の向きとして、ビアデータのＩＮ端子側をＰＤ_ＶＳ、ＯＵＴ端子側をＰＤ_ＶＳ４と設定する。続いて、図５の電流情報が取得され、ビアデータ配置工程が実施される。配線データＰＤ_ＶＳに接続するビアデータおよびピンデータの電流量の電流量から１．５ｍＡ以上の許容電流量が必要となる。ここでは領域指定での配置を行うものとする。ビア階層をＶｉａ２、マージンを０．１μｍとし、図２７のようにビア配置領域を入力装置Ｅ１から指定すると、配置できる個数はＸ個数＝３、Ｙ個数＝３となり、合計９個が配置可能となるので、ビアデータＶＤ_ＶＳ４を配置指定領域に配置する。ビアデータＶＤ_ＶＳ４の許容電流量は、配線データＰＤ_ＶＳに接続するビアデータＶＤ_ＶＳ１〜ＶＤ_ＶＳ３の合計の電流量、およびピンデータＰＮ_ＶＳ１の電流量よりも大きいので、配置処理は終了し、ビアデータの関連情報がテーブル形式で作成される。
【００６３】
次に、ネットＶＳＳに関するピンデータを別の位置に２つに分けて配置し、図２５（ｂ）の配線データＰＤ_ＶＳ２，ＰＤ_ＶＳ３の両側から配線することを考える。まず、設計者はピン配置工程Ｓ５２において、外部入出力端子としてＶＳＳを選択し、配置数を入力装置Ｅ１から２とする。続いて、２つ配置するのに必要となる最小の配線幅が図５の電流情報Ｄ２０と図８の許容電流情報Ｄ３０から求められ、表示装置Ｅ４に表示される。設計者は必要であれば幅を変更しピンデータの配置を行う。図２８は図２５（ｂ）にピンデータＰＮ_ＶＳ２，ＰＮ_ＶＳ３を配置した図である。
【００６４】
続いて、図２９に示すように、ピンデータと配線データを接続する。前例と同様にピンデータから−Ｙ軸方向に配線データＰＤ_ＶＳ５，ＰＤ_ＶＳ６を作成し、さらに配線データＰＤ_ＶＳ２，ＰＤ_ＶＳ３を−Ｘ，＋Ｘ軸方向に延長する。重なり部分にビアデータを配置することを考える。ビア生成工程の実施を指示し、配線データＰＤ_ＶＳ５上を指定し、ビアデータのＩＮ端子側がＰＤ_ＶＳ２、ＯＵＴ端子側がＰＤ_ＶＳ５として設定する。続いて、ビア配置工程から分割数指定を選択し、分割数１、ビア層Ｖｉａ２、マージン０．１μｍとすると、必要ビア数５個と算出されるので、Ｘ個数＝２、Ｙ個数＝３として配置する。配線データＰＤ_ＶＳ３とＰＤ_ＶＳ６間に配置するビアデータＶＤ_ＶＳ６も同様に算出し配置すると、図２９のようになる。配置後それぞれ該当するテーブルを更新する。本例ではビアデータＶＤ_ＶＳ５，ＶＤ_ＶＳ６の個数が同数にならなかったが、対称性が必要なレイアウトデータでは、エレクトロマイグレーションを起こさないビアの個数、形状を算出し、同じ形状のビアデータを配置することが望ましい。
【００６５】
続いて、本実施の形態の検証工程Ｓ７０を説明する。
【００６６】
検証工程Ｓ７０は電源ネットを対象にしたビア検証工程Ｓ７１、電源ネットを対象にした配線検証工程Ｓ７２を実施する。
【００６７】
電源ネットを対象としたビア検証工程Ｓ７１は、図３０に示すようにネットごとにビア層全層についての検証Ｓ７１１を行い、次に、グループ化された配線に対して検証・修正Ｓ７１２を行い、再度、ビア層についての検証Ｓ７１１を行う。
【００６８】
ビアの全レイヤーについての検証Ｓ７１１は、関連する電源ネットのビアデータの許容電流値の総和を算出し、電流情報で算出されている該当ネットの端子電流の総量と比較して、端子電流の総量より許容電流値が小さいビアレイヤーを表示装置Ｅ４に出力する。
【００６９】
ここでは、問題のある配線・ビアの例として、図３１に示すような配線データ、ビアデータを考える。ここでは、説明のため、簡略化して記載している。ＰＮ_１はネットＶＳＳのピンデータであり、ＰＤ_１は配線層Ｍ３の配線データ、ＰＤ_２〜ＰＤ_４は配線層Ｍ２の配線データ、ＶＤ２_１，ＶＤ２_２はビアレイヤーＶｉａ２で作成されたビアデータ、ＶＤ１_１〜ＶＤ１_７はビアレイヤーＶｉａ１で作成されたビアデータである。ここでは、以下のように配線データ、ピンデータを設定する。なお、ＶＳＳネットに対してのみ説明するので、以下では、ＤＣをＤＣ−として記載する。接地電位ＶＳＳに接続するので、実際の平均電流ＤＣはＤＣ−と同じ絶対値を持ち、負号がついたものになる。
【００７０】
ＰＤ_１  配線幅２．４μｍ  ＰＤ_２  配線幅  ０．５μｍ
ＰＤ_３  配線幅１．０μｍ  ＰＤ_４  配線幅  ０．８μｍ
ＶＤ２_１  ビア数６個（Ｘ＝３，Ｙ＝２）  マージン０．１μｍ  ＤＣ＝１．２ｍＡ  ＩＮ端子側配線ＰＤ_３、ＯＵＴ端子側配線データ  ＰＤ_１
ＶＤ２_２  ビア数４個（Ｘ＝２，Ｙ＝２）  マージン０．１μｍ  ＤＣ＝０．８ｍＡ  ＩＮ端子側配線データＰＤ_４、ＯＵＴ端子側配線データ  ＰＤ_１
ＶＤ１_１，ＶＤ１_２  ビア数１個（Ｘ＝１，Ｙ＝１）、マージン０．１μｍ  ＤＣ＝０．２ｍＡ、ＩＮ端子側配線データ  デバイス端子、ＯＵＴ端子側配線データ  ＰＤ_２
ＶＤ１_３，ＶＤ１_４，ＶＤ１_５  各々ビア数２個（Ｘ＝１，Ｙ＝２），マージン０．１μｍ  ＤＣ＝０．４ｍＡ、ＩＮ端子側配線データ  デバイス端子、ＯＵＴ端子側配線データ  ＰＤ_３
ＶＤ１_６，ＶＤ１_７  各々ビア数２個（Ｘ＝１，Ｙ＝２）、マージン０．１μｍ  ＤＣ＝０．４ｍＡ、ＩＮ端子側配線データ  デバイス端子  ＯＵＴ端子側配線データ  ＰＤ_４
まず、ビアの全レイヤーについての検証Ｓ７１１を実施する。ビアレイヤーＶｉａ１はビアデータＶＤ１_１〜ＶＤ１_７、Ｖｉａ２はビアデータＶＤ２_１，ＶＤ２_２を合算した許容電流値が記載されている。ＶＳＳの電流情報から得られる電流量と比較して、ビアレイヤーＶｉａ２は不足していることが判明する。
【００７１】
続いて検証修正工程Ｓ７１２が実施される。図３３は検証修正工程Ｓ７１２のフロー図である。
【００７２】
まず同一配線層のみで接続されている配線データをグループ化する。図３１で説明すると、グループ１  ＰＤ_１、グループ２  ＰＤ_２、ＰＤ_３、グループ３  ＰＤ_４  となる。続いて配線グループごとに接続しているビアデータについて、配線データがＩＮ端子側に接続しているビアデータについては許容電流値を、ＯＵＴ端子側に接続しているビアデータについては電流情報を合算し、先ほど求めた許容電流値と比較することで、ＩＮ端子側に接続するビアデータを検証する。具体的に説明すると、グループ１については、ＯＵＴ端子側のビアデータのみしか存在していないため、比較を行わない。続いてグループ２については、ＩＮ端子側はＶＤ２_１となり、許容電流値はＤＣ＝１．２ｍＡとなる。ＯＵＴ端子側についてはビアデータＶＤ１_１〜ＶＤ１_５となり、電流情報はＤＣ＝１．６ｍＡとなる。このため流入する電流に対して、ビアデータＶＤ２_１の許容電流値が少ないことが判明し、表示装置Ｅ４に表示される。次にビアデータの修正を行うが、既存のビアデータＶＤ２_１を修正するか、新規にビアデータを配置するかを設計者が入力装置Ｅ１より選択する。ここでは、既存のビアデータに追加することを選択すると、不足している電流量が見積もられる。本例ではＤＣ＝０．４ｍＡである。続いて、ビアデータＶＤ２_１に接続する配線データＰＤ_１，ＰＤ_３の重なり領域にビアデータが追加できるかを判断する。この際の配置できるビアデータの見積もりとしては、現在配置されているマージン量を保つものとする。本例の場合、ＰＤ_１、ＰＤ_３の重なり領域をＸ個数＝３、Ｙ個数＝３に変更可能であることから、ビアデータＶＤ２_１が以下のように変更される。
【００７３】
ＶＤ２_１  ビア数９個（Ｘ＝３，Ｙ＝３）  マージン０．１μｍ  ＤＣ＝１．８ｍＡ  ＩＮ端子側配線データ  ＰＤ_３  ＯＵＴ端子側配線データ  ＰＤ_１
続いて、グループ３に対して同様な検証が実施されるが、グループ３については配線に対してＩＮ端子側が接続するビアデータの電流量と配線に対してＯＵＴ端子側に接続するビアデータの許容電流量が等しいので修正は必要ない。次に、再度、ビア全層についての検証Ｓ７１１が実施され、図３４のような結果が得られるので、電源ネットを対象としたビア検証工程Ｓ７１の処理に関するエラーがなくなったので、ビア検証工程Ｓ７１は終了する。
【００７４】
次に、電源ネットを対象にした配線検証工程Ｓ７２を実施する。図３５は電源ネットを対象にした配線検証工程Ｓ７２を示したものであり、配線データごとに接続しているビアデータから、配線データがＩＮ端子側、ＯＵＴ端子側に接続しているビアデータの電流情報を合算し、配線データの配線幅から求められる許容電流値と比較して、ビアデータの電流量の方が大きい場合は、表示装置Ｅ４に表示を行い、必要な電流量から配線幅を算出し、配線修正を行う。ビアデータＶＤ２_１を修正した後の前述の図３１のレイアウトデータに対して実施する。まず、配線データＰＤ_１については、ビアデータＶＤ２_１、ＶＤ２_２のＯＵＴ端子側、ピンデータＰＮ_１が接続している。ビアデータＶＤ２_１，ＶＤ２_２の電流情報から電流量はＤＣ＝２．４ｍＡとなるが、配線幅から求められる許容電流値がＤＣ＝２．４ｍＡのため、変更する必要はない。配線データＰＤ_２についても同様に検証を実施するが、ＰＤ_２の配線幅の許容電流量の方が大きく修正は必要ない。配線データＰＤ_３について実施した場合は、接続するビアデータはＶＤ２_１，ＶＤ１_３〜ＶＤ１_５となり、それぞれＩＮ端子、ＯＵＴ端子に接続しているので、これらの電流情報から電流値を算出する。ビアデータＶＤ２_１の電流情報からＤＣ＝１．６ｍＡであり、配線データＰＤ_３の配線幅から求められる許容電流量が１ｍＡと比較して、ビアデータの電流量が大きく、配線幅の修正が必要となり、図８の許容電流値から配線幅１．６μｍとして算出され、ＰＤ_３の配線幅が１．６μｍに変更される。
さらに、配線データＰＤ_４についても同様に、配線検証工程Ｓ７２が実施されるが、配線データの許容電流値の方が大きく、配線幅の修正が必要ない。このように、検証工程Ｓ７０によって条件の厳しい電源ネットに接続するビア、配線に対するエレクトロマイグレーションの検証を容易に実施することが可能となる。
【００７５】
なお、検証工程Ｓ７１において、ピンデータについてビアデータと同様に配線データとＩＮ端子側で接続していると考えることで検証することは可能である。また本例では接地電位について説明したが、電源電位の場合も電流の方向を考慮すれば同様に検証できることはいうまでもない。
【００７６】
本例ではビアの作成時および検証工程において、ビアデータの個数、形状の算出のため、電流情報からビアを流れる電流を算出したが、配線データの形状から求める方法でもかまわない。具体的には図２７の配線データＰＤ_ＶＤ４に配置する場合は配線幅１．５μｍより電流値が最大１．５ｍＡ流れることが想定されるため、１．５ｍＡに見合うビアデータとしてマージン０．１μｍの場合は個数８、マージン０μｍの場合は個数１５として算出される。この方法であれば、配線形状に応じたエレクトロマイグレーションルールを守ったビアを容易に作成することが可能となる。
【００７７】
また、本実施の形態で作成したセルを別のセルのインスタンスとして配置したレイアウト設計を行うことは当然可能である。作成したセルの外部入力端子に対して、必要な電流量が判明しているので、前述と同様に設計することで、階層レイアウト設計についても適用することは可能である。
【００７８】
また本例ではピーク電流については考慮しなかったが、平均電流と同様に設定し、レイアウト設計に反映できることはいうまでもない。
【００７９】
また本例では配線、ビアの作成、修正および検証において同一の電流情報を使用したが、接続関係を設定する度にシミュレーション結果Ｄ１０から再度電流量を求め直すことで、レイアウト設計を行うことも可能である。
【００８０】
また本例ではビアの作成時においてのみ電流方向を指定したが、配線作成時においても電流方向を指定し、使用する許容電流情報を変更してもかまわない。
【００８１】
このように本実施の形態によれば、回路シミュレーションから得られた電流情報とエレクトロマイグレーションに関する許容電流情報とレイアウトの接続情報から、レイアウト設計時にエレクトロマイグレーションを考慮した設計が容易に可能となるため、エレクトロマイグレーションに関するルールを満たすレイアウト設計を効率良く実施することが可能である。さらに、検証機能を使用することによって、エレクトロマイグレーションルールを満たさない箇所を容易に検出、修正することが可能となる。
【００８２】
レイアウト設計工程Ｓ４０で使用する回路シミュレーションを実施するにあたって、長距離配線等寄生素子成分が電流値に影響を与えることが容易に想像できる場合は、あらかじめ回路図作成工程Ｓ１０にて寄生素子に相当する容量等を配置していることが望ましい。
【００８３】
なお、本例では平均電流の絶対値で電流の方向性を区別し許容電流値を変更したが、そのほかの方法、例えばピーク電流の値などで設定してもかまわない。また許容電流値の設定方法も平均電流で階段状に許容電流値を変更する方法でもかまわない。
【００８４】
（実施の形態２）
図３６は本発明の実施の形態２における半導体設計装置のフローを示した図であり、実施の形態１と異なるのは、回路図作成工程Ｓ１０の段階で配線情報Ｄ４０を作成し、ネットリスト修正工程Ｓ１５にて、配置情報に基づきネットリストを修正する。続いて、修正されたネットリストによって回路シミュレーションを実施後、配線情報とシミュレーション結果Ｄ１０と比較する第１の比較工程Ｓ２５が実施される。さらに、レイアウト設計の検証工程Ｓ７０′が実施の形態１で説明した検証工程Ｓ７０と比較して、第２の比較工程が追加されている。
【００８５】
図３７は第１の比較工程Ｓ２５を示した図であり、配線情報Ｄ４０を設定した各ノードと接続するインスタンスの端子電流と設定された配線情報とを比較し、エレクトロマイグレーションエラーが起きるようであれば、該当する配線、電流値を出力画面に表示する。設計者はその情報に基づいて配線情報を修正する。ここで配線情報とは、配線幅、配線長、隣り合う配線との間隔などの形状に関する情報や対称性などの特性上の制約されるべき関係を意味する。
【００８６】
図３８（ａ）に示す回路図を例に説明する。インスタンス１、インスタンス２間を接続する配線ｎｏｄｅ１は回路特性を考えた場合に、ノイズ等の影響を避けたい配線や電流を多く流す可能性のある配線であるとする。また、ｎｏｄｅ１，ｎｏｄｅ２は特性上対称な配線であるとする。回路図作成工程Ｓ１０において、設計者は入力装置Ｅ１からｎｏｄｅ１に対して、図３８（ｂ）のように配線幅、間隔、長さ、配線層等の配線情報を入力する。さらに、ｎｏｄｅ１，ｎｏｄｅ２が対称であるとして、配線情報として設定する。これらの配線情報Ｄ４０は、ネットリスト修正工程Ｓ１５において、図３９に示すように配線部分の配線幅、間隔、長さに応じたラダー型の等価回路と、配線部分の配線情報に相当する許容電流情報から概算されたビア個数に相当するビア部分の等価回路がインスタンス１，２間を接続するものとしてネットリストが作成される。ｎｏｄｅ２はｎｏｄｅ１と対称であるから、同じ等価回路が配置される。
【００８７】
回路シミュレーション工程Ｓ２０はネットリスト修正工程Ｓ１５で作成されたネットリストに対して実行するものとする。回路シミュレーション実施後、第１の比較工程において、回路シミュレーションの結果から取得される端子電流値と配線幅、ビアから求められるエレクトロマイグレーションの許容電流値が比較される。配線幅、ビアの許容電流値が回路シミュレーションで得られた電流値に対して不足している場合は、表示装置Ｅ４に表示する。設計者は配線情報を修正し、再度、回路シミュレーションを行う。さらに、レイアウト設計工程Ｓ４０での検証工程Ｓ７０′に追加された第２の比較工程では回路図で設定された配線情報に対して、レイアウト上のデータが配線幅、ビア個数等を満たしているか検証を行う。
【００８８】
このように本実施の形態によれば、配線に関する情報を設定、回路シミュレーションを行うことで、回路特性を考慮しながらエレクトロマイグレーションエラーが発生する可能性を検証・修正することが可能となるので、レイアウト設計後の後戻り工数を削減することが可能となる。なお、本実施の形態では幅や長さなど配線のレイアウト形状について説明したが、配線に関する抵抗値や容量値から配線形状を見積もる方法でも同一の効果が得られることはいうまでもない。また、配線とビアに関する位置関係として配線とビアのマージンすなわちオーバーラップ量に関して言及したが、例えばビアのスペーシングによって許容電流値が変わる場合は、スペーシングに関する許容電流情報に応じてビアと配線に関するデータが管理されるのはいうまでもない。
【産業上の利用可能性】
【００８９】
本発明の半導体設計方法は、エレクトロマイグレーションを考慮すべき半導体装置の設計において有用である。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施の形態１における半導体設計装置を示した図
【図２】本発明の実施の形態１における半導体装置の設計方法を説明するためのフロー図
【図３】本発明の実施の形態１における半導体装置の回路図
【図４】本発明の実施の形態１の電流情報生成工程を説明するためのフロー図
【図５】本発明の実施の形態１における半導体装置の電流情報を示した図
【図６】本発明の実施の形態１における半導体装置の電流波形を示した図
【図７】本発明の実施の形態１における半導体装置の電流波形を示した図
【図８】本発明の実施の形態１における半導体装置の許容電流情報を示した図
【図９】本発明の実施の形態１における半導体設計方法で使用するビアデータを示した図
【図１０】本発明の実施の形態１の配線の階層構造を示した図
【図１１】本発明の実施の形態１における半導体設計方法のピン生成工程を説明するためのフロー図
【図１２】本発明の実施の形態１における半導体設計方法の配線生成工程を説明するためのフロー図
【図１３】本発明の実施の形態１における半導体設計方法の修正工程を説明するためのフロー図
【図１４】本発明の実施の形態１における半導体設計方法のビア生成工程を説明するためのフロー図
【図１５】本発明の実施の形態１における半導体設計方法のビア生成工程を説明するためのフロー図
【図１６】本発明の実施の形態１における半導体設計方法のビア生成工程を説明するためのフロー図
【図１７】本発明の実施の形態１における半導体設計方法のビア生成工程で作成されるビアの情報に関するテーブル図
【図１８】本発明の実施の形態１における半導体設計方法の配置工程を説明するためのレイアウト図
【図１９】本発明の実施の形態１における半導体設計方法のビア生成工程を説明するためのレイアウト図
【図２０】本発明の実施の形態１における半導体設計方法のレイアウト設計工程により作成された電流情報を示した図
【図２１】本発明の実施の形態１における半導体設計方法の配線生成工程を説明するためのレイアウト図
【図２２】本発明の実施の形態１における半導体設計方法のレイアウト設計工程を説明するための電流情報を示した図
【図２３】本発明の実施の形態１における半導体設計方法のレイアウト設計工程を説明するためのレイアウト図
【図２４】本発明の実施の形態１における半導体設計方法のレイアウト設計工程を説明するためのレイアウト図
【図２５】本発明の実施の形態１における半導体設計方法のレイアウト設計工程を説明するためのレイアウト図
【図２６】本発明の実施の形態１における半導体設計方法のレイアウト設計工程を説明するためのレイアウト図
【図２７】本発明の実施の形態１における半導体設計方法のレイアウト設計工程を説明するためのレイアウト図
【図２８】本発明の実施の形態１における半導体設計方法のレイアウト設計工程を説明するためのレイアウト図
【図２９】本発明の実施の形態１における半導体設計方法のレイアウト設計工程を説明するためのレイアウト図
【図３０】本発明の実施の形態１における半導体設計方法のビア検証工程を示したフロー図
【図３１】本発明の実施の形態１における半導体設計方法の検証工程を説明するためのレイアウト図
【図３２】本発明の実施の形態１における半導体設計方法の検証工程での結果を説明するための図
【図３３】本発明の実施の形態１における半導体設計方法のビア検証工程を説明するためのフロー図
【図３４】本発明の実施の形態１における半導体設計方法の検証工程での結果を説明するための図
【図３５】本発明の実施の形態１における半導体設計方法の配線工程を説明するためレイアウト図
【図３６】本発明の実施の形態２における半導体装置の設計方法を説明するためのフロー図
【図３７】本発明の実施の形態２の比較工程を説明するためのフロー図
【図３８】本発明の実施の形態２における半導体設計方法を説明するための回路図、配線情報
【図３９】本発明の実施の形態２のネットリスト修正工程を説明するための図
【図４０】従来の技術における半導体装置の設計方法を説明するためフロー図
【符号の説明】
【００９１】
Ｓ１０：回路図作成工程
Ｓ１５：ネットリスト修正工程
Ｓ２０：回路シミュレーション工程
Ｓ２５：第１の比較工程
Ｓ３０：電流情報作成工程
Ｓ４０：レイアウト設計工程
Ｓ５０：配置工程
Ｓ５２：ピン生成工程
Ｓ６０：配線工程
Ｓ６１：配線作成工程
Ｓ６２：ビア作成工程
Ｓ６１１：修正工程
Ｓ６２１：最大許容電流を持つビアを算出する工程
Ｓ７０，Ｓ７０′：検証工程
Ｓ７１，Ｓ７１１，Ｓ７１２：ビア検証工程
Ｓ７２：配線検証工程
Ｄ１０：シミュレーション結果
Ｄ２０：電流情報
Ｄ３０：許容電流情報
Ｄ４０：配線情報
ＰＡ１〜ＰＡ３，ＰＢ１〜ＰＢ３，ＮＡ１〜ＮＡ３，ＮＢ１〜ＮＢ３，ＮＢ１１，ＮＢ１２  トランジスタ
ＶＤＤ：電源ノード
ＶＳＳ：接地ノード
ＮＮ１，ＮＰ１，ｎｏｄｅ１，ｎｏｄｅ２：内部ネット
ＶＮＰ，ＶＮＢ，ＯＵＴ：入出力端子
Ｓ，Ｇ，Ｄ：トランジスタ端子
Ｍ１，Ｍ２，Ｍ３：金属配線層
Ｖｉａ１，Ｖｉａ２：ビア
Ｗ，Ｗ１，Ｗ２：配線幅
ＰＤ_ＮＮ１，ＰＤ_ＮＮ２，ＰＤ_ｎｏｄｅ１，ＰＤ_ＶＳ１〜ＰＤ_ＶＳ６，ＰＤ_１〜ＰＤ_４：配線データ
ＶＤ_ｎｏｄｅ１１，ＶＤ_ｎｏｄｅ１２，ＶＤ_ＶＳ１〜ＶＤ_ＶＳ６，ＶＤ１_１〜ＶＤ１_７，ＶＤ２_１，ＶＤ２_２：ビアデータ
ＰＮ_ＶＳ１〜ＰＮ_ＶＳ３，ＰＮ_１：ピン
【図１】
2008186061.tif 000003
【図２】
2008186061.tif 000004
【図３】
2008186061.tif 000005
【図４】
2008186061.tif 000006
【図５】
2008186061.tif 000007
【図６】
2008186061.tif 000008
【図７】
2008186061.tif 000009
【図８】
2008186061.tif 000010
【図９】
2008186061.tif 000011
【図１０】
2008186061.tif 000012
【図１１】
2008186061.tif 000013
【図１２】
2008186061.tif 000014
【図１３】
2008186061.tif 000015
【図１４】
2008186061.tif 000016
【図１５】
2008186061.tif 000017
【図１６】
2008186061.tif 000018
【図１７】
2008186061.tif 000019
【図１８】
2008186061.tif 000020
【図１９】
2008186061.tif 000021
【図２０】
2008186061.tif 000022
【図２１】
2008186061.tif 000023
【図２２】
2008186061.tif 000024
【図２３】
2008186061.tif 000025
【図２４】
2008186061.tif 000026
【図２５】
2008186061.tif 000027
【図２６】
2008186061.tif 000028
【図２７】
2008186061.tif 000029
【図２８】
2008186061.tif 000030
【図２９】
2008186061.tif 000031
【図３０】
2008186061.tif 000032
【図３１】
2008186061.tif 000033
【図３２】
2008186061.tif 000034
【図３３】
2008186061.tif 000035
【図３４】
2008186061.tif 000036
【図３５】
2008186061.tif 000037
【図３６】
2008186061.tif 000038
【図３７】
2008186061.tif 000039
【図３８】
2008186061.tif 000040
【図３９】
2008186061.tif 000041
【図４０】
2008186061.tif 000042