KR100192794B1 - 비터비 디코더의 트레이스백 진행 구조 - Google Patents

비터비 디코더의 트레이스백 진행 구조 Download PDF

Info

Publication number
KR100192794B1
KR100192794B1 KR1019960016002A KR19960016002A KR100192794B1 KR 100192794 B1 KR100192794 B1 KR 100192794B1 KR 1019960016002 A KR1019960016002 A KR 1019960016002A KR 19960016002 A KR19960016002 A KR 19960016002A KR 100192794 B1 KR100192794 B1 KR 100192794B1
Authority
KR
South Korea
Prior art keywords
bit
decision
vector
state
output
Prior art date
Application number
KR1019960016002A
Other languages
English (en)
Other versions
KR970078048A (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 KR1019960016002A priority Critical patent/KR100192794B1/ko
Publication of KR970078048A publication Critical patent/KR970078048A/ko
Application granted granted Critical
Publication of KR100192794B1 publication Critical patent/KR100192794B1/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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • 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)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 비터비 복호기호의 트레이스백 진행 구조에 과한 것으로, 각 트레이스백 진행 셀(100-1∼100-49)이, 판정 벡터(DVi)를 래치하여 출력하는 제1레지스터(110)와; 상기 제1레지스터(110)에서 출력된 제1판정 벡터(DVi-1)를 래치하여 출력하는 제2레지스터(120)와; 상기 제2레지스터(120)에서 출력된 제2판정 벡터(DVi-2)를 래치하여 출력하는 제3레지스터(130); 상기 제1판정 벡터(DVi-1)또는 제2판정 벡터(DVi-2)를 선택적으로 출력하는 판정벡터입력부(140); 입력된 선택 신호에 따라 제1판정 벡터(DVi-1)와 제2판정 벡터(DVi-2) 각각에 대해 판정 비트를 선택하여 출력함과 더불어 상기 제2판정 벡터(DVi-2)에서 선택된 판정 비트를 트레이스백된 스테이트의 최상위비트로 출력하는 판정비트선택부(150) 및; 입력되는 스테이트(Si)를 지연시킨 스테이트(Si-1)를 상기 판정비트선택부(150)의 첫번째 선택신호로 입력하는 한편, 상기 첫번째 선택신호에 의해 상기 판정비트선택부(150)에서 출력된 판정 비트를 최상위비트로 하여 상기 스테이트(Si-1)를 1비트 시프트시켜 상기 판정비트선택부(150)의 두번째 선택신호를 출력함과 더불어 상기 두번째 선택신호를 하위비트쪽으로 1비트 시프트시틴 값을 트레이스백된 스테이트의 최상위비트를 제외한 나머지 비트로 출력하는 선택신호생성부(160)를 포함하여 구성되어, 트레이스백 진행 셀이 1개의 시스템 클럭당 2스텝의 트레이스백을 수행하도록 구현됨으로써, 트레이스백 진행 구조가 간단할 뿐만 아니라 면적을 적게 차지하여 최대규모 집적회로(VLSI)로 구현하기 용이한 것이다.

Description

비터비 디코더의 트레이스백 진행 구조
제1도는 N=2 상태의 격자상도.
제2도는 노드s1.k+1에 대한 최적 경로를 결정하는 과정을 성명하기 위한 도면.
제3도는 일반적인 비터비 디코더의 블럭도.
제4도는 판정 벡터 및 트레이스백 진행을 설명하기 위한 도면.
제5도는 디코딩 깊이를 설명하기 위한 도면.
제6도는 일반적인 트레이스백 진행 구조의 블록도.
제7도는 트레이스백 진해의 주기적 특성을 설명하기 위한 도면.
제8도는 일반적인 파이프 라인 구조의 트레이스백 진행 구조의 블록도.
제9도는 제8도에 도시된 트레이스백 진행 구조의 메모리와 선입선출버퍼에 저장되는 판정 벡터의 내용을 도시하 도면.
제10도는 종래의 파이프 라인 구조의 트레이스백 진행 구조의 1실시예의 블록도.
제11도는 제10도에 도시된 트레이스백 진행 셀의 회로도.
제12도는 제11도에 도시된 트레이스백 진행 셀의 타이밍도.
제13도는 본 발명에 따른 파이프 라인 구조의 트레이스백 진행 구조의 블록도.
제14도는 본 발명에 따른 트레이스백 진행 셀의 회로도.
제15도는 본 발명에 따른 트레이스백 진행 셀의 타이밍도이다.
* 도면의 주요부분에 대한 부호의 설명
100-1 ∼100-49 : 트레이스백 진행 셀
110 : 제1레지스터 120 : 제2레지스터
130 : 제3레지스터 140 : 판정벡터입력부
142 : 제1멀티플렉서 150 : 판정비트선택부
152 : 제2멀티플렉서 160 : 선택신호생성부
162 : 상태 레지스터 164 : D 플립플롭
166 : 제3멀티플렉서
본 발명은 길쌈 부호기(convolutional encoder)에 의해 길삼 부호화된 정보 시퀸스를 에러 정정 복호화하여 원래의 정보 시퀸스로 복원하는 비터비 디코더(Viterbi decoder)에 관한 것으로, 특히 판정 벡터(decision vector)를 이용하여 트레이스백을 수행함으로써 원래의 정보 스퀸스를 찾아내는 길쌈 복호기의 트레이스백 진행(tracebace procedure)구조에 관한 것이다.
일반적으로, 비터비 알고리즘(Viterbi algorithm)은 격자상도(trellis diagram)를 사용하여 최대 가능성 복호(maximum likelihood decoding)를 수행하는 알고리즘으로서, 동적 프로그램(dynamic programming)의 일종이라고 할 수 있다.
상기 동적 프로그램은 최적 경로(optimum path)를 찾아내는 등의 여러 가지 다양한 분야에서 사용되는 알고리즘으로서, 이러한 동적 프로그램이 통신에서 사용될 때 비터비 알고리즘이라 한다.
이러한 비터비 알고리즘은 1967년 길쌈 부호(convolutional code)를 복호하기 위해 소개되어, 디지탈 전송, 자기 기록, 음성 인식등과 같은 통신분야에서 널리 사용되고 있다.
제1도는 노드(node)수(스테이트 머쉰(state machine)의 스테이트 수)가 2일때의 격자상도로서, 일반적으로 노드 수(N)가 많을 때도 적용되는 격자상도이다.
상기 제1도에 있어서, 수직 방향은 스테이트 si이고, 수평 방향은 시간(T)이며, k는 시간 단계이고, si는 i번째 스테이트이고,Si,k는 노드(node)로서 시간 k의 i번째 스테이트이다.
상기와 같은 격자상도는 시간(T)에 따라 스테이트(state)의 전이동작(transition dynamics)을 보여주는 것으로, 시간 단계 k의 스테이트들(sl,ks2,k)은 시간 간격(time interval) (k, k+1)의 브랜치(branch)에 의해 시간 단계(k+1)의 스테이트들(sl,k, s2,k)과 연결된다.
유한 상태 머신(finite state machine)은 상기와 같은 격자상도를 통해 경로(path)를 선택하고, 관찰 상태 천이(observed state transitions)의 도움으로 시간 간격(time interval)(k, k+1)의 브랜치 매트릭스(branch metrics)가 계산된다.
즉, 비터비 복호화시에는 수신 신호에 대응하는 브랜치(branch)의 코드(code)간의 거리(브랜치 매트릭스)를 계산하게 되는데 상기 브랜치의 코드간의 거리(브랜치 매트릭스)는 신호 판별의 기준이 된다.
이때, 상기 브랜치의 코드간의 거리는 강판정(hard decision)복호의 경우에는 해밍 거리(Hamming distance)가 되고, 연판정(soft decision)의 경우에는 유클리디언 거리(Eucideam distance)가 된다.
그리고, 상기와 같이 얻어진 브랜치 매트릭스를 이용하여 시간 단계 k의 노드들에 대해 최저 경로(optimum path)를 계산한다.
예를 들어, 시간 단계 k+1에서의 새로운 최적 경로는 시간 단계 k 에서의 경로 매트릭스와 시간 간격(k, k+1)의 브랜치 매트릭스에 의해 계산되는 것이다.
즉, 제2도에 도시된 바와 같이, 시간 단계 k의 노드 s1,k, s2,k가 경로 매트릭스 r1,k, r2,k를 각각 갖고 있다면, 노드 s1,k+1, s2,k+1의 새로운 경로 매트릭스 γ1,k+1, γ2,k+1는 하기 제1식으로부터 각각 구해진다.
즉, 시간 단계 k+1의 노드로 올 수 있는 경로의 종류는 시간 단계 k의 스테이트의 변화에 따라 복수개가 존재하므로, 확률 정보(0 일 대 확률이 제일 높고, 크면 클수록 확률이 작음)인 브랜치 매트릭스(γ)를 이용하여 확률적으로 가장 높은 것을 경로 매트릭스를 찾는 것이다.
이와 같은 경로 매트릭스를 계산하는 과정을 시간 (T)이 경과함에 따라 순환적(recurive)으로 수행하여 최종적으로 최적 경로가 결정되는 것이다.
또한, 경로들을 트레이스백(traceback)하면 경로들이 매우 높은 확률로 병합(merge)되는데, 이와 같이 경로들이 매우 높은 확률로 병합(merge)되는 시간 단계(time step)의 수를 결정 깊이(survivor depth : D)라 하며, 이 결정 깊이(D)가 비터비 복호화의 지연을 좌우하게 된다.
즉, 각 노드마다 상기 제1식에 의해 경로 매트릭스를 업데이트(update)하게 되면, 결정 깊이(D) 이전에 해당하는 각 경로의 스테이트는 같게 되므로, 같게 되는 정도까지 트레이스백을 하여 결정 깊이(D)이전의 스테이트 변화를 출력함으로써 복호화하는 것이다.
한편, 제3도는 일반적인 비터비 복호기의 블록도로서, 비터비 복호기는, 수신된 디지탈 신호를 입력받아 확률적 정보인 브랜치 매트릭스(branch metric)를 계산하여 출력하는 브랜치 매트릭스 생성부(1)(BMU : Branch Metric Unit)와; 상기 브랜치 매트릭스 생성부(1)에서 브랜치 매트릭스를 입력받아 이 브랜치 매트릭스를 사용하여 격자상(trelllis)의 각 스테이트의 경로 메트릭스(path metric)를 업데이트(update)한 다음 이전 경로 메트릭스와 비교하여 판정 벡터를 출력하는 가산 비교 선택부(3)(ACSU : Add Comare Selection Unit) 및: 상기 가산 비교 선택부(3)에서 출력된 판정 벡터를 메모리에 저장한 다음 이 판정 벡터를 이용하여 원래의 정보 시퀸스를 찾아내는 생존 메모리부(5)(SMU : Survivor Memory Unit)로 이루어진다.
즉, 브랜치 매트릭스 생성부(1)는 수신된 디지탈 신호를 입력받아 브랜치 매트릭스를 계산하여 가산 비교 선택부(3)로 출력하고, 상기 가산 비교 선택부(3)는 각 디코딩 사이클 마당 상기 브랜치 매트릭스 생성부(1)에서 입력된 브랜치 매트릭스를 사용하여 경로 매트릭스를 업데이트하여 N 비트의 판정 벡터(가산 비교 선택 동작중 각 스테이트에서의 비교 결과임. 총 N 개의 스테이트로 이루어진 격자상도를 가정할때 각 디코딩 사이클 마다 N 비트를 얻게 됨)를 생존 메모리부(5)로 입력한다.
상기 생존 메모리부(5)는 상기 가산비교선택부(3)에서 입력된 판정 벡터를 메모리에 저장하고, 메모리에 저장된 판정 벡터를 이용하여 원래의 정보 시퀸스를 찾아내는 것이다.
이때, 상기 생존 메모리부(5)가 고속으로 동작할 수 있으려면, 주기적으로 동작하는 트레이스백 진행 구조로 이루어져야 한다.
제4도는 판정 벡터 및 트레이스백 진행을 설명하기 위한 도면으로서, 길쌈 부호기가 v단의 시프트 레지스터(스테이트 수=2v)를 갖는 스테이트 머쉰으로 동작한다고 가정하면, 시프트 레지스터의 내용을 바이너리로 왼쪽에서 차례로 bv-1bv-2…b1b0로 표기하여 길쌈 부호기의 스테이트를 나타낼 수 있다. (정보 비트가 시프트 레지스터의 왼쪽단부터 입력된다고 가정함)
이때, 각 스테이트는 판정 비트를 1개씩 가지고 있으며, 어느 한 스테이트에서 출발하여 트레이스백을 한다는 것은 그 스테이트의 판정비트를 이용하여 이전 스테이트를 구하는 것이다.
즉, bv-1bv-2…b1b0상태에서 트레이스백할 경우에 bv-1bv-2…b1b0스테이트의 판정 벡터(δ)가 1인 경우 트레이스백된 이전 스테이트는 bv-2…b1b0이 되고, 판정 벡터(δ)가 0인 경우는 bv-2…b1b0이 되는 것이다.
이때, 제3도의 가산 비교 선택부(3)가 비교되는 두 개의 스테이트 중 선택된 스테이트의 맨 우측 비트(최상위비트(MSB))에 해당하는 비트를 그 스테이트의 판정 비트로 출력함에 따라 트레이스백을 하여 얻게 되는 판정 비트의 열은 각 엔코딩 사이클 마다 시프트 레지스터의 맨 우측 비트(MSB)를 나타낸다.
결국, 판정 비트의 열은 길쌈 부호기의 시프트 레지스터로 입력되는 정보 비트열과 같게 된다.
상기와 같은 트레이스백 진행 과정을 현재의 어느 한 스테이트에서 시작하여 무한대의 시간전까지 수행하여 선택된 생존 경로(survivor path)는 확률적으로 길쌈부호기의 부호화 경로와 가장 근접한 경로가 되며, 현재의 스테이트가 N개 있을 경우 N개의 스테이트에 대하여 이러한 무한대의 트레이스백 진행을 하여 이중 확률적으로 가장 근접한 패스를 생존 경로(survivor path)로 결정하는 것이 최적의 방법이다.
그러나, 제5도에 도시된 바와 같이, 비터비 알고리즘은 구속장(constraint length)의 약4배 내지 5배 정도 까지만 트레이스백을 하고 그 이후로 트레이스백된 결과를 디코딩된 비트로 정한다 하더라도 최적의 트레이스백 진행과 거의 다르지 않다는 것이 시뮬레이션(simulation)로 의해 알려져 있으며, 이 트레이스백의 진행 깊이를 디코딩 깊이(decoding depth)라고 하고, 특정한 길쌈 부호에 대해서 동작하는 신호대 노이즈(S/N)비와 디코딩 깊이에 따른 성능 분석을 통해서 상기 디코딩 깊이를 정확하게 결정한다.
즉, 어느 스테이트에서 디코딩 깊이만큼 트레이스백 진행하면 각 스테이트의 생존 경로(survival path)가 하나로 병합(merge)되므로, 실제로 트레이스백 진행은 임의의 한 스테이트에서 트레이스백 진행하여 그 결과를 사용하여도 무방한 것이다.
상기와 같은 트레이스백 진행 과정은 다음과 같은 3단계의 과정으로 이루어진다.
1). 메모리로부터 판정 벡터를 읽는다.
2). 스테이트(B)에 따라 상기 판정 벡터 중에서 판정 비트를 선택한다.
3). 선택된 판정 비트를 가지고 상기 스테이트(B)를 좌측으로 시프트 시킨다.
상기와 같은 3단계의 트레이스백 진행 과정이 하드웨어로 구현된 일반적인 트레이스백 진행 구조는 제6도와 같이 도시될 수 있는 바, 제6도는 시프트 레지스터가 6단(v=6)인 경우, 즉 64 스테이트를 예로 든 것이다.
즉, 트레이스백 진행 구조는, 다수개의 판정 벡터가 저장되는 메모리(11)와; 상기 메모리(11)에서 출력된 판정 벡터중에서 판정 비트를 선택신호에 따라 선택하여 출력하는 멀티플렉서(13) 및; 상기 멀티플렉서(13)에서 출력된 판정 비트를 최상위비트(MSB)로 하여 저장된 값을 1비트 좌측으로 스프트시킴과 더불어 시프트된 값을 상기 멀티플렉서(13)의 선택신호로 입력함과 더불어 경로 시퀸스로 출력하는 시스트 레지스터(15)를 포함하여 구성되어 있다.
상기 멀티플레서(13)는 64개의 판정 비트중 1개의 판정 비트를 선택하여 출력하는 64:1 멀티플렉서이며, 상기 시프트 레지스터(15)는 6비트 시프트 레지스트이다.
이때, 상기 시프트 레지스터(15)에서 출력되는 스테이트의 열이 경로 시퀸스(ancestral path seqeence)가 되며, 상기 스테이트의 마지막 비트의 열이 길쌈 복호기로 입력되는 정보 데이타의 비트 열이 되는 것이다.
상기와 같은 트레이스 백 진행 과정을 제7도를 참조하여 다시 설명하면 다음과 같다. 제7도는 트레이스백 진행의 주기적인 특성을 설명하기 위한 도면으로서, 제7도에서 L은 디코딩 깊이이고, 1은 트레이스백 주기이다.
즉, 제7도에 도시된 바와 같이, 초기 스테이트(initial state)에서 시작하여 디코딩 깊이(L)만큼 트레이스백을 진행하고, 그 이후 1개 만큼 더 트레이스백 진행하여 1개의 디코딩된 출력을 얻는다. 그 다음은 새로 들어온 1개의 판정 벡터를 추가하여 다시 트레이스백 과정을 반복한다.
즉, 매1개의 디코딩 사이클을 주기로 하여 시간적으로 최근에 들어온 L+1개의 판정 벡터에 대한 트레이스백 과정이 반복되는 것이다. 이때, 하드웨어적인 관점의 각 파아메터를 정리하면 다음과 같다.
처리량 = 트레이스백 스텝(step traceback)/입력(input) = (L+1)/1
메모리 = (L+1)
지연 = (L+1)
상기 처리량(throughput)은 매 입력마다 (L+1)/1의 트레이스백 동작이 필함에 따라, 처리량(throughput)을 높이기 위해서는 1을 높이면 된다.
그러나, 상기와 같이 단순히 1을 크게 하면 메모리 및 지연은 커지는 문제점이 있으므로, 트레이스백 진행은 파이프 라인 구조를 사용하는 것이 바람직하다.
즉, 제8도는 일반적인 파이프 라인 구조의 트레이스백 진행 구조를 도시한 것으로, L은 디코딩 깊이로서 길쌈 부호기에 의해 결정되는 상수이며, n은 트레이스백 진행 셀이 한 디코딩 사이클동안 트레이스백 할 수 있는 스텝의 수로서 하드웨어 클럭 계획(clocking scheme)에 따라 결정되는 상수이고, 1은 디코딩 사이클의 갯수로서 트레이스백 진행의 주기이다.
즉, 파이프 라인 구조의 트래이스백 진행 구조는, 1개의 판정 벡터 및 초기 스테이트를 입력받아 n×1 개 만큼 트레이스백을 진행하여 마지막 스테이트를 다음단의 트레이스백 진행 셀의 초기 스테이트로 입력하는 한편, 상기 판정 벡터중 가장 오랜전에 입력되었던 1개의 판정 벡터를 다음단의 트레이스백 진행 셀로 입력하는 다수개의 트레이스백 진행셀(20-1∼20-S)이 직열로 연결되어 있다.
이때, 첫번째 트레이스백 진행 셀(20-1)은 판정 벡터를 가산비교 선택부(ACSU)로부터 입력받게 되지만, 나머지 트레이스백 진행 셀은 전단의 트레이스백 진행 셀로부터 1개 만큼의 판정 벡터를 입력받는 것이다.
상기와 같은 트레이스백 진행 구조에 있어서, 상기 각 트레이스백 진행 셀(20-1∼20-S)은, n×1 개의 판정 벡터가 저장되는 메모리(21)와; 상기 메모리에서 출력된 1개의 판정 벡터를 일시 저장하였다가 출력하는 선입선출버퍼(FIFO : 23); 선택신호에 따라 상기 메모리(11)에서 출력된 판정 벡터중에서 판정비트를 선택하여 출력하는 멀티플렉서(25)및; 멀티플렉서(25)에서 출력된 판정 비트를 최상위비트(MSB)로 하여 저장된 값을 시프트시키는 한편, 시프트된 값을 상기 멀티플렉서(25)의 선택신호로 입력함과 더불어 초기 스테이트로 출력하는 시프트 레지스터(27)를 포함하여 구성되어 있다.
이때, 상기 메모리(21)는 n×1개의 판정 벡터를 저장할 수 있는 SRAM 이며, 선입선출버퍼(23)는 각 트레이스 진행 셀 간의 파이프 라인을 성립시키기 위한 버퍼로 일반적인 파이프 라인 구조의 래치(latch)와 같으나, 트레이스백이 1개의 디코딩 사이클을 주기로 진행되므로 1개의 판정 벡터를 저장할 수 있는 버퍼가 사용된다.
상기와 같은 파이프 라인 구조의 트레이스백 진행 구조의 동작을 제9도를 참조하여 설명하면 다음과 같다.
첫번째 트레이스백 진행 셀(20-1)은 가산비교선택부(ACSU)로부터 입력된 1개의 판정 벡터를 포함하여 총 n×1 개의 판정 벡터를 메모리(21-1)에 저장되며, 상기 메모리(11)에 저장된 n×1개의 판정 벡터를 가지고 n×1 만큼 트레이스백을 수행하고, 트레이스백이 끝나면 마직막 스테이트를 두번째 트레이스백 진행 셀(20-2)의 시프트 레지스터(27-2)의 초기 스테이트로 넘겨줌과 더불어 상기 메모리(21-1)에 저장된 판정 벡터중 가장 오래전에 입력된 1개의 판정 벡터를 선입선출버퍼(23-1)를 통해 두번째 트레이스백 진행 셀(20-2)의 메모리(21-2)로 넘겨주게 된다.
그리고, 두번째 트레이스백 진행 셀(20-2)의 메모리(21-2)는 상기 선입선출버퍼(23-1)를 통해 입력된 판정 벡터를 포함하여 총 n×1 개의 판정 벡터가 저장되며, 두번째 트레이스백 진행 셀(20-2)은 상기 메모리(11)에 저장된 n×1개의 판정 벡터를 가지고 n×1 만큼 트레이스백을 수행하고, 트레이스백이 끝나면 마지막 스테이트를 세번째 트레이스백 진행 셀(20-3)의 시프트 레지스터(27-3)의 초기 스테이트로 넘겨줌과 더불어 상기 메모리(21-2)에 저장된 판정 벡터중 가장 오래전에 입력된 1개의 판정 벡터를 선입선출버퍼(23-2)를 통해 세번째 트레이스백 진행 셀(20-3)의 메모리(21-3)로 넘겨주게 된다.
즉, 각 트레이스백 진행 셀(20-1∼20-S)은 자신의 메모리(21-1∼20-S)에 상기와 같이 입력된 1개의 판정 벡터를 포함하여 총 n×1 개의 판정 벡터를 갖게 되며, 이것을 가지고 n×1 만큼의 트레이스백을 진행하는 것이다.
이렇게 트레이스백이 끝나면, 마지막 스테이트를 다음 트레이스백 진행 셀에 넘겨줌과 더불어 자신의 메모리에 있는 판정 벡터 중 가장 오랜전에 입력되었던 1개를 선입선출버퍼를 통해 다음 트레이스백 진행 셀로 출력한다.
그리고, 다음 단의 트레이스백 진행 셀은 전단의 트레이스백 진행셀에서 입력된 스테이트를 초기 스테이트로 하고, 선입선출버퍼에 저장되어 있던 1개의 판정 벡털르 입력받아 트레이스백을 수행한다.
상기와 같은 파이프 라인 구조의 트레이스백 진행 구조에 있어서, 각 하드웨어 파라메터는 다음의 관계를 만족하여야 한다.
처리율 : s×n = (L+1)/1
전체 SRAM 용량 : s×n×1 = (L+1)
전체 메모리 용량 : s×n×1 + (s-1)×1 = (L+1) + (L+1)/n - 1
= L + (L+1)/n
지연 : s×n×1 + s×1 = (L+1) + (L+1)/n
따라서, 메모리와 지연을 줄이는 가장 좋은 방법은 n을 높이는 것이며, 다음으로 1을 줄이는 방향으로 설계하여야 한다.
현재, 유럽 디지탈 방송 규격인 DVB(Digital Video Broadcastin)규격에서는 1/2 레이트(rate)의 64 스테이트 길쌈 부호기의 복호를 위한 64 스테이트 비터비 복호기를 채용하였으며, 우리나라의 무궁과 위성 방송에서도 똑같은 것이 사용된다.
또한, 상기 비터비 복호기에서는 디코딩 깊이를 96으로 하였는데, 이는 DVB규격에서 길쌈 부호기가 다양한 펑처링 모드(puncturing mode)를 갖으므로, 모든 펑처링 모드를 지원하기 위해서는 디코딩 깊이가 96정도는 되어야 하는 것이 시뮬레이션에 의해 널리 알려져 있다.
상기 DVB 규격과 같은 고속의 디지탈 통신시스템에서 비터비 부호기가 공급받는 클럭은 비터비 복호기의 격자상도에서 1스텝에 해당하는 것이 주기(period)인 클럭이다.
이것은 1/n 길쌈 부호기에 대한 입력 비트 레이트 혹은 이 코드에 대한 비터비 복호기의 출력 레이트에 해당하는 것으로 앞에서 설며한 파이프 라인 구조의 하드웨어 파라메터 n이 1인 경우이다.
또한, l=1 을 사용하는 것이 가장 하드웨어의 양을 가장 많이 줄이는 방법이다.
제10도는 n=1, l=1, L=96일 때의 파이프 라인 구조의 트레이스백 진행 구조를 도시한 것으로, 파이프 라인 구조의 트레이스백 진행 구조가 97개의 트레이스백 진행 셀(30-1∼30-97)이 직열로 연결된 구조로 되어 있다.
즉, 디코딩 깊이(L)가 96이므로, 사용되는 트레이스백 진행 셀이 97개 이다.
그리고, 상기 각 트레이스백 진행 셀(30-1∼30-97)은 제11도에 도시된 바와 같이, n×1 이고 64개의 D플립플롭으로 구현되고, 선입선출버퍼(33)도 l=1이므로 64비트 병렬 레지스터로 구현된다.
그리고, 64 스테이트이므로, 메모리(31)가 64비트 병렬 레지스터 즉, 64스테이트이므로 멀티플렉서(35)는 64:1 멀티플렉서로 구현되고, 시프트 레지스터(37)는 6비트 시프트 레지스터로 구현된다.
따라서, 각 트레이스백 진행 셀(30-1∼30-97)은 이전 트레이스백 진행 셀에서 트레이스백한 결과(Si)와 이전 트레이스백 진행 셀에서 입력되는 l(l=1)개의 파정 벡터(DVi)를 입력으로 하여, 1(n×1=1)스텝 만큼 트레이스백을 하고 트레이스백한 결과(Si-2)와 선입선출버퍼(33)가 가지고 있던 판정 벡터(DVi-2)를 다음 트레이스백 진행 셀에 전달한다.
상기와 같은 종래의 파이프 라인 구조의 트레이스백 진행 구조를 제12도의 타이밍도를 참조하여 설명하면 다음과 같다.
첫번째 시스템 클럭(clk)동안에, 첫번째 트레이스백 진행 셀의 제1레시스터(31)는 판정 벡터(DVi)를 입력받으며, 제2레지스터(33)는 이전 판정 벡터(DVi-1)를 입력받고, 시프트 레지스터(37)는 스테이트 (Si)를 입력받아 저장한다.
그리고, 상기와 같이 입력된 판정 벡터 및 스테이트를 사용하여 1스텝 만큼 트레이스백을 하고 트레이스백한 결과(Si-2)와 선입선출버퍼(33)가 가지고 있던 판정 벡터(DVi-2)를 다음 트레이스백 진행 셀로 입력한다.
따라서, 두번째 트레이스백 진행 셀의 제1레지스터(31)는 판정 벡터(DVi-2)를 입력받으며, 제2레지스터(33)는 이전 판정 벡터(DVi-3)를 입력받고, 시프트 레지스터(37)는 스테이트(Si-2)를 입력받아 저장한다.
상기와 같은 종래의 트레이스백 진행 구조의 1실시예의 하드웨어량은 다음과 같다.
64비트 레지스터 : 96×2 + 1
64:1 멀티플렉서 : 97
6 비트 시프트 레지스터 : 97
즉, 상기와 같은 종래의 트레이스백 진행 구조는 디코딩 깊이가 96인 경우 97개의 트레이스백 진행 셀이 필요하고, 마지막 진행 세을 제외환 모든 트레이스백 진행 셀은 2개의 64비트 레지스터를 포함함에 따라 그 구조가 복잡할 뿐만 아니라 면적을 많이 차지함에 따라 초대규모 집적회로(VLSI)로 구현하기 어려운 문제점이 있었다.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해소하기 위한 것으로, 하나의 트레이스백 진행 셀에 1개의 시스템 클럭당 2스텝의 트레이스백을 수행함으로써, 구조가 간단할 뿐만 아니라 면적을 적게 차지하여 초대규모 집적회로(VLSI)로 구현하기 용이한 길쌈 복호기의 트레이스백 진행 구조를 제공하는데 그 목적이 있다.
이러한 목적을 달성하기 위한 본 발명에 따른 길쌈 복호기의 트레이스백 진행 구조는, 판정 벡터 및 스테이트를 각각 입력받아 트레이스백을 수행하여 트레이스백된 스테이트를 다음단의 트레이스백 진행셀로 입력함과 더불어 상기 판정 벡터를 지연시켜 지연된 판정 벡터를 다음단의 트레이스백 진행셀로 입력하는 다수개의 트레이스백 진행셀이 파이프 라인 구조로 연결된 비터비 복호기의 트레이스백 진행 구조에 있어서, 상기 각 트레이스백 진행 셀이, 시스템 클럭에 따라 판정 벡터를 래치하여 제1판정 벡터로 출력하는 제1레지스터와; 시스템 클럭에 따라 상기 제1레지스터에서 출력된 제1판정 벡터를 래치하여 제2판정 벡터로 출력하는 제2레지스터; 시스템 클럭에 따라 상기 제2레지스터에서 출력된 제2판정 벡터를 래치하여 제3판정 벡터로 출력하는 제3레지스터; 시스템 클럭에 따라 상기 제1레지스터에서 출력된 제1판정 벡터 또는 제2레지스터에서 출력된 제2판정 벡터를 선택적으로 출력하는 판정벡터 입력부; 입력된 선택신호에 따라 상기 판정벡터입력부에서 출력된 제1판정 벡터와 제2판정 벡터에 각각에 대해 판정 비트를 선택하여 출력함과 더불어 상기 제2판정 벡터에서 선택된 판정 비트를 트레이스백된 스테이트의 최상위비트로 하여 출력하는 판정비트선택부 및: 입력된 스테이트를 지연시켜 지연된 스테이트를 상기 판정비트선택부의 첫번째 선택신호로 입력하는 한편, 상기 첫번째 선택신호에 의해 상기 판정비트선택부에서 출력된 판정 비트를 최상위비트로 하여 상기 스테이트를 1비트 시프트시켜 상기 판정비트선택부의 두번째 선택신호를 출력함과 더불어 상기 두번째 선택신호를 하위비트쪽으로 1비트 시프트시킨 값을 트레이스백된 스테이트의 최상위비트를 제외한 나머지 비트로 출력하는 선택신호생성부를 포함하여 구성된 것을 특징으로 한다.
따라서, 시스템 클럭이 하이인 구간인 동안 1스텝만큼 트레이스백을 수행하고, 클럭이 로우인 구간에 그 결과를 가지고 1스텝 만큼 트레이스백을 하여 전체적으로 1클럭에 2스텝만큼 트레이스백을 수행함에 따라, 1개의 트레이스백 진행 셀이 2스텝 트레이스백을 수행하는 것이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세히 설명하면 다음과 같다.
제13도는 본 발명에 따른 파이프 라인 구조의 트레이스백 진행 구조의 개략적인 블럭도이고, 제14도는 상기 제13도의 트레이스백 진행 셀의 회로도로서, n=1, l=1, L=96일 때를 예로 든 것이다.
즉, 본 발명에 따른 비버티 복호기의 트레이스백 진행 구조는, 판정 벡터(DVi) 및 스테이트를 입력받아 1시스템 클럭당 트레이스백을 2스텝 수행하여 2스텝 트레이스백된 스테이트를 다음단의 트레이스백 진행 셀로 입력함과 더불어 상기 판정 벡터(DVi)를 지연시켜 다음단의 트레이스백 진행셀로 입력하는 다수개의 트레이스백 진행 셀(100-1∼100-49)이 직열로 연결된 구조로 되어 있다.
그리고, 상기 각 트레이스백 진행 셀(100-1∼100-49)이, 시스템 클럭(clk)에 따라 판정 벡터(DVi)를 래치(latch)하여 제1판정 벡터(DVi-1)로 출력하는 제1레지스터(110)와; 시스템 클럭(clk)에 따라 상기 제1레지스터(110)에서 출력된 제1판정 벡터(DVi-1)를 래치하여 제2판정 벡터(DVi-2)로 출력하는 제2레지스터(120); 시스템 클럭(clk)에 따라 상기 제2레지스터(120)에서 출력된 제2판정 벡터(DVi-2)를 래치하여 제3판정 벡터(DVi-3)로 출력하는 제3레지스터(130); 시스템 클럭(clk)에 따라 상기 제1레지스터(110)에서 출력된 제1판정 벡터(DVi-1) 또는 제2레지스터(120)에서 출력된 제2판정 벡터(DVi-2)를 선택적으로 출력하는 판정벡터입력부(140); 입력된 선택 신호에 따라 상기 판정벡터입력부(140)에서 출력된 제1판정 벡터(DVi-1)와 제2판정 벡터(DVi-2) 각각에 대해 판정 비트를 선택하여 출력함과 더불어 상기 제2판정 벡터(DVi-2)에서 선택된 판정 비트를 트레이스백된 스테이트의 최상위비트(MSB)로 하여 출력하는 판정비트선택부(150) 및; 입력된 스테이트(Si)를 지연시켜 지연된 스테이트(Si-1)를 상기 판정비트선택부(150)의 첫번째 선택신호로 입력하는 한편,상기 첫번째 선택신호에 의해 상기 판정비트선택부(150)에서 출력된 판정비트를 최상위비트(MSB)로 하여 상기 스테이트(Si-1)를 1비트 시프트시켜 상기 판정비트선택부(150)의 두번째 선택신호를 출력함과 더불어 상기 두번째 선택신호를 하위비트쪽으로 1비트 시프트시킨 값을 트레이스백된 스테이트의 최상위비트(MSB)를 제외한 나머지 비트로 출력하는 선택신호생성부(160)를 포함하여 구성되어 있다.
상기 판정벡터입력부(140)는, 시스템 클럭(clk)이 하이인 구간에는 상기 제1레지스터(110)에서 출력된 제1판정 벡터(DVi-1)를 선택하여 출력하고, 시스템 클럭(clk)이 로우 인 구간에는 상기 제2레지스터(120)에서 출력된 제2판정 벡터(DVi-2)를 선택하여 출력하는 제1멀티플렉서(142)로 이루어져 있다.
그리고, 상기 판정비트선택부(150)는, 상기 선택신호생성부(160)에서 입력된 첫번째 선택신호에 따라 상기 제1판정 벡터(DVi-1)에 대해 판정비트를 선택하여 출력하고, 두번째 선택신호에 따라 상기 제2판정 벡터(DVi-2)에 대해 판정 비트를 선택하여 출력함과 더불어 상기 제2판정 벡터(DVi-2)에서 선택된 판정 비트를 트레이스백된 스테이프의 최상위비트(MSB)로 출력하는 제2멀티프렉서(152)로 이루어져 있다.
그리고, 상기 선택신호생성부(160)는, 시스템 클럭(clk)에 따라 스테이트(Si)를 래치하여 제1스테이트(Si-1)로 출력하는 상태 레지스터(162)와; 상기 판정비트선택부(150)에서 출력된 제1판정 벡터(DVi-1)의 판정 비트르 시스템 클럭(clk)에 따라 래치하여 출력하는 D플립플롭(164)및; 상기 상태 레지스터(162)에서 출력된 제1스테이트(Si-1) 또는 상기 D플립플롭(164)에서 출력된 판정 비트를 최상위비트(MSB)로 하여 상기 상태 레지스터(162)에서 출력된 스테이트(Si-1)를 i비트 스프트시킨 제2스테이트(Si-1)를 시스템 클럭(clk)에 따라 선택적으로 상기 판정비트선택부(150)의 선택신호로 입력함과 더불어 상기 제2스테이트(Si-2)를 하위비트쪽으로 1비트 스프트시킨 값을 트레이스백된 스테이트(Si-3)의 최상위비트(MSB)를 제외한 비트로 출력하는 제3멀티플렉서(166)를 포함하여 구성되어 있다.
상기 D플립플롭(164)은 시스템 클럭(clk)의 폴링 에지(falling edge)에서 에지 트리거(edge trigger)되도록 되어 있다.
그리고, 상기 제3멀티플렉서(166)는 시스템 클럭(clk)의 하이인 구간에 상기 상태 레지스터(162)에서 출력된 제1스테이트(Si-1)를 선택하여 출력하고, 시스템 클럭(clk)이 로우인 구간에 상기 D 플립플롭(164)에서 출력된 판정 비트를 최상위비트(MSB)로 하여 상기 상태 레지스터(162)에서 출력된 스테이트(Si-1)를 1비트 시프트시킨 제2스테이트(Si-2)를 선택하여 출력하도록 되어 있다.
상기와 같이 구성된 본 발명에 따른 트레이스백 진행 구조의 작용 및 효과를 제15도의 타이밍도를 참조하여 상세히 설명하면 다음과 같다.
첫번째 트레이스백 진행 셀(100-1)의 상태 레지스터(162)는 임의의 스테이트 및 가산비교선택부(ACSU)에서 출력된 판정 벡터(DVi)를 입력으로하여 트레이스백을 진행하고, 나머지 트레이스백 진행 셀(100-2∼100-49)은 전단의 트레이스백 진행 셀이 트레이스백한 결과로 얻어진 스테이트 및 전단의 트레이스백 진행 셀에서 지연되어 출력된 판정벡터를 입력으로하여 트레이스백을 진행한다.
그리고, 마지막 트레이스백 진행 셀(100-49)은 최종적으로 트레이스백한 스테이트의 최상위비트(MSB)를 디코딩한 결과로서 출력한다.
상기와 같은 각 트레이스백 진행 셀(100-1∼100-49)에 있어서, 제1레지스터(110)은 스스템 클럭(clk)에 따라 판정 벡터(DVi)를 래치(latch)하여 제1판정 벡터(DVi-1)로 제2레지스터(120) 및 제1멀티플렉서(142)로 출력하고, 상기 제2레지스터(12)는 상기 제1레지스터(110)에서 출력된 제1판정 벡터(DVi-1)를 시스템 클럭(clk)에 따라 래치하여 제2판정 벡터(DVi-2)로 제3레지스터(130)및 제1멀티플렉서(142)로 출력하며, 제3레지스터(130)는 시스템 클럭(clk)에 따라 상기 제2레지스터(120)에서 출력된 제2판정 벡터(DVi-2)를 래치하여 제3판정 벡터(DVi-3)로 다음단의 트레이스백 진행 셀로 출력한다.
그리고, 상기 제1멀티플렉서(42)는 시스템 클럭(clk)이 하이인 구간에는 상기 제1레지스터(110)에서 출력된 제1판정 벡터(DVi-1)를 선택하여 출력하고, 시스템 클럭(clk)이 로우인 구간에는 상기 제2레지스터(120)에서 출력된 제2판정 벡터(DVi-2)를 선택하여 출력한다.
즉, 1시스템 클럭당 2개의 판정 벡터를 제2멀티플렉서(152)로 출력하는 것이다.
상기 제2멀티플렉서(152)는 제3멀티플렉서(166)에서 출력된 스테이트를 선택신호로 입력받아 상기 판정벡터입력부(140)에서 출력된 제1판정 벡터(DVi-1)와 제2판정 벡터(DVi-2) 각각에 대해 판정 비트를 선택하여 D 플립플롭(164)로 출력함과 더불어 상기 제2판정 벡터(DVi-2)에서 선택된 판정 비트를 트레이스백된 스테이트의 최상위비트(MSB)로 하여 다음단의 트레이스백 진행 셀로 출력한다.
상기 D플립플롭(164)은 상기 제2멀티플렉서(152)에 출력된 제1판정 벡터(DVi-1)의 판정 비트를 시스템 클럭(clk)에 따라 래치하여 상기 제3멀티플렉서(166)로 입력한다.
즉, 상기 D플립플롭(164)은 시스템 클럭(clk)의 폴링에지(falling edge)에서 에지 트리거(edge trigger)됨에 따라 제1판정 벡터(DVi-1)의 판정 비트만이 상기 D플립플롭(164)에 의해 래치되어 출력되는 것이다.
한편, 상태 레지스터(162)는 시스템 클럭(clk)에 따라 전단의 트레이스백 진행 셀에서 입력된 스테이트(Si)를 래치하여 제1스테이트(Si-1)로 상기 제3멀티플렉서(166)로 출력한다.
상기 제3멀티플렉서(166)는 시스템 클럭(clk)이 하이인 구간에 상기 상태 레지스터(162)에서 출력된 제1스테이트(Si-1)를 선택하여 출력하고, 시스템 클럭(clk)이 로우인 구간에 상기 D플립플롭(164)에서 출력된 판정 비트를 최상위비트(MSB)로 하여 상기 상태 레지스터(162)에서 출력된 스테이트(Si-1)를 1비트 시프트시킨 제2스테이트(Si-2)를 선택하여 상기 제2멀티플렉서(152)의 선택신호로 입력한다.
또한, 상기 제3멀티플레서(166)는 상기 제2스테이트(Si-2)를 하위비트쪽으로 1비트 시프트시킨 값을 트레이스백된 스테이트(Si-3)의 최상위비트(MSB)를 제외한 비트로 출력한다.
따라서, 다음단의 트레이스백 진행셀로 입력되는 스테이트의 최상위비트(MSB)는 상기 제2멀티플렉서(152)에서 출력된 제2판정 벡터(DVi-2)의 판정 비트이며, 다음단의 트레이스백 진행셀로 입력되는 스테이트의 최상위비트(MSB)를 제외한 나머지 비트는 상기 제3멀티플렉서(166)에서 출력된 제2스테이트(Si-2)를 하위비트쪽으로 1비트 시프트 시킨 값이 되는 것이다.
상기와 같은 본 발명은 트레이스백 진행 셀이 1개의 시스템 클럭당 2스텝의 트레이스백을 수행하도록 하는 것으로서, 클럭이 하이인 구간인 동안 1스텝만큼 트레이스백을 수행하고, 클럭이로우인 구간에 그 결과를 가지고 1스텝만큼 트레이스백을 하여 전체적으로 1클럭에 2스텝만큼 트탸을 수행함에 따라, l=1, n=1, L=96, 64스테이트인 경우에 본 발명은 트레이스백 진행 셀이 49개만 필요하게 된다.
상기와 같은 본 발명의 하드웨어의 양은 다음과 같다.
64비트 레지스터 : 49×3 + 2
64:1 멀티플렉서 : 49
6비트 레지스터 : 49
2:1 멀티플렉서 : 49×(64+6)
1비트 D플립플롭 : 49
즉, 25%의 메모리 소자가 절감되며, 50%의 64:1 멀티플렉서가 절감되는 것이다.
이상에서 살펴본 발명에 따르면, 트레이스백 진행 셀을 1개의 시스템 클럭당 2스텝의 트레이스백을 수행하도록 구현함으로써, 트레이스백 진행 구조간 간단할 뿐만 아니라 면적을 적게 차지하여 초대규모 집적회로(VLSI)로 구현하기 용이한 것이다.
상기와 같은 본 발명은, 디코딩 깊이 L=96 인 경우를 예로 들어 설명한 것이며, 이에 한정되지 않는 것이다.

Claims (6)

  1. 판정 벡터 및 스테이트를 각각 입력받아 트레이스백을 수행하여 트레이스백된 스테이트를 다음단의 트레이스백 진행 셀로 입력함과 더불어 상기 판정 벡터를 지연시켜 지연된 판정 벡터를 다음단의 트레이스백 진행셀로 입력하는 다수개의 트레이스백 진행 셀이 파이프 라인 구조로 연결된 비터비 복호기의 트레이스백 진행 구조에 있어서, 상기 각 트레이스백 진행 셀이, 시스템 클럭(clk)에 따라 판정 벡터(DVi)를 래치하여 제1판정 벡터(DVi-1)로 출력하는 제1레지스터(110)와; 시스템 클럭(clk)에 따라 상기 제1레지스터(110)에서 출력된 제1판정 벡터(DVi-1)를 래치하여 제2판정 벡터(DVi-2)로 출력하는 제2레지스터(120); 시스템 클럭(clk)에 따라 상기 제2레지스터(120)에서 출력된 제2판정 벡터(DVi-2)를 래치하여 제3판정 벡터(DVi-3)로 출력하는 제3레지스터(130); 시스템 클럭(clk)에 따라 상기 제1레지스터(110)에서 출력된 제1판정 벡터(DVi-1)또는 제2레지스터(120)에서 출력된 제2판정 벡터(DVi-2)를 선택적으로 출력하는 판정벡터입력부(140); 입력된 선택신호에 따라 상기 판정벡터입력부(140)에서 출력된 제1판정 벡터(DVi-1)와 제2판정 벡터(DVi-2) 각각에 대해 판정 비트를 선택하여 출력함과 더불어 상기 제2판정 벡터(DVi-2)에서 선택된 판정 비트를 트레이스백된 스테이트의 최상위비트로 하여 출력하는 판정비트선택부(150) 및; 입력된 스테이트(Si)를 지연시킨 스테이트(Si-1)를 상기 판정비트선택부(150)의 첫번째 선택신호로 입력하는 한편, 상기 첫번째 선택신호에 의해 상기 판정비트선택부(150)에서 출력된 판정 비트를 최상위비트로 하여 상기 스테이트(Si-1)를 1비트 시프트시켜 상기 판정비트선택부(150)의 두번째 선택신호를 출력함과 더불어 상기 두번째 선택신호를 하위비트쪽으로 1비트 시프트시킨 값을 트레이스백된 스테이트의 최상위비트를 제외한 나머지 비트로 출력하는 선택신호생성부(160)를 포함하여 구성된 것을 특징으로 하는 비터비 보호기의 트레이스백 진행 구조.
  2. 제1항에 있어서, 상기 판정벡터입력부(140)는, 시스템 클럭(clk)이 하이인 구간에는 상기 제1레지스터(110)에서 출력된 제1판정 벡터(DVi-1)를 선택하여 출력하고, 시스템 클럭(clk)이 로우인 구간에는 상기 제2레지스터(120)에서 출력된 제2판정 벡터(DVi-2)를 선택하여 출력하는 제1멀티플렉서(142)로 이루어진 것을 특징으로 하는 비터비 복호기의 트레이스백 진행 구조.
  3. 제1항에 있어서, 상기 판정비트선택부(150)는, 상기 선택신호생성부(160)에서 입력된 첫번째 선택신호에 따라 상기 제1판정 벡터(DVi-1)에 대해 판정비트를 선택하여 출력하고, 두번째 선택신호에 따라 상기 제2판정 벡터(DVi-2)에 대해 판정 비트를 선택하여 출력함과 더불어 상기 제2판정 벡터(DVi-2)에서 선택된 판정 비트를 트레이스백된 스테이트의 최상위비트로 출력하는 제2멀티플렉서(152)로 이루어진 것을 특징으로 하는 비터비 복호기의 트레이스백 진행 구조.
  4. 제1항에 있어서, 상기 선택신호생성부(160)는, 시스템 클럭(clk)에 따라 스테이트(Si)를 래치하여 제1스테이트(Si-1)로 출력하는 상태 레지스터(162)와; 상기 판정비트선택부(150)에서 출력된 제1판정 벡터(DVi-1)의 판정 비트를 시스템 클럭(clk)에 따라 래치하여 출력하는 D플립플롭(164)및; 상기 상태 레지스터(162)에서 출력된 제1스테이트(Si-1) 또는 상기 D플립플롭(164)에서 출력된 판정 비트를 최상위비트(MSB)로 하여 상기 상태 레지스터(162)에서 출력된 스테이트(Si-1)를 1비트 시프트시킨 제2스테이트(Si-2)를 시스템 클럭(clk)에 따라 선택적으로 상기 판정비트선택부(150)의 선택신호로 입력함과 더불어 상기 제2스테이트(Si-2)를 하위비트쪽으로 1비트 시프트시킨 값을 트레이스백된 스테이트(Si-3)의 최상위비트(MSB)를 제외한 비트로 출력하는 제3멀티플렉서(166)를 포함하여 구성된 것을 특징으로 하는 비터비 복호기의 트레이스백 진행 구조.
  5. 제4항에 있어서, 상기 D플립플롭(164)은, 시스템 클럭(clk)의 폴링 에지(falling edge)에서 에지 트리거(edge trigger)되도록 된 것을 특징으로 하는 비터비 복호기의 트레이스백 진행 구조.
  6. 제4항에 있어서, 상기 상기 제3멀티플렉서(166)는, 시스템 클럭(clk)이 하이인 구간에 상기 상태 레지스터(162)에서 출력된 제1스테이트(Si-1)를 선택하여 출력하고, 시스템 클럭(clk)이 로우인 구간에 상기 D플립플롭(164)에서 출력된 판정 비트를 최상위비트(MSB)로 하여 상기 레지스터(162)에서 출력된 스테이트(Si-1)를 1비트 시프트시킨 제2스테이트(Si-2)를 선택하여 출력하도록 된 것을 특징으로 하는 비터비 복호기의 트레이스백 진행 구조.
KR1019960016002A 1996-05-14 1996-05-14 비터비 디코더의 트레이스백 진행 구조 KR100192794B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960016002A KR100192794B1 (ko) 1996-05-14 1996-05-14 비터비 디코더의 트레이스백 진행 구조

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960016002A KR100192794B1 (ko) 1996-05-14 1996-05-14 비터비 디코더의 트레이스백 진행 구조

Publications (2)

Publication Number Publication Date
KR970078048A KR970078048A (ko) 1997-12-12
KR100192794B1 true KR100192794B1 (ko) 1999-06-15

Family

ID=19458643

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960016002A KR100192794B1 (ko) 1996-05-14 1996-05-14 비터비 디코더의 트레이스백 진행 구조

Country Status (1)

Country Link
KR (1) KR100192794B1 (ko)

Also Published As

Publication number Publication date
KR970078048A (ko) 1997-12-12

Similar Documents

Publication Publication Date Title
KR100195745B1 (ko) 비터비 복호화기의 가산 비교 선택 장치
KR100212836B1 (ko) 비터비 디코더의 트레이스백 진행 구조
US5970104A (en) Method and apparatus for generating branch metrics and branch indices for convolutional code Viterbi decoders
JP5618247B2 (ja) 複数ステップ・トレリスを使用するソフト出力ビタビ検出の方法および装置
US7581160B2 (en) ACS circuit and Viterbi decoder with the circuit
KR100195741B1 (ko) 가변 레이트 비터비 복호화기
KR100779782B1 (ko) 비터비 디코더 용 고속 acs 유닛
US8375281B2 (en) Method and apparatus for storing survivor paths in a viterbi detector using systematic pointer exchange
US5796756A (en) Survivor memory device in viterbi decoder using trace deletion method
JP2000209106A (ja) 高速ビタビ復号器の最小量のメモリによる実現
WO2004077681A1 (en) Viterbi decoder operating in units of a plurality of transitions
US7840885B2 (en) Distributed ring control circuits for Viterbi traceback
US6697442B1 (en) Viterbi decoding apparatus capable of shortening a decoding process time duration
KR100192794B1 (ko) 비터비 디코더의 트레이스백 진행 구조
US8032818B2 (en) Method and apparatus for storing survivor paths in a Viterbi detector using input-dependent pointer exchange
US7225393B2 (en) Viterbi decoder and Viterbi decoding method
JPH0951278A (ja) ビタビ復号器
JP2002534902A (ja) 復号装置におけるエム・エル状態選択装置及び方法
JP3753822B2 (ja) ビタビ復号方法および装置
KR0169678B1 (ko) 비터비 복호기
Boutillon et al. Trace back techniques adapted to the surviving memory management in the m algorithm
Manzoor et al. VLSI implementation of an efficient pre-trace back approach for Viterbi algorithm
JP3530451B2 (ja) ビタビ復号装置
KR0169777B1 (ko) 고속 비터비 복호기의 구현을 위한 정규화 방법 및 장치
KR0169679B1 (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: 20110103

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee