JPH10200421A - ビタビデコーダにおける加算/比較/選択処理器 - Google Patents
ビタビデコーダにおける加算/比較/選択処理器Info
- Publication number
- JPH10200421A JPH10200421A JP9226267A JP22626797A JPH10200421A JP H10200421 A JPH10200421 A JP H10200421A JP 9226267 A JP9226267 A JP 9226267A JP 22626797 A JP22626797 A JP 22626797A JP H10200421 A JPH10200421 A JP H10200421A
- Authority
- JP
- Japan
- Prior art keywords
- meters
- meter
- decision
- state
- path
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 101
- 238000007476 Maximum Likelihood Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000000034 method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000004083 survival effect Effects 0.000 description 6
- 101000612837 Mus musculus Tetraspanin-7 Proteins 0.000 description 4
- 101100136063 Mycobacterium tuberculosis (strain ATCC 25618 / H37Rv) PE11 gene Proteins 0.000 description 2
- 101100136064 Mycobacterium tuberculosis (strain ATCC 25618 / H37Rv) PE13 gene Proteins 0.000 description 2
- 101150032799 PE15 gene Proteins 0.000 description 2
- 101150087801 PE23 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 101100136062 Mycobacterium tuberculosis (strain ATCC 25618 / H37Rv) PE10 gene Proteins 0.000 description 1
- 101100029145 Mycobacterium tuberculosis (strain ATCC 25618 / H37Rv) PE25 gene Proteins 0.000 description 1
- 101100136059 Mycobacterium tuberculosis (strain ATCC 25618 / H37Rv) PE3 gene Proteins 0.000 description 1
- -1 PE20 Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012917 library technology Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 101150043924 metXA gene Proteins 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
(57)【要約】
【課題】 ASICの設計時にハードウエアの面積効率
を向上させることができるビタビデコーダにおける加算
/比較/選択処理器を提供する。 【解決手段】 グルーピング部410により、二つの経
路メートルと二つのブランチメートルを相互比較して比
較結果に応じる二つの判定ビット及び状態メートルを出
力するプロセシング要素430を同一な状態メートル及
びブランチメートルを用いるプロセシング要素にグルー
プ化し、多重化部420によりグルーピング結果に応じ
て供給される経路メートルをクロック信号に応じて二つ
の経路メートルに多重化してプロセシング要素430に
出力し、第1逆多重化部440によりプロセシング要素
420から出力される二つの判定ビットを逆多重化する
とともに、第2逆多重化部450によりプロセシング要
素430から出力される二つの状態メートルを逆多重化
する。
を向上させることができるビタビデコーダにおける加算
/比較/選択処理器を提供する。 【解決手段】 グルーピング部410により、二つの経
路メートルと二つのブランチメートルを相互比較して比
較結果に応じる二つの判定ビット及び状態メートルを出
力するプロセシング要素430を同一な状態メートル及
びブランチメートルを用いるプロセシング要素にグルー
プ化し、多重化部420によりグルーピング結果に応じ
て供給される経路メートルをクロック信号に応じて二つ
の経路メートルに多重化してプロセシング要素430に
出力し、第1逆多重化部440によりプロセシング要素
420から出力される二つの判定ビットを逆多重化する
とともに、第2逆多重化部450によりプロセシング要
素430から出力される二つの状態メートルを逆多重化
する。
Description
【0001】
【発明の属する技術分野】本発明はビタビデコーダにお
ける加算/比較/選択処理器に関し、特にN個の状態に
対するN個のプロセシング要素を同一な状態メートル(s
tate metric)及び同一なブランチメートル(branch metr
ic)を用いる所定単位のプロセシング要素にグループ化
させて、一つのプロセシング要素で複数個の状態に対す
る加算/比較/選択処理を行うように具現化した加算/
比較/選択処理器に関するものである。
ける加算/比較/選択処理器に関し、特にN個の状態に
対するN個のプロセシング要素を同一な状態メートル(s
tate metric)及び同一なブランチメートル(branch metr
ic)を用いる所定単位のプロセシング要素にグループ化
させて、一つのプロセシング要素で複数個の状態に対す
る加算/比較/選択処理を行うように具現化した加算/
比較/選択処理器に関するものである。
【0002】
【従来の技術】一般に、重畳符号の最尤復号(maximum l
ikelihood decoding)のための高実用かつ高効率の方法
としては、ビタビ(viterbi)復号化アルゴリズムがもっ
とも広く用いられている。ビタビ復号化アルゴリズムで
はトレリス図を用いるが、任意の状態で遭遇する相異な
る二つの経路に対して経路の長さを比較し、そのうち短
い経路、すなわちエラー発生確率の低い経路を選択して
生存経路(survivor path)として設定する。このよう
なビタビ復号化アルゴリズムを用いるビタビデコーダは
非常に優れたランダムエラー訂正能力を有するので、例
えば衛星通信システムにおけるエラーの訂正に用いられ
ている。
ikelihood decoding)のための高実用かつ高効率の方法
としては、ビタビ(viterbi)復号化アルゴリズムがもっ
とも広く用いられている。ビタビ復号化アルゴリズムで
はトレリス図を用いるが、任意の状態で遭遇する相異な
る二つの経路に対して経路の長さを比較し、そのうち短
い経路、すなわちエラー発生確率の低い経路を選択して
生存経路(survivor path)として設定する。このよう
なビタビ復号化アルゴリズムを用いるビタビデコーダは
非常に優れたランダムエラー訂正能力を有するので、例
えば衛星通信システムにおけるエラーの訂正に用いられ
ている。
【0003】前述したビタビ復号化アルゴリズムを図1
に基づき更に詳細に説明する。図1の(a)はノード
数、すなわち状態数が2であるトレリス図を示したもの
であり、垂直方向は状態(Si、ここでiは1,2)、水平
方向は時間(t/T:ここで1/Tは伝送率のことを示
す)、Si,kは時間kにおけるi番目の状態をそれぞれ示
す。有限状態機械は図1の(a)に示されたトレリス図
を通して任意の経路を選択し、観察される状態の遷移に
応じて時間間隔(k,k+1)に対するブランチメートル
(λ)を計算する。すなわち、トレリス図によると、時間
kにおける状況(S1,k,S2,k)は時間間隔(k,k+1)に
対する各ブランチにより時間(k+1)における状況(S
1,k+1,S2,k+1)と連結される。ビタビ復号化の時、受信
信号に対応するブランチにおけるコード間の距離、すな
わちブランチメートルを計算するが、前記ブランチメー
トルは硬判定復号(hard decision decoding)の場合にハ
ミング距離(hamming distance)となり、軟判定復号(sof
t decision decoding)の場合にユークリッド距離(eucli
dean distance)となる。
に基づき更に詳細に説明する。図1の(a)はノード
数、すなわち状態数が2であるトレリス図を示したもの
であり、垂直方向は状態(Si、ここでiは1,2)、水平
方向は時間(t/T:ここで1/Tは伝送率のことを示
す)、Si,kは時間kにおけるi番目の状態をそれぞれ示
す。有限状態機械は図1の(a)に示されたトレリス図
を通して任意の経路を選択し、観察される状態の遷移に
応じて時間間隔(k,k+1)に対するブランチメートル
(λ)を計算する。すなわち、トレリス図によると、時間
kにおける状況(S1,k,S2,k)は時間間隔(k,k+1)に
対する各ブランチにより時間(k+1)における状況(S
1,k+1,S2,k+1)と連結される。ビタビ復号化の時、受信
信号に対応するブランチにおけるコード間の距離、すな
わちブランチメートルを計算するが、前記ブランチメー
トルは硬判定復号(hard decision decoding)の場合にハ
ミング距離(hamming distance)となり、軟判定復号(sof
t decision decoding)の場合にユークリッド距離(eucli
dean distance)となる。
【0004】このように計算されたブランチメートルを
用いて、時間(k+1)における各ノードに対する新たな
経路メートル(path metric)が、時間kにおける経路メ
ートル(γ)と時間間隔(k,k+1)に対するブランチメー
トル(λ)により計算されるが、これを図1の(b)に基
づき説明する。
用いて、時間(k+1)における各ノードに対する新たな
経路メートル(path metric)が、時間kにおける経路メ
ートル(γ)と時間間隔(k,k+1)に対するブランチメー
トル(λ)により計算されるが、これを図1の(b)に基
づき説明する。
【0005】図1の(b)において、時間kのノードS
1,k,S2,kがブランチメートルを累積した値である経路
メートルγ1,k,γ2,kをそれぞれ有し、時間間隔(k,k+
1)に対するブランチメートルをλ11,k,λ12,k,λ21,k,
λ22,kとする場合、時間(k+1)におけるノード
S1,k+1,S2,k+1の新たな経路メートルγ1,k+1,γ2,k+1
は下記の式1により求められる。
1,k,S2,kがブランチメートルを累積した値である経路
メートルγ1,k,γ2,kをそれぞれ有し、時間間隔(k,k+
1)に対するブランチメートルをλ11,k,λ12,k,λ21,k,
λ22,kとする場合、時間(k+1)におけるノード
S1,k+1,S2,k+1の新たな経路メートルγ1,k+1,γ2,k+1
は下記の式1により求められる。
【0006】[ 式1 ] γ1,k+1 = max [λ11,k+γ1,k, λ12,k+γ2,k] γ2,k+1 = max [λ21,k+γ1,k, λ22,k+γ2,k] すなわち、時間(k+1)にあるノードに来れる経路の種
類は時間kに存在する状態の変化に応じて複数個が存在
するので、確率情報のブランチメートルを用いて経路メ
ートルを探す。このような経路メートルを計算する過程
を各時間kに対して循環的に行い最終的な生存経路を探
す。
類は時間kに存在する状態の変化に応じて複数個が存在
するので、確率情報のブランチメートルを用いて経路メ
ートルを探す。このような経路メートルを計算する過程
を各時間kに対して循環的に行い最終的な生存経路を探
す。
【0007】一方、生存経路をトレースバックすると、
図1の(b)に示されたように、任意の時点で経路が非
常に高い確率で合流するが、前記非常に高い確率で合流
する時間段階の数を生存深さといい、前記生存深さによ
りビタビ復号化の待ち時間が左右される。すなわち、各
ノード毎に前記式1により経路メートル(γ)を更新する
と、生存深さの以前に当たる各経路の状態は同一にな
る。従って、このようなトレースバックにより得られる
生存深さの以前の状態変化をビタビ復号化データとして
出力する。
図1の(b)に示されたように、任意の時点で経路が非
常に高い確率で合流するが、前記非常に高い確率で合流
する時間段階の数を生存深さといい、前記生存深さによ
りビタビ復号化の待ち時間が左右される。すなわち、各
ノード毎に前記式1により経路メートル(γ)を更新する
と、生存深さの以前に当たる各経路の状態は同一にな
る。従って、このようなトレースバックにより得られる
生存深さの以前の状態変化をビタビ復号化データとして
出力する。
【0008】図2は一般的なビタビデコーダを示すブロ
ック図であり、ブランチメートル生成部100と、加算/
比較/選択処理部200と、生存メモリ部300とから構成さ
れる。
ック図であり、ブランチメートル生成部100と、加算/
比較/選択処理部200と、生存メモリ部300とから構成さ
れる。
【0009】図2において、ブランチメートル生成部10
0は受信される重畳符号化されたデータを入力して受信
信号に対応する各ブランチにおけるコード間の距離であ
るブランチメートル(λij,k )を計算して出力する。こ
の際、ブランチメートル生成部100の複雑度は受信され
る符号語の長さと直接的な関係があり、符号語を構成す
るビット数が多いほど回路が複雑になる。例えば、符号
語が2ビットから構成されると、受信された符号語2ビ
ットを比較するために必要な比較符号語は22個、すな
わち四つである。一方、符号語が3ビットから構成され
ると、一つの受信された符号語を比較してブランチメー
トルを計算するためには23個、すなわち八つの比較符
号語が必要になる。かつ、符号語が長くなると、符号語
が短い場合に比べて計算されたブランチメートル値が大
きくなる。結局、比較符号語の数が増加しブランチメー
トル値が大きくなった分だけ該ブランチメートルを記憶
するためのメモリの記憶容量が大きくなるため、次段の
加算/比較/選択処理部200が複雑になる。
0は受信される重畳符号化されたデータを入力して受信
信号に対応する各ブランチにおけるコード間の距離であ
るブランチメートル(λij,k )を計算して出力する。こ
の際、ブランチメートル生成部100の複雑度は受信され
る符号語の長さと直接的な関係があり、符号語を構成す
るビット数が多いほど回路が複雑になる。例えば、符号
語が2ビットから構成されると、受信された符号語2ビ
ットを比較するために必要な比較符号語は22個、すな
わち四つである。一方、符号語が3ビットから構成され
ると、一つの受信された符号語を比較してブランチメー
トルを計算するためには23個、すなわち八つの比較符
号語が必要になる。かつ、符号語が長くなると、符号語
が短い場合に比べて計算されたブランチメートル値が大
きくなる。結局、比較符号語の数が増加しブランチメー
トル値が大きくなった分だけ該ブランチメートルを記憶
するためのメモリの記憶容量が大きくなるため、次段の
加算/比較/選択処理部200が複雑になる。
【0010】加算/比較/選択処理部200はブランチメ
ートル生成部100からブランチメートルを入力して直前
の経路メートルに加算して複数個の候補経路を設定す
る。次に、複数個の候補経路を比較して最短経路メート
ルを有する経路を選択した後、前記選択された新たな経
路メートルと比較結果である判定ビットを出力する。加
算/比較/選択処理部200では、各復号サイクル毎にブ
ランチメートル生成部100から提供されたブランチメー
トルを用いて経路メートルを更新した後、Nビットの判
定ビットを次段の生存メモリ部300に出力する。全部で
N個の状態からなるトレリス図を仮定する場合、各復号
サイクル毎にNビットを得るようになる。
ートル生成部100からブランチメートルを入力して直前
の経路メートルに加算して複数個の候補経路を設定す
る。次に、複数個の候補経路を比較して最短経路メート
ルを有する経路を選択した後、前記選択された新たな経
路メートルと比較結果である判定ビットを出力する。加
算/比較/選択処理部200では、各復号サイクル毎にブ
ランチメートル生成部100から提供されたブランチメー
トルを用いて経路メートルを更新した後、Nビットの判
定ビットを次段の生存メモリ部300に出力する。全部で
N個の状態からなるトレリス図を仮定する場合、各復号
サイクル毎にNビットを得るようになる。
【0011】生存メモリ部300は加算/比較/選択処理
部200から提供された判定ビットを格納し、前記格納さ
れた判定ビットを用いて元の情報シーケンスを復元して
ビタビ復号化されたデータとして出力する。
部200から提供された判定ビットを格納し、前記格納さ
れた判定ビットを用いて元の情報シーケンスを復元して
ビタビ復号化されたデータとして出力する。
【0012】図3は図2に示された加算/比較/選択処
理部200を構成するプロセシング要素310を示したブロッ
ク図であり、プロセシング要素310は第1処理部320と第
2処理部340とから構成される。ここで、第1処理部320
は第1加算器322と、第2加算器324と、第1比較器326
と、第1選択器328とから構成され、第2処理部340は第
3加算器342と、第4加算器344と、第2比較器346と、
第2選択器348とから構成される。
理部200を構成するプロセシング要素310を示したブロッ
ク図であり、プロセシング要素310は第1処理部320と第
2処理部340とから構成される。ここで、第1処理部320
は第1加算器322と、第2加算器324と、第1比較器326
と、第1選択器328とから構成され、第2処理部340は第
3加算器342と、第4加算器344と、第2比較器346と、
第2選択器348とから構成される。
【0013】図3において、γX ,γY はプロセシング
要素310に入力される経路メートルであり、ここでは6
ビットから構成されるものを例に挙げる。このうち、γ
X は第1処理部320の第1加算器322と第2処理部340の
第3加算器342に入力され、γYは第1処理部320の第2
加算器324と第2処理部340の第4加算器344に入力され
る。かつ、λX ,λY はブランチメートル生成部100(図
2参照)から提供されるブランチメートルであり、ここ
では4ビットから構成されるものを例に挙げる。このう
ち、λX は第1処理部320の第1加算器322と第2処理部
340の第4加算器344に入力され、λY は第1処理部320
の第2加算器324と第2処理部340の第3加算器342に入
力される。一方、第1処理部320の第1比較器326と第2
処理部340の第2比較器346から出力された第1判定ビッ
トと第2判定ビットは次段の生存メモリ部300(図2参
照)に供給される。
要素310に入力される経路メートルであり、ここでは6
ビットから構成されるものを例に挙げる。このうち、γ
X は第1処理部320の第1加算器322と第2処理部340の
第3加算器342に入力され、γYは第1処理部320の第2
加算器324と第2処理部340の第4加算器344に入力され
る。かつ、λX ,λY はブランチメートル生成部100(図
2参照)から提供されるブランチメートルであり、ここ
では4ビットから構成されるものを例に挙げる。このう
ち、λX は第1処理部320の第1加算器322と第2処理部
340の第4加算器344に入力され、λY は第1処理部320
の第2加算器324と第2処理部340の第3加算器342に入
力される。一方、第1処理部320の第1比較器326と第2
処理部340の第2比較器346から出力された第1判定ビッ
トと第2判定ビットは次段の生存メモリ部300(図2参
照)に供給される。
【0014】次いで、図3に基づき加算/比較/選択処
理部200を構成する一つのプロセシング要素310に対する
動作を説明すると次の通りである。
理部200を構成する一つのプロセシング要素310に対する
動作を説明すると次の通りである。
【0015】まず、第1処理部320に対して説明する
と、第1加算器322では経路メートルγX とブランチメ
ートルλX を加算して、その加算値をそれぞれ第1比較
器326と第1選択器328に出力し、第2加算器324では経
路メートルγY とブランチメートルλY を加算して、そ
の加算値をそれぞれ第1比較器326と第1選択器328に出
力する。
と、第1加算器322では経路メートルγX とブランチメ
ートルλX を加算して、その加算値をそれぞれ第1比較
器326と第1選択器328に出力し、第2加算器324では経
路メートルγY とブランチメートルλY を加算して、そ
の加算値をそれぞれ第1比較器326と第1選択器328に出
力する。
【0016】第1比較器326では、第1加算器322からの
加算値と第2加算器324からの加算値とを比較して、前
記比較結果の第1判定ビットを生存メモリ部 300(図2
参照)に出力する一方、第1選択器328の選択信号として
供給する。例えば、第1比較器326における比較結果と
して、第1加算器322からの加算値が第2加算器324から
の加算値より大きい場合には第1判定ビットが“0”
で、その逆の場合には“1”で出力される。
加算値と第2加算器324からの加算値とを比較して、前
記比較結果の第1判定ビットを生存メモリ部 300(図2
参照)に出力する一方、第1選択器328の選択信号として
供給する。例えば、第1比較器326における比較結果と
して、第1加算器322からの加算値が第2加算器324から
の加算値より大きい場合には第1判定ビットが“0”
で、その逆の場合には“1”で出力される。
【0017】第1選択器328では、選択信号に応じて第
1加算器322からの加算値又は第2加算器324からの加算
値を選択的に出力する。すなわち、第1選択器328は第
1判定ビットが“0”の場合に第2加算器324からの加
算値を選択して状態メートルとして出力し、第1判定ビ
ットが“1”の場合には第1加算器322からの加算値を
選択して状態メートルとして出力する。
1加算器322からの加算値又は第2加算器324からの加算
値を選択的に出力する。すなわち、第1選択器328は第
1判定ビットが“0”の場合に第2加算器324からの加
算値を選択して状態メートルとして出力し、第1判定ビ
ットが“1”の場合には第1加算器322からの加算値を
選択して状態メートルとして出力する。
【0018】一方、第2処理部340について説明する
と、第3加算器342では経路メートルγX とブランチメ
ートルλY を加算して、前記加算値をそれぞれ第2比較
器346と第2選択器348に出力し、第4加算器344では経
路メートルγY とブランチメートルλX を加算して、前
記加算値をそれそれ第2比較器346と第2選択器348に出
力する。
と、第3加算器342では経路メートルγX とブランチメ
ートルλY を加算して、前記加算値をそれぞれ第2比較
器346と第2選択器348に出力し、第4加算器344では経
路メートルγY とブランチメートルλX を加算して、前
記加算値をそれそれ第2比較器346と第2選択器348に出
力する。
【0019】第2比較器346では、第3加算器342からの
加算値と第4加算器344からの加算値とを比較して、前
記比較結果の第2判定ビットを生存メモリ部 300(図2
参照)に出力する一方、第2選択器348の選択信号として
供給する。例えば、第2比較器346における比較結果、
第3加算器342からの加算値が第4加算器344からの加算
値より大きい場合には第2判定ビットが“0”で、その
逆の場合には“1”で出力される。
加算値と第4加算器344からの加算値とを比較して、前
記比較結果の第2判定ビットを生存メモリ部 300(図2
参照)に出力する一方、第2選択器348の選択信号として
供給する。例えば、第2比較器346における比較結果、
第3加算器342からの加算値が第4加算器344からの加算
値より大きい場合には第2判定ビットが“0”で、その
逆の場合には“1”で出力される。
【0020】第2選択器348では、選択信号に応じて第
3加算器342の加算値又は第4加算器344の加算値を選択
的に出力する。すなわち、第2選択器348は第2判定ビ
ットが“0”の場合に第4加算器344からの加算値を選
択して状態メートルとして出力し、第2判定ビットが
“1”の場合には第3加算器 342からの加算値を選択し
て状態メートルとして出力する。
3加算器342の加算値又は第4加算器344の加算値を選択
的に出力する。すなわち、第2選択器348は第2判定ビ
ットが“0”の場合に第4加算器344からの加算値を選
択して状態メートルとして出力し、第2判定ビットが
“1”の場合には第3加算器 342からの加算値を選択し
て状態メートルとして出力する。
【0021】図3に示したように、同一な状態メートル
を用いる二つのプロセシング要素はグループ化して一つ
のプロセシング要素に束ねることができる。すなわち、
一つのプロセシング要素で二つの状態に対する加算/比
較/選択処理が行われるので、64個の状態モードの場
合には32個のプロセシング要素(PE0〜PE31)で
加算/比較/選択処理器を具現化することができる。
を用いる二つのプロセシング要素はグループ化して一つ
のプロセシング要素に束ねることができる。すなわち、
一つのプロセシング要素で二つの状態に対する加算/比
較/選択処理が行われるので、64個の状態モードの場
合には32個のプロセシング要素(PE0〜PE31)で
加算/比較/選択処理器を具現化することができる。
【0022】前述したような加算/比較/選択処理器
は、一つのプロセシング要素で一つの状態を処理するよ
うに具現化されたものの更に改善する必要がある。すな
わち、最近、特定用途集積回路(ASIC)又は専用集積
回路の製造技術が急速に発展するにつれて、一つのプロ
セシング要素で少なくとも二つ以上の状態が処理できる
ハードウエアを具現化することによりASIC設計時の
面積効率を更に向上させる必要性が高まりつつある。
は、一つのプロセシング要素で一つの状態を処理するよ
うに具現化されたものの更に改善する必要がある。すな
わち、最近、特定用途集積回路(ASIC)又は専用集積
回路の製造技術が急速に発展するにつれて、一つのプロ
セシング要素で少なくとも二つ以上の状態が処理できる
ハードウエアを具現化することによりASIC設計時の
面積効率を更に向上させる必要性が高まりつつある。
【0023】
【発明が解決しようとする課題】本発明は前記の問題点
を解決するために案出されたものであり、本発明の目的
は、一つのプロセシング要素で複数個の状態に対する加
算/比較/選択処理が行われるように具現化することに
より、ASIC設計時の面積効率を向上することができ
る加算/比較/選択処理器を提供することにある。
を解決するために案出されたものであり、本発明の目的
は、一つのプロセシング要素で複数個の状態に対する加
算/比較/選択処理が行われるように具現化することに
より、ASIC設計時の面積効率を向上することができ
る加算/比較/選択処理器を提供することにある。
【0024】
【課題を解決するための手段】前記目的を達成するため
に本発明による加算/比較/選択処理器は、重畳符号に
対する最尤復号を行うためのビタビデコーダにおいて、
二つの経路メートルと二つのブランチメートルを入力し
て、それぞれ加算した値を相互比較し、前記比較結果に
応じる二つの判定ビットと二つの状態メートルを出力す
るN個のプロセシング要素と、N個の状態に対する前記
N個のプロセシング要素を同一な状態メートルと同一な
ブランチメートルを用いるK単位のプロセシング要素に
グループ化させるためのグルーピング部と、前記グルー
ピング結果に応じて供給されるL(ここで、Lは2K)個
の経路メートルを所定のクロック信号に応じて二つの経
路メートルに多重化して対応するプロセシング要素に出
力するための多重化部と、前記対応するプロセシング要
素から出力される二つの判定ビットを入力して、前記ク
ロック信号に応じてL個の判定ビットに逆多重化して出
力する第1逆多重化部と、前記対応するプロセシング要
素から出力される二つの状態メートルを入力して、前記
クロック信号に応じてL個の状態メートルに逆多重化し
て出力する第2逆多重化部とを含むことを特徴とする。
に本発明による加算/比較/選択処理器は、重畳符号に
対する最尤復号を行うためのビタビデコーダにおいて、
二つの経路メートルと二つのブランチメートルを入力し
て、それぞれ加算した値を相互比較し、前記比較結果に
応じる二つの判定ビットと二つの状態メートルを出力す
るN個のプロセシング要素と、N個の状態に対する前記
N個のプロセシング要素を同一な状態メートルと同一な
ブランチメートルを用いるK単位のプロセシング要素に
グループ化させるためのグルーピング部と、前記グルー
ピング結果に応じて供給されるL(ここで、Lは2K)個
の経路メートルを所定のクロック信号に応じて二つの経
路メートルに多重化して対応するプロセシング要素に出
力するための多重化部と、前記対応するプロセシング要
素から出力される二つの判定ビットを入力して、前記ク
ロック信号に応じてL個の判定ビットに逆多重化して出
力する第1逆多重化部と、前記対応するプロセシング要
素から出力される二つの状態メートルを入力して、前記
クロック信号に応じてL個の状態メートルに逆多重化し
て出力する第2逆多重化部とを含むことを特徴とする。
【0025】
【発明の実施の形態】以下、本発明の一実施形態を添付
した図面に基づき更に詳細に説明する。
した図面に基づき更に詳細に説明する。
【0026】図4はビタビデコーダにおいて本発明の一
実施形態による加算/比較/選択処理器を示したブロッ
ク図であり、加算/比較/選択処理器は複数個のプロセ
シング要素から構成されているが、説明の便宜上一つの
プロセシング要素のみについて説明することにする。
実施形態による加算/比較/選択処理器を示したブロッ
ク図であり、加算/比較/選択処理器は複数個のプロセ
シング要素から構成されているが、説明の便宜上一つの
プロセシング要素のみについて説明することにする。
【0027】図4に示された加算/比較/選択処理器
は、グルーピング部410と、多重化部(マルチプレクサ
ー)420と、プロセシング要素430と、第1逆多重化部
(第1ディマルチプレクサー)440と、第2逆多重化部
(第2ディマルチプレクサー)450と、制御部460とから
構成される。ここで、各構成要素の入出力信号に対して
説明すると、PA0,PA1,PB0,PB1は多重化部4
20に入力される6ビット単位の経路メートルであり、γ
X ,γY は多重化部 420から出力される6ビット単位の
経路メートルであり、λX ,λY はプロセシング要素430
に入力される4ビット単位のブランチメートルであり、
DA0,DA1,DB0,DB1は第1逆多重化部440から
出力される判定ビットであり、SA0,SA1,SB0,
SB1は第2逆多重化部450から出力される6ビット単
位の状態メートルである。
は、グルーピング部410と、多重化部(マルチプレクサ
ー)420と、プロセシング要素430と、第1逆多重化部
(第1ディマルチプレクサー)440と、第2逆多重化部
(第2ディマルチプレクサー)450と、制御部460とから
構成される。ここで、各構成要素の入出力信号に対して
説明すると、PA0,PA1,PB0,PB1は多重化部4
20に入力される6ビット単位の経路メートルであり、γ
X ,γY は多重化部 420から出力される6ビット単位の
経路メートルであり、λX ,λY はプロセシング要素430
に入力される4ビット単位のブランチメートルであり、
DA0,DA1,DB0,DB1は第1逆多重化部440から
出力される判定ビットであり、SA0,SA1,SB0,
SB1は第2逆多重化部450から出力される6ビット単
位の状態メートルである。
【0028】図4において、グルーピング部410はN個
の状態に対するN個のプロセシング要素を、同一な状態
メートル及び同一なブランチメートルを用いる所定単位
のプロセシング要素にグループ化させるためのものであ
り、ここでは64個の状態モードの場合、一つのプロセ
シング要素で処理できる状態数、すなわちグループ化単
位が四つである場合を例示することにする。
の状態に対するN個のプロセシング要素を、同一な状態
メートル及び同一なブランチメートルを用いる所定単位
のプロセシング要素にグループ化させるためのものであ
り、ここでは64個の状態モードの場合、一つのプロセ
シング要素で処理できる状態数、すなわちグループ化単
位が四つである場合を例示することにする。
【0029】多重化部420には、四つの経路メートル(P
A0,PA1,PB0,PB1)が入力され、多重化部420
は、クロック信号(CLK)に応じて二つの経路メートル
(γX,γY=PA0,PA1又はPB0,PB1)を選択し
てプロセシング要素430に出力する。
A0,PA1,PB0,PB1)が入力され、多重化部420
は、クロック信号(CLK)に応じて二つの経路メートル
(γX,γY=PA0,PA1又はPB0,PB1)を選択し
てプロセシング要素430に出力する。
【0030】プロセシング要素430は、図3に示された
一般的なプロセシング要素310と同一なものであり、多
重化部420から供給される二つの経路メートル(γX ,γY
)とブランチメートル生成部100(図1参照)から供給さ
れる二つのブランチメートル(λX ,λY )を入力して二
つの判定ビット(第1判定ビット、第2判定ビット)及び
二つの状態メートルを出力する。更に詳細な説明は従来
の技術で前述したため、ここでは省略することにする。
一般的なプロセシング要素310と同一なものであり、多
重化部420から供給される二つの経路メートル(γX ,γY
)とブランチメートル生成部100(図1参照)から供給さ
れる二つのブランチメートル(λX ,λY )を入力して二
つの判定ビット(第1判定ビット、第2判定ビット)及び
二つの状態メートルを出力する。更に詳細な説明は従来
の技術で前述したため、ここでは省略することにする。
【0031】第1逆多重化部440には、プロセシング要
素430から出力された二つの判定ビット(第1判定ビッ
ト、第2判定ビット)が入力され、第1逆多重化部440
は、クロック信号に応じて四つの判定ビット(DA0,D
A1,DB0,DB1)に逆多重化して出力する。
素430から出力された二つの判定ビット(第1判定ビッ
ト、第2判定ビット)が入力され、第1逆多重化部440
は、クロック信号に応じて四つの判定ビット(DA0,D
A1,DB0,DB1)に逆多重化して出力する。
【0032】第2逆多重化部450には、プロセシング要
素430から出力された二つの状態メートルが入力され、
第2逆多重化部450は、クロック信号に応じて四つの状
態メートル(SA0,SA1,SB0,SB1)に逆多重化
して出力する。
素430から出力された二つの状態メートルが入力され、
第2逆多重化部450は、クロック信号に応じて四つの状
態メートル(SA0,SA1,SB0,SB1)に逆多重化
して出力する。
【0033】次いで、前述したような本発明の加算/比
較/選択処理器の作用及び効果に対して図3及び図4に
基づき更に詳細に説明する。
較/選択処理器の作用及び効果に対して図3及び図4に
基づき更に詳細に説明する。
【0034】まず、64個の状態モードの場合、図3の
ような構造のプロセシング要素からなる加算/比較/選
択処理器をASIC化するためのプログラムは次の通り
である。ここで用いられたプログラム言語はVHDL(V
ery High Definition Language)である。
ような構造のプロセシング要素からなる加算/比較/選
択処理器をASIC化するためのプログラムは次の通り
である。ここで用いられたプログラム言語はVHDL(V
ery High Definition Language)である。
【0035】 component T_ACS52 port( bmet_x,bmet_y :in,std_logic_vector(Bit_Branch-1 downto 0): pmet_x,pmet_y :in,std_logic_vector(Bit_State-1 downto 0): over_flag:out,std_logic: …overflow indicator a,b decision_a,decision_b:out,std_logic: …decision bit smet_a,smet_b:out,std_logic_vector(Bit_State-1 downto 0) ); end component; begin PE_ASSIGN:process(bmet0,bmet1,bmet2,bmet3,pmet) …begin PE0:T_ACS52 port Map(bmet0,bmet3,pmet(0),pmet(1), over_flag(0),decision_a(0),decision_b(0),smet(0),smet(32)); PE1:T_ACS52 port Map(bmet1,bmet2,pmet(2),pmet(3), over_flag(1),decision_a(1),decision_b(1),smet(1),smet(33); PE2:T_ACS52 port Map(bmet0,bmet3,pmet(4),pmet(5), over_flag(2),decision_a(2),decision_b(2),smet(2),smet(34)); PE3:T_ACS52 port Map(bmet1,bmet2,pmet(6),pmet(7), over_flag(3),decision_a(3),decision_b(3),smet(3),smet(35)); PE4:T_ACS52 port Map(bmet3,bmet0,pmet(8),pmet(9), over_flag(4),decision_a(4),decision_b(4),smet(4),smet(36)); PE5:T_ACS52 port Map(bmet2,bmet1,pmet(10),pmet(11), over_flag(5),decision_a(5),decision_b(5),smet(5),smet(37)); PE6:T_ACS52 port Map(bmet3,bmet0,pmet(12),pmet(13), over_flag(6),decision_a(6),decision_b(6),smet(6),smet(38)); PE7:T_ACS52 port Map(bmet2,bmet1,pmet(14),pmet(15), over_flag(7),decision_a(7),decision_b(7),smet(7),smet(39)); PE8:T_ACS52 port Map(bmet3,bmet0,pmet(16),pmet(17), over_flag(8),decision_a(8),decision_b(8),smet(8),smet(40)); PE9:T_ACS52 port Map(bmet2,bmet1,pmet(18),pmet(19), over_flag(9),decision_a(9),decision_b(9),smet(9),smet(41)); PE10:T_ACS52 port Map(bmet3,bmet0,pmet(20),pmet(21), over_flag(10),decision_a(10),decision_b(10),smet(10),smet(42)); PE11:T_ACS52 port Map(bmet2,bmet1,pmet(22),pmet(23), over_flag(11),decision_a(11),decision_b(11),smet(11),smet(43)); PE12:T_ACS52 port Map(bmet0,bmet3,pmet(24),pmet(25), over_flag(12),decision_a(12),decision_b(12),smet(12),smet(44)); PE13:T_ACS52 port Map(bmet1,bmet2,pmet(26),pmet(27), over_flag(13),decision_a(13),decision_b(13),smet(13),smet(45)); PE14:T_ACS52 port Map(bmet0,bmet3,pmet(28),pmet(29), over_flag(14),decision_a(14),decision_b(14),smet(14),smet(46)); PE15:T_ACS52 port Map(bmet1,bmet2,pmet(30),pmet(31), over_flag(15),decision_a(15),decision_b(15),smet(15),smet(47)); PE16:T_ACS52 port Map(bmet2,bmet1,pmet(32),pmet(33), over_flag(16),decision_a(16),decision_b(16),smet(16),smet(48)); PE17:T_ACS52 port Map(bmet3,bmet0,pmet(34),pmet(35), over_flag(17),decision_a(17),decision_b(17),smet(17),smet(49)); PE18:T_ACS52 port Map(bmet2,bmet1,pmet(36),pmet(37), over_flag(18),decision_a(18),decision_b(18),smet(18),smet(50)); PE19:T_ACS52 port Map(bmet3,bmet0,pmet(38),pmet(39), over_flag(19),decision_a(19),decision_b(19),smet(19),smet(51)); PE20:T_ACS52 port Map(bmet1,bmet2,pmet(40),pmet(41), over_flag(20),decision_a(20),decision_b(20),smet(20),smet(52)); PE21:T_ACS52 port Map(bmet0,bmet3,pmet(42),pmet(43), over_flag(21),decision_a(21),decision_b(21),smet(21),smet(53)); PE22:T_ACS52 port Map(bmet1,bmet2,pmet(44),pmet(45), over_flag(22),decision_a(22),decision_b(22),smet(22),smet(54)); PE23:T_ACS52 port Map(bmet0,bmet3,pmet(46),pmet(47), over_flag(23),decision_a(23),decision_b(23),smet(23),smet(55)); PE24:T_ACS52 port Map(bmet1,bmet2,pmet(48),pmet(49), over_flag(24),decision_a(24),decision_b(24),smet(24),smet(56)); PE25:T_ACS52 port Map(bmet0,bmet3,pmet(50),pmet(51), over_flag(25),decision_a(25),decision_b(25),smet(25),smet(57)); PE26:T_ACS52 port Map(bmet1,bmet2,pmet(52),pmet(53), over_flag(26),decision_a(26),decision_b(26),smet(26),smet(58)); PE27:T_ACS52 port Map(bmet0,bmet3,pmet(54),pmet(55), over_flag(27),decision_a(27),decision_b(27),smet(27),smet(59)); PE28:T_ACS52 port Map(bmet2,bmet1,pmet(56),pmet(57), over_flag(28),decision_a(28),decision_b(28),smet(28),smet(60)); PE29:T_ACS52 port Map(bmet3,bmet0,pmet(58),pmet(59), over_flag(29),decision_a(29),decision_b(29),smet(29),smet(61)); PE30:T_ACS52 port Map(bmet2,bmet1,pmet(60),pmet(61), over_flag(30),decision_a(30),decision_b(30),smet(30),smet(62)); PE31:T_ACS52 port Map(bmet3,bmet0,pmet(62),pmet(63), over_flag(31),decision_a(31),decision_b(31),smet(31),smet(63)); …end process:…End of PE_ASSIGN 前記プログラムにおいて、T_ACS52はASICの設計時
のプロセシング要素の名前であり、pmetとsmetはそれぞ
れ経路メートルと状態メートルのことを示す。すなわ
ち、状態メートル(smet)は加算/比較/選択処理器のプ
ロセシング要素内で計算され出力される該状態が有する
メートルであり、前記状態メートルが次のクロックでは
経路メートル(pmet)として該プロセシング要素に印加さ
れる。例えば、0番目のプロセシング要素(PE0)の出
力値のうち一つの状態メートルは0番目のプロセシング
要素(PE0)の入力値のうち一つの経路メートルとして
入力され、出力値のうちもう一つの状態メートルは16
番目のプロセシング要素(PE16)の入力値のうち一つ
の経路メートルとして入力される。かつ、1番目のプロ
セシング要素(PE1)の出力値のうち一つの状態メート
ルは0番目のプロセシング要素(PE0)の入力値のうち
もう一つの経路メートルとして入力され、出力値のうち
もう一つの状態メートルは16番目のプロセシング要素
(PE16)の入力値のうちもう一つの経路メートルとし
て入力される。同じく、残りのプロセシング要素(PE
2〜PE31)も前述したように相互複雑に連結されて
いる。
のプロセシング要素の名前であり、pmetとsmetはそれぞ
れ経路メートルと状態メートルのことを示す。すなわ
ち、状態メートル(smet)は加算/比較/選択処理器のプ
ロセシング要素内で計算され出力される該状態が有する
メートルであり、前記状態メートルが次のクロックでは
経路メートル(pmet)として該プロセシング要素に印加さ
れる。例えば、0番目のプロセシング要素(PE0)の出
力値のうち一つの状態メートルは0番目のプロセシング
要素(PE0)の入力値のうち一つの経路メートルとして
入力され、出力値のうちもう一つの状態メートルは16
番目のプロセシング要素(PE16)の入力値のうち一つ
の経路メートルとして入力される。かつ、1番目のプロ
セシング要素(PE1)の出力値のうち一つの状態メート
ルは0番目のプロセシング要素(PE0)の入力値のうち
もう一つの経路メートルとして入力され、出力値のうち
もう一つの状態メートルは16番目のプロセシング要素
(PE16)の入力値のうちもう一つの経路メートルとし
て入力される。同じく、残りのプロセシング要素(PE
2〜PE31)も前述したように相互複雑に連結されて
いる。
【0036】一方、前記プログラムにおいて、各プロセ
シング要素の入力値を説明すると、PE0,PE2,PE
12,PE14,PE21,PE23,PE27,PE29
は共通的に(bmet0,bmet3)をブランチメートルとして用
い、PE1,PE3,PE13,PE15,PE20,PE
22,PE24,PE26は共通的に(bmet1,bmet2)をブ
ランチメートルとして用い、PE4,PE6,PE8,P
E10,PE17,PE19,PE29,PE31は共通的
に(bmet3,bmet0)をブランチメートルとして用い、PE
5,PE7,PE9,PE11,PE16,PE18,PE2
8,PE30は共通的に(bmet2,bmet1)をブランチメート
ルとして用いる。すなわち、状態0,2,12,14,2
1,23,27,29,32,34,44,46,53,55,5
7,59は(bmet0,bmet3)を用い、状態1,3,13,15,
20,22,24,26,33,35,45,47,52,54,
56,58は(bmet1,bmet2)を用い、状態4,6,8,10,
17,19,29,31,36,38,40,42,49,51,
61,63は(bmet3,bmet0)を用い、状態5,7,9,11,
16,18,28,30,37,39,41,43,48,50,
60,62は(bmet2,bmet1)を用いる。
シング要素の入力値を説明すると、PE0,PE2,PE
12,PE14,PE21,PE23,PE27,PE29
は共通的に(bmet0,bmet3)をブランチメートルとして用
い、PE1,PE3,PE13,PE15,PE20,PE
22,PE24,PE26は共通的に(bmet1,bmet2)をブ
ランチメートルとして用い、PE4,PE6,PE8,P
E10,PE17,PE19,PE29,PE31は共通的
に(bmet3,bmet0)をブランチメートルとして用い、PE
5,PE7,PE9,PE11,PE16,PE18,PE2
8,PE30は共通的に(bmet2,bmet1)をブランチメート
ルとして用いる。すなわち、状態0,2,12,14,2
1,23,27,29,32,34,44,46,53,55,5
7,59は(bmet0,bmet3)を用い、状態1,3,13,15,
20,22,24,26,33,35,45,47,52,54,
56,58は(bmet1,bmet2)を用い、状態4,6,8,10,
17,19,29,31,36,38,40,42,49,51,
61,63は(bmet3,bmet0)を用い、状態5,7,9,11,
16,18,28,30,37,39,41,43,48,50,
60,62は(bmet2,bmet1)を用いる。
【0037】本発明による加算/比較/選択処理器にお
いて、グルーピング部410ではグループ化単位を該シス
テムの動作最高速度とASICセルライブラリーの特性
に応じて決定する。例えば、チップのサイズが0.5ミ
クロンであるASICセルライブラリーを用い、動作最
高速度を80MHz以上に仮定する場合、(bmet0,bmet
3)を用いる八つのプロセシング要素を四つのグループ
に、(bmet1,bmet2)を用いる八つのプロセシング要素を
四つのグループに、(bmet3,bmet0)を用いる八つのプロ
セシング要素を四つのグループに、(bmet2,bmet1)を用
いる八つのプロセシング要素を四つのグループに束ね
る。
いて、グルーピング部410ではグループ化単位を該シス
テムの動作最高速度とASICセルライブラリーの特性
に応じて決定する。例えば、チップのサイズが0.5ミ
クロンであるASICセルライブラリーを用い、動作最
高速度を80MHz以上に仮定する場合、(bmet0,bmet
3)を用いる八つのプロセシング要素を四つのグループ
に、(bmet1,bmet2)を用いる八つのプロセシング要素を
四つのグループに、(bmet3,bmet0)を用いる八つのプロ
セシング要素を四つのグループに、(bmet2,bmet1)を用
いる八つのプロセシング要素を四つのグループに束ね
る。
【0038】多重化部420ではグルーピング部410でグル
ープ化された二単位のプロセシング要素の入力である四
つの6ビット経路メートルPA0,PA1,PB0,PB
1を入力して、クロック信号(CLK)に応じて経路メー
トルPA0とPA1又は経路メートルPB0とPB1を
選択して出力する。ここで、クロック信号(CLK)は制
御部460から供給され、多重化部420の選択信号として動
作する。すなわち、クロック(CLK)が“ハイ”論理レ
ベルの場合には経路メートルPA0とPA1が選択さ
れ、クロック(CLK)が“ロー”論理レベルの場合には
経路メートルPB0とPB1が選択されてプロセシング
要素430に供給される。同じく、これと逆の場合も成り
立つ。
ープ化された二単位のプロセシング要素の入力である四
つの6ビット経路メートルPA0,PA1,PB0,PB
1を入力して、クロック信号(CLK)に応じて経路メー
トルPA0とPA1又は経路メートルPB0とPB1を
選択して出力する。ここで、クロック信号(CLK)は制
御部460から供給され、多重化部420の選択信号として動
作する。すなわち、クロック(CLK)が“ハイ”論理レ
ベルの場合には経路メートルPA0とPA1が選択さ
れ、クロック(CLK)が“ロー”論理レベルの場合には
経路メートルPB0とPB1が選択されてプロセシング
要素430に供給される。同じく、これと逆の場合も成り
立つ。
【0039】プロセシング要素430では、多重化部420か
ら選択され出力された経路メートル(γX ,γY =PA
0,PA1又はPB0,PB1)と、ブランチメートル生
成部100(図2参照)からのブランチメートル(λX ,λY )
を入力して、二つの判定ビット(すなわち、第1判定ビ
ットと第2判定ビット)と二つの状態メートルを出力す
る。前記プロセシング要素430では同一な状態メートル
を用いる二つの状態を処理するので、それぞれ二つずつ
の結果値が発生する。すなわち、経路メートルγXとブ
ランチメートルλX が加算された後に第1加算値が出力
され、経路メートルγY とブランチメートルλY が加算
された後に第2加算値が出力される。一方、経路メート
ルγX とブランチメートルλY が加算された後に第3加
算値が出力され、経路メートルγY とブランチメートル
λX が加算された後に第4加算値が出力される。第1加
算値と第2加算値、第3加算値と第4加算値はそれぞれ
比較された後、前記比較結果に応じて第1判定ビットと
第2判定ビットが“0”又は“1”で出力される。第1
判定ビット又は第2判定ビットはそれぞれの二つの加算
値のうち一つの加算値を選択する信号として用いられる
が、第1判定ビット又は第2判定ビットに応じて一つの
加算値が選択されて状態メートルとして出力される。
ら選択され出力された経路メートル(γX ,γY =PA
0,PA1又はPB0,PB1)と、ブランチメートル生
成部100(図2参照)からのブランチメートル(λX ,λY )
を入力して、二つの判定ビット(すなわち、第1判定ビ
ットと第2判定ビット)と二つの状態メートルを出力す
る。前記プロセシング要素430では同一な状態メートル
を用いる二つの状態を処理するので、それぞれ二つずつ
の結果値が発生する。すなわち、経路メートルγXとブ
ランチメートルλX が加算された後に第1加算値が出力
され、経路メートルγY とブランチメートルλY が加算
された後に第2加算値が出力される。一方、経路メート
ルγX とブランチメートルλY が加算された後に第3加
算値が出力され、経路メートルγY とブランチメートル
λX が加算された後に第4加算値が出力される。第1加
算値と第2加算値、第3加算値と第4加算値はそれぞれ
比較された後、前記比較結果に応じて第1判定ビットと
第2判定ビットが“0”又は“1”で出力される。第1
判定ビット又は第2判定ビットはそれぞれの二つの加算
値のうち一つの加算値を選択する信号として用いられる
が、第1判定ビット又は第2判定ビットに応じて一つの
加算値が選択されて状態メートルとして出力される。
【0040】第1逆多重化部440では、プロセシング要
素430から出力された第1判定ビットと第2判定ビット
を入力して、クロック信号(CLK)に応じて逆多重化を
行い四つの判定ビット(DA0,DA1,DB0,DB1)
を出力する。すなわち、クロック信号(CLK)が“ハ
イ”論理レベルである間に第1判定ビットと第2判定ビ
ットをDA0とDA1で出力し、“ロー”論理レベルで
ある間には第1判定ビットと第2判定ビットをDB0と
DB1で出力する。同じく、これと逆の場合も成り立
つ。この際、一つのクロック周期当り出力された四つの
判定ビット(DA0,DA1,DB0,DB1)は次段の生
存メモリ部300(図2参照)に格納され、生存メモリ部300
では前記判定ビットを用いて元の情報シーケンスを復元
する。
素430から出力された第1判定ビットと第2判定ビット
を入力して、クロック信号(CLK)に応じて逆多重化を
行い四つの判定ビット(DA0,DA1,DB0,DB1)
を出力する。すなわち、クロック信号(CLK)が“ハ
イ”論理レベルである間に第1判定ビットと第2判定ビ
ットをDA0とDA1で出力し、“ロー”論理レベルで
ある間には第1判定ビットと第2判定ビットをDB0と
DB1で出力する。同じく、これと逆の場合も成り立
つ。この際、一つのクロック周期当り出力された四つの
判定ビット(DA0,DA1,DB0,DB1)は次段の生
存メモリ部300(図2参照)に格納され、生存メモリ部300
では前記判定ビットを用いて元の情報シーケンスを復元
する。
【0041】第2逆多重化部450では、プロセシング要
素430から出力された第1状態メートルと第2状態メー
トルを入力して、クロック信号(CLK)に応じて逆多重
化を行い四つの状態メートル(SA0,SA1,SB0,S
B1)を出力する。すなわち、クロック信号(CLK)が
“ハイ”論理レベルである間に第1状態メートルと第2
状態メートルをSA0とSA1で出力し、“ロー”論理
レベルである間に第1状態メートルと第2状態メートル
をSB0とSB1で出力する。同じく、これと逆の場合
も成り立つ。この際、一つのクロック周期当り出力され
た四つの状態メートル(SA0,SA1,SB0,SB1)
は対応するプロセシング要素に供給される。
素430から出力された第1状態メートルと第2状態メー
トルを入力して、クロック信号(CLK)に応じて逆多重
化を行い四つの状態メートル(SA0,SA1,SB0,S
B1)を出力する。すなわち、クロック信号(CLK)が
“ハイ”論理レベルである間に第1状態メートルと第2
状態メートルをSA0とSA1で出力し、“ロー”論理
レベルである間に第1状態メートルと第2状態メートル
をSB0とSB1で出力する。同じく、これと逆の場合
も成り立つ。この際、一つのクロック周期当り出力され
た四つの状態メートル(SA0,SA1,SB0,SB1)
は対応するプロセシング要素に供給される。
【0042】制御部460では、多重化部420、第1逆多重
化部440と第2逆多重化部450の動作を制御するためのク
ロック信号(CLK)を生成して出力し、1クロック周期
当りの多重化部420と第1及び第2逆多重化部440,450の
動作回数を制御する。ここでは、クロック信号(CLK)
の一周期当り2回の動作を行うように設定されたが、よ
り小さいASICセルライブラリー技術を用いたり又は
欧州のディジタル画像放送(DVB)規格の80MHzよ
り低い周波数で動作させる場合には4回以上の動作を行
うこともできる。
化部440と第2逆多重化部450の動作を制御するためのク
ロック信号(CLK)を生成して出力し、1クロック周期
当りの多重化部420と第1及び第2逆多重化部440,450の
動作回数を制御する。ここでは、クロック信号(CLK)
の一周期当り2回の動作を行うように設定されたが、よ
り小さいASICセルライブラリー技術を用いたり又は
欧州のディジタル画像放送(DVB)規格の80MHzよ
り低い周波数で動作させる場合には4回以上の動作を行
うこともできる。
【0043】結局、64個の状態モードの場合、従来に
は同一な状態メートルを用いる二つの状態を一つのプロ
セシング要素で処理したため、32個のプロセシング要
素が必要であったが、本発明によると、同一な状態メー
トルを用いる32個のプロセシング要素に対して同一な
ブランチメートルを用いるプロセシング要素を二つの単
位でグループ化させることにより、16個のプロセシン
グ要素のみが必要になり、ハードウエアの面積を50%
程度縮められる。これは、単にプロセシング要素の数を
減らして面積を縮めたことではない。すなわち、ASI
Cはセル領域と接続領域とから構成されるが、プロセシ
ング要素におけるブランチメートルの共有を通して接続
領域を大幅に減らしたものである。
は同一な状態メートルを用いる二つの状態を一つのプロ
セシング要素で処理したため、32個のプロセシング要
素が必要であったが、本発明によると、同一な状態メー
トルを用いる32個のプロセシング要素に対して同一な
ブランチメートルを用いるプロセシング要素を二つの単
位でグループ化させることにより、16個のプロセシン
グ要素のみが必要になり、ハードウエアの面積を50%
程度縮められる。これは、単にプロセシング要素の数を
減らして面積を縮めたことではない。すなわち、ASI
Cはセル領域と接続領域とから構成されるが、プロセシ
ング要素におけるブランチメートルの共有を通して接続
領域を大幅に減らしたものである。
【0044】
【発明の効果】以上、本発明によると、N個の状態モー
ドの場合、同一な状態メートルを用いるN/2個のプロ
セシング要素に対して同一なブランチメートルを用いる
L個単位のプロセシング要素にグループ化させることに
より、N/2L個のプロセシング要素のみが必要にな
り、ASICに所要されるハードウエアの面積を著しく
縮めることができる。
ドの場合、同一な状態メートルを用いるN/2個のプロ
セシング要素に対して同一なブランチメートルを用いる
L個単位のプロセシング要素にグループ化させることに
より、N/2L個のプロセシング要素のみが必要にな
り、ASICに所要されるハードウエアの面積を著しく
縮めることができる。
【0045】本発明は前記実施形態に限られず、本発明
が属した技術的思想内で当分野において通常の知識を有
する者により多くの変形が可能であることは明らかであ
る。
が属した技術的思想内で当分野において通常の知識を有
する者により多くの変形が可能であることは明らかであ
る。
【図1】ビタビ復号化アルゴリズムに用いられるトレリ
ス図を示す図である。
ス図を示す図である。
【図2】一般的なビタビデコーダを示したブロック図で
ある。
ある。
【図3】図2に示された加算/比較/選択処理器を構成
するプロセシング要素を示したブロック図である。
するプロセシング要素を示したブロック図である。
【図4】ビタビデコーダにおいて本発明の一実施形態に
よる加算/比較/選択処理器を示したブロック図であ
る。
よる加算/比較/選択処理器を示したブロック図であ
る。
410 グルーピング部 420 多重化部 430 プロセシング要素 440 第1逆多重化部 450 第2逆多重化部
Claims (5)
- 【請求項1】 重畳符号に対する最尤復号を行うための
ビタビデコーダにおいて、 二つの経路メートルと二つのブランチメートルを入力し
て、それぞれ加算した値を相互比較し、前記比較結果に
応じる二つの判定ビットと二つの状態メートルを出力す
るN個のプロセシング要素と、 N個の状態に対する前記N個のプロセシング要素を同一
な状態メートルと同一なブランチメートルを用いるK単
位のプロセシング要素にグループ化させるためのグルー
ピング部と、 前記グルーピング結果に応じて供給されるL(ここで、
Lは2K)個の経路メートルを所定のクロック信号に応
じて二つの経路メートルに多重化して前記N個のプロセ
シング要素のうち対応するプロセシング要素に出力する
ための多重化部と、 前記対応するプロセシング要素から出力される二つの判
定ビットを入力して、前記クロック信号に応じてL個の
判定ビットに逆多重化して出力する第1逆多重化部と、 前記対応するプロセシング要素から出力される二つの状
態メートルを入力して、前記クロック信号に応じてL個
の状態メートルに逆多重化して出力する第2逆多重化部
とを含むことを特徴とするビタビデコーダにおける加算
/比較/選択処理器。 - 【請求項2】 前記加算/比較/選択処理器は、前記ク
ロック信号を発生させ、1クロック周期当り前記多重化
部と前記第1及び第2逆多重化部の動作回数を制御する
制御部を更に備えることを特徴とする請求項1に記載の
ビタビデコーダにおける加算/比較/選択処理器。 - 【請求項3】 前記グルーピング部では全部で64個の
状態に対するグルーピング単位を四つの状態にすること
を特徴とする請求項1に記載のビタビデコーダにおける
加算/比較/選択処理器。 - 【請求項4】 前記多重化部では前記クロック信号の1
クロック周期に対して、“ハイ”論理レベルである区間
と“ロー”論理レベルである区間に応じて多重化が行わ
れることを特徴とする請求項1に記載のビタビデコーダ
における加算/比較/選択処理器。 - 【請求項5】 前記第1逆多重化部と第2逆多重化部で
は前記クロック信号の1クロック周期に対して、“ハ
イ”論理レベルである区間と“ロー”論理レベルである
区間に応じて逆多重化が行われることを特徴とする請求
項1に記載のビタビデコーダにおける加算/比較/選択
処理器。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1019960035229A KR100195745B1 (ko) | 1996-08-23 | 1996-08-23 | 비터비 복호화기의 가산 비교 선택 장치 |
| KR1996-35229 | 1996-08-23 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10200421A true JPH10200421A (ja) | 1998-07-31 |
Family
ID=19470598
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9226267A Pending JPH10200421A (ja) | 1996-08-23 | 1997-08-22 | ビタビデコーダにおける加算/比較/選択処理器 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5928378A (ja) |
| JP (1) | JPH10200421A (ja) |
| KR (1) | KR100195745B1 (ja) |
| CN (1) | CN1183681A (ja) |
| GB (1) | GB2316587A (ja) |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0851591B1 (en) * | 1996-12-24 | 2001-09-12 | Matsushita Electric Industrial Co., Ltd. | Data processor and data processing method |
| JP3338374B2 (ja) * | 1997-06-30 | 2002-10-28 | 松下電器産業株式会社 | 演算処理方法および装置 |
| US6070263A (en) * | 1998-04-20 | 2000-05-30 | Motorola, Inc. | Circuit for use in a Viterbi decoder |
| US6219389B1 (en) * | 1998-06-30 | 2001-04-17 | Motorola, Inc. | Receiver implemented decoding method of selectively processing channel state metrics to minimize power consumption and reduce computational complexity |
| US6343368B1 (en) | 1998-12-18 | 2002-01-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for fast maximum a posteriori decoding |
| JP2002533991A (ja) * | 1998-12-18 | 2002-10-08 | テレフォンアクチーボラゲット エル エム エリクソン(パブル) | 高速帰納的最大復号化のための方法及び装置 |
| DE19937506A1 (de) * | 1999-08-09 | 2001-04-19 | Infineon Technologies Ag | ACS-Einheit für einen Viterbi-Decodierer |
| US6415415B1 (en) | 1999-09-03 | 2002-07-02 | Infineon Technologies North America Corp. | Survival selection rule |
| US6333954B1 (en) * | 1999-10-21 | 2001-12-25 | Qualcomm Incorporated | High-speed ACS for Viterbi decoder implementations |
| US6769090B1 (en) | 2000-08-14 | 2004-07-27 | Virata Corporation | Unified technique for multi-rate trellis coding and decoding |
| EP1220455A1 (en) * | 2000-12-29 | 2002-07-03 | Motorola, Inc. | Viterbi decoder, method and unit therefor |
| US6693975B2 (en) | 2001-01-26 | 2004-02-17 | Virata Corporation | Low-order HDSL2 transmit filter |
| WO2003055195A2 (en) * | 2001-12-18 | 2003-07-03 | Globespan Virata Incorporated | System and method for rate enhanced shdsl |
| US7127667B2 (en) * | 2002-04-15 | 2006-10-24 | Mediatek Inc. | ACS circuit and viterbi decoder with the circuit |
| US7020223B2 (en) * | 2002-04-16 | 2006-03-28 | Intel Corporation | Viterbi decoder and method using sequential two-way add-compare-select operations |
| GB2389020B (en) * | 2002-05-23 | 2006-02-01 | Ubinetics Ltd | Blind transport format detection for transmission link |
| US7463702B2 (en) * | 2002-11-12 | 2008-12-09 | Agere Systems Inc. | System and method for one-pass blind transport format detection |
| UA89162C2 (ru) * | 2003-02-18 | 2010-01-11 | Квелкомм Инкорпорейтед | Команды мультиплексирования с кодовым разделением в мультиплексном канале с кодовым разделением |
| DE10310812B4 (de) * | 2003-03-12 | 2007-11-22 | Infineon Technologies Ag | Dekodiervorrichtung, Trellis-Prozessor und Verfahren |
| US20040255230A1 (en) * | 2003-06-10 | 2004-12-16 | Inching Chen | Configurable decoder |
| DE102004003096B3 (de) * | 2004-01-21 | 2005-11-24 | Infineon Technologies Ag | Schaltung zur Durchführung der Add-Compare-Select-Operation mit darüber hinausgehender Funktionalität |
| US8185810B1 (en) * | 2007-04-13 | 2012-05-22 | Link—A—Media Devices Corporation | Low power viterbi trace back architecture |
| US7847626B2 (en) * | 2008-03-04 | 2010-12-07 | Micron Technology, Inc. | Structure and method for coupling signals to and/or from stacked semiconductor dies |
| CN101321035B (zh) * | 2008-07-09 | 2012-03-21 | 上海华为技术有限公司 | 差值上限获取方法、定点方法及装置 |
| TWI422165B (zh) * | 2009-10-16 | 2014-01-01 | Mstar Semiconductor Inc | 解碼方法及其裝置 |
| KR102025338B1 (ko) * | 2011-12-28 | 2019-09-26 | 삼성전자 주식회사 | 신호 처리 장치, 이를 구비한 디스플레이 장치 및 신호 처리 방법 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5291499A (en) * | 1992-03-16 | 1994-03-01 | Cirrus Logic, Inc. | Method and apparatus for reduced-complexity viterbi-type sequence detectors |
| US5414738A (en) * | 1993-11-09 | 1995-05-09 | Motorola, Inc. | Maximum likelihood paths comparison decoder |
| US5530707A (en) * | 1994-03-09 | 1996-06-25 | At&T Corp. | Area-efficient decoders for rate-k/n convolutional codes and other high rate trellis codes |
-
1996
- 1996-08-23 KR KR1019960035229A patent/KR100195745B1/ko not_active Expired - Fee Related
-
1997
- 1997-08-21 GB GB9717810A patent/GB2316587A/en not_active Withdrawn
- 1997-08-22 US US08/916,665 patent/US5928378A/en not_active Expired - Fee Related
- 1997-08-22 JP JP9226267A patent/JPH10200421A/ja active Pending
- 1997-08-25 CN CN97116210A patent/CN1183681A/zh active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| KR19980015791A (ko) | 1998-05-25 |
| KR100195745B1 (ko) | 1999-06-15 |
| GB9717810D0 (en) | 1997-10-29 |
| GB2316587A (en) | 1998-02-25 |
| US5928378A (en) | 1999-07-27 |
| CN1183681A (zh) | 1998-06-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH10200421A (ja) | ビタビデコーダにおける加算/比較/選択処理器 | |
| US4905317A (en) | Path memory control method in Viterbi decoder | |
| EP0896436B1 (en) | Viterbi decoder | |
| US4606027A (en) | Error correction apparatus using a Viterbi decoder | |
| CN1099165C (zh) | 维特比译码器 | |
| EP1102408B1 (en) | Viterbi decoder | |
| JP5618247B2 (ja) | 複数ステップ・トレリスを使用するソフト出力ビタビ検出の方法および装置 | |
| JP2996615B2 (ja) | ビタビ復号装置及びその方法 | |
| KR100212836B1 (ko) | 비터비 디코더의 트레이스백 진행 구조 | |
| JP2000209106A (ja) | 高速ビタビ復号器の最小量のメモリによる実現 | |
| KR100195741B1 (ko) | 가변 레이트 비터비 복호화기 | |
| US5802115A (en) | Convolution decoder using the Viterbi algorithm | |
| KR0135796B1 (ko) | 비터비복호기에서 트레이스백 수행장치 | |
| US7035356B1 (en) | Efficient method for traceback decoding of trellis (Viterbi) codes | |
| EP1089441A2 (en) | Viterbi decoder and Viterbi decoding method | |
| US6263473B1 (en) | Viterbi decoder and Viterbi decoding method | |
| JP2575854B2 (ja) | ビタビ復号回路 | |
| EP1192719A1 (en) | Viterbi decoder | |
| KR20040031323A (ko) | 비터비 복호기의 경로 메트릭 저장 장치 및 방법 | |
| KR100410995B1 (ko) | 즉시역추적 알고리즘을 이용한 비터비 복호기용 생존경로메모리 관리 방법 및 그 장치 | |
| KR0148060B1 (ko) | Viterbi 복호기의 ACS를 위한 메모리 최적 구조 | |
| US20100185925A1 (en) | Differential Locally Updating Viterbi Decoder | |
| JPH1056389A (ja) | ビタビ復号器用パスメモリユニットおよび復号方法 | |
| KR100359805B1 (ko) | 비터비 디코더 및 비터비 디코더의 디코딩 방법 | |
| JP2004120791A (ja) | ビタビ復号器 |