CN113553084A - Online configuration system and online configuration method based on multiple FPGAs - Google Patents
Online configuration system and online configuration method based on multiple FPGAs Download PDFInfo
- Publication number
- CN113553084A CN113553084A CN202111093901.6A CN202111093901A CN113553084A CN 113553084 A CN113553084 A CN 113553084A CN 202111093901 A CN202111093901 A CN 202111093901A CN 113553084 A CN113553084 A CN 113553084A
- Authority
- CN
- China
- Prior art keywords
- fpga
- configuration data
- fpga device
- configuration
- interface module
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
The application relates to an online configuration system and an online configuration method based on multiple FPGAs, which comprises N sequentially connected FPGA module groups, wherein each FPGA module group comprises an FPGA device and a configuration data nonvolatile memory, and the configuration data nonvolatile memory of each FPGA module group is respectively connected with the corresponding FPGA device; each FPGA device comprises a cloud end interface module, and the cloud end interface module is connected with the adjacent FPGA device; the cloud interface module is used for receiving configuration data sent by a cloud, and the configuration data nonvolatile memory is used for storing the received configuration data. According to the invention, automatic configuration and restart of a plurality of FPGAs can be automatically completed on line without additionally adding a control circuit or manual operation outside the FPGA chip, and the method has the advantages of low cost and high automation degree.
Description
Technical Field
The application relates to the technical field of FPGA, in particular to an online configuration system and an online configuration method based on multiple FPGA.
Background
The FPGA is a digital integrated circuit which can realize any combinational logic and sequential logic according to configuration data. The circuit is used as a semi-custom circuit in the field of Application Specific Integrated Circuits (ASIC), not only overcomes the defects of the custom circuit, but also overcomes the defect that the number of gate circuits of the original programmable device is limited.
Data loading is required in the using process of the FPGA, and the loading of the FPGA configuration data is usually realized by programming the configuration data to a nonvolatile memory such as FLASH, PROM and the like connected with the FPGA through the FPGA by a programmer; after programming is completed, the FPGA needs to be reset, the configuration file is read from the nonvolatile memory connected with the FPGA after the FPGA is reset, and the work can be started after configuration is completed.
At present, in a common configuration method, additional control circuits such as a DSP and a CPLD are required to complete online reception of configuration data, programming of a nonvolatile memory, and resetting of an FPGA. For example, the invention patent with the application number of CN201711332161.0 discloses an FPGA online upgrading device based on 1553B bus. A1553B bus interface is adopted between an upper computer and a product and is connected through a special test cable, the programming file to be programmed of an FPGA is packaged through upper computer software, file identification information including a file header, file length, verification information and the like is added, the file identification information is loaded into a DDR of a product DSP through the cable, the DSP switches a program storage FLASH interface controlled by an FPGA chip into CPLD control through configuring a register of the CPLD, then the DSP reads the programming file to be programmed stored in the DDR, programming upgrading of the FPGA program storage FLASH is completed through operating the interface of the CPLD, and obviously, the technical scheme disclosed by the invention needs to add the DSP and the CPLD to program the FPGA configuration data into the FLASH and control the FPGA to reset to read the configuration data in the FLASH again.
Also, for example, in patent application No. CN201811245075.0, a remote online update system for FPGA program based on DSP is disclosed, which includes: the system comprises a DSP, an application FPGA, a management FPGA and an external FLASH; the DSP is interactive with the application FPGA and the management FPGA; the external FLASH is interacted with the application FPGA and the management FPGA; the management FPGA is used for configuring an application FPGA on line and programming an external FLASH of the application FPGA; and the DSP receives the update data of the application FPGA and updates the application FPGA by managing the FPGA. Obviously, in the technical scheme, the DSP and the other management FPGA are required to be added to realize the programming of the application FPGA configuration data storage FLASH and control the application FPGA to reset and re-read the configuration data, so that the system is complex and the cost is high.
Also, an invention patent with application number CN201910012890.0 discloses a system and a method for configuring FPGA control data based on cloud and an electronic device. Although the technical scheme can update and transfer the configuration data of the user logic in the FPGA, the configuration of the user logic needs to be controlled by a fixed control module in the FPGA, and the control module cannot perform online configuration, so that the problem of high limitation is caused.
For another example, the invention patent with application number cn201710146959.x discloses an ethernet-based FPGA function online upgrade method, which can receive configuration data and write the configuration data to FLASH by using an ethernet interface implemented inside the FPGA, but needs to manually restart the FPGA to complete configuration update, and cannot implement real unmanned online configuration.
Obviously, in the prior art, the on-line configuration technology of the FPGA performs on-line configuration on the FPGA, or an external controller needs to be added, or only partial configuration on-line update can be performed, or even manual participation is performed, so that the problems of high cost and weak automation and intelligence degrees are caused, and use is influenced.
Disclosure of Invention
In view of the above, it is necessary to provide an online configuration system and an online configuration method based on multiple FPGAs, which can improve automation and poor intelligence of FPGA online configuration.
An online configuration system based on multiple FPGAs comprises N FPGA module groups which are connected in sequence, wherein each FPGA module group comprises an FPGA device and a configuration data nonvolatile memory, and the configuration data nonvolatile memory of each FPGA module group is respectively connected with the corresponding FPGA device; wherein the content of the first and second substances,
each FPGA device comprises a cloud end interface module, and the cloud end interface module is connected with the adjacent FPGA device; wherein the content of the first and second substances,
the cloud interface module is used for receiving configuration data sent by a cloud and sending the configuration data to a configuration data nonvolatile memory connected with an adjacent FPGA device through the adjacent FPGA device;
the configuration data nonvolatile memory is used for storing the received configuration data, and sending the configuration data to the successfully reset FPGA device after the FPGA device successfully resets the FPGA device connected with the cloud interface module based on the cloud interface module, so that the successfully reset FPGA device reads the configuration data and completes configuration updating according to the configuration data.
Specifically, each of the FPGA devices includes a reset interface, and the reset interface of one of the FPGA devices is connected to the cloud interface module of the FPGA device adjacent to the reset interface and is configured to receive a reset signal sent by the adjacent FPGA device of the FPGA device through the cloud interface module of the FPGA device.
Specifically, each of the FPGA devices includes a read-write module, and the read-write module of each of the FPGA devices is connected to a corresponding configuration data nonvolatile memory.
Specifically, the read-write module is a JTAG port.
Specifically, the read-write module includes a general port, a bridge logic, and an SPI interface, where the bridge logic is connected to the general port, the SPI interface is connected to the bridge logic, and the SPI interface is further connected to a corresponding configuration data nonvolatile memory.
The technical effect of the online configuration system based on the multiple FPGAs is as follows:
the invention sets N FPGA module groups which are connected in sequence, each FPGA module group comprises an FPGA device and a configuration data nonvolatile memory, each FPGA device comprises a cloud end interface module, the cloud end interface module is connected with the adjacent FPGA device, the configuration data sent by a cloud end is received through the cloud end interface module, the configuration data is firstly sent to the configuration data nonvolatile memory connected with the adjacent FPGA device through the adjacent FPGA device, the configuration data nonvolatile memory is used for storing the received configuration data, and after the FPGA device successfully resets the FPGA device connected with the cloud end interface module based on the cloud end interface module, the configuration data is sent to the successfully reset FPGA device, so that the successfully reset FPGA device reads the configuration data and completes configuration updating according to the configuration data, furthermore, automatic configuration and restarting of a plurality of FPGAs can be automatically completed on line without additionally adding a control circuit or manual operation outside the FPGA chip, and the device is low in cost and high in automation degree.
Specifically, the invention also provides an online configuration method based on the online configuration system based on the multiple FPGAs, which comprises the following steps:
the method comprises the following steps: the method comprises the steps that a cloud sends configuration data of a currently selected FPGA device to a cloud interface module of a high-order FPGA device, wherein the currently selected FPGA device is an optional FPGA device in advance, the FPGA device is the currently selected FPGA device, and the right-side FPGA device adjacent to the currently selected FPGA device is the high-order FPGA device;
step two: the cloud interface module of the high-order FPGA device sends the configuration data of the currently selected FPGA device to the read-write module of the currently selected FPGA device;
step three: the read-write module of the currently selected FPGA device writes the configuration data of the currently selected FPGA device into a configuration data nonvolatile memory connected with the currently selected FPGA device;
step four: the cloud interface module of the high-order FPGA device sends a reset signal to the cloud interface module of the currently selected FPGA device, and the reset signal resets the currently selected FPGA device;
step five: after the currently selected FPGA device is reset, the high-order FPGA device cancels the resetting of the currently selected FPGA device;
step six: and the currently selected FPGA device reads the configuration data in the configuration data nonvolatile memory connected with the currently selected FPGA device through the read-write module of the currently selected FPGA device so as to complete configuration updating.
The FPGA devices which are sequentially arranged are respectively FPGA-i, FPGA- (i +1), FPGA- (i + 2) and FPGA- (i + 3) -FPGA-N; wherein i and N are integers, i is more than or equal to 1 and less than or equal to N-1, and N is more than or equal to 2; the method further comprises the steps of:
step (1): initializing i = 1;
step (2): the cloud sends the configuration data of the FPGA-i to a cloud interface module of the FPGA- (i + 1);
and (3): the cloud interface module of the FPGA- (i +1) sends the configuration data of the FPGA-i to the read-write module of the FPGA-i;
and (4): the read-write module of the FPGA-i writes the configuration data of the FPGA-i into a configuration data nonvolatile memory-i corresponding to the FPGA-i;
and (5): the cloud interface module of the FPGA- (i +1) resets the FPGA-i;
and (6): after the FPGA-i is reset, the cloud interface module of the FPGA- (i +1) cancels the reset of the FPGA-i;
and (7): and reading the configuration data of the FPGA-i in the corresponding configuration data nonvolatile memory-i by the FPGA-i to complete configuration updating.
Specifically, if i = N-1, the method further comprises the steps of:
step (8-1): the cloud sends the configuration data of the FPGA-N to a cloud interface module of the FPGA-1;
step (8-2): the cloud interface module of the FPGA-1 sends the configuration data of the FPGA-N to the read-write module of the FPGA-N;
step (8-3): the read-write module of the FPGA-N writes the configuration data of the FPGA-N into the corresponding configuration data nonvolatile memory-N;
step (8-4): the cloud interface module of the FPGA-1 resets the FPGA-N;
step (8-5): after the FPGA-N is reset, the cloud interface module of the FPGA-1 cancels the reset of the FPGA-N;
step (8-6): and reading the configuration data of the configuration data nonvolatile memory-N by the FPGA-N to complete configuration updating.
Specifically, if i ≠ N-1, i = i +1, followed by step (2): and the cloud sends the configuration data of the FPGA-i to a cloud interface module of the FPGA- (i + 1).
Specifically, when the read-write module is a JTAG port, each of the configuration data nonvolatile memories supports a JTAG protocol.
The online configuration method based on the multiple FPGAs has the technical effects that:
the configuration data of the currently selected FPGA device is sent to a cloud interface module of a high-order FPGA device through a cloud in sequence, wherein the currently selected FPGA device is an optional FPGA device in advance, the FPGA device is the currently selected FPGA device, and the right-side FPGA device adjacent to the currently selected FPGA device is the high-order FPGA device; the cloud interface module of the high-order FPGA device sends the configuration data of the currently selected FPGA device to the read-write module of the currently selected FPGA device; the read-write module of the currently selected FPGA device writes the configuration data of the currently selected FPGA device into a configuration data nonvolatile memory connected with the currently selected FPGA device; the cloud interface module of the high-order FPGA device sends a reset signal to the cloud interface module of the currently selected FPGA device, and the reset signal resets the currently selected FPGA device; after the currently selected FPGA device is reset, the high-order FPGA device cancels the resetting of the currently selected FPGA device; the currently selected FPGA device reads the configuration data in the configuration data nonvolatile memory connected with the currently selected FPGA device through the read-write module of the currently selected FPGA device so as to complete configuration updating, and further, automatic configuration and restarting of a plurality of FPGAs can be automatically completed on line without additionally adding a control circuit or manual operation outside an FPGA chip, so that the cost is low, and the automation degree is high.
Drawings
FIG. 1 is a block diagram of the overall structure of an on-line configuration system based on multiple FPGAs;
fig. 2 is a block diagram of the overall structure of the multi-FPGA-based online configuration system in another embodiment.
Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the present application is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the present application and are not intended to limit the present application.
In one embodiment, as shown in fig. 1, an online configuration system based on multiple FPGAs is provided, which includes N FPGA module groups connected in sequence.
Each FPGA module group comprises an FPGA device and a configuration data nonvolatile memory, and the configuration data nonvolatile memory of each FPGA module group is respectively connected with the corresponding FPGA device.
Each FPGA device comprises a cloud end interface module, and the cloud end interface module is connected with the adjacent FPGA device; the cloud interface module is used for receiving configuration data sent by a cloud and sending the configuration data to a configuration data nonvolatile memory connected with an adjacent FPGA device through the adjacent FPGA device; the configuration data nonvolatile memory is used for storing the received configuration data, and sending the configuration data to the FPGA device which is successfully reset after the FPGA device successfully resets the FPGA device connected with the cloud interface module based on the cloud interface module, so that the FPGA device which is successfully reset reads the configuration data and completes configuration updating according to the configuration data.
Further, it should be understood that each of the cloud interface modules is integrated inside each FPGA device, and based on the cloud interface module, a connection protocol may be a bus interface such as ethernet, 1553B, CAN, and the like.
Furthermore, the configuration data assigned to the FPGA device can be received by setting the identification code, so that the differential configuration of different FPGA devices is realized.
Furthermore, the invention sets N FPGA module groups which are connected in sequence, each FPGA module group comprises an FPGA device and a configuration data nonvolatile memory, each FPGA device comprises a cloud end interface module, the cloud end interface module is connected with the adjacent FPGA device, the configuration data sent by a cloud end is received through the cloud end interface module, the configuration data is firstly sent to the configuration data nonvolatile memory connected with the adjacent FPGA device through the adjacent FPGA device, the configuration data nonvolatile memory is used for storing the received configuration data, and after the FPGA device successfully resets the FPGA device connected with the cloud end interface module based on the cloud end interface module, the configuration data is sent to the FPGA device which is successfully reset, so that the FPGA device which is successfully reset reads the configuration data and completes configuration updating according to the configuration data, furthermore, automatic configuration and restarting of a plurality of FPGAs can be automatically completed on line without additionally adding a control circuit or manual operation outside the FPGA chip, and the device is low in cost and high in automation degree.
In one embodiment, as shown in fig. 2, N FPGA devices are sequentially arranged and then respectively marked with FPGA-i, FPGA- (i +1), FPGA- (i + 2), FPGA- (i + 3) -FPGA-N.
The configuration data nonvolatile memories of the FPGA module groups are respectively marked by a configuration data nonvolatile memory-1, a configuration data nonvolatile memory-2, a configuration data nonvolatile memory-3, a configuration data nonvolatile memory-4-a configuration data nonvolatile memory-N.
As shown in fig. 2, the cloud interface module of the FPGA-i is connected to the cloud, the read-write module of the FPGA- (i-1), and the reset interface of the FPGA- (i-1), and the read-write module of the FPGA-i is connected to the configuration data nonvolatile memory-i.
Furthermore, each of the FPGA devices includes a reset interface, and the reset interface of one of the FPGA devices is connected to the cloud interface module of the FPGA device adjacent to the reset interface, and is configured to receive a reset signal sent by the adjacent FPGA device of the FPGA device through the cloud interface module of the FPGA device.
In one embodiment, as shown in fig. 2, each of the FPGA devices includes a read-write module, and the read-write module of each of the FPGA devices is connected to a corresponding configuration data nonvolatile memory.
In one embodiment, as shown in FIG. 2, the read-write module is a JTAG port. When the read-write module is a JTAG port, the FPGA-i cloud interface module realizes a port supporting a JTAG protocol, is connected in series with the JTAG port of the FPGA- (i-1) and the JTAG port of the configuration data nonvolatile memory- (i-1) to form a JTAG chain, and completes the work of writing the configuration data received by the FPGA-i cloud interface module into the configuration data nonvolatile memory- (i-1).
In addition, after the configuration is completed and the cloud interface module of the FPGA-i resets the FPGA- (i-1), the FPGA- (i-1) can automatically read the configuration data stored in the nonvolatile memory- (i-1) of the configuration data through the JTAG port to complete the configuration.
In one embodiment, the read/write module includes a general port, a bridge logic, and an SPI interface, the bridge logic is connected to the general port, the SPI interface is connected to the bridge logic, and the SPI interface is further connected to a corresponding configuration data nonvolatile memory.
Furthermore, the general port of the FPGA can receive the configuration data sent by the cloud interface module, and write the configuration data into the nonvolatile memory through the SPI interface through the bridge logic. After the FPGA is reset, the configuration data stored in the configuration data nonvolatile memory can be automatically read through the SPI port to complete configuration.
In an embodiment, as shown in fig. 1-2, the present invention further provides an online configuration method based on the online configuration system based on multiple FPGAs, where the method includes the following steps:
the method comprises the following steps: the method comprises the steps that a cloud sends configuration data of a currently selected FPGA device to a cloud interface module of a high-order FPGA device, wherein the currently selected FPGA device is an optional FPGA device in advance, the FPGA device is the currently selected FPGA device, and the right-side FPGA device adjacent to the currently selected FPGA device is the high-order FPGA device;
specifically, as shown in fig. 2, taking the currently selected FPGA device as FPGA-i as an example, at this time, the right-side FPGA device adjacent to the currently selected FPGA device is FPGA-2, that is, FPGA-2 is the high-order FPGA device.
Step two: the cloud interface module of the high-order FPGA device sends the configuration data of the currently selected FPGA device to the read-write module of the currently selected FPGA device;
and at the same time, sending the configuration data of the FPGA-i to the read-write module of the FPGA-i for the FPGA-2 cloud interface module.
Step three: the read-write module of the currently selected FPGA device writes the configuration data of the currently selected FPGA device into a configuration data nonvolatile memory connected with the currently selected FPGA device;
in this step, taking the currently selected FPGA device as the FPGA-i as an example, specifically, the read-write module of the FPGA-i writes the configuration data of the FPGA-i into the configuration data nonvolatile memory connected with the FPGA-i.
Step four: the cloud interface module of the high-order FPGA device sends a reset signal to the cloud interface module of the currently selected FPGA device, and the reset signal resets the currently selected FPGA device;
step five: after the currently selected FPGA device is reset, the high-order FPGA device cancels the resetting of the currently selected FPGA device;
step six: and the currently selected FPGA device reads the configuration data in the configuration data nonvolatile memory connected with the currently selected FPGA device through the read-write module of the currently selected FPGA device so as to complete configuration updating.
Further, the configuration data of the currently selected FPGA device is sent to the cloud interface module of the high-order FPGA device through the cloud in sequence, wherein the currently selected FPGA device is an optional FPGA device in advance, the FPGA device is the currently selected FPGA device, and the right-side FPGA device adjacent to the currently selected FPGA device is the high-order FPGA device; the cloud interface module of the high-order FPGA device sends the configuration data of the currently selected FPGA device to the read-write module of the currently selected FPGA device; the read-write module of the currently selected FPGA device writes the configuration data of the currently selected FPGA device into a configuration data nonvolatile memory connected with the currently selected FPGA device; the cloud interface module of the high-order FPGA device sends a reset signal to the cloud interface module of the currently selected FPGA device, and the reset signal resets the currently selected FPGA device; after the currently selected FPGA device is reset, the high-order FPGA device cancels the resetting of the currently selected FPGA device; the currently selected FPGA device reads the configuration data in the configuration data nonvolatile memory connected with the currently selected FPGA device through the read-write module of the currently selected FPGA device so as to complete configuration updating, and further, automatic configuration and restarting of a plurality of FPGAs can be automatically completed on line without additionally adding a control circuit or manual operation outside an FPGA chip, so that the cost is low, and the automation degree is high.
In an embodiment, as shown in fig. 2, the present invention further provides an online configuration method based on the online configuration system based on multiple FPGAs, where the FPGA devices sequentially arranged by each FPGA device are respectively FPGA-i, FPGA- (i +1), FPGA- (i + 2), FPGA- (i + 3) — FPGA-N; wherein i and N are integers, i is more than or equal to 1 and less than or equal to N-1, and N is more than or equal to 2; the method further comprises the steps of:
step (1): initializing i = 1;
step (2): the cloud sends the configuration data of the FPGA-i to a cloud interface module of the FPGA- (i + 1);
and (3): the cloud interface module of the FPGA- (i +1) sends the configuration data of the FPGA-i to the read-write module of the FPGA-i;
and (4): the read-write module of the FPGA-i writes the configuration data of the FPGA-i into a configuration data nonvolatile memory-i corresponding to the FPGA-i;
and (5): the cloud interface module of the FPGA- (i +1) resets the FPGA-i;
and (6): after the FPGA-i is reset, the cloud interface module of the FPGA- (i +1) cancels the reset of the FPGA-i;
and (7): and reading the configuration data of the FPGA-i in the corresponding configuration data nonvolatile memory-i by the FPGA-i to complete configuration updating.
Furthermore, the total number of the FPGA devices to be configured and updated is N, and when the configuration is performed, sequential configuration is performed in a sequence from left to right according to the sequence of the arrangement of the FPGA devices, as shown in fig. 2, the configuration sequence is from FPGA-i, FPGA- (i +1), FPGA- (i + 2), FPGA- (i + 3) -FPGA-N.
Further, the number of the FPGA devices is divided into two cases, one is 2 FPGA devices, and the other is more than 2 FPGA devices.
Further, no matter the number of the FPGA devices is 2 or more than 2, the FPGA devices FPGA-i need to be paired first, that is, i =1 needs to be initialized, that is, the situation in the step (1) is described above.
Next, when i =1, the specific steps of step (2) to step (7) are as follows:
firstly, the cloud sends the configuration data of the FPGA-1 to a cloud interface module of the FPGA-2;
then, the cloud interface module of the FPGA-2 sends the configuration data of the FPGA-1 to the read-write module of the FPGA-1;
then, the read-write module of the FPGA-1 writes the configuration data of the FPGA-1 into a configuration data nonvolatile memory-1 corresponding to the FPGA-1;
then, the cloud interface module of the FPGA-2 resets the FPGA-1;
then, after the FPGA-1 is reset, the cloud interface module of the FPGA-2 cancels the reset of the FPGA-1;
and finally, reading the configuration data of the FPGA-1 in the corresponding configuration data nonvolatile memory-1 by the FPGA-1 to complete configuration updating.
And finishing the configuration updating of the FPGA-1.
In one embodiment, as shown in fig. 2, if i = N-1, the method further comprises the steps of:
step (8-1): the cloud sends the configuration data of the FPGA-N to a cloud interface module of the FPGA-1;
step (8-2): the cloud interface module of the FPGA-1 sends the configuration data of the FPGA-N to the read-write module of the FPGA-N;
step (8-3): the read-write module of the FPGA-N writes the configuration data of the FPGA-N into the corresponding configuration data nonvolatile memory-N;
step (8-4): the cloud interface module of the FPGA-1 resets the FPGA-N;
step (8-5): after the FPGA-N is reset, the cloud interface module of the FPGA-1 cancels the reset of the FPGA-N;
step (8-6): and reading the configuration data of the configuration data nonvolatile memory-N by the FPGA-N to complete configuration updating.
In this embodiment, in the case of N =2, on the premise that i =1 is initialized, i = N-1, that is, the specific steps from step (8-1) to step (8-6) are:
(1) the cloud sends the configuration data of the FPGA-2 to a cloud interface module of the FPGA-1;
(2): the cloud interface module of the FPGA-1 sends the configuration data of the FPGA-2 to the read-write module of the FPGA-N;
(3): the read-write module of the FPGA-2 writes the configuration data of the FPGA-2 into the corresponding configuration data nonvolatile memory-N;
(4): the cloud interface module of the FPGA-1 resets the FPGA-2;
(5): after the FPGA-2 is reset, the cloud interface module of the FPGA-1 cancels the reset of the FPGA-2;
(6): the FPGA-2 reads the configuration data of the configuration data nonvolatile memory-2 to complete configuration updating,
and when the N is 2, after the configuration update is carried out on the FPGA-1, the configuration of the FPGA-N is updated.
In one embodiment, as shown in fig. 2, if i ≠ N-1, then i = i +1, followed by step (2): and the cloud sends the configuration data of the FPGA-i to a cloud interface module of the FPGA- (i + 1).
Further, in this embodiment, in the case that N is greater than 2, that is, in the case that i ≠ N-1, when N is greater than 2, that is, it is necessary to perform configuration update on FPGA-1, that is, it is necessary to perform the above-mentioned step (1) -step (7), when the step (1) -step (7) is completed, it means that the configuration update on FPGA-i is completed, at this time, it is necessary to perform configuration update in sequence according to the arrangement sequence of the FPGA devices, that is, it is necessary to perform configuration update on FPGA-2 on the right side of FPGA-1, at this time, i = i +1 needs to be performed, that is, i at this time is already set to 2, at this time, step (2) is then performed until step (7) is performed when i =2, the configuration update on FPGA device FPGA-2 is completed, then, a judgment is then performed, it is determined whether i at this time satisfies i = N-1, and (3) if the configuration update is satisfied, executing the steps (8-1) to (8-6), if i = N-1 is not satisfied, namely i ≠ N-1, then i = i +1, then turning to the step (2) again until i = N-1 is satisfied, and then completing the configuration update of all the N FPGA devices.
In one embodiment, as shown in fig. 2, when the read/write module is a JTAG port, each of the configuration data nonvolatile memories supports a JTAG protocol.
The above-mentioned embodiments only express several embodiments of the present application, and the description thereof is more specific and detailed, but not construed as limiting the scope of the invention. It should be noted that, for a person skilled in the art, several variations and modifications can be made without departing from the concept of the present application, which falls within the scope of protection of the present application. Therefore, the protection scope of the present patent shall be subject to the appended claims.
Claims (10)
1. An online configuration system based on multiple FPGAs is characterized by comprising N sequentially connected FPGA module groups, wherein each FPGA module group comprises an FPGA device and a configuration data nonvolatile memory, and the configuration data nonvolatile memory of each FPGA module group is respectively connected with the corresponding FPGA device; wherein the content of the first and second substances,
each FPGA device comprises a cloud end interface module, and the cloud end interface module is connected with the adjacent FPGA device; wherein the content of the first and second substances,
the cloud interface module is used for receiving configuration data sent by a cloud and sending the configuration data to a configuration data nonvolatile memory connected with an adjacent FPGA device through the adjacent FPGA device;
the configuration data nonvolatile memory is used for storing the received configuration data, and sending the configuration data to the successfully reset FPGA device after the FPGA device successfully resets the FPGA device connected with the cloud interface module based on the cloud interface module, so that the successfully reset FPGA device reads the configuration data and completes configuration updating according to the configuration data.
2. The multi-FPGA-based online configuration system of claim 1, wherein each FPGA device comprises a reset interface, and the reset interface of one FPGA device is connected to the cloud interface module of the FPGA device adjacent to the reset interface and is configured to receive the reset signal sent by the FPGA device of the adjacent FPGA device via the cloud interface module of the FPGA device.
3. The multi-FPGA-based online configuration system of claim 1, wherein each FPGA device comprises a read-write module, and the read-write module of each FPGA device is connected to a corresponding configuration data nonvolatile memory.
4. The multi-FPGA-based on-line configuration system of claim 3, wherein the read-write module is a JTAG port.
5. The multi-FPGA-based online configuration system of claim 3, wherein the read/write module comprises a general port, a bridge logic and an SPI interface, the bridge logic is connected with the general port, the SPI interface is connected with the bridge logic, and the SPI interface is further connected with a corresponding configuration data nonvolatile memory.
6. An online configuration method of the online configuration system based on multiple FPGAs according to any one of claims 1-3, the method comprises the following steps:
the method comprises the following steps: the method comprises the steps that a cloud sends configuration data of a currently selected FPGA device to a cloud interface module of a high-order FPGA device, wherein the currently selected FPGA device is an optional FPGA device in advance, the FPGA device is the currently selected FPGA device, and the right-side FPGA device adjacent to the currently selected FPGA device is the high-order FPGA device;
step two: the cloud interface module of the high-order FPGA device sends the configuration data of the currently selected FPGA device to the read-write module of the currently selected FPGA device;
step three: the read-write module of the currently selected FPGA device writes the configuration data of the currently selected FPGA device into a configuration data nonvolatile memory connected with the currently selected FPGA device;
step four: the cloud interface module of the high-order FPGA device sends a reset signal to the cloud interface module of the currently selected FPGA device, and the reset signal resets the currently selected FPGA device;
step five: after the currently selected FPGA device is reset, the high-order FPGA device cancels the resetting of the currently selected FPGA device;
step six: and the currently selected FPGA device reads the configuration data in the configuration data nonvolatile memory connected with the currently selected FPGA device through the read-write module of the currently selected FPGA device so as to complete configuration updating.
7. An online configuration method of the online configuration system based on multiple FPGAs (field programmable gate array) according to any one of claims 1 to 3, wherein the FPGA devices arranged in sequence are respectively FPGA-i, FPGA- (i +1), FPGA- (i + 2) and FPGA- (i + 3) -FPGA-N; wherein i and N are integers, i is more than or equal to 1 and less than or equal to N-1, and N is more than or equal to 2; the method further comprises the steps of:
step (1): initializing i = 1;
step (2): the cloud sends the configuration data of the FPGA-i to a cloud interface module of the FPGA- (i + 1);
and (3): the cloud interface module of the FPGA- (i +1) sends the configuration data of the FPGA-i to the read-write module of the FPGA-i;
and (4): the read-write module of the FPGA-i writes the configuration data of the FPGA-i into a configuration data nonvolatile memory-i corresponding to the FPGA-i;
and (5): the cloud interface module of the FPGA- (i +1) resets the FPGA-i;
and (6): after the FPGA-i is reset, the cloud interface module of the FPGA- (i +1) cancels the reset of the FPGA-i;
and (7): and reading the configuration data of the FPGA-i in the corresponding configuration data nonvolatile memory-i by the FPGA-i to complete configuration updating.
8. The on-line configuration method according to claim 7, wherein if i = N-1, the method further comprises the steps of:
step (8-1): the cloud sends the configuration data of the FPGA-N to a cloud interface module of the FPGA-1;
step (8-2): the cloud interface module of the FPGA-1 sends the configuration data of the FPGA-N to the read-write module of the FPGA-N;
step (8-3): the read-write module of the FPGA-N writes the configuration data of the FPGA-N into the corresponding configuration data nonvolatile memory-N;
step (8-4): the cloud interface module of the FPGA-1 resets the FPGA-N;
step (8-5): after the FPGA-N is reset, the cloud interface module of the FPGA-1 cancels the reset of the FPGA-N;
step (8-6): and reading the configuration data of the configuration data nonvolatile memory-N by the FPGA-N to complete configuration updating.
9. The on-line configuration method according to claim 7, wherein if i ≠ N-1, i = i +1, followed by step (2): and the cloud sends the configuration data of the FPGA-i to a cloud interface module of the FPGA- (i + 1).
10. The on-line configuration method of claim 7, wherein when the read/write module is a JTAG port, each of the configuration data nonvolatile memories supports a JTAG protocol.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111093901.6A CN113553084B (en) | 2021-09-17 | 2021-09-17 | Online configuration system and online configuration method based on multiple FPGAs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111093901.6A CN113553084B (en) | 2021-09-17 | 2021-09-17 | Online configuration system and online configuration method based on multiple FPGAs |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113553084A true CN113553084A (en) | 2021-10-26 |
CN113553084B CN113553084B (en) | 2021-12-14 |
Family
ID=78134649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111093901.6A Active CN113553084B (en) | 2021-09-17 | 2021-09-17 | Online configuration system and online configuration method based on multiple FPGAs |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553084B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816571A (en) * | 2022-04-15 | 2022-07-29 | 西安广和通无线通信有限公司 | Method, device and equipment for hanging flash memory and storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101783812A (en) * | 2009-12-01 | 2010-07-21 | 深圳市蓝韵实业有限公司 | FPGA configuration system and configuration method based on network |
US20150169774A1 (en) * | 2013-08-19 | 2015-06-18 | Monster Worldwide, Inc. | Sourcing Abound Candidates Apparatuses, Methods and Systems |
CN109271186A (en) * | 2018-09-06 | 2019-01-25 | 郑州云海信息技术有限公司 | A kind of FPGA method for updating program, device and equipment |
-
2021
- 2021-09-17 CN CN202111093901.6A patent/CN113553084B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101783812A (en) * | 2009-12-01 | 2010-07-21 | 深圳市蓝韵实业有限公司 | FPGA configuration system and configuration method based on network |
US20150169774A1 (en) * | 2013-08-19 | 2015-06-18 | Monster Worldwide, Inc. | Sourcing Abound Candidates Apparatuses, Methods and Systems |
CN109271186A (en) * | 2018-09-06 | 2019-01-25 | 郑州云海信息技术有限公司 | A kind of FPGA method for updating program, device and equipment |
Non-Patent Citations (2)
Title |
---|
J.S. BEECKLER等: "FPGA particle graphics hardware", 《13TH ANNUAL IEEE SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES (FCCM"05)》 * |
王崇森: "基于FPGA的云储存安全系统研究与实现", 《CNKI优秀硕士学位论文全文库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816571A (en) * | 2022-04-15 | 2022-07-29 | 西安广和通无线通信有限公司 | Method, device and equipment for hanging flash memory and storage medium |
CN114816571B (en) * | 2022-04-15 | 2023-06-16 | 西安广和通无线通信有限公司 | Method, device, equipment and storage medium for plug-in flash memory |
Also Published As
Publication number | Publication date |
---|---|
CN113553084B (en) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6918027B2 (en) | System and method for in-system programming through an on-system JTAG bridge of programmable logic devices on multiple circuit boards of a system | |
CN104881286B (en) | Programming device configures system and method | |
US6883109B2 (en) | Method for accessing scan chains and updating EEPROM-resident FPGA code through a system management processor and JTAG bus | |
CN107832078B (en) | FPGA program online updating circuit based on DSP | |
JP2772604B2 (en) | Data processing system | |
JPH0713654B2 (en) | Hardware simulator | |
CN108319465B (en) | Circuit and method for upgrading FPGA configuration data | |
CN106843983A (en) | The system and method for remote upgrading field programmable gate array | |
CN113553084B (en) | Online configuration system and online configuration method based on multiple FPGAs | |
JP2001101017A (en) | Method and system for programming fpga on pc card without additional hardware | |
CN105103142A (en) | Sharing firmware among agents in a computing node | |
US20030023793A1 (en) | Method and apparatus for in-system programming through a common connection point of programmable logic devices on multiple circuit boards of a system | |
CN112000351A (en) | Updating method, updating device, updating equipment and storage medium of BMC (baseboard management controller) firmware | |
EP2025064B1 (en) | Universal non-volatile support device for supporting reconfigurable processing systems | |
US20030084232A1 (en) | Device and method capable of changing codes of micro-controller | |
CN112925569A (en) | Firmware data processing method, device, equipment and storage medium | |
JPS59135698A (en) | Eeprom device | |
JP2012118904A (en) | Information processing apparatus | |
CN112860595B (en) | PCI (peripheral component interconnect express) equipment or PCIE (peripheral component interconnect express) equipment, data access method and related assembly | |
US11822930B2 (en) | Electrically programmable application-specific integrated circuit initialization engine | |
CN208314757U (en) | The circuit that FPGA configuration data is upgraded | |
CN215416634U (en) | Offline downloader for FPGA upgrading | |
US6360319B1 (en) | Method and apparatus for storing and retrieving system revision information | |
KR100290280B1 (en) | Microcontroller with Programmable Flash Memory | |
US7234048B2 (en) | Method for initializing or configuring an electrical circuit |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |