CN1983180A - System and method for upgrading bit files for a field programmable gate array - Google Patents

System and method for upgrading bit files for a field programmable gate array Download PDF

Info

Publication number
CN1983180A
CN1983180A CN 200610077812 CN200610077812A CN1983180A CN 1983180 A CN1983180 A CN 1983180A CN 200610077812 CN200610077812 CN 200610077812 CN 200610077812 A CN200610077812 A CN 200610077812A CN 1983180 A CN1983180 A CN 1983180A
Authority
CN
China
Prior art keywords
fpga
flash memory
version
file
upgrading
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
CN 200610077812
Other languages
Chinese (zh)
Other versions
CN100483348C (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.)
O2Micro Inc
Original Assignee
O2Micro Inc
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 O2Micro Inc filed Critical O2Micro Inc
Publication of CN1983180A publication Critical patent/CN1983180A/en
Application granted granted Critical
Publication of CN100483348C publication Critical patent/CN100483348C/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The invention provides a system for upgrading bit files for a Field Programmable Gate Array (FPGA) which includes a FPGA, a flash memory and a Complex Programmable Logic Device (CPLD). The flash memory includes a first section configured to store a working version of bit files for the FPGA and a second section configured to store a backup version of bit files for the FPGA. The CPLD is coupled to the flash memory and the FPGA, and is configured to download bit files from the flash memory to the FPGA to provide the FPGA with functionality. The CPLD also communicates with a CPU via a PCI bus to upgrade bit files in the flash memory and denote the CPU bit files which version is dowonloaded to the FPGA. The system has high stability and is economical. The invention also provides an operating method for upgrading the FPGA.

Description

