KR100212830B1 - Syndrome calculation apparatus of reed solomon decoder - Google Patents
Syndrome calculation apparatus of reed solomon decoder Download PDFInfo
- Publication number
- KR100212830B1 KR100212830B1 KR1019960005447A KR19960005447A KR100212830B1 KR 100212830 B1 KR100212830 B1 KR 100212830B1 KR 1019960005447 A KR1019960005447 A KR 1019960005447A KR 19960005447 A KR19960005447 A KR 19960005447A KR 100212830 B1 KR100212830 B1 KR 100212830B1
- Authority
- KR
- South Korea
- Prior art keywords
- register
- polynomial
- syndrome
- code
- adder
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
본 발명은 리드 솔로몬 복호기의 신드롬 계산장치에 관한 것으로, 신드롬 계산셀이, 레지스터(11)를 통해 입력되는 수신 심볼(ri)과 중간값을 더하여 출력하는 갈로아체 덧셈기(43)와 : 상기 갈로아체 덧셈기(43)에서 출력된 값을 심볼 클럭(sym_clk)에 따라 래치시켜 출력하는 래지스터(45) : 코드 발생 다항식 g(x)의 근(ai)이 저장되어 있는 롬(47)및: 상기 롬(47)에 저장되어 있는 코드 발생 다항식 g(x)의 근(ai)과 상기 래지스터(45)에서 출력된 값을 곱하여 중간값을 상기 갈로아체 덧셈기(43)로 입력함과 더불어 신드롬(Si)으로서 출력하는 갈로아체 덧셈기(49)를 포함하여 구성되어, 다중화기를 사용하지 않고 신드롬 셀을 구현함에 따라 그 구조가 간단할 뿐만 아니라 면적이 감소되어 초대규모 집적회로(VLSI)로 구현하기 용이한 것이다.The present invention relates to a syndrome calculation device of a Reed Solomon decoder, and a galloace adder (43) outputting a syndrome calculation cell by adding a received symbol (r i ) and an intermediate value inputted through a register (11): The register 45 for latching and outputting the value output from the Aceh adder 43 according to the symbol clock sym_clk: the ROM 47 and the root (a i ) of the code generation polynomial g (x) are stored. The intermediate value is inputted to the galloche adder 43 by multiplying the root a i of the code generation polynomial g (x) stored in the ROM 47 by the value output from the register 45. Comprising a galloa adder 49 outputting as a syndrome (S i ), by implementing a syndrome cell without using a multiplexer, the structure is not only simple, but the area is reduced to a very large integrated circuit (VLSI) It is easy to implement.
Description
제1도는 일반적인 리드 솔로몬 복호기의 개략적인 구성도.1 is a schematic configuration diagram of a typical Reed Solomon decoder.
제2도는 종래의 신드롬 계산장치의 회로도.2 is a circuit diagram of a conventional syndrome calculation device.
제3도는 종래의 신드롬 계산셀의 회로도.3 is a circuit diagram of a conventional syndrome calculation cell.
제4도는 본 발명에 따른 리드 솔로몬 복호기의 신드롬 계산셀의 회로도.4 is a circuit diagram of a syndrome calculation cell of a Reed Solomon decoder according to the present invention.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
1 : 선입 설출 버퍼 3 : 신드롬 계산부1: first-in-first-out buffer 3: syndrome calculation unit
5 : 에러 위치 다항식 계산부 7 : 에러 정정부5: error position polynomial calculation unit 7: error correction unit
9 : 제어부 43 : 갈로아체 덧셈기9 control unit 43 Galoache Adder
45 : 레지스터 47 : 롬45: register 47: ROM
49 : 갈로아체 덧셈기49: galloche adder
본 발명은 리드 솔로몬 부호기(Reed solomon encodor : RS encoder)에 의해 에러 정정 부호화(error correcting coding, error control coding : 이하 ECC라 칭함)된 디지털 데이터를 에러 정정 복호화하는 리드 솔로몬 복호기에 관한 것으로, 특히 리드 솔로몬 부호화된 디지털 데이터를 입력받아 신드롬을 계산하는 리드 솔로몬 복호기의 신드롬 계산장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a Reed Solomon decoder for error correcting and decoding digital data subjected to error correcting coding (error control coding: ECC) by a Reed solomon encoder (RS encoder). The present invention relates to a syndrome calculation device of a Reed Solomon decoder which receives a Solomon-coded digital data and calculates a syndrome.
일반적으로, 에러 정정 부호화(ECC)는 디지털 데이터를 통신 채널을 통해 전송하거나 저장 매체에 저장시에 발생되는 에러를 검출 정정하기 위해 디지털 데이터를 부호화하는 것으로, 에러를 검출하거나 정정하는데 사용되는 데이터를 부가함으로써, 데이터의 신뢰도를 높이게 되는 것이다.In general, error correction coding (ECC) encodes digital data for detecting and correcting an error occurring when transmitting digital data through a communication channel or storing in a storage medium, and adds data used for detecting or correcting an error. This increases the reliability of the data.
이러한 에러 정정 코드(ECC)의 역사는 1948년 샤논(Claude Shannon)에서 부터 시작되었다. 샤논(Claude Shannon)은 1948년 모든 통신 채널은 C(bps)라고하는 고유의 전송 용량을 갖고 있으며 그 용량을 초과하지 않는 전송 속도 R(bps)로 데이터를 전송하는 통신 시스템을 구축하는 것은 에러 정정 부호를 이용하면 어떤 채널이고 가능하다는 것을 증명하였다. 즉, 아주 좋은 성능의 채널을 구현하는 것 보다 다소 성능이 떨어지는 기존 채널을 사용하면서 에러 정정 부호를 사용하는 것이 더 경제적이라는 것이다.The history of this error correction code (ECC) began in 1948 with Shannon. In 1948, Shannon Shannon established a communication system that transmits data at a transmission rate R (bps), which has a unique transmission capacity of C (bps) and does not exceed that capacity. Using the sign proves which channel is possible. In other words, it is more economical to use an error correction code while using an existing channel that is somewhat poorer than implementing a very good channel.
그러나, 샤논(Claude Shannon)은 단지 에러 정정 코드가 존재한다는 것만을 증명하였을 뿐이며 에러 정정 코드를 찾는 방법에 대해서는 언급하지 않았다.However, Shannon only proved that an error correction code exists and did not mention how to find the error correction code.
이에 따라, 에러 정정 코드를 찾기 위한 노력이 현재까지 꾸준히 진행되고 있으며, 이러한 에러 정정 코드는 크게 블록 코드(block code)와 논블록 코드(nonblock code)로 나누어진다. 상기 블록 코드는 정보 시퀀스를 k개의 비트로 이루어진 블록으로 분리한 다음 블록 단위로 에러 정정 부호하며, 상기 논블록 코드는 정보 시퀀스에 전체에 대해 에러 정정 부호화한다. 상기와 같은 블록 코드의 대표적인 예로는 BCH 코드(Bose and Ray-Chaudhuri and Hocquenghem code)와 리드 솔로몬 코드(RS code)를 들 수 있고, 논블록 코드의 대표적인 예로는 길쌈 부호(convolutional code)를 들 수 있다. 상기 BCH 코드는 사이클릭코드(cyclic code)로서 갈로아체 GF(2m)상에서 동작된다.Accordingly, efforts to find an error correction code have been steadily progressed up to now, and the error correction code is largely divided into a block code and a nonblock code. The block code divides the information sequence into blocks of k bits and then error corrects the code in block units. The non-block code encodes the entire information into the information sequence. Representative examples of such block codes include BCH codes (Bose and Ray-Chaudhuri and Hocquenghem code) and Reed Solomon codes (RS code), and representative examples of non-block codes include convolutional codes. have. The BCH code is operated on Galoache GF (2 m ) as a cyclic code.
사이클릭 코드란 선형 코드(liner code)의 어떤 선형 벡터를 사이클릭 시프트시키더라도 사이클릭 시프트된 선형 벡터가 상기 선형 코드의 선형 벡터인 선형 코드를 말한다.A cyclic code refers to a linear code in which a cyclic shifted linear vector is a linear vector of the linear code, regardless of cyclic shift of any linear vector of the linear code.
따라서, BCH 코드는 하기 제1식과 같이 코드 발생 다항식 g(x)이 정해지면 피드백 시프트 레지스터를 이용하여 코드를 부호화할 수 있다.Therefore, the BCH code can be coded using the feedback shift register when the code generation polynomial g (x) is determined as in the following Equation 1 below.
이때, 상기 BCH 코드는 발생 다항식 g(x)이 연속하는 2t개의 근을 가진다면 t개 까지의 에러는 정정할 수 있는 능력을 가진다.In this case, the BCH code has the ability to correct up to t errors if the generated polynomial g (x) has two consecutive roots.
한편, 리드 솔로몬 코드는 상기 BCH 코드의 최적 코드로서 코드 발생 다항식이 상기 제1식과 같이 정해지면 t개의 에러를 정정할 수 있다.On the other hand, the Reed Solomon code is an optimal code of the BCH code and can correct t errors if the code generation polynomial is determined as in the first equation.
따라서, 현재 리드 솔로몬 코드는 통신 및 컴퓨터 기억 시스템 등에 폭 넓게 사용될 뿐만 아니라 재밍에 대항하기 위한 한 방법으로서 비밀 통신 시스템에서 사용되기도 한다.Accordingly, Reed Solomon codes are currently used not only widely in communication and computer storage systems, but also in secret communication systems as a way to combat jamming.
이와 같은 상기 리드 솔로몬 코드는 상기 BCH 코드와 마찬가지로 갈로아체 GF(2m)상에서 동작된다. 즉, 상기 갈로아체 GF(2m)는 2m개의 원소를 갖는 수체계(number system)로서, 이러한 수체계를 하드웨어로 구현하게 되면 각 원소들이 모두 m개의 바이너리 디지트(digit)로 표현될 수 있으므로 디지털 구조에 효과적일 뿐만 아니라 오버 플로우(over flow)가 발생하지 않게 되는 것이다.This Reed Solomon code is operated on Galoache GF (2 m ) similarly to the BCH code. That is, the Galoache GF (2 m ) is a number system having 2 m elements. When the hardware system is implemented in hardware, each element may be represented by m binary digits. Not only is it effective for the digital structure, but no overflow occurs.
상기와 같이 갈로아체 GF(2m)상의 코드를 가지는 리드 솔로몬 코드는 정보와 패리티(parity)가 섞이지 않는 계통적 코드(systematic code)와 정보와 패리티(parity)가 섞이는 비계통적 코드(nonsystematic code)로 분류된다.Reed Solomon code having a code on Galoache GF (2 m ) as described above is a systematic code that does not mix information and parity, and a nonsystematic code that mixes information and parity. Are classified.
상기 계통적 코드는 정보와 패리티가 섞이지 않도록 우선 정보를 상위 바이트로 이동시킨 다음 에러 정정용 코드를 구하여 더한 것으로, 하기 제2식으로 부터 구해진다.The systematic code is obtained by first moving the information to a higher byte so as not to mix information and parity, and then obtaining an error correction code, and is obtained from the following equation.
상기 제2식에 있어서, 상기 c(x)는 코드워드 다항식이고, i(x)는 정보 다항식이며, t(x)는 에러 정정용 패리티의 다항식이다.In the second equation, c (x) is a codeword polynomial, i (x) is an information polynomial, and t (x) is a polynomial of error correction parity.
즉, 정보와 패리티 섞이지 않게 정보 i(x)를 χN-K차 만큼 상위 바이트로 이동시킨 다음를 만족하는 패리티 t(x)를 구한다.That is, the information i (x) is moved to the higher byte by χ NK difference so as not to mix information and parity, Find the parity t (x) that satisfies.
그리고,을 만족하는 패리티 t(x)를 하기 제3식으로부터 구할 수 있다.And, The parity t (x) that satisfies can be obtained from the following equation.
상기에 있어서는 코드워드 다항식 c(x)를 코드 발생 다항식 g(x)로 나눈 나머지값을 의미한다.In the above Denotes the remainder of the codeword polynomial c (x) divided by the code generation polynomial g (x).
즉, 상기 패리티 t(x)를 구하기 위해서는를 코드 발생 다항식 g(x)로 나누는 과정을 수행하여야 하며 이러한 과정은 시프트 레지스터를 코드 발생 다항식 g(x)에 따라 연결하여 구현할 수 있다.That is, to obtain the parity t (x) Is divided by the code generation polynomial g (x), which can be implemented by concatenating the shift registers according to the code generation polynomial g (x).
그리고, 상기 비계통적 코드는 하기 제4식과 같이 단순히 정보에 코드 발생 다항식 g(x)을 곱해 줌에 따라 정보와 패리티가 섞이게 된다.In the non-system code, information and parity are mixed by simply multiplying the information by the code generation polynomial g (x) as shown in Equation 4 below.
상기 제4식에서 c(x)는 n-1차의 코드워드 다항식이고, i(x)는 k-1차의 정보 다항식, g(x)는 n-k차의 코드 발생 다항식이다.In equation 4, c (x) is an n-1 order codeword polynomial, i (x) is an k-1 order information polynomial, and g (x) is an n-k order code generating polynomial.
상기 코드 발생 다항식 g(x)은 코드워드 다항식 c(x)를 만들어 내기 위해 정보 다항식 i(x)에 곱하지는 것으로, 이러한 코드 발생 다항식 g(x)을 하기 제5식과 같이 연속적인 2t개의 근을 가지도록 정하면 t개의 에러를 정정할 수 있다.The code generating polynomial g (x) is multiplied by the information polynomial i (x) to produce a codeword polynomial c (x). The code generating polynomial g (x) is multiplied by two consecutive roots as in Equation 5 below. If we set to have t errors, we can correct t errors.
상기와 같은 방법으로 리드 솔로몬 부호화된 디지털 데이터를 리드 솔로몬 복호화하는 방법은 크게 주파수 영역 복호화와 시간 영역 복호화로 나누어지며, 상기 시간 영역에서 리드 솔로몬 복호화하는 과정은 다음과 같이 크게 4단계로 이루어진다.Reed-Solomon decoding of Reed-Solomon-coded digital data as described above is largely divided into frequency-domain decoding and time-domain decoding, and the process of Reed-Solomon decoding in the time domain is performed in four steps as follows.
1)신드롬 계산1) Calculation of syndrome
수신된 데이터 r(x)는 하기 제6식과 같이 코드워드 다항식 c(x)과 전송중에 발생된 에러 다항식 e(x)를 더한 값으로 표현될 수 있다.The received data r (x) may be expressed as a sum of a codeword polynomial c (x) and an error polynomial e (x) generated during transmission, as shown in Equation 6 below.
따라서 , 하기 제7식과 같이 수신된 데이터 r(x)에 코드 발생 다항식 g(x)의 근 a0~a2t-1을 차례대로 대입함으로써 전송중에 에러가 발생되었는지를 알 수 있는 것이다.Therefore, it is possible to know whether an error has occurred during transmission by assigning the roots a 0 to a 2t-1 of the code generation polynomial g (x) in order to the received data r (x) as shown in Equation 7 below.
즉, 수신된 데이터 r(x)에 코드 발생 다항식 g(x)의 근 ai을 대입하여 수신된 데이터 r(x)가 0이 되면 전송중에 에러가 발생되지 않았다는 것을 의미하며, 수신된 데이터 r(x)에 코드 발생 다항식의 근 ai을 대입하여 수신된 데이터 r(x)가 0이 되지 않으면 i번째 위치 또는 i차에 에러가 발생하였다는 것을 의미한다.That is, when the received data r (x) becomes 0 by substituting the root a i of the code generation polynomial g (x) into the received data r (x), it means that no error occurred during transmission. If the received data r (x) does not become 0 by substituting root a i of the code generation polynomial in (x), it means that an error has occurred in the i th position or the i th order.
2) 에러 위치 다항식 계산(finding error location)2) Finding error location polynomial
Berlekamp-Massey 알고리즘 또는 Euclid 알고리즘으로부터 에러 위치 다항식의 계수를 계산한다.Compute the coefficients of the error location polynomials from the Berlekamp-Massey algorithm or the Euclid algorithm.
상기 알고리즘에 의해 구해진 에러 위치 다항식을 σ(X)라 하면 에러 정정 능력이 t인 리드 솔로몬 코드에서는 하기 제8식과 같이 최고 t차 이하의 다항식이 얻어진다.If the error position polynomial obtained by the above algorithm is sigma (X), a polynomial of not more than t is obtained in the Reed Solomon code having an error correction capability of t as shown in Equation 8 below.
3) 에러값 계산3) Error value calculation
상기 에러 위치 다항식 σ(X)에 a-t을 대입하면 에러의 위치를 찾는다.Substituting a -t into the error position polynomial σ (X) finds the position of the error.
즉, 에러 위치 다항식 σ(X)에 a-t을 대입하여 에러 위치 다항식 σ(X)이 0이 되면 i번째 위치 또는 i차에 에러가 발생된 것이다.That is, when a -t is substituted into the error position polynomial σ (X) and the error position polynomial σ (X) becomes 0, an error occurs at the i th position or the i th order.
그리고, 에러 평가 다항식 Ω(X)은 하기 제9식으로부터 구할 수 있다.The error evaluation polynomial? (X) can be obtained from the following ninth expression.
상기 제6식에서 S(X)는 신드롬 다항식이다.In Formula 6, S (X) is a syndrome polynomial.
이와 같이 에러 평가 다항식 Ω(X)을 구한 다음 하기 제10식으로부터 에러값 ei을 계산한다.Thus, the error evaluation polynomial Ω (X) is obtained and the error value e i is calculated from the following equation.
상기 제10식에서는 σ'는 에러 위치 다항식 σ을 미분한 값이다.In Equation 10, σ 'is a value obtained by differentiating the error position polynomial σ.
4) 에러 정정4) Error correction
상기와 같이 에러값을 구한 다음 하기 제 11식을 이용하여 원래의 코드워드 다항식 c(x)를 구하는 것이다.After the error value is obtained as described above, the original codeword polynomial c (x) is obtained by using Equation 11 below.
이때, 갈로아체 특성상 같은 값을 더하면 0이 되므로 e(x)+ e(x)=0 이되는 것이다.At this time, if the same value is added to the characteristics of galloise becomes 0, e (x) + e (x) = 0.
한편, 상기와 같은 과정으로 이루어진 리드 솔로몬 복호화 방법을 하드웨어로 구현한 일반적인 리드 솔로몬 복호기는 제1도에 도시한 바와 같이, 리드 솔로몬 부호화된 수신 신호 r(x)를 일시 저장하였다가 출력하는 선입선출버퍼(1)와 : 상기 리드 솔로몬 부호화된 수신 신호 r(x)로부터 신드롬 Si을 계산하여 출력하는 신드롬 계산부(3) : 상기 신드롬 Si을 입력받아 에러 위치 다항식 σ(X)을 계산하여 출력하는 에러 위치 다항식 계산부(5) : 상기 신드롬 Si및 에러 위치 다항식 σ(X)을 입력받아 에러 평가 다항식 Ω(X)을 구하는 한편 상기 에러 평가 다항식 Ω(X)으로부터 에러값 ei를 구하고, 상기 선입선출버퍼(1)에서 출력된 수신 신호 r(x)에 상기 에러값 ei을 더해 수신 신호r(x)에 발생된 에러를 정정하는 에러 정정부(7) 및 : 상기 신드롬 계산부(3)와 에러 위치 다항식 계산부(5) 및 상기 에러 정정부(7)를 각각 제어하는 제어부(9)를 포함하여 구성되어 있다.On the other hand, a typical Reed Solomon decoder that implements the Reed Solomon decoding method as described above in hardware, as shown in FIG. 1, first-in, first-out of temporarily storing and outputting the Reed Solomon-coded received signal r (x). A buffer 1 and a syndrome calculator for calculating and outputting a syndrome S i from the Reed-Solomon-coded received signal r (x): A syndrome position polynomial σ (X) is calculated by receiving the syndrome S i . The error position polynomial calculating unit 5 outputs the error estimation polynomial Ω (X) by receiving the syndrome S i and the error position polynomial σ (X), and calculates an error value e i from the error evaluation polynomial Ω (X). An error correction unit 7 for correcting an error generated in the received signal r (x) by adding the error value e i to the received signal r (x) output from the first-in first-out buffer 1; Part (3) and error Is configured to include a value polynomial calculation unit 5 and a controller 9 that control each of the error correction unit (7).
상기 신드롬 계산부(3)는 수신 신호 r(x)를 입력받아 신드롬 Si을 계산하며, 이때 상기 신드롬 계산부(3)는 하나의 코드 워드 c(x)가 모두 입력되어야만 신드롬 계산이 완료된다.The syndrome calculation unit 3 receives the received signal r (x) and calculates syndrome S i . At this time, the syndrome calculation unit 3 completes the syndrome calculation only when one code word c (x) is input. .
그리고, 에러 위치 다항식 계산부(5)는 Berlekamp algorithm 이나 Euclid algorithm 등을 통하여 에러의 위치를 찾아낼 수 있는 다항식 즉 에러 위치 다항식 σ(X)을 계산하여 에러 정정부(7)로 출력한다. 에러 정정부(7)는 상기 에러 위치 다항식σ(X)과 상기 신드롬 계산부(3)에서 출력된 신드롬 Si으로부터 에러 평가 다항식Ω(X)을 구한 다음 상기 에러 평가 다항식 Ω(X)으로부터 에러값 ei을 구하여 상기 선입선출버퍼(1)에서 출력된 수신 신호 r(x)에 더해줌으로써 수신 신호 r(x)에 발생된 에러를 정정하여 에러 정정 복호화된 코드 워드 c(x)를 출력하는 것이다.The error position polynomial calculation unit 5 calculates a polynomial that can find the error position through the Berlekamp algorithm, the Euclid algorithm, or the like, and outputs the error position polynomial σ (X) to the error correction unit 7. The error correction unit 7 obtains an error evaluation polynomial Ω (X) from the error position polynomial σ (X) and the syndrome S i output from the syndrome calculation unit 3, and then obtains an error from the error evaluation polynomial Ω (X). Obtaining the value e i and adding the received signal r (x) output from the first-in first-out buffer 1 to correct an error generated in the received signal r (x) to output an error corrected decoded code word c (x). will be.
그리고, 상기 신드롬 계산부(3)는 제2도에 도시된 바와 같이, 리드 솔로몬 복호화된 수신 신호 r(x)를 심볼 클럭(sym_clk)에 따라 래치시켜 수신 심볼(ri)을 차례대로 입력하는 레지스터(11)와, 상기 레지스터(11)를 통해 수신 심볼(ri)을 차례대로 입력받아 코드 발생 다항식 g(x)의 각 근(a0~a2t-1)에 대해 신드롬(S0~S2t-1)을 계산하는 다수개(2t개)의 신드롬 계산셀(13-1~13-2t)을 포함하여 구성되어 있다.As shown in FIG. 2, the syndrome calculator 3 latches the read solo decoded received signal r (x) according to the symbol clock sym_clk to sequentially input the received symbol r i . The register 11 and the receiving symbol r i are sequentially input through the register 11 and the syndrome S 0 to each root a 0 to a 2t-1 of the code generation polynomial g (x) is received. A plurality of (2t) syndrome calculation cells 13-1 to 13-2t for calculating S 2t-1 ) are included.
예를 들어, 리드 솔로몬 코드 (N, K)를 리드 솔로몬 복호화하는 리드 솔로몬 복호기에 사용되는 신드롬 계산부(3)에서는 N-K=2t개의 신드롬 계산셀(13-1~13-2t)이 필요하게 된다. 즉, N개의 심볼(한개의 코드 워드)을 입력받아 동시에 2t개의 신드롬(S0~S2t-1)을 각각 계산하는 것이다.For example, in the syndrome calculation unit 3 used in the Reed Solomon decoder for decoding Reed Solomon codes (N, K), NK = 2t syndrome calculation cells 13-1 to 13-2t are required. . That is, it receives N symbols (one code word) and calculates 2t syndromes S 0 to S 2t-1 at the same time.
이때, 상기 각 신드롬 계산셀(13-1~13-2t)은 하기 제12식 같은 신드롬 계산 공식을 하드웨어적으로 구현한 것이다.In this case, each of the syndrome calculation cells 13-1 to 13-2t is a hardware implementation of a syndrome calculation formula such as the following equation 12.
상기에서 rj는 수신 신호 r(x)가 심볼 클럭에 동기되어 입력된 수신 심볼을 의미한다.In the above, r j means a received symbol in which the received signal r (x) is input in synchronization with the symbol clock.
상기 제12식을 하드웨어적으로 구현한 각 신드롬 계산셀(13-1~13-2t)은 제3도에 도시된 바와 같이, 수신 심볼(ri)과 중간값을 더하여 출력하는 갈로아체 덧셈기(31)와 : 코드 발생 다항식 g(x)의 근(ai)이 저장되어 있는 제1롬(33) : 1이 저장되어 있는 제2롬(35) : 외부로부터 입력된 선택신호에 따라 상기 각 롬(33, 35)에 저장되어 있는 값을 선택적으로 출력하는 다중화기(37) : 상기 갈로아체 덧셈기(31)에서 출력된 값과 상기 다중화기(37)를 통해 입력된 값을 곱하여 중간값을 출력하는 갈로아체 곱셈기(39) 및 : 상기 갈로아체 곱셈기(39)에서 출력된 중간값을 심볼 클럭(sym_clk)에 따라 래치시켜 상기 갈로아체 덧셈기(31)로 입력함과 더불어 신드롬(Si)으로서 출력하는 레지스터(41)를 포함하여 구성되어 있다.As shown in FIG. 3, each syndrome calculation cell 13-1 to 13-2t, which implements the 12th equation in hardware, includes a galloise adder for adding the received symbol r i and the median value. 31) and: first ROM 33, in which the root a i of the code generation polynomial g (x) is stored; second ROM 35, in which 1 is stored; Multiplexer 37 for selectively outputting the values stored in the ROM (33, 35): The intermediate value by multiplying the value output from the galloche adder 31 and the value input through the multiplexer 37 Galoache multiplier 39 to output: The intermediate value outputted from the galoache multiplier 39 is latched in accordance with the symbol clock sym_clk and input to the galloa adder 31 and as a syndrome S i . It is comprised including the register 41 to output.
상기 다중화기(37)는 코드워드 종료신호(cw_end)를 선택신호로 입력받도록 되어 있는 한편, 상기 코드워드 종료신호(cw_end)가 입력되면 상기 제2롬(35)에 저장되어 있는 1을 상기 갈로아체 곱셈기(39)로 입력하도록 되어 있다.The multiplexer 37 is configured to receive a codeword end signal cw_end as a selection signal, and when the codeword end signal cw_end is input, 1 is stored in the second ROM 35. It is input to the Aceh multiplier 39.
상기와 같이 구성된 종래의 신드롬 계산셀에 있어서, 갈로아체 덧셈기(31)는 수심 심볼(ri)과 래지스터(41)를 통해 입력된 중간값을 더하여 갈로아체 곱셈기(39)로 입력한다.In the conventional syndrome calculation cell configured as described above, the galloa adder 31 is input to the galloa multiplier 39 by adding the depth symbol r i and the intermediate value input through the register 41.
한편, 다중화기(37)는 제1롬(33)에 저장되어 있는 코드 발생 다항식 g(x)의 근(ai) 또는 제2롬(35)에 저장되어 있는 1을 선택적으로 출력한다.On the other hand, the multiplexer 37 selectively outputs 1 stored in the root a i of the code generation polynomial g (x) stored in the first ROM 33 or in the second ROM 35.
즉, 상기 다중화기(37)는 코드워드 종료신호(cw_end)를 선택신호로 입력받아 코드워드 종료신호(cw_end)가 입력되면 제2롬(35)에 저장되어 있는 1을 선택하여 출력하고, 그 외의 경우에는 제1롬(33)에 저장되어 있는 코드 발생 다항식 g(x)의 근(ai)을 선택하여 출력하는 것이다.That is, the multiplexer 37 receives the codeword end signal cw_end as a selection signal and, when the codeword end signal cw_end is input, selects and stores 1 stored in the second ROM 35. In other cases, the root a i of the code generation polynomial g (x) stored in the first ROM 33 is selected and output.
그리고, 갈로아체 곱셈기(39)는 상기 다중화기(37)를 통해 입력된 코드 발생 다항식 g(x)의 근(ai)또는 1을 상기 갈로아체 덧셈기(33)에서 입력된 값과 곱하여 레지스터(41)로 입력한다.In addition, the galloa multiplier 39 multiplies the root (a i ) or 1 of the code generation polynomial g (x) input through the multiplexer 37 with the value input from the galloa adder 33 to register ( Enter 41).
그리고, 상기 레지스터(41)는 상기 갈로아체 곱셈기(39)에서 입력된 중간값을 심볼 클럭에 따라 래치시켜 상기 갈로아체 덧셈기(33)로 다시 입력하는 것이다.In addition, the register 41 latches the intermediate value input from the galloise multiplier 39 according to a symbol clock and inputs it back into the galloise adder 33.
상기와 같은 과정을 반복하여, 최종적으로 신드롬(Si)이 상기 레지스터(41)에서 출력되는 것이다.By repeating the process as described above, it is finally a syndrome (S i) output from the register 41.
그러나, 상기와 같은 종래의 신드롬 계산셀은 1이 저장되어 있는 제2롬(35)과, 다중화기(37)를 사용함에 따라 그 구조가 복잡하고, 면적이 증가하여 초대규모 집적회로(VLSI)로 구현하기에 적당하지 않은 문제점이 있었다.However, the conventional syndrome calculation cell as described above has a complex structure and an area increase due to the use of the second ROM 35 and the multiplexer 37 where 1 is stored, thereby increasing the area of a large scale integrated circuit (VLSI). There was a problem that is not suitable for implementation.
따라서, 본 발명은 상기와 같은 종래의 제 문제점을 해소하기위한 것으로,다중화기를 사용하지 않고 신드롬 계산셀을 구현함으로써, 그 구조가 간단할 뿐만 아니라 면적이 감소된 리드 솔로몬 복호기의 신드롬 계산장치를 제공하는데 그 목적이 있다.Accordingly, the present invention has been made to solve the above-mentioned problems, and by implementing a syndrome calculation cell without using a multiplexer, it provides a syndrome calculation device of a Reed Solomon decoder having a simple structure and a reduced area. Its purpose is to.
이러한 목적을 달성하기 위한 본 발명에 따른 리드 솔로몬 복호기의 신드롬 계산장치는, 리드 솔로몬 복호화된 수신 신호를 심볼 클럭에 따라 래치시켜 수신 심볼을 차례대로 입력하는 레지스터와, 상기 레지스터를 통해 수신 심볼을 차례대로 입력받아 코드 발생 다항식의 각 근에 대해 신드롬을 계산하는 다수개의 신드롬 계산셀을 포함하여 구성된 신드롬 계산장치에 있어서, 상기 신드롬 계산셀이, 수신 심볼과 중간값을 더하여 출력하는 갈로아체 덧셈기와 : 상기 갈로아체 덧셈기에서 출력된 값을 심볼 클럭에 따라 래치시켜 출력하는 레지스터 : 코드 발생 다항식의 근이 저장되어 있는 롬 및 : 상기 롬에 저장되어 있는 코드 발생 다항식의 근과 상기 레지스터에서 출력된 값을 곱하여 중간값을 상기 갈로아체 덧셈기로 입력하는 갈로아체 곱셈기를 포함하여 구성된 것을 특징으로 한다.A syndrome calculation apparatus for a Reed Solomon decoder according to the present invention for achieving the above object comprises a register for latching a Reed Solomon decoded received signal according to a symbol clock to sequentially input a received symbol, and then sequentially receiving the received symbol through the register. A syndrome calculation device including a plurality of syndrome calculation cells for receiving syndromes and calculating syndromes for each root of a code generating polynomial, the syndrome calculation cell comprising: a galloche adder for outputting the received symbol plus the intermediate value; A register for latching and outputting the value output from the galloche adder according to a symbol clock; and a ROM storing a root of a code generating polynomial and a root of a code generating polynomial stored in the ROM and a value output from the register. Galoache multiplier that multiplies and inputs the median into the Galoache adder And it characterized in that configured included.
따라서, 다중화기를 사용하지 않고 신드롬 셀을 구현함에 따라 그 구조가 간단할 뿐만 아니라 면적이 감소되어, 초대규모 집적회로(VLSI)로 구현하기 용이한 것이다.Therefore, as a syndrome cell is implemented without using a multiplexer, the structure is not only simple, but the area is reduced, and thus it is easy to implement a large scale integrated circuit (VLSI).
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention;
제4도는 본 발명에 따른 신드롬 계산셀의 회로도로서, 본 발명에 따른 신드롬 계산셀은, 수신 심볼(r1)과 중간값을 더하여 출력하는 갈로아체 덧셈기(43)와 : 상기 갈로아체 덧셈기(43)에서 출력된 값을 심볼 클럭(sym_c1k)에 따라 래치시켜 출력하는 레지스터(45) : 코드 발생 다항식 g(x)의 근(ai)이 저장되어있는 롬(47) 및 :상기 롬(47)에 저장되어 있는 코드 발생 다항식 g(x)의 근(ai)과 상기 레지스터(45)에서 출력된 값을 곱하여 중간값을 상기 갈로아체 덧셈기(43)로 입력함과 더불어 신드롬(Si)으로서 출력하는 갈로아체 곱셈기(49)를 포함하여 구성되어 있다.4 is a circuit diagram of a syndrome calculation cell according to the present invention, wherein the syndrome calculation cell according to the present invention includes a galloa adder 43 for outputting by adding a reception symbol r 1 and an intermediate value: the galloa adder 43 Register 45 latches and outputs the value outputted by the symbol clock (sym_c1k) according to the symbol clock (sym_c1k): a ROM 47 in which the root a i of the code generation polynomial g (x) is stored, and the ROM 47 is stored. Multiply the root (a i ) of the code generation polynomial g (x) and the value output from the register 45 by inputting the intermediate value into the galloese adder 43 and as a syndrome S i . It is comprised including the galoache multiplier 49 which outputs.
상기 레지스터(45)는 코드워드 종료신호(cw_end)를 리셋단자(rst)를 통해 입력받아 리셋되도록 되어 있다.The register 45 receives a codeword end signal cw_end through a reset terminal rst and is reset.
상기와 같이 구성된 본 발명에 따른 리드 솔로몬 복호기의 신드롬 계산장치의 작용 및 효과를 상세히 설명하면 다음과 같다.Referring to the operation and effects of the syndrome calculation device of the Reed Solomon decoder according to the present invention configured as described above in detail as follows.
갈로아체 덧셈기(43)는 수심 심볼(r1)과 갈로아체 곱셈기(49)에서 입력된 중간값을 더하여 레지스터(45)로 입력한다. 이때, 상기 레지스터(45)는 코드워드 종료신호(cw_end)를 리셋단자(rst)통해 입력받아 리셋된다.The galloise adder 43 adds the depth symbol r 1 to the intermediate value input from the galloise multiplier 49 and inputs it to the register 45. At this time, the register 45 is reset by receiving the codeword end signal cw_end through the reset terminal rst.
그리고 상기 레지스터(45)는 상기 갈로아체 덧셈기(43)에서 출력된 값을 심볼 클럭(sym_c1k)에 따라 래치시켜 상기 갈로아체 곱셈기(49)로 입력한다. 갈로아체 곱셈기(49)는 롬(47)에 저장되어 있는 코드 발생 다항식 g(x)의 근(ai)과 상기 레지스터(45)에서 출력된 값을 곱하여 중간값을 상기 갈로아체 덧셈기(43)로 입력한다.The register 45 latches the value output from the galloche adder 43 according to the symbol clock sym_c1k and inputs the galache multiplier 49. The galloise multiplier 49 multiplies the root a i of the code generation polynomial g (x) stored in the ROM 47 by the value output from the register 45 and multiplies the intermediate value by the galloise adder 43. Enter
상기와 같은 과정을 반복하여, 최종적으로 상기 레지스터(45)에서 신드롬(Si)이 출력되는 것이다.By repeating the process as described above, it will be finally output the syndrome (S i) in the register (45).
이상에서 살펴본 바와 같이, 본 발명은 연산순서를 변경하여 종래에 코드 다항식의 근이나 1중 하나를 선택하기 위해 사용하던 다중화기를 제거할 수 있도록 신드롬 계산셀을 구현함에 따라 그 구조가 간단하게 되는 효과가 있다.As described above, the present invention has the effect that the structure is simplified by implementing the syndrome calculation cell to change the operation order to remove the multiplexer that is conventionally used to select the root or one of the code polynomial There is.
Claims (1)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960005447A KR100212830B1 (en) | 1996-02-29 | 1996-02-29 | Syndrome calculation apparatus of reed solomon decoder |
US08/755,580 US5805617A (en) | 1996-02-28 | 1996-11-25 | Apparatus for computing error correction syndromes |
EP96308523A EP0793351A1 (en) | 1996-02-28 | 1996-11-26 | Apparatus for computing error correction syndromes |
CN96120992A CN1158519A (en) | 1996-02-28 | 1996-12-03 | Apparatus for computing error correction syndromes |
JP8324097A JPH09247000A (en) | 1996-02-28 | 1996-12-04 | Syndrome calculating device for error correction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960005447A KR100212830B1 (en) | 1996-02-29 | 1996-02-29 | Syndrome calculation apparatus of reed solomon decoder |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970063960A KR970063960A (en) | 1997-09-12 |
KR100212830B1 true KR100212830B1 (en) | 1999-08-02 |
Family
ID=19452306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960005447A KR100212830B1 (en) | 1996-02-28 | 1996-02-29 | Syndrome calculation apparatus of reed solomon decoder |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100212830B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100785610B1 (en) * | 2000-07-05 | 2007-12-12 | 주식회사 대우일렉트로닉스 | High speed encoder of reed-solomon product coder |
-
1996
- 1996-02-29 KR KR1019960005447A patent/KR100212830B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR970063960A (en) | 1997-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7539927B2 (en) | High speed hardware implementation of modified Reed-Solomon decoder | |
US8176396B2 (en) | System and method for implementing a Reed Solomon multiplication section from exclusive-OR logic | |
EP0233075B1 (en) | Method and apparatus for generating error detection check bytes for a data record | |
KR100192795B1 (en) | Device for calculating error-locator polynominal in a rs decoder | |
JPH07202723A (en) | Decoder, error detection sequence generator that is used for it and decoding method | |
EP0660535B1 (en) | Apparatus for uniformly correcting erasure and error of received word by using a common polynomial | |
EP1102406A2 (en) | Apparatus and method for decoding digital data | |
US6263471B1 (en) | Method and apparatus for decoding an error correction code | |
US6735737B2 (en) | Error correction structures and methods | |
KR100212830B1 (en) | Syndrome calculation apparatus of reed solomon decoder | |
Al Azad et al. | A compact and fast FPGA based implementation of encoding and decoding algorithm using Reed Solomon codes | |
JP3241851B2 (en) | Error correction decoding device | |
KR100212825B1 (en) | Syndrome calculating apparatus of reed solomon decoder | |
KR100202945B1 (en) | An apparatus for measuring bit error rate in a reed-solomon decoder | |
EP0793352B1 (en) | Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder | |
KR100212826B1 (en) | Syndrome calculating apparatus of reed solomon decoder | |
KR100212829B1 (en) | Syndrome calculating apparatus of reed solomon decoder | |
KR100195749B1 (en) | Reed solomon decoder | |
KR100195739B1 (en) | Error appreciation apparatus of reed solomon decoder | |
KR100192788B1 (en) | Device for calculating coefficient of error-evaluator polynominal in a rs decoder | |
KR100212828B1 (en) | Syndrome calculating apparatus of reed solomon decoder | |
KR100192793B1 (en) | Error corrector of rs decoder | |
KR100192790B1 (en) | Device for calculating coefficient of error-evaluator polynominal in a rs decoder | |
KR100192802B1 (en) | Apparatus for calculating error-value and for correcting error in reed-solomon decoder | |
KR100191248B1 (en) | Reed solomon coder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |