KR100265949B1 - 리드-솔로몬 디코더의 N+α개 피포 설계 방법 - Google Patents

리드-솔로몬 디코더의 N+α개 피포 설계 방법 Download PDF

Info

Publication number
KR100265949B1
KR100265949B1 KR1019970070767A KR19970070767A KR100265949B1 KR 100265949 B1 KR100265949 B1 KR 100265949B1 KR 1019970070767 A KR1019970070767 A KR 1019970070767A KR 19970070767 A KR19970070767 A KR 19970070767A KR 100265949 B1 KR100265949 B1 KR 100265949B1
Authority
KR
South Korea
Prior art keywords
error
data
decoded
error correction
bit
Prior art date
Application number
KR1019970070767A
Other languages
English (en)
Other versions
KR19990051448A (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 KR1019970070767A priority Critical patent/KR100265949B1/ko
Publication of KR19990051448A publication Critical patent/KR19990051448A/ko
Application granted granted Critical
Publication of KR100265949B1 publication Critical patent/KR100265949B1/ko

Links

Images

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

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 Prevention Of Errors In Transmission (AREA)

Abstract

리드-솔로몬 디코더의 N+α개 피포 설계 방법이 개시되어 있다. 8비트의 RS 디코딩할 데이타를 N+α개의 피포에서 입력받아 선입선출으로 저장후 2단 에러 교정 삽입기로 제공하고, 상기 207바이트 중 첫 번째 데이타 신호와 RS 데이타 유효 신호를 3단 피포 플래그 발생기에서 입력받아 207바이트의 RS디코딩할 데이타가 들어올 때마다 3개의 포인터를 두어 2N+α의 피포수를 N+α개로 줄이며 실시간 처리 하도록 RS디코딩된 데이타의 각 코드워드의 시작, 끝, 기간을 나타내는 피포상태 신호 및 제어 신호들을 제공받은 2단 에러 교정 삽입기는 상기 저장된 8비트의 RS 디코딩할 데이타, 각각 8비트의 에러 위치 및 에러 교정치를 입력받아 각 코드워드가 에러 교정기로부터 발생된 에러를 2개의 임시의 레지스터에 저장되어 상기 3단 피포 플래그 발생기로부터 피포 상태 및 제어 신호에 맞추어 N+α개의 피포 출력을 최종 합산하여 RS디코딩된 디지탈 데이타를 출력한다. 따라서, 3개의 포인터와 2t(t:에러정정수)만큼의 에러 교정 레지스터를 이용한 구조로써 기존의 RS 디코더의 피포수를 2N+α개에서 N+α개의 피포를 갖는 RS 디코더를 설계함으로서 칩의 면적을 줄일 수 있다.

Description

리드-솔로몬 디코더의 N+α개 피포 설계 방법
본 발명은 리드-솔로몬 디코더의 N+α개 피포 설계 방법에 관한 것으로, 보다 상세하게는 2N+α개 피포를 사용하는 종래의 리드-솔로몬 디코더를 다항식의 계산이나 평가 시간을 심볼 클럭 이내로 줄임으로서 RS디코딩 시간을 감소시키고 집적도를 높일 수 있는 리드-솔로몬 디코더의 N+α개 피포 설계 방법에 관한 것이다.
도 1은 ATSC(미국 디지털 TV의 표준) 스펙에 명시된 클럭 타이밍과 피포의 양을 나타낸 종래의 RS 디코더를 나타낸다.
종래의 RS 디코더는 도 1에 도시한 바와 같이, 2N+α개의 피포를 가진 RS디코더로서 RS디코더(10), FIFO(2N+α)(20) 및 Exclusive OR인 XOR(30)로 구성된다.
상기 RS디코더(10)는 RS 디코딩할 데이타인 RS_data(9)를 입력받아 RS 디코딩되어 RS디코딩된 데이터(11)를 상기 XOR(30)로 제공된다. 상기 RS디코더는 TV나 복조기 관련 수신기에 적용된다.
상기 2N+α개의 피포(20)는 RS 디코딩할 데이타인 RS_data(9)를 입력받아 선입 선출방식으로 저장되어 저장된 RS디코딩할 데이터(21)를 상기 XOR(30)로 제공한다.
상기 XOR(30)은 상기 RS디코딩된 데이터(11)와 저장된 RS디코딩할 데이터(21)를 입력받아 Exclusive OR기능을 수행하여 둘 중 에 하나만 '하이'일 때 출력은 하이로 출력되어 RS디코딩된 데이타인 RS_output(31)을 출력한다.
참고로, Exclusive OR기능은 두 개의 입력이 x, y일때 둘중에 하나만 '1'일 때만 출력 F는 '1'이 되고, 둘 다 '0'나 혹은 '1'이면 출력 F는 '0'이 되며 디지털 기호로 표시하면 F = x XORy = xy' + x'y로 표현되고 진리표는 표 1과 같다.
x y F
0 0 0
0 1 1
1 0 1
1 1 0
미국의 디지털 TV전송 규격인 ATV(Advanced digital TV)에서 쓰이는 리드-솔로몬 디코더(RS Decoder)는 갈로아스 피일드(Galois Field) GF(28)에 근거한 RS(207, 187)로 정의되는 시스템이다. 이는 10개의 에러까지 정정(t=10)할 수 있으며, RS 코드 발생기 다항식 g(x)와 갈로아스 피일드 발생기 다항식 f(x)는 각각 다음과 같다.
g(x) =
Figure 1019970070767_B1_M0001
(x+α i ) = x(x+α)(x+α 2 ) … (x+α 2t-1 ), t = 10
f(x) = x8+ x4+ x2+ x1+ 1
여기서 동기(Sync) 바이트는 RS 부호화 되지 않으며, 여기서 설계한 RS 디코더는 몇가지 특징을 가진다. 먼저, 이 시스템은 RS 심볼 클럭이 아니라 RS 클럭에 의해 동작한다. 이것에 의해 병렬 구조를 직렬 구조로 바뀌어 동작할 수 있게 된다. ATV에서는 에러 정정수인 t=10이므로 RS 심볼 클럭보다 8배 빠른 클럭인 RS 클럭이 필요하게 된다.
또한, 재귀적인 벌리컴프 알고리듬을 사용하여 에러 위치 다항식(polynomial)을 계산하면 이 또한 VLSI 설계시 NAND 게이트의 수를 감소시키며 피포 지연 시간을 줄일 수 있다.
RS 디코더에서 사용되는 RS 코드는 유한 피일드인 갈로아스 피일드(Galois Field)로 GF(2m)에서 정의된다. 갈로아스 피일드의 성분은 피일드 발생기 다항식 이라하는 축소할 수 없는 기본 다항식 f(x)에 의해 정의된다. RS 코드 블록은 N(2m-1) 심볼(N은 RS디코딩 단위, m:멱승으로 주어지는 값으로 보통 3≤m≤10)로 구성되며 각 RS 코드 블록은 데이타와 패리티 심볼을 포함한다. 에러 정정수인 t개(t=10)의 에러를 정정하기 위해 2t개(20바이트)의 패리티 심볼이 부호화 과정 동안 계산되어 187바이트의 데이타 심볼에 덧붙여진다. 따라서, RS 코드 블록은 K-1차(K=20바이트의 패리티)의 정보 다항식 m(x)과 N-K차(N=207바이트의 코드워드)의 코드 발생기 다항식 g(x)에 의해 N-1차의 전송된 RS 인코딩 다항식 c(x)로 정의 된다.
g(x) =
Figure 1019970070767_B1_M0002
(x+α i )=(x+α k )(x+α k+1 ) … (x+α k+2t )
c(x) = m(x)g(x)
상기 식에서 α i 는(i≥1의 정수, α는 갈로아스 피일드의 기본값) 갈로아스 피일드의 기본 요소이며, k는 패리티의 오프셋 텀(k<K), t는 에러 정정 가능 한계이며 모든 유효 RS 코드 블록은 RS코드 발생기 다항식의 배수가 될 수 있다.
상기 RS인코딩 다항식의 전송 코드 블록 c(x)는 잡음이 존재하는 채널에서 에러가 생길 수 있으며, 수신 심볼 다항식 r(x)는 전송된 RS인코딩 다항식 c(x)와 에러 다항식 e(x)의 합으로 다음과 같이 나타난다.
r(x) = c(x) + e(x), x = α i
복호화 알고리듬의 첫 단계는 에러에 대한 정보를 내포한 신드롬 다항식 S(x)를 계산하는 것이다. 신드롬 다항식의 각 계수 Si는 다음과 같이 나타내어 진다.
신드롬(Syndrome)이란 디지털 TV 전송시 수신된 디지털 TV신호에 에러가 있는지의 유무를 판별하는 값이다.
S(x) = r(α i ) = c(α i ) + e(α i )
상기 식에서 에러가 없다면 모든 Si는 0이 된다. 에러를 정정하기 위해 에러의 위치와 크기를 구해야 한다.
두 번째 단계는 최소 에러 위치 다항식 C(x)를 찾는 것이다. 더구나 시간 영역 디코딩이 사용된다면 에러 크기 다항식 Ω(x)도 계산되어야 한다. 이들 다항식은 신드롬 다항식과 다음과 같은 관계를 가지며, 이 식을 key equation이라고 한다.
S(x)C(x) = Ω(x) mod (x2t)
상기 표시한 mod는 모듈로로서 A mod B는 A식을 기준값 B로 모듈러 계산을 하며, 예시로서 8 mod 3 = 2, 7 mod 2 = 1 연산을 수행한다.
마지막 단계는 수신된 심볼 다항식인 r(x)에 에러 다항식 e(x)를 더 추가해 에러를 정정하여 에러가 있는 RS인코딩된 다항식 c'(x)에서 에러가 상쇄된 RS인코딩 다항식 c(x)를 다음과 같이 구할 수 있다.
c'(x) = r(x) + e(x)
= (c(x)+e(x)) + e(x)
= c(x) + (e(x)+e(x))
= c(x)
에러의 상쇄는 갈로아스 피일드(Galois Field)의 기본 성질에 e(x) + e(x) = 0 에 의해 에러가 제거된다. 에러 다항식 e(x)의 에러 계수 Ei는 포오니(Forney) 알고리듬에 의해 다음과 같이 구해진다.
Ei= -αi
Figure 1019970070767_B1_M0003
그러나, 상기한 종래의 2N+α개 피포를 갖는 RS 디코더에 있어서는 에러 평가 계산이 N번 소요되어 2N+α만큼의 피포가 필요하여 칩의 면적이 많은 부분을 차지하는 문제점이 존재한다.
본 발명은 상기한 점을 감안하여 종래 기술의 문제점을 개선하기 위해 안출한 것으로, 본 발명의 목적은 2N+α개 피포를 사용하는 종래의 리드-솔로몬 디코더를 다항식의 계산이나 평가 시간을 심볼 클럭 이내로 줄임으로서 디코딩 시간을 감소시키고 칩면적을 줄여 집적도를 높일 수 있는 리드-솔로몬 디코더의 N+α개의 피포 설계 방법을 제공하는 것이다.
도 1은 종래의 2N+α개 피포를 갖는 RS 디코더에 대한 회로도이다.
도 2는 본 발명의 N+α개 피포를 갖는 RS 디코더의 내부 전체 회로도이다.
도 3은 본 발명의 N+α개 피포와 RS 디코더의 블럭도이다.
도 4는 본 발명의 일 실시예에 따른 N+α개 피포를 갖는 RS 디코더에 대한 회로도이다.
도 5는 상기 도 4의 코드워드가 입력되어 신드롬 계산 및 에러교정이 완료되어 출력될 때까지의 시간도이다.
<도면의 주요부분에 대한 부호의 설명>
30 : RS 디코더(Reed-Solomon 디코더) 40 : N+α개의 피포
100 : FIFO(N+α) 200 : 3단 피포 플래그 발생기
300 : 2단 에러 교정 삽입기
FIFO(N+α) : N+α개의 피포 FIFO(2N+α) : 2N+α개의 피포
N : 신드롬 계산 시간 α : 에러위치계산+에러값 평가계산
RS_input : RS 디코딩할 디지탈 데이타 RS_en : RS 데이타 유효 신호
RS_output : RS디코딩된 디지탈 데이타 CW : 207바이트의 Codeword
RS_start : 207바이트 중 첫 번째 데이타 신호
상기한 본 발명의 목적을 실현하기 위하여, 본 발명은, (a) 8비트의 RS 디코딩할 디지탈 데이타를 입력받아 선입선출 방식으로 데이타를 저장하여 저장된 8비트의 RS 디코딩할 디지탈 데이타를 제공하는 단계; (b) 상기 207바이트 중 첫 번째 데이타 신호와 RS 데이타 유효 신호를 입력받아 207개의 디코딩할 데이타가 들어올 때마다 3개의 포인터를 두어 2N+α 피포수를 N+α개로 줄이며 실시간 처리 하도록 디코딩한 데이타의 처음 시작 입력부터 최종 출력까지 흐름을 제어하고, 이 때 각 코드워드의 시작, 끝, 기간을 나타내는 피포상태 신호 및 제어 신호들을 발생하여 제공하는 단계; 그리고 (c) 구조는 제1 코드워드의 출력중 차기 에러 교정값을 핑퐁식으로 레지스터링되어 저장되는 핑퐁 구조로 되어 있고, 상기 피포상태 신호 및 제어 신호들과 상기 저장된 8비트의 RS 디코딩할 디지탈 데이타를 입력받고 8비트의 에러 위치와 8비트의 에러 교정치를 입력받아 각 코드워드의 출력이 207번이기 때문에 에러 정정 블록으로부터 발생된 에러를 2개의 임시의 레지스터에 받아 두었다가 입력된 상기 피포 상태 및 제어 신호에 맞추어 N+α개 피포의 출력을 최종 합산하여 RS디코딩된 디지탈 데이타를 출력하는 단계로 이루어지는 것을 특징으로 하는 N+α개 피포를 가진 리드-솔로몬 디코더의 설계 방법을 제공한다.
본 발명에 의하면, 상기 8비트의 RS 디코딩할 디지탈 데이타를 N+α개의 피포에서 입력받아 선입선출 방식으로 데이타를 저장하여 저장된 8비트의 RS 디코딩할 디지탈 데이타를 상기 2단 에러 교정 삽입기로 제공하고, 상기 207바이트 중 첫 번째 데이타 신호와 RS 데이타 유효 신호를 3단 피포 플래그 발생기에서 입력받아 207개의 디코딩할 데이타가 들어올 때마다 3개의 포인터를 두어 2N+α의 피포수를 N+α개로 줄이며 실시간 처리 하도록 디코딩한 데이타의 처음 시작 입력부터 최종 출력까지 흐름을 제어하고, 이때 각 코드워드의 시작, 끝, 기간을 나타내는 피포상태 신호 및 제어 신호들을 발생하여 2단 에러 교정 삽입기로 제공하며, 상기 2단 에러 교정 삽입기는 제1 코드워드의 출력중 차기 에러 교정값을 핑퐁방식으로 레지스터에 저장되는 핑퐁 구조로 되어 있어, 상기 3단 피포 플래그 발생기에서 제공된 상기 피포상태 신호 및 제어 신호들과 상기 N+α개의 피포로부터 제공된 상기 저장된 8비트의 RS 디코딩할 디지탈 데이타를 입력받고 8비트의 에러 위치와 8비트의 에러 교정치를 입력받아 각 코드워드의 출력이 N=207이기 때문에 에러 정정 블록으로부터 발생된 에러를 2개의 임시의 레지스터에 받아 두었다가 상기 3단 피포 플래그 발생기로부터 피포 상태 및 제어 신호에 맞추어 N+α개의 피포 출력을 최종 합산하여 RS디코딩된 디지탈 데이타를 출력한다.
따라서, N+α개의 피포 설계는 3개의 포인터와 2t( t : 에러정정수)만큼의 에러 교정 레지스터를 이용한 구조로써 N+α개의 피포를 제어하여 종래의 RS 디코더의 2N+α개의 피포수를 N+α개의 피포를 갖는 RS 디코더를 설계함으로서 칩의 면적을 줄인다.
이하, 첨부한 도면을 참조하여 본 발명의 일 실시예를 통해 본 발명을 보다 상세하게 설명한다.
도 2는 본 발명의 N+α개 피포를 갖는 RS 디코더의 내부 전체 회로도이다.
상기 RS디코더는 본 발명의 사용 클럭인 21.52 MHz의 RS 클럭, 상기 RS 클럭의 주기의 8배인 RS 심볼 클럭, RS 디코딩될 8비트의 입력 데이타(RS_data_in), RS 입력 데이타의 유효(enable) 신호(RS_data_en), 207 바이트 중 첫 번쩨 데이타 신호(RS_data_start)를 입력받아 RS 디코딩하여 RS 디코딩된 8비트의 출력 데이타(RS_data_out), RS 출력 데이타의 유효(enable) 신호(RS_out_en), 207바이트 중 첫번째 출력 데이타(RS_out-start), 207 바이트 중 에러를 10개까진 복구가 되나 에러가 10개 이상이면 하이(HIGH)의 플래그를 발생하여 무효한 데이타 표시 신호(umrecov_RS)를 출력한다.
상기 RS 디코더(리드-솔로먼 디코더)는 신드롬계산기(100), 신드롬 지연기(200), 벌리컴프(300), 에러 교정기(400), RS연산기(500), 에러 교정 삽입기(600) 및 FIFO(N+α)(700)로 구성된다.
상기 RS 심볼클럭은 상기 에러 교정삽입기(600)와 상기 FIFO(N+α)(700)에만 제공되며, 상기 RS 클럭은 신드롬 계산기(100), 신드롬 지연기(200), 벌리컴프(300), 에러 교정기(400), RS연산기(500), 에러 교정 삽입기(600) 및 FIFO(N+α)(700)에 모두 제공되며, 상기 RS 디코딩될 8비트의 입력 데이타(RS_data_in), RS 입력 데이타의 유효(enable) 신호(RS_data_en), 207 바이트 중 첫 번쩨 데이타 신호(RS_data_start)는 상기 신드롬 계산기(100)와 상기 FIFO(N+α)(700)에 제공된다.
상기 신드롬 계산기(100)는 8비트의 RS 디코딩할 데이타(91)을 입력받아 에러 정보를 각는 신드롬 다항식(Syndrome polynomial)을 계산하여 신드롬을 계산한 RS디코딩할 데이타(101)를 제공한다.
상기 신드롬 지연기(200)는 상기 신드롬을 계산한 RS디코딩할 데이타(101)를 입력받아 신드롬의 계산 회수를 계수하여 마지막 신드롬 결과값(201)을 래치(latch)하여 상기 벌리컴프(300)와 에러 교정기(400)로 제공한다.
상기 벌리컴프(300)는 상기 신드롬 결과값(201) 및 상기 신드롬을 계산한 RS디코딩할 데이타(101)를 입력받아 벌리컴프 알고리듬을 이용하여 에러 위치 다항식을 계산하여 에러 위치(301)를 출력한다.
상기 에러 교정기(400)는 상기 신드롬 결과값(201) 및 상기 에러 위치(301)를 입력받아 에러 크기 다항식을 구하여 포오니(Forney) 알고리듬을 사용하여 각 에러 위치의 에러 값을 구한 다음 에러 위치에 대한 에러값(401)을 출력한다.
상기 RS연산기(500)는 연산값을 상기 벌리컴프(300)와 상기 에러 교정기(400)간에 주고받으며, 상기 벌리컴프(300)와 상기 에러 교정기(400)에서 공통으로 사용할 수 있도록 승산기(Multipliers)들과 합산기(Adders)들로 조합된 트리(tree) 구조로 구성되어 룩업 테이블(Look Up Table)값인 RS연산 다항식 값(503, 504)을 상기 벌리컴프(300)와 에러 교정기(400)로 제공한다.
상기 에러 교정 삽입기(600)는 상기 에러 위치에 대한 에러값(401)을 입력받아 피포의 수를 감소시키기 위해 발생된 에러값들을 저장하여 각종 제어 신호를 발생하여 에러 교정값과 에러 교정값을 삽입하여 RS 디코딩된 8비트의 출력 데이터(RS_data_out), RS 출력 데이타의 유효(enable) 신호(RS_out_en), 207 바이트 중 첫 번쩨 데이터의 출력 신호(RS_out_start)를 출력한다.
상기 FIFO(N+α)(700)는 N+α개의 피포로서 상기 RS디코딩할 디지털 데이타(91)와 상기 에러 교정값과 에러 교정값을 삽입하기 위한 제어 신호(601)를 입력받아 선입선출 방식으로 저장된 RS디코딩할 디지털 데이타를 상기 에러 교정 삽입기(600)로 제공하며, 이때 N은 RS디코딩할데이타+패리티의 프레임으로서 미국 디지털 TV 표준안인 ATSC 스펙에선 187+20=207바이트수인 한 개의 코드워드(Cordword)가 "RS 심볼 클럭"으로 신드롬 계산이 완료되는 시간의 버퍼 크기를 가지며, α는 에러위치 계산시간+에러값 평가계산 시간으로 "RS 클럭"으로 완료되는 시간의 버퍼 크기를 가진다.
상기 RS디코더는 디지탈 방송용 ATV(Advanced digital TV)에 적합하도록 설계되었으나 다른 위성방송 통신의 QPSK(Quadrature Phase Shift Keying) 수신기에 있는 디코더 부분에 응용하여 사용이 가능하다. 즉, 미국 디지털 TV의 표준인 ATSC스펙에서는 N이 RS디코딩될 데이타 단위로서 RS디코딩할 데이타+패리티 비트수의 프레임으로 187+20=207바이트, 에러교정수 T=10, k는 패리티(parity)로서 2T만큼인 20바이트로, RS(N, N-k)의 값이 RS(207, 187)의 RS 디코더를 사용하지만, 전체 코드워드(N)과 에러교정 개수(T)의 값이 다른 응용 디코더에서는 이 값들에 맞추어 설계를 할 수 있는데 이는 기본 구조와 알고리듬은 공유할 수 있기 때문이다.
도 3은 본 발명의 N+α개 피포와 RS 디코더의 블럭도이다.
상기 도 3에 도시된, 상기 N+α개를 갖는 피포와 RS 디코더에 대한 회로는 RS 디코더(800)와 N+α개의 피포(900)로 구성된다.
상기 RS 디코더(800)는 RS 디코딩할 디지탈 데이타(RS_input)(91) 및 207바이트 중 첫 번째 데이타 신호(RS_start)(92)를 입력받아 RS 디코딩하여 에러 위치에 대한 에러값(801)을 N+α개의 피포(900)로 제공한다.
상기 N+α개의 피포(900)는 N이 신드롬 계산 시간이고, α가 에러위치계산+에러값 평가계산 값을 가지는 N+α개의 피포수로 구성되고, 상기 에러 위치에 대한 에러값(801) 및 상기 207바이트 중 첫 번째 데이타 신호(RS_start)(92)를 입력받아 선입선출 방식으로 저장되고 RS디코딩된 디지탈 데이타(901)가 출력된다.
도 4는 본 발명의 일 실시예에 따른 N+α개 피포를 갖는 RS 디코더에 대한 회로도이다.
상기 도 4에 도시된, 상기 N+α개의 피포 구조는 3단 피포 플래그 발생기(830), 2단 에러 교정 삽입기(850) 및 N+α개의 피포(900)로 구성된다. 상기 3단 피포 플래그 발생기(830) 및 2단 에러 교정 삽입기(850)는 상기 RS디코더 내에 존재한다.
상기 N+α개의 피포(900)는 8비트의 RS 디코딩할 디지탈 데이타(RS_input)(91)를 입력받아 선입선출 방식으로 데이타를 저장하여 저장된 8비트의 RS 디코딩할 디지탈 데이타(902)를 제공한다.
상기 3단 피포 플래그 발생기(830)는 상기 207바이트 중 첫 번째 데이타 신호(RS_start)(92)를 RS 데이타 유효 신호(RS_en)를 입력받아 207개의 디코딩할 데이타가 들어올 때마다 3개의 포인터를 두어 2N+α 피포의 기능을 N+α개로 줄이며 실시간 처리 하도록 디코딩한 데이타의 처음 시작 입력부터 최종 출력까지 흐름을 제어하고, 이때 각 코드워드의 시작, 끝, 기간을 나타내는 피포상태 신호 및 제어 신호들(831)을 발생하여 제공한다.
상기 2단 에러 교정 삽입기(850)는 상기 3단 피포 플래그 발생기(830)에서 제공된 상기 피포상태 신호 및 제어 신호들(831)과 상기 N+α개를 갖는 피포(900)로부터 제공된 상기 저장된 8비트의 RS 디코딩할 디지탈 데이타(902)를 입력받고 8비트의 에러 위치(94)와 8비트의 에러 교정치(95)를 입력받아 각 코드워드의 출력이 N(207)번이기 때문에 에러 정정 블록으로부터 발생된 에러를 2개의 임시의 레지스터에 받아 두었다가 상기 3단 피포 플래그 발생기(830)로부터 피포 상태 및 제어 신호에 맞추어 N+α 피포의 출력을 최종 합산하여 RS디코딩된 디지탈 데이타(RS_output)(103)를 출력한다. 상기 2단 에러 교정 삽입기(850)의 구조는 제1 코드워드(CW1)의 출력중 차기 에러 교정값을 핑퐁식으로 레지스터에 저장되는 핑퐁 구조로 되어 있다.
도 5는 상기 도 3의 코드워드가 입력되어 신드롬 계산 및 에러교정이 완료되어 출력될 때까지의 시간도이다.
상기 각 코드워드는 데이타 187바이트와 패리티는 20바이트가 되어 207바이트로 구성되고 각 코드워드간은 1바이트의 동기(Sync) 비트로 구분되어 연속적으로 제1, 제2, 제3 … 코드워드 단위의 연속적인 데이타 흐름을 가진다. 207바이트의 제1 코드워드(CW1)가 신드롬 계산 시간(N)동안 수행되고 2t( t : 에러교정수)만큼인 20개 바이트가 저장되어 에러위치계산과 에러값 평가계산(α)이 에러 교정된후 제1 코드워드(CW1)가 출력된다. 두 번째 이후부터 계속적으로 입력되는 코드워드(CW)는 파이프라인 방식으로 병렬처리 되어 단위 연속적인 데이타 흐름을 가지고 순차적으로 코드워드가 출력된다.
상기 단위 연속적인 데이타의 흐름을 제어하기 위한 회로에서 관련된 피포 제어 신호의 발생에 응용할 수 있으며 각 207바이트인 코드워드의 제어 데이타를 임시 저장하여 동시 출력하는 피포 제어 회로에 응용할 수 있다.
결과적으로, 상기 N+α개 피포를 갖는 RS 디코더는 상기 8비트의 RS 디코딩할 디지탈 데이타(RS_input)(91)를 N+α개의 피포(900)에서 입력받아 선입선출 방식으로 데이타를 저장하여 저장된 8비트의 RS 디코딩할 디지탈 데이타(902)를 상기 2단 에러 교정 삽입기(850)로 제공하고, 상기 207바이트 중 첫 번째 데이타 신호(RS_start)(92)와 RS 데이타 유효 신호(RS_en)를 3단 피포 플래그 발생기(830)에서 입력받아 207개의 디코딩할 데이타가 들어올 때마다 3개의 포인터를 두어 2N+α의 피포수를 N+α개로 줄이며 실시간 처리 하도록 RS디코딩한 데이타의 처음 시작 입력부터 최종 출력까지 흐름을 제어하고, 이때 각 코드워드의 시작, 끝, 기간을 나타내는 피포상태 신호 및 제어 신호들(831)을 발생하여 2단 에러 교정 삽입기(850)로 제공하며, 상기 2단 에러 교정 삽입기(850)는 제1 코드워드(CW1)의 출력중 차기 에러 교정값을 핑퐁방식으로 레지스터에 저장되는 구조로 되어 있어, 상기 3단 피포 플래그 발생기(830)에서 제공된 상기 피포상태 신호 및 제어 신호들(831)과 상기 N+α개의 피포(900)로부터 제공된 상기 저장된 8비트의 RS 디코딩할 디지탈 데이타(902)를 입력받고 8비트의 에러 위치(94)와 8비트의 에러 교정치(95)를 입력받아 각 코드워드의 출력이 N=207이기 때문에 에러 정정 블록으로부터 발생된 에러를 2개의 임시의 레지스터에 받아 두었다가 상기 3단 피포 플래그 발생기(830)로부터 피포 상태 및 제어 신호에 맞추어 N+α개의 피포 출력을 최종 합산하여 RS디코딩된 디지탈 데이타(RS_output)(103)를 출력한다.
따라서, 상기 구성에 의하면 N+α개의 피포를 제어하여 종래의 RS 디코더의 2N+α개의 피포수를 N+α개의 피포를 갖는 RS 디코더를 설계함으로서 칩의 면적을 줄여 집적도를 높일 수 있다.
상술한 바와 같이, 본 발명에 따른 리드-솔로몬 디코더의 N+α개 피포 설계 방법에 의하면, N+α개의 피포 설계는 3개의 포인터와 2t( t : 에러정정수)만큼의 에러 교정 레지스터를 이용한 구조로써 N+α개의 피포를 제어하여 종래의 RS 디코더의 2N+α개의 피포수를 N+α개의 피포를 갖는 RS 디코더를 설계함으로서 칩의 면적을 줄여 집적도를 높일 수 있다.
본 발명을 상기 실시예에 의해 구체적으로 설명하였지만, 본 발명은 이에 의해 제한되는 것이 아니고, 당업자의 통상적인 지식의 범위내에서 그 변형이나 개량이 가능하다.

Claims (4)

  1. (a) 8비트의 RS 디코딩할 데이타을 입력받아 에러 정보를 갖는 신드롬 다항식을 계산하여 신드롬을 계산한 RS디코딩할 데이타를 제공하는 단계;
    (b) 상기 신드롬을 계산한 RS디코딩할 데이타를 입력받아 신드롬의 계산 회수를 계수하여 마지막 신드롬 결과값을 제공하는 단계;
    (c) 상기 신드롬을 계산한 RS디코딩할 데이터 및 상기 신드롬 결과값을 입력받아 벌리컴프 알고리듬을 이용하여 에러 위치 다항식을 계산하여 에러 위치를 출력하는 단계;
    (d) 상기 에러 위치를 입력받아 에러 크기 다항식을 구하여 포오니 알고리듬을 사용하여 각 에러 위치의 에러 값을 구한 다음 에러 위치에 대한 에러값을 출력하는 단계;
    (e) 벌리컴프 알고리듬과 에러 교정을 하기 위해 공통으로 사용할 수 있도록 먹싱과 합산을 하기 위한 트리 구조로 구성되어 룩업 테이블 값인 RS연산 다항식 값을 상기 벌리컴프와 에러 교정기로 제공하는 단계;
    (f) 상기 에러 위치에 대한 에러값을 입력받아 피포의 수를 감소시키기 위해 발생된 에러값들을 저장하여 각종 제어 신호를 발생하여 에러 교정값과 에러 교정값을 삽입하여
    RS 디코딩된 8비트의 출력 데이터, RS 출력 데이타의 유효 신호, 207 바이트 중 첫 번쩨 데이터의 출력 신호를 출력하는 단계; 그리고
    (g) N은 RS디코딩할데이타+패리티의 프레임으로서 미국 디지털 TV 표준안인 ATSC 스펙에선 187+20=207바이트수인 한 개의 코드워드가 "RS 심볼 클럭"으로 신드롬 계산이 완료되는 시간의 버퍼 크기를 가지며, α는 에러위치 계산시간+에러값 평가계산 시간으로 "RS 클럭"으로 완료되는 시간의 버퍼 크기를 가지며, N+α개의 피포수를 가진 피포로서 상기 RS디코딩할 디지털 데이타와 상기 에러 교정값과 에러 교정값을 삽입하기 위한 제어 신호를 입력받아 선입선출 방식으로 저장된 RS디코딩할 디지털 데이타를 제공하는 단계로 이루어지는 것을 특징으로 하는 N+α개의 피포를 갖는 리드-솔로먼 디코더의 설계 방법.
  2. 제1항에 있어서, 상기 단계 (g)는
    (g-1) 8비트의 RS 디코딩할 디지탈 데이타를 입력받아 선입선출 방식으로 데이타를 저장하여 저장된 8비트의 RS 디코딩할 디지탈 데이타를 제공하는 단계;
    (g-2) 상기 207바이트 중 첫 번째 데이타 신호와 RS 데이타 유효 신호를 입력받아 207개의 디코딩할 데이타가 들어올 때마다 3개의 포인터를 두어 2N+α 피포수를 N+α개로 줄이며 실시간 처리 하도록 디코딩한 데이타의 처음 시작 입력부터 최종 출력까지 흐름을 제어하고, 이 때 각 코드워드의 시작, 끝, 기간을 나타내는 피포상태 신호 및 제어 신호들을 발생하여 제공하는 단계; 그리고
    (g-3) 구조는 제1 코드워드의 출력중 차기 에러 교정값을 핑퐁방식으로 레지스터링되어 저장되는 핑퐁 구조로 되어 있고, 상기 피포상태 신호 및 제어 신호들과 상기 저장된 8비트의 RS 디코딩할 디지탈 데이타를 입력받고 8비트의 에러 위치와 8비트의 에러 교정치를 입력받아 각 코드워드의 출력이 207번이기 때문에 에러 정정 블록으로부터 발생된 에러를 2개의 임시의 레지스터에 받아 두었다가 입력된 상기 피포 상태 및 제어 신호에 맞추어 N+α피포의 출력을 최종 합산하여 RS디코딩된 디지탈 데이타를 출력하는 단계로 구성되는 것을 특징으로 하는 N+α개의 피포를 가진 리드-솔로몬 디코더의 설계 방법.
  3. 제1항에 있어서, 상기 단계 (g)는
    3개의 피포 플래그를 발생하는 포인터를 이용하고 2단계의 에러 교정삽입을 위한 레지스터들을 이용한 N+α개의 피포를 가진 리드-솔로몬 디코더의 설계 방법.
  4. 제1항에 있어서, 상기 단계 (g)는
    리드-솔로몬 디코더내의 종래의 RS심볼 클럭을 사용한 2N+α개의 피포를 가진 RS디코더 구조내의 피포에서 RS디코딩 시간을 줄이고 RS디코더의 피포 수를 감소시키기 위해서 RS클럭을 사용하여 N+α개의 피포를 가진 리드-솔로몬 디코더의 설계 방법.
KR1019970070767A 1997-12-19 1997-12-19 리드-솔로몬 디코더의 N+α개 피포 설계 방법 KR100265949B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970070767A KR100265949B1 (ko) 1997-12-19 1997-12-19 리드-솔로몬 디코더의 N+α개 피포 설계 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970070767A KR100265949B1 (ko) 1997-12-19 1997-12-19 리드-솔로몬 디코더의 N+α개 피포 설계 방법

Publications (2)

Publication Number Publication Date
KR19990051448A KR19990051448A (ko) 1999-07-05
KR100265949B1 true KR100265949B1 (ko) 2000-09-15

Family

ID=19527869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970070767A KR100265949B1 (ko) 1997-12-19 1997-12-19 리드-솔로몬 디코더의 N+α개 피포 설계 방법

Country Status (1)

Country Link
KR (1) KR100265949B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9899104B2 (en) * 2016-03-18 2018-02-20 Silicon Motion Inc. Raid decoding architecture with reduced bandwidth

Also Published As

Publication number Publication date
KR19990051448A (ko) 1999-07-05

Similar Documents

Publication Publication Date Title
AU699253B2 (en) Galois field multiplier for reed-solomon decoder
WO2000057561A1 (en) Pipelined high speed reed-solomon error/erasure decoder
KR20040075954A (ko) 에러 정정 디코더에서의 이중 치엔 탐색 블록
KR20040075952A (ko) 인트라-디코더 컴포넌트 블록 메시징
US6154869A (en) Combined error position circuit and chien search circuit for reed-solomon decoding
KR20040075953A (ko) 에러 정정 디코더용 치엔 탐색 셀
KR100265949B1 (ko) 리드-솔로몬 디코더의 N+α개 피포 설계 방법
KR100747487B1 (ko) 리드-솔로몬 복호 장치 및 수정된 유클리드 알고리즘연산회로
KR100265948B1 (ko) N+α개의 피포를 갖는 리드-솔로먼 디코딩 방법 및 리드-솔로먼 디코더
JPH06276106A (ja) 誤り訂正復号装置
KR100271057B1 (ko) 리드-솔로몬 디코더의 트리구조를 이용한 rs 연산 유니트설계 방법
KR101070577B1 (ko) 차수계산이 필요없는 리드-솔로몬 복호기
KR100212829B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100212825B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100212830B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
Im et al. An advanced vlsi architecture of rs decoders for advanced tv
JP2823158B2 (ja) 誤り訂正装置
KR100298833B1 (ko) 유크리드 알고리즘 연산 회로
KR100245611B1 (ko) 단일 에러 감지 회로 및 정정 회로
KR0128847B1 (ko) 에이에이엘 타입5 (AA Type 5)서비스를 위한 순방향에러제어의 병렬처리장치
KR100762132B1 (ko) 디지털 전송 시스템
JP3268926B2 (ja) 誤り訂正回路
KR100204801B1 (ko) 리드 솔로몬 복호기의 에러 보정 장치
KR100212828B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR0185850B1 (ko) 리드 솔로몬 복호기

Legal Events

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

Payment date: 20120604

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20130603

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee