KR100195749B1 - 리드 솔로몬 복호기 - Google Patents

리드 솔로몬 복호기 Download PDF

Info

Publication number
KR100195749B1
KR100195749B1 KR1019960037604A KR19960037604A KR100195749B1 KR 100195749 B1 KR100195749 B1 KR 100195749B1 KR 1019960037604 A KR1019960037604 A KR 1019960037604A KR 19960037604 A KR19960037604 A KR 19960037604A KR 100195749 B1 KR100195749 B1 KR 100195749B1
Authority
KR
South Korea
Prior art keywords
value
error
output
signal
galois field
Prior art date
Application number
KR1019960037604A
Other languages
English (en)
Other versions
KR19980017787A (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 KR1019960037604A priority Critical patent/KR100195749B1/ko
Publication of KR19980017787A publication Critical patent/KR19980017787A/ko
Application granted granted Critical
Publication of KR100195749B1 publication Critical patent/KR100195749B1/ko

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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6519Support of multiple transmission or communication standards

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

본 발명은 DVB(digital video broadcasting)스펙과 DSS(direct satellite system)스펙의 리드 솔로몬 부호를 동시에 복호화시킬 수 있는 리드 솔로몬 복호기에 관한
것으로, 리드 솔로몬 부호화된 수신 심볼을 입력받는 입력수단(1)과; 스펙 전환 신호(DVB-DSS)에 따라 수신 심볼(ri(x))을 소정 지연시간 후 출력하는 선입선출수단(2); 상기 스펙 전환 신호(DVB-DSS)에 따라 DVB스펙과 DSS스펙의 각각에 해당하는 마지막 심볼까지 모든 코드 워드가 입력 되었을 때, 계산된 신드롬(Si)을 출력하는 신드롬 계산수단(3); 상기 신드롬(Si)을 입력받아 에러 위치 다항식(σ(X))을 계산하여 계수(σ_COEF)및, 차수(L)를 출력하는 에러 위치 다항식 계산수단(6); 상기스펙 전환 신호(DVB_DSS)에 따라 에러 평가 다항식(Ω(X))을 구하는 한편, 에러값 ei을 구하고, 수신 심벌(ri)에 상기 에러값(ei)을 더해 발생된 에러를 정정함과 동시에, 상기 에러 위치 다항식의 차수(L)를 입력받아 정정된 신호가 정확한지를 판단하여 그 결과를 출력하는 에러 정정수단(7) 및; 상기 선입선출수단(2)과, 상기 신드롬 계산수단(3), 에러 위치 다항식 계산수단(6) 및, 상기 에러 정정수단(7)을 제어하는 제어수단(8)로 구성되므로써, 하나의 칩으로 DVB스펙과 DSS스펙을 동시에 수용할 수 있는 효과가 있는 것이다.

Description

리드 솔로몬 복호기 (Reed-Solomon Decoder)
본 발명은 에러 정정 부호화(error correcting coding, error control coding : 이하 ECC라 칭함)되어 전송된 디지털 데이터를 에러 정정 복호화하는 리드 솔로몬 복호기에 관한 것으로, 특히 DVB(digital video broadcasting)스펙과 DSS(direct satellite system)스펙의 리드 솔로몬 부호를 동시에 복호화시킬 수 있는 리드 솔로몬 복호기에 관한 것이다.
일반적으로, 에러 정정 부호화(ECC)는 디지털 데이터를 통신 채널을 통해 전송하거나 저장 매체에 저장시에 발생되는 에러를 검출·정정하기 위해 디지털 데이터를 부호화하는 것으로서, 에러를 검출하거나 정정하는데 사용되는 검사 데이터를 부가함으로써, 데이터의 신뢰도를 높이게 되는 것이다.
이러한 에러 정정 코드는 크게 블록 코드(block code)와 난블록 코드(nonblock code)로 나누어지는데, 상기 블록 코드는 정보 시퀀스를 k개의 비트로 이루어진 블록으로 분리한 다음 블럭 단위로 에러 정정 부호화하며, 상기 난블록 코드는 정보 시퀀스의 입력순서에 따라 에러 정정 부호화를 수행한다. 블록 코드의 대표적인 예로는 BCH 코드(Bose and Ray-Chaudhuri and Hocquenghem code)와 리드 솔로몬 코드(RS code)가 있고, 난블록 코드의 대표적인 예로는 길쌈 부호(convolutional code)가 있다.
상기 BCH 코드는 사이클릭 코드(cyclic code)로서 2m개의 원소를 갖는 갈로아체 GF(2m) 상에서 동작된다. 사이클릭 코드란 선형 코드(liner code)의 어떤 선형 벡터를 사이클릭 시프트시키더라도 사이클릭 시프트된 선형 벡터가 상기 선형 코드의 선형 벡터에 속하는 선형 코드를 말한다.
따라서, BCH 코드는 하기 수학식 1 과 같이 코드 발생 다항식 g(x)이 정해지면 피드백 시프트 레지스터를 이용하여 코드를 부호화할 수 있다.
[수학식 1]
이때, 상기 BCH 코드는 코드 발생 다항식 g(x)이 연속하는 2t 개의 근을 가진다면 t 개 까지의 에러를 정정할 수 있는 능력을 가진다.
리드 솔로몬 코드는 상기 BCH 코드의 최적 코드로서, 코드 발생 다항식이 상기 수학식 1 과 같이 정해지면 t 개의 에러를 정정할 수 있기 때문에 통신 및 컴퓨터 기억 시스템 등에 폭 넓게 사용될 뿐만 아니라 재밍(jamming)에 대항하기 위한 방법으로서 비밀 통신 시스템에서 사용되기도 한다.
이와 같은 상기 리드 솔로몬 코드는 갈로아체 GF(2m) 상에서 동작되어 (상기 갈로아체 필드 GF(2m)는 2m개의 원소를 갖는 수체계(number system)로서, 이러한 수체계를 하드웨어로 구현하게 되면 각 원소들이 모두 m개의 바이너리 디지트(binary digit)로 표현될 수 있으므로) 디지탈 구조에 효과적이며, 뿐만 아니라 오버 플로우(over flow)가 발생하지 않게 된다.
상기와 같이 갈로아체 필드 GF(2m) 상의 코드를 가지는 리드 솔로몬 코드는 정보와 패리티(parity)가 섞이지 않는 계통적 코드(systematic code)와 정보와 패리티(parity)가 섞이는 비계통적 코드(nonsystematic code)로 분류된다.
상기 계통적 코드는 정보와 패리티가 섞이지 않도록 우선 정보를 상위 바이트로 이동시킨 다음 에러 정정용 코드를 구하여 더한 것으로, 수학식 2로부터 구해진다.
[수학식 2]
상기 수학식 2에 있어서, 상기 c(x)는 코드워드 다항식이고, i(x)는 정보 다항식이며, t(x)는 에러 정정용 패리티의 다항식이다. 즉, 정보와 패리티를 섞이지 않게 정보 i(x)를차 만큼 상위 바이트로 이동시킨 다음,를 만족하는 패리티 t(x)를 구한다. 여기서,을 만족하는 패리티 t(x)는 수학식 3 으로부터 구할 수 있다.
[수학식 3]
상기에 있어서는 코드워드 다항식 c(x)를 코드 발생 다항식 g(x)로 나눈 나머지값을 의미한다. 즉, 상기 패리티 t(x)를 구하기 위해서는를 코드 발생 다항식 g(x)로 나누는 과정을 수행하여야 하며, 이러한 과정은 시프트 레지스터를 코드 발생 다항식 g(x)에 따라 연결하여 구현할 수 있다.
그리고, 상기 비계통적 코드는 수학식 4 와 같이 단순히 정보 i(x)에 코드 발생 다항식 g(x)을 곱해 주므로써 정보와 패리티가 섞여 코드화를 이룬다.
[수학식 4]
상기 수학식 4에서 c(x)는 n-1 차의 코드워드 다항식이고, i(x)는 k-1 차의 정보 다항식, g(x)는 n-k 차의 코드 발생 다항식이다.
상기 코드 발생 다항식 g(x)은 코드워드 다항식 c(x)를 만들어 내기 위해 정보 다 항식 i(x)에 곱해지는 것으로, 이러한 코드 발생 다항식 g(x)을 수학식 5 와 같이 연속적인 2t개의 근을 가지도록 정하면 t개의 에러를 정정할 수 있다.
[ 수학식 5]
상기와 같은 방법으로 리드 솔로몬 부호화된 디지털 데이타를 리드 솔로몬 복호화하는 방법은 크게 주파수 영역 복호화와 시간 영역 복호화로 나누어지며, 상기 시간 영역에서 리드 솔로몬 복호화하는 과정은 다음과 같이 크게 3 단계로 이루어진다.
(1) 신드롬 계산
수신된 데이터 γ(x)는 수학식 6 과 같이 코드워드 다항식 c(x)과 전송중에 발생된 에러 다항식 e(x)를 더한 값으로 표현될 수 있다.
[수학식 6]
따라서, 하기 수학식 7a 과 같이 수신된 데이터 r(x)에 코드 발생 다항식 g(x)의 근 α0∼α2t-1을 차례대로 대입함으로써 전송중에 에러가 발생되었는지를 알 수 있는 것이다.
[수학식 7]
즉, 수신된 데이터 γ(x)에 코드 발생 다항식 g(x)의 근 αi을 대입하여 수신된 데이터 γ(x)가 0이면 전송중에 에러가 발생되지 않았다는 것을 의미하며, 수신 데이터 γ(x)가 0이 아니면 에러가 발생하였다는 것을 의미한다.
또한, 상기 수학식 7a의 신드롬 계산식은 하기 수학식 7b와 같이 리커시브한 형태로 표현된다.
[수학식 7b]
(2) 에러 위치 다항식 계산(finding error location)
Berlekamp-Massey 알고리즘 또는 Euclid 알고리즘으로부터 에러 위치 다항식의 계수를 계산한다. 상기 알고리즘에 의해 구해진 에러 위치 다항식을 σ(X)라 하면 에러 정정 능력이 t인 리드 솔로몬 코드에서는 수학식 8 과 같이 최고 t차 이하의 다항식이 얻어진다.
[수학식 8]
상기 수학식 8의 에러 위치 다항식의 최고차는 에러가 발생한 심볼의 갯수를 의미하는 것으로서, 만약 최고차가 5라면 5개의 심볼에서 에러가 발생했다는 것이다.
(3)에러값 계산 및 정정
(3-1) 에러 평가 다항식 Ω(X)의 계수를 하기 수학식 9a 를 이용하여 계산한다.
[수학식 9a]
상기 수학식 9에 있어서, σ(X)는 에러 위치 다항식이고, S(X)는 신드롬 다항식이다.
상기 수학식 9를 통해 구해진 Ω(x)의 계수를 갖는 에러 평가 다항식은 하기 수학식 9b와 같이 최고차 t차 이하의 다항식이 얻어진다.
[수학식 9b]
(3-2) 평가 진행(evaluation procedure)
GF(2m)의 원소인 α0, α1, …, α(N-1)의 역수를 취하여 그 역수값을 에러 평가 다항식 Ω(X), 에러 위치 다항식 σ(X), 에러 위치 다항식 σ(X)을 미분한 에러 위치 미분 다항식 σ'(X)에 각각 대입하여 평가값을 구하며, 그 평가값들을 구하는 과정을 평가 진행이라 한다.
(3-3) 상기 (3-2)과정에서 얻어진 평가값들을 이용하여 하기 수학식 10 과 같이 에러값 ei(x)을 계산한다.
[수학식 10]
상기 수학식 10은 포니 알고리듬(Forney alogorithm)을 이용하여 얻어진 것이다.
(3-4) 에러 정정
상기와 같이 에러값 e(x)을 구한 다음 하기 수학식 11 을 이용하여 원래의 코드워드 다항식 c(x)를 구하는 것이다.
[수학식 11]
갈로아체 특성상 같은 값을 더하면 0이 되므로 e(x) + e(x) = 0 이 되는 것이다.
한편, 디지털 위성 통신 방식의 DVB(digital video broadcasting)스펙이나, DSS(direct satellite system)스펙에서는 8개의 심벌에러를 정정할 수 있도록 인코딩된 리드 솔로몬 부호어를 사용한다.
따라서, DVB 리드솔로몬 복호기와 DSS 리드솔로몬 복호기의 신드롬 차수나 에러 위치 다항식의 차수가 동일하기 때문에, 상기에 이미 기술한 3단계 복호화 과정을 수행하는 하드웨어는 거의 비슷한 구조로 제작할 수 있다.
그러나, 두 스펙의 인코딩 방식이나 코드 워드의 차수가 다르기 때문에 실제로 하드웨어 구조가 비슷한데도 불구하고, 각각 규격에 맞는 시스템을 별도로 제작하여 사용하는 문제점이 있었다.
이에, 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로, DVB스펙과 DSS스펙에 적합한 에러 정정 복호화 과정을 수행하도록 된 DVB스펙과 DSS스펙을 동시에 지원하는 리드 솔로몬 복호기를 제공하는 데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명은,
리드 솔로몬 부호화된 수신 신호 r(x)를 심볼 단위로 입력받아 출력하는 입력수단과;
외부로부터 입력된 DVB스펙과 DSS스펙을 구별하는 스펙 전환 신호(DVB_DSS)에 따라상기 입력수단으로부터 출력된 수신 심볼 ri을 소정 지연시간 후, 순서대로 출력하는 선입선출수단 ;
상기 스펙 전환 신호(DVB_DSS)에 따라 상기 입력수단으로부터 출력된 수신 심볼을 차례로 입력받아 신드롬의 중간값 계산을 진행하면서, DVB스펙과 DSS스펙의 각각에 해당하는 마지막 심볼까지 모든 코드 워드가 입력 되었을 때, 계산된 신드롬 Si을 출력하는 신드롬 계산수단;
상기 신드롬 Si을 입력받아 에러 위치 다항식 σ(X)을 계산하여 에러 위치 다항식의 계수 σ_coef 및 에러 위치 다항식의 차수 L 를 출력하는 에러 위치 다항식 계산수단;
상기 스펙 전환 신호(DVB_DSS)에 따라 상기 신드롬 Si 과 에러 위치 다항식의 계수 σ_coef 을 입력받아 에러 평가 다항식 Ω(X) 을 구함과 아울러, 상기 에러 평가 다항식 Ω(X)으로부터 에러값 ei을 구하고, 상기 선입선출수단에서 출력된 수신 심벌 ri에 상기 에러값 ei을 더해 발생된 에러를 정정함과 동시에, 상기 에러 위치 다항식의 차수 L 을 입력받아 정정된 신호가 정확한지를 판단하여 그 결과를 출력하는 에러 정정수단 및;
상기 스펙 전환 신호(DVB_DSS)에 의해 상기 선입선출수단과, 상기 신드롬 계산수단, 에러 위치 다항식 계산수단 및, 상기 에러 정정수단을 각각 제어하는 제어수단을 포함하여 구성된 것을 특징으로 한다.
상기와 같은 구성을 통하여서, 스펙 전환 신호(DVB_DSS)에 따라 복호화 진행에서 DVB스펙과 DSS스펙에서 다르게 처리해야할 부분을 선택하도록 리드 솔로몬 복호기를 주문형 반도체로 구현하여서 하나의 칩이 DVB스펙과 DSS스펙을 동시에 수용할 수 있게 되는 것이다.
도 1a는 DVB(204,188)스펙의 데이타 포멧을 보여주는 타이밍도,
도 1b은 DSS(146,130)스펙의 데이타 포멧을 보여주는 타이밍도,
도 1c는 본 발명에 적용된 코드워드 시작 신호에 대한 신호 진폭을 도시한 타이밍도,
도 1d는 본 발명에 적용된 제 1 코드워드 종료 신호에 대한 신호 진폭을 도시한 타이밍도,
도 1e는 본 발명에 적용된 제 2 코드워드 종료 신호에 대한 신호 진폭을 도시한 타이밍도,
도 2는 본 발명에 따른 DVB스펙과 DSS스펙을 동시에 지원하는 리드 솔로몬 복호기의 구성도,
도 3은 도 2의 신드롬 계산부의 1 실시 회로도,
도 4는 도 2의 에러 정정부의 1 실시 블럭도,
도 5는 도 4의 에러 평가 다항식 평가부에 대한 1실시 회로도,
도 6은 도 4의 에러 위치 다항식 평가부에 대한 1실시 회로도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
1 : 입력수단 2 : 선입선출수단
3 : 신드롬 계산 수단 4: 롬
5 : 신드롬 선택수단6: 에러 위치 다항식 계산 수단
7 : 에러 정정 수단8 : 제어수단
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
유럽 위성 방송 규격인 DVB 스펙과 미국 위성 방송 규격인 DSS 스펙에서 사용되는 리드 솔로몬 부호의 공통점과 차이점을 살펴보면 다음과 같다
1. 공통점
1). 필드 생성 다항식
2). 코드 생성 다항식
3). 에러 정정 가능한 심벌 수 t=8 (=64비트)
4). 정보 데이터와 검사 데이터의 구분이 가능한 계통적 순환 코드
5). 갈로아체 필드 GF(28)의 일부 원소를 사용한 리드 솔로몬 코드
2. 차이점
1). 부호화시 DVB스펙에서는 동기 바이트(sync byte)와 정보 데이터를 모두 리드 솔로몬 부호화 시키지만, DSS스펙에서는 정보 데이터만 리드 솔로몬 부호화 시킨 후, 동기 바이트를 첨가 시킨다.
2). (N, K)리드 솔로몬 코드의 1코드 워드의 길이가(N) 다르다. 즉, DVB스펙은 188개의 정보 심벌과 16개의 검사 심벌을 갖는 (204,188)코드이고, DSS스펙은 130개의 정보 심벌과 16개의 검사 심벌을 갖는 (146,130)코드이다.
상기와 같은 공통점으로 인하여 GF(28)갈로아체 곱셈기와, GF(28)갈로아체 덧셈기 및, 용량이 동일한 여러 저장수단(시프트 레지스터, 버퍼)등 동일한 하드웨어를 공유할 수 있기 때문에 상기 두 가지의 차이점만 해결된다면, 하나의 칩으로 DVB와 DSS의 위성 방송을 모두 수용할 수 있게 되는 것이다.
우선, 차이점 1)의 동기 바이트(sync byte)의 복호화 처리를 해결하는 방법으로, 동기 바이트를 알려주는 신호가 입력되면, DVB스펙은 동기 바이트의 신드롬 계산을 하고, DSS스펙은 동기 바이트의 신드롬 계산을 하지 않도록 제어하면 되는 것이다.
그리고, 차이점 2)의 코드 워드 길이의 차이점을 해결하는 방법으로, 두 코드의 차수가 다르기 때문에, 에러 평가 진행을 수행할 때 (에러 평가 다항식 Ω(x) 및 에러 위치 다항식 σ(x) 에 GF(28) 원소의 역수값()을 대입하여 그 평가값을 구하는 과정) 대입하는 원소의 차수를 각 스펙이 갖는 코드의 차수에 맞게 선택해 주고, 또한 상기 수학식 10과 같이 포니 알고리즘에 의해 에러값을 구할 때 차수에 맞는 αi값만 선택해주면 되는 것이다.
도 3은 본 발명에 따른 DVB스펙과 DSS스펙을 동시에 수용하는 리드 솔로몬 복호기에 대한 구성도로서, 본 발명의 리드 솔로몬 복호기는 입력버퍼(1)과, 선입선출버퍼(2), 신드롬 계산부(3), 0×00이 저장된 롬(4), 신드롬 출력부(5), 에러 위치 다항식 계산부(6), 에러 정정부(7), 및 제어부(8)로 구성되어 있다.
상기 입력버퍼(1)는 8개 D플립플롭이 병렬로 8비트 데이터 버스에 연결되어서 비트클럭에 따라 리드 솔로몬 부호화된 수신 심볼 ri를 입력받아 출력한다.
상기 선입선출버퍼(2)는 외부로부터 입력된 DVB스펙과 DSS스펙을 구별하는 스펙 전환 신호(DVB_DSS)에 따라 상기 입력버퍼(1)로부터 출력된 수신 심볼 ri을 비트 클럭에 동기되어 입력받아 소정의 지연시간 후, 입력된 순서대로 상기 에러 정정부(7)로 출력한다.
상기 신드롬 계산부(3)는 상기 스펙 전환 신호(DVB_DSS)에 따라 상기 입력버퍼(1)로부터 출력된 수신 심볼 ri을 차례로 입력받아 신드롬의 중간값 계산을 진행하면서, 스펙의 마지막 심볼임을 알리는 제 1 종료신호(CW_END1)와, 스펙의 마지막 두번째 심볼임을 알리는 제 2 종료신호(CW_END2)에 따라 코드 워드의 모든 심볼이 입력 되었을 때, 계산된 신드롬 Si을 출력한다.
상기 신드롬 출력부(5)는 상기 제어부(8)의 제어신호(SYND_PASS)에 따라 상기 신드롬 계산부(3)의 신드롬 Si혹은 상기 롬(4)의 0×00값을 선택하여 상기 에러 위치 다항식 계산부(6)로 출력한다.
상기 에러 위치 다항식 계산부(33)는 상기 신드롬 Si을 입력받아 에러 위치 다항식 σ(X)을 계산하여 에러 위치 다항식의 계수 σ_COEF 및 에러 위치 다항식의 최고차수 L 를 출력한다.
상기 에러 정정부(7)는 상기 스펙 전환 신호(DVB_DSS)에 따라 상기 신드롬 Si과 에러 위치 다항식의 계수 σ_COEF 을 입력받아 에러 평가 다항식 |9(X) 을 구하는 한편, 상기 에러 평가 다항식 Ω(X)으로부터 에러값 ei을 구하고, 상기 선입선출버퍼(2)에서 출력된 수신 심볼 ri에 상기 에러값 ei을 더해 발생된 에러를 정정함과 동시에, 상기 에러 위치 다항식의 차수 L 을 입력받아 정정된 신호가 정확한지를 판단하여 그 결과를 출력한다.
상기 제어부(8)는 상기 스펙 전환 신호(DVB_DSS)에 의해 상기 신드롬 계산부(3)와 에러 위치 다항식 계산부(6) 및 상기 에러 정정부(7)를 각각 제어한다.
이어서, 상기와 같이 구성되는 본 발명의 1실시예에 대한 도면을 참조하여 작용을 자세히 설명하기로 한다.
도 3는 도 2의 신드롬 계산부의 1실시 회로도로서, 상기 수학식 7b 의 신드롬 계산 공식을 하드웨어적으로 구현한 것이다.
좀더 상세히 설명하면, 도 3에서 보여지는 회로도는 코드 발생 다항식의 α0∼α7근을 대입하여 구하는 신드롬 S0∼S7(8개)를 동시에 계산하도록 구현한 신드롬 계산셀이며, 코드 발생 다항식의 α8∼α15근을 대입하여 구하는 신드롬 S8∼S15을 계산하는 신드롬 계산셀은 근 값만 다를 뿐, 도 3과 완전히 동일한 구조를 갖는다.
도 3에서 보는 바와 같이, 신드롬 계산셀은 제어신호 발생부(31)와, 중간값용 시프트레지스터(32), 신드롬용 시프트레지스터(33), 항 선택부(34), 신드롬 항 연산부(35)로 구성되어 있다.
상기 제어신호 발생부(31)는 도 2의 제어부(8)로부터 제 1 코드 워드 종료신호(CW_END1)와, 제 2 코드워드 종료신호(CW_END2) 및 코드 워드 시작신호(CW_START)를 입력받고, 외부로 부터 스펙 전환 신호(DVB_DSS)와 리셋신호(RST) 및 인에이블 신호(ENA)를 입력받아 상기 신호들을 논리 조합하여 상기 중간값용 시프트레지스터(32)와 상기 신드롬용 시프트레지스터(33)의 인에이블 신호(ena)와 리셋신호(rst)를 발생하여 두 시프트레지스터의 동작을 제어한다.
즉, 상기 중간값용 시프트레지스터(32)의 리셋 제어신호(rst)는, 제 1 반전 게이트(31-3)를 통해 제 1 코드 워드 종료신호(CW_END1)를 반전시키고, 외부로부터 제공된 리셋신호(RST)와 제 2 논리곱 게이트(31-6)를 통해 논리곱 연산하여 제공된다.
그리고, 상기 중간값용 시프트 레지스터(32)의 인에이블 제어신호(ena)는 제 1 멀티플렉서(31-7)의 출력신호로서, 상기 제 1 멀티플렉서(31-7)는 스펙 전환 신호(DVB_DSS)에 따라 DVB스펙일 때는 외부에서 제공된 인에이블 신호(ENA)를 선택하여 출력하고, DSS스펙일 때는 제 2 반전 게이트(31-5)를 통해 반전된 코드 워드 시작 신호(CW_START)와, 외부로부터 제공된 인에이블 신호(ENA)를 상기 제 3 논리곱 게이트(31-6)를 통해 논리곱 연산된 신호를 선택하여 출력한다.
그리고, 상기 신드롬용 시프트레지스터(33)의 인에이블 제어신호(ena)는 제 1 논리합 게이트(31-1)를 통해 상기 제 1 코드 워드 종료신호(CW-END1)와 제 2 코드 워드 종료신호(CW_END2)를 논리합 연산한 신호와, 외부의 인에이블 신호(ENA)를 제 1 논리곱 게이트(31-2)를 통해 논리곱한 신호가 제공되며, 리셋 제어신호(rst)는 외부에서 제공된 리셋신호(RST)에 의해 제공된다.
상기 중간값용 시프트레지스터(32)는 8개의 신드롬을 저장하는 레지스터로서, 8비트 데이터 버스에 연결되어져 비트 클럭단위로 상기 신드롬 항 계산부(35)로부터 출력된 중간값용 신드롬을 입력받아 시프트하여 상기 항 선택부(34)로 출력한다.
상기 신드롬용 시프터레지스터(33)는 8개의 신드롬을 저장하는 레지스터로서, 코드워드의 마지막에서 두번째 심벌이 입력될 때부터 마지막 심벌이 입력되는 동안에 인에이블 상태가 되어 상기 신드롬 항 계산부(35)로 부터 출력된 신드롬을 입력받아 비트클럭단위로 시프트하여 상기 항 선택부(34)로 출력하는 한편, 마지막 심볼 r0항까지 계산되어진 신드롬값 S0∼S7을 병렬로 출력한다.
상기 항 선택부(34)는 제 1 코드워드 종료신호(CW_END1)에 따라 선택하는 제 2 멀티플렉서(34)로서, 코드워드의 첫번째 심볼 rN-1부터 마지막에서 두번째 심볼 r1이 입력되는 동안까지는 상기 중간값용 신드롬 시프트레지스터(32)의 출력값을 선택하여 출력하고, 마지막 심볼 r0이 입력되는 동안에는 상기 신드롬용 시프트 레지스터(33)의 출력값을 선택하여 상기 신드롬 항 연산부(35)로 출력한다.
상기 신드롬 항 연산부(35)는 코드 생성 다항식 g(x)의 근이 저장된 롬(35-1∼35-8)과, 선택신호(SEL)에 따라 비트클럭단위로 상기 롬의 근값을 차례대로 선택하여 출력하는 제 3 멀티플렉서(35-9), 상기 제 3 멀티플렉서(35-9)로부터 출력된 근과 상기 항 선택부(34)로부터 출력된 중간 신드롬값을 입력받아 비트 클럭단위로 갈로아체 곱셈연산하여 출력하는 갈로아체 곱셈기(35-10), 상기 갈로아체 곱셈기(35-10)로부터 출력된 값과 심볼 클럭단위(바이트 단위)로 입력되는 수신 심볼 ri 을 입력받아 비트클럭 단위로 갈로아체 덧셈연산하여 출력하는 갈로아체 덧셈기(35-11)로 구성되어 있다.
상기와 같이 구성된 신드롬 계산셀의 구체적인 동작을 DVB스펙과 DSS스펙을 구분하여 설명하면 다음과 같다.
① DVB 스펙일 경우
스펙 전환 신호(DVB_DSS)의 레벨값은 DVB스펙일 경우에 0으로서, 상기 제 1 멀티플렉서(31-7)는 인에이블 신호(ENA)를 선택하여 상기 중간값용 시프트레지스터(32)를 인에이블 시킨다.
코드워드의 마지막 심볼을 알리는 제 1 코드워드 종료신호(CW_END1)의 레벨값은 첫번째 심볼 r203에서 마지막 두번째 심볼 r1이 입력되는 동안에는 0으로서, 상기 제 2 멀티플렉서(34)는 상기 중간값용 시프트레지스터(32)의 값을 선택하여 상기 갈로아체 곱셈기(35-10)로 출력한다.
상기 갈로아체 곱셈기(35-10)에서는 상기 중간값용 시프트레지스터의 초기값 0,0,…,0과 상기 롬의 근 α0∼α7`을 순서대로 곱하여 0,0,…,0을 상기 갈로아체 덧셈기(35-11)로 출력한다.
상기 갈로아체 덧셈기(35-11)에서는 첫번째 수신 심볼 r203을 입력받고, 상기 갈로아체 곱셈기(35-10)로부터 비트 클럭단위로 출력되는 0,0,…,0 값을 덧셈하여 상기 중간값용 시프트 레지스터(32)로 출력한다.
결국, 상기 중간값용 시프트레지스터(32)에는 첫번째 심볼 클럭동안에값이 저장되어진다.
이어서, 두번째 심볼 r202이 상기 갈로아체 덧셈기(35-11)로 입력되고, 상기 갈로아체 덧셈기(35-11)에서는 심볼 r202을 심볼 클럭 주기 동안 유지하면서, 상기 갈로아체 곱셈기(35-10)의 출력값과 갈로아체 덧셈 연산하여 상기 중간값용 시프트레지스터(32)로 출력한다.
즉, 두번째 심볼 클럭 동안, 상기 중간값용 시프트레지스터(32)에는 값이 저장되고, 세번째 심볼 r201이 입력되는 세번째 심볼 클럭 동안, 상기 중간값용 시프트 레지스터(32)에는값이 저장된다.
계속해서 같은 동작을 반복하여 상기 중간값용 시프트레지스터(32)에는 중간 신드롬값이 업데이트되는 것이다.
이제, 코드워드의 마지막 두번째 심볼 r1 이 입력될 때, 상기 신드롬용 시프트레지스터(33)가 인에이블 상태가 되어서, 상기 갈로아체 덧셈기(35-11)로부터 출력되는 중간 신드롬값을 입력받아 시프트시키므로써, 상기 신드롬용 시프트 레지스터(33)에는 수신심볼 r203에서 r1까지 게산된 중간 신드롬값이 저장된다.
코드워드의 마지막 심볼 r0이 입력될 때, 상기 중간값용 시프트레지스터(32)는 리셋(reset)되고, 상기 제 2 멀티플렉서(34)는 레벨값 1을 갖는 제 1 코드워드 종료신호(CW_END1)에 따라 상기 신드롬용 시프트레지스터(33)의 중간 신드롬값을 선택하여 상기 갈로아체 곱셈기(35-10)로 출력한다.
갈로아체 곱셈기(35-10)는 상기 신드롬용 시프트레지스터(33)의 중간 신드롬값에 상기 롬의 근α0∼α7을 순서대로 곱하여 상기 갈로아체 덧셈기(35-11)로 출력하고, 상기 갈로아체 덧셈기(35-11)에서는 마지막 수신 심볼 r0과 상기 갈로아체 곱셈기(35-10)로부터 출력된 중간 신드롬값을 순서대로 덧셈하여 상기 신드롬용 시프트레지스터(33)로 출력한다.
즉, 마지막 심볼까지 모두 입력되면, 상기 신드롬용 시프트레지스터(33)에 저장된 1 코드 워드에 대한 신드롬값 S0, S1, S2, … ,S7은 하기 수학식 12 같다.
② DSS 스펙일 경우
DSS 스펙일 경우는 리드 솔로몬 부호화 되지 않은 동기 바이트(SYNC BYTE)에 대해서는 복호화를 시키지 않도록 하기 위해 코드 워드 시작신호(CW-START)가 1 레벨값인 동안에는 상기 중간값용 시프트 레지스터(32)를 동작시키지 않도록 해야한다.
스펙 전환 신호(DVB_DSS)의 레벨값은 DSS스펙일 경우에 1으로서, 상기 제 1 멀티플렉서(31-7)는 반전된 코드워드 시작 신호(CW_START)와 인에이블 신호(ENA)를 논리곱 처리한 신호를 선택하여 상기 중간값용 시프트레지스터(32)를 인에이블 시킨다.
즉, 동기 바이트(SYNC BYTE)가 입력되는 동안에는 상기 중간값용 시프트 레지스터(32)는 로우 인에이블 신호(ean)에 의해 동작하지 않으므로써, 동기 신호에 대해서는 신드롬계산을 하지 않는다.
반면, 리드 솔로몬 부호화된 수신 심볼 r145∼r0이 입력 되는 동안에는 하이 인에이블 신호가 제공되어 신드롬 계산을 하게 된다.
그리고, 리드 솔로몬 부호화된 수신 심볼 r145∼r0에 대한 신드롬 계산의 과정은 이미 설명한 ① DVB 스펙일 경우와 동일한 과정을 반복 수행한다.
DSS스펙의 신드롬값 S0∼S7은 하기 수학식 13과 같다.
여기서, 상기 비트 클럭으로 동작하는 갈로아체 곱셈기(35-10)는 본 발명자에 의해 발명되어 한국 특허 출원 번호 95-61391에 이미 제안된 갈로아체(GF(2m)) 곱셈기를 들 수 있다.
또한, 도 2의 에러 위치 다항식 계산부(6)는 순환적 Berlekamp 알고리즘을 적용하여본 발명자에 의해 발명되어 한국 특허 출원 번호 96-16009에 이미 제안된 에러 위치 다항식 계산장치를 들 수 있다.
이어서, 도 4는 에러 정정부의 1실시 회로도로서, 에러 정정부(7)는 에러 평가 다항식 계산부(40)와, 에러 평가 다항식 평가부(41), 에러 위치 다항식 평가부(42), 에러값 계산 및 정정부(43), 복원 실패 판단부(44)로 구성되어 있다.
여기서, 상기 에러 정정부(7)는 상기 제어부(8)의 제어 신호에 따라 동기 바이트가 입력되는 동안에는 디제이블(disable) 상태가 되어지는데, 그 이유는 동기 바이트는 원래 정보 데이터와 상관없기 때문에 고려하지 않아도 무관하다.
따라서, DVB 스펙의 경우는 리드 솔로몬 부호화된 최고차 심볼 r203에 대한 에러 평가진행을 하지 않으며, DSS 스펙의 경우는 리드 솔로몬 부호화 되지 않은 동기 바이트에 대한 평가 진행을 하지 않는다.
이제, 상기 에러 정정부(7)의 구성 요소에 대한 기능을 설명하면 다음과 같다.
상기 에러 평가 다항식 계산부(40)는 신드롬(synd) 및 에러 위치 다항식의 계수(σ_COEF)를 입력받아 에러 평가 다항식의 계수(Ω_COEF)를 계산하여 출력하도록 되어 있다.
상기 에러 평가 다항식 평가부(41)는 상기 에러 평가 다항식의 계수(Ω_COEF)를 입력받아 상기 계수(Ω_COEF)를 가지는 에러 평가 다항식(Ω(X))에 갈로아체상의 원소인 코드 발생 다항식의 근(αi)의 역수(α-i)를 대입하여 평가한 값(Ω_VAL)을 출력하도록 되어 있다.
상기 에러 위치 다항식 평가부(42)는 상기 에러 위치 다항식의 계수(σ_COEF)를 입력받아 상기 계수(σ_COEF)를 가지는 에러 위치 다항식(σ(X))에 갈로아체상의 원소(αi)의 역수(α-i)를 대입한 값(σ(α-i))에 따라 에러 위치 신호(err_sign)를 출력함과 동시에, 에러 위치 다항식(σ(X))의 미분치인 미분 다항식(σ'(X))에 갈로아체상의 원소(αi)의 역수(α-i)를 대입한 미분 평가값(σp_VAL)을 계산하여 출력하도록 되어 있다.
상기 에러 평가 다항식 계산부(40)는 본 발명자에 의해 발명되어 이미 출원된 한국 특허 출원 제 96-5128 및 96-5444에 제안되어 있다. 그리고, 상기 에러 평가 다항식 평가부(41)는 도 5를 참조하여 구체적 회로의 동작을 설명하고, 상기 에러 위치 다항식 평가부(42)는 도 6을 참조하여 설명하기로 한다.
상기 에러값 계산 및 정정부(43)는 역수 룩업 테이블(43-1)과, 제 1 갈로아체 곱셈기(43-2), 프라임 룩업 테이블(43-3), 제 2 갈로아체 곱셈기(43-4), 0x00이 저장된 롬(43-5), 멀티플렉서(43-6), 갈로아체 덧셈기(43-7)로 구성되어 있다.
상기 역수 룩업 테이블(43-1)은 상기 미분 평가값(σp_VAL)을 입력받아 미분 평가값(σ'(α-i))의 역수(1/σ'(α-i))를 로드하여 출력한다.
상기 제 1 갈로아체 곱셈기(43-2)는 상기 에러 평가값 (Ω_VAL)과 상기 역수 미분 평가값(1/σ'(α-i))을 곱셈연산한다.
상기 프라임 룩업 테이블(43-3)은 상기 제어부(8)로부터 제공된 심볼 넘버신호(NO_SYM)에 따라 DVB스펙과 DSS스펙의 심볼 차수에 맞는 갈로아체 필드의 원소 αi를 출력한다.
상기 제 2 갈로아체 곱셈기(43-3)는 상기 제 1 갈로아체 곱셈기(43-2)의 출력값과 상기 갈로아체 필드 원소 αi을 곱셈연산하여 에러값 ei을 계산한다.
상기 멀티플렉서(43-6)는 상기 에러 위치 신호(error_sign)에 따라 상기 롬의 값 0x00 혹은 상기 제 2 갈로아체 곱셈기(43-4)의 에러값 ei을 선택하여 출력하한다.
상기 갈로아체 곱셈기(43-7)는 수신 심볼 ri과 상기 멀티플렉서(43-6)의 출력값을 갈로아체 덧셈 연산하여 에러정정된 심볼 ci을 출력한다.
상기 복원 실패 판단부(44)는 카운터(44-1)와, 반전 게이트(44-2), 논리곱 게이트(44-3), 논리합 게이트(44-4), 비교기(44-5), D플립플롭(44-6)으로 구성되어 있다.
상기 카운터(44-1)는 에러비트가 발생됨을 알리는 상기 에러 위치 신호(error_sign)를 카운팅하여 에러가 발생된 심볼의 갯수를 출력한다.
상기 반전 게이트(44-2)는 상기 제어부(8)로부터 제공된 에러 정정 실패 요청 신호(UNRCVR_FLAG_RST)를 반전 시켜 상기 카운터(44-1)를 클리어 시킨다.
상기 논리곱 게이트(44-3)는 심볼단위로 평가하도록 바이트 단위마다 발생하는 평가 요청 신호(UNRCVR_FLAG_RST)와 상기 에러 위치 다항식 평가부(42)로부터 출력된 에러 발생 신호(error_sign)를 논리곱 연산 한다.
상기 논리합 게이트(44-4)는 상기 논리곱 게이트(44-3)의 출력과 상기 에러 정정 실패 요청 신호(UNRCVR_FLAG_RST)를 논리합하여 상기 카운터(44-1)를 인에이블 시킨다.
상기 비교기(44-5)는 상기 카운터(44-1)의 에러 심볼 개수(cnt)와 상기 에러 위치 다항식 계산부(6)로부터 출력된 에러 위치 다항식의 최고차수 L 를 비교하여 두 값이 동일하면 로우 신호를 출력하고, 동일하지 않으면 하이 신호를 출력한다.
상기 D플립플롭(44-6)은 상기 비교기(44-5)의 출력신호를 입력받아 에러 정정 실패 신호(UNRCVR_FLAG)를 출력한다.
상기와 같은 구성으로 상기 에러값 계산 및 정정부(43)에서는 상기 수학식 10과 같이 포니 알고리즘에 의해 에러값을 계산하고, 에러가 발생했다는 에러 발생신호에 따라 수신 심볼에 상기 계산된 에러값을 더하여 에러 정정된 심볼을 출력한다.
그리고, 상기 복원 실패 판단부(44)에서는 상기 에러 위치 다항식 계산부(6)로부터 출력되는 에러 위치 다항식의 최고차수 L 이 8차 이하이고, 상기 카운터(44-1)의 에러 발생 심볼 수가 L 값과 동일했을 때, 상기 에러 정정된 심볼이 정확히 복원됐음을 의미하므로 두 값을 비교기를 이용하여 비교하게 되면 에러 정정의 성공과 실패를 판단할 수 있는 것이다.
이어서, 도 5를 참조하여 에러 평가 다항식의 평가 진행 과정을 살펴보고자 한다.
도 5는 도 4의 에러 평가 다항식 평가부의 1 실시 회로도로서, 에러 평가 다항식 평가부는 초기화부(50)와, 항 선택부(51), 차수 갱신부(52), 항 연산부(53), 에러 평가값 출력부(54)로 구성되어 있다.
상기 초기화부(50)는 갈로아체 필드의 역수 근이 저장된 롬(50-1∼50-16)과, 스펙 전환 신호(DVB_DSS)에 따라 상기 롬의 근 을 선택하는 8개의 멀티플렉서(50-17∼50-24), 제 9 멀티플렉서(50-25), 제 1 갈로아체 곱셈기(50-26)로 구성되어 있다.
상기 롬(50-1∼50-16)에는 α-203*1, α-146*1-203*2-146*1-203*3-146*3α-203*4-146*4-203*5α-146*5-203*6-146*6-203*7-146*7, α-203*8α-146*8이 각각 저장되어 있다.
상기 8개의 멀티플렉서(50-17∼50-24)는 상기 스펙 전환 신호(DVB_DSS)에 따라 DVB스펙일 때는 α-203*1, α-203*2-203*3, α-203*4-203*5-203*6-203*7, α-203*8를 선택하여 출력하고, DSS스펙일 때는 α-146*1-146*1-146*3-146*4-146*5, α-146*6-146*7-146*8를 선택하여 출력한다.
상기 제 9 멀티플렉서(50-25)는 선택신호(SEL9)에 따라 상기 제 1 멀티플렉서(50-17)의 출력값부터 상기 제 8 멀티플렉서의 출력값(50-24)까지 차례대로 선택하여 출력한다.
상기 제 1 갈로아체 곱셈기(50-26)는 비트 클럭단위로 출력된 상기 제 9 멀티플렉서(50-25)의 출력값과 상기 도 4의 에러 평가 다항식 계산부(40)로부터 심볼 클럭단위로 출력된 에러 평가 다항식의 계수 Ω_COEF 를 입력받아 갈로아체 곱셈하여 출력한다.
그리고, 상기 항 선택부(51)는 초기화 신호(INIT_FLAG)에 따라 상기 초기화부의 초기항값 또는 상기 차수 갱신부(52)의 중간항값을 선택하여 출력하는 제 10 멀티플렉서(51)로 구성되어 있다.
그리고, 상기 차수 갱신부(52)는 8개의 시프트레지스터(52-1)와, 차수를 갱신하기 위한 갈로아체 필드의 원소 α1, α23, α4, α5, α6, α7, α8이 저장된 롬( 52-2∼52-9), 제 11 멀티플렉서(52-10), 제 2 갈로아체 곱셈기(52-11)로 구성되어 있다.
상기 8개의 시프트레지스터(52-1)는 상기 항 선택부인 제 10 멀티플렉서(51)로부터 출력된 항 값을 비트클럭에 따라 시프트시켜 출력하는
상기 제 11 멀티플렉서(52-10)는 선택신호(SEL11)에 따라 상기 롬의 값을 α1부터 차례대로 선택하여 출력한다.
상기 제 2 갈로아체 곱셈기(52-11)는 상기 시프트레지스터(52-1)의 출력값과 상기 제 11 멀티플렉서(52-10)의 출력값을 갈로아채 곱셈하여 상기 항 연산부(53) 및 상기 항 선택부(51)로 출력한다.
그리고, 상기 항 연산부(53)는 제 1 갈로아체 덧셈기(53-1), 0x00이 저장된 롬(53-2), 반전 게이트(53-3), 논리곱 게이트(53-4), 제 12 멀티플렉서(53-5), 제 1 합 레지스터(53-6)으로 구성되어 있다.
상기 제 1 갈로아체 덧셈기(53-1)는 상기 제 2 갈로아체 곱셈기(52-11)로부터 출력된 값과 피드백 입력된 값을 덧셈하여 출력한다.
상기 반전 게이트(53-3)는 심볼단위마다 발생하는 심볼리셋신호(RST_SUM)를 반전시킨다.
상기 논리곱게이트(53-4)는 외부로부터 제공되는 리셋신호(RST)와 상기 반전된 심볼리셋신호(RST_SUM)를 논리곱하여 출력한다.
상기 제 12 멀티플렉서(53-5)는 상기 논리곱게이트(53-4)의 출력신호에 따라 상기 제 1 갈로아체 덧셈기(53-1)의 출력값 또는 상기 롬값을 선택하여 출력한다.
상기 제 1 합 레지스터(53-6)는 상기 제 12 멀티플렉서(53-5)의 출려값을 래치하여 다시 상기 제 1 갈로아체 덧셈기(53-1)로 피드백 입력함과 동시에, 상기 논리곱 게이트(53-4)의 출력신호의 액티브 로우에서 리셋된다.
그리고, 상기 에러 평가값 출력부(54)는 제 2 합 레지스터(54-1)와, 에러 평가 다항식의 0차 계수값인 0x01이 저장된 롬(54-2); 제 2 갈로아체 덧셈기(54-3)로 구성되어있다.
상기 제 2 합 레지스터(54-1)는 심볼단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어 비트 클럭에 따라 상기 제 1 갈로아체 덧셈기(53-1)로부터 출력된 항값을 래치하여 출력한다.
상기 제 2 갈로아체 덧셈기(54-3)는 상기 제 2 합레지스터(54-1)으로부터 출력된 항값과 상기 항값을 입력받아 갈로아체 덧셈하여 에러 평가 값(Ω_VAL)을 출력한다.
상기와 같이 구성된 에러 평가 다항식 평가부는 스펙 전환 신호(DVB_DSS)에 따라 DVB스펙의 경우 초기화 역수 근 α-203*1, α-203*2-203*3, α-203*4-203*5-203*6-203*7, α-203*8을 선택하고, DSS스펙의 경우 심볼의 초기화 역수 근 α-146*1-146*1-146*3-146*4-146*5-146*6-146*7-146*8를 선택하여 입력되어 들어온 에러 평가 계수 Ω_COEF 와 곱셈연산하여 평가진행을 수행하는 것이다.
따라서, DVB스펙일 경우의 예를 들어 초기화가 이루어졌을 경우를 가정하여 본 실시예의 작동을 설명하겠으며, DSS스펙일 경우에도 이하 동일한 과정으로 에러 평가가 수행된다.
도 4의 에러 평가 다항식 계산부(40)로부터 계산되어진 에러 위치 다항식의 계수들 (Ω_COEF : Ω12... Ω8)이 순서대로 상기 제 1 갈로아체 곱셈기(50-26)로 입력되고, 상기 제 9 멀티플렉서(50-25)로부터 출력된 역수 근값과 곱해져서 Ω1α-203*1, Ω2α-203*2, Ω3α-203*3, Ω4α-203*45α-203*56α-203*67α-203*7, Ω8α-203*8들로 초기화 (inital)되어 순서대로 상기 항 선택부(51)인 제 10 멀티플렉서(51)로 입력된다.
상기 제 10 멀티플렉서(51)는 선택신호(SEL10)에 따라 상기 초기화값(inital)을 출력하여 상기 차수 갱신부(52)의 시프트레지스터(52-1)로 출력한다.
상기 시프트레지스터(52-1)는 상기 제 10 멀티플렉서(51)에서 출력된 초기화 값(inital)을 비트 클럭(bit_clk)에 따라 시프트시켜 제 2 갈로아체 곱셈기(52-11)로 출력한다.
한편, 제 11 멀티플렉서(52-10)는 선택신호(SEL10)에 따라 각 롬(52-2∼52-9)에 저장된 α12345678값을 순서대로 선택하여 제 2 갈로아체 곱셈기(52-11)로 출력한다.
상기 제 2 갈로아체 곱셈기(52-11)는 상기 시프트레지스터(52-1)의 항 값과 상기 롬(52-2∼52-9)값을 순서대로 곱하여 Ω1α-202*1, Ω2α-202*2, Ω3α-202*3, Ω4α-202*4, Ω5α-202*5, Ω6α-202*6, Ω7α-202*7, Ω8α-202*8값을 순서대로 출력한다.
상기 항 연산부(53)의 제 1 갈로아체 덧셈기(53-1)에서는 상기 제 2 갈로아체 곱셈기(52-11)로부터 출력된 항값과 상기 제 1 합 레지스터(53-4)에서 피드백된 값을 합하여 제 12 멀티플렉서(53-3)로 출력한다.
상기 제 1 합레지스터(530-2)는 상기 제 12 멀티플렉서(53-3)로부터 출력된 값을 비트 클럭에 따라 래치하여 상기 제 1 갈로아체 덧셈기(530-1)로 피드백시킨다.
이렇게하여, 상기 항 연산부(530)를 통해서 에러 위치 다항식의 항들의 합값 (SUM1 = Ω1α-202*1+ Ω2α-202*2+ Ω3α-202*3+ Ω4α-202*4+ Ω5α-202*5+ Ω6α-202*6+ Ω7α-202*7+ Ω8α-202*8) 이 생성된다.
상기 에러 평가값 출력부(540)의 제 2 합 레지스터(54-1)는 심볼마다 발생하는 심볼리셋신호(RST_SUM)에 의해 인에이블 상태가 되어, 상기 제 1 갈로아체 덧셈기(53-1)에서 출력된 합값(SUM1)을 래치하여 상기 제 2 갈로아체 덧셈기(54-3)로 출력한다.
상기 제 2 갈로아체 덧셈기(540-3)는 상기 합값(SUM1)과 상기 롬(54-2)으로부터 입력된 0차 계수(Ω0)에 해당하는 0x01값을 더하여 α-202(수신 신호 r202) 에 대한 에러 평가 진행을 수행한 Ω(α-202) 값인 에러 평가 다항식의 평가값 (Ω_VAL)을 출력한다.
계속해서, α-201에 대한 에러 평가 진행은 상기 차수 갱신부(52)의 제 2 갈로아체 곱셈기(52-11)로부터 출력된 값 Ω1α-202*1, Ω2α-202*2, Ω3α-202*3, Ω4α-202*4, Ω5α-202*5, Ω6α-202*6, Ω7α-202*7, Ω8α-202*8이 제 10 멀티플렉서(51)를 통해 선택되어져서 상기 시프트 레지스터(52-1)로 출력된다.
상기 8개의 시프트 레지스터(52-1)는 비트 클럭에 따라 우측으로 시프트시켜 상기 제 2 갈로아체 곱셈기(52-11)로 출력하고, 상기 제 2 갈로아체 곱셈기(52-11)에서는 상기 제 12 멀티플렉서(52-10)로부터 출력되는 근값과 차례로 곱셈하여 Ω1α-201*1, Ω2α-201*2, Ω3α-201*3, Ω4α-201*4, Ω5α-201*5, Ω6α-201*6, Ω7α-201*7, Ω8α-201*8를 상기 항 연산부(53) 및 항 선택부(51)로 출력하므로써 차수가 갱신되고, 상기 항 연산부(53) 와 항 선택부(51)는 상기에 설명한 동작을 반복하는 에러 평가 진행을 수행하므로써, 상기 에러 평가 출력부(54)로부터 에러 평가값(Ω(α-201))이 구해지는 것이다.
이어서, 도 6 은 에러 위치 다항식 평가부의 1 실시 회로도로서, 에러 위치 다항식 평가부는 에러 위치 다항식을 평가하여 에러 위치 신호(error_sign)를 출력하고, 에러 위치 미분 다항식을 평가하여 미분 평가값(σp_VAL)을 출력한다.
본 발명의 구성요소를 역할에 따라 크게 3부분으로 구분해보면, 초기화부(60)와 항 선택부(61) 및, 제 1 차수갱신부(62)는 항값을 갱신하는 부분이며, 제 1 다항식 연산부(63)와 제 2 다항 연산부(64) 및, 에러 판단부(65)는 에러 위치 다항식을 평가 진행하는 부분이며, 홀수차항 선택부(66)와, 제 2 차수 갱신부(67), 제 3 다항 연산부(68) 및, 미분 평가값 출력부(69)는 미분 다항식을 평가 진행하는 부분이다.
도 6a는 에러 위치 다항식의 항값을 갱신시키는 회로와 에러 위치 다항식을 평가하여 에러 위치 신호를 출력하는 회로가 도시되어 있으며, 도 6b는 에러 위치 미분다항식을 평가하여 미분 평가값을 출력하는 회로가 도시되어있다.
도 6a 에서 보는 바와 같이, 에러 위치 다항식 평가부는 도 2의 에러 위치 다항식 계산부(6)로부터 에러 위치 다항식의 계수 σ_COEF 를 입력받아 갈로아체 필드 원소의 역수 α-i를 대입하여 차수를 증가시켜 항값을 갱신시키면서 에러 위치 다항식을 평가하는 회로로서, 상기 도 5에 도시된 에러 평가 다항식 평가부의 회로에 에러 판단부(65)가 추가로 구비되어 있다.
상기 에러 판단부(65)는 상기 제 2 다항 연산부(64)의 제 2 갈로아체 곱셈기(64-3)로부터 출력된 에러 위치 다항식의 평가값(σ_VAL)이 0인지 판단하여 0이면 에러 위치 신호(error_sign)를 출력하는 비교기(65)이다.
이어서, 도 6b는 에러 위치 미분 다항식의 미분 평가값을 출력하는 회로로서, 상기 홀수차항 선택부(66)는 0x00이 저장된 롬(66-1)과; 제 5 선택신호(SEL5)에 따라 상기 제 1 차수 갱신부(60)로부터 출력된 항값 또는 상기 0x00 값을 선택적으로 출력하는 멀티플렉서(66-2)로 구성되어 있다.
그리고, 상기 제 2 차수 갱신부(67)는 α202이 저장된 롬(67-1)과, α145이 저장된 롬(67-2), 멀티플렉서(67-3), 레지스터(67-4), 반전 게이트(67-5), 차수를 갱신하기 위한 α-1이 저장된 롬(67-6), 제 3 갈로아체 곱셈기(67-7)로 구성되어 있다.
상기 멀티플렉서(67-3)는 상기 스펙 전환 신호(DVB_DSS)에 따라 DVB스펙일 경우는 α202를 선택하여 출력하고, DSS스펙일 경우는 α145를 선택하여 출력한다.
상기 레지스터(67-4)는 상기 멀티플렉서(67-3)의 출력을 로드하여 출력한 이후, 심볼단위 마다 발생하는 심볼 리셋신호에의해 인에이블되어서 피드백 입력된 값 αi을 래치하여 계속해서 출력한다.
상기 반전 게이트(67-5)는 평가 시작을 알리는 시작 신호(INIT_FLAG)를 반전시켜 상기 레지스터(67-4)를 리셋시킨다.
상기 제 3 갈로아체 곱셈기(67-7)는 상기 레지스터(67-4)로부터 출력된 값 αi에 α-1를 곱한 값을 다시 상기 레지스터(67-4)로 피드백 입력시킨다.
그리고, 상기 제 3 다항 연산부(68)는 제 4 갈로아체 곱셈기(68-1)와, 제 3 갈로아체 덧셈기(68-2), 제 2 합 레지스터(68-3)로 구성되어 있다.
상기 제 4 갈로아체 곱셈기(68-1)는 상기 멀티플렉서(66-2)로부터 출력된 홀수차항(odd) 또는 0x00과, 상기 제 1 레지스터(67-4)로부터 출력된 값 αi을 곱하여 출력한다.
상기 제 3 갈로아체 덧셈기(88-2)는 상기 제 4 갈로아체 곱셈기(68-1)로부터 출력된 값과 피드백 입력된 합값을 더하여 출력한다.
상기 제 2 합 레지스터(68-3)는 상기 제 3 갈로아체 덧셈기(68-2)에서 출력된 값을 비트 클럭(bit_clk)에 따라 래치하여 상기 제 3 갈아체 덧셈기(68-2)로 피드백시키는 한편, 심볼단위마다 발생하는 심볼리셋신호(RST_SUM)에 의해 리셋된다.
그리고, 상기 미분 평가값 출력부(69)는 심볼단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어서, 상기 제 3 갈로아체 덧셈기(68-2)로부터 출력된 미분 평가값(σp_VAL)을 비트 클럭에 따라 래치하여 미분 평가값(σp_VAL)을 최종 출력하는 D플립플롭(69)으로 구성되어 있다.
이어서, 상기와 같은 구성을 갖는 에러 위치 다항식 평가 장치의 구체적인 동작을 3 단계의 과정으로 구분하여 설명하면 다음과 같다.
(1). 초기화 과정
스펙 전환 신호(DVB_DSS)에 따라 DVB스펙의 경우 초기화 역수 근 α-203*1, α-203*2-203*3, α-203*4-203*5-203*6-203*7, α-203*8을 선택하고, DSS스펙의 경우 심볼의 초기화 역수 근 α-146*1-146*1-146*3-146*4-146*5-146*6-146*7, α-146*8를 선택하여 입력되어 들어온 에러 위치 다항식의 계수 Ω_COEF 와 곱셈연산하여 평가진행을 수행하는 것이다.
따라서, DVB스펙일 경우의 예를 들어 초기화가 이루어졌을 경우를 가정하여 본 실시예의 작동을 설명하겠으며, DSS스펙일 경우에도 이하 동일한 과정으로 에러 평가가 수행된다.
DVB 스펙일 경우 0레벨값을 갖는 스펙 전환 신호(DVB_DSS)에 따라 상기 8개의 멀티플렉서(60-17∼60-23)는 α-203*1, α-203*2-203*3, α-203*4-203*5-203*6 , α-203*7, α-203*8을 선택하여 상기 제 9 멀티플렉서(60-24)로 출력하고, 상기 제 9 멀티플렉서(60-24)는 선택신호(SEL9)에 따라 α-204*1부터 순서대로 선택하여 상기 제 1 갈로아체 곱셈기(60-25)로 출력한다.
한편, 도 2의 에러 위치 다항식 계산부(6)로부터 계산되어진 에러 위치 다항식의 계수들 (σ_COEF : σ12... σ8)이 순서대로 상기 제 1 갈로아체 곱셈기(60-25)로 입력되어 곱해져서 σ1α-203*1, σ2α-203*2, σ3α-203*3, σ4α-203*45α-203*5, σ6α-203*6, σ7α-203*7, σ8α-203*8들로 초기화 (inital)되어 순서대로 상기 항 선택부(61)인 제 10멀티플렉서(61)로 입력된다.
상기 제 10멀티플렉서(61)는 선택신호(SEL2)에 따라 상기 초기화값(inital)을 출력하여 상기 8개의 시프트레지스터(62-1)로 출력한다.
상기 8개의 시프트레지스터(62-1)는 상기 제 10멀티플렉서(61)에서 출력된 초기화 값(inital)을 비트 클럭(bit_clk)에 따라 시프트시켜 제 2 갈로아체 곱셈기(62-11)로 출력된다.
한편, 상기 제 11멀티플렉서(62-10)는 선택신호(SEL11)에 따라 롬(62-2∼62-9)의 으로부터 α12345678값을 순서대로 선택하여 제 2 갈로아체 곱셈기(52-11)로 출력한다.
상기 제 2 갈로아체 곱셈기(62-11)는 상기 시프트레지스터(62-1)로부터 입력된 초기값(inital)과 상기 롬의 원소를 각각 곱하여 σ1α-202*1, σ2α-202*2, σ3α-202*3, σ4α-202*4, σ5α-202*5, σ6α-202*6, σ7α-202*7, σ8α-202*8을 차례대로 출력한다.
상기 제 2 갈로아체 곱셈기(620-11)로부터 출력된 항값은 3가지로 분기(point A)되어 각각 출력되는데, 상기 출력된 항값들을 더하여 에러 위치 신호(error_sign)를 발생하는 부분과, 출력된 항값들중 홀수차항만을 선택하여 미분 평가값(σp_val)을 출력하는 부분 및, 상기 레지스터부의 항값들을 갱신(up_date)하기 위한 부분으로 분기하여 입력된다.
(2). 에러 위치 신호(error_sign)를 발생하는 평가 진행
상기 제 1 다항연산부(63)의 제 1 갈로아체 덧셈기(63-1)에서는 상기 제 2 갈로아체 곱셈기(62-11)로부터 출력된 항값과 상기 제 1 합 레지스터(63-4)에서 피드백된 값을 합하여 상기 제 12 멀티플렉서(63-3)로 출력한다.
상기 제 12 멀티플렉서(63-3)는 리셋신호(RST)와 반전된 심볼리셋신호(RST_SUM)를 논리곱하여 출력된 신호에 따라 상기 제 1 갈로아체 덧셈기(63-1)로부터 출력된 값을 선택하여 제 1 합 레지스터(63-4)로 출력한다.
상기 제 1 합 레지스터(63-4)는 상기 제 1 갈로아체 덧셈기(63-1)로부터 출력된 값을 비트 클럭에 따라 래치하여 상기 제 1 갈로아체 덧셈기(63-1)로 피드백시킴과 더불어 리셋신호(RST)와 반전된 심볼리셋신호(RST_SUM)를 논리곱하여 출력된 신호에 의해 리셋된다.
이렇게하여, 상기 제 1 다항연산부(63)를 통해서 에러 위치 다항식의 항들의 합값 (SUM1 = σ1α-202*1+ σ2α-202*2+ σ3α-202*3+ σ4α-202*4+ σ5α-202*5+ σ6α-202*6+ σ7α-202*7+ σ8α-202*8) 이 생성된다.
상기 제 2 다항 연산부(64)의 레지스터(64-1)에서는 바이트 클럭단위로 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블 되어 상기 제 1 다항 연산부(63)에서 출력된 합값(SUM1)을 래치하여 상기 제 2 갈로아체 덧셈기(64-3)로 출력한다.
상기 제 2 갈로아체 덧셈기(64-3)는 상기 합값(SUM1)과 상기 롬(64-2)으로부터 입력된 0차 계수(σ0)에 해당하는 0x01값을 더하여 에러 위치 다항식의 평가값 (σ_VAL)을 구한다.
상기 비교기(65)는 상기 평가값(σ_VAL)을 입력받아 평가값이 0임이 판단되면, 에러 위치 신호(error_sign)를 1로 발생한다.
지금까지의 평가 진행은 DVB스펙의 수신심볼γ202에 대한 에러 발생 위치를 판단하는 진행과정을 보인 것이며, 나머지 수신 심볼이나, DSS스펙의 수신 심볼에 대한 에러 발생 위치 신호(error_sign)도 같은 과정으로 발생된다.
(3). 미분 평가값을 출력하는 평가 진행
상기 홀수차항 선택부(66)의 제 13 멀티플렉서(66-2)는 제 2 갈로아체 곱셈기(62-11)로부터 출력된 항값과 상기 롬(66-1)으로부터 출려된 0x00값을 입력받아 선택신호(SEL13)에 따라 σ1α-203*1,0x00 , σ3α-203*3,0x00 , σ5α-203*5, 0x00 , σ7α-203*7,0x00을 선택하여 차례대로 상기 제 3 다항 연산부(68)의 제 4 갈로아체 곱셈기(68-1)로 출력한다.
한편, 상기 제 2 차수 갱신부(67)의 제 14 멀티플렉서(67-3)는 DVB스펙을 알리는 0레벨값의 스펙 전환 신호(DVB_DSS)에 따라 상기 롬(67-1)에 저장된 α202값을 선택하여 상기 레지스터(570-2)로 로드하고, 상기 제 3 다항 연산부(68) 및, 상기 제 3 갈로아체 곱셈기(67-7)로 출력한다.
여기서, 상기 제 3 갈로아체 곱셈기(67-7)는 상기 롬(67-6)에 저장된 α-1값과 상기 레지스터(67-4)로부터 출력된 값을 곱하여, 그 값을 다시 상기 레지스터(67-4)로 피드백 입력시킨다.
또한, 상기 레지스터(67-4)는 바이트 클럭단위로 발생하는 심볼리셋신호(RST_SUM)에 의해 인에이블 상태가 되며, 비트 클럭(bit_clk)으로 클럭신호(clk)를 받아 레지스터의 값을 출력한다.
상기 제 3 다항 연산부(68)의 상기 제 4 갈로아체 곱셈기(68-1)에서는 상기 레지스터(67-4)로부터 출력된 α202을 입력받고, 상기 홀수차항 선택부(66)로부터 출력된 값을 입력받아 곱하여 σ1α-202*1α202, 0x00 , σ3α-202*3α202,0x00 , σ5α-202*5α202, 0x00 , σ7α-202*7α202,0x00 값을 비트 클럭에 따라 순서대로 출력하여 제 3 갈로아체 덧셈기(68-2)로 입력시킨다.
상기 제 3갈로아체 덧셈기(68-2)는 상기 제 4 갈로아체 곱셈기(68-1)로부터 출력된 값과 상기 제 2 합 레지스터(68-3)로부터 출력된 값을 더하여 다시, 상기 제 2 합 레지스터(68-3)로 피드백 입력한다.
상기 제 2 합 레지스터(68-3)는 비트 클럭에 따라 상기 제 3 갈로아체 덧셈기(68-2) 로부터 출력되는 값을 피드백 입력받고, 바이트 클럭단위로 발생하는 심볼 리셋신호(RST_SUM)에 의해 리셋된다.
또한, 상기 미분 평가값 출력부(69)는 바이트 클럭단위로 발생되는 심볼리셋신호(RST_SUM)에 의해 인에이블상태가 되어, 상기 제 3 갈로아체 덧셈기(68-2)로부터 출력된 값 즉, 미분 평가값(σp_VAL)을 래치하여 수신 1 심벌에 대한 미분 평가값
(σp_VAL)을 출력한다.
즉, 수신심벌 γ202에 대한 미분 평가값은 σ1α-202*1α202+ σ3α-202*3α202+
σ5α-202*5α202+ σ7α-202*7α202= α202odd(σ(α-202))으로 출력되며, 나머지 수신심벌 에 대해서도 제 2 차수 갱신부(67)의 αi차수가 1씩 감소되어 홀수차항에 곱해지면서 동일한 동작을 통해 미분 평가값(σp_VAL)이 구해진다.
이상에서 살펴본 바와 같이, 스펙 전환 신호에 따라 DVB스펙과 DSS스펙에 적합한 리드 솔로몬 복호화를 진행시키도록 신드롬 계산이나 에러 평가 진행을 선택하여 수행하는 리드 솔로몬 복호기를 제작하게 되므로써 하나의 칩으로 DVB스펙과 DSS스펙을 동시에 수용할 수 있는 효과가 있는 것이다.

Claims (23)

  1. 리드 솔로몬 부호화된 수신 신호 (r(x))를 심볼 단위로 입력받아 출력하는 입력수단(1)과;
    외부로부터 입력된 DVB스펙과 DSS스펙을 구별하는 스펙 전환 신호(DVB_DSS)에 따라상기 입력수단(1)으로부터 출력된 수신 심볼 (ri)을 소정 지연시간 후, 순서대로 출력하는 선입선출수단(2) ;
    상기 스펙 전환 신호(DVB_DSS)에 따라 상기 입력수단(1)으로부터 출력된 수신 심볼ri을 차례로 입력받아 신드롬의 중간값 계산을 진행하면서, DVB스펙과 DSS스펙의 각각에 해당하는 마지막 심볼까지 모든 코드 워드가 입력 되었을 때, 계산된 신드롬 Si을 출력하는 신드롬 계산수단(3);
    상기 신드롬(Si) 을 입력받아 에러 위치 다항식(σ(X))을 계산하여 에러 위치 다항식의 계수(σ_COEF) 및 에러 위치 다항식의 차수(L) 를 출력하는 에러 위치 다항식 계산수단(6);
    상기 스펙 전환 신호(DVB_DSS)에 따라 상기 신드롬(Si)과 에러 위치 다항식의 계수 (σ_COEF)를 입력받아 에러 평가 다항식(Ω(X)) 을 구하는 한편, 상기 에러 평가 다항식(Ω(X))으로부터 에러값(ei)을 구하고, 상기 선입선출수단에서 출력된 수신 심벌(ri)에 상기 에러값(ei)을 더해 발생된 에러를 정정함과 동시에, 상기 에러 위치 다항식의 차수(L)을 입력받아 정정된 신호가 정확한지를 판단하여 그 결과를 출력하는 에러 정정수단(7) 및;
    상기 스펙 전환 신호(DVB_DSS)에 의해 상기 선입선출수단(2)과, 상기 신드롬 계산수단(3), 에러 위치 다항식 계산수단(6) 및, 상기 에러 정정수단(7)을 각각 제어하는 제어수단(8)을 포함하여 구성된 리드 솔로몬 복호기.
  2. 제 1 항에 있어서, 상기 제어수단(8)의 제어신호에 따라 상기 신드롬 계산수단(3)으로부터 출력된 신드롬값(Si) 혹은 0x00값을 선택하여 출력하는 신드롬 선택수단(5)이 추가로 구비된 것을 특징으로 하는 리드 솔로몬 복호기.
  3. 제 1 항에 있어서, 상기 신드롬 계산 수단(3)은 스펙 전환 신호(DVB_DSS)에 따라 DVB스펙일 경우는 코드워드의 모든 수신 심볼을 신드롬 계산 하도록 제어하고, DSS스펙일 경우는 동기 바이트에 해당하는 코드워드의 첫번째 수신 심볼을 제외한 수신 심볼을 신드롬 계산하도록 제어하는 제어신호 발생부(31)와;
    DVB스펙일 경우는 코드워드의 첫번째 심볼이 입력될 때부터 마지막 두번째 심볼이 입력되는 동안에 인에이블 되고, DSS스펙일 경우는 코드워드의 두번째 심볼이 입력될 때부터 마지막 두번째 심볼이 입력되는 동안에 인에이블 되어서 중간 신드롬값을 입력받아 시프트하여 출력하는 중간값용 시프트레지스터(32);
    코드워드의 마지막에서 두번째 심벌이 입력될 때부터 마지막 심벌이 입력되는 동안에 인에이블 상태가 되어서, 신드롬을 입력받아 비트클럭단위로 시프트하여 출력하는 한편, 마지막 심볼 까지 계산되어진 신드롬값을 병렬로 출력하는 신드롬용 시프트레지스터(33);
    코드워드의 첫번째 심볼(rN-1)부터 마지막에서 두번째 심볼(r1)이 입력되는 동안까지는 상기 중간값용 신드롬 시프트레지스터(32)의 출력값을 선택하여 출력하고, 마지막 심볼(r0)이 입력되는 동안에는 상기 신드롬용 시프트 레지스터(33)의 출력값을 선택하여 출력하는 항 선택부(34);
    상기 항 선택부(34)로부터 비트 클럭에 동기되어 출력된 중간 신드롬값과 갈로아체 필드의 원소(α0∼α7)를 차례대로 갈로아체 곱셈연산하여, 심볼 클럭단위(바이트 단위)로 입력되는 수신 심볼(ri) 과 갈로아체 덧셈하여 계산된 신드롬값을 상기 중간값용 시프트레지스터 혹은 신드롬용 시프트레지스터로 출력하는 신드롬 항 연산부(35)로 구성된 것을 특징으로 하는 리드 솔로몬 복호기.
  4. 제 3 항에 있어서, 상기 제어신호 발생부(31)는 코드워드의 마지막 심볼이 입력됨을 알리는 제 1 코드 워드 종료신호(CW_END1)를 반전시키는 제 1 반전 게이트(31-3)와; 반전된 제 1 코드 워드 종료신호(CW_END1)와 외부로부터 제공된 리셋신호(RST)를 논리곱 연산하여 상기 중간값용 시프트레지스터(32)의 리셋 제어신호(rst)를 출력하는 제 2 논리곱 게이트(31-6);
    코드 워드가 시작됨을 알리는 코드워드 시작 신호(CW_START)를 반전시키는 제 2 반전 게이트(31-5);
    상기 제 2 반전 게이트(31-5)의 출력과 외부로부터 제공된 인에이블 신호(ENA)를 논리곱 연산하는 제 3 논리곱 게이트(31-6);
    상기 스펙 전환 신호(DVB_DSS)에 따라 DVB스펙일 때는 외부에서 제공된 인에이블 신호(ENA)를 선택하여 출력하고, DSS스펙일 때는 상기 제 3 논리곱 게이트(31-6)의 출력을 선택하여 상기 중간값용 시프트 레지스터(32)의 인에이블 제어신호(ena)를 제공하는 제 1 멀티플렉서(31-7);
    상기 제 1 코드 워드 종료신호(CW-END1)와 제 2 코드 워드 종료신호(CW_END2)를 논리합 연산하는 제 1 논리합 게이트(31-1);
    상기 제 1 논리합 게이트(31-1)의 출력과 외부의 인에이블 신호(ENA)를 논리곱 연산한 신호를 상기 신드롬용 시프트레지스터(33)의 인에이블 제어신호(ena)로 제공하는 제 1 논리곱 게이트(31-2)로 구성되는 것을 특징으로 하는 리드 솔로몬 복호기.
  5. 제 1 항에 있어서, 상기 에러 정정 수단(7)은
    신드롬(synd) 및 에러 위치 다항식의 계수(σ_COEF)를 입력받아 에러 평가 다항식의 계수(Ω_COEF)를 계산하여 출력하는 에러 평가 다항식 계산부(40)와;
    상기 에러 평가 다항식의 계수(Ω_COEF)를 입력받아 상기 계수(Ω_COEF)를 가지는 에러 평가 다항식(Ω(X))에 갈로아체상의 원소인 코드 발생 다항식의 근(αi)의 역수(α-i)를 대입하여 평가한 값(Ω_VAL)을 출력하는 에러 평가 다항식 평가부(41);
    상기 에러 위치 다항식의 계수(σ_COEF)를 입력받아 상기 계수(σ_COEF)를 가지는 에러 위치 다항식(σ(X))에 갈로아체상의 원소(αi)의 역수(α-i)를 대입한 값 (σ(α-i))에 따라 에러 위치 신호(error_sign)를 출력함과 동시에, 에러 위치 다항식(σ(X))의 미분치인 미분 다항식(σ'(X))에 갈로아체상의 원소(αi)의 역수(α-i)를 대입한 미분 평가값(σp_VAL)을 계산하여 출력하는 상기 에러 위치 다항식 평가부(42);
    상기 에러 평가값(Ω_VAL)과 미분 평가값(σp_VAL)을 입력받아 포니알고리즘을 적용하여 에러값을 계산하고, 수신심볼과 갈로아체 덧셈연산하여 에러 정정된 심볼을 출력하는 에러값 계산 및 정정부(43); 및
    상기 에러 위치 신호를 카운팅한 에러가 발생한 심볼의 수와 상기 에러 위치 다항식 계산수단으로부터 출력된 다항식의 최고차수(L)를 비교하여 동일하지 않으면 에러정정이 실패했음을 판단하는 복원 실패 판단부(44);로 구성되는 것을 특징으로하는 리드솔로몬 복호기.
  6. 제 5 항에 있어서, 상기 에러값 계산 및 정정부(43)는
    상기 미분 평가값(σp_VAL)을 입력받아 미분 평가값(σ'(α-i))의 역수(1/σ'(α-i))를 로드하여 출력하는 역수 룩업 테이블(43-1)과;
    상기 에러 평가값 (Ω_VAL)과 상기 역수 미분 평가값(1/σ'(α-i))을 곱셈연산하는 제 1 갈로아체 곱셈기(43-2);
    심볼 넘버신호(NO_SYM)에 따라 DVB스펙과 DSS스펙의 심볼 차수에 맞는 갈로아체 필드의 원소(αi)를 출력하는 프라임 룩업 테이블(43-3);
    상기 제 1 갈로아체 곱셈기(43-2)의 출력값과 상기 갈로아체 필드 원소(αi)을 곱셈연산하여 에러값(ei)을 계산하는 제 2 갈로아체 곱셈기(43-4);
    0x00이 저장된 롬(43-5);
    상기 에러 위치 신호(error_sign)에 따라 상기 롬의 값 0x00 혹은 상기 제 2 갈로아체 곱셈기(43-4)의 에러값(ei) 을 선택하여 출력하는 멀티플렉서(43-6);
    는 수신 심볼(ri) 과 상기 멀티플렉서(43-6)의 출력값을 갈로아체 덧셈 연산하여 에러정정된 심볼(ci)을 출력하는 상기 갈로아체 덧셈기(43-7)로 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
  7. 제 5 항에 있어서, 상기 복원 실패 판단부(44)는
    에러비트가 발생됨을 알리는 상기 에러 위치 신호(error_sign)를 카운팅하여 에러가 발생된 심볼의 갯수를 출력하는 상기 카운터(44-1)와;
    에러 정정 실패 요청 신호(UNRCVR_FLAG_RST)를 반전 시켜 상기 카운터(44-1)를 클리어 시키는 반전 게이트(44-2);
    심볼단위로 평가하도록 바이트 단위마다 발생하는 평가 요청 신호(UNRCVR_FLAG_RST)와 상기 에러 위치 다항식 평가부(42)로부터 출력된 에러 발생 신호(error_sign)를 논리곱 연산 하는 논리곱 게이트(44-3);
    상기 논리곱 게이트(44-3)의 출력과 상기 에러 정정 실패 요청 신호(UNRCVR_FLAG_RST)를 논리합하여 상기 카운터(44-1)를 인에이블 시키는 논리합 게이트(44-4);
    상기 카운터(44-1)의 에러 심볼 개수(cnt)와 상기 에러 위치 다항식 계산부(6)로부터 출력된 에러 위치 다항식의 최고차수(L)를 비교하여 두 값이 동일하면 로우 신호를 출력하고, 동일하지 않으면 하이 신호를 출력하는 비교기(44-5);
    상기 비교기(44-5)의 출력신호를 입력받아 에러 정정 실패 신호(UNRCVR_FLAG)를 출력하는 D플립플롭(44-6); 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 복호기.
  8. 제 5 항에 있어서, 상기 에러 평가 다항식 평가부(41)는
    스펙 전환 신호(DVB_DSS)에 따라 각 스펙에 적합한 갈로아체 필드의 역수근을 선택하고, 입력되어 온 수신 심볼과 각각 곱셈한 초기항 값을 출려갛여 수신 심볼의 최고차항부터 검사하도록하는 초기화부(50)와;
    선택신호에 따라 상기 초기화부로부터 입력받은 초기항값 또는 다음 차수의 수신심볼을 검사하기위해 갱신된 항값을 선택적으로 출력하는 항 선택부(51);
    상기 항 선택부(51)로부터 출력된 항값들을 입력받아 다음 수신 심볼을 위한 에러 평가 다항식의 항값을 갱신하여 새로 갱신된 항값을 출력하는 차수 갱신부(52);
    심볼 클럭동안 상기 차수 갱신부(52)로부터 출력된 항값들을 입력받아 합한 값(SUM1)을 출력하는 항 연산부(53);
    상기 항 연산부(53)로부터 출력된 합한 값을 입력받아 에러 평가 다항식의 0차 계수 0x01를 합하여 최종 에러 평가 평가값(Ω_VAL)을 출력하는 에러 평가 값 출력부(54)를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 복호기.
  9. 제 8 항에 있어서, 상기 초기화부(50)는 갈로아체 필드의 역수 근 α-203*1, α-146*1-203*2-146*1-203*3-146*3α-203*4-146*4-203*5α-146*5-203*6-146*6-203*7-146*7, α-203*8α-146*8이 저장된 롬(50-1∼50-16)과;
    스펙 전환 신호(DVB_DSS)에 따라 DVB스펙일 때는 α-203*1, α-203*2-203*3, α-203*4-203*5-203*6-203*7, α-203*8를 선택하여 출력하고, DSS스펙일 때는 α-146*1-146*1-146*3-146*4-146*5-146*6-146*7-146*8를 선택하여 출력하는 8개의 멀티플렉서(50-17∼50-24);
    선택신호(SEL9)에 따라 상기 제 1 멀티플렉서(50-17)의 출력값부터 상기 제 8 멀티플렉서의 출력값(50-24)까지 차례대로 선택하여 출력 제 9 멀티플렉서(50-25)
    비트 클럭단위로 출력된 상기 제 9 멀티플렉서(50-25)의 출력값과 상기 에러 평가 다항식 계산부(40)로부터 심볼 클럭단위로 출력된 에러 평가 다항식의 계수(Ω_COEF)를 입력받아 갈로아체 곱셈하여 출력하는 제 1 갈로아체 곱셈기(50-26)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
  10. 제 8 항에 있어서, 상기 항 선택부(51)는 초기화 신호(INIT_FLAG)에 따라 상기 초기화부의 초기항값 또는 상기 차수 갱신부(52)의 중간항값을 선택하여 출력하는 제 10 멀티플렉서(51)로 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
  11. 제 8 항에 있어서, 상기 차수 갱신부(52)는
    상기 항 선택부(51)로부터 출력된 항 값을 비트클럭에 따라 시프트시켜 출력하는 8개의 시프트레지스터(52-1)와;
    차수를 갱신하기 위한 갈로아체 필드의 원소 α1, α23, α4, α5, α6, α7, α8이 저장된 롬(52-2∼52-9);
    선택신호(SEL11)에 따라 상기 롬의 값을 α1부터 차례대로 선택하여 출력하는 제 11 멀티플렉서(52-10);
    상기 시프트레지스터(52-1)의 출력값과 상기 제 11 멀티플렉서(52-10)의 출력값을 갈로아채 곱셈하여 상기 항 연산부(53) 및 상 항 선택부(51)로 출력하는 제 2 갈로아체 곱셈기(52-11); 를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 복호기.
  12. 제 8 항에 있어서, 상기 항 연산부(53)는
    상기 제 2 갈로아체 곱셈기(52-11)로부터 출력된 값과 피드백 입력된 값을 덧셈하여 출력하는 제 1 갈로아체 덧셈기(53-1)와;
    0x00이 저장된 롬(53-2);
    심볼단위마다 발생하는 심볼리셋신호(RST_SUM)를 반전시키는 반전 게이트(53-3);
    외부로부터 제공되는 리셋신호(RST)와 상기 반전된 심볼리셋신호(RST_SUM)를 논리곱하여 출력하는 논리곱 게이트(53-4);
    상기 논리곱게이트(53-4)의 출력신호에 따라 상기 제 1 갈로아체 덧셈기(53-1)의 출력값 또는 상기 롬값을 선택하여 출력하는 제 12 멀티플렉서(53-5);
    상기 제 12 멀티플렉서(53-5)의 출려값을 래치하여 다시 상기 제 1 갈로아체 덧셈기(53-1)로 피드백 입력함과 동시에, 상기 논리곱 게이트(53-4)의 출력신호의 액티브 로우에서 리셋되는 제 1 합 레지스터(53-6)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
  13. 제 8 항에 있어서, 상기 에러 평가값 출력부(54)는
    심볼단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어 비트 클럭에 따라 상기 제 1 갈로아체 덧셈기(53-1)로부터 출력된 항값을 래치하여 출력하는 제 2 합 레지스터(54-1)와;
    에러 평가 다항식의 0차 계수값인 0x01이 저장된 롬(54-2);
    상기 제 2 합레지스터(54-1)으로부터 출력된 항값과 상기 항값을 입력받아 갈로아체 덧셈하여 에러 평가 값(Ω_VAL)을 출력하는 제 2 갈로아체 덧셈기(54-3)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
  14. 제 5 항에 있어서, 상기 에러 위치 다항식 평가부(42)는
    스펙 전환 신호(DVB_DSS)에 따라 각 스펙에 적합한 갈로아체 필드의 역수근을 선택하고, 입력되어 온 수신 심볼과 각각 곱셈한 초기항 값을 출려갛여 수신 심볼의 최고차항부터 검사하도록하는 초기화부(60)와;
    선택신호에 따라 상기 초기화부로부터 입력받은 초기항값 또는 다음 차수의 수신심볼을 검사하기위해 갱신된 항값을 선택적으로 출력하는 항 선택부(61);
    상기 항 선택부(61)로부터 출력된 항값들을 입력받아 다음 수신 심볼을 위한 에러 위치 다항식의 항값을 갱신하여 새로 갱신된 항값을 출력하는 제 1 차수 갱신부(62);
    심볼 클럭동안 상기 차수 갱신부(62)로부터 출력된 항값들을 입력받아 합한 값(SUM1)을 출력하는 제 1 항 연산부(63);
    상기 제 1 항 연산부(63)로부터 출력된 합한 값을 입력받아 에러 위치 다항식의 0차 계수 0x01를 합하여 최종 에러 위치 평가값(σ_VAL)을 출력하는 제 2 항 연산부(64);
    상기 에러 위치 평가값(σ_VAL)을 입력받아 0 인지 판단하여 0이면 에러 위치 신호(error_sign)를 출력하는 에러 판단부(65);
    상기 제 1 차수 갱신부(62)로부터 출력된 항값을 입력받아 에러 위치 다항식 중에서 홀수차 항()에 해당하는 항값만을 선택하여 출력하는 홀수차항 선택부(66);
    상기 스펙 전환 신호(DVB_DSS)에 따라 DVB스펙일 경우는 α202를 선택하고, DSS스펙일 경우는 α145를 선택하여 -1차씩 갱신하여 출력하는 제 2 차수 갱신부(67);
    상기 홀수차항 선택부(66)로부터 출력된 홀수차항 및 상기 제 2 차수 갱신부(67)로부터 출력된 갈로아체 필드의 원소 αi를 입력받아, 상기 에러 위치 다항식을 미분한 미분다항식에 해당하는 홀수차항들을 합한 값에 상기 갈로아체 필드의 원소를 곱하여 미분 다항식의 평가값(σp_VAL)을 구하여 출력하는 제 3 다항식 연산부(68);
    상기 제 3 다항식 연산부(68)로부터 출력된 미분 다항식의 평가값(σp_VAL)을 래치하여 출력하는 미분 평가값 출력부(69);를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 복호기.
  15. 제 14 항에 있어서, 상기 초기화부(60)는 갈로아체 필드의 역수 근 α-203*1, α-146*1-203*2-146*1-203*3-146*3α-203*4-146*4-203*5α-146*5-203*6-146*6-203*7-146*7, α-203*8α-146*8이 저장된 롬(60-1∼60-16)과;
    스펙 전환 신호(DVB_DSS)에 따라 DVB스펙일 때는 α-203*1, α-203*2-203*3, α-203*4-203*5-203*6-203*7, α-203*8를 선택하여 출력하고, DSS스펙일 때는 α-146*1-146*1-146*3-146*4-146*5-146*6-146*7-146*8를 선택하여 출력하는 8개의 멀티플렉서(60-17∼60-24);
    선택신호(SEL9)에 따라 상기 제 1 멀티플렉서(60-17)의 출력값부터 상기 제 8 멀티플렉서의 출력값(60-24)까지 차례대로 선택하여 출력 제 9 멀티플렉서(60-25)
    비트 클럭단위로 출력된 상기 제 9 멀티플렉서(60-25)의 출력값과 심볼 클럭단위로 출력된 에러 위치 다항식의 계수(σ_COEF) 를 입력받아 갈로아체 곱셈하여 출력하는 제 1 갈로아체 곱셈기(60-26)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
  16. 제 14항에 있어서, 상기 항 선택부(61)는 초기화 신호(INIT_FLAG)에 따라 상기 초기화부의 초기항값 또는 상기 차수 갱신부(62)의 중간항값을 선택하여 출력하는 제 10 멀티플렉서(61)로 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
  17. 제 14항에 있어서, 상기 제 1 차수 갱신부(62)는
    상기 항 선택부(61)로부터 출력된 항 값을 비트클럭에 따라 시프트시켜 출력하는 8개의 시프트레지스터(62-1)와;
    차수를 갱신하기 위한 갈로아체 필드의 원소 α1, α23, α4, α5, α6, α7, α8이 저장된 롬(62-2∼62-9);
    선택신호(SEL11)에 따라 상기 롬의 값을 α1부터 차례대로 선택하여 출력하는 제 11 멀티플렉서(62-10) 및;
    상기 시프트레지스터(62-1)의 출력값과 상기 제 11 멀티플렉서(62-10)의 출력값을 갈로아채 곱셈하여 상기 제 1 항 연산부(63) 및 상기 항 선택부(61)로 출력하는 제 2 갈로아체 곱셈기(62-11)를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 복호기.
  18. 제 14 항에 있어서, 상기 제 1 항 연산부(63)는
    상기 제 2 갈로아체 곱셈기(62-11)로부터 출력된 값과 피드백 입력된 값을 덧셈하여 출력하는 제 1 갈로아체 덧셈기(63-1)와;
    0x00이 저장된 롬(63-2);
    심볼단위마다 발생하는 심볼리셋신호(RST_SUM)를 반전시키는 반전 게이트(63-3);
    외부로부터 제공되는 리셋신호(RST)와 상기 반전된 심볼리셋신호(RST_SUM)를 논리곱하여 출력하는 논리곱 게이트(63-4);
    상기 논리곱게이트(63-4)의 출력신호에 따라 상기 제 1 갈로아체 덧셈기(63-1)의 출력값 또는 상기 롬값을 선택하여 출력하는 제 12 멀티플렉서(67-5);
    상기 제 12 멀티플렉서(63-5)의 출려값을 래치하여 다시 상기 제 1 갈로아체 덧셈기(53-1)로 피드백 입력함과 동시에, 상기 논리곱 게이트(63-4)의 출력신호의 액티브 로우에서 리셋되는 제 1 합 레지스터(63-6)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
  19. 제 14 항에 있어서, 상기 제 2 다항 연산부(54)는
    심볼단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어 비트 클럭에 따라 상기 제 1 갈로아체 덧셈기(63-1)로부터 출력된 항값을 래치하여 출력하는 제 2 합 레지스터(64-1)와;
    에러 평가 다항식의 0차 계수값인 0x01이 저장된 롬(64-2);
    상기 제 2 합레지스터(64-1)으로부터 출력된 항값과 상기 항값을 입력받아 갈로아체 덧셈하여 에러 위치 평가값 (σ_VAL)을 출력하는 제 2 갈로아체 덧셈기(64-3)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
  20. 제 14항에 있어서, 상기 홀수차항 선택부(66)는 0x00이 저장된 롬(66-1)과;
    선택신호(SEL5)에 따라 상기 제 1 차수 갱신부(60)로부터 출력된 항값 또는 상기 롬의 0x00 값을 선택적으로 출력하는 멀티플렉서(66-2)로 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
  21. 제 14항에 있어서, 상기 제 2 차수 갱신부(67)는
    α202이 저장된 롬(67-1)과;
    α145이 저장된 롬(67-2);
    상기 스펙 전환 신호(DVB_DSS)에 따라 DVB스펙일 경우는 α202를 선택하여 출력하고, DSS스펙일 경우는 α145를 선택하여 출력하는 멀티플렉서(67-3);
    상기 멀티플렉서(67-3)의 출력을 로드하여 출력한 이후, 심볼단위 마다 발생하는 심볼 리셋신호에의해 인에이블되어서 피드백 입력된 값 αi을 래치하여 계속해서 출력하는 레지스터(67-4);
    평가 시작을 알리는 시작 신호(INIT_FLAG)를 반전시켜 상기 레지스터(67-4)를 리셋시키는 반전 게이트(67-5),
    차수를 갱신하기 위한 α-1이 저장된 롬(67-6) 및;
    상기 레지스터(67-4)로부터 출력된 값 αi에 α-1를 곱한 값을 다시 상기 레지스터(67-4)로 피드백 입력시키는 제 3 갈로아체 곱셈기(67-7)를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 복호기.
  22. 제 14 항에 있어서, 상기 제 3 다항 연산부(68)는
    상기 멀티플렉서(66-2)로부터 출력된 홀수차항(odd) 또는 0x00과, 상기 제 1 레지스터(67-4)로부터 출력된 값 αi을 곱하여 출력하는 제 4 갈로아체 곱셈기(68-1)와;
    상기 제 4 갈로아체 곱셈기(68-1)로부터 출력된 값과 피드백 입력된 합값을 더하여 출력하는 제 3 갈로아체 덧셈기(68-2) 및;
    상기 제 3 갈로아체 덧셈기(68-2)에서 출력된 값을 비트 클럭(bit_clk)에 따라 래치하여 상기 제 3 갈아체 덧셈기(68-2)로 피드백시키는 한편, 심볼단위마다 발생하는 심볼리셋신호(RST_SUM)에 의해 리셋되는 제 2 합 레지스터(68-3)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
  23. 제 14 항에 있어서, 상기 미분 평가값 출력부(69)는 심볼단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어서, 상기 제 3 갈로아체 덧셈기(68-2)로부터 출력된 미분 평가값(σp_VAL)을 비트 클럭에 따라 래치하여 미분 평가값 (σp_VAL)을 최종 출력하는 D플립플롭(69)으로 구성되는 것을 특징으로하는 리드 솔로몬 복호기.
KR1019960037604A 1996-08-31 1996-08-31 리드 솔로몬 복호기 KR100195749B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960037604A KR100195749B1 (ko) 1996-08-31 1996-08-31 리드 솔로몬 복호기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960037604A KR100195749B1 (ko) 1996-08-31 1996-08-31 리드 솔로몬 복호기

Publications (2)

Publication Number Publication Date
KR19980017787A KR19980017787A (ko) 1998-06-05
KR100195749B1 true KR100195749B1 (ko) 1999-06-15

Family

ID=19472329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960037604A KR100195749B1 (ko) 1996-08-31 1996-08-31 리드 솔로몬 복호기

Country Status (1)

Country Link
KR (1) KR100195749B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100459114B1 (ko) * 1997-12-31 2005-09-30 엘지전자 주식회사 디지털 방송의 디인터리버장치 및 방법
KR100979366B1 (ko) * 2003-02-14 2010-08-31 주식회사 케이티 다양한 오류 정정 능력을 갖는 리드-솔로몬 부호의 복호기
KR100666700B1 (ko) * 2005-10-05 2007-01-09 뮤텔테크놀러지 주식회사 에러 검출 코드 발생기 및 이를 구비한 무선 송수신 장치
KR100733963B1 (ko) * 2005-11-09 2007-06-29 한국전자통신연구원 높은 오류 정정 능력을 가지는 리드-솔로몬 복호화 장치 및그 방법

Also Published As

Publication number Publication date
KR19980017787A (ko) 1998-06-05

Similar Documents

Publication Publication Date Title
US7539927B2 (en) High speed hardware implementation of modified Reed-Solomon decoder
JP3046988B2 (ja) データストリームのフレーム同期検出方法及び装置
US20030106014A1 (en) High speed syndrome-based FEC encoder and decoder and system using same
JP2687941B2 (ja) リード−ソロモン・デコーダ
KR100192795B1 (ko) 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치
US7353449B2 (en) Method of soft-decision decoding of Reed-Solomon codes
US8296634B2 (en) Error correction decoder, error correction value generator, and error correction system
JPH07202723A (ja) デコーダ、これに使用するエラー探知シーケンス・ジェネレータおよびデコーディング方法
KR100195749B1 (ko) 리드 솔로몬 복호기
US9337869B2 (en) Encoding and syndrome computing co-design circuit for BCH code and method for deciding the same
US7694207B1 (en) Method of decoding signals having binary BCH codes
KR100195739B1 (ko) 리드솔로몬 복호기의 에러 위치 다항식 평가 장치
KR100212825B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100192802B1 (ko) 리드 솔로몬 디코더의 에러값 계산 및 정정 장치
KR100212830B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100202945B1 (ko) 리드 솔로몬 복호기의 비트 에러율 측정 장치
KR100202949B1 (ko) 리드 솔로몬 디코더의 에러 정정 시스템
KR100192788B1 (ko) 리드 솔로몬 복호기에서의 에러 평가 다항식의 계수계산장치
Lee et al. An efficient recursive cell architecture of modified Euclid's algorithm for decoding Reed-Solomon codes
KR100212828B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100212829B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100192790B1 (ko) 리드 솔로몬 복호기에서의 에러 평가 다항식의 계수계산장치
KR100192801B1 (ko) 리드 솔로몬 디코더의 비트 에러율 측정 회로
KR100215570B1 (ko) 고화질 텔레비젼용 리드 솔로몬 디코더
KR100212826B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110201

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee