(57)【特許請求の範囲】
【請求項１】
コンピュータによる回路のレイアウト設計において、
該コンピュータが、該回路のシミュレーションを行うシミュレーションステップと、
該コンピュータが、該回路を構成する素子の端子間を流れる最大電流値及び素子形状の指定を受ける指定入力ステップと、
該コンピュータが、指定された最大電流値と素子形状とコンタクト１つ当たりに流せる最大電流値とに基づいて素子のコンタクト数を計算し、計算された該コンタクト数とマスクデザインルールとに基づいて素子の配線幅を計算し、計算された該コンタクト数と該配線幅とに基づいて、エレクトロマイグレーション（ＥＭ）ルールを満足する素子のレイアウトを自動的に作成して完成するレイアウト合成ステップ
を実行することを特徴とする、レイアウト方法。
【請求項２】
該指定入力ステップでは、該コンピュータが素子形状が決まるパラメータの指定を受け、
前記レイアウト合成ステップでは、該コンピュータが前記ＥＭルールを満足する素子のレイアウトを自動的に作成する際に、該コンピュータが前記ＥＭルールを満たすように素子の形状を自動的に変更することを特徴とする、請求項１記載のレイアウト方法。
【請求項３】
該レイアウト合成ステップでは、
該コンピュータが前記ＥＭルールを満足する素子のコンタクト数及び配線幅を計算し、
該コンピュータが計算されたコンタクト数及び配線幅を考慮して素子を配置して素子のレイアウトを作成し、
該コンピュータが素子のレイアウトが前記ＥＭルールを満足しているか否かを確認するＥＭ判定を行うことを特徴とする、請求項１又は２記載のレイアウト方法。
【請求項４】
該コンピュータが、該レイアウト合成ステップで作成された素子のレイアウトでは前記ＥＭルールを満足できない場合にはその旨を表示するエラー表示ステップ
を更に実行することを特徴とする、請求項１又は２記載のレイアウト方法。
【請求項５】
該コンピュータが、該レイアウト合成ステップの後、該素子を配置して該回路のレイアウトを作成するレイアウトステップと、
該コンピュータが、該回路のレイアウトに対してレイアウト検証を行うレイアウト判定ステップと、
該コンピュータが、該レイアウト検証の結果、該回路のレイアウトに問題がないと前記ＥＭルールを満足しているか否かを確認するＥＭ判定を行うＥＭ判定ステップ
を更に実行することを特徴とする、請求項１〜４のいずれか１項記載のレイアウト方法。
【請求項６】
回路のレイアウト設計をコンピュータにより行うＣＡＤ装置であって、
該回路のシミュレーションを前記コンピュータで行うシミュレーション手段と、
該回路を構成する素子の端子間を流れる最大電流値及び素子形状の指定を前記コンピュータで受ける指定入力手段と、
指定された最大電流値と素子形状とコンタクト１つ当たりに流せる最大電流値とに基づいて素子のコンタクト数を計算し、計算された該コンタクト数とマスクデザインルールとに基づいて素子の配線幅を計算し、計算された該コンタクト数と該配線幅とに基づいて、エレクトロマイグレーション（ＥＭ）ルールを満足する素子のレイアウトを前記コンピュータで自動的に作成して完成するレイアウト合成手段とを備えたことを特徴とする、ＣＡＤ装置。
【請求項７】
該レイアウト合成手段は、
前記ＥＭルールを満足する素子のコンタクト数及び配線幅を前記コンピュータで計算する手段と、
計算されたコンタクト数及び配線幅を考慮して素子を配置して素子のレイアウトを前記コンピュータで作成する手段と、
素子のレイアウトが前記ＥＭルールを満足しているか否かを前記コンピュータで確認するＥＭ判定を行う手段とからなることを特徴とする、請求項６記載のＣＡＤ装置。
【請求項８】
ディスプレイを更に備え、
該レイアウト合成手段は、ＥＭ判定により素子のレイアウトが前記ＥＭルールを満足していないと判定されると、エラーの発生により素子のレイアウトが作成できない旨をユーザに知らせるための警告を該ディスプレイに表示することを特徴とする、請求項６記載のＣＡＤ装置。
【請求項９】
コンピュータに回路のレイアウト設計を行わせるプログラムであって、
該コンピュータに、該回路のシミュレーションを行わせるシミュレーション手順と、
該コンピュータに、該回路を構成する素子の端子間を流れる最大電流値及び素子形状の指定を受けさせる指定入力手順と、
該コンピュータに、指定された最大電流値と素子形状とコンタクト１つ当たりに流せる最大電流値とに基づいて素子のコンタクト数を計算し、計算された該コンタクト数とマスクデザインルールとに基づいて素子の配線幅を計算し、計算された該コンタクト数と該配線幅とに基づいて、エレクトロマイグレーション（ＥＭ）ルールを満足する素子のレイアウトを自動的に作成させて完成させるレイアウト合成手順とを含むことを特徴とする、プログラム。
【請求項１０】
請求項９記載のプログラムを格納していることを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイアウト方法、ＣＡＤ装置、プログラム及び記憶媒体に係り、特に半導体集積回路や装置をコンピュータ支援設計（ＣＡＤ：Computer Aided Design）により設計する際にエレクトロマイグレーション（ＥＭ：Electro Migration）を考慮したレイアウト設計を行うレイアウト方法、そのようなレイアウト方法を用いるＣＡＤ装置、コンピュータにそのようなレイアウト設計を行わせるプログラム、及びそのようなプログラムを格納したコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【０００２】
従来のレイアウト設計では、トランジスタや受動素子等のレイアウトは、レイアウト設計者（又は、作業者）が手作業でＥＭルールを満たすように作成していた。又、ＥＭルールを満足させることで求まる素子のレイアウトは、通常はレイアウト設計を行う装置とは別の手法で計算を行うことで素子の形状を求めて、レイアウト設計者が手作業で素子の形状をレイアウトに反映させていた。このため、レイアウト時に人為的なミスが生じる可能性がある。
【０００３】
又、ＥＭルールを満足しているか否かの確認（以下、ＥＭチェックと言う）は、必ずレイアウト完成後でなければ行うことができず、ＥＭルールが満足されずＥＭの問題が発見された場合には、素子のサイズや形状等から修正して素子の配置をやり直さなければならない可能性がある。このような場合には、素子のサイズや形状等が変わるのでバルク層からの設計変更を余儀なくされ、レイアウトの作業工数が増大してしまう。
【０００４】
図１は、従来のレイアウト方法の一例を説明するフローチャートである。図１において、ステップＳ１は、設計対象となる回路（以下、対象回路と言う）のシミュレーションを行う。ステップＳ２は、回路を構成する各素子の端子間を流れる最大電流値や素子形状を指定する。ステップＳ３は、指定された最大電流値や素子形状に基づき、素子のレイアウトをＥＭルールを満足するように作成する。素子のレイアウトが完了すると、ステップＳ４は、配線を考慮して素子を配置し、対象回路のレイアウトを作成する。対象回路のレイアウトが完了すると、ステップＳ５は、レイアウト検証（Layout Verification）を行い、ステップＳ６は、対象回路のレイアウトがＤＲＣ（Design Rule Check）ルールやＬＶＳ（Layout Versus Schematic）ルールを満たしているか否かを確認するレイアウト判定を行う。ステップＳ６の判定結果がＮＯであると、処理はステップＳ４へ戻る。他方、ステップＳ６の判定結果がＹＥＳであると、ステップＳ７は、ＥＭチェックを行い、ステップＳ８は、対象回路のレイアウトがＥＭルールを満足しているか否かを確認するＥＭ判定を行う。
【０００５】
ステップＳ８の判定結果がＮＯの場合、（ａ）素子以外の部分でＥＭ違反が発生している場合と、（ｂ）素子のレイアウト内でＥＭ違反が発生している場合とがある。前者（ａ）の場合、処理はステップＳ４へ戻る。しかし、後者（ｂ）の場合、素子のレイアウトの修正で素子のサイズや形状等が変更になる可能性が高く、素子の配置からやり直さなければならないので、処理はステップＳ３へ戻る。尚、ステップＳ８の判定結果がＹＥＳであると、ステップＳ９は、対象回路のレイアウトを完成させる。
【０００６】
特許文献１及び特許文献２には、セル間の配線幅やビアホールの形状を許容電流値により変更するレイアウト方法及びその装置が提案されている。
【特許文献１】特開２０００−３４９１５８号公報
【特許文献２】特開２００２−１５１５９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のレイアウト方法では、素子のレイアウト時にＥＭルールを満たすための作業を手作業により行っていた。このため、素子のレイアウト時にＥＭルールを満たすレイアウトを完全に作成することはできなかった。ＥＭチェックを行うためには、素子のレイアウトが完了した状態で検証部分の抽出（Extract）作業を行いシミュレーションを行わなければならなかった。更に、素子のレイアウト内でＥＭルールの違反があると、レイアウトの変更がバルク層まで及ぶ場合があり、レイアウトの作業工数が増大してしまい、ターンアラウンドタイム（ＴＡＴ：Turn Around Time）が増大してしまうという問題があった。
【０００８】
そこで、本発明は、レイアウト時に素子のＥＭルールの違反によるレイアウトの作業工数の増大を防止し、ＴＡＴの増大を防止することのできるレイアウト方法、ＣＡＤ装置、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題は、回路のレイアウト設計において、該回路のシミュレーションを行うシミュレーションステップと、該回路を構成する素子の端子間を流れる最大電流値及び素子形状を指定する指定ステップと、該素子のレイアウトを、指定された最大電流値及び素子形状に基づいて、エレクトロマイグレーション（ＥＭ）ルールを満足するように自動的に作成して完成するレイアウト合成ステップとを含むことを特徴とするレイアウト方法によって達成できる。
【００１０】
上記の課題は、回路のレイアウト設計を行うＣＡＤ装置であって、該回路のシミュレーションを行うシミュレーション手段と、該回路を構成する素子の端子間を流れる最大電流値及び素子形状を指定する指定手段と、該素子のレイアウトを、指定された最大電流値及び素子形状に基づいて、エレクトロマイグレーション（ＥＭ）ルールを満足するように自動的に作成して完成するレイアウト合成手段とを備えたことを特徴とするＣＡＤ装置によっても達成できる。
【００１１】
上記の課題は、コンピュータに回路のレイアウト設計を行わせるプログラムであって、該コンピュータに、該回路のシミュレーションを行わせるシミュレーション手順と、該コンピュータに、該回路を構成する素子の端子間を流れる最大電流値及び素子形状を指定させる指定手順と、該コンピュータに、該素子のレイアウトを、指定された最大電流値及び素子形状に基づいて、エレクトロマイグレーション（ＥＭ）ルールを満足するように自動的に作成させて完成させるレイアウト合成手順とを含むことを特徴とするプログラムによっても達成できる。
【００１２】
上記の課題は、上記プログラムを格納していることを特徴とするコンピュータ読み取り可能な記憶媒体によっても達成できる。
【発明の効果】
【００１３】
本発明によれば、素子のレイアウト時に素子のＥＭルールの違反によるレイアウトの作業工数の増大を防止し、ＴＡＴの増大を防止することのできるレイアウト方法、ＣＡＤ装置、プログラム及び記憶媒体を実現することができる。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明になるレイアウト方法、ＣＡＤ装置、プログラム及び記憶媒体の各実施例を、図２以降と共に説明する。
【実施例】
【００１５】
本発明になるＣＡＤ装置の一実施例は、本発明になるレイアウト方法の一実施例、本発明になるプログラムの一実施例及び本発明になる記憶媒体の一実施例を用いる。本実施例では、本発明がコンピュータシステムに適用されている。図２は、本実施例において本発明が適用されるコンピュータシステムを示す斜視図である。
【００１６】
図２に示すコンピュータシステム１００は、ＣＰＵやディスクドライブ等を内蔵した本体部１０１、本体部１０１からの指示により表示画面１０２ａ上に画像を表示するディスプレイ１０２、コンピュータシステム１００に種々の情報を入力するためのキーボード１０３、ディスプレイ１０２の表示画面１０２ａ上の任意の位置を指定するマウス１０４及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードするモデム１０５を有する。
【００１７】
ディスク１１０等の可搬型記録媒体に格納されるか、モデム１０５等の通信装置を使って他のコンピュータシステムの記録媒体１０６からダウンロードされる、コンピュータシステム１００にＣＡＤ機能或いはＣＡＤ機能の少なくともレイアウト設計機能を持たせるプログラム（ＣＡＤソフトウェア或いはレイアウト設計ソフトウェア）の本実施例は、コンピュータシステム１００に入力されてコンパイルされる。プログラムの本実施例は、コンピュータシステム１００（即ち、後述するＣＰＵ２０１）をＣＡＤ機能を有するＣＡＤ装置の本実施例として動作させる。記憶媒体の本実施例は、プログラムの本実施例を格納した、例えばディスク１１０等のコンピュータ読み取り可能な記録媒体からなる。記録媒体の本実施例は、ディスク１１０、ＩＣカードメモリ、フロッピー（登録商標）ディスク等の磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の可搬型記録媒体に限定されるものではなく、モデム１０５やＬＡＮ等の通信装置や通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
【００１８】
図３は、コンピュータシステム１００の本体部１０１内の要部の構成を説明するブロック図である。同図中、本体部１０１は、バス２００により接続されたＣＰＵ２０１、ＲＡＭやＲＯＭ等からなるメモリ部２０２、ディスク１１０用のディスクドライブ２０３及びハードディスクドライブ２０４からなる。本実施例では、ディスプレイ１０２、キーボード１０３及びマウス１０４も、バス２００を介してＣＰＵ２０１に接続されているが、これらは直接ＣＰＵ２０１に接続されていても良い。又、ディスプレイ１０２は、入出力画像データの処理を行う周知のグラフィックインタフェース（図示せず）を介してＣＰＵ２０１に接続されていても良い。
【００１９】
尚、コンピュータシステム１００の構成は図２及び図３に示す構成に限定されるものではなく、代わりに各種周知の構成を使用しても良い。
【００２０】
図４は、本実施例の動作を説明するフローチャートである。ステップＳ１１〜Ｓ１９の処理は、プログラムの手順に対応し、例えば設計対象となる回路（以下、対象回路と言う）についてＣＰＵ２０１により、即ち、コンピュータシステム１００の対応する手段により実行される。
【００２１】
図４において、ステップＳ１１は、設計対象となる回路（以下、対象回路と言う）のシミュレーションを行う。シミュレーションは、プロセスコーナまで考慮して行う。ステップＳ１２は、回路を構成する各素子の端子間を流れる最大電流値や素子形状を指定する。例えば、素子がトランジスタの場合、素子のレイアウトをパラメータにより制御できるパラメータライズドセル（Pcell：Parameterized cell）で用いるパラメータl, w, m等をキーボード１０３から入力したり、メモリ部２０２等から読み出したり、他のコンピュータシステムからモデム１０５を介して入力することでトランジスタの形状を指定する。尚、Pcellについては後述する。
【００２２】
ステップＳ１３は、素子のレイアウトを、ＥＭルールを満足するように自動的に作成して完成する素子のレイアウト合成処理を行う。素子のレイアウト合成処理が完了すると、ステップＳ１４は、配線を考慮して素子間隔をある程度つめて素子を配置し、対象回路のレイアウトを作成する。対象回路のレイアウトが完了すると、ステップＳ１５は、レイアウト検証（Layout Verification）を行い、ステップＳ１６は、対象回路のレイアウトがＤＲＣ（Design Rule Check）ルールやＬＶＳ（Layout Versus Schematic）ルールを満たしているか否かを確認するレイアウト判定を行う。ステップＳ１６の判定結果がＮＯであると、処理はステップＳ１４へ戻る。
【００２３】
他方、ステップＳ１６の判定結果がＹＥＳであると、ステップＳ１７は、ＥＭチェックを行い、ステップＳ１８は、対象回路のレイアウトがＥＭルールを満足しているか否かを確認するＥＭ判定を行う。ステップＳ１８の判定結果がＮＯの場合、素子以外でのＥＭ違反が発生しているので、処理はステップＳ１４へ戻る。ステップＳ１８の判定結果がＹＥＳであると、ステップＳ１９は、対象回路のレイアウトを完成させる。
【００２４】
このように、シミュレーションより求める最大電流と、素子のレイアウトをどのようにするかを設定することにより、ＥＭルールを満足した素子のレイアウトを実現することができる。ただし、与えたパラメータと素子形状により、ＥＭルールを満足する素子のレイアウトを作成できない場合には、エラーメッセージやエラー（又は、警告）枠を表示画面１０２ａ上に表示する等して素子のレイアウトが作成できない旨をユーザに知らせる。
【００２５】
図５は、図４に示すステップＳ１３が行う素子のレイアウト合成処理を説明するフローチャートである。図５において、ステップＳ１３１は、ＥＭルールを満足する素子のコンタクト数を計算し、ステップＳ１３２は、ＥＭルールを満足する素子の配線幅を計算する。例えば、素子がトランジスタの場合、トランジスタのソース端子とドレイン端子の配線幅を計算する。ステップＳ１３３は、ＥＭルールを満足する素子のコンタクト数及び配線幅等のパラメータを考慮して素子を配置し、素子のレイアウトを作成する。ステップＳ１３４は、素子のレイアウトがＥＭルールを満足しているか否かを確認するＥＭ判定を行う。ステップＳ１３４の判定結果がＮＯであると、ステップＳ１３５は、エラーの発生により素子のレイアウトが作成できない旨をユーザに知らせるための警告を作成し、例えば表示画面１０２ａ上にエラーメッセージやエラー（又は、警告）枠の形で表示した後、処理はステップＳ１３６へ進む。エラーメッセージやエラー枠は、表示画面１０２ａに表示されているレイアウト上に表示しても良い。ステップ１３４の判定結果がＹＥＳ、或いは、ステップＳ１３５の後、ステップＳ１３６は、素子のレイアウトを完成し、処理は図４に示すステップＳ１４へ戻る。
【００２６】
以上説明したように、ＥＭルールを考慮した素子のレイアウトが、レイアウト設計の早い段階で自動的に作成されるので、素子のレイアウトに関してＥＭルール違反による処理の後戻り及びレイアウト作業工数の増大がなくなり、その分ＴＡＴの増大を防止できる。又、ＥＭ判定がＣＡＤ装置内で（即ち、ＣＡＤ機能により）行われるので、レイアウト設計の品質を向上することができる。
【００２７】
又、素子のレイアウトを手作業で修正する際に、例えば最大電流値を流せないような変更をパラメータで与えてしまった場合等には、エラーの発生をユーザに知らせることによりユーザに素子のレイアウトの調整を促すこともできる。
【００２８】
本発明を適用可能なＣＡＤソフトウェアの一例として、CADENCE社製のAnalog Artist（製品名）がある。Analog Artistには、回路図エントリ用のComposer（登録商標）、最大電流値の確認を行うためのシミュレータとしてSpectre（登録商標）、ネットリストドリブンのレイアウト装置としてVirtuoso XL（登録商標）、トランジスタ等の素子のレイアウトをパラメータにより制御できるパラメータライズドセル（Pcell：Parameterized cell）が含まれる。本発明は、トランジスタや受動素子等の素子のレイアウトを作成するためのＰcellに、ＥＭを考慮する機能を持たせることにより実現可能である。
【００２９】
図６は、トランジスタ（Pcell）の形状の一例を示す平面図である。同図中、（ａ）はトランジスタのデフォルト形状、（ｂ）はトランジスタが複数行（ロウ）に配置されたマルチロウ（Multi Row）形状、（ｃ）はコンタクトが２列に配置されたコンタクト２列形状、（ｄ）は金属層幅が大きくされた大金属層幅形状、（ｅ）は金属層が２列に配置された金属層２列形状、（ｆ）は積層構造とされたスタックレイヤ（Stack Layer）形状を示す。マルチロウ形状やスタックレイヤ形状等のように、人為的にトランジスタの形状を変える場合もあるが、基本的には、本実施例ではＥＭルールを満たすようにトランジスタの形状を自動的に変更することを特徴とする。
【００３０】
図７は、素子のレイアウトの一例を示す平面図である。同図中、（ａ）は素子のデフォルトレイアウト、（ｂ）は素子の金属層２列形状に対するレイアウト、（ｃ）は素子のコンタクト２列形状に対するレイアウトを示す。ポリシリコン層からなる抵抗を例に挙げると、ポリシリコン自体のＥＭルールの確認もあるが、端子の引き出し部分のＥＭルールも考慮する必要がある。
【００３１】
図８は、Pcellを用いたトランジスタの形状を自動生成を説明する図である。図８中、左側は表示画面１０２ａに表示される、パラメータを指定可能なトランジスタの回路図を示し、右側はパラメータの指定により自動生成されるトランジスタの形状を示す。自動生成されたトランジスタの形状も、表示画面１０２ａに表示可能である。図８中、（ａ）〜（ｃ）は、最大電流値Imaxを指定し、パラメータm,l,wは夫々一定、即ち、トランジスタの形状を指定しなかった場合を示す。図８中、（ａ）〜（ｃ）においてドレイン・ソース間に流れる電流（ドレイン・ソース電流）値を上げることにより金属層幅（metalWidth）やコンタクト数が変わることが分かる。尚、ドレイン・ソース電流の最大電流値Imaxは、図８に示す値に限定されるものではないことは言うまでもない。
【００３２】
図８中、（ｄ）〜（ｆ）は、最大電流値Imaxは指定せず一定で、パラメータm,l,w、即ち、トランジスタの形状を指定した場合を示す。図８中、（ｄ）は、スタックレイヤ形状、即ち、トランジスタを縦構造にしたときの形状を示す。図８中、（ｅ）は（ａ）〜（ｃ）と同等の形状を示す。図８中、（ｆ）は、マウチロウ形状、即ち、ソース・ドレインの引き出し線を縦に２層使った場合を示す。図８中、（ｆ）は、ＥＭルールを満足できないのがコンタクトに起因するものではなく配線に起因するものである場合に有効な形状である。
【００３３】
図９は、以下のアルゴリズムを説明するための変数名を説明する平面図である。図９に示すように、距離a, b, c, d, e, fの変数名は夫々metalContactEOK (mcEOL), ContactSpace (cs), ContactWidth (cw), metalContactEnc (mcEnc), mosWidth, metalWidthである。
【００３４】
以下にトランジスタのマルチ（m=1）の場合の金属層（Metal）及びコンタクトに流れる最大電流値Imaxの計算方法を示す。
【００３５】
金属層に流れる最大電流I_perMetalは、（式１）より計算することができる。ここで、αは金属層の物理構造に起因する係数、TFは温度に起因する係数を示す。
I_perMetal = α・TF・metalWidth [A]                    （式１）
又、コンタクト１つ当たりに流せる最大電流は、（式２）より計算することができる。ここで、βはコンタクトの物理構造に起因する係数を示す。
I_perContact = β・TF [A]                              （式２）
上記（式１）、（式２）より、（式１Ａ）、（式２Ａ）を求めることができる。
metalWidth = Imax / (α・TF)                          （式１Ａ）
n = Imax / (β・TF)                                    （式２Ａ）
（式２Ａ）から、mosWidth内にコンタクトがいくつ置けるかを計算する。予め決められたmosWidthに１列で置ける最大のコンタクト数をn1とすると、n1は（式３）から求めることができる。
mosWidth >  cw・n1+cs(n1-1) + 2mcEOL
>  cw・n1 + cs・n1 - cs + 2mcEOL
>  n1(cw + cs) - cs + 2mcEOL
∴ n1 < (mosWidth + cs - 2mcEOL) / (cw + cs)          （式３）
ここで、（式４）が成り立たない場合、コンタクトは１列では置ききれないことを意味するので、（式４）が満たされるコンタクト列の数iを求める必要がある。
n/i ≦ n1  i=1,2,3….                                    （式４）
ただし、iの値は有限で、マスクデザインルールで定められたmetalWidthの最大値から求まるので、（式５）により求めることができる。又、metalWidth_maxは、マスクデザインルールにより決まる。
metalWidth_max > i・cw + (i-1)・cs + 2mcEnc
> i・cw + i・cs - cs + 2mcEnc
∴ i < (metalWidth_max + cs - 2mcEnc) / (cw + cs)        （式５）
（式５）を満足しない場合には、この形状ではマスクデザインルールを満たすことができないことを意味するので、エラーメッセージやエラー枠を表示画面１０２ａに表示する。
【００３６】
次に、m>1の場合について説明する。m=1の場合との大きな違いは、m>1の場合、トランジスタが分割（Split）されているため各トランジスタに流れる電流はImaxではないということである。このため、m=1の場合と比較すると、若干計算が難しくなる。図１０及び図１１を参照すると分かるように、ソースが外側の場合、ドレイン側の分割数は、ソース側と比べると必ず同じか１つ少ない分割数となる。図１０は、トランジスタの分割数を説明する図であり、図１１は、トランジスタの分割数をソース側（Ｓ）とドレイン側（Ｄ）について示す図である。従って、必ず少ない分割数のドレイン側を計算に使用すれば良い。ドレイン側のノード分割数Dは、（式６）から算出できる。ここで、関数intは、小数点以下を切り捨てる関数である。
D = int((m+1)/2)                                      （式６）
トランジスタを分割したときの最大電流値は、（式６）に基づいて（式７）より求めることができる。
Imax_split = Imax / int((m+1)/2)                        （式７）
尚、トランジスタゲート２本に囲まれている内側の部分と、囲まれていない外側の部分とでは、ゲート２本に囲まれている内側の部分の方が電流を２倍流せる必要がある。このため、（式１Ａ）、（式７）より夫々のmetalWidth、即ち、内側部分のmetalWidth_inと外側部分のmetalWidth_outを（式８）、（式９）より求めることができる。
metalWidth_in = Imax_split / (α・TF)・２              （式８）
metalWidth_out = Imax_split / (α・TF)                  （式９）
必要なコンタクト数nは、（式２Ａ）、（式７）を用い、（式１０）から求めることができる。
n = Imax_split / (β・TF)                              （式１０）
コンタクト数nも、ゲート２本に囲まれている方が多く電流を流す必要があるので、（式１０）より夫々のコンタクト数n、即ち、内側部分のコンタクト数n_inと外側部分のコンタクト数n_outを（式１１）、（式１２）より求めることができる。
n_in = Imax_split / (β・TF)・2                        （式１１）
n_out = Imax_split / (β・TF)                          （式１２）
トランジスタのロウ数が例えば図８中（ｅ）において増えた場合、（式８）、（式９）の値はロウ数倍する必要がある。又、図8中（ｆ）の如きスタックレイヤにすると、metalWidthを細くすることができるが、コンタクト数nが増える可能性がある点等を考慮する必要がある。
【００３７】
尚、本発明は、以下に付記する発明をも包含するものである。
（付記１）  回路のレイアウト設計において、
該回路のシミュレーションを行うシミュレーションステップと、
該回路を構成する素子の端子間を流れる最大電流値及び素子形状を指定する指定ステップと、
該素子のレイアウトを、指定された最大電流値及び素子形状に基づいて、エレクトロマイグレーション（ＥＭ）ルールを満足するように自動的に作成して完成するレイアウト合成ステップとを含むことを特徴とする、レイアウト方法。
（付記２）  該指定ステップは、素子形状が決まるパラメータを指定することを特徴とする、付記１記載のレイアウト方法。
（付記３）  該レイアウト合成ステップは、
ＥＭルールを満足する素子のコンタクト数及び配線幅を計算し、
計算されたコンタクト数及び配線幅を考慮して素子を配置して素子のレイアウトを作成し、
素子のレイアウトがＥＭルールを満足しているか否かを確認するＥＭ判定を行うことを特徴とする、付記１又は２記載のレイアウト方法。
（付記４）  該レイアウト合成ステップは、ＥＭ判定により素子のレイアウトがＥＭルールを満足していないと判定されると、エラーの発生により素子のレイアウトが作成できない旨をユーザに知らせるための警告を表示することを特徴とする、付記３記載のレイアウト方法。
（付記５）  該レイアウト合成ステップで作成された素子のレイアウトではＥＭルールを満足できない場合にはその旨を表示するエラー表示ステップを更に含むことを特徴とする、付記１又は２記載のレイアウト方法。
（付記６）  該レイアウト合成ステップの後、該素子を配置して該回路のレイアウトを作成するレイアウトステップと、
該回路のレイアウトに対してレイアウト検証を行うレイアウト判定ステップと、
該レイアウト検証の結果、該回路のレイアウトに問題がないとＥＭルールを満足しているか否かを確認するＥＭ判定を行うＥＭ判定ステップとを更に含むことを特徴とする、付記１〜５のいずれか1項記載のレイアウト方法。
（付記７）  回路のレイアウト設計を行うＣＡＤ装置であって、
該回路のシミュレーションを行うシミュレーション手段と、
該回路を構成する素子の端子間を流れる最大電流値及び素子形状を指定する指定手段と、
該素子のレイアウトを、指定された最大電流値及び素子形状に基づいて、エレクトロマイグレーション（ＥＭ）ルールを満足するように自動的に作成して完成するレイアウト合成手段とを備えたことを特徴とする、ＣＡＤ装置。
（付記８）  該指定手段は、素子形状が決まるパラメータを指定することを特徴とする、付記７記載のＣＡＤ装置。
（付記９）  該レイアウト合成手段は、
ＥＭルールを満足する素子のコンタクト数及び配線幅を計算する手段と、
計算されたコンタクト数及び配線幅を考慮して素子を配置して素子のレイアウトを作成する手段と、
素子のレイアウトがＥＭルールを満足しているか否かを確認するＥＭ判定を行う手段とからなることを特徴とする、付記７又は８記載のＣＡＤ装置。
（付記１０）  ディスプレイを更に備え、
該レイアウト合成手段は、ＥＭ判定により素子のレイアウトがＥＭルールを満足していないと判定されると、エラーの発生により素子のレイアウトが作成できない旨をユーザに知らせるための警告を該ディスプレイに表示することを特徴とする、付記９記載のＣＡＤ装置。
（付記１１）  ディスプレイと、
該レイアウト合成手段で作成された素子のレイアウトではＥＭルールを満足できない場合にはその旨を該ディスプレイに表示するエラー表示手段とを更に備えたことを特徴とする、付記７又は８記載のＣＡＤ装置。
（付記１２）  該レイアウト合成手段が素子のレイアウトを完成した後、該素子を配置して該回路のレイアウトを作成するレイアウト手段と、
該回路のレイアウトに対してレイアウト検証を行うレイアウト判定手段と、
該レイアウト検証の結果、該回路のレイアウトに問題がないとＥＭルールを満足しているか否かを確認するＥＭ判定を行うＥＭ判定手段とを更に備えたことを特徴とする、付記７〜１１のいずれか1項記載のＣＡＤ装置。
（付記１３）  コンピュータに回路のレイアウト設計を行わせるプログラムであって、
該コンピュータに、該回路のシミュレーションを行わせるシミュレーション手順と、
該コンピュータに、該回路を構成する素子の端子間を流れる最大電流値及び素子形状を指定させる指定手順と、
該コンピュータに、該素子のレイアウトを、指定された最大電流値及び素子形状に基づいて、エレクトロマイグレーション（ＥＭ）ルールを満足するように自動的に作成させて完成させるレイアウト合成手順とを含むことを特徴とする、プログラム。
（付記１４）  該指定手順は、該コンピュータに、素子形状が決まるパラメータを指定させることを特徴とする、付記１３記載のプログラム。
（付記１５）  該レイアウト合成手順は、該コンピュータに、
ＥＭルールを満足する素子のコンタクト数及び配線幅を計算させ、
計算されたコンタクト数及び配線幅を考慮して素子を配置して素子のレイアウトを作成させ、
素子のレイアウトがＥＭルールを満足しているか否かを確認するＥＭ判定を行わせることを特徴とする、付記１３又は１４記載のプログラム。
（付記１６）  該レイアウト合成手順は、該コンピュータに、ＥＭ判定により素子のレイアウトがＥＭルールを満足していないと判定されると、エラーの発生により素子のレイアウトが作成できない旨をユーザに知らせるための警告を表示させることを特徴とする、付記１５記載のプログラム。
（付記１７）  該コンピュータに、該レイアウト合成ステップで作成された素子のレイアウトではＥＭルールを満足できない場合にはその旨を表示させるエラー表示手順を更に含むことを特徴とする、付記１３又は１４記載のプログラム。
（付記１８）  該レイアウト合成手順の後、該コンピュータに、該素子を配置して該回路のレイアウトを作成させるレイアウト手順と、
該コンピュータに、該回路のレイアウトに対してレイアウト検証を行わせるレイアウト判定手順と、
該コンピュータに、該レイアウト検証の結果、該回路のレイアウトに問題がないとＥＭルールを満足しているか否かを確認するＥＭ判定を行わせるＥＭ判定手順とを更に含むことを特徴とする、付記１３〜１７のいずれか1項記載のプログラム。
（付記１９）  付記１３〜１８のいずれか1項記載のプログラムを格納していることを特徴とする、コンピュータ読み取り可能な記憶媒体。
【００３８】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図面の簡単な説明】
【００３９】
【図１】従来のレイアウト方法の一例を説明するフローチャートである。
【図２】本発明が適用されるコンピュータシステムを示す斜視図である。
【図３】図２に示すコンピュータシステムの要部を示すブロック図である。
【図４】実施例の動作を説明するフローチャートである。
【図５】素子のレイアウト合成処理を説明するフローチャートである。
【図６】トランジスタの形状の一例を示す平面図である。
【図７】素子のレイアウトの一例を示す平面図である。
【図８】Pcellを用いたトランジスタの形状を自動生成を説明する図である。
【図９】アルゴリズムを説明するための変数名を説明する平面図である。
【図１０】トランジスタの分割数を説明する図である。
【図１１】トランジスタの分割数をソース側とドレイン側について示す図である。
【符号の説明】
【００４０】
１００      コンピュータシステム
１０１      本体部
１０２      ディスプレイ
１０２ａ      表示画面
１０３      キーボード
１０４      マウス
１０５      モデム
１０６      記録媒体
１１０      ディスク
２００      バス
２０１      ＣＰＵ
２０２      メモリ部
２０３      ディスクドライブ
２０４      ハードディスクドライブ
【図１】
0004674164.tif 000002
【図２】
0004674164.tif 000003
【図３】
0004674164.tif 000004
【図４】
0004674164.tif 000005
【図５】
0004674164.tif 000006
【図６】
0004674164.tif 000007
【図７】
0004674164.tif 000008
【図８】
0004674164.tif 000009
【図９】
0004674164.tif 000010
【図１０】
0004674164.tif 000011
【図１１】
0004674164.tif 000012