(57)【特許請求の範囲】
【請求項１】
プログラム可能論理デバイス内の複数の機能ブロックを相互接続する方法であって、
該方法は、
ワイヤに対して電気的に最適である物理的長さを決定することと、
非電気的事項を考慮して該決定された物理的長さを調節することと、
該決定された物理的長さと実質的に同一である物理的長さを有するワイヤを提供することと、
該ワイヤに該複数の機能ブロックを接続することと
を包含し、
該ワイヤの論理的長さは、該ワイヤの向きの関数であり、
該ワイヤに対して電気的に最適である物理的長さを決定することは、
該複数の機能ブロックおよび該ワイヤを備えた該プログラム可能論理デバイスをモデル化することと、
該ワイヤの物理的長さを複数回変更することと、
該物理的長さの複数回の変更のそれぞれに対して、該物理的長さの複数回の変更のうちの特定の１つを有するワイヤを信号が通過する時間を決定することと、
該物理的長さの複数回の変更のうちの特定の１つを有するワイヤを該信号が通過する複数の時間のそれぞれに対して、この時間を該信号が１単位の長さを通過する時間に変換することと、
該信号が１単位の長さを通過する複数の時間から、１単位の長さを通過するための最小の時間であって、該信号が１単位の長さを通過するための複数の時間のうちの特定の１つの時間を選択することと
を包含する、方法。
【請求項２】
前記非電気的事項は、電気的に最適な物理的長さの前記ワイヤのルーティング効率および該ワイヤに対する接続のパターンのうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記複数の機能ブロックの各々は、論理アレイブロック、メモリブロック、入力／出力ブロック、または、積算−累積ブロックである、請求項１に記載の方法。
【請求項４】
プログラム可能論理デバイス内で、複数の機能ブロックを相互接続する２次元ルーティングアーキテクチャであって、
該２次元ルーティングアーキテクチャは、
第１の論理的長さと物理的長さとを有する複数のワイヤの第１のサブセットと、
第２の論理的長さと、該複数のワイヤの第１のサブセットの物理的長さと実質的に同一である物理的長さとを有する該複数のワイヤの第２のサブセットであって、該第１の論理的長さは、該第２の論理的長さと異なり、該複数のワイヤの第１のサブセットは、第１の方向に向けられており、該複数のワイヤの第２のサブセットは、第２の方向に向けられている、該複数のワイヤの第２のサブセットと、
該第１の方向に向けられており、該第１の論理的長さよりも短い第３の論理的長さを有する該複数のワイヤの第３のサブセットと、
該第２の方向に向けられており、該第３の論理的長さを有する該複数のワイヤの第４のサブセットと、
該第１の方向に向けられており、該第３の論理的長さよりも短い第４の論理的長さを有する該複数のワイヤの第５のサブセットと、
該第２の方向に向けられており、該第４の論理的長さを有する該複数のワイヤの第６のサブセットと
を備え、
該複数のワイヤの第３のサブセットの物理的長さは、該複数のワイヤの第４のサブセットの物理的長さと異なり、該複数のワイヤの第５のサブセットの物理的長さは、該複数のワイヤの第６のサブセットの物理的長さと異なる、２次元ルーティングアーキテクチャ。
【請求項５】
前記第１の方向は、前記第２の方向と実質的に直交する、請求項４に記載の２次元ルーティングアーキテクチャ。
【請求項６】
前記第１の方向は水平方向であり、前記第２の方向は垂直方向であり、前記第１の論理的長さは２４個の機能ブロックであり、前記第２の論理的長さは１６個の機能ブロックであり、前記第３の論理的長さは８個の機能ブロックであり、前記第４の論理的長さは４個の機能ブロックである、請求項５に記載の２次元ルーティングアーキテクチャ。
【請求項７】
前記複数のワイヤのうちの第１のワイヤは、スタガー方向に向けられており、第１の開始点と第１の終了点とスタガー論理的長さとを有し、
該複数のワイヤの第２のワイヤは、該スタガー方向に向けられており、第２の開始点と第２の終了点と該スタガー論理的長さとを有し、
該スタガー方向が水平方向である場合には、該第１の開始点は該第２の開始点と位置ずれしており、該第１の終了点は、機能ブロックのアレイの機能ブロックの複数の列の固定された数の分だけ、該第２の終了点から位置ずれしており、または、該スタガー方向が垂直方向である場合には、該第１の開始点は該第２の開始点から位置ずれしており、該第１の終了点は、該機能ブロックのアレイの機能ブロックの複数の行の固定された数の分だけ、該第２の終了点から位置ずれしている、請求項４に記載の２次元ルーティングアーキテクチャ。
【請求項８】
前記固定された数は、０、１、２のうちのいずれか１つである、請求項７に記載の２次元ルーティングアーキテクチャ。
【請求項９】
前記第１の方向は水平方向であり、
前記複数のワイヤの第１のサブセット、該複数のワイヤの第３のサブセット、および、該複数のワイヤの第５のサブセットのうちの特定の１つの第１のワイヤは、第１の開始点を有し、該サブセットのうちの該特定の１つの第２のワイヤは、第２の開始点を有し、
該アーキテクチャは、
該第１のワイヤ上の第１の信号を右側へと駆動するように、出力を有する第１のドライバであって、該出力は、該第１の開始点において該第１のワイヤに結合されている、第１のドライバと、
該第２のワイヤ上の第２の信号を左側へと駆動するように、出力を有する第２のドライバであって、該出力は、該第２の開始点において該第２のワイヤに結合されている、第２のドライバと
をさらに有する、請求項４に記載の２次元ルーティングアーキテクチャ。
【請求項１０】
前記第２の方向は垂直方向であり、
前記複数のワイヤの第２のサブセット、該複数のワイヤの第４のサブセット、および、該複数のワイヤの第６のサブセットのうちの特定の１つの第１のワイヤは、第１の開始点を有し、該サブセットのうちの該特定の１つの第２のワイヤは、第２の開始点を有し、
該アーキテクチャは、
該第１のワイヤ上の第１の信号を上方向へと駆動するように、出力を有する第１のドライバであって、該出力は、該第１の開始点において該第１のワイヤに結合されている、第１のドライバと、
該第２のワイヤ上の第２の信号を下方向へと駆動するように、出力を有する第２のドライバであって、該出力は、該第２の開始点において該第２のワイヤに結合されている、第２のドライバと
をさらに有する、請求項４に記載の２次元ルーティングアーキテクチャ。
【請求項１１】
前記複数のワイヤのうちの第１のワイヤは、ステッチング方向に向けられており、信号フロー方向と、ステッチング論理的長さと、第１の開始点と、該第１の開始点から該信号フロー方向に該ステッチング論理的長さ分だけ離れた第１の終了点とを有しており、
該複数のワイヤのうちの第２のワイヤは、該ステッチング方向に向けられており、該信号フロー方向と、該ステッチング論理的長さと、第２の開始点と、該第２の開始点から該信号フロー方向に該ステッチング論理的長さ分だけ離れた第２の終了点とを有しており、
該アーキテクチャは、
該第２の開始点から該第２の終了点への該信号フロー方向に該複数のワイヤのうちの該第２のワイヤ上の該信号を駆動するように、入力と出力とを有するドライバをさらに有し、
該入力は、該第１の開始点から該第１の終了点までの範囲内の位置において、該複数のワイヤのうちの該第１のワイヤに結合されており、該出力は、該第２の開始点において、該複数のワイヤのうちの該第２のワイヤに結合されている、請求項４に記載の２次元ルーティングアーキテクチャ。
【請求項１２】
前記第２のドライバの入力は、前記第１の終了点において、前記複数のワイヤのうちの前記第１のワイヤに結合されている、請求項１１に記載の２次元ルーティングアーキテクチャ。
【請求項１３】
前記第１の方向に向けられた前記複数のワイヤの第５のサブセットの第１のワイヤは、該第１の方向に向けられた該複数のワイヤの第１のサブセットの第１のワイヤ、前記第２の方向に向けられた該複数のワイヤの第２のサブセットの第１のワイヤ、該第２の方向に向けられた該複数のワイヤの第６のサブセットの第１のワイヤ、および、該複数のワイヤの第５のサブセットの第１のワイヤが延びる前記複数の機能ブロックのうちの特定の機能ブロックのうちの少なくとも１つに結合されており、
該第１の方向に向けられた該複数のワイヤの第３のサブセットの第１のワイヤは、該第２の方向に向けられた該複数のワイヤの第４のサブセットの第１のワイヤ、および、該複数のワイヤの第３のサブセットの第１のワイヤが延びる該複数の機能ブロックのうちの特定の機能ブロックのうちの少なくとも１つに結合されており、
該第１の方向に向けられた該複数のワイヤの第１のサブセットの第２のワイヤは、該第１の方向に向けられた該複数のワイヤの第５のサブセットの第２のワイヤ、該第２の方向に向けられた該複数のワイヤの第２のサブセットの第２のワイヤ、および、該第２の方向に向けられた該複数のワイヤの第６のサブセットの第２のワイヤのうちの少なくとも１つに結合されており、
該第２の方向に向けられた該複数のワイヤの第６のサブセットの第３のワイヤは、該第１の方向に向けられた該複数のワイヤの第１のサブセットの第３のワイヤ、該第１の方向に向けられた該複数のワイヤの第５のサブセットの第３のワイヤ、該第２の方向に向けられた該複数のワイヤの第２のサブセットの第３のワイヤ、および、該複数のワイヤの第６のサブセットの第３のワイヤが延びる該複数の機能ブロックのうちの特定の機能ブロックのうちの少なくとも１つに結合されており、
該第２の方向に向けられた該複数のワイヤの第４のサブセットの第２のワイヤは、該第１の方向に向けられた該複数のワイヤの第３のサブセットの第２のワイヤ、および、該複数のワイヤの第４のサブセットの第２のワイヤが延びる該複数の機能ブロックのうちの特定の機能ブロックのうちの少なくとも１つに結合されており、
該第２の方向に向けられた該複数のワイヤの第２のサブセットの第４のワイヤは、該第１の方向に向けられた該複数のワイヤの第１のサブセットの第４のワイヤ、該第１の方向に向けられた該複数のワイヤの第５のサブセットの第４のワイヤ、および、該第２の方向に向けられた該複数のワイヤの第６のサブセットの第４のワイヤのうちの少なくとも１つに結合されている、請求項４に記載の２次元ルーティングアーキテクチャ。
【請求項１４】
機能ブロックの複数の行および複数の列と、
該機能ブロックの複数の列のうちの第１の列に対応し、かつ、少なくとも１つの入力と出力とを有する第１のドライバであって、該少なくとも１つの入力は、前記複数のワイヤの第１のサブセットの第１のワイヤ、該複数のワイヤの第２のサブセットの第１のワイヤ、該複数のワイヤの第６のサブセットの第１のワイヤ、該機能ブロックの複数の列のうちの該第１の列の出力、および、該機能ブロックの複数の列のうちの該第１の列に隣接する該機能ブロックの複数の列のうちの第２の列の出力のうちの少なくとも１つに結合されており、該第１のドライバの該出力は、該複数のワイヤの第５のサブセットの第１のワイヤに結合されている、第１のドライバと、
該機能ブロックの複数の列のうちの第３の列に対応し、かつ、少なくとも１つの入力と出力とを有する第２のドライバであって、該少なくとも１つの入力は、該複数のワイヤの第４のサブセットの第１のワイヤ、該機能ブロックの複数の列のうちの第３の列の出力、および、該機能ブロックの複数の列のうちの該第３の列に隣接する該機能ブロックの複数の列のうちの第４の列の出力のうちの少なくとも１つに結合されており、該第２のドライバの該出力は、該複数のワイヤの第３のサブセットの第１のワイヤに結合されている、第２のドライバと、
少なくとも１つの入力と出力とを有する第３のドライバであって、該少なくとも１つの入力は、該複数のワイヤの第５のサブセットの第２のワイヤ、該複数のワイヤの第２のサブセットの第２のワイヤ、および、該複数のワイヤの第６のサブセットの第２のワイヤのうちの少なくとも１つに結合されており、該第３のドライバの該出力は、該複数のワイヤの第１のサブセットの第２のワイヤに結合されている、第３のドライバと、
該機能ブロックの複数の行のうちの第１の行に対応し、かつ、少なくとも１つの入力と出力とを有する第４のドライバであって、該少なくとも１つの入力は、該複数のワイヤの第１のサブセットの第３のワイヤ、該複数のワイヤの第５のサブセットの第３のワイヤ、該複数のワイヤの第２のサブセットの第３のワイヤ、該機能ブロックの複数の行のうちの第１の行の出力、および、該機能ブロックの複数の行のうちの該第１の行に隣接する該機能ブロックの複数の行のうちの第２の行の出力のうちの少なくとも１つに結合されており、該第４のドライバの該出力は、該複数のワイヤの第６のサブセットの第３のワイヤに結合されている、第４のドライバと、
該機能ブロックの複数の行のうちの第３の行に対応し、かつ、少なくとも１つの入力と出力とを有する第５のドライバであって、該少なくとも１つの入力は、該複数のワイヤの第３のサブセットの第２のワイヤ、該機能ブロックの複数の行のうちの第３の行の出力、および、該機能ブロックの複数の行のうちの該第３の行に隣接する該機能ブロックの複数の行のうちの第４の行の出力のうちの少なくとも１つに結合されており、該第５のドライバの該出力は、該複数のワイヤの第４のサブセットの第２のワイヤに結合されている、第５のドライバと、
少なくとも１つの入力と出力とを有する第６のドライバであって、該少なくとも１つの入力は、該複数のワイヤの第１のサブセットの第４のワイヤ、該複数のワイヤの第５のサブセットの第４のワイヤ、および、該複数のワイヤの第６のサブセットの第４のワイヤのうちの少なくとも１つに結合されており、該第６のドライバの該出力は、該複数のワイヤの第２のサブセットの第４のワイヤに結合されている、第６のドライバと
をさらに備えた、請求項４に記載の２次元ルーティングアーキテクチャ。
【請求項１５】
前記複数のワイヤの第１のサブセットは、該複数のワイヤの第３のサブセットよりも広範であり、該複数のワイヤの第３のサブセットは、該複数のワイヤの第５のサブセットよりも広範であり、該複数のワイヤの第２のサブセットは、該複数のワイヤの第４のサブセットよりも広範であり、前記複数のワイヤの第４のサブセットは、該複数のワイヤの第６のサブセットよりも広範である、請求項４に記載の２次元ルーティングアーキテクチャ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本出願は、２００１年５月６日に出願された、「Ａｓｙｍｍｅｔｒｉｃ  Ｒｏｕｔｉｎｇ  Ｌｉｎｅｓ」というタイトルの米国仮出願第６０／２８９，１７７号の優先権を主張する。
【０００２】
本発明は、概して、集積回路に関し、特に、プログラマブルロジックデバイス内のルーティングワイヤに関する。
【０００３】
【従来の技術】
プログラマブルロジックデバイス（「ＰＬＤ」）は、カスタムロジック機能を実現するために用いられる、デジタルのユーザ設定可能集積回路である。この記載においては、用語ＰＬＤは、エンドユーザによって設定される任意のデジタルロジック回路を含み、プログラマブルロジックアレイ、フィールドプログラマブルゲートアレイ、ならびに消去可能および複合ＰＬＤを含む。ＰＬＤの基本的な構成ブロックは、入力された複数の変数について制限されたロジック機能を行うことができるロジック要素である。ロジック要素は、典型的には、「積の合計」ロジックをプログラマブルに実現する回路、および連続的なロジックを実現する１つ以上のレジスタが備えられる。従来のＰＬＤは、多数のこのようなロジック要素を、プログラマブル相互接続のアレイを介して結合して、複合ロジック機能の実現を容易にする。ＰＬＤは、結合された、低い前もってのコストと、ユーザに対する汎用性とを合わせた結果として、特に幅広い用途を見出した。
【０００４】
【発明が解決しようとする課題】
相互接続アレイおよびロジック要素を構成する、各種のＰＬＤのアーキテクチャ的なアプローチが、様々なロジック要素間でのロジック密度および信号のルーティング可能性（ｒｏｕｔａｂｉｌｉｔｙ）を最適にするように、開発されてきた。ロジック要素は、例えば、８つのグループに構成されて、より大きなロジックアレイブロック（「ＬＡＢ」）を形成する。マルチプルＬＡＢは、二次元アレイに構成され、グローバルな水平及び垂直相互接続チャネルを介して、互いにプログラム可能に接続可能である。水平および垂直チャネルのそれぞれは、１つ以上のルーティングワイヤ（「ワイヤ」）を含む。それぞれのチャネルにおけるワイヤのうちのいくつかは、多数のＬＡＢ（例えば、２４個のＬＡＢ）にわたっているが、他のワイヤは、少数のＬＡＢ（例えば、４個のＬＡＢ）にのみわたっている。
【０００５】
チャネルにおけるそれぞれのワイヤは、ワイヤの抵抗およびキャパシタンスを含む電気的性質を有する。これらの電気的性質は、物理的な長さによって、ほとんど決定される。電気的に最適なワイヤは、信号を、可能な限り速くワイヤを伝って下に転送する。信号を可能な限り速くワイヤを伝って下に転送するための、距離単位毎に、従って、ソースＬＡＢとデスティネーションＬＡＢとの間の任意の距離についてのワイヤの最適な物理的な長さがある。ＰＬＤ内では、ワイヤは、多数のＬＡＢにわたっており、少数のＬＡＢにわたっているワイヤは、電気的に最適化されていない。ワイヤ、特に、多数のＬＡＢ、または速度臨界経路（ｓｐｅｅｄ  ｃｒｉｔｉｃａｌ  ｐａｔｈ）にわたっているワイヤの電気的な最適化は、ＰＬＤの性能を高める。
【０００６】
上記の理由により、ＰＬＤ性能を高めるためには、電気的に最適化されたルーティングワイヤを有することが望ましい。
【０００７】
上記事情に鑑みて、本発明は、電気的に最適化されたルーティングワイヤを有する非対称ルーティングライン用のシステム及び方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記課題を解決するため、本発明のルーティングアーキテクチャは、プログラム可能論理デバイス内で、複数の機能ブロックを相互接続するルーティングアーキテクチャであって、該ルーティングアーキテクチャの複数のワイヤと、第１および第２の方向に向けられ、かつ第１の論理的長さを有する該複数のワイヤの第１のサブセットと、別の第１および第２の方向に向けられ、かつ異なる論理的長さを有する該複数のワイヤの第２のサブセットとを備え、それぞれの第１および第２の方向に向けられた該複数のワイヤの該第１および第２のサブセットは、相互に対応するものである。
【０００９】
上記本発明のルーティングアーキテクチャにおいて、前記複数のワイヤの第２のサブセットは、電気的に最適な物理的長さと実質的に同じである物理的長さ、または非電気的事項を考慮して、電気的に最適な物理的長さに調節を加えた長さを有することが好ましい。
【００１０】
上記本発明のルーティングアーキテクチャにおいて、前記非電気的事項は、前記電気的に最適な物理的長さのワイヤのルーティング効率、および該ワイヤとの接続パターンのうちの少なくとも１つを含むことが好ましい。
【００１１】
上記本発明のルーティングアーキテクチャにおいて、前記第１の方向に向けられた複数のワイヤの第１のサブセットの物理的長さは、前記第２の方向に向けられた複数のワイヤの第１のサブセットの物理的長さと異なることが好ましい。
【００１２】
上記本発明のルーティングアーキテクチャにおいて、前記第１の方向は前記第２の方向と直交することが好ましい。
【００１３】
上記本発明のルーティングアーキテクチャにおいて、前記第１の方向および前記第２の方向は，水平方向および垂直方向、該垂直方向および該水平方向、右上がりの対角線方向および左上がりの対角線方向、または該左上がりの対角線方向および該右上がりの対角線方向のうちのいずれか１つであることが好ましい。
【００１４】
上記本発明のルーティングアーキテクチャにおいて、前記複数の機能ブロックの各々は、論理アレイブロック、メモリブロック、入力／出力ブロック、または積算−累積ブロックであることが好ましい。
【００１５】
また、本発明のデジタルシステムは、上記本発明のプログラム可能論理デバイスを備えたものである。
【００１６】
また、本発明の２次元ルーティングアーキテクチャは、プログラム可能論理デバイス内で、複数の機能ブロックを相互接続する２次元ルーティングアーキテクチャであって、ワイヤであって、該ワイヤの向きの関数である論理的長さを有し、かつ電気的に最適な物理的長さと実質的に同じである物理的長さか、または非電気的事項を考慮して、該電気的に最適な物理的長さに調節を加えた長さを有する、ワイヤを備え、該ワイヤは該複数の機能ブロックのサブセットを相互接続するものである。
【００１７】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記非電気的事項は、前記電気的に最適な物理的長さのワイヤのルーティング効率、および該ワイヤとの接続パターンのうちの少なくとも１つを含むことが好ましい。
【００１８】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記ワイヤの向きは、垂直方向、水平方向、左上がりの対角線方向、または右上がりの対角線方向のうちのいずれか１つであることが好ましい。
【００１９】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記複数の機能ブロックの各々は、論理アレイブロック、メモリブロック、入力／出力ブロック、または積算−累積ブロックであることが好ましい。
【００２０】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記複数の機能ブロックの各々は幅と高さとが異なることが好ましい。
【００２１】
また、本発明のデジタルシステムは、上記本発明のプログラム可能論理デバイスを備えたものである。
【００２２】
また、本発明のプログラム可能論理デバイス内の複数の機能ブロックを相互接続する方法は、プログラム可能論理デバイス内の複数の機能ブロックを相互接続する方法であって、ワイヤに対して電気的に最適である物理的長さを決定する工程と、該複数の機能ブロックを、該電気的に最適である物理的長さと実質的に同じである物理的長さを有するワイヤに接続する工程とを包含し、該ワイヤの論理的長さは該ワイヤの向きの関数であるものである。
【００２３】
上記本発明の方法において、非電気的事項を考慮して、前記物理的長さを調節する工程をさらに包含し、前記複数の機能ブロックを接続する工程は、該調節された物理的長さと実質的に同じである物理的長さを有するワイヤに接続する工程であることが好ましい。
【００２４】
上記本発明の方法において、前記非電気的事項は、前記電気的に最適な物理的長さのワイヤのルーティング効率、および該ワイヤとの接続パターンのうちの少なくとも１つを含むことが好ましい。
【００２５】
上記本発明の方法において、前記ワイヤに対して電気的に最適である物理的長さを決定する工程は、前記複数の機能ブロックおよび前記ワイヤを備えた、前記プログラム可能論理デバイスをモデル化する工程と、該ワイヤの物理的長さを複数回変更する工程と、該物理的長さの複数回の変更のそれぞれに対して、該物理的長さの複数回の変更のうちの特定の１つを有するワイヤを信号が通過する時間を判定する工程と、該物理的長さの複数回の変更のうちの特定の１つを有するワイヤを該信号が通過する複数の時間のそれぞれに対して、該それぞれの時間を該信号が１単位の長さを通過する時間に変換する工程と、該信号が１単位の長さを通過する複数の時間から、１単位の長さを通過するための最小時間である、該信号が１単位の長さを通過するための複数の時間のうちの特定の１つを選択する工程とを包含することが好ましい。
【００２６】
上記本発明の方法において、前記複数の機能ブロックの各々は、論理アレイブロック、メモリブロック、入力／出力ブロック、または積算−累積ブロックであることが好ましい。
【００２７】
また、２次元ルーティングアーキテクチャは、プログラム可能論理デバイス内で、複数の機能ブロックを相互接続する２次元ルーティングアーキテクチャであって、第１の論理的長さ、および物理的長さを有する複数のワイヤの第１のサブセットと、第２の論理的長さ、および該複数のワイヤの第１のサブセットの物理的長さと実質的に同じである物理的長さを有する該複数のワイヤの第２のサブセットとを含み、該第１の論理的長さは該第２の論理的長さと異なるものである。
【００２８】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記複数のワイヤの第１のサブセットの物理的長さは、電気的に最適な物理的長さと実質的に同じであるか、または非電気的事項を考慮して、該電気的に最適な物理的長さに調節を加えた長さであることが好ましい。
【００２９】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記非電気的事項は、前記電気的に最適な物理的長さのワイヤのルーティング効率、および該ワイヤとの接続パターンのうちの少なくとも１つを含むことが好ましい。
【００３０】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記複数のワイヤの前記第１のサブセットは第１の方向に向けられ、該複数のワイヤの前記第２のサブセットは第２の方向に向けられることが好ましい。
【００３１】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記第１の方向に向けられ、かつ前記第１の論理的長さよりも短い第３の論理的長さを有する前記複数のワイヤの第３のサブセットと、前記第２の方向に向けられ、かつ該第３の論理的長さを有する該複数のワイヤの第４のサブセットと、該第１の方向に向けられ、かつ該第３の論理的長さよりも短い第４の論理的長さを有する該複数のワイヤの第５のサブセットと、該第２の方向に向けられ、かつ該第４の論理的長さを有する該複数のワイヤの第６のサブセットとをさらに有し、該複数のワイヤの該第３のサブセットの物理的長さは、該複数のワイヤの該第４のサブセットの物理的長さと異なり、該複数のワイヤの該第５のサブセットの物理的長さは、該複数のワイヤの該第６のサブセットの物理的長さと異なることが好ましい。
【００３２】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記第１の方向は前記第２の方向と直交することが好ましい。
【００３３】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記第１の方向は水平方向であり、前記第２の方向は垂直方向であり、前記第１の論理的長さは２４の機能ブロックであり、前記第２の論理的長さは１６の機能ブロックであり、前記第３の論理的長さは８つの機能ブロックであり、前記第４の論理的長さは４つの機能ブロックであることが好ましい。
【００３４】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記複数のワイヤの第１のワイヤであって、スタガー方向に向けられ、第１の開始点、第１の終了点、およびスタガー論理的長さを有する、第１のワイヤと、該複数のワイヤの第２のワイヤであって、該スタガー方向に向けられ、第２の開始点、第２の終了点、および該スタガー論理的長さを有する、前記複数のワイヤの第１のワイヤを有する、第２のワイヤとを有し、該スタガー方向が水平方向である場合、該第１の開始点は該第２の開始点と位置ずれし、該第１の終了点は、機能ブロックのアレイの複数の機能ブロックの列の定数分だけ、該第２の終了点から位置ずれし、または該スタガー方向が垂直方向である場合、該第１の開始点は該第２の開始点から位置ずれし，該第１の終了点は、該機能ブロックのアレイの複数の機能ブロックの行の定数分だけ、該第２の終了点から位置ずれすることが好ましい。
【００３５】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記定数は０、１、および２のうちのいずれか１つであることが好ましい。
【００３６】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記第１の方向は水平方向であり、前記複数のワイヤの前記第１のサブセット、該複数のワイヤの前記第３のサブセット、および該複数のワイヤの前記第５のサブセットのうちの特定の１つの第１のワイヤであって、第１の開始点を有する、第１のワイヤと、出力を有する第１のドライバであって、該出力は、該第１の開始点で該第１のワイヤに結合され、該第１のワイヤの第１の信号を右側へと駆動する、第１のドライバと、該複数のワイヤの該第１のサブセット、該複数のワイヤの該第３のサブセット、および該複数のワイヤの該第５のサブセットのうちの特定の１つの第２のワイヤであって、第２の開始点を有する、第２のワイヤと、出力を有する第２のドライバであって、該出力は、該第２の開始点で該第２のワイヤに結合され、該第２のワイヤの第２の信号を左側へと駆動する、第２のドライバとを有することが好ましい。
【００３７】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記第２の方向は垂直方向であり、前記複数のワイヤの前記第２のサブセット、該複数のワイヤの前記第４のサブセット、および該複数のワイヤの前記第６のサブセットのうちの特定の１つの第１のワイヤであって、第１の開始点を有する、第１のワイヤと、出力を有する第１のドライバであって、該出力は、該第１の開始点で該第１のワイヤに結合され、該第１のワイヤの第１の信号を上方向へと駆動する、第１のドライバと、該複数のワイヤの該第２のサブセット、該複数のワイヤの該第４のサブセット、および該複数のワイヤの該第６のサブセットのうちの特定の１つの第２のワイヤであって、第２の開始点を有する、第２のワイヤと、出力を有する第２のドライバであって、該出力は，該第２の開始点で該第２のワイヤに結合され、該第２のワイヤの第２の信号を下方向へと駆動する、第２のドライバとを有することが好ましい。
【００３８】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記複数のワイヤの第１のワイヤであって、ステッチング方向に向けられ、信号フロー方向、ステッチング論理的長さ、第１の開始点、および該第１の開始点から該信号フロー方向に該ステッチング論理的長さ離れた第１の終了点を有する、第１のワイヤと、該複数のワイヤの第２のワイヤであって、該ステッチング方向に向けられ、該信号フロー方向、該ステッチング論理的長さ、第２の開始点、および該第２の開始点から該信号フロー方向に該ステッチング論理的長さ離れた第２の終了点を有する、第２のワイヤと、入力および出力を有するドライバであって、該入力は、該第１の開始点から該第１の終了点までの範囲内の位置で、該複数のワイヤの該第１のワイヤに結合され、該出力は、該第２の開始点で該複数のワイヤの該第２のワイヤに結合され、該複数のワイヤの該第２のワイヤの該信号を、該信号フロー方向で該第２の開始点から該第２の終了点へと駆動する、ドライバとを有することが好ましい。
【００３９】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記第２のドライバの入力は、前記第１の終了点で、前記複数のワイヤのうちの第１のワイヤに結合されることが好ましい。
【００４０】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記第１の方向に向けられた前記複数のワイヤの前記第５のサブセットの第１のワイヤは、該第１の方向に向けられた該複数のワイヤの前記第１のサブセットの第１のワイヤ、前記第２の方向に向けられた該複数のワイヤの前記第２のサブセットの第１のワイヤ、該第２の方向に向けられた該複数のワイヤの前記第６のサブセットの第１のワイヤ、および該複数のワイヤの該第５のサブセットの該第１のワイヤが延びる前記複数の機能ブロックのうちの特定の機能ブロックのうちの少なくとも１つに結合され、該第１の方向に向けられた該複数のワイヤの前記第３のサブセットの第１のワイヤは、該第２の方向に向けられた該複数のワイヤの前記第４のサブセットの第１のワイヤ、および該複数のワイヤの該第３のサブセットの該第１のワイヤが延びる該複数の機能ブロックのうちの特定の機能ブロックのうちの少なくとも１つに結合され、該第１の方向に向けられた該複数のワイヤの該第１のサブセットの第２のワイヤは、該第１の方向に向けられた該複数のワイヤの該第５のサブセットの第２のワイヤ、該第２の方向に向けられた該複数のワイヤの該第２のサブセットの第２のワイヤ、および該第２の方向に向けられた該複数のワイヤの該第６のサブセットの第２のワイヤのうちの少なくとも１つに結合され、該第２の方向に向けられた該複数のワイヤの該第６のサブセットの第３のワイヤは、該第１の方向に向けられた該複数のワイヤの該第１のサブセットの第３のワイヤ、該第１の方向に向けられた該複数のワイヤの該第５のサブセットの第３のワイヤ、該第２の方向に向けられた該複数のワイヤの該第２のサブセットの第３のワイヤ、および該複数のワイヤの該第６のサブセットの該第３のワイヤが延びる該複数の機能ブロックのうちの特定の機能ブロックのうちの少なくとも１つに結合され、該第２の方向に向けられた該複数のワイヤの該第４のサブセットの第２のワイヤは、該第１の方向に向けられた該複数のワイヤの該第３のサブセットの第２のワイヤ、および該複数のワイヤの該第４のサブセットの該第２のワイヤが延びる該複数の機能ブロックのうちの特定の機能ブロックのうちの少なくとも１つに結合され、該第２の方向に向けられた該複数のワイヤの該第２のサブセットの第４のワイヤは、該第１の方向に向けられた該複数のワイヤの該第１のサブセットの第４のワイヤ、該第１の方向に向けられた該複数のワイヤの該第５のサブセットの第４のワイヤ、該第２の方向に向けられた該複数のワイヤの該第６のサブセットの第４のワイヤ、および該複数のワイヤの該第２のサブセットの該第４のワイヤが延びる該複数の機能ブロックのうちの特定の機能ブロックのうちの少なくとも１つに結合されることが好ましい。
【００４１】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記２次元ルーティングアーキテクチャは、機能ブロックの複数の行および複数の列を含み、第１のドライバであって、該機能ブロックの複数の列の第１の列に対応し、かつ少なくとも１つの入力、および出力を有し、該少なくとも１つの入力は、前記複数のワイヤの前記第１のサブセットの第１のワイヤ、該複数のワイヤの前記第２のサブセットの第１のワイヤ、該複数のワイヤの前記第６のサブセットの第１のワイヤ、該機能ブロックの複数の列の該第１の列の出力、該機能ブロックの複数の列の該第１の列に隣接する、該機能ブロックの複数の列の第２の列の出力のうちの少なくとも１つに結合され、該第１のドライバの該出力は、該複数のワイヤの前記第５のサブセットの第１のワイヤに結合される、第１のドライバと、第２のドライバであって、該機能ブロックの複数の列の第３の列に対応し、かつ少なくとも１つの入力、および出力を有し、該少なくとも１つの入力は、該複数のワイヤの前記第４のサブセットの第１のワイヤ、該機能ブロックの複数の列の該第３の列の出力、および該機能ブロックの複数の列の該第３の列と隣接する、該機能ブロックの複数の列の第４の列の出力のうちの少なくとも１つに結合され、該第２のドライバの該出力は、該複数のワイヤの前記第３のサブセットの第１のワイヤに結合される、第２のドライバと、第３のドライバであって、少なくとも１つの入力、および出力を有し、該少なくとも１つの入力は、該複数のワイヤの前記第５のサブセットの第２のワイヤ、該複数のワイヤの該第２のサブセットの第２のワイヤ、および該複数のワイヤの該第６のサブセットの第２のワイヤのうちの少なくとも１つに結合され、該第３のドライバの該出力は、該複数のワイヤの該第１のサブセットの第２のワイヤに結合される、第３のドライバと、第４のドライバであって、該機能ブロックの複数の行の第１の行に対応し、かつ少なくとも１つの入力、および出力を有し、該少なくとも１つの入力は、該複数のワイヤの該第１のサブセットの第３のワイヤ、該複数のワイヤの該第５のサブセットの第３のワイヤ、該複数のワイヤの該第２のサブセットの第３のワイヤ、該機能ブロックの複数の行の該第１の行の出力、および該機能ブロックの複数の行の該第１の行と隣接する、該機能ブロックの複数の行の第２の行の出力のうちの少なくとも１つに結合され、該第４のドライバの該出力は、該複数のワイヤの該第６のサブセットの第３のワイヤに結合される、第４のドライバと、第５のドライバであって、該機能ブロックの複数の行の第３の行に対応し、かつ少なくとも１つの入力、および出力を有し、該少なくとも１つの入力は、該複数のワイヤの該第３のサブセットの第２のワイヤ、該機能ブロックの複数の行の該第３の行の出力、および該機能ブロックの複数の行の該第３の行と隣接する、該機能ブロックの複数の行の第４の行の出力のうちの少なくとも１つに結合され、該第５のドライバの該出力は、該複数のワイヤの該第４のサブセットの第２のワイヤに結合される、第５のドライバと、第６のドライバであって、少なくとも１つの入力、および出力を有し、該少なくとも１つの入力は、該複数のワイヤの該第１のサブセットの第４のワイヤ、該複数のワイヤの該第５のサブセットの第４のワイヤ、および該複数のワイヤの該第６のサブセットの第４のワイヤのうちの少なくとも１つに結合され、該第６のドライバの該出力は、該複数のワイヤの該第２のサブセットの第４のワイヤに結合される、第６のドライバとを有することが好ましい。
【００４２】
上記本発明の２次元ルーティングアーキテクチャにおいて、前記複数のワイヤの前記第１のサブセットは、該複数のワイヤの前記第３のサブセットよりも広範であり、該複数のワイヤの該第３のサブセットは、該複数のワイヤの前記第５のサブセットよりも広範であり、該複数のワイヤの前記第２のサブセットは、該複数のワイヤの前記第４のサブセットよりも広範であり、前記複数のワイヤの該第４のサブセットは、該複数のワイヤの前記第６のサブセットよりも広範であることが好ましい。
【００４３】
本発明の実施形態に従って、マルチプル機能ブロックを相互接続するルーティングアーキテクチャが説明される。ルーティングアーキテクチャは、マルチプルワイヤを含み、マルチプルワイヤの第１のサブセットは、第１の方向および第２の方向に向けられ、第１のロジック長を有する。マルチプルワイヤの第２のサブセットは、他の第１の方向および第２の方向に向けられ、異なるロジック長を有する。マルチプルワイヤの第１および第２のサブセットは、それぞれの、互いに対応する第１の方向および第２の方向に向けられる。
【００４４】
【発明の実施の形態】
ＰＬＤ内の機能ブロック（例えば、ＬＡＢ、メモリブロック、入力／出力ブロック、または多重蓄積ブロック（「ＭＡＣ」））の物理的な寸法は、機能ブロックが異なる高さおよび幅を有するようなものであり得る。例えば、機能ブロックは、幅１００ミクロンおよび高さ２００ミクロンであり得る。二次元アレイ内の機能ブロックは、水平ワイヤおよび垂直ワイヤならびにドライバを用いて、信号の送信および受信を行う。以下の記載において、ドライバについて言及する場合、この用語は、ワイヤと、ワイヤを駆動する１つ以上のドライバとを含む。水平ワイヤおよび垂直ワイヤは、それぞれ、水平チャネルおよび垂直チャネルに属する。機能ブロックの高さおよび幅が異なる場合において、水平ワイヤおよび垂直ワイヤが、同じ固定された数の機能ブロックを横切る場合、水平ワイヤおよび垂直ワイヤの長さが異なるため、水平ワイヤまたは垂直ワイヤのいずれかの少なくとも１つが、電気的に最適ではない。両方のワイヤについて電気的な最適化を達成するため、ワイヤの電気的に最適な物理長は、ワイヤを可能な限り速くするように決定される。水平ワイヤおよび垂直ワイヤの両方が、この電気的に最適な物理長を有するか、または、この電気的に最適な物理長に近い。２本のワイヤは、同じ物理長を有するが、機能ブロックの高さおよび幅が異なるため、非対称のロジック長、すなわち、異なるロジック長を有する。具体的な例として、残りの文書において、ＬＡＢが採用されているが、この実施形態は、他のタイプの機能ブロックの使用も含む。また、接続について以下に記載する場合、その接続には、スタティックランダムアクセスメモリ、ダイナミックランダムアクセスメモリ、電気的消去可能プログラマブル読み出し専用メモリ、フラッシュ、ヒューズ、およびアンチヒューズプログラマブル接続のようなプログラマブル接続が含まれる。また、プログラマブル接続は、デバイスの製造中、マスクプログラムを介して実現され得る。マスクプログラムは、上記のフィールドプログラマブルオプションという欠点を有するが、ある特定の高容量用途においては有用であり得る。
【００４５】
本明細書中に記載される物理的な長さは、測定されたワイヤの長さであり、例えばミクロンで表される。本明細書中に記載されるワイヤのロジック長は、ワイヤがわたっている機能ブロック（例えば、ＬＡＢ）の数である。ワイヤのロジック長は、ワイヤの物理長をＬＡＢの高さまたは幅で割ることによって、計算され得る。例えば、ＬＡＢの幅が１００ミクロンであり、高さが２００ミクロンであり、電気的に最適な物理長が１０００ミクロンであるとすると、水平ワイヤの論理長は、１０個のＬＡＢ（１０００ミクロン／１００ミクロン）に等しく、垂直ワイヤの論理長は、５個のＬＡＢ（１０００ミクロン／２００ミクロン）に等しい。ワイヤによって接続されるＬＡＢは、全てが、同じ高さまたは同じ幅でなくてもよい（例えば、ワイヤによって接続される第１のＬＡＢは、２００ミクロンの高さであり得、ワイヤによって接続される第２のＬＡＢは、１８０ミクロンの高さであり得る）。この場合、ワイヤによって接続されたＬＡＢの平均の高さまたは平均の幅が用いられて、ロジック長が計算される。
【００４６】
図１に、本発明による、ＰＬＤ１００内の電気的に最適化された水平ワイヤおよび垂直ワイヤの一実施形態の一例を示す。この例において、ＰＬＤ１００内のＬＡＢのそれぞれは、幅が１００ミクロンであり、高さが２００ミクロンである。ＬＡＢは、他の寸法であってもよい。ワイヤの電気的な特性、ＰＬＤ１００内のロジックデバイス、およびＰＬＤ１００のレイアウトを考慮して、ワイヤの電気的に最適な物理長が決定される。この例において、電気的に最適な物理長は、１０００ミクロンになると予測される。この予測された電気的に最適な物理長を考慮して、ワイヤのうちの１本が、この予測された電気的に最適な物理長になるように設定され、他方のワイヤは、電気的に最適な物理長に実質的に近い。この例において、垂直方向に向けられたワイヤ１４０は、物理長が１０００ミクロンであり、水平方向に向けられたワイヤ１４２は、物理長が実質的に１０００ミクロンに近い。ＬＡＢの幅が１００ミクロンであるので、ワイヤ１４２は、１０個のＬＡＢのロジック長を有する。すなわち、ワイヤ１４２は、ＬＡＢ１１０〜１１９にわたり、これらの１０個のＬＡＢに及ぶ距離にわたって通信を可能にする。ＬＡＢの高さが、２００ミクロンであるので、ワイヤ１４０は、５個のＬＡＢのロジック長を有する。すなわち、ワイヤ１４０は、ＬＡＢ１３０〜１３４にわたる。この実施形態において、１本のワイヤの物理長は、電気的に最適な物理長であり、他方のワイヤの物理長は、電気的に最適な物理長に実質的に近い物理長である。各ワイヤのロジック長は、そのワイヤの方向の機能（ｆｕｎｃｔｉｏｎ）（例えば、ワイヤが水平方向に向けられているか、垂直方向に向けられているかなど）である。ワイヤの物理長は、以下に記載する、非電気的な要件に依存して、ほぼ電気的に最適な物理長になるように調節され得る。
【００４７】
他の構成において、２本のワイヤは、対角方向に向けられる。この構成においては、一本のワイヤは、斜めに右上に向けられ、他方のワイヤは、斜めに左上に向けられる。斜めに向けられたワイヤのそれぞれは、電気的に最適な物理長と実質的に近い物理長を有する。さらに別の構成において、それぞれ異なる方向に向けられた２本以上のワイヤが用いられ得る。例えば、第１のワイヤは、垂直方向に向けられ、第２のワイヤは、水平方向に向けられ、第３のワイヤは、斜めに右上に向けられ、第４のワイヤは、斜めに左上に向けられ得る。これらの４本のワイヤのそれぞれは、電気的に最適な物理長と実質的に近い物理長を有する。
【００４８】
他の実施形態において、１つの方向に向けられた第１のワイヤ、および異なる方向に向けられた第２のワイヤは、実質的に同じ物理長を有するが、異なるロジック長を有する。さらに別の実施形態において、異なる方向に向けられた２対のワイヤが、ルーティングアーキテクチャに含まれる。第１の対は、対応する第２の方向に向けられた第２のワイヤと同じロジック長を有する、第１の方向に向けられた第１のワイヤを有する。第２の対は、第１の対のロジック長より長いロジック長を有し、第２の対の第１の方向に向けられた第１のワイヤのロジック長は、第２の対の第２の方向に向けられた第２にワイヤのロジック長とは異なる。他の実施形態において、第１のワイヤと第２のワイヤとは、同じロジック長を有するが、物理長が異なる。
【００４９】
図２に、本発明による、電気的に最適なワイヤを用いて、ＰＬＤ内のＬＡＢを相互接続する手順の実施形態のフローチャートを示す。ブロック３２０において、ワイヤについて電気的に最適な物理長が、決定される。電気的に最適な物理長を決定する手順を図３に示す。ブロック３２５において、決定された物理長は、非電気的な最適化要件を考慮に入れる用に調節される。ワイヤ長を調節するときのこれらの要件には、以下のものが含まれる。第１に、電気的に最適な物理長を有するワイヤが用いられる場合のルーティングの効率である。例えば、電気的に最適な物理長が２０個のＬＡＢをわたると決定されるが、平均的な接続の長さが５個のＬＡＢである場合、調節が行われる。例えば、ワイヤの物理長に、決定された、２０個のＬＡＢをわたる電気的に最適な物理長を採用するのではなく、１６個のＬＡＢをわたるように調節される。トレードオフが行われ、ワイヤの物理長に、決定された電気的に最適な物理長だけでなく、平均の接続長が反映される。第２に、ワイヤへの接続のパターンも、非電気的な最適化の要件である。例えば、電気的に最適な物理長が、１９個のＬＡＢにわたるが、ワイヤへの接続が、４個のＬＡＢにつき１個である場合、バイアの数を低減するため、ワイヤ物理長が４個のＬＡＢのうち複数にわたるように調節される。ブロック３３０において、多機能ブロックは、物理長が調節されたワイヤを用いて、相互接続される。
【００５０】
図３に、ワイヤについて電気的に最適な物理長を決定する工程、すなわち、図２のブロック３２０を詳しく示すフローチャートを示す。ブロック４１０において、ＰＬＤ回路は、Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｃａｌｉｆｏｒｎｉａ，ＢｅｒｋｅｌｅｙのＥｌｅｃｔｒｏｎｉｃｓ  Ｒｅｓｅａｒｃｈ  Ｌａｂｏｒａｔｏｒｙで開発された集積回路強調用シミュレーションプログラム（「ＳＰＩＣＥ」）のようなコンピュータプログラムを用いてモデリングされる。ブロック４１５において、最適化されるＰＬＤ内のワイヤの物理長は、複数の時間に変動され得る。このワイヤの幅は、より幅が広いワイヤではコストがより高いこと、およびＰＬＤ内での利用可能な空間などの要因によって制約される。ブロック４２０において、ワイヤのばらつきのそれぞれについて、信号が、このような長さのばらつきを有するワイヤを横断するために費やされる時間が決定される。ブロック４２５において、信号が、特定の物理長を有するワイヤを横断する、決定された時間のそれぞれについて、この決定された時間が、信号が１単位の長さを横断する時間に変換される。工程４３０において、信号が１単位の長さを横断する複数の時間から、最も短い特定の時間が選択される。この手順の例として、まず、ＰＬＤ回路が、ＳＰＩＣＥシミュレータを用いて、モデリングされたとする。ＰＬＤにおいて用いられるワイヤ長が、１，０００ミクロンになるように設定される場合、例えば、シミュレータが、そのワイヤ長を横断するために１００ピコ秒の遅延が費やされると予測するとする。ＰＬＤ内のワイヤ長が、２，０００ミクロンに設定される場合、シミュレータが遅延が１５０ピコ秒と予測するとする。最終的に、ＰＬＤ内のワイヤ長が３，０００ミクロンに設定される場合、例えば、シミュレータが、遅延が４００ピコ秒であると予測するとする。これらの値を考慮すると、１，０００ミクロンのワイヤ長は、１メートルを横断するために１００ナノ秒を費やし、２，０００ミクロンのワイヤ長は、１メートルを横断するために７５ナノ秒を費やし、３，０００ミクロンのワイヤ長は、１メートルを横断するために１３３ナノ秒を費やす。２０００ミクロンのワイヤ長が、１メートルを横断するために最短の時間を費やすので、電気的に最適な物理長は、２０００ミクロンに設定される。用いられる実際のワイヤの長さは、電気的に最適な物理長を、非電気的要件を考慮して調節したものであり得る。
【００５１】
図４に、本発明による、ルーティングアーキテクチャ４４８の実施形態を示す。ルーティングアーキテクチャ４４８は、機能ブロック（例えば、ＬＡＢ４７０〜４８５、メモリブロック４８６〜４８９、およびＭＡＣ４９０〜４９３）行および列を含むアレイである。アレイの列は、水平ライン（「Ｈ−ライン」）４６０〜４６３と接続され、アレイの行は、垂直ライン（「Ｖ−ライン」）４５０〜４５５と接続されている。
【００５２】
Ｈ−ラインのタイプには、４つの機能ブロックにわたる（すなわち、４つの機能ブロックのロジック長を有する）Ｈ４ラインと、８つの機能ブロックにわたるＨ８ラインと、２４個の機能ブロックにわたるＨ２４ラインとが含まれる。Ｖ−ラインのタイプには、４つの機能ブロックにわたるＶ４ラインと、８つの機能ブロックにわたるＶ８ラインと、１６個の機能ブロックにわたるＶ１６ラインとが含まれる。この実施形態において、機能ブロックは、各機能ブロックの左側、上側、および右側からＨ−ラインおよびＶ−ラインにアクセスする。また、Ｈ２４ラインおよびＶ１６ラインは、電気的に最適な物理長、または、非電気的な要件を考慮に入れて調節を加えた電気的に最適な物理長を有する。Ｈ２４ラインおよびＶ１６ラインが実質的に同じ物理長であっても、ロジック長は、異なる。Ｈ−ラインおよびＶ−ラインは、千鳥配列され得る。すなわち、各ラインの開始点と終了点がいくつかの機能ブロックによってオフセットになり得る。Ｈ−ラインの一部は信号を右に駆動し、Ｈ−ラインの一部は、信号を左に駆動する。同様に、Ｖ−ラインの一部は、信号をチップの上端に向かって上向きに駆動し、Ｖ−ラインの一部は、信号をチップの下端に向かって下向きに駆動する。他の実施形態において、Ｈ−ラインおよびＶ−ラインの一部または全ては、双方向性である。双方向性ワイヤは、少なくとも１つのドライバを用いて、信号をワイヤを介して２つの異なる方向に駆動する。
【００５３】
図５に、本発明による、Ｈ４ラインの実施形態を示す。５つのＬＡＢの列を含む二次元アレイの行が示されている。この実施形態において、Ｈ４ラインは、４つの機能ブロックに及ぶ距離にわたる、水平の一方向通信を可能にする。Ｈ４ライン５４１は、ＬＡＢ５２１（すなわち、Ｃｏｌ．Ｎ）に開始点を有し、ＬＡＢ５２５（すなわち、Ｃｏｌ．Ｎ＋４）に終了点を有する。Ｈ４ライン５４１は、ＬＡＢ５２２〜５２５に接続され得る。マルチプレクサ５３７は、入力のうちの１つを、マルチプレクサ５３７の出力として選択し、この出力は、ドライバ５３９によって、Ｈ４ライン５４１上に駆動される。Ｈ４ライン５４１は、開始点で、１度駆動されるので、一方向ラインである。図５において、Ｈ４ライン５４１は、ＬＡＢ５２１での開始点からＬＡＢ５２５での終了点まで右に駆動される。他の実施形態において、Ｈ４ラインは、左に駆動されてもよいし、各ラインが双方向ラインであってもよい。Ｈ４ラインは、交差する機能ブロック毎に、Ｖ４ラインの上流および下流に接続され得る。また、Ｈ４ラインは、Ｈ２４ライン、Ｖ１６ライン、およびＶ４ラインに接続され得る。図５において、Ｈ４ライン５４１は、Ｖ４ライン５５８〜５６１に接続される。
【００５４】
最適スティッチ５２９は、Ｈ４ライン５４１の終了点（すなわち、Ｃｏｌ．（Ｎ＋４））でのＨ４ライン５５１への接続であり、Ｈ４ライン５４１上を搬送される信号が次の４つのＬＡＢまで届くように延長している。図５において、Ｈ４ライン５４１およびＨ４ライン５５１の信号の流れの方向は、右側に向かっている。最適スティッチ５２９について、Ｈ４ライン５４１は、マルチプレクサ５５３の入力に接続されている。ドライバ５５５は、マルチプレクサ５５３の出力を、Ｈ４ライン５５１上で駆動する。マルチプレクサ５５３およびドライバ５５５を用いることによって、Ｈ４ライン５４１上の信号も、Ｈ４ライン５５１がわたっている４つのＬＡＢに達し得る。次善（ｓｕｂ−ｏｐｔｉｍａｌ）スティッチが、Ｈ４ライン５４１の終了点に達する前の他のＨ４ラインへの接続である。すなわち、次善スティッチを用いることによって、他のＨ４ラインへの接続が、ＬＡＢ５２２〜５２４のいずれかで起こり得る。次善スティッチ５２７は、ＬＡＢ５２４で、マルチプレクサ５４３およびドライバ５４５を含む。マルチプレクサ５４３の入力のうちの１つが、Ｈ４ライン５４１に結合されている。マルチプレクサ５４３の出力は、ドライバ５４５に送信され、ドライバ５４５は、出力をＨ４ライン５４９上に駆動する。次善スティッチ５２７は、Ｈ４ライン５４１上で搬送される信号が、Ｈ４ライン５４９がわたっているＬＡＢまで達するように延長される。
【００５５】
Ｈ４ライン５４１は、ＬＡＢ出力、他のＨ４ライン、Ｈ２４ライン、Ｖ１６ライン、またはＶ４ラインによって駆動され得る。図５において、マルチプレクサ５３７の入力は、Ｈ２４ライン、他のＨ４ライン、Ｈ４ライン５３１、ＬＡＢ５２１からの出力、隣接するＬＡＢ５２２からの出力に結合される。ＬＡＢ出力は、ドライバが対応しているＬＡＢ、または隣接するＬＡＢのいずれから来てもよい。隣接するＬＡＢは、右に駆動するＨ４ラインについてドライバが対応するＬＡＢの右側のＬＡＢであり、左に駆動するＨ４ラインについてドライバが対応するＬＡＢの左側のＬＡＢである。
【００５６】
図６に、本発明による、千鳥配列されたＨ４ラインの実施形態を示す。Ｈ４ライン５１１は、開始点５１０と、機能ブロックの４列分離れた終了点５１２とを有する（すなわち、Ｈ４ライン５１１は、ＬＡＢの列５０６〜５０９にわたっている）。Ｈ４ライン５１５は、開始点５１４と、機能ブロックの４列分離れた終了点５１６とを有する（すなわち、Ｈ４ライン５１５は、ＬＡＢの列５０５〜５０８にわたっている）。Ｈ４ライン５１１は、開始点５１０におけるドライバによって駆動され、Ｈ４ライン５１５は、開始点５１４におけるドライバによって駆動される。１つ以上の機能ブロックによる、各ラインの開始点および終了点のオフセットは、千鳥配列と呼ばれる。図６において、開始点５１４は、開始点５１０からの１つのＬＡＢ列（すなわち、列５０９）によってオフセットされ、終了点５１６は、終了点５１２からの１つのＬＡＢ列（すなわち、列５０５）によってオフセットされる。
【００５７】
図７に、本発明による、Ｈ８ラインの実施形態を示す。９列のＬＡＢを含む、二次元アレイの行が示されている。この実施形態において、Ｈ８ラインは、８つの機能ブロックに及ぶ距離にわたる、水平の一方向通信を可能にする。Ｈ４ラインについて上述したように、Ｈ８ラインも、各ラインの開始点および終了点が機能ブロック１つ以上によってオフセットされるように、同様に千鳥配列され得る。Ｈ８ライン６１９は、ＬＡＢ６０５（すなわち、Ｃｏｌ．Ｎ）に開始点を有し、ＬＡＢ６１３（すなわち、Ｃｏｌ．Ｎ＋８）に終了点を有する。Ｈ８ライン６１９は、ＬＡＢ６０５〜６１３に直接接続され得る。マルチプレクサ６１５は、入力のうちの１つを、マルチプレクサ６１５の出力として選択し、この出力は、ドライバ６１７によって、Ｈ８ライン６１９上に駆動される。Ｈ８ライン６１９は、開始点で、１度駆動されるので、一方向ラインである。図７において、Ｈ８ライン６１９は、ＬＡＢ６０５での開始点からＬＡＢ６１３での終了点まで右に駆動される。他の実施形態において、Ｈ８ラインは、左に駆動されてもよいし、双方向ラインであってもよい。Ｈ８ラインは、交差する機能ブロック毎に、Ｖ８ラインの上流および下流に接続され得る。図７において、Ｈ８ライン６１９は、Ｖ８ライン６４１〜６４８に接続される。
【００５８】
最適スティッチ６２９は、Ｈ８ライン６１９の終了点でのＨ８ライン６３５への接続であり、Ｈ８ライン６１９上を搬送される信号が次の８つのＬＡＢまで届くように延長している。最適スティッチ６２９について、Ｈ８ライン６１９は、マルチプレクサ６３１の入力に接続されている。ドライバ６３３は、マルチプレクサ６３１の出力を、Ｈ８ライン６３５上で駆動する。マルチプレクサ６３１およびドライバ６３３を用いることによって、Ｈ８ライン６１９上の信号も、Ｈ８ライン６３５がわたっている８つのＬＡＢに達し得る。次善スティッチが、Ｈ８ライン６１９の終了点に達する前の他のＨ８ラインへの接続である。すなわち、次善スティッチを用いることによって、他のＨ８ラインへの接続が、ＬＡＢ６０６〜６１２のいずれかで起こる。次善スティッチ６２１は、ＬＡＢ６１２で、マルチプレクサ６２３およびドライバ６２５を含む。マルチプレクサ６２３の入力のうちの１つが、Ｈ８ライン６１９に結合されている。マルチプレクサ６２３の出力は、ドライバ６２５に送信され、ドライバ６２５は、出力をＨ８ライン６２７上に駆動する。次善スティッチ６２１は、Ｈ８ライン６１９上で搬送される信号が、Ｈ８ライン６２７がわたっているＬＡＢまで達するように延長される。
【００５９】
Ｈ８ライン６１９は、ＬＡＢ出力、またはＶ８ラインによって駆動され得る。図７において、マルチプレクサ６１５の入力は、Ｈ８ライン６０３、他のＨ８ライン、Ｖ８ライン６４１、ＬＡＢ６０５からの出力、隣接するＬＡＢ６０６からの出力に結合される。ＬＡＢ出力は、ドライバが対応しているＬＡＢ、または隣接するＬＡＢのいずれから来てもよい。隣接するＬＡＢは、右に駆動するＨ８ラインについてドライバが対応するＬＡＢの右側のＬＡＢであり、左に駆動するＨ８ラインについてドライバが対応するＬＡＢの左側のＬＡＢである。
【００６０】
この実施形態において、Ｈ８ラインは、Ｈ４ラインよりも長く、信号は、Ｈ８ライン上を、Ｈ４ライン上よりも速く移動する。Ｈ８ラインは、チップレイアウトにおいて、Ｈ４ラインと比較して２倍の幅および空間を有する。
【００６１】
図８に、本発明による、Ｈ２４ラインの実施形態を示す。２５列のＬＡＢを含む二次元アレイの行が示されている。この実施形態において、Ｈ２４ラインは、電気的に最適な物理長、または、非電気的な要件を考慮に入れて調節された電気的に最適な物理長を有する。Ｈ２４ラインは、２４個の機能ブロックに及ぶ距離にわたる、水平の一方向通信を可能にする。Ｈ２４ラインは、二重に千鳥配列される。すなわち、Ｈ２４ラインは、Ｈ４ラインおよびＨ８ラインの千鳥配列のように１つの機能ブロックによってオフセットされるのではなく、互いに２つの機能ブロックによってオフセットされる。他の実施形態において、ラインは、０、１、または２より多い機能ブロックによってオフセットされる。図８において、Ｈ２４ライン６５２は、ＬＡＢ＃１に開始点を有し、ＬＡＢ＃２５に終了点を有する。マルチプレクサ６５４は、入力のうちの１つを、マルチプレクサ６５４の出力として選択し、この出力は、ドライバ６５６によって、Ｈ２４ライン６５６上に駆動される。Ｈ２４ライン６５２は、開始点で、１度駆動されるので、一方向ラインである。図８において、Ｈ２４ライン６５２は、ＬＡＢ＃１での開始点からＬＡＢ＃２５での終了点まで右に駆動される。他の実施形態において、Ｈ２４ラインは、左に駆動されてもよいし、双方向ラインであってもよい。
【００６２】
この実施形態において、Ｈ２４ライン６５２は、４つのＬＡＢ毎に、Ｈ４ライン、Ｖ４ライン、およびＶ１６ラインに接続される。図８に示すように、これらのライン（Ｈ４ライン、Ｖ４ライン、およびＶ１６ライン）への接続は、マルチプレクサおよびドライバ６５８〜６７５を用いて行われる。最適スティッチ６８１は、Ｈ２４ライン６５２の終了点（すなわち、Ｃｏｌ．（Ｎ＋４））でのＨ２４ライン６８８へのＨ２４ライン６５２の接続であり、Ｈ２４ライン６５２上を搬送される信号が次の２４個のＬＡＢまで届くように延長している。最適スティッチ６８１について、Ｈ２４ライン６５２は、マルチプレクサ６８４の入力に接続されている。ドライバ６８６は、マルチプレクサ６８４の出力を、Ｈ２４ライン６８８上で駆動する。マルチプレクサ６８４およびドライバ６８６を用いることによって、Ｈ２４ライン６５２上の信号も、Ｈ２４ライン６８８がわたっている２４個のＬＡＢに達し得る。次善スティッチが、Ｈ２４ラインの終了点に達する前の他のＨ２４ラインへの接続である。図８において、次善スティッチ６７８は、マルチプレクサ６８４に入力されたＨ２４ライン６９０が、終了点に達する前のＨ２４ライン６９０から来ていると考えられる場所に示される。マルチプレクサ６８４およびドライバ６８６は、Ｈ２４ライン６９０上でＨ２４ライン６８８へと搬送される信号を駆動し得る。
【００６３】
Ｈ２４ライン６５２は、Ｈ４ライン、Ｖ４ライン、Ｖ１６ライン、およびＨ２４ラインによって駆動され得る。図８において、マルチプレクサ６５４の入力は、Ｈ４ライン、２本のＨ２４ライン、Ｖ４ライン、およびＶ１６ラインに接続される。この実施形態において、Ｈ２４ラインは、機能ブロックに直接接続されない。
【００６４】
この実施形態において、Ｈ２４ラインは、Ｈ８ラインよりも長く、信号は、Ｈ２４ライン上を、Ｈ８ライン上よりも速く移動する。Ｈ２４ラインは、結合された３本のＨ８ラインよりも速く、チップの上部の厚い金属層において、ルーティングされる。Ｈ２４ラインは、部分的には、より厚く、より幅広いラインであり、チップ上で大きな空間を占めることに起因して、より速い。また、Ｈ２４ラインを駆動するために用いられるドライバがより大きいことも、より速いスピードの原因である。
【００６５】
図９に、本発明による、Ｖ４ラインの実施形態を示す。６つのＬＡＢの行を含む二次元アレイの列が示されている。この実施形態において、Ｖ４ラインは、４つの機能ブロックに及ぶ距離にわたる、垂直の一方向通信を可能にする。Ｖ４ライン７５０は、行（Ｎ＋５）に開始点を有し、行（Ｎ＋１）に終了点を有する。Ｖ４ライン７５０は、ＬＡＢ７３５〜７４２に接続され得る。マルチプレクサ７５９は、入力のうちの１つを、マルチプレクサ７５９の出力として選択し、この出力は、ドライバ７６１によって、Ｖ４ライン７５０上に駆動される。Ｖ４ライン７５０は、開始点で、１度駆動されるので、一方向ラインである。図９において、Ｖ４ライン７５０は、行（Ｎ＋５）での開始点から行（Ｎ＋１）での終了点までチップの上端に向かって駆動される。他の実施形態において、Ｖ４ラインは、チップの下端に向かって下流に駆動されてもよいし、双方向ラインであってもよい。
【００６６】
Ｖ４ライン７５０は、交差する機能ブロック毎に、Ｈ４ラインに接続され得る。図９において、Ｖ４ライン７５０は、Ｈ４ライン７２６〜７２９に接続され得る。最適スティッチ７５９は、Ｖ４ライン７５０の終了点でのＶ４ライン７５３への接続であり、Ｖ４ライン７５０上を搬送される信号が次の４つの行まで届くように延長している。最適スティッチ７５９について、Ｖ４ライン７５０は、マルチプレクサ７５５の入力に接続されている。ドライバ７５７は、マルチプレクサ７５５の出力を、Ｖ４ライン７５３上で駆動する。マルチプレクサ７５５およびドライバ７５７を用いることによって、Ｖ４ライン７５０上の信号も、Ｖ４ライン７５３がわたっている４つの行に達し得る。次善スティッチは、Ｖ４ライン７５０の終了点に達する前の他のＶ４ラインへの接続である。すなわち、次善スティッチを用いることによって、他のＶ４ラインへの接続が、行（Ｎ＋４）、（Ｎ＋３）、または（Ｎ＋２）のいずれかで起こり得る。次善スティッチ７４７は、Ｖ４ライン７５０上で搬送される信号が、他のＶ４ラインがわたっている行まで達するように延長される。
【００６７】
Ｖ４ライン７５０は、ＬＡＢ出力、Ｈ４ライン、Ｈ２４ライン、Ｖ１６ライン、またはＶ４ラインによって駆動され得る。図９において、マルチプレクサ７５９の入力は、Ｈ４ライン、Ｖ４ライン、Ｈ４ライン５３１、ＬＡＢ７３３からの出力、隣接するＬＡＢ７３４からの出力に結合される。
【００６８】
この実施形態において、Ｖ４ラインとＨ４ラインとは、同じロジック長を有するが、物理長は異なる。
【００６９】
図１０に、本発明による、千鳥配列されたＶ４ラインの実施形態を示す。Ｖ４ライン７１６は、開始点７１２と、４行分離れた終了点７１４とを有する（すなわち、Ｖ４ライン７１６は、行７０３〜７０６にわたっている）。Ｖ４ライン７２２は、開始点７１８と、４行分離れた終了点７２０とを有する（すなわち、Ｖ４ライン７２２は、行７０４〜７０７にわたっている）。Ｖ４ライン７１６は、開始点７１２におけるドライバによって駆動され、Ｖ４ライン７２２は、開始点７１８におけるドライバによって駆動される。１つ以上の行による、各ラインの開始点および終了点のこのオフセットは、千鳥配列につながり得る。図１０において、開始点７１８は、開始点７１２からの１つの行（すなわち、行７０３）によってオフセットされ、終了点７２０は、終了点７１４からの１つの行（すなわち、行７０７）によってオフセットされる。
【００７０】
図１１に、本発明による、Ｖ８ラインの実施形態を示す。１０個のＬＡＢの行を含む、二次元アレイの列が示されている。この実施形態において、Ｖ８ラインは、８つの機能ブロックに及ぶ距離にわたる、垂直の一方向通信を可能にする。Ｖ４ラインについて上述したように、Ｖ８ラインも、各ラインの開始点および終了点が機能ブロック１つ以上によってオフセットされるように、同様に千鳥配列され得る。Ｖ８ライン８２５は、行（Ｎ＋５）に開始点を有し、行（Ｎ−３）に終了点を有する。Ｖ８ライン８２５は、ＬＡＢ８０５〜８２０に直接接続され得る。マルチプレクサ８４３は、入力のうちの１つを、マルチプレクサ８４３の出力として選択し、この出力は、ドライバ８４６によって、Ｖ８ライン８２５上に駆動される。Ｖ８ライン８２５は、開始点で、１度駆動されるので、一方向ラインである。図１１において、Ｖ８ライン８２５は、行（Ｎ＋５）での開始点から行（Ｎ−３）での終了点までチップの上端に向かって上向きに駆動される。他の実施形態において、Ｖ８ラインは、チップの下端に向かって下向きに駆動されるか、双方向ラインである。Ｖ８ラインは、交差する行毎に、右に駆動するＶ８ラインおよび左に駆動するＶ８ラインに接続され得る。図１１において、Ｈ８ライン８２５は、Ｈ８ライン８５１〜８５８に接続される。
【００７１】
最適スティッチ８３５は、Ｖ８ライン８２５の終了点でのＶ８ライン８２８への接続であり、Ｖ８ライン８２５上を搬送される信号が、Ｖ８ライン８２８がわたっている次の８つのＬＡＢまで届くように延長している。最適スティッチ８３５について、Ｖ８ライン８２５は、マルチプレクサ８３１の入力に接続されている。ドライバ８３４は、マルチプレクサ８３１の出力を、Ｖ８ライン８２８上で駆動する。マルチプレクサ８３１およびドライバ８３４を用いることによって、Ｖ８ライン８２５上の信号も、Ｖ８ライン８２８がわたっている８つのＬＡＢに達し得る。次善スティッチが、Ｖ８ライン８２５の終了点に達する前の他のＶ８ラインへの接続である。すなわち、次善スティッチを用いることによって、Ｖ８ライン８２５から他のＶ８ラインへの接続が、行（Ｎ＋４）から行（Ｎ−２）のいずれかで起こり得る。次善スティッチ８３８は、行（Ｎ−２）で、マルチプレクサ８３７およびドライバ８４０を含む。マルチプレクサ８３７の入力のうちの１つが、Ｖ８ライン８２５に結合されている。マルチプレクサ８３７の出力は、ドライバ８４０に送信され、ドライバ８４０は、出力をＶ８ライン上に駆動する。次善スティッチ８３８は、Ｖ８ライン８２５上で搬送される信号が、Ｖ８ラインがわたっているＬＡＢまで達するように延長される。
【００７２】
Ｖ８ライン８２５は、ＬＡＢ出力、Ｈ８ライン、または他のＶ８ラインによって駆動され得る。図１１において、マルチプレクサ８４３の入力は、Ｈ８ライン８５０、他の２本のＶ８ライン、ＬＡＢ８０３からの出力、ＬＡＢ８０４からの出力に結合される。
【００７３】
この実施形態において、Ｖ８ラインおよびＨ８ラインは、同じロジック長であるが、物理長は異なる。さらに、この実施形態において、Ｖ８ラインはＶ４ラインより長く、信号は、Ｖ８ラインにおいて、Ｖ４ラインの場合よりも速く移動する。Ｖ８ラインは、チップレイアウトにおいて、Ｖ４ラインと比較して２倍の幅および空間を有し、より大きなドライバを用いることにより、信号は、Ｖ８ライン上をより速く移動する。
【００７４】
図１２に、本発明による、Ｖ１６ラインの実施形態を示す。Ｖ１６ラインおよびＨ２４ラインは、実質的に同じ物理長を有するが、ロジック長は異なる。各ワイヤの物理長は、電気的に最適な物理長、または非電気的な要件を考慮に入れて調節された電気的に最適な物理長に実質的に近い。他の実施形態において、Ｖ１６ラインおよびＨ２４ラインは、実質的に同じ物理長を有するが、ロジック長は異なる。さらに別の実施形態において、Ｖ１６ラインおよびＨ２４ラインは、異なるロジック長を有し、Ｈ４ラインおよびＶ４ラインのような同じロジック長を有する他のラインと組合せて用いられる。
【００７５】
図１２において、１７個のＬＡＢの行を含む二次元アレイの列が示されている。Ｖ１６ラインは、１６個の機能ブロックに及ぶ距離にわたる、垂直の一方向通信を可能にする。Ｖ１６ラインは、二重に千鳥配列される。すなわち、Ｖ１６ラインは、Ｖ４ラインおよびＶ８ラインの千鳥配列のように１つの機能ブロックによってオフセットされるのではなく、２つの機能ブロックによってオフセットされる。他の実施形態において、オフセットは、０、１、または２より多い機能ブロックであり得る。図１２において、Ｖ１６ライン９０３は、ＬＡＢ＃１に開始点を有し、ＬＡＢ＃１７に終了点を有する。マルチプレクサ９１７は、入力のうちの１つを、マルチプレクサ９１７の出力として選択し、この出力は、ドライバ９１８によって、Ｖ１６ライン９０３上に駆動される。Ｖ１６ライン９０３は、開始点で、１度駆動されるので、一方向ラインである。図１２において、Ｖ１６ライン９０３は、ＬＡＢ＃１での開始点からＬＡＢ＃１７での終了点までチップの下端に向かって下向きに駆動される。他の実施形態において、Ｖ１６ラインは、チップの上端に向かって上向きに駆動され、双方向ラインである。
【００７６】
この実施形態において、Ｖ１６ライン９０３は、４番目ＬＡＢ毎に、Ｈ４ライン、Ｖ４ライン、およびＨ２４ラインに接続される。これらのライン（Ｈ４ライン、Ｖ４ライン、およびＨ２４ライン）への接続は、マルチプレクサおよびドライバ９２０〜９３１を用いて行われる。最適スティッチ９１６は、Ｖ１６ライン９０３の終了点でのＶ１６ライン９０６への接続であり、Ｖ１６ライン９０３上を搬送される信号が次の１６個のＬＡＢまで届くように延長している。最適スティッチ９１６について、Ｖ１６ライン９０３は、マルチプレクサ９１２の入力に接続されている。ドライバ９１４は、マルチプレクサ９１２の出力を、Ｖ１６ライン９０６上で駆動する。マルチプレクサ９１２およびドライバ９１４を用いることによって、Ｖ１６ライン９０３上の信号も、Ｖ１６ライン９０６がわたっている１６個のＬＡＢに達し得る。次善スティッチが、Ｖ１６ライン９０３の終了点に達する前の他のＶ１６ラインへの接続である。図１２において、次善スティッチ９０９は、マルチプレクサ９１２に入力されたＶ１６ラインが、終了点に達する前のＶ１６ラインから来ていると考えられる場所に示される。マルチプレクサ９１２およびドライバ９１４は、Ｖ１６ライン上で搬送される信号をＶ１６ライン９０６に駆動し得る。
【００７７】
Ｖ１６ライン９０３は、Ｈ４ライン、Ｈ２４ライン、Ｖ４ライン、および他のＶ１６ラインによって駆動され得る。図１２において、マルチプレクサ９１７の入力は、Ｈ４ライン、Ｈ２４ライン、Ｖ４ライン、および２本のＶ１６ラインに接続される。この実施形態において、Ｖ１６ラインは、機能ブロックに直接接続されない。
【００７８】
この実施形態において、Ｖ１６ラインは、Ｖ８ラインよりも長く、信号は、Ｖ１６ラインにおいて、Ｖ８ラインの場合よりも速く移動する。Ｖ１６ラインは、結合された２本のＶ８ラインよりも速く、チップの上部の厚い金属層において、ルーティングされる。Ｖ１６ラインは、より幅が広く、厚く、チップ上で間隔が開けられているので、より速い。また、Ｖ１６ラインは、Ｖ８ラインよりも、大きいドライバを用いるので、スピードがさらに速くなる。
【００７９】
他の実施形態において、Ｖ−ラインおよびＨ−ラインのそれぞれは、任意のタイプのワイヤによって駆動され得、これらのラインのそれぞれは、全てのタイプのラインを駆動し得る。例えば、Ｖ４ラインは、Ｈ４ライン、Ｈ８ライン、Ｈ２４ライン、他のＶ４ライン、Ｖ８ライン、およびＶ１６ラインを駆動し得る。さらに、Ｖ４ラインは、Ｈ４ライン、Ｈ８ライン、Ｈ２４ライン、他のＶ４ライン、Ｖ８ライン、Ｖ１６ライン、および機能ブロックの出力によって駆動され得る。  本発明によるＰＬＤは、電子システムの一部であるプロセッサに含まれ得る。電子システムは、汎用もしくは特別用途コンピュータ、または専用デジタルスイッチングネットワークのようなデジタル計算システム、あるいは他の処理システムであり得る。
【００８０】
本発明は、例示的な実施形態に関して特に説明されてきたが、様々な変更例、改変例、および適用例が本明細書の開示内容に基づき、本発明の範囲に含まれるものであることが理解される。本発明は、最も実際的で好適であると現在考慮されている実施形態に関して説明されるが、本発明が、開示された実施形態に限定されるのではなく、特許請求の範囲に含まれる様々な改変例および均等な構成を含むものであることが理解される。
【００８１】
【発明の効果】
以上説明したように、本発明ルーティングアーキテクチャは、プログラム可能論理デバイス内で、複数の機能ブロックを相互接続するルーティングアーキテクチャであって、該ルーティングアーキテクチャの複数のワイヤと、第１および第２の方向に向けられ、かつ第１の論理的長さを有する該複数のワイヤの第１のサブセットと、別の第１および第２の方向に向けられ、かつ異なる論理的長さを有する該複数のワイヤの第２のサブセットとを備え、それぞれの第１および第２の方向に向けられた該複数のワイヤの該第１および第２のサブセットは、相互に対応する。これにより、電気的に最適化されたルーティングワイヤを有する非対称ルーティングライン用のシステム及び方法を提供することができる。
【００８２】
また、本発明の実施形態は、プログラム可能論理デバイス（「ＰＬＤ」）内の多数の機能ブロックを相互接続するワイヤに関する。このワイヤに対して、電気的に最適な物理的長さが決定される。電気的に最適な物理的長さを有するワイヤは、そのワイヤを介して、可能な限り速く信号を送信する。ＰＬＤで用いられるワイヤのいくつかは、電気的に最適な物理的長さと実質的に同じ物理的長さを有するか、または非電気的事項を考慮して、電気的に最適な物理的長さに調節を加えた長さを有する。本明細書中において用いられる物理的長さは、ワイヤの測定された長さである。本明細書中において用いられるワイヤの論理的長さは、ワイヤが延びる機能ブロックの数である。機能ブロックが異なる高さおよび幅を有すると仮定すると、ワイヤの論理的長さは、ワイヤの向きに依存して変化する。
【００８３】
ルーティングアーキテクチャは、機能ブロックの行および列を含むアレイである。アレイの列は、水平線（「Ｈ線」）に接続され、アレイの行は、垂直線（「Ｖ線」）に接続される。Ｈ線の種類には、４つの機能ブロックに延びるＨ４線、８つの機能ブロックに延びるＨ８線、および２４の機能ブロックに延びるＨ２４線が含まれる。Ｖ線の種類には、４つの機能ブロックに延びるＶ４線、８つの機能ブロックに延びるＶ８線、および１６の機能ブロックに延びるＶ１６線が含まれる。
【図面の簡単な説明】
【図１】図１は、本発明による、プログラマブルロジックデバイス（「ＰＬＤ」）内の電気的に最適にされた水平ワイヤおよび垂直ワイヤの実施形態の一例を示す図である。
【図２】図２は、本発明による、電気的に最適なワイヤを用いて、ＰＬＤ内のＬＡＢを相互接続する手順の実施形態のフローチャートである。
【図３】図３は、ワイヤの電気的に最適な物理長を決定する工程のフローチャートである。
【図４】図４は、本発明による、ルーティングアーキテクチャの実施形態を示す図である。
【図５】図５は、本発明による、Ｈ４ラインの実施形態を示す図である。
【図６】図６は、本発明による、千鳥配列されたＨ４ラインの実施形態を示す図である。
【図７】図７は、本発明による、Ｈ８ラインの実施形態を示す図である。
【図８】図８は、本発明による、Ｈ２４ラインの実施形態を示す図である。
【図９】図９は、本発明による、Ｖ４ラインの実施形態を示す図である。
【図１０】図１０は、本発明による、千鳥配列されたＶ４ラインの実施形態を示す図である。
【図１１】図１１は、本発明による、Ｖ８ラインの実施形態を示す図である。
【図１２】図１２は、本発明による、Ｖ１６ラインの実施形態を示す図である。
【符号の説明】
１１０〜１１９  ＬＡＢ
１３０〜１３４  ＬＡＢ
１４２  ワイヤ
【図１】
0003947425.tif 000002
【図２】
0003947425.tif 000003
【図３】
0003947425.tif 000004
【図４】
0003947425.tif 000005
【図５】
0003947425.tif 000006
【図６】
0003947425.tif 000007
【図７】
0003947425.tif 000008
【図８】
0003947425.tif 000009
【図９】
0003947425.tif 000010
【図１０】
0003947425.tif 000011
【図１１】
0003947425.tif 000012
【図１２】
0003947425.tif 000013