KR20040037315A - Method for Renovating field-programmable gate array - Google Patents

Method for Renovating field-programmable gate array Download PDF

Info

Publication number
KR20040037315A
KR20040037315A KR1020020065764A KR20020065764A KR20040037315A KR 20040037315 A KR20040037315 A KR 20040037315A KR 1020020065764 A KR1020020065764 A KR 1020020065764A KR 20020065764 A KR20020065764 A KR 20020065764A KR 20040037315 A KR20040037315 A KR 20040037315A
Authority
KR
South Korea
Prior art keywords
fpga
flash memory
fpga data
board
data
Prior art date
Application number
KR1020020065764A
Other languages
Korean (ko)
Inventor
임성수
Original Assignee
엘지전자 주식회사
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 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020020065764A priority Critical patent/KR20040037315A/en
Publication of KR20040037315A publication Critical patent/KR20040037315A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Abstract

PURPOSE: An FPGA(Field Programmable Gate Array) updating method is provided to make a user update the FPGA on the line, and operate a board normally even though one part of the FPGA generates error by duplexing a flash memory area and storing old version and new version. CONSTITUTION: A power is supplied to the board, the boot flash of the board downloads the FPGA data stored at a PROM to the FPGA(S202). The boot flash determines whether the downloaded FPGA data is matched with the FPGA data stored at the flash memory(S206). If the change of the FPGA is required(S208), the boot flash receives the FPGA data and stores the received FPGA data at the flash memory(S210). Then the boot flash downloads the FPGA data stored at the flash memory to the PROM(S212), the FPGA is updated(S214).

Description

FPGA 갱신 방법{Method for Renovating field-programmable gate array}Method for Renewing FFA {Method for Renovating field-programmable gate array}

본 발명은 FPGA(field-programmable gate array)를 자동으로 갱신하기 위하여 네트워크를 이용하여 FPGA 데이터를 전송받고, 상기 전송받은 FPGA 데이터를 저장하기 위하여 플래시 메모리 영역을 이중화하여 저장하는 FPGA 갱신 방법에 관한 것이다.The present invention relates to an FPGA update method for receiving FPGA data using a network to automatically update a field-programmable gate array (FPGA), and redundantly storing a flash memory area to store the received FPGA data. .

FPGA는 프로그램이 가능한 로직 칩의 한 형태로 PLD와 비슷하지만, PLD가 수백 개의 게이트에 제한되는데 반해, FPGA는 수천 개의 게이트를 지원한다.An FPGA is a type of programmable logic chip that resembles a PLD, while an FPGA supports thousands of gates, while the PLD is limited to hundreds of gates.

FPGA는 입출력제어, 타이밍 제어 등을 담당하는 것으로서, 보드가 하드웨어적으로 정상적인 동작을 하기 위해서는 먼저 FPGA가 정상적으로 초기화되어야한다.The FPGA is responsible for I / O control and timing control. In order for the board to operate normally in hardware, the FPGA must be initialized normally.

만약 FPGA가 정상적으로초기화되지 않으면 보드는 원하는 동작을 하지 못한다. 따라서, FPGA가 변경되면, 사용자는 FPGA 데이터가 저장되어 있는 플래시 메모리를 교체하거나 특별한 툴(tool)을 이용하여 직접 FPGA를 변경한다.If the FPGA does not initialize properly, the board will not perform the desired operation. Thus, when the FPGA changes, the user can change the FPGA directly by replacing the flash memory where the FPGA data is stored or by using a special tool.

그후에 전원을 넣어 보드를 재구동하면 플래시 메모리로부터 FPGA가 다운로드되어 변경될 FPGA가 보드에 적용된다. 또한 전원을 인가할때마다 FPGA 데이터가 무조건 플래시 메모리에서 직접 FPGA로 다운로드된다.After that, when the board is powered up again, the FPGA is downloaded from flash memory and the FPGA is applied to the board. Each time the power is applied, the FPGA data is unconditionally downloaded directly from the flash memory to the FPGA.

이하 도면을 참조하여 FPGA를 갱신하는 방법에 대하여 설명하기로 한다.Hereinafter, a method of updating an FPGA will be described with reference to the accompanying drawings.

도 1은 종래의 FPGA의 갱신 방법을 나타낸 흐름도이다.1 is a flowchart illustrating an update method of a conventional FPGA.

도 1을 참조하면, 보드의 파워가 온(on)되면(S100), 부트 플래시는 플래시 메모리에 저장되어 있는 FPGA 데이터를 FPGA로 다운로드한다(S102).Referring to FIG. 1, when the power of the board is turned on (S100), the boot flash downloads the FPGA data stored in the flash memory to the FPGA (S102).

단계 102의 수행으로, 정상적으로 보드의 환경 설정이 완료되면(S104), 상기 보드는 운영(Operating System) 상태가 되어 고유 기능을 수행한다(S106).In step 102, when the board configuration is normally completed (S104), the board enters an operating system to perform a unique function (S106).

단계 106의 수행후, 상기 FPGA의 변경이 필요하면(S108), 사용자는 파워를 오프한 후(S110), 상기 FPGA 데이터가 저장된 플래시 메모리를 변경될 FPGA 데이터가 저장되어 있는 플래시 메모리로 교체한다(S112).After performing step 106, if the FPGA needs to be changed (S108), the user turns off the power (S110), and then replaces the flash memory in which the FPGA data is stored with the flash memory in which the FPGA data to be changed is stored ( S112).

플래시 메모리의 교체가 끝나면, 단계 100부터 다시 수행한다.When the replacement of the flash memory is finished, the process is performed again from step 100.

상기와 같은 과정에 의해서 FPGA가 갱신된다.The FPGA is updated by the above process.

그러나 상기와 같은 종래에는 FPGA가 변경될때마다 사용자가 FPGA 데이터가저장되어 있는 플래시 메모리를 직접 교체해야하는 불편함이 있다.However, in the conventional art as described above, whenever the FPGA is changed, it is inconvenient for the user to directly replace the flash memory in which the FPGA data is stored.

또한, 플래시 메모리를 교체하는 과정에서 플래시 메모리의 내용중 일부가 깨져있다면 보드는 FPGA를 올바르게 다운로드하지 못하여 정상적인 기능을 수행하지 못하는 문제점이 있다.In addition, if a part of the flash memory is broken during the flash memory replacement process, the board may not download the FPGA correctly and may not function properly.

또한, 전원을 인가하여 보드를 구동시킬때마다 FPGA 데이터가 플래시 메모리에서 FPGA로 다운로드되는데 FPGA 데이터의 양이 많을수록 많은 시간이 소요되어 보드가 고유한 기능을 수행하기까지 소요되는 시간이 많이 걸리는 문제점이 있다.In addition, the FPGA data is downloaded from flash memory to the FPGA every time the board is powered up, and the larger the amount of FPGA data, the more time it takes for the board to perform its unique functions. have.

또한, 어떤 경우든지 사용자가 보드가 있는 곳으로 직접 찾아가서 일일이 수작업으로 변경해야 하는 수고를 해야하며 이에 따라 시간 및 비용적인 측면에서 많은 손실이 있는 문제점이 있다.In addition, in any case, the user has to go directly to the board where there is a lot of effort to manually change, there is a problem that there is a lot of loss in time and cost.

또한, 플래시 메모리에는 하나의 FPGA 데이터 세트가 있기에 임의의 원인에 의해 이 데이터가 손상되었다면 그 보드 역시 제대로 FPGA 초기화가 되지 않아서 정상적인 동작을 하지 못하게 되는 문제점이 있다.In addition, since there is only one FPGA data set in the flash memory, if the data is damaged due to any cause, the board also fails to initialize the FPGA properly and thus cannot operate normally.

따라서, 본 발명의 목적은 FPGA를 사용자가 온라인으로 갱신하고, 플래시 메모리의 영역을 이중화하여 구버전과 신버전을 모두 저장함으로써 어느 한 부분이 손상되더라도 보드는 항상 정상적으로 동작할 수 있는 FPGA 갱신 방법을 제공하는데 있다.Accordingly, an object of the present invention is to provide an FPGA updating method in which a board can always operate normally even if one part is damaged by updating an FPGA online and duplexing a flash memory area to store both an old version and a new version. have.

도 1은 종래의 FPGA의 갱신 방법을 나타낸 흐름도.1 is a flowchart illustrating a method of updating a conventional FPGA.

도 2는 본 발명의 바람직한 일 실시예에 따른 FPGA를 갱신하는 방법을 나타낸 흐름도.2 is a flow diagram illustrating a method of updating an FPGA in accordance with one preferred embodiment of the present invention.

도 3은 본 발명의 바람직한 일 실시예에 따른 플래시 메모리에 저장되는 FPGA 데이터의 이중화를 나타낸 도면.3 illustrates redundancy of FPGA data stored in flash memory according to one preferred embodiment of the present invention.

상기 목적들을 달성하기 위하여 본 발명의 일 측면에 따르면, 전원이 인가되면, PROM에 저장된 FPGA 데이터를 FPGA로 다운로드하는 제1단계, 상기 다운로드된 FPGA 데이터가 플래시 메모리에 저장된 FPGA 데이터와 상응하는지의 여부를 판단하는 제2단계, 상기 판단결과 상기 FPGA 데이터가 플래시 메모리에 저장된 FPGA 데이터와 상응하면, 해당 보드는 운영 상태가 되어 고유 기능을 수행하다가 FPGA의 변경이 필요하면, 상위로부터 FPGA 데이터를 수신하여 플래시 메모리에 저장하는 제3단계, 상기 저장된 FPGA 데이터를 PROM으로 다운로드하는 제4단계를 포함하는 것을 특징으로 하는 FPGA 갱신 방법이 제공된다.According to an aspect of the present invention for achieving the above objects, a first step of downloading the FPGA data stored in the PROM to the FPGA when the power is applied, whether the downloaded FPGA data corresponds to the FPGA data stored in the flash memory In the second step of determining, if the FPGA data corresponds to the FPGA data stored in the flash memory, the board is in an operating state and performs a unique function, and if the FPGA needs to be changed, the FPGA data is received from a higher level. A third step of storing in the flash memory, and the fourth step of downloading the stored FPGA data to the PROM is provided.

상기 판단결과 상기 다운로드된 FPGA 데이터가 플래시 메모리에 저장된 FPGA 데이터와 상응하면, 플래시 메모리에서 최신의 FPGA 데이터를 추출하고, 상기 추출된 FPGA 데이터를 PROM으로 다운로드한 후, 제1단계로 되돌아간다.If the downloaded FPGA data corresponds to the FPGA data stored in the flash memory, the latest FPGA data is extracted from the flash memory, the extracted FPGA data is downloaded to the PROM, and then the process returns to the first step.

상기 최신의 FPGA 데이터는 카운트값이 높은 데이터이다.The latest FPGA data is data having a high count value.

상위로부터 수신된 FPGA 데이터는 플래시 메모리 영역을 이중화하여 저장하는 것을 특징으로 한다.FPGA data received from the upper layer is characterized in that the flash memory area is stored in duplicate.

상기 플래시 메모리 영역은 카운트값에 의해 신버전과 구버전으로 나뉘어진다.The flash memory area is divided into a new version and an old version by count values.

FPGA는 보드의 정상적인 동작을 위해 필수적이 요소이다. 만약, FPGA가 제대로 초기화되지 않으면, 보드는 아무런 동작을 할수 없는 상태이다.FPGAs are essential for the board's normal operation. If the FPGA is not properly initialized, the board will be unable to do anything.

따라서, FPGA 데이터를 저장하는 시점에서 발생할 수 있는 오류에 대한 대처 방안으로 플래시 메모리 영역을 이중화하는것이다.Therefore, to cope with errors that may occur when storing FPGA data, the flash memory area is duplicated.

예를 들어, 온라인으로 전송받은 파일을 플래시 메모리에 저장하고 있을때, 외부적인 원인으로 보드가 동작을 멈추었다고 가정하여 설명하기로 한다. 보드가 재부팅되면, 플래시 메모리에서 FPGA로 FPGA 데이터가 다운로드 되는데, 플래시 메모리에 저장되어 있는 FPGA 데이터는 유효하지 않는 데이터이므로 보드가 정상적인 동작을 하지 못한다.For example, it is assumed that the board has stopped working due to external causes when the file received online is stored in the flash memory. When the board is rebooted, FPGA data is downloaded from flash memory to the FPGA. The FPGA data stored in flash memory is invalid and the board does not work properly.

따라서, 이러한 상황에 대처하기 위해서 플래시 메모리 영역을 이중화하여 FPGA 데이터 갱신시 신버전과 구버전을 항상 가지도록 한다. 이영역에 있는 카운트값을 확인하여 상대적으로 높은값을 가진 영역이 신버전으로 한다. 그래서 FPGA 갱신이 필요한 경우, 온라인으로 전송받아서 파일을 저장할때 구버전 영역에 저장함으로써 항상 2개의 FPGA 데이터 세트를 유지할 수 있다.Therefore, in order to cope with such a situation, the flash memory area is duplicated to always have a new version and an old version when updating the FPGA data. Check the count value in this area and make the new version with the relatively high value. So if an FPGA update is needed, the two FPGA data sets can always be maintained by getting them online and saving them in the older version area when saving the file.

이렇게 함으로써 파일을 저장하다가 오류가 발생하면 보드가 재부팅할 때 우선은 구버전으로 살아날 수 있으면, 다시 FPGA 데이터를 전송받아서 갱신할 수 있다.This way, if an error occurs while saving the file, when the board reboots, the old version can be revived first, and then receive and update the FPGA data again.

이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 바람직한 일 실시예에 따른 FPGA를 갱신하는 방법을 나타낸 흐름도이고 도 3은 본 발명의 바람직한 일 실시예에 따른 플래시 메모리에 저장되는 FPGA 데이터의 이중화를 나타낸 도면이다.2 is a flowchart illustrating a method of updating an FPGA according to an exemplary embodiment of the present invention, and FIG. 3 is a diagram illustrating duplication of FPGA data stored in a flash memory according to an exemplary embodiment of the present invention.

도 2 및 도 3을 참조하면, 보드에 전원이 인가되면(S200), 상기 보드의 부트 플래시는 PROM에 저장되어 있는 FPGA 데이터를 FPGA로 다운로드한다(S202). 여기서, 상기 PROM에 저장된 FPGA 데이터는 FPGA가 변경될때, 플래시 메모리가 상위로부터 전송받아 저장한 후, 상기 PROM에 전송한 데이터이다.2 and 3, when power is applied to the board (S200), the boot flash of the board downloads the FPGA data stored in the PROM to the FPGA (S202). Here, the FPGA data stored in the PROM is data transmitted to the PROM after the flash memory is received and stored from the upper layer when the FPGA is changed.

단계 202가 수행되면, 상기 부트 플래시는 상기 다운로드된 FPGA 데이터가 플래시 메모리에 저장되어 있는 FPGA 데이터와 상응하는지의 여부를 판단한다(S204).When step 202 is performed, the boot flash determines whether the downloaded FPGA data corresponds to the FPGA data stored in the flash memory (S204).

단계 204의 판단결과 상기 다운로드된 FPGA 데이터가 플래시 메모리에 저장되어 있는 FPGA 데이터와 상응하면, 상기 보드는 운영상태가 되어 자체 고유기능을 수행한다(S206).As a result of the determination in step 204, if the downloaded FPGA data corresponds to the FPGA data stored in the flash memory, the board is in an operating state and performs its own function (S206).

단계 206의 수행후, FPGA의 변경이 필요하면(S208), 상기 부트 플래시는 상위로부터 FPGA 데이터를 수신하여 플래시 메모리에 저장한다(S210).After performing the step 206, if the FPGA needs to be changed (S208), the boot flash receives the FPGA data from the upper level and stores it in the flash memory (S210).

상기 부트 플래시는 네트워크를 이용하여 상위로부터 FPGA 데이터를 수신하여 플래시 메모리에 저장한다. 상기 FPGA 데이터를 플래시 메모리에 저장할 때, 에러 복구 기능을 지원하기 위하여 플래시 메모리의 영역을 이중화하여 저장한다.The boot flash receives the FPGA data from the host by using a network and stores the FPGA data in the flash memory. When the FPGA data is stored in the flash memory, an area of the flash memory is redundantly stored to support an error recovery function.

도 3을 참조하면, 플래시 메모리는 신버전과 구버전을 가지는 영역으로 나뉘어진다. 이때, 각 영역에 카운터 값을 두어 높은 값을 가지는 영역을 신버전으로, 낮은 값을 가지는 영역을 구버전으로 간주한다. 그러므로 플래시 메모리가 새로운 버전의 FPGA 데이터를 전송받으면 상기 전송받은 FPGA 데이터는 구버전 영역에 저장된다. 이렇게 함으로써 FPGA 데이터는 항상 구버전과 신버전을 유지할 수 있다.Referring to FIG. 3, the flash memory is divided into regions having a new version and an old version. At this time, a counter value is placed in each region, and a region having a high value is regarded as a new version, and a region having a low value is regarded as an old version. Therefore, when the flash memory receives a new version of FPGA data, the received FPGA data is stored in the old version region. This way, the FPGA data can always be kept old and new.

상기와 같이 이중화된 영역을 유지함으로써 플래시 메모리에 FPGA 데이터를 저장할때 또는 플래시 메모리의 일부가 깨지더라도 복구가 가능한다.By maintaining the redundant area as described above, recovery is possible when the FPGA data is stored in the flash memory or when a part of the flash memory is broken.

예를 들어, 플래시 메모리의 초기 상태를 카운트값이 '0'인 경우를 구버전으로하고, 카운트값이 '1'인 FPGA 데이터를 신버전으로 한 경우를 살펴보자.For example, consider the case where the initial state of the flash memory is an old version where the count value is '0' and the FPGA data whose count value is '1' is the new version.

FPGA의 변경이 필요하여 플래시 메모리가 상위로부터 FPGA 데이터를 수신하여 제1 FPGA 업데이트를 수행한 경우, 상기 수신된 FPGA 데이터는 카운트값이 '0'인 구버전 영역에 카운트값 '2'로 신버전으로 저장되고, 상기 카운트값이 '1'인 FPGA 데이터는 구버전으로 된다.When the FPGA needs to be changed and the flash memory receives the FPGA data from the upper stage to perform the first FPGA update, the received FPGA data is stored as the new value as the count value '2' in the old version region in which the count value is '0'. The FPGA data whose count value is '1' is old.

FPGA의 변경이 또 필요하여 상기 플래시 메모리가 상위로부터 FPGA 데이터를 수신하여 제2 FPGA 업데이트를 수행한 경우, 상기 수신된 FPGA 데이터는 상기 카운트값이 '1'인 구버전 영역에 카운트값 '3'으로 신버전으로 저장되고, 상기 카운트값이 '2'인 FPGA 데이터는 구버전으로 된다.When the FPGA needs to be changed again and the flash memory receives the FPGA data from the upper stage to perform the second FPGA update, the received FPGA data is set to the count value '3' in the old version region in which the count value is '1'. The FPGA data stored in the new version and the count value is '2' becomes the old version.

단계 210의 수행후, 상기 부트 플래시는 상기 플래시 메모리에 저장된 FPGA 데이터를 PROM으로 다운로드한다(212). 단계 212가 수행되면, 상기 보드는 재구동되어 FPGA가 갱신된다(S214).After performing step 210, the boot flash downloads the FPGA data stored in the flash memory to a PROM (212). When step 212 is performed, the board is restarted and the FPGA is updated (S214).

만약, 단계 204의 판단결과 상기 다운로드된 FPGA 데이터가 플래시 메모리에 저장되어 있는 FPGA 데이터와 상응하지 않으면, 상기 부트 플래시는 상기 플래시 메모리에서 최신의 FPGA 데이터를 추출한다(S216).If it is determined in step 204 that the downloaded FPGA data does not correspond to the FPGA data stored in the flash memory, the boot flash extracts the latest FPGA data from the flash memory (S216).

상기 부트 플래시는 상기 플래시 메모리에 저장되어 있는 FPGA 데이터에 대한 카운터 값을 이용하여 최신의 FPGA 데이터를 추출한다. 즉, 상기 부트 플래시는플래시 메모리에 저장된 FPGA 데이터중에서 카운터값이 높은 FPGA 데이터를 추출한다.The boot flash extracts the latest FPGA data using a counter value for the FPGA data stored in the flash memory. That is, the boot flash extracts FPGA data having a high counter value from the FPGA data stored in the flash memory.

최신의 FPGA 데이터가 추출되면, 상기 부트 플래시는 상기 추출된 FPGA 데이터를 PROM으로 다운로드한다(S218). 그런다음 단계 202부터 수행한다.When the latest FPGA data is extracted, the boot flash downloads the extracted FPGA data to the PROM (S218). Then proceed from step 202.

이는 보드가 초기화되는 시간을 감소하기 위해서 플래시 메모리에서 FPGA로 직접 다운로드 하지 않고, PROM으로 한다. 만약, FPGA 데이터 크기가 1M라고 가정하면, 플래시 메모리에서 FPGA로 직접 다운로드하는데 소요되는 시간은 약 3분정도가 되지만, PROM에서 FPGA로 다운로드하는데 걸리는 시간은 수백ms이다.This is done in PROM instead of downloading directly from flash memory to the FPGA to reduce the time the board is initialized. If the FPGA data size is 1M, the time required to download directly from flash memory to the FPGA is about three minutes, but the time to download from the PROM to the FPGA is hundreds of ms.

따라서, FPGA 초기화는 전원이 들어올때마다 수행되기에 종래의 방식에서는 FPGA 데이터의 변경 여부에 상관없이 3분이 소요되지만 본발명에서는 FPGA가 변경된 시점에서만 3분의 시간이 소요될뿐 다음부터는 수백 ms내에 초기화가될 수 있다.Therefore, since FPGA initialization is performed every time the power is turned on, the conventional method takes 3 minutes regardless of whether or not the FPGA data is changed, but in the present invention, it takes 3 minutes only when the FPGA is changed. Can be

본 발명은 상기 실시예에 한정되지 않으며, 많은 변형이 본 발명의 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 가능함은 물론이다.The present invention is not limited to the above embodiments, and many variations are possible by those skilled in the art within the spirit of the present invention.

상술한 바와 같이 본 발명에 따르면, FPGA를 사용자가 온라인으로 갱신할 수 있고 FPGA 데이터를 플래시 메모리에서 PROM으로 다운로드하여 보드가 재구동시 빠르게 환경설정을 하여 제기능을 수행하기까지 소요되는 시간이 절약되는 FPGA 갱신 방법을 제공할 수 있다.As described above, according to the present invention, the user can update the FPGA online and download the FPGA data from the flash memory to the PROM so that the time required for the board to be quickly configured and re-executed can be saved. FPGA update methods can be provided.

또한, 본 발명에 따르면, 플래시 메모리의 영역을 이중화하여 구버전과 신버전을 모두 저장함으로써 어느 한 부분이 손상되더라도 보드는 항상 정상적으로 동작할 수 있는 FPGA 갱신 방법을 제공할 수 있다.In addition, according to the present invention, it is possible to provide an FPGA updating method in which the board can always operate normally even if any part is damaged by redundancy of the flash memory and storing both the old version and the new version.

Claims (4)

전원이 인가되면, PROM에 저장된 FPGA 데이터를 FPGA로 다운로드하는 제1단계;A first step of downloading the FPGA data stored in the PROM to the FPGA when power is applied; 상기 다운로드된 FPGA 데이터가 플래시 메모리에 저장된 FPGA 데이터와 상응하는지의 여부를 판단하는 제2단계;A second step of determining whether the downloaded FPGA data corresponds to FPGA data stored in a flash memory; 상기 판단결과 상기 FPGA 데이터가 플래시 메모리에 저장된 FPGA 데이터와 상응하면, 해당 보드는 운영 상태가 되어 고유 기능을 수행하다가 FPGA의 변경이 필요하면, 상위로부터 FPGA 데이터를 수신하여 플래시 메모리에 저장하는 제3단계;If the FPGA data corresponds to the FPGA data stored in the flash memory as a result of the determination, the board is in an operating state to perform a unique function, and when a change of the FPGA is required, a third circuit for receiving the FPGA data from a higher level and storing the FPGA data in the flash memory. step; 상기 저장된 FPGA 데이터를 PROM으로 다운로드하는 제4단계Fourth step of downloading the stored FPGA data to the PROM 를 포함하는 것을 특징으로 하는 FPGA 갱신 방법.FPGA update method comprising a. 제1항에 있어서,The method of claim 1, 상기 판단결과 상기 다운로드된 FPGA 데이터가 플래시 메모리에 저장된 FPGA 데이터와 상응하면, 플래시 메모리에서 카운트값이 높은 FPGA 데이터를 추출하는 단계;Extracting FPGA data having a high count value from the flash memory if the downloaded FPGA data corresponds to the FPGA data stored in the flash memory; 상기 추출된 FPGA 데이터를 PROM으로 다운로드한 후, 제1단계로 되돌아가는 것을 특징으로 하는 FPGA 갱신 방법.Downloading the extracted FPGA data to the PROM, and returning to the first step. 제1항에 있어서,The method of claim 1, 상기 상위로부터 수신된 FPGA 데이터는 플래시 메모리 영역을 이중화하여 저장하는 것을 특징으로 하는 FPGA 갱신 방법.FPGA data received from the upper layer is a flash memory region, characterized in that for updating the FPGA. 제3항에 있어서,The method of claim 3, 상기 플래시 메모리 영역은 카운트값에 의해 신버전과 구버전으로 나뉘어지는 것을 특징으로 하는 FPGA 갱신 방법.And the flash memory area is divided into a new version and an old version by a count value.
KR1020020065764A 2002-10-28 2002-10-28 Method for Renovating field-programmable gate array KR20040037315A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020065764A KR20040037315A (en) 2002-10-28 2002-10-28 Method for Renovating field-programmable gate array

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020065764A KR20040037315A (en) 2002-10-28 2002-10-28 Method for Renovating field-programmable gate array

Publications (1)

Publication Number Publication Date
KR20040037315A true KR20040037315A (en) 2004-05-07

Family

ID=37335639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020065764A KR20040037315A (en) 2002-10-28 2002-10-28 Method for Renovating field-programmable gate array

Country Status (1)

Country Link
KR (1) KR20040037315A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106227557A (en) * 2016-07-13 2016-12-14 深圳市飞鸿光电子有限公司 A kind of PLD based on GPON, EPON loads hardware circuit and the method for FLASH

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106227557A (en) * 2016-07-13 2016-12-14 深圳市飞鸿光电子有限公司 A kind of PLD based on GPON, EPON loads hardware circuit and the method for FLASH
CN106227557B (en) * 2016-07-13 2019-11-08 深圳市飞鸿光电子有限公司 A kind of hardware circuit and method of the programmable logic device load FLASH based on GPON, EPON

Similar Documents

Publication Publication Date Title
US6668261B1 (en) Method of upgrading a program using associated configuration data
US8539471B2 (en) Updating firmware of an electronic device
US6836859B2 (en) Method and system for version control in a fault tolerant system
CN100472442C (en) Device and method for on-line updating fastener programm
US7275153B2 (en) Booting and boot code update system using boot strapper code to select between a loader and a duplicate backup loader
US7206971B2 (en) Selectable and updatable computer boot memory
US5740178A (en) Software for controlling a reliable backup memory
US6615404B1 (en) Method and apparatus for downloading software into an embedded-system
US7000161B1 (en) Reconfigurable programmable logic system with configuration recovery mode
US8601255B2 (en) Approaches for updating bios
US8726259B2 (en) System and method for preserving device parameters during a FOTA upgrade
CN104918114B (en) A kind of operating system update method and device
CN110809755B (en) electronic control system
US20020095619A1 (en) Fault tolerant/redundant boot ROM reprogramming
US20020178352A1 (en) Firmware upgrade using address conversion
CN110007935B (en) Processing method, device and equipment for program upgrading
CN110764799A (en) Method, equipment and medium for optimizing and remotely updating FPGA (field programmable Gate array) accelerator card
US20070050612A1 (en) Boot program update and restoration system and method thereof
JP2006518059A (en) Mobile handset with fault-tolerant update agent
JP2007122151A (en) Boot controller and boot control method
KR20040037315A (en) Method for Renovating field-programmable gate array
US20070220186A1 (en) Frequency converter controller, peripheral device, method and program
CN112236748A (en) Communication apparatus and information processing method
CN112527366B (en) Update rollback fault tolerant design technique for embedded processor boot
CN101091159A (en) Data-processing arrangement

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination