CN113377450A - Remote loading system based on FPGA and downloading configuration method thereof - Google Patents

Remote loading system based on FPGA and downloading configuration method thereof Download PDF

Info

Publication number
CN113377450A
CN113377450A CN202110637334.XA CN202110637334A CN113377450A CN 113377450 A CN113377450 A CN 113377450A CN 202110637334 A CN202110637334 A CN 202110637334A CN 113377450 A CN113377450 A CN 113377450A
Authority
CN
China
Prior art keywords
fpga
flash
ddr
data
icap
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.)
Pending
Application number
CN202110637334.XA
Other languages
Chinese (zh)
Inventor
翟冠
沈露
王浩男
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zi Yu Wei Ye Electronic Technology Co ltd
Original Assignee
Beijing Zi Yu Wei Ye Electronic Technology Co ltd
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 Beijing Zi Yu Wei Ye Electronic Technology Co ltd filed Critical Beijing Zi Yu Wei Ye Electronic Technology Co ltd
Priority to CN202110637334.XA priority Critical patent/CN113377450A/en
Publication of CN113377450A publication Critical patent/CN113377450A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

The invention discloses a remote loading system based on an FPGA and a downloading configuration method thereof, wherein the remote loading system comprises a PC, the FPGA, a DDR and a FLASH, and the FPGA is respectively communicated with the PC, the DDR and the FLAASH for mutual data interaction; the FPGA comprises a UDP _ ctrl module, a DDR _ ctrl module, a FLASH _ ctrl module and an ICAP _ ctrl module. When downloading and configuring a loading system, firstly, packaging a bit stream file generated by engineering into a bin file; then writing the bin file data into the FPGA through an Ethernet UDP protocol, writing the data into the DDR through the FPGA, and performing data caching on the DDR; then, the FPGA reads out the configuration data in the DDR and writes the configuration data into the FLASH, and the FLASH is erased before the configuration data is written; and finally, the FPGA actively reads the configuration data in the FLASH through the ICAP primitive to complete the reconfiguration of the FPGA.

Description

Remote loading system based on FPGA and downloading configuration method thereof
Technical Field
The invention belongs to the field of communication, and particularly relates to a remote loading system based on an FPGA and a downloading configuration method thereof.
Background
The current configuration modes of the FPGA can be divided into three types: active configuration, passive configuration, and JTAG configuration. In general, JTAG is commonly used to update FPGA configuration, because JTAG configuration is very fast and convenient, and the integrated design tools of large vendors provide corresponding JTAG configuration channels. However, JTAG configuration is only a configuration method generally used in a debugging stage, and is not suitable for application to a corresponding product after the FPGA engineering verification is finished, because many products do not provide a JTAG interface due to the bulkiness of the JTAG interface, the requirement of product packaging, and the like when being released, a remote loading scheme is an inevitable choice for these products.
Abandoning the JTAG configuration mode, and enabling a user to select an active configuration mode and a passive configuration mode, wherein the two modes are realized without separating an off-chip memory, and the active mode refers to reading configuration of the off-chip memory from an FPGA (field programmable gate array) actively; passive configuration typically implements FPGA configuration by a coprocessor writing configuration data in off-chip memory to the FPGA. In the two configuration methods, passive configuration requires the participation of a coprocessor, and is more complex and costly in hardware architecture, while active configuration does not require more changes to the hardware architecture, which is easy to implement and low in cost.
Object of the Invention
The invention aims to solve the problems of heavy products, complex architecture and high cost in the prior art, and provides a remote loading system based on an FPGA and a configuration method thereof.
Disclosure of Invention
According to one aspect of the invention, the invention provides a remote loading system based on an FPGA, which comprises a PC, the FPGA, a DDR and a FLASH, wherein the FPGA is respectively communicated with the PC, the DDR and the FLAASH for mutual data interaction; the mutual communication between the PC and the FPGA realizes that the configuration file is downloaded to the FPGA by the PC, and the communication mode is one of Ethernet, PCIE, USB and optical fiber; the mutual communication between the FPGA and the DDR realizes the data caching of the configuration file; the interactive communication between the FPGA and the FLASH comprises two processes: (1) the FPGA solidifies the configuration data to the FLASH; (2) the FPGA reads the configuration data in the FLASH through ICAP primitives, so that the reconfiguration of the FPGA is realized;
the FPGA comprises a UDP _ ctrl module, a DDR _ ctrl module, a FLASH _ ctrl module and an ICAP _ ctrl module; the UDP _ ctrl module is responsible for communicating with an upper computer at the PC end, and the UDP protocol is adopted for communication, and FPGA configuration data and related configuration commands are analyzed according to datagram definitions; the DDR _ ctrl module is responsible for communicating with the DDR, and controls the read-write of the DDR; the FLASH _ ctrl module is responsible for communicating with FLASH and controlling erasing, downloading and checking of FLASH; the ICAP _ ctrl module is responsible for controlling ICAP primitives, an IPROG instruction sequence is sent to the ICAP through a state machine, and configuration data of a specified address is automatically loaded after the ICAP primitives receive the IPROG instruction sequence, so that the reconfiguration of the FPGA is realized.
Preferably, the DDR _ ctrl module uses a MIG core of a xilinx DDR controller, and the controlling read and write of DDR is to control read and write of the MIG core.
According to another aspect of the present invention, a configuration method of the remote loading system of the FPGA is provided, which includes the following steps:
step 1, encapsulating the bit stream file generated by the engineering into a bin file, wherein the bin file can be solidified into FLASH; the packaging uses a packaging approach provided by vivado or self-writes a script program according to a script file provided by xilinx;
step 2, writing the bin file data into the FPGA through an Ethernet UDP protocol, writing the data into the DDR through the FPGA, and caching the data in the DDR;
step 3, the FPGA reads out the configuration data in the DDR and writes the configuration data into FLASH, and FLASH erasing operation is required to be carried out before the configuration data is written into the FLASH;
step 4, the FPGA actively reads the configuration data in the FLASH through ICAP primitives to complete the reconfiguration of the FPGA; the selection of the use of the ICAP primitive is obtained by referring to a data manual.
Drawings
Fig. 1 is a framework diagram of the FPGA-based remote loading system according to the present invention.
Detailed Description
The invention is explained in detail below with reference to the drawings. It should be noted that the detailed description is given for illustrative purposes only and should not be taken as limiting the scope of the present invention, and it will be apparent to those skilled in the art that variations and modifications can be made without departing from the spirit of the invention.
Fig. 1 is a framework diagram of the FPGA-based remote loading system according to the present invention. The remote loading system based on the FPGA comprises a PC, the FPGA, a DDR and a FLASH, wherein the FPGA is respectively communicated with the PC, the DDR and the FLAASH for data interaction; each hardware data interaction can be divided into the following processes:
the PC communicates with the FPGA, mainly realizes that the configuration file is downloaded to the FPGA from the PC, the communication mode can be Ethernet, PCIE, USB, optical fiber and the like, and the embodiment takes the communication of an Ethernet UDP protocol as an example.
The FPGA is communicated with the DDR, the FPGA and the DDR are mainly used for realizing data caching of the configuration files, the configuration files of the FPGA are generally large after format conversion processing, and the FPGA is not suitable for caching large data volume due to limited RAM resources, so the DDR is used for caching the data.
The FPGA is communicated with the FLASH, the FPGA and the FLASH are communicated into two processes, one process is that the FPGA solidifies the configuration data to the FLASH, and the other process is that the FPGA reads the configuration data in the FLASH through ICAP primitives, so that the reconfiguration of the FPGA is realized.
The FPGA comprises a UDP _ ctrl module, a DDR _ ctrl module, a FLASH _ ctrl module and an ICAP _ ctrl module, the four modules are divided into work to make the FPGA functional frame clear, and the functions of the modules are as follows:
(1) UDP _ ctrl module
The module is completely responsible for communication with an upper computer at a PC end, the functional content of the module is mainly UDP protocol communication, and FPGA configuration data and related configuration commands are analyzed according to datagram definitions.
(2) DDR _ ctrl module
The module is completely responsible for communication with DDR, the functional content of the module is read-write control of DDR, the module instantiates a MIG core of a xilinx DDR controller, and therefore the logical content is actually read-write control of the MIG core.
(3) FLASH _ ctrl module
The module is completely responsible for communication with FLASH, and the functional content of the module is erasing, downloading and checking of FLASH.
(4) ICAP _ ctrl module
The module is responsible for controlling ICAP primitive, the module sends IPROG instruction sequence to ICAP through a state machine, and the ICAP primitive automatically loads configuration data of a specified address after receiving the sequence, thereby realizing the reconfiguration of FPGA. The content details of the IPROG instruction sequence can be viewed in a related data manual.
The download configuration method of the FPGA remote loading system comprises the following steps:
step 1, encapsulating the bit stream file generated by the engineering into a bin file, wherein the bin file can be solidified into FLASH; the packaging uses a packaging approach provided by vivado or self-writes a script program according to a script file provided by xilinx;
step 2, writing the bin file data into the FPGA through an Ethernet UDP protocol, writing the data into the DDR through the FPGA, and caching the data in the DDR;
step 3, the FPGA reads out the configuration data in the DDR and writes the configuration data into FLASH, and FLASH erasing operation is required to be carried out before the configuration data is written into the FLASH;
step 4, the FPGA actively reads the configuration data in the FLASH through ICAP primitives to complete the reconfiguration of the FPGA; the selection of the use of the ICAP primitive is obtained by referring to a data manual.
In summary, the download configuration of the remote loading system of the present invention completely breaks away from the JTAG interface, which can simplify the cumbersome interface reservation when the product is online, and unlike other schemes requiring the participation of the coprocessor, the remote loading system of the present invention has a simple structure, and can realize the remote loading of the FPGA chip configuration without changing the complexity of the hardware structure. The invention develops description around ICAP primitives in FLASH and XilinxFPGA, and the main idea is that the configuration file of FPGA is downloaded to FPGA by PC, then is cached by DDR, is written into FLASH under the control of FPGA, and finally realizes the on-line reconfiguration of FPGA by ICAP primitives, thereby completing the remote loading process of FPGA.

Claims (3)

1. A remote loading system based on FPGA is characterized by comprising: PC, FPGA, DDR and FLASH;
the FPGA is communicated with a PC, a DDR and a FlaSH to exchange data with each other respectively;
the mutual communication between the PC and the FPGA realizes that the configuration file is downloaded to the FPGA by the PC, and the communication mode is one of Ethernet, PCIE, USB and optical fiber;
the mutual communication between the FPGA and the DDR realizes the data caching of the configuration file;
the interactive communication between the FPGA and the FLASH comprises two processes: (1) the FPGA solidifies the configuration data to the FLASH; (2) the FPGA reads the configuration data in the FLASH through ICAP primitives, so that the reconfiguration of the FPGA is realized;
the FPGA comprises a UDP _ ctrl module, a DDR _ ctrl module, a FLASH _ ctrl module and an ICAP _ ctrl module;
the UDP _ ctrl module is responsible for communicating with an upper computer at a PC end, and the UDP protocol is adopted for communication, and FPGA configuration data and related configuration commands are analyzed according to datagram definitions;
the DDR _ ctrl module is responsible for communicating with the DDR, and controls the read-write of the DDR;
the FLASH _ ctrl module is responsible for communicating with FLASH and controlling erasing, downloading and checking of FLASH;
the ICAP _ ctrl module is responsible for controlling ICAP primitives, an IPROG instruction sequence is sent to the ICAP through a state machine, and configuration data of a specified address is automatically loaded after the ICAP primitives receive the IPROG instruction sequence, so that the reconfiguration of the FPGA is realized.
2. The remote loading system according to claim 1, wherein the DDR _ ctrl module employs a xilinx MIG core of a DDR controller, and the controlling read and write of DDR is to control read and write of the MIG core.
3. The download configuration method of the remote loading system according to any of claims 1-2, comprising the steps of:
step 1, encapsulating the bit stream file generated by the engineering into a bin file, wherein the bin file can be solidified into FLASH; the packaging uses a packaging approach provided by vivado or self-writes a script program according to a script file provided by xilinx;
step 2, writing the bin file data into the FPGA through an Ethernet UDP protocol, writing the data into the DDR through the FPGA, and caching the data in the DDR;
step 3, the FPGA reads out the configuration data in the DDR and writes the configuration data into FLASH, and FLASH erasing operation is required to be carried out before the configuration data is written into the FLASH;
step 4, the FPGA actively reads the configuration data in the FLASH through ICAP primitives to complete the reconfiguration of the FPGA; the selection of the use of the ICAP primitive is obtained by referring to a data manual.
CN202110637334.XA 2021-06-08 2021-06-08 Remote loading system based on FPGA and downloading configuration method thereof Pending CN113377450A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110637334.XA CN113377450A (en) 2021-06-08 2021-06-08 Remote loading system based on FPGA and downloading configuration method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110637334.XA CN113377450A (en) 2021-06-08 2021-06-08 Remote loading system based on FPGA and downloading configuration method thereof

Publications (1)

Publication Number Publication Date
CN113377450A true CN113377450A (en) 2021-09-10

Family

ID=77576455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110637334.XA Pending CN113377450A (en) 2021-06-08 2021-06-08 Remote loading system based on FPGA and downloading configuration method thereof

Country Status (1)

Country Link
CN (1) CN113377450A (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677916A (en) * 2013-12-10 2014-03-26 中国航空工业集团公司第六三一研究所 On-line reconfiguration system and method based on FPGA
CN107038040A (en) * 2016-11-01 2017-08-11 中国人民解放军国防科学技术大学 FPGA based on PCIE more new systems and update method
CN107450948A (en) * 2017-07-28 2017-12-08 西安电子科技大学 A kind of FPGA adaptive allocation method and system of low-power consumption
CN111190855A (en) * 2019-12-13 2020-05-22 南京理工大学 FPGA multiple remote configuration system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677916A (en) * 2013-12-10 2014-03-26 中国航空工业集团公司第六三一研究所 On-line reconfiguration system and method based on FPGA
CN107038040A (en) * 2016-11-01 2017-08-11 中国人民解放军国防科学技术大学 FPGA based on PCIE more new systems and update method
CN107450948A (en) * 2017-07-28 2017-12-08 西安电子科技大学 A kind of FPGA adaptive allocation method and system of low-power consumption
CN111190855A (en) * 2019-12-13 2020-05-22 南京理工大学 FPGA multiple remote configuration system and method

Similar Documents

Publication Publication Date Title
WO2021164170A1 (en) Multi-path high-speed protocol interface dynamic reconfiguration system and implementation method therefor
JP6554184B2 (en) Soft processor based image signal source system and image signal processing method
WO2017041567A1 (en) Fpga multi-mirror upgrade loading method and device based on soft core processor
CN100498806C (en) Device and method for outputting signal of emulation infrared detector
CN107861716B (en) Software-defined control system and control method
US20080065239A1 (en) Influencing Device for Control Apparatus
CN100461105C (en) Update and repair method of intellectualized equipment and system thereof
CN110851134A (en) Low-code page design device and page design method
CN103970665B (en) A kind of simulation SPI FLASH FPGA system and adjustment method
CN104570846A (en) FPGA (field programmable gate array) reconfiguration controller and control method thereof
CN111475174A (en) Device and method for online writing and configuration of vehicle-mounted gateway
CN112286746A (en) Universal verification platform and method for AXI slave device interface
CN109542478A (en) A kind of system and method updating FPGA program in SPI Flash
CN110737452A (en) FPGA firmware online upgrading method and system
CN106528217B (en) on-site programmable gate array program loading system and method
CN113377450A (en) Remote loading system based on FPGA and downloading configuration method thereof
US20070283260A1 (en) Human-machine Interface System with Device Bridge and Method for Designing and Operating the Same
CN105955897B (en) Data store access methods, devices and systems
CN110427206B (en) ZYNQ-based algorithm dynamic updating method
CN116775550A (en) RISC-V processor automatic deployment method based on FPGA
CN108829440B (en) Method and system for converting logic configuration array into logic execution command
CN105354166A (en) Robot and applicable data transmission method
CN113806282A (en) Heterogeneous control system and loading method thereof
CN112559264B (en) Simulation test method for realizing FPGA (field programmable Gate array) universal serial port by verification platform based on UVM (Universal verification Module)
US20040015885A1 (en) Emulator and emulation method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination