(57)【特許請求の範囲】
【請求項１】
回路設計上でシェーピングを行なうための、コンピュータにより実行される方法であって、前記方法は、
前記回路設計で使用されるべきパワーグリッド（ＰＧ）の構造を特定するＰＧストラテジのセットを受取るステップと、
前記ＰＧストラテジのセットに基づいて配置制約のセットを生成するステップとを備え、前記配置制約のセットは、前記ＰＧの構造に整列されるべき物理的パーティションを要求する配置制約を含み、少なくとも１つのＰＧ配線が前記物理的パーティションを通過し、
前記配置制約のセットを用いて前記回路設計上でシェーピングを行なうステップと、
前記回路設計上で前記シェーピングを行った後に、前記ＰＧストラテジのセットに基づいて、前記回路設計における前記ＰＧを生成するステップとをさらに備え、前記回路設計における前記ＰＧを生成するステップは、前記少なくとも１つのＰＧ配線を、前記物理的パーティションに押込むステップを含む、方法。
【請求項２】
アライメントオプションを受取るステップをさらに備え、前記生成するステップは、前記ＰＧストラテジのセットおよび前記アライメントオプションに基づいて、前記配置制約のセットを生成することを含む、請求項１に記載の方法。
【請求項３】
前記配置制約のセットは、物理的パーティションの中心線がＰＧ配線の中心線に位置合わせされることを要求する配置制約を含む、請求項１に記載の方法。
【請求項４】
前記配置制約のセットは、物理的パーティションの所与のエッジがＰＧ配線に対して所与のオフセットを有することを要求する配置制約を含む、請求項１に記載の方法。
【請求項５】
前記配置制約のセットは、物理的パーティションにおける基準点がグリッドのグリッド点に位置合わせされることを要求する配置制約を含む、請求項１に記載の方法。
【請求項６】
前記ＰＧストラテジのセットは、前記ＰＧを生成するための開始点、ピッチ、方向、およびリピート回数を特定する、請求項１に記載の方法。
【請求項７】
非一時的コンピュータ読取可能記憶媒体であって、前記記憶媒体は、指令を格納し、前記指令は、コンピュータによって実行されると、前記コンピュータに、回路設計上でシェーピングを行なうための方法を実施させ、前記方法は、
前記回路設計で使用されるべきパワーグリッド（ＰＧ）の構造を特定するＰＧストラテジのセットを受取るステップと、
前記ＰＧストラテジのセットに基づいて配置制約のセットを生成するステップとを備え、前記配置制約のセットは、前記ＰＧの構造に整列されるべき物理的パーティションを要求する配置制約を含み、少なくとも１つのＰＧ配線が前記物理的パーティションを通過し、
前記配置制約のセットを用いて前記回路設計上でシェーピングを行なうステップと、
前記回路設計上で前記シェーピングを行った後に、前記ＰＧストラテジのセットに基づいて、前記回路設計における前記ＰＧを生成するステップとをさらに備え、前記回路設計における前記ＰＧを生成するステップは、前記少なくとも１つのＰＧ配線を、前記物理的パーティションに押込むステップを含む、非一時的コンピュータ読取可能記憶媒体。
【請求項８】
アライメントオプションを受取るステップをさらに備え、前記生成するステップは、前記ＰＧストラテジのセットおよび前記アライメントオプションに基づいて、前記配置制約のセットを生成することを含む、請求項７に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項９】
前記配置制約のセットは、物理的パーティションの中心線がＰＧ配線の中心線に位置合わせされることを要求する配置制約を含む、請求項７に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項１０】
前記配置制約のセットは、物理的パーティションの所与のエッジがＰＧ配線に対して所与のオフセットを有することを要求する配置制約を含む、請求項７に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項１１】
前記配置制約のセットは、物理的パーティションにおける基準点がグリッドのグリッド点に位置合わせされることを要求する配置制約を含む、請求項７に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項１２】
前記ＰＧストラテジのセットは、前記ＰＧを生成するための開始点、ピッチ、方向、およびリピート回数を特定する、請求項７に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項１３】
回路設計上で正当化を行なうための、コンピュータにより実行される方法であって、前記方法は、
前記回路設計で使用されるべきパワーグリッド（ＰＧ）の構造を特定するＰＧストラテジのセットを受取るステップと、
前記ＰＧストラテジのセットに基づいて配置制約のセットを生成するステップとを備え、前記配置制約のセットは、前記ＰＧの構造に整列されるべき物理的パーティションを要求する配置制約を含み、少なくとも１つのＰＧ配線が前記物理的パーティションを通過し、
前記配置制約のセットを用いて前記回路設計を正当化するステップをさらに備え、
前記回路設計上で前記正当化を行った後に、前記ＰＧストラテジのセットに基づいて、前記回路設計における前記ＰＧを生成するステップとをさらに備え、前記回路設計における前記ＰＧを生成するステップは、前記少なくとも１つのＰＧ配線を、前記物理的パーティションに押込むステップを含む、方法。
【請求項１４】
アライメントオプションを受取るステップをさらに備え、前記生成するステップは、前記ＰＧストラテジのセットおよび前記アライメントオプションに基づいて、前記配置制約のセットを生成することを含む、請求項１３に記載の方法。
【請求項１５】
前記配置制約のセットは、物理的パーティションの中心線がＰＧ配線の中心線に位置合わせされることを要求する配置制約を含む、請求項１３に記載の方法。
【請求項１６】
前記配置制約のセットは、物理的パーティションの所与のエッジがＰＧ配線に対して所与のオフセットを有することを要求する配置制約を含む、請求項１３に記載の方法。
【請求項１７】
前記配置制約のセットは、物理的パーティションにおける基準点がグリッドのグリッド点に位置合わせされることを要求する配置制約を含む、請求項１３に記載の方法。
【請求項１８】
前記ＰＧストラテジのセットは、前記ＰＧを生成するための開始点、ピッチ、方向、およびリピート回数を特定する、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
技術分野
本開示は、電子設計自動化（ＥＤＡ）に関する。より特定的には、本開示は、パワーグリッドアライメントのためにパワーネットワーク合成と一体化されたシェーピングに関する。
【背景技術】
【０００２】
関連技術
プロセス技術の進歩および消費者電子機器に対する実質的に制限のない需要は、集積回路（ＩＣ）設計のサイズおよび複雑性の急速な増大に拍車を掛けている。回路設計フローの性能は、ＩＣ設計を販売するまでの時間を短縮することから、非常に重要である。
【０００３】
シェーピングは、回路設計における物理的パーティション（ブロックとしても知られる）の形状、サイズ、および／または位置を決定する回路設計フローの一工程を指す。パワーグリッド（ＰＧ）は、回路設計における回路要素に電源電圧および接地電圧を供給する回路を指す。パワーネットワーク合成（ＰＮＳ）は、回路設計のためにＰＧが生成される回路設計フローにおける一工程を指す。
【０００４】
典型的な回路設計フローにおいて、シェーピングはＰＮＳよりずっと前に実施される。これにより、シェーピング中に決定された物理的パーティションの形状、サイズ、および位置と一致したＰＧネットワークを生成することが非常に困難となっている。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
本明細書に記載される一部の実施形態は、ＰＧの構造に基づいて生成される配置制約に基づいて、回路設計上でシェーピングを行なうためのシステムおよび技術を提供する。これにより、シェーピングエンジンは、物理的パーティションをＰＧに位置合わせすることができる。
【０００６】
一部の実施形態では、システム（たとえばコンピュータ）は、回路設計において使用されるべきＰＧの構造を特定するＰＧストラテジのセット（１つ以上のＰＧストラテジを含み得るＰＧストラテジのセット）を受取ることができる。システムは、必要とされるアライメントのタイプを示すアライメントオプションを受取ってもよく、システムはさらに、金属層に関する情報を受取ってもよい。一部の実施形態では、ＰＧストラテジのセットは、ＰＧを生成するための開始点、ピッチ、方法、およびリピート回数を特定することができる。次に、システムは、ＰＧストラテジのセットに基づいて（さらに任意に、アライメントオプションおよび／または金属層情報にも基づいて）、配置制約のセットを生成することができ、配置制約のセットはシェーピング中に使用される。
【０００７】
次に、システムは、配置制約のセットを用いて回路設計上でシェーピングを行なうことができる。配置制約のセットは、（１）物理的パーティション、たとえば、増倍インスタンス化ブロック（Multiply-Instantiated-Block; MIB）のインスタンスの中心線が、ＰＧ配線の中心線に位置合わせされることを要求する配置制約、（２）物理的パーティションの所与のエッジがＰＧ配線に対して所与のオフセットを有することを要求する配置制約、および／または、（３）物理的パーティションにおける基準点（たとえば所与の角部）がグリッドのグリッド点に位置合わせされることを要求する配置制約を含むことができる。
【図面の簡単な説明】
【０００８】
【図１】本明細書に記載される一部の実施形態に従って、シェーピングがどのようにＰＮＳと一体化され得るかを示す図である。
【図２】本明細書に記載される一部の実施形態に従った、異なる向きを有する複数のＭＩＢインスタンスによる回路設計の一例を示す図である。
【図３Ａ】本明細書に記載される一部の実施形態に従って、シェーピングエンジンがどのように、定位置反転可能アライメント（flippable-in-place alignment）を用いてＭＩＢインスタンスを位置合わせすることができるかの一例を示す図である。
【図３Ｂ】本明細書に記載される一部の実施形態に従って、シェーピングエンジンがどのように、境界からの固定オフセットアライメント（fixed-offset-from-boundary alignment）を用いてＭＩＢインスタンスを位置合わせすることができるかの一例を示す図である。
【図４Ａ】本明細書に記載される一部の実施形態に従って、シェーピングエンジンがどのように複数のグリッドを用いてＭＩＢインスタンスを位置合わせすることができるかの一例を示す図である。
【図４Ｂ】本明細書に記載される一部の実施形態に従って、シェーピングエンジンがどのように単一のグリッドを用いてＭＩＢインスタンスを位置合わせすることができるかの一例を示す図である。
【図５】本明細書に記載される一部の実施形態に従ったシェーピングを行なうためのプロセスを示す図である。
【図６】本明細書に記載される一部の実施形態に従ったコンピュータシステムを示す図である。
【発明を実施するための形態】
【０００９】
詳細な説明
以下の説明は、当業者が本発明を為しかつ使用することが可能となるように提示され、また、特定の用途およびその要件に関連して設けられる。開示される実施形態のさまざまな変更は、当業者に容易に明らかであり、本明細書に規定される一般的な原則は、本発明の要旨および範囲から逸脱することなく他の実施形態および用途に適用されてもよい。したがって、本明細書に開示される１つ以上の発明は、示される実施形態に限定されず、本明細書に開示される原則および特徴と一致した最も広い範囲が付与されるべきである。
【００１０】
電子設計自動化（ＥＤＡ）フローの概略
回路設計を生成するために、ＥＤＡフローが使用可能である。一旦回路設計が完成されると、製造、パッケージング、および組立が行なわれて、集積回路チップを製造することができる。ＥＤＡフローは複数のステップを含むことができ、各ステップは、１つ以上のＥＤＡソフトウェアツールの使用を含むことができる。一部のＥＤＡステップおよびソフトウェアツールを以下に説明する。これらのＥＤＡステップおよびソフトウェアツールの例は、例示目的に過ぎず、実施形態を開示される形態に限定することを意図するものではない。
【００１１】
一部のＥＤＡソフトウェアツールにより、回路設計者は、実施されたい機能性を表わすことができる。さらに、これらのツールにより、回路設計者は、もしもの場合のプラニングを行なって、機能性を改良する、コストを確認するなどを行なうことができる。論理設計および機能検証中には、たとえば、System VerilogなどのＨＤＬ（ハードウェア記述言語）コードが書込まれ、設計の機能精度を確認することができ、たとえば、設計が正確な出力を生成することが確実であることを確認することができる。
【００１２】
試験用の合成および設計中には、ＨＤＬコードは、１つ以上のＥＤＡソフトウェアツールを用いてネットリストに翻訳されることができる。ネットリストは、目標の技術のために最適化されることができ、試験は、完成されたチップを確認するために設計され、実施されることができる。ネットリスト検証中には、ネットリストをタイミング制約の順守およびＨＤＬコードとの対応について確認することができる。
【００１３】
設計プラニング中には、チップ用のフロアプラン全体を構築し、これをタイミングおよびトップレベル配線について分析することができる。物理的実施中には、回路要素は、レイアウトに位置付けられることができ（配置）、電気的に結合されることができる（配線）。
【００１４】
分析および抽出中には、回路の機能性をトランジスタレベルで検証することができ、寄生要素を抽出することができる。物理的検証中には、設計の製造、電気的事項、リソグラフィ事項などについての正確さが確保されることを確認することができる。
【００１５】
解像度向上中には、レイアウト上で幾何学的操作を行ない、設計の製造しやすさを改善することができる。マスクデータの作成中には、設計は、製造中に使用されるマスクを生成するように完成されることができる。
【００１６】
ＰＧアライメントのためにＰＮＳと一体化されたシェーピング
典型的な回路設計フローにおいては、物理的パーティションの形状、サイズ、および位置がシェーピング中に決定される。場合によっては、物理的パーティションは、所定の形状および／またはサイズを既に有していてもよい（たとえば、物理的パーティションが何らかの他の時間または場所に構築され、現在の回路設計内にそのまま挿入されているためなど）。このような状況下では、「シェーピング」操作は、物理的パーティションがＰＧネットワークに位置合わせされるように、物理的パーティションのための位置を決定すること（すなわち配置を行なう）を指すに過ぎない。次に、マクロセルおよび標準セルが物理的パーティション中に配置される。次に、ＰＮＳ中、ＰＧネットワークが生成され、ここで、ＰＮＳは、電源配線および接地配線が物理的パーティションに適切に位置合わせされることを確実にする必要がある。最後に、ＰＧネットワークは、電源電圧および接地電圧が物理的パーティションにおける回路要素に供給可能となるように、物理的パーティションに提供される。
【００１７】
ＰＧネットワークが物理的パーティションに適切に位置合わせされることを確実にするのは難しく、この作業は、回路設計がＭＩＢを含む場合により一層困難となる。ＭＩＢは、回路設計中に複数のインスタンスを有する物理的パーティションである。ＭＩＢは一般的に、任意の回路を含むことができ、たとえば、ＭＩＢは、特定の機能または特定の機能のセットを行なうための回路を含むことができる。たとえば、プロセッサコアは、ＭＩＢであることができる。ＭＩＢの異なるインスタンスは、同一または異なる向きを有することができ、たとえば、ＭＩＢのインスタンスは、別のインスタンスの回転像および／または鏡像であってもよい。回路設計がＭＩＢを含む場合、ＰＧネットワーク生成プロセスは、ＰＧネットワークがＭＩＢに提供され、ＰＧネットワーク中の配線が、ＭＩＢインスタンス内の回路要素に電源電圧および接地電圧を供給するために最適に配置されるように、すべてのＭＩＢの向きを考慮する必要がある。
【００１８】
本明細書に記載される一部の実施形態は、物理的パーティション、たとえばＭＩＢインスタンスのＰＧアライメントを容易にするために、シェーピングをＰＮＳと一体化させる。具体的には、一部の実施形態では、シェーピングエンジンは、シェーピングエンジンがユーザによって特定されたＰＧネットワークにおける配線の位置を推定し、その情報を、シェーピングエンジンが物理的パーティションを形成し、位置合わせするのを助けるために使用するように、ＰＧネットワーク生成エンジンと一体化される。シェーピングエンジンをＰＮＳエンジンと一体化させることにより、シェーピングは、１つ以上のユーザによって特定されたＰＧストラテジを満たすブロック形状を提供することができる。さらに、一体化により、シェーパーは、ＰＧネットワークがＭＩＢについて対称となるようにＭＩＢの向きを最適化することができる。ＰＧネットワーク生成ステップは、シェーピング中に想定された同一のユーザによって規定されたＰＧストラテジを使用するため、ＭＩＢはＰＮＳ中に既にＰＧグリッドに最適またはほぼ最適に位置合わせされている。
【００１９】
図１は、本明細書に記載される一部の実施形態に従って、シェーピングがどのようにＰＮＳと一体化され得るかを示す図である。シェーピングエンジンのためのＰＧ分析器１０８は、ＰＧストラテジのセット１０２、アライメントオプション１０４、および金属層情報１０６の３つの入力を受取ることができる。
【００２０】
ＰＧストラテジのセット１０２は、パワーグリッドの構造を特定する。たとえば、ＰＧストラテジのセットは、開始点、ピッチ（すなわち、２本の配線の中心間の間隔）、方向（すなわち、水平または鉛直）、およびリピート回数（すなわち、作成されるべき配線の数）を特定することができる。一部の実施形態は、２０１３年３月２２日に出願された、Ｙａｎ  Ｌｉｎ、Ｙｉ−Ｍｉｎ  Ｊｉａｎｇ、Ｐｈｉｌｌｉｐ  Ｈ．Ｔａｉ、およびＬｉｎ  Ｙｕａｎの発明者らによる「パターンベースの電源配線および接地配線ならびにビア生成（"Pattern-based power-and-ground routing and via creation,"）」と題された、米国出願第１３／８４９，４２７号に記載されるシステムおよび技術を用いて、パワーグリッドの構造を特定することができ、この文献の内容は、あらゆる目的のためにその全体が本明細書中に参照によって援用される。
【００２１】
アライメントオプション１０４は、シェーピング中に使用されるべきアライメントのタイプを特定する。たとえば、アライメントオプション１０４は、物理的パーティションの所与のエッジとパワーグリッド配線との間の間隔が所与のオフセット値と同等であることを特定してもよい。別の例として、アライメントオプション１０４は、物理的パーティションの中心線がグリッド線に位置合わせされることを特定してもよい。さらに別の例として、アライメントオプション１０４は、アライメントグリッドを参照し、配置されている物理的パーティションまたはＭＩＢインスタンスの所与の角部（または任意の他の基準点）がアライメントグリッドにおけるグリッド点の１つに配置されることを要求してもよい。金属層情報１０６は、たとえば、ＰＧを生成するために使用される金属層および各金属層についての好ましい配線方向を特定することができる。
【００２２】
これらの入力に基づいて、シェーピングエンジンのためのＰＧ分析器１０８は、配置制約１１０のセットを生成することができ、これらの配置制約は、シェーピングエンジン１１２によって使用される。配置制約１１０は、シェーピングエンジン１１２が、ＰＧグリッドに位置合わせされた位置にＭＩＢを配置することを確実にする。一部の実施形態では、配置制約１１０は、グリッドの形態に特定されることができる。これらの実施形態では、シェーピングエンジン１１２は、角部の１つ（または物理的パーティション上の任意のユーザによって特定された基準点）がグリッド点に位置合わせされるように、物理的パーティション（たとえばＭＩＢ）を配置する。
【００２３】
図２は、本明細書に記載される一部の実施形態に従った、異なる向きを有する複数のＭＩＢインスタンスによる回路設計の一例を示す図である。回路設計２０２は、異なる向きを有する４つのＭＩＢインスタンスを含む。ＭＩＢインスタンスＲ０は、マスタＭＩＢインスタンスとなり得る（「Ｒ０」の表示は、０°の回転を示す）。ＭＩＢインスタンスＭＹは、Ｙ軸に沿ったマスタＭＩＢインスタンスの鏡像であることができ、ＭＩＢインスタンスＭＸは、Ｘ軸に沿ったマスタＭＩＢインスタンスの鏡像であることができ、ＭＩＢインスタンスＲ１８０は、マスタＭＩＢインスタンスの１８０°回転されたバージョンであることができる。
【００２４】
一部の実施形態では、配置制約１１０は、４つの異なるグリッドを含むことができ、各グリッドは、ＭＩＢインスタンスの特定の向きに対応する。これらの実施形態では、シェーピングエンジン１１２は、ＭＩＢインスタンスの向きに対応する適切なグリッドを用いることによって、各ＭＩＢインスタンス（たとえば、図２に示される４つのＭＩＢインスタンス）を位置合わせする。
【００２５】
図３Ａは、本明細書に記載される一部の実施形態に従って、シェーピングエンジンがどのように、定位置反転可能アライメントを用いて、ＭＩＢインスタンスを位置合わせすることができるかの一例を示す図である。シェーピングエンジンは、ユーザによって提供されるＰＧストラテジのセットに基づいてＰＧ３１２を構築することができる。たとえば配線３０８および３１４などの網掛けされた配線は、電源電圧（すなわち供給電圧）を送ることができ、たとえば配線３１０などの斜線の配線は、接地電圧を送ることができる。
【００２６】
ＰＧ３１２は、以下のユーザによって特定されたＰＧストラテジ、すなわち、Ｙ軸オフセットは「ｙｏ」であり（これは開始点を示す）、Ｙ軸ピッチは「ｙｐ」であり、方向は水平であり（これは配線の方向を示す）、リピート回数は６回であるというＰＧストラテジに基づいて生成されることができる。このＰＧストラテジでは、交互の配線がそれぞれ電源電圧および接地電圧を運び、Ｙ軸ピッチは、電源配線および接地配線の中心線間の間隔を示すとして想定される。ＰＧの構造を特定するのに他のパターンが使用可能であることが当業者には明らかであろう。たとえば他の実施形態では、電源配線および接地配線についてのオフセットおよびピッチは別々に特定されることができる、および／または、電源配線および接地配線は、異なる方向に沿って延びていてもよい（たとえば、電源配線は鉛直方向に延び、接地配線は水平方向に延びることもできる）。
【００２７】
なお、シェーピングエンジンは、実際には回路設計中にＰＧ３１２を構築しない。すなわち、ＰＧ３１２中の配線は、まだ回路設計の一部ではない。代わりに、シェーピングエンジンは、ＰＧ３１２の図を生成し、後に、この図は、シェーピング中にＭＩＢインスタンスをＰＧ３１２に位置合わせするために用いられることができる。パワーグリッドは、ＰＮＳ中に回路設計に追加され、上に説明したように、ＰＮＳは、設計フローにおいて通常後に（すなわち、シェーピングに対して後に）行なわれるステップである。
【００２８】
一旦ＰＧ３１２が生成されると、次にシェーピングエンジンは、アライメントオプション１０４で特定されたアライメントのタイプに従ってＭＩＢインスタンスを配置することができる。たとえば、図３Ａは、定位置反転可能アライメントオプションに従ってＭＩＢインスタンスがどのように配置されることができるかを示す。このアライメントオプションでは、ＭＩＢインスタンスの中心線が、電源電圧を送るＰＧ配線の中心線に位置合わせされる。たとえば、ＭＩＢインスタンス３０２の中心線は、電源電圧を送るＰＧ配線３０８の中心線に位置合わせされる。このアライメント例は、例示目的に過ぎず、この開示の範囲を限定することを意図するものではない。別の例では、ＭＩＢインスタンスの中心線が、接地電圧を送るＰＧ配線の中心線に位置合わせされてもよい。
【００２９】
配線３０６は、ＭＩＢインスタンス３０２内部のＰＧ配線３０８の位置を示す（ＭＩＢインスタンス内の他の配線の位置は、図３Ａにも示されている）。なお、Ｘ軸またはＹ軸に沿ってＭＩＢインスタンス３０２を反転させても（すなわち、Ｘ軸またはＹ軸に対する鏡像を生成しても）、ＭＩＢインスタンス３０２の内部のＰＧ配線の相対的な位置付けが変わることはない。これは、ＭＩＢインスタンス３０２内のＰＧ配線の位置が、ＭＩＢインスタンス３０２の中心線に対して対称であるためである。たとえば、ＭＩＢインスタンス３０４は、ＭＩＢインスタンス３０２の反転されたバージョンである（ＭＩＢインスタンス３０４は、Ｙ軸に対するＭＩＢインスタンス３０２の鏡像である）。シェーピングエンジンは、ＭＩＢインスタンス３０４の中心線がＰＧ配線３１４の中心線に位置合わせされるようにＭＩＢインスタンス３０４を配置することができる。
【００３０】
図３Ｂは、本明細書に記載される一部の実施形態に従って、シェーピングエンジンがどのように、境界からの固定オフセットアライメントを用いて、ＭＩＢインスタンスを位置合わせできるかの一例を示す。このアライメントオプションでは、ＭＩＢインスタンス３０２は、ＭＩＢインスタンス３０２の特定のエッジと接地電圧を送るＰＧ配線の中心線との間の間隔が固定オフセット値となるようにＰＧ配線に位置合わせされる。たとえば、ＭＩＢインスタンス３０２の底面エッジと接地電圧を送るＰＧ配線３１０の中心線との間の間隔が、固定オフセット３１６と同等となる。このアライメント例は、例示目的に過ぎず、本開示の範囲を限定することを意図するものではない。別の例では、ＭＩＢインスタンスの特定のエッジが、電源電圧を送るＰＧ配線の中心線に対するオフセットに位置合わせされてもよい。図３Ｂに示されるように、ＭＩＢインスタンス３０４も同様に、別の接地配線に位置合わせされることができる。
【００３１】
図４Ａは、本明細書に記載される一部の実施形態に従って、シェーピングエンジンがどのように、複数のグリッドを用いてＭＩＢインスタンスを位置合わせすることができるかの一例を示す。一部の実施形態では、配置制約は、複数のグリッドを用いて特定されることができる。具体的には、シェーピングエッジは、物理的パーティション上の所与の基準点（たとえば、物理的パーティションの特定の角部）がグリッド点に配置されるように物理的パーティション（たとえばＭＩＢインスタンス）を配置することができる。なお、ＭＩＢの異なる向きが異なるグリッドを用いて配置される必要もあり得る。たとえば、図４Ａに示されるように、グリッド４１０は、Ｒ０向きを有するＭＩＢインスタンス（すなわち、０°回転されたＭＩＢインスタンス）を配置する際に用いられるべきグリッド点（グリッド４１０における各交差点がグリッド点となり得る）を特定することができ、グリッド４１２は、ＭＸ向きを有するＭＩＢインスタンス（すなわち、Ｘ軸に対する鏡像であるＭＩＢインスタンス）を配置する際に用いられるべきグリッド点を特定することができる。同様に、他の向き、たとえばＲ１８０およびＭＹ向きについて、シェーピングエッジに他のグリッドを提供することもできる。ＭＩＢ４０２はＲ０向きを有するため、グリッド４１０を用いて、ＭＩＢ４０２における基準点４０４をグリッド４１０におけるグリッド点に位置合わせすることによって配置されている。ＭＩＢ４０６はＭＸ向きを有するため、グリッド４１２を用いて、基準点４０８をグリッド４１２におけるグリッド点に位置合わせすることによって配置されている。なお、基準点４０４および４０８は、ＭＩＢ上で同一の相対的位置にある（基準点４０４は、Ｒ０向きにおける底面左角部にあり、これはＭＸ向きにおける右上角部に相当する）。
【００３２】
図４Ｂは、本明細書に記載される一部の実施形態に従って、シェーピングエンジンがどのように単一のグリッドを用いてＭＩＢインスタンスを位置合わせすることができるかの一例を示す。一部の実施形態では、配置制約は単一のグリッドを用いて特定されることができる。具体的には、シェーピングエンジンは、物理的パーティション上の所与の基準点がグリッド点に配置されるように（向きに係わらず）物理的パーティションを配置することができる。図４Ｂに示されるように、グリッド４２０は、ＭＩＢインスタンスを配置する際に用いられるべきグリッド点（グリッド４２０における各交差点がグリッド点となり得る）を特定することができる。単一のグリッドは、ＰＧがグリッドに対して対称となるように位置付けられる。すなわち、ＰＧを任意のグリッド線にわたって反転すると、ＰＧは同じになる。なお、ＰＧ３１２は、グリッド４２０に対して対称である。
【００３３】
一旦単一のグリッドが決定されると、ＭＩＢインスタンス上の任意の基準点がグリッドに嵌まるように選択され得る。たとえば、基準点４２２は、Ｒ０向きを有するＭＩＢ４０２において選択されることができる。ＭＩＢ４０２は、グリッド４２０を用いて、ＭＩＢ４０２における基準点４２２をグリッド４２０におけるグリッド点に位置合わせすることによって配置されることができる。ＭＩＢ４０６は、ＭＸ向きを有するが、グリッド４２０を用いて、基準点４２４（ＭＩＢにおいて同一の相対的位置にある）をグリッド４２０におけるグリッド点に位置合わせすることによって配置されることもできる。
【００３４】
一部の実施形態では、ユーザがＭＩＢインスタンスを形成し、移動させ、および／またはサイズを調整するとき、ＭＩＢ（たとえばＰＧ配線）内に「押込まれる」べきすべての対象が各ＭＩＢインスタンスに対して位置合わせされる必要がある。たとえば、ＰＧ配線（すなわち「対象」）とＭＩＢにおける回路要素との間に電気的接続が生成される必要があるとき、ＰＧ配線はＭＩＢ内に「押込まれる」必要がある（なお、ＰＧ配線は、論理階層においてＭＩＢの「外側」であってもよいため、これらはＭＩＢ内に「押込まれる」必要があり得る）。これらの実施形態では、ＭＩＢグリッドのピッチ（すなわち、所与の方向のグリッドにおける２本の線間の間隔）は、ブロック内に「押込まれる」べき対象のすべての最小公倍数によって決定される。たとえば、第１の対象がｆ長さ単位毎に繰返し、第２の対象がｓ長さ単位毎に繰返す場合、グリッドのピッチは、ｆおよびｓの最小公倍数と同等となるように設定されることができる。グリッドの起点およびオフセットは、ユーザがグリッドを生成するためにどのＭＩＢインスタンスを使用するかを特定するときにユーザによって設定されることができる。一旦グリッド起点およびオフセットが所与のＭＩＢインスタンスに基づいて設定されると、ミラーリングを支持するためにグリッドの複数の変形体が生成されることができる。たとえば、グリッド自体が起点に対してミラーリングおよび／または回転されて、ベースグリッドのＭＸ、ＭＹ、およびＲ１８０変形体に相当するグリッドを生成することができる。
【００３５】
一部の実施形態では、シェーピングエンジンは、次のようにＭＩＢグリッドと相互作用することができる。上に説明したように、ユーザはまず、ＭＩＢ内に「押込まれる」と予想される対象（たとえばＰＧ配線）を特定する。次に、対象に基づいて（たとえば、最小公倍数を算出することによって）グリッドピッチが測定されることができる。次に、シェーピングエンジンは、最善のＭＩＢインスタンスを選択し（たとえば、ＭＩＢインスタンス周りの回路設計コンテキストに依存して最善のＭＩＢ向きを選択する）、グリッドオフセットを設定することができる。シェーピングエンジンは次に、正当化されているインスタンスの向きに依存して、異なるグリッド（Ｒ０、ＭＸ、ＭＹ、Ｒ１８０）に基づいてすべてのＭＩＢインスタンスを正当化することができる。
【００３６】
シェーピングエンジンがＭＩＢインスタンスを配置するのにＭＩＢグリッドを使用する実施形態では、設計フローは、次のようになり得る。設計フローは、シェーピングエンジンが適切なＭＩＢグリッドに基づいて（たとえば、ＭＩＢインスタンスの向きに対応するＭＩＢグリッドに基づいて）すべてのＭＩＢインスタンスを配置することから始まり得る。次に、ユーザは、ＭＩＢインスタンスを（たとえば、フロアプラニングツールのグラフィカルユーザインターフェイスを用いることによって）移動させることができ、ツールは、シェーピングエンジンによって規定されるように、ＭＩＢインスタンスを適切なグリッドに嵌めることができる。ユーザがＭＩＢインスタンスの向きを変更する場合、ツールはそれに応じてグリッドを変更し、ＭＩＢインスタンスを新しいグリッドに嵌めることができる。
【００３７】
さらに、ツールにより、ユーザは、任意のＭＩＢインスタンスを選択することによって、コンテキストメニューを介してＭＩＢグリッドを再規定することもできる。なお、ユーザがＭＩＢインスタンスの１つに基づいてＭＩＢグリッドを再規定するとき、他のＭＩＢインスタンスが非正当となってもよい。これは、他のＭＩＢインスタンスが、より古いセットのグリッドに基づいてシェーピングエンジンによって配置されたためである。一部の実施形態では、ツールは、ユーザが再規定されたグリッドを用いて他のＭＩＢインスタンスを正当化することを可能にする正当化特徴を提供することができる。
【００３８】
図５は、本明細書に記載される一部の実施形態に従ったシェーピングを行なうためのプロセスを示す。プロセスは、回路設計で用いられるべきＰＧの構造を特定するＰＧストラテジのセットを受取ることから始まり得る（動作５０２）。一部の実施形態では、ＰＧストラテジのセットは、ＰＧを生成するための開始点、ピッチ、方向、およびリピート回数を特定することができる。一部の実施形態では、プロセスは、動作５０２において、必要とされるアライメントのタイプを示すアライメントオプションおよび金属層に関する情報など、追加の情報を受取ることができる。次に、プロセスは、ＰＧストラテジのセットに基づいて配置制約のセットを生成することができる（動作５０４）。配置制約のセットは、シェーピング中に使用されることができ、かつ、正当化のために使用されることもできる（たとえば、ユーザが手動で回路設計を編集するとき）。動作５０２において追加の情報が受取られる実施形態では、プロセスは、ＰＧストラテジのセットおよび追加の情報、たとえば、アライメントオプションおよび／または金属層情報に基づいて、動作５０４において配置制約のセットを生成することができる。次に、プロセスは、配置制約のセットを用いて回路設計上でシェーピングまたは正当化を行なうことができる（動作５０６）。具体的には、一部の実施形態では、プロセスは、回路設計における物理的パーティションの形状、サイズ、および／または位置を変更するリクエストを受取ることができる。次にプロセスは、リクエストに従って物理的パーティションの形状、サイズ、および／または位置を変更することができ、次に、配置制約のセットに基づいて修正された物理的パーティションを（たとえば、配置制約のセットが満たされるように、修正された物理的パーティションの位置を調整することによって）正当化することができる。配置制約のセットは、（１）物理的パーティション（たとえばＭＩＢインスタンス）の中心線がＰＧ配線の中心線に位置合わせされることを要求する配置制約（たとえば図３Ａを参照）、（２）物理的パーティションの所与のエッジがＰＧ配線に対する所与のオフセットを有することを要求する配置制約（たとえば図３Ｂを参照）、および／または、（３）物理的パーティションにおける基準点がグリッドのグリッド点に位置合わせされることを要求する配置制約（たとえば図４を参照）を含むことができる。
【００３９】
コンピュータシステム
図６は、本開示に記載される一部の実施形態に従ったコンピュータシステムを示す。コンピュータシステム６０２は、プロセッサ６０４、メモリ６０６、および記憶装置６０８を含むことができる。コンピュータシステム６０２は、表示装置６１４、キーボード６１０、およびポインティングデバイス６１２に結合されることができる。記憶装置６０８は、オペレーティングシステム６１６、アプリケーション６１８、およびデータ６２０を格納することができる。データ６２０は、アプリケーション６１８によって必要とされる入力および／またはアプリケーション６１８によって生成される出力を含むことができる。
【００４０】
コンピュータシステム６０２は、本開示に暗示的または明示的に記載される１つ以上のプロセスを自動的に（またはユーザ入力により）行なってもよい。たとえば、コンピュータシステム６０２は、アプリケーション６１８をメモリ６０６にロードすることができ、アプリケーション６１８は、ＰＧアライメントのためにＰＮＳと一体化されたシェーピングを行なうために用いられることができる。
【００４１】
結論
上記の説明は、当業者が本実施形態を為しかつ使用することが可能となるように提示される。開示された実施形態のさまざまな改良が当業者に容易に明らかとなり、本明細書に規定された一般的な原則は、本開示の要旨および範囲から逸脱することなく他の実施形態および用途に適用可能である。したがって、本発明は、示された実施形態に限定されず、本明細書に開示された原則および特徴と一致した最も広い範囲が付与されるべきである。
【００４２】
本開示に記載されたデータ構造およびコードは、コンピュータ読取可能記憶媒体および／またはハードウェアモジュールおよび／またはハードウェア装置に一部または完全に格納されることができる。コンピュータ読取可能記憶媒体としては、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル汎用ディスクまたはデジタルビデオディスク）などの磁気および光学記憶装置、または、コードおよび／もしくはデータを格納することの可能な、現在知られているもしくは後に開発される他の媒体が含まれるが、これらに限定されない。本開示に記載されるハードウェアモジュールまたは装置としては、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、専用もしくは共有プロセッサ、および／または、現在知られているもしくは後に開発される他のハードウェアモジュールもしくは装置が含まれるが、これらに限定されない。
【００４３】
本開示に記載される方法およびプロセスは、コンピュータシステムがコードおよび／またはデータを読出し、実行すると、コンピュータシステムが関連の方法およびプロセスを実施するように、コンピュータ読取可能記憶媒体または装置に格納されたコードおよび／またはデータとして一部または完全に具現化されることができる。さらに、方法およびプロセスは、ハードウェアモジュールまたは装置が作動されると、関連の方法およびプロセスを実施するように、ハードウェアモジュールまたは装置において一部または完全に具現化されることもできる。なお、方法およびプロセスは、コード、データ、およびハードウェアモジュールまたは装置の組合せを用いて具現化されることができる。
【００４４】
本発明の実施形態の上記の説明は、例示および説明の目的のためだけに提示される。これらは網羅的であることまたは本発明を開示された形態に限定することを意図するものではない。したがって、多くの改良および変形が当業者に明らかとなるであろう。さらに、上記の開示は本発明を限定することを意図するものではない。本発明の範囲は、添付の請求項によって規定される。
【図１】
0006456842.tif 000002
【図２】
0006456842.tif 000003
【図３Ａ】
0006456842.tif 000004
【図３Ｂ】
0006456842.tif 000005
【図４Ａ】
0006456842.tif 000006
【図４Ｂ】
0006456842.tif 000007
【図５】
0006456842.tif 000008
【図６】
0006456842.tif 000009