(57)【特許請求の範囲】
【請求項１】
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）であって、
通信及び相互接続に用いられる特定用途向け集積回路ベース（ＡＳＩＣベース）のハードコアが前記ＦＰＧＡに組み込まれ、
ＡＳＩＣベースの前記ハードコアは、高速交換相互接続ユニットと少なくとも１つのステーションとを有し、
それぞれのステーションは、前記高速交換相互接続ユニットに接続され、
前記ステーションは、前記ＦＰＧＡのそれぞれの機能モジュールとＡＳＩＣベースの前記ハードコアとの間でデータを送信し、
前記高速交換相互接続ユニットは、複数の前記ステーション間でデータを送信し、
複数の前記ステーションの数が複数の機能モジュールの数に等しく、複数の前記ステーションのうち１つは、複数の前記機能モジュールのうち１つに接続され、
対応する機能モジュールのものと一致しているクロック周波数、データビット幅、及び時系列が、それぞれのステーション用にプログラミングにより設定されて構成される、
ＦＰＧＡ。
【請求項２】
ＡＳＩＣベースの前記ハードコアのオンチップの相互接続バスプロトコルが、ＡＶＡＬＯＮ、Ｗｉｓｈｂｏｎｅ、ＣｏｒｅＣｏｎｎｅｃｔ、又はＡＭＢＡのうち少なくとも１つを含む、
請求項１に記載のＦＰＧＡ。
【請求項３】
ＡＳＩＣベースの前記ハードコアは、クロスバースイッチマトリックスを用いて前記ＦＰＧＡに一様に配置される複数のＡＳＩＣベースのハードコアのうちの１つである、
請求項１又は２に記載のＦＰＧＡ。
【請求項４】
ＡＳＩＣベースの前記ハードコアは、ＡＸＩ相互接続バスプロトコルを用いるハードコアであり、前記ＡＸＩ相互接続バスプロトコルはＡＭＢＡに属する、
請求項１から３の何れか一項に記載のＦＰＧＡ。
【請求項５】
前記ＦＰＧＡは、少なくとも１つのロジックセルバンクを備え、
それぞれのロジックセルバンクが、少なくとも１つのマスターステーションと、少なくとも１つのスレーブステーションとを有する、
請求項４に記載のＦＰＧＡ。
【請求項６】
ＡＳＩＣベースの前記ハードコアは、ＡＸＩ相互接続バスプロトコルを用いる２又はそれより多くのハードコアを有し、
前記ＡＸＩ相互接続バスプロトコルを用いる複数の前記ハードコアは、ＡＸＩブリッジを用いて互いと通信する、
請求項１から３の何れか一項に記載のＦＰＧＡ。
【請求項７】
前記ＡＸＩ相互接続バスプロトコルを用いる複数の前記ハードコアは、同数のマスターステーション及び同数のスレーブステーションを有し、同一のビット幅及び同一のクロック周波数を有する、
請求項６に記載のＦＰＧＡ。
【請求項８】
前記ＡＸＩ相互接続バスプロトコルを用いる前記ハードコアは、異なる数のマスターステーション及び異なる数のスレーブステーションを有し、複数の異なるビット幅及び複数の異なるクロック周波数を有する、
請求項６に記載のＦＰＧＡ。
【請求項９】
前記ＡＸＩ相互接続バスプロトコルを用いるいくつかのハードコアが、同数のマスターステーション及び同数のスレーブステーションを有し、同一のビット幅及び同一のクロック周波数を有し、
前記ＡＸＩ相互接続バスプロトコルを用いる複数の他のハードコアが、異なる数のマスターステーション及び異なる数のスレーブステーションを有し、複数の異なるビット幅及び複数の異なるクロック周波数を有する、
請求項６に記載のＦＰＧＡ。
【請求項１０】
ＡＳＩＣベースの前記ハードコアは、リングバスを用いて前記ＦＰＧＡに一様に配置される複数のＡＳＩＣベースのハードコアのうちの１つである、
請求項１又は２に記載のＦＰＧＡ。
【請求項１１】
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）に基づくデータ通信の方法であって、
通信及び相互接続に用いられる特定用途向け集積回路ベース（ＡＳＩＣベース）のハードコアが前記ＦＰＧＡに組み込まれ、
ＡＳＩＣベースの前記ハードコアは、高速交換相互接続ユニットと少なくとも１つのステーションとを有し、
それぞれのステーションは、前記高速交換相互接続ユニットに接続され、
前記ステーションは、前記ＦＰＧＡのそれぞれの機能モジュールとＡＳＩＣベースの前記ハードコアとの間でデータ送信を実行し、
前記高速交換相互接続ユニットは、複数の前記ステーション間でデータ送信を実行し、
前記方法は、
送信元の機能モジュールに対応するステーションを用いて前記高速交換相互接続ユニットにより、前記送信元の機能モジュールにより送信されたデータを受信する段階であって、前記データは、宛先の機能モジュールに関する情報を搬送する、受信する段階と、
前記宛先の機能モジュールに関する前記情報に従って、前記宛先の機能モジュールに対応するステーションを用いて、前記高速交換相互接続ユニットにより、受信した前記データを前記宛先の機能モジュールに送信する段階と、
を備え、
複数の前記ステーションの数が複数の機能モジュールの数に等しく、複数の前記ステーションのうち１つが、複数の前記機能モジュールのうち１つに接続され、
対応する機能モジュールのものと一致しているクロック周波数、データビット幅、及び時系列が、それぞれのステーション用にプログラミングにより設定されて構成される、
方法。
【請求項１２】
ＡＳＩＣベースの前記ハードコアのオンチップの相互接続バスプロトコルが、ＡＶＡＬＯＮ、Ｗｉｓｈｂｏｎｅ、ＣｏｒｅＣｏｎｎｅｃｔ、又はＡＭＢＡのうち少なくとも１つを含む、
請求項１１に記載の方法。
【請求項１３】
ＡＳＩＣベースの前記ハードコアは、クロスバースイッチマトリックスを用いて前記ＦＰＧＡに一様に配置される複数のＡＳＩＣベースのハードコアのうちの１つである、
請求項１１又は１２に記載の方法。
【請求項１４】
ＡＳＩＣベースの前記ハードコアは、リングバスを用いて前記ＦＰＧＡに一様に配置される複数のＡＳＩＣベースのハードコアのうちの１つである、
請求項１１又は１２に記載の方法。
【請求項１５】
請求項１１から１４の何れか一項に記載の方法をコンピュータに実行させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は集積回路技術の分野に関し、特に、フィールドプログラマブルゲートアレイ及び通信方法に関する。
【背景技術】
【０００２】
フィールドプログラマブルゲートアレイ（ＦＰＧＡ、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）は、プログラマブルロジックアレイ（ＰＬＡ、Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ）、ゲートアレイロジック（ＧＡＬ、Ｇａｔｅ  Ａｒｒａｙ  Ｌｏｇｉｃ）、又はコンプレックスプログラマブルロジックデバイス（ＣＰＬＤ、Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などのプログラマブルデバイスに基づいて更に発展した製品である。ＦＰＧＡは、特定用途向け集積回路（ＡＳＩＣ、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）の分野において、セミカスタムの回路として現れている。ＦＰＧＡはカスタム回路の不足分を改善するだけでなく、元のプログラマブルデバイスのゲート回路数が限定されるというデメリットも克服する。ＦＰＧＡは、現在のデジタルシステム設計において、主要なハードウェアプラットフォームである。ＦＰＧＡの主要機能は、ＦＰＧＡが、特定の機能を実装すべく、ソフトウェアを用いてユーザにより完全に構成及びプログラムされ、ＦＰＧＡが繰り返し消去され得るということである。従って、ＦＰＧＡはますます広範囲に応用される。
【０００３】
現在、ＦＰＧＡチップの構造は、主にルックアップテーブル（ＬＵＴ、Ｌｏｏｋ−Ｕｐ−Ｔａｂｌｅ）技術に基づいており、複数の共通の機能モジュール（例えば、ＲＡＭ、クロック管理、及びＤＳＰ）を統合するハードコア（ＡＳＩＣ型）を含む。
【０００４】
ＬＵＴベースのＦＰＧＡは非常に高集積なので、ＦＰＧＡの密度は数万、さらには数千万のゲートを含む。ＦＰＧＡは、極めて複雑な時系列及びロジックの組み合わせを有する回路機能を実装し得る。ＦＰＧＡの主なコンポーネントは、プログラマブル入出力ユニット、基本的なプログラマブルロジックユニット、完全なクロック管理、組み込まれたブロックＲＡＭ、豊富なルーティングリソース、組み込まれた基礎をなす機能ユニット、組み込まれた専用ハードウェアモジュールを含む。
【０００５】
図１を参照すると、図１は、先行技術におけるＦＰＧＡのアプリケーションの概略図である。
【０００６】
ＦＰＧＡの規模はメガレベルに達し、（Ｋ×Ｋの）ロジックエレメント（ＬＥ、Ｌｏｇｉｃ  Ｅｌｅｍｅｎｔ）を含む。ＦＰＧＡにより実装され得る機能も、極めて豊富且つ複雑である。従って、開発の間に、ＦＰＧＡは多数の機能モジュール（Ｍｏｄｕｌｅ）に分割される。それぞれの機能モジュールは、いくつかの比較的独立した機能を実装し、チップ全体にいくつかの回路を実装する。しかしながら、複数の機能モジュール間でデータ及び情報の送信を実行するには、インタフェースを用いる必要がある。
【０００７】
例えば、図１の応用例では、１０個の機能モジュール（機能モジュール０から機能モジュール９）が用いられてよく、多数の機能モジュール間に通信がある。一例として機能モジュール０を用いると、機能モジュール０と機能モジュール１との間の通信、及び機能モジュール３と機能モジュール５との間の通信がある。
【０００８】
複数の機能モジュール間の通信は、規定されたインタフェースを用いて実行される必要がある。データトラフィックが混雑するので、データビット幅が比較的広いものもある。いくつかの機能モジュールが複数の機能モジュールと通信を実行する場合、複数の通信インタフェースが規定される必要があり、これにより、複数の異なる通信インタフェースを用いて、複数の異なる機能モジュールと通信が実行される。
【０００９】
それぞれの機能モジュールは、ＬＵＴ及びフリップフロップを用いて、回路機能を実装する。様々な回路間の相互接続は、ＦＰＧＡのルーティングを用いて実装される。
【００１０】
図２を参照すると、図２は、先行技術におけるＦＰＧＡの内部構造の概略図である。
【００１１】
複数の水平線及び複数の鉛直線は、複数のルーティングリソースを表している。様々な構成可能論理ブロック（ＣＬＢ、Ｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｂｌｏｃｋ）の入力と出力との間の相互接続は、プログラミングにより実装されてよい。図２のＦＰＧＡは、入出力ブロック（ＩＯＢ、Ｉｎｐｕｔ  Ｏｕｔ  Ｂｌｏｃｋ）を用いて外部に接続される。
【００１２】
近接して配置されるいくつかのＣＬＢは、共に１つの機能モジュールの回路を実装する。近接したいくつかの他のＣＬＢは、共に別の機能モジュールの回路を実装する。複数の通信インタフェース、及び複数の機能モジュール間の相互接続は、いくつかのＣＬＢ及びルーティングを用いて実装されてよい。
【００１３】
図３を参照すると、図３は、先行技術におけるＦＰＧＡの機能モジュールのマッピングに関する概略図である。
【００１４】
図３のＦＰＧＡは、機能モジュール０、機能モジュール３、機能モジュール８という３つの機能モジュールを含む。
【００１５】
それぞれの機能モジュールは、近接した複数のＣＬＢ（図３の小さい格子縞）を含み、複数の機能モジュールは、ルーティング（図３の矢印）を用いて互いに接続される。
【００１６】
図３の機能モジュール０、機能モジュール３、及び機能モジュール８は、ＦＰＧＡの左上、右中央、及び左下の位置にそれぞれ配置される。機能モジュール０と機能モジュール３との間の相互接続及び通信に、インタフェースが必要とされる。同様に、機能モジュール３と機能モジュール８との間の相互接続及び通信にも、インタフェースが必要とされる。
【００１７】
図に示すように、複数の機能モジュール間の相互接続及び通信は、ルーティングの多段カスケーディングにより実装され得るが、多段カスケーディングは複数の中間ノードのルーティングリソース及びＣＬＢリソースを占有する。従って、多数のＣＬＢ及びルーティングを通過する場合、距離が長くなり、長い遅延が生じる。４０ｎｍのコンポーネントでは、1段の移動に０．７〜１ｎｓの時間が必要になり得る。距離が長い場合、ルーティング遅延は１０ｎｓ以上に達する。しかしながら、ロジックは、１００ＭＨｚより高い周波数ではほとんど動作することができない。一方、リソース利用率が低く、全体的に低い性能がもたらされる。更に、ＦＰＧＡのルーティングリソースは貴重であり限られている。ローカルのルーティングリソースが不十分な場合、設計全体の配置及びルーティングの障害が生じる、又は、リモートエリアのルーティングリソースが用いられる必要がある。
【００１８】
従って、従来のＦＰＧＡの長い遅延及び不十分な性能に関する問題を解決し得るＦＰＧＡが提供される必要がある。
【発明の概要】
【００１９】
上述の技術的問題を解決すべく、本願の複数の実施形態がＦＰＧＡ及び通信方法を提供する。これにより、従来のＦＰＧＡの長い遅延及び全体的に不十分な性能に関する問題が解決され得る。
【００２０】
以下の複数の技術的解決法は、本願の複数の実施形態において開示される。
【００２１】
第１態様に従って、フィールドプログラマブルゲートアレイＦＰＧＡが提供され、通信及び相互接続に用いられる少なくとも１つの特定用途向け集積回路ＡＳＩＣベースのハードコアが、ＦＰＧＡに組み込まれる。ＡＳＩＣベースのハードコアは、高速交換相互接続ユニットと、少なくとも１つのステーションとを含む。それぞれのステーションは、高速交換相互接続ユニットに接続される。ステーションは、ＦＰＧＡのそれぞれの機能モジュールとＡＳＩＣベースのハードコアとの間で、データを送信するよう構成される。高速交換相互接続ユニットは、複数のステーションの間でデータを送信するよう構成される。
【００２２】
第１態様の第１の可能な実装態様において、複数のステーションの数が複数の機能モジュールの数に等しく、複数のステーションのうちの１つが複数の機能モジュールのうちの１つに接続される。又は、それぞれのステーションは複数の機能モジュールに対応し、それぞれのステーションは対応する複数の機能モジュールに接続される。
【００２３】
第１態様及び上述の可能な実装態様のどちらかに関連して、第２の可能な実装態様では、複数のステーションの数が複数の機能モジュールの数に等しい場合、対応する機能モジュールのものと一致しているクロック周波数、データビット幅、及び時系列が、それぞれのステーション用に構成される。高速交換相互接続ユニットはプログラム固定である。
【００２４】
第１態様及び上述の可能な実装態様の何れかに関連して、第３の可能な実装態様では、ＡＳＩＣベースのハードコアのオンチップの相互接続バスプロトコルが、ＡＶＡＬＯＮ、Ｗｉｓｈｂｏｎｅ、ＣｏｒｅＣｏｎｎｅｃｔ、又はＡＭＢＡのうち少なくとも１つを含む。
【００２５】
第１態様及び上述の可能な実装態様の何れかに関連して、第４の可能な実装態様では、ＡＳＩＣベースのハードコアは、クロスバースイッチマトリックスを用いてＦＰＧＡに一様に配置される。
【００２６】
第１態様及び上述の可能な実装態様の何れかに関連して、第５の可能な実装態様では、ＡＳＩＣベースのハードコアは、ＡＸＩ相互接続バスプロトコルを用いるハードコアであり、ＡＸＩバスプロトコルはＡＭＢＡの１つに属する。それぞれのロジックセルバンクは、少なくとも１つのマスターステーション及び少なくとも１つのスレーブステーションを含む。
【００２７】
第１態様及び上述の可能な実装態様の何れかに関連して、第６の可能な実装態様では、ＡＳＩＣベースのハードコアは、ＡＸＩ相互接続バスプロトコルを用いる２又はそれより多くのハードコアを含む。ＡＸＩ相互接続バスプロトコルを用いる複数のハードコアは、ＡＸＩブリッジを用いて互いと通信する。それぞれのロジックセルバンクは、少なくとも１つのマスターステーション及び少なくとも１つのスレーブステーションを含む。
【００２８】
第１態様及び上述の可能な実装態様の何れかに関連して、第７の可能な実装態様では、ＡＸＩ相互接続バスプロトコルを用いる複数のハードコアは、同数のマスターステーション及び同数のスレーブステーションを含み、同一のビット幅及び同一の周波数を有する。
【００２９】
第１態様及び上述の可能な実装態様の何れかに関連して、第８の可能な実装態様では、ＡＸＩ相互接続バスプロトコルを用いる複数のハードコアは、異なる数のマスターステーション及び異なる数のスレーブステーションを含み、複数の異なるビット幅及び複数の異なる周波数を有する。
【００３０】
第１態様及び上述の可能な実装態様の何れかに関連して、第９の可能な実装態様では、ＡＸＩ相互接続バスプロトコルを用いるいくつかのハードコアは、同数のマスターステーション及び同数のスレーブステーションを含み、同一のビット幅及び同一の周波数を有する。ＡＸＩ相互接続バスプロトコルを用いる複数の他のハードコアは、異なる数のマスターステーション及び異なる数のスレーブステーションを含み、複数の異なるビット幅及び複数の異なる周波数を有する。
【００３１】
第１態様及び上述の可能な実装態様の何れかに関連して、第１０の可能な実装態様では、高速交換相互接続ユニットは、リングバスを用いてＦＰＧＡに一様に配置される。
【００３２】
第２態様に従って、ＦＰＧＡベースのデータ通信方法が提供され、通信及び相互接続に用いられる少なくとも１つの特定用途向け集積回路ＡＳＩＣベースのハードコアがＦＰＧＡに組み込まれる。ＡＳＩＣベースのハードコアは、高速交換相互接続ユニット及び少なくとも1つのステーションを含み、それぞれのステーションは、高速交換相互接続ユニットに接続される。ステーションは、ＦＰＧＡのそれぞれの機能モジュールとＡＳＩＣベースのハードコアとの間でデータ送信を実行し、高速交換相互接続ユニットは、複数のステーションの間でデータ送信を実行する。方法は以下の段階を含む。つまり、データ送信元の機能モジュールに対応するステーションを用いて高速交換相互接続ユニットにより、データ送信元の機能モジュールにより送信されたデータを受信する段階であって、データは、宛先の機能モジュールに関する情報を搬送する。そして、宛先の機能モジュールに関する情報に従って、宛先の機能モジュールに対応するステーションを用いて、高速交換相互接続ユニットにより、受信したデータを宛先の機能モジュールに送信する段階である。
【００３３】
第２態様の第１の可能な実装態様において、複数のステーションの数が複数の機能モジュールの数に等しく、複数のステーションのうちの１つが複数の機能モジュールのうちの１つに接続される。又は、それぞれのステーションは複数の機能モジュールに対応し、それぞれのステーションは対応する複数の機能モジュールに接続される。
【００３４】
第２態様及び上述の可能な実装態様のどちらかに関連して、第２の可能な実装態様では、複数のステーションの数が複数の機能モジュールの数に等しい場合、対応する機能モジュールのものと一致しているクロック周波数、データビット幅、及び時系列が、それぞれのステーション用に構成される。高速交換相互接続ユニットはプログラム固定である。
【００３５】
第２態様及び上述の可能な実装態様の何れかに関連して、第３の可能な実装態様では、ＡＳＩＣベースのハードコアのオンチップの相互接続バスプロトコルが、ＡＶＡＬＯＮ、Ｗｉｓｈｂｏｎｅ、ＣｏｒｅＣｏｎｎｅｃｔ、又はＡＭＢＡのうち少なくとも１つを含む。
【００３６】
第２態様及び上述の可能な実装態様の何れかに関連して、第４の可能な実装態様では、ＡＳＩＣベースのハードコアは、クロスバースイッチマトリックスを用いてＦＰＧＡに一様に配置される。
【００３７】
先行技術と比較して、本願は以下の利点を有することが、上述の実施形態から分かり得る。
【００３８】
ＡＳＩＣベースの複数のハードコアが、本願により提供されるＦＰＧＡに組み込まれる。ＡＳＩＣベースの複数のハードコアはＦＰＧＡに一様に配置され、これにより、それぞれの機能モジュールとＡＳＩＣベースの近接したハードコアとの間のデータ交換を容易にし、時間遅延を減少させ得る。ＡＳＩＣベースのハードコアは、高速交換相互接続ユニットと、少なくとも１つのステーションとを含み、複数のステーションは一様に配置される。従って、機能モジュールは、近接したステーションに簡便に接続され得る。送信元の機能モジュールがステーションにデータを送信し、ステーションはデータを高速交換相互接続ユニットに送信し、高速交換相互接続ユニットは、宛先の機能モジュールに接続されたステーションを用いて、データを宛先の機能モジュールに送信する。このように、送信元の機能モジュールと宛先の機能モジュールとの間で、データが送信される。複数の実施形態により提供されるＦＰＧＡは、データの高速送信を実行し得る。ＡＳＩＣベースのハードコアは高性能なので、高性能ＦＰＧＡに関する要件が満たされ得る。
【図面の簡単な説明】
【００３９】
本願の複数の実施形態又は先行技術における複数の技術的解決法をより明確に説明すべく、複数の実施形態又は先行技術を説明するのに必要とされる添付図面を以下に簡潔に説明する。当業者が、これらの添付図面から創造努力をすることなく他の図面をさらに導き出し得ることは明らかである。
【００４０】
【図１】先行技術におけるＦＰＧＡのアプリケーションの概略図である。
【００４１】
【図２】先行技術におけるＦＰＧＡの内部構造の図である。
【００４２】
【図３】先行技術におけるＦＰＧＡの機能モジュールのマッピングの概略図である。
【００４３】
【図４】本願によるＦＰＧＡの実施形態１の概略図である。
【００４４】
【図５】本願によるＦＰＧＡの実施形態２の概略図である。
【００４５】
【図６ａ】本願によるＦＰＧＡにおける機能モジュールの概略図である。
【００４６】
【図６ｂ】本願によるＦＰＧＡにおける機能モジュールの別の概略図である。
【００４７】
【図７】本願によるＦＰＧＡの実施形態３の概略図である。
【００４８】
【図８ａ】本願によるＦＰＧＡの実施形態４の概略図である。
【００４９】
【図８ｂ】本願によるＦＰＧＡの実施形態５の概略図である。
【００５０】
【図９】本願によるＦＰＧＡの実施形態６の概略図である。
【００５１】
【図１０】本願によるＦＰＧＡの実施形態７の概略図である。
【００５２】
【図１１】本願によるＦＰＧＡベースのデータ通信方法の実施形態１の概略図である。
【００５３】
【図１２】本願によるＦＰＧＡベースのデータ通信方法の信号伝達ダイアグラムである。
【発明を実施するための形態】
【００５４】
本願の複数の実施形態における複数の技術的解決法を、本願の複数の実施形態における複数の添付図面を参照して、以下に明確に且つ完全に説明する。説明される複数の実施形態は、本願の実施形態のいくつかに過ぎず、全てではないことは明らかである。本願の複数の実施形態に基づいて、当業者により創造努力をすることなく取得される他の全ての実施形態は、本願の保護範囲内に含まれるものである。
【００５５】
本願の目的、機能、及び利点をより明瞭にし、理解できるようにすべく、複数の添付図面を参照して、本願の複数の特定の実装態様を以下に詳細に説明する。
［実施形態１］
【００５６】
図４を参照すると、図４は、本願によるＦＰＧＡの実施形態１の概略図である。
【００５７】
通信及び相互接続に用いられる特定用途向け集積回路ＡＳＩＣベースのハードコアが、この実施形態により提供されるＦＰＧＡに組み込まれる。
【００５８】
ＡＳＩＣベースのハードコアは高性能に関する要件を満たし得て、１ＧＨｚより高い周波数で動作し得るので、ＡＳＩＣベースのハードコアは、Ｔｂｐｓの帯域幅を提供することが可能である。
【００５９】
ＡＳＩＣベースのハードコアは、ＦＰＧＡに一様に配置される。このように、ＦＰＧＡのそれぞれの機能モジュールは、近接したＡＳＩＣベースのハードコアにデータを送信し得ることが保証されてよく、時間遅延が減少し得る。
【００６０】
ＡＳＩＣベースのハードコアをＦＰＧＡに一様に配置させる目的は、ＦＰＧＡのそれぞれの機能モジュールが、近接したＡＳＩＣベースのハードコアに接続することを可能にすることであるということが、留意されるべきである。
【００６１】
ＡＳＩＣベースのハードコアは、高速交換相互接続ユニット１００と、少なくとも１つのステーションＩ／Ｆとを含む。
【００６２】
全てのステーションＩ／Ｆは一様に配置される。このように、ステーションは、可能であれば、どの機能モジュールの周囲にも配置されてよく、それぞれの機能モジュールは、空間的に近接しているステーションＩ／Ｆに接続されてよい。従って、データ伝送の時間遅延が減少する。
【００６３】
それぞれのステーションＩ／Ｆは、高速交換相互接続ユニット１００に接続される。
【００６４】
ステーションＩ／Ｆは、ＦＰＧＡのそれぞれの機能モジュールとＡＳＩＣベースのハードコアとの間でデータを送信するよう構成される。
【００６５】
高速交換相互接続ユニット１００は、全てのステーション間でデータを送信するよう構成される。
【００６６】
物理的に、ＦＰＧＡのそれぞれの機能モジュールはステーションＩ／Ｆに接続されるが、それぞれのステーションＩ／Ｆは、高速交換相互接続ユニット１００に接続されることが理解できる。従って、ステーションＩ／Ｆ及び高速交換相互接続ユニット１００を介して、１つの機能モジュールが別の機能モジュールにデータを送信し得て、複数の機能モジュール間のデータ送信が実行される。
【００６７】
ＡＳＩＣベースのハードコアは高性能に関する要件を満たし得て、１ＧＨｚより高い周波数で動作し得るので、ＡＳＩＣベースのハードコアは、Ｔｂｐｓの帯域幅を提供することが可能である。
【００６８】
ＡＳＩＣベースの複数のハードコアが、この実施形態により提供されるＦＰＧＡに組み込まれる。ＡＳＩＣベースの複数のハードコアはＦＰＧＡに一様に配置され、これにより、それぞれの機能モジュールとＡＳＩＣベースの近接したハードコアとの間のデータ交換を容易にし、時間遅延を減少させ得る。ＡＳＩＣベースのハードコアは、高速交換相互接続ユニットと、少なくとも１つのステーションとを含み、複数のステーションは一様に配置される。従って、機能モジュールは、近接したステーションに簡便に接続され得る。送信元の機能モジュールがステーションにデータを送信し、ステーションはデータを高速交換相互接続ユニットに送信し、高速交換相互接続ユニットは、宛先の機能モジュールに接続されたステーションを用いて、データを宛先の機能モジュールに送信する。このように、送信元の機能モジュールと宛先の機能モジュールとの間で、データが送信される。この実施形態により提供されるＦＰＧＡは、データの高速送信を実行し得る。ＡＳＩＣベースのハードコアは高性能なので、高性能ＦＰＧＡに関する要件が満たされ得る。
［実施形態２］
【００６９】
図５を参照すると、図５は、本願によるＦＰＧＡの実施形態２の概略図である。
【００７０】
本願の実施形態により提供されるＦＰＧＡの動作プロセスを詳細に説明すべく、以下では、一例として、２つの機能モジュール間のデータ交換を用いる。
【００７１】
機能モジュール０はＦＰＧＡの左上隅に設置され、機能モジュール８がＦＰＧＡの右下隅に設置される。２つの機能モジュール間に長い距離があることが図５から分かり得る。機能モジュール０は送信元の機能モジュールであり、機能モジュール８は宛先の機能モジュールである。すなわち、機能モジュール０は機能モジュール８にデータを送信する。
【００７２】
送信元の機能モジュール及び宛先の機能モジュールは、相対的なものであることが理解できる。機能モジュール０も宛先の機能モジュールとして用いられてよく、機能モジュール８も送信元の機能モジュールとして用いられてよい。
【００７３】
機能モジュール０及び機能モジュール８の両方は、破線のボックス内にいくつかのＣＬＢを含む。
【００７４】
機能モジュールが、近接原理に従ってステーションに接続されてよく、すなわち、空間配置において、機能モジュールに空間的に最も近接したステーションに、機能モジュールが優先的に接続されることが留意されるべきである。
【００７５】
この実施形態は、１つの機能モジュールが１つのステーションに接続される一例を用いて説明される。その理由は、この1対1の設定は実装が容易だからである。すなわち、配置されるステーションの数は、機能モジュールの数に依存する。それぞれの機能モジュールは、空間的に最も近接したステーションに接続される。
【００７６】
例えば、図５の機能モジュール０は、ステーションＩ／Ｆ０に接続され、機能モジュール８はステーションＩ／Ｆ８に接続される。
【００７７】
最初に、機能モジュール０は、ステーションＩ／Ｆ０を用いて高速交換相互接続ユニット１００にデータを送信し、次に、高速交換相互接続ユニット１００は、ステーションＩ／Ｆ８を用いて機能モジュール８にデータを送信する。
【００７８】
機能モジュール０により送信されるデータは、機能モジュール８に関する情報を搬送することが留意されるべきである。従って、高速交換相互接続ユニット１００は、データで搬送される情報に従って、データが、機能モジュール８に接続されているステーションＩ／Ｆ８に送信される必要があることを判定し得る。
【００７９】
データで搬送された情報は、機能モジュールのＩＤであってもよく、又はアドレスマッピングであってもよいことが理解できる。これは、アドレスセグメントが機能モジュールに属するからである。
【００８０】
図５から分かるように、ＡＳＩＣベースのハードコアがこの実施形態に用いられた後、データは、ＡＳＩＣベースのハードコアを通って、どのＣＬＢも通過することなく、２つの機能モジュール間で送信され得る。ＡＳＩＣベースのハードコアの高速交換相互接続ユニット１００は高速なので、時間遅延が減少し得る。
【００８１】
この実施形態は、１つのステーションが１つの機能モジュールに対応する一例を用いて説明される。ＦＰＧＡが多数の機能モジュールと、少数のステーションとを含む場合、１つのステーションと複数の機能モジュールとの間に通信が設定されてよいことが理解できる。そのような制御は、１つのステーションが１つの機能モジュールに対応する場合より、僅かに複雑である。しかしながら、複数のリソースが十分に用いられ得て、コストが減少する。それぞれのステーションは、近接原理に従って、対応する複数の機能モジュールに接続される。
【００８２】
１つのステーションが複数の機能モジュールに対応する動作原理は、１つのステーションが１つの機能モジュールに対応する動作原理と同一であり、詳細が改めてここで説明されることはない。
【００８３】
更に、この実施形態は、一例として２つの機能モジュールを用いることによってのみ説明される。ＦＰＧＡは、複数の機能モジュールを含んでよく、具体的には実際の要件に従って設定されてよいことが理解できる。更に、複数の機能モジュールの分割が、異なる特定の複数の回路に従って変わってよい。複数の機能モジュールの分割について、２つの態様を以下に説明する。
【００８４】
図６ａを参照すると、図６ａは、本願によるＦＰＧＡの機能モジュールの概略図である。
【００８５】
図６ａは、６つの機能モジュール、つまり機能モジュール０から機能モジュール５を含む。
【００８６】
それぞれの機能モジュールは、ステーションＩ／Ｆを用いて、高速交換相互接続ユニット１００に接続される。
【００８７】
対応する機能モジュールのものと一致しているクロック周波数、データビット幅、及び時系列が、それぞれのステーション用に構成されることが留意されるべきである。
【００８８】
例えば、機能モジュール０の送信データのビット幅は５１２ビット、そのクロック周波数は１５０ＭＨｚである。従って、機能モジュール０のデータは、５１２ビット及び１５０ＭＨｚに構成される必要がある。機能モジュール４の送信データは、２５６ビット及び３００ＭＨｚである。従って、機能モジュール４のデータは、２５６ビット及び３００ＭＨｚに構成される必要がある。このように、機能モジュールとステーションとの間で円滑なデータ送信が実行されることが保証され得る。
【００８９】
複数の機能モジュールの特定の要件に応じて、同一のビット幅及び同一のクロック周波数が、ＦＰＧＡの複数のステーション用に構成されてもよく、又は、異なるクロック周波数が複数のステーション用に構成されてもよいことが理解できる。
【００９０】
従って、本願の実施形態により提供されるステーション用に、クロック周波数、データビット幅、及び時系列が、プログラミングにより設定されてよいことが分かり得る。このことは、アプリケーションを容易にし、複数の異なる機能モジュールの複数の異なる要件を満たし得る。
【００９１】
更に、複数の機能モジュール間で送信されるいくつかの単純な信号が、先行技術における従来の態様を用いて交換されてもよいことが留意されるべきである。例えば、機能モジュール０と他の５つの機能モジュールとの間の単純な通信は、今まで通り、図に示される矢印線に従って実行される通信であってよい。
【００９２】
概して、高速交換相互接続ユニット１００はプログラム固定であり、すなわち、複数のパラメータが設定され構成される。このことは、ＡＳＩＣベースのハードコアの性能をより高くし、そのアプリケーションの汎用性を改善し、使用を容易にする。
【００９３】
ＡＳＩＣベースのハードコア以外のＦＰＧＡの複数のパーツはプログラマブルなパーツなので、複数の機能モジュールの分割は、更に別の形態又は組み合わせであってよく、例えば更に、図６ｂに示されるものであってよい。
【００９４】
図６ｂを参照すると、図６ｂは、本願によるＦＰＧＡの機能モジュールの別の概略図である。
【００９５】
図６ｂの機能モジュールの分割は、図６ａのものと異なる。
【００９６】
機能モジュール０は、７８６ビット及び１５０ＭＨｚに構成される。機能モジュール２は、１０２４ビット及び２００ＭＨｚに構成される。機能モジュール４は、２８８ビット及び３３３ＭＨｚに構成される。
【００９７】
本願の実施形態により提供されるＡＳＩＣベースのハードコアは、ＦＰＧＡベンダにより定められたオンチップの相互接続バスプロトコルを用いてもよく、又は、限定されないが、ＡＶＡＬＯＮ、Ｗｉｓｈｂｏｎｅ、ＣｏｒｅＣｏｎｎｅｃｔ、ＡＭＢＡ、又は同様のものを含む、当技術分野で現在一般的に用いられる成熟したオンチップの相互接続バスプロトコルを用いてもよいことが留意されるべきである。
【００９８】
１つのＦＰＧＡにおいて、１つのオンチップの相互接続バスプロトコルのみが用いられてもよく、又は、複数のオンチップの相互接続バスプロトコルが同時に用いられてもよいことが理解できる。例えば、ＦＰＧＡにおいて、１つのＩ／ＦがＡＶＡＬＯＮを用い、別のＩ／ＦがＷｉｓｈｂｏｎｅを用いる。
【００９９】
本願の実施形態により提供される高速交換相互接続ユニットは、クロスバースイッチマトリックス（Ｃｒｏｓｓ  Ｂａｒ）を用いてＦＰＧＡに一様に配置される、又は、リングバス（Ｒｉｎｇ  Ｂｕｓ）を用いてＦＰＧＡに一様に配置されることが好ましい。
【０１００】
クロスバースイッチマトリックスが、図４及び図５に示される。
【０１０１】
複数の実施形態を参照して、高速交換相互接続ユニットが、クロスバースイッチマトリックスを用いて一様に配置された場合の特定の実装を以下に説明する。この説明は、ＡＳＩＣベースのハードコアにより用いられるオンチップの相互接続バスプロトコルがＡＸＩ相互接続プロトコルであるという前提に基づいている。
［実施形態３］
【０１０２】
図７を参照すると、図７は、本願によるＦＰＧＡの実施形態３の概略図である。
【０１０３】
この実施形態において、ＡＳＩＣベースのハードコアは、ＡＸＩ相互接続バスプロトコルを用いるハードコアである。すなわち、ハードコアはＡＸＩ相互接続マトリックスを用いる。
【０１０４】
ＡＸＩバスプロトコルは、ＡＭＢＡのサブセットに属する。
【０１０５】
ＦＰＧＡにおいて、ＡＸＩ相互接続（ＡＸＩ−Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）のハードＩＰコアが直接ハードウェア化される。当技術分野のこの既存の成熟したＩＰコア（現在、Ｘｉｌｉｎｘ及びＡｌｔｅｒａという主に２つの種類のＦＰＧＡがあり、両方とも対応するソフトコア（Ｓｏｆｔ  Ｃｏｒｅ）を有し、ソフトコアはハードウェア化されることだけを必要とし、Ｉ／Ｆ配置はシリコンダイ（ｄｉｅ）上の複数の位置に適切になされる）は、リスクが低く高性能であり（動作周波数は、ＧＨｚの大きさに容易に達する）、基本的に何の変更も必要とせずに、現在の標準規格の大部分のＩＰコア（ｃｏｒｅ）と相互接続され得る。
【０１０６】
それぞれのロジックセルバンク（Ｌｏｇｉｃ  Ｃｅｌｌ  Ｂａｎｋ）は、少なくとも１つのマスター（Ｍａｓｔｅｒ）ステーションＩ／Ｆ、及び１つのスレーブ（Ｓｌａｖｅ）ステーションＩ／Ｆに対応する。１つのマスター及び１つのスレーブは、外面上は１つのステーションとして用いられ、すなわち、１つのステーションは、マスターだけではなくスレーブも含むことが留意されるべきである。言い換えると、ステーションはマスターとしてデータを送信し得て、スレーブとしてデータを受信もし得る。このように、複数のステーションが、可能であれば、ＦＰＧＡに一様に配置されることが保証され得る。
【０１０７】
この実施形態は、それぞれのロジックセルバンクが１つのステーションに対応する一例を用いて説明される。すなわち、それぞれのロジックモジュールが１つのステーションに接続される。１つのロジックセルバンクは、複数のステーションにも対応してよいことが理解できる。
【０１０８】
ロジックセルバンクは、いくつかのＣＬＢの組み合わせである。
【０１０９】
マスターステーションがデータを能動的に送信するステーションであり、受信器ステーションがデータを受動的に受信するステーションであることが理解できる。
【０１１０】
図７のマスター（Ｍａｓｔｅｒ）がＭで表され、図７のスレーブ（Ｓｌａｖｅ）がＳで表される。
【０１１１】
この実施形態では、１６個のＭと１６個のＳが含まれ得る。
【０１１２】
Ｍの数がＳの数と異なってよいことが留意されるべきである。概して、Ｍの数はＳの数より少ない。これは、多数の機能モジュールが、データを受動的に受信する必要があるだけだからである、又は、Ｍがデータを読み取るのを受動的に待つ必要があるからである。
【０１１３】
もちろん、便宜上、Ｍの数はＳの数と同一になるよう設定されてよい。すなわち、Ｍ及びＳはペアになる。更に、具体的なＭの数及びＳの数は、実際の要件に従って選択されてよく、この実施形態において指定された１６に限定されることはない。この実施形態により提供されるＦＰＧＡは、１６個のマスター及び１６個のスレーブが、データ通信・交換を並列に実行することを可能にする能力を有し、データ通信・交換に十分な機能モジュール（十分な帯域幅）を提供する。
【０１１４】
図７のＤＤＲ＿ＣＴＲＬは、ＦＰＧＡと外部のＤＤＲチップとの間のインタフェースである。高速インタフェースのＩＰコア（ｃｏｒｅ）も、ＦＰＧＡと外部のチップとの間の通信を実行するのに用いられる。シリアルパラレル変換インタフェースも、ＦＰＧＡと外部との間の通信を実行するためのインタフェースである。
［実施形態４］
【０１１５】
図８ａを参照すると、図８ａは、本願によるＦＰＧＡの実施形態４の概略図である。
【０１１６】
この実施形態により提供されるＦＰＧＡと、実施形態３のＦＰＧＡとの違いは、実施形態３では１つのＡＸＩ相互接続のみが用いられるが、この実施形態では、ＡＸＩブリッジ（ＡＸＩ−Ｂｒｉｄｇｅ）を用いて相互接続される２つのＡＸＩ相互接続が用いられ、これにより、通信及び相互接続が複数のハードコア間に実装されるということである。
【０１１７】
図８ａから分かるように、２つのＡＸＩ相互接続は両方とも、ＡＸＩ相互接続マトリックスを用いて実装され、両方のＡＸＩ相互接続マトリックスのどちらも、８個のＭ及び８個のＳを含む。すなわち、２つのＡＸＩ相互接続マトリックスにおけるＭの数及びＳの数は同一である。
【０１１８】
２つのＡＸＩ相互接続マトリックスにおけるＭの数及びＳの数は、異なってもよいことが理解できる。例えば、一方のＡＸＩ相互接続マトリックスにおけるＭの数及びＳの数は１６であり、もう一方のＡＸＩ相互接続マトリックスにおけるＭの数及びＳの数は８である。
【０１１９】
実施形態３により提供されたＦＰＧＡと比較して、この実施形態により提供されるＦＰＧＡは以下の利点を有する。つまり、難易度が低く、ハードウェアの難易度とルーティングの難易度の両方が低下し得て、それに応じてコストが減少し得る。
【０１２０】
実施形態３により提供されたＦＰＧＡと比較して、この実施形態により提供されるＦＰＧＡは以下のデメリットを有する。つまり、２つのＡＸＩ相互接続マトリックス内のみの複数のステーションに接続された複数の機能モジュール間で、同時データ送信が実行され得る。しかしながら、２つのＡＸＩ相互接続マトリックス間に、ＡＸＩブリッジが、複数のステーションに接続された複数の機能モジュール間でデータを送信するのに用いられる必要があり、これは、時分割多重通信方式を用いてのみ実行され得る。従って、実施形態３により提供されたＦＰＧＡと比較して、このＦＰＧＡの性能は低下する。例えば、データ送信の帯域幅（又は、スループット率）が低下し得る。例えば、２つの機能モジュールが、同一の期間にブリッジを用いてデータ交換を実行する必要がある場合、２つの機能モジュールは、このブリッジにより提供された帯域幅のみを共有し得る。
【０１２１】
この実施形態のＦＰＧＡは、一例として、２つのＡＸＩ相互接続マトリックスを用いて説明される。図８ｂに示されるように、３つのＡＸＩ相互接続マトリックスが含まれてもよく、それらのＡＸＩ相互接続マトリックスは、ＡＸＩブリッジを用いて相互接続されることが理解できる。もちろん、さらに多くのＡＸＩ相互接続マトリックスが含まれてもよく、それらのＡＸＩ相互接続マトリックスは、ＡＸＩブリッジを用いて相互接続される。動作原理はこの実施形態のものと同一であり、改めてここで説明されることはない。
【０１２２】
更に、この実施形態における２つのＡＸＩ相互接続マトリックスは同一の性能を有する。ＦＰＧＡの複数のＡＸＩ相互接続マトリックスが異なる性能を有する一事例を、以下に説明する。性能を変える目的は、特定の要件を満たすためである。例えば、いくつかのアプリケーションの場合には、ＦＰＧＡのいくつかの機能モジュールのみが高性能のデータ送信を必要とする、例えば、より大きい帯域幅を必要とする。従って、コストを減少させるべく、１つのＡＸＩ相互接続マトリックスが高性能を有するように設定されてよく、これにより、高性能を必要とするこれらの機能モジュールに適合させるが、他の通常の複数の機能モジュールは、実行するのに通常性能のＡＸＩ相互接続マトリックスを用いてよい。
【０１２３】
添付図面を参照して、複数のＡＸＩ相互接続マトリックスが異なる性能を有するＦＰＧＡを以下に説明する。
［実施形態６］
【０１２４】
図９を参照すると、図９は、本願によるＦＰＧＡの実施形態６の概略図である。
【０１２５】
この実施形態により提供されるＦＰＧＡは、２つのＡＸＩ相互接続マトリックスを含み、１つのＡＸＩ相互接続マトリックスは通常モードのＡＸＩ相互接続マトリックスであり、もう１つのＡＸＩ相互接続マトリックスは高性能モードのＡＸＩ相互接続マトリックスである。
【０１２６】
高性能モードのＡＸＩ相互接続マトリックスのビット幅及び周波数は両方とも、通常モードのＡＸＩ相互接続マトリックスのものより大きい。
【０１２７】
この実施形態において、通常モードのＡＸＩ相互接続マトリックスは、１６個のＭ及び１６個のＳを含み、高性能モードのＡＸＩ相互接続マトリックスは、８個のＭ及び８個のＳを含む。
【０１２８】
通常モードのＡＸＩ相互接続マトリックス及び高性能モードのＡＸＩ相互接続マトリックスの、特定のＭの数及びＳの数は、実際の要件に従って選択されてよく、これは本願の実施形態において具体的に限定されることはなく、一例としてのみ説明されることが理解できる。
【０１２９】
この実施形態は、一例として、１つの通常モードのＡＸＩ相互接続マトリックス、及び１つの高性能モードのＡＸＩ相互接続マトリックスを用いて説明されることが留意されるべきである。複数の高性能モードのＡＸＩ相互接続マトリックス、及び／又は複数の通常モードのＡＸＩ相互接続マトリックスが含まれてもよいことが理解できる。複数のＡＸＩ相互接続マトリックスは、ＡＸＩブリッジを用いて互いに接続される。
【０１３０】
上述の実施形態全てにおいて、ＦＰＧＡの高速交換相互接続ユニットは、クロスバースイッチマトリックスを用いてＦＰＧＡに一様に配置される。本願は、高速交換相互接続ユニットが、リングバス（Ｒｉｎｇ  Ｂｕｓ）を用いて一様に配置されるＦＰＧＡを更に提供する。
［実施形態７］
【０１３１】
図１０を参照すると、図１０は、本願によるＦＰＧＡの実施形態７の概略図である。
【０１３２】
この実施形態により提供されるＦＰＧＡにおいて、高速交換相互接続ユニットは、リングバス（Ｒｉｎｇ  Ｂｕｓ）を用いてＦＰＧＡに一様に配置される。
【０１３３】
リングバスは閉じたリングなので、高速交換相互接続ユニットは、ＦＰＧＡにより一様に配置され得て、リングバス上のステーションも、より一様に配置され得る。従って、それぞれの機能モジュールがリングバス上の近接したステーションに接続することは、より簡便である。
【０１３４】
図１０に示されるＦＰＧＡにおいて、Ｍ及びＳはリングバス上でペアになるよう設定されてもよいことが留意されるべきである。このように、使用の便宜が改善されてよく、製造もより簡単になる。もちろん、Ｍの数及びＳの数が異なるように設定されてもよい。例えば、Ｍの数はＭの数より大きくなるよう設定される。このことは、実際の要件に従って選択されてよい。
【０１３５】
リングバスのアーキテクチャにおいて、ステーションは、段階的にデータを宛先に送信し得て、双方向パラレル伝送が実行され得る。双方向伝送の利点は、時間遅延が減少し得ることである。例えば、時計回りのみのデータ送信が提供される場合、機能モジュールにより前のノードと実行されるべき通信は、チップ上の循環経路（ｃｉｒｃｌｅ）全体を通る必要がある。しかしながら、双方向伝送は用いられる場合、この送信は、反時計回りに１つのノードのみを必要とする。
【０１３６】
パラレル送信の利点は、双方向パラレル伝送が２つのデータ送信経路に相当し、２つの経路は特定の帯域幅を提供してよく、これにより帯域幅が２倍になるということである。
【０１３７】
図１０のＦＰＧＡにおけるＤＤＲ＿ＣＴＲＬ、高速インタフェースのＩＰコア（ｃｏｒｅ）、及びシリアルパラレル変換インタフェースの機能は、図７に対応する実施形態のものと同一であり、改めてここで説明されることはない。
【０１３８】
要約すると、上述の実施形態のそれぞれにより提供されるＦＰＧＡにおいて、ＡＳＩＣベースのハードコアがＦＰＧＡに組み込まれ、これにより、それぞれの機能モジュールは近接ベースのアクセスを実行し得る。従って、データ伝送の時間遅延が実質的に減少し得て、ＦＰＧＡの全体性能が改善される。
【０１３９】
上述の実施形態により提供されるＦＰＧＡに基づいて、本願の実施形態は、上述の実施形態により提供されるＦＰＧＡに基づくデータ送信方法を更に提供する。詳細な説明が、添付図面を参照して以下に提供される。
［方法の実施形態１］
【０１４０】
図１１を参照すると、図１１は、本願によるＦＰＧＡベースのデータ通信方法の実施形態１の概略図である。
【０１４１】
この実施形態により提供されるＦＰＧＡベースのデータ通信方法は、以下の段階を含む。
【０１４２】
Ｓ１１０１．高速交換相互接続ユニットが、データ送信元の機能モジュールに対応するステーションを用いて、データ送信元の機能モジュールにより送信されたデータを受信する段階であり、データは、宛先の機能モジュールに関する情報を搬送する。
【０１４３】
データ送信元の機能モジュールは、データを送信する当事者であり、宛先の機能モジュールは、データを受信する当事者であることが留意されるべきである。それぞれの機能モジュールは、データ送信元の機能モジュールとして用いられても、宛先の機能モジュールとして用いられてもよいことが理解できる。
【０１４４】
データ送信元の機能モジュールにより送信されたデータは、宛先の機能モジュールに関する情報を搬送するので、高速交換相互接続ユニットは、その情報に従って、宛先の機能モジュールに対応するステーションを捜し出してよく、データは、宛先の機能モジュールに対応するステーションにより、宛先の機能モジュールに転送され得る。
【０１４５】
用いられるオンチップの相互接続バスプロトコルが決定された後に、宛先の機能モジュールに関する情報の内容が決定されることが留意されるべきである。これは、情報の内容がオンチップの相互接続バスプロトコルにより指定されるからである。本願の実施形態における宛先の機能モジュールに関する情報は、機能モジュールのＩＤであってもよく、又はアドレスマッピングであってもよい。特定のアドレスセグメントは特定の機能モジュールに属するので、アドレスに対応する機能モジュールがアドレスに従って捜し出され得る。
【０１４６】
Ｓ１１０２．高速交換相互接続ユニットは、宛先の機能モジュールに関する情報に従って、宛先の機能モジュールに対応するステーションを用いて、受信したデータを宛先の機能モジュールに送信する。
【０１４７】
この実施形態により提供される方法において、ＡＳＩＣベースのハードコアがＦＰＧＡに組み込まれ、ＡＳＩＣベースのハードコアは、高速交換相互接続ユニット及び少なくとも１つのステーションを含む。データ送信元の機能モジュールは、高速交換相互接続ユニットを用いて、データを宛先の機能モジュールに送信し得る。データ送信元の機能モジュールにより送信されたデータは、宛先の機能モジュールに関する情報を搬送するので、高速交換相互接続ユニットは、その情報に従って、宛先の機能モジュールに接続された対応するステーションを決定し得る。それぞれの機能モジュールは近接したステーションに接続されるので、この方法は、データ伝送の時間遅延を実質的に減少させ、ＦＰＧＡの全体性能を改善し得る。
【０１４８】
図１２参照すると、図１２は、本願によるＦＰＧＡベースのデータ通信方法の信号伝達ダイアグラムである。
【０１４９】
複数のステーションの数が複数の機能モジュールの数に等しく、複数のステーションのうち１つが、複数の機能モジュールのうち１つに接続される。又は、それぞれのステーションが複数の機能モジュールに対応し、それぞれのステーションが対応する複数の機能モジュールに接続される。
【０１５０】
この実施形態は、１つのステーションが１つの機能モジュールに対応する一例を用いて説明される。そのような制御は、実行するのが簡単で容易である。
【０１５１】
説明の一例として、２つの機能モジュール間のデータ送信を以下に用いる。２つのモジュールは、データ送信元の機能モジュール及び宛先の機能モジュールである。
【０１５２】
Ｓ１．データ送信元の機能モジュールが、宛先の機能モジュールに関する情報を、送信される必要があるデータに加える。
【０１５３】
Ｓ２．情報が加えられた後に、データは、データ送信元の機能モジュールに接続されたステーションに送信される。
【０１５４】
Ｓ３．データ送信元の機能モジュールに接続されたステーションは、受信したデータを高速交換相互接続ユニットに送信する。
【０１５５】
Ｓ４．高速交換相互接続ユニットは、情報に従って、宛先の機能モジュールに接続されたステーションにデータを送信する。
【０１５６】
Ｓ５．宛先の機能モジュールに接続されたステーションは、データを宛先の機能モジュールに送信する。
【０１５７】
この実施形態において、上述の実施形態により提供されたＦＰＧＡを、データを送信するのにどのように用いるかが詳細に説明される。
【０１５８】
複数のステーションの数が複数の機能モジュールの数に等しく、複数のステーションのうちの１つが複数の機能モジュールのうちの１つに接続される。又は、それぞれのステーションは複数の機能モジュールに対応し、それぞれのステーションは対応する複数の機能モジュールに接続される。
【０１５９】
複数のステーションの数が複数の機能モジュールの数に等しい場合、対応する機能モジュールのものと一致しているクロック周波数、データビット幅、及び時系列が、それぞれのステーション用に構成される。
【０１６０】
高速交換相互接続ユニットはプログラム固定である。
【０１６１】
ＡＳＩＣベースのハードコアのオンチップの相互接続バスプロトコルは、ＡＶＡＬＯＮ、Ｗｉｓｈｂｏｎｅ、ＣｏｒｅＣｏｎｎｅｃｔ、又はＡＭＢＡのうち少なくとも１つを含む。
【０１６２】
ＡＳＩＣベースのハードコアは、クロスバースイッチマトリックスを用いてＦＰＧＡに一様に配置される。
【０１６３】
上述の説明は、本願の望ましい複数の実施形態に過ぎず、本願を限定することが意図されるものではない。本願の例示の複数の実施形態は上記に開示されているが、この複数の実施形態は、本願を限定することが意図されるものではない。上記に開示された方法及び技術内容を用いて、当業者であれば誰でも、本願の複数の技術的解決法に対して複数の可能な改変及び変更を行い得る、又は、本願の技術的解決法の保護範囲から逸脱することなく、等価的な変形を通じて、同等の効果を有する実施形態になるようこれらの技術的解決法を修正し得る。従って、本願の技術的本質に従って、本願の技術的解決法の内容から逸脱することなく、上記の複数の実施形態に対して成される、いかなる単純な修正、等価的な変形、及び変更も、本願の技術的解決法の保護範囲内に含まれることになる。
【図１】
0006452719.tif 000002
【図２】
0006452719.tif 000003
【図３】
0006452719.tif 000004
【図４】
0006452719.tif 000005
【図５】
0006452719.tif 000006
【図６ａ】
0006452719.tif 000007
【図６ｂ】
0006452719.tif 000008
【図７】
0006452719.tif 000009
【図８ａ】
0006452719.tif 000010
【図８ｂ】
0006452719.tif 000011
【図９】
0006452719.tif 000012
【図１０】
0006452719.tif 000013
【図１１】
0006452719.tif 000014
【図１２】
0006452719.tif 000015