(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行される、パターンベースの電源グランド（ＰＧ）ルーティングのための方法であって、
前記方法は、
ＰＧ配線をルーティングするためのパターンを受け付けるステップを備え、前記パターンは、パターン定義言語を用いて表され、
前記パターンをインスタンス化するためのインスタンス化計画を受け付けるステップを備え、前記インスタンス化計画は、前記パターンに基づいてＰＧ配線がインスタンス化される集積回路（ＩＣ）設計レイアウトのエリアを規定し、前記インスタンス化されたＰＧ配線に割り当てられる１つ以上のネット識別子を規定し、
前記パターンおよび前記インスタンス化計画に基づいて前記ＩＣ設計レイアウトにおいて前記ＰＧ配線をインスタンス化するステップを備える、方法。
【請求項２】
前記パターンは、２つ以上のパターンのセットを結合する階層パターンである、請求項１に記載の方法。
【請求項３】
前記方法は、さらに、
ビアルールのセットを受け付けるステップを備え、各ビアルールは、２つの異なる金属層にある２つのＰＧ配線の交点でインスタンス化されるビアのタイプを規定し、
前記ビアルールのセットに基づいて前記ＩＣ設計レイアウトにおいて１つ以上のビアをインスタンス化するステップを備える、請求項１に記載の方法。
【請求項４】
前記１つ以上のビアをインスタンス化するステップは、
第１金属層の第１ＰＧ配線と第２金属層の第２ＰＧ配線との交点を検出するステップと、
前記第１ＰＧ配線を生成するために用いられる第１パターンと前記第２ＰＧ配線を生成するために用いられる第２パターンとに基づいて前記ビアルールのセットからビアルールを選択するステップと、
前記ビアルールに基づいて前記第１ＰＧ配線と前記第２ＰＧ配線との交点で前記ＩＣ設計レイアウトにおいてビアをインスタンス化するステップとを備える、請求項３に記載の方法。
【請求項５】
前記ビアルールを選択するステップは、前記第１および第２パターンに適合する前記ビアルールのセットからパターン規定のビアルールを選択するステップを含む、請求項４に記載の方法。
【請求項６】
前記ビアルールを選択するステップは、さらに、適合するパターン規定のビアルールが存在しないと決定したことに応答して、前記第１および第２パターンに対応するパターンタイプに適合するビアルールのセットからパターンタイプ規定のビアルールを選択するステップを含む、請求項５に記載の方法。
【請求項７】
前記ビアルールを選択するステップは、さらに、適合するパターン規定のビアルールが存在しない、および適合するパターンタイプ規定のビアルールが存在しないと決定したことに応答して、デフォルトのビアルールを選択するステップを含む、請求項６に記載の方法。
【請求項８】
非一時的コンピュータ読取可能記憶媒体であって、前記記憶媒体は、指令を格納し、前記指令は、コンピュータによって実行されると、前記コンピュータに、パターンベースの電源グラウンド（ＰＧ）ルーティングを行なうための方法を実施させ、
前記方法は、
ＰＧ配線をルーティングするためのパターンを受け付けるステップを備え、前記パターンは、パターン定義言語を用いて表され、
前記パターンをインスタンス化するためのインスタンス化計画を受け付けるステップを備え、前記インスタンス化計画は、前記パターンに基づいてＰＧ配線がインスタンス化される集積回路（ＩＣ）設計レイアウトのエリアを規定し、前記インスタンス化されたＰＧ配線に割り当てられる１つ以上のネット識別子を規定し、
前記パターンおよび前記インスタンス化計画に基づいて前記ＩＣ設計レイアウトにおいて前記ＰＧ配線をインスタンス化するステップを備える、非一時的コンピュータ読取可能記憶媒体。
【請求項９】
前記パターンは、２つ以上のパターンのセットを結合する階層パターンである、請求項８に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項１０】
前記方法は、さらに、
ビアルールのセットを受け付けるステップを備え、各ビアルールは、２つの異なる金属層にある２つのＰＧ配線の交点でインスタンス化されるビアのタイプを規定し、
前記ビアルールのセットに基づいて前記ＩＣ設計レイアウトにおいて１つ以上のビアをインスタンス化するステップを備える、請求項８に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項１１】
前記１つ以上のビアをインスタンス化するステップは、
第１金属層の第１ＰＧ配線と第２金属層の第２ＰＧ配線との交点を検出するステップと、
前記第１ＰＧ配線を生成するために用いられる第１パターンと前記第２ＰＧ配線を生成するために用いられる第２パターンとに基づいて前記ビアルールのセットからビアルールを選択するステップと、
前記ビアルールに基づいて前記第１ＰＧ配線と前記第２ＰＧ配線との交点で前記ＩＣ設計レイアウトにおいてビアをインスタンス化するステップとを備える、請求項１０に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項１２】
前記ビアルールを選択するステップは、前記第１および第２パターンに適合する前記ビアルールのセットからパターン規定のビアルールを選択するステップを含む、請求項１１に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項１３】
前記ビアルールを選択するステップは、さらに、適合するパターン規定のビアルールが存在しないと決定したことに応答して、前記第１および第２パターンに対応するパターンタイプに適合するビアルールのセットからパターンタイプ規定のビアルールを選択するステップを含む、請求項１２に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項１４】
前記ビアルールを選択するステップは、さらに、適合するパターン規定のビアルールが存在しない、および適合するパターンタイプ規定のビアルールが存在しないと決定したことに応答して、デフォルトのビアルールを選択するステップを含む、請求項１３に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項１５】
コンピュータによって実行される、パターンベースの電源グランド（ＰＧ）ルーティングの間にビアを生成する方法であって、
前記方法は、
ビアルールのセットを受け付けるステップを備え、各ビアルールは、２つの異なる金属層にある２つのＰＧ配線の交点でインスタンス化されるビアのタイプを規定し、
第１金属層の第１ＰＧ配線と第２金属層の第２ＰＧ配線との交点を検出するステップと、
前記第１ＰＧ配線を生成するために用いられる第１パターンと前記第２ＰＧ配線を生成するために用いられる第２パターンとに基づいて前記ビアルールのセットからビアルールを選択するステップと、
前記選択されたビアルールに基づいて前記第１ＰＧ配線と前記第２ＰＧ配線との交点で前記ＩＣ設計レイアウトにおいてビアをインスタンス化するステップとを備える、方法。
【請求項１６】
前記ビアルールを選択するステップは、前記第１および第２パターンに適合する前記ビアルールのセットからパターン規定のビアルールを選択するステップを含む、請求項１５に記載の方法。
【請求項１７】
前記ビアルールを選択するステップは、さらに、適合するパターン規定のビアルールが存在しないと決定したことに応答して、前記第１および第２パターンに対応するパターンタイプに適合するビアルールのセットからパターンタイプ規定のビアルールを選択するステップを含む、請求項１６に記載の方法。
【請求項１８】
前記ビアルールを選択するステップは、さらに、適合するパターン規定のビアルールが存在しない、および適合するパターンタイプ規定のビアルールが存在しないと決定したことに応答して、デフォルトのビアルールを選択するステップを含む、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
技術分野
本開示は、電子設計自動化（ＥＤＡ：Electronic  Design  Automation）に関する。より特定的には、本開示は、パターンベースの電源グランドルーティングおよびビア生成に関する。
【背景技術】
【０００２】
関連技術
電源グランド（ＰＧ：Power-and-ground）ネットは、電力およびグランド電圧を回路素子に供給する集積回路におけるネットに言及している。従来の技術は、典型的には、多数の配線セグメントを個々に生成および接続することによってＰＧネットを生成する。たとえば、従来の技術は、典型的には、ＰＧネット内に各配線セグメントを個々に生成するスクリプトを用いることによってＰＧネットを生成する。たとえば、ＰＧネットに生成される各配線セグメントは、１つの配線セグメントを生成する実行コマンドに対応する。
【０００３】
上記の従来のアプローチは、多くの欠点を有する。特に、ＰＧネットを生成するために用いられるスクリプトは、回路設計のサイズおよび複雑性の急速な増加により、管理できないほど複雑になっている。企業がこれらのスクリプトを生成およびメンテナンスするための専用技術者のチームを有することは珍しくない。さらに、回路設計のフロアプランが修正されるときには、通常、スクリプトも修正される必要がある。スクリプトを修正することと、修正されたスクリプトをその後にチェックすることとのプロセスは長時間を要し得る。これらの欠点のため、従来のスクリプトベースのアプローチは、回路設計のフロアプランの修正するトータルのターンアラウンドタイムに２，３週間を容易に追加し得る。
【０００４】
それゆえに、上述の問題無しにＰＧルーティングをするためのシステムおよび技術が必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
本明細書で説明される一部の実施形態は、パターンベースのＰＧルーティングのめのシステムおよび技術を提供する。より具体的には、ＰＧ配線をルーティングするためのパターンが受け付けられ得る。たとえば、パターンベースのＰＧルーティングのアプリケーションは、パターン定義言語（pattern  definition  language）を用いて定義されるパターンの記述を含むファイルを読み込んでもよい。次に、実施形態は、当該パターンに基づいてＰＧ配線がインスタンス化される集積回路（ＩＣ）の設計レイアウトのエリアを規定するとともにインスタンス化されたＰＧ配線に割り当てられる１つ以上のネット識別子を規定するインスタンス化計画を受け付けてもよい。インスタンス化計画は、ＰＧブロック（たとえば、ＩＣ設計におけるＰＧ配線が曲がることが許されないエリア）や任意の伸長要求（すなわち、当該パターンがＩＣ設計において１つ以上の既存のオブジェクトに電気的に接続され得るように）も任意に規定できる。一部の実施形態では、グラフィカルユーザーインターフェースがインスタンス化計画を生成するために用いられ得る。ＰＧ配線は、当該パターンおよび当該インスタンス化計画に基づいてＩＣ設計レイアウトにおいてインスタンス化され得る。
【０００６】
当該パターンは、２つ以上のパターンのセットを結合する階層パターンであってもよい。パターン定義言語は、基本的なパターン（たとえば、ラインパターン、リングパターンなど）のセットをサポートし、階層パターンを定義する構成を提供してもよい。
【０００７】
本明細書で説明される一部の実施形態は、パターンベースのビア生成に向けられるシステムおよび技術を提供する。より具体的には、ビアルールのセットが受け付けられ得、各ビアルールは、２つの異なる金属層にある２つのＰＧ配線の交点（intersection）でインスタンス化されるビアのタイプを規定する。次に、１つ以上のビアは、ビアルールのセットに基づいてＩＣ設計レイアウトにおいてインスタンス化され得る。１つ以上のビアをインスタンス化するプロセスは、（１）第１金属層の第１ＰＧ配線と第２金属層の第２ＰＧ配線との交点を検出することと、（２）第１ＰＧ配線を生成するために用いられる第１パターンと第２ＰＧ配線を生成するために用いられる第２パターンとに基づいてビアルールのセットからビアルールを選択することと、（３）選択されたビアルールに従って第１ＰＧ配線と第２ＰＧ配線との交点でＩＣ設計レイアウト上にビアをインスタンス化することとを含み得る。
【０００８】
ビアルールを選ぶロジックは、任意に複合できる。一部の実施形態では、複数のビアルールがパターン基準に適合する場合、最も明確なビアルールが選択され得る。たとえば、第１パターンと第２パターンとを用いて生成されたＰＧ配線の交点を検出すると、実施形態は、第１および第２パターンに適合するビアルールのセットからパターン規定のビアルールを選択し得る。仮に基準に適合するパターン規定のビアルールが存在しない場合には、第１および第２パターンに対応するパターンタイプに適合するパターンタイプ規定のビアルールが選択され得る。仮に基準に適合するパターン規定のビアルールが存在せず、かつ基準に適合するパターンタイプ規定のビアルールが存在しない場合には、デフォルトのビアルールが用いられ得る。
【図面の簡単な説明】
【０００９】
【図１】本明細書で説明される一部の実施形態に従ってパターンベースのＰＧルーティングのプロセスを提示するフローチャートを示す。
【図２Ａ】本明細書で説明される一部の実施形態に従ってパターンの例を示す。
【図２Ｂ】本明細書で説明される一部の実施形態に従ってパターンをインスタンス化するためのインスタンス化計画を示す。
【図２Ｃ】本明細書で説明される一部の実施形態に従ってＰＧブロックを侵害することなく与えられたエリアにおいてどのようにしてパターンがインスタンス化され得るかを示す。
【図３】本明細書で説明される一部の実施形態に従ってリングパターンを示す。
【図４】本明細書で説明される一部の実施形態に従ってビアルールに基づいてビア生成プロセスを示すフローチャートを提示する。
【図５Ａ】本明細書で説明される一部の実施形態に従ってビアを生成するためにビアルールがどのように用いられるかを示す図である。
【図５Ｂ】本明細書で説明される一部の実施形態に従ってビアを生成するためにビアルールがどのように用いられるかを示す図である。
【図５Ｃ】本明細書で説明される一部の実施形態に従ってビアを生成するためにビアルールがどのように用いられるかを示す図である。
【図５Ｄ】本明細書で説明される一部の実施形態に従ってビアを生成するためにビアルールがどのように用いられるかを示す図である。
【図６】本明細書で説明される一部の実施形態に従ってコンピュータシステムを示す図である。
【発明を実施するための形態】
【００１０】
詳細な説明
以下の説明は、当業者が本発明を為しかつ使用することが可能となるように提示され、また、特定の用途およびその要件に関連して設けられる。開示される実施形態のさまざまな変更は、当業者に容易に明らかであり、本明細書に規定される一般的な原則は、本発明の要旨および範囲から逸脱することなく他の実施形態および用途に適用されてもよい。したがって、本明細書に開示される１つ以上の発明は、示される実施形態に限定されず、本明細書に開示される原則および特徴と一致した最も広い範囲が付与されるべきである。
【００１１】
電子設計自動化（ＥＤＡ）フローの概略
回路設計を生成するために、ＥＤＡフローが使用可能である。一旦回路設計が完成されると、製造、パッケージング、および組立が行なわれて、集積回路チップを製造することができる。ＥＤＡフローは複数のステップを含むことができ、各ステップは、１つ以上のＥＤＡソフトウェアツールの使用を含むことができる。一部のＥＤＡステップおよびソフトウェアツールを以下に説明する。これらのＥＤＡステップおよびソフトウェアツールの例は、例示目的に過ぎず、本実施形態を開示される形態に限定することを意図するものではない。
【００１２】
一部のＥＤＡソフトウェアツールにより、回路設計者は、実施されたい機能性を表わすことができる。さらに、これらのツールにより、回路設計者は、もしもの場合のプラニングを行なって、機能性を改良する、コストを確認するなどを行なうことができる。論理設計および機能検証中には、たとえば、System VerilogなどのＨＤＬ（ハードウェア記述言語）コードが書き込まれ、設計の機能精度を確認することができ、たとえば、設計が正確な出力を生成することが確実であることを確認することができる。
【００１３】
試験用の合成および設計中には、ＨＤＬコードは、１つ以上のＥＤＡソフトウェアツールを用いてネットリストに翻訳されることができる。さらに、ネットリストは、目標の技術のために最適化されることができ、試験は、完成されたチップを確認するために設計され、実施されることができる。ネットリスト検証中には、ネットリストをタイミング制約の順守およびＨＤＬコードとの対応について確認することができる。
【００１４】
設計計画中には、チップ用のフロアプラン全体を構築し、これをタイミングおよびトップレベル配線について分析することができる。物理的実装中には、回路要素は、レイアウトに位置付けられることができ（配置）、電気的に結合されることができる（配線）。ＰＧルーティングは、物理的実装中に行なわれる。
【００１５】
分析および抽出中には、回路の機能性をトランジスタレベルで検証することができ、寄生要素を抽出することができる。物理的検証中には、当該設計の製造、電気的事項、リソグラフィ事項などについての正確さが確保されることを確認することができる。
【００１６】
解像度向上中には、レイアウト上で幾何学的操作を行ない、設計の製造しやすさを改善することができる。マスクデータの作成中には、設計は、製造中に使用されるマスクを生成するように完成されることができる。
【００１７】
パターンベースのルーティング
図１は、本明細書で説明される一部の実施形態に従ってパターンベースのＰＧルーティングのプロセスを示すフローチャートを提示する。
【００１８】
本プロセスは、ルーティングＰＧ配線のパターンを受け付けることによって開始し得る（工程１０２）。当該パターンは、２つ以上のパターンのセットを結合する階層パターンであってもよい。より具体的には、当該パターンは、パターン定義言語によって元々からサポートされている他のパターン、または他の場所（たとえば、同じファイル内か異なるファイル内のいずれか一方）に定義されている他のパターンに関してユーザがパターンを定義できるパターン定義言語を用いて表され得る。パターン定義言語は、より複雑なパターンを生成するために用いられる基本的なパターンのセットを元々からサポートしていてもよい。たとえば、基本的なパターンのセットは、１つのライン、１つのセグメント、ラインスペースパターン、リングパターン、マクロ／パッド接続部（macro/pad  connection）、標準セルレイル（standard  cell  rail  connection）、および／またはパターン定義言語において元々からサポートされているのに望ましいその他のパターンを含み得る。パターン定義言語は、１つ以上の既存のパターンを組み合わせることによって新たなパターンが定義および生成され得る構成を提供し得る。
【００１９】
本開示は、特定のパターン定義言語を用いることで表わされるパターンの例を含む。このパターン定義言語は、図示目的のためだけに用いられる。本開示で提示されるパターン定義の例は、本実施形態を開示された形態に限定することを意図するものではない。
【００２０】
本パターンに加えて、本プロセスは、当該パターンをインスタンス化するインスタンス化計画も受け付け得る。インスタンス化計画は、当該パターンに基づいてＰＧ配線がインスタンス化されるＩＣ設計レイアウトのエリアと、インスタンス化されたＰＧ配線に割り当てられる１つ以上のネット識別子とを含む（工程１０４）。インスタンス化計画で規定されているエリアは、通常、ＩＣ設計レイアウトの与えられた層においてポリゴンのセットを含み得る。ＰＧ配線のインスタンス化されるエリアを規定することに加えて、ＰＧブロック（PG  blockage）のセットがインスタンス化計画において規定され得る。ＰＧブロックは、ＰＧ配線がインスタンス化されることが許されないＩＣ設計内の１つ以上のエリアを示し得る。
【００２１】
その後、本プロセスは、当該パターンと当該インスタンス化計画とに基づいてＩＣ設計レイアウトにおいてＰＧ配線をインスタンス化し得る（工程１０６）。上述したように、仮に任意のＰＧブロックが規定されている場合には、本プロセスは、インスタンス化計画で規定されたＰＧブロックを侵害することなく（たとえば、ブロックされているエリアを避けることによって）、インスタンス化計画で規定されたＩＣ設計レイアウトのエリアにおいてＰＧ配線をインスタンス化し得る。
【００２２】
図２Ａは、本明細書で説明される一部の実施形態に従ってパターンの例を示す。図２Ａに示される３つのパターンの例は、パターン１、パターン２、パターン３と称される。パターン１、パターン２のパターンは基本的なパターンであり、たとえば、これらのパターンは、パターン記述言語において元々からサポートされている。一方で、パターン３のパターンは、パターン１、パターン２パターンに関して定義されるパターンである。
【００２３】
パターン１のパターンは、以下のパラメータを有するラインである：幅＝１、層＝１、および方向＝ｖ（“ｖ”は、“垂直”を意味する）。図２Ａに示されるように、パターン１は、パターン定義言語において以下の命令文を用いて定義され得る：“pattern1 :（type=line, width=1, layer=1, direction=v）”。パターン１は、無制限に垂直方向に伸びているため（このことは、長方形２０２の上端および下端から外側に伸びている矢印によって図２Ａに示されている）、垂直方向において長方形２０２の終点および長さは、規定されていない。
【００２４】
パターン２のパターンは、以下の命令文を用いて定義され得る：“pattern2 :（type=segment, width=1, layer=2, direction=h, low=0, high=4）”。パターン２はセグメントであるので、当該パターンの端部（または、代わりに長さ）が規定される必要がある。“ｌｏｗ”の値は長方形２０４の左端の位置を規定し、“ｈｉｇｈ”の値は、長方形２０４の右端の位置を規定する。方向パラメータは“ｈ”であり、それは“水平”を表わす。
【００２５】
パターン３のパターンは、パターン１およびパターン２のパターンに基づいてメッシュパターン（図２Ａのメッシュ２０６）を定義する。図２Ａに示されるように、パターン３の定義は、パターン３がパターン１の繰り返しとパターン２の繰り返しとの組み合わせであることを示している。パターン１の繰り返しは、オフセット“ｍ”で始まり、ピッチ“ｐ”で繰り返される。パターン２の繰り返しは、オフセット（ｘｏ，ｙｏ）で始まり、水平方向においてピッチ“ｘｐ”で垂直方向においてピッチ“ｙｐ”で繰り返される。パターン１に対応するラインは垂直方向に無制限に伸びているので、垂直方向におけるオフセットおよびピッチは、パターン１について規定されていない。
【００２６】
図２Ａに示されるパターン定義言語の構文および意味は、図示のみを目的としており、本実施形態を開示される形態に限定することを意図するものではない。多くの改良および変形が当業者に明らかとなるであろう。たとえば、パターン定義において層の情報を規定する代わりに（たとえば、パターン１の定義におけるパラメータの割り当て“layer=1”）、パターンがインスタンス化されるときに層の情報が規定されてもよい。
【００２７】
図２Ｂは、本明細書で説明される一部の実施形態に従ってパターンをインスタンス化するためのインスタンス化計画を示す。インスタンス化計画は、ＰＧパターンをインスタンス化するためのＩＣ設計レイアウト２２２においてエリア２２４を規定し得、インスタンス化された配線にネット識別子“ｎ１２３”が割り当てられることを規定し得る。一般的に、多数のネット識別子がインスタンス化計画において規定され得る。たとえば、インスタンス化計画は、水平な配線がネット識別子“ｎ１”に割り当てられ、垂直な配線がネット識別子“ｎ２”に割り当てられることを規定してもよい。ＰＧブロック２２６もインスタンス化計画で規定され得、ＰＧブロック２２６は、ＰＧパターンのインスタンス化中に避けられる。ＰＧブロックは、通常、ＩＣ設計レイアウト２２２における任意の場所に配置され得、ＰＧブロック２２６は、１つ以上の層に適用してもよい。
【００２８】
図２Ｃは、本明細書で説明される一部の実施形態に従ってＰＧブロック２２６を侵害することなく与えられたエリアにおいてどのようにしてパターンがインスタンス化され得るかを示す。図２Ｃのインスタンス化されたパターン２２８は、図２Ｂに示されるＰＧブロック２２６を避けつつ図２Ａに示されるパターン３が図２Ｂに示されるエリア２２４においてインスタンス化されるときに得られる。インスタンス化されたパターン２２８の配線は、インスタンス化計画で規定されたようにネット識別子“ｎ１２３”（図２Ｃには示されない）を割り当てられる。パターン１が層１上にあり、パターン２が層２上にあることに注目する。それゆえに、インスタンス化されたパターン２２８の垂直ラインは層１上にあり、インスタンス化されたパターン２２８の水平セグメントは層２上にある。一部の実施形態において、インスタンス化計画は、インスタンス化されたパターン２２８における配線がどのように伸びているのかも規定する。たとえば、インスタンス化計画は、配線がＩＣ設計レイアウト２２２において１つ以上のオブジェクトに電気的に接続しないように、１つ以上の配線が伸ばされるように規定してもよい。パターンベースのＰＧルーティングツールは、（たとえば、電気的に接続される必要があるオブジェクトの位置に基づいて）インスタンス化されたパターン２２８において１つ以上の配線を選択し、選択された配線を適切な方向に（すなわち、伸ばされた配線がインスタンス化計画で規定されたオブジェクトに電気的に接続しないように）伸ばしてもよい。
【００２９】
図２Ａに示されるパターンの例は、図示を目的とするだけであり、本明細書で説明される実施形態に限定することを意図するものではない。本明細書で開示される図示の例に対する多くの改良および変形が当業者に明らかとなるであろう。たとえば、図３は、本明細書で説明される一部の実施形態に従ってリングパターンを示す。図３に示されるように、リングパターンは、以下の命令文を用いて定義され得る：“pattern4: (type=ring, width=1, xlen, ylen)”。パラメータの割り当て“type=ring”は、パターンがリングパターンであることを示す。次に、パラメータの割り当て“width=1”は、リング幅（たとえば、図３の斜線部分の幅）を規定する。図３に示されるように、パラメータ“xlen”および“ylen”は、リングの寸法を規定する。
【００３０】
異なるパターンが異なる層上でインスタンス化されたとき（たとえば、金属層Ｍ１上でパターン１、金属層Ｍ２上でパターン２など）、ビアは、異なるパターンに電気的に接続されるように生成される必要があってもよい。ビアルールに基づく生成プロセスが以下で説明される。
【００３１】
ビアルール
図４は、本明細書で説明される一部の実施形態に従ってビアルールに基づくビア生成プロセスを示すフローチャートを提示する。当該プロセスはビアルールを受け付けることから開始し得、各ビアルールは、２つの異なる金属層にある２つのＰＧ配線の交点でインスタンス化されるようにビアのタイプを規定する（工程４０２）。次に、１つ以上のビアは、ビアルールのセットに基づいてＩＣ設計レイアウト上でインスタンス化され得る（工程４０４）。
【００３２】
１つ以上のビアをインスタンス化することは、以下の工程を含み得る。（１）第１金属層の第１ＰＧ配線と第２金属層の第２ＰＧ配線との交点を検出すること、（２）第１ＰＧ配線を生成するために用いられる第１パターンと第２ＰＧ配線を生成するために用いられる第２パターンとに基づいてビアルールのセットからビアルールを選択すること、および（３）当該ビアルールに基づいて第１ＰＧ配線と第２ＰＧ配線との交点でＩＣ設計レイアウト上にビアをインスタンス化すること。
【００３３】
ビアルールは、パターンレベル（本開示では、ビアルールの本タイプは“パターン規定のビアルール”と呼ばれる）、またはパターンタイプレベル（本開示では、ビアルールの本タイプは“パターンタイプ規定のビアルール”と呼ばれる）で規定され得る。パターン規定のビアルールは、２つのパターン（たとえば、パターン１およびパターン２）を規定している。パターン規定のビアルールは、パターン規定のビアルールに規定されている２つのパターンによって生成された２つのＰＧ配線の交点でビアをインスタンス化し得る。たとえば、仮にパターン規定のビアルールがパターン１およびパターン２のパターンを規定している場合には、ビアルールは、層１におけるパターン１によって生成されるＰＧ配線と層２におけるパターン２によって生成されるＰＧ配線との交点でビアをインスタンス化し得る。パターンタイプ規定のビアルールは、２つのパターンタイプ（たとえば、パターンタイプ“ライン”およびパターンタイプ“リング”）を規定しており、２つのパターンタイプに属している２つのパターンによって生成された２つのＰＧ配線の交点でビアを生成するために用いられる。たとえば、パターンタイプ規定のビアルールは、ラインパターンによって生成されたＰＧ配線とリングパターンによって生成されたＰＧ配線との交点でビアを生成するために用いられ得る。
【００３４】
仮に複数のビアルールが交点の基準に適合する場合、本プロセスは、最も明確なビアルールを選択する、あるいは最も優先度の高いビアルールを選択してもよい（ビアルールが優先度を割り当てられていると仮定する）。たとえば、パターン規定のビアルールＲ１は、ビアがパターンＰ１およびＰ２によって生成されたＰＧ配線の交点で生成されるように示していると仮定する。パターンＰ１およびＰ２をパターンタイプＴ１およびＴ２にそれぞれ属させる。さらに、パターンタイプ規定のビアルールＲ２は、ビアがパターンタイプＴ１およびＴ２のパターンによって生成されたＰＧ配線の交点で生成されるように示していると仮定する。この例では、Ｒ１およびＲ２の両方は、パターンＰ１およびＰ２を用いて生成されたＰＧ配線の交点に適用できるであろう。一部の実施形態では、ビアルールＲ１がビアルールＲ２によりも明確であるので、本プロセスは、ビアを生成するためにビアルールＲ１を選択してもよい。
【００３５】
一部の実施形態では、各ビアルールは優先度に関連付けられてもよく、最も高い優先度に適合するビアルールがビア生成のために選択されてもよい。仮に交点に適合するビアルールが存在しなかった場合には、本プロセスは、ビア生成のためにデフォルトのビアルールを用いてもよい（デフォルトのビアルールが定義されていると仮定する）。
【００３６】
より具体的には、一部の実施形態では、第１および第２パターンを用いて生成された２つのＰＧ配線の交点のためにビアルールを選択するプロセスは、以下のように示されてもよい。（１）第１および第２パターンに適合するビアルールのセットからパターン定義のビアルールを選択する、（２）仮にパターン定義のビアルールが選択され得ない場合には、第１および第２パターンに対応するパターンタイプに適合するビアルールのセットからパターンタイプ定義のビアルールを選択する、および（３）仮にパターン定義のビアルールまたはパターンタイプ定義のビアルールが選択され得ない場合には、デフォルトのビアルールを選択する（デフォルトのビアルールが定義されていると仮定する）。ビアルールを選択するこれらの技術は、図示を目的とするためだけに示され、実施形態を開示される形態に限定することを意図するものではない。
【００３７】
図５Ａ〜図５Ｄは、本明細書で説明される一部の実施形態に従ってビアを生成するためにビアルールがどのように用いられ得るかを示す図である。図５Ａは、４つの異なるパターン（ｐａｔ１、ｐａｔ２、ｐａｔ３、およびｐａｔ４）と、３つの異なるビア（ｖｉａ１、ｖｉａ２、およびｖｉａ３）を示す図である。ｐａｔ１およびｐａｔ２のパターンは層１上にある垂直ラインであり、ｐａｔ２のパターンの幅は、ｐａｔ１のパターンの幅よりも長い。ｐａｔ３およびｐａｔ４のパターンは層２上にある水平ラインであり、ｐａｔ４のパターンの幅は、ｐａｔ３のパターンの幅よりも長い。図５Ａに示されるように、ｖｉａ１における交点領域の中央に１つのビアが生成され、ｖｉａ２における交点領域の左端に１つのビアが生成され、ビア３における交点領域の左上隅に２×２のビア配列が生成されている。
【００３８】
図５Ｂは、ｐａｔ１、ｐａｔ２、ｐａｔ３、およびｐａｔ４を用いて生成されたメッシュパターン（メッシュ５０２）を示す（たとえば、メッシュ５０２は、各パターンのオフセットとピッチとの値を規定することによって生成されてもよい）。図５Ｂにおいて、ビアが生成されていないことに注目する。
【００３９】
図５Ｃは、メッシュ５０２においてビアを生成するために用いられ得るビアルールのセットを示す。より具体的には、ビアルール５０４は、４つのビアルールを含む。第１ビアルールは、ｐａｔ１およびｐａｔ３のパターンによって生成された２つのＰＧ配線が交差するときに、ｖｉａ１のタイプのビアが生成されることを示す。第２ビアルールは、ｐａｔ２およびｐａｔ３のパターンによって生成された２つのＰＧ配線が交差するときに、ｖｉａ２のタイプのビアが生成されることを示す。第３ビアルールは、ｐａｔ２およびｐａｔ４のパターンによって生成された２つのＰＧ配線が交差するときに、ｖｉａ３のタイプのビアが生成されることを示す。第４ビアルールは、ｐａｔ１およびｐａｔ４のパターンによって生成された２つのＰＧ配線が交差するときに、ビアが生成されないことを示す。
【００４０】
図５Ｄは、ビアルール５０４をメッシュ５０２に適用した結果を示す図である。図５Ｄに示されるように、第１ビアルールは左上の交点のために用いられ、第２ビアルールは右上の交点のために用いられ、第３ビアルールは右下の交点のために用いられ、第４ビアルールは左下の交点のために用いられた。
【００４１】
コンピュータシステム
図６は、本開示に記載される一部の実施形態に従ってコンピュータシステムを示す。コンピュータシステム６０２は、プロセッサ６０４、メモリ６０６、および記憶装置６０８を含み得る。コンピュータシステム６０２は、表示装置６１４、キーボード６１０、およびポインティングデバイス６１２に結合され得る。記憶装置６０８は、オペレーティングシステム６１６、アプリケーション６１８、およびデータ６２０を格納し得る。データ６２０は、アプリケーション６１８によって必要とされる入力および／またはアプリケーション６１８によって生成される出力を含み得る。
【００４２】
コンピュータシステム６０２は、本開示に暗示的または明示的に記載される１つ以上のプロセスを自動的に（またはユーザ入力により）行なってもよい。たとえば、コンピュータシステム６０２は、アプリケーション６１８をメモリ６０６にロードすることができ、アプリケーション６１８は、パターンベースのＰＧルーティングおよび／またはビアルールのセットに基づいてビア生成を行なうために用いられ得る。
【００４３】
結論
上記の説明は、当業者が本実施形態を為しかつ使用することが可能となるように提示される。開示された実施形態のさまざまな改良が当業者に容易に明らかとなり、本明細書に規定された一般的な原則は、本開示の要旨および範囲から逸脱することなく他の実施形態および用途に適用可能である。したがって、本発明は、示された実施形態に限定されず、本明細書に開示された原則および特徴と一致した最も広い範囲が付与されるべきである。
【００４４】
本開示に記載されたデータ構造およびコードは、コンピュータ読取可能記憶媒体および／またはハードウェアモジュールおよび／またはハードウェア装置に一部または完全に格納されることができる。コンピュータ読取可能記憶媒体としては、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル汎用ディスクまたはデジタルビデオディスク）などの磁気および光学記憶装置、または、コードおよび／もしくはデータを格納することの可能な、現在知られているもしくは後に開発される他の媒体が含まれるが、これらに限定されない。本開示に記載されるハードウェアモジュールまたは装置としては、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、専用もしくは共有プロセッサ、および／または、現在知られているもしくは後に開発される他のハードウェアモジュールもしくは装置が含まれるが、これらに限定されない。
【００４５】
本開示に記載される方法およびプロセスは、コンピュータシステムがコードおよび／またはデータを読出し、実行すると、コンピュータシステムが関連の方法およびプロセスを実施するように、コンピュータ読取可能記憶媒体または装置に格納されたコードおよび／またはデータとして一部または完全に具現化されることができる。さらに、方法およびプロセスは、ハードウェアモジュールまたは装置が作動されると、関連の方法およびプロセスを実施するように、ハードウェアモジュールまたは装置において一部または完全に具現化されることもできる。なお、方法およびプロセスは、コード、データ、およびハードウェアモジュールまたは装置の組み合わせを用いて具現化されることができる。
【００４６】
本発明の実施形態の上記の説明は、例示および説明の目的のためだけに提示される。これらは網羅的であることまたは本発明を開示された形態に限定することを意図するものではない。したがって、多くの改良および変形が当業者に明らかとなるであろう。さらに、上記の開示は本発明を限定することを意図するものではない。本発明の範囲は、添付の請求項によって規定される。
【図１】
0006316311.tif 000002
【図２Ａ】
0006316311.tif 000003
【図２Ｂ】
0006316311.tif 000004
【図２Ｃ】
0006316311.tif 000005
【図３】
0006316311.tif 000006
【図４】
0006316311.tif 000007
【図５Ａ】
0006316311.tif 000008
【図５Ｂ】
0006316311.tif 000009
【図５Ｃ】
0006316311.tif 000010
【図５Ｄ】
0006316311.tif 000011
【図６】
0006316311.tif 000012