Method capable of realizing on-line loading function of FPGA (Field Programmable Gate Array) software
Through the method of working together with the online loading function and module, the problem of low writing efficiency when the number of FPGA boards is large, and the rapid, batch online loading and efficient writing of FPGA software are achieved.
Patent Information
- Application Number
- CN202510108712.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-23
- Publication Date
- 2025-05-30
- Estimated Expiration
- 2045-01-23
AI Technical Summary
In the case of a large number of FPGA boards, users need to manually configure each board, resulting in cumbersome steps and low writing efficiency.
By providing a method, the FPGA software online loading function is realized, and the user interaction module, message system module, control management module, resource scheduling module and node management module are used to realize batch distribution and online configuration of FPGA software, and complete the FPGA writing function without shutdown and other operations.
It improves the efficiency of FPGA writing, solves the problem that users need to upload configuration files multiple times and restart when there are many FPGA boards, and realizes the fast and batch online loading of FPGA software.
Smart Images

Figure CN120066609A_ABST
Abstract
Description
Technical Field
[0001] The present invention mainly relates to the technical field of radar detection, and particularly relates to a method for realizing the online loading function of FPGA software. Background Art
[0002] Due to its powerful parallel computing, high data throughput capacity and reliability, FPGA is widely used in many fields such as aerospace, early warning detection, and artificial intelligence to complete computationally intensive tasks such as digital signal processing, video image processing, and large model training. Domestic Internet companies have even introduced FPGA resources into their cloud computing environments to support high-performance computing acceleration, and through virtualization technology, provide FPGA resources on demand.
[0003] FPGA software development includes links such as design definition, design input, analysis and synthesis, functional simulation, placement and routing, and timing simulation, and finally generates an FPGA binary configuration file. Users download the file to the FPGA chip for programming through a JTAG tool, or send the file to the flash area of the ZYNQ chip on the FPGA board through a network method, and realize FPGA application programming by powering off and restarting. However, in the case of a large number of FPGA boards, since it is necessary to manually configure the FPGA on each board, the steps are cumbersome and the programming efficiency is low. Summary of the Invention
[0004] The purpose of the present invention is to provide a method for realizing the online loading function of FPGA software. Through a simple and easy-to-use human-machine interface, the FPGA software can be batch distributed to multiple nodes in the system, and online configuration can be performed to complete the FPGA programming function without operations such as shutting down, so as to solve the problem of low programming efficiency of users in the scenario of a large number of FPGA boards during the product development process.
[0005] To achieve the above object, the present invention provides a method for realizing the online loading function of FPGA software, including the following steps: Step 1: After the FPGA software development is completed, the FPGA software is standardized and packaged through the user interaction module and uploaded to the software repository, where 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 in the interface by the interaction module, and writes the FPGA software loading information into the status storage module by calling the write interface of the message system module; Step 3: After the control and management module monitors the FPGA software loading information through the information system module, it parses the deployment task this time, decomposes the deployment task this time into more detailed deployment events, and writes the message generated after parsing into the status storage module through the message system module; Step 4: After the resource scheduling module monitors the FPGA software deployment event parsed by the control and management module through the message system module, it allocates the required FPGA chips for FPGA software programming 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 status storage module through the message system module; Step 5: After the slave node management module monitors the message deployed on this 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 this node through 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.
[0006] Furthermore, the user interaction module in Step 1 is the entry for users to use the FPGA software online loading platform, providing two ways: a graphical interface and a command-line tool, to display FPGA board information and application programming information.
[0007] Furthermore, the user interaction module in Step 1 adopts a B / S architecture, is developed in a service-oriented manner, and supports cross-platform access.
[0008] Furthermore, the message system module in Step 2 provides a standardized operation interface for users. The user interaction module, the status storage module, the control and management module, the resource scheduling module, and the node management module all interact through the message system module to achieve decoupling between modules; Users can perform operations on various resource types through the information system module, including message publishing, message updating, and message listening.
[0009] Furthermore, the status storage module in Step 3 is a lightweight database, providing interfaces for data addition, deletion, modification, query, and listening, recording the status information of the entire FPGA cluster, including FPGA board information, FPGA chip information, and bin file configuration information; The status storage module only interacts with the message system module for persistent storage of information.
[0010] Furthermore, the control and management module in Step 4 is used to control and manage the FPGA software online loading, 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.
[0011] Furthermore, in Step 5, the resource scheduling module selects FPGA chips that meet the software loading metrics from the FPGA resource pool of the cluster according to the software's requirements for FPGA chip manufacturers, models, resource scales, etc. using a resource scheduling algorithm.
[0012] Further, the resource scheduling algorithm in step 5 is divided into designated scheduling and dynamic scheduling, and the FPGA chips that meet the software loading indicators are selected from the FPGA resource pool of the cluster in the order of preselection and preference; For designated scheduling, the user specifies the specific FPGA board ID and FPGA chip ID during software loading, and for dynamic scheduling, the platform makes dynamic selection according to requirements.
[0013] Further, the node management module in step 6 is set on the ZYNQ chip of the FPGA board, and is responsible for collecting FPGA board information, FPGA chip information, and software status, and reporting them to the platform through the message system module; At the same time, in response to the software loading and FPGA board control commands issued by the user, pull the bin file from the FPGA software application repository to the Flash of this node through FTP, and call the FPGA software online configuration interface to complete the online loading of the FPGA software.
[0014] Beneficial effects: The present invention provides a method that can realize the online loading function of FPGA software, uniformly manages the FPGA board resources in the system to form a resource pool, and realizes the dynamic scheduling and on-demand use of FPGA chip resources; when the FPGA software needs to be frequently debugged on the board, it provides a one-key remote loading service for FPGA software for developers, improving the FPGA programming efficiency; it solves the problem that users need to upload configuration files and power off and restart operations multiple times when there are a large number of FPGA boards during product R & D, and realizes the fast and batch online loading of FPGA software. Description of the Drawings
[0015] Figure 1 is the composition diagram of the FPGA software online loading platform involved in the embodiment of the present invention. Detailed Embodiments
[0016] The following further describes the preferred mechanisms and implementation methods of the present invention in conjunction with the drawings and specific embodiments. Embodiment
[0017] As Figure 1 shown, the embodiment of the present invention discloses a technical solution of a method that can realize the online loading function of FPGA software. Figure 1 is the composition diagram of the FPGA software online loading platform involved in the embodiment of the present invention.
[0018] This embodiment is described based on the DBF information processing function of a certain type of radar, and this function is deployed on multiple FPGA chips in the system.
[0019] A method for realizing the online loading function of FPGA software, comprising the following steps: Step 1: After the DBF software development is completed, the developer standardizes and packages the generated software through the user interaction module and uploads it to the software repository; meanwhile, the developer can view the FPGA board information, FPGA chip configuration, and busy / idle status in the system; Wherein, one FPGA board includes one ZYNQ chip and several FPGA chips; The busy / idle status refers to whether the FPGA chip has been programmed. If it has been programmed, it is in the busy state; if it has not been programmed, it is in the idle state; Step 2: In the application deployment interface of the interaction 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-key deployment button. By calling the write interface of the message system module (2), the FPGA software loading information is written into the status storage module (3); Step 3: After the control and management module (4) monitors the FPGA software loading information through the information system module (2), it parses the deployment task of this time, decomposes the deployment task of this time into more detailed deployment events, and writes the generated message after parsing into the status storage module (3) through the message system module (2); Step 4: After the resource scheduling module (5) monitors the FPGA software deployment message generated by the control and management module (4) through the message system module (2), it parses and processes the message, and finds that this deployment is a specified deployment, and the FPGA board ID number and chip ID number for software programming have been set, so no dynamic scheduling is required. Update the deployment message to the scheduled state and write it into the status storage module (3) through the message system module (2); Step 5: After the slave node management module (6) monitors the message deployed on this 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 through FTP, and calls the FPGA software online configuration interface to complete the online loading of the FPGA software.
[0020] The user interaction module (1) is the entry for the user to use the FPGA software online loading platform, providing two ways: a graphical interface and a command-line tool, to display the FPGA board information and application programming information in the system. The module adopts a B / S architecture and is developed in a service-oriented manner, supporting cross-platform access.
[0021] The message system module (2), which is equivalent to a message middleware, provides a standardized operation interface for users. Other modules of the platform interact through this module to achieve decoupling between modules. Based on the message system module, users can perform operations on various types of messages of resources (such as FPGA node resources, FPGA application resources, etc.), including message publishing, message updating, message listening, etc.
[0022] The status storage module (3) is used for the persistent storage of information in the system. It is a lightweight database that provides interfaces for data addition, deletion, modification, query, listening, etc., and only interacts with the message system module. It records the status information of the entire FPGA cluster, including board information, FPGA chip information, bin file configuration information, etc.
[0023] 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, FPGA monitoring management, etc. It parses the user's FPGA software programming tasks, processes the node information reported by the FPGA board, etc., to make the entire platform in the state expected by the user.
[0024] The resource scheduling module (5) is responsible for allocating suitable FPGA chips for FPGA software programming. According to the software's requirements for FPGA chip manufacturers, models, resource scales, etc., it selects FPGA chips that meet the software loading indicators from the FPGA resource pool of the cluster in the order of pre-selection and optimal selection. Resource scheduling is divided into specified scheduling and dynamic scheduling. Specified scheduling is when the user specifies specific FPGA boards and chip IDs during software loading, and dynamic scheduling is when the platform makes dynamic selections according to requirements.
[0025] The slave node management module (6) resides on the ZYNQ chip of the FPGA board and is responsible for collecting board information, FPGA chip information, software status, etc., and reporting them to the platform through the message system module. At the same time, in response to commands such as software loading and board control issued by the user, it pulls the FPGA's bin file from the remote to the flash of this node and calls the FPGA software online configuration interface to complete the online loading of FPGA software.
[0026] The present invention provides a method for realizing the online loading function of FPGA software. Through a simple and easy-to-use human-machine interface, it realizes the batch distribution of FPGA software to multiple nodes in the system, and performs online configuration to complete the FPGA programming function, without operations such as shutting down, solving the problem of low user programming efficiency in the scenario of a large number of FPGA boards during product development.
[0027] Finally, it should be noted that the above are only the 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 perform equivalent replacements for some of the technical features. However, any modifications, equivalent replacements, improvements, etc. made within the spirit and principle of the present invention shall be included within the protection scope of the present invention.
Claims
1. A method for realizing the online loading function of FPGA software, characterized in that: The following steps are involved: Step 1: After the FPGA software development is completed, the FPGA software is standardized and packaged through the user interaction module and uploaded to the software warehouse, where the FPGA board information, FPGA chip configuration, and busy and idle status can be viewed and obtained; Step 2: The user clicks the deployment button provided by the interactive module in 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 management module monitors the FPGA software loading information through the information system module, it parses the deployment task, decomposes the deployment task into more detailed deployment events, and writes the message generated after parsing into the state storage module through the message system module; Step 4: After the resource scheduling module monitors the FPGA software deployment event parsed by the control management module through the message system module, it allocates the required FPGA chip for FPGA software burning 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 monitors the message deployed on the node through the message system module, it parses the message content, pulls the FPGA configuration file from the FPGA software application warehouse to the Flash of this node through the FTP protocol according to the path specified by the message, and calls the FPGA software online configuration interface to complete the online loading of the FPGA software.
2. The method for realizing the online loading function 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 two modes: a graphical interface and a command line tool to display FPGA board information and application burning information.
3. The method for realizing the online loading function of FPGA software according to claim 1, characterized in that: The user interaction module in step 1 adopts B / S architecture, is developed in a service-oriented manner, and supports cross-platform access.
4. The method for realizing the online loading function of FPGA software according to claim 1, characterized in that: The message system module in step 2 provides a standardized operation interface for users. The user interaction module, state storage module, control management module, resource scheduling module, and node management module all interact through the message system module to achieve decoupling between modules. Users can perform various resource operations through the information system module, including message publishing, message updating, and message monitoring.
5. The method for realizing the online loading function of FPGA software according to claim 1, characterized in that: The state storage module in step 3 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. The state storage module only interacts with the message system module for persistent storage of information.
6. The method for realizing the online loading function of FPGA software according to claim 1, characterized in that: The control management module in step 4 is used to control and manage the online loading of FPGA software, including FPGA software burning management, FPGA board configuration management, FPGA monitoring management, parsing the user's FPGA software burning tasks, and processing the node information reported by the FPGA board.
7. The method for realizing the online loading function of FPGA software according to claim 1, characterized in that: In step 5, the resource scheduling module uses a resource scheduling algorithm to select an FPGA chip that meets the software loading indicators from the cluster's FPGA resource pool based on the software's requirements for FPGA chip manufacturers, models, resource scale, etc.
8. The method for realizing the online loading function of FPGA software according to claim 7, characterized in that: The resource scheduling algorithm in step 5 is divided into designated scheduling and dynamic scheduling. The FPGA chip that meets the software loading index is selected from the FPGA resource pool of the cluster in the order of pre-selection and optimization; For designated scheduling, the user specifies the specific FPGA board ID and FPGA chip ID when loading the software, and for dynamic scheduling, the platform dynamically selects according to demand.
9. The method for realizing the online loading function 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; At the same time, in response to the software loading and FPGA board control commands issued by the user, the bin file is pulled from the FPGA software application warehouse to the Flash of this node through FTP, and the FPGA software online configuration interface is called 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
Visual general radar signal processing interaction system based on Qt
CN114325605A
Low-code informatization system and method and ARM server
CN114398177A
Virtualized FPGA cluster management scheduling system and method supporting large-scale application deployment
CN117472581A