JP7041285B2 - Hosts that communicate with the FPGA, methods of communicating with the FPGA, and communication systems - Google Patents

Hosts that communicate with the FPGA, methods of communicating with the FPGA, and communication systems 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
Japanese (ja)
Other versions
JP2021532621A (en
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/en
Application granted granted Critical
Publication of JP7041285B2 publication Critical patent/JP7041285B2/en
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

Description

本発明は、プログラマブルロジックデバイス分野に関する。具体的には、FPGAと通信するホスト、FPGAと通信する方法、およびFPGAインターフェースチップに関する。 The present invention relates to the field of programmable logic devices. Specifically, the present invention relates to a host that communicates with the FPGA, a method of communicating with the FPGA, and an FPGA interface chip.

FPGA(Field-Programmable Gate Array、フィールド・プログラマブル・ゲート・アレイ)は、プログラマブルロジックデバイスである。FPGAチップでは、通常、オンチップ制御システムが統合される。当該オンチップ制御システムにおいて、ユーザがJTAG(Joint Test Action Group、共同テストアクショングループ)や、SPI(Serial Peripheral Interface、シリアル・ペリフェラル・インターフェース)のようなインターフェースを介してFPGAに対して配置し、デバッグしまたはソフトコアデータとハードコアデータを読み取り、書き込みなどの操作を行うことが許可される。通信プロセスでは、上位コンピュータは、異なるチャンネルを利用してFPGAと通信することができる。受信側には、通常、ホストのメッセージを送受信し、FPGAと直接通信するために用いられるインターフェースチップが設けられる。当該インターフェースチップで構成されるサブシステムは、一般にダウンローダ(cable)と呼ばれる。 FPGA (Field-Programmable Gate Array) is a programmable logic device. FPGA chips typically integrate with an on-chip control system. In the on-chip control system, the user places and debugs the FPGA via an interface such as JTAG (Joint Test Action Group) or SPI (Serial Peripheral Interface). It is also permitted to read and write soft-core data and hard-core data. In the communication process, the host computer can use different channels to communicate with the FPGA. The receiving side is usually provided with an interface chip used to send and receive host messages and directly communicate with the FPGA. The subsystem composed of the interface chip is generally called a downloader (cable).

本発明に係る態様により提供されるFPGAと通信するホスト、FPGAと通信する方法、およびFPGAインターフェースチップは、主にインターフェースソフトウェアの設計において、スケーラビリティが低く、複数種の通信リソースを並行して使用してFPGAインターフェースチップと通信することができないという従来の問題を解決することを目的とする。 The host communicating with the FPGA, the method of communicating with the FPGA, and the FPGA interface chip provided by the embodiment of the present invention have low scalability mainly in the design of the interface software, and use a plurality of types of communication resources in parallel. The purpose is to solve the conventional problem of not being able to communicate with the FPGA interface chip.

本発明のある態様によれば、伝送データを特定するように上位レイヤアプリケーションに公開される呼出インターフェースを定義するためのソフトウェアインターフェースモジュールと、前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可するリソース管理モジュールと、前記伝送データを受信し、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットをホストチャンネルインターフェースモジュールに送信する前記プロトコルパケットモジュールと、前記データパケットを受信し、前記データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する前記ホストチャンネルインターフェースモジュールと、を含むFPGAと通信するホストが提供される。 According to an aspect of the present invention, a software interface module for defining a call interface exposed to a higher layer application so as to specify transmission data, the transmission data is acquired by the call interface, and the transmission data is obtained. A resource management module that manages the host interface chip cable object to be transmitted to the protocol packet module and allows at least two cable objects to be accessed in parallel at the same time, and the FPGA interface protocol and the cable object that receive the transmission data. Based on the channel protocol corresponding to, the protocol packet module that encapsulates the transmission data to acquire the data packet and transmits the data packet to the host channel interface module, and the protocol packet module that receives the data packet and transmits the data packet to the FPGA. A host that communicates with the FPGA is provided, including the host channel interface module, which is packaged and transmitted by channel based on a preset data format agreed with the interface chip.

本発明の他の態様によれば、前記FPGAインターフェースチップは、前記ホストから送信されるデータパケットを受信し、前記データパケットをFPGAに必要な通信信号に変換し、FPGAと直接通信を行うFPGAインターフェースチップが提供される。 According to another aspect of the present invention, the FPGA interface chip receives a data packet transmitted from the host, converts the data packet into a communication signal required for the FPGA, and directly communicates with the FPGA. Chips are provided.

本発明のその他の態様によれば、FPGAと通信するホストのソフトウェアインターフェースモジュールが、伝送データを特定可能に上位レイヤアプリケーションに公開される呼出インターフェースを定義するステップと、FPGAと通信する前記ホストのリソース管理モジュールが、前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可するステップと、前記プロトコルパケットモジュールが、前記伝送データを受信し、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットを前記FPGAと通信するホストのホストチャンネルインターフェースモジュールに送信するステップと、前記ホストチャンネルインターフェースモジュールが、前記データパケットを受信し、前記データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルを介してFPGAインターフェースチップに送信するステップと、前記FPGAインターフェースチップが、前記データパケットを受信し、前記データパケットをFPGAに必要な通信信号に変換し、FPGAと直接通信を行うステップと、を含むFPGAと通信する方法が提供される。 According to another aspect of the invention, the software interface module of the host communicating with the FPGA defines a call interface that exposes the transmitted data to a higher layer application so that the transmitted data can be identified, and the resource of the host communicating with the FPGA. A step that allows the management module to manage the host interface chip cable object that acquires the transmission data by the calling interface and transmits the transmission data to the protocol packet module, and allows at least two cable objects to be accessed in parallel at the same time. Then, the protocol packet module receives the transmission data, encapsulates the transmission data and acquires a data packet based on the interface protocol of the FPGA and the channel protocol corresponding to the cable object, and obtains the data packet from the data packet by the FPGA. The step of transmitting to the host channel interface module of the host communicating with the host channel interface module receives the data packet, packages the data packet based on the preset data format agreed with the FPGA interface chip, and channels. Includes a step of transmitting to the FPGA interface chip via the above, and a step of receiving the data packet, converting the data packet into a communication signal required for the FPGA, and directly communicating with the FPGA. A method of communicating with the FPGA is provided.

本発明の態様は、下記の有益な効果を奏する。
従来のインターフェースソフトウェアの設計において、スケーラビリティが低く、複数種の通信リソースを並行に使用してFPGAインターフェースチップと通信できないという問題を解決するために、FPGAと通信するホストおよびFPGAインターフェースチップが提供される。本発明に係るソフトウェアインターフェースモジュールは、上位レイヤアプリケーションに公開される呼出インターフェースを定義し、リソース管理モジュールは、ホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可し、cableオブジェクトは、呼出インターフェースを共有し、プロトコルパケットモジュールは、FPGAのインターフェースプロトコルおよびcableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、ホストチャンネルインターフェースモジュールは、データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する。すなわち、本発明のFPGAと通信するホストは、インターフェースソフトウェアを階層化することにより、複数のインターフェースリソースに並行にアクセスすることを図る。また、利用されるソフトウェアインターフェースは、同一であるため、FPGAクラスターリソース管理に適する。また、本発明のFPGAと通信するホストは、移植性が良いため、完全に階層化されて異なるプラットフォームに移植されても、ホストチャンネルインターフェースだけが異なり、操作プロセスを変更する必要がないため、全体的なスケーラビリティと保守性が向上する。また、FPGA通信インターフェースの各操作を完全に抽象化することにより、呼出インターフェースソフトウェアの上位レイヤコードは、チャンネル、受信側ケーブル、インターフェースプロトコルのようなディテールを考慮しなくてよく、特定のFPGAの特定のインターフェースの通信プロセスだけに注目すればよい。
Aspects of the present invention have the following beneficial effects.
Hosts and FPGA interface chips that communicate with FPGAs are provided to solve the problem of poor scalability and inability to communicate with FPGA interface chips using multiple types of communication resources in parallel in traditional interface software designs. .. The software interface module according to the present invention defines a call interface exposed to a higher layer application, and the resource management module manages a host interface chip cable object and permits at least two cable objects to be accessed in parallel at the same time. The cable object shares the call interface, the protocol packet module encapsulates the transmission data and acquires the data packet based on the FPGA interface protocol and the channel protocol corresponding to the cable object, and the host channel interface module , The data packet is packaged according to the preset data format agreed with the FPGA interface chip and transmitted by channel. That is, the host communicating with the FPGA of the present invention aims to access a plurality of interface resources in parallel by layering the interface software. Moreover, since the software interfaces used are the same, it is suitable for FPGA cluster resource management. Further, since the host communicating with the FPGA of the present invention has good portability, even if it is completely layered and ported to a different platform, only the host channel interface is different and there is no need to change the operation process. Improves scalability and maintainability. Also, by completely abstracting each operation of the FPGA communication interface, the upper layer code of the calling interface software does not have to consider details such as channels, receiver cables, and interface protocols, and identifies a specific FPGA. You only need to pay attention to the communication process of the interface of.

本発明の実施例1に係るFPGAと通信するホストの構造模式図である。It is a structural schematic diagram of the host which communicates with FPGA which concerns on Example 1 of this invention. 本発明の実施例1に係るFPGAと通信するホストがイーサネットを介してFPGAインターフェースチップに接続される模式図である。FIG. 5 is a schematic diagram in which a host communicating with the FPGA according to the first embodiment of the present invention is connected to the FPGA interface chip via Ethernet. 本発明の実施例1に係るFPGAと通信するホストがワイヤレスネットを介してFPGAインターフェースチップに接続される模式図である。FIG. 5 is a schematic diagram in which a host communicating with the FPGA according to the first embodiment of the present invention is connected to the FPGA interface chip via a wireless net. 本発明の実施例1に係るFPGAと通信するホストがUSBまたはLPTなどのケーブルを介してFPGAインターフェースチップに接続される模式図である。FIG. 5 is a schematic diagram in which a host communicating with the FPGA according to the first embodiment of the present invention is connected to the FPGA interface chip via a cable such as USB or LPT. 本発明の実施例1に係るFPGAと通信するホストがイーサネットを介してFPGAインターフェースチップと通信する模式図である。FIG. 5 is a schematic diagram in which a host communicating with the FPGA according to the first embodiment of the present invention communicates with the FPGA interface chip via Ethernet. 本発明の実施例1に係るプリセットデータフォーマットの模式図である。It is a schematic diagram of the preset data format which concerns on Example 1 of this invention. 本発明の実施例2に係るFPGAインターフェースチップがFPGAに接続される模式図である。It is a schematic diagram that the FPGA interface chip which concerns on Example 2 of this invention is connected to FPGA. 本発明の実施例2に係るソフトウェア階層構造図である。It is a software hierarchy structure diagram which concerns on Example 2 of this invention. 本発明の実施例3に係るFPGAと通信するホストがFPGAと通信するプロセス図である。FIG. 3 is a process diagram in which a host communicating with the FPGA according to the third embodiment of the present invention communicates with the FPGA. 本発明の実施例3に係るFPGAと通信する方法のプロセス図である。It is a process diagram of the method of communicating with FPGA which concerns on Example 3 of this invention.

以下、図面と実施例を参照しながら本発明を詳しく説明する。 Hereinafter, the present invention will be described in detail with reference to the drawings and examples.

本発明の目的、技術的解決策、及び利点をより明確に説明するために、図面を参照しながら、本発明の実施例をさらに詳しく説明する。ここで、記載される具体的な実施例は、本発明を説明するためのものに過ぎず、本発明を限定するものではない。 In order to more clearly explain the object, technical solution, and advantage of the present invention, embodiments of the present invention will be described in more detail with reference to the drawings. Here, the specific examples described are merely for explaining the present invention, and do not limit the present invention.

従来のFPGAメーカが開発した通信インターフェースソフトウェアには、一定の制限がある。例えば、ホストのUSBインターフェースケーブルを利用しなければFPGAと通信することができないため、複数のリソースを並行に使用することはできない。これにより、一度に一人のユーザしかリソースを利用することができないため、スケーラビリティが低いなどの欠点がある。一部のFPGAメーカは、ユーザがケーブル(実際、イーサネットインターフェースを介して回路基板上のFPGAにアクセスするもの)をローカルで仮想して通常のUSBケーブルとして利用できるように、ザイリンクスバーチャルケーブル(Xilinx Virtual Cable)のようなバーチャルケーブルのコンセプトを提案した。しかしながら、実際、このコンセプトを実現するためのソフトウェアが相互に独立したものであるため、FPGAの特定のオンチップインターフェースの通信プロセスコードを書き込む際に、異なるチャンネルに対して別々に書き込む必要がある。このため、開発リソースが浪費され、メンテナンスコストが増加する。上述の事情に鑑み、本発明は、以下の対策案を提示する。 Communication interface software developed by conventional FPGA manufacturers has certain restrictions. For example, since it is not possible to communicate with the FPGA without using the USB interface cable of the host, it is not possible to use multiple resources in parallel. As a result, only one user can use the resource at a time, which has a drawback such as low scalability. Some FPGA manufacturers allow users to locally virtualize a cable (actually one that accesses an FPGA on a circuit board via an Ethernet interface) and use it as a regular USB cable. I proposed the concept of virtual cable like Cable). However, in fact, because the software to realize this concept is independent of each other, when writing the communication process code of a particular on-chip interface of the FPGA, it is necessary to write it separately for different channels. This wastes development resources and increases maintenance costs. In view of the above circumstances, the present invention presents the following countermeasures.

実施例1
本実施例では、FPGA通信インターフェースの各操作を完全に抽象化することにより、呼出インターフェースソフトウェアの上位レイヤコードは、チャンネル、受信側ケーブル、インターフェースプロトコルのようなディテールを考慮しなくてよく、特定のFPGAの特定のインターフェースの通信プロセスだけに注目すればよい。これにより、ソフトウェア全体のスケーラビリティと保守性が向上する。図1に示すように、本実施例に係るホストは、FPGAと通信する。当該ホストは、コンピュータ、ノートパソコンなどであってもよいが、この限りではない。当該ホストは、ソフトウェアインターフェースモジュール101、リソース管理モジュール102、プロトコルパケットモジュール103、およびホストチャンネルインターフェースモジュール104を含む。
Example 1
In this embodiment, by completely abstracting each operation of the FPGA communication interface, the upper layer code of the calling interface software does not have to consider details such as channels, receiver cables, and interface protocols, and is specific. We only need to focus on the communication process of a particular interface of the FPGA. This improves the scalability and maintainability of the software as a whole. As shown in FIG. 1, the host according to this embodiment communicates with the FPGA. The host may be a computer, a laptop computer, or the like, but this is not the case. The host includes a software interface module 101, a resource management module 102, a protocol packet module 103, and a host channel interface module 104.

ソフトウェアインターフェースモジュール101は、上位レイヤアプリケーションに公開される呼出インターフェースを定義するためのものである。呼出インターフェースは、伝送データを特定するためのものである。 The software interface module 101 is for defining a call interface exposed to a higher layer application. The call interface is for identifying transmission data.

リソース管理モジュール102は、ホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列してアクセスすることを許可する。前記cableオブジェクトは、前記呼出インターフェースにより伝送データを取得し、伝送データをプロトコルパケットモジュール103に送信する。 The resource management module 102 manages the host interface chip cable object and allows at least two cable objects to be accessed in parallel at the same time. The cable object acquires transmission data by the calling interface and transmits the transmission data to the protocol packet module 103.

プロトコルパケットモジュール103は、伝送データを受信し、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、データパケットをホストチャンネルインターフェースモジュール104に送信する。 The protocol packet module 103 receives transmission data, encapsulates the transmission data to acquire a data packet based on the FPGA interface protocol and the channel protocol corresponding to the cable object, and transfers the data packet to the host channel interface module 104. Send.

ホストチャンネルインターフェースモジュール104は、データパケットを受信し、データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する。 The host channel interface module 104 receives the data packet, packages the data packet based on the preset data format agreed with the FPGA interface chip, and transmits it by channel.

係る実施例では、ソフトウェアインターフェースモジュール101によりユーザに公開される呼出インターフェースは、伝送データを特定することができる。リソース管理モジュール102によりFPGAインターフェースチップと通信するcableオブジェクトが確定される。cableオブジェクトは、呼出インターフェースにより伝送データを取得し、伝送データをプロトコルパケットモジュール103に送信する。プロトコルパケットモジュール103は、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、データパケットをホストチャンネルインターフェースモジュール104に送信する。 In such an embodiment, the calling interface exposed to the user by the software interface module 101 can specify transmission data. The resource management module 102 determines the cable object that communicates with the FPGA interface chip. The cable object acquires transmission data by the calling interface and transmits the transmission data to the protocol packet module 103. The protocol packet module 103 encapsulates transmission data to acquire a data packet and transmits the data packet to the host channel interface module 104 based on the FPGA interface protocol and the channel protocol corresponding to the cable object.

ここで、cableオブジェクトが異なれば、これに対応するチャンネルが異なる。cableオブジェクトは、USB(Universal Serial Bus、ユニバーサルシリアルバス)ケーブルが接続されるケーブル、イーサネットポートを介して接続される回路基板のケーブル、PCIE(peripheral component interconnect express、高速シリアルコンピュータ拡張バス規格)を介して接続されるPCIEカードのケーブル、およびプリンタパラレルポートに接続されるケーブルのうちの少なくとも一つを含む。cableオブジェクトに対応するチャンネルは、それぞれUSB、イーサネットポート、PCIE、およびプリンタパラレルポートである。ホストチャンネルインターフェースモジュール104は、チャンネルに関する処理のみを行い、データをパッケージ化する。そして、ホストチャンネルインターフェースモジュール104は、送信する際に、FPGAインターフェースチップと必要なデータパケットフォーマットを合意し、チャンネルに用いられるプロトコル規則に基づいてデータパケットを送信する必要がある。異なるFPGAインターフェースチップに対して、合意されたデータパケットフォーマットが異なる。 Here, if the cable object is different, the corresponding channel is different. The cable object is via a cable to which a USB (Universal Serial Bus) cable is connected, a circuit board cable connected via an Ethernet port, and a PCIE (peripheral component interconnect express, high-speed serial computer expansion bus standard). Includes at least one of the PCIE card cables connected to and the cable connected to the printer parallel port. The channels corresponding to the cable object are USB, Ethernet port, PCIe, and printer parallel port, respectively. The host channel interface module 104 only performs processing related to the channel and packages the data. Then, when transmitting, the host channel interface module 104 needs to agree on a necessary data packet format with the FPGA interface chip and transmit the data packet based on the protocol rule used for the channel. The agreed data packet format is different for different FPGA interface chips.

係る実施例では、ソフトウェアインターフェースモジュール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インターフェースチップは、特定のポートを再度監視する。 In such an embodiment, the software interface module 101 includes an interface exposed to the user as an interface software library of the host communicating with the FPGA. The calling interface includes a basic software interface that communicates with the FPGA. As shown in FIGS. 2A, 2B, and 2C, the host communicating with the FPGA is connected to the FPGA interface chip via a cable such as Ethernet, USB, LPT, or Wi-Fi (wireless net). As you can see, different types of FPGA interface chips, such as USB, Ethernet, WIFI, etc., have almost the same communication process, the necessary processes are to initialize and then connect, read and write data to each other, The last to be released. As shown in FIG. 3, the host communicating with the FPGA is a process of communicating with the FPGA interface chip via Ethernet, specifically, the FPGA interface chip monitors a specific port and listens for a connection. Then, the host communicating with the FPGA initializes the socket connection based on the IP (Internet Protocol) address, and after the connection is successful, the host communicating with the FPGA reads data by the socket / After writing, the FPGA interface chip decapsulates the data in the socket and converts the data into the signal required for FPGA. After that, the host communicating with the FPGA releases, the socket connection is cut off, and the FPGA interface chip monitors the specific port again.

そこで、本実施例では、FPGAと通信するホストが異なるタイプのFPGAインターフェースチップと通信できるように、ソフトウェアインターフェースモジュール101を統合して抽象化することにより、固定された基本ソフトウェアインターフェースが形成される。すなわち、上位レイヤソフトウェアは、各FPGAインターフェースチップと通信する際に、同じ基本ソフトウェアインターフェースを利用することができる。このため、本実施例に係る基本ソフトウェアインターフェースは、初期化(Init)インターフェース、データ書き込み(Write)インターフェース、データ読み取り(Read)インターフェース、およびリリース(Release)インターフェースを含む。例えば、FPGAと通信するホストがイーサネットを利用してFPGAインターフェースチップと通信する場合、初期化とは、TCP(Transmission Control Protocol、伝送制御プロトコル)/IPプロトコルを利用してシステムのソケットによりリモートのFPGAインターフェースチップとの接続をトライし、接続が成功した後、データパケットを送信し、特定の初期化操作を行い、FPGAインターフェースチップがデータパケットに対応する信号をホストに返信することであり、リリースとは、接続を遮断することであり、書き込みとは、バイナリデータをソケットへ書き込むことであり、読み取りとは、データをソケットから読み取ることである。FPGAと通信するホストがUSBを利用してFPGAインターフェースチップと通信する場合、初期化とは、システムインターフェースを呼び出してUSBデバイスを申請し、初期化操作を行うことであり、リリースとは、リソースをシステムへリリースすることであり、読み取り/書き込みとは、システムインターフェースを利用してデータを読み取り、書き込むことである。もちろん、FPGAと通信するホストとFPGAインターフェースチップとの間で伝送されたデータは、いずれも合意されたプリセットデータフォーマットに基づいてパッケージ化されるものである。 Therefore, in this embodiment, a fixed basic software interface is formed by integrating and abstracting the software interface module 101 so that the host communicating with the FPGA can communicate with a different type of FPGA interface chip. That is, the upper layer software can use the same basic software interface when communicating with each FPGA interface chip. Therefore, the basic software interface according to the present embodiment includes an initialization (Init) interface, a data write (Write) interface, a data read (Read) interface, and a release (Relase) interface. For example, when a host communicating with an FPGA communicates with an FPGA interface chip using Ethernet, initialization is a remote FPGA via a system socket using TCP (Transmission Control Protocol) / IP protocol. It tries to connect to the interface chip, and after the connection is successful, it sends a data packet, performs a specific initialization operation, and the FPGA interface chip returns the signal corresponding to the data packet to the host. Is to break the connection, write is to write binary data to the socket, and read is to read the data from the socket. When a host communicating with the FPGA uses USB to communicate with the FPGA interface chip, initialization means calling the system interface, applying for a USB device, and performing an initialization operation, and release means releasing resources. It is released to the system, and read / write is to read and write data using the system interface. Of course, all the data transmitted between the host communicating with the FPGA and the FPGA interface chip is packaged based on the agreed preset data format.

係る実施例では、伝送データが前記基本ソフトウェアインターフェースに伝送される過程において、リクエストオブジェクトを定義する必要がある。リクエストオブジェクトが構造体であるため、伝送データの構造は、リクエストオブジェクトを含む。前記リクエストオブジェクトは、事前に定義された操作コード、データ、オブジェクト、コールバック関数、および拡張void(型なし)ポインターのうちの少なくとも一つを含み、上位レイヤコードが統一された形式で基本ソフトウェアインターフェースにアクセスすることが許可される。 In such an embodiment, it is necessary to define a request object in the process of transmitting transmission data to the basic software interface. Since the request object is a structure, the structure of the transmission data includes the request object. The request object contains at least one of a predefined operation code, data, object, callback function, and extended void (untyped) pointer, and is a basic software interface in a unified format with higher layer code. Is allowed access to.

係る実施例では、リソース管理モジュール102は、利用可能なすべてのcableオブジェクトを管理する。当該cableオブジェクトは、USBケーブルに接続されるケーブルのような実在のものであってもよく、イーサネットポートを介して接続される回路基板のインターフェースチップまたはPCIEを介して接続されるPCIEカードのインターフェースチップのようなバーチャルしたものであってもよい。リソース管理モジュール102は、各タイプのcableオブジェクトの具体的な数および占用される状況を具体的に管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可する。もちろん、当該少なくとも二つのcableオブジェクトは干渉しない。本実施例では、各cableオブジェクトを容易に管理するために、各cableオブジェクトは、区別されやすいように、唯一のMACアドレスと識別子が割り当てられる。これにより、リソース管理モジュール102は、cableオブジェクトを唯一に特定することができる。 In such an embodiment, the resource management module 102 manages all available cable objects. The cable object may be an actual one such as a cable connected to a USB cable, and may be an interface chip of a circuit board connected via an Ethernet port or an interface chip of a PCIE card connected via PCIE. It may be a virtual one such as. The resource management module 102 specifically manages the specific number of each type of cable object and the occupied situation, and allows at least two cable objects to be accessed in parallel at the same time. Of course, the at least two cable objects do not interfere. In this embodiment, in order to easily manage each cable object, each cable object is assigned a unique MAC address and identifier so as to be easily distinguished. As a result, the resource management module 102 can uniquely identify the cable object.

係る実施例では、cableオブジェクトに割り当てられる識別子は、当該cableオブジェクトのタイプ属性を定義するために用いられる。当該識別子は、FPGAと通信するホストによってカスタム設定される。例えば、cableオブジェクトがUSB ケーブルである場合、cableオブジェクトに対応する識別子がUSBであり、cableオブジェクトがイーサネットバーチャルケーブルである場合、cableオブジェクトに対応する識別子がイーサネットである。係る実施例では、ケーブルのタイプが明示されれば、識別子は、カスタム番号などであってもよい。 In such an embodiment, the identifier assigned to the cable object is used to define the type attribute of the cable object. The identifier is custom set by the host communicating with the FPGA. For example, if the cable object is a USB cable, the identifier corresponding to the cable object is USB, and if the cable object is an Ethernet virtual cable, the identifier corresponding to the cable object is Ethernet. In such an embodiment, the identifier may be a custom number or the like, provided the cable type is specified.

ここで、ケーブル自身が実在のMACを有するか否かに関わらず、唯一のMACアドレスが唯一のリソース識別子としてケーブルに割り当てられる。具体的には、前記cableオブジェクトがUSB ケーブルである場合、前記MACアドレスは、USBのEEPROMに記録されるシリアル番号であり、前記cableオブジェクトがイーサネットバーチャルケーブルである場合、前記MACアドレスがイーサネットバーチャルケーブルのIPアドレスまたはFPGAインターフェースチップリアルMACアドレスであり、前記cableオブジェクトがPCIEボードのケーブルである場合、前記MACアドレスは、PCIEバスのアドレスまたはPCIEバス上のインターフェースチップ内のシリアル番号であり、前記cableオブジェクトがプリンタパラレルポートである場合、前記MACアドレスがパラレルポートアドレスである。 Here, the only MAC address is assigned to the cable as the only resource identifier, regardless of whether the cable itself has a real MAC. Specifically, when the cable object is a USB cable, the MAC address is a serial number recorded in the EEPROM of the USB, and when the cable object is an Ethernet virtual cable, the MAC address is an Ethernet virtual cable. IP address or FPGA interface chip When the cable object is a cable of a PCIE board, the MAC address is an address of the PCIE bus or a serial number in the interface chip on the PCIE bus, and the cable is If the object is a printer parallel port, the MAC address is the parallel port address.

ここで、ユーザは、FPGAインターフェースチップに接続される任意のcableオブジェクトを選択してもよい。具体的には、リソース管理モジュール102は、アクセス可能なcableオブジェクトリストをスキャンしてリストを作成した後、当該リストをユーザに提供する。 Here, the user may select any cable object connected to the FPGA interface chip. Specifically, the resource management module 102 scans an accessible table object list, creates a list, and then provides the list to the user.

係る実施例では、呼出インターフェースは、アクセス可能なcableオブジェクトを取得するプローブ(Probe)インターフェースを含み、当該プローブインターフェースは、現在アクセス可能なcableオブジェクトの使用状況を検出することができる。上位レイヤアプリケーションが前記FPGAと通信するアクセスcableオブジェクトを特定するために、リソース管理モジュール102は、リストを作成した後、プローブインターフェースによりリストを前記上位レイヤアプリケーションに返信する。 In such an embodiment, the calling interface includes a probe (Probe) interface for acquiring an accessible cable object, and the probe interface can detect the usage status of the currently accessible cable object. In order to identify the access cable object that the upper layer application communicates with the FPGA, the resource management module 102 creates the list and then returns the list to the upper layer application by the probe interface.

係る実施例では、プロトコルパケットモジュール103は、主にFPGAのインターフェースプロトコルおよびチャンネルプロトコルに基づいて、受信した伝送データをカプセル化する。ここで、FPGAのハードコアとソフトコアは、通常、JTAG(Joint Test Action Group、ジョイントテストアクショングループ)、I2C(Inter-Integrated Circuit、2線式シリアルバス)、SPI(Serial Peripheral Interface、シリアルペリフェラルインターフェース)、および並列インターフェースなどのインターフェースをサポートする。これらのインターフェースプロトコルは、プロトコルの関連情報に基づいてアプリケーションレイヤで特別な処理を行う必要がある場合がある。 In such an embodiment, the protocol packet module 103 encapsulates the received transmission data, primarily based on the FPGA's interface and channel protocols. Here, the hardcore and soft core of FPGA are usually JTAG (Joint Test Action Group, Joint Test Action Group), I2C (Inter-Integrated Circuit, 2-wire serial bus), SPI (Serial Peripheral Interface), and serial peripheral interface. , And interfaces such as parallel interfaces. These interface protocols may require special processing at the application layer based on the protocol's relevant information.

例えば、JTAGプロトコルについては、JTAGチェーンがある場合、実際、このチェーンに数多くのデバイスが設けられ、そのうちの一部がFPGAである可能性があり、そうでない可能性もある。このように、JTAGプロトコルソフトウェアは、必要に応じて一定の処理を行うことがある。例えば、JTAGコマンドを書き込む場合、チェーンの状況に応じて必要なバイパスコマンドを先に書き込む必要があり、JTAGデータを書き込む場合、1などを適当に足す必要がある。伝送データが伝送される場合、プロトコルパケットモジュール103は、チャンネルに用いられるプロトコルに基づいて伝送データを再度カプセル化する。例えば、イーサネットに対応するチャンネルを利用する場合、TCP/IPプロトコルに基づいて伝送データを再度カプセル化してホストチャンネルインターフェースモジュール104に送信するデータパケットを取得する。そして、TCP/IPデータをFPGAインターフェース情報により解析することで、抽出されるコンテンツは、合意されたプリセットデータパケットフォーマットである。 For example, for the JTAG protocol, if there is a JTAG chain, in fact, there are many devices in this chain, some of which may or may not be FPGAs. As described above, the JTAG protocol software may perform certain processing as necessary. For example, when writing a JTAG command, it is necessary to write a necessary bypass command first according to the chain situation, and when writing JTAG data, it is necessary to add 1 or the like appropriately. When the transmission data is transmitted, the protocol packet module 103 reencapsulates the transmission data based on the protocol used for the channel. For example, when using a channel corresponding to Ethernet, the transmission data is re-encapsulated based on the TCP / IP protocol to acquire a data packet to be transmitted to the host channel interface module 104. Then, by analyzing the TCP / IP data with the FPGA interface information, the content to be extracted is the agreed preset data packet format.

係る実施例では、ホストチャンネルインターフェースモジュール104とFPGAインターフェースチップとの間を通信するために、特定のフォーマットのデータを合意する必要がある。FPGAインターフェースチップがデータパケットを受信してデータパケットを解析することをしやすくするために、合意されたプリセットデータフォーマットは、FPGAインターフェースチップの実装方式に関連するものである。このため、ホストチャンネルインターフェースモジュール104は、FPGAインターフェースチップの実装方式に基づいて前記FPGAインターフェースチップと前記プリセットデータフォーマットを合意する。電子部品間のデジタル信号の通信において、バイナリデータについて特定のフォーマットを合意し、当該フォーマットでバイナリデータを送信する。 In such an embodiment, it is necessary to agree on data in a specific format in order to communicate between the host channel interface module 104 and the FPGA interface chip. To facilitate the FPGA interface chip to receive the data packet and parse the data packet, the agreed preset data format is related to the FPGA interface chip implementation scheme. Therefore, the host channel interface module 104 agrees with the FPGA interface chip on the preset data format based on the mounting method of the FPGA interface chip. In the communication of digital signals between electronic components, a specific format is agreed for binary data, and the binary data is transmitted in that format.

ここで、前記FPGAインターフェースチップは、FT2232HのUSBインターフェースチップを含む。前記プリセットデータフォーマットは、パケットヘッダと、データと、を含む。前記パケットヘッダは、コマンドコードおよびデータ長で構成される。図4に示すように、32ビット(bits)コマンドコードは、JTAGプロトコルの状態遷移、属性の設定、JTAGデータの読み取り/書き込みのようなFPGAインターフェースチップが実行する必要のある操作を決定する。32ビットのデータ長は、後ろのデータ量を示す。 Here, the FPGA interface chip includes a USB interface chip of FT2232H. The preset data format includes a packet header and data. The packet header is composed of a command code and a data length. As shown in FIG. 4, the 32-bit command code determines the operations that the FPGA interface chip needs to perform, such as JTAG protocol state transitions, attribute settings, and JTAG data read / write. The 32-bit data length indicates the amount of data behind.

係る実施例では、FPGAインターフェースチップは、MCU(Microcontroller Unit、マイクロコントロールユニット)をイーサネットポートチップと組み合わせて実現される。FPGAインターフェースチップがプログラマブルであるため、FPGAインターフェースチップが受信するネットデータパケットのコンテンツフォーマットを合意することができる。そして、両者は、合意されたコンテンツに基づいてデータパケットをデカプセルすることができる。 In such an embodiment, the FPGA interface chip is realized by combining an MCU (Microcontroller Unit) with an Ethernet port chip. Since the FPGA interface chip is programmable, it is possible to agree on the content format of the net data packet received by the FPGA interface chip. Both can then decapsulate the data packet based on the agreed content.

本実施例により提供されるFPGAと通信するホストは、階層化されるインターフェースソフトウェア設計モードを含み、ソフトウェアインターフェースモジュール101、リソース管理モジュール102、プロトコルパケットモジュール103、およびホストチャンネルインターフェースモジュール104により、FPGA通信インターフェースの各操作が完全に抽象化される。これにより、呼出インターフェースソフトウェアの上位レイヤコードは、チャンネル、受信側ケーブル、インターフェースプロトコルのようなディテールを考慮しなくてよく、特定のFPGAの特定のインターフェースの通信プロセスだけに注目すればよい。これにより、ソフトウェア全体のスケーラビリティと保守性が向上する。 The host communicating with the FPGA provided by this embodiment includes a layered interface software design mode, and the FPGA communication is performed by the software interface module 101, the resource management module 102, the protocol packet module 103, and the host channel interface module 104. Each operation of the interface is completely abstracted. As a result, the higher layer code of the calling interface software does not have to consider details such as channels, receiver cables, and interface protocols, and only needs to focus on the communication process of a particular interface of a particular FPGA. This improves the scalability and maintainability of the software as a whole.

実施例2
図5に示すように、本実施例により提供されるFPGAインターフェースチップは、FPGA側チャンネルインターフェースモジュールを含む。FPGA側チャンネルインターフェースモジュールは、FPGAと通信するホストから送信されるデータパケットを受信する。そして、FPGAインターフェースチップは、FPGAと通信するホストのホストチャンネルインターフェースモジュール104と合意されたプリセットデータフォーマットに基づいて前記データパケットを解析し、前記データパケットをFPGAに必要な通信信号に変換し、FPGAと直接通信を行う。
Example 2
As shown in FIG. 5, the FPGA interface chip provided by this embodiment includes an FPGA side channel interface module. The FPGA side channel interface module receives the data packet transmitted from the host communicating with the FPGA. Then, the FPGA interface chip analyzes the data packet based on the preset data format agreed with the host channel interface module 104 of the host communicating with the FPGA, converts the data packet into a communication signal required for the FPGA, and converts the data packet into a communication signal required for the FPGA. Communicate directly with.

ここで、FPGA側チャンネルインターフェースモジュールがデータを解析することは、チップレベルの動作であり、すなわちチャンネルから直接データを読み取り、データを解析した後、FPGAに必要なJTAG、SPIなどの通信信号に直接変換し、FPGAと直接通信を行う。 Here, the analysis of the data by the FPGA side channel interface module is a chip level operation, that is, the data is read directly from the channel, the data is analyzed, and then the communication signals such as JTAG and SPI required for the FPGA are directly processed. Converts and communicates directly with the FPGA.

例えば、インターフェースチップがUSB ケーブルである場合、USBケーブルによりFPGAと通信するホストのデータを取得し、JTAGなどのプロトコル信号に変換し、FPGAと通信を行う。ここで、前記FPGAインターフェースチップは、FT2232HのUSBインターフェースチップを含む。前記プリセットデータフォーマットは、パケットヘッダと、データと、を含む。前記パケットヘッダは、コマンドコードおよびデータ長で構成される。コマンドコードは、JTAGプロトコルの状態遷移、属性の設定、JTAGデータの読み取り/書き込みのようなFPGAインターフェースチップが実行する必要のある操作を決定する。データ長は、後ろのデータ量を示す。 For example, when the interface chip is a USB cable, the data of the host communicating with the FPGA is acquired by the USB cable, converted into a protocol signal such as JTAG, and communicated with the FPGA. Here, the FPGA interface chip includes a USB interface chip of FT2232H. The preset data format includes a packet header and data. The packet header is composed of a command code and a data length. The command code determines the operations that the FPGA interface chip needs to perform, such as JTAG protocol state transitions, attribute settings, and reading / writing of JTAG data. The data length indicates the amount of data behind.

本実施例によれば、FPGAと通信するインターフェース設計が提供される。階層化することによりインターフェースソフトウェアが図られる。図6に示すように、当該インターフェース設計は、ソフトウェアインターフェース、リソース管理、cableオブジェクト、プロトコルパケット、ホストチャンネルインターフェース、およびFPGA側チャンネルインターフェースを備える。 According to this embodiment, an interface design for communicating with the FPGA is provided. Interface software is planned by layering. As shown in FIG. 6, the interface design includes a software interface, resource management, cable object, protocol packet, host channel interface, and FPGA side channel interface.

ソフトウェアインターフェースは、上位レイヤアプリケーションに公開されるインターフェースを定義し、リソースのリリースと申請を行うインターフェース、リソースリストを取得するプローブインターフェース、FPGAに直接関連する各プロトコルの読み書きインターフェース、初期化インターフェースなどを含む。これらの基本インターフェースを定義することにより、FPGAと通信するホストのインターフェースは、操作ユニット(オペレータ)に抽象化される。各タイプのオペレータは、対応する機能が図られる。これらのオペレータは、データの直接読み取り/書き込み、またはインターフェースの変換、初期化とリリース、およびリソース状況の収集のみを行う。異なるオペレータは、独自の特性に応じてカスタム機能を発揮するが、上位レイヤ機能は、これらの基本インターフェースしか想定していない。 The software interface defines the interface exposed to the upper layer application, and includes the interface for releasing and applying for resources, the probe interface for acquiring the resource list, the read / write interface for each protocol directly related to FPGA, the initialization interface, and so on. .. By defining these basic interfaces, the interface of the host that communicates with the FPGA is abstracted to the operation unit (operator). Each type of operator has a corresponding function. These operators only read / write data directly, or convert, initialize and release interfaces, and collect resource status. Different operators offer custom features depending on their unique characteristics, but higher layer features only assume these basic interfaces.

リソース管理とは、リソースの管理を図り、cableリソースを管理し、複数の通信リソースに同時に並列にアクセスすることを許可するものである。リソース管理は、各タイプのリソース数、リソースが占用される状況などのすべての利用可能なcableリソースを管理する。リソース管理レイヤでリソースのリリースと申請を行うメカニズムが図られる。ユーザは、オブジェクトを申請するときにハンドルオブジェクトを取得し、これらのハンドルオブジェクトを用いて操作を行う。リソース管理は、自動的に利用可能なリソースをスキャンし、当該リストをユーザに提供する。プローブ機能インターフェースにおいて、返信されるのは、関連するリソースのリストである。ユーザは、選択した後、当該リストに対応するcableリソースに並列にアクセスすることができる。各cableリソースは、MAC、タイプなどによって唯一に区別される。プロセスにとっては、当該リソース管理オブジェクトは、一例にすぎない。 Resource management is to manage resources, manage cable resources, and allow a plurality of communication resources to be accessed in parallel at the same time. Resource management manages all available cable resources such as the number of resources of each type, the situation in which the resources are occupied, and so on. A mechanism for releasing and applying for resources is established at the resource management layer. When the user applies for an object, the handle object is acquired and an operation is performed using these handle objects. Resource management automatically scans for available resources and provides the list to the user. In the probe function interface, what is returned is a list of related resources. After selecting, the user can access the cable resource corresponding to the list in parallel. Each cable resource is uniquely distinguished by MAC, type, etc. For the process, the resource management object is just one example.

cableオブジェクトとは、USBケーブルに接続されるケーブルのような実在のものであってもよく、イーサネットポートを介して接続される回路基板のインターフェースチップまたはPCIEを介して接続されるPCIEカードのインターフェースチップのようなバーチャルしたものであってもよい。ソフトウェア設計レベルにおいて、これらのcableオブジェクトを一つのcableオブジェクトに抽象する必要がある。cableオブジェクトは、現在のタイプのcableにサポートされる各タイプのオペレータを統合し、統一されるハンドルソフトウェアインターフェースを実現することを目的とする。これにより、上位レイヤは、操作コードを伝送するだけでデータの読み取り/書き込みが図られる。cableオブジェクトは、初期化インターフェース,リリースインターフェースなどの基本インターフェースを提供する必要がある。これらのインターフェース方法は、関連するオペレータを呼び出してリソースの申隅とリリースを行うことである。 The cable object may be an actual one such as a cable connected to a USB cable, and may be an interface chip of a circuit board connected via an Ethernet port or an interface chip of a PCIE card connected via PCIE. It may be a virtual one such as. At the software design level, it is necessary to abstract these cable objects into one cable object. The cable object aims to integrate each type of operator supported by the current type of cable to provide a unified handle software interface. As a result, the upper layer can read / write data only by transmitting the operation code. The cable object needs to provide a basic interface such as an initialization interface and a release interface. These interface methods are to call the associated operator to fill in and release the resource.

プロトコルパケットレイヤとは、FPGAが用いるJTAG、SPIなどのプロトコルに関するデータを特定の規則に基づいてデータパケットに作成し、当該データパケットを処理するために下位レイヤのオペレータオブジェクトに送信するものである。下位レイヤのオペレータは、チャンネルに関する問題のみを処理し、FPGAに関するプロトコル操作は、一部のプロトコルオペレータを実現してより下位レイヤに位置するオペレータをパッケージ化することにより図られる。プロトコルオペレータが位置するレイヤにおける処理は、ユーザから伝送されたプロトコルに関するデータパケットを分割または再編成し、基本読み取り/書き込みインターフェースを呼び出して行う処理である。プロトコルのオペレータは、下位レイヤのオペレータを必要とし、基本的にすべての下位レイヤのオペレータは、同一のプロトコルに関するオペレータを共有する。 The protocol packet layer creates data related to protocols such as JTAG and SPI used by FPGA in a data packet based on a specific rule, and transmits the data packet to an operator object in a lower layer in order to process the data packet. Lower layer operators handle only channel issues, and FPGA-related protocol operations are accomplished by implementing some protocol operators and packaging operators located in lower layers. The process at the layer where the protocol operator is located is the process of dividing or reorganizing the data packet related to the protocol transmitted from the user and calling the basic read / write interface. Protocol operators require lower layer operators, and basically all lower layer operators share operators for the same protocol.

ホストチャンネルインターフェースレイヤとは、主にシステムのドライブインターフェースを呼び出す下位レイヤのオペレータを実現し、チャンネルリクエストに基づいて上位レイヤから伝送されたデータを再度カプセル化して送信するものである。チャンネルが異なると、必要なエンコード方法も異なる。これは、FPGA側インターフェースにも関連する。データがチャンネルリクエストに基づいて送信された後、FPGA側チャンネルインターフェースに受信される。受信側が異なると、データパケットリクエストも異なるが、上位レイヤのソフトウェアは、特定のパケット条件を考慮せず、各受信側のプラットフォームごとに合意すればよい。そして、これらの合意に基づいて、独立したオペレータが図られる。 The host channel interface layer mainly realizes a lower layer operator that calls the drive interface of the system, and re-encapsulates and transmits the data transmitted from the upper layer based on the channel request. Different channels require different encoding methods. This is also related to the FPGA side interface. After the data is transmitted based on the channel request, it is received by the FPGA side channel interface. Different receivers have different data packet requests, but higher layer software may agree on each receiving platform without considering specific packet conditions. Then, based on these agreements, an independent operator is planned.

FPGA側チャンネルインターフェースとは、FPGA側にインターフェースチップが設けられるものである。FPGA側チャンネルインターフェースが例えばUSB ケーブルであれば、インターフェースチップを有するケーブルである。当該ケーブルは、USBケーブルを介してFPGAと通信するホストのデータを取得し、JTAGなどのプロトコル信号に変換し、FPGAと通信を行う。インターフェースチップが異なると、必要な処理も異なるため、FPGAと通信するホスト側の協力が必要である。しかしながら、ほとんどの場合、これは、カプセル化されたデータを組み合わせる方法の違いにすぎない。受信側は、インターフェースハードウェアをより柔軟に選択することができるので、FPGAと通信するホスト側は、受信側のハードウェア自身のリクエストによってデータをカプセル化する。この場合、インターフェースハードウェアチップは、データのデカプセルをサポートし、FPGAに必要な通信信号を変換し、FPGAと直接通信を行う必要がある。 The FPGA side channel interface is one in which an interface chip is provided on the FPGA side. If the FPGA side channel interface is, for example, a USB cable, it is a cable having an interface chip. The cable acquires the data of the host communicating with the FPGA via the USB cable, converts it into a protocol signal such as JTAG, and communicates with the FPGA. If the interface chip is different, the required processing is also different, so the cooperation of the host side that communicates with the FPGA is required. However, in most cases this is just a difference in how the encapsulated data is combined. Since the receiving side can select the interface hardware more flexibly, the host side communicating with the FPGA encapsulates the data at the request of the receiving side hardware itself. In this case, the interface hardware chip needs to support data decapsulation, convert the communication signals required for the FPGA, and communicate directly with the FPGA.

本実施例では、階層化されたインターフェースソフトウェア設計モードは、以下の利点を有する。上位レイヤアプリケーションは、インターフェースチップ、FPGA自身のインターフェースプロトコルなどの特別な処理ディテールを考慮しなくてよい。これにより、スケーラビリティと保守性が向上する。チャンネルの如何を問わず、インターフェースリソースが上位レイヤアプリケーションに公開されることが決まっている。また、干渉しないインターフェースリソースは、並行してアクセスされるため、サーバープロセスとして利用される。イーサネットなどの相互接続構造を導入できれば、特定の分散特性も図られる。上位レイヤソフトウェアは、ネットワークにおける各FPGAリソースと通信する際に同じソフトウェアインターフェースを利用することができるため、FPGAクラスターリソースに適する。また、本発明のFPGAと通信するホストは、移植性が良いため、完全に階層化されて異なるプラットフォームに移植されても、ホストチャンネルインターフェースだけが異なるため、このレイヤで各オペレータを置き換えることにより、コードの移行が実現され、上位レイヤの操作プロセスを変更する必要がない。さらに、インターフェースソフトウェアは、様々な環境に適用し、ワイヤレス、有線などによりFPGAと通信することができる。 In this embodiment, the layered interface software design mode has the following advantages. Higher layer applications do not have to consider special processing details such as the interface chip, the FPGA's own interface protocol, and so on. This improves scalability and maintainability. It has been decided that interface resources will be exposed to higher layer applications regardless of the channel. In addition, interface resources that do not interfere are accessed in parallel, so they are used as server processes. If interconnection structures such as Ethernet can be introduced, specific distribution characteristics can also be achieved. Higher layer software is suitable for FPGA cluster resources because it can utilize the same software interface when communicating with each FPGA resource in the network. Further, since the host communicating with the FPGA of the present invention has good portability, even if it is completely layered and ported to a different platform, only the host channel interface is different. Therefore, by replacing each operator at this layer, Code migration is realized and there is no need to change the operation process of the upper layer. Furthermore, the interface software can be applied to various environments and can communicate with the FPGA by wireless, wired or the like.

実施例3
本実施例は、FPGAと通信するホストのFPGAとの通信プロセスについて説明する。図7に示すように、S701において、FPGAと通信するホスト側は、プローブインターフェースに基づいてFPAGと通信するcableリソースを特定する。
Example 3
This embodiment describes a communication process with the FPGA of the host communicating with the FPGA. As shown in FIG. 7, in S701, the host side communicating with the FPGA identifies a cable resource communicating with the FPGA based on the probe interface.

本実施例では、プローブインターフェースは、主に現在のタイプのアクセス可能なリソースの総数を検出し、リストを作成して上位レイヤソフトウェアに返信する。これにより、ユーザは、どのcableリソースを利用してFPAGと通信するかを決定する。ここで、各cableリソースを区別するために、cableリソースには、MACアドレス及び識別子が割り当てられる。USBケーブルに接続されるケーブルおよびイーサネットがシミュレーションしたケーブルを利用してFPAGと通信することが決定されると、S702において、FPGAと通信するホスト側は、初期化インターフェースを介してFPAGのFPAGインターフェースチップに接続される。 In this embodiment, the probe interface mainly detects the total number of accessible resources of the current type, creates a list, and returns it to the upper layer software. As a result, the user determines which cable resource is used to communicate with the FPA G. Here, in order to distinguish each cable resource, a MAC address and an identifier are assigned to the cable resource. When it is decided to communicate with the FPGA using the cable connected to the USB cable and the cable simulated by Ethernet, in S702, the host side communicating with the FPGA is the FPGA interface chip of the FPGA via the initialization interface. Connected to.

イーサネットを利用する場合、初期化とは、TCP/IPプロトコルとシステムのソケットを利用してリモートで受信側に接続することであり、USBを利用する場合、初期化とは、システムインターフェースを呼び出してUSBデバイスを申請して初期化操作を行うことである。 When using Ethernet, initialization means connecting to the receiving side remotely using the TCP / IP protocol and the socket of the system, and when using USB, initialization means calling the system interface. Applying for a USB device and performing the initialization operation.

S703において、書き込みデータインターフェースを利用してバイナリデータを書き込む際に、FPGAと通信するホスト側は、FPGAに用いられるインターフェースプロトコルに関するデータを特定の規則に基づいて組み合わせてデータパケットを作成する。 In S703, when writing binary data using the write data interface, the host side communicating with the FPGA creates a data packet by combining data related to the interface protocol used for the FPGA based on a specific rule.

イーサネットを利用する場合、バイナリデータをソケットに書き込み、USBを利用する場合、システムインターフェースを利用してバイナリデータを書き込む。その後、JTAG、SPIなどのプロトコルに関するデータを利用して特定の規則に基づいてバイナリデータを組み合わせてデータパケットを作成する。 When using Ethernet, write binary data to the socket, and when using USB, write binary data using the system interface. After that, data packets are created by combining binary data based on specific rules using data related to protocols such as JTAG and SPI.

S704において、FPGAと通信するホスト側は、プリセットデータフォーマットに基づいて組み合わせてデータパケットを作成し、cableリソースに対応するチャンネルを介してFPAGインターフェースチップに送信する。 In S704, the host side communicating with the FPGA creates a data packet by combining them based on the preset data format, and transmits the data packet to the FPGA interface chip via the channel corresponding to the cable resource.

本実施例では、FPAGインターフェースチップは、FT2232HのUSBインターフェースチップを含む。プリセットデータフォーマットは、パケットヘッダと、データと、を含む。パケットヘッダは、コマンドコードおよびデータ長で構成される。コマンドコードは、JTAGプロトコルの状態遷移、属性の設定、JTAGデータの読み取り/書き込みのようなFPGAインターフェースチップが実行する必要のある操作を決定する。データ長は、後ろのデータ量を示す。FPAGインターフェースチップは、MCUをイーサネットポートチップと組み合わせて実現される。FPGAインターフェースチップがプログラマブルであるため、FPGAインターフェースチップが受信するネットデータパケットのコンテンツフォーマットを合意することができる。イーサネットを利用する場合、データパケットが伝送される際に、利用されるTCP/IPプロトコルは、データパケットを再度カプセル化してイーサネットポートチップに送信する。 In this embodiment, the FPA G interface chip includes a USB interface chip of FT2232H. The preset data format includes a packet header and data. The packet header consists of a command code and data length. The command code determines the operations that the FPGA interface chip needs to perform, such as JTAG protocol state transitions, attribute settings, and reading / writing of JTAG data. The data length indicates the amount of data behind. The FMAG interface chip is realized by combining the MCU with the Ethernet port chip. Since the FPGA interface chip is programmable, it is possible to agree on the content format of the net data packet received by the FPGA interface chip. When Ethernet is used, when the data packet is transmitted, the TCP / IP protocol used reencapsulates the data packet and sends it to the Ethernet port chip.

S705において、FPAGインターフェースチップは、チャンネルからデータパケットを読み取り、解析し、FPGAに必要な通信信号に変換し、FPGAと直接通信を行う。 In S705, the FPGA interface chip reads a data packet from the channel, analyzes it, converts it into a communication signal required for the FPGA, and directly communicates with the FPGA.

FPAGインターフェースチップは、プリセットデータフォーマットに基づいてデータパケットを解析する。FPAGインターフェースチップは、データをFPGAと通信するホスト側に送信するときもプリセットデータフォーマットに基づいてデータをパッケージ化する。 The FPA G interface chip analyzes data packets based on a preset data format. The FPGA interface chip also packages the data based on the preset data format when transmitting the data to the host side communicating with the FPGA.

S706において、FPGAと通信するホスト側は、インターフェースをリリースすることにより、FPAGインターフェースチップとの接続を遮断する。 In S706, the host side communicating with the FPGA cuts off the connection with the FPGA interface chip by releasing the interface.

本発明の実施例によりFPGAと通信する方法が提供される。図8に示すように、当該方法は、以下のステップにより実現される。 The embodiments of the present invention provide a method of communicating with an FPGA. As shown in FIG. 8, the method is realized by the following steps.

S11において、FPGAと通信するホストのソフトウェアインターフェースモジュール101は、伝送データを特定するように上位レイヤアプリケーションに公開される呼出インターフェースを定義する。 In S11, the software interface module 101 of the host that communicates with the FPGA defines a call interface that is exposed to higher layer applications to identify transmission data.

S12において、FPGAと通信するホストのリソース管理モジュール102は、呼出インターフェースにより伝送データを取得し、伝送データをプロトコルパケットモジュール103に送信するホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可する。 In S12, the resource management module 102 of the host communicating with the FPGA manages a host interface chip cable object that acquires transmission data by the call interface and transmits the transmission data to the protocol packet module 103, and simultaneously to at least two cable objects. Allow access in parallel.

S13において、プロトコルパケットモジュール103は、伝送データを受信し、FPGAのインターフェースプロトコルおよびcableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、データパケットをFPGAと通信するホストのホストチャンネルインターフェースモジュール104に送信する。 In S13, the protocol packet module 103 receives the transmission data, encapsulates the transmission data to acquire the data packet, and communicates the data packet with the FPGA based on the interface protocol of the FPGA and the channel protocol corresponding to the cable object. Send to the host channel interface module 104 of the host.

S14において、ホストチャンネルインターフェースモジュール104は、前記データパケットを受信し、データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルを介してFPGAインターフェースチップに送信する。 In S14, the host channel interface module 104 receives the data packet, packages the data packet based on the preset data format agreed with the FPGA interface chip, and transmits it to the FPGA interface chip via the channel.

S15において、FPGAインターフェースチップは、データパケットを受信し、データパケットをFPGAに必要な通信信号に変換し、FPGAと直接通信を行う。 In S15, the FPGA interface chip receives the data packet, converts the data packet into a communication signal required for the FPGA, and directly communicates with the FPGA.

また、FPGAインターフェースチップがデータパケットを受信した後、FPGAと通信する方法は、以下のステップをさらに有する。FPGAと通信するホストは、インターフェースをリリースすることにより、FPAGインターフェースチップとの接続を遮断する。 Further, the method of communicating with the FPGA after the FPGA interface chip receives the data packet further includes the following steps. The host communicating with the FPGA cuts off the connection with the FPGA interface chip by releasing the interface.

本発明の実施例では、FPGAと通信する方法についての説明および当該方法の有益效果は、いずれも上述した実施例に係るFPGAと通信するホストについての説明および有益效果と同じであるため、ここで省略する。なお、「含む」、「有する」、またはその他の変形は、非排他的に含むことを意図しているため、一連の要素を含むプロセス、方法、物品、またはデバイスは、それらの要素を含むだけでなく、リストされていない他の要素を含み、或いはプロセス、方法、物品、またはデバイスに固有する要素を含む場合がある。 In the embodiments of the present invention, the description of the method of communicating with the FPGA and the beneficial effects of the method are the same as the description and beneficial effects of the host communicating with the FPGA according to the above-described embodiment. Omit. It should be noted that "includes", "has", or other variants are intended to include non-exclusively, so a process, method, article, or device that includes a set of elements will only include those elements. It may contain other elements not listed, or elements specific to a process, method, article, or device.

上述した本発明の実施例の番号は、説明のみを目的とし、実施例の優劣を示すものではない。 The above-mentioned numbers of the examples of the present invention are for the purpose of explanation only and do not indicate the superiority or inferiority of the examples.

上記実施形態の説明を通じて、当業者は、上記実施形態に係る方法が、ソフトウェアおよび必要なハードウェアプラットフォームによって実現されることを明確に理解することができる。もちろん、ハードウェアによっても実現できるが、ほとんどの場合、前者の方が好ましい。このような理解に基づいて、本発明の特別な技術的特徴、または従来技術に寄与する特徴は、ソフトウェア製品の形で表現される。コンピュータソフトウェア製品は、記憶媒体(ROM/RAM、磁気ディスク、光ディスク)に記憶され、デバイス(携帯電話、コンピュータ、サーバー、エアコン、ネットワークデバイスなど)に各実施例に係る方法を実行させるためのいくつかの命令を含む。 Through the description of the above embodiment, those skilled in the art can clearly understand that the method according to the above embodiment is realized by the software and the required hardware platform. Of course, it can be realized by hardware, but in most cases, the former is preferable. Based on this understanding, the special technical features of the invention, or features that contribute to the prior art, are expressed in the form of software products. Computer software products are stored on storage media (ROM / RAM, magnetic disks, optical disks) and some for causing devices (mobile phones, computers, servers, air conditioners, network devices, etc.) to perform the methods according to each embodiment. Includes instructions for.

上記の内容は、具体的な実施様態に基づいて本発明の実施例をさらに詳しく説明したものであり、本発明の具体的な実施がこれらの説明に限定されると考えることはできない。当業者は、本発明の精神から逸脱しない限り、若干の改良及び修正を加えることができる。これらの改良及び修正も本発明の保護の範囲と見なされる。 The above-mentioned contents explain the embodiment of the present invention in more detail based on the specific embodiment, and it cannot be considered that the specific implementation of the present invention is limited to these explanations. Those skilled in the art may make minor improvements and modifications as long as they do not deviate from the spirit of the present invention. These improvements and modifications are also considered to be the scope of protection of the present invention.

本願は、2019年06月28日に中国専利局に提出された、出願番号が201910580647.9であり、発明の名称が「FPGAと通信するホストおよびFPGAインターフェースチップ」である中国特許出願の優先権を主張するものであり、先願の内容をすべて組み込んでいる。 This application is the priority of a Chinese patent application submitted to the China Bureau of Interest on June 28, 2019, with an application number of 201910580649.9 and the title of the invention is "a host and FPGA interface chip that communicates with FPGA". And incorporates all the contents of the previous application.

Claims (20)

FPGAと通信するホストであって、
伝送データを特定するように上位レイヤアプリケーションに公開される呼出インターフェースを定義するためのソフトウェアインターフェースモジュールと、
前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可するリソース管理モジュールと、
前記伝送データを受信し、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットをホストチャンネルインターフェースモジュールに送信する前記プロトコルパケットモジュールと、
前記データパケットを受信し、前記データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルにより送信する前記ホストチャンネルインターフェースモジュールと、を含む
ことを特徴とするFPGAと通信するホスト。
A host that communicates with the FPGA
A software interface module for defining call interfaces that are exposed to higher layer applications to identify transmission data, and
A resource management module that manages a host interface chip cable object that acquires the transmission data by the call interface and transmits the transmission data to the protocol packet module, and allows access to at least two cable objects in parallel at the same time.
The protocol packet that receives the transmission data, encapsulates the transmission data and acquires a data packet based on the FPGA interface protocol and the channel protocol corresponding to the cable object, and transmits the data packet to the host channel interface module. Module and
A host that communicates with an FPGA, comprising: ..
請求項1に記載のFPGAと通信するホストであって、
前記ホストチャンネルインターフェースモジュールが前記データパケットを送信した後、前記ホストとFPGAインターフェースチップとの接続を遮断するインターフェースリリースモジュールをさらに含む
ことを特徴とするFPGAと通信するホスト。
A host that communicates with the FPGA according to claim 1.
A host that communicates with an FPGA, further comprising an interface release module that blocks the connection between the host and the FPGA interface chip after the host channel interface module has transmitted the data packet.
請求項1に記載のFPGAと通信するホストであって、
前記呼出インターフェースは、初期化インターフェース、データ書込インターフェース、データ読取インターフェース、およびリリースインターフェースが含まれFPGAと通信する基本ソフトウェアインターフェースを含む
ことを特徴とするFPGAと通信するホスト。
A host that communicates with the FPGA according to claim 1.
The call interface is a host that communicates with the FPGA, including an initialization interface, a data write interface, a data read interface, and a release interface, including a basic software interface that communicates with the FPGA.
請求項1に記載のFPGAと通信するホストであって、
前記cableオブジェクトは、USBケーブルが接続されるケーブル、イーサネットポートを介して接続される回路基板のケーブル、PCIEを介して接続されるPCIEカードのケーブル、およびプリンタパラレルポートのうちの少なくとも一つを含む
ことを特徴とするFPGAと通信するホスト。
A host that communicates with the FPGA according to claim 1.
The cable object includes at least one of a cable to which a USB cable is connected, a circuit board cable connected via an Ethernet port, a PCIe card cable connected via PCIE, and a printer parallel port. A host that communicates with the FPGA.
請求項4に記載のFPGAと通信するホストであって、
前記cableオブジェクトは、区別されるように唯一のMACアドレスとタイプ標識識別子が割り当てられる
ことを特徴とするFPGAと通信するホスト。
A host that communicates with the FPGA according to claim 4.
The cable object is a host that communicates with an FPGA, characterized in that it is assigned a unique MAC address and type indicator identifier to distinguish it.
請求項5に記載のFPGAと通信するホストであって、
前記cableオブジェクトがUSB ケーブルである場合、前記MACアドレスは、USBのEEPROMに記録されるシリアル番号であり、
前記cableオブジェクトがイーサネットバーチャルケーブルである場合、前記MACアドレスは、イーサネットバーチャルケーブルのIPアドレスまたはFPGAインターフェースチップリアルMACアドレスであり、
前記cableオブジェクトがPCIEボードのケーブルである場合、前記MACアドレスは、PCIEバスのアドレスまたはPCIEバスのインターフェースチップのシリアル番号であり、
前記cableオブジェクトがプリンタパラレルポートである場合、前記MACアドレスは、パラレルポートアドレスである
ことを特徴とするFPGAと通信するホスト。
A host that communicates with the FPGA according to claim 5.
When the cable object is a USB cable, the MAC address is a serial number recorded in the EEPROM of the USB.
When the cable object is an Ethernet virtual cable, the MAC address is the IP address of the Ethernet virtual cable or the FPGA interface chip real MAC address.
When the cable object is a PCIe board cable, the MAC address is the address of the PCIe bus or the serial number of the interface chip of the PCIe bus.
When the cable object is a printer parallel port, the MAC address is a host that communicates with the FPGA, characterized in that it is a parallel port address.
請求項4に記載のFPGAと通信するホストであって、
前記リソース管理モジュールは、アクセスが許可されるcableオブジェクトをスキャンしてリストを作成する
ことを特徴とするFPGAと通信するホスト。
A host that communicates with the FPGA according to claim 4.
The resource management module is a host that communicates with an FPGA, characterized in that it scans and creates a list of accessible cable objects.
請求項7に記載のFPGAと通信するホストであって、
前記呼出インターフェースは、アクセス可能なcableオブジェクトを取得するプローブインターフェースをさらに含み、
前記リソース管理モジュールは、前記上位レイヤアプリケーションが前記FPGAと通信するアクセスcableオブジェクトを特定するように、アクセスcableオブジェクトをスキャンしてリストを作成した後、前記プローブインターフェースを介して前記リストを前記上位レイヤアプリケーションに返信する
ことを特徴とするFPGAと通信するホスト。
A host that communicates with the FPGA according to claim 7.
The call interface further includes a probe interface to obtain an accessible cable object.
The resource management module scans the access cable object to create a list so that the upper layer application identifies the access cable object that communicates with the FPGA, and then displays the list via the probe interface to the upper layer. A host that communicates with an FPGA, characterized by replying to an application.
請求項1から8のいずれか一項に記載のFPGAと通信するホストであって、
前記ホストチャンネルインターフェースモジュールは、前記FPGAインターフェースチップの実装方式に基づいて前記FPGAインターフェースチップと前記プリセットデータフォーマットを合意する
ことを特徴とするFPGAと通信するホスト。
A host that communicates with the FPGA according to any one of claims 1 to 8.
The host channel interface module is a host that communicates with the FPGA, which is characterized by agreeing the preset data format with the FPGA interface chip based on the mounting method of the FPGA interface chip.
請求項9に記載のFPGAと通信するホストであって、
前記FPGAインターフェースチップがFT2232HのUSBインターフェースチップを含む場合、前記プリセットデータフォーマットは、コマンドコードおよびデータ長で構成されるパケットヘッダと、データと、を含む
ことを特徴とするFPGAと通信するホスト。
A host that communicates with the FPGA according to claim 9.
When the FPGA interface chip includes a USB interface chip of FT2232H, the preset data format is a host that communicates with the FPGA, comprising a packet header composed of a command code and a data length, and data.
通信システムであって、
請求項1から10のいずれか一項に記載のFPGAと通信するホストと、
前記ホストから送信されるデータパケットを受信し、前記データパケットをFPGAに必要な通信信号に変換してFPGAと直接通信を行うFPGAインターフェースチップと、を備える、
ことを特徴とする通信システム
It ’s a communication system ,
A host that communicates with the FPGA according to any one of claims 1 to 10.
It comprises an FPGA interface chip that receives a data packet transmitted from the host, converts the data packet into a communication signal required for the FPGA, and directly communicates with the FPGA.
A communication system characterized by that.
請求項11に記載の通信システムであって、
前記FPGAインターフェースチップは、イーサネット、USB、LTP、およびワイヤレスネットを含む
ことを特徴とする通信システム
The communication system according to claim 11.
The FPGA interface chip is a communication system including Ethernet, USB, LTP, and a wireless net.
請求項12に記載の通信システムであって、
前記FPGAインターフェースチップがFT2232HのUSBインターフェースチップを含む場合、前記プリセットデータフォーマットは、コマンドコードおよびデータ長で構成されるパケットヘッダと、データと、を含む
ことを特徴とする通信システム
The communication system according to claim 12.
When the FPGA interface chip includes a USB interface chip of FT2232H, the preset data format is a communication system including a packet header composed of a command code and a data length, and data.
請求項11に記載の通信システムであって、
前記FPGAインターフェースチップは、初期化インターフェースを介して前記FPGAと通信するホストに接続される
ことを特徴とする通信システム
The communication system according to claim 11.
The FPGA interface chip is a communication system characterized in that it is connected to a host that communicates with the FPGA via an initialization interface.
請求項11に記載の通信システムであって、
前記FPGAがサポートするインターフェースプロトコルは、JTAG、I2C、SPI、および並列インターフェースを含む
ことを特徴とする通信システム
The communication system according to claim 11.
The interface protocol supported by the FPGA is a communication system including JTAG, I2C, SPI, and a parallel interface.
請求項11に記載の通信システムであって、
前記FPGAインターフェースチップは、請求項1から9のいずれか一項に記載のFPGAと通信するホストから送信されるデータパケットを受信するチャンネルインターフェースモジュールを含む
ことを特徴とする通信システム
The communication system according to claim 11.
The FPGA interface chip is a communication system including a channel interface module that receives a data packet transmitted from a host communicating with the FPGA according to any one of claims 1 to 9.
FPGAと通信する方法であって、
FPGAと通信するホストのソフトウェアインターフェースモジュールが、伝送データを特定可能に上位レイヤアプリケーションに公開される呼出インターフェースを定義するステップと、
FPGAと通信する前記ホストのリソース管理モジュールが、前記呼出インターフェースにより前記伝送データを取得し、前記伝送データをプロトコルパケットモジュールに送信するホストインターフェースチップcableオブジェクトを管理し、少なくとも二つのcableオブジェクトに同時に並列にアクセスすることを許可するステップと、
前記プロトコルパケットモジュールが、前記伝送データを受信し、FPGAのインターフェースプロトコルおよび前記cableオブジェクトに対応するチャンネルプロトコルに基づいて、伝送データをカプセル化してデータパケットを取得し、前記データパケットを前記FPGAと通信するホストのホストチャンネルインターフェースモジュールに送信するステップと、
前記ホストチャンネルインターフェースモジュールが、前記データパケットを受信し、前記データパケットをFPGAインターフェースチップと合意されたプリセットデータフォーマットに基づいてパッケージ化し、チャンネルを介してFPGAインターフェースチップに送信するステップと、
前記FPGAインターフェースチップが、前記データパケットを受信し、前記データパケットをFPGAに必要な通信信号に変換し、FPGAと直接通信を行うステップと、を含む
ことを特徴とするFPGAと通信する方法。
It ’s a way to communicate with FPGA.
A step in which the software interface module of the host communicating with the FPGA defines a call interface that is exposed to higher layer applications so that the transmitted data can be identified.
The resource management module of the host communicating with the FPGA manages a host interface chip cable object that acquires the transmission data by the call interface and transmits the transmission data to the protocol packet module, and is parallel to at least two cable objects at the same time. And the steps to allow access to
The protocol packet module receives the transmission data, encapsulates the transmission data and acquires a data packet based on the interface protocol of the FPGA and the channel protocol corresponding to the cable object, and communicates the data packet with the FPGA. And the steps to send to the host channel interface module of the host
A step in which the host channel interface module receives the data packet, packages the data packet based on a preset data format agreed with the FPGA interface chip, and transmits the data packet to the FPGA interface chip via the channel.
A method of communicating with an FPGA, wherein the FPGA interface chip includes a step of receiving the data packet, converting the data packet into a communication signal required for the FPGA, and directly communicating with the FPGA.
請求項17に記載のFPGAと通信する方法であって、
前記FPGAインターフェースチップが前記データパケットを受信した後、
前記FPGAと通信するホストが、インターフェースをリリースすることにより、前記FPGAインターフェースチップとの接続を遮断するステップをさらに含む
ことを特徴とするFPGAと通信する方法。
The method of communicating with the FPGA according to claim 17.
After the FPGA interface chip receives the data packet,
A method of communicating with an FPGA, wherein the host communicating with the FPGA further comprises a step of disconnecting the connection with the FPGA interface chip by releasing the interface.
請求項17または18に記載のFPGAと通信する方法であって、
前記リソース管理モジュールがホストインターフェースチップcableオブジェクトを管理するステップは、
前記リソース管理モジュールは、アクセスが許可されるcableオブジェクトをスキャンしてリストを作成するステップを含む
ことを特徴とするFPGAと通信する方法。
A method of communicating with the FPGA according to claim 17 or 18.
The step in which the resource management module manages the host interface chip cable object is
A method of communicating with an FPGA, wherein the resource management module comprises a step of scanning a cable object to which access is granted and creating a list.
請求項19に記載のFPGAと通信する方法であって、
前記呼出インターフェースは、アクセス可能なcableオブジェクトを取得するプローブインターフェースをさらに含み、
前記リソース管理モジュールがホストインターフェースチップcableオブジェクトを管理するステップは、
前記リソース管理モジュールが、前記上位レイヤアプリケーションが前記FPGAと通信するアクセスcableオブジェクトを特定するように、アクセスcableオブジェクトをスキャンしてリストを作成した後、前記プローブインターフェースを介して前記リストを前記上位レイヤアプリケーションに返信するステップをさらに含む
ことを特徴とするFPGAと通信する方法。
The method of communicating with the FPGA according to claim 19.
The call interface further includes a probe interface to obtain an accessible cable object.
The step in which the resource management module manages the host interface chip cable object is
The resource management module scans the access cable object to create a list so that the higher layer application identifies the access cable object that communicates with the FPGA, and then the list is displayed on the upper layer via the probe interface. A method of communicating with an FPGA, characterized by further including a step of replying to the application.
JP2020568804A 2019-06-28 2020-06-24 Hosts that communicate with the FPGA, methods of communicating with the FPGA, and communication systems Active JP7041285B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910580647.9A CN110445831A (en) 2019-06-28 2019-06-28 A kind of host communicated with FPGA, FPGA interface chip
CN201910580647.9 2019-06-28
PCT/CN2020/097858 WO2020259523A1 (en) 2019-06-28 2020-06-24 Host and method for communicating with fpga, and fpga interface chip

Publications (2)

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

Family

ID=68428752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020568804A Active JP7041285B2 (en) 2019-06-28 2020-06-24 Hosts that communicate with the FPGA, methods of communicating with the FPGA, and communication systems

Country Status (3)

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

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110445831A (en) * 2019-06-28 2019-11-12 深圳市紫光同创电子有限公司 A kind of host communicated with FPGA, FPGA interface chip
CN111614793B (en) * 2020-04-22 2022-03-04 上海御渡半导体科技有限公司 FPGA-based Ethernet switch MAC address management device and method
CN112256615B (en) * 2020-10-22 2023-05-16 广东高云半导体科技股份有限公司 USB conversion interface device
CN114003022B (en) * 2021-11-03 2024-04-05 深圳硅山技术有限公司 Equipment monitoring platform based on data stream
CN117056259A (en) * 2023-08-08 2023-11-14 广东高云半导体科技股份有限公司 Data processing device and method
CN117472440B (en) * 2023-12-27 2024-03-29 苏州元脑智能科技有限公司 Chip control method and device, storage medium and electronic equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201111013Y (en) 2007-11-08 2008-09-03 重庆爱思网安信息技术有限公司 Hardware write protected function data copier
JP2012022613A (en) 2010-07-16 2012-02-02 Fujitsu Ltd Communication path module, logic verification program and logic verification method
WO2018235967A1 (en) 2017-06-23 2018-12-27 Pixie Dust Technologies, Inc. System and method for generating spatial sound using ultrasound
CN109446135A (en) 2018-10-24 2019-03-08 盛科网络(苏州)有限公司 A kind of device and method for realizing the downloading of more large capacity FPGA remote high-speeds

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609288B (en) * 2012-02-14 2015-12-16 上海三一精机有限公司 A kind of Program download based on FPGA/CPLD
DE102012004844B4 (en) * 2012-03-13 2018-05-17 Phoenix Contact Gmbh & Co. Kg System of measured value monitoring and shutdown when measured value deviations occur
CN104182372A (en) * 2013-05-22 2014-12-03 英业达科技有限公司 Data burning device
CN204631851U (en) * 2015-05-28 2015-09-09 深圳市微芯集成电路设计有限公司 Cd-rom recorder
CN105024884A (en) * 2015-07-28 2015-11-04 深圳市同创国芯电子有限公司 System and method for debugging programmable logic device PLD
CN107181657B (en) * 2017-05-31 2020-07-17 中车信息技术有限公司 WTB link layer interface adapter and implementation method thereof
CN107704261A (en) * 2017-11-24 2018-02-16 广东乐心医疗电子股份有限公司 Software burning system and software burning method
CN207690065U (en) * 2018-01-22 2018-08-03 济南浪潮高新科技投资发展有限公司 It is a kind of based on FPGA can multy-way switching JTAG downloaders
CN109542478A (en) * 2018-11-09 2019-03-29 中电科仪器仪表有限公司 A kind of system and method updating FPGA program in SPI Flash
CN110445831A (en) * 2019-06-28 2019-11-12 深圳市紫光同创电子有限公司 A kind of host communicated with FPGA, FPGA interface chip

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201111013Y (en) 2007-11-08 2008-09-03 重庆爱思网安信息技术有限公司 Hardware write protected function data copier
JP2012022613A (en) 2010-07-16 2012-02-02 Fujitsu Ltd Communication path module, logic verification program and logic verification method
WO2018235967A1 (en) 2017-06-23 2018-12-27 Pixie Dust Technologies, Inc. System and method for generating spatial sound using ultrasound
CN109446135A (en) 2018-10-24 2019-03-08 盛科网络(苏州)有限公司 A kind of device and method for realizing the downloading of more large capacity FPGA remote high-speeds

Also Published As

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

Similar Documents

Publication Publication Date Title
JP7041285B2 (en) Hosts that communicate with the FPGA, methods of communicating with the FPGA, and communication systems
CN105981338B (en) For using I/O device link to establish the chain-circuit system of high- speed network communication and file transmission between host
CN105868149B (en) Serial port information transmission method and device
CN116501681B (en) CXL data transmission board card and method for controlling data transmission
CN110532208B (en) Data processing method, interface conversion structure and data processing equipment
CN103257941B (en) Multi-protocol storage controller and system
CN113806116A (en) Protocol stack data transmission method based on Linux system, computer equipment and storage medium
CN108170626B (en) 1553B bus software dynamic configurable method
CN105472291A (en) Digital video recorder with multiprocessor cluster and realization method of digital video recorder
CN112749113A (en) Data interaction method, system, device and medium
CN109257955B (en) Method for operating hard disk and hard disk manager
JP6665190B2 (en) Network sharing implementation method and apparatus
CN113608738A (en) Automobile service system based on someip instrument data
CN112291259A (en) Protocol conversion method, gateway, equipment and readable storage medium
JP2003526223A (en) Development and test tools for communication systems
CN109358820B (en) Data access method and device, electronic equipment and computer readable storage medium
CN116647490A (en) Aviation AFDX network data detection system
EP2530995B1 (en) Method and apparatus for implementing network device function of wireless communication terminal
US10599588B1 (en) Interconnection of peripheral devices on different electronic devices
CN102694717A (en) Method, device and system for transmitting messages on PCIE bus
CN102200888B (en) Virtual memory, and virtual storage system and method
CN117319255A (en) Method, device, medium and terminal for testing network card out-of-band management function
CN117251297B (en) Equipment distribution method, electronic equipment and storage medium
CN117369906B (en) Pcie verification platform, method and device, storage medium and electronic equipment
CN212906277U (en) Embedded software testing device based on TFTP protocol

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