KR100212825B1 - Syndrome calculating apparatus of reed solomon decoder - Google Patents

Syndrome calculating apparatus of reed solomon decoder Download PDF

Info

Publication number
KR100212825B1
KR100212825B1 KR1019960005130A KR19960005130A KR100212825B1 KR 100212825 B1 KR100212825 B1 KR 100212825B1 KR 1019960005130 A KR1019960005130 A KR 1019960005130A KR 19960005130 A KR19960005130 A KR 19960005130A KR 100212825 B1 KR100212825 B1 KR 100212825B1
Authority
KR
South Korea
Prior art keywords
syndrome
input
polynomial
syndrome calculation
adder
Prior art date
Application number
KR1019960005130A
Other languages
Korean (ko)
Other versions
KR970063954A (en
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 KR1019960005130A priority Critical patent/KR100212825B1/en
Priority to US08/755,580 priority patent/US5805617A/en
Priority to EP96308523A priority patent/EP0793351A1/en
Priority to CN96120992A priority patent/CN1158519A/en
Priority to JP8324097A priority patent/JPH09247000A/en
Publication of KR970063954A publication Critical patent/KR970063954A/en
Application granted granted Critical
Publication of KR100212825B1 publication Critical patent/KR100212825B1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (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)을 중간값과 차례대로 더하여 출력하는 갈로아체 덧셈기(30)와; 한 심볼 클럭 기간 동안에 다수개의 코드 발생 다항식 g(x)의 근(a0∼a7)을 차례대로 입력하는 근 입력부(40); 상기 갈로아체 덧셈기(30)에서 출력된 신호와 상기 근 입력부(40)에서 입력된 다수개의 코드 발생 다항식 g(x)의 근(a0∼a7)을 차례대로 곱하여 중간값을 출력하는 갈로아체 곱셈기(50) 및; 상기 갈로아체 곱셈기(50)에서 출력된 중간값을 래치시켜 상기 갈로아체 덧셈기(30)로 입력함과 더불어 신드롬(Si)으로서 출력하는 래치부(60)를 포함하여 구성되어, 한 개의 갈로아체 덧셈기와 갈로아체 곱셈기를 가지는 신드롬 계산셀이 다수개의 신드롬을 동시에 계산함에 따라 신드롬 계산장치의 구조를 단순화시킬 수 있을 뿐만 아니라 전체 면적이 감소하여 신드롬 계산장치를 초 대규모 집적회로(VLSI)로 구현하기 용이한 것이다.The present invention relates to a syndrome calculation device of a Reed Solomon decoder, comprising: a galloach adder (30) for adding a received symbol (ri) sequentially input through a register (11) and an intermediate value in order; A root input unit 40 for sequentially inputting roots a 0 to a 7 of a plurality of code generation polynomials g (x) during one symbol clock period; Galoache outputting the median value by sequentially multiplying the signals output from the galoache adder 30 and the roots a 0 to a 7 of the plurality of code generation polynomials g (x) input from the root input unit 40. Multiplier 50; And a latch unit 60 for latching the intermediate value output from the galloise multiplier 50 and inputting it to the galloise adder 30 and outputting as a syndrome Si. As the syndrome calculation cell with and galoache multiplier calculates multiple syndromes at the same time, the structure of the syndrome calculation device is not only simplified, but the total area is reduced, making it easy to implement the syndrome calculation device as a very large integrated circuit (VLSI). It is.

Description

리드 솔로몬 복호기의 신드롬 계산장치Syndrome Calculator of Reed Solomon Decoder

제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 timing diagram of a symbol clock and a bit clock used in a Reed Solomon decoder.

제5도는 본 발명에 따른 리드 솔로몬 복호기의 신드롬 계산셀의 1실시예의 회로도이다.5 is a circuit diagram of one embodiment 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 : 제어부 30 : 갈로아체 덧셈기9: control unit 30: Galoache adder

40 : 근 입력부 42 : 롬40: root input 42: ROM

44 : 제1다중화기 50 : 갈로아체 곱셈기44: first multiplexer 50: galloche multiplier

60 : 래치부 62 : 역다중화기60 latch portion 62 demultiplexer

64 : 레지스터부 66 : 제2다중화기64: register section 66: second multiplexer

본 발명은 리드 솔로몬 부호기(Reed solomon encoder : RS encoder)에 의해 에러 정정 부호화(error correcting coding, error control coding: 이하 ECC라 칭함)된 디지털 데이터를 에러 정정 복호화하는 리드 솔로몬 복호기에 관한 것으로, 특히 신드롬을 계산하는 신드롬 계산 셀(cell)을 비트 클럭에 의해 동작되도록 구현함으로써 그 구조가 간단한 리드 솔로몬 복호기의 신드롬 계산장치에 관한 것이다.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 (ECC) by a Reed solomon encoder (RS encoder). The present invention relates to a syndrome calculation device of a Reed Solomon decoder, which has a simple structure by implementing a syndrome calculation cell that calculates a value.

일반적으로, 에러 정정 부호화(ECC)는 디지털 데이터를 통신 채널을 통해 전송하거나 저장 매체에 저장시에 발생되는 에러를 검출 및 정정하기 위해 디지털 데이터를 부호화하는 것으로, 에러를 검출하거나 정정하는데 사용되는 데이터를 부가함으로써, 데이터의 신뢰도를 높이게 되는 것이다.In general, Error Correction Coding (ECC) encodes digital data to detect and correct errors that occur during transmission of digital data through a communication channel or storage in a storage medium. In addition, the reliability of the data is increased.

이러한 에러 정정 코드(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)은 단지 에러 정정 코드가 존재한다는 것만을 증명하였을 뿐이며, 에러 정정 코드를 찾는 방법에 대해서는 언급하지 않았다. 이에 따라, 에러 정정 코드를 찾기 위한 노력이 현재까지 꾸준히 진행되고 있으며, 이러한 에러 정정 코드는 크게 블록 코드(block code)와 논블록 코드(nonblock code)로 나누어진다. 상기 블록 코드는 정보 시퀀스를 k개의 비트로 이루어진 블록으로 분리한 다음, 블록 단위로 에러 정정 부호하며, 상기 논블록 코드는 정보 시퀀스 전체에 대해 에러 정정 부호화한다.However, Shannon only proved that an error correction code exists and did not mention how to find the error correction code. 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 blocks. The non-block code performs error correction coding on the entire information sequence.

상기와 같은 블록 코드의 대표적인 예로는 BCH 코드(Bose and Ray-Chaudhuri and Hocquenghem code)와 리드 솔로몬 코드(RS code)를 들 수 있고, 논블록 코드의 대표적인 예로는 길쌈 부호(convolutional code)를 들 수 있다. 상기 BCH 코드는 사이클릭 코드(cyclic code)로서 갈로아체 F(2m) 상에서 동작된다. 사이클릭 코드란 선형 코드(liner code)의 어떤 선형 벡터를 사이클릭 시프트시키더라도 사이클릭 시프트된 선형 벡터가 상기 선형 코드의 선형 벡터인 선형 코드를 말한다.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 F (2 m ) as a cyclic 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 a feedback shift register when the code generation polynomial g (x) is determined as in the following first equation.

이때, 상기 BCH 코드는 코드 발생 다항식 g(x)가 연속하는 2t개의 근을 가진다면 t개 까지의 에러를 정정할 수 있는 능력을 가진다.In this case, the BCH code has the ability to correct up to t errors if the code generation polynomial g (x) has two consecutive roots of t.

한편, 리드 솔로몬 코드는 상기 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 ) like 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)로 분류된다.The Reed Solomon code having a code on Galoache GF (2 m ) as described above is a systematic code in which information and parity are not mixed, and a nonsystematic code in which information and parity are mixed. Classified as

상기 계통적 코드는 정보와 패리티가 섞이지 않도록 우선 정보를 상위 바이트로 이동시킨 다음 에러 정정용 코드를 구하여 더한 것으로, 하기 제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 correcting code, which is obtained from the following equation.

상기 제2식에 있어서, 상기 c(x)는 코드워드 다항식이고, i(x)는 정보 다항식이며, t(x)는 에러 정정용 패리티기 다항식이다. 즉, 정보와 패리티를 섞이지 않게 정보 i(x)를 xN-K차 만큼 바이트로 이동시킨 다음 Rg(x)[c(x)]=0를 만족하는 패리티 t(x)를 구한다.In the second equation, c (x) is a codeword polynomial, i (x) is an information polynomial, and t (x) is an error correction parity polynomial. That is, the information i (x) is shifted by byte by NK differences so as not to mix information and parity, and then parity t (x) satisfying R g (x) [c (x)] = 0 is obtained.

그리고 Rg(x)[c(x)]=0을 만족하는 패리티 t(x)는 하기 제3식으로부터 구할 수 있다.The parity t (x) satisfying R g (x) [c (x)] = 0 can be obtained from the following formula.

상기 제3식에 있어서, Rg(x)[c(x)]는 코드워드 다항식 c(x)를 코드 발생 다항식 g(x)로 나눈 나머지값을 의미한다. 즉, 상기 패리티 t(x)를 구하기 위해서는 xN-Ki(x)를 코드 발생 다항식 g(x)로 나누는 과정을 수행하여야 하며, 이러한 과정은 시프트 레지스터를 코드 발생 다항식 g(x)에 따라 연결하여 구현할 수 있다.In Equation 3, R g (x) [c (x)] means a remainder obtained by dividing the codeword polynomial c (x) by the code generation polynomial g (x). In other words, in order to obtain the parity t (x), a process of dividing x NK i (x) by the code generation polynomial g (x) is performed. This process connects the shift registers according to the code generation polynomial g (x). Can be implemented.

그리고 상기 비계통적 코드는 하기 제4식과 같이 단순히 정보에 코드 발생 다항식 g(x)을 곱해 줌에 따라 정보와 패리티가 섞이게 된다.In the non-system code, information and parity are mixed by simply multiplying information by a code generation polynomial g (x), as shown in Equation 4 below.

상기 제4식에서 c(x)는 n-1 차의 코드워드 다항식이고, i(x)는 k-1 차의 정보 다항식, g(x)는 n-k 차의 코드 발생 다항식이다. 상기 코드 발생 다항식 g(x)은 코드워드 다항식 c(x)를 만들어 내기 위해 정보 다항식 i(x)에 곱해지는 것으로, 이러한 코드 발생 다항식 g(x)을 하기 제5식과 같이 연속적인 2t개의 근을 가지도록 정하면 t개의 에러를 정정할 수 있다.In the fourth equation, c (x) is a codeword polynomial of order n-1, i (x) is an information polynomial of order k-1, and g (x) is a code generation polynomial of order n-k. 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 2t roots as shown 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) syndrome calculation

수신된 데이터 r(x)는 하기 제6식과 같이 코드워드 다항식 c(x)에 전송중에 발생된 에러 다항식 e(x)를 더한 값으로 표현될 수 있다.The received data r (x) may be expressed as a codeword polynomial c (x) plus 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 the following equation (7).

즉, 수신된 데이터 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차 이하의 다항식이 얻어진다.The error position polynomial obtained by the above algorithm In the case of (X), in the Reed Solomon code having an error correction capability of t, a polynomial of up to t order or less is obtained as in Equation 8 below.

3) 에러값 계산3) Error value calculation

상기 에러 위치 다항식(X)에 a-t을 대입하면 에러의 위치를 찾는다. 즉, 에러 위치 다항식(X)에 a-t을 대입하여 에러 위치 다항식(X)이 0이 되면 i번째 위치 또는 i차에 에러가 발생된 것이다.The error location polynomial Substituting a -t for (X) finds the location of the error. That is, the error-position polynomial Error location polynomial by substituting a -t for (X) If (X) becomes 0, an error occurs in the i th position or the i th order.

그리고, 에러 평가 다항식(X)은 하기 제9식으로부터 구할 수 있다.And error evaluation polynomial (X) can be calculated | required from the following 9th formula.

상기 제6식에서 S(X)는 신드롬 다항식이다.In Formula 6, S (X) is a syndrome polynomial.

이와 같이 에러 평가 다항식(X)을 구한 다음, 하기 제10식으로부터 에러값 ei을 계산한다.Thus the error evaluation polynomial After (X) is obtained, the error value e i is calculated from the following equation.

상기 제10식에서'는 에러 위치 다항식을 미분한 값이다.In Formula 10 above 'Is the error position polynomial Is the derivative of.

4) 에러 정정4) Error correction

상기와 같이 에러값을 구한 다음, 하기 제11식을 이용하여 원래의 코드워드 다항식 c(x)를 구하는 것이다.After the error value is obtained as described above, the original codeword polynomial c (x) is obtained using the following Equation 11.

이때, 갈로아체 특성상 같은 값을 더하면 0이 되므로 e(x) + e(x) =0 이 되는 것이다.At this time, if the same value is added in 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 to temporarily store and output the Reed Solomon-coded received signal r (x). A buffer 1; A syndrome calculation unit (3) for calculating and outputting a syndrome S i from the Reed Solomon-coded received signal r (x); Error position polynomial receiving the syndrome S i An error position polynomial calculation unit 5 for calculating and outputting (X); The syndrome S i and the error position polynomial Error evaluation polynomial with input of (X) (X) while the error evaluation polynomial The error value e i is obtained from (X), and the error value e i is added to the received signal r (X) output from the first-in first-out buffer 1 to correct the error generated in the received signal r (X). Government (7); And a control unit 9 for controlling the syndrome calculation unit 3, the error position polynomial calculation unit 5, and the error correction unit 7, respectively.

상기 신드롬 계산부(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 may be a polynomial capable of finding an error position through a Berlekamp algorithm or an Euclid algorithm, that is, an error position polynomial. (X) is calculated and output to the error correction unit 7. The error correction unit 7 is the error position polynomial Error evaluation polynomial from (X) and syndrome S i output from syndrome calculation section 3 (X), and then the error evaluation polynomial An error value e i is obtained from (X) and added to 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), thereby correcting the error and decoding code word c ( x) is printed.

그리고 상기 신드롬 계산부(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 calculation unit 3 latches the read solo decoded received signal r (x) according to the symbol clock sym_clk and sequentially inputs the received symbol r i . (11) and the received symbols r i are sequentially input through the register 11, and syndromes S 0 to S are applied to the roots a 0 to a 2t-1 of the code generation polynomial g (x). A plurality of (2t) syndrome calculation cells 13-1 to 13-2t for calculating 2t-1 ) are included.

예를 들어, 리드 솔로몬 코드 (N, K)를 리드 솔로몬 복호화하는 리드 솔로몬 복호기에 사용되는 신드롬 계산부(3)에서는 N-K = 2t 개의 신드롬 계산셀(13-1∼13-2t)이 필요하게 된다. 즉, N개의 심볼(한개의 코드 워드)을 입력받아 동시에 2t개의 신드롬(So∼S2t-1)을 각각 계산하는 것이다.For example, in the syndrome calculation unit 3 used in the Reed Solomon decoder for Reed Solomon decoding the Reed Solomon codes (N, K), NK = 2t syndrome calculation cells 13-1 to 13-2t are required. . In other words, N symbols (one code word) are input to calculate 2t syndromes (S o -S 2t-1 ) at the same time.

이때, 상기 각 신드롬 계산셀(13-1∼13-2t)은 하기 제12식과 같은 신드롬 계산 공식을 하드웨어적으로 구현한 것이다.At this time, each of the syndrome calculation cells 13-1 to 13-2t is a hardware implementation of the syndrome calculation formula shown in Equation 12 below.

상기에서 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)과 중간값을 더하여 출력하는 갈로아체 덧셈기(21)와; 코드 발생 다항식 g(x)의 근(ai)이 저장되어 있는 롬(23); 상기 갈로아체 덧셈기(21)에서 출력된 신호와 상기 롬(23)에 저장되어 있는 코드 발생 다항식 g(x)의 근(ai)을 곱하여 중간값을 출력하는 갈로아체 곱셈기(25) 및; 상기 갈로아체 곱셈기(25)에서 출력된 중간값을 심볼 클럭(sym_clk)에 따라 래치시켜 상기 갈로아체 덧셈기(21)로 입력함과 더불어 신드롬(Si)으로서 출력하는 레지스터(27)를 포함하여 구성되어 있다.As shown in FIG. 3, each syndrome calculating cell 13-1 to 13-2t, which implements the twelfth equation, is added to a Galloche adder for outputting by adding a reception symbol r i and an intermediate value. 21); A ROM 23 in which the root a i of the code generation polynomial g (x) is stored; A galloise multiplier 25 for multiplying the signal output from the galloise adder 21 with the root a i of the code generation polynomial g (x) stored in the ROM 23 and outputting an intermediate value; Comprises a resistor 27, which was latched in accordance with the median value output from the Galois field multiplier 25 to the symbol clock (sym_clk) output as a syndrome (S i), with also input to the Galois field adder 21 It is.

이때, 상기 롬(23)에 저장되어 있는 코드 발생 다항식 g(x)의 근(ai)은, 신드롬(Si)를 계산하기 위한 코드 발생 다항식의 근으로서, 상기 첨자 i는 0∼2t-1 의 값을 가진다. 즉, 신드롬(S0)를 계산하기 위한 신드롬 계산셀(13-1)의 롬(23)에는 0차의 근(a0)이 저장되며, 신드롬(S1)을 계산하기 위한 신드롬 계산셀(13-2)의 롬(23)에는 1차의 근(a1)이 저장되는 것이다.At this time, the root a i of the code generation polynomial g (x) stored in the ROM 23 is the root of the code generation polynomial for calculating the syndrome Si, and the subscript i is 0 to 2t-1. Has the value That is, the root (a 0 ) of the 0th order is stored in the ROM 23 of the syndrome calculation cell 13-1 for calculating the syndrome S 0 , and the syndrome calculation cell for calculating the syndrome S 1 ( The primary root a 1 is stored in the ROM 23 of 13-2).

그러나, 상기와 같은 종래의 신드롬 계산장치는, 2t개의 신드롬(S0∼S2t-1)을 계산하기 위한 신드롬 계산셀(13-1∼13-2t)이 2t개 필요하고, 상기 각 신드롬 계산셀(13-1∼13-2t) 마다 갈로아체 덧셈기(21)와 갈로아체 곱셈기(25)가 필요하므로, 전체적으로 갈로아체 덧셈기(21)와 갈로아체 곱셈기(25)가 2t개 만큼 필요하게 된다.However, in the conventional syndrome calculation device as described above, 2t syndrome calculation cells 13-1 to 13-2t for calculating 2t syndromes S 0 to S 2t-1 are required, and each syndrome calculation is performed. Since each of the cells 13-1 to 13-2t requires a Galoache adder 21 and a Galoache multiplier 25, as a whole, 2t Galoache adders 21 and Galoache multipliers 25 are required.

따라서, 신드롬 계산장치의 구조가 복잡할 뿐만 아니라 신드롬 계산장치의 면적이 증가하여 초 대규모 집적회로(VLSI)로 구현하기 어려운 문제점이 있었다.Therefore, not only the structure of the syndrome calculation device is complicated, but also the area of the syndrome calculation device is increased, which makes it difficult to implement a very large integrated circuit (VLSI).

따라서, 본 발명은 상기와 같은 종래의 제 문제점을 해소하기 위한 것으로, 신드롬을 계산하는 신드롬 계산셀을 비트 클럭에 의해 동작되도록 구현함으로써 그 구조가 간단할 뿐만 아니라 면적이 감속된 리드 솔로몬 복호기의 신드롬 계산장치를 제공하는데 그 목적이 있다.Accordingly, the present invention is to solve the above-mentioned problems of the prior art, by implementing the syndrome calculation cell for calculating the syndrome to operate by the bit clock, the structure of the Reed Solomon decoder with a simple structure as well as reduced the area The purpose is to provide a computing device.

이러한 목적을 달성하기 위한 본 발명에 따른 리드 솔로몬 복호기의 신드롬 계산장치는, 리드 솔로몬 복호화된 수신 신호를 심볼 클럭에 따라 래치시켜 수신 심볼을 차례대로 입력하는 레지스터와, 상기 레지스터를 통해 수신 심볼을 차례대로 입력받아 코드 발생 다항식의 각 근에 대해 신드롬을 계산하는 다수개의 신드롬 계산셀을 포함하여 구성된 신드롬 계산장치에 있어서, 상기 신드롬 계산셀이, 상기 레지스터를 통해 입력된 수신 심볼을 중간값과 차례대로 더하여 출력하는 갈로아체 덧셈기와; 한 심볼 클럭 기간 동안에 다수개의 코드 발생 다항식의 근을 차례대로 입력하는 근 입력부; 상기 갈로아체 덧셈기에서 출력된 신호와 상기 근 입력부에서 입력된 다수개의 코드 발생 다항식의 근을 차례대로 곱하여 중간값을 출력하는 갈로아체 곱셈기 및; 상기 갈로아체 곱셈기에서 출력된 중간값을 래치시켜 상기 갈로아체 덧셈기로 입력함과 더불어 신드롬으로서 출력하는 래치부를 포함하여 구성된 것을 특징으로 한다.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 generation polynomial, wherein the syndrome calculation cell sequentially receives a received symbol input through the register in an intermediate order. In addition, a galloche adder for outputting; A root input unit which sequentially inputs the roots of a plurality of code generation polynomials during one symbol clock period; A galloise multiplier for outputting a median value by sequentially multiplying the signals output from the galloise adder with the roots of a plurality of code generation polynomials input from the root input unit; And a latch unit for latching an intermediate value output from the galloise multiplier, inputting the galloise adder, and outputting as a syndrome.

즉, 한 개의 갈로아체 덧셈기와 갈로아체 곱셈기를 가지는 한 개의 신드롬 계산셀이 다수개의 신드롬을 순차적으로 계산할 수 있도록 되어, 갈로아체 덧셈기 및 갈로아체 곱셈기의 수를 줄일 수 있는 것이다.That is, one syndrome calculating cell having one galloa adder and a galloa multiplier can calculate a plurality of syndromes in sequence, thereby reducing the number of galloa adders and galloa multipliers.

따라서, 본 발명은 신드롬 계산장치의 구조를 단순화시킬 수 있을 뿐만 아니라 전체 면적이 감소하여 신드롬 계산장치를 초 대규모 집적회로(VLSI)로 구현하기 용이한 것이다.Accordingly, the present invention not only simplifies the structure of the syndrome calculation device but also reduces the total area, making it easy to implement the syndrome calculation device as an ultra-large scale integrated circuit (VLSI).

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention;

유럽 위성 디지털 방송 규격인 DVB 스펙(spec)에서는 전송율이 약 60Mbps에 이르는데, 이를 심볼 클럭으로 환산하면 1심볼이 8비트로 구성되므로 전송율이 약 7.5Mbps가 된다. 즉, 제4도에 도시된 바와 같이, 한 심볼 클럭(symbol clock)의 사이클(cycle)은 133.3nsec 이고, 비트 클럭(bit clock)의 사이클은 상기 심볼 클럭의 1/8 인 16.67nsec이다.In the DVB spec (European satellite digital broadcasting standard), the transmission rate is about 60Mbps, which is converted into a symbol clock, so that one symbol is composed of 8 bits and thus the transmission rate is about 7.5Mbps. That is, as shown in FIG. 4, the cycle of one symbol clock is 133.3 nsec, and the cycle of the bit clock is 16.67 nsec, which is 1/8 of the symbol clock.

한편, 리드 솔로몬 복호기의 신드롬 계산장치는 수신 신호를 상기와 같은 심볼 클럭(symbol clock)에 동기시켜 입력받아 신드롬을 계산한다.On the other hand, the syndrome calculation device of the Reed Solomon decoder receives the received signal in synchronization with the symbol clock (symbol clock) as described above to calculate the syndrome.

예를 들어, 리드 솔로몬 코드(N, K)를 리드 솔로몬 디코딩하는 리드 솔로몬 디코더에서 쓰이는 신드롬 계산장치는 수신 신호를 심볼 클럭에 동기시켜 한 개의 코드 워드랑 N개의 심볼로 입력 받아 2t개의 신드롬을 각각 계산하는 것이다.For example, a syndrome calculation device used in a Reed Solomon decoder that reads Reed Solomon codes (N, K) from Reed Solomon decodes the received signal as a code word and N symbols by synchronizing the received signal with a symbol clock. To calculate.

이때, 신드롬을 계산하는 과정에서 시간적으로 가장 중요한 경로(critical path)는 갈로아체 GF(2m) 곱셈인데, 갈로아체 곱셈을 비트 클럭 사이클(약 16.67nsec) 동안에 동작시킬 수만 있다면 심볼 클럭 대신에 비트 클럭을 사용할 수 있는 것이다.At this time, the most critical time path in calculating the syndrome is Galoache GF (2 m ) multiplication, and if the Galoache multiplication can be operated for a bit clock cycle (approximately 16.67 nsec), the bit is used instead of the symbol clock. The clock can be used.

상기와 같은 조건을 만족하는 갈로아체 GF(2m) 곱셈기는 이미 제안되었으며, 그 일예로는 한국 특허 출원 번호 95-61391에 이미 제안된 갈로아체 GF(2m) 곱셈기를 들 수 있다.Galois field GF (2 m) multipliers satisfying the condition as mentioned above has already been proposed, and one example to be mentioned is the Galois field GF (2 m) multipliers already suggested in Korea Patent Application No. 95-61391.

따라서, 상기와 같이 연산 속도가 빠른 갈로아체 GF(2m) 곱셈기를 사용하게 되면, 신드롬 계산시에 비트 클럭을 사용할 수 있는 것이다.Therefore, when using the Galoache GF (2 m ) multiplier with a high operation speed as described above, it is possible to use the bit clock in the syndrome calculation.

즉, 제5도는 본 발명에 따른 신드롬 계산셀의 1실시예의 회로도로서, 리드 솔로몬 복호화된 수신 신호 r(x)를 심볼 클럭(sym_clk)에 따라 래치시켜 수신 심볼(ri)을 차례대로 입력하는 레지스터(11)와; 상기 레지스터(11)를 통해 차례대로 입력되는 수신 심볼(ri)을 중간값과 차례대로 더하여 출력하는 갈로아체 덧셈기(30); 한 심볼 클럭 기간 동안에 다수개의 코드 발생 다항식 g(x)의 근(a0∼a7)을 차례대로 입력하는 근 입력부(40); 상기 갈로아체 덧셈기(30)에서 출력된 신호와 상기 근 입력부(40)에서 입력된 다수개의 코드 발생 다항식 g(x)의 근(a0∼a7)을 차례대로 곱하여 중간값을 출력하는 갈로아체 곱셈기(50) 및; 상기 갈로아체 곱셈기(50)에서 출력된 중간값을 래치시켜 상기 갈로아체 덧셈기(30)로 입력함과 더불어 신드롬(Si)으로서 출력하는 래치부(60)를 포함하여 구성되어 있다.That is, FIG. 5 is a circuit diagram of an embodiment of a syndrome calculation cell according to the present invention, in which a read- Solomon-decoded received signal r (x) is latched in accordance with a symbol clock sym_clk to sequentially receive the received symbols r i . A register 11; A galloche adder (30) for adding the received symbols (r i ) sequentially input through the register (11) and adding the intermediate values in sequence; A root input unit 40 for sequentially inputting roots a 0 to a 7 of a plurality of code generation polynomials g (x) during one symbol clock period; Galoache outputting the median value by sequentially multiplying the signals output from the galoache adder 30 and the roots a 0 to a 7 of the plurality of code generation polynomials g (x) input from the root input unit 40. Multiplier 50; To latch the intermediate value output from the Galois field multiplier 50 is constituted by a latch portion 60 for outputting a syndrome (S i), with also input to the Galois field adder 30.

그리고, 상기 근 입력부(40)는, 코드 발생 다항식 g(x)의 근들(a0∼a7)이 저장되어 있는 롬(42) 및, 상기 롬(42)에 저장되어 있는 코드 발생 다항식 g(x)의 근들(a0∼a7)을 외부로부터 입력된 선택신호(81mux_sel)에 따라 다중화시켜 출력하는 제1다중화기(44)를 포함하여 구성되어 있다.The root input unit 40 includes a ROM 42 storing the roots a 0 to a 7 of the code generating polynomial g (x), and a code generating polynomial g stored in the ROM 42. and a first multiplexer 44 which multiplexes the roots a 0 to a 7 of x in accordance with a selection signal 81mux_sel input from the outside.

그리고, 상기 래치부(60)는, 상기 갈로아체 곱셈기(50)에서 출력된 중간값을 선택신호(18mux_sel)에 따라 역다중화하여 출력하는 역다중화기(62)와; 상기 역다중화기(62)에서 역다중화되어 출력된 신호들을 비트 클럭(bit_clk)에 따라 각각 래치시켜 출력하는 레지스터부(64) 및; 상기 레지스터부(64)에서 출력된 신호를 외부로부터 입력된 선택신호(81mux_sel)에 따라 다중화시켜 중간값을 상기 갈로아체 덧셈기(30)로 입력함과 더불어 신드롬(Si)으로서 출력하는 제2다중화기(66)를 포함하여 구성되어 있다.The latch unit 60 includes: a demultiplexer 62 for demultiplexing an intermediate value output from the galloise multiplier 50 according to a selection signal 18mux_sel; A register unit (64) for latching and outputting the signals demultiplexed and output from the demultiplexer (62) according to a bit clock (bit_clk); Second multiplexing and outputting as a syndrome (S i) by multiplexing with a box type the intermediate value to the Galois field adder 30 in accordance with the register 64. The selection signal (81mux_sel) inputs the output signal from the outside in It is comprised including the firearm (66).

상기 제1다중화기(44) 및 제2다중화기(66)는 동일한 선택신호(81mux_sel)를 입력받도록 되어 있는 한편, 상기 레지스터부(64)는 상기 역다중화기(62)에서 출력된 신호들을 비트 클럭(bit_clk)에 의해 각각 래치시켜 출력하는 8개의 레지스터(64-1∼64-8)로 이루어져 있다.The first multiplexer 44 and the second multiplexer 66 are configured to receive the same selection signal 81mux_sel, while the register unit 64 bit-clocks the signals output from the demultiplexer 62. It consists of eight registers 64-1 to 64-8 which are latched and output by (bit_clk), respectively.

이때, 상기 각 레지스터(64-1∼64-8)는 8비트의 병렬 입출력 레지스터로 이루어지는 한편, 상기 각 레지스터(64-1∼64-8)는 코드 워드 종료신호(cw_end)를 리셋단자(rst)를 통해 입력받아 리셋되도록 되어 있다.At this time, each of the registers 64-1 to 64-8 is composed of 8-bit parallel input / output registers, while each of the registers 64-1 to 64-8 resets the code word end signal cw_end. It is inputted through) and 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.

레지스터(11)는 수신신호 r(x)를 심볼 클럭(sym_clk)에 따라 래치시켜 수신 심볼(ri)을 차례대로 갈로아체 덧셈기(30)로 입력하고, 상기 갈로아체 덧셈기(30)는 상기 레지스터(11)를 통해 입력되는 수신 심볼(ri)을 래치부(60)의 제2다중화기(66)에 의해 선택된 중간값과 더하여 갈로아체 곱셈기(50)로 출력한다. 이때 다중화기(66)는 레지스터(64-1∼64-8)에 저장된 8개의 중간값을 순차적으로 선택하여 비트클럭에 따라 출력한다.The register 11 latches the received signal r (x) in accordance with the symbol clock sym_clk to input the received symbol r i into the galloese adder 30 in sequence, and the galloche adder 30 receives the register. The received symbol r i input through (11) is output to the galloise multiplier 50 in addition to the intermediate value selected by the second multiplexer 66 of the latch unit 60. At this time, the multiplexer 66 sequentially selects eight intermediate values stored in the registers 64-1 to 64-8 and outputs the result according to the bit clock.

한편, 근 입력부(40)의 제1다중화기(44)는 롬(42)에 저장되어 있는 8개의 코드 발생 다항식의 근(a0∼a7)을 외부로부터 입력된 선택신호(81mux_sel)에 따라 다중화시켜 상기 갈로아체 곱셈기(50)로 출력한다.On the other hand, the first multiplexer 44 in the near-input unit 40, depending on the muscle (a 0 ~a 7) the selection signals (81mux_sel) input from the outside of the eight code generating polynomial are stored in the ROM 42 Multiplexing is performed to the galloise multiplier 50.

그리고 상기 갈로아체 곱셈기(50)는 상기 제1다중화기(44)를 통해 입력된 코드 발생 다항식의 근(a0∼a7)과 상기 갈로아체 덧셈기(30)에서 출력된 신호를 차례대로 곱하여 래치부(60)의 역다중화기(62)로 출력하고, 상역다중화기(62)는 상기 갈로아체 곱셈기(50)에서 출력된 신호를 역다중화하여 레지스터부(64)의 각 레지스터(64-1∼64-8)로 출력한다.In addition, the galloise multiplier 50 latches by sequentially multiplying the roots (a 0 to a 7 ) of the code generation polynomial input through the first multiplexer 44 and the signal output from the galloise adder 30. Output to the demultiplexer 62 of the unit 60, the demultiplexer 62 demultiplexes the signal output from the galloche multiplier 50, each register 64-1 to 64 of the register unit 64; -8)

그리고 상기 각 레지스터(64-1∼64-8)는 비트 클럭(bit_clk)에 의해 상기 역다중화기(62)를 통해 입력된 신드롬 중간값을 래치하여 저장하고 있다가 제2다중화기(66)로 출력한다. 이때, 상기 레지스터부(64)의 각 레지스터(64-1∼64-8)는 한 코드 워드가 종료하였음을 뜻하는 코드 워드 종료신호(cw_end)를 리셋단자(rst)를 통해 입력받아 리셋된다.Each of the registers 64-1 through 64-8 latches and stores the intermediate value of the syndrome inputted through the demultiplexer 62 by the bit clock bit_clk and outputs the result to the second multiplexer 66. do. At this time, each register 64-1 to 64-8 of the register unit 64 is reset by receiving a code word end signal cw_end indicating that one code word is completed through the reset terminal rst.

그리고 상기 제2다중화기(66)는 상기 각 레지스터(64-1∼64-8)에서 출력된 신드롬 중간값을 외부로부터 입력된 선택신호(81mus_sel)에 따라 선택하여 상기 갈로아체 덧셈기(30)로 다시 입력한다. 즉, 심볼 클럭보다 8배 빠른 비트클럭(16.67nsec)을 이용하여 하나의 시드롬 클럭 주기동안에 8개의 신드롬을 순차적으로 계산함으로써 신드롬 계산장치에 필요한 하드웨어를 종래에 비해 약 1/8로 줄일 수 있는 것이다.The second multiplexer 66 selects the intermediate value of the syndromes output from the registers 64-1 to 64-8 according to a selection signal 81mus_sel input from the outside to the galloa adder 30. Enter it again. In other words, by sequentially calculating eight syndromes during one seed clock cycle using a bit clock (16.67 nsec) that is eight times faster than a symbol clock, hardware required for a syndrome calculation device can be reduced to about 1/8 compared to the conventional method. will be.

예를 들어, 리드 솔로몬 코드(204, 188)에서는 종래의 경우에 16개의 신드롬 계산셀이 필요하였으나, 본 발명에 따른 신드롬 계산셀을 사용하면 2개로 줄일 수 있다. 따라서, 갈로아체 덧셈기와 갈로아체 곱셈기를 1/8로 줄일 수 있는 것이다.For example, in the conventional Reed Solomon codes 204 and 188, 16 syndrome calculation cells are required, but the syndrome calculation cells according to the present invention can be reduced to two. Thus, the Galoache adder and the Galoache multiplier can be reduced to 1 / 8th.

상기와 같은 본 발명의 1실시예에서는 1심볼 클럭 사이클이 8 비트 클럭으로 되는 비트 클럭을 이용하여 한 개의 신드롬 계산셀에서 8개의 신드롬(예컨대, S0∼S7)을 계산하여 출력하는 구성에 대해서만 설명 및 도시화되어 있으나, 본 발명은 이에 한정되지 않고 1심볼 클럭의 사이클에 대해 2개 이상의 비트 클럭 사이클 갯수로 사용하기만 하면 된다.In one embodiment of the present invention as described above, the eight syndromes (for example, S 0 to S 7 ) are calculated and output from one syndrome calculation cell using a bit clock in which one symbol clock cycle is an eight-bit clock. Although described and illustrated only, the present invention is not limited thereto, and the present invention need only be used in the number of two or more bit clock cycles for one symbol clock cycle.

예를 들어, 1심볼 클럭 사이클이 16비트 클럭으로 되는 경우에는 제5도의 롬(42)에는 16개의 롬이 필요함과 더불어 레지스터부(64)의 레지스터가 16개 필요하게 되고, 1심볼 클럭 사이클이 36비트 클럭 사이클로 되는 경우에 제5도의 롬(42)에는 32개의 롬이 필요함과 더불어 레지스터부(64)의 레지스터가 32개 필요하게 되는 것이다. 그리고, 1심볼 클럭 사이클이 16비트 클럭 사이클이 되는 경우에는 필요한 신드롬 계산셀이 (2t-1)/16 개가 되고, 1심볼 클럭 사이클이 32비트 클럭 사이클이 되는 경우에는 필요한 신드롬 계산셀이 (2t-1)/32 개가 되는 것이다.For example, in the case where one symbol clock cycle becomes a 16-bit clock, the ROM 42 of FIG. 5 requires 16 ROMs, and 16 registers of the register unit 64 require one symbol clock cycle. In the case of 36-bit clock cycles, the ROM 42 of FIG. 5 requires 32 ROMs and 32 registers of the register unit 64. If one symbol clock cycle becomes 16-bit clock cycles, the required syndrome calculation cells are (2t-1) / 16. If one symbol clock cycle becomes 32-bit clock cycles, the required syndrome calculation cells are (2t). -1) / 32.

이때, 상기와 같이 신드롬 계산셀의 신드롬 계산 능력을 확장시키기 위해서는 갈로아체 곱셈기의 연산 속도가 상기 조건을 만족시킬 수 있으면 된다.In this case, in order to expand the syndrome calculation capability of the syndrome calculation cell, the computational speed of the galloise multiplier may satisfy the above condition.

따라서, 상기 1심볼 클럭 사이클에 해당하는 비트 클럭 사이클의 갯수는 상기와 같은 갈로아체 곱셈기의 연산 속도를 만족시키면서 수신 신호 r(x)에 따라 최적의 갯수로 설계하면 된다.Therefore, the number of bit clock cycles corresponding to the one symbol clock cycle may be designed to an optimal number according to the received signal r (x) while satisfying the computational speed of the Galois multiplier.

이상에서 살펴본 바와 같이, 본 발명은 심볼 클럭에 따라 신드롬을 계산하는 종래의 장치에 비해 비트 클럭에 따라 동작시키므로써 하드웨어를 간단하게 하는 효과가 있다. 즉, t비트를 에러정정하기 위해서는 2t개의 신드롬 연산이 필요한데 이를 심볼클럭에 따라 동작시킬 경우에는 2t개의 신드롬 계산셀이 필요하나 본 발명에서는 심볼클럭보다 8배 빠른 비트 클럭을 사용하여 요구되는 신드롬 계산셀의 수를 종래보다 1/8로 줄일 수 있고, 따라서 초 대규모 집적회로(VLSI)로 구현하기 용이한 것이다.As described above, the present invention has the effect of simplifying the hardware by operating according to the bit clock compared to the conventional apparatus for calculating the syndrome according to the symbol clock. That is, 2t syndrome operations are required for error correction of t bits, but when operating according to a symbol clock, 2t syndrome calculation cells are required. However, in the present invention, the required syndrome is calculated using a bit clock that is eight times faster than a symbol clock. The number of cells can be reduced to one eighth of the prior art, and therefore, it is easy to implement a very large integrated circuit (VLSI).

Claims (3)

리드 솔로몬 부호화된 수신신호 r(x)의 수신심불(ri)을 심볼클럭에 따라 순차적으로 입력받는 레지스터(11)와, 상기 레지스터(11)를 통해 수신심볼(ri)을 차례대로 입력받아 코드 발생 다항식 g(x)의 근(ai)에 대해 신드롬(Si)을 계산하는 다수개의 신드롬 계산셀(13)을 포함하여 구성된 리드 솔로몬 복호기의 신드롬 계산장치에 있어서, 상기 신드롬 계산셀(13)이, 상기 레지스터(11)를 통해 입력되는 수신심볼(ri)과 중간값을 비트클럭 단위로 더하는 갈로아체 덧셈기(30)와; 한 심볼 클럭 기간 동안에 다수개의 코드 발생 다항식 g(x)의 근(a0∼a7)을 선택신호에 따라 출력하는 근 입력부(40); 상기 갈로아체 덧셈기(30)의 출력과 상기 근 입력부(40)로부터 입력된 코드 발생 다항식 g(x)의 근(a0∼a7)을 비트클럭 단위로 곱하여 상기 중간값을 출력하는 갈로아체 곱셈기(50) 및; 상기 갈로아체 곱셈기(50)에서 출력된 중간값을 일시 저장하여 상기 갈로아체 덧셈기(30)로 제공하고, 코드워드 종료신호에 따라 신드롬(Si)으로서 출력하는 래치부(60)를 포함하여 심볼클럭에 따라 심볼에 대하여 비트클럭에 따라 연산하여 신드롬을 계산하는 것을 특징으로 하는 리드 솔로몬 복호기의 신드롬 계산장치.Receiving signal (r i ) of the received signal r (x) of the Reed-Solomon-encoded signal is sequentially input according to the symbol clock, and the receiving symbol (r i ) through the register 11 in order In the syndrome calculation device of the Reed Solomon decoder comprising a plurality of syndrome calculation cells 13 for calculating the syndrome S i with respect to the root a i of the code generating polynomial g (x), the syndrome calculation cell ( 13), a galloach adder (30) for adding a reception symbol (r i ) inputted through the register (11) and an intermediate value in bit clock units; A root input unit 40 for outputting the roots a 0 to a 7 of the plurality of code generation polynomials g (x) in accordance with a selection signal during one symbol clock period; A galloa multiplier for outputting the intermediate value by multiplying the output of the galloise adder 30 and the root (a 0 to a 7 ) of the code generation polynomial g (x) input from the root input unit 40 by the unit of bit clock 50 and; Symbols by a latch portion 60 for the temporary storage of the intermediate values output from the Galois field multiplier 50 is provided to the Galois field adder 30 and output as a syndrome (S i) according to the codeword end signal A syndrome calculation device for a Reed Solomon decoder, characterized in that a calculation is performed on a symbol according to a clock to calculate a syndrome. 제1항에 있어서, 상기 근 입력부(40)는, 코드 발생 다항식 g(x)의 근들(a0∼a7)이 저장되어 있는 롬(42)과, 상기 롬(42)에 저장되어 있는 코드 발생 다항식 g(x)의 근들(a0∼a7)을 외부로부터 입력된 선택신호(81mux_sel)에 따라 선택하여 출력하는 제1다중화기(44)를 포함하는 것을 특징으로 하는 리드 솔로몬 복호기의 신드롬 계산장치.The root input unit (40) according to claim 1, wherein the root input unit (40) includes a ROM (42) in which the roots (a 0 to a 7 ) of the code generation polynomial g (x) are stored, and a code stored in the ROM (42). And a first multiplexer 44 for selecting and outputting roots a 0 to a 7 of the generated polynomial g (x) according to a selection signal 81mux_sel input from the outside. Computing device. 제1항에 있어서, 상기 래치부(60)는, 상기 갈로아체 곱셈기(50)의 출력을 외부로부터 입력된 선택신호(18mux_sel)에 따라 분배하는 역다중화기(62)와; 상기 역다중화기(62)에서 분배되어 입력된 신호들을 비트 클럭(bit_clk)에 따라 각각 래치하여 저장하는 레지스터부(64) 및; 상기 레지스터부(64)의 출력을 외부로부터 입력된 선택신호(81mux_sel)에 따라 선택하여 상기 갈로아체 덧셈기(30)로 제공하는 제2다중화기(66)를 포함하는 것을 특징으로 하는 리드 솔로몬 복호기의 신드롬 계산장치.The apparatus of claim 1, wherein the latch unit (60) comprises: a demultiplexer (62) for distributing the output of the galloche multiplier (50) according to a selection signal (18mux_sel) input from the outside; A register unit (64) for latching and storing the signals distributed and input by the demultiplexer (62) according to a bit clock (bit_clk); And a second multiplexer (66) for selecting the output of the register (64) according to the selection signal (81mux_sel) input from the outside and providing the output to the galloche adder (30). Syndrome calculator.
KR1019960005130A 1996-02-28 1996-02-28 Syndrome calculating apparatus of reed solomon decoder KR100212825B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1019960005130A KR100212825B1 (en) 1996-02-28 1996-02-28 Syndrome calculating 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
KR1019960005130A KR100212825B1 (en) 1996-02-28 1996-02-28 Syndrome calculating apparatus of reed solomon decoder

Publications (2)

Publication Number Publication Date
KR970063954A KR970063954A (en) 1997-09-12
KR100212825B1 true KR100212825B1 (en) 1999-08-02

Family

ID=19452118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960005130A KR100212825B1 (en) 1996-02-28 1996-02-28 Syndrome calculating apparatus of reed solomon decoder

Country Status (1)

Country Link
KR (1) KR100212825B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100543041B1 (en) * 1999-01-15 2006-01-20 삼성전자주식회사 Reed solomon decoder having premultiplication function

Also Published As

Publication number Publication date
KR970063954A (en) 1997-09-12

Similar Documents

Publication Publication Date Title
US7539927B2 (en) High speed hardware implementation of modified Reed-Solomon decoder
JP3046988B2 (en) Method and apparatus for detecting frame synchronization of data stream
EP0233075B1 (en) Method and apparatus for generating error detection check bytes for a data record
US5805617A (en) Apparatus for computing error correction syndromes
KR19980033277A (en) Galois field multiplier for Reed-Solomon decoder
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
US6263471B1 (en) Method and apparatus for decoding an error correction code
EP1102406A2 (en) Apparatus and method for decoding digital data
KR100212825B1 (en) Syndrome calculating apparatus of reed solomon decoder
KR100212830B1 (en) Syndrome calculation apparatus of reed solomon decoder
KR100195749B1 (en) Reed solomon decoder
KR100212829B1 (en) Syndrome calculating apparatus of reed solomon decoder
EP0793352B1 (en) Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder
KR100212828B1 (en) Syndrome calculating apparatus of reed solomon decoder
US20050033791A1 (en) Single error Reed-Solomon decoder
KR100192788B1 (en) Device for calculating coefficient of error-evaluator polynominal in a rs decoder
KR100192790B1 (en) Device for calculating coefficient of error-evaluator polynominal in a rs decoder
KR100212826B1 (en) Syndrome calculating apparatus of reed solomon decoder
KR100195739B1 (en) Error appreciation apparatus of reed solomon decoder
KR100191248B1 (en) Reed solomon coder
KR100202945B1 (en) An apparatus for measuring bit error rate in a reed-solomon decoder
KR100192802B1 (en) Apparatus for calculating error-value and for correcting error in reed-solomon decoder
KR100192793B1 (en) Error corrector of rs decoder
KR100212827B1 (en) Appreciation apparatus of reed solomon decoder

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