A method for realizing FPGA software online loading function

By using an online loading method and leveraging the collaborative work of modules, batch distribution and online configuration of FPGA software are achieved, solving the problem of low FPGA programming efficiency in multi-board scenarios and improving development efficiency.

CN120066609BActive Publication Date: 2025-11-25NANJING RES INST OF ELECTRONICS TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510108712.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-01-23
Publication Date
2025-11-25
Estimated Expiration
2045-01-23

AI Technical Summary

Technical Problem

When there are a large number of FPGA boards, the existing FPGA software programming process is cumbersome and inefficient, requiring manual configuration of each board, which leads to low development efficiency.

Method used

This paper provides an online loading method for FPGA software. Through the collaborative work of a user interaction module, a message system module, a state storage module, a control management module, a resource scheduling module, and a node management module, the method enables batch distribution and online configuration of FPGA software, simplifies the operation process, and avoids steps such as shutdown.

Benefits of technology

It enables rapid, batch loading of FPGA software, improves FPGA programming efficiency, solves the cumbersome problems of uploading user configuration files and restarting operations in multi-board scenarios, and provides a one-click remote loading service.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120066609B_ABST
    Figure CN120066609B_ABST
Patent Text Reader

Abstract

The application belongs to the technical field of radar detection, and discloses a method capable of realizing FPGA software online loading function.The method realizes batch distribution of FPGA software to multiple nodes in the system through a simple and easy-to-use man-machine interface, and performs online configuration to complete FPGA burning and writing function without the need of power-off operation, etc., uniformly manages FPGA board card resources in the system to form a resource pool, realizes dynamic scheduling and on-demand use of FPGA chip resources, provides FPGA software one-key remote loading service for developers when FPGA software needs to be frequently loaded on a board for debugging, improves FPGA burning and writing efficiency, solves the problem that users need to perform configuration file uploading and power-off restart operation multiple times when the number of FPGA board cards is large in the product research and development process, and realizes fast and batch online loading of FPGA software.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates primarily to the field of radar detection technology, and in particular to a method for realizing online loading of FPGA software. Background Technology

[0002] Due to their powerful parallel computing capabilities, high data throughput, and reliability, FPGAs are widely used in aerospace, early warning and detection, and artificial intelligence fields to perform computationally intensive tasks such as digital signal processing, video image processing, and large model training. Domestic internet companies, such as Alibaba, Huawei, and Tencent, have also incorporated FPGA resources into their cloud computing environments to support high-performance computing acceleration and provide FPGA resources on demand through virtualization technology.

[0003] FPGA software development is divided into several stages, including design definition, design input, analysis and synthesis, functional simulation, placement and routing, and timing simulation, ultimately generating an FPGA binary configuration file. Users can download the file to the FPGA chip for programming using a JTAG tool, or send the file to the flash area of ​​the ZYNQ chip on the FPGA board via a network, and then program the FPGA application by power-off and restart. However, this method is cumbersome and inefficient when dealing with a large number of FPGA boards, as it requires manual configuration of each FPGA on each board. Summary of the Invention

[0004] The purpose of this invention is to provide a method for online loading of FPGA software. Through a simple and easy-to-use human-machine interface, the FPGA software can be distributed in batches to multiple nodes in the system and configured online to complete the FPGA programming function without the need for shutdown or other operations. This solves the problem of low program programming efficiency for users in scenarios with a large number of FPGA boards during product development.

[0005] To achieve the above objectives, the present invention provides a method for implementing online loading of FPGA software, comprising the following steps:

[0006] Step 1: After completing the FPGA software development, the FPGA software is standardized and packaged through the user interaction module and uploaded to the software repository. The FPGA board information, FPGA chip configuration, and busy / idle status can be viewed and obtained.

[0007] Step 2: The user clicks the deployment button provided by the interaction module on the interface, and writes the FPGA software loading information into the state storage module by calling the write interface of the message system module;

[0008] Step 3: After the control and management module listens to the FPGA software loading information through the message system module, it parses the deployment task, decomposes the deployment task into more detailed deployment events, and writes the parsed messages into the state storage module through the message system module.

[0009] Step 4: After the resource scheduling module listens to the FPGA software deployment event parsed by the control and management module through the message system module, it allocates the required FPGA chips to the FPGA software according to the preset scheduling algorithm, including the FPGA board ID number and the FPGA chip ID number, updates the scheduling result to the deployment event, and writes it to the state storage module through the message system module.

[0010] Step 5: After the node management module listens for messages deployed on the node through the message system module, it parses the message content, pulls the FPGA configuration file from the FPGA software application repository to the Flash of the local node via the FTP protocol according to the path specified in the message, and calls the FPGA software online configuration interface to complete the online loading of the FPGA software.

[0011] Furthermore, the user interaction module in step 1 serves as the entry point for users to load the FPGA software online, providing both a graphical interface and a command-line tool to display FPGA board information and application programming information.

[0012] Furthermore, the user interaction module in step 1 adopts a B / S architecture and is developed in a service-oriented manner, supporting cross-platform access.

[0013] Furthermore, the message system module in step 2 provides users with a standardized operation interface. The user interaction module, state storage module, control management module, resource scheduling module, and node management module all interact through the message system module, thereby achieving decoupling between modules.

[0014] Users can perform various resource operations through the messaging system module, including message publishing, message updating, and message listening.

[0015] Furthermore, in step 3, the state storage module is a lightweight database that provides interfaces for adding, deleting, modifying, querying, and monitoring data, and records the state information of the entire FPGA cluster, including FPGA board information, FPGA chip information, and bin file configuration information.

[0016] The state storage module only interacts with the message system module and is used for persistent storage of information.

[0017] Furthermore, in step 4, the control and management module is used to control and manage the online loading of FPGA software, including FPGA software programming management, FPGA board configuration management, FPGA monitoring management, parsing the user's FPGA software programming task, and processing the node information reported by the FPGA board.

[0018] Furthermore, in step 5, the resource scheduling module selects FPGA chips that meet the software loading criteria from the cluster's FPGA resource pool based on the software's requirements for FPGA chip manufacturers, models, and resource scale using a resource scheduling algorithm.

[0019] Furthermore, the resource scheduling algorithm in step 5 is divided into specified scheduling and dynamic scheduling. FPGA chips that meet the software loading indicators are selected from the FPGA resource pool of the cluster in the order of pre-selection and preferred selection.

[0020] Specifying the scheduler allows the user to specify the specific FPGA board ID and FPGA chip ID during software loading, while dynamic scheduling allows the platform to dynamically select the scheduler based on requirements.

[0021] Furthermore, in step 6, the node management module is set on the ZYNQ chip of the FPGA board, which is responsible for collecting FPGA board information, FPGA chip information, and software status, and reporting them to the platform through the message system module.

[0022] Simultaneously, in response to user-issued software loading and FPGA board control commands, the system pulls the bin file from the FPGA software application repository to the Flash memory of this node via FTP, and calls the FPGA software online configuration interface to complete the online loading of the FPGA software.

[0023] Beneficial effects: This invention provides a method for realizing online loading of FPGA software, which unifies the management of FPGA board resources in the system to form a resource pool, and realizes dynamic scheduling and on-demand use of FPGA chip resources; when FPGA software needs to be frequently debugged on the board, it provides developers with a one-click remote loading service for FPGA software, improving FPGA programming efficiency; and it solves the problem that users need to perform multiple configuration file uploads and power-off restarts when there are a large number of FPGA boards in the product development process, realizing fast and batch online loading of FPGA software. Attached Figure Description

[0024] Figure 1 This is a diagram of the FPGA software online loading platform involved in an embodiment of the present invention. Detailed Implementation

[0025] The preferred mechanisms and implementation methods of the present invention will be further described below with reference to the accompanying drawings and specific embodiments.

[0026] Example 1: As Figure 1 As shown in the figure, this invention discloses a technical solution for a method to realize online loading of FPGA software. Figure 1 This is a diagram of the FPGA software online loading platform involved in an embodiment of the present invention.

[0027] This embodiment is based on the DBF information processing function of a certain type of radar, which is deployed on multiple FPGA chips in the system.

[0028] A method for implementing online software loading for FPGAs includes the following steps:

[0029] Step 1: After the DBF software development is completed, the developers use the user interaction module to standardize and package the generated software and upload it to the software repository; at the same time, the developers can see the FPGA board information, FPGA chip configuration and busy / idle status in the system.

[0030] One FPGA board includes one ZYNQ chip and several FPGA chips;

[0031] Busy / idle state refers to whether the FPGA chip has been programmed. If it has been programmed, it is in a busy state; if it has not been programmed, it is in an idle state.

[0032] Step 2: In the application deployment interface of the interactive module (1), the user selects which FPGA chips the software needs to be programmed to. After the selection is completed, the user clicks the one-click deployment button and writes the FPGA software loading information to the status storage module (3) by calling the write interface of the message system module (2).

[0033] Step 3: After the control management module (4) listens to the FPGA software loading information through the message system module (2), it parses the deployment task, decomposes the deployment task into more detailed deployment events, and writes the parsed message into the state storage module (3) through the message system module (2).

[0034] Step 4: After the resource scheduling module (5) listens to the FPGA software deployment message generated by the control management module (4) through the message system module (2), it parses and processes the message and finds that this deployment is a designated deployment. The FPGA board ID number and chip ID number burned by the software have been set and no dynamic scheduling is required. The deployment message is updated to the scheduled state and written to the state storage module (3) through the message system module (2).

[0035] Step 5: After the node management module (6) listens for messages deployed on the node through the message system module (2), it parses the message content. According to the path specified in the message, it pulls the FPGA configuration file from the application repository to the Flash of this node via FTP, and calls the FPGA software online configuration interface to complete the online loading of the FPGA software.

[0036] The user interaction module (1) serves as the entry point for users to load the FPGA software online. It provides both a graphical interface and a command-line tool to display FPGA board information and application programming information within the system. The module adopts a B / S architecture and is developed in a service-oriented manner, supporting cross-platform access.

[0037] The message system module (2) acts as a message middleware, providing users with a standardized operation interface. Other modules on the platform interact through this module, achieving decoupling between modules. Based on the message system module, users can perform operations on messages of various resource types (FPGA node resources, FPGA application resources, etc.), including message publishing, message updating, and message listening.

[0038] The state storage module (3) is used for persistent storage of information in the system. It is a lightweight database that provides interfaces for adding, deleting, modifying, querying, and listening to data, and only interacts with the message system module. It records the state information of the entire FPGA cluster, including board information, FPGA chip information, and bin file configuration information.

[0039] The control and management module (4) is used to control and manage the online loading of FPGA software, including functions such as FPGA software programming management, FPGA board configuration management, and FPGA monitoring management. It parses the user's FPGA software programming tasks, processes the node information reported by the FPGA board, and ensures that the entire platform is in the user's expected state.

[0040] The resource scheduling module (5) is responsible for allocating suitable FPGA chips for FPGA software programming. Based on the software's requirements for FPGA chip manufacturers, models, and resource scale, it selects FPGA chips that meet the software loading criteria from the cluster's FPGA resource pool in a pre-selection and preferred order. Resource scheduling is divided into specified scheduling and dynamic scheduling. Specified scheduling is performed by the user specifying the specific FPGA board and chip ID during software loading, while dynamic scheduling is performed by the platform based on requirements.

[0041] From the node management module (6), which resides on the ZYNQ chip of the FPGA board, it is responsible for collecting board information, FPGA chip information, software status, and other information, and reporting them to the platform through the message system module. At the same time, it responds to user commands such as software loading and board control, pulls the FPGA's bin file from the remote location to the node's flash, and calls the FPGA software online configuration interface to complete the online loading of the FPGA software.

[0042] This invention provides a method for online loading of FPGA software. Through a simple and easy-to-use human-machine interface, FPGA software can be distributed in batches to multiple nodes in the system and configured online to complete the FPGA programming function without the need for shutdown or other operations. This solves the problem of low programming efficiency for users in scenarios with a large number of FPGA boards during product development.

[0043] Finally, it should be noted that the above are merely preferred embodiments of the present invention and are not intended to limit the present invention. Although the present invention has been described in detail with reference to the embodiments, those skilled in the art can still modify the technical solutions described in the foregoing embodiments or make equivalent substitutions for some of the technical features. However, any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.

Claims

1. A method for implementing online software loading functionality for FPGAs, characterized in that, Includes the following steps: Step 1: After completing the FPGA software development, the FPGA software is standardized and packaged through the user interaction module and uploaded to the software repository. The FPGA board information, FPGA chip configuration, and busy / idle status can be viewed and obtained. Step 2: The user clicks the deployment button provided by the interaction module on the interface, and writes the FPGA software loading information into the state storage module by calling the write interface of the message system module; Step 3: After the control and management module listens to the FPGA software loading information through the message system module, it parses the deployment task, decomposes the deployment task into more detailed deployment events, and writes the parsed messages into the state storage module through the message system module. Step 4: After the resource scheduling module listens to the FPGA software deployment event parsed by the control and management module through the message system module, it allocates the required FPGA chips to the FPGA software according to the preset scheduling algorithm, including the FPGA board ID number and the FPGA chip ID number, updates the scheduling result to the deployment event, and writes it to the state storage module through the message system module. Step 5: After the node management module listens for messages deployed on the node through the message system module, it parses the message content, pulls the FPGA configuration file from the FPGA software application repository to the Flash of the local node via the FTP protocol according to the path specified in the message, and calls the FPGA software online configuration interface to complete the online loading of the FPGA software.

2. The method for realizing online loading of FPGA software according to claim 1, characterized in that, The user interaction module in step 1 is the entry point for users to use the FPGA software online loading platform. It provides both a graphical interface and a command-line tool to display FPGA board information and application programming information.

3. The method for realizing online loading of FPGA software according to claim 1, characterized in that, The user interaction module in step 1 adopts a B / S architecture and is developed in a service-oriented manner, supporting cross-platform access.

4. The method for realizing online loading of FPGA software according to claim 1, characterized in that, The messaging system module in step 2 provides users with a standardized operation interface. The user interaction module, state storage module, control management module, resource scheduling module, and node management module all interact through the messaging system module, thus decoupling the modules. Users can perform various resource operations through the messaging system module, including message publishing, message updating, and message listening.

5. The method for realizing online loading of FPGA software according to claim 1, characterized in that, In step 3, the state storage module is a lightweight database that provides interfaces for adding, deleting, modifying, querying, and monitoring data. It records the state information of the entire FPGA cluster, including FPGA board information, FPGA chip information, and bin file configuration information. The state storage module only interacts with the message system module and is used for persistent storage of information.

6. The method for realizing online loading of FPGA software according to claim 1, characterized in that, In step 4, the control and management module is used to control and manage the online loading of FPGA software, including FPGA software programming management, FPGA board configuration management, FPGA monitoring management, parsing user FPGA software programming tasks, and processing node information reported by FPGA boards.

7. The method for realizing online loading of FPGA software according to claim 1, characterized in that, In step 5, the resource scheduling module selects FPGA chips that meet the software loading criteria from the cluster's FPGA resource pool based on the software's requirements for FPGA chip manufacturers, models, and resource scale using a resource scheduling algorithm.

8. The method for realizing online loading of FPGA software according to claim 7, characterized in that, The resource scheduling algorithm in step 5 is divided into specified scheduling and dynamic scheduling. It selects FPGA chips that meet the software loading index from the FPGA resource pool of the cluster in the order of pre-selection and preferred selection. Specifying the scheduler allows the user to specify the specific FPGA board ID and FPGA chip ID during software loading, while dynamic scheduling allows the platform to dynamically select the scheduler based on requirements.

9. The method for realizing online loading of FPGA software according to claim 1, characterized in that, In step 6, the node management module is set on the ZYNQ chip of the FPGA board, which is responsible for collecting FPGA board information, FPGA chip information, and software status, and reporting them to the platform through the message system module. Simultaneously, in response to user-issued software loading and FPGA board control commands, the system pulls the bin file from the FPGA software application repository to the Flash memory of this node via FTP, and calls the FPGA software online configuration interface to complete the online loading of the FPGA software.

Citation Information

Patent Citations

  • Software deployment method and system, software deployment server and user server

    CN101453367A

  • Online upgrading structure and method for FPGA chip based on data frame asynchronous transmission protocol

    CN103106163A