A kind of system and method that is used for the field programmable gate array upgrading bit files
The application has required the right of priority of U.S. Provisional Patent Application, the sequence number of this application is 60/676,452, title is " a kind of firm and scheme economy that is used for the field programmable gate array upgrading bit files ", submitting day to is on April 29th, 2005, and be transferred to assignee of the present invention, its full content is comprised in this as a reference.
Technical field
The present invention relates to a kind of FPGA (field programmable gate array), relate in particular to a kind of system and method for the FPGA of being used for upgrading.
Background technology
Firewall product Marrix9 has the network security plate of NSB by name.NSB FPGA (field programmable gate array) chip structure.When the new characteristic of customer requirement or new defective were found, systemic-function need be upgraded.
FPGA is a kind of chip that will lose function when it is disconnected power supply.Therefore generally after energising, FPGA must programme so that it has certain function by EEPROM (electrically programmable erasable read-only memory).EEPROM comprises provides FPGA functional file.By upgrading institute rheme file, can realize the upgrading of FPGA.
Big FPGA, such as the VirtexII6000 of XILINX, the position file is also very big, so be not suitable for using the EEPROM of single chip.Thereby, use a plurality of EEPROM to be used for storing huge like this position file usually.Yet a large amount of EEPROM will occupy important printed circuit board space, will reduce the reliability of printed circuit board (PCB) to a certain extent.For addressing this problem, a kind of way of routine be in conjunction with CPLD (complicated programmable logic device (PLD)) and flash memory realizing the function of special-purpose EEPROM, and utilize flash memory storage position file.CPLD communicates by letter with the position file in the upgrading flash memory and downloads the position file and give FPGA so that the FPGA with described function to be provided with CPU.By this method, usually, always exist one very high reliability the channel that is used for software with the position file be written to flash memory.The GPIO (general input and output) that example is a central processing unit.
Yet some systems do not comprise the GPIO channel.For example some systems use PCI (peripheral cell interconnection) interfaces communicating by letter with CPU, but this pci interface is realized by FPGA.As a result, if by the file failure of pci interface upgrading position, these systems will lose whole functions and the ability that is not repaired.
Therefore, need one of development to be used for the firm and economic scheme of FPGA upgrading.
Summary of the invention
A kind of system of the FPGA of being used for upgrading is provided to provide according to one of purpose of the present invention.This system comprises FPGA, the used version of storage FPGA position file and the flash memory of backup version, and be configured to and from flash memory, download the CPLD of position file to FPGA.Described CPLD is further configured to communicating by letter with CPU, and with the position file in the upgrading flash memory, and which version of the position file of indication CPU in FPGA activates.
A kind of method of operating of the FPGA of being used for upgrading is provided to provide according to two of purpose of the present invention.This method of operating is included in the position file of storage two copies in the flash memory, and it comprises spendable version and backup version, and the spendable version of downloading the position file is to described FPGA, and the described spendable version that is stored in the flash memory of upgrading.Described method comprises the described backup version that is stored in the flash memory of upgrading further.Described method further comprises two version numbers that relatively read from pci bus and flash memory, if two numbers couplings are determined to upgrade successfully.
Description of drawings
Shown in Figure 1 is the block scheme that is used for the system of FPGA upgrading according to one embodiment of present invention.
Shown in Figure 2 is the flowchart of CPLD according to an embodiment of the invention.
Shown in Figure 3 is the flowchart of CPU according to an embodiment of the invention.
Shown in Figure 4 is the block diagram of CPLD state machine according to an embodiment of the invention.
Embodiment
Now will be in conjunction with the accompanying drawings, describe the most preferred embodiment that is used for the system and method for FPGA upgrading of the present invention in detail.Although the present invention will be described together with most preferred embodiment, but be to be understood that the present invention is not limited to these embodiment, on the contrary, the present invention is used for covering alternatives, distortion and equivalent, and it may be included in as within the defined the spirit and scope of the present invention of claim.
Embodiments of the invention are realized with the software that operates on the computer system.For example, computer system is personal computer, notebook, server computer, main frame, or the network equipment such as switch, router, network control computing machine, network computer or the like.This software is installed on the electronic equipment, in order to the usage license of electron gain equipment.In one embodiment, computer system comprises processor that is coupled with bus and the memory storage that is coupled with bus.Described memory storage can be volatibility or non-volatile, and can comprise movably storage medium.Computing machine can also comprise monitor, be used for the device of data I/O etc.
Following detailed description part will be in conjunction with program, step, logic diagram, flow process, and can come illustrated together at some symbols of the operation on the data bit of carrying out on the computer-readable storage medium in order to expression.These explanations and statement are the employed methods of the those of ordinary skill in the data processing field, the purport of invention can be conveyed to effectively other those of ordinary skill in this area by those personnel.Program, computer executed step, logic diagram, flow process etc., normally, being envisioned for is to cause the step of expected result or the self-congruent sequence of instruction.Described step is those desired physical operationss that reach quality standards.Usually, this tittle is taked but is not limited to be stored, transmits, merges, compares, and the form of other electric signal operated in computer system or magnetic signal.The fact is verified, in order to meet usage, and sometimes can be easily as position, value, element, symbol, character, term, numeral etc. by these signals.
Yet, should consider that all these are all relevant with its physical quantity corresponding with similar term and only be the label easily that is applied to those physical quantitys.Unless especially the explanation as visible from following narration, for understanding needs of the present invention, run through in the literary composition such as " storage ", " download ", " upgrading ", " check ", and term such as " comparison ", " determining ", all refer to computer system, or similarly comprise the operation and the processing procedure of the computing electronics of embedded system.What (electronics) amount data that operation of described embedded system and map table are shown the physics in the RS of computer system became other is expressed as this information stores of computer system memory or register or other, the data of the physical quantity that transmission or display device are interior equally.
Therefore, the present invention discloses a kind of system and method for the FPGA of being used for upgrading by a plurality of embodiment.Embodiments of the invention provide one to be used for the mutual firm channel of CPLD and CPU with upgrading FPGA.Other embodiment provides a kind of and has only used four pins to reduce pin number in communication channel, to realize the comparatively economic scheme of FPGA upgrading.
Fig. 1 illustrates a system 100 that is used for FPGA (field programmable gate array) upgrading.According to this embodiment, described system 100 comprises FPGA130.Described system also comprises the flash memory 110 that is configured to store FPGA position file.The position file is in order to be characterized by the designed function of FPGA.Described system 100 also comprises CPLD (complicated programmable logic device (PLD)) 120, its from flash memory 110, downloads a file to FPGA130 so that FPGA has the function of design.CPLD120 also is responsible for communicating with CPU, and with upgrading position file, and the position file of which version of indication CPU in FPGA activates.
Be used for the firm channel that CPLD120 communicates by letter with CPU in order to construct one, flash memory 110 is configured to two sectors.One sector is known as work storehouse 111, and another sector is known as backup library 112.The position file of FPGA identical version should be stored in these two storehouses.The version that is stored in the work storehouse 111 is taken as spendable position file, and the version that is stored in the backup library 112 is taken as backup position file.The position file provides the function that designs for FPGA.For the FPGA130 function of upgrading, the position file will be upgraded in flash memory 110.
According to an embodiment, work storehouse or backup library can be selected as the object of upgrading.For example, upgrade job storehouse 111 can change or increase the function of FPGA, and upgrading backup library 112 can keep backing up the renewal of a file.Backup library 112 only just can be upgraded after the upgrading in work storehouse 111 is verified as effectively.
Present embodiment selected only the upgrade job storehouse 111 or the backup library 112 of only upgrading.Whenever, have only a storehouse to upgrade, even therefore still there is another effective storehouse in this upgrading failure so that FPGA130 can use.This just makes the field repair in later stage or upgrading become possibility.This pair of storehouse pattern guaranteed that system 100 can not completely lose function, therefore, increased the reliability of this system 100.
In this embodiment, CPLD120 is as a center control element.Because CPLD and FPGA130 coupling, and all connections all in single minimizing realize on the printed circuit board (PCB) of lead and connector, so interference is controlled in the acceptable degree.By using transmission mechanism in the band on the CPLD pin, embodiments of the invention only use four pins can construct communication channel between CPLD120 and the FPGA130.
In this embodiment, CPLD120 has realized 3 input signals, and it can comprise following: CPLD_CCLK121, as the clock signal that is used for CPLD to latch CPLD_DIN and CPLD_PROG; CPLD_DIN122, it is used for transmitting position file data and cpu command; And CPLD_PROG123, as the order permission latch signal of a series of parallel circuits.According to this embodiment, CPLD realizes output signal a: CPLD_BUSY124.When CPU is upgrading flash memory, the busy condition of output signal indication flash memory, when CPU did other operation or free time, output signal indication CPU activated at which storehouse in FPGA130.
According to an embodiment, by carrying out the coding mechanism in the band, CPLD_DIN122 can support to come from many orders of CPU, has reduced the CPLD pin like this.In this embodiment, following coding makes CPLD_DIN122 support to come from many orders of CPU: " 4 ' b1010 " makes CPLD_DIN support to come from " from 214 guiding of work storehouse " order of CPU; " 4 ' b1011 " makes CPLD_DIN support to come from " guiding from backup library 216 " order of CPU; " 4 ' b0110 " makes CPLD_DIN support to come from " upgrade job storehouse 218 " order of CPU; " 4 ' b0111 " makes CPLD_DIN support to come from " upgrading backup library 222 " order of CPU.
In the present embodiment, CPLD has realized output signal a: CPLD_BUSY124.The CPLD_BUSY124 signal can be realized two functions.First function of CPLD_BUSY is the busy condition with indication CPU flash memory 110 when the position file is just upgraded in flash memory 110.In other words, this signal is as the current control between CPU and the flash memory.Second function of CPLD_BUSY124 will indicate CPU after CPLD end download position file is in FPGA130, and the position file in which storehouse activates in FPGA.When being written to the position file in the flash memory, CPU definition CPLD_BUSY124 is the busy condition of flash memory.When CPU does other operation or when idle, CPLD_BUSY124 represents the work storehouse, can indicate CPU position file in which storehouse in FPGA to activate like this.
Firm energising, or after power supply was restarted, the FPGA130 logic just will be removed during initial phase automatically.In this embodiment, FPGA carries out three input signals, and it comprises following: FPGA_CLK131 is the configurable clock generator input signal that is used by the internal configurations logic; FPGA_DIN132; And FPGA_PROG133, replacement internal configurations logic and reinitialize the internal configurations storer.
In this embodiment, FPGA realizes two output signals, and it comprises following: FPGA_DONE134 and FPGA_INIT135.The FPGA_DONE134 signal is indicated finishing of configuration and is set to low in wiping processing procedure.FPGA_INIT135 signal indication is just in erase process or misprogrammed.The FPGA_INIT signal is maintained low to be programmed with indication FPGA etc. after wiping.Can the value of writing with drive output signal, and can be from input signal the value of reading back.CPU can be via these signals of special register inlet visit.System software will be given an order to communicate by letter with CPLD via the inlet of special register as described above.
Fig. 2 for example understands the process flow diagram of the embodiment that CPLD carries out.If the firm energising of FPGA equipment, or after power supply is restarted, just be configured, configuration logic will be removed during this initialization time automatically.Therefore after step 202. energising, execution in step 204.CPLD120 will download work warehouse compartment file to FPGA.Carry out step 206.CPLD then and will check this operation success or not.If this is downloaded successfully, the order of execution in step 212.CPLD120 waiting for CPU.If will forwarding to, this failed download, execution in step 208.CPLD download backup warehouse compartment file to FPGA.If download from backup library successfully, execution in step 212.CPLD120 will forward the waiting for CPU order to.If necessarily there are some mistakes in failed download from backup library, then execution in step 211.CPLD sends error reporting to CPU.
According to this embodiment, make the decision that whether from the work storehouse, guides in step 214, if user's input " be ", execution in step 204.CPLD will download work warehouse compartment file to FPGA.On the other hand, make the whether decision from guiding in step 216 from backup library.Guide from backup library if the user is selected, execution in step 208.CPLD will download backup warehouse compartment file to FPGA.In step 218, whether CPU will ask the upgrade job storehouse.If the user selectes the upgrade job storehouse, CPLD120 will wipe work warehouse compartment file and new position file will be written in the work storehouse, as the upgrade job of the step 220. among Fig. 2 storehouse.
If the user selects not upgrade job storehouse, execution in step 222.CPU request whether upgrading backup library.If the selected upgrading of user backup library, CPLD120 will be wiped backup warehouse compartment file and write new position file, as the upgrading of the step 224. among Fig. 2 backup library.If the user selects not upgrade backup library, then be back to step 212, promptly CPLD will turn back to the waiting for CPU order.
Therefore, guide from the work storehouse if the user is selected once more during in execution in step 214 after work qurush level finishes, the warehouse compartment file of working will be re-loaded to FPGA.If the FPGA function has changed, upgrading just is proved to be success.
Fig. 3 for example understands from the process flow diagram of the embodiment of CPU side FPGA upgrading execution.CPU communicates by letter with CPLD120 to allow customer upgrade position file.CPU also communicates by letter with CPLD to allow user which storehouse of selecting to upgrade.And CPU communicates by letter with CPLD to check described upgrading further.
In this embodiment, after step 301.FPGA upgrading beginning, continue step 302.CPU and ask whether to check and open file.If user's input " deny ", leap to step 330.CPU and will forward FPGA upgrading end to.If user's input " be ", execution in step 303.CPU is with the mark start time, and execution in step 304.CPU will read pci data and it will be written in the flash memory then.
In step 305, CPU reads a block of bytes.In step 306, CPU is written to a described block of bytes in the flash memory.Then, in step 307, whether the CPLD_BUSY307 that CPU checks the busy condition of indication flash memory has much to do with confirmation flash memory 110.CPU prepares to receive new data with continuing to check CPLD_BUSY307 up to flash memory.In step 308, CPU is written to a byte in the flash memory when CPLD is not busy.In step 309, CPU is written to one in the flash memory.In step 310, CPU is clock setting low then.Described clock is the sampling clock of CPLD_DIN122 and CPLD_PROG123.If through the judgement of step 311, the 7th is " 1 ", then execution in step 312.CPU is set to height to the CPLD_DIN that indication CPLD prepares Data transmission.If the 7th is not " 1 ", then execution in step 313.CPU is set to CPLD_DIN low.Execution in step 314.CPU is clock setting high then.Then, carry out step 315, promptly CPU will check and whether have more that multidigit will write.If the user imports "Yes", CPU will turn back to step 309 and write one.If the user imports "No", execution in step 316.CPU checks whether have more that multibyte will write.If the user wants to write more multibyte, CPU will turn back to step 307 stoning to CPLD_BUSY.
If there is no more multibyte will be written in the flash memory, and execution in step 317.CPU is the mark byte count in the piece of flash memory, then execution in step 318. if necessary this byte count be used for showing escalation process.Whether execution in step 319.CPU will check then has a block of bytes to read.If user's input " be ", CPU will return execution in step 305, read a block of bytes.If user's input " deny ", execution in step 320, CPU guides from the piece that upgrades, so that the activation of block.In step 321, CPU writes back pci data.Then in step 322, CPU mark concluding time and calculating total processing time.
Further, according to an embodiment, in step 323, CPU reads version number the readme file from pci bus 140, and in step 324, CPU reads another version number in the mark from flash memory.Execution in step 325.CPU compares two version numbers then.If the coupling proof upgrading of two version numbers is successful, this means that new position file has been successfully writing in the flash memory 110.On the other hand, if two version numbers do not match, this means the upgrading failure.In this case, CPU will report failure and turn back to step 302, and judge whether and need check and open file.
When CPU is written to piece in the flash memory, for example just when write-in block 0, this execution occurs in another piece to CPU, for example in the piece 1.Piece 0 will automatically be activated after data have been written to wherein.Similarly, whether CPU need check in step 327 and guide from another piece, and guides from another storehouse in step 328.So far, upgrade end, i.e. step 330 of FPGA.
Fig. 4 illustrates the block diagram of the embodiment of CPLD state machine execution.Firm energising, state machine are just from idle condition 401.State machine forwards to and automatically disposes the startup of starting state 402 with beginning FPGA.The unloading phase during, fpga logic will be removed automatically.When timer=25, state machine forwards to waits for configuration status 403.When FPGA_INIT register=1, state machine forwards configuration idle condition 404 to, this means that FPGA prepares to receive data.Forward reading of data automatically at 405 state machines, this means that CPLD prepares configuration FPGA.When the last position of timer=7 and FPGA=1, this means that the FPGA configuration finishes, and state machine forwards the state 406 of waiting for FPGA_DONE to.When timer=25 and FPGA_DONE register=1, this means that FPGA is successfully disposed, and state machine forwards done state 410 to.
When timer=25, if configuration counting output=0 this means that current configuration data is work storehouse and the FPGA_DONE register that comes from flash memory 110!=1, this means that the data that come from the work storehouse successfully are not configured among the FPGA.Therefore, configuration error 407 of state machine report.When timer=25, a FPGA_DONE register!=1 and configuration counting output=1 o'clock, this means that the current configuration data that comes from backup library is not successfully writing among the FPGA.Therefore, the configuration that comes from work storehouse 111 and backup library 112 has all been failed, then state machine forward to done state 410 wherein gross error be reported to FAE.
State machine is transformed into idle condition 401 automatically from configuration error 407, this means that CPLD preparation data download from backup library disposes FPGA130.According to this embodiment, when ersenreg=4 ' b0110 and CPLD_PROG_N=1, state machine will be transformed into idle condition 401 and CPLD brings into use the work storehouse to dispose FPGA once more from done state 410.When ersenreg=4 ' b0111 and CPLD_PROG_N=1, state machine will be transformed into idle condition 401 and CPLD brings into use backup library to dispose FPGA once more from done state 410.
In this embodiment, when ersenreg=4 ' bl010 and CPLD_PROG_N=1, this means that CPLD prepares upgrade job storehouse 111.Otherwise when ersenreg=4 ' b0011 and CPLD_PROG_N=1, this means that CPLD prepares upgrading backup library 112, state machine is transformed into from done state 410 and wipes idle condition 421.State machine is automatically carried out erase command 422, this means that CPLD prepares the data in the erasing flash memory 110.State machine carry out to confirm order 423, wherein when last piece wipe=0 the time, this means that the storehouse is not wiped fully.When timer=5, state machine forwards to wipe and postpones 424.Similarly, CPLD starts a piece of wiping in the storehouse.When timer=25, state machine automatically forwards erase status 425 to.Therefore, state machine will be carried out erase command 422, wherein when fsts=1, this means that a piece is wiped fully.When last piece wipe=1 the time, this means that the storehouse is wiped fully.Similarly, state machine will forward storage idle condition 426 to, this means the configuration data of CPLD upgrading FPGA.
According to this embodiment, state machine is automatically carried out write buffer order 427.In one embodiment, when timer=5, state machine will forward read buffer state 428 to, this means that data are being written in flash memory 110 impact dampers.When timer=8 and impact damper prepare=0, this means that flash memory buffer is not write fully.Similarly, state machine forwards to and carries out write buffer order 427.On the other hand, when impact damper prepares=1, this means that flash memory buffer is write fully.Therefore, state machine forwards to and writes counting 429.When timer=5, state machine automatically is transformed into and waits for data mode 430 from writing counting 429.
According to this embodiment, when reachbufup=0, this means that the parallel data in the flash memory buffer is not delivered in the important data fully, and when shiftinrdy=1, this means the parallel transfer of the real startup of CPLD, state machine will forward write data state 431 to.When timer=5, state machine forwards to from write data state 431 and waits for data mode 430.When reachbufup=1, this means that the parallel data in the flash memory buffer has been delivered in the important data fully, state machine will forward write buffer to and confirm 432.
When timer=5, state machine will switch to write buffer delaying state 433, this means that data have been written in the piece of flash memory 110.When timer=25, state machine automatically forwards write buffer state 434 to then.When fsts=1, this means that a piece in the flash memory 110 is successfully upgraded.On the other hand, when the last impact damper of FPGA! , this means that FPGA position file is not successfully upgraded at=1 o'clock.Similarly, state machine will be carried out write buffer order 427.Otherwise when the last impact damper of FPGA=1, a piece that this means flash memory 110 is successfully upgraded and the FPGA configuration data is successfully upgraded.Therefore, state machine will be transformed into read mode 435 from write buffer state 434, this means that FPGA is set in the configuration status.When timer once more=5 time, state machine will forward done state 410 to from read mode 435.This indication FPGA upgrading finishes.
Already used here term and expression only are used to describe the present invention and also unrestricted the present invention.When using this term and expressing, intention get rid of any shown in and the equivalent (or its part) of the feature of describing, and should admit that various modifications all may drop in the claimed scope.Other modification, variation and refill also are the same.

Claims (23)

1. a system that is used for field programmable gate array (FPGA) upgrading is characterized in that, comprising:
Field programmable gate array;
Flash memory comprises first sector, is used to store the used version for the used position file of FPGA, and second sector, is used to store the backup version for the used position file of FPGA, and institute's rheme file provides function to described FPGA; And
Complicated programmable logic device (PLD) (CPLD), be coupled described FPGA and flash memory, it is configured to download institute's rheme file from first and second sectors of flash memory one and provides described function to described FPGA to give described FPGA.
2. the system as claimed in claim 1 is characterized in that: described CPLD is further configured to communicating by letter with CPU, is stored in the used version of the position file in the flash memory with upgrading.
3. system as claimed in claim 2 is characterized in that: described CPLD is further configured to communicating by letter with CPU, is stored in the backup version of the institute's rheme file in the described flash memory with upgrading after the described spendable version of check is effective.
4. the system as claimed in claim 1, it is characterized in that: described CPLD is further configured for communicating by letter with CPU, with the backup version of the institute's rheme file in the described flash memory of upgrading.
5. the system as claimed in claim 1 is characterized in that: described CPLD only uses four signals to communicate by letter with described FPGA.
6. system as claimed in claim 5 is characterized in that: one in described four signals is configured to transmit institute's rheme file and transmits cpu command to described FPGA and between CPLD and CPU.
7. system as claimed in claim 5 is characterized in that: an enable signal as a series of parallel circuit in described four signals, the parallel circuit of wherein said series are used for the cpu command that comes from series is converted into parallel form.
8. system as claimed in claim 5 is characterized in that: when flash memory was used for upgrading the described position file that is stored in described flash memory, an indication flash memory in described four signals was just busy, so that described signal is as the current control between CPU and the flash memory.
9. system as claimed in claim 8 is characterized in that: in described four signals one is further configured which version that is stored in the position file in the flash memory for indication to be downloaded among the described FPGA.
10. system as claimed in claim 7 is characterized in that: in described four signals one transmission as clock signal rheme file and described cpu command to latch, and latch described enable signal.
11. a FPGA method of operating is characterized in that, comprising:
The used version of the position file in first sector of storage flash memory;
Store the backup version of the position file in second sector of described flash memory; And
The used version of downloading institute's rheme file to FPGA to provide function to described FPGA.
12. FPGA method of operating as claimed in claim 11 is characterized in that, comprises further: described when using the version failure when downloading, the backup version of downloading institute's rheme file is to described FPGA.
13. FPGA method of operating as claimed in claim 11, it is characterized in that, comprise further: be stored in the described version that uses of the position file in the described flash memory by upgrading in the used version that the new position file that reads is written to described flash memory from pci bus.
14. FPGA method of operating as claimed in claim 11 is characterized in that, comprises further:
The used version of check institute rheme file is effective; And
By the new position file that reads from described pci bus is written to the backup version of the position file in the described flash memory of upgrading the described flash memory as described backup version.
15. FPGA method of operating as claimed in claim 11, it is characterized in that, comprise further: the described backup version of the position file in the described flash memory of upgrading, by the backup version that the new position file that reads from described pci bus is written to described flash memory to upgrade described backup version.
16. FPGA method of operating as claimed in claim 13 is characterized in that, comprises further:
Relatively from the first published this shop of the new position file that described pci bus reads be stored in the flash memory that is upgraded the position relevant second edition this shop of file of used version; And
When the described first published of described second edition version number matches this shop, determine that the described version that uses of upgrading is successful.
17. FPGA method of operating as claimed in claim 14 is characterized in that, comprises further:
Relatively from the first published this shop of the new position file that described pci bus reads be stored in the described flash memory that is upgraded the position relevant second edition this shop of file of backup version; And
When second edition version number matches first published this shop, determine that the described backup version of upgrading is successful.
18. a FPGA method of operating that is used for the FPGA upgrading is characterized in that, comprising:
In flash memory, store two copies of field programmable gate array (FPGA) position file, wherein the first authentic copy comprises the used version of described FPGA position file and the backup version that triplicate comprises described FPGA position file, to guarantee the copy of an effective position file always being arranged so that the described FPGA of energy; And
By the new position file that from pci bus, reads as described the used version that uses version to be written to upgrade in the described flash memory position file in the described flash memory.
19. FPGA method of operating as claimed in claim 18 is characterized in that: described CPLD is written to the new position file that reads in the described flash memory as the described version that uses from described pci bus.
20. FPGA method of operating as claimed in claim 18 is characterized in that, comprises further:
It is effective checking described spendable version; And
By the new position file that reads is written to the backup version of the position file in the described flash memory of upgrading in the described flash memory as described backup version from described pci bus.
21. FPGA method of operating as claimed in claim 18 is characterized in that, comprises further:
Backup version by the position file in the described flash memory of upgrading in the backup version that the new position file that reads is written to described flash memory from described pci bus.
22. FPGA method of operating as claimed in claim 18 is characterized in that, comprises further:
Relatively from the first published this shop of the new position file that described pci bus reads be stored in the flash memory that is upgraded the position relevant second edition this shop of file of used version; And
When the described first published of described second edition version number matches this shop, determine that the described version that uses of upgrading is successful.
23. FPGA method of operating as claimed in claim 20 is characterized in that, comprises further:
Relatively from the first published this shop of the new position file that described pci bus reads be stored in the flash memory that is upgraded the position relevant second edition this shop of file of backup version; And
When second edition version number matches first published this shop, determine that the described backup version of upgrading is successful.
CNB2006100778121A 2005-04-29 2006-04-28 System and method for upgrading bit files for a field programmable gate array Expired - Fee Related CN100483348C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US67645205P 2005-04-29 2005-04-29
US60/676,452 2005-04-29
US11/207,355 2005-08-18

Publications (2)

Publication Number Publication Date
CN1983180A true CN1983180A (en) 2007-06-20
CN100483348C CN100483348C (en) 2009-04-29

Family

ID=38165738

Family Applications (2)

Application Number Title Priority Date Filing Date
CN 200620114834 Expired - Lifetime CN200976140Y (en) 2005-04-29 2006-04-28 System for updating on-site programmable gate array bit files
CNB2006100778121A Expired - Fee Related CN100483348C (en) 2005-04-29 2006-04-28 System and method for upgrading bit files for a field programmable gate array

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN 200620114834 Expired - Lifetime CN200976140Y (en) 2005-04-29 2006-04-28 System for updating on-site programmable gate array bit files

Country Status (1)

Country Link
CN (2) CN200976140Y (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420328B (en) * 2008-12-03 2010-12-08 杭州华三通信技术有限公司 System, interface card and method for remote upgrading field programmable gate array
CN102043636A (en) * 2009-10-19 2011-05-04 中兴通讯股份有限公司 Method and device for loading field programmable gate array bit file
CN101587353B (en) * 2008-05-23 2011-06-22 深圳市先阳软件技术有限公司 Constant tension controller and control method for winding equipment
CN102662718A (en) * 2012-05-03 2012-09-12 天津市英贝特航天科技有限公司 Module for starting multiple user programs by single Flash
CN101957784B (en) * 2009-07-17 2012-10-10 鸿富锦精密工业(深圳)有限公司 Memory and data backup method thereof
CN101604244B (en) * 2008-06-13 2012-11-28 中兴通讯股份有限公司 Device and method for realizing that FPGA can be used when being electrified and remote upgrade of FPGA
CN103631674A (en) * 2012-08-24 2014-03-12 京信通信系统(中国)有限公司 FPGA embedded in CPU and starting method thereof
CN109542484A (en) * 2018-11-20 2019-03-29 济南浪潮高新科技投资发展有限公司 A kind of method and system of online updating FPGA configuration chip
CN113946533A (en) * 2021-09-18 2022-01-18 中国航发南方工业有限公司 Data storage device and serial port communication optimization method thereof

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103186A (en) * 2009-12-18 2011-06-22 上海贝尔股份有限公司 Debug method of FPGA and equipment thereof
CN101853172B (en) * 2010-05-24 2014-07-02 中兴通讯股份有限公司 Device and method for dynamically upgrading complex programmable logic device (CPLD)
CN102654839A (en) * 2012-04-18 2012-09-05 华为技术有限公司 Method and device for realizing reliable upgrading of FPGA (field programmable gate array)
CN105094855A (en) * 2014-05-06 2015-11-25 南京南瑞继保电气有限公司 Program online upgrading method for submodule of modularized multi-level transverter
CN104881286B (en) * 2015-05-28 2018-03-20 烽火通信科技股份有限公司 Programming device configures system and method
CN109558179A (en) * 2018-11-20 2019-04-02 杭州迪普科技股份有限公司 Program code on-line loaded method, program code online upgrading method and system
CN109558176A (en) * 2018-11-30 2019-04-02 郑州云海信息技术有限公司 A kind of double Qi Fangfa based on Flash inside CPLD
CN110096300B (en) * 2019-04-08 2023-03-14 上海赛治信息技术有限公司 FPGA program file backup management system, operation method and upgrading method
CN112307697A (en) * 2020-11-05 2021-02-02 中国航空工业集团公司西安航空计算技术研究所 FPGA logic reloading circuit

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002351685A (en) * 2001-05-22 2002-12-06 Sankyo Seiki Mfg Co Ltd Data updating method and controller for nonvolatile memory
US6845276B2 (en) * 2001-06-29 2005-01-18 Electro Scientific Industries Multiple axis modular controller and method of operating same
CN1266621C (en) * 2003-02-18 2006-07-26 明基电通股份有限公司 Method and apparatus for repeated data downloading to in situ programmable gate array
CN1195267C (en) * 2003-06-27 2005-03-30 飞利浦(中国)投资有限公司 FPGA and CPLD based impulse sequence programmer

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101587353B (en) * 2008-05-23 2011-06-22 深圳市先阳软件技术有限公司 Constant tension controller and control method for winding equipment
CN101604244B (en) * 2008-06-13 2012-11-28 中兴通讯股份有限公司 Device and method for realizing that FPGA can be used when being electrified and remote upgrade of FPGA
CN101420328B (en) * 2008-12-03 2010-12-08 杭州华三通信技术有限公司 System, interface card and method for remote upgrading field programmable gate array
CN101957784B (en) * 2009-07-17 2012-10-10 鸿富锦精密工业(深圳)有限公司 Memory and data backup method thereof
CN102043636A (en) * 2009-10-19 2011-05-04 中兴通讯股份有限公司 Method and device for loading field programmable gate array bit file
CN102662718A (en) * 2012-05-03 2012-09-12 天津市英贝特航天科技有限公司 Module for starting multiple user programs by single Flash
CN102662718B (en) * 2012-05-03 2015-07-01 天津市英贝特航天科技有限公司 Module for starting multiple user programs by single FLASH
CN103631674A (en) * 2012-08-24 2014-03-12 京信通信系统(中国)有限公司 FPGA embedded in CPU and starting method thereof
CN109542484A (en) * 2018-11-20 2019-03-29 济南浪潮高新科技投资发展有限公司 A kind of method and system of online updating FPGA configuration chip
CN109542484B (en) * 2018-11-20 2022-02-18 浪潮集团有限公司 Method and system for updating FPGA configuration chip on line
CN113946533A (en) * 2021-09-18 2022-01-18 中国航发南方工业有限公司 Data storage device and serial port communication optimization method thereof
CN113946533B (en) * 2021-09-18 2024-03-12 中国航发南方工业有限公司 Data storage device and serial port communication optimization method thereof

Also Published As

Publication number Publication date
CN100483348C (en) 2009-04-29
CN200976140Y (en) 2007-11-14

Similar Documents

Publication Publication Date Title
CN100483348C (en) System and method for upgrading bit files for a field programmable gate array
US7391237B2 (en) Robust and economic solution for FPGA bitfile upgrade
CN102999350B (en) A kind of FPGA program upgrading download online method in digital signal processing platform
CN110096300B (en) FPGA program file backup management system, operation method and upgrading method
CN103299276A (en) Software updating process for an embedded device
CN101645055B (en) Logic device on-line loaded method, system and processor
CN103559053A (en) Board system and FPGA (Field Programmable Logic Array) online update method of communication interface cards
CN102339242A (en) Computer system data recovery device
US8612969B2 (en) Electronic device
CN113377408B (en) High-reliability SRAM type FPGA online upgrading method and system
CN114546453B (en) FPGA configuration item online upgrading method, system, equipment and storage medium
CN106598654A (en) Method for updating PowerPC motherboard guide chip online
CN103377129A (en) Data writing-in method, memory controller and memory storage device
CN104077166A (en) EPCS and EPCQ storer online upgrading method based on IP core in FPGA
CN102253845B (en) Server system
CN102346677A (en) Method for upgrading field programmable gate array (FPGA) program
CN100530146C (en) BIOS on-line rewriting method
CN112231005A (en) Method for managing FPGA (field programmable Gate array) version based on UBOOT (Universal boot on Board)
CN102043636B (en) Method and device for loading field programmable gate array bit file
EP1461711B1 (en) Method and apparatus for modifying the contents of a revision identification register
CN102650971B (en) Memory managing method, memory controller and memory storing device
CN112306536A (en) Mainboard, chip thereof and chip upgrading method
CN111399869A (en) Method for controlling software upgrading of direct-writing exposure machine, control unit and exposure machine
CN102236608A (en) Data access method, system, storage medium controller and storage system
CN104142895A (en) Writing method, storage controller and storing device of storage

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: O2 TECH. INTERNATIONAL LTD.

Free format text: FORMER OWNER: O2 MICRO INC

Effective date: 20120209

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120209

Address after: Cayman Islands (Great Britain), Grand Cayman, California, USA

Patentee after: O2 Tech. International Ltd.

Address before: St. Patrick, 3118 Henry Road, California, USA

Patentee before: O2 Micro Inc

ASS Succession or assignment of patent right

Owner name: AIYOUKE SERVICE CO., LTD.

Free format text: FORMER OWNER: O2 TECH. INTERNATIONAL LTD.

Effective date: 20120906

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120906

Address after: Delaware

Patentee after: O2Micro Inc.

Address before: Grand Cayman British Cayman Islands

Patentee before: O2 Tech. International Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090429

Termination date: 20190428

CF01 Termination of patent right due to non-payment of annual fee