KR100202949B1 - 리드 솔로몬 디코더의 에러 정정 시스템 - Google Patents

리드 솔로몬 디코더의 에러 정정 시스템 Download PDF

Info

Publication number
KR100202949B1
KR100202949B1 KR1019960049691A KR19960049691A KR100202949B1 KR 100202949 B1 KR100202949 B1 KR 100202949B1 KR 1019960049691 A KR1019960049691 A KR 1019960049691A KR 19960049691 A KR19960049691 A KR 19960049691A KR 100202949 B1 KR100202949 B1 KR 100202949B1
Authority
KR
South Korea
Prior art keywords
error
value
polynomial
output
unit
Prior art date
Application number
KR1019960049691A
Other languages
English (en)
Other versions
KR19980030311A (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 KR1019960049691A priority Critical patent/KR100202949B1/ko
Publication of KR19980030311A publication Critical patent/KR19980030311A/ko
Application granted granted Critical
Publication of KR100202949B1 publication Critical patent/KR100202949B1/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/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/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • 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

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)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 리드 솔로몬 디코더에 관한 것으로, 특히 에러 평가 다항식 및 에러 위치 다항식을 평가하기위해 사용되는 동일한 원소값을 저장하고 있는 롬을 따로 따로 구현하지 않고, 공유하여 사용하도록 구현한 리드 솔로몬 디코터의 에러 정정 시스템에 관한 것으로서, 본 발명은, 리드 솔로몬 코드의 최고차부터 평가 진행하기위한 초기근(IALPHA)과 다음 심볼을 위해 차수를 갱신하기위한 갱신근(ALPHA)을 저장하고 있는 공통 원소 저장수단(40)과; 에러 평가 다항식 계산 수단(41); 에러 평가 다항식(Ω(X))을 평가하는 에러 평가 다항식 평가수단(42); 에러 위치 다항식및 에러 위치 다항식(σ(X))의 미분치인 미분 다항식(σ'(X))을 평가하는 에러 위치 다항식 평가수단(43); 에러값 ei을 계산함과 동시에, 에러 정정된 심볼 Ci을 출력하는 에러값 계산 및 정정수단(44); 및 상기 에러 정정된 심볼 Ci이 정확한지를 판단하는 복원 실패 판단수단(45) 으로 구성되어 있다.
따라서, 에러 평가 다항식 및 에러 위치 다항식을 평가하기위해 사용되는 동일한 원소값을 외부 롬에 저장하여 공동으로 사용할 수 있도록 구현하므로써, 롬이나 멀티플렉서의 수를 반절로 줄이고, 하드웨어 구성을 간단히 할수 있는 효과가 있는 것이다.

Description

리드 솔로몬 디코더의 에러 정정 시스템(Error corrector of Reed-Solomon Decoder)
본 발명은 에러 정정 부호화(error correcting coding: 이하 ECC라 칭함)되어 전송된 디지털 데이터를 에러 정정 복호화하는 리드 솔로몬 디코더에 관한 것으로, 특히 에러 정정 시스템에서 에러 평가 다항식 및 에러 위치 다항식을 평가하기위해 사용되는 동일한 원소값을 저장하고 있는 롬을 따로 따로 구현하지 않고, 공유하여 사용하도록 한 리드 솔로몬 디코터의 에러 정정 시스템에 관한 것이다.
일반적으로, 에러 정정 부호화(ECC)는 디지털 데이터를 통신 채널을 통해 전송하거나 저장 매체에 저장 시에 발생되는 에러를 검출·정정하기 위해 디지털 데이터를 부호화하는 것으로서, 에러를 검출하거나 정정하는데 사용되는 검사 데이터를 부가함으로써, 데이터의 신뢰도를 높이게 되는 것이다.
이러한 에러 정정 코드는 크게 블록 코드(block code)와 난블록 코드(nonblock code)로 나누어지는데, 상기 블록 코드는 정보 시퀀스를 k개의 비트로 이루어진 블록으로 분리한 다음 블록 단위로 에러 정정 부호화하며, 상기 난블록 코드는 정보 시퀀스의 입력순서에 따라 에러 정정 부호화를 수행한다.
블록 코드의 대표적인 예로는 BCH 코드(Bose and Ray-Chaudhuri and Hocquenghem code)를 들수 있으며, BCH 코드는 사이클릭 코드(cyclic code)로서 2m개의 원소를 갖는 갈로아체 GF(2m) 상에서 동작된다.
여기서, 사이클릭 코드란 선형 코드(liner code)의 어떤 선형 벡터를 사이클릭 시프트시키더라도 사이클릭 시프트된 선형 벡터가 상기 선형 코드의 선형 벡터에 속하는 선형 코드를 말한다.
따라서, BCH 코드는 하기 수학식 1 과 같이 코드 발생 다항식 g(x)이 정해지면 피드백 시프트 레지스터를 이용하여 코드를 부호화할 수 있다.
이때, 상기 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에 있어서, 상기 c(x)는 코드워드 다항식이고, i(x)는 정보 다항식이며, t(x)는 에러 정정용 패리티의 다항식이다. 즉, 정보와 패리티를 섞이지 않게 정보 i(x)를차만큼 상위 바이트로 이동시킨 다음,를 만족하는 패리티 t(x)를 구한다. 여기서,을 만족하는 패리티 t(x)는 수학식 3 으로부터 구할 수 있다.
상기에 있어서는 코드워드 다항식 c(x)를 코드 발생 다항식 g(x)로 나눈 나머지 값을 의미한다. 즉, 상기 패리티 t(x)를 구하기 위해서는를 코드 발생 다항식 g(x)로 나누는 과정을 수행하여야 하며, 이러한 과정은 시프 트 레지스터를 코드 발생 다항식 g(x)에 따라 연결하여 구현할 수 있다.
그리고, 상기 비계통적 코드는 수학식 4 와 같이 단순히 정보 i(x)에 코드 발생 다항식 g(x)을 곱해 주므로써 정보와 패리티가 섞여 코드화를 이룬다.
상기 수학식 4에서 c(x)는 n-1 차의 코드워드 다항식이고, i(x)는 k-1 차의 정보 다항식, g(x)는 n-k 차의 코드 발생 다항식이다.
상기 코드 발생 다항식 g(x)은 코드워드 다항식 c(x)를 만들어 내기 위해 정보 다 항식 i(x)에 곱해지는 것으로, 이러한 코드 발생 다항식 g(x)을 수학식 5 와 같이 연속적인 2t개의 근을 가지도록 정하면 t개의 에러를 정정할 수 있다.
상기와 같은 방법으로 리드 솔로몬 부호화된 디지털 데이터를 리드 솔로몬 복호화하는 방법은 크게 주파수 영역 복호화와 시간 영역 복호화로 나누어지며, 상기 시간 영역에서 리드 솔로몬 복호화하는 과정은 다음과 같이 크게 3 단계로 이루어진다.
(1) 신드롬 계산
수신된 데이터 γ(x)는 수학식 6 과 같이 코드워드 다항식 c(x)과 전송 중에 발생된 에러 다항식 e(x)를 더한 값으로 표현될 수 있다.
따라서, 하기 수학식 7a 과 같이 수신된 데이터 r(x)에 코드 발생 다항식 g(x)의 근 α0∼α2t-1을 차례대로 대입함으로써 전송 중에 에러가 발생되었는지를 알 수 있는 것이다.
즉, 수신된 데이터 γ(x)에 코드 발생 다항식 g(x)의 근 αi을 대입하여 수신된 데이터 γ(x)가 0이면 전송 중에 에러가 발생되지 않았다는 것을 의미하며, 수신 데이터 γ(x)가 0이 아니면 에러가 발생하였다는 것을 의미한다.
또한, 상기 수학식 7a의 신드롬 계산식은 하기 수학식 7b와 같이 리커시브한 형태로 표현된다.
(2) 에러 위치 다항식 계산(finding error location)
Berlekamp-Massey 알고리즘 또는 Euclid 알고리즘으로부터 에러 위치 다항식의 계수를 계산한다. 상기 알고리즘에 의해 구해진 에러 위치 다항식을 σ(X)라 하면 에러 정정 능력이 t인 리드 솔로몬 코드에서는 수학식 8 과 같이 최고 t차 이하의 다항식이 얻어진다.
상기 수학식 8의 에러 위치 다항식의 최고차는 에러가 발생한 심볼의 개수를 의미하는 것으로서, 만약 최고차가 5라면 5개의 심볼에서 에러가 발생했다는 것이다.
(3)에러값 계산 및 정정
(3-1) 에러 평가 다항식 Ω(X)의 계수를 하기 수학식 9a 를 이용하여 계산한다.
상기 수학식 9에 있어서, σ(X)는 에러 위치 다항식이고, S(X)는 신드롬 다항식이다.
상기 수학식 9를 통해 구해진 Ω(x)의 계수를 갖는 에러 평가 다항식은 하기 수학식 9b와 같이 최고차 t차 이하의 다항식이 얻어진다.
(3-2) 평가 진행(evaluation procedure)
GF(2m)의 원소의 역수 α-0-1-1,…, α-N를 에러 평가 다항식 Ω(X), 에러 위치 다항식 σ(X), 에러 위치 다항식 σ(X)을 미분한 에러 위치 미분 다항식 σ'(X)에 각각 대입하여 평가값을 구하며, 그 평가값들을 구하는 과정을 평가 진행이라 한다.
(3-3) 상기 (3-2)과정에서 얻어진 에러 평가값(Ω(α-i))과 위치 평가값(σ(α-i))을 이용하여 하기 수학식 10 과 같이 에러값 ei(x)을 계산한다.
상기 수학식 10은 포니 알고리듬(Forney algorithm)을 이용하여 얻어진 것으로서, i는 수신 신호를 다항식으로 표시했을 때의 차수이다.
(3-4) 에러 정정
상기와 같이 에러값 ei을 구한 다음 하기 수학식 11 을 이용하여 원래의 코드워드 다항식 c(x)를 구하는 것이다.
갈로아체 특성상 같은 값을 더하면 0이 되므로 e(x) + e(x) = 0 이 되는 것이다.
여기서, 에러가 발생하지 않더라도 에러값이 0이 아닌 값을 갖을 수 있기 때문에 에러가 발생했는지를 판단할 수 있도록 해주어야하고, 이러한 역할을 하는 것이 바로 에러 위치 다항식을 평가 진행하는 것으로 위치 평가값(σ(α-i))이 0 이 될때 에러가 발생했다고 볼수 있다.
여기서, 에러가 발생하지 않더라도 에러값이 0이 아닌 값을 갖을 수 있기 때문에 에러가 발생했는지를 판단할 수 있도록 해주어야하고, 이러한 역할을 하는 것이 바로 에러 위치 다항식을 평가 진행하는 것으로 위치 평가값(σ(α-i))이 0 이 될 때 에러가 발생했다고 볼수 있다.
상기에 기술한 과정중 특히, (3)단계의 방법을 적용한 에러 정정 시스템을 도 1 에 도시하였다.
도 1은 종래의 리드 솔로몬 디코더에서의 에러 정정 시스템에 대한 구성도이다.
도 1 에서 보는 바와 같이, 종래의 에러 정정 시스템은 에러 정정기는 에러 평가 다항식 계산부(10)와, 에러 평가 다항식 평가부(11), 에러 위치 다항식 평가부(12), 에러값 계산 및 정정부(13), 복원 실패 판단부(14)로 구성되어 있다.
각 구성 요소가 담당하는 기능을 살펴보면 다음과 같다.
상기 에러 평가 다항식 계산부(10)는 신드롬(SYND), 및 에러 위치 다항식의 계수(σ_COEF)를 입력받아 에러 평가 다항식의 계수(Ω_COEF)를 계산하여 상기 에러 평가 다항식 평가부(11)로 출력한다.
상기 에러 평가 다항식 평가부(11)는 상기 에러 평가 다항식의 계수(Ω_COEF)를 입력받아 상기 계수(Ω_COEF)를 가지는 에러 평가 다항식(Ω(X))에 갈로아체 필드 원소의 역수근(α-i)을 대입하여 계산한 에러 평가값(Ω_VAL)을 출력한다.
상기 에러 위치 다항식 평가부(12)는 상기 에러 위치 다항식의 계수(σ_COEF)를 입력받아 상기 위치 계수(σ_COEF)를 가지는 에러 위치 다항식(σ(X))에 갈로아체 원소의 역수(α-i)를 대입한 값(σ(α-i))에 따라 에러 위치 신호(error_sign)를 출력함과 동시에, 에러 위치 다항식(σ(X))의 미분치인 미분 다항식(σ'(X))에 갈로아체 필드 원소의 역수(α-i)를 대입한 미분 평가값(σp_VAL)을 계산하여 출력한다.
상기 에러값 계산 및 정정부(13)는 상기 수학식 10과 같이 포니 알고리즘에 의해 에러값 ei을 계산하고, 에러가 발생했다는 에러 발생 신호(error_sign)에 따라 수신 심볼 ri에 상기 에러값 ei을 더하여 에러 정정된 심볼 ci을 출력한다.
상기 복원 실패 판단부(14)에서는 외부로부터 에러 위치 다항식의 최고차수 L 를 입력받아 에러 발생 심볼 수와 비교하여 에러 정정의 성공과 실패를 나타내는 복원 실패 신호(UNRCVR_FLAG)를 출력한다.
상기와 같이 구성된 에러 정정 시스템의 동작을 간단히 설명하면, 상기 신드롬 Si과 에러 위치 다항식의 계수 σ_COEF 을 입력받아 에러 평가 다항식 Ω(X) 을 구하는 한편, 상기 에러 평가 다항식 Ω(X)으로부터 에러값 ei을 구하고, 수신 심볼 ri에 상기 에러값 ei을 더하여 발생된 에러를 정정함과 동시에, 상기 에러 위치 다항식의 차수 L 을 입력받아 정정된 신호가 정확한지를 판단한다.
상기와 같은 기능을 수행하는 에러 정정 시스템에 대한 종래의 기술을 도 2 와 도 3을 참조하여 설명하고자 한다.
도 2 와 도 3에 도시한 실시 회로도는 디지털 위성 통신 방식의 DVB(digital video broadcasting)스펙과, DSS(direct satellite system)스펙을 동시에 수용하는 리드 솔로몬 복호기에 관한 발명 중에서 에러 정정 시스템에 관한 것으로서, 본 발명자에 의해 출원되어 공개된 대한 민국 특허 출원 제 96-37604 호에 기제되어 있다.
도 2 는 도 1 의 에러 평가 다항식 평가부의 1 실시 회로도로서, 에러 평가 다항식 평가부는 초기화부(20)와, 항 선택부(21), 차수 갱신부(22), 항 연산부(23), 및 에러 평가값 출력부(24)로 구성되어 있다.
상기 초기화부(20)는 갈로아체 필드의 역수 근이 저장된 롬(20-1∼20-16)과, 스펙 전환 신호(DVB_DSS)에 따라 상기 롬을 선택하는 8개의 멀티플렉서(20-17∼20-24), 제 9 멀티플렉서(20-25), 및 제 1 갈로아체 곱셈기(20-26)로 구성되어 있다.
상기 롬(20-1∼20-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개의 멀티플렉서(20-17∼20-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 멀티플렉서(20-25)는 초기근선택신호(IA_SEL)에 따라 상기 제 1 멀티플렉서(20-17)의 출력값부터 상기 제 8 멀티플렉서의 출력값(20-24)까지 차례대로 선택하여 출력한다.
상기 제 1 갈로아체 곱셈기(20-26)는 비트 클럭단위로 출력된 상기 제 9 멀티플렉서(20-25)의 출력값과 상기 도 1의 에러 평가 다항식 계산부(10)로부터 심볼 클럭단위로 출력된 에러 평가 다항식의 계수 Ω_COEF 를 입력받아 갈로아체 곱셈한 초기항값(INITIAL)을 출력한다.
그리고, 상기 항 선택부(21)는 초기화 신호(INIT_FLAG)에 따라 상기 초기화부(20)의 초기항값 또는 상기 차수 갱신부(22)의 중간항값을 선택하여 출력하는 제 10 멀티플렉서(21)로 구성되어 있다.
그리고, 상기 차수 갱신부(22)는 8개의 시프트레지스터(22-1)와, 차수를 갱신하기 위한 갈로아체 필드의 원소 α1, α23, α4, α5, α6, α7, α8이 저장된 롬 (22-2∼22-9), 제 11 멀티플렉서(22-10), 및 제 2 갈로아체 곱셈기(22-11)로 구성되어 있다.
상기 8개의 시프트레지스터(22-1)는 상기 항 선택부인 제 10 멀티플렉서(21)로부터 출력된 항 값을 비트클럭에 따라 시프트시켜 상기 제 2 갈로아체 곱셈기(22-11)로 출력한다.
상기 제 11 멀티플렉서(22-10)는 갱신근선택신호(A_SEL)에 따라 상기 롬의 값을 α1부터 α8까지 차례대로 선택하여 출력한다.
상기 제 2 갈로아체 곱셈기(22-11)는 상기 시프트레지스터(22-1)의 출력값과 상기 제 11 멀티플렉서(22-10)의 출력값을 갈로아체 곱셈하여 상기 항 연산부(23), 및 상기 항 선택부(21)로 출력한다.
그리고, 상기 항 연산부(23)는 제 1 갈로아체 덧셈기(23-1), 0x00이 저장된 롬(23-2), 반전 게이트(23-3), 논리곱 게이트(23-4), 제 12 멀티플렉서(23-5), 및 제 1 합 레지스터(23-6)로 구성되어 있다.
그리고, 상기 에러 평가값 출력부(24)는 제 2 합 레지스터(24-1)와, 에러 평가 다항식의 0차 계수값인 0x01이 저장된 롬(24-2), 제 2 갈로아체 덧셈기(24-3)로 구성되어있다.
상기와 같이 구성된 에러 평가 다항식 평가부는 스펙 전환 신호(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 와 곱셈연산하 평가값(Ω_VAL)을 구하는 것이다.
이어서, 도 3 은 도 1의 에러 위치 다항식 평가부의 실시 회로도로서, 에러 위치 다항식 평가부는 에러 위치 다항식(σ(X))을 평가하여 에러 위치 신호(error_sign)를 출력하고, 에러 위치 미분 다항식(σ'(X))을 평가하여 미분 평가값(σp_VAL)을 출력한다.
본 발명의 구성요소를 역할에 따라 크게 3부분으로 구분해보면, 초기화부(30)와 항 선택부(31) 및, 제 1 차수갱신부(32)는 항값을 갱신하는 부분이며, 제 1 다항식 연산부(33)와 제 2 다항 연산부(34) 및, 에러 판단부(35)는 에러 위치 다항식을 평가 진행하는 부분이며, 홀수차항 선택부(36)와, 제 2 차수 갱신부(37), 제 3 다항 연산부(38) 및, 미분 평가값 출력부(39)는 미분 다항식을 평가 진행하는 부분이다.
도 3a는 에러 위치 다항식의 항값을 갱신시키는 회로와 에러 위치 다항식을 평가하여 에러 위치 신호를 출력하는 회로가 도시되어 있으며, 도 3b는 에러 위치 미분다항식을 평가하여 미분 평가값을 출력하는 회로가 도시되어있다.
도 3a 에서 보는 바와 같이, 에러 위치 다항식 평가부는 외부로부터 에러 위치 다항식의 계수 σ_COEF 를 입력받아 갈로아체 필드 원소의 역수 α-i를 대입하여 차수를 증가시켜 항값을 갱신시키면서 에러 위치 다항식을 평가하는 회로로서, 상기 도 2에 도시된 에러 평가 다항식 평가부의 회로에 에러 판단부(35)가 추가로 구비되어 있다.
상기 에러 판단부(35)는 상기 제 2 다항 연산부(34)의 제 2 갈로아체 곱셈기(34-3)로부터 출력된 에러 위치 다항식의 평가값(σ_VAL)이 0인지 판단하여 0이면 에러 위치 신호(error_sign)를 출력하는 비교기(35)이다.
이어서, 도 3b는 에러 위치 미분 다항식의 미분 평가값(σp_VAL)을 출력하는 회로도이다.
상기 홀수차항 선택부(36)는 0x00이 저장된 롬(36-1)과, 제 5 선택신호(SEL5)에 따라 상기 제 1 차수 갱신부(30)로부터 출력된 항값 또는 상기 0x00 값을 선택적으로 출력하는 멀티플렉서(36-2)로 구성되어 있다.
그리고, 상기 제 2 차수 갱신부(37)는 α202이 저장된 롬(37-1)과, α145이 저장된 롬(37-2), 멀티플렉서(37-3), 레지스터(37-4), 반전 게이트(37-5), 차수를 갱신하기 위한 α-1이 저장된 롬(37-6), 및 제 3 갈로아체 곱셈기(37-7)로 구성되어 있다.
상기 멀티플렉서(37-3)는 상기 스펙 전환 신호(DVB_DSS)에 따라 DVB스펙일 경우는 α202를 선택하여 출력하고, DSS스펙일 경우는 α145를 선택하여 출력한다.
그리고, 상기 제 3 다항 연산부(38)는 제 4 갈로아체 곱셈기(38-1)와, 제 3 갈로아체 덧셈기(38-2),및 제 2 합 레지스터(38-3)로 구성되어 있다.
그리고, 상기 미분 평가값 출력부(39)는 심볼단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어서, 상기 제 3 갈로아체 덧셈기(38-2)로부터 출력된 미분 평가값(σp_VAL)을 비트 클럭에 따라 래치하여 미분 평가값(σp_VAL)을 최종 출력하는 D플립플롭(39)으로 구성되어 있다.
도 2와 도 3을 비교해 보면, 도 2의 초기화부(20)와 도 3의 초기화부(30)의 롬은 동일한 갈로아체 필드 원소의 역수를 저장하고 있으며, 차수 갱신부(22)와 제 1 차수 갱신부(32)에서도 역시 동일한 값을 각각의 롬에 저장하고 있음을 볼수 있다.
즉, 에러 평가 다항식 평가와 에러 위치 다항식 평가 진행을 수행하기 위해 동일한 값을 사용함에도 불구하고, 각기 다른 롬에 저장하므로써, 복호기 설계시 하드웨어의 낭비와 라우팅으로 인한 면적을 크게 차지하는 문제점이 있었다.
이에, 본 발명은 상기와 같은 종래의 문제점을 해소하기 위하여 안출된 것으로, 동일한 값을 저장하고 있는 롬을 따로 따로 구현하지 않고, 공유하여 사용하도록 구현한 리드 솔로몬 디코더의 에러 정정 시스템을 제공하는 데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 리드 솔로몬 에러 정정 시스템은, 리드 솔로몬 코드의 최고차부터 평가 진행하기위한 갈로아체 필드 원소의 역수에 해당하는 초기근(IALPHA : α-N*i, 1≤i≤t)와 다음 심볼을 위해 차수를 갱신하기위한 갈로아체 필드 원소에 해당하는 갱신근(ALPHA : αi, 1≤i≤t)를 저장하고 있는 공통 원소 저장수단과;
신드롬(SYND), 및 에러 위치 다항식의 계수(σ_COEF)를 입력받아 두 값을 갈로아체 곱셈하여 에러 평가 다항식의 계수(Ω_COEF)를 출력하는 에러 평가 다항식 계산수단;
상기 공통 원소 저장수단으로부터 입력받은 초기근(IALPHA)과 갱신근(ALPHA)을 이용하여, 상기 에러 평가 다항식의 계수(Ω_COEF)를 입력받아 에러 평가 다항식(Ω(X))을 평가하여 에러 평가값(Ω_VAL)을 출력하는 에러 평가 다항식 평가수단;
상기 공통 원소 저장수단으로부터 입력받은 초기근(IALPHA)과 갱신근(ALPHA)을 이용하여, 상기 에러 위치 다항식의 계수(σ_COEF)를 입력받아 에러 위치 다항식(σ(X))을 평가하여 에러 위치 신호(error_sign)를 출력함과 동시에, 에러 위치 다항식(σ(X))의 미분치인 미분 다항식(σ'(X))을 평가하여 미분 평가값(σp_VAL)을 출력하는 에러 위치 다항식 평가수단;
상기 미분 평가값(σp_VAL)과 에러 평가값 (Ω_VAL)을 입력받아 포니 알고리즘을 적용하여 에러값 ei을 계산하여 출력함과 동시에, 에러 발생 신호(error_sign)에 따라 수신 심볼 ri에 상기 에러값 ei을 더하여 에러 정정된 심볼 Ci을 출력하는 에러값 계산 및 정정수단; 및
상기 에러 정정된 심볼 Ci이 정확한지를 판단하는 복원 실패 판단수단을 포함하여 구성되는 것을 특징으로 한다.
상기와 같은 구성을 통하여서, 에러 평가 다항식 평가 칩의 내부, 에러 위치 다항식 평가 칩의 내부에 평가 진행에 필요한 동일한 값을 따로 따로 저장하지 않고, 공통 원소 저장부(외부 롬)에 저장하여 공동으로 사용할 수 있도록 제작하므로써, 롬이나 멀티플렉서의 수를 반절로 줄이고, 하드웨어 구성을 간단히 할수 있는 것이다.
도 1 는 종래의 리드 솔로몬 디코더의 에러 정정 시스템에 대한 구성도,
도 2 은 도 1의 에러 평가 다항식 평가부에 대한 실시 회로도,
도 3 는 도 1의 에러 위치 다항식 평가부에 대한 실시 회로도,
도 4 는 본 발명에 따른 리드 솔로몬 디코더의 에러 정정 시스템에 대한 구성도,
도 5 는 DVB스펙을 적용한 도 4 의 공통 원소 저장부에 대한 실시 회로도,
도 6 은 DVB스펙을 적용한 도 4 의 에러 평가 다항식 평가부에 대한 실시 회로도,
도 7 은 DVB스펙을 적용한 도 4 의 에러 위치 다항식 평가부에 대한 실시 회로도이다.
* 도면의 주요부분에 대한 부호의 설명
40 : 공통 원소 저장부 50-1∼50-8, 50-10∼50-17 : 롬
50-9, 50-18 : 멀티플렉서 41 : 에러 평가 다항식 계산부
42 : 에러 평가 다항식 평가부 43: 에러 위치 다항식 평가부
44 : 에러값 계산 및 정정부 45 : 복원 실패 판단부
60, 62-11 : 갈로아체 곱셈기 62 : 시프트 레지스터
61, 63-5 : 멀티플렉서 63-6, 64-1 : 레지스터
63-1, 64-3 : 갈로아체 덧셈기 70, 72-11, 77-5,78 : 갈로아체 곱셈기
71, 73-5, 76-2 : 멀티플렉서 72-1 : 시프트레지스터
73-1, 74-3, 78-2 : 갈로아체 덧셈기
73-6, 74-1, 77-3, 78-3, 79 : 레지스터
75 : 비교기
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 4 는 본 발명에 따른 에러 정정 시스템에 대한 구성도로서, 에러 정정 시스템은 공통 원소 저장부(40)와, 에러 평가 다항식 계산부(41), 에러 평가 다항식 평가부(42), 에러 위치 다항식 평가부(43), 에러값 계산 및 정정부(44), 및 복원 실패 판단부(45)로 구성되어 있다.
상기 공통 원소 저장부(41)는 리드 솔로몬 코드의 최고차부터 평가 진행하기위한 갈로아체 필드 원소의 역수에 해당하는 초기근(α-N*i)과 다음 심볼을 위해 차수를 갱신 하기위한 갈로아체 필드 원소에 해당하는 갱신근(αi)을 저장하고 있다.
상기 에러 평가 다항식 계산부(41)는 신드롬(SYND), 및 에러 위치 다항식의 계수(σ_COEF)를 입력받아 두 값을 곱셈하여 에러 평가 다항식의 계수(Ω_COEF)를 출력한다.
상기 에러 평가 다항식 평가부(42)는 상기 에러 평가 다항식의 계수(Ω_COEF)를 입력받아 상기 공통원소 저장부(40)로부터 입력받은 초기근α-N*i과 갈로아체 필드의 원소인 갱신근 αi를 이용해서, 상기 에러 평가 다항식의 계수(Ω_COEF)를 입력받아 에러 평가 다항식(Ω(X))을 평가한 에러 평가값(Ω_VAL)을 출력한다.
상기 에러 위치 다항식 평가부(43)는 상기 에러 위치 다항식의 계수(σ_COEF)를 입력받아 상기 공통원소 저장부(40)로부터 입력받은 초기근 α-N*i과 갈로아체 필드의 원소인 갱신근 αi를 이용해서, 에러 위치 다항식(σ(X))을 평가하여 에러 위치 신호(error_sign)를 출력함과 동시에, 에러 위치 다항식(σ(X))의 미분치인 미분 다항식(σ'(X))을 평가한 미분 평가값(σp_VAL)을 출력한다.
상기 에러값 계산 및 정정부(44)는 상기 미분 평가값(σp_VAL)과 에러 평가값 (Ω_VAL)을 입력받아 포니 알고리즘을 적용하여 에러값 ei을 계산하여 출력함과 동시에, 에러 발생 신호(error_sign)에 따라 수신 심볼 ri에 상기 에러값 ei을 더하여 에러 정정된 심볼 Ci을 출력한다.
상기 복원 실패 판단부(45)는 상기 에러 정정된 심볼 Ci이 정확한지 아닌지를 판단하여 복원 실패 신호(UNRCVR_FRAG)를 출력한다.
이어서, 본 발명을 적용시킨 실시예를 들어 작용 및 효과를 자세히 설명하기로 한다.
도 5 와 도 6 은 DVB스펙에서 사용하는 (204, 188)리드 솔로몬 디코더의 에러 정정 시스템에 적용시킨 실시 회로도이다.
여기서, DVB 스펙에서사용하는 리드 솔로몬 부호는 8비트를 한 심볼로하여 204개의 심볼이 1코드워드(r0∼r203)를 이루며, 그 중 203차 심볼(r203)은 동기 바이트로 사용되고 있다. 따라서, 203차 심볼은 평가 진행을 수행하지 않아도 원래의 정보에는 영향을 미치지 않기 때문에 본 실시예에서는 r202차부터 평가 진행을 수행하도록 구현하였다.
도 5 는 DVB스펙에 적용된 도 4 의 공통 원소 저장부에 대한 실시 회로도이다.
도 5에서 보는 바와 같이, 상기 공통 원소 저장부(40)는 평가 진행 초기화를 위한 초기근(IALPHA)인 를 저장하는 롬(50-1∼50-8)과, 초기근선택신호(EIA_SEL)에 따라 상기 롬값(50-1∼50-8)을 차례대로 선택하여 출력하는 제 1 멀티플렉서(50-9), 차수 갱신을 위한 갈로아체 원소를 저장하는 롬(50-10∼50-17), 및 갱신근선택신호(EA_SEL)에 따라 상기 롬값(50-10∼50-17)을 차례대로 선택하여 출력하는 제 2 멀티플렉서(50-18)로 구성되어 있다.
이어서, 도 6 은 DVB스펙에 적용된 도 4 의 에러 평가 다항식 평가부에 대한 실시 회로도로서, 에러 평가 다항식 평가부(42)는 초기화부(60)와, 항 선택부(61), 차수 갱신부(62), 항 연산부(63), 및 에러 평가값 출력부(64)로 구성되어 있다.
상기 초기화부(60)는 갈로아체 곱셈기로 구성되며, 상기 공통 원소 저장부(40)로부터 비트클럭단위로 출력된 초기근(IALPHA)을 입력 받고, 상기 에러 평가 다항식 계산부(41)로부터 심볼 클럭단위로 출력된 에러 평가 다항식의 계수(Ω_COEF)를 입력받아 갈로아체 곱셈하여 초기항값(INITIAL)을 출력한다.
그리고, 상기 항 선택부는(61)는 초기화 신호(INIT_FLAG)에 따라 상기 제 1 갈로아체 곱셈기의 초기항값(INITIAL) 또는 상기 차수 갱신부(62)의 중간항값(MEDIAN)을 선택하여 출력하는 제 3 멀티플렉서이다.
그리고, 상기 차수 갱신부(62)는 시프트레지스터(62-1)와, 제 2 갈로아체 곱셈기(62-2)로 구성되어 있다.
상기 시프트레지스터(62-1)는 8개의 레지스터가 직렬로 연결되어 있으면서, 상기 항 선택부(61)로부터 출력된 항 값을 비트클럭에 따라 시프트시켜 출력한다.
상기 제 2 갈로아체 곱셈기(62-2)는 상기 시프트레지스터(62-1)의 출력값과 상기 공통 원소 저장부(40)로부터 비트 클럭단위로 출력된 차수 갱신을 위한 갱신근 (ALPHA)를 입력 받아 갈로아체 곱셈하여 상기 항 연산부(63), 및 상기 항 선택기(61)로 출력한다.
그리고, 상기 항 연산부(63)는 제 1 갈로아체 덧셈기(63-1)와, 0x00이 저장된 롬(63-2), 반전 게이트(63-3), 논리곱 게이트(63-4), 제 4 멀티플렉서(63-5), 및 제 1 합 레지스터(63-6)로 구성되어 있다.
상기 제 1 갈로아체 덧셈기(63-1)는 상기 제 2 갈로아체 곱셈기(62-2)로부터 출력된 값과 피드백 입력된 값을 덧셈하여 출력한다.
상기 반전 게이트(63-3)는 심볼단위마다 발생하는 심볼리셋신호(RST_SUM)를 반전시킨다.
상기 논리곱게이트(63-4)는 외부로부터 제공되는 리셋신호(RST)와 상기 반전된 심볼리셋신호(RST_SUM)를 논리곱하여 출력한다.
상기 제 4 멀티플렉서(63-5)는 상기 논리곱게이트(63-4)의 출력신호에 따라 상기 제 1 갈로아체 덧셈기(63-1)의 출력값 또는 상기 롬값(0x00)을 선택하여 출력한다.
상기 제 1 합 레지스터(63-6)는 상기 멀티플렉서(63-5)의 출려값을 래치하여 다시 상기 제 1 갈로아체 덧셈기(63-1)로 피드백 입력함과 동시에, 상기 논리곱 게이트(63-4)의 출력신호의 액티브 로우에서 리셋된다.
그리고, 상기 에러 평가값 출력부(64)는 제 2 합 레지스터(64-1)와, 에러 평가 다항식의 0차 계수값인 0x01이 저장된 롬(64-2), 및 제 2 갈로아체 덧셈기(64-3)로 구성되어있다.
상기 제 2 합 레지스터(64-1)는 심볼단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어 비트 클럭에 따라 상기 제 1 갈로아체 덧셈기(63-1)로부터 출력된 항값을 래치하여 출력한다.
상기 제 2 갈로아체 덧셈기(64-3)는 상기 제 2 합레지스터(64-1)로부터 출력된 항값과 상기 롬(64-2)의 0차항값(0x01)을 로드하여 갈로아체 덧셈한 에러 평가값(Ω_VAL)을 출력한다.
이제, 상기 공통 원소 저장부(40)의 출력에 따른 에러 평가 다항식 평가부의 작용을 설명하고자 한다.
도 5의 공통 원소 저장부(40)의 제 1 멀티플렉서(50-9)는 수신 심볼을 평가하기위한 초기근을 초기근선택신호(EIA_SEL)에 따라 비트 클럭단위로 차례대로 선택하여 도 6의 제 1 갈로아체 곱셈기(60)로 출력한다.
한편, 외부장치로부터 계산되어진 에러 평가 다항식 계수들(Ω_COEF)이 순서대로 도 6의 제 1 갈로아체 곱셈기(60)로 입력되고, 상기 제 1 갈로아체 곱셈기(60)는 두 값을 곱하여초기항값 (INITIAL) Ω1α-203, Ω2α-203*2, Ω3α-203*34α-203*45α-203*56α-203*6, Ω7α-203*78α-203*8 을 순서대로 상기 제 3 멀티플렉서(61)로 입력한다.
상기 제 3 멀티플렉서(61)는 초기화 신호(INIT_FLAG)에 따라 상기 초기항값(INITIAL)을 선택하여 상기 차수 갱신부(62)의 8개의 시프트레지스터(62-1)로 출력한다.
상기 8개의 시프트레지스터(62-1)는 상기 초기항값(INITIAL)을 비트클럭에 따라 시프트시켜서 최종단의 레지스터값을 제 2 갈로아체 곱셈기(62-2)로 출력한다.
한편, 공통 원소 저장부(40)의 제 2 멀티플렉서(50-18)는 갱신근선택신호(EIA_SEL)에 따라 각 롬(50-10∼50-17)에 저장된 α12345678값을 순서대로 선택하여 제 2 갈로아체 곱셈기(62-2)로 출력한다.
상기 제 2 갈로아체 곱셈기(62-2)는 상기 시프트레지스터(62-1)의 항 값과 상기 차수 갱신을 위한 롬값을 순서대로 곱하여Ω1α-202, Ω2α-202*2, Ω3α-202*3, Ω4α -202*4 ,Ω5α-202*56α-202*67α-202*78α-202*8값을 비트클럭에 따라 출력한다.
상기 항 연산부(63)의 제 1 갈로아체 덧셈기(63-1)에서는 상기 제 2 갈로아체 곱셈기(62-2)로부터 출력된 항값과 상기 제 1 합레지스터(63-6)에서 피드백된 값을 합하여 제 4 멀티플렉서(63-5)로 출력한다.
상기 제 1 합레지스터(63-6)는 상기 제 4 멀티플렉서(63-5)로부터 출력된 값을 비트 클럭에 따라 래치하여 상기 제 1 갈로아체 덧셈기(63-1)로 피드백시킨다.
이렇게 하여, 상기 항 연산부(63)를 통해서 202차 심볼 r202에 대한 에러 평가 다항식의 1차항에서 8차항까지의 합값(SUM1=Ω1α-2022α-202*23α-202*3+ Ω4α-202*45α-202*56α-202*67α-202*78α-202*8)이 출력된다.
상기 에러 평가값 출력부(64)의 제 2 합레지스터(64-1)는 심볼마다 발생하는 심볼 리셋신호(RST_SUM)에 의해 인에이블 상태가 되어 상기 제 1 갈로아체 덧셈기(63-1)로부터 출력된 합값(SUM1)을 래치하여 상기 제 2 갈로아체 덧셈기(64-3)로 출력한다.
상기 제 2 갈로아체 덧셈기(64-3)는 상기 합값(SUM1)과 상기 롬(64-2)으로부터 로드한 0차계수(Ω0)에 해당하는 0x01값을 더하여 수신 심볼 r202에 대한 에러 평가 진행을 수행한 Ω(α-202)값을 에러 평가 다항식의 평가값(Ω_VAL)으로 출력한다.
계속해서, 수신 심볼 r201에 대한 에러 평가 진행은 상기 차수 갱신부(62)의 제 2 갈로아체 곱셈기(62-2)로부터 출력된 값 Ω1α-202*1, Ω2α-202*23α-202*34α-202*45α-202*5, Ω6α-202*6, Ω7α-202*7, Ω8α-202*8이 항 선택부(61)를 통해 선택되어져서 상기 시프트 레지스터(62-1)로 출력된다.
상기 8개의 시프트 레지스터(62-1)는 비트 클럭에 따라 우측으로 시프트시켜 상기 제 2 갈로아체 곱셈기(62-2)로 출력하고, 상기 제 2 갈로아체 곱셈기(62-2)에서는 상기 공통 원소 저장부(40)의 제 2 멀티플렉서(50-18)로부터 출력된 차수 갱신을 위한 원소들과 곱셈하여 출력한다.
상기 제 2 갈로아체 곱셈기(62-2)로부터 출력된 Ω1α-201*1, Ω2α-201*2, Ω3α-201*3, Ω4α-201*4, Ω5α-201*5, Ω6α-201*6, Ω7α-201*7, Ω8α-201*8값이 항 연산부(63)및 항 선택부(61) 로 입력되어 차수가 갱신되고, 상기 항 연산부(63)와 항 선택부(61)는 상기에 설명한 동작을 반복하는 에러 평가 진행을 수행하므로써, 상기 에러 평가 출력부(64)를 통해 에러 평가값(Ω(α-201))이 구해지는 것이다.
이어서, 도 7 은 DVB 스펙에 적용된 도 4 의 에러 위치 다항식 평가부의 실시 회로도로서, 에러 위치 다항식 평가부(43)는 에러 위치 다항식(σ(X))을 평가하여 에러 위치 신호(error_sign)를 출력하고, 에러 위치 미분 다항식을 평가하여 미분 평가값(σp_VAL)을 출력한다.
도 7의 본 발명의 구성요소를 역할에 따라 크게 항값을 갱신하는 부분과, 에러 위치 다항식을 평가 진행하는 부분, 미분 다항식을 평가 진행하는 3 부분으로 구분된다.
도 7 에서 보는 바와 같이, 에러 위치 다항식 평가부(43)는 항값을 갱신하는 부분에 해당하는 초기화부(70)와, 항 선택기(71), 및 제 1 차수 갱신부(72); 에러 위치 다항식(σ(X))을 평가 진행하는 부분에 해당하는 제 1 다항 연산부(73), 제 2 다항 연산부 (74) 및 에러 판단부(75); 에러 위치 미분 다항식(σ'(X))을 평가진행하는 부분에 해당하는 홀수차항 선택부(76)와, 제 2 차수 갱신부(77), 제 3 다항 연산부(78), 및 미분 평가값 출력부(79)로 구성되어 있다.
① 항값을 갱신하는 부분
상기 초기화부(70)는 제 1 갈로아체 곱셈기(70)로 구성되며, 상기 공통 원소 저장부(40)로부터 비트클럭단위로 출력된 초기근(IALPHA)을 입력 받고, 외부장치로부터 심볼 클럭단위로 출력된 에러 위치 다항식의 계수(σ_COEF)를 입력받아 갈로아체 곱셈하여 초기항값(INITIAL)을 출력한다.
그리고, 상기 항 선택부는(71)는 초기화 신호(INIT_FLAG)에 따라 상기 제 1 갈로아체 곱셈기(70)의 초기항값(INITIAL) 또는 상기 차수 갱신부(72)의 중간항값(MEDIAN)을 선택하여 출력하는 제 5 멀티플렉서(71)로 구성되어 있다.
그리고, 상기 차수 갱신부(72)는 시프트레지스터(72-1)와, 제 2 갈로아체 곱셈기(72-2)로 구성되어 있다.
상기 시프트레지스터(72-1)는 8개의 레지스터가 직렬로 연결되어 있으면서, 상기 항 선택부(71)로부터 출력된 항 값을 비트클럭에 따라 시프트시켜 출력한다.
상기 제 2 갈로아체 곱셈기(72-2)는 상기 시프트레지스터(72-1)의 출력값과 상기 공통 원소 저장부(40)로부터 비트 클럭 단위로 출력된 갱신근(ALPHA)을 갈로아체 곱셈하여 상기 항 연산부(73), 및 상기 항 선택부(71)로 출력한다.
②에러 위치 다항식 평가 진행하는 부분
상기 항 연산부(73)는 제 1 갈로아체 덧셈기(73-1)와, 0x00이 저장된 롬(73-2), 반전 게이트(73-3), 논리곱 게이트(73-4), 제 6 멀티플렉서(73-5), 및 제 1 합 레지스터(73-6)로 구성되어 있다.
상기 제 1 갈로아체 덧셈기(73-1)는 상기 제 2 갈로아체 곱셈기(72-2)로부터 출력된 값과 피드백 입력된 값을 덧셈하여 출력한다.
상기 반전 게이트(73-3)는 심볼단위마다 발생하는 심볼리셋신호(RST_SUM)를 반전시킨다.
상기 논리곱게이트(73-4)는 외부로부터 제공되는 리셋신호(RST)와 상기 반전된 심볼리셋신호(RST_SUM)를 논리곱하여 출력한다.
상기 제 6 멀티플렉서(73-5)는 상기 논리곱게이트(73-4)의 출력신호에 따라 상기 제 1 갈로아체 덧셈기(73-1)의 출력값 또는 상기 롬값(0x00)을 선택하여 출력한다.
상기 제 1 합 레지스터(73-6)는 상기 제 6 멀티플렉서(73-5)의 출려값을 래치하여 다시 상기 제 1 갈로아체 덧셈기(73-1)로 피드백 입력함과 동시에, 상기 논리곱 게이트(73-4)의 출력신호의 액티브 로우에서 리셋된다.
그리고, 상기 제 2 다항 연산부(74)는 제 2 합 레지스터(74-1)와, 에러 평가 다항식의 0차 계수값인 0x01이 저장된 롬(74-2), 및 제 2 갈로아체 덧셈기(74-3)로 구성되어있다.
상기 제 2 합 레지스터(74-1)는 심볼단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어 비트 클럭에 따라 상기 제 1 갈로아체 덧셈기(73-1)로부터 출력된 항값을 래치하여 출력한다.
상기 제 2 갈로아체 덧셈기(74-3)는 상기 제 2 합레지스터(74-1)로부터 출력된 항값과 0차 계수(σ0)에 해당하는 상기 롬(74-2)의 0x01 을 입력받아 갈로아체 덧셈하여 위치 평가값(σ_VAL)을 출력한다.
그리고, 상기 에러 판단부(75)는 상기 제 2 갈로아체 덧셈기(75-3)로부터 출력된 에러 위치 다항식의 평가값(σ_VAL)이 0인지 판단하여 0이면 에러 위치 신호(error_sign)를 '하이'로 출력하는 비교기(75)이다.
③에러 미분 다항식 평가 진행하는 부분
상기 홀수차항 선택부(76)는 0x00이 저장된 롬(76-1)과, 갱신근선택신호(SEL5)의 최하위비트(EA_SEL0)에 따라 상기 제 1 차수 갱신부(72)로부터 출력된 항값 또는 상기 0x00 값을 선택적으로 출력하는 제 7 멀티플렉서(76-2)로 구성되어 있다.
그리고, 상기 제 2 차수 갱신부(77)는 반전 게이트(77-1)와, α202이 저장된 롬(77-2), 레지스터(77-3), 차수를 갱신하기 위한 α-1이 저장된 롬(77-4), 제 3 갈로아체 곱셈기(77-7)로 구성되어 있다.
상기 반전 게이트(77-1)는 평가 시작을 알리는 초기화 신호(INIT_FLAG)를 반전시켜 상기 레지스터(77-3)를 셋트시킨다.
상기 레지스터(77-3)는 상기 롬 값(α202)을 로드하여 출력한 이후, 심볼단위 마다 발생하는 심볼리셋신호(RST_SUM)에의해 인에이블되어서 피드백 입력된 값 αi을 래치하여 계속해서 출력한다.
상기 제 3 갈로아체 곱셈기(77-5)는 상기 레지스터(77-3)로부터 출력된 값 αi에 α-1를 곱한 값을 다시 상기 레지스터(77-4)로 피드백 입력시킨다.
그리고, 상기 제 3 다항 연산부(78)는 제 4 갈로아체 곱셈기(78-1)와, 제 3 갈로아체 덧셈기(78-2), 및 제 2 합 레지스터(78-3)로 구성되어 있다.
상기 제 4 갈로아체 곱셈기(78-1)는 상기 제 7 멀티플렉서(76-2)로부터 출력된 홀수차항(odd) 또는 0x00과, 상기 제 1 레지스터(77-3)로부터 출력된 값 αi을 곱하여 상기 제 3 갈로아체 덧셈기(78-2)로 출력한다.
상기 제 3 갈로아체 덧셈기(78-2)는 상기 제 4 갈로아체 곱셈기(78-1)로부터 출력된 값과 상기 제 2 합 레지스터(78-3)로부터 피드백 입력된 합값을 더하여 출력한다.
상기 제 2 합 레지스터(78-3)는 상기 제 3 갈로아체 덧셈기(78-2)에서 출력된 값을 비트 클럭(bit_clk)에 따라 래치하여 상기 제 3 갈로아체 덧셈기(78-2)로 피드백 입력 시키는 한편, 심볼단위마다 발생하는 심볼리셋신호(RST_SUM)에 의해 리셋된다.
그리고, 상기 미분 평가값 출력부(79)는 심볼단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어서, 상기 제 3 갈로아체 덧셈기(78-2)로부터 출력된 미분 평가값(σp_VAL)을 비트 클럭에 따라 래치하여 미분 평가값(σp_VAL)을 최종 출력하는 D플립플롭(79)으로 구성되어 있다.
이어서, 상기와 같은 구성을 갖는 에러 위치 다항식 평가부(43)의 구체적인 동작을 3 단계의 과정으로 구분하여 설명하면 다음과 같다.
(1). 초기화 과정
비트 클럭(BIT_CLK)단위로 발생하는 초기근 선택신호(EIA_SEL)에 따라 제 1 멀티플렉서(50-9)는 갈로아체 필드의 역수(IALPHA)값들인 α-203*1, α-203*2-203*3, α-203*4-203*5-203*6, α-203*7-203*8을 차례대로 선택하여 초기화부(70)인 제 1 갈로아체 곱셈기(70)로 출력한다.
한편, 외부장치로부터 계산되어진 에러 위치 다항식의 계수들 (σ_COEF : σ12... σ8)이 순서대로 상기 제 1 갈로아체 곱셈기(70)로 입력된다.
상기 제 1 갈로아체 곱셈기(70)는 비트 클럭단위로 동작하여 σ1α-203*1, σ2α-203*2, σ3α-203*3, σ4α-203*45α-203*5, σ6α-203*6, σ7α-203*7, σ8α-203*8
으로 초기화된 값(INITIAL)을 순서대로 상기 항 선택부(71)인 제 5 멀티플렉서(71)로 출력한다.
상기 제 5 멀티플렉서(71)는 초기화 신호(INIT_FLAG)에 따라 상기 초기화값(INITIAL)을 선택하여 상기 8개의 시프트레지스터(72-1)로 출력한다.
상기 8개의 시프트레지스터(72-1)는 상기 제 5 멀티플렉서(71)에서 출력된 초기화값(INITIAL)을 비트 클럭(BIT_CLK)에 따라 시프트시켜 제 2 갈로아체 곱셈기(72-2)로 출력한다.
한편, 상기 공통 원소 저장부(40)의 제 2 멀티플렉서(50-18)는 비트 클럭단위로 발생하는 갱신근선택신호(EA_SEL)에 따라 롬(50-10∼50-17)으로부터 α12,α345678값을 순서대로 선택하여 제 2 갈로아체 곱셈기(72-2)로 출력한다.
상기 제 2 갈로아체 곱셈기(72-2)에서는 상기 시프트레지스터(72-1)로부터 입력된 초기화값(INITIAL)과 상기 갱신근(ALPHA)를 비트 클럭단위로 각각 곱하여 σ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 갈로아체 곱셈기(72-2)로부터 출력된 항값은 3가지로 분기되어 각각 출력되는데, 상기 출력된 항값들을 더하여 에러 위치 신호(error_sign)를 발생하는 부분과, 출력된 항값들중 홀수차항만을 선택하여 미분 평가값(σp_val)을 출력하는 부분 및, 상기 레지스터부의 항값들을 갱신(up_date)하기 위한 부분으로 분기한다.
(2). 에러 위치 신호(error_sign)를 발생하는 평가 진행
상기 제 1 다항연산부(73)의 제 1 갈로아체 덧셈기(73-1)에서는 상기 제 2 갈로아체 곱셈기(72-2)로부터 출력된 항값과 상기 제 1 합 레지스터(73-6)에서 피드백된 값을 합하여 상기 제 6 멀티플렉서(73-5)로 출력한다.
상기 제 6 멀티플렉서(73-5)는 리셋신호(RST)와 반전된 심볼리셋신호(RST_SUM)를 논리곱하여 출력된 신호에 따라 상기 제 1 갈로아체 덧셈기(73-1)로부터 출력된 값또는 롬(73-2)의 0x00을 선택하여 제 1 합 레지스터(73-6)로 출력한다.
상기 제 1 합 레지스터(73-6)는 상기 제 6 멀티플렉서(73-5)로부터 출력된 값을 비트 클럭에 따라 래치하여 상기 제 1 갈로아체 덧셈기(73-1)로 피드백시킴과 더불어 리셋신호(RST)와 반전된 심볼리셋신호(RST_SUM)를 논리곱하여 출력된 신호에 의해 리셋된다.
이렇게하여, 상기 제 1 다항연산부(73)를 통해서 에러 위치 다항식(σ(X)) 의 1차에서 8차까지의 항 합값 (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 다항 연산부(74)의 제 2 합 레지스터(74-1)에서는 바이트 클럭단위로 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블 되어 상기 제 1 다항 연산부(73)에서 출력된 합값(SUM1)을 래치하여 상기 제 2 갈로아체 덧셈기(74-3)로 출력한다.
상기 제 2 갈로아체 덧셈기(74-3)는 상기 합값(SUM1)과 상기 롬(64-2)으로부터 입력된 0차 계수(σ0)에 해당하는 0x01값을 더하여 에러 위치 다항식의 평가값 (σ_VAL)을 구한다.
상기 비교기(75)는 상기 위치 평가값(σ_VAL)을 입력받아 평가값이 0임이 판단되면, 에러가 발생했음을 알리는 에러 위치 신호(error_sign)를 1로 발생하고, 0이 아니면, 에러가 발생하지 않았음을 알리는 0으로 발생한다.
지금까지의 평가 진행은 DVB스펙의 수신심볼 r202에 대한 에러 발생 위치를 판단하는 진행과정을 보인 것이며, 나머지 수신 심볼에 대한 에러 발생 위치 신호(error_sign)도 같은 과정으로 발생된다.
(3). 미분 평가값을 출력하는 평가 진행
상기 홀수차항 선택부(76)의 제 7 멀티플렉서(76-2)는 상기 갱신근선택신호(EA_SEL)의 최하위 비트를 선택신호(EA_SEL0)로 사용한다.
제 7 멀티플렉서(76-2)는 제 2 갈로아체 곱셈기(72-2)로부터 출력된 항값과 상기 롬(76-1)으로부터 출력된 0x00값을 입력받아 σ1α-203*1,0x00 , σ3α-203*3,0x00 , σ5α-203*5, 0x00 , σ7α-203*7,0x00을 차례대로 선택하여 상기 제 3 다항 연산부(78)의 제 4 갈로아체 곱셈기(78-1)로 출력한다.
한편, 상기 제 2 차수 갱신부(77)의 상기 레지스터(77-3)는 초기화 신호(INI_FLAG)를 반전시킨 신호에 의해 세트(set)되고, 바이트 클럭단위로 발생하는 심볼리셋신호(RST_SUM)에 의해 인에이블 상태가 되며, 비트 클럭(BIT_CLK)으로 클럭신호(clk)를 받아 레지스터의 값을 출력한다.
그리고, 상기 레지스터(77-3)는 상기 롬(77-2)에 저장된 α202값을 로드하여 상기 제 3 다항 연산부(78)의 상기 제 4 갈로아체 곱셈기(78-1) 및, 상기 제 3 갈로아체 곱셈기(77-5)로 출력한다.
여기서, 상기 제 3 갈로아체 곱셈기(77-5)는 상기 롬(77-4)에 저장된 α-1값과 상기 레지스터(77-3)로부터 출력된 값을 곱하여, 그 값을 다시 상기 레지스터(77-3)로 피드백 입력시킨다.
상기 제 3 다항 연산부(78)의 상기 제 4 갈로아체 곱셈기(78-1)에서는 상기 레지스터(77-3)로부터 출력된 α202을 입력받고, 상기 홀수차항 선택부(76)로부터 출력된 값을 입력받아 곱하여 σ1α-202*1α202, 0x00 , σ3α-202*3α202,0x00 , σ5α-202*5α202, 0x00 , σ7α-202*7α202,0x00 값을 비트 클럭에 따라 순서대로 출력하여 제 3 갈로아체 덧셈기(78-2)로 입력시킨다.
상기 제 3 갈로아체 덧셈기(78-2)는 상기 제 4 갈로아체 곱셈기(78-1)로부터 출력된 값과 상기 제 2 합 레지스터(78-3)로부터 출력된 값을 더하여 다시, 상기 제 2 합 레지스터(78-3)로 피드백 입력한다.
상기 제 2 합 레지스터(78-3)는 비트 클럭에 따라 상기 제 3 갈로아체 덧셈기(78-2)로부터 출력되는 값을 피드백 입력받고, 바이트 클럭단위로 발생하는 심볼 리셋신호(RST_SUM)에 의해 리셋된다.
또한, 상기 미분 평가값 출력부(79)는 바이트 클럭단위로 발생되는 심볼리셋신호(RST_SUM)에 의해 인에이블상태가 되어, 상기 제 3 갈로아체 덧셈기(78-2)로부터 출력된 값 즉, 미분 평가값(σp_VAL)을 래치하여 수신 심벌에 대한 미분 평가값 (σp_VAL)을 출력한다.
즉, 수신심볼 r202에 대한 미분 평가값은 σ1α-202*1α2023α-202*3α202+ σ5α-202*5α2027α-202*7α202202odd(σ(α-202))으로 출력되며, 나머지 수신심볼에 대해서도 제 2 차수 갱신부(77)의 αi차수가 1씩 감소되어 홀수차항에 곱해지면서 동일한 동작을 통해 미분 평가값(σp_VAL)이 구해진다.
지금까지 설명한 다항식 평가 진행 과정에서 알수 있는 바와 같이, 각 다항식 평가 장치의 외부에 공통 원소 저장부를 두고, 이곳에 필요한 근(ALPHA,IALPHA)을 저장해서 각 에러 평가 진행 및 에러 위치 평가 진행 시 공동으로 사용하고 있다. 본 발명의 다른 실시예로, DSS스펙에 적용되는 리드 솔로몬 디코더를 들 수 있다.
DSS스펙에서 채택한 (146, 130)리드 솔로몬 부호는 8비트를 한 심볼로 하여 130개 정보 심볼에 16개의 검사 심볼을 첨가하여 하나의 코드 워드를 이루고 있으며, 에러 정정 능력 t=8이므로, 에러 평가 다항식 및 에러 위치 다항식의 최고차항이 8차까지 존재할 수 있다.
따라서, DVB용 에러 정정기와 동일한 구성요소 및 동일한 비트 클럭을 사용할 수 있다.
다만, 차이점은 DSS스펙에서는 DVB와는 달리 동기 바이트를 부호화 시키지 않고 나중에 삽입하는 방식이다.
따라서, DSS스펙에 적용된 에러 정정 시스템의 공통 원소 저장부(40)에는 초기화를 위한 롬값은 α-146*1, α-146*2, α-146*3, α-146*4, α-146*5, α-146*6, α-146*7, α-146*8이며, 갱신하기 위한 롬값은 α1, α2, α3, α4, α5, α6, α7, α8이고, 에러 위치 평가부(43)의 제 2 차수 갱신부(77)의 롬(77-2)값은 α145이다.
본 발명의 또다른 실시예로, 고화질 텔레비젼(ATV:advanced television)에 적용되는 리드 솔로몬 디코더를 들수 있다.
ATV에서 채택한 (207, 187)리드 솔로몬 부호는 8비트를 한 심볼로 하여 187개 정보 심볼에 20개의 검사 심볼을 첨가하여 하나의 코드 워드를 이루고 있으며, 에러 정정 능력 t=10 이므로, 에러 평가 다항식 및 에러 위치 다항식의 최고차항은 10차까지 존재할 수 있다.
따라서, 에러 평가 다항식 평가부(42)의 시프트레지스터(62-1) 및 에러 위치 평가 다항식 평가부(43)의 시프트레지스터(72-1)는 10개의 레지스터가 직렬로 연결되어 시프트레지스터를 이룬다.
또한, DVB용 에러 정정기와 동일한 클럭을 사용할 수 없으며, 심볼 클럭을 10분주한 클럭을 사용하여 각종 회로(갈로아체 곱셈기, 갈로아체 덧셈기, 레지스터 등)가 동작해야한다.
그리고, 동기 바이트는 부호화 시키지 않고 나중에 삽입하는 방식이므로, ATV에 적용된 에러 정정 시스템의 공통 원소 저장부에는 초기화를위한 롬값은 α-207*1, α-207*2, α-207*3, α-207*4, α-207*5, α-207*6, α-207*7, α-207*8, α-207*9, α-207*10이며, 갱신하기 위한 롬값은 α1, α2, α3, α4, α5, α6, α7, α8, α9, α10이며, 에러 위치 평가 다항식 평가부의 롬값은 α206이다.
이상에서 살펴본 바와 같이, 에러 평가 다항식 및 에러 위치 다항식을 평가하기위해 사용되는 동일한 원소값을 에러 평가 다항식 평가 칩의 내부, 에러 위치 다항식 평가 칩의 내부에 따로 따로 저장하지 않고, 외부 롬에 저장하여 공동으로 사용할 수 있도록 구현하므로써, 롬이나 멀티플렉서의 수를 반절로 줄이고, 하드웨어 구성을 간단히 할수 있는 효과가 있는 것이다.

Claims (23)

  1. 갈로아체 필드 GF(2m)상에서 t개의 에러정정 능력을 갖는 리드 솔로몬 코드의 에러 평가 다항식과, 에러 위치 다항식및 에러 위치 미분 다항식을 평가 진행하여 수신 심볼에서 발생한 에러를 정정하는 시스템에 있어서, 리드 솔로몬 코드의 최고차부터 평가 진행하기위한 초기근(IALPHA)와 다음 심볼을 위해 차수를 갱신하기위한 갱신근(ALPHA)를 저장하고 있는 공통 원소 저장수단(40)과; 신드롬(SYND), 및 에러 위치 다항식의 계수(σ_COEF)를 입력받아 두 값을 갈로아체 곱셈하여 에러 평가 다항식의 계수(Ω_COEF)를 출력하는 에러 평가 다항식 계산 수단(41); 상기 공통 원소 저장수단(40)으로부터 입력받은 초기근(IALPHA)과 갱신근(ALPHA)을 이용하여, 상기 에러 평가 다항식의 계수(Ω_COEF)를 입력받아 에러 평가 다항식(Ω(X))을 평가하여 에러 평가값(Ω_VAL)을 출력하는 에러 평가 다항식 평가수단(42); 상기 공통 원소 저장수단(40)으로부터 입력받은 초기근(IALPHA)과 갱신근(ALPHA)을 이용하여, 상기 에러 위치 다항식의 계수(σ_COEF)를 입력받아 에러 위치 다항식(σ(X))을 평가하여 에러 위치 신호(error_sign)를 출력함과 동시에, 에러 위치 다항식(σ(X))의 미분치인 미분 다항식(σ'(X))을 평가하여 미분 평가값(σp_VAL)을 출력하는 에러 위치 다항식 평가수단(43); 상기 미분 평가값(σp_VAL)과 에러 평가값 (Ω_VAL)을 입력받아 포니 알고리즘을 적용하여 에러값 ei을 계산하여 출력함과 동시에, 에러 발생 신호(error_sign)에 따라 수신 심볼 ri에 상기 에러값 ei을 더하여 에러 정정된 심볼 Ci을 출력하는에러값 계산 및 정정수단(44); 및 상기 에러 정정된 심볼 Ci이 정확한지를 판단하는 복원 실패 판단수단(45)을 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  2. 제 1 항에 있어서, 상기 공통 원소 저장 수단(40)에는 최고차 심볼부터 수신되어 들어오는 수신 심볼을 평가하기 위한 갈로아체 필드 원소의 역수값에 해당하는 상기 역수근(IALPHA)을 저장하는 롬(50-1∼50-8); 초기근선택신호(EIA_SEL)에 따라 상기 롬(50-1∼50-8)을 선택하여 출력하는 제 1 멀티플렉싱 수단(50-9); 다음 수신 심볼을 평가하기 위해 차수를 갱신하기 위한 갈로아체 필드 원소값에 해당하는 갱신근(ALPHA)을 저장하는 롬(50-10∼50-17); 갱신근선택신호(EA_SEL)에 따라 상기 롬(50-10∼50-17)을 선택하여 출력하는 제 2 멀티플렉싱 수단(50-18)을 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  3. 제 2 항에 있어서, 상기 초기근 선택신호(EIA_SEL) 및 상기 갱신근 선택신호(EA_SEL)는 심볼 크기로 발생하는 심볼 클럭(sym_clk)을 t 분주한 단위마다 발생하는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  4. 제 2 항에 있어서, 상기 초기근(IALPHA)은 갈로아체 필드 원소의 역수값 α-N*1, α-N*2,…,α-N*t에 해당하며, 상기 초기근 선택신호(IEA_SEL)에 따라 심볼 클럭 동안에 α-N*1부터 차례대로 출력되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  5. 제 2 항에 있어서, 상기 갱신근(IALPHA)은 코드 발생 다항식의 근값 α1, α2,…,αt에 해당하며, 상기 갱신근 선택신호(EA_SEL)에 따라 심볼 클럭 동안에 α1부터 차례대로 출력되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  6. 제 1 항에 있어서, 상기 에러 평가 다항식 평가 수단(42)은 수신 심볼의 최고차 항부터 검사하도록 심볼 클럭단위로 출력된 에러 평가 다항식의 계수(Ω_COEF)를 입력받아 상기 초기근(IALPHA)과 갈로아체 곱셈하여 초기항값(initial)을 출력하는 초기화부(60)와; 초기화 신호(INIT_FLAG)에 따라 상기 초기항값(initial) 또는 다음 차수의 수신 심볼을 검사하기 위해 갱신된 중간항값을 선택적으로 출력하는 항 선택부(61); 상기 항 선택부(61)로부터 출력된 항값과 상기 갱신근(ALPHA)를 입력받아 다음 수신 심볼을 위한 에러 평가 다항식의 항값을 갱신하여 출력하는 차수 갱신부(62); 심볼 클럭동안 상기 차수 갱신부(62)로부터 출력된 항값들을 입력받아 합한 값(SUM1)을 출력하는 항 연산부(63); 상기 항 연산부(63)로부터 출력된 합값(SUM1)을 입력받아 에러 평가 다항식(Ω(X))의 0차 계수 0x01를 합하여 최종 에러 평가 평가값(Ω_VAL)을 출력하는 에러 평가값 출력부(64)를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  7. 제 6 항에 있어서, 상기 초기화부(60)는 심볼 클럭단위로 출력된 에러 평가 다항식의 계수(Ω_COEF)와 상기 심볼 클럭을 t 분주한 클럭단위로 출력된 초기근 (IALPHA)를 갈로아체 곱셈하여 출력하는 제 1 갈로아체 곱셈기(60)로 구성되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  8. 제 6 항에 있어서, 상기 항 선택부(61)는 초기화 신호(INIT_FLAG)에 따라 상기 초기화부(60)의 초기항값(initial) 또는 상기 차수 갱신부(62)의 중간항값을 선택하여 출력하는 2-1 멀티플렉서(61)로 구성되는 것을 특징으로하는 리드 솔로몬 디코더의 에러 정정 시스템.
  9. 제 6 항에 있어서, 상기 차수 갱신부(62)는 상기 항 선택부(61)로부터 출력된 항 값을 심볼 클럭을 t분주한 클럭에 따라 시프트시켜 출력하는 t개의 시프트레지스터(62-1)와; 상기 갱신근(ALPHA)을 입력받아 상기 시프트레지스터(62-1)의 출력값과 갈로아체 곱셈하여 상기 항 연산부(63), 및 상기 항 선택부(61)로 출력하는 제 2 갈로아체 곱셈기(62-2)를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  10. 제 6 항에 있어서, 상기 항 연산부(63)는 상기 갱신된 항값과 피드백 입력된 값을 덧셈하여 출력하는 제 1 갈로아체 덧셈기(63-1)와; 0x00이 저장된 롬(63-2); 심볼 단위마다 발생하는 심볼리셋신호(RST_SUM)를 반전시키는 반전 게이트(63-3); 외부로부터 제공되는 리셋신호(RST)와 상기 반전된 심볼리셋신호(RST_SUM)를 논리곱하여 출력하는 논리곱 게이트(63-4); 상기 논리곱게이트(63-4)의 출력신호에 따라 상기 제 1 갈로아체 덧셈기(63-1)의 출력값 또는 상기 롬(63-2)의 값을 선택하여 출력하는 제 4 멀티플렉서(63-5); 상기 논리곱 게이트(63-4)의 출력신호의 액티브 로우에서 리셋되면서, 상기 제 4 멀티플렉서(63-5)의 출력값을 래치하여 다시 상기 제 1 갈로아체 덧셈기(63-1)로 피드백 입력하는 제 1 합 레지스터(63-6)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 디코더의 에러 정정 시스템.
  11. 제 6 항에 있어서, 상기 에러 평가값 출력부(64)는 심볼 단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어 심볼 클럭을 t 분주한 클럭에 따라 상기 제 1 갈로아체 덧셈기(63-1)로부터 출력된 항값을 래치하여 출력하는 제 2 합 레지스터(64-1)와; 에러 평가 다항식의 0차 계수값인 0x01이 저장된 롬(64-2); 상기 제 2 합레지스터(64-1)으로부터 출력된 항값과 상기 항값을 입력받아 갈로아체 덧셈하여 에러 평가 값(Ω_VAL)을 출력하는 제 2 갈로아체 덧셈기(64-3)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 디코더의 에러 정정 시스템.
  12. 제 1 항에 있어서, 상기 에러 위치 다항식 평가수단(43)은 수신 심볼의 최고차 항부터 검사하도록 심볼 클럭단위로 출력된 에러 위치 다항식의 계수(σ_COEF)를 입력받아 상기 초기근(IALPHA)과 갈로아체 곱셈하여 초기항값(INITIAL)을 출력하는 초기화부(70)와; 초기화 신호(INIT_FLAG)에 따라 상기 초기항값(INITIAL) 또는 다음 차수의 수신 심볼을 검사하기 위해 갱신된 중간항값(MEDIAN)을 선택적으로 출력하는 항 선택부(71); 상기 항 선택부(71)로부터 출력된 항값과 상기 갱신근(ALPHA)를 입력받아 다음 수신 심볼을 위한 에러 위치 다항식의 항값을 갱신하여 출력하는 제 1 차수 갱신부(72); 심볼 클럭동안 상기 제 1 차수 갱신부(72)로부터 출력된 항값들을 입력받아 합한 값(SUM1)을 출력하는 제 1 다항 연산부(73); 상기 제 1 다항 연산부(73)로부터 출력된 합값(SUM1)을 입력받아 에러 위치 다항식의 0차 계수 0x01를 합하여 최종 에러 위치 평가값(σ_VAL)을 출력하는 제 2 다항 연산부(74); 상기 에러 위치 평가값(σ_VAL)을 입력받아 에러가 발생했는 지를 판단하여 에러 위치 신호(error_sign)를 출력하는 에러 판단부(75); 에러 위치 미분 다항식(σ'(X))을 평가 하기위해 상기 제 1 차수 갱신부(72)로부터 출력된 항값을 입력받아 에러 위치 다항식 중에서 홀수차 항()에 해당하는 항값만을 선택하여 출력하는 홀수차항 선택부(76); 에러 위치 미분 다항식(σ'(X))의 평가값을 구하기 위해 갈로아체 필드의 원소(αi)의 차수를 심볼 클럭 단위마다 -1씩 갱신하는 제 2 차수 갱신부(77); 상기 홀수차항 선택부(76)로부터 출력된 홀수차항(odd) 및 상기 제 2 차수 갱신부(67)로부터 출력된 갈로아체 필드의 원소(αi)를 입력받아, 미분 다항식의 평가값(σp_VAL)을 구하여 출력하는 제 3 다항 연산부(78); 상기 제 3 다항 연산부(78)로부터 출력된 미분 다항식의 평가값(σp_VAL)을 래치하여 출력하는 미분 평가값 출력부(79)를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  13. 제 12 항에 있어서, 상기 초기화부(70)는 심볼 클럭단위로 출력된 에러 위치 다항식의 계수(σ_COEF)와 상기 심볼 클럭을 t 분주한 클럭단위로 출력된 초기근 (IALPHA)를 갈로아체 곱셈하여 출력하는 제 1 갈로아체 곱셈기(70)로 구성되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  14. 제 12 항에 에 있어서, 상기 항 선택부(71)는 초기화 신호(INIT_FLAG)에 따라 상기 초기화부(70)의 초기항값(INITIAL) 또는 상기 제 1 차수 갱신부(72)의 중간항값(MEDIAN)을 선택하여 출력하는 제 5 멀티플렉서(71)로 구성되는 것을 특징으로하는 리드 솔로몬 디코더의 에러 정정 시스템.
  15. 제 12 항에 있어서, 상기 제 1 차수 갱신부(72)는 상기 항 선택부(71)로부터 출력된 항 값을 심볼 클럭을 t분주한 클럭에 따라 시프트시켜 출력하는 t개의 시프트레지스터(72-1)와; 상기 갱신근(ALPHA)을 입력받아 상기 시프트레지스터(72-1)의 출력값과 갈로아체 곱셈하여 상기 제 1 다항 연산부(73), 및 상기 항 선택부(71)로 출력하는 제 2 갈로아체 곱셈기(72-2)를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  16. 제 12 항에 있어서, 상기 제 1 다항 연산부(73)는 상기 갱신된 항값과 피드백 입력된 값을 덧셈하여 출력하는 제 1 갈로아체 덧셈기(73-1)와; 0x00이 저장된 롬(73-2); 심볼 단위마다 발생하는 심볼리셋신호(RST_SUM)를 반전시키는 반전 게이트(73-3); 외부로부터 제공되는 리셋신호(RST)와 상기 반전된 심볼리셋신호(RST_SUM)를 논리곱하여 출력하는 논리곱 게이트(73-4); 상기 논리곱게이트(73-4)의 출력신호에 따라 상기 제 1 갈로아체 덧셈기(73-1)의 출력값 또는 상기 롬(73-2)의 값을 선택하여 출력하는 제 4 멀티플렉서(73-5); 상기 논리곱 게이트(73-4)의 출력신호의 액티브 로우에서 리셋되면서, 상기 제 4 멀티플렉서(73-5)의 출력값을 래치하여 다시 상기 제 1 갈로아체 덧셈기(73-1)로 피드백 입력하는 제 1 합 레지스터(73-6)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 디코더의 에러 정정 시스템.
  17. 제 12 항에 있어서, 상기 제 2 다항 연산부(74)는 심볼 단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어 심볼 클럭을 t 분주한 클럭에 따라 상기 제 1 갈로아체 덧셈기(73-1)로부터 출력된 항값을 래치하여 출력하는 제 2 합 레지스터(74-1)와; 에러 평가 다항식의 0차 계수값인 0x01이 저장된 롬(74-2); 상기 제 2 합레지스터(74-1)으로부터 출력된 항값과 상기 항값을 입력받아 갈로아체 덧셈하여 위치 평가값(σ_VAL)을 출력하는 제 2 갈로아체 덧셈기(74-3)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 디코더의 에러 정정 시스템.
  18. 제 12 항에 있어서, 상기 에러 판단부(75)는 상기 위치 평가값(σ_VAL)을 에러가 발생됐음을 나타내는 신호값과 비교하여 그에 따라 에러 위치 신호(error_sign)를 발생하는 비교기(75)를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  19. 제 12 항에 있어서, 상기 홀수차항 선택부(76)는 0x00이 저장된 롬(76-1)과; 선택신호(EA_SEL0)에 따라 상기 제 1 차수 갱신부(72)로부터 출력된 항값 또는 상기 롬(76-1)의 0x00 값을 선택적으로 출력하는 제 7멀티플렉서(76-2)로 구성되는 것을 특징으로하는 리드 솔로몬 디코더의 에러 정정 시스템.
  20. 제 12 항에 있어서, 상기 제 2 차수 갱신부(77)는 상기 초기화 신호(INT_FLG)를 반전시키는 반전 게이트(77-1)와; 최고차 심볼부터 에러 위치 미분 다항식을 평가하기 위한 근 αN-1을 저장한 롬(77-2); 심볼 클럭 단위마다 발생하는 심볼 리셋신호(RST_SUM)에의해 인에이블되어서 피드백 입력된 값을 래치하여 출력하는 레지스터(77-3); 차수를 갱신하기 위한 α-1이 저장된 롬(77-4) 및; 상기 레지스터(77-3)로부터 출력된 값 αi에 상기 롬의 α-1를 곱한 값을 다시 상기 레지스터(77-3)로 피드백 입력시키는 제 3 갈로아체 곱셈기(77-5)를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  21. 제 20 항에 있어서, 상기 레지스터(77-3)는 상기 반전 게이트(77-1)의 출력 신호에 의해 세트(SET)되어 상기 롬값 αN-1을 로드하는 것을 특징으로 하는 리드 솔로몬 디코더의 에러 정정 시스템.
  22. 제 12 항에 있어서, 상기 제 3 다항 연산부(76)는 상기 홀수차항(odd) 또는 0x00과, 상기 제 1 레지스터(67-4)로부터 출력된 값 αi을 곱하여 출력하는 제 4 갈로아체 곱셈기(78-1)와; 상기 제 4 갈로아체 곱셈기(78-1)로부터 출력된 값과 피드백 입력된 합값을 더하여 출력하는 제 3 갈로아체 덧셈기(78-2) 및; 상기 제 3 갈로아체 덧셈기(78-2)에서 출력된 값을 심볼 클럭을 t분주한 클럭에 따라 래치하여 상기 제 3 갈로아체 덧셈기(78-2)로 피드백시키는 한편, 심볼단위마다 발생하는 심볼리셋신호(RST_SUM)에 의해 리셋되는 제 2 합 레지스터(78-3)를 포함하여 구성되는 것을 특징으로하는 리드 솔로몬 디코더의 에러 정정 시스템.
  23. 제 12 항에 있어서, 상기 미분 평가값 출력부(79)는 심볼 단위마다 발생하는 상기 심볼리셋신호(RST_SUM)에 의해 인에이블되어서, 상기 미분 평가값(σp_VAL)을 비트 클럭에 따라 래치하여 미분 평가값(σp_VAL)을 최종 출력하는 D플립플롭(79)으로 구성되는 것을 특징으로하는 리드 솔로몬 디코더의 에러 정정 시스템.
KR1019960049691A 1996-10-29 1996-10-29 리드 솔로몬 디코더의 에러 정정 시스템 KR100202949B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960049691A KR100202949B1 (ko) 1996-10-29 1996-10-29 리드 솔로몬 디코더의 에러 정정 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960049691A KR100202949B1 (ko) 1996-10-29 1996-10-29 리드 솔로몬 디코더의 에러 정정 시스템

Publications (2)

Publication Number Publication Date
KR19980030311A KR19980030311A (ko) 1998-07-25
KR100202949B1 true KR100202949B1 (ko) 1999-06-15

Family

ID=19479533

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960049691A KR100202949B1 (ko) 1996-10-29 1996-10-29 리드 솔로몬 디코더의 에러 정정 시스템

Country Status (1)

Country Link
KR (1) KR100202949B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7406651B2 (en) 2004-01-29 2008-07-29 Samsung Electronics Co., Ltd. Forward Chien search type Reed-Solomon decoder circuit

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226439B1 (ko) * 2011-12-27 2013-01-25 한국과학기술원 리드-솔로몬 디코더, 이를 포함하는 메모리 시스템 및 디코딩 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7406651B2 (en) 2004-01-29 2008-07-29 Samsung Electronics Co., Ltd. Forward Chien search type Reed-Solomon decoder circuit

Also Published As

Publication number Publication date
KR19980030311A (ko) 1998-07-25

Similar Documents

Publication Publication Date Title
US7237183B2 (en) Parallel decoding of a BCH encoded signal
KR100594241B1 (ko) 순방향 치엔 서치 방식의 리드 솔로몬 디코더 회로
US5170399A (en) Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack
JP3288883B2 (ja) 誤り訂正符号化装置及び誤り訂正復号装置及び誤り訂正符号付きデータ伝送システム及び誤り訂正符号の復号方法
KR100192795B1 (ko) 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치
JP3305525B2 (ja) 復号器、誤りロケータシーケンス生成器および復号方法
US6263471B1 (en) Method and apparatus for decoding an error correction code
KR100202949B1 (ko) 리드 솔로몬 디코더의 에러 정정 시스템
US4298981A (en) Decoding shortened cyclic block codes
KR100192804B1 (ko) 리드 솔로몬 복호화기에서의 다항식 평가 장치
KR100195739B1 (ko) 리드솔로몬 복호기의 에러 위치 다항식 평가 장치
EP0793352B1 (en) Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder
KR100192802B1 (ko) 리드 솔로몬 디코더의 에러값 계산 및 정정 장치
KR100192800B1 (ko) 리드 솔로몬 디코더의 다항식 평가 시스템 및 그 방법
KR19980017787A (ko) 리드 솔로몬 복호기
KR100212830B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100212825B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
Lee et al. An efficient recursive cell architecture of modified Euclid's algorithm for decoding Reed-Solomon codes
KR100192788B1 (ko) 리드 솔로몬 복호기에서의 에러 평가 다항식의 계수계산장치
KR100215570B1 (ko) 고화질 텔레비젼용 리드 솔로몬 디코더
KR100192792B1 (ko) 리드 솔로몬 복호기의 다항식 평가 장치
KR100212826B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100212824B1 (ko) 리드 솔로몬 복호기의 다항식 평가 장치
KR100192801B1 (ko) 리드 솔로몬 디코더의 비트 에러율 측정 회로
KR100212828B1 (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: 20090302

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee