JP7041285B2 - Fpgaと通信するホスト、fpgaと通信する方法、および通信システム - Google Patents

Fpgaと通信するホスト、fpgaと通信する方法、および通信システム Download PDF

Info

Publication number
JP7041285B2
JP7041285B2 JP2020568804A JP2020568804A JP7041285B2 JP 7041285 B2 JP7041285 B2 JP 7041285B2 JP 2020568804 A JP2020568804 A JP 2020568804A JP 2020568804 A JP2020568804 A JP 2020568804A JP 7041285 B2 JP7041285 B2 JP 7041285B2
Authority
JP
Japan
Prior art keywords
fpga
interface
host
cable
communicates
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020568804A
Other languages
English (en)
Other versions
JP2021532621A (ja
Inventor
展鵬 馮
Original Assignee
深▲セン▼市紫光同創電子有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深▲セン▼市紫光同創電子有限公司 filed Critical 深▲セン▼市紫光同創電子有限公司
Publication of JP2021532621A publication Critical patent/JP2021532621A/ja
Application granted granted Critical
Publication of JP7041285B2 publication Critical patent/JP7041285B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)

Description

本発明は、プログラマブルロジックデバイス分野に関する。具体的には、FPGAと通信するホスト、FPGAと通信する方法、およびFPGAインターフェースチップに関する。
FPGA(Field-Programmable Gate Array、フィールド・プログラマブル・ゲート・アレイ)は、プログラマブルロジックデバイスである。FPGAチップでは、通常、オンチップ制御システムが統合される。当該オンチップ制御システムにおいて、ユーザがJTAG(Joint Test Action Group、共同テストアクショングループ)や、SPI(Serial Peripheral Interface、シリアル・ペリフェラル・インターフェース)のようなインターフェースを介してFPGAに対して配置し、デバッグしまたはソフトコアデータとハードコアデータを読み取り、書き込みなどの操作を行うことが許可される。通信プロセスでは、上位コンピュータは、異なるチャンネルを利用してFPGAと通信することができる。受信側には、通常、ホストのメッセージを送受信し、FPGAと直接通信するために用いられるインターフェースチップが設けられる。当該インターフェースチップで構成されるサブシステムは、一般にダウンローダ(cable)と呼ばれる。
本発明に係る態様により提供されるFPGAと通信するホスト、FPGAと通信する方法、およびFPGAインターフェースチップは、主にインターフェースソフトウェアの設計において、スケーラビリティが低く、複数種の通信リソースを並行して使用してFPGAインターフェースチップと通信することができないという従来の問題を解決することを目的とする。
本発明のある態様によれば、伝送データを特定するように上位レイヤアプリケーションに公開される呼出インターフェースを定義するためのソフトウェアインターフェースモジュールと、前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可するリソース管理モジュールと、前記伝送データを受信し、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットをホストチャンネルインターフェースモジュールに送信する前記プロトコルパケットモジュールと、前記データパケットを受信し、前記データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する前記ホストチャンネルインターフェースモジュールと、を含むFPGAと通信するホストが提供される。
本発明の他の態様によれば、前記FPGAインターフェースチップは、前記ホストから送信されるデータパケットを受信し、前記データパケットをFPGAに必要な通信信号に変換し、FPGAと直接通信を行うFPGAインターフェースチップが提供される。
本発明のその他の態様によれば、FPGAと通信するホストのソフトウェアインターフェースモジュールが、伝送データを特定可能に上位レイヤアプリケーションに公開される呼出インターフェースを定義するステップと、FPGAと通信する前記ホストのリソース管理モジュールが、前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可するステップと、前記プロトコルパケットモジュールが、前記伝送データを受信し、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットを前記FPGAと通信するホストのホストチャンネルインターフェースモジュールに送信するステップと、前記ホストチャンネルインターフェースモジュールが、前記データパケットを受信し、前記データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルを介してFPGAインターフェースチップに送信するステップと、前記FPGAインターフェースチップが、前記データパケットを受信し、前記データパケットをFPGAに必要な通信信号に変換し、FPGAと直接通信を行うステップと、を含むFPGAと通信する方法が提供される。
本発明の態様は、下記の有益な効果を奏する。
従来のインターフェースソフトウェアの設計において、スケーラビリティが低く、複数種の通信リソースを並行に使用してFPGAインターフェースチップと通信できないという問題を解決するために、FPGAと通信するホストおよびFPGAインターフェースチップが提供される。本発明に係るソフトウェアインターフェースモジュールは、上位レイヤアプリケーションに公開される呼出インターフェースを定義し、リソース管理モジュールは、ホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可し、cableオブジェクトは、呼出インターフェースを共有し、プロトコルパケットモジュールは、FPGAのインターフェースプロトコルおよびcableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、ホストチャンネルインターフェースモジュールは、データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する。すなわち、本発明のFPGAと通信するホストは、インターフェースソフトウェアを階層化することにより、複数のインターフェースリソースに並行にアクセスすることを図る。また、利用されるソフトウェアインターフェースは、同一であるため、FPGAクラスターリソース管理に適する。また、本発明のFPGAと通信するホストは、移植性が良いため、完全に階層化されて異なるプラットフォームに移植されても、ホストチャンネルインターフェースだけが異なり、操作プロセスを変更する必要がないため、全体的なスケーラビリティと保守性が向上する。また、FPGA通信インターフェースの各操作を完全に抽象化することにより、呼出インターフェースソフトウェアの上位レイヤコードは、チャンネル、受信側ケーブル、インターフェースプロトコルのようなディテールを考慮しなくてよく、特定のFPGAの特定のインターフェースの通信プロセスだけに注目すればよい。
本発明の実施例1に係るFPGAと通信するホストの構造模式図である。 本発明の実施例1に係るFPGAと通信するホストがイーサネットを介してFPGAインターフェースチップに接続される模式図である。 本発明の実施例1に係るFPGAと通信するホストがワイヤレスネットを介してFPGAインターフェースチップに接続される模式図である。 本発明の実施例1に係るFPGAと通信するホストがUSBまたはLPTなどのケーブルを介してFPGAインターフェースチップに接続される模式図である。 本発明の実施例1に係るFPGAと通信するホストがイーサネットを介してFPGAインターフェースチップと通信する模式図である。 本発明の実施例1に係るプリセットデータフォーマットの模式図である。 本発明の実施例2に係るFPGAインターフェースチップがFPGAに接続される模式図である。 本発明の実施例2に係るソフトウェア階層構造図である。 本発明の実施例3に係るFPGAと通信するホストがFPGAと通信するプロセス図である。 本発明の実施例3に係るFPGAと通信する方法のプロセス図である。
以下、図面と実施例を参照しながら本発明を詳しく説明する。
本発明の目的、技術的解決策、及び利点をより明確に説明するために、図面を参照しながら、本発明の実施例をさらに詳しく説明する。ここで、記載される具体的な実施例は、本発明を説明するためのものに過ぎず、本発明を限定するものではない。
従来のFPGAメーカが開発した通信インターフェースソフトウェアには、一定の制限がある。例えば、ホストのUSBインターフェースケーブルを利用しなければFPGAと通信することができないため、複数のリソースを並行に使用することはできない。これにより、一度に一人のユーザしかリソースを利用することができないため、スケーラビリティが低いなどの欠点がある。一部のFPGAメーカは、ユーザがケーブル(実際、イーサネットインターフェースを介して回路基板上のFPGAにアクセスするもの)をローカルで仮想して通常のUSBケーブルとして利用できるように、ザイリンクスバーチャルケーブル(Xilinx Virtual Cable)のようなバーチャルケーブルのコンセプトを提案した。しかしながら、実際、このコンセプトを実現するためのソフトウェアが相互に独立したものであるため、FPGAの特定のオンチップインターフェースの通信プロセスコードを書き込む際に、異なるチャンネルに対して別々に書き込む必要がある。このため、開発リソースが浪費され、メンテナンスコストが増加する。上述の事情に鑑み、本発明は、以下の対策案を提示する。
実施例1
本実施例では、FPGA通信インターフェースの各操作を完全に抽象化することにより、呼出インターフェースソフトウェアの上位レイヤコードは、チャンネル、受信側ケーブル、インターフェースプロトコルのようなディテールを考慮しなくてよく、特定のFPGAの特定のインターフェースの通信プロセスだけに注目すればよい。これにより、ソフトウェア全体のスケーラビリティと保守性が向上する。図1に示すように、本実施例に係るホストは、FPGAと通信する。当該ホストは、コンピュータ、ノートパソコンなどであってもよいが、この限りではない。当該ホストは、ソフトウェアインターフェースモジュール101、リソース管理モジュール102、プロトコルパケットモジュール103、およびホストチャンネルインターフェースモジュール104を含む。
ソフトウェアインターフェースモジュール101は、上位レイヤアプリケーションに公開される呼出インターフェースを定義するためのものである。呼出インターフェースは、伝送データを特定するためのものである。
リソース管理モジュール102は、ホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列してアクセスすることを許可する。前記cableオブジェクトは、前記呼出インターフェースにより伝送データを取得し、伝送データをプロトコルパケットモジュール103に送信する。
プロトコルパケットモジュール103は、伝送データを受信し、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、データパケットをホストチャンネルインターフェースモジュール104に送信する。
ホストチャンネルインターフェースモジュール104は、データパケットを受信し、データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する。
係る実施例では、ソフトウェアインターフェースモジュール101によりユーザに公開される呼出インターフェースは、伝送データを特定することができる。リソース管理モジュール102によりFPGAインターフェースチップと通信するcableオブジェクトが確定される。cableオブジェクトは、呼出インターフェースにより伝送データを取得し、伝送データをプロトコルパケットモジュール103に送信する。プロトコルパケットモジュール103は、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、データパケットをホストチャンネルインターフェースモジュール104に送信する。
ここで、cableオブジェクトが異なれば、これに対応するチャンネルが異なる。cableオブジェクトは、USB(Universal Serial Bus、ユニバーサルシリアルバス)ケーブルが接続されるケーブル、イーサネットポートを介して接続される回路基板のケーブル、PCIE(peripheral component interconnect express、高速シリアルコンピュータ拡張バス規格)を介して接続されるPCIEカードのケーブル、およびプリンタパラレルポートに接続されるケーブルのうちの少なくとも一つを含む。cableオブジェクトに対応するチャンネルは、それぞれUSB、イーサネットポート、PCIE、およびプリンタパラレルポートである。ホストチャンネルインターフェースモジュール104は、チャンネルに関する処理のみを行い、データをパッケージ化する。そして、ホストチャンネルインターフェースモジュール104は、送信する際に、FPGAインターフェースチップと必要なデータパケットフォーマットを合意し、チャンネルに用いられるプロトコル規則に基づいてデータパケットを送信する必要がある。異なるFPGAインターフェースチップに対して、合意されたデータパケットフォーマットが異なる。
係る実施例では、ソフトウェアインターフェースモジュール101は、FPGAと通信するホストのインターフェースソフトウェアライブラリとして、ユーザに公開されるインターフェースを含む。呼出インターフェースは、FPGAと通信する基本ソフトウェアインターフェースを含む。図2A、図2B、図2Cに示すように、FPGAと通信するホストは、イーサネット、USB、LPTのようなケーブルやWi-Fi(ワイヤレスネット)を介してFPGAインターフェースチップに接続される。理解できるように、異なるタイプのFPGAインターフェースチップ、例えばUSB、イーサネット、WIFIなどは、通信プロセスがほぼ同じであり、必要なプロセスとしては、初期化してから接続し、データを相互に読み取り、書き出し、最後にリリースすることである。図3に示すように、FPGAと通信するホストは、イーサネットを介してFPGAインターフェースチップと通信するプロセスであり、具体的には、FPGAインターフェースチップは、特定のポートを監視し、接続を待機する。そして、FPGAと通信するホストは、IP(Internet Protocol、インターネットプロトコル)アドレスに基づいてソケット(socket)の接続を初期化し、接続が成功した後、FPGAと通信するホストは、ソケットによりデータの読み取り/書き込みを行い、FPGAインターフェースチップは、ソケット内のデータをデカプセルし、当該データをFPGAに必要な信号に変換する。その後、FPGAと通信するホストがリリースし、ソケットの接続が遮断され、FPGAインターフェースチップは、特定のポートを再度監視する。
そこで、本実施例では、FPGAと通信するホストが異なるタイプのFPGAインターフェースチップと通信できるように、ソフトウェアインターフェースモジュール101を統合して抽象化することにより、固定された基本ソフトウェアインターフェースが形成される。すなわち、上位レイヤソフトウェアは、各FPGAインターフェースチップと通信する際に、同じ基本ソフトウェアインターフェースを利用することができる。このため、本実施例に係る基本ソフトウェアインターフェースは、初期化(Init)インターフェース、データ書き込み(Write)インターフェース、データ読み取り(Read)インターフェース、およびリリース(Release)インターフェースを含む。例えば、FPGAと通信するホストがイーサネットを利用してFPGAインターフェースチップと通信する場合、初期化とは、TCP(Transmission Control Protocol、伝送制御プロトコル)/IPプロトコルを利用してシステムのソケットによりリモートのFPGAインターフェースチップとの接続をトライし、接続が成功した後、データパケットを送信し、特定の初期化操作を行い、FPGAインターフェースチップがデータパケットに対応する信号をホストに返信することであり、リリースとは、接続を遮断することであり、書き込みとは、バイナリデータをソケットへ書き込むことであり、読み取りとは、データをソケットから読み取ることである。FPGAと通信するホストがUSBを利用してFPGAインターフェースチップと通信する場合、初期化とは、システムインターフェースを呼び出してUSBデバイスを申請し、初期化操作を行うことであり、リリースとは、リソースをシステムへリリースすることであり、読み取り/書き込みとは、システムインターフェースを利用してデータを読み取り、書き込むことである。もちろん、FPGAと通信するホストとFPGAインターフェースチップとの間で伝送されたデータは、いずれも合意されたプリセットデータフォーマットに基づいてパッケージ化されるものである。
係る実施例では、伝送データが前記基本ソフトウェアインターフェースに伝送される過程において、リクエストオブジェクトを定義する必要がある。リクエストオブジェクトが構造体であるため、伝送データの構造は、リクエストオブジェクトを含む。前記リクエストオブジェクトは、事前に定義された操作コード、データ、オブジェクト、コールバック関数、および拡張void(型なし)ポインターのうちの少なくとも一つを含み、上位レイヤコードが統一された形式で基本ソフトウェアインターフェースにアクセスすることが許可される。
係る実施例では、リソース管理モジュール102は、利用可能なすべてのcableオブジェクトを管理する。当該cableオブジェクトは、USBケーブルに接続されるケーブルのような実在のものであってもよく、イーサネットポートを介して接続される回路基板のインターフェースチップまたはPCIEを介して接続されるPCIEカードのインターフェースチップのようなバーチャルしたものであってもよい。リソース管理モジュール102は、各タイプのcableオブジェクトの具体的な数および占用される状況を具体的に管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可する。もちろん、当該少なくとも二つのcableオブジェクトは干渉しない。本実施例では、各cableオブジェクトを容易に管理するために、各cableオブジェクトは、区別されやすいように、唯一のMACアドレスと識別子が割り当てられる。これにより、リソース管理モジュール102は、cableオブジェクトを唯一に特定することができる。
係る実施例では、cableオブジェクトに割り当てられる識別子は、当該cableオブジェクトのタイプ属性を定義するために用いられる。当該識別子は、FPGAと通信するホストによってカスタム設定される。例えば、cableオブジェクトがUSB ケーブルである場合、cableオブジェクトに対応する識別子がUSBであり、cableオブジェクトがイーサネットバーチャルケーブルである場合、cableオブジェクトに対応する識別子がイーサネットである。係る実施例では、ケーブルのタイプが明示されれば、識別子は、カスタム番号などであってもよい。
ここで、ケーブル自身が実在のMACを有するか否かに関わらず、唯一のMACアドレスが唯一のリソース識別子としてケーブルに割り当てられる。具体的には、前記cableオブジェクトがUSB ケーブルである場合、前記MACアドレスは、USBのEEPROMに記録されるシリアル番号であり、前記cableオブジェクトがイーサネットバーチャルケーブルである場合、前記MACアドレスがイーサネットバーチャルケーブルのIPアドレスまたはFPGAインターフェースチップリアルMACアドレスであり、前記cableオブジェクトがPCIEボードのケーブルである場合、前記MACアドレスは、PCIEバスのアドレスまたはPCIEバス上のインターフェースチップ内のシリアル番号であり、前記cableオブジェクトがプリンタパラレルポートである場合、前記MACアドレスがパラレルポートアドレスである。
ここで、ユーザは、FPGAインターフェースチップに接続される任意のcableオブジェクトを選択してもよい。具体的には、リソース管理モジュール102は、アクセス可能なcableオブジェクトリストをスキャンしてリストを作成した後、当該リストをユーザに提供する。
係る実施例では、呼出インターフェースは、アクセス可能なcableオブジェクトを取得するプローブ(Probe)インターフェースを含み、当該プローブインターフェースは、現在アクセス可能なcableオブジェクトの使用状況を検出することができる。上位レイヤアプリケーションが前記FPGAと通信するアクセスcableオブジェクトを特定するために、リソース管理モジュール102は、リストを作成した後、プローブインターフェースによりリストを前記上位レイヤアプリケーションに返信する。
係る実施例では、プロトコルパケットモジュール103は、主にFPGAのインターフェースプロトコルおよびチャンネルプロトコルに基づいて、受信した伝送データをカプセル化する。ここで、FPGAのハードコアとソフトコアは、通常、JTAG(Joint Test Action Group、ジョイントテストアクショングループ)、I2C(Inter-Integrated Circuit、2線式シリアルバス)、SPI(Serial Peripheral Interface、シリアルペリフェラルインターフェース)、および並列インターフェースなどのインターフェースをサポートする。これらのインターフェースプロトコルは、プロトコルの関連情報に基づいてアプリケーションレイヤで特別な処理を行う必要がある場合がある。
例えば、JTAGプロトコルについては、JTAGチェーンがある場合、実際、このチェーンに数多くのデバイスが設けられ、そのうちの一部がFPGAである可能性があり、そうでない可能性もある。このように、JTAGプロトコルソフトウェアは、必要に応じて一定の処理を行うことがある。例えば、JTAGコマンドを書き込む場合、チェーンの状況に応じて必要なバイパスコマンドを先に書き込む必要があり、JTAGデータを書き込む場合、1などを適当に足す必要がある。伝送データが伝送される場合、プロトコルパケットモジュール103は、チャンネルに用いられるプロトコルに基づいて伝送データを再度カプセル化する。例えば、イーサネットに対応するチャンネルを利用する場合、TCP/IPプロトコルに基づいて伝送データを再度カプセル化してホストチャンネルインターフェースモジュール104に送信するデータパケットを取得する。そして、TCP/IPデータをFPGAインターフェース情報により解析することで、抽出されるコンテンツは、合意されたプリセットデータパケットフォーマットである。
係る実施例では、ホストチャンネルインターフェースモジュール104とFPGAインターフェースチップとの間を通信するために、特定のフォーマットのデータを合意する必要がある。FPGAインターフェースチップがデータパケットを受信してデータパケットを解析することをしやすくするために、合意されたプリセットデータフォーマットは、FPGAインターフェースチップの実装方式に関連するものである。このため、ホストチャンネルインターフェースモジュール104は、FPGAインターフェースチップの実装方式に基づいて前記FPGAインターフェースチップと前記プリセットデータフォーマットを合意する。電子部品間のデジタル信号の通信において、バイナリデータについて特定のフォーマットを合意し、当該フォーマットでバイナリデータを送信する。
ここで、前記FPGAインターフェースチップは、FT2232HのUSBインターフェースチップを含む。前記プリセットデータフォーマットは、パケットヘッダと、データと、を含む。前記パケットヘッダは、コマンドコードおよびデータ長で構成される。図4に示すように、32ビット(bits)コマンドコードは、JTAGプロトコルの状態遷移、属性の設定、JTAGデータの読み取り/書き込みのようなFPGAインターフェースチップが実行する必要のある操作を決定する。32ビットのデータ長は、後ろのデータ量を示す。
係る実施例では、FPGAインターフェースチップは、MCU(Microcontroller Unit、マイクロコントロールユニット)をイーサネットポートチップと組み合わせて実現される。FPGAインターフェースチップがプログラマブルであるため、FPGAインターフェースチップが受信するネットデータパケットのコンテンツフォーマットを合意することができる。そして、両者は、合意されたコンテンツに基づいてデータパケットをデカプセルすることができる。
本実施例により提供されるFPGAと通信するホストは、階層化されるインターフェースソフトウェア設計モードを含み、ソフトウェアインターフェースモジュール101、リソース管理モジュール102、プロトコルパケットモジュール103、およびホストチャンネルインターフェースモジュール104により、FPGA通信インターフェースの各操作が完全に抽象化される。これにより、呼出インターフェースソフトウェアの上位レイヤコードは、チャンネル、受信側ケーブル、インターフェースプロトコルのようなディテールを考慮しなくてよく、特定のFPGAの特定のインターフェースの通信プロセスだけに注目すればよい。これにより、ソフトウェア全体のスケーラビリティと保守性が向上する。
実施例2
図5に示すように、本実施例により提供されるFPGAインターフェースチップは、FPGA側チャンネルインターフェースモジュールを含む。FPGA側チャンネルインターフェースモジュールは、FPGAと通信するホストから送信されるデータパケットを受信する。そして、FPGAインターフェースチップは、FPGAと通信するホストのホストチャンネルインターフェースモジュール104と合意されたプリセットデータフォーマットに基づいて前記データパケットを解析し、前記データパケットをFPGAに必要な通信信号に変換し、FPGAと直接通信を行う。
ここで、FPGA側チャンネルインターフェースモジュールがデータを解析することは、チップレベルの動作であり、すなわちチャンネルから直接データを読み取り、データを解析した後、FPGAに必要なJTAG、SPIなどの通信信号に直接変換し、FPGAと直接通信を行う。
例えば、インターフェースチップがUSB ケーブルである場合、USBケーブルによりFPGAと通信するホストのデータを取得し、JTAGなどのプロトコル信号に変換し、FPGAと通信を行う。ここで、前記FPGAインターフェースチップは、FT2232HのUSBインターフェースチップを含む。前記プリセットデータフォーマットは、パケットヘッダと、データと、を含む。前記パケットヘッダは、コマンドコードおよびデータ長で構成される。コマンドコードは、JTAGプロトコルの状態遷移、属性の設定、JTAGデータの読み取り/書き込みのようなFPGAインターフェースチップが実行する必要のある操作を決定する。データ長は、後ろのデータ量を示す。
本実施例によれば、FPGAと通信するインターフェース設計が提供される。階層化することによりインターフェースソフトウェアが図られる。図6に示すように、当該インターフェース設計は、ソフトウェアインターフェース、リソース管理、cableオブジェクト、プロトコルパケット、ホストチャンネルインターフェース、およびFPGA側チャンネルインターフェースを備える。
ソフトウェアインターフェースは、上位レイヤアプリケーションに公開されるインターフェースを定義し、リソースのリリースと申請を行うインターフェース、リソースリストを取得するプローブインターフェース、FPGAに直接関連する各プロトコルの読み書きインターフェース、初期化インターフェースなどを含む。これらの基本インターフェースを定義することにより、FPGAと通信するホストのインターフェースは、操作ユニット(オペレータ)に抽象化される。各タイプのオペレータは、対応する機能が図られる。これらのオペレータは、データの直接読み取り/書き込み、またはインターフェースの変換、初期化とリリース、およびリソース状況の収集のみを行う。異なるオペレータは、独自の特性に応じてカスタム機能を発揮するが、上位レイヤ機能は、これらの基本インターフェースしか想定していない。
リソース管理とは、リソースの管理を図り、cableリソースを管理し、複数の通信リソースに同時に並列にアクセスすることを許可するものである。リソース管理は、各タイプのリソース数、リソースが占用される状況などのすべての利用可能なcableリソースを管理する。リソース管理レイヤでリソースのリリースと申請を行うメカニズムが図られる。ユーザは、オブジェクトを申請するときにハンドルオブジェクトを取得し、これらのハンドルオブジェクトを用いて操作を行う。リソース管理は、自動的に利用可能なリソースをスキャンし、当該リストをユーザに提供する。プローブ機能インターフェースにおいて、返信されるのは、関連するリソースのリストである。ユーザは、選択した後、当該リストに対応するcableリソースに並列にアクセスすることができる。各cableリソースは、MAC、タイプなどによって唯一に区別される。プロセスにとっては、当該リソース管理オブジェクトは、一例にすぎない。
cableオブジェクトとは、USBケーブルに接続されるケーブルのような実在のものであってもよく、イーサネットポートを介して接続される回路基板のインターフェースチップまたはPCIEを介して接続されるPCIEカードのインターフェースチップのようなバーチャルしたものであってもよい。ソフトウェア設計レベルにおいて、これらのcableオブジェクトを一つのcableオブジェクトに抽象する必要がある。cableオブジェクトは、現在のタイプのcableにサポートされる各タイプのオペレータを統合し、統一されるハンドルソフトウェアインターフェースを実現することを目的とする。これにより、上位レイヤは、操作コードを伝送するだけでデータの読み取り/書き込みが図られる。cableオブジェクトは、初期化インターフェース,リリースインターフェースなどの基本インターフェースを提供する必要がある。これらのインターフェース方法は、関連するオペレータを呼び出してリソースの申隅とリリースを行うことである。
プロトコルパケットレイヤとは、FPGAが用いるJTAG、SPIなどのプロトコルに関するデータを特定の規則に基づいてデータパケットに作成し、当該データパケットを処理するために下位レイヤのオペレータオブジェクトに送信するものである。下位レイヤのオペレータは、チャンネルに関する問題のみを処理し、FPGAに関するプロトコル操作は、一部のプロトコルオペレータを実現してより下位レイヤに位置するオペレータをパッケージ化することにより図られる。プロトコルオペレータが位置するレイヤにおける処理は、ユーザから伝送されたプロトコルに関するデータパケットを分割または再編成し、基本読み取り/書き込みインターフェースを呼び出して行う処理である。プロトコルのオペレータは、下位レイヤのオペレータを必要とし、基本的にすべての下位レイヤのオペレータは、同一のプロトコルに関するオペレータを共有する。
ホストチャンネルインターフェースレイヤとは、主にシステムのドライブインターフェースを呼び出す下位レイヤのオペレータを実現し、チャンネルリクエストに基づいて上位レイヤから伝送されたデータを再度カプセル化して送信するものである。チャンネルが異なると、必要なエンコード方法も異なる。これは、FPGA側インターフェースにも関連する。データがチャンネルリクエストに基づいて送信された後、FPGA側チャンネルインターフェースに受信される。受信側が異なると、データパケットリクエストも異なるが、上位レイヤのソフトウェアは、特定のパケット条件を考慮せず、各受信側のプラットフォームごとに合意すればよい。そして、これらの合意に基づいて、独立したオペレータが図られる。
FPGA側チャンネルインターフェースとは、FPGA側にインターフェースチップが設けられるものである。FPGA側チャンネルインターフェースが例えばUSB ケーブルであれば、インターフェースチップを有するケーブルである。当該ケーブルは、USBケーブルを介してFPGAと通信するホストのデータを取得し、JTAGなどのプロトコル信号に変換し、FPGAと通信を行う。インターフェースチップが異なると、必要な処理も異なるため、FPGAと通信するホスト側の協力が必要である。しかしながら、ほとんどの場合、これは、カプセル化されたデータを組み合わせる方法の違いにすぎない。受信側は、インターフェースハードウェアをより柔軟に選択することができるので、FPGAと通信するホスト側は、受信側のハードウェア自身のリクエストによってデータをカプセル化する。この場合、インターフェースハードウェアチップは、データのデカプセルをサポートし、FPGAに必要な通信信号を変換し、FPGAと直接通信を行う必要がある。
本実施例では、階層化されたインターフェースソフトウェア設計モードは、以下の利点を有する。上位レイヤアプリケーションは、インターフェースチップ、FPGA自身のインターフェースプロトコルなどの特別な処理ディテールを考慮しなくてよい。これにより、スケーラビリティと保守性が向上する。チャンネルの如何を問わず、インターフェースリソースが上位レイヤアプリケーションに公開されることが決まっている。また、干渉しないインターフェースリソースは、並行してアクセスされるため、サーバープロセスとして利用される。イーサネットなどの相互接続構造を導入できれば、特定の分散特性も図られる。上位レイヤソフトウェアは、ネットワークにおける各FPGAリソースと通信する際に同じソフトウェアインターフェースを利用することができるため、FPGAクラスターリソースに適する。また、本発明のFPGAと通信するホストは、移植性が良いため、完全に階層化されて異なるプラットフォームに移植されても、ホストチャンネルインターフェースだけが異なるため、このレイヤで各オペレータを置き換えることにより、コードの移行が実現され、上位レイヤの操作プロセスを変更する必要がない。さらに、インターフェースソフトウェアは、様々な環境に適用し、ワイヤレス、有線などによりFPGAと通信することができる。
実施例3
本実施例は、FPGAと通信するホストのFPGAとの通信プロセスについて説明する。図7に示すように、S701において、FPGAと通信するホスト側は、プローブインターフェースに基づいてFPAGと通信するcableリソースを特定する。
本実施例では、プローブインターフェースは、主に現在のタイプのアクセス可能なリソースの総数を検出し、リストを作成して上位レイヤソフトウェアに返信する。これにより、ユーザは、どのcableリソースを利用してFPAGと通信するかを決定する。ここで、各cableリソースを区別するために、cableリソースには、MACアドレス及び識別子が割り当てられる。USBケーブルに接続されるケーブルおよびイーサネットがシミュレーションしたケーブルを利用してFPAGと通信することが決定されると、S702において、FPGAと通信するホスト側は、初期化インターフェースを介してFPAGのFPAGインターフェースチップに接続される。
イーサネットを利用する場合、初期化とは、TCP/IPプロトコルとシステムのソケットを利用してリモートで受信側に接続することであり、USBを利用する場合、初期化とは、システムインターフェースを呼び出してUSBデバイスを申請して初期化操作を行うことである。
S703において、書き込みデータインターフェースを利用してバイナリデータを書き込む際に、FPGAと通信するホスト側は、FPGAに用いられるインターフェースプロトコルに関するデータを特定の規則に基づいて組み合わせてデータパケットを作成する。
イーサネットを利用する場合、バイナリデータをソケットに書き込み、USBを利用する場合、システムインターフェースを利用してバイナリデータを書き込む。その後、JTAG、SPIなどのプロトコルに関するデータを利用して特定の規則に基づいてバイナリデータを組み合わせてデータパケットを作成する。
S704において、FPGAと通信するホスト側は、プリセットデータフォーマットに基づいて組み合わせてデータパケットを作成し、cableリソースに対応するチャンネルを介してFPAGインターフェースチップに送信する。
本実施例では、FPAGインターフェースチップは、FT2232HのUSBインターフェースチップを含む。プリセットデータフォーマットは、パケットヘッダと、データと、を含む。パケットヘッダは、コマンドコードおよびデータ長で構成される。コマンドコードは、JTAGプロトコルの状態遷移、属性の設定、JTAGデータの読み取り/書き込みのようなFPGAインターフェースチップが実行する必要のある操作を決定する。データ長は、後ろのデータ量を示す。FPAGインターフェースチップは、MCUをイーサネットポートチップと組み合わせて実現される。FPGAインターフェースチップがプログラマブルであるため、FPGAインターフェースチップが受信するネットデータパケットのコンテンツフォーマットを合意することができる。イーサネットを利用する場合、データパケットが伝送される際に、利用されるTCP/IPプロトコルは、データパケットを再度カプセル化してイーサネットポートチップに送信する。
S705において、FPAGインターフェースチップは、チャンネルからデータパケットを読み取り、解析し、FPGAに必要な通信信号に変換し、FPGAと直接通信を行う。
FPAGインターフェースチップは、プリセットデータフォーマットに基づいてデータパケットを解析する。FPAGインターフェースチップは、データをFPGAと通信するホスト側に送信するときもプリセットデータフォーマットに基づいてデータをパッケージ化する。
S706において、FPGAと通信するホスト側は、インターフェースをリリースすることにより、FPAGインターフェースチップとの接続を遮断する。
本発明の実施例によりFPGAと通信する方法が提供される。図8に示すように、当該方法は、以下のステップにより実現される。
S11において、FPGAと通信するホストのソフトウェアインターフェースモジュール101は、伝送データを特定するように上位レイヤアプリケーションに公開される呼出インターフェースを定義する。
S12において、FPGAと通信するホストのリソース管理モジュール102は、呼出インターフェースにより伝送データを取得し、伝送データをプロトコルパケットモジュール103に送信するホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可する。
S13において、プロトコルパケットモジュール103は、伝送データを受信し、FPGAのインターフェースプロトコルおよびcableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、データパケットをFPGAと通信するホストのホストチャンネルインターフェースモジュール104に送信する。
S14において、ホストチャンネルインターフェースモジュール104は、前記データパケットを受信し、データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルを介してFPGAインターフェースチップに送信する。
S15において、FPGAインターフェースチップは、データパケットを受信し、データパケットをFPGAに必要な通信信号に変換し、FPGAと直接通信を行う。
また、FPGAインターフェースチップがデータパケットを受信した後、FPGAと通信する方法は、以下のステップをさらに有する。FPGAと通信するホストは、インターフェースをリリースすることにより、FPAGインターフェースチップとの接続を遮断する。
本発明の実施例では、FPGAと通信する方法についての説明および当該方法の有益效果は、いずれも上述した実施例に係るFPGAと通信するホストについての説明および有益效果と同じであるため、ここで省略する。なお、「含む」、「有する」、またはその他の変形は、非排他的に含むことを意図しているため、一連の要素を含むプロセス、方法、物品、またはデバイスは、それらの要素を含むだけでなく、リストされていない他の要素を含み、或いはプロセス、方法、物品、またはデバイスに固有する要素を含む場合がある。
上述した本発明の実施例の番号は、説明のみを目的とし、実施例の優劣を示すものではない。
上記実施形態の説明を通じて、当業者は、上記実施形態に係る方法が、ソフトウェアおよび必要なハードウェアプラットフォームによって実現されることを明確に理解することができる。もちろん、ハードウェアによっても実現できるが、ほとんどの場合、前者の方が好ましい。このような理解に基づいて、本発明の特別な技術的特徴、または従来技術に寄与する特徴は、ソフトウェア製品の形で表現される。コンピュータソフトウェア製品は、記憶媒体(ROM/RAM、磁気ディスク、光ディスク)に記憶され、デバイス(携帯電話、コンピュータ、サーバー、エアコン、ネットワークデバイスなど)に各実施例に係る方法を実行させるためのいくつかの命令を含む。
上記の内容は、具体的な実施様態に基づいて本発明の実施例をさらに詳しく説明したものであり、本発明の具体的な実施がこれらの説明に限定されると考えることはできない。当業者は、本発明の精神から逸脱しない限り、若干の改良及び修正を加えることができる。これらの改良及び修正も本発明の保護の範囲と見なされる。
本願は、2019年06月28日に中国専利局に提出された、出願番号が201910580647.9であり、発明の名称が「FPGAと通信するホストおよびFPGAインターフェースチップ」である中国特許出願の優先権を主張するものであり、先願の内容をすべて組み込んでいる。

Claims (20)

  1. FPGAと通信するホストであって、
    伝送データを特定するように上位レイヤアプリケーションに公開される呼出インターフェースを定義するためのソフトウェアインターフェースモジュールと、
    前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可するリソース管理モジュールと、
    前記伝送データを受信し、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットをホストチャンネルインターフェースモジュールに送信する前記プロトコルパケットモジュールと、
    前記データパケットを受信し、前記データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する前記ホストチャンネルインターフェースモジュールと、を含む
    ことを特徴とするFPGAと通信するホスト。
  2. 請求項1に記載のFPGAと通信するホストであって、
    前記ホストチャンネルインターフェースモジュールが前記データパケットを送信した後、前記ホストとFPGAインターフェースチップとの接続を遮断するインターフェースリリースモジュールをさらに含む
    ことを特徴とするFPGAと通信するホスト。
  3. 請求項1に記載のFPGAと通信するホストであって、
    前記呼出インターフェースは、初期化インターフェース、データ書込インターフェース、データ読取インターフェース、およびリリースインターフェースが含まれFPGAと通信する基本ソフトウェアインターフェースを含む
    ことを特徴とするFPGAと通信するホスト。
  4. 請求項1に記載のFPGAと通信するホストであって、
    前記cableオブジェクトは、USBケーブルが接続されるケーブル、イーサネットポートを介して接続される回路基板のケーブル、PCIEを介して接続されるPCIEカードのケーブル、およびプリンタパラレルポートのうちの少なくとも一つを含む
    ことを特徴とするFPGAと通信するホスト。
  5. 請求項4に記載のFPGAと通信するホストであって、
    前記cableオブジェクトは、区別されるように唯一のMACアドレスとタイプ標識識別子が割り当てられる
    ことを特徴とするFPGAと通信するホスト。
  6. 請求項5に記載のFPGAと通信するホストであって、
    前記cableオブジェクトがUSB ケーブルである場合、前記MACアドレスは、USBのEEPROMに記録されるシリアル番号であり、
    前記cableオブジェクトがイーサネットバーチャルケーブルである場合、前記MACアドレスは、イーサネットバーチャルケーブルのIPアドレスまたはFPGAインターフェースチップリアルMACアドレスであり、
    前記cableオブジェクトがPCIEボードのケーブルである場合、前記MACアドレスは、PCIEバスのアドレスまたはPCIEバスのインターフェースチップのシリアル番号であり、
    前記cableオブジェクトがプリンタパラレルポートである場合、前記MACアドレスは、パラレルポートアドレスである
    ことを特徴とするFPGAと通信するホスト。
  7. 請求項4に記載のFPGAと通信するホストであって、
    前記リソース管理モジュールは、アクセスが許可されるcableオブジェクトをスキャンしてリストを作成する
    ことを特徴とするFPGAと通信するホスト。
  8. 請求項7に記載のFPGAと通信するホストであって、
    前記呼出インターフェースは、アクセス可能なcableオブジェクトを取得するプローブインターフェースをさらに含み、
    前記リソース管理モジュールは、前記上位レイヤアプリケーションが前記FPGAと通信するアクセスcableオブジェクトを特定するように、アクセスcableオブジェクトをスキャンしてリストを作成した後、前記プローブインターフェースを介して前記リストを前記上位レイヤアプリケーションに返信する
    ことを特徴とするFPGAと通信するホスト。
  9. 請求項1から8のいずれか一項に記載のFPGAと通信するホストであって、
    前記ホストチャンネルインターフェースモジュールは、前記FPGAインターフェースチップの実装方式に基づいて前記FPGAインターフェースチップと前記プリセットデータフォーマットを合意する
    ことを特徴とするFPGAと通信するホスト。
  10. 請求項9に記載のFPGAと通信するホストであって、
    前記FPGAインターフェースチップがFT2232HのUSBインターフェースチップを含む場合、前記プリセットデータフォーマットは、コマンドコードおよびデータ長で構成されるパケットヘッダと、データと、を含む
    ことを特徴とするFPGAと通信するホスト。
  11. 通信システムであって、
    請求項1から10のいずれか一項に記載のFPGAと通信するホストと、
    前記ホストから送信されるデータパケットを受信し、前記データパケットをFPGAに必要な通信信号に変換してFPGAと直接通信を行うFPGAインターフェースチップと、を備える、
    ことを特徴とする通信システム
  12. 請求項11に記載の通信システムであって、
    前記FPGAインターフェースチップは、イーサネット、USB、LTP、およびワイヤレスネットを含む
    ことを特徴とする通信システム
  13. 請求項12に記載の通信システムであって、
    前記FPGAインターフェースチップがFT2232HのUSBインターフェースチップを含む場合、前記プリセットデータフォーマットは、コマンドコードおよびデータ長で構成されるパケットヘッダと、データと、を含む
    ことを特徴とする通信システム
  14. 請求項11に記載の通信システムであって、
    前記FPGAインターフェースチップは、初期化インターフェースを介して前記FPGAと通信するホストに接続される
    ことを特徴とする通信システム
  15. 請求項11に記載の通信システムであって、
    前記FPGAがサポートするインターフェースプロトコルは、JTAG、I2C、SPI、および並列インターフェースを含む
    ことを特徴とする通信システム
  16. 請求項11に記載の通信システムであって、
    前記FPGAインターフェースチップは、請求項1から9のいずれか一項に記載のFPGAと通信するホストから送信されるデータパケットを受信するチャンネルインターフェースモジュールを含む
    ことを特徴とする通信システム
  17. FPGAと通信する方法であって、
    FPGAと通信するホストのソフトウェアインターフェースモジュールが、伝送データを特定可能に上位レイヤアプリケーションに公開される呼出インターフェースを定義するステップと、
    FPGAと通信する前記ホストのリソース管理モジュールが、前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可するステップと、
    前記プロトコルパケットモジュールが、前記伝送データを受信し、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットを前記FPGAと通信するホストのホストチャンネルインターフェースモジュールに送信するステップと、
    前記ホストチャンネルインターフェースモジュールが、前記データパケットを受信し、前記データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルを介してFPGAインターフェースチップに送信するステップと、
    前記FPGAインターフェースチップが、前記データパケットを受信し、前記データパケットをFPGAに必要な通信信号に変換し、FPGAと直接通信を行うステップと、を含む
    ことを特徴とするFPGAと通信する方法。
  18. 請求項17に記載のFPGAと通信する方法であって、
    前記FPGAインターフェースチップが前記データパケットを受信した後、
    前記FPGAと通信するホストが、インターフェースをリリースすることにより、前記FPGAインターフェースチップとの接続を遮断するステップをさらに含む
    ことを特徴とするFPGAと通信する方法。
  19. 請求項17または18に記載のFPGAと通信する方法であって、
    前記リソース管理モジュールがホストインターフェースチップcableオブジェクトを管理するステップは、
    前記リソース管理モジュールは、アクセスが許可されるcableオブジェクトをスキャンしてリストを作成するステップを含む
    ことを特徴とするFPGAと通信する方法。
  20. 請求項19に記載のFPGAと通信する方法であって、
    前記呼出インターフェースは、アクセス可能なcableオブジェクトを取得するプローブインターフェースをさらに含み、
    前記リソース管理モジュールがホストインターフェースチップcableオブジェクトを管理するステップは、
    前記リソース管理モジュールが、前記上位レイヤアプリケーションが前記FPGAと通信するアクセスcableオブジェクトを特定するように、アクセスcableオブジェクトをスキャンしてリストを作成した後、前記プローブインターフェースを介して前記リストを前記上位レイヤアプリケーションに返信するステップをさらに含む
    ことを特徴とするFPGAと通信する方法。
JP2020568804A 2019-06-28 2020-06-24 Fpgaと通信するホスト、fpgaと通信する方法、および通信システム Active JP7041285B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910580647.9 2019-06-28
CN201910580647.9A CN110445831A (zh) 2019-06-28 2019-06-28 一种与fpga通信的主机、fpga接口芯片
PCT/CN2020/097858 WO2020259523A1 (zh) 2019-06-28 2020-06-24 与fpga通信的主机及方法、fpga接口芯片

Publications (2)

Publication Number Publication Date
JP2021532621A JP2021532621A (ja) 2021-11-25
JP7041285B2 true JP7041285B2 (ja) 2022-03-23

Family

ID=68428752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020568804A Active JP7041285B2 (ja) 2019-06-28 2020-06-24 Fpgaと通信するホスト、fpgaと通信する方法、および通信システム

Country Status (3)

Country Link
JP (1) JP7041285B2 (ja)
CN (1) CN110445831A (ja)
WO (1) WO2020259523A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110445831A (zh) * 2019-06-28 2019-11-12 深圳市紫光同创电子有限公司 一种与fpga通信的主机、fpga接口芯片
CN111614793B (zh) * 2020-04-22 2022-03-04 上海御渡半导体科技有限公司 一种基于fpga的以太网交换机的mac地址管理装置及方法
CN112256615B (zh) * 2020-10-22 2023-05-16 广东高云半导体科技股份有限公司 Usb转换接口装置
CN114003022B (zh) * 2021-11-03 2024-04-05 深圳硅山技术有限公司 一种基于数据流的设备监控平台
CN117472440B (zh) * 2023-12-27 2024-03-29 苏州元脑智能科技有限公司 芯片控制方法和装置、存储介质及电子设备
CN117938653B (zh) * 2024-03-18 2024-06-11 广州致远电子股份有限公司 通信接口配置方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201111013Y (zh) 2007-11-08 2008-09-03 重庆爱思网安信息技术有限公司 硬件写保护功能数据复制器
JP2012022613A (ja) 2010-07-16 2012-02-02 Fujitsu Ltd 通信経路モジュール、論理検証プログラム、および論理検証方法
WO2018235967A1 (en) 2017-06-23 2018-12-27 Pixie Dust Technologies, Inc. SYSTEM AND METHOD FOR PRODUCING AMBIOSTIC SPATIALIZATION USING ULTRASOUND
CN109446135A (zh) 2018-10-24 2019-03-08 盛科网络(苏州)有限公司 一种实现多颗大容量fpga远程高速下载的装置及方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609288B (zh) * 2012-02-14 2015-12-16 上海三一精机有限公司 一种基于fpga/cpld的程序下载器
DE102012004844B4 (de) * 2012-03-13 2018-05-17 Phoenix Contact Gmbh & Co. Kg System der Messwertüberwachung und Abschaltung bei Auftreten von Messwertabweichungen
CN104182372A (zh) * 2013-05-22 2014-12-03 英业达科技有限公司 数据烧录装置
CN204631851U (zh) * 2015-05-28 2015-09-09 深圳市微芯集成电路设计有限公司 烧录器
CN105024884A (zh) * 2015-07-28 2015-11-04 深圳市同创国芯电子有限公司 一种可编程逻辑器件pld调试***及方法
CN107181657B (zh) * 2017-05-31 2020-07-17 中车信息技术有限公司 一种wtb链路层接口适配器及其实现方法
CN107704261A (zh) * 2017-11-24 2018-02-16 广东乐心医疗电子股份有限公司 一种软件烧录***以及软件烧录方法
CN207690065U (zh) * 2018-01-22 2018-08-03 济南浪潮高新科技投资发展有限公司 一种基于fpga可多路切换的jtag下载器
CN109542478A (zh) * 2018-11-09 2019-03-29 中电科仪器仪表有限公司 一种更新SPI Flash内FPGA程序的***及方法
CN110445831A (zh) * 2019-06-28 2019-11-12 深圳市紫光同创电子有限公司 一种与fpga通信的主机、fpga接口芯片

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201111013Y (zh) 2007-11-08 2008-09-03 重庆爱思网安信息技术有限公司 硬件写保护功能数据复制器
JP2012022613A (ja) 2010-07-16 2012-02-02 Fujitsu Ltd 通信経路モジュール、論理検証プログラム、および論理検証方法
WO2018235967A1 (en) 2017-06-23 2018-12-27 Pixie Dust Technologies, Inc. SYSTEM AND METHOD FOR PRODUCING AMBIOSTIC SPATIALIZATION USING ULTRASOUND
CN109446135A (zh) 2018-10-24 2019-03-08 盛科网络(苏州)有限公司 一种实现多颗大容量fpga远程高速下载的装置及方法

Also Published As

Publication number Publication date
WO2020259523A1 (zh) 2020-12-30
CN110445831A (zh) 2019-11-12
JP2021532621A (ja) 2021-11-25

Similar Documents

Publication Publication Date Title
JP7041285B2 (ja) Fpgaと通信するホスト、fpgaと通信する方法、および通信システム
CN105981338B (zh) 用于使用i/o设备链路在主机之间建立高速网络通信和文件传输的链路***
CN116501681B (zh) Cxl数据传输板卡及控制数据传输的方法
CN113806116A (zh) 基于Linux***的协议栈数据传输方法、计算机设备和存储介质
CN110532208B (zh) 一种数据处理方法、接口转换结构及数据处理设备
CN108170626B (zh) 一种1553b总线软件动态可配置方法
CN105472291A (zh) 多处理器集群的数字硬盘录像机及其实现方法
CN102346707A (zh) 服务器***与其操作方法
JP6665190B2 (ja) ネットワーク共有実施方法及び装置
CN112749113A (zh) 一种数据交互的方法、***、设备及介质
CN109257955B (zh) 操作硬盘的方法和硬盘管理器
CN112291259B (zh) 一种协议转换方法、网关、设备及可读存储介质
JP2003526223A (ja) 通信システム用開発およびテストツール
CN109358820B (zh) 数据访问方法、装置、电子设备及计算机可读存储介质
CN116647490A (zh) 一种航空afdx网络数据检测***
US9078282B2 (en) Method and apparatus for implementing network device function of wireless communication terminal
US10599588B1 (en) Interconnection of peripheral devices on different electronic devices
CN102200888B (zh) 一种虚拟存储器、虚拟存储***及方法
CN117319255A (zh) 网卡带外管理功能的测试方法、装置、介质以及终端
CN117032040B (zh) 传感器数据获取方法、装置、设备及可读存储介质
CN113722110B (zh) 计算机***、内存访问方法及设备
CN116048893B (zh) 光纤总线接口的测试方法及相关设备
CN117251297B (zh) 一种设备分配方法及电子设备和存储介质
CN117369906B (zh) Pcie验证平台、方法、装置、存储介质及电子设备
CN212906277U (zh) 基于tftp协议的嵌入式软件测试装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220310

R150 Certificate of patent or registration of utility model

Ref document number: 7041285

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150