(57)【要約】同期式回路設計を非同期式回路設計、特にプログラマブル非同期式回路設計へと変換するための方法及びシステム。系統的、実行可能及び繰り返し可能な処理が提供され、その処理は、同期式回路設計を評価し、回線、スイッチ／接続及びロジック機能を等価な機能の非同期式回路設計へと変換し、それゆえに、その全利点を伴って機能的に等価な非同期式回路を実装する。更に、系統的に変換を行うための処理、及び非同期式構成要素のための等価ハードウェアが（形式として、或いは機能記述として）提供される。本発明を使用して、典型的には元の設計実装へと変更を加えることなく、いかなる同期式回路設計も非同期式の等価物へと変換されうる。
2010515972.tif 000002
【特許請求の範囲】
【請求項１】
同期式回路設計を非同期式データフロー設計へと変換するための方法であって、
複数の信号伝送回線、複数の同期式ロジックブロック、複数の接続ボックス、及び複数のスイッチボックスを含む同期式回路設計を同定するステップであり、前記複数の接続ボックスは、前記複数の回線を前記複数の同期式ロジックブロックへと接続する複数の同期式接続スイッチを含み、前記複数のスイッチボックスは、複数の回線を他の複数の回線へと接続する複数のスイッチボックススイッチを含む、ステップと、
前記同期式回路設計の複数の機能的な特性を決定するステップと、
前記同期式設計から、少なくともいくつかの前記複数の同期式ロジックブロックを、対応する複数の非同期式データフローロジックブロックへと変換し、複数のプロトコル信号を、対応する複数の非同期式データフローロジック機能に提供するステップと、
前記同期式回路設計において、前記複数の回線を複数のトラックに変換するステップであって、各トラックは、前記複数の非同期式ロジックブロック間でデータ及び複数のプロトコル信号を通信するために複数の回線をサポートするステップと、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式スイッチボックススイッチを複数のプログラマブルスイッチポイントへと変換するステップと、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式接続スイッチを複数のプログラマブルスイッチへと変換するステップとを含む、
ことを特徴とする方法。
【請求項２】
前記同期式回路設計の前記複数の機能的特性はファンアウト及び方向性を含む群から選択される、
ことを特徴とする請求項１に記載の方法。
【請求項３】
ファンアウトを含む変換された同期式回路設計は、前記ファンアウトの実行を非同期式に検出するために配置される完了検出回路を含む、
ことを特徴とする請求項２に記載の方法。
【請求項４】
双方向性を含む変換された同期式回路設計は、方向性のある信号をサポートするために配置されるバッファを含む、
ことを特徴とする請求項２に記載の方法。
【請求項５】
前記トラックは、３回線トラック、２回線トラック及び単一回線／マルチ電圧トラックを含む群から選択される、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記プログラマブルスイッチはそれぞれ、ロジックブロック素子を回線へと選択的に接続するためのプログラマブルスイッチを含む、
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記ロジックブロックの前記複数の機能的特性がファンアウトを含む場合、前記プログラマブルスイッチは、更に完了検出回路を含む、
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記複数のプログラマブルスイッチポイントはそれぞれ、各回線接続のための一組のプログラマブルスイッチを含み、それによってプログラマブルスイッチポイントにおける任意の回線が、前記プログラマブルスイッチポイントにおける任意の他の回線へと選択的に接続されうる、
ことを特徴とする請求項１に記載の方法。
【請求項９】
前記ロジックブロックの前記複数の機能的特性がファンアウトを含む場合、前記プログラマブルスイッチポイントは更に、完了検出回路を含む、
ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記ロジックブロックの前記複数の機能的特性が双方向性を含む場合、前記プログラマブルスイッチポイントは、回線接続において前記一組のプログラマブルスイッチ間に配置されるバッファを含む、
ことを特徴とする請求項９に記載の方法。
【請求項１１】
前記変換された非同期式回路設計が接続される、同期式ロジックの領域を提供するステップを更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項１２】
前記非同期式データフロー設計は、ＦＰＧＡにおける複数の回路において実装され、前記複数の回路は、複数の非同期式動作回路及び複数の同期式動作回路を含む群から選択される、
ことを特徴とする請求項１に記載の方法。
【請求項１３】
前記複数の同期式ロジックブロックは、複数の設定信号を使用してプログラムされる複数のプログラマブル同期式ロジックブロックを含み、
前記複数の非同期式データフローロジックブロックは、複数の設定信号を使用してプログラムされ、前記複数の同期式ロジックブロックに対応する、複数のプログラマブル非同期式データフローロジックブロックを含み、
前記複数のプログラマブル同期式ロジックブロックをプログラムするために使用される前記複数の設定信号の少なくとも幾つかは、前記複数のプログラマブル非同期式データフローロジックブロックをプログラムするために使用される前記複数の設定信号と同一である、
ことを特徴とする請求項１に記載の方法。
【請求項１４】
前記複数のプログラマブル同期式ロジックブロックをプログラムするために使用される前記複数の設定信号の少なくとも幾つかは、前記複数のプログラマブル非同期式データフローロジックブロックをプログラムするために使用される前記複数の設定信号の単純な複数のロジック機能である、
ことを特徴とする請求項１３に記載の方法。
【請求項１５】
同期式回路設計を非同期式データフロー設計へと変換するためのシステムであって、
複数の信号伝送回線、複数の同期式ロジックブロック、複数の接続ボックス、及び複数のスイッチボックスを含む同期式回路設計を同定する手段であって、前記複数の接続ボックスは、前記複数の回線を前記複数の同期式ロジックブロックへと接続する複数の同期式接続スイッチを含み、前記複数のスイッチボックスは、複数の回線を他の複数の回線へと接続する複数のスイッチボックススイッチを含む、手段と、
前記同期式回路設計の複数の機能的な特性を決定する手段と、
前記同期式設計から、少なくともいくつかの前記複数の同期式ロジックブロックを、対応する複数の非同期式データフローロジックブロックへと変換する手段であって、複数のプロトコル信号を、対応する複数の非同期式データフローロジック機能に提供する手段と、
前記同期式回路設計において、前記複数の回線を複数のトラックに変換する手段であって、各トラックは、複数の前記非同期式ロジックブロック間でデータ及び複数のプロトコル信号を通信するために複数の回線をサポートする、手段と、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式スイッチボックススイッチを複数のプログラマブルスイッチポイントへと変換する手段と、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式接続スイッチを複数のプログラマブルスイッチへと変換する手段とを含む、
ことを特徴とするシステム。
【請求項１６】
前記同期式回路設計の前記複数の機能的特性はファンアウト及び方向性を含む群から選択される、
ことを特徴とする請求項１５に記載の方法。
【請求項１７】
ファンアウトを含む変換された同期式回路設計は、前記ファンアウトの実行を非同期式に検出するために配置される完了検出回路を含む、
ことを特徴とする請求項１６に記載の方法。
【請求項１８】
双方向性を含む変換された同期式回路設計は、方向性のある信号をサポートするために配置されるバッファを含む、
ことを特徴とする請求項１６に記載の方法。
【請求項１９】
前記トラックは、３回線トラック、２回線トラック及び単一回線／マルチ電圧トラックを含む群から選択される、
ことを特徴とする請求項１５に記載の方法。
【請求項２０】
前記複数のプログラマブルスイッチはそれぞれ、ロジックブロック素子を回線へと選択的に接続するためのプログラマブルスイッチを含む、
ことを特徴とする請求項１５に記載の方法。
【請求項２１】
前記ロジックブロックの前記複数の機能的特性がファンアウトを含む場合、前記プログラマブルスイッチは、更に完了検出回路を含む、
ことを特徴とする請求項２０に記載の方法。
【請求項２２】
前記複数のプログラマブルスイッチポイントはそれぞれ、各回線接続のための一組のプログラマブルスイッチを含み、それによってプログラマブルスイッチポイントにおける任意の回線が、前記プログラマブルスイッチポイントにおける任意の他の回線へと選択的に接続されうる、
ことを特徴とする請求項１５に記載の方法。
【請求項２３】
前記ロジックブロックの前記複数の機能的特性がファンアウトを含む場合、前記プログラマブルスイッチポイントは更に、完了検出回路を含む、
ことを特徴とする請求項２２に記載の方法。
【請求項２４】
前記ロジックブロックの前記複数の機能的特性が双方向性を含む場合、前記プログラマブルスイッチポイントは、回線接続において前記一組のプログラマブルスイッチ間に配置されるバッファを含む、
ことを特徴とする請求項２３に記載の方法。
【請求項２５】
前記非同期式データフロー設計は、ＦＰＧＡにおける複数の回路において実装され、前記複数の回路は、複数の非同期式動作回路及び複数の同期式動作回路を含む群から選択される、
ことを特徴とする請求項１５に記載の方法。
【請求項２６】
前記複数の同期式ロジックブロックは、複数の設定信号を使用してプログラムされる複数のプログラマブル同期式ロジックブロックを含み、
前記複数の非同期式データフローロジックブロックは、複数の設定信号を使用してプログラムされ、前記複数の同期式ロジックブロックに対応する、複数のプログラマブル非同期式データフローロジックブロックを含み、
前記複数のプログラマブル同期式ロジックブロックをプログラムするために使用される前記複数の設定信号の少なくとも幾つかは、前記複数のプログラマブル非同期式データフローロジックブロックをプログラムするために使用される前記複数の設定信号と同一である、
ことを特徴とする請求項１５に記載の方法。
【請求項２７】
前記複数のプログラマブル同期式ロジックブロックをプログラムするために使用される前記複数の設定信号の少なくとも幾つかは、前記複数のプログラマブル非同期式データフローロジックブロックをプログラムするために使用される前記複数の設定信号の単純な複数のロジック機能である、
ことを特徴とする請求項２６に記載の方法。
【請求項２８】
同期式回路設計を非同期式データフロー設計へと変換するためのシステムであって、
プロセッサと、
前記プロセッサへと接続されたメモリであって、前記プロセッサの動作を制御するための複数の命令を記憶する、メモリとを含み、
前記プロセッサの前記動作は、
複数の信号伝送回線、複数の同期式ロジックブロック、複数の接続ボックス、及び複数のスイッチボックスを含む同期式回路設計であって、前記複数の接続ボックスは、前記複数の回線を前記複数の同期式ロジックブロックへと接続する複数の同期式接続スイッチを含み、前記複数のスイッチボックスは、複数の回線を他の複数の回線へと接続する複数のスイッチボックススイッチを含む、同期式回路設計を同定する動作と、
前記同期式回路設計の複数の機能的な特性を決定する動作と、
前記同期式設計から、少なくともいくつかの前記複数の同期式ロジックブロックを、対応する複数の非同期式データフローロジックブロックへ変換し、複数のプロトコル信号を、対応する複数の非同期式データフローロジック機能に提供する、動作と、
前記同期式回路設計において、前記複数の回線を複数のトラックへ変換し、各トラックは、複数の前記非同期式ロジックブロック間でデータ及び複数のプロトコル信号を通信するために複数の回線をサポートする、動作と、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式スイッチボックススイッチを複数のプログラマブルスイッチポイントへと変換する動作と、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式接続スイッチを複数のプログラマブルスイッチへと変換する動作とを行う、
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［優先権主張］
本出願は、２００７年１月５日出願のＵ．Ｓ．  Ｐａｔｅｎｔ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｉａｌ  Ｎｏ．  １１／６５０２３８の優先権の利益を主張し、本出願は参照により本明細書に組み込まれる。
【０００２】
［技術分野］
本出願は、概して非同期式回路のための方法及びシステムに関し、より詳細には、同期式回路ファブリックを非同期式データフロー回路ファブリックへと変換するための方法及びシステムに関する。これによって、同期式回路設計は、非同期式回路設計へと変換されうる。
【背景技術】
【０００３】
本技術分野においてはよく知られているように、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、プログラマブル（プログラム可能な）ロジックデバイス（ＰＬＤ）半導体デバイスの一種である。それは、コンフィギュラブル（設定可能な）ロジックブロック（ＣＬＢ）としても知られるプログラマブルロジック素子と、入力／出力ブロック（ＩＯＢ）としても知られるプログラマブルインターコネクトを含む。インターコネクトの設定を介して、プログラマブルロジック素子は、ＡＮＤ、ＯＲ、ＸＯＲ、ＮＯＴのような基本のロジックゲートの機能性、或いは、デコーダのようなより複雑な組み合わせの機能、或いは単純な数学的機能を再現（duplicate）するようプログラムされうる。大部分のＦＰＧＡにおいては、これらのプログラマブルロジック素子（或いは、ＦＰＧＡ語としてはロジックブロック）はメモリ素子をも含み、このメモリ素子は単純なフリップフロップ或いはより完全なメモリブロックでありうる。
【０００４】
上述されたように、プログラマブルインターコネクトの階層は、ＦＰＧＡのロジックブロックが、いくらかワンチッププログラマブルブレッドボードに似て、必要に応じシステム設計者によって相互接続されることを可能にする。これらのロジックブロック及びインターコネクトは、いかなるロジック機能が必要とされる場合にもＦＰＧＡが実行可能であるように、使用者／設計者による製造プロセスの後にプログラム可能（それゆえに用語「フィールドプログラマブル」）である。
【０００５】
ＦＰＧＡは、従来の特定用途集積回路（ＡＳＩＣ）に対して著しい優位性を幾つか有する。それは、市場に出るまでの時間の短縮、バグを解決するためにフィールドにおいてプログラミングしなおす性能、及び非反復エンジニアリングコスト（ＮＲＥコスト）の低減を含んでいる。ＦＰＧＡの用途は、デジタル信号処理（ＤＳＰ）、ソフトウェア無線、航空宇宙システム及び防衛システム、ＡＳＩＣプロトタイピング、医療画像処理、コンピュータ画像、言語認識、暗号法、バイオインフォマティクス、コンピュータハードウェアエミュレーションなどを含み、他領域の範囲にも及びつつある。
【０００６】
ＦＰＧＡの挙動を定義するため、使用者は、ハードウェア記述言語（ＨＤＬ）或いは概要設計を提供する。電子工学においては、ハードウェア記述言語或いはＨＤＬは、電子回路の形式的記述を開発するために使用されるコンピュータ言語の一種からなる言語である。典型的なＨＤＬは、回路動作、その設計、及びシミュレーションによってその動作を検証するためのテストを記述しうる。
【０００７】
ＨＤＬの文法及び意味は、ハードウェアの基本的な属性である時間及び並行性を表現するための明確な表記法を含む。あるブロック階層間での回路の接続性を表現することを主要な特徴とする言語は、ネットリスト言語として分類される。ＨＤＬの中にはこの目的のために使用されるものもありうる。ＨＤＬの使用の一つは、ＦＰＧＡのようなプログラマブルロジックデバイスの設計を含む。今日の産業において使用される、もっとも広く使用され、かつ十分にサポートされているＨＤＬ２種は、ＶＨＤＬ及びＶｅｒｉｌｏｇである。ＶＨＤＬ或いは、ＶＨＳＩＣハードウェア記述言語は、フィールドプログラマブルゲートアレイ、及びデジタル回路の電子的設計自動化における特定用途集積回路のためのデザインエントリ言語として一般に使用される。Ｖｅｒｉｌｏｇは、電子システムをモデル化するために使用されるハードウェア記述言語（ＨＤＬ）である。Ｖｅｒｉｌｏｇ言語（ＶｅｒｉｌｏｇＨＤＬと呼ばれる場合もある）は、種々のレベルの抽出において、アナログ、デジタル及び混合性信号回路の設計、検証、及び実装をサポートしている。
【０００８】
ＨＤＬ設計に必要不可欠なことは、ＨＤＬプログラムをシミュレートするための性能である。ＨＤＬプログラムは、プログラマブルロジックデバイスへとプログラムをアップロードすることによって、或いはさらに、その仕様に基づいたチップを製造することなどによっても、ハードウェア内においてテストされうる。しかしながら、これは一般的に、大変時間を消費し、かつコストがかかるプロセスであり、一般的には、大部分のテスト及びデバッグはシミュレータと呼ばれるプログラムを使用することによってなされる。シミュレータは、再指定可能な“クロック”を保持しており、それはデジタルデバイスの実際のクロックに類似している。シミュレータは、設計を検証及びデバッグするために、設計者が経時的に種々のレジスタの値をプリントアウトすることを可能にする。
【０００９】
回路は、二つの基本的な周波数モードにおいて動作し、そのモードとは同期式と非同期式である。同期式回路は、種々の回路素子が、中心部で生成するクロック信号によって同期するデジタル回路である。理想的な同期式回路においては、それぞれの記憶素子の論理レベルにおける各変化は同時に起こる。これらの変遷はクロックのレベル変化に続いて起こる。理想的には、それぞれの記憶素子に対する入力は、次のクロックが生じる前に最終値に達し、ゆえに、回路全体の挙動が正確に予期されうる。実際には、それぞれのロジック動作には多少の遅延が必要であり、結果として、それぞれの同期式システムが動くのは最大の速度となる。これらの回路を正確に動かすために、クロック分配ネットワークの設計においては、相当の配慮が必要とされる。静的タイミング解析は、最大安全動作速度を決定するために、多くの場合に使用される。
【００１０】
同期式回路は、同期式シミュレーションアルゴリズムを使用してシミュレーションされる。これらのアルゴリズムは、回路におけるイベントのパスに続くため中心化された時間（Ｃｅｎｔｒａｌｉｚｅｄ−ｔｉｍｅｄ）を使用する。この方法においては、現在のシミュレーション時間に生じる全てのイベントが処理されるまで、シミュレーションは進行しない。これらのアルゴリズムを実行するため、イベントはグローバル順の待ち行列（キュー）に記憶される。この待ち行列における各スロットは、シミュレーション時間を表し、そのシミュレーション時間において生じる一連のイベントのリンクされたリストを記憶する。
【００１１】
非同期式回路は、回路素子が主に自律して動作する回路である。回路素子は、クロック回路或いはグローバルクロック信号によって管理されず、その代わりに、直前の指示及び動作の完了を示す信号に基づいて動作する。これらの信号は、単純なデータ伝送プロトコルによって特定される。このデジタルロジック設計は、クロックタイミング信号に従って動作する上述の同期式回路とは対照的である。
【００１２】
現在の時間スロットのイベントが非同期式回路シミュレーションのために処理される場合、そのイベントの出力は、対応するロジック素子の直前の出力と比較され、もし異なる場合には、入力が現在のイベントの出力によって駆動されるロジック素子に新しいイベントが発生する。グローバルな中心化された時間は存在しない。その代わりに、それぞれのデータ項目或いはトークンは、そのデータが有効である時間を表すタイムスタンプを伝送する。イベントの評価はトークンの可用性に依存する。非同期式シミュレーションアルゴリズムは、異なる時間インスタンスに生じるイベントを処理することが可能である。したがって、同期式シミュレーションアルゴリズムと比較して、より並列性を抽出することが可能である。
【００１３】
非同期式シミュレーションアルゴリズムの一つの重要な要素は、データ要素のタイムスタンプの決定方法を決定することである。保守的及び楽観的な異なるアプローチが存在する。保守的な手法においては、安全な評価時間だけが許容される、すなわち、正確な結果を保証する評価時間だけが許容される。ロジック素子は、有効な入力トークン全てを受け取った後にのみ、評価される。ロジック素子が評価される場合、その出力は入力に基づいて決定され、出力のタイムスタンプは最後に到着したトークンのタイムスタンプ、及びそのロジック素子の遅延によって決定される。対照的に、ロジック素子の楽観的な評価は、入力トークンがその入力に到着するとすぐに行われる。発生した出力が正確ではないことがわかった場合には、続いてロールバックが行われ、直前の正確だとわかっている状態にまで戻り、前方の素子に対してメッセージが送られて、先に送られた誤ったメッセージの効果がキャンセルされる。この楽観的なアルゴリズムは、状態を保留するためのさらなるコスト及び、ロールバックを調節するためのより複雑な制御機構を有する。楽観的な手法は一般的には、ロールバックがほとんどない場合には、より効果的である。
【００１４】
同期式回路は非同期式回路をエミュレートするためにも使用されうる。このような同期式“ハンドシェイク”回路は、非同期式回路と同一の通信プロトコルに従うが、一連の動作のためにはクロック信号を使用し続ける。このような実装の実施例は、例えば、２００１年３月の第７回非同期式回路及びシステムに関する国際シンポジウムの予稿集のＡｄ  Ｐｅｅｔｅｒｓ及びＫｅｅｓ  ｖａｎ  Ｂｅｒｋｅｌによる“Ｓｙｎｃｈｒｏｎｏｕｓ  Ｈａｎｄｓｈａｋｅ  Ｃｉｒｃｕｉｔｓ（同期式ハンドシェイク回路）”を含む。これらの回路は、結果がロジック素子によっていつ計算されたかを示す信号を使用する。この信号（“有効ビット”と呼ばれることもある）は、クロックと組み合わせて使用される。このような回路においては、トークンは、これらの追加信号を使用して明確に表現される。このような回路における動作は、これらの入力が有効である場合に従来の非同期式回路と同様に進行する。しかしながら、クロック信号もなお、状態遷移を制御するために使用される。このような回路のクロック周波数は、必ずしも性能を決定するわけではない。なぜなら、全てのクロック周期が、計算されるべき有効な結果になるわけではないからである。しかしながら、クロックは回路動作を制御するために使用されるため、同期式シミュレーション方法はこのような回路をシミュレートするために使用されうる。
【００１５】
同期式回路の実装が非同期式回路をエミュレートするために使用される場合、根底にある計算モデルは、それでもなお非同期式である。なぜなら、計算の性能及び他の特性は、トークンが処理される速度によって決定されるからである。我々は、この根底にある計算モデルを“非同期式データフロー”と呼ぶ。
【００１６】
いったん設計が完成し、シミュレーションによって検証されると、ＨＤＬコードはロジックコンパイラへと送られ、出力はＦＰＧＡデバイスへとアップロードされる。これは、テクノロジーマップドネットリストの生成を介して実現される。ネットリストはプレースアンドルートと呼ばれる処理を使用して、実際のＦＰＧＡアーキテクチャへと適合する。プレースアンドルートは、通常、ＦＰＧＡの会社が専売するプレースアンドルートソフトウェアによって実行される。上述されたシミュレーションは、製造業者に特異的な実行を法的に有効にするため、このネットリスト作成後に実施されうる。いったん設計及び動作確認処理が完了すると、生成したバイナリファイル（これもＦＰＧＡの会社の専売するソフトウェアを使用する）が、ＦＰＧＡを（再）設定するために使用される。
【００１７】
上述されたように、非同期式動作は、同期式動作に比べて幾つかの重大な利点を提供する。しかしながら、開発の歴史的な推移において、同期式回路が産業、特に再設定可能なゲートアレイの分野において、まず広く受け入れられてきた。この理由のため、現在、非同期式形式よりも同期式ロジック形式において、より多くの設計が存在する。産業が直面する重大な課題の一つは、同期式回路設計を非同期式設計へと変換する効率的な方法を決定することであり、それによって、大掛かりな再設計をすることなく、或いは、更に悪いとしても変換した設計における欠陥なく、非同期式動作の利益を活用することである。
【００１８】
研究グループ及び企業の両者によって開発されてきた、種々の同期式再設定可能なアーキテクチャが存在する。しかしながら、これらのアーキテクチャの大部分は、そのインターコネクトのスケーリングが乏しいために性能の問題を被る。
【００１９】
本発明者は、非同期式回路のインターコネクト構造は、本技術分野においてはチップ‘ファブリック’として知られるが、同期式回路から非同期式回路への変換において大変限定的な要素でありうることを認識していた。非同期式トークン検証プロトコル、非同期式ロジックブロック間の有効データを示す‘ハンドシェイク’をサポートするために必要なインターコネクトアーキテクチャの複雑性のため、このことは特に当てはまる。本発明者は、非同期式の形式へと変換された同期式回路をサポートするための、改良されたインターコネクト方法及びシステムの必要性を認識していた。
【発明の概要】
【００２０】
本発明は、同期式アーキテクチャを非同期式データフロー実装へと自動的に変換するためのシステム及び方法を含む。変換は、元の同期式アーキテクチャからロジック基本要素を保存し、それによって元の同期式アーキテクチャによって使用されたのと同じ統合アルゴリズムがデータフローアーキテクチャに使用されることを可能にする。すなわち、ＨＤＬ同期式回路設計の出力は、開発者側或いは製造者側で再設計することなく、同一のロジック回路の非同期式の形式を作成するために使用されうる。最終的な非同期式データフロー実装は同期式、或いは非同期式回路のいずれかを使用して実現されうる。
【００２１】
本発明の一実施形態においては、同期式回路設計を非同期式データフロー設計へと変換するための方法及びシステムが提供される。典型的な方法は、次のステップを含む。
複数の信号伝送回線、複数の同期式ロジックブロック、複数の接続ボックス、及び複数のスイッチボックスを含む同期式回路設計を同定するステップであり、複数の接続ボックスは、回線を同期式ロジックブロックへと接続する同期式接続スイッチを含み、複数のスイッチボックスは、回線を他の回線へと接続するスイッチボックススイッチを含む、ステップと、
同期式回路設計の機能的な特性を決定するステップと、
同期式設計から、少なくともいくつかの複数の同期式ロジックブロックを、対応する非同期式データフローロジックブロックへと変換し、対応する非同期式データフローロジック機能にプロトコル信号を提供するステップと、
同期式回路設計において、回線をトラックに変換するステップであって、各トラックは、非同期式ロジックブロック間でデータ及びプロトコル信号を通信するために複数の回線をサポートする、ステップと、
同期式回路設計において、同期式回路設計の機能特性に依存して、同期式スイッチボックススイッチをプログラマブルスイッチポイントへと変換するステップと、
同期式回路設計において、同期式回路設計の機能特性に依存して、同期式接続スイッチをプログラマブルスイッチへと変換するステップと、を含む。
【図面の簡単な説明】
【００２２】
本発明のこれら及び他の目的、特徴及び利点は、図面と組み合わせて検討される以下の本発明の詳細な説明を考慮することによって明らかとなるであろう。
【図１】非同期式回路チップファブリックの概観図である。
【図２Ａ】異なる半導体チップコンダクタトラックの概観図を示す。
【図２Ｂ】異なる半導体チップコンダクタトラックの概観図を示す。
【図２Ｃ】異なる半導体チップコンダクタトラックの概観図を示す。
【図３Ａ】プログラマブルスイッチポイントの概観図を示す。
【図３Ｂ】プログラマブルスイッチポイント実装ハードウェアの概要素子を示す。
【図３Ｃ】プログラマブルスイッチポイント実装ハードウェアの概要素子を示す。
【図３Ｄ】プログラマブルスイッチポイントの第一の実施形態の組み立てられた素子を示す。
【図４Ａ】図３Ａ−Ｄのプログラマブルスイッチポイントハードウェアの別の実施形態を示す。
【図４Ｂ】図３Ａ−Ｄのプログラマブルスイッチポイントハードウェアの別の実施形態を示す。
【図４Ｃ】プログラマブルスイッチポイントの別の実施形態の組み立てられた素子を示す。
【図５】プログラマブル接続ポイントの概観図を示す。
【図６】本発明に係る、同期式回路設計の非同期式回路設計への変換のための処理のフローチャートである。
【図７Ａ】同期式ロジック回路実施例の論理記号図を示す。
【図７Ｂ】同期式ロジック回路実施例の概観図を示す。
【図８Ａ】本発明に係る非同期式設計へと変換された図７の同期式ロジック回路実施例の論理記号図を示す。
【図８Ｂ】本発明に係る非同期式設計へと変換された図７の同期式ロジック回路実施例の概観図を示す。
【発明を実施するための形態】
【００２３】
本明細書においては、本発明に係り、同期式回路設計を非同期式回路設計、特にプログラマブル非同期式回路設計へと変換するための方法及びシステムが提供される。本発明は、同期式回路設計を評価し、回線、スイッチ／接続およびロジック機能を、同等の機能を有する非同期式回路設計へと変換し、その全ての利点を伴って、機能的に同等の非同期式回路を実装するための、系統的、実行可能及び繰り返し可能な処理を提供する。系統的に変換を行うための処理、及び非同期式素子のための等価ハードウェアが（形式として、或いは機能記述として）提供される。本発明を使用して、いかなる同期式回路設計も非同期式の等価物へと変換されうる。典型的には元の設計実装へと変化を加えることなく、同期式回路の実質的に変化していないネットリスト、概略設計或いは他の設計実装を使用して変換されうる。
【００２４】
本明細書において使用される実施例は、例示的なものであってそれに限定されるものではない。
【００２５】
まず、図１に関して、標準的で再設定可能である、半導体回路チップアーキテクチャの一部１００が示され、本技術分野においては、これは“アイランドスタイル”アーキテクチャと呼ばれる。このアーキテクチャは、種々のプログラマブルロジック機能をサポートするロジックブロック（ＬＢ）１０２のプログラマブルアレイを含む。このアーキテクチャにおけるルーティングトラック１０４は、複数の直交方向に方向づけられたトラックとして図示されているが、電子信号を伝送し、選択されたロジックブロック１０２間の再設定可能なインターコネクトを実装するために使用される。ルーティングトラックを相互接続し、ロジックブロックを設定するために使用される、柔軟性のあるルーティングアーキテクチャの主要素子は、接続ボックス（ＣＢ）１０６及びスイッチボックス（ＳＢ）１０８を含む。実装においては、スイッチボックス１０８は、ある回線を、水平方向及び垂直方向のルーティングトラック内の線である回線へと接続するスイッチである。接続ボックスは、回線をロジックブロック素子へと接続するスイッチである。例示の目的のために、図面においては典型的な素子のみが示されている。しかしながら、読者は、回線トラック、接続ボックス及びスイッチボックスが、所望のインターコネクト機能を提供するために、実際には半導体チップ表面全体にわたって、反復されることが理解されるだろう。
【００２６】
実際には、同期式回路設計のスイッチボックスにおける典型的な接続は、マルチプレクサ回路及び信号ドライバを含み、マルチプレクサへの制御入力はプログラム可能である。マルチプレクサは、スイッチボックスの一組の入力から一つの出力への接続をサポートするために使用される。同期式回路設計の接続ボックスにおける典型的な接続は、プログラマブルスイッチを含む。
【００２７】
実際には、接続ボックス及びスイッチボックスの構造は、回線トラックのロジックブロックへの接続を決定し、それによって半導体チップの機能性を決定する。説明されている本発明の実施形態においては、部分１００と表されている半導体チップは、例えば、本技術分野でよく知られているような、ＡｃｈｒｏｎｉｘＴＭ、ＸｉｌｉｎｘＴＭ、ＡｌｔｅｒａＴＭなどから利用可能なタイプのＦＰＧＡである。
【００２８】
続いて図２Ａ−図２Ｃに関して、本技術分野においてはよく知られているように、トラック１０４は、同期式ファブリックにおいて、単一の回線を含んでいる。対照的に、非同期式データフローファブリックにおいては、それぞれのトラック１０４は、データフロー通信チャネルを提供する回線束を使用して実装される。図２Ｂ−図２Ｃは、データフローインターコネクトへの変換における、個々の回線の２つの異なる実装方法を示す。トラック１０４は、図２Ｂに示されるように、３本の回線構造２１０、２１２及び２１４において実装され、或いは、図２Ｃに示されるように、２本の回線構造２２０、２２２において実装され、本明細書に記載されているように、かつ本技術分野において既知であるように、選択される構造は、実装されるハンドシェイクプロトコルの形式に基づく。実際には、典型的なゲートアレイ半導体チップにおいては、回線はトラック或いはチャネルとして知られるものに含まれ、示されるように、１チャネルにつき３本、或いは２本にまとめられる。
【００２９】
図２Ｂの３本の回線構造においては、回線２１０及び２１２は、データ伝送に使用され、一方、回線２１４は例えば確認信号（ＡＣＫ信号）のような、制御信号のために使用される。図２Ｃの２本の回線構造においては、これは“シングルトラック”としても知られているが、回線２２０及び２２２の両者が、データ及び制御信号の両方のために使用される。これらの回線は、本技術分野においてはよく知られているように、多様な非同期式通信プロトコルを実装するために使用されうる。
【００３０】
個々のトラックが１ビット以上の情報を伝送することが可能な、他の回線構造もまた可能性があることが理解されるであろう。全てのプログラマブルルーティングは、異種のプロトコル、ビット幅、及び回線構造を含みうる。データ及び制御信号を表すために、単一の回線と、様々な電圧（マルチ電圧）のロジック信号とを使用するトラックを実装するための方法もまた知られている。
【００３１】
説明されている本発明の実施形態においては、トラックのビット幅は、一回の動作中にトラックによって伝送されるビット数であるが、非同期式回路設計のビット幅が、変換された同期式回路設計のビット幅と同じになるように、元々の同期式アーキテクチャからのビット幅によって決定される。異なるビット幅及び、２フェイズ及び４フェイズハンドシェイクプロトコルを含む、マルチフェイズハンドシェイクプロトコルが、本技術分野においてはよく知られている。説明されているプログラマブルルーティングアーキテクチャの実施形態は、１本のルーティング回線につき１ビットの通信のために、３本の回線機構２１０、及び標準的な４フェイズハンドシェイクプロトコルを使用する。
【００３２】
続いて、非同期式回路設計への同期式回路設計の変換を一般的に考えると、本発明に係り、元々の同期式アーキテクチャの回線は本発明の通信チャネルで置換され、これは、元の同期式回路設計のデータフローと機能的に同一な、ロジックブロック間のデータのための完全なフロー制御を提供する。示されるように、本発明の通信チャネルは、同期式回路のための同一の機械言語設計を使用して実装され、非同期式形式で回路を実装するために再設計する必要はない。
【００３３】
［スイッチボックスハードウェア］
続いて図３Ａに関して、４ポートを含むプログラマブルスイッチポイント３００が示される。４ポートとは、北（Ｎ）ポート３０２、西（Ｗ）ポート３０４、南（Ｓ）ポート３０６、及び東（Ｅ）ポート３０８である。プログラマブルスイッチポイント３００は、スイッチボックス１０８（図１）の回線トラックの各交点に挿入されることが理解されるであろう。各プログラマブルスイッチポイント３００は、図３Ｂ、図３Ｃに示されるプログラマブルスイッチングアーキテクチャを含む。図３Ｂに関して、２つのファーストインファーストアウト（ＦＩＦＯ）バッファ３１０、３１２が示され、二つ合わせてシングルバッファとも呼ばれるが、入力Ｌ（それぞれＬ０、Ｌ１）及び出力Ｒ（それぞれＲ０、Ｒ１）を有する。図３Ｃに関して、４つのプログラマブルスイッチ３１８が、３２０、３２２、３２４、３２６として示され、それぞれが４入力（トラックにおける各回線に１入力）及び１出力を含む。各スイッチのそれぞれの接続はプログラマブルリンクを含み、そのうちの一つがプログラマブルスイッチ３２０においては３１６と番号がつけられている。読者には、従来のように、プログラマブルリンク３１６は、接続回路或いは開回路のいずれかとして機能するために、したがってリンクを接続／切断するために、設計処理の一部として制御されうることが理解されるであろう。
【００３４】
示されるプログラマブルスイッチ３１８の構成は、マルチプレクサ回路の考えられる実装の一つである。スイッチ及び／或いはロジックゲートの異なる構造を使用する他の実装もまた知られている。
【００３５】
図３Ａ、３Ｂ、３Ｃにおいて、符号の命名によって示されるように、プログラマブルスイッチ３２０は、ＮＳＥＷポートのいずれかをバッファ３１０の入力Ｌ０へと接続しうる。プログラマブルスイッチ３２４は、同様にＮＳＥＷポートのいずれかをバッファ３１２の入力Ｌ１へと接続しうる。プログラマブルスイッチ３２２、３２４もそれぞれ同様に、ＮＳＥＷポートのいずれかに対する接続のため、それぞれ対応するバッファ３１０、３１２の出力Ｒ０、Ｒ１を選択しうる。プログラマブルスイッチ及びバッファを含む、説明されるスイッチポイント３００は、このように任意の入力トラック回線／ポートを、任意の出力トラック回線／ポートに対して接続することが可能である。図３Ｄは、動作構造において接続されるスイッチポイント３００の素子を示す。
【００３６】
同期式スイッチブロックアーキテクチャを非同期式データフローアーキテクチャへと変換するために、同期式回路設計アーキテクチャにおける元の信号バッファ及び回線は、説明されるデータフローパイプラインステージで置換され、各終端においてプログラマブルスイッチポイント３００を含むマルチ回線トラック１０４（図２Ｂに示される）で、各回線を置換することも含む。このように、信号バッファを伴う同期式回線は、プログラマブルスイッチポイント３００を伴うマルチ回線トラック（図２Ｂ、図２Ｃ）によって置換される。このデータフロー素子は、有限の容量を有するファーストインファーストアウト（ＦＩＦＯ）バッファを実装し、ＦＩＦＯの回路実装は同期式アーキテクチャから回線を実装するために使用される変換形式の特性によって決定される。
【００３７】
各プログラマブルスイッチポイント３００は、種々の方法によって実装されうる。それは、完全な伝送ゲート或いは単一のパストランジスタを伴い、バッファされるかバッファされないかのどちらかの方法である。これらのオプションは、当業者によって十分に理解されるであろう。使用されるスイッチの方式は、元の同期式実装の複製物か、或いは、変換される再設定可能なファブリックの新しい性能、電力、領域特性に基づいた改良物でありうる。
【００３８】
示される説明されているスイッチポイントは、２つのバッファ３１０、３１２のみを含む。なぜなら、データのための２回線及びプロトコル信号のための１回線を伴う、説明される３回線チャネルにおいては、スイッチポイント３００によってサポートされる、独立した入力から独立した出力への接続が、最大で２つ存在しうるからである。異なるスイッチポイントトポロジーの可能性があり、独立したルートの最大数は回線トラック及びハンドシェイクプロトコル変換によって決定され、これは同様に必要なバッファ数を決定する。バッファは、様々な方法において実装されうる。その方法は、ウィークコンディション（weak-conditioned）のバッファ、プレチャージハーフバッファ、プレチャージフルバッファを含み、或いはさらに、自動リセットロジック、スタティック或いはダイナミックロジックファミリーを含む、任意のロジックファミリーを使用して実装される同期式ラッチ或いは記憶素子をも含む。また、ルーティングトラックによって使用される特定のプロトコルは、バッファを実装するために使用される回路に対しても影響を与えることが理解されるであろう。これらの選択もまた、当業者にとっては明らかであろう。
【００３９】
図３において説明されるパイプラインスイッチポイントの固有の限界は、単一のバッファは最大で一つの宛先しか有することができないということである。この限界は、インターコネクトのデータフロー特性から生じる。データフローではない同期式インターコネクトにおいては、バッファの出力を多数の宛先へと接続することが有効である。しかしながら、このような接続は、データフロースイッチポイントにおいては無効である。なぜなら、通信プロトコルは、フロー制御を含むからである。例えば、図２Ｂの３回線非同期式プロトコルにおいては、２本のデータ回線２１０、２１２及び確認回線２１４を含むが、データ回線は送信者から受信者へと情報を伝送し、一方、確認回線は受信者から送信者へと情報を伝送する。データ回線を一送信者から多数の宛先へと接続し得るとしても、多数の確認回線をまとめて接続することは不可能である。なぜなら、それぞれの受信者は独立した確認信号を有するからである。
【００４０】
多数の宛先への出力をサポートするために、パイプラインスイッチポイントを拡張するために、図４及び図４Ｂに示される更なる構成が提供される。図面は、２つの変更が導入された同一のスイッチポイント３００の改変版を示す。類似する構成要素は、先の図面と同様の参照符号によって示されている。変更された、対応する構成要素にはダッシュが付加されて示される。第一の変更は、第二のバッファ３１２に対する接続３２４’、３２６’の変更容易性（Configurability）の減少である。この減少は、ルーティングにおけるいかなる柔軟性をも犠牲にすることなく、元のスイッチポイント３００に対してなされうる。これをサポートするために、スイッチポイントの選択された１ポート、例えば西（Ｗ）ポートに対する可能性のある任意の接続は、第一のバッファ３１０の入力／出力３２０、３２２へと割り当てられる。いったんこれが完了すると、可能性のある他の全ての接続は第二のバッファによってサポートされる。この最適化は、プログラマブルスイッチポイントを実装するために必要とされる領域を縮小するという利点を有する。
【００４１】
第二の変更は、第一のバッファ３１０の出力のために多数の宛先をサポートすることである。新しい接続性は、バッファ３１０の入力Ｌ０への同一の接続性を含む。第一のバッファの出力Ｒ０に対する接続性は、ファンアウトをサポートするために改変される。ルーティングトラックのための回線は、バッファから対応するＮＳＥ或いはＷスイッチポイントポートへと情報を伝送するデータ回線、及びスイッチポイントポートからバッファへとデータを伝送するデータ及び確認回線から構成される。スイッチポイントトラック回線の組は、前述されたものと同様に、スイッチ３２２を介してバッファの出力へと直接接続される。４ポート４２０の各々へと接続されるトラック回線に対応する確認回線、例えば、トラック１０４における回線２１４（図２Ｂ）は、プログラマブル完了検出素子４２４を使用して、バッファＲ０の出力のための確認信号へと接続される。これによって４つの確認は単一の確認信号へと一まとめになり、これはハンドシェイクプロトコルに従ってバッファへと提供されうる。
【００４２】
プログラマブル完了検出回路４１５は、適切なＡＮＤ（或いは他の適切なロジック）機能とともに、プログラマブルスイッチを使用することによって、いつ入力が完了し受け入れ可能かを示す。これは、本技術分野においてはよく知られているような種々の方法によって実装可能である。プログラマブル完了検出回路の一実施例は、本明細書に全体が組み入れられている、ＴｅｉｆｅｌらによるＵ．Ｓ．  Ｐａｔｅｎｔ  ａｐｐｌｉｃａｔｉｏｎ  ２００５／００７７９１８に示される。他の実施例は、電流センシング完了検出（ＣＳＣＤ）、活動モニタリング完了検出（ＡＣＭＤ）など、読者に知られているであろう他の方法を含む。スタンドアローン素子に加えて、バッファの回路実装とプログラマブル完了検出素子４２４とを組み合わせるような他の実装も可能性がある。このことは、性能、電力消費、及び面積を含む様々な理由のためになされうる。
【００４３】
図４Ｃは、使用可能なファンアウト構造において接続されるスイッチポイント３００の構成要素を示す。
【００４４】
動作において、プログラマブル完了検出回路は、制御されるバッファの出力へと情報を伝送することを許容する確認信号を生成する前に、次のデータ項目を許容する用意ができていることを示す信号を全ての宛先が伝送するのを待つ。通信プロトコルの異なる選択によって、この機能を実装するために異なる回路素子が使用されうる。適切なロジック機能、及びそれに対応する回路素子は、選択された通信プロトコルに依存するが、当業者にとっては明らかであろう。
【００４５】
［接続ボックスハードウェア］
再度図１に関して、各接続ボックス１１０は、ロジックブロック入力或いは出力がルーティングトラックへと接続されることを可能にする一組の接続ポイントを含んでいる。続いて図５に関して、プログラマブルスイッチ５０２、５０４を介して、ｉ）回線１０４Ｂから選択されたロジックブロックへ、ｉｉ）選択されたロジックブロックから回線１０４Ｂへと、回線１０４Ａからの信号を選択的にルーティングするための標準的な接続ポイント５００が示される。ロジックブロックへの信号及びロジックブロックからの信号は、このようにプログラマブルスイッチ５０２、５０４を使用して、回線トラック１０４Ａへと接続される。接続ポイント５００とスイッチポイント３００（図３）の機能的な差異の一つは、接続ポイントはルーティングトラックを分割するためのいかなるサポートも含んではいないということである。例えば、個々のルーティングトラックは、適切なスイッチの設定によって、プログラマブルスイッチポイント３００によって２つのトラックへと“切断”されうるが、接続ポイントによってそうされることはない。すなわち、スイッチポイント３００においては、北（Ｎ）ポートからの入力は、（図３Ａにおいては、図面に示されているが）南（Ｓ）ポートへと接続される必要はない。しかしながら、接続ポイント５００においては、トラック１０４Ａは分割できない。
【００４６】
その接続性において方向性を有する接続ボックス１０６は、本明細書に記述され、以下の明細書において更に説明されるように、変換された再設定可能なアーキテクチャにおいては改変なく複製されることが可能である。しかしながら、接続ポイント５００は、説明されたようにファンアウトをサポートしないことが明らかであろう。接続ポイント５００がファンアウトをサポートするように改変するために、上記の図４Ａ、図４Ｂにおいて説明されたようなプログラマブルスイッチポイントに類似した方法で設計されうる。
【００４７】
図３及び図４に関して上記で説明されたスイッチ及び接続を一般的に考慮すると、プログラマブルトラック／回線ルーティングによって必要とされる柔軟性に依存する多様な最適化の可能性が存在する。第一の最適化は、プログラマブルスイッチポイント３００からバッファ（図３Ｂ）を完全に排除することであり、それによってパイプラインを減少させる。除去されたバッファは、回線、或いは従来の信号ドライバによって置換されうる。これは、接続ポイント５００にとっても同様に使用可能な最適化である。第二の最適化は、プログラマブルスイッチ及び接続ポイントにおいて、その全体にわたって、設定可能なスイッチを排除することであり、ルーティングトラックからの対応するデータレールを互いに常に接続することである。データレールのみが直接接続される。この最適化は、一般的には、接続ポイントにとってより適切である。なぜなら、従来の接続ポイントは、通常このように設計されているからである。確認回線は、ファンアウトをサポートするためのプログラマブル完了検出素子を必要とするであろう。
【００４８】
当業者にとって明らかであろう、説明されるスイッチ構成の他の多くの変形が存在する。変形例は、スイッチポイント或いは接続ポイントを実装するためにパイプラインバッファと信号バッファの混合物を有するもの、全データレール上にスイッチを有するのに対していくつかのデータレール上にスイッチを有するものなどを含む。これらのオプションは、結果としてインターコネクトの柔軟性、面積、性能、及び電力消費の様々なトレードオフをもたらし、使用される実際の実装は、アプリケーションの特性及び様々なトレードオフの重要性に依存するであろう。
【００４９】
［設定可能なスイッチボックス及び接続ボックス接続の変換］
動作においては、同期式アーキテクチャ回路設計を非同期式データフロー設計へと変換する一ステップは、上記で説明された非同期式接続を同期式接続の代替として用いることである。適切な構成を作成するため、同期式回路接続のある特性を同定し、適切な非同期式置換を選択することが必要である。
【００５０】
第一の特徴或いは特性は、同期式アーキテクチャにおける設定可能な接続がファンアウトをサポートするか、或いはファンアウトをサポートしないかである。決定すべき第二の特性は、同期式回路設計における接続が方向性をもつか否かである。一方向性の接続では、その構成の可能性に関わりなく、情報の送信者及び受信者が静的に決定される。
【００５１】
ファンアウトが元の同期式回路設計において使用される場合においては、図４に関して上記で説明されたように、設定可能な完了検出素子を使用して、プログラマブルスイッチポイント３００’を接続ボックスへと単に置換することによって、非同期式等価物が作成される。ファンアウトが元の同期式設計において使用されていない場合には、変換される接続は、いかなる設定可能な完了検出素子も必要とせず、上記の図３に示されるように実装される。
【００５２】
一方向性の同期式回路設計に関して、等価の非同期式設計をサポートする変換されるデータフロー接続は、正確なファンアウトあり／ファンアウトなしの構成の選択に加えて、性能を改良するために、例えば図３に示されるバッファのようなデータフローバッファを導入しうる。このようなバッファの導入は任意であり、選択は、最終的に変換される設計の重要性（面積、電力、性能）の評価指標（metrics of interest）に基づいてなされるべきである。
【００５３】
双方向性の同期式回路設計に関して、非同期式等価物をサポートする変換されたデータフロー接続は、バッファの入力或いは出力のどちらかを適切なルーティングトラックへと接続するために使用される、方向性についての情報を伴うバッファを含む。図３は、接続性が双方向性であるプログラマブルスイッチポイント３００の一実施例を示す。ゆえに、種々のポートは、示されているバッファの入力或いは出力のどちらかに接続することが可能であるはずである。類似した構成は、同期式プログラマブル接続において存在し、そこでは、プログラマブル接続は、性能の理由で単一のバッファを含む。
【００５４】
このように、適切な接続形式の選択に従って、同期式接続を上記で説明された非同期式接続へと変換することは、本発明に従って同期式回路設計を非同期式回路設計へと変換する一ステップであることが理解される。
【００５５】
［同期式回路設計の非同期式データフロー設計への変換］
本技術分野においてよく知られているように、同期式ロジックブロックは、様々な設定可能なロジック機能を含み、そのロジック機能は、典型的には、以下のものを含むがそのいずれにも限定されることはない。すなわち、様々なサイズの設定可能なルックアップテーブル（ＬＵＴ）、キャリーチェーンサポート、プログラマブルＡＮＤゲート、プログラマブルＸＯＲゲート、プログラマブルＭＵＸ、及び読者にとってよく知られている他のものを含む。
【００５６】
続いて図６に関して、本発明に係る、同期式回路設計を非同期式データフローロジック回路設計へと変換するための処理６００を示す。
【００５７】
同期式回路を非同期式データフロー回路へと変換するために、同期式設計が同定される（ステップ６０２）。以下に記述されるように、この設計は、いかなる従来の機械及び／或いは回路構成設計でもよい。同期式設計における信号回線（ステップ６０４）及びロジック機能（ステップ６０６）が同定される。非同期式信号回線が、上記で説明されたように、マルチ回線トラックで置換される（ステップ６０８）。
【００５８】
スイッチや接続といった、同期式設計のプログラマブルな接続性が、上記で説明されたように、接続されるロジックの特性によって同定され（ステップ６１０）、対応する適切な非同期式スイッチ及び接続へと上記で説明されたように変換される（ステップ６１２）。上述されたように、異なるスイッチボックス及び接続ボックスの構成は、ロジック回路特性に基づいて選択されうる。その特性とは、ファンアウトあり／ファンアウトなし、ハンドシェイクプロトコル選択、及び一方向性／双方向性などである。
【００５９】
以下で記述されるように、同期式回路のロジック機能は、等価のデータフロービルディングブロックロジック機能へと変換される（ステップ６１４）。
【００６０】
［一般的なロジックブロック変換］
同期式回路の等価な非同期式回路への変換を完了するため、ＡＮＤゲートのようなロジック機能は、データフローＡＮＤゲートで置換される。データフローＡＮＤゲートは、その全入力で有効データが使用可能になるのを待ち、その場合にのみ続いて有効な出力を生成する。各ロジック機能の実装は、パイプラインで経由されてもよいし、経由されなくてもよい。その選択は、結果として生じるアーキテクチャに対して所望される、性能及び動作特性、例えば、電力、性能、サイズなどに依存する。プログラマブルルックアップテーブルのようなロジック機能は、データフロールックアップテーブルで置換され、ロジックブロックは、ルックアップ動作を実施して有効出力を生成する前に、全入力が有効になるのを待つ。
【００６１】
非同期式データフローロジック素子は、一般的には、本技術分野においてよく知られているように、同期式対応物と同一の機能を実施するが、元の同期式アーキテクチャ回線を置換する非同期式アーキテクチャ接続トラックで使用される、通信プロトコルの特定の選択に依存する非同期式な方法で動作する。例示の目的のため、典型的な同期式から非同期式へのロジックブロック変換が以下では説明される。
【００６２】
［レジスタ変換］
元のアーキテクチャからレジスタ或いは、フリップフロップがＦＩＦＯステージによって置換され、そのＦＩＦＯステージは、有効な非同期式データトークンで初期化され、標準的な制御プロトコルに従って制御されうる。これは、元の設計からフリップフロップの機能性を複製するために十分である。
【００６３】
［メモリブロック、及び他の知的財産（ＩＰ）ブロック変換］
メモリブロックは、ロジック変換と類似した方法でデータフロー実装へと変換されうる。データフロー読み出し及び書き込みポートが導入され、それが、元の同期式読み出し及び書き込みポートを置換する。他のＩＰブロック（例えば乗算器）もまた、ロジックの一次入力及び出力ポート上に、データフローインターフェイスを確保することによって、同様な方法で変換される。
【００６４】
［同期式バウンダリの導入］
変換されたアーキテクチャは、ラップされうる。すなわち、電子的及び論理的に同期式回路バウンダリによって包まれる。同期式回路バウンダリは、データフロープロトコルを単純な同期式入力及び出力信号へと変換する。このことは様々な方法において実施されうる。例えば、有効な入力は、各クロック周期において生成され、データフローファブリック１００（図１）への各入力のために導入される変換回路によって、データフローファブリックへと挿入される。ファブリックが、クロック信号の周波数よりも高いスループットにおいて動作し得る構成要素から構成される限り、ファブリックは、正確に動作を継続するであろう。
【００６５】
類似したインターフェイスは出力において適用されうる。ファブリックによってサポートされるスループットが、出力がクロックされる速度よりも高い場合、常にデータフローファブリックの出力上の有効データは同期式出力へと伝送されるであろう。
【００６６】
データフローファブリック１００が、クロックを必要とするロジックファミリーとインターフェイスで連結されている場合、Ｉ／Ｏクロック周波数が、データフローファブリックへのインターフェイスにおいて、いかなる不安定性及び／或いは準安定性をも避けるように選択されることを保証することが重要である。
【００６７】
［同期式回路設計形式］
本発明は、実質的には、設計データの再使用の必要なく、いかなる回路設計形式を変換するためにでも適応されうることが理解されるであろう。その代わりに、作製は本明細書に説明される代替物を作製するように実装される。サポートされる設計形式は、例えば以下を含む。
―回路図に基づく設計、
―例えば、以下を含むハードウェア記述言語（ＨＤＬ）設計：
ＶＨＤＬ、Ｖｅｒｉｌｏｇ、ＡＢＥＬ、ＡＨＤＬ、ＨＤＣａｍｌ、ＪＨＤＬ、及び読者に知られているその他の言語。
【００６８】
［同期式から非同期式への回路変換実施例］
図７Ａ、図７Ｂ及び図８Ａ、図８Ｂに関して、典型的な同期式から非同期式への回路変換が示される。図７Ａ、図７Ｂに関しては、単純な同期式ロジックＮＡＮＤゲートがブール代数記号形式７０２において、及び実際の回路形式７０４において示される。ＮＡＮＤゲート７０２は、入力ａ、ｂ及び出力‘ｏｕｔ’を含むように見える。回路それ自体は、回路７０４において電界効果トランジスタを伴う単純な形式において実装される。
【００６９】
図６に関して上記で説明された処理を考慮すると、単純な同期式回路設計は、接続ａ、ｂ及びｏｕｔを伴う（ステップ６０４）ＮＡＮＤゲートとして同定される（ステップ６０２）。同期式ロジック機能は、もちろん、ＮＡＮＤゲートである（ステップ６０６）。変換処理においては、ａ、ｂ、及びｏｕｔ回線はそれぞれ上記に示された３回線トラックへと変換され（ステップ６０８）、トラックは、ａ回線のためにａ．ｔ、ａ．ｆ（データ回線）及びａ．ｅ（制御回線）を含み、ｂ回線のためにｂ．ｔ、ｂ．ｆ及びｂ．ｅを含み、ｏｕｔ回線のためにｏｕｔ．ｔ、ｏｕｔ．ｆ及びｏｕｔ．ｅを含む。．ｔ及び．ｔ回線はデータ回線を含み、．ｅ回線は制御回線を含む。接続及びスイッチは、元の設計においてはファンアウトのない一方向性のものであると仮定され（ステップ６１０）、このように接続ボックスは上記で説明されたようにプログラマブル接続スイッチへと変換され、スイッチボックスは、バッファリングとともに、或いはバッファリングなしで、プログラマブルスイッチポイントを含むよう変換される（ステップ６１２）。ファンアウトはないので、完了検出は必要とされない。ＮＡＮＤロジック機能は、図８Ａ、図８Ｂに示されるデータフロー動作を伴って非同期式ＮＡＮＤ機能へと変換される（ステップ６１４）。
【００７０】
図８Ａ、図８Ｂに関して、同一のロジックＮＡＮＤ機能が、一つの特定の非同期式ロジックファミリーとともに実装されるように示される。そのロジックファミリーは、ＮＡＮＤゲート機能回路８０４及びＮＡＮＤゲート完了回路８０２を含む。動作においては、ゲート機能回路８０４は、非同期式ＮＡＮＤロジック機能を計算するように動作し、一方、完了回路８０２は、先行する及び追随するロジックブロックとともに、ハンドシェイク／制御信号機能を実行するように機能する。上述されたように、説明された本発明に係り、元のＮＡＮＤゲートからの各信号回線入力は、３回線トラックシステムへと変換されている。
【００７１】
前のロジックブロックからの入力ａ．ｔ、ａ．ｆ及びｂ．ｔ、ｂ．ｆは、２つのＮＯＲロジックゲート８０６への入力である。ＮＯＲゲートの出力は、入力がいつ有効データトークン値を保持するか、及び入力がいつ有効データトークン値を保持しないかを決定するために使用されうる。有効データトークンは、ａ．ｔ或いはａ．ｆをハイにすることよって示され、その結果、ゲートは論理ゼロ、或いはロウの値を出力する。無効データトークンは、ａ．ｔ及びａ．ｆの両者がロウであることによって示され、その結果、ゲートは論理１、或いはハイの値を出力する。２つのＮＯＲゲートからの結果は、第一の完了検出素子Ｃ１へと提供され、Ｃ１の出力は、いつ両入力が有効データトークンを保持するか、或いは、いつ両入力が有効データトークンを保持しないかを示す。
【００７２】
完了回路８０２におけるＮＡＮＤゲート８０８は、入力＿ｏ．ｔ及び＿ｏ．ｆを有し、これらはそれぞれ、回路機能８０４からの出力ｏｕｔ．ｔ及びｏｕｔ．ｆの補完された形式である。ＮＡＮＤゲート８０８の出力は、信号＿ｏ．ｔ及び＿ｏ．ｆがデータトークンを保持するかどうかを示すという点で、ＮＯＲゲートと類似した機能を有する。有効データトークンは、＿ｏ．ｔ或いは＿ｏ．ｆのどちらかがロウであることによって示され、その結果、ゲートは論理１、或いはハイの値を出力する。無効データトークンは、＿ｏ．ｔ及び＿ｏ．ｆの両者がハイであることによって示され、その結果、ゲートは論理０、或いはロウの値を出力する。続いて結果は完了検出素子Ｃ２へと提供され、そのＣ１からの他の入力は入力が有効か否かを示す。この組み合わせられた完了検出は、それぞれ入力ａ．ｔ、ａ．ｆ及びｂ．ｔ、ｂ．ｆの確認信号に対応する信号ａ．ｅ及びｂ．ｅを介して、入力が確認されうるか否かを示すために使用される。ｏｕｔ．ｅ信号は、出力のためのトラックの一部であり、データｏｕｔ．ｔ及びｏｕｔ．ｆ信号が伝送されるステージから到着する。最終的には、出力からの確認信号、ｏｕｔ．ｅは、完了Ｃ２の出力と組み合わせられ、ロジックＮＡＮＤ機能を計算する回路８０４を使用可能にするために使用される信号ｅｎを生成する。
【００７３】
以下は非同期式ＮＡＮＤゲートの動作の完全な一周期を説明する。初期状態においては、“ｅｎ”はハイである。“ａ”入力がハイであり（ａ．ｔをロウ、ａ．ｆをハイにすることによって表される）、かつ、“ｂ”入力がハイである（ｂ．ｔをハイ、ｂ．ｆをロウにすることによって表される）場合、回路８０４におけるｎ型トランジスタは、＿ｏ．ｔをロウにし、そしてｏｕｔ．ｔをハイに設定する。並行して、ゲートＣ１の出力は、最終的にハイになり、入力として＿ｏ．ｆ及び＿ｏ．ｔを伴うＮＡＮＤゲートの出力もまた、ハイになる。なぜなら、＿ｏ．ｔはロウであるからである。これによって、ａ．ｅ、ｂ．ｅは両方ともロウになり、それによって入力を確認する。
【００７４】
いったん入力が確認されると、入力ａ．ｔ、ａ．ｆ及びｂ．ｔ、ｂ．ｆは、両者ともロウになり、入力“ａ”及び“ｂ”においてハンドシェイクプロトコルを完了する。並行して、出力データが確認されると、ｏｕｔ．ｅは最終的にロウになる。これは、次にＣ３の出力をハイにし、ｅｎをロウにする。ｅｎがロウになる場合、＿ｏ．ｔ及び＿ｏ．ｆの両方がハイに駆動され、それによって今度は出力ｏｕｔ．ｔ、ｏｕｔ．ｆがロウにリセットされる。同様に並行して、Ｃ２の出力がハイになると、ａ．ｅ及びｂ．ｅをハイにし、入力“ａ”及び“ｂ”においてハンドシェイクを完了する。最終的には、ｏｕｔ．ｅがハイになってＣ３にその出力を変化させるや否や、ｅｎは、再度ハイになり、ゲートに再度計算するための準備をさせる。
【００７５】
回路８０４は、ｅｎ信号によって許可されるとＮＡＮＤ動作を計算し、出力回線ｏｕｔ．ｔ及びｏｕｔ．ｆに正確に計算されたデータトークンを生成する。
【００７６】
読者は、説明された本発明に係り、元のＮＡＮＤゲートからの各信号回線入力は、３回線トラックシステムへと変換され、入力ａはａ．ｔ、ａ．ｆ及びａ．ｅによって置換され、ｂは、ｂ．ｔ、ｂ．ｆ、ｂ．ｅによって置換され、ｏｕｔはｏｕｔ．ｔ、ｏｕｔ．ｆ及びｏｕｔ．ｅによって置換されることを理解し認識するであろう。ここで、接尾辞“．ｔ”及び接尾辞“．ｆ”はデータ回線を示し、接尾辞“．ｅ”はハンドシェイク回線を示す。機能回路８０４は、非同期式ロジックＡＮＤ機能を実施するために動作し、一方、完了回路８０２は、有効データが入力において受信されること、及び、先行及び追随するロジック機能への適切なハンドシェイク信号に従って、有効データが出力において生成されることを保証するために動作する。
【００７７】
［統合の透明性］
本発明の重要な特性は、データフローアーキテクチャが、非同期式構成における速度及び他の固有な利点を提供しながら、機能的に元の同期式ロジック機能をエミュレートすることが可能であることである。
【００７８】
同一の基本原理の様々な同期式データフロー実装もまた可能である。例えば、非同期式ハンドシェイクは、本明細書で上述されたように、同期式回路技術を使用してエミュレートされうることがよく知られている。（例えば有効ビットを伴って）完全なフロー制御を有する同期式通信プロトコルは、同期式ロジックを使用する説明されたインターコネクトの非同期式特性をエミュレートするための方法の一実施例であり、目下、当業者にとって明らかであろう。これらの実装は、本発明への明らかな拡張である。
【００７９】
［コンフィギュレーションメモリ］
ロジックゲート及び固定ロジック機能に加えて、本発明は、プログラマブル同期式ロジック変換に対しても同様に適用可能である。プログラマブルロジックデバイスは、本技術分野において、かつ読者にとってよく知られているが、メモリ、スイッチ、マルチプレクサ或いは、デバイスのロジック機能を制御するためにプログラムされるような他のプログラマブル素子のようなプログラマブル素子を含む。例えば、図３Ｂは、スイッチポイントにおけるプログラマブルスイッチ３１８を示す。これらのスイッチ及び、回路における他のプログラマブル素子は、各プログラマブル素子のための設定値を保持する、ストレージ或いはメモリの適切な形に接続される。例えば、スイッチが制御されうる一つの方法は、スイッチが開放か、閉鎖かを特定するメモリの１ビットを使用することによるものである。
【００８０】
本発明に係る、同期式ロジック設計から非同期式データフロー設計への変換後、元のロジックにおけるスイッチとデータフローロジックにおける対応するスイッチの設定は、同一のままである。したがって、元のロジックと同一のメモリビットが、変換されたロジックをプログラムするために使用されうる。このことは、本質的に全プログラマブルロジックデバイスにあてはまる。これは本発明の特徴かつ利点であり、元の設計のロジックが、変換された設計において使用されるとき本質的に変化しないままであるようプログラミングすることを可能にする。
【００８１】
変換されたロジック設計がプログラマブル完了検出素子（例えば、プログラマブル完了検出回路４１５）の導入によってファンアウトをサポートしなければならない場合には、この新しいプログラマブル素子は設定サポートを必要とする。これらの新しいプログラマブル素子によって必要とされる設定制御は、典型的には、元の同期式実装のために前に存在するコンフィギュレーションビットから推測されうる。完了検出素子４１５の場合には、必要なことは、Ｎ、Ｓ、Ｅ或いはＷ ａｃｋレール（図４Ｂ）が、完了に関与するか否かを知ることだけである。これは、Ｎ、Ｓ、Ｅ、Ｗのためのデータレールが出力へと接続されているか否かを制御するために使用されているのと同じ情報である。図４Ｃを考察すると、プログラマブル完了素子４２４に必要とされる設定は、出力群３２２におけるスイッチを制御する設定と同一である。
【００８２】
回路設計者は、上記で説明されたような単純なロジックを使用する、必要とされる任意の新しい設定信号を計算するために、既存のコンフィギュレーションビットを使用するよう選択してもよい。或いは、設計者は、新しいコンフィギュレーションビットを導入するよう選択してもよい。これらの二つの選択肢間の選択は、最終的な設計の全電力消費、面積、及び／或いは性能のような設計のトレードオフに依存する。本発明の特徴及び利点は、変換された設計を制御するために必要とされるコンフィギュレーションビットが、元の同期式設計のためのコンフィギュレーションビットと同一であるか、或いはほぼ同一であるように生成されうることである。その結果として、元の同期式設計をプログラムするのに使用されたいかなるソフトウェア及びプログラミングでも、変換された設計をプログラムするためにほぼ改変することなく使用されうる。
【００８３】
このように、同期式回路設計を非同期式データフロー設計、特にプログラマブル非同期式データフロー設計へと変換するための新規かつ改良された方法及びシステムが提供されてきた。本発明は、系統的、実行可能及び繰り返し可能な処理を提供する。その処理は、同期式回路設計を評価し、回線、スイッチ／接続及びロジック機能を等価な機能の非同期式回路設計へと変換し、それゆえに、その全利点を伴って機能的に等価な非同期式回路を実装する。系統的に変換を行うための処理、及び非同期式素子のための等価ハードウェアが（形式として、或いは機能記述として）提供される。本発明を使用して、いかなる同期式回路設計も非同期式の等価物へと変換されうる。典型的には元の設計実装へと変化を加えることなく、ネットリスト、概略設計或いは他の設計実装を使用する。本発明は、電子工学の分野において、特に回路設計及び実装の分野において適用される。
【００８４】
本発明は特定の実施形態に関して示され記述されてきたが、このようなものに限定されるものではない。多数の改変、変形及び拡張が読者にとって明らかであろう。
【図２Ｂ】
2010515972.tif 000003
【図２Ｃ】
2010515972.tif 000004
【図１】
2010515972.tif 000005
【図２Ａ】
2010515972.tif 000006
【図３Ａ】
2010515972.tif 000007
【図３Ｂ】
2010515972.tif 000008
【図３Ｃ】
2010515972.tif 000009
【図３Ｄ】
2010515972.tif 000010
【図４Ａ】
2010515972.tif 000011
【図４Ｂ】
2010515972.tif 000012
【図４Ｃ】
2010515972.tif 000013
【図５】
2010515972.tif 000014
【図６】
2010515972.tif 000015
【図７Ａ】
2010515972.tif 000016
【図７Ｂ】
2010515972.tif 000017
【図８Ａ】
2010515972.tif 000018
【図８Ｂ】
2010515972.tif 000019
【手続補正書】
【提出日】平成21年9月2日(2009.9.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
同期式回路設計を非同期式データフロー設計へと変換するための方法であって、
複数の信号伝送回線、複数の同期式ロジックブロック、複数の接続ボックス、及び複数のスイッチボックスを含む同期式回路設計を同定するステップであり、前記複数の接続ボックスは、前記複数の回線を前記複数の同期式ロジックブロックへと接続する複数の同期式接続スイッチを含み、前記複数のスイッチボックスは、複数の回線を他の複数の回線へと接続する複数のスイッチボックススイッチを含む、ステップと、
前記同期式回路設計の複数の機能的な特性を決定するステップと、
前記同期式設計から、少なくともいくつかの前記複数の同期式ロジックブロックを、対応する複数の非同期式データフローロジックブロックへと変換し、複数のプロトコル信号を、対応する複数の非同期式データフローロジック機能に提供するステップと、
前記同期式回路設計において、前記複数の回線を複数のトラックに変換するステップであって、各トラックは、前記複数の非同期式ロジックブロック間でデータ及び複数のプロトコル信号を通信するために複数の回線をサポートするステップと、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式スイッチボックススイッチを複数のプログラマブルスイッチポイントへと変換するステップと、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式接続スイッチを複数のプログラマブルスイッチへと変換するステップとを含む、
ことを特徴とする方法。
【請求項２】
前記同期式回路設計の前記複数の機能的特性はファンアウト及び方向性を含む群から選択される、
ことを特徴とする請求項１に記載の方法。
【請求項３】
ファンアウトを含む変換された同期式回路設計は、前記ファンアウトの実行を非同期式に検出するために配置される完了検出回路を含む、
ことを特徴とする請求項２に記載の方法。
【請求項４】
双方向性を含む変換された同期式回路設計は、方向性のある信号をサポートするために配置されるバッファを含む、
ことを特徴とする請求項２に記載の方法。
【請求項５】
前記トラックは、３回線トラック、２回線トラック及び単一回線／マルチ電圧トラックを含む群から選択される、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記複数の同期式ロジックブロックは、複数の設定信号を使用してプログラムされる複数のプログラマブル同期式ロジックブロックを含み、
前記複数の非同期式データフローロジックブロックは、複数の設定信号を使用してプログラムされ、前記複数の同期式ロジックブロックに対応する、複数のプログラマブル非同期式データフローロジックブロックを含み、
前記複数のプログラマブル同期式ロジックブロックをプログラムするために使用される前記複数の設定信号の少なくとも幾つかは、前記複数のプログラマブル非同期式データフローロジックブロックをプログラムするために使用される前記複数の設定信号と同一である、
ことを特徴とする請求項１に記載の方法。
【請求項７】
同期式回路設計を非同期式データフロー設計へと変換するためのシステムであって、
複数の信号伝送回線、複数の同期式ロジックブロック、複数の接続ボックス、及び複数のスイッチボックスを含む同期式回路設計を同定する手段であって、前記複数の接続ボックスは、前記複数の回線を前記複数の同期式ロジックブロックへと接続する複数の同期式接続スイッチを含み、前記複数のスイッチボックスは、複数の回線を他の複数の回線へと接続する複数のスイッチボックススイッチを含む、手段と、
前記同期式回路設計の複数の機能的な特性を決定する手段と、
前記同期式設計から、少なくともいくつかの前記複数の同期式ロジックブロックを、対応する複数の非同期式データフローロジックブロックへと変換する手段であって、複数のプロトコル信号を、対応する複数の非同期式データフローロジック機能に提供する手段と、
前記同期式回路設計において、前記複数の回線を複数のトラックに変換する手段であって、各トラックは、複数の前記非同期式ロジックブロック間でデータ及び複数のプロトコル信号を通信するために複数の回線をサポートする、手段と、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式スイッチボックススイッチを複数のプログラマブルスイッチポイントへと変換する手段と、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式接続スイッチを複数のプログラマブルスイッチへと変換する手段とを含む、
ことを特徴とするシステム。
【請求項８】
前記同期式回路設計の前記複数の機能的特性はファンアウト及び方向性を含む群から選択される、
ことを特徴とする請求項７に記載の方法。
【請求項９】
ファンアウトを含む変換された同期式回路設計は、前記ファンアウトの実行を非同期式に検出するために配置される完了検出回路を含む、
ことを特徴とする請求項８に記載の方法。
【請求項１０】
双方向性を含む変換された同期式回路設計は、方向性のある信号をサポートするために配置されるバッファを含む、
ことを特徴とする請求項８に記載の方法。
【請求項１１】
前記トラックは、３回線トラック、２回線トラック及び単一回線／マルチ電圧トラックを含む群から選択される、
ことを特徴とする請求項７に記載の方法。
【請求項１２】
前記複数のプログラマブルスイッチはそれぞれ、ロジックブロック素子を回線へと選択的に接続するためのプログラマブルスイッチを含む、
ことを特徴とする請求項７に記載の方法。
【請求項１３】
前記ロジックブロックの前記複数の機能的特性がファンアウトを含む場合、前記プログラマブルスイッチは、更に完了検出回路を含む、
ことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記複数のプログラマブルスイッチポイントはそれぞれ、各回線接続のための一組のプログラマブルスイッチを含み、それによってプログラマブルスイッチポイントにおける任意の回線が、前記プログラマブルスイッチポイントにおける任意の他の回線へと選択的に接続されうる、
ことを特徴とする請求項７に記載の方法。
【請求項１５】
前記ロジックブロックの前記複数の機能的特性がファンアウトを含む場合、前記プログラマブルスイッチポイントは更に、完了検出回路を含む、
ことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記ロジックブロックの前記複数の機能的特性が双方向性を含む場合、前記プログラマブルスイッチポイントは、回線接続において前記一組のプログラマブルスイッチ間に配置されるバッファを含む、
ことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記非同期式データフロー設計は、ＦＰＧＡにおける複数の回路において実装され、前記複数の回路は、複数の非同期式動作回路及び複数の同期式動作回路を含む群から選択される、
ことを特徴とする請求項７に記載の方法。
【請求項１８】
前記複数の同期式ロジックブロックは、複数の設定信号を使用してプログラムされる複数のプログラマブル同期式ロジックブロックを含み、
前記複数の非同期式データフローロジックブロックは、複数の設定信号を使用してプログラムされ、前記複数の同期式ロジックブロックに対応する、複数のプログラマブル非同期式データフローロジックブロックを含み、
前記複数のプログラマブル同期式ロジックブロックをプログラムするために使用される前記複数の設定信号の少なくとも幾つかは、前記複数のプログラマブル非同期式データフローロジックブロックをプログラムするために使用される前記複数の設定信号と同一である、
ことを特徴とする請求項７に記載の方法。
【請求項１９】
同期式回路設計を非同期式データフロー設計へと変換するためのシステムであって、
プロセッサと、
前記プロセッサへと接続されたメモリであって、前記プロセッサの動作を制御するための複数の命令を記憶する、メモリとを含み、
前記プロセッサの前記動作は、
複数の信号伝送回線、複数の同期式ロジックブロック、複数の接続ボックス、及び複数のスイッチボックスを含む同期式回路設計であって、前記複数の接続ボックスは、前記複数の回線を前記複数の同期式ロジックブロックへと接続する複数の同期式接続スイッチを含み、前記複数のスイッチボックスは、複数の回線を他の複数の回線へと接続する複数のスイッチボックススイッチを含む、同期式回路設計を同定する動作と、
前記同期式回路設計の複数の機能的な特性を決定する動作と、
前記同期式設計から、少なくともいくつかの前記複数の同期式ロジックブロックを、対応する複数の非同期式データフローロジックブロックへ変換し、複数のプロトコル信号を、対応する複数の非同期式データフローロジック機能に提供する、動作と、
前記同期式回路設計において、前記複数の回線を複数のトラックへと変換し、各トラックは、複数の前記非同期式ロジックブロック間でデータ及び複数のプロトコル信号を通信するために複数の回線をサポートする、動作と、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式スイッチボックススイッチを複数のプログラマブルスイッチポイントへと変換する動作と、
前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式接続スイッチを複数のプログラマブルスイッチへと変換する動作とを行う、
ことを特徴とするシステム。
【国際調査報告】
2010515972.tif 000020
2010515972.tif 000021
2010515972.tif 000022