(57)【要約】【課題】電子デバイス設計レイアウトを修正する方法を提供すること。【解決手段】電子デバイス設計レイアウトを修正する方法であって、設計レイアウトの一部分を識別することであって、該設計レイアウトの該一部分は、電子デバイスの物理的レイアウトを表現しており、該設計レイアウトの該一部分は、１つ以上のバイアスフィーチャを含んでいる、ことと、該バイアスフィーチャのそれぞれに一部基づいてレイヤーバイアスを決定することと、デバイス設計レイアウトの該一部分に１つ以上のトレースを追加することにより、該設計レイアウトの該一部分を修正することであって、該１つ以上の追加されたトレースの配置は、該決定されたレイヤーバイアスに少なくとも一部基づいている、ことと、該設計レイアウトの該修正された部分をメモリ格納位置に格納することとを含む、方法。【選択図】図５
2010176676.tif 000002
【特許請求の範囲】
【請求項１】
電子デバイス設計レイアウトを修正する方法であって、
設計レイアウトの一部分を識別することであって、該設計レイアウトの該一部分は、電子デバイスの物理的レイアウトを表現しており、該設計レイアウトの該一部分は、１つ以上のバイアスフィーチャを含んでいる、ことと、
該バイアスフィーチャのそれぞれに一部基づいてレイヤーバイアスを決定することと、
デバイス設計レイアウトの該一部分に１つ以上のトレースを追加することにより、該設計レイアウトの該一部分を修正することであって、該１つ以上の追加されたトレースの配置は、該決定されたレイヤーバイアスに少なくとも一部基づいている、ことと、
該設計レイアウトの該修正された部分をメモリ格納位置に格納することと
を含む、方法。
【請求項２】
前記設計レイアウトの前記一部分から１つ以上のトレースを除去することと、
前記バイアスフィーチャのそれぞれに一部基づいてレイヤーバイアスを決定する方法工程を繰り返すことと、
該設計レイアウトの該一部分に１つ以上のトレースを追加することにより、該設計レイアウトの該一部分を修正する方法工程を繰り返すことであって、該１つ以上の追加されたトレースの配置は、該決定されたレイヤーバイアスに少なくとも一部基づいている、ことと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記１つ以上のバイアスフィーチャは、トレースである、請求項２に記載の方法。
【請求項４】
前記条件は、バイアスが最小化されることである、請求項３に記載の方法。
【請求項５】
前記条件は、スルーホールビアが最小化されることである、請求項３に記載の方法。
【請求項６】
前記条件は、各トレースにおいて用いられるビアの数が最小化されることである、請求項３に記載の方法。
【請求項７】
前記条件は、トレースの長さが最小化されることである、請求項３に記載の方法。
【請求項８】
前記トレースは、ユーザによって配置される、請求項３に記載の方法。
【請求項９】
前記１つ以上のバイアスフィーチャは、ネットラインである、請求項３に記載の方法。
【請求項１０】
前記１つ以上のオリジナルのトレースは、プランニングされていないネットラインである、請求項３に記載の方法。
【請求項１１】
第２のトレース配置ヒューリスティックスを識別することと、
１つ以上のトレースを除去することと、
１つ以上のトレースを前記デバイス設計レイアウトの前記一部分に追加することであって、該１つ以上の追加されたトレースの配置は、該第２のトレース配置ヒューリスティックスに少なくとも一部基づいている、ことと
をさらに含む、請求項１に記載の方法。
【請求項１２】
コンピュータがレイアウト設計の一部分を変更することを可能にするコンピュータプログラム製品であって、
コンピュータが所定のオペレーションのセットを実行することを可能にするソフトウェア命令と、
該ソフトウェア命令を含む１つ以上のコンピュータ読み取り可能な記憶媒体と
を含み、
該所定のオペレーションは、
設計レイアウトの一部分を識別することであって、該設計レイアウトの該一部分は、電子デバイスの物理的レイアウトを表現しており、該設計レイアウトの該一部分は、１つ以上のオリジナルのトレースを有している、ことと、
トレース配置ヒューリスティックスを識別することと、
デバイス設計レイアウトの該一部分に１つ以上のトレースを追加することであって、該１つ以上の追加されたトレースの配置は、該トレース配置ヒューリスティックスに少なくとも一部基づいている、ことと、
該設計レイアウトの該一部分をメモリ格納位置に格納することと
を含む、コンピュータプログラム製品。
【請求項１３】
前記所定のオペレーションのセットは、
１つ以上のトレースを除去することと、
前記デバイス設計レイアウトの前記一部分に１つ以上のトレースを追加することであって、該１つ以上の追加されたトレースの配置は、前記トレース配置ヒューリスティックスに少なくとも一部基づいている、ことと
をさらに含む、請求項１２に記載のコンピュータプログラム製品。
【請求項１４】
前記トレース配置ヒューリスティックスは、可変レイヤーバイアスヒューリスティックスである、請求項１３に記載のコンピュータプログラム製品。
【請求項１５】
１つ以上のトレースを除去するオペレーションと、
前記デバイス設計レイアウトの前記一部分に１つ以上のトレースを追加するオペレーションと
が、条件が満たされるまで繰り返される、請求項１４に記載のコンピュータプログラム製品。
【請求項１６】
前記条件は、バイアスが最小化されることである、請求項１５に記載のコンピュータプログラム製品。
【請求項１７】
前記条件は、スルーホールビアが最小化されることである、請求項１５に記載のコンピュータプログラム製品。
【請求項１８】
前記条件は、各トレースにおいて用いられるビアの数が最小化されることである、請求項１５に記載のコンピュータプログラム製品。
【請求項１９】
前記条件は、トレースの長さが最小化されることである、請求項１５に記載のコンピュータプログラム製品。
【請求項２０】
前記１つ以上のオリジナルのトレースは、ユーザによって定義されたトレースである、請求項１４に記載のコンピュータプログラム製品。
【請求項２１】
前記１つ以上のオリジナルのトレースは、ネットラインである、請求項１４に記載のコンピュータプログラム製品。
【請求項２２】
前記１つ以上のオリジナルのトレースは、プランニングされていないトレースである、請求項１４に記載のコンピュータプログラム製品。
【請求項２３】
前記トレース配置ヒューリスティックスは、レイヤーバイアスヒューリスティックスである、請求項１３に記載のコンピュータプログラム製品。
【請求項２４】
第２のトレース配置ヒューリスティックスを識別することと、
１つ以上のトレースを除去することと、
前記デバイス設計レイアウトの前記一部分に１つ以上のトレースを追加することであって、該１つ以上の追加されたトレースの配置は、該第２のトレース配置ヒューリスティックスに少なくとも一部基づいている、ことと
をさらに含む、請求項２５に記載のコンピュータプログラム製品。
【請求項２５】
設計データをマニピュレートすることに適合されたコンピュータシステムであって、
プロセッサと、
ソフトウェア命令を含むメモリであって、該ソフトウェア命令は、
設計レイアウトの一部分を識別することであって、該設計レイアウトの該一部分は、電子デバイスの物理的レイアウトを表現しており、該設計レイアウトの該一部分は、１つ以上のオリジナルのトレースを有している、ことと、
トレース配置ヒューリスティックスを識別することと、
デバイス設計レイアウトの該一部分に１つ以上のトレースを追加することであって、該１つ以上の追加されたトレースの該一部分は、該トレース配置ヒューリスティックスに少なくとも一部基づいている、ことと、
該設計レイアウトの該一部分をメモリ格納位置に格納することと
を含むオペレーションをコンピュータシステムに実行させる、メモリと
を含む、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は、電子設計オートメーションに関する。より具体的には、本発明の様々な実装は、プリント回路基板などの電子デバイス内のコンポーネント間の接続をルーティングするためのプロセス、装置および方法に関する。
【背景技術】
【０００２】
（発明の背景）
集積回路デバイスは、様々な現代の設備に用いられており、例えば、コンピュータ、自動車、電話、テレビ、製造ツール、衛星、そして玩具さえにも用いられている。たとえ小さな集積回路デバイスが多くの機能を提供することができるとしても、利用可能なものとするためには、ほとんど全ての集積回路デバイスが、入力デバイスおよび出力デバイスに電気接続されたり、別の集積回路デバイスに電気接続されたり、またはその他の何らかの電子コンポーネントに接続されたりしなければならない。これらの電気接続を提供するために、集積回路デバイスは、典型的にはプリント回路基板（ＰＣＢ）上に搭載される。ほとんどのプリント回路基板は、リジッドな平面状のコアを有する。コアは、例えば、エポキシによって含浸されたグラスファイバー材料のシートから形成され得る。そして導電性ラインまたは「トレース」が、コアの片面上または両面上に形成されることにより、プリント回路基板に取り付けられたコンポーネントを電気接続する。トレースは、銅などの任意の所望の導電性材料から形成され得る。様々な製造技術を用いることにより、特定のトレースは、フォトリソグラフィプロセスにおいて、導電性材料の単一のレイヤーをエッチングすることによって形成され得る。
【０００３】
単純なプリント回路基板は、単一のコアのみを有し得、該コアの片面上または両面上にトレースを有し得る。しかしながら、より複雑なプリント回路基板は、複数のコアを有し得、１つ以上のコアの片側上または両側上にトレースを有し得る。これらのマルチレイヤープリント回路基板はまた、絶縁体材料のレイヤーを含むことにより、隣接コア表面上のトレースが接触することを防止し得る。加えて、マルチレイヤープリント回路基板は、典型的には１つ以上の「ビア（ｖｉａ）」を含むことにより、回路の２つ以上の異なるレイヤーを電気接続する。ビアは、穿孔によって、または、１つ以上のコアを通る穴を形成することによって形成される。そしてビアの壁が、導電性材料によってクラッディングされることにより、異なるレイヤー間に電気接続を形成し得る。代替的または追加的に、ビア全体が導電性材料によって充填されることにより、電気接続を作成し得る。一部のビアは、基板の全てのレイヤーを通るが、他のビアが、基板内の一部のレイヤーにしか接続しないということがあり得る。「ブラインド（ｂｌｉｎｄ）」ビアと称される一部のビアは、基板の内部レイヤーにしか接続せず、最上部レイヤーまたは最下部レイヤーに接続しないことがあり得る。以下でより詳細に説明されるように、例えばコンポーネントが単一の回路基板の対応するエリアにおいてルーティングされ得るトレースよりも多くのトレースを要求する場合に、ビアが用いられ得る。ビアは、コンポーネントが基板の他のレイヤー上のトレースに接続することを可能にする。
【０００４】
プリント回路基板の設計においては、多くのステップが実行される。最初に設計者は、プリント回路基板を介して接続されるべきシステムの概略的設計を形成し得る。このプロセスは、システム内に含まれ得る各コンポーネントを識別することを含む。システムは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）集積回路または特定用途向け集積回路（ＡＳＩＣ）などの「能動（ａｃｔｉｖｅ）」コンポーネントを含み得る。システムはまた、レジスタ、キャパシタ、インダクタなどの「受動（ｐａｓｓｉｖｅ）」コンポーネントを含み得る。各コンポーネントを識別することに加え、概略的設計は、各コンポーネント間に形成されなければならない電気接続を表現し得る。次に、設計者は、典型的には概略的設計に記載されたシステムの機能を検証し得る。設計は、例えば、ソフトウェアモデリングツールを用いることにより、概略的設計に記載されシステムが所望のオペレーションを高い信頼度で実行することを保証し得る。なんらかのエラーが検出されると、概略的設計は、そのエラーに対処するために訂正され、機能検証プロセスが繰り返され得る。
【０００５】
概略的設計が完了すると、設計者は、典型的にはその概略的設計を実装するための物理的設計を作成し得る。この物理的設計は、設計レイアウトまたはレイアウト設計と称されることがある。本明細書中では、設計レイアウトおよびレイアウト設計は、互換可能なように用いられる。設計者は、各コンポーネントに対する、レイアウト設計における物理的位置を選択することから開始し得る。コンポーネントに対する位置が選択されると、設計者は、設計レイアウト内のその位置に、そのコンポーネントを表現するコンポーネントオブジェクトを追加し得る。コンポーネントオブジェクトは、そのコンポーネントを他のコンポーネントに電気接続するために用いられる接続ピンの構成などを表現する、物理的コンポーネントに関する様々な情報を含み得る。集積回路デバイスでは、例えば、集積回路付きの基板は、環境からの保護のために、パッケージ内に包含され得る。接続ピンは、パッケージングを介して、集積回路の電気接触へと電気接続を提供する役目を担う。様々なコンポーネントに対するコンポーネントオブジェクトが設計レイアウト内に配置された後に、設計者は、設計レイアウト内でトレースをルーティングし、概略的設計において指定されている通りにコンポーネントを接続することを試み得る。
【０００６】
トレースを効率的にルーティングするために、設計者は、トレースをルーティングする前にネットライン（ｎｅｔｌｉｎｅ）を表示し得る。ネットラインは、プリント回路基板の物理的設計内に描画された絵画的なラインであり得、該ラインは、ネットの選択されたピンをまたぐ。図１は、２つの別個のコンポーネント１０７および１０９のピン１０５の間に延びるネットライン１０３を含むレイアウト設計１０１を示す。トレースをルーティングすることは、設計者がトレースをルーティングする方法を制限する様々な制約を多くのシステムが有するという事実により、複雑なものとなる。例えば、コンポーネントの最小電流要件は、その電流を供給するトレースが最小幅を有することを要求し得る。またトレースは、許容できないクロストークを防止するために、最小分離距離を要求し得る。またさらに、コンポーネントが差動対接続を要求する場合に、その差動対を実装するために用いられるトレースは、同じ長さを有し、互いに一定の距離を保つ必要がある。タイミング制約は、トレースの長さおよび／またはインピーダンスを制限し得る。加えて、交差するトレース間には接続が形成され得るので、トレースは交差することを許されない。
【０００７】
互いに交差しないトレースのルーティングを容易にするために、設計者は、典型的にはプリント回路基板の各レイヤーにバイアスを割り当て得る。レイヤーバイアスは、そのレイヤー内のトレースがルーティングされるべき方向（例えば、水平方向または縦方向)を指定し得る。図２は、図１のレイアウト設計１０１を示しており、コンポーネント１０７および１０９を含む。図２に見ることができるように、トレース２０３が、レイアウト設計１０１に追加されている。トレース２０３は、図１からのネットライン１０３によって示されているように、ピン１０５に接続する。さらに図示されているように、一部のトレース２０３は、水平方向にルーティングされているが、他のトレース２０３は、別個のレイヤー上で縦方向にルーティングされている。より具体的には、図２は、水平方向のトレース２０５と縦方向のトレース２０７とを示している。水平方向のトレース２０５は、縦方向のトレース２０７がルーティングされているのとは異なるレイアウト設計のレイヤー上にルーティングされていることが分かるであろう。レイアウト設計内の特定のトレースまたはレイヤーのバイアスに関連付けられた水平方向または縦方向という言葉の意味は、ある基準（例えば、デカルト座標のｘ軸）に依存していることが理解されるべきである。したがって、本明細書中では水平方向または縦方向のバイアスがしばしば参照されるが、特定の水平方向または縦方向の基準は限定を意図されていない。
【０００８】
初期の物理的設計を作成し、レイアウト設計内でトレースをルーティングした後に、設計者は、完成前に、物理的設計またはレイアウト設計を数回にわたって改訂する。これらの改訂は、例えば、トレースの経路を移動させること、様々な点におけるトレースの幅をそれらの長さに沿って変更すること、部分的なトレースすなわち「ハンガー（ｈａｎｇｅｒ）」を形成すること、１つ以上のコンポーネントの位置を移動させること、および１つ以上のコンポーネントの向きを回転させることを含み得る。しかしながら各改訂そのものが、それらに関連する改訂を要求し得る。例えば、コンポーネントが移動または回転させられる場合に、コンポーネントに関連付けられた現在のトレースの全ては、放棄または置換されなければならない。
【０００９】
最近の設計は、多くのコンポーネントを含み得るので、その結果として、図１および図２によって示されているよりも多くのネットライン１０３およびトレース２０３を含み得る。たとえば、最近の設計は、数千のコンポーネントと数千のネットラインとを含み得、これがトレースのルーティングを複雑で長たらしいものとしている。手動でのトレースのルーティングが可能であるが、最近の設計のスケールが理由で、オートメーション化されたトレースルーティングツールが開発されてきた。例えば、Ｍｅｎｔｏｒ  Ｇｒａｐｈｉｃｓ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｗｉｌｓｏｎｖｉｌｌｅ、Ｏｒｅｇｏｎ）から入手可能なＤｘＤｅｓｉｇｎｅｒツールセットは、オートメーション化されたトレースのルーティングによって設計者を補助するために用いられ得る。オートメーション化されたトレースのルーティングは、様々なヒューリスティックスに基づいて設計レイアウト内にトレースを配置し、そのようなヒューリスティックスのうちの１つが、レイヤーバイアスである。
【００１０】
レイヤーバイアスヒューリスティックスは、ルーティングされるトレースが交差することを防ぎ他のトレースに対するルーティングチャネルを開いたままにするので、基本的なヒューリスティックスである。例えば、レイヤーバイアスは、トレースのプランニングおよびルーティングの間に起こる状況に依存する。したがって、レイヤーバイアスヒューリスティックスと調和して配置されたトレースは、ルーティングの間にレイヤーバイアスが変更され得ることが原因で、最良の位置にルーティングされないことがあり得る。
【発明の概要】
【課題を解決するための手段】
【００１１】
本発明の様々な実装は、レイヤーバイアスを動的に決定する方法を提供する。様々な実装において、レイヤーバイアスは、電子デバイスのレイアウト設計内のトレースに対する配置位置を決定するために利用され得る。トレースは、レイアウト設計内のコンポーネントまたはピンの電気接続を提供する。本発明の様々な実装を用いると、レイアウト設計内のレイヤーは、複数の領域に区分され、選択された領域はバイアスを有する。レイアウト設計が行われたりまたはその変更が行われたりするときに、レイアウト設計またはその変更に起因して発生するバイアスの変更を反映するように、選択された領域に対する対応するバイアスが更新される。本発明の他の実装を用いると、レイアウトバイアスを動的に決定するためのプロセス、機械、または製造が提供される。動的に決定されたレイアウトバイアスは、例えばオートメーション化されたトレースルーティングツールによって利用されるレイヤーバイアスヒューリスティックスに組み込まれ得る。
【００１２】
本発明のこれらの局面およびさらなる局面は、例示的実施形態に関する以下の詳細な開示からより良く理解されよう。
【００１３】
本発明は、いくつかの添付図面に示されている例示的実施形態を用いて記載され、いくつかの添付図面において、同じ参照番号は同じ要素を参照する。
【００１４】
本発明は、さらに以下の手段を提供する。
（項目１)  
電子デバイス設計レイアウトを修正する方法であって、
設計レイアウトの一部分を識別することであって、該設計レイアウトの該一部分は、電子デバイスの物理的レイアウトを表現しており、該設計レイアウトの該一部分は、１つ以上のバイアスフィーチャを含んでいる、ことと、
該バイアスフィーチャのそれぞれに一部基づいてレイヤーバイアスを決定することと、
デバイス設計レイアウトの該一部分に１つ以上のトレースを追加することにより、該設計レイアウトの該一部分を修正することであって、該１つ以上の追加されたトレースの配置は、該決定されたレイヤーバイアスに少なくとも一部基づいている、ことと、
該設計レイアウトの該修正された部分をメモリ格納位置に格納することと
を含む、方法。
（項目２)  
上記設計レイアウトの上記一部分から１つ以上のトレースを除去することと、
上記バイアスフィーチャのそれぞれに一部基づいてレイヤーバイアスを決定する方法工程を繰り返すことと、
該設計レイアウトの該一部分に１つ以上のトレースを追加することにより、該設計レイアウトの該一部分を修正する方法工程を繰り返すことであって、該１つ以上の追加されたトレースの配置は、該決定されたレイヤーバイアスに少なくとも一部基づいている、ことと
をさらに含む、上記項目のいずれか一項に記載の方法。
（項目３)  
上記１つ以上のバイアスフィーチャは、トレースである、上記項目のいずれか一項に記載の方法。
（項目４)  
上記条件は、バイアスが最小化されることである、上記項目のいずれか一項に記載の方法。
（項目５)  
上記条件は、スルーホールビアが最小化されることである、上記項目のいずれか一項に記載の方法。
（項目６)  
上記条件は、各トレースにおいて用いられるビアの数が最小化されることである、上記項目のいずれか一項に記載の方法。
（項目７)  
上記条件は、トレースの長さが最小化されることである、上記項目のいずれか一項に記載の方法。
（項目８)  
上記トレースは、ユーザによって配置される、上記項目のいずれか一項に記載の方法。
（項目９)  
上記１つ以上のバイアスフィーチャは、ネットラインである、上記項目のいずれか一項に記載の方法。
（項目１０)  
上記１つ以上のオリジナルのトレースは、プランニングされていないネットラインである、上記項目のいずれか一項に記載の方法。
（項目１１)  
第２のトレース配置ヒューリスティックスを識別することと、
１つ以上のトレースを除去することと、
１つ以上のトレースを上記デバイス設計レイアウトの上記一部分に追加することであって、該１つ以上の追加されたトレースの配置は、該第２のトレース配置ヒューリスティックスに少なくとも一部基づいている、ことと
をさらに含む、上記項目のいずれか一項に記載の方法。
（項目１２)  
コンピュータがレイアウト設計の一部分を変更することを可能にするコンピュータプログラム製品であって、
コンピュータが所定のオペレーションのセットを実行することを可能にするソフトウェア命令と、
該ソフトウェア命令を含む１つ以上のコンピュータ読み取り可能な記憶媒体と
を含み、
該所定のオペレーションは、
設計レイアウトの一部分を識別することであって、該設計レイアウトの該一部分は、電子デバイスの物理的レイアウトを表現しており、該設計レイアウトの該一部分は、１つ以上のオリジナルのトレースを有している、ことと、
トレース配置ヒューリスティックスを識別することと、
デバイス設計レイアウトの該一部分に１つ以上のトレースを追加することであって、該１つ以上の追加されたトレースの配置は、該トレース配置ヒューリスティックスに少なくとも一部基づいている、ことと、
該設計レイアウトの該一部分をメモリ格納位置に格納することと
を含む、コンピュータプログラム製品。
（項目１３)  
上記所定のオペレーションのセットは、
１つ以上のトレースを除去することと、
上記デバイス設計レイアウトの上記一部分に１つ以上のトレースを追加することであって、該１つ以上の追加されたトレースの配置は、上記トレース配置ヒューリスティックスに少なくとも一部基づいている、ことと
をさらに含む、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目１４)  
上記トレース配置ヒューリスティックスは、可変レイヤーバイアスヒューリスティックスである、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目１５)  
１つ以上のトレースを除去するオペレーションと、
上記デバイス設計レイアウトの上記一部分に１つ以上のトレースを追加するオペレーションと
が、条件が満たされるまで繰り返される、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目１６)  
上記条件は、バイアスが最小化されることである、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目１７)  
上記条件は、スルーホールビアが最小化されることである、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目１８)  
上記条件は、各トレースにおいて用いられるビアの数が最小化されることである、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目１９)  
上記条件は、トレースの長さが最小化されることである、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目２０)  
上記１つ以上のオリジナルのトレースは、ユーザによって定義されたトレースである、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目２１)  
上記１つ以上のオリジナルのトレースは、ネットラインである、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目２２)  
上記１つ以上のオリジナルのトレースは、プランニングされていないトレースである、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目２３)  
上記トレース配置ヒューリスティックスは、レイヤーバイアスヒューリスティックスである、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目２４)  
第２のトレース配置ヒューリスティックスを識別することと、
１つ以上のトレースを除去することと、
上記デバイス設計レイアウトの上記一部分に１つ以上のトレースを追加することであって、該１つ以上の追加されたトレースの配置は、該第２のトレース配置ヒューリスティックスに少なくとも一部基づいている、ことと
をさらに含む、上記項目のいずれか一項に記載のコンピュータプログラム製品。
（項目２５)  
設計データをマニピュレートすることに適合されたコンピュータシステムであって、
プロセッサと、
ソフトウェア命令を含むメモリであって、該ソフトウェア命令は、
設計レイアウトの一部分を識別することであって、該設計レイアウトの該一部分は、電子デバイスの物理的レイアウトを表現しており、該設計レイアウトの該一部分は、１つ以上のオリジナルのトレースを有している、ことと、
トレース配置ヒューリスティックスを識別することと、
デバイス設計レイアウトの該一部分に１つ以上のトレースを追加することであって、該１つ以上の追加されたトレースの該一部分は、該トレース配置ヒューリスティックスに少なくとも一部基づいている、ことと、
該設計レイアウトの該一部分をメモリ格納位置に格納することと
を含むオペレーションをコンピュータシステムに実行させる、メモリと
を含む、コンピュータシステム。
【００１５】
（摘要）
本発明の様々な実装は、レイヤーバイアスを動的に決定するための方法を提供する。様々な実装において、レイヤーバイアスは、電子デバイスレイアウト設計内のトレースの配置位置を決定するために利用され得る。トレースは、レイアウト設計内のコンポーネントまたはピンの電気接続を提供する。本発明の様々な実装を用いると、レイアウト設計内のレイヤーは、複数の領域に区分され、選択された領域はバイアスを有する。レイアウト設計またはその変更が行われるときに、選択された領域に対して対応するバイアスは、レイアウト設計またはその変更が行われたことに起因するバイアスの変更を反映するように更新される。本発明の他の実装を用いると、レイアウトバイアスを動的に決定するためのプロセス、機械、または製造が提供される。動的に決定されたレイアウトバイアスは、例えばオートメーション化されたトレースルーティングツールによって利用されるレイヤーバイアスヒューリスティックスに組み込まれ得る。
【図面の簡単な説明】
【００１６】
【図１】図１は、ネットラインを含むプリント回路基板レイアウト設計を示す。
【図２】図２は、図１のプリント回路基板レイアウト設計を示し、ネットラインにしたがってトレースがルーティングされている。
【図３】図３は、本発明の様々な実施形態を実装するために利用可能なコンピュータシステムを示す。
【図４】図４は、図３に示されているコンピュータシステムのコンピュータ処理ユニットを示す。
【図５】図５は、レイヤーバイアスヒューリスティックスを動的に調整するための方法を示す。
【図６】図６は、レイアウト設計を示し、該レイアウト設計内に区分されたレイヤーを含む。
【図７】図７は、レイヤーバイアスマップを生成する方法を示す。
【図８】図８は、ローカルレイヤーバイアスを決定する方法を示す。
【図９】図９は、レイアウト設計のレイヤーを示す。
【図１０】図１０は、さらに詳細に示されている図９のレイヤーを示す。
【図１１】図１１は、レイヤーバイアスヒューリスティックスにしたがってトレースをルーティングする方法を示す。
【図１２】図１２は、レイヤーバイアスヒューリスティックスにしたがってトレースをルーティングする方法を示す。
【図１３】図１３は、レイヤーバイアスマップを動的に生成するための装置を示す。
【発明を実施するための形態】
【００１７】
（例示的実施形態の詳細な説明）
上で詳述されたように、レイヤーバイアスヒューリスティックスは、オートメーション化されたトレースルーティングシステムによって利用され、電子デバイスレイアウト設計内のトレース配置位置の決定を助ける。レイヤーバイアスヒューリスティックスという用語は、本明細書中では、トレースがどのようにしてルーティングされるべきかを決定するために用いられるルールおよびポリシーを意味するように用いられる。トレース配置を決定するためにレイヤーバイアスヒューリスティックスが用いる１つのメトリックは、レイヤーバイアスである。典型的に、レイヤーバイアスヒューリスティックスは、オートメーション化されたトレースルーティングの間に変化しないが、レイヤーバイアスは変化する。したがって、本明細書中では、レイヤーバイアスを動的に決定するための方法、装置およびシステムが詳述される。いずれにせよ開示された方法、装置およびシステムは、限定として考えられるべきではない。代わりに、本開示は、それぞれ単独で、ならびに、それぞれの組み合わせおよびサブコンビネーションで、様々な開示された方法、装置、システムおよびそれらの等価物の全ての新規性および進歩性を有する特徴に関する。本開示は、どのような特定の局面または特徴またはそれらの組み合わせにも限定されず、開示された方法、装置およびシステムは、なんらかの１つ以上の特定の利点が存在すること、または、問題が解決されることを要求するものではない。
【００１８】
開示された方法、装置およびシステムの一部のオペレーションは、表現の都合上特定の連続的順序で記載されているが、この記載の仕方は、以下に示される特定の言葉によって特定の順序が要求されない限り、再配列を含む。例えば、記載されているオペレーションは、一部の場合では、同時に再配列または同時に実行され得る。さらに単純化のために、図面は、開示された方法、装置またはシステムが、他の方法、装置またはシステムと関連して用いられ得る様々な仕方を示さないことがあり得る。さらに記載は、開示された方法を記載するために「生成する」および「決定する」等の用語を用いることがあり得る。これらの用語は、実行される実際のオペレーションの高レベルの抽象概念である。これらの用語に対応する実際のオペレーションは、特定の実装に応じて変化し得、当業者によって容易に理解される。
【００１９】
本発明の様々な実装は、レイヤーバイアスを動的に決定することに関する。本発明のさらなる実装を用いると、動的に決定されたレイヤーバイアスは、レイアウト設計内にトレースのオートメーション化されたルーティングに有用なレイヤーバイアスヒューリスティックスにおいて実装される。例えば、プリント回路基板または特定用途向け集積回路（ＡＳＩＣ）のレイアウト設計は、混合信号特定用途向け集積回路、システムオンチップ（ＳｏＣｓ）、プログラマブルロジックデバイス（ＰＬＤ）、例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のレイアウト設計を含む。さらに、本発明の様々な実装は、オートメーション化されたトレースルーティングツールがトレースをルーティングするときに、レイヤーバイアスヒューリスティックスを調整するために利用され得る。例えば、単一のトレースがルーティングされた後に、レイヤーバイアスヒューリスティックスが調整されたり、または、トレースのグループがルーティングされた後に、レイヤーバイアスヒューリスティックスが調整されたりし得る。さらに、本発明の様々な実施形態は、レイアウト設計を表現するデータをマニピュレート、修正または変更するために実装され得る。しかしながら、当業者は、マニピュレート、修正または変更されたデータは、物理的デバイスのためのレイアウト設計を表現することを理解するであろう。しかしながら、レイアウト設計は、マニピュレート、修正、または変更されたレイアウト設計にしたがって物理的デバイスを形成するためのマニピュレートプロセスにおいて利用され得る。
【００２０】
様々な実装を用いると、開示された方法、装置およびシステムのいずれかによってもたらされる直接的結果または最終出力は、記載された方法および技術の一部分として、１つ以上のコンピュータ読み取り可能な媒体に格納され得る。さらに、直接的結果または最終出力を含むコンピュータ読み取り可能な媒体は、ネットワークに接続され得る単一のプログラマブルコンピューティングデバイスまたは複数のプログラマブルコンピューティングデバイスによって、アクセスされたり用いられたりし得る。
【００２１】
本発明の様々な実装は、回路設計情報を用い得る。例えば、プリント回路基板レイアウト情報（．ＨＹＰファイルなど）、デバイスモデル（ＩＢＩＳモデルなど）、ネットライン、ＧＤＳＩＩ記述、またはＨＤＬ記述（ＶｅｒｉｌｏｇまたはＶＨＤＬ記述）、あるいは他の同様のレイアウトまたはデバイス設計記述は、１つ以上のコンピュータ読み取り可能な媒体上に格納される。特定の実装において、シミュレートされる回路は、シミュレーションのためのＳＰＩＣＥまたはＥｌｄｏモデルとして例示される。表現の都合上、本開示は、それらの物理的対応物（例えば、ドライバ、チャネル、信号）またはその他の同様の用語によって、回路コンポーネントを参照することがある。しかしながら、そのような参照のいずれも、物理的コンポーネントを含むだけではなく、コンピュータによって実装された電子設計オートメーションツール（ＥＤＡ）によって用いられ得るときに、そのような回路コンポーネントおよびコンポーネント上の信号の表現を含むことが理解されるべきである。
【００２２】
本明細書中に記載されている方法またはシステムは、１つ以上のコンピュータ読み取り可能な媒体上に格納された方法または技術をコンピュータに実行させるための、コンピュータによって実行可能な命令を含む、ソフトウェアを用いて実行され得る。そのようなソフトウェアは、例えば、電子設計オートメーションツールを含み得る。本発明の様々な実装を用いると、ソフトウェアは、単一のコンピュータ上で実行され得る。他の実装を用いると、ソフトウェアは、例えば、インターネット、ワイドエリアネットワーク、ローカルエリアネットワーク、クライアントサーバネットワーク、その他の同様のネットワーク等を介して、ネットワーク化されたコンピュータ上で実行され得る。明確化のために、ソフトウェアベースの実装の特定の選択された局面のみが記載される。当該技術分野において周知な他の詳細は、省略される。例えば、開示された技術は、なんらかの特定のコンピュータ言語、プログラムまたはコンピュータに限定されず、開示された技術は、なんらかの商業的に入手可能なコンピュータを用いて実装され得るということが理解されるべきである。例示的なコンピューティング環境が記載されているが、この環境は限定的なものではいことが理解されるべきであり、全ての可能なコンピューティング環境が記載されているわけではないが、当業者は以下の開示に基づいて本発明を実施することが可能であることが理解されるべきである。
【００２３】
上述のように、本明細書中では、水平方向、縦方向、またはその他の方向のバイアスに対する参照がなされるが、バイアス（例えば、水平方向のバイアス）の特定の意味は、なんらかの基準点に依存することが理解されるべきである。したがって、本発明の様々な実装は、例えばｙ軸などの任意の基準点を利用し得る。したがって、当業者は、様々な任意の基準点と、バイアスの特定の意味のための様々な任意の名前とを用いることにより、本発明を実装することが可能である。
【００２４】
（例示的なコンピューティング環境）
本発明の様々な実施形態は、1つ以上のプログラマブルコンピューティングデバイスによって実行されるコンピュータによって実行可能なソフトウェア命令を用いて実装される。本発明のこれらの例は、ソフトウェア命令を用いて実装され得るので、本発明の様々な実施形態が利用され得る汎用プログラマブルコンピュータシステムのコンポーネントおよびオペレーションが記載される。さらに、一部の電子設計オートメーションプロセスの複雑性と、大きなサイズの多くの回路設計とが理由で、様々な電子設計オートメーションツールは、複数の処理スレッドを同時に実行することが可能なコンピューティングシステム上で動作するように構成され得る。したがって、ホストコンピュータまたはマスタコンピュータと１つ以上のリモートコンピュータまたはスレーブコンピュータとを有するコンピュータネットワーク３０１のコンポーネントおよびオペレーションが、図３に関連して記載される。このオペレーティング環境は、適切なオペレーティング環境の一例に過ぎず、本発明の使用または機能の範囲に関する何らかの限定を示唆することが意図されているわけではない。
【００２５】
図３において、コンピュータネットワーク３０１は、マスタコンピュータ３０３を含む。示された例において、マスタコンピュータ３０３は、複数の入出力デバイス３０５とメモリ３０７とを含むマルチプロセッサコンピュータである。入出力デバイス３０５は、ユーザから入力データを受信したり、または、ユーザに出力データを提供したりする、任意オデバイスを含み得る。入力デバイスは、例えば、ユーザからの入力を受信する、キーボード、マイクロフォン、スキャナまたはポインティングデバイスを含み得る。そして出力デバイスは、ディスプレイモニタ、スピーカ、プリンタまたは触覚フィードバックデバイスを含み得る。これらのデバイスとそれらの接続とは、当該技術分野において周知なので本明細書中で長々と議論されることはない。
【００２６】
メモリ３０７は、マスタコンピュータ３０３によってアクセスされ得るコンピュータ読み取り可能な媒体の任意の組み合わせを用いて同様に実装され得る。コンピュータ読み取り可能な媒体は、例えば、マイクロ回路メモリデバイス、例としてはランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、電子的消去可能およびプログラム可能なリードオンリメモリ（ＥＥＰＥＯＭ）、またはフラッシュメモリマイクロ回路デバイス、ＣＤ−ＲＯＭディスク、デジタルビデオディスク（ＤＶＤ）、またはその他の光学格納デバイスを含み得る。コンピュータ読み取り可能な媒体はまた、磁気カセット、磁気テープ、磁気ディスクまたはその他の磁気格納デバイス、パンチメディア、ホログラフィック格納デバイス、または所望の情報を格納するために用いられ得るその他の任意の媒体を含み得る。
【００２７】
以下により詳細に議論されるように、マスタコンピュータ３０３は、本発明の様々な例にしたがって1つ以上のオペレーションを実行するために、ソフトウェアアプリケーションを実行する。したがって、メモリ３０７は、実行時に１つ以上のオペレーションを実行するソフトウェアアプリケーションを実装し得るソフトウェア命令３０９Ａを格納する。メモリ３０７はまた、ソフトウェアアプリケーションと共に用いられるデータ３０９Ｂを格納する。示された実施形態において、データ３０９Ｂは、ソフトウェアアプリケーションがオペレーションを実行するために用いるプロセスデータを含み、それらのうちの少なくとも一部は、パラレルであり得る。
【００２８】
マスタコンピュータ３０３はまた、複数のプロセッサユニット３１１とインターフェースデバイス３１３とを含む。プロセッサユニット３１１は、ソフトウェア命令３０９Ａを実行するようにプログラムされ得る任意のタイプのプロセッサデバイスであり得るが、従来どおりマイクロプロセッサデバイスであり得る。例えば、プロセッサユニット３１１のうちの１つ以上は、商業用の汎用プログラマブルプロセッサ、例えばＩｎｔｅｌ（登録商標）Ｐｅｎｔｉｕｍ（登録商標）またはＸｅｏｎ（登録商標）マイクロプロセッサ、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ  Ａｔｈｌｏｎ（登録商標）マイクロプロセッサ、またはＭｏｔｒｏｌａ  ６８Ｋ／Ｃｏｌｄｆｉｒｅ（登録商標）マイクロプロセッサであり得る。代替的または追加的に、プロセッサユニット３１１のうちの１つ以上は、カスタム製造されたプロセッサ、例えば特定タイプの数学的演算を最適に実行するように設計されたマイクロプロセッサであり得る。インターフェースデバイス３１３、プロセッサユニット３１１、メモリ３０７および入出力デバイス３０５は、バス３１５によって互いに接続される。
【００２９】
本発明の一部の実装を用いると、マスタコンピューティングシステム３０３は、２つ以上のプロセッサコアを有する１つ以上のプロセッシングユニット３１１を利用し得る。したがって、図４は、本発明の様々な実施形態と共に利用され得るマルチコアプロセッサユニット３１１の例を示している。この図から分かるように、プロセッサユニット３１１は、複数のプロセッサコア４０１を含む。各プロセッサコア４０１は、コンピューティングエンジン４０３とメモリキャッシュ４０５とを含む。当業者には公知なように、コンピューティングエンジンは、様々なコンピューティング機能を実行するための、例えばソフトウェア命令をフェッチし、その後にフェッチされた命令において指定されたアクションを実行するための、ロジックデバイスを含む。これらのアクションは、例えば、数を加算、減算、乗算、比較したり、例えばＡＮＤ、ＯＲ、ＮＯＲおよびＸＯＲのような論理オペレーションを実行したり、データを取り出したりすることを含み得る。各コンピューティングエンジン４０３は、それに対応するメモリキャッシュ４０５を用い、実行のためにデータおよび／または命令の迅速な格納および取り出しを行い得る。
【００３０】
各プロセッサ４０１は、相互接続４０７に接続される。相互接続４０７の特定の構成は、プロセッサユニット４０１のアーキテクチャに依存して変動し得る。一部のプロセッサコア４０１（例えば、Ｓｏｎｙ  Ｃｏｒｐｏｒａｔｉｏｎ，Ｔｏｓｈｉｂａ  ＣｏｒｐｏｒａｔｉｏｎおよびＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されたＣｅｌｌマイクロプロセッサ）を用いることにより、相互接続４０７は、相互接続バスとして実装され得る。しかしながら、その他のプロセッサコア４０１、例えばＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ、Ｓｕｎｎｙｖａｌｅ，Ｃａｌｉｆｏｒｎｉａから入手可能なＯｐｔｅｒｏｎ（登録商標）およびＡｔｈｌｏｎ（登録商標）デュアルコアプロセッサを用いると、相互接続４０７は、システム要求インターフェースデバイスとして実装され得る。いずれの場合においても、プロセッサコア４０１は、相互接続４０７を介して入出力インターフェイス４０９およびメモリコントローラ４１１と通信し得る。入出力インターフェイス４０９は、プロセッサユニット３１１とバス３１５との間の通信インターフェイスを提供し得る。同様に、メモリコントローラ４１１は、プロセッサユニット３１１とシステムメモリ３０７との間の情報の交換を制御する。本発明の一部の実装を用いると、プロセッサユニット３１１は、例えばプロセッサコア４０１によってアクセス可能なように共有される高レベルキャッシュメモリ等の追加的なコンポーネントを含み得る。
【００３１】
図４は、本発明の一部の実施形態によって利用され得るプロセッサユニット３１１の一例を示しているが、この例は代表的なものに過ぎず、限定を意図していないことが理解されるべきである。例えば、本発明の一部の実施形態は、１つ以上のＣｅｌｌプロセッサを有するマスタコンピュータ３０３を利用し得る。Ｃｅｌｌプロセッサは、複数の入出力インターフェイス４０９および複数のメモリコントローラ４１１を利用する。また、Ｃｅｌｌプロセッサは、異なるタイプの９個の異なるプロセッサコア４０１を有する。より具体的には、これは６個以上のシナジスティックプロセッサ要素（ＳＰＥ）およびパワープロセッサユニット（ＰＰＥ）を有する。各シナジスティックプロセッサ要素は、１２８×１２８ビットレジスタを有するベクトルタイプのコンピューティングエンジン４０３、４個の単精度浮動小数点計算ユニット、４個の整数計算ユニット、命令およびデータの両方を格納する２５６ＫＢローカル格納メモリを有する。そしてパワープロセッサ要素は、シナジスティックプロセッサ要素によって実行されるタスクを制御する。その構成が理由で、Ｃｅｌｌプロセッサは、例えば高速Ｆｏｕｒｉｅｒ変換（ＦＦＴ）の計算等の一部の数学的演算を、多くの従来のプロセッサよりも実質的に速い速度で実行することができる。
【００３２】
一部の実装によって、マルチコアプロセッサユニット３１１は、複数の別個のプロセッサユニット３１１の代わりに用いられ得ることが理解されるべきである。例えば、６個の別個のプロセッサユニット３１１を用いるよりも、本発明の代替的な実装は、６個のコアを有する単一のプロセッサユニット３１１、それぞれ３個のコアを有する２個のマルチコアユニット３１１、４個のコアを有するマルチコアプロセッサユニット３１１と２個の別個の単一コアプロセッサユニット３１１、または他の所望の構成を利用し得る。
【００３３】
図３に戻って、インターフェイス装置３１３は、マスタコンピュータ３０３がスレーブコンピュータ３１７Ａ，３１７Ｂ、３１７Ｃ、・・・３１７Ｘと通信インターフェイスを介して通信することを可能にする。通信インターフェイスは、例えば、従来の有線ネットワーク接続あるいは光学的送信有線ネットワーク接続のような、任意の適切なタイプのインターフェイスであり得る。通信ネットワークは、また、無線光学接続、ラジオ周波数接続、赤外線接続、あるいは、音響接続でさえも含む無線接続であり得る。インターフェイス装置３１３は、送信制御プロトコル（ＴＣＰ），ユーザデータグラムプロトコル（ＵＤＰ）およびインターネットプロトコル（ＩＰ）のような１つ以上の通信プロトコルに従って、マスタコンピュータ３０３および各スレーブコンピュータ３１７からのデータおよび信号をネットワークメッセージへ変換する。これらのおよび他の従来型の通信プロトコルは、本分野で周知であり、従って、本明細書ではこれ以上の詳細は議論されない。
【００３４】
各スレーブコンピュータ３１７は、メモリ３１９、プロセッサユニット３２１、インターフェイス装置３２３、および、選択として、システムバス３２７によって互いに接続された１つ以上の入力／出力装置３２５を含む。マスタコンピュータ３０３によるように、スレーブコンピュータ３１７に対する選択的入力／出力装置３２５は、キーボード、ポインティング装置、マイクロフォン、ディスプレイモニタ、スピーカ、およびプリンタのような任意の従来型入力あるいは出力装置を含み得る。同様に、プロセッサユニット３２１は、任意のタイプの従来型あるいはカスタムメードのプログラマブルプロセッサ装置であり得る。例えば、１つ以上のプロセッサユニット３２１は、商用のプログラマブルマイクロプロセッサであり得、Ｉｎｔｅｌ（登録商標）Ｐｅｎｔｉｕｍ（登録商標）あるいはＸｅｏｎ（商標）マイクロプロセッサ、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ  Ａｔｈｌｏｎ（商標）マイクロプロセッサあるいは、Ｍｏｔｏｒｏｌａ  ６８Ｋ／Ｃｏｌｄｆｉｒｅ（登録商標）マイクロプロセッサのようなものがある。代わりに、１つ以上のマイクロプロセッサユニット３２１は、特定のタイプの数学的オペレーションを最適に実行するように設計されたような、カスタムメードのプロセッサであり得る。さらに、１つ以上のプロセッサユニット３２１は、上記図３に関して記述したように、２つ以上のコアを有し得る。例えば、本発明のいくつかの実装では、１つ以上のプロセッサユニット３２１は、セルプロセッサであり得る。そして、メモリ３１９は、上で議論したコンピュータ読み取り可能媒体の任意の組合せを用いて実装され得る。インターフェイス装置３１３のように、インターフェイス装置３２３は、スレーブコンピュータ３１７が、通信インターフェイスを介してマスタコンピュータ３０３と通信することを可能にする。
【００３５】
例示の例では、マスタコンピュータ３０３は、複数のプロセッサユニット３１１を有するマルチプロセッサユニットコンピュータであり、各スレーブコンピュータ３１７は、単一プロセッサユニット３２１を有している。しかしながら、本発明の代替の実装が、単一プロセッサユニット３１１を有するマスタコンピュータを採用し得る。さらに、１つ以上のスレーブコンピュータ３１７が、前に議論したように、意図された用途に依存して、複数のプロセッサユニット３２１を含み得る。また、１つだけのインターフェイス装置３１３あるいは３２３が、マスタコンピュータ３０３およびスレーブコンピュータ３１７の両方に対して例示されているが、本発明の代替実施形態においては、マスタコンピュータ３０３、１つ以上のスレーブコンピュータ３１７、あるいは両方のあるのうちのいずれかは、複数の通信インターフェイス上で通信するために、２つ以上の異なるインターフェイス装置３１３あるいは３２３を使用し得る。
【００３６】
本発明の様々な例によって、マスタコンピュータ３０３は、１つ以上の外部データ格納装置に接続され得る。これらの外部データ格納装置は、マスタコンピュータ３０３によってアクセス可能なコンピュータ読み取り可能媒体の任意の組合せを用いて実装され得る。コンピュータ読み取り可能媒体は、例えば、マイクロ回路メモリ装置を含み得、それらには、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）あるいはフラッシュメモリマイクロ回路装置、ＣＤ−ＲＯＭディスク、デジタルビデオディスク（ＤＶＤ）、あるいは他の光学的格納装置がある。コンピュータ読み取り可能媒体は、また、磁気カセット、磁気テープ、磁気ディスクあるいは他の磁気格納装置、穿孔媒体、ホログラム格納装置、あるいは、所望の情報を格納するために使用され得る任意の他の媒体を含み得る。本発明のいくつかの実施形態によると、１つ以上のスレーブコンピュータ３１７は、代わりにあるいは追加的に、１つ以上の外部データ格納装置に接続され得る。一般には、これらの外部データ格納装置は、マスタコンピュータ３０３にも接続されたデータ格納装置を含むが、これらは、また、マスタコンピュータ３０３によってアクセス可能な任意のデータ格納装置とは異なり得る。
【００３７】
図３および図４に例示されたコンピュータネットワークの記述は例としてのみ提供されており、本発明の代替実施形態の用途あるいは機能の範囲について、任意の限定を示唆する意図はないことが容易に理解されるであろう。
【００３８】
（レイヤーバイアスの動的決定）
上述のように、本発明の様々な実装が、レイヤーバイアスを決定するために採用され得る。図５は、方法５０１を例示しており、方法５０１は、本発明の様々な実装に従って提供され得る。方法５０１は、レイアウト設計（示されていない）の一部分を識別するためのオペレーション５０３を含む。本発明の様々な実装において、レイアウト設計は、プリント回路基板のレイアウト設計である。本発明の他の実装においては、レイアウト設計は、プリント回路基板のレイアウト設計の選択された部分である。本発明のなおも他の実装においては、レイアウト設計は、（例えば、システム−オン−チップ集積回路）集積回路のレイアウト設計である。
【００３９】
方法５０１は、レイアウト設計内の選択されたフィーチャを識別するためのオペレーション５０５をさらに含む。本発明の様々な実装では、選択されたフィーチャは、レイアウト設計内でルーティングされたトレースである。様々な他の実装では、選択されたフィーチャは、ネットラインである。なおも他の実装では、選択されたフィーチャは、トレース、ネットライン、バス経路、レイアウト設計の端部、レイアウト設計内の導電性材料のアウトライン、レイヤーバイアスを示す任意のフィーチャ、あるいはレイヤーバイアスを示す他のフィーチャである。
【００４０】
選択されたフィーチャが識別されると、方法は、選択されたフィーチャに基づくレイヤーバイアスを決定するためのオペレーション５０７を含む。本発明のいくつかの実装では、レイヤーバイアスは、レイアウト設計内の単一のレイヤーに対して決定される。本発明の様々な実装では、レイアウト設計は、複数のレイヤーを収納する。従って、レイヤーバイアスは、レイアウト設計内の各レイヤーに対して決定され得る。本発明のなおもさらに他の実装では、レイヤーバイアスは、レイアウト設計内の選択したレイヤーに対して決定され得る。例えば、電力レイヤーおよび接地盤レイヤーのような、レイアウト設計５０７のいくつかのレイヤーのレイヤーバイアスは、決定されないことがあり得る。
【００４１】
レイヤーバイアスが決定された後、方法は、レイヤーバイアスマップ５１１を生成するためのオペレーション５０９を含む。レイヤーバイアスマップは、識別されたレイアウト設計の選択された部分に対して、決定されたレイヤーバイアスを特定する。本発明の様々な実装において、レイヤーバイアスマップ５１１は、マトリックスフォーマットを採用し、レイヤーバイアスを特定する。代替の実装では、レイヤーバイアスマップ５１１は、リストフォーマットを採用し、レイヤーバイアスを特定する。なおも他の実装では、レイヤーバイアスマップ５１１は、ベクトルフィールドフォーマットを採用し、レイヤーバイアスを特定する。本発明の様々なさらなる実装においては、レイヤーバイアスマップ５１１は、オペレーション５０９で生成された後でメモリ格納位置に格納される。
【００４２】
方法５０１は、レイアウト設計内の更新されたフィーチャを識別するためのオペレーション５１３を選択的に含む。本発明の様々な実装では、更新されたフィーチャは、レイアウト設計５０７内にルーティングされた新しいトレースである。本発明の様々なさらなる実装では、新しいトレースは、ユーザによって手動でルーティングされる。本発明の様々な代替の実装では、新しいトレースは、自動トレースルーティングツールによってルーティングされる。本発明のなおも他の様々な実装では、更新されたフィーチャは、レイヤーバイアスを示すフィーチャのレイアウト設計への追加である。例えば、追加のフィーチャは、ネットライン、バス経路、あるいは、レイヤーバイアスを運搬すると知られている他のフィーチャであり得る。なおも、本発明の様々な他の実装では、更新されたフィーチャは、トレース、ネットライン、バス経路、あるいはレイヤーバイアスを示す他のフィーチャの除去である。
【００４３】
オペレーション５１３が更新されたフィーチャを識別すると、オペレーション５０７が、選択されたフィーチャに基づいて、レイヤーバイアスを再び決定し、レイヤーバイアスマップ５１１がオペレーション５０９によって再び生成される。本発明の様々な実装において、レイヤーバイアスマップ５１１は、完全に再生成される。様々な代替実装では、レイヤーバイアスマップ５１１は、単に更新されて、更新されたフィーチャからの任意の変化した結果を反映する。
【００４４】
（レイヤーバイアスマップ）
見られるように、方法５０１は、レイヤーバイアスを動的に決定するために実装され得る。例えば、トレースがレイアウト設計に追加される場合、レイヤーバイアスが周期的に決定され、更新され、追加トレースからの任意の変化した結果を反映し得る。上述のように、本発明の様々な実装では、レイヤーバイアスはレイアウト設計内の選択されたレイヤーに対して決定される。本発明の様々なさらなる実装において、レイヤーバイアスは、レイアウト設計の１つ以上の選択されたレイヤー内の選択された領域に対して決定される。これは、図６を参照してかなり詳細に例示されている。
【００４５】
図６は、レイアウト設計６０１を例示している。レイアウト設計６０１は、複数のレイヤー６０３を含む。図６に見られるように、レイヤー６０３のうちのいくつかは、領域６０５に区分されており、区分されたレイヤー６０７を結果としてもたらす。本発明の様々な実装において、領域６０５は数ミリメータ平方であり得る。レイヤーバイアスは、区分されたレイヤー６０７のうちの１つ以上の内に選択された領域６０５に対して決定され得る。特定の領域６０５に対するレイヤーバイアスは、本明細書では、しばしば、ローカルレイヤーバイアスあるいはローカルバイアスと呼ばれる。本発明の様々な実装では、レイヤーバイアスマップ５１１のようなレイヤーバイアスマップは、選択された領域に対するローカルバイアスを特定する。
【００４６】
図７は、方法７０１を例示しており、本発明の様々な実施形態に従って実装され得、レイヤーバイアスマップを生成する。例えば、図５に示されたオペレーション５０９は、方法７０１に従って実行され得る。図７に見られるように、方法７０１は、レイアウト設計（示されていない）内のレイヤー（示されていない）を識別するためのオペレーション７０３を含む。方法７０１は、識別されたレイヤーを領域に区分するためのオペレーション７０５をさらに含む。例えば、オペレーション７０３は、図６に例示されたレイヤー６０３のうちの１つを識別し得る。従って、オペレーション７０５は、識別されたレイヤーを領域に区分し得、レイヤー６０７のような区分されたレイヤーを結果としてもたらす。
【００４７】
方法７０１は、識別されたレイヤー内の、領域６０５のような、選択された領域に対するレイヤーバイアスを決定するためのオペレーション７０７をさらに含む。レイヤー図内の領域の選択に対応するレイヤーバイアスは、ローカルレイヤーバイアスと呼ばれ得る。方法７０１は、レイヤーバイアスマップ７１１を生成するためのオペレーション７０９を選択的に含み、選択された領域の決定されたレイヤーバイアスを特定する。より具体的には、レイヤーバイアスマップは、レイアウト設計のうちの１つ以上のレイヤー内の選択された領域に対応するローカルバイアスを参照する。上述のように、本発明の様々な実装では、方法５０１は、方法７０１に従ってレイヤーバイアスマップを生成する。従って、レイヤーバイアスマップ５１１は、レイヤーバイアスマップ７１１に対応する。上述のように、本発明の様々な実装では、レイヤーバイアスマップ７１１のようなレイヤーバイアスマップは、レイアウト設計内の単一レイヤーあるいはレイアウト設計内の複数のレイヤーに対応し得る。本明細書のいくつかの記述のレイヤーバイアスマップは、単一レイヤーを参照して詳細が述べられているが、当業者は、本開示に基づいて、複数のレイヤーを参照するレイヤーバイアスマップを生成し得る。
【００４８】
本発明の様々な実装においては、レイヤーバイアスマップ７１１は、水平および縦バイアスとしてレイヤーバイアスを特定する。図２に戻って、見られるように、トレース２０７は、縦方向にルーティングされている。従って、レイヤーバイアスマップ７１１のようなレイヤーバイアスマップは、トレース２０７がルーティングされているレイヤーへの参照を含むが、レイヤーを縦方向にバイアスされたレイヤーとして特定し得る。さらに、見られるように、図２は、水平にルーティングされているトレース２０５を含む。従って、トレース２０５がルーティングされているレイヤーを参照するレイヤーバイアスマップは、レイヤーを水平にバイアスされたレイヤーとして特定する。
【００４９】
図８は、本発明の様々な実施形態に従って実装され得る方法８０１を例示しており、レイヤーバイアスあるいはローカルレイヤーバイアスを決定する。方法８０１は、レイアウト設計（示されていない）内の領域（示されていない）をレイアウト設計（示されていない）内から識別するためのオペレーション８０３を含む。例えば、オペレーション８０３は、図６に示されたレイアウト設計６０１の領域６０５のうちの選択された１つを識別する。方法８０１は、識別された領域近くのバイアスフィーチャを識別するためのオペレーション８０５をさらに含む。上述のように、バイアスフィーチャは、トレースあるいはネットラインのような、レイヤーバイアスを示す任意のフィーチャであり得る。本発明の様々な実施形態においては、バイアスフィーチャが識別された領域の境界内に配置されている場合、バイアスフィーチャは、識別された領域の近くとして認識される。代替としてあるいは選択として、本発明の他の実装では、バイアスフィーチャが識別された領域の境界に接触している場合、バイアスフィーチャは、識別された領域の近くとして認識される。なおも代替としてあるいは選択として、本発明の他の実装では、バイアスフィーチャが識別された領域から選択された距離に配置されている場合、バイアスフィーチャは、識別された領域の近くとして認識される。本発明の様々な実装においては、バイアスフィーチャが領域から数ミリメータの距離内にある場合、バイアスフィーチャは特定の領域の近くであると識別される。
【００５０】
図９は、区分されたレイヤー９０１を例示しており、領域９０３−９３３を含んでいる。区分されたレイヤー９０１は、トレース、すなわちバイアスフィーチャ９３５−９３９およびピン９４１をさらに含む。図９に見られるように、バイアスフィーチャ９３５は、領域９０３、９０５、９０７、９１５、および９１７内で水平方向にルーティングされている。選択として、例示されているように、バイアスフィーチャ９３５が領域９０７および９１５内で対角にルーティングされている。本発明の様々な実装においては、対角バイアスは選択されたレイヤーあるいは、領域９０７および領域９１５のような選択された領域に対して特定され得る。本発明のさらなる実装では、領域９０７および領域９１５は、負の対角バイアスあるいは正の対角バイアスを有していると言われ得る。より具体的には、正のあるいは負の意味は、特定の対角にルーティングされたバイアスフィーチャに割り当てられる。所与の規準線（例えば、デカルト平面のｘ軸）から反時計回りに測定された場合、角度は正の値で与えられ、時計回りに測定された場合、角度は負の値で与えられることが容易に理解されるべきである。本発明の様々な実装において、対角にルーティングされたバイアスフィーチャは、水平軸に関してかつ左から右に読むバイアスフィーチャの角度が、１８０度より大きい場合、負にバイアスされていると言われる。従って、領域９０７および領域９１５は、負のバイアスを有していると特定され得る。
【００５１】
図８に戻ると、方法８０１は、オペレーション８０５によって識別されたバイアスフィーチャに基づいて、ローカルバイアスを決定するためのオペレーション８０７を選択的に含む。本発明の様々な実装においては、単一のバイアスフィーチャがオペレーション８０５によって識別される。従って、様々な実装は、識別されたバイアスフィーチャのバイアスに対応するローカルバイアスを決定する。例えば、バイアスフィーチャ９３５が領域９０３近くのただ１つのバイアスフィーチャとして認識される場合、領域９０３が水平のローカルバイアスを有すると決定され得る。本発明の様々な実装では、バイアスフィーチャの一部分が、特定の領域の近くであると識別される。例えば、バイアスフィーチャ９３７の部分９４３は、領域９２９の近くにあると識別され得る。当業者は、バイアスフィーチャあるいはバイアスフィーチャの一部分９４３のような一部分が特定の領域の内部に配置され得るが、バイアスフィーチャは、なおも、バイアスフィーチャの「近く」にあるとして「分類」され得ることを容易に理解するであろう。本発明の様々な実装において、領域内のフィーチャの実際のバイアスは、領域内には配置されていない近傍フィーチャよりも大きな比重が与えられる。
【００５２】
なおも、本発明の様々な実装では、無バイアスのフィーチャが、オペレーション８０５によって識別される。従って、本発明の様々な実装は、ローカルバイアスをその特定の領域には割り当てない可能性があり、あるいは、「ゼロ」バイアスをその特定の領域に割り当て得る。従って、本発明の様々な他の実装では、ローカルバイアスは「任意」として決定される。例えば、バイアスフィーチャ９３５−９３９のいずれも領域９１９の近くにあるとは識別されない。結果として、様々な実装は、領域９１９のローカルバイアスを「任意」あるいは「ゼロ」であると決定し得る。
【００５３】
本発明のなおも他の実装では、複数のバイアスフィーチャがオペレーション８０５によって識別される。代替として、複数のバイアスを有する単一バイアスフィーチャが、オペレーション８０５によって識別される。例えば、水平および負のバイアスを有するバイアスフィーチャ９３５は、領域９０７の近くであると識別され得る。従って、本発明の様々な実装において、計数関数が、最大のタイプのバイアスフィーチャ（例えば、水平の）に対応するローカルバイアスを決定するために採用され得る。本発明の様々な実装では、ローカルバイアスを決定するときに、バイアスフィーチャの長さが考慮される。より詳細には、様々なバイアスフィーチャの組合せ長さが、ローカルレイヤーバイアスを決定するために使用され得る。例えば、２つの水平バイアスフィーチャと１つの縦バイアスフィーチャとを有する領域が、縦バイアスフィーチャが組合せられた水平バイアスフィーチャよりも大きな長さを有している場合、縦バイアスを割り当てられ得る。
【００５４】
方法８０１は、オペレーション８０７によって決定されたローカルバイアスに基づいて、レイヤーバイアスマップ（示されていない）を生成するためのオペレーション８０９を選択的に含む。上述のように、本発明の様々な実装は、レイヤーバイアスマップとしてマトリックスフォーマットを採用する。従って、下の表１は、区分されたレイヤー９０１に対応するレイヤーバイアスマップを例示しており、本発明の様々な実装に従って生成され得る。表１に見られるように、４つの列と４つの行があり、１６の領域９０３−９３３に対応する１６のセルを作成している。さらに、見られるように、各セルは、対応する領域のバイアスを示している。例えば、列１、行１は、「水平」バイアスを特定し、これは領域９０３のバイアスに対応している。
【００５５】
【表１】
2010176676.tif 000003
図１０は、図９の区分されたレイヤー９０１を例示しており、追加のバイアスフィーチャ１００３がレイアウト設計に追加されている。ここで、図５に戻ると、レイヤーバイアスマップ５１１が、レイアウト設計内のフィーチャが更新される場合、再生成され得、あるいは、更新され得る。より詳細には、区分されたレイヤー９０１に対応するレイヤーバイアスマップが更新されて、図１０に例示された追加のバイアスフィーチャ１００３を考慮する。下の表２は、本発明の様々な実装に従って更新され、図１０に例示された区分されたレイヤー９０１に対応する、表１に示されたレイヤーバイアスマップを例示する。
【００５６】
【表２】
2010176676.tif 000004
（レイヤーバイアスマップに基づく自動トレースルーティング）
上述のように、自動トレースルーティングツールは、レイヤーバイアスヒューリスティックスのような、様々なヒューリスティックスに従って、トレースをルーティングし得る。本発明の様々な実装において、表２に例示されたレイヤーバイアスマップのようなレイヤーバイアスマップは、自動トレースルーティングツールによって採用され得る。より詳細には、自動トレースルーティングツールは、レイヤーバイアスヒューリスティクスおよび動的に更新されたレイヤーバイアスマップに従って、トレースをルーティングし得る。図１１は、方法１１０１を例示しており、本発明の様々な実施形態に従って実装され得る。方法１１０１は、レイアウト設計の一部分を識別するためのオペレーション１１０３、レイアウト設計の一部分に対応するレイヤーバイアスマップを生成するためのオペレーション１１０５、レイヤーバイアスヒューリスティックスに従ってトレースをルーティングするためのオペレーション１１０７、および、レイヤーバイアスマップを更新するためのオペレーション１１０９を含む。本発明の様々な実装において、レイアウト設計は、プリント回路基板のための物理的レイアウト設計を表す。様々な実装では、レイアウト設計は、集積回路のための物理的レイアウト設計を表す。
【００５７】
本発明の様々な実装において、レイアウト設計の一部分に対応するレイヤーバイアスマップを識別するためのオペレーション１１０５は、上記のようにレイヤーバイアスマップを生成する。例えば、オペレーション１１０５は、図５に示された方法５０１によって実行され得る。本発明の様々な実装では、オペレーション１１０７は、自動トレースルーティングツールを採用し、レイヤーバイアスヒューリスティックスに従って、トレースをルーティングし、レイヤーバイアスはレイヤーバイアスマップに基づいて決定される。なおも、本発明の様々な実装では、オペレーション１１０７は、複数のヒューリスティックスに基づいてトレースをルーティングし、複数のヒューリスティックスのうちの１つは、レイヤーバイアスヒューリスティックスである。
【００５８】
オペレーション１１０９は、追加でルーティングされたトレースからの結果である任意の変更を反映するために、レイヤーバイアスマップを更新する。図１１から見られるように、トレースをルーティングするためのオペレーション１１０７、およびレイヤーバイアスマップを更新するためのオペレーション１１０９が、継続され得る。本発明の様々な実装では、レイアウト設計内のすべてのネットラインがトレースとしてルーティングされるまで、プロセスが継続される。なおも本発明の様々な実装では、所定の数のトレースがルーティングされるまで、プロセスが継続される。なおも再び本発明の様々な実装では、レイアウト設計内の所定の数の領域が、レイヤーバイアスマップにおいて、それらに関連するレイヤーバイアスを有するまで、プロセスが継続される。
【００５９】
図１２は、本発明の様々な実施形態に従って実装され得る方法１２０１を例示しており、レイアウト設計におけるトレースの自動ルーティングを容易にする。方法１２０１は、レイアウト設計を識別するためのオペレーション１２０３を含む。本発明の様々な実装において、識別されたレイアウト設計は、プリント回路基板のような電子デバイスのための物理的レイアウト設計の一部分である。
【００６０】
方法１２０１は、レイヤーバイアスマップを動的に生成するためのオペレーション１２０５をさらに含む。本発明の様々な実装において、オペレーション１２０５は、図１１に例示された方法１１０１に従って、レイヤーバイアスマップを動的に生成する。本発明の他の実装では、オペレーション１２０５は、すでに動的に生成された、識別されたレイアウト設計に対応するレイヤーバイアスマップを識別する。例えば、図５に例示された方法５０１に従って生成されたレイヤーバイアスマップである。
【００６１】
方法１２０１は、識別されたレイアウト設計の中のトレースを除去するためのオペレーション１２０７、および、レイヤーバイアスヒューリスティックスに基づいて識別されたレイアウト設計の中のトレースをルーティングするためのオペレーション１２０９を選択的に含む。本発明の様々な実装では、オペレーション１２０７は、選択されたトレースをレイアウト設計から除去する。本発明の様々な実装では、オペレーション１２０７は、すべてのトレースをレイアウト設計から除去する。
【００６２】
（レイヤーバイアスマップを動的に生成するための装置）
図１３は、レイヤーバイアスマップを動的に生成するための装置１３０１を例示する。図１３に見られるように、装置１３０１は、プリント回路基板のレイアウト設計のような、幾何学的設計を処理するためのモジュール１３０３を含む。装置１３０１は、レイヤーバイアスを決定するためのモジュール１３０５、およびレイヤーバイアスマップを生成するためのモジュール１３０７をさらに含む。本発明の様々な実装では、モジュール１３０３−１３０７は、プログラマブルなコンピュータ上で実行可能なプログラムである。従って、モジュール１３０３−１３０７は、例えばプリント回路基板のレイアウト設計のような、物理的レイアウト設計を表すデータを、アクセスし、変更し、保存し、生成し、表示することができる。
【００６３】
（結論）
いくつかの装置および方法が、例示的実施形態として上に記述されてきたが、当業者は、他の実施形態、例、置換、修正、および代替が可能であることを認識するであろう。以下の特許請求の範囲は、特許請求の範囲の精神と範囲内にある、そのような他の実施形態、例、修正、および代替をカバーすることが意図されている。
【符号の説明】
【００６４】
１０１  レイアウト設計
１０３  ネットライン
１０５  ピン
１０７  コンポーネント
１０９  コンポーネント
【図１】
2010176676.tif 000005
【図２】
2010176676.tif 000006
【図３】
2010176676.tif 000007
【図４】
2010176676.tif 000008
【図５】
2010176676.tif 000009
【図６】
2010176676.tif 000010
【図７】
2010176676.tif 000011
【図８】
2010176676.tif 000012
【図９】
2010176676.tif 000013
【図１０】
2010176676.tif 000014
【図１１】
2010176676.tif 000015
【図１２】
2010176676.tif 000016
【図１３】
2010176676.tif 000017