(57)【要約】  本発明は、ＦＰＧＡと通信するホスト、ＦＰＧＡと通信する方法、およびＦＰＧＡインターフェースチップを提供する。ソフトウェアインターフェースモジュールは、伝送データを特定するように上位レイヤアプリケーションに公開される呼出インターフェースを定義し、リソース管理モジュールは、呼出インターフェースにより伝送データを取得し、伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップｃａｂｌｅオブジェクトを管理し、少なくとも二つのｃａｂｌｅオブジェクトに同時に並列にアクセスすることを許可し、プロトコルパケットモジュールは、伝送データを受信し、ＦＰＧＡのインターフェースプロトコルおよびｃａｂｌｅオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、データパケットをホストチャンネルインターフェースモジュールに送信し、ホストチャンネルインターフェースモジュールは、データパケットを受信し、データパケットをＦＰＧＡインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する。これにより、インターフェースソフトウェアの設計において、スケーラビリティが低く、複数の通信リソースを並行に使用してＦＰＧＡインターフェースチップと通信できないという従来の問題が解決される。【選択図】図１
2021532621.tif 000002
【特許請求の範囲】
【請求項１】
ＦＰＧＡと通信するホストであって、
伝送データを特定するように上位レイヤアプリケーションに公開される呼出インターフェースを定義するためのソフトウェアインターフェースモジュールと、
前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップｃａｂｌｅオブジェクトを管理し、少なくとも二つのｃａｂｌｅオブジェクトに同時に並列にアクセスすることを許可するリソース管理モジュールと、
前記伝送データを受信し、ＦＰＧＡのインターフェースプロトコルおよび前記ｃａｂｌｅオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットをホストチャンネルインターフェースモジュールに送信する前記プロトコルパケットモジュールと、
前記データパケットを受信し、前記データパケットをＦＰＧＡインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する前記ホストチャンネルインターフェースモジュールと、を含む
ことを特徴とするＦＰＧＡと通信するホスト。
【請求項２】
請求項１に記載のＦＰＧＡと通信するホストであって、
前記ホストチャンネルインターフェースモジュールが前記データパケットを送信した後、前記ホストとＦＰＡＧインターフェースチップとの接続を遮断するインターフェースリリースモジュールをさらに含む
ことを特徴とするＦＰＧＡと通信するホスト。
【請求項３】
請求項１に記載のＦＰＧＡと通信するホストであって、
前記呼出インターフェースは、初期化インターフェース、データ書込インターフェース、データ読取インターフェース、およびリリースインターフェースが含まれＦＰＧＡと通信する基本ソフトウェアインターフェースを含む
ことを特徴とするＦＰＧＡと通信するホスト。
【請求項４】
請求項１に記載のＦＰＧＡと通信するホストであって、
前記ｃａｂｌｅオブジェクトは、ＵＳＢケーブルが接続されるケーブル、イーサネットポートを介して接続される回路基板のケーブル、ＰＣＩＥを介して接続されるＰＣＩＥカードのケーブル、およびプリンタパラレルポートのうちの少なくとも一つを含む
ことを特徴とするＦＰＧＡと通信するホスト。
【請求項５】
請求項４に記載のＦＰＧＡと通信するホストであって、
前記ｃａｂｌｅオブジェクトは、区別されるように唯一のＭＡＣアドレスとタイプ標識識別子が割り当てられる
ことを特徴とするＦＰＧＡと通信するホスト。
【請求項６】
請求項５に記載のＦＰＧＡと通信するホストであって、
前記ｃａｂｌｅオブジェクトがＵＳＢ  ケーブルである場合、前記ＭＡＣアドレスは、ＵＳＢのＥＥＰＲＯＭに記録されるシリアル番号であり、
前記ｃａｂｌｅオブジェクトがイーサネットバーチャルケーブルである場合、前記ＭＡＣアドレスは、イーサネットバーチャルケーブルのＩＰアドレスまたはＦＰＧＡインターフェースチップリアルＭＡＣアドレスであり、
前記ｃａｂｌｅオブジェクトがＰＣＩＥボードのケーブルである場合、前記ＭＡＣアドレスは、ＰＣＩＥバスのアドレスまたはＰＣＩＥバスのインターフェースチップのシリアル番号であり、
前記ｃａｂｌｅオブジェクトがプリンタパラレルポートである場合、前記ＭＡＣアドレスは、パラレルポートアドレスである
ことを特徴とするＦＰＧＡと通信するホスト。
【請求項７】
請求項４に記載のＦＰＧＡと通信するホストであって、
前記リソース管理モジュールは、アクセスが許可されるｃａｂｌｅオブジェクトをスキャンしてリストを作成する
ことを特徴とするＦＰＧＡと通信するホスト。
【請求項８】
請求項７に記載のＦＰＧＡと通信するホストであって、
前記呼出インターフェースは、アクセス可能なｃａｂｌｅオブジェクトを取得するプローブインターフェースをさらに含み、
前記リソース管理モジュールは、前記上位レイヤアプリケーションが前記ＦＰＧＡと通信するアクセスｃａｂｌｅオブジェクトを特定するように、アクセスｃａｂｌｅオブジェクトをスキャンしてリストを作成した後、前記プローブインターフェースを介して前記リストを前記上位レイヤアプリケーションに返信する
ことを特徴とするＦＰＧＡと通信するホスト。
【請求項９】
請求項１から８のいずれか一項に記載のＦＰＧＡと通信するホストであって、
前記ホストチャンネルインターフェースモジュールは、前記ＦＰＧＡインターフェースチップの実装方式に基づいて前記ＦＰＧＡインターフェースチップと前記プリセットデータフォーマットを合意する
ことを特徴とするＦＰＧＡと通信するホスト。
【請求項１０】
請求項９に記載のＦＰＧＡと通信するホストであって、
前記ＦＰＧＡインターフェースチップがＦＴ２２３２ＨのＵＳＢインターフェースチップを含む場合、前記プリセットデータフォーマットは、コマンドコードおよびデータ長で構成されるパケットヘッダと、データと、を含む
ことを特徴とするＦＰＧＡと通信するホスト。
【請求項１１】
ＦＰＧＡインターフェースチップであって、
請求項１から１０のいずれか一項に記載のＦＰＧＡと通信するホストから送信されるデータパケットを受信し、前記データパケットをＦＰＧＡに必要な通信信号に変換してＦＰＧＡと直接通信を行う
ことを特徴とするＦＰＧＡインターフェースチップ。
【請求項１２】
請求項１１に記載のＦＰＧＡインターフェースチップであって、
イーサネット、ＵＳＢ、ＬＴＰ、およびワイヤレスネットを含む
ことを特徴とするＦＰＧＡインターフェースチップ。
【請求項１３】
請求項１２に記載のＦＰＧＡインターフェースチップであって、
前記ＦＰＧＡインターフェースチップがＦＴ２２３２ＨのＵＳＢインターフェースチップを含む場合、前記プリセットデータフォーマットは、コマンドコードおよびデータ長で構成されるパケットヘッダと、データと、を含む
ことを特徴とするＦＰＧＡインターフェースチップ。
【請求項１４】
請求項１１に記載のＦＰＧＡインターフェースチップであって、
初期化インターフェースを介して前記ＦＰＧＡと通信するホストに接続される
ことを特徴とするＦＰＧＡインターフェースチップ。
【請求項１５】
請求項１１に記載のＦＰＧＡインターフェースチップであって、
前記ＦＰＧＡがサポートするインターフェースプロトコルは、ＪＴＡＧ、Ｉ２Ｃ、ＳＰＩ、および並列インターフェースを含む
ことを特徴とするＦＰＧＡインターフェースチップ。
【請求項１６】
請求項１１に記載のＦＰＧＡインターフェースチップであって、
請求項１から９のいずれか一項に記載のＦＰＧＡと通信するホストから送信されるデータパケットを受信するチャンネルインターフェースモジュールを含む
ことを特徴とするＦＰＧＡインターフェースチップ。
【請求項１７】
ＦＰＧＡと通信する方法であって、
ＦＰＧＡと通信するホストのソフトウェアインターフェースモジュールが、伝送データを特定可能に上位レイヤアプリケーションに公開される呼出インターフェースを定義するステップと、
ＦＰＧＡと通信する前記ホストのリソース管理モジュールが、前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップｃａｂｌｅオブジェクトを管理し、少なくとも二つのｃａｂｌｅオブジェクトに同時に並列にアクセスすることを許可するステップと、
前記プロトコルパケットモジュールが、前記伝送データを受信し、ＦＰＧＡのインターフェースプロトコルおよび前記ｃａｂｌｅオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットを前記ＦＰＧＡと通信するホストのホストチャンネルインターフェースモジュールに送信するステップと、
前記ホストチャンネルインターフェースモジュールが、前記データパケットを受信し、前記データパケットをＦＰＧＡインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルを介してＦＰＧＡインターフェースチップに送信するステップと、
前記ＦＰＧＡインターフェースチップが、前記データパケットを受信し、前記データパケットをＦＰＧＡに必要な通信信号に変換し、ＦＰＧＡと直接通信を行うステップと、を含む
ことを特徴とするＦＰＧＡと通信する方法。
【請求項１８】
請求項１７に記載のＦＰＧＡと通信する方法であって、
前記ＦＰＧＡインターフェースチップが前記データパケットを受信した後、
前記ＦＰＧＡと通信するホストが、インターフェースをリリースすることにより、前記ＦＰＡＧインターフェースチップとの接続を遮断するステップをさらに含む
ことを特徴とするＦＰＧＡと通信する方法。
【請求項１９】
請求項１７または１８に記載のＦＰＧＡと通信する方法であって、
前記リソース管理モジュールがホストインターフェースチップｃａｂｌｅオブジェクトを管理するステップは、
前記リソース管理モジュールは、アクセスが許可されるｃａｂｌｅオブジェクトをスキャンしてリストを作成するステップを含む
ことを特徴とするＦＰＧＡと通信する方法。
【請求項２０】
請求項１９に記載のＦＰＧＡと通信する方法であって、
前記呼出インターフェースは、アクセス可能なｃａｂｌｅオブジェクトを取得するプローブインターフェースをさらに含み、
前記リソース管理モジュールがホストインターフェースチップｃａｂｌｅオブジェクトを管理するステップは、
前記リソース管理モジュールが、前記上位レイヤアプリケーションが前記ＦＰＧＡと通信するアクセスｃａｂｌｅオブジェクトを特定するように、アクセスｃａｂｌｅオブジェクトをスキャンしてリストを作成した後、前記プローブインターフェースを介して前記リストを前記上位レイヤアプリケーションに返信するステップをさらに含む
ことを特徴とするＦＰＧＡと通信する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックデバイス分野に関する。具体的には、ＦＰＧＡと通信するホスト、ＦＰＧＡと通信する方法、およびＦＰＧＡインターフェースチップに関する。
【背景技術】
【０００２】
ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、フィールド・プログラマブル・ゲート・アレイ）は、プログラマブルロジックデバイスである。ＦＰＧＡチップでは、通常、オンチップ制御システムが統合される。当該オンチップ制御システムにおいて、ユーザがＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ、共同テストアクショングループ）や、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ、シリアル・ペリフェラル・インターフェース）のようなインターフェースを介してＦＰＧＡに対して配置し、デバッグしまたはソフトコアデータとハードコアデータを読み取り、書き込みなどの操作を行うことが許可される。通信プロセスでは、上位コンピュータは、異なるチャンネルを利用してＦＰＧＡと通信することができる。受信側には、通常、ホストのメッセージを送受信し、ＦＰＧＡと直接通信するために用いられるインターフェースチップが設けられる。当該インターフェースチップで構成されるサブシステムは、一般にダウンローダ（ｃａｂｌｅ）と呼ばれる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明に係る態様により提供されるＦＰＧＡと通信するホスト、ＦＰＧＡと通信する方法、およびＦＰＧＡインターフェースチップは、主にインターフェースソフトウェアの設計において、スケーラビリティが低く、複数種の通信リソースを並行して使用してＦＰＧＡインターフェースチップと通信することができないという従来の問題を解決することを目的とする。
【課題を解決するための手段】
【０００４】
本発明のある態様によれば、伝送データを特定するように上位レイヤアプリケーションに公開される呼出インターフェースを定義するためのソフトウェアインターフェースモジュールと、前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップｃａｂｌｅオブジェクトを管理し、少なくとも二つのｃａｂｌｅオブジェクトに同時に並列にアクセスすることを許可するリソース管理モジュールと、前記伝送データを受信し、ＦＰＧＡのインターフェースプロトコルおよび前記ｃａｂｌｅオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットをホストチャンネルインターフェースモジュールに送信する前記プロトコルパケットモジュールと、前記データパケットを受信し、前記データパケットをＦＰＧＡインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する前記ホストチャンネルインターフェースモジュールと、を含むＦＰＧＡと通信するホストが提供される。
【０００５】
本発明の他の態様によれば、前記ＦＰＧＡインターフェースチップは、前記ホストから送信されるデータパケットを受信し、前記データパケットをＦＰＧＡに必要な通信信号に変換し、ＦＰＧＡと直接通信を行うＦＰＧＡインターフェースチップが提供される。
【０００６】
本発明のその他の態様によれば、ＦＰＧＡと通信するホストのソフトウェアインターフェースモジュールが、伝送データを特定可能に上位レイヤアプリケーションに公開される呼出インターフェースを定義するステップと、ＦＰＧＡと通信する前記ホストのリソース管理モジュールが、前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップｃａｂｌｅオブジェクトを管理し、少なくとも二つのｃａｂｌｅオブジェクトに同時に並列にアクセスすることを許可するステップと、前記プロトコルパケットモジュールが、前記伝送データを受信し、ＦＰＧＡのインターフェースプロトコルおよび前記ｃａｂｌｅオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットを前記ＦＰＧＡと通信するホストのホストチャンネルインターフェースモジュールに送信するステップと、前記ホストチャンネルインターフェースモジュールが、前記データパケットを受信し、前記データパケットをＦＰＧＡインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルを介してＦＰＧＡインターフェースチップに送信するステップと、前記ＦＰＧＡインターフェースチップが、前記データパケットを受信し、前記データパケットをＦＰＧＡに必要な通信信号に変換し、ＦＰＧＡと直接通信を行うステップと、を含むＦＰＧＡと通信する方法が提供される。
【発明の効果】
【０００７】
本発明の態様は、下記の有益な効果を奏する。
従来のインターフェースソフトウェアの設計において、スケーラビリティが低く、複数種の通信リソースを並行に使用してＦＰＧＡインターフェースチップと通信できないという問題を解決するために、ＦＰＧＡと通信するホストおよびＦＰＧＡインターフェースチップが提供される。本発明に係るソフトウェアインターフェースモジュールは、上位レイヤアプリケーションに公開される呼出インターフェースを定義し、リソース管理モジュールは、ホストインターフェースチップｃａｂｌｅオブジェクトを管理し、少なくとも二つのｃａｂｌｅオブジェクトに同時に並列にアクセスすることを許可し、ｃａｂｌｅオブジェクトは、呼出インターフェースを共有し、プロトコルパケットモジュールは、ＦＰＧＡのインターフェースプロトコルおよびｃａｂｌｅオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、ホストチャンネルインターフェースモジュールは、データパケットをＦＰＧＡインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する。すなわち、本発明のＦＰＧＡと通信するホストは、インターフェースソフトウェアを階層化することにより、複数のインターフェースリソースに並行にアクセスすることを図る。また、利用されるソフトウェアインターフェースは、同一であるため、ＦＰＧＡクラスターリソース管理に適する。また、本発明のＦＰＧＡと通信するホストは、移植性が良いため、完全に階層化されて異なるプラットフォームに移植されても、ホストチャンネルインターフェースだけが異なり、操作プロセスを変更する必要がないため、全体的なスケーラビリティと保守性が向上する。また、ＦＰＧＡ通信インターフェースの各操作を完全に抽象化することにより、呼出インターフェースソフトウェアの上位レイヤコードは、チャンネル、受信側ケーブル、インターフェースプロトコルのようなディテールを考慮しなくてよく、特定のＦＰＧＡの特定のインターフェースの通信プロセスだけに注目すればよい。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施例１に係るＦＰＧＡと通信するホストの構造模式図である。
【図２Ａ】本発明の実施例１に係るＦＰＧＡと通信するホストがイーサネットを介してＦＰＧＡインターフェースチップに接続される模式図である。
【図２Ｂ】本発明の実施例１に係るＦＰＧＡと通信するホストがワイヤレスネットを介してＦＰＧＡインターフェースチップに接続される模式図である。
【図２Ｃ】本発明の実施例１に係るＦＰＧＡと通信するホストがＵＳＢまたはＬＰＴなどのケーブルを介してＦＰＧＡインターフェースチップに接続される模式図である。
【図３】本発明の実施例１に係るＦＰＧＡと通信するホストがイーサネットを介してＦＰＧＡインターフェースチップと通信する模式図である。
【図４】本発明の実施例１に係るプリセットデータフォーマットの模式図である。
【図５】本発明の実施例２に係るＦＰＧＡインターフェースチップがＦＰＧＡに接続される模式図である。
【図６】本発明の実施例２に係るソフトウェア階層構造図である。
【図７】本発明の実施例３に係るＦＰＧＡと通信するホストがＦＰＧＡと通信するプロセス図である。
【図８】本発明の実施例３に係るＦＰＧＡと通信する方法のプロセス図である。
【発明を実施するための形態】
【０００９】
以下、図面と実施例を参照しながら本発明を詳しく説明する。
【００１０】
本発明の目的、技術的解決策、及び利点をより明確に説明するために、図面を参照しながら、本発明の実施例をさらに詳しく説明する。ここで、記載される具体的な実施例は、本発明を説明するためのものに過ぎず、本発明を限定するものではない。
【００１１】
従来のＦＰＧＡメーカが開発した通信インターフェースソフトウェアには、一定の制限がある。例えば、ホストのＵＳＢインターフェースケーブルを利用しなければＦＰＧＡと通信することができないため、複数のリソースを並行に使用することはできない。これにより、一度に一人のユーザしかリソースを利用することができないため、スケーラビリティが低いなどの欠点がある。一部のＦＰＧＡメーカは、ユーザがケーブル（実際、イーサネットインターフェースを介して回路基板上のＦＰＧＡにアクセスするもの）をローカルで仮想して通常のＵＳＢケーブルとして利用できるように、ザイリンクスバーチャルケーブル（Ｘｉｌｉｎｘ  Ｖｉｒｔｕａｌ  Ｃａｂｌｅ）のようなバーチャルケーブルのコンセプトを提案した。しかしながら、実際、このコンセプトを実現するためのソフトウェアが相互に独立したものであるため、ＦＰＧＡの特定のオンチップインターフェースの通信プロセスコードを書き込む際に、異なるチャンネルに対して別々に書き込む必要がある。このため、開発リソースが浪費され、メンテナンスコストが増加する。上述の事情に鑑み、本発明は、以下の対策案を提示する。
【００１２】
実施例１
本実施例では、ＦＰＧＡ通信インターフェースの各操作を完全に抽象化することにより、呼出インターフェースソフトウェアの上位レイヤコードは、チャンネル、受信側ケーブル、インターフェースプロトコルのようなディテールを考慮しなくてよく、特定のＦＰＧＡの特定のインターフェースの通信プロセスだけに注目すればよい。これにより、ソフトウェア全体のスケーラビリティと保守性が向上する。図１に示すように、本実施例に係るホストは、ＦＰＧＡと通信する。当該ホストは、コンピュータ、ノートパソコンなどであってもよいが、この限りではない。当該ホストは、ソフトウェアインターフェースモジュール１０１、リソース管理モジュール１０２、プロトコルパケットモジュール１０３、およびホストチャンネルインターフェースモジュール１０４を含む。
【００１３】
ソフトウェアインターフェースモジュール１０１は、上位レイヤアプリケーションに公開される呼出インターフェースを定義するためのものである。呼出インターフェースは、伝送データを特定するためのものである。
【００１４】
リソース管理モジュール１０２は、ホストインターフェースチップｃａｂｌｅオブジェクトを管理し、少なくとも二つのｃａｂｌｅオブジェクトに同時に並列してアクセスすることを許可する。前記ｃａｂｌｅオブジェクトは、前記呼出インターフェースにより伝送データを取得し、伝送データをプロトコルパケットモジュール１０３に送信する。
【００１５】
プロトコルパケットモジュール１０３は、伝送データを受信し、ＦＰＧＡのインターフェースプロトコルおよび前記ｃａｂｌｅオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、データパケットをホストチャンネルインターフェースモジュール１０４に送信する。
【００１６】
ホストチャンネルインターフェースモジュール１０４は、データパケットを受信し、データパケットをＦＰＧＡインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する。
【００１７】
係る実施例では、ソフトウェアインターフェースモジュール１０１によりユーザに公開される呼出インターフェースは、伝送データを特定することができる。リソース管理モジュール１０２によりＦＰＧＡインターフェースチップと通信するｃａｂｌｅオブジェクトが確定される。ｃａｂｌｅオブジェクトは、呼出インターフェースにより伝送データを取得し、伝送データをプロトコルパケットモジュール１０３に送信する。プロトコルパケットモジュール１０３は、ＦＰＧＡのインターフェースプロトコルおよび前記ｃａｂｌｅオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、データパケットをホストチャンネルインターフェースモジュール１０４に送信する。
【００１８】
ここで、ｃａｂｌｅオブジェクトが異なれば、これに対応するチャンネルが異なる。ｃａｂｌｅオブジェクトは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ、ユニバーサルシリアルバス）ケーブルが接続されるケーブル、イーサネットポートを介して接続される回路基板のケーブル、ＰＣＩＥ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ、高速シリアルコンピュータ拡張バス規格）を介して接続されるＰＣＩＥカードのケーブル、およびプリンタパラレルポートに接続されるケーブルのうちの少なくとも一つを含む。ｃａｂｌｅオブジェクトに対応するチャンネルは、それぞれＵＳＢ、イーサネットポート、ＰＣＩＥ、およびプリンタパラレルポートである。ホストチャンネルインターフェースモジュール１０４は、チャンネルに関する処理のみを行い、データをパッケージ化する。そして、ホストチャンネルインターフェースモジュール１０４は、送信する際に、ＦＰＧＡインターフェースチップと必要なデータパケットフォーマットを合意し、チャンネルに用いられるプロトコル規則に基づいてデータパケットを送信する必要がある。異なるＦＰＧＡインターフェースチップに対して、合意されたデータパケットフォーマットが異なる。
【００１９】
係る実施例では、ソフトウェアインターフェースモジュール１０１は、ＦＰＧＡと通信するホストのインターフェースソフトウェアライブラリとして、ユーザに公開されるインターフェースを含む。呼出インターフェースは、ＦＰＧＡと通信する基本ソフトウェアインターフェースを含む。図２Ａ、図２Ｂ、図２Ｃに示すように、ＦＰＧＡと通信するホストは、イーサネット、ＵＳＢ、ＬＰＴのようなケーブルやＷｉ−Ｆｉ（ワイヤレスネット）を介してＦＰＧＡインターフェースチップに接続される。理解できるように、異なるタイプのＦＰＧＡインターフェースチップ、例えばＵＳＢ、イーサネット、ＷＩＦＩなどは、通信プロセスがほぼ同じであり、必要なプロセスとしては、初期化してから接続し、データを相互に読み取り、書き出し、最後にリリースすることである。図３に示すように、ＦＰＧＡと通信するホストは、イーサネットを介してＦＰＧＡインターフェースチップと通信するプロセスであり、具体的には、ＦＰＧＡインターフェースチップは、特定のポートを監視し、接続を待機する。そして、ＦＰＧＡと通信するホストは、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ、インターネットプロトコル）アドレスに基づいてソケット（ｓｏｃｋｅｔ）の接続を初期化し、接続が成功した後、ＦＰＧＡと通信するホストは、ソケットによりデータの読み取り／書き込みを行い、ＦＰＧＡインターフェースチップは、ソケット内のデータをデカプセルし、当該データをＦＰＧＡに必要な信号に変換する。その後、ＦＰＧＡと通信するホストがリリースし、ソケットの接続が遮断され、ＦＰＧＡインターフェースチップは、特定のポートを再度監視する。
【００２０】
そこで、本実施例では、ＦＰＧＡと通信するホストが異なるタイプのＦＰＧＡインターフェースチップと通信できるように、ソフトウェアインターフェースモジュール１０１を統合して抽象化することにより、固定された基本ソフトウェアインターフェースが形成される。すなわち、上位レイヤソフトウェアは、各ＦＰＧＡインターフェースチップと通信する際に、同じ基本ソフトウェアインターフェースを利用することができる。このため、本実施例に係る基本ソフトウェアインターフェースは、初期化（Ｉｎｉｔ）インターフェース、データ書き込み（Ｗｒｉｔｅ）インターフェース、データ読み取り（Ｒｅａｄ）インターフェース、およびリリース（Ｒｅｌｅａｓｅ）インターフェースを含む。例えば、ＦＰＧＡと通信するホストがイーサネットを利用してＦＰＧＡインターフェースチップと通信する場合、初期化とは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ、伝送制御プロトコル）／ＩＰプロトコルを利用してシステムのソケットによりリモートのＦＰＧＡインターフェースチップとの接続をトライし、接続が成功した後、データパケットを送信し、特定の初期化操作を行い、ＦＰＧＡインターフェースチップがデータパケットに対応する信号をホストに返信することであり、リリースとは、接続を遮断することであり、書き込みとは、バイナリデータをソケットへ書き込むことであり、読み取りとは、データをソケットから読み取ることである。ＦＰＧＡと通信するホストがＵＳＢを利用してＦＰＧＡインターフェースチップと通信する場合、初期化とは、システムインターフェースを呼び出してＵＳＢデバイスを申請し、初期化操作を行うことであり、リリースとは、リソースをシステムへリリースすることであり、読み取り／書き込みとは、システムインターフェースを利用してデータを読み取り、書き込むことである。もちろん、ＦＰＧＡと通信するホストとＦＰＧＡインターフェースチップとの間で伝送されたデータは、いずれも合意されたプリセットデータフォーマットに基づいてパッケージ化されるものである。
【００２１】
係る実施例では、伝送データが前記基本ソフトウェアインターフェースに伝送される過程において、リクエストオブジェクトを定義する必要がある。リクエストオブジェクトが構造体であるため、伝送データの構造は、リクエストオブジェクトを含む。前記リクエストオブジェクトは、事前に定義された操作コード、データ、オブジェクト、コールバック関数、および拡張ｖｏｉｄ（型なし）ポインターのうちの少なくとも一つを含み、上位レイヤコードが統一された形式で基本ソフトウェアインターフェースにアクセスすることが許可される。
【００２２】
係る実施例では、リソース管理モジュール１０２は、利用可能なすべてのｃａｂｌｅオブジェクトを管理する。当該ｃａｂｌｅオブジェクトは、ＵＳＢケーブルに接続されるケーブルのような実在のものであってもよく、イーサネットポートを介して接続される回路基板のインターフェースチップまたはＰＣＩＥを介して接続されるＰＣＩＥカードのインターフェースチップのようなバーチャルしたものであってもよい。リソース管理モジュール１０２は、各タイプのｃａｂｌｅオブジェクトの具体的な数および占用される状況を具体的に管理し、少なくとも二つのｃａｂｌｅオブジェクトに同時に並列にアクセスすることを許可する。もちろん、当該少なくとも二つのｃａｂｌｅオブジェクトは干渉しない。本実施例では、各ｃａｂｌｅオブジェクトを容易に管理するために、各ｃａｂｌｅオブジェクトは、区別されやすいように、唯一のＭＡＣアドレスと識別子が割り当てられる。これにより、リソース管理モジュール１０２は、ｃａｂｌｅオブジェクトを唯一に特定することができる。
【００２３】
係る実施例では、ｃａｂｌｅオブジェクトに割り当てられる識別子は、当該ｃａｂｌｅオブジェクトのタイプ属性を定義するために用いられる。当該識別子は、ＦＰＧＡと通信するホストによってカスタム設定される。例えば、ｃａｂｌｅオブジェクトがＵＳＢ  ケーブルである場合、ｃａｂｌｅオブジェクトに対応する識別子がＵＳＢであり、ｃａｂｌｅオブジェクトがイーサネットバーチャルケーブルである場合、ｃａｂｌｅオブジェクトに対応する識別子がイーサネットである。係る実施例では、ケーブルのタイプが明示されれば、識別子は、カスタム番号などであってもよい。
【００２４】
ここで、ケーブル自身が実在のＭＡＣを有するか否かに関わらず、唯一のＭＡＣアドレスが唯一のリソース識別子としてケーブルに割り当てられる。具体的には、前記ｃａｂｌｅオブジェクトがＵＳＢ  ケーブルである場合、前記ＭＡＣアドレスは、ＵＳＢのＥＥＰＲＯＭに記録されるシリアル番号であり、前記ｃａｂｌｅオブジェクトがイーサネットバーチャルケーブルである場合、前記ＭＡＣアドレスがイーサネットバーチャルケーブルのＩＰアドレスまたはＦＰＧＡインターフェースチップリアルＭＡＣアドレスであり、前記ｃａｂｌｅオブジェクトがＰＣＩＥボードのケーブルである場合、前記ＭＡＣアドレスは、ＰＣＩＥバスのアドレスまたはＰＣＩＥバス上のインターフェースチップ内のシリアル番号であり、前記ｃａｂｌｅオブジェクトがプリンタパラレルポートである場合、前記ＭＡＣアドレスがパラレルポートアドレスである。
【００２５】
ここで、ユーザは、ＦＰＧＡインターフェースチップに接続される任意のｃａｂｌｅオブジェクトを選択してもよい。具体的には、リソース管理モジュール１０２は、アクセス可能なｃａｂｌｅオブジェクトリストをスキャンしてリストを作成した後、当該リストをユーザに提供する。
【００２６】
係る実施例では、呼出インターフェースは、アクセス可能なｃａｂｌｅオブジェクトを取得するプローブ（Ｐｒｏｂｅ）インターフェースを含み、当該プローブインターフェースは、現在アクセス可能なｃａｂｌｅオブジェクトの使用状況を検出することができる。上位レイヤアプリケーションが前記ＦＰＧＡと通信するアクセスｃａｂｌｅオブジェクトを特定するために、リソース管理モジュール１０２は、リストを作成した後、プローブインターフェースによりリストを前記上位レイヤアプリケーションに返信する。
【００２７】
係る実施例では、プロトコルパケットモジュール１０３は、主にＦＰＧＡのインターフェースプロトコルおよびチャンネルプロトコルに基づいて、受信した伝送データをカプセル化する。ここで、ＦＰＧＡのハードコアとソフトコアは、通常、ＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ、ジョイントテストアクショングループ）、Ｉ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、２線式シリアルバス）、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ、シリアルペリフェラルインターフェース）、および並列インターフェースなどのインターフェースをサポートする。これらのインターフェースプロトコルは、プロトコルの関連情報に基づいてアプリケーションレイヤで特別な処理を行う必要がある場合がある。
【００２８】
例えば、ＪＴＡＧプロトコルについては、ＪＴＡＧチェーンがある場合、実際、このチェーンに数多くのデバイスが設けられ、そのうちの一部がＦＰＧＡである可能性があり、そうでない可能性もある。このように、ＪＴＡＧプロトコルソフトウェアは、必要に応じて一定の処理を行うことがある。例えば、ＪＴＡＧコマンドを書き込む場合、チェーンの状況に応じて必要なバイパスコマンドを先に書き込む必要があり、ＪＴＡＧデータを書き込む場合、１などを適当に足す必要がある。伝送データが伝送される場合、プロトコルパケットモジュール１０３は、チャンネルに用いられるプロトコルに基づいて伝送データを再度カプセル化する。例えば、イーサネットに対応するチャンネルを利用する場合、ＴＣＰ／ＩＰプロトコルに基づいて伝送データを再度カプセル化してホストチャンネルインターフェースモジュール１０４に送信するデータパケットを取得する。そして、ＴＣＰ／ＩＰデータをＦＰＧＡインターフェース情報により解析することで、抽出されるコンテンツは、合意されたプリセットデータパケットフォーマットである。
【００２９】
係る実施例では、ホストチャンネルインターフェースモジュール１０４とＦＰＧＡインターフェースチップとの間を通信するために、特定のフォーマットのデータを合意する必要がある。ＦＰＧＡインターフェースチップがデータパケットを受信してデータパケットを解析することをしやすくするために、合意されたプリセットデータフォーマットは、ＦＰＧＡインターフェースチップの実装方式に関連するものである。このため、ホストチャンネルインターフェースモジュール１０４は、ＦＰＧＡインターフェースチップの実装方式に基づいて前記ＦＰＧＡインターフェースチップと前記プリセットデータフォーマットを合意する。電子部品間のデジタル信号の通信において、バイナリデータについて特定のフォーマットを合意し、当該フォーマットでバイナリデータを送信する。
【００３０】
ここで、前記ＦＰＧＡインターフェースチップは、ＦＴ２２３２ＨのＵＳＢインターフェースチップを含む。前記プリセットデータフォーマットは、パケットヘッダと、データと、を含む。前記パケットヘッダは、コマンドコードおよびデータ長で構成される。図４に示すように、３２ビット（ｂｉｔｓ）コマンドコードは、ＪＴＡＧプロトコルの状態遷移、属性の設定、ＪＴＡＧデータの読み取り／書き込みのようなＦＰＧＡインターフェースチップが実行する必要のある操作を決定する。３２ビットのデータ長は、後ろのデータ量を示す。
【００３１】
係る実施例では、ＦＰＧＡインターフェースチップは、ＭＣＵ（Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ、マイクロコントロールユニット）をイーサネットポートチップと組み合わせて実現される。ＦＰＧＡインターフェースチップがプログラマブルであるため、ＦＰＧＡインターフェースチップが受信するネットデータパケットのコンテンツフォーマットを合意することができる。そして、両者は、合意されたコンテンツに基づいてデータパケットをデカプセルすることができる。
【００３２】
本実施例により提供されるＦＰＧＡと通信するホストは、階層化されるインターフェースソフトウェア設計モードを含み、ソフトウェアインターフェースモジュール１０１、リソース管理モジュール１０２、プロトコルパケットモジュール１０３、およびホストチャンネルインターフェースモジュール１０４により、ＦＰＧＡ通信インターフェースの各操作が完全に抽象化される。これにより、呼出インターフェースソフトウェアの上位レイヤコードは、チャンネル、受信側ケーブル、インターフェースプロトコルのようなディテールを考慮しなくてよく、特定のＦＰＧＡの特定のインターフェースの通信プロセスだけに注目すればよい。これにより、ソフトウェア全体のスケーラビリティと保守性が向上する。
【００３３】
実施例２
図５に示すように、本実施例により提供されるＦＰＧＡインターフェースチップは、ＦＰＧＡ側チャンネルインターフェースモジュールを含む。ＦＰＧＡ側チャンネルインターフェースモジュールは、ＦＰＧＡと通信するホストから送信されるデータパケットを受信する。そして、ＦＰＧＡインターフェースチップは、ＦＰＧＡと通信するホストのホストチャンネルインターフェースモジュール１０４と合意されたプリセットデータフォーマットに基づいて前記データパケットを解析し、前記データパケットをＦＰＧＡに必要な通信信号に変換し、ＦＰＧＡと直接通信を行う。
【００３４】
ここで、ＦＰＧＡ側チャンネルインターフェースモジュールがデータを解析することは、チップレベルの動作であり、すなわちチャンネルから直接データを読み取り、データを解析した後、ＦＰＧＡに必要なＪＴＡＧ、ＳＰＩなどの通信信号に直接変換し、ＦＰＧＡと直接通信を行う。
【００３５】
例えば、インターフェースチップがＵＳＢ  ケーブルである場合、ＵＳＢケーブルによりＦＰＧＡと通信するホストのデータを取得し、ＪＴＡＧなどのプロトコル信号に変換し、ＦＰＧＡと通信を行う。ここで、前記ＦＰＧＡインターフェースチップは、ＦＴ２２３２ＨのＵＳＢインターフェースチップを含む。前記プリセットデータフォーマットは、パケットヘッダと、データと、を含む。前記パケットヘッダは、コマンドコードおよびデータ長で構成される。コマンドコードは、ＪＴＡＧプロトコルの状態遷移、属性の設定、ＪＴＡＧデータの読み取り／書き込みのようなＦＰＧＡインターフェースチップが実行する必要のある操作を決定する。データ長は、後ろのデータ量を示す。
【００３６】
本実施例によれば、ＦＰＧＡと通信するインターフェース設計が提供される。階層化することによりインターフェースソフトウェアが図られる。図６に示すように、当該インターフェース設計は、ソフトウェアインターフェース、リソース管理、ｃａｂｌｅオブジェクト、プロトコルパケット、ホストチャンネルインターフェース、およびＦＰＧＡ側チャンネルインターフェースを備える。
【００３７】
ソフトウェアインターフェースは、上位レイヤアプリケーションに公開されるインターフェースを定義し、リソースのリリースと申請を行うインターフェース、リソースリストを取得するプローブインターフェース、ＦＰＧＡに直接関連する各プロトコルの読み書きインターフェース、初期化インターフェースなどを含む。これらの基本インターフェースを定義することにより、ＦＰＧＡと通信するホストのインターフェースは、操作ユニット（オペレータ）に抽象化される。各タイプのオペレータは、対応する機能が図られる。これらのオペレータは、データの直接読み取り／書き込み、またはインターフェースの変換、初期化とリリース、およびリソース状況の収集のみを行う。異なるオペレータは、独自の特性に応じてカスタム機能を発揮するが、上位レイヤ機能は、これらの基本インターフェースしか想定していない。
【００３８】
リソース管理とは、リソースの管理を図り、ｃａｂｌｅリソースを管理し、複数の通信リソースに同時に並列にアクセスすることを許可するものである。リソース管理は、各タイプのリソース数、リソースが占用される状況などのすべての利用可能なｃａｂｌｅリソースを管理する。リソース管理レイヤでリソースのリリースと申請を行うメカニズムが図られる。ユーザは、オブジェクトを申請するときにハンドルオブジェクトを取得し、これらのハンドルオブジェクトを用いて操作を行う。リソース管理は、自動的に利用可能なリソースをスキャンし、当該リストをユーザに提供する。プローブ機能インターフェースにおいて、返信されるのは、関連するリソースのリストである。ユーザは、選択した後、当該リストに対応するｃａｂｌｅリソースに並列にアクセスすることができる。各ｃａｂｌｅリソースは、ＭＡＣ、タイプなどによって唯一に区別される。プロセスにとっては、当該リソース管理オブジェクトは、一例にすぎない。
【００３９】
ｃａｂｌｅオブジェクトとは、ＵＳＢケーブルに接続されるケーブルのような実在のものであってもよく、イーサネットポートを介して接続される回路基板のインターフェースチップまたはＰＣＩＥを介して接続されるＰＣＩＥカードのインターフェースチップのようなバーチャルしたものであってもよい。ソフトウェア設計レベルにおいて、これらのｃａｂｌｅオブジェクトを一つのｃａｂｌｅオブジェクトに抽象する必要がある。ｃａｂｌｅオブジェクトは、現在のタイプのｃａｂｌｅにサポートされる各タイプのオペレータを統合し、統一されるハンドルソフトウェアインターフェースを実現することを目的とする。これにより、上位レイヤは、操作コードを伝送するだけでデータの読み取り／書き込みが図られる。ｃａｂｌｅオブジェクトは、初期化インターフェース，リリースインターフェースなどの基本インターフェースを提供する必要がある。これらのインターフェース方法は、関連するオペレータを呼び出してリソースの申隅とリリースを行うことである。
【００４０】
プロトコルパケットレイヤとは、ＦＰＧＡが用いるＪＴＡＧ、ＳＰＩなどのプロトコルに関するデータを特定の規則に基づいてデータパケットに作成し、当該データパケットを処理するために下位レイヤのオペレータオブジェクトに送信するものである。下位レイヤのオペレータは、チャンネルに関する問題のみを処理し、ＦＰＧＡに関するプロトコル操作は、一部のプロトコルオペレータを実現してより下位レイヤに位置するオペレータをパッケージ化することにより図られる。プロトコルオペレータが位置するレイヤにおける処理は、ユーザから伝送されたプロトコルに関するデータパケットを分割または再編成し、基本読み取り／書き込みインターフェースを呼び出して行う処理である。プロトコルのオペレータは、下位レイヤのオペレータを必要とし、基本的にすべての下位レイヤのオペレータは、同一のプロトコルに関するオペレータを共有する。
【００４１】
ホストチャンネルインターフェースレイヤとは、主にシステムのドライブインターフェースを呼び出す下位レイヤのオペレータを実現し、チャンネルリクエストに基づいて上位レイヤから伝送されたデータを再度カプセル化して送信するものである。チャンネルが異なると、必要なエンコード方法も異なる。これは、ＦＰＧＡ側インターフェースにも関連する。データがチャンネルリクエストに基づいて送信された後、ＦＰＧＡ側チャンネルインターフェースに受信される。受信側が異なると、データパケットリクエストも異なるが、上位レイヤのソフトウェアは、特定のパケット条件を考慮せず、各受信側のプラットフォームごとに合意すればよい。そして、これらの合意に基づいて、独立したオペレータが図られる。
【００４２】
ＦＰＧＡ側チャンネルインターフェースとは、ＦＰＧＡ側にインターフェースチップが設けられるものである。ＦＰＧＡ側チャンネルインターフェースが例えばＵＳＢ  ケーブルであれば、インターフェースチップを有するケーブルである。当該ケーブルは、ＵＳＢケーブルを介してＦＰＧＡと通信するホストのデータを取得し、ＪＴＡＧなどのプロトコル信号に変換し、ＦＰＧＡと通信を行う。インターフェースチップが異なると、必要な処理も異なるため、ＦＰＧＡと通信するホスト側の協力が必要である。しかしながら、ほとんどの場合、これは、カプセル化されたデータを組み合わせる方法の違いにすぎない。受信側は、インターフェースハードウェアをより柔軟に選択することができるので、ＦＰＧＡと通信するホスト側は、受信側のハードウェア自身のリクエストによってデータをカプセル化する。この場合、インターフェースハードウェアチップは、データのデカプセルをサポートし、ＦＰＧＡに必要な通信信号を変換し、ＦＰＧＡと直接通信を行う必要がある。
【００４３】
本実施例では、階層化されたインターフェースソフトウェア設計モードは、以下の利点を有する。上位レイヤアプリケーションは、インターフェースチップ、ＦＰＧＡ自身のインターフェースプロトコルなどの特別な処理ディテールを考慮しなくてよい。これにより、スケーラビリティと保守性が向上する。チャンネルの如何を問わず、インターフェースリソースが上位レイヤアプリケーションに公開されることが決まっている。また、干渉しないインターフェースリソースは、並行してアクセスされるため、サーバープロセスとして利用される。イーサネットなどの相互接続構造を導入できれば、特定の分散特性も図られる。上位レイヤソフトウェアは、ネットワークにおける各ＦＰＧＡリソースと通信する際に同じソフトウェアインターフェースを利用することができるため、ＦＰＧＡクラスターリソースに適する。また、本発明のＦＰＧＡと通信するホストは、移植性が良いため、完全に階層化されて異なるプラットフォームに移植されても、ホストチャンネルインターフェースだけが異なるため、このレイヤで各オペレータを置き換えることにより、コードの移行が実現され、上位レイヤの操作プロセスを変更する必要がない。さらに、インターフェースソフトウェアは、様々な環境に適用し、ワイヤレス、有線などによりＦＰＧＡと通信することができる。
【００４４】
実施例３
本実施例は、ＦＰＧＡと通信するホストのＦＰＧＡとの通信プロセスについて説明する。図７に示すように、Ｓ７０１において、ＦＰＧＡと通信するホスト側は、プローブインターフェースに基づいてＦＰＡＧと通信するｃａｂｌｅリソースを特定する。
【００４５】
本実施例では、プローブインターフェースは、主に現在のタイプのアクセス可能なリソースの総数を検出し、リストを作成して上位レイヤソフトウェアに返信する。これにより、ユーザは、どのｃａｂｌｅリソースを利用してＦＰＡＧと通信するかを決定する。ここで、各ｃａｂｌｅリソースを区別するために、ｃａｂｌｅリソースには、ＭＡＣアドレス及び識別子が割り当てられる。ＵＳＢケーブルに接続されるケーブルおよびイーサネットがシミュレーションしたケーブルを利用してＦＰＡＧと通信することが決定されると、Ｓ７０２において、ＦＰＧＡと通信するホスト側は、初期化インターフェースを介してＦＰＡＧのＦＰＡＧインターフェースチップに接続される。
【００４６】
イーサネットを利用する場合、初期化とは、ＴＣＰ／ＩＰプロトコルとシステムのソケットを利用してリモートで受信側に接続することであり、ＵＳＢを利用する場合、初期化とは、システムインターフェースを呼び出してＵＳＢデバイスを申請して初期化操作を行うことである。
【００４７】
Ｓ７０３において、書き込みデータインターフェースを利用してバイナリデータを書き込む際に、ＦＰＧＡと通信するホスト側は、ＦＰＧＡに用いられるインターフェースプロトコルに関するデータを特定の規則に基づいて組み合わせてデータパケットを作成する。
【００４８】
イーサネットを利用する場合、バイナリデータをソケットに書き込み、ＵＳＢを利用する場合、システムインターフェースを利用してバイナリデータを書き込む。その後、ＪＴＡＧ、ＳＰＩなどのプロトコルに関するデータを利用して特定の規則に基づいてバイナリデータを組み合わせてデータパケットを作成する。
【００４９】
Ｓ７０４において、ＦＰＧＡと通信するホスト側は、プリセットデータフォーマットに基づいて組み合わせてデータパケットを作成し、ｃａｂｌｅリソースに対応するチャンネルを介してＦＰＡＧインターフェースチップに送信する。
【００５０】
本実施例では、ＦＰＡＧインターフェースチップは、ＦＴ２２３２ＨのＵＳＢインターフェースチップを含む。プリセットデータフォーマットは、パケットヘッダと、データと、を含む。パケットヘッダは、コマンドコードおよびデータ長で構成される。コマンドコードは、ＪＴＡＧプロトコルの状態遷移、属性の設定、ＪＴＡＧデータの読み取り／書き込みのようなＦＰＧＡインターフェースチップが実行する必要のある操作を決定する。データ長は、後ろのデータ量を示す。ＦＰＡＧインターフェースチップは、ＭＣＵをイーサネットポートチップと組み合わせて実現される。ＦＰＧＡインターフェースチップがプログラマブルであるため、ＦＰＧＡインターフェースチップが受信するネットデータパケットのコンテンツフォーマットを合意することができる。イーサネットを利用する場合、データパケットが伝送される際に、利用されるＴＣＰ／ＩＰプロトコルは、データパケットを再度カプセル化してイーサネットポートチップに送信する。
【００５１】
Ｓ７０５において、ＦＰＡＧインターフェースチップは、チャンネルからデータパケットを読み取り、解析し、ＦＰＧＡに必要な通信信号に変換し、ＦＰＧＡと直接通信を行う。
【００５２】
ＦＰＡＧインターフェースチップは、プリセットデータフォーマットに基づいてデータパケットを解析する。ＦＰＡＧインターフェースチップは、データをＦＰＧＡと通信するホスト側に送信するときもプリセットデータフォーマットに基づいてデータをパッケージ化する。
【００５３】
Ｓ７０６において、ＦＰＧＡと通信するホスト側は、インターフェースをリリースすることにより、ＦＰＡＧインターフェースチップとの接続を遮断する。
【００５４】
本発明の実施例によりＦＰＧＡと通信する方法が提供される。図８に示すように、当該方法は、以下のステップにより実現される。
【００５５】
Ｓ１１において、ＦＰＧＡと通信するホストのソフトウェアインターフェースモジュール１０１は、伝送データを特定するように上位レイヤアプリケーションに公開される呼出インターフェースを定義する。
【００５６】
Ｓ１２において、ＦＰＧＡと通信するホストのリソース管理モジュール１０２は、呼出インターフェースにより伝送データを取得し、伝送データをプロトコルパケットモジュール１０３に送信するホストインターフェースチップｃａｂｌｅオブジェクトを管理し、少なくとも二つのｃａｂｌｅオブジェクトに同時に並列にアクセスすることを許可する。
【００５７】
Ｓ１３において、プロトコルパケットモジュール１０３は、伝送データを受信し、ＦＰＧＡのインターフェースプロトコルおよびｃａｂｌｅオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、データパケットをＦＰＧＡと通信するホストのホストチャンネルインターフェースモジュール１０４に送信する。
【００５８】
Ｓ１４において、ホストチャンネルインターフェースモジュール１０４は、前記データパケットを受信し、データパケットをＦＰＧＡインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルを介してＦＰＧＡインターフェースチップに送信する。
【００５９】
Ｓ１５において、ＦＰＧＡインターフェースチップは、データパケットを受信し、データパケットをＦＰＧＡに必要な通信信号に変換し、ＦＰＧＡと直接通信を行う。
【００６０】
また、ＦＰＧＡインターフェースチップがデータパケットを受信した後、ＦＰＧＡと通信する方法は、以下のステップをさらに有する。ＦＰＧＡと通信するホストは、インターフェースをリリースすることにより、ＦＰＡＧインターフェースチップとの接続を遮断する。
【００６１】
本発明の実施例では、ＦＰＧＡと通信する方法についての説明および当該方法の有益效果は、いずれも上述した実施例に係るＦＰＧＡと通信するホストについての説明および有益效果と同じであるため、ここで省略する。なお、「含む」、「有する」、またはその他の変形は、非排他的に含むことを意図しているため、一連の要素を含むプロセス、方法、物品、またはデバイスは、それらの要素を含むだけでなく、リストされていない他の要素を含み、或いはプロセス、方法、物品、またはデバイスに固有する要素を含む場合がある。
【００６２】
上述した本発明の実施例の番号は、説明のみを目的とし、実施例の優劣を示すものではない。
【００６３】
上記実施形態の説明を通じて、当業者は、上記実施形態に係る方法が、ソフトウェアおよび必要なハードウェアプラットフォームによって実現されることを明確に理解することができる。もちろん、ハードウェアによっても実現できるが、ほとんどの場合、前者の方が好ましい。このような理解に基づいて、本発明の特別な技術的特徴、または従来技術に寄与する特徴は、ソフトウェア製品の形で表現される。コンピュータソフトウェア製品は、記憶媒体（ＲＯＭ／ＲＡＭ、磁気ディスク、光ディスク）に記憶され、デバイス（携帯電話、コンピュータ、サーバー、エアコン、ネットワークデバイスなど）に各実施例に係る方法を実行させるためのいくつかの命令を含む。
【００６４】
上記の内容は、具体的な実施様態に基づいて本発明の実施例をさらに詳しく説明したものであり、本発明の具体的な実施がこれらの説明に限定されると考えることはできない。当業者は、本発明の精神から逸脱しない限り、若干の改良及び修正を加えることができる。これらの改良及び修正も本発明の保護の範囲と見なされる。
【００６５】
本願は、２０１９年０６月２８日に中国専利局に提出された、出願番号が２０１９１０５８０６４７．９であり、発明の名称が「ＦＰＧＡと通信するホストおよびＦＰＧＡインターフェースチップ」である中国特許出願の優先権を主張するものであり、先願の内容をすべて組み込んでいる。
【図１】
2021532621.tif 000003
【図２Ａ】
2021532621.tif 000004
【図２Ｂ】
2021532621.tif 000005
【図２Ｃ】
2021532621.tif 000006
【図３】
2021532621.tif 000007
【図４】
2021532621.tif 000008
【図５】
2021532621.tif 000009
【図６】
2021532621.tif 000010
【図７】
2021532621.tif 000011
【図８】
2021532621.tif 000012
【国際調査報告】
2021532621.tif 000013
2021532621.tif 000014
2021532621.tif 000015
2021532621.tif 000016
2021532621.tif 000017