JPH10200421A - Adding/comparing/selecting processor for viterbi decoder - Google Patents
Adding/comparing/selecting processor for viterbi decoderInfo
- 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
Description
【0001】[0001]
【発明の属する技術分野】本発明はビタビデコーダにお
ける加算/比較/選択処理器に関し、特にN個の状態に
対するN個のプロセシング要素を同一な状態メートル(s
tate metric)及び同一なブランチメートル(branch metr
ic)を用いる所定単位のプロセシング要素にグループ化
させて、一つのプロセシング要素で複数個の状態に対す
る加算/比較/選択処理を行うように具現化した加算/
比較/選択処理器に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an adder / comparator / selector processor in a Viterbi decoder. More particularly, the present invention relates to an N-state processing element for N states.
tate metric) and the same branch meter
ic) is grouped into predetermined units of processing elements, and an addition / combination embodied to perform addition / comparison / selection processing for a plurality of states with one processing element.
It relates to a comparison / selection processor.
【0002】[0002]
【従来の技術】一般に、重畳符号の最尤復号(maximum l
ikelihood decoding)のための高実用かつ高効率の方法
としては、ビタビ(viterbi)復号化アルゴリズムがもっ
とも広く用いられている。ビタビ復号化アルゴリズムで
はトレリス図を用いるが、任意の状態で遭遇する相異な
る二つの経路に対して経路の長さを比較し、そのうち短
い経路、すなわちエラー発生確率の低い経路を選択して
生存経路(survivor path)として設定する。このよう
なビタビ復号化アルゴリズムを用いるビタビデコーダは
非常に優れたランダムエラー訂正能力を有するので、例
えば衛星通信システムにおけるエラーの訂正に用いられ
ている。2. Description of the Related Art Generally, maximum likelihood decoding (maximum l
As a highly practical and efficient method for ikelihood decoding, the Viterbi decoding algorithm is most widely used. The Viterbi decoding algorithm uses a trellis diagram, but compares the path lengths of two different paths encountered in an arbitrary state, selects a short path, that is, a path with a low error probability, and selects a surviving path. (Survivor path). A Viterbi decoder using such a Viterbi decoding algorithm has a very excellent random error correction capability, and is therefore used, for example, for error correction in a satellite communication system.
【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)となる。The above-mentioned Viterbi decoding algorithm is shown in FIG.
This will be described in more detail based on FIG. 1 (a) shows a trellis diagram in which the number of nodes, that is, the number of states is 2, where the vertical direction is the state (S i , where i is 1, 2), and the horizontal direction is the time (t / t). T: where 1 / T indicates the transmission rate), and S i, k indicates the i-th state at time k. The finite state machine selects an arbitrary path through the trellis diagram shown in FIG. 1 (a), and selects a branch meter for a time interval (k, k + 1) according to the observed state transition.
Calculate (λ). That is, according to the trellis diagram, the situation (S 1, k , S 2, k ) at time k is determined by the respective branches for the time interval (k, k + 1) at the time (k + 1).
1, k + 1 , S2 , k + 1 ). At the time of Viterbi decoding, a distance between codes in a branch corresponding to a received signal, that is, a branch meter is calculated, and the branch meter becomes a hamming distance in the case of hard decision decoding, and is soft. Decision decoding (sof
t decision decoding) for the Euclidean distance (eucli
dean distance).
【0004】このように計算されたブランチメートルを
用いて、時間(k+1)における各ノードに対する新たな
経路メートル(path metric)が、時間kにおける経路メ
ートル(γ)と時間間隔(k,k+1)に対するブランチメー
トル(λ)により計算されるが、これを図1の(b)に基
づき説明する。Using the branch meter calculated in this way, a new path metric for each node at time (k + 1) is calculated by comparing the path metric (γ) at time k with the time interval (k, k). This is calculated by the branch meter (λ) for +1), which will be described with reference to FIG.
【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により求められる。In FIG. 1B, a node S at time k
1, k , S2 , k have path meters γ1 , k , γ2 , k , respectively , which are accumulated values of branch meters, and have time intervals (k, k +
Let the branch meter for 1) be λ 11, k , λ 12, k , λ 21, k ,
Let λ 22, k be the new path meter γ 1, k + 1 , γ 2, k + 1 for nodes S 1, k + 1 , S 2, k + 1 at time (k + 1)
Is determined by the following equation 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に対して循環的に行い最終的な生存経路を探
す。[Equation 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 ] That is, since there are a plurality of types of routes coming to the node at the time (k + 1) according to the change of the state existing at the time k, the branch of the probability information Find the path meter using the meter. The process of calculating the path meter is cyclically performed for each time k to search for a final survival path.
【0007】一方、生存経路をトレースバックすると、
図1の(b)に示されたように、任意の時点で経路が非
常に高い確率で合流するが、前記非常に高い確率で合流
する時間段階の数を生存深さといい、前記生存深さによ
りビタビ復号化の待ち時間が左右される。すなわち、各
ノード毎に前記式1により経路メートル(γ)を更新する
と、生存深さの以前に当たる各経路の状態は同一にな
る。従って、このようなトレースバックにより得られる
生存深さの以前の状態変化をビタビ復号化データとして
出力する。On the other hand, when the trace of the survival route is
As shown in FIG. 1 (b), the routes merge at a very high probability at any time, and the number of time steps at which the routes merge at a very high probability is called a survival depth. Affects the waiting time for Viterbi decoding. In other words, when the path meter (γ) is updated for each node by the above equation 1, the state of each path corresponding to the survival depth becomes the same. Therefore, the previous state change of the survival depth obtained by such traceback is output as Viterbi decoded data.
【0008】図2は一般的なビタビデコーダを示すブロ
ック図であり、ブランチメートル生成部100と、加算/
比較/選択処理部200と、生存メモリ部300とから構成さ
れる。FIG. 2 is a block diagram showing a general Viterbi decoder.
It comprises a comparison / selection processing section 200 and a live memory section 300.
【0009】図2において、ブランチメートル生成部10
0は受信される重畳符号化されたデータを入力して受信
信号に対応する各ブランチにおけるコード間の距離であ
るブランチメートル(λij,k )を計算して出力する。こ
の際、ブランチメートル生成部100の複雑度は受信され
る符号語の長さと直接的な関係があり、符号語を構成す
るビット数が多いほど回路が複雑になる。例えば、符号
語が2ビットから構成されると、受信された符号語2ビ
ットを比較するために必要な比較符号語は22個、すな
わち四つである。一方、符号語が3ビットから構成され
ると、一つの受信された符号語を比較してブランチメー
トルを計算するためには23個、すなわち八つの比較符
号語が必要になる。かつ、符号語が長くなると、符号語
が短い場合に比べて計算されたブランチメートル値が大
きくなる。結局、比較符号語の数が増加しブランチメー
トル値が大きくなった分だけ該ブランチメートルを記憶
するためのメモリの記憶容量が大きくなるため、次段の
加算/比較/選択処理部200が複雑になる。In FIG. 2, a branch meter generation unit 10
Numeral 0 inputs the received convolutionally encoded data, calculates and outputs the branch meter (λ ij, k ) which is the distance between codes in each branch corresponding to the received signal. At this time, the complexity of the branch meter generation unit 100 is directly related to the length of the received codeword, and the circuit becomes more complicated as the number of bits constituting the codeword increases. For example, if the codeword consists of 2 bits, then 2 2, or 4, comparison codewords are needed to compare the 2 bits of the received codeword. On the other hand, the code word is composed of 3 bits, 2 3 in order to calculate a branch metric by comparing a received codeword, i.e. it is necessary to eight comparison code word. In addition, when the code word is longer, the calculated branch metric value is larger than when the code word is shorter. Eventually, the storage capacity of the memory for storing the branch meter is increased by an amount corresponding to the increase in the number of comparison codewords and the branch meter value, and the addition / comparison / selection processing unit 200 in the next stage becomes complicated. Become.
【0010】加算/比較/選択処理部200はブランチメ
ートル生成部100からブランチメートルを入力して直前
の経路メートルに加算して複数個の候補経路を設定す
る。次に、複数個の候補経路を比較して最短経路メート
ルを有する経路を選択した後、前記選択された新たな経
路メートルと比較結果である判定ビットを出力する。加
算/比較/選択処理部200では、各復号サイクル毎にブ
ランチメートル生成部100から提供されたブランチメー
トルを用いて経路メートルを更新した後、Nビットの判
定ビットを次段の生存メモリ部300に出力する。全部で
N個の状態からなるトレリス図を仮定する場合、各復号
サイクル毎にNビットを得るようになる。The addition / comparison / selection processing unit 200 inputs a branch meter from the branch meter generation unit 100 and adds it to the immediately preceding route meter to set a plurality of candidate routes. Next, after comparing a plurality of candidate routes and selecting a route having the shortest route meter, a determination bit as a comparison result with the selected new route meter is output. The addition / comparison / selection processing unit 200 updates the path meter using the branch meter provided from the branch meter generation unit 100 for each decoding cycle, and then transmits the N determination bits to the surviving memory unit 300 at the next stage. Output. Assuming a trellis diagram composed of a total of N states, N bits are obtained for each decoding cycle.
【0011】生存メモリ部300は加算/比較/選択処理
部200から提供された判定ビットを格納し、前記格納さ
れた判定ビットを用いて元の情報シーケンスを復元して
ビタビ復号化されたデータとして出力する。The survival memory unit 300 stores the decision bits provided from the addition / comparison / selection processing unit 200, and restores the original information sequence using the stored decision bits to obtain Viterbi-decoded data. Output.
【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とから構成される。FIG. 3 is a block diagram showing a processing element 310 constituting the addition / comparison / selection processing section 200 shown in FIG. 2. The processing element 310 includes a first processing section 320 and a second processing section 340. Consists of Here, the first processing unit 320
Are the first adder 322, the second adder 324, and the first comparator 326
And a first selector 328. The second processing unit 340 includes a third adder 342, a fourth adder 344, a second comparator 346,
And a second selector 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参
照)に供給される。In FIG. 3, γ X and γ Y are path meters input to the processing element 310, and here, 6
An example composed of bits will be described. Of these, γ
X is input to the first adder 322 of the first processing unit 320 and the third adder 342 of the second processing unit 340, and γ Y is the second addition value of the first processing unit 320.
It is input to the adder 324 and the fourth adder 344 of the second processing unit 340. In addition, λ X and λ Y are branch meters provided from the branch meter generation unit 100 (see FIG. 2), and here, an example composed of 4 bits will be described. Among them, λ X is the first adder 322 of the first processing unit 320 and the second processing unit
340 is input to a fourth adder 344, and λ Y is input to a first processing unit 320.
Are input to the second adder 324 and the third adder 342 of the second processing unit 340. On the other hand, the first comparator 326 of the first processing unit 320 and the second comparator 326
The first determination bit and the second determination bit output from the second comparator 346 of the processing unit 340 are supplied to the surviving memory unit 300 (see FIG. 2) in the next stage.
【0014】次いで、図3に基づき加算/比較/選択処
理部200を構成する一つのプロセシング要素310に対する
動作を説明すると次の通りである。Next, the operation for one processing element 310 constituting the addition / comparison / selection processing section 200 will be described with reference to FIG.
【0015】まず、第1処理部320に対して説明する
と、第1加算器322では経路メートルγX とブランチメ
ートルλX を加算して、その加算値をそれぞれ第1比較
器326と第1選択器328に出力し、第2加算器324では経
路メートルγY とブランチメートルλY を加算して、そ
の加算値をそれぞれ第1比較器326と第1選択器328に出
力する。First, the first processing unit 320 will be described. A first adder 322 adds a path meter γ X and a branch meter λ X, and adds the added value to a first comparator 326 and a first selection unit, respectively. output to vessel 328, by adding the second adder 324 in the path metric gamma Y and branch metric lambda Y, and outputs the addition value first comparator 326 respectively to the first selector 328.
【0016】第1比較器326では、第1加算器322からの
加算値と第2加算器324からの加算値とを比較して、前
記比較結果の第1判定ビットを生存メモリ部 300(図2
参照)に出力する一方、第1選択器328の選択信号として
供給する。例えば、第1比較器326における比較結果と
して、第1加算器322からの加算値が第2加算器324から
の加算値より大きい場合には第1判定ビットが“0”
で、その逆の場合には“1”で出力される。The first comparator 326 compares the added value from the first adder 322 with the added value from the second adder 324, and compares the first determination bit of the comparison result with the live memory unit 300 (FIG. 2
), While supplying it as a selection signal of the first selector 328. For example, as a comparison result in the first comparator 326, when the added value from the first adder 322 is larger than the added value from the second adder 324, the first determination bit is “0”.
In the opposite case, "1" is output.
【0017】第1選択器328では、選択信号に応じて第
1加算器322からの加算値又は第2加算器324からの加算
値を選択的に出力する。すなわち、第1選択器328は第
1判定ビットが“0”の場合に第2加算器324からの加
算値を選択して状態メートルとして出力し、第1判定ビ
ットが“1”の場合には第1加算器322からの加算値を
選択して状態メートルとして出力する。The first selector 328 selectively outputs the added value from the first adder 322 or the added value from the second adder 324 according to the selection signal. That is, the first selector 328 selects the added value from the second adder 324 when the first determination bit is “0” and outputs it as a state meter, and when the first determination bit is “1”, The added value from the first adder 322 is selected and output as a state meter.
【0018】一方、第2処理部340について説明する
と、第3加算器342では経路メートルγX とブランチメ
ートルλY を加算して、前記加算値をそれぞれ第2比較
器346と第2選択器348に出力し、第4加算器344では経
路メートルγY とブランチメートルλX を加算して、前
記加算値をそれそれ第2比較器346と第2選択器348に出
力する。On the other hand, the second processing section 340 will be described. In the third adder 342, the path meter γ X and the branch meter λ Y are added, and the added value is added to the second comparator 346 and the second selector 348, respectively. output, the fourth adder 344 in adds a path metric gamma Y and branch metric lambda X, and outputs the added value as that it second comparator 346 to the second selector 348.
【0019】第2比較器346では、第3加算器342からの
加算値と第4加算器344からの加算値とを比較して、前
記比較結果の第2判定ビットを生存メモリ部 300(図2
参照)に出力する一方、第2選択器348の選択信号として
供給する。例えば、第2比較器346における比較結果、
第3加算器342からの加算値が第4加算器344からの加算
値より大きい場合には第2判定ビットが“0”で、その
逆の場合には“1”で出力される。The second comparator 346 compares the added value from the third adder 342 with the added value from the fourth adder 344, and compares the second determination bit of the comparison result with the live memory unit 300 (FIG. 2
), And is supplied as a selection signal of the second selector 348. For example, the comparison result in the second comparator 346,
When the added value from the third adder 342 is larger than the added value from the fourth adder 344, the second determination bit is output as "0", and when the opposite is true, it is output as "1".
【0020】第2選択器348では、選択信号に応じて第
3加算器342の加算値又は第4加算器344の加算値を選択
的に出力する。すなわち、第2選択器348は第2判定ビ
ットが“0”の場合に第4加算器344からの加算値を選
択して状態メートルとして出力し、第2判定ビットが
“1”の場合には第3加算器 342からの加算値を選択し
て状態メートルとして出力する。The second selector 348 selectively outputs the added value of the third adder 342 or the added value of the fourth adder 344 according to the selection signal. That is, the second selector 348 selects the added value from the fourth adder 344 when the second determination bit is “0” and outputs it as a state meter, and when the second determination bit is “1”, The added value from the third adder 342 is selected and output as a state meter.
【0021】図3に示したように、同一な状態メートル
を用いる二つのプロセシング要素はグループ化して一つ
のプロセシング要素に束ねることができる。すなわち、
一つのプロセシング要素で二つの状態に対する加算/比
較/選択処理が行われるので、64個の状態モードの場
合には32個のプロセシング要素(PE0〜PE31)で
加算/比較/選択処理器を具現化することができる。As shown in FIG. 3, two processing elements that use the same state metric can be grouped and bundled into one processing element. That is,
Since addition / comparison / selection processing for two states is performed by one processing element, in the case of 64 state modes, an addition / comparison / selection processor is implemented by 32 processing elements (PE0 to PE31). can do.
【0022】前述したような加算/比較/選択処理器
は、一つのプロセシング要素で一つの状態を処理するよ
うに具現化されたものの更に改善する必要がある。すな
わち、最近、特定用途集積回路(ASIC)又は専用集積
回路の製造技術が急速に発展するにつれて、一つのプロ
セシング要素で少なくとも二つ以上の状態が処理できる
ハードウエアを具現化することによりASIC設計時の
面積効率を更に向上させる必要性が高まりつつある。Although the add / compare / select processor as described above is embodied to process one state with one processing element, there is a need for further improvement. In other words, recently, as the technology for manufacturing an application specific integrated circuit (ASIC) or a dedicated integrated circuit has rapidly developed, a hardware that can process at least two or more states with one processing element has been realized. There is an increasing need to further improve the area efficiency.
【0023】[0023]
【発明が解決しようとする課題】本発明は前記の問題点
を解決するために案出されたものであり、本発明の目的
は、一つのプロセシング要素で複数個の状態に対する加
算/比較/選択処理が行われるように具現化することに
より、ASIC設計時の面積効率を向上することができ
る加算/比較/選択処理器を提供することにある。SUMMARY OF THE INVENTION The present invention has been devised to solve the above problems, and an object of the present invention is to add / compare / select a plurality of states with one processing element. An object of the present invention is to provide an addition / comparison / selection processor that can be implemented to perform processing and thereby improve the area efficiency at the time of ASIC design.
【0024】[0024]
【課題を解決するための手段】前記目的を達成するため
に本発明による加算/比較/選択処理器は、重畳符号に
対する最尤復号を行うためのビタビデコーダにおいて、
二つの経路メートルと二つのブランチメートルを入力し
て、それぞれ加算した値を相互比較し、前記比較結果に
応じる二つの判定ビットと二つの状態メートルを出力す
るN個のプロセシング要素と、N個の状態に対する前記
N個のプロセシング要素を同一な状態メートルと同一な
ブランチメートルを用いるK単位のプロセシング要素に
グループ化させるためのグルーピング部と、前記グルー
ピング結果に応じて供給されるL(ここで、Lは2K)個
の経路メートルを所定のクロック信号に応じて二つの経
路メートルに多重化して対応するプロセシング要素に出
力するための多重化部と、前記対応するプロセシング要
素から出力される二つの判定ビットを入力して、前記ク
ロック信号に応じてL個の判定ビットに逆多重化して出
力する第1逆多重化部と、前記対応するプロセシング要
素から出力される二つの状態メートルを入力して、前記
クロック信号に応じてL個の状態メートルに逆多重化し
て出力する第2逆多重化部とを含むことを特徴とする。According to a first aspect of the present invention, there is provided a Viterbi decoder for performing maximum likelihood decoding on a superimposed code.
Two path meters and two branch meters are input, the added values are compared with each other, and two processing bits for outputting two decision bits and two state meters according to the comparison result, and N processing elements are provided. A grouping unit for grouping the N processing elements for a state into processing units in K units using the same state meter and the same branch meter, and L supplied according to the grouping result (here, L Is a multiplexing unit for multiplexing 2K) path meters into two path meters according to a predetermined clock signal and outputting the multiplexed path meters to corresponding processing elements, and two determination bits output from the corresponding processing elements. , And demultiplexes the L decision bits according to the clock signal and outputs the result. And a second demultiplexer that receives the two state meters output from the corresponding processing elements, demultiplexes the state meters into L state meters according to the clock signal, and outputs the demultiplexed state meters. Features.
【0025】[0025]
【発明の実施の形態】以下、本発明の一実施形態を添付
した図面に基づき更に詳細に説明する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an embodiment of the present invention will be described in more detail with reference to the accompanying drawings.
【0026】図4はビタビデコーダにおいて本発明の一
実施形態による加算/比較/選択処理器を示したブロッ
ク図であり、加算/比較/選択処理器は複数個のプロセ
シング要素から構成されているが、説明の便宜上一つの
プロセシング要素のみについて説明することにする。FIG. 4 is a block diagram showing an addition / comparison / selection processor according to an embodiment of the present invention in a Viterbi decoder. The addition / comparison / selection processor comprises a plurality of processing elements. However, only one processing element will be described for convenience of explanation.
【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ビット単
位の状態メートルである。The addition / comparison / selection processor shown in FIG. 4 includes a grouping section 410, a multiplexing section (multiplexer) 420, a processing element 430, and a first demultiplexing section (first demultiplexer). ) 440, a second demultiplexer (second demultiplexer) 450, and a controller 460. Here, the input / output signals of each component will be described. PA0, PA1, PB0, PB1 are
20 is a 6-bit path meter input to 20 and γ
X and γ Y are path metrics in 6-bit units output from the multiplexing unit 420, and λ X and λ Y are processing elements 430
Is a 4-meter branch meter input to
DA0, DA1, DB0, and DB1 are determination bits output from the first demultiplexer 440, and are SA0, SA1, SB0,
SB1 is a 6-bit state meter output from the second demultiplexer 450.
【0028】図4において、グルーピング部410はN個
の状態に対するN個のプロセシング要素を、同一な状態
メートル及び同一なブランチメートルを用いる所定単位
のプロセシング要素にグループ化させるためのものであ
り、ここでは64個の状態モードの場合、一つのプロセ
シング要素で処理できる状態数、すなわちグループ化単
位が四つである場合を例示することにする。Referring to FIG. 4, a grouping unit 410 groups N processing elements for N states into processing elements of a predetermined unit using the same state meter and the same branch meter. In the case of 64 state modes, a case where the number of states that can be processed by one processing element, that is, the number of grouping units is four will be exemplified.
【0029】多重化部420には、四つの経路メートル(P
A0,PA1,PB0,PB1)が入力され、多重化部420
は、クロック信号(CLK)に応じて二つの経路メートル
(γX,γY=PA0,PA1又はPB0,PB1)を選択し
てプロセシング要素430に出力する。The multiplexing section 420 has four path meters (P
A0, PA1, PB0, PB1) are input to the multiplexing unit 420.
Is a two-meter meter according to the clock signal (CLK)
(γ X , γ Y = PA0, PA1 or PB0, PB1) is selected and output to the processing element 430.
【0030】プロセシング要素430は、図3に示された
一般的なプロセシング要素310と同一なものであり、多
重化部420から供給される二つの経路メートル(γX ,γY
)とブランチメートル生成部100(図1参照)から供給さ
れる二つのブランチメートル(λX ,λY )を入力して二
つの判定ビット(第1判定ビット、第2判定ビット)及び
二つの状態メートルを出力する。更に詳細な説明は従来
の技術で前述したため、ここでは省略することにする。The processing element 430 is the same as the general processing element 310 shown in FIG. 3, and includes two path meters (γ X , γ Y) supplied from the multiplexer 420.
) And two branch meters (λ X , λ Y ) supplied from the branch meter generation unit 100 (see FIG. 1), and two decision bits (first decision bit, second decision bit) and two states Output meters. A more detailed description has been given above for the prior art and will not be repeated here.
【0031】第1逆多重化部440には、プロセシング要
素430から出力された二つの判定ビット(第1判定ビッ
ト、第2判定ビット)が入力され、第1逆多重化部440
は、クロック信号に応じて四つの判定ビット(DA0,D
A1,DB0,DB1)に逆多重化して出力する。The first demultiplexer 440 receives the two decision bits (first decision bit and second decision bit) output from the processing element 430, and inputs the first demultiplexer 440.
Are four decision bits (DA0, D
A1, DB0, DB1).
【0032】第2逆多重化部450には、プロセシング要
素430から出力された二つの状態メートルが入力され、
第2逆多重化部450は、クロック信号に応じて四つの状
態メートル(SA0,SA1,SB0,SB1)に逆多重化
して出力する。The second demultiplexer 450 receives the two state meters output from the processing element 430,
The second demultiplexer 450 demultiplexes the four state meters (SA0, SA1, SB0, SB1) according to the clock signal and outputs the demultiplexed state meters.
【0033】次いで、前述したような本発明の加算/比
較/選択処理器の作用及び効果に対して図3及び図4に
基づき更に詳細に説明する。Next, the operation and effect of the above-described addition / comparison / selection processor of the present invention will be described in more detail with reference to FIGS.
【0034】まず、64個の状態モードの場合、図3の
ような構造のプロセシング要素からなる加算/比較/選
択処理器をASIC化するためのプログラムは次の通り
である。ここで用いられたプログラム言語はVHDL(V
ery High Definition Language)である。First, in the case of the 64 state modes, a program for converting an addition / comparison / selection processor composed of processing elements having the structure shown in FIG. 3 into an ASIC is as follows. The programming language used here is 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)も前述したように相互複雑に連結されて
いる。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), sme t (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, b met2, 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 In the above program, T_ACS52 is the name of the processing element when designing the ASIC, and pmet and smet are the path meter and Indicates a state meter. That is, the state meter (smet) is the meter of the state which is calculated and output in the processing element of the addition / comparison / selection processor, and the state meter is used as the path meter (pmet) at the next clock. Is applied to For example, one state meter of the output value of the 0th processing element (PE0) is input as one path meter of the input value of the 0th processing element (PE0), and another state meter of the output value. Is 16
One of the input values of the processing element (PE16) is input as a path meter. In addition, one state meter of the output value of the first processing element (PE1) is input as another path meter of the input value of the zeroth processing element (PE0), and another state of the output value is another state meter. Meter is the 16th processing element
It is input as another path meter of the input value of (PE16). Similarly, the remaining processing elements (PE
2 to PE31) are also connected to each other in a complicated manner as described above.
【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)を用いる。On the other hand, in the above program, the input values of each processing element will be described.
12, PE14, PE21, PE23, PE27, PE29
Use (bmet0, bmet3) as a branch meter in common, and use PE1, PE3, PE13, PE15, PE20, PE
22, PE24, PE26 commonly use (bmet1, bmet2) as a branch meter, and PE4, PE6, PE8, P
E10, PE17, PE19, PE29, PE31 commonly use (bmet3, bmet0) as the branch meter,
5, PE7, PE9, PE11, PE16, PE18, PE2
8. The PE 30 commonly uses (bmet2, bmet1) as a branch meter. That is, states 0, 2, 12, 14, 2
1,23,27,29,32,34,44,46,53,55,5
7, 59 uses (bmet0, bmet3), and states 1, 3, 13, 15,
20, 22, 24, 26, 33, 35, 45, 47, 52, 54,
56,58 use (bmet1, bmet2), state 4,6,8,10,
17, 19, 29, 31, 36, 38, 40, 42, 49, 51,
61,63 use (bmet3, bmet0), state 5,7,9,11,
16, 18, 28, 30, 37, 39, 41, 43, 48, 50,
60 and 62 use (bmet2, bmet1).
【0037】本発明による加算/比較/選択処理器にお
いて、グルーピング部410ではグループ化単位を該シス
テムの動作最高速度とASICセルライブラリーの特性
に応じて決定する。例えば、チップのサイズが0.5ミ
クロンであるASICセルライブラリーを用い、動作最
高速度を80MHz以上に仮定する場合、(bmet0,bmet
3)を用いる八つのプロセシング要素を四つのグループ
に、(bmet1,bmet2)を用いる八つのプロセシング要素を
四つのグループに、(bmet3,bmet0)を用いる八つのプロ
セシング要素を四つのグループに、(bmet2,bmet1)を用
いる八つのプロセシング要素を四つのグループに束ね
る。In the addition / comparison / selection processor according to the present invention, the grouping unit 410 determines the grouping unit according to the maximum operation speed of the system and the characteristics of the ASIC cell library. For example, if an ASIC cell library having a chip size of 0.5 micron is used and the maximum operation speed is assumed to be 80 MHz or more, (bmet0, bmet
Eight processing elements using (3) into four groups, eight processing elements using (bmet1, bmet2) into four groups, eight processing elements using (bmet3, bmet0) into four groups, (bmet2 , bmet1) bundles the eight processing elements into four groups.
【0038】多重化部420ではグルーピング部410でグル
ープ化された二単位のプロセシング要素の入力である四
つの6ビット経路メートルPA0,PA1,PB0,PB
1を入力して、クロック信号(CLK)に応じて経路メー
トルPA0とPA1又は経路メートルPB0とPB1を
選択して出力する。ここで、クロック信号(CLK)は制
御部460から供給され、多重化部420の選択信号として動
作する。すなわち、クロック(CLK)が“ハイ”論理レ
ベルの場合には経路メートルPA0とPA1が選択さ
れ、クロック(CLK)が“ロー”論理レベルの場合には
経路メートルPB0とPB1が選択されてプロセシング
要素430に供給される。同じく、これと逆の場合も成り
立つ。The multiplexing section 420 has four 6-bit path meters PA0, PA1, PB0, PB which are inputs of the two-unit processing elements grouped by the grouping section 410.
1, the path meters PA0 and PA1 or the path meters PB0 and PB1 are selected and output according to the clock signal (CLK). Here, the clock signal (CLK) is supplied from the control unit 460 and operates as a selection signal of the multiplexing unit 420. That is, when the clock (CLK) is at the “high” logic level, the path meters PA0 and PA1 are selected, and when the clock (CLK) is at the “low” logic level, the path meters PB0 and PB1 are selected and the processing elements are selected. Supplied to 430. Similarly, the opposite is true.
【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判定ビットに応じて一つの
加算値が選択されて状態メートルとして出力される。In the processing element 430, the path meter (γ X , γ Y = PA) selected and output from the multiplexing unit 420
0, PA1 or PB0, PB1) and the branch meter (λ X , λ Y ) from the branch meter generation unit 100 (see FIG. 2).
To output two decision bits (ie, a first decision bit and a second decision bit) and two state meters. Since the processing element 430 processes two states using the same state meter, two result values are generated respectively. That is, the first addition value is output after the path metric gamma X and branch metric lambda X are added, the path metric gamma Y and branch metric lambda Y is second added value is output after being added. On the other hand, the third added value is output after the path metric gamma X and branch metric lambda Y is added, the route metric gamma Y and branch metric lambda X is fourth added value is output after being added. The first addition value and the second addition value are compared with each other, and the third addition value and the fourth addition value are compared with each other, and then the first determination bit and the second determination bit are “0” or “1” according to the comparison result. Is output. First
The determination bit or the second determination bit is used as a signal for selecting one of the two additional values, but one additional value is selected according to the first determination bit or the second determination bit. Output as meters.
【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
では前記判定ビットを用いて元の情報シーケンスを復元
する。The first demultiplexer 440 receives the first decision bit and the second decision bit output from the processing element 430, performs demultiplexing according to the clock signal (CLK), and performs four decision bits. (DA0, DA1, DB0, DB1)
Is output. That is, the first determination bit and the second determination bit are output as DA0 and DA1 while the clock signal (CLK) is at the “high” logic level, and the first determination bit and the second determination bit are output during the “low” logic level. Two decision bits are output at DB0 and DB1. Similarly, the opposite is true. At this time, the four determination bits (DA0, DA1, DB0, DB1) output per one clock cycle are stored in the surviving memory unit 300 (see FIG.
Then, the original information sequence is restored using the decision bit.
【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)
は対応するプロセシング要素に供給される。The second demultiplexer 450 receives the first state meter and the second state meter output from the processing element 430, performs demultiplexing according to the clock signal (CLK), and performs four state meters. (SA0, SA1, SB0, S
B1) is output. That is, while the clock signal (CLK) is at the “high” logic level, the first state meter and the second
The state meters are output at SA0 and SA1, and the first and second state meters are output at SB0 and SB1 while at the "low" logic level. Similarly, the opposite is true. At this time, four state meters (SA0, SA1, SB0, SB1) output per clock cycle.
Is supplied to the corresponding processing element.
【0042】制御部460では、多重化部420、第1逆多重
化部440と第2逆多重化部450の動作を制御するためのク
ロック信号(CLK)を生成して出力し、1クロック周期
当りの多重化部420と第1及び第2逆多重化部440,450の
動作回数を制御する。ここでは、クロック信号(CLK)
の一周期当り2回の動作を行うように設定されたが、よ
り小さいASICセルライブラリー技術を用いたり又は
欧州のディジタル画像放送(DVB)規格の80MHzよ
り低い周波数で動作させる場合には4回以上の動作を行
うこともできる。The control section 460 generates and outputs a clock signal (CLK) for controlling the operations of the multiplexing section 420, the first demultiplexing section 440 and the second demultiplexing section 450, and outputs one clock cycle. The number of operations of the multiplexing unit 420 and the first and second demultiplexing units 440 and 450 is controlled. Here, the clock signal (CLK)
Is set to perform twice per cycle, but four times when using a smaller ASIC cell library technology or when operating at a frequency lower than the 80 MHz of the European Digital Video Broadcasting (DVB) standard. The above operation can also be performed.
【0043】結局、64個の状態モードの場合、従来に
は同一な状態メートルを用いる二つの状態を一つのプロ
セシング要素で処理したため、32個のプロセシング要
素が必要であったが、本発明によると、同一な状態メー
トルを用いる32個のプロセシング要素に対して同一な
ブランチメートルを用いるプロセシング要素を二つの単
位でグループ化させることにより、16個のプロセシン
グ要素のみが必要になり、ハードウエアの面積を50%
程度縮められる。これは、単にプロセシング要素の数を
減らして面積を縮めたことではない。すなわち、ASI
Cはセル領域と接続領域とから構成されるが、プロセシ
ング要素におけるブランチメートルの共有を通して接続
領域を大幅に減らしたものである。As a result, in the case of the 64 state modes, two states using the same state meter were conventionally processed by one processing element, so that 32 processing elements were required. By grouping the processing elements using the same branch meter into two units for the 32 processing elements using the same state meter, only 16 processing elements are needed, and the area of the hardware is reduced. 50%
To a degree. This is not merely a reduction in area by reducing the number of processing elements. That is, ASI
C is composed of a cell area and a connection area, but the connection area is greatly reduced through the sharing of the branch meter in the processing element.
【0044】[0044]
【発明の効果】以上、本発明によると、N個の状態モー
ドの場合、同一な状態メートルを用いるN/2個のプロ
セシング要素に対して同一なブランチメートルを用いる
L個単位のプロセシング要素にグループ化させることに
より、N/2L個のプロセシング要素のみが必要にな
り、ASICに所要されるハードウエアの面積を著しく
縮めることができる。As described above, according to the present invention, in the case of N state modes, N / 2 processing elements using the same state meter are grouped into L unit processing elements using the same branch meter. By doing so, only N / 2L processing elements are required, and the area of hardware required for the ASIC can be significantly reduced.
【0045】本発明は前記実施形態に限られず、本発明
が属した技術的思想内で当分野において通常の知識を有
する者により多くの変形が可能であることは明らかであ
る。It is obvious that the present invention is not limited to the above-described embodiment, and that many modifications can be made by those skilled in the art within the technical idea to which the present invention belongs.
【図1】ビタビ復号化アルゴリズムに用いられるトレリ
ス図を示す図である。FIG. 1 is a diagram showing a trellis diagram used for a Viterbi decoding algorithm.
【図2】一般的なビタビデコーダを示したブロック図で
ある。FIG. 2 is a block diagram showing a general Viterbi decoder.
【図3】図2に示された加算/比較/選択処理器を構成
するプロセシング要素を示したブロック図である。FIG. 3 is a block diagram illustrating processing elements included in the addition / comparison / selection processor illustrated in FIG. 2;
【図4】ビタビデコーダにおいて本発明の一実施形態に
よる加算/比較/選択処理器を示したブロック図であ
る。FIG. 4 is a block diagram illustrating an addition / comparison / selection processor according to an embodiment of the present invention in a Viterbi decoder.
410 グルーピング部 420 多重化部 430 プロセシング要素 440 第1逆多重化部 450 第2逆多重化部 410 Grouping unit 420 Multiplexing unit 430 Processing element 440 First demultiplexing unit 450 Second demultiplexing unit
Claims (5)
ビタビデコーダにおいて、 二つの経路メートルと二つのブランチメートルを入力し
て、それぞれ加算した値を相互比較し、前記比較結果に
応じる二つの判定ビットと二つの状態メートルを出力す
るN個のプロセシング要素と、 N個の状態に対する前記N個のプロセシング要素を同一
な状態メートルと同一なブランチメートルを用いるK単
位のプロセシング要素にグループ化させるためのグルー
ピング部と、 前記グルーピング結果に応じて供給されるL(ここで、
Lは2K)個の経路メートルを所定のクロック信号に応
じて二つの経路メートルに多重化して前記N個のプロセ
シング要素のうち対応するプロセシング要素に出力する
ための多重化部と、 前記対応するプロセシング要素から出力される二つの判
定ビットを入力して、前記クロック信号に応じてL個の
判定ビットに逆多重化して出力する第1逆多重化部と、 前記対応するプロセシング要素から出力される二つの状
態メートルを入力して、前記クロック信号に応じてL個
の状態メートルに逆多重化して出力する第2逆多重化部
とを含むことを特徴とするビタビデコーダにおける加算
/比較/選択処理器。1. A Viterbi decoder for performing maximum likelihood decoding on a superimposed code, comprising: two path meters and two branch meters are input, and the added values are compared with each other, and two determinations are made according to the comparison result. N processing elements for outputting bits and two state meters; and for grouping the N processing elements for the N states into processing units in K units using the same state meter and the same branch meter. A grouping unit, L supplied according to the grouping result (here,
L is a multiplexing unit for multiplexing 2K) path meters into two path meters according to a predetermined clock signal and outputting the multiplexed path meters to a corresponding processing element among the N processing elements; A first demultiplexer that receives two decision bits output from the element and demultiplexes and outputs the L decision bits according to the clock signal and outputs the result; and a second demultiplexer that outputs the corresponding processing element. And a second demultiplexer for receiving the two state meters, demultiplexing the L state meters according to the clock signal, and outputting the L state meters. .
ロック信号を発生させ、1クロック周期当り前記多重化
部と前記第1及び第2逆多重化部の動作回数を制御する
制御部を更に備えることを特徴とする請求項1に記載の
ビタビデコーダにおける加算/比較/選択処理器。2. The addition / comparison / selection processor includes a control unit that generates the clock signal and controls the number of operations of the multiplexing unit and the first and second demultiplexing units per clock cycle. The addition / comparison / selection processor in the Viterbi decoder according to claim 1, further comprising:
状態に対するグルーピング単位を四つの状態にすること
を特徴とする請求項1に記載のビタビデコーダにおける
加算/比較/選択処理器。3. The addition / comparison / selection processor in the Viterbi decoder according to claim 1, wherein the grouping unit sets four grouping units for a total of 64 states.
クロック周期に対して、“ハイ”論理レベルである区間
と“ロー”論理レベルである区間に応じて多重化が行わ
れることを特徴とする請求項1に記載のビタビデコーダ
における加算/比較/選択処理器。4. The multiplexing unit according to claim 1, wherein said clock signal is
2. The addition / comparison / selection in the Viterbi decoder according to claim 1, wherein multiplexing is performed in accordance with a section having a "high" logic level and a section having a "low" logic level with respect to a clock cycle. Processor.
は前記クロック信号の1クロック周期に対して、“ハ
イ”論理レベルである区間と“ロー”論理レベルである
区間に応じて逆多重化が行われることを特徴とする請求
項1に記載のビタビデコーダにおける加算/比較/選択
処理器。5. The first demultiplexer and the second demultiplexer respond to one clock cycle of the clock signal according to a section having a “high” logic level and a section having a “low” logic level. 2. The addition / comparison / selection processor in the Viterbi decoder according to claim 1, wherein demultiplexing is performed.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1019960035229A KR100195745B1 (en) | 1996-08-23 | 1996-08-23 | Add compare selecter of vitervi decoder |
| KR1996-35229 | 1996-08-23 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10200421A true JPH10200421A (en) | 1998-07-31 |
Family
ID=19470598
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9226267A Pending JPH10200421A (en) | 1996-08-23 | 1997-08-22 | Adding/comparing/selecting processor for viterbi decoder |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5928378A (en) |
| JP (1) | JPH10200421A (en) |
| KR (1) | KR100195745B1 (en) |
| CN (1) | CN1183681A (en) |
| GB (1) | GB2316587A (en) |
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 (en) * | 1997-06-30 | 2002-10-28 | 松下電器産業株式会社 | Arithmetic processing method and apparatus |
| 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 (en) * | 1998-12-18 | 2002-10-08 | テレフォンアクチーボラゲット エル エム エリクソン(パブル) | Method and apparatus for fast recursive maximum decoding |
| DE19937506A1 (en) * | 1999-08-09 | 2001-04-19 | Infineon Technologies Ag | ACS unit for a Viterbi decoder |
| 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 (en) * | 2003-02-18 | 2010-01-11 | Квелкомм Инкорпорейтед | Multiplexing commands with code division in a multiplexing channel with code division |
| DE10310812B4 (en) * | 2003-03-12 | 2007-11-22 | Infineon Technologies Ag | Decoding device, trellis processor and method |
| US20040255230A1 (en) * | 2003-06-10 | 2004-12-16 | Inching Chen | Configurable decoder |
| DE102004003096B3 (en) * | 2004-01-21 | 2005-11-24 | Infineon Technologies Ag | Circuit for performing the Add Compare Select operation with additional functionality |
| 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 (en) * | 2008-07-09 | 2012-03-21 | 上海华为技术有限公司 | Difference value toplimit acquiring method, point fixing method and apparatus |
| TWI422165B (en) * | 2009-10-16 | 2014-01-01 | Mstar Semiconductor Inc | Decoding method and associated apparatus |
| KR102025338B1 (en) * | 2011-12-28 | 2019-09-26 | 삼성전자 주식회사 | Signal processing device, display apparatus having the same, and method for signal processing |
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/en 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/en active Pending
- 1997-08-25 CN CN97116210A patent/CN1183681A/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| KR19980015791A (en) | 1998-05-25 |
| KR100195745B1 (en) | 1999-06-15 |
| GB9717810D0 (en) | 1997-10-29 |
| GB2316587A (en) | 1998-02-25 |
| US5928378A (en) | 1999-07-27 |
| CN1183681A (en) | 1998-06-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH10200421A (en) | Adding/comparing/selecting processor for viterbi decoder | |
| US4905317A (en) | Path memory control method in Viterbi decoder | |
| EP0896436B1 (en) | Viterbi decoder | |
| US4606027A (en) | Error correction apparatus using a Viterbi decoder | |
| CN1099165C (en) | Viterbi decoder | |
| EP1102408B1 (en) | Viterbi decoder | |
| JP5618247B2 (en) | Method and apparatus for soft output viterbi detection using a multi-step trellis | |
| JP2996615B2 (en) | Viterbi decoding apparatus and method | |
| KR100212836B1 (en) | Architecture of traceback procedure in a viterbi decoder | |
| JP2000209106A (en) | Realization by minimum amount of memory of high-speed viterbi decoder | |
| KR100195741B1 (en) | Variable rate Viterbi decoder | |
| US5802115A (en) | Convolution decoder using the Viterbi algorithm | |
| KR0135796B1 (en) | Traceback processing apparatus in viterbi decorder | |
| 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 (en) | Viterbi decoding circuit | |
| EP1192719A1 (en) | Viterbi decoder | |
| KR20040031323A (en) | Recording apparatus and method for path metrics of vitervi decoder | |
| KR100410995B1 (en) | survivor path memory management method using immediate traceback algorithm for Viterbi decoder and apparatus for the same | |
| KR0148060B1 (en) | Memory Optimal Structure for ACS of Viterbi Decoder | |
| US20100185925A1 (en) | Differential Locally Updating Viterbi Decoder | |
| JPH1056389A (en) | Path memory unit for viterbi decoder | |
| KR100359805B1 (en) | Viterbi decoder and method for decoding in viterbi decoder | |
| JP2004120791A (en) | Viterbi decoder |