CN114924808A - SRAM type FPGA on-orbit reliable loading method based on duplicate storage program - Google Patents

SRAM type FPGA on-orbit reliable loading method based on duplicate storage program Download PDF

Info

Publication number
CN114924808A
CN114924808A CN202210512827.5A CN202210512827A CN114924808A CN 114924808 A CN114924808 A CN 114924808A CN 202210512827 A CN202210512827 A CN 202210512827A CN 114924808 A CN114924808 A CN 114924808A
Authority
CN
China
Prior art keywords
fpga
configuration program
sram type
bin file
norflash
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
Application number
CN202210512827.5A
Other languages
Chinese (zh)
Other versions
CN114924808B (en
Inventor
潘虹臣
陈林
刘禹圻
余辉
姜博文
王遂生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 29 Research Institute
Original Assignee
CETC 29 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 29 Research Institute filed Critical CETC 29 Research Institute
Priority to CN202210512827.5A priority Critical patent/CN114924808B/en
Publication of CN114924808A publication Critical patent/CN114924808A/en
Application granted granted Critical
Publication of CN114924808B publication Critical patent/CN114924808B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

The invention discloses an on-orbit reliable loading method of an SRAM (static random Access memory) type FPGA (field programmable Gate array) based on a duplicate storage program, which comprises the following steps of: dividing a check unit in an FPGA configuration program bin file and inserting CRC (cyclic redundancy check) into the FPGA configuration program bin file; injecting the bin file of the FPGA configuration program added with the verification into different positions in NORFlash in two times; when the rail is powered on, the antifuse FPGA selects correct FPGA configuration program bin file data to load the SRAM type FPGA; after the SRAM type FPGA is successfully started, rewriting the Block with bit upset according to the checking condition in NORFlast. The invention realizes the loading of SRAM type FPGA through the double-copy program in NORFlash, and reduces the requirement on NORFlash capacity on the basis of ensuring the reliability; the method has an on-orbit error detection and update mechanism of the SRAM type FPGA configuration file, greatly reduces the probability that the same position of a duplicate program is knocked over by a single particle under the condition of long-time on-orbit working, and greatly improves the reliability of the SRAM type FPGA configuration program.

Description

SRAM type FPGA on-orbit reliable loading method based on duplicate storage program
Technical Field
The invention relates to the technical field of spacecrafts, in particular to an on-orbit reliable loading method of an SRAM (static random Access memory) type FPGA (field programmable Gate array) based on a duplicate storage program.
Background
SRAM type FPGAs have the advantage of repeated programming, requiring power up for loading configuration. In the on-orbit operation of the SRAM type FPGA, a chip and a configuration memory of the chip face the threat of a single event effect, particularly once a configuration program in the memory is subjected to single event upset, the FPGA cannot be loaded successfully, and if the upset configuration program cannot be recovered, catastrophic failure of extension set or system failure can be caused. The PROM with a high single event upset threshold value can effectively protect the configuration program, but the PROM has small capacity, and the memory capacity requirement can be met by multiple PROMs; and PROM can not be repeatedly erased and written, so FPGA loses on-track updating capability. The use of NORFlash as a configuration memory chip has the advantage of being rewritable, the configuration process can be reconfigured on-track, but the rollover threshold of NORFlash is relatively low. Usually, three NORFlash pieces are used for chip level three-mode design, or 3 programs are stored in a single chip to realize three-mode redundancy design. The former requires a large number of chips; the latter has a great demand for the NORFlash chip capacity when storing large-capacity configuration files, and the NORFlash with large capacity has a larger size and higher price, which results in the increase of the PCB layout difficulty and development cost.
Disclosure of Invention
In view of the above, the invention provides an on-orbit reliable loading method for an SRAM type FPGA based on a duplicate storage program, which realizes correct selection of an SRAM type FPGA loading file through two bin files with check information; after successful loading, the bin file in NORFlast is periodically checked, the data with bit upset is updated, and error data accumulation is avoided.
The invention discloses an on-orbit reliable loading method of an SRAM (static random Access memory) type FPGA (field programmable Gate array) based on a duplicate storage program, which comprises the following steps of:
step 1: dividing a check unit in an FPGA configuration program bin file and inserting CRC (cyclic redundancy check) into the FPGA configuration program bin file;
and 2, step: injecting the FPGA configuration program bin file added with the verification into different positions in NORFlash in two times;
and 3, step 3: when the rail is powered on, the antifuse FPGA selects correct FPGA configuration program bin file data to load the SRAM type FPGA;
and 4, step 4: after the SRAM type FPGA is successfully started, rewriting the Block with bit reversal according to the check condition in NORFlast.
Further, the step 1 specifically includes:
step 1-1: generating an FPGA configuration program bin file by using an FPGA development tool;
step 1-2: defining the size of a check unit to be N bytes according to the size of the NORFlast block; each NORFlast block comprises at least one check unit; each check unit consists of bin file data and CRC check bits;
step 1-3: each check unit sequentially takes out N-2 bytes of data from the first byte in the FPGA configuration program bin file, and if the tail is less than N-2 bytes, 0 to N-2 bytes are supplemented; and generates a CRC check value in each check unit according to the CRC16 check method, respectively.
Further, the step 2 specifically includes:
step 2-1: when an FPGA configuration program bin file added with verification is injected for the first time, a NORFlash has no configuration program and cannot be started, and a JTAG interface is used for downloading an FPGA program on line to enable the FPGA to work;
step 2-2: the external communication interface sends the same checked FPGA configuration program bin file into an SRAM type FPGA twice, and the SRAM type FPGA transmits the checked FPGA configuration program bin file after analyzing the communication protocol to the antifuse FPGA; and the anti-fuse FPGA writes the two FPGA configuration program bin files added with the verification into different positions in NORFlash respectively.
Further, the step 3 specifically includes:
step 3-1: when the rail is electrified, the antifuse FPGA first loads an SRAM type FPGA from a first FPGA configuration program bin file stored in NORFlash;
step 3-2: if the first bin file stored in NORFlash can not be loaded, the antifuse FPGA takes the second FPGA configuration program bin file stored in NORFlash to load the SRAM type FPGA;
step 3-3: and if the second FPGA configuration program bin file stored in the NORFlash can not be loaded, the antifuse FPGA selects correct FPGA configuration program bin file data from the two programs according to the sequence of the check units to load the SRAM type FPGA.
Further, the step 3-1 specifically includes:
step 3-1-1: when the power is on, the antifuse FPGA takes a first FPGA configuration program bin file stored in NORFlash, skips over check bits in each check unit, and directly transmits data to the SRAM type FPGA for loading;
step 3-1-2: and after the first FPGA configuration program bin file stored in the NORFlast is transmitted to the SRAM type FPGA, the anti-fuse FPGA judges whether the FPGA is loaded successfully or not through a done signal of the SRAM type FPGA.
Further, the step 3-2 specifically includes:
step 3-2-1: the antifuse FPGA takes a second FPGA configuration program bin file stored in NORFlash, skips over check bits in each check unit, and directly transmits data to the SRAM type FPGA for loading;
step 3-2-2: and after the second FPGA configuration program bin file stored in the NORFlast is transmitted to the SRAM type FPGA, the anti-fuse FPGA judges whether the FPGA is loaded successfully or not through a done signal of the SRAM type FPGA.
Further, the step 3-3 specifically includes:
step 3-3-1: the anti-fuse FPGA firstly takes a first check unit of a first FPGA configuration program bin file stored in NORFlast to carry out CRC check, and if the check is correct, data are transmitted to the SRAM type FPGA; if the verification is wrong, a first verification unit of a second FPGA configuration program bin file stored in NORFlast is taken for verification, and if the verification is correct, the data is transmitted to the SRAM type FPGA;
step 3-3-2: and (3) selecting correct data from each check unit in the two FPGA configuration program bin files by the antifuse FPGA according to the mode of the step 3-3-1 to load the SRAM type FPGA.
Further, the step 4 specifically includes:
step 4-1: after the digital circuit works normally, the antifuse FPGA periodically checks an FPGA configuration program bin file in NORFlash, and reports a Block number which is checked to be wrong to the SRAM type FPGA, and the SRAM type FPGA sends the serial number of the wrong NORFlash to a house keeping computer through an external communication interface and finally transmits the serial number to the ground through digital telemetering;
step 4-2: the ground can upload all correct checking units in the NORFlash block with the wrong checking to the satellite through the satellite-ground communication link, the SRAM type FPGA acquires the reinjected checking units through the external communication interface and sends the reinjected checking units to the antifuse FPGA, and the antifuse FPGA writes the checking units into the original position of the NORFlash and finally realizes the updating of error data.
Due to the adoption of the technical scheme, the invention has the following advantages: (1) the loading of the SRAM type FPGA is realized through the duplicate program in the NORFlash, and the requirement on the NORFlash capacity is reduced on the basis of ensuring the reliability; (2) the invention has the on-orbit error detection and update mechanism of the SRAM type FPGA configuration file, greatly reduces the probability of single-particle overturn of the same position of a duplicate program under the condition of long-time working on the orbit, and greatly improves the reliability of the SRAM type FPGA configuration program.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings required to be used in the description of the embodiments are briefly introduced below, and it is obvious that the drawings in the description below are only some embodiments described in the embodiments of the present invention, and it is obvious for those skilled in the art that other drawings may be obtained according to the drawings.
FIG. 1 is a schematic diagram of a flow chart of an on-track reliable loading method for an SRAM type FPGA based on a duplicate storage program according to an embodiment of the present invention;
FIG. 2 is a schematic diagram illustrating a partitioning manner of a verification unit according to an embodiment of the present invention;
FIG. 3 is a block diagram illustrating an SRAM-type FPGA configuration program according to an embodiment of the present invention;
fig. 4 is a schematic diagram of a method for selectively loading a file by an antifuse FPGA according to an embodiment of the present invention.
Detailed Description
The present invention will be further described with reference to the accompanying drawings and examples, it being understood that the examples described are only some of the examples and are not intended to limit the invention to the embodiments described herein. All other embodiments available to those of ordinary skill in the art are intended to be within the scope of the embodiments of the present invention.
The first embodiment is as follows:
referring to fig. 1, the present invention provides an embodiment of an SRAM type FPGA on-track reliable loading method based on duplicate storage programs, which includes the following steps:
step 1: and dividing a check unit in the FPGA configuration program bin file and inserting CRC check.
Step 1-1: and generating an FPGA configuration program bin file by using an FPGA development tool.
Step 1-2: according to the NORFlash Block (Block) size, a check unit size is defined as N bytes. One Block may contain one or more check units. NORFlash is usually operated by word, CRC16 check algorithm can be used, check bit is 2 bytes, and FPGA configurator bin file data which can be stored in a file in a check unit is N-2 bytes. And the data of the bin file of the FPGA configuration program and the CRC check bit jointly form a check unit.
Step 1-3: and each checking unit sequentially takes out N-2 bytes of data from the bin file from front to back, and if the tail is less than N-2 bytes, the data is supplemented by 0 to N-2 bytes. And generates a CRC check value in each check unit according to the CRC16 check method, respectively. The FPGA configurator bin file inserted with the check is shown in fig. 2.
Step 2: the bin file added to the check was injected in two different places in NORFlash.
Step 2-1: when the FPGA configuration program bin file added with the verification is injected for the first time, the NORFlash has no configuration program and cannot be started, and a JTAG interface is required to be used for downloading the FPGA program on line so that the FPGA works.
Step 2-2: and the external communication interface sends the same verified FPGA configuration program bin file to the SRAM type FPGA twice, and the SRAM type FPGA sends the verified FPGA configuration program bin file subjected to communication protocol analysis to the antifuse FPGA. And the antifuse FPGA writes two parts of the verified FPGA configuration program bin files into different positions in the NORFlash respectively.
And 3, step 3: when the on-rail power is on, the antifuse FPGA preferentially takes a first FPGA configuration program bin file to load the SRAM type FPGA.
Step 3-1: when the power is on, the antifuse FPGA takes the first bin file stored in NORFlast, skips over the check bit in each check unit, and directly sends data to the SRAM type FPGA for loading, as shown in a path a of FIG. 3. The basis of this step is: the occurrence of the single event is a small probability event, the turnover threshold of the Flash is high in the power-off state, and the configuration program in the NORFlash is not turned over in a large probability when the power is on the rail. The purpose of this step is: and (3) shortening the loading time of the SRAM type FPGA under normal conditions, wherein if the NORFlash needs to be read twice by adopting a mode of firstly verifying the first program and then loading, the time is 1 time longer than that of direct loading.
Step 3-2: after a first FPGA configuration program bin file stored in NORFlash is completely sent to the SRAM type FPGA, the antifuse FPGA judges whether the FPGA is loaded successfully or not through done signals of the SRAM type FPGA.
And 4, step 4: and if the first FPGA configuration program bin file stored in the NORFlash can not be loaded, the antifuse FPGA takes the second FPGA configuration program bin file to load the SRAM type FPGA.
Step 4-1: the antifuse FPGA takes the second FPGA configuration program bin file stored in NORFlash, skips over the check bit in each check unit, and directly sends the data to the SRAM type FPGA for loading, as shown in path b of fig. 3.
Step 4-2: and after the second FPGA configuration program bin file stored in the NORFlast is completely sent to the SRAM type FPGA, the antifuse FPGA judges whether the FPGA is loaded successfully or not according to done signals of the SRAM type FPGA.
And 5: and if the bin file of the second FPGA configuration program stored in the NORFlash can not be loaded, the anti-fuse FPGA selects correct bin file data from the two programs according to the sequence of the check units to load the SRAM type FPGA.
Step 5-1: the anti-fuse FPGA preferentially takes a first check unit of a first FPGA configuration program bin file for CRC check, and if the check is correct, the data are sent to the SRAM type FPGA; and if the verification is wrong, the first verification unit of the second bin file is taken for verification, and if the verification is correct, the data is sent to the SRAM type FPGA, which is shown in a path c of FIG. 3. The basis of this step is: the probability of single event occurrence is small, and the probability that the same check unit of different bin files in NORFlash is simultaneously knocked over by single particles is very small, so that the data of at least one check unit can be used for program loading, and the reliability is ensured.
Step 5-2: and (4) selecting correct data from each check unit in the two FPGA configuration program bin files by the antifuse FPGA according to the mode of the step 5-1 to load the SRAM type FPGA.
Step 6: after the SRAM type FPGA is successfully started, rewriting the Block with bit reversal according to the check condition in NORFlast.
Step 6-1: after the digital circuit works normally, the antifuse FPGA periodically checks an FPGA configuration program bin file in NORFlash, and reports the serial number of a Block with an error check to the SRAM type FPGA, and the SRAM type FPGA sends the number of the error Block to a house keeping computer through an external communication interface and finally transmits the number to the ground through digital telemetering.
Step 6-2: the ground can upload all correct check units in the Block numbers with the check errors to the satellite through the satellite-ground communication link, the SRAM type FPGA acquires the check units which are injected again through the external communication interface and sends the check units to the antifuse FPGA, and the antifuse FPGA writes the check units into the original position of NORFlash, so that the update of error data is realized newly.
Example two:
to facilitate understanding, a more specific embodiment of the invention is given:
the SRAM type FPGA of a certain circuit selects XC7K325T-2FFG900I, the antifuse FPGA selects A54SX72ACQ208B, and the NORFlash selects VDRF256M16RS54MS4V90 of 256 Mb. NORFlash with a K7 fpbin file of 11443612Byte, 256Mb can only store two programs at the most. The steps for loading the SRAM model by using the method are as follows:
firstly, dividing check units in bin files of K7FPGA, and inserting check polynomial G (x) x into every 65534Byte 16 +x 10 +x 2 +1 CRC16 checks, with 65536Byte (1 NORFlashBlock size) per check unit. The bin file after insertion checking has 175 checking units in total and the file size is 11468800 Byte.
And secondly, downloading the FPGA program on line by using a JTAG debugging interface, and respectively injecting the bin file inserted into the verification into different positions of NORFlash.
And thirdly, after the power is re-electrified, the antifuse FPGA preferentially takes a first FPGA configuration program bin file stored in NORFlast to load the SRAM type FPGA, and the first program is successfully started in about 4 seconds.
Fourthly, referring to fig. 4, if the first part of the FPGA configuration program bin file stored in the NORFlash cannot be loaded, the antifuse FPGA loads the SRAM type FPGA by using the second part of the FPGA configuration program bin file stored in the NORFlash. To simulate the process, the first Block of the first program was injected into the program to check for errors, and after re-powering up, the second program was successfully started in about 8 seconds.
And fifthly, if the second FPGA configuration program bin file stored in the NORFlash can not be loaded, the antifuse FPGA selects correct FPGA configuration program bin file data from the two programs stored in the NORFlash according to the sequence of the check units to load the SRAM type FPGA. In order to simulate the process, on the basis that the first Block data of the first FPGA configuration program bin file is wrong, the second Block of the second FPGA configuration program bin is injected with data for checking the error, and after the second FPGA configuration program bin is electrified again, the FPGA is started successfully after about 16 seconds.
And sixthly, after the SRAM type FPGA is successfully started, rewriting the Block with the bit upset according to the checking condition in NORFlast. And the SRAM type FPGA reports the positions of a first Block of a first bin file and a second Block of a second program which are checked to be wrong, and correct data are respectively written into the two blocks by utilizing an external communication interface of the SRAM type FPGA.
The measures can reduce the probability of incapability of loading caused by single event upset of the configuration program to 1/174 of the conventional single configuration file means, and greatly improve the reliability of program loading.
The implementation of the invention is described above by taking three devices of XC7K325T-2FFG900I, A54SX72ACQ208B and VDRF256M16RS54MS4V90 as examples, but the invention is also applicable to other devices of different types.
Finally, it should be noted that: although the present invention has been described in detail with reference to the above embodiments, it should be understood by those skilled in the art that: modifications and equivalents may be made to the embodiments of the invention without departing from the spirit and scope of the invention, which is to be covered by the claims.

Claims (8)

1. An on-orbit reliable loading method of an SRAM type FPGA based on a duplicate storage program is characterized by comprising the following steps:
step 1: dividing a check unit in an FPGA configuration program bin file and inserting CRC (cyclic redundancy check) check;
and 2, step: injecting the FPGA configuration program bin file added with the verification into different positions in NORFlash in two times;
and 3, step 3: when the rail is electrified, the antifuse FPGA selects correct FPGA configuration program bin file data to load the SRAM type FPGA;
and 4, step 4: after the SRAM type FPGA is successfully started, rewriting the Block with bit upset according to the checking condition in NORFlast.
2. The method according to claim 1, wherein step 1 specifically comprises:
step 1-1: generating bin files by using an FPGA development tool;
step 1-2: defining the size of a check unit as N bytes according to the size of the NORFlast block; each NORFlast block comprises at least one check unit; each check unit consists of bin file data and CRC check bits;
step 1-3: each check unit sequentially takes out N-2 bytes of data from the first byte in the bin file, and if the tail of the data is less than N-2 bytes, the data is supplemented by 0 to N-2 bytes; and generates a CRC check value in each check unit according to the CRC16 check method, respectively.
3. The method according to claim 1, wherein the step 2 specifically comprises:
step 2-1: when an FPGA configuration program bin file added with verification is injected for the first time, a NORFlash has no configuration program and cannot be started, and a JTAG interface is used for downloading an FPGA program on line to enable the FPGA to work;
step 2-2: the external communication interface sends the same checked FPGA configuration program bin file into an SRAM type FPGA twice, and the SRAM type FPGA transmits the checked FPGA configuration program bin file after analyzing the communication protocol to the antifuse FPGA; and the antifuse FPGA writes two parts of the verified FPGA configuration program bin files into different positions in the NORFlash respectively.
4. The method according to claim 1, wherein step 3 specifically comprises:
step 3-1: when the rail is electrified, the antifuse FPGA firstly takes a first FPGA configuration program bin file stored in NORFlash to load an SRAM type FPGA;
step 3-2: if the first part of FPGA configuration program bin file stored in NORFlash can not be loaded, the antifuse FPGA takes the second part of FPGA configuration program bin file stored in NORFlash to load the SRAM type FPGA;
step 3-3: and if the second part of FPGA configuration program bin file stored in the NORFlast can not be loaded, the antifuse FPGA selects correct FPGA configuration program bin file data from the two parts of programs according to the sequence of the check units to load the SRAM type FPGA.
5. The method according to claim 4, wherein the step 3-1 specifically comprises:
step 3-1-1: when the power is on, the antifuse FPGA takes a first FPGA configuration program bin file stored in NORFlash, skips over check bits in each check unit, and directly transmits data to the SRAM type FPGA for loading;
step 3-1-2: and after the first FPGA configuration program bin file stored in the NORFlash is transmitted to the SRAM type FPGA, the antifuse FPGA judges whether the FPGA is loaded successfully or not according to a done signal of the SRAM type FPGA.
6. The method according to claim 5, wherein the step 3-2 specifically comprises:
step 3-2-1: the anti-fuse FPGA takes a second FPGA configuration program bin file stored in NORFlast, skips over check bits in each check unit, and directly transmits data to the SRAM type FPGA for loading;
step 3-2-2: and after the second FPGA configuration program bin file stored in the NORFlast is transmitted to the SRAM type FPGA, the anti-fuse FPGA judges whether the FPGA is loaded successfully or not through a done signal of the SRAM type FPGA.
7. The method according to claim 6, wherein said step 3-3 comprises in particular:
step 3-3-1: the anti-fuse FPGA firstly takes a first check unit of a first FPGA configuration program bin file stored in NORFlash to carry out CRC check, and if the check is correct, data are transmitted to the SRAM type FPGA; if the verification is wrong, a first verification unit of a second FPGA configuration program bin file stored in NORFlast is taken for verification, and if the verification is correct, the data is transmitted to the SRAM type FPGA;
step 3-3-2: and (4) selecting correct data from each check unit in the two FPGA configuration program bin files by the antifuse FPGA according to the mode of the step 3-3-1 and loading the correct data into the SRAM type FPGA.
8. The method according to claim 1, wherein the step 4 specifically comprises:
step 4-1: after the digital circuit works normally, the antifuse FPGA periodically checks an FPGA configuration program bin file in NORFlash, and reports a Block number which is checked to be wrong to the SRAM type FPGA, and the SRAM type FPGA sends the serial number of the wrong NORFlash to a house keeping computer through an external communication interface and finally transmits the serial number to the ground through digital telemetering;
step 4-2: the ground can upload all correct checking units in the NORFlash block with the wrong checking to the satellite through the satellite-ground communication link, the SRAM type FPGA acquires the reinjected checking units through the external communication interface and sends the reinjected checking units to the antifuse FPGA, and the antifuse FPGA writes the checking units into the original position of the NORFlash and finally realizes the updating of error data.
CN202210512827.5A 2022-05-12 2022-05-12 SRAM type FPGA on-orbit reliable loading method based on double storage programs Active CN114924808B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210512827.5A CN114924808B (en) 2022-05-12 2022-05-12 SRAM type FPGA on-orbit reliable loading method based on double storage programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210512827.5A CN114924808B (en) 2022-05-12 2022-05-12 SRAM type FPGA on-orbit reliable loading method based on double storage programs

Publications (2)

Publication Number Publication Date
CN114924808A true CN114924808A (en) 2022-08-19
CN114924808B CN114924808B (en) 2023-03-14

Family

ID=82809463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210512827.5A Active CN114924808B (en) 2022-05-12 2022-05-12 SRAM type FPGA on-orbit reliable loading method based on double storage programs

Country Status (1)

Country Link
CN (1) CN114924808B (en)

Citations (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120040662A1 (en) * 2010-08-12 2012-02-16 At&T Intellectual Property I, L.P. Redirecting handovers in lte networks
CN102736938A (en) * 2012-06-18 2012-10-17 中国电子科技集团公司第十研究所 Burning method of FPGA (Field Programmable Gate Array) configuration program
US20130027081A1 (en) * 2011-07-29 2013-01-31 Crossbar, Inc. Field programmable gate array utilizing two-terminal non-volatile memory
US20140047275A1 (en) * 2012-08-08 2014-02-13 Deja Vu Security, Llc Flow based fault testing
US20140089806A1 (en) * 2012-09-25 2014-03-27 John C. Weast Techniques for enhanced content seek
CN103971732A (en) * 2014-04-30 2014-08-06 浙江大学 Method and system for monitoring single event upset effect of FPGA (field programmable gate array) and correcting reloading
US20140312931A1 (en) * 2013-04-22 2014-10-23 Ciena Corporation System and method for stationary finite impulse response filters in programmable microelectronic circuits
CN104484214A (en) * 2014-12-30 2015-04-01 华中科技大学 Configuration, refreshing and program upgrading integrated system for SRAM (Static Random Access Memory) type FPGA (Field Programmable Gate Array)
CN106201590A (en) * 2016-06-29 2016-12-07 瑞斯康达科技发展股份有限公司 A kind of FPGA configuration file loading method and system
CN106293991A (en) * 2016-08-10 2017-01-04 上海无线电设备研究所 FPGA anti-single particle based on ECC upset fast refresh circuitry and method
CN107255975A (en) * 2017-07-21 2017-10-17 中国电子科技集团公司第二十九研究所 A kind of utilization high-speed bus realizes the device and method that FPGA programs are quickly loaded
CN107450948A (en) * 2017-07-28 2017-12-08 西安电子科技大学 A kind of FPGA adaptive allocation method and system of low-power consumption
CN107463341A (en) * 2017-08-25 2017-12-12 上海闻泰电子科技有限公司 Method for deleting, device and the mobile terminal of FLASH chip
CN107479913A (en) * 2017-07-27 2017-12-15 中国船舶重工集团公司第七二四研究所 A kind of FPGA configurations low-resources that start take update method and implement system more
CN107562504A (en) * 2017-09-11 2018-01-09 哈尔滨工程大学 A kind of serial port implementing method of DSP program segmentings loading
CN107621943A (en) * 2017-08-18 2018-01-23 上海无线电设备研究所 A kind of FPGA dynamic batch programming system and method
CN207440771U (en) * 2017-10-25 2018-06-01 湖南斯北图科技有限公司 A kind of SRAM type FPGA radiation hardening circuits based on external memory and ICAP mouthfuls
CN108196890A (en) * 2017-12-24 2018-06-22 北京卫星信息工程研究所 The method of in-orbit mix-loaded FPGA and CPU
US20180285192A1 (en) * 2016-06-23 2018-10-04 Los Alamos National Security, Llc Low cost, hardened single board computer for command and data handling
CN108629206A (en) * 2017-12-13 2018-10-09 百富计算机技术(深圳)有限公司 A kind of safe encryption method, encryption equipment and terminal device
CN108875369A (en) * 2017-05-15 2018-11-23 中国移动通信有限公司研究院 A kind of control stream integrity checking method, device and computer storage medium
CN108989212A (en) * 2017-05-31 2018-12-11 瞻博网络公司 The Routing Protocol signaling and its relationship of multiple next-hops
CN109144932A (en) * 2018-08-03 2019-01-04 中国航空工业集团公司雷华电子技术研究所 A kind of device and method of the quick dynamic configuration FPGA based on DSP
US20190051641A1 (en) * 2017-08-08 2019-02-14 iCometrue Company Ltd. Logic drive based on standardized commodity programmable logic semiconductor ic chips
CN109451875A (en) * 2017-12-22 2019-03-08 北京小米移动软件有限公司 Method, base station, terminal and the system of data are transmitted under semi-persistent scheduling mode
CN109542532A (en) * 2018-10-29 2019-03-29 中国科学院西安光学精密机械研究所 A method of chip, which is configured, from FPGA carries out program load to single-chip microcontroller
CN109947608A (en) * 2019-03-06 2019-06-28 清华大学 A kind of FPGA add tree single-particle inversion fault detection method and device
CN110023912A (en) * 2016-12-02 2019-07-16 国际商业机器公司 The asynchronous local and remote consistent time point snap copy of generation
CN110427222A (en) * 2019-06-24 2019-11-08 北京达佳互联信息技术有限公司 Data load method, device, electronic equipment and storage medium
CN110738317A (en) * 2019-10-17 2020-01-31 中国科学院上海高等研究院 FPGA-based deformable convolution network operation method, device and system
CN110753106A (en) * 2019-10-17 2020-02-04 杭州涂鸦信息技术有限公司 File uploading method and device and electronic equipment
CN110941506A (en) * 2019-10-28 2020-03-31 南京理工大学 SEU-resistant configuration file storage system and storage method thereof
CN111176908A (en) * 2019-12-11 2020-05-19 北京遥测技术研究所 Program on-orbit loading and refreshing method based on triple modular redundancy
CN111611201A (en) * 2020-06-24 2020-09-01 中国人民解放军国防科技大学 Refresh self-adaptive continuous high-leanable-rail FPGA reconstruction system and method
CN112540767A (en) * 2020-12-25 2021-03-23 北京百度网讯科技有限公司 Program code generation method, program code generation device, electronic device and storage medium
CN113608720A (en) * 2021-07-23 2021-11-05 中国电子科技集团公司第三十研究所 Satellite-borne data processing system and method resistant to single event upset
CN113918386A (en) * 2021-10-25 2022-01-11 北京理工雷科电子信息技术有限公司 Autonomous fault tolerance and fault recovery method for on-orbit processing system

Patent Citations (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120040662A1 (en) * 2010-08-12 2012-02-16 At&T Intellectual Property I, L.P. Redirecting handovers in lte networks
US20130027081A1 (en) * 2011-07-29 2013-01-31 Crossbar, Inc. Field programmable gate array utilizing two-terminal non-volatile memory
CN102736938A (en) * 2012-06-18 2012-10-17 中国电子科技集团公司第十研究所 Burning method of FPGA (Field Programmable Gate Array) configuration program
US20140047275A1 (en) * 2012-08-08 2014-02-13 Deja Vu Security, Llc Flow based fault testing
US20140089806A1 (en) * 2012-09-25 2014-03-27 John C. Weast Techniques for enhanced content seek
US20140312931A1 (en) * 2013-04-22 2014-10-23 Ciena Corporation System and method for stationary finite impulse response filters in programmable microelectronic circuits
CN103971732A (en) * 2014-04-30 2014-08-06 浙江大学 Method and system for monitoring single event upset effect of FPGA (field programmable gate array) and correcting reloading
CN104484214A (en) * 2014-12-30 2015-04-01 华中科技大学 Configuration, refreshing and program upgrading integrated system for SRAM (Static Random Access Memory) type FPGA (Field Programmable Gate Array)
US20180285192A1 (en) * 2016-06-23 2018-10-04 Los Alamos National Security, Llc Low cost, hardened single board computer for command and data handling
CN106201590A (en) * 2016-06-29 2016-12-07 瑞斯康达科技发展股份有限公司 A kind of FPGA configuration file loading method and system
CN106293991A (en) * 2016-08-10 2017-01-04 上海无线电设备研究所 FPGA anti-single particle based on ECC upset fast refresh circuitry and method
CN110023912A (en) * 2016-12-02 2019-07-16 国际商业机器公司 The asynchronous local and remote consistent time point snap copy of generation
CN108875369A (en) * 2017-05-15 2018-11-23 中国移动通信有限公司研究院 A kind of control stream integrity checking method, device and computer storage medium
CN108989212A (en) * 2017-05-31 2018-12-11 瞻博网络公司 The Routing Protocol signaling and its relationship of multiple next-hops
CN107255975A (en) * 2017-07-21 2017-10-17 中国电子科技集团公司第二十九研究所 A kind of utilization high-speed bus realizes the device and method that FPGA programs are quickly loaded
CN107479913A (en) * 2017-07-27 2017-12-15 中国船舶重工集团公司第七二四研究所 A kind of FPGA configurations low-resources that start take update method and implement system more
CN107450948A (en) * 2017-07-28 2017-12-08 西安电子科技大学 A kind of FPGA adaptive allocation method and system of low-power consumption
US20190051641A1 (en) * 2017-08-08 2019-02-14 iCometrue Company Ltd. Logic drive based on standardized commodity programmable logic semiconductor ic chips
CN107621943A (en) * 2017-08-18 2018-01-23 上海无线电设备研究所 A kind of FPGA dynamic batch programming system and method
CN107463341A (en) * 2017-08-25 2017-12-12 上海闻泰电子科技有限公司 Method for deleting, device and the mobile terminal of FLASH chip
CN107562504A (en) * 2017-09-11 2018-01-09 哈尔滨工程大学 A kind of serial port implementing method of DSP program segmentings loading
CN207440771U (en) * 2017-10-25 2018-06-01 湖南斯北图科技有限公司 A kind of SRAM type FPGA radiation hardening circuits based on external memory and ICAP mouthfuls
CN108629206A (en) * 2017-12-13 2018-10-09 百富计算机技术(深圳)有限公司 A kind of safe encryption method, encryption equipment and terminal device
CN109451875A (en) * 2017-12-22 2019-03-08 北京小米移动软件有限公司 Method, base station, terminal and the system of data are transmitted under semi-persistent scheduling mode
CN108196890A (en) * 2017-12-24 2018-06-22 北京卫星信息工程研究所 The method of in-orbit mix-loaded FPGA and CPU
CN109144932A (en) * 2018-08-03 2019-01-04 中国航空工业集团公司雷华电子技术研究所 A kind of device and method of the quick dynamic configuration FPGA based on DSP
CN109542532A (en) * 2018-10-29 2019-03-29 中国科学院西安光学精密机械研究所 A method of chip, which is configured, from FPGA carries out program load to single-chip microcontroller
CN109947608A (en) * 2019-03-06 2019-06-28 清华大学 A kind of FPGA add tree single-particle inversion fault detection method and device
CN110427222A (en) * 2019-06-24 2019-11-08 北京达佳互联信息技术有限公司 Data load method, device, electronic equipment and storage medium
CN110738317A (en) * 2019-10-17 2020-01-31 中国科学院上海高等研究院 FPGA-based deformable convolution network operation method, device and system
CN110753106A (en) * 2019-10-17 2020-02-04 杭州涂鸦信息技术有限公司 File uploading method and device and electronic equipment
CN110941506A (en) * 2019-10-28 2020-03-31 南京理工大学 SEU-resistant configuration file storage system and storage method thereof
CN111176908A (en) * 2019-12-11 2020-05-19 北京遥测技术研究所 Program on-orbit loading and refreshing method based on triple modular redundancy
CN111611201A (en) * 2020-06-24 2020-09-01 中国人民解放军国防科技大学 Refresh self-adaptive continuous high-leanable-rail FPGA reconstruction system and method
CN112540767A (en) * 2020-12-25 2021-03-23 北京百度网讯科技有限公司 Program code generation method, program code generation device, electronic device and storage medium
CN113608720A (en) * 2021-07-23 2021-11-05 中国电子科技集团公司第三十研究所 Satellite-borne data processing system and method resistant to single event upset
CN113918386A (en) * 2021-10-25 2022-01-11 北京理工雷科电子信息技术有限公司 Autonomous fault tolerance and fault recovery method for on-orbit processing system

Also Published As

Publication number Publication date
CN114924808B (en) 2023-03-14

Similar Documents

Publication Publication Date Title
CN111142962B (en) On-orbit reconstruction method and system of satellite-borne FPGA
CN107957972B (en) FPGA-based on-orbit reconstruction system and method
CN109783434B (en) Low-cost high-reliability satellite-borne single-machine multi-chip SRAM type FPGA on-track reconstruction system and method
CN108446189B (en) Satellite-borne embedded software fault-tolerant starting system and method
US6625061B2 (en) Method of managing a defect in a flash memory
US8266390B2 (en) System and method for providing one-time programmable memory with fault tolerance
CN110555237B (en) FPGA on-orbit dynamic reconfigurable method
CN107885614A (en) A kind of data processing method and data processing equipment based on memory
CN102347083A (en) Safe memory storage by internal operation verification
CN107220097B (en) On-orbit programming and overloading method for large-scale complex structure software
CN112181304B (en) Satellite-borne NAND Flash storage management system
CN109491707A (en) A kind of in-orbit reconstruct of DSP program and maintaining method
CN109614122B (en) Satellite-borne multiprocessor software on-orbit programming system and design method thereof
CN105005453A (en) Bad block management system for satellite-based NAND FLASH solid memory
US10514980B2 (en) Encoding method and memory storage apparatus using the same
CN113608720B (en) Single event upset resistant satellite-borne data processing system and method
US8438327B2 (en) Recovery scheme for an emulated memory system
US7181655B2 (en) Method and circuit arrangement for memory error processing
CN114924808B (en) SRAM type FPGA on-orbit reliable loading method based on double storage programs
CN207440771U (en) A kind of SRAM type FPGA radiation hardening circuits based on external memory and ICAP mouthfuls
EP0926687B1 (en) Self-test and correction of loss of charge errors in a flash memory, erasable and programmable by sectors thereof
CN110941506A (en) SEU-resistant configuration file storage system and storage method thereof
CN113380294A (en) Single event upset resistant circuit and method for FLASH chip configured by FPGA
CN111857884B (en) High-reliability satellite-borne software starting system and method
CN111930393B (en) On-orbit programming system, method and circuit for satellite-borne software

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