JP2018207248A - Viterbi decoding device and viterbi decoding method - Google Patents

Viterbi decoding device and viterbi decoding method Download PDF

Info

Publication number
JP2018207248A
JP2018207248A JP2017109057A JP2017109057A JP2018207248A JP 2018207248 A JP2018207248 A JP 2018207248A JP 2017109057 A JP2017109057 A JP 2017109057A JP 2017109057 A JP2017109057 A JP 2017109057A JP 2018207248 A JP2018207248 A JP 2018207248A
Authority
JP
Japan
Prior art keywords
value
acs
branch metric
viterbi decoding
path metric
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.)
Granted
Application number
JP2017109057A
Other languages
Japanese (ja)
Other versions
JP7007115B2 (en
Inventor
雄慈 狩野
Yuuji Kanou
雄慈 狩野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Platforms Ltd
Original Assignee
NEC Platforms Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2017109057A priority Critical patent/JP7007115B2/en
Publication of JP2018207248A publication Critical patent/JP2018207248A/en
Application granted granted Critical
Publication of JP7007115B2 publication Critical patent/JP7007115B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

To improve an error correction capability and to accelerate Viterbi decoding processing when decoding data that are encoded by using a convolution code, by Viterbi decoding.SOLUTION: A Viterbi decoding device 20 comprises: an ACS arithmetic part 21 for performing ACS arithmetic operations relating to multiple branch metric values and path metric values in a parallel or pseudo parallel manner when performing Viterbi decoding on input data that are encoded by using a convolution code; a storage part 22 for storing the branch metric values and the path metric values that are calculated by the ACS arithmetic part 21; and a trace back part 23 which generates a readout address for reading a path metric value out of the storage part 22 by shift-inputting a last read-out path metric value to a barrel shifter 230 indicating the readout address in the case of trace back to the path metric value.SELECTED DRAWING: Figure 9

Description

本願発明は、畳み込み符号を用いて符号化された情報を、ビタビ復号によって復号する技術に関する。   The present invention relates to a technique for decoding information encoded using a convolutional code by Viterbi decoding.

マイクロ波通信システム、あるいは、基地局間を通信するシステム等におけるディジタル変調方式を用いた無線通信システム等では、情報を符号化する方式として、畳み込み符号を用いる場合がある。そして、この畳み込み符号によって符号化された情報を復号する方式の一つとして、ビタビ復号が知られている。ビタビ復号の概要について、以下に説明する。   In a radio communication system using a digital modulation method in a microwave communication system or a system for communicating between base stations, a convolutional code may be used as a method for encoding information. Viterbi decoding is known as one of methods for decoding information encoded by this convolutional code. The outline of Viterbi decoding will be described below.

図10は、一般的なビタビ復号の概要を説明する図である。ビタビ復号は、畳み込み符号により符号化された1つの受信データ(シンボルデータ)に対する、ACS(Addition, Compare, Select)演算処理、トレースバック処理、その他リタイミング等の処理を含んでいる。   FIG. 10 is a diagram for explaining the outline of general Viterbi decoding. Viterbi decoding includes ACS (Addition, Compare, Select) operation processing, traceback processing, and other processing such as retiming for one received data (symbol data) encoded by a convolutional code.

ビタビ復号では、受信したシンボルデータに対して、拘束長K(Kはビタビ復号において規定された特定の整数)に応じた状態数2K−1のブランチメトリック値およびパスメトリック値を、ACS演算処理により求める。但し、拘束長Kは、過去の複数のビットを用いて現時点での符号化ビットを得る畳み込み符号において、過去のビットに対する依存長を表す。ブランチメトリック値、パスメトリック値、及び、ACS演算については、ビタビ復号の技術領域において周知であるので、本願ではその詳細な説明を省略する。 In the Viterbi decoding, the branch metric value and the path metric value of the number of states 2 K-1 according to the constraint length K (K is a specific integer defined in the Viterbi decoding) are received from the received symbol data by the ACS calculation process. Ask for. However, the constraint length K represents the dependency length with respect to the past bits in the convolutional code that obtains the current encoded bits using a plurality of past bits. Since the branch metric value, the path metric value, and the ACS calculation are well known in the technical field of Viterbi decoding, detailed description thereof is omitted in the present application.

ACS演算処理で求めたブランチメトリック値は、次に受信するシンボルデータに関する新しいブランチメトリック値を求めるために保持される。ビタビ復号は、次のシンボルデータの受信時に、保持している前のシンボルデータのブランチメトリック値を読み出し、読み出したブランチメトリック値を用いて、新しいブランチメトリック値を求める演算を行う。ビタビ復号では、同様にACS演算処理で求められたパスメトリック値も保持され、保持されたパスメトリック値は、トレースバック処理において読み出される。ビタビ復号は、このようにして、受信したシンボルデータ毎に求められる2K−1個のブランチメトリック値のうちの最大値に基づいて、拘束長Kの例えば4倍(4K)分のシンボルデータに関するパスメトリック値を遡るトレースバック処理を行うことによって、畳み込み符号によって符号化されたデータを復号する。 The branch metric value obtained by the ACS calculation process is held in order to obtain a new branch metric value for the symbol data to be received next. In Viterbi decoding, at the time of receiving the next symbol data, the branch metric value of the previous symbol data held is read, and an operation for obtaining a new branch metric value is performed using the read branch metric value. In Viterbi decoding, the path metric value obtained in the ACS calculation process is also held, and the held path metric value is read in the traceback process. In this way, Viterbi decoding relates to symbol data corresponding to, for example, four times (4K) the constraint length K based on the maximum value of 2 K-1 branch metric values obtained for each received symbol data. By performing a traceback process that traces back the path metric value, the data encoded by the convolutional code is decoded.

このような畳み込み符号とビタビ復号とを用いた通信方式において、誤り訂正能力を向上する手段の一つとして、拘束長Kを大きくすることが知られている。しかしながら、拘束長Kを大きくした場合、必要となる演算量が増大することによって、受信データに関するシンボルレート(変調速度)が低下するので、通信速度が低下するという問題がある。   In a communication system using such a convolutional code and Viterbi decoding, it is known to increase the constraint length K as one means for improving the error correction capability. However, when the constraint length K is increased, the amount of calculation required increases, so that the symbol rate (modulation speed) related to the received data decreases, and thus the communication speed decreases.

このビタビ復号の拘束長Kを大きくした場合における演算量が増大する原因は、ビタビ復号を行うために用いる状態値を表すブランチメトリック値、及び、最尤アドレスに基づいて過去の状態を遡るトレースバック処理に関する状態段数が拘束長Kにより決定することにある。ビタビ復号では、ブランチメトリック値に関する必要とされる状態数は2K−1であり、またトレースバック処理を行う際の状態段数は、拘束長Kの4倍以上が必要とされる。したがって、拘束長Kを大きくしたビタビ復号は、受信したシンボルデータに関する1クロック分の期間において、状態数が2K−1であるブランチメトリック値を求めるACS演算処理と4K個の状態段数を遡るトレースバック処理とを行うことによって演算量が増大するので、受信データに関するシンボルレートの低下を招く問題がある。 The reason why the amount of calculation increases when the constraint length K of Viterbi decoding is increased is that the trace back that traces the past state based on the branch metric value indicating the state value used for Viterbi decoding and the maximum likelihood address The number of state stages related to processing is determined by the constraint length K. In Viterbi decoding, the number of states required for the branch metric value is 2 K−1 , and the number of state stages when performing the traceback processing is required to be four times the constraint length K or more. Therefore, Viterbi decoding with an increased constraint length K is an ACS calculation process for obtaining a branch metric value having a state number of 2 K−1 and a trace that traces back the number of 4K state stages in a period of one clock with respect to received symbol data. Since the amount of calculation increases by performing the back processing, there is a problem that the symbol rate related to the received data is lowered.

次に、上述の問題について具体例を用いて説明する。   Next, the above problem will be described using a specific example.

図11は、拘束長Kを、一般的なビタビ復号において用いられている「7」の2倍である「14」とした場合における一般的なビタビ復号におけるACS演算処理の一例を説明する図である。拘束長Kを「14」としたビタビ復号におけるACS演算処理では、図11に示す通り、メモリAに格納されている、前回に受信したシンボルデータに関する2K−1(即ち213=8192)通りのブランチメトリック値(m0〜m8191)と、新たに受信したシンボルデータから生成される2(即ち214=16384)個の相関値(c0〜c16383)とに基づいて、新たに受信したシンボルデータに関するブランチメトリック値(M0〜M8191)を求める。 FIG. 11 is a diagram for explaining an example of an ACS calculation process in general Viterbi decoding when the constraint length K is “14”, which is twice “7” used in general Viterbi decoding. is there. In the ACS calculation processing in Viterbi decoding with the constraint length K being “14”, as shown in FIG. 11, 2 K−1 (that is, 2 13 = 8192) ways of the symbol data received in the previous time stored in the memory A. Newly received symbol data based on the branch metric values (m0 to m8191) and 2 K (ie, 2 14 = 16384) correlation values (c0 to c16383) generated from the newly received symbol data. Branch metric values (M0 to M8191) are obtained.

このACS演算では、まず、前回に受信したシンボルデータに関する先頭のブランチメトリック値m0と相関値c0とを加算した値をz0として算出する。ACS演算では、次に、前回に受信したシンボルデータに関する8192個のブランチメトリック値を図11に示すように、前半部分と後半部分とに2分割したと仮定して、その後半部分における先頭のブランチメトリック値m4096と、相関値c1とを加算したz1を算出する。そして、算出したz0及びz1のうち、大きい方を新たなブランチメトリック値M0として算出する。尚、以下の本願の説明(図面を含む)においても、ブランチメトリックの値域に関して、同様に、その値域の「前半部分(部)」及び「後半部分(部)」なる表現を採用することとする。   In this ACS calculation, first, a value obtained by adding the first branch metric value m0 and the correlation value c0 regarding the symbol data received last time is calculated as z0. In the ACS calculation, it is assumed that 8192 branch metric values relating to the symbol data received last time are divided into two parts, that is, the first half part and the second half part as shown in FIG. Z1 obtained by adding the metric value m4096 and the correlation value c1 is calculated. Then, the larger one of the calculated z0 and z1 is calculated as a new branch metric value M0. In the following description (including drawings) of the present application, the expression “first half part (part)” and “second half part (part)” of the range is similarly adopted for the range value of the branch metric. .

ACS演算では、同様に、ブランチメトリック値m0と相関値c2とを加算したz2と、ブランチメトリック値m4096と相関値c3とを加算したz3とを算出し、算出したz2及びz3のうち、大きい方を新たなブランチメトリック値M1として算出する。   In the ACS calculation, similarly, z2 obtained by adding the branch metric value m0 and the correlation value c2 and z3 obtained by adding the branch metric value m4096 and the correlation value c3 are calculated, and the larger one of the calculated z2 and z3. Is calculated as a new branch metric value M1.

ACS演算では、新たに受信したシンボルデータに関して、このような演算を繰り返し実行し、最後に、ブランチメトリック値m4095と相関値c16382とを加算したz16382と、ブランチメトリック値m8191と相関値c16383とを加算したz16383とを算出し、算出したz16382及びz16383のうち、大きい方を新たなブランチメトリック値M8191として算出する。   In the ACS calculation, such calculation is repeatedly executed for newly received symbol data, and finally z16382 obtained by adding the branch metric value m4095 and the correlation value c16382, the branch metric value m8191, and the correlation value c16383 are added. Z16383 is calculated, and the larger one of the calculated z16382 and z16383 is calculated as a new branch metric value M8191.

図12は、拘束長Kを「14」とした場合における一般的なビタビ復号におけるトレースバック処理の一例を説明する図である。そして、このビタビ復号では、得られたブランチメトリック値の最大値に基づく最尤アドレスを起点として、4K(即ち、4x14=56)個(「x」は乗算を表す演算子)の、時間(t−1)乃至(t−56)に受信したシンボルデータに関するパスメトリック値を遡るトレースバック処理を行なう。このトレースバック処理では、パスメトリック値を格納したメモリからパスメトリック値を読み出し、そのパスメトリック値に基づいて、次の読み出しアドレスを生成することを繰り返し行なう。そして、ビタビ復号では、ACS演算の処理時間taとトレースバック処理の処理時間tbとを合計した処理時間「ta+tb」が、受信したシンボルデータに関する1クロック分の期間(Tdata)内になることが要求される。   FIG. 12 is a diagram illustrating an example of a traceback process in general Viterbi decoding when the constraint length K is “14”. In this Viterbi decoding, 4K (ie, 4 × 14 = 56) (“x” is an operator representing multiplication) time (t) starting from the maximum likelihood address based on the maximum value of the obtained branch metric value. -1) to (t-56), a traceback process is performed to trace back the path metric value regarding the received symbol data. In this traceback processing, the path metric value is read from the memory storing the path metric value, and the next read address is generated based on the path metric value. In Viterbi decoding, the processing time “ta + tb”, which is the sum of the processing time ta of the ACS operation and the processing time tb of the traceback processing, is required to be within the period (Tdata) for one clock related to the received symbol data. Is done.

拘束長Kが「7」である一般的なビタビ復号の場合、状態数は、2(7−1)(即ち64)であり、トレースバック処理を行う対照とする状態の段数は、「7x4」(即ち28)段となる。これに対し、誤り訂正能力を向上させるために拘束長Kを「14」としたビダビ復号の場合、状態数は、2(14−1)(即ち8192)であり、トレースバック処理を行う際の状態段数は、「14x4」(即ち56)段となる。このようにビタビ復号の誤り訂正能力を向上させるために拘束長Kを大きくした場合、演算が複雑化して演算量が増大すると共に、ビタビ復号に要する時間が長くなり、受信データに関するシンボルレートが低下する。したがって、ビタビ復号において、誤り訂正能力を向上すると共に、復号処理を高速化する技術への期待が高まってきている。 In the case of general Viterbi decoding with a constraint length K of “7”, the number of states is 2 (7-1) (that is, 64), and the number of stages in the state for performing the traceback processing is “7 × 4”. (Ie 28) stages. On the other hand, in the case of Viterbi decoding in which the constraint length K is “14” in order to improve the error correction capability, the number of states is 2 (14-1) (ie, 8192), and the traceback processing is performed. The number of state stages is “14 × 4” (ie, 56) stages. When the constraint length K is increased in order to improve the error correction capability of Viterbi decoding in this way, the calculation becomes complicated and the amount of calculation increases, and the time required for Viterbi decoding increases, and the symbol rate for received data decreases. To do. Therefore, in Viterbi decoding, there is an increasing expectation for a technique that improves error correction capability and speeds up the decoding process.

このような技術に関連する技術として、特許文献1には、ACS計算回路を並列に設けて、ACS算出処理を並列に行うビタビ復号器が開示されている。このビタビ復号器は、各ACS計算回路に対して、夫々2つのパスメトリックメモリを備え、リード/ライト動作を交互に時分割に処理する。   As a technique related to such a technique, Patent Document 1 discloses a Viterbi decoder in which an ACS calculation circuit is provided in parallel and an ACS calculation process is performed in parallel. This Viterbi decoder includes two path metric memories for each ACS calculation circuit, and alternately processes read / write operations in a time division manner.

また、特許文献2には、回路のレイテンシを増加することなくパスメトリックの溢れを防止するビタビ復号回路が開示されている。このビタビ復号回路は、ACS回路内に減算回路を設け、主の比較回路において、各パスメトリックが予め定めた閾値以上である場合に警告信号を出力する。そして、各ACS回路は、警告信号を基にパスメトリックから予め定めた減算値を減じることによって、同じACS処理のクロック内において、減算処理を行う。   Patent Document 2 discloses a Viterbi decoding circuit that prevents overflow of path metrics without increasing circuit latency. The Viterbi decoding circuit includes a subtracting circuit in the ACS circuit, and outputs a warning signal when each path metric is equal to or greater than a predetermined threshold in the main comparison circuit. Each ACS circuit performs subtraction processing within the same ACS processing clock by subtracting a predetermined subtraction value from the path metric based on the warning signal.

また、特許文献3には、演算精度を犠牲にすることなく、実現可能な回路規模で、ACS演算の処理効率を向上させるビタビ復号装置が開示されている。このビタビ復号装置におけるパスメトリック記憶装置は、読み出しと書き込みとをACS処理のステージ毎に交互に切り替えるので、2バンク構成のパスメトリック記憶回路を有する。このビタビ復号装置では、パスメトリック記憶回路を2個の記憶装置に分割し、パスメトリックをパイプライン処理の順に記憶することにより、連続的にパイプライン処理を行う。   Patent Document 3 discloses a Viterbi decoding device that improves the processing efficiency of ACS computation with a feasible circuit scale without sacrificing computation accuracy. The path metric storage device in this Viterbi decoding device has a two-bank path metric storage circuit because it alternately switches between reading and writing for each stage of ACS processing. In this Viterbi decoding device, the path metric storage circuit is divided into two storage devices, and the path metrics are stored in the order of the pipeline processing, thereby continuously performing the pipeline processing.

また、特許文献4には、トレースバック処理時に溯るべき状態遷移履歴の数を削減することにより、トレースバック処理を高速化したビタビ復号器が開示されている。このビタビ復号器におけるブランチメトリック処理部は、前時刻の状態から現状態に至るすべてのパスについてブランチメトリック値を算出する。このビタビ復号器におけるACS処理部は、ブランチメトリックおよびパスメトリックにより現時刻の各状態へ至るパスの中から最尤パスを選択し、そのパスが選択された場合における復号データ候補、復号データの格納位置、及び、更新されたパスメトリックを出力して、状態遷移履歴を追加する。このビタビ復号器におけるトレースバック処理部は、パスメトリックメモリに記憶されているパスメトリックから、現在の時刻における最尤パスを推定し、復号データ格納位置メモリを参照することにより得られるパスメモリ中のエントリノードから、パスメモリ中の状態遷移履歴を遡る。   Patent Document 4 discloses a Viterbi decoder that speeds up the traceback processing by reducing the number of state transition histories that should be obtained during the traceback processing. The branch metric processing unit in this Viterbi decoder calculates branch metric values for all paths from the previous time state to the current state. The ACS processing unit in this Viterbi decoder selects the maximum likelihood path from the paths to each state at the current time based on the branch metric and the path metric, and stores the decoded data candidates and decoded data when the path is selected. The position and the updated path metric are output, and the state transition history is added. The traceback processing unit in this Viterbi decoder estimates the maximum likelihood path at the current time from the path metric stored in the path metric memory, and refers to the decoded data storage location memory. The state transition history in the path memory is traced back from the entry node.

特開平08-340262号公報Japanese Unexamined Patent Publication No. 08-340262 特開2002-009636号公報JP 2002-009636 A 特開平10-107651号公報JP-A-10-107651 特開2000-261330号公報JP 2000-261330 A

本願発明の主たる目的は、ビタビ復号において、誤り訂正能力を向上すると共に、復号処理を高速化することを、上述した特許文献等により開示された技術よりも、さらに高度に実現するビタビ復号装置等を提供することである。   The main object of the present invention is to provide a Viterbi decoding device and the like that achieves a higher degree of improvement in error correction capability and speeding up the decoding process in Viterbi decoding than the techniques disclosed in the above-mentioned patent documents. Is to provide.

本願発明の一態様に係るビタビ復号装置は、畳み込み符号を用いて符号化された入力データに対するビタビ復号を行なう場合に、ブランチメトリック値及びパスメトリック値に関する複数のACS(Addition、Compare、Select)演算を、並列あるいは擬似並列に行なうACS演算手段と、前記ACS演算手段によって求められた前記ブランチメトリック値、及び、前記パスメトリック値を記憶する記憶手段と、前記パスメトリック値に対するトレースバックにおいて、前記記憶手段から前記パスメトリック値を読み出す読み出しアドレスを、前記読み出しアドレスを示すバレルシフタに対して、前回読み出した前記パスメトリック値をシフト入力することにより生成するトレースバック手段と、を備える。   A Viterbi decoding device according to an aspect of the present invention provides a plurality of ACS (Addition, Compare, Select) operations related to branch metric values and path metric values when Viterbi decoding is performed on input data encoded using a convolutional code. In parallel or pseudo-parallel, storage means for storing the branch metric value and path metric value obtained by the ACS calculation means, and traceback for the path metric value, the storage Trace back means for generating a read address for reading the path metric value from the means by shifting the path metric value read last time to a barrel shifter indicating the read address.

上記目的を達成する他の見地において、本願発明の一態様に係るビタビ復号方法は、ACS演算手段によって、畳み込み符号を用いて符号化された入力データに対するビタビ復号を行なう場合に、ブランチメトリック値及びパスメトリック値に関する複数のACS演算を、並列あるいは擬似並列に行い、記憶手段によって、前記ACS演算によって求められた前記ブランチメトリック値、及び、前記パスメトリック値を記憶し、トレースバック手段によって、前記パスメトリック値に対するトレースバックにおいて、前記記憶手段から前記パスメトリック値を読み出す読み出しアドレスを、前記読み出しアドレスを示すバレルシフタに対して、前回読み出した前記パスメトリック値をシフト入力することにより生成する。   In another aspect of achieving the above object, a Viterbi decoding method according to an aspect of the present invention provides a branch metric value and a Viterbi decoding value when the ACS operation means performs Viterbi decoding on input data encoded using a convolutional code. A plurality of ACS operations related to the path metric value are performed in parallel or pseudo-parallel, the branch metric value obtained by the ACS operation and the path metric value are stored by a storage unit, and the path metric value is stored by a traceback unit. In the traceback for the metric value, a read address for reading the path metric value from the storage means is generated by shifting and inputting the previously read path metric value to the barrel shifter indicating the read address.

本願発明は、畳み込み符号を用いて符号化されたデータをビタビ復号によって復号する場合に、誤り訂正能力を向上すると共に、ビタビ復号処理を高速化することを可能とする。   The present invention makes it possible to improve error correction capability and speed up the Viterbi decoding process when data encoded using a convolutional code is decoded by Viterbi decoding.

本願発明の第1の実施形態に係るビタビ復号装置10の構成を示すブロック図である。It is a block diagram which shows the structure of the Viterbi decoding apparatus 10 which concerns on 1st Embodiment of this invention. 本願発明の第1の実施形態に係る相関値生成部110に含まれる相関値生成カウンタ111の構成を示すブロック図である。It is a block diagram which shows the structure of the correlation value production | generation counter 111 contained in the correlation value production | generation part 110 which concerns on 1st Embodiment of this invention. 本願発明の第1の実施形態に係る相関値生成部110が、生成した相関値に対して行なう重み付けの一例を示す図である。It is a figure which shows an example of the weighting with respect to the produced | generated correlation value by the correlation value production | generation part 110 which concerns on 1st Embodiment of this invention. 本願発明の第1の実施形態に係るACS演算部121乃至124が並列に行うACS演算における、データを読み出してから処理結果を書き込むまでの流れを表す図である。It is a figure showing the flow until it reads a process result after reading data in the ACS calculation which the ACS calculating part 121 thru | or 124 which concerns on 1st Embodiment of this invention performs in parallel. 本願発明の第1の実施形態に係るACS演算部121乃至124が、ACS演算によってブランチメトリック値あるいはパスメトリック値を算出する順番を表す図である。It is a figure showing the order which the ACS calculating part 121 thru | or 124 which concerns on 1st Embodiment of this invention calculates a branch metric value or a path metric value by ACS calculation. 本願発明の第1の実施形態に係るACS演算部121によるブランチメトリック値を算出する処理を説明する図である。It is a figure explaining the process which calculates the branch metric value by the ACS calculating part 121 which concerns on 1st Embodiment of this invention. 本願発明の第1の実施形態に係るパスメトリックメモリ制御部150によるトレースバック処理を行う構成を例示する図である。It is a figure which illustrates the structure which performs the traceback process by the path metric memory control part 150 which concerns on 1st Embodiment of this invention. 本願発明の第1の実施形態に係るビタビ復号装置10の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the Viterbi decoding apparatus 10 which concerns on 1st Embodiment of this invention. 本願発明の第2の実施形態に係るビタビ復号装置20の構成を示すブロック図である。It is a block diagram which shows the structure of the Viterbi decoding apparatus 20 which concerns on 2nd Embodiment of this invention. 一般的なビタビ復号の概要を説明する図である。It is a figure explaining the outline | summary of general Viterbi decoding. 一般的なビタビ復号におけるACS演算処理の一例を説明する図である。It is a figure explaining an example of the ACS calculation process in general Viterbi decoding. 一般的なビタビ復号におけるトレースバック処理の一例を説明する図である。It is a figure explaining an example of the traceback process in general Viterbi decoding. 複数のACS演算によるブランチメトリックメモリに対する読み出し制御に競合が発生する場合を例示する図である。It is a figure which illustrates the case where competition arises in the read control with respect to the branch metric memory by several ACS calculation.

以下、本願発明の実施の形態について図面を参照して詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

<第1の実施形態>
図1は、本願発明の第1の実施の形態に係るビタビ復号装置10の構成を概念的に示すブロック図である。図1(その他の図面も同様)において、各構成要素間におけるデータの入出力の方向は、各構成要素を接続する矢印の方向に限定されないこととする。本実施形態に係るビタビ復号装置10は、畳み込み符号を用いて符号化された受信データを、ビタビ復号によって復号する装置である。本実施形態に係るビタビ復号装置10が行なうビタビ復号の拘束長Kは「14」とするが、拘束長Kは「14」に限定されない。ビタビ復号には、軟判定復号を用いる場合と硬判定復号を用いる場合とがあるが、本実施形態に係るビタビ復号装置10は、一例として軟判定復号を用いることとする。軟判定復号及び硬判定復号については周知であるので、その詳細な説明は省略する。
<First Embodiment>
FIG. 1 is a block diagram conceptually showing the structure of the Viterbi decoding apparatus 10 according to the first embodiment of the present invention. In FIG. 1 (the same applies to other drawings), the direction of data input / output between the components is not limited to the direction of the arrows connecting the components. The Viterbi decoding apparatus 10 according to the present embodiment is an apparatus that decodes received data encoded using a convolutional code by Viterbi decoding. The constraint length K of Viterbi decoding performed by the Viterbi decoding apparatus 10 according to the present embodiment is “14”, but the constraint length K is not limited to “14”. Viterbi decoding includes soft decision decoding and hard decision decoding. The Viterbi decoding apparatus 10 according to the present embodiment uses soft decision decoding as an example. Since soft decision decoding and hard decision decoding are well known, detailed description thereof will be omitted.

本実施形態に係るビタビ復号装置10は、相関値生成部110、4個のACS演算部121乃至124、最尤アドレス生成部130、ブランチメトリックメモリ制御部140、ブランチメトリックメモリ141A及び141B、パスメトリックメモリ制御部150、及び、パスメトリックメモリ151を備えている。以下、これら各構成の動作(機能)について、順番に説明する。   The Viterbi decoding apparatus 10 according to the present embodiment includes a correlation value generation unit 110, four ACS calculation units 121 to 124, a maximum likelihood address generation unit 130, a branch metric memory control unit 140, branch metric memories 141A and 141B, a path metric. A memory control unit 150 and a path metric memory 151 are provided. Hereinafter, operations (functions) of these components will be described in order.

<相関値生成部110>
相関値生成部110には、畳み込み符号を用いて符号化された受信データ(入力情報)として、Pch(Pチャネル)軟判定データ(軟判定情報)とQch(Qチャネル)軟判定データ(軟判定情報)とが入力される。本実施形態では、拘束長Kを「14」とするので、相関値生成部110は、14ビットの相関値生成カウンタのカウント値から、生成多項式「(Pch,Qch)=(21675oct,27123oct)」(但しoctは8進数を表す)に従って、2(即ち16384)通りの相関値を生成する。生成多項式については、本願の技術領域において周知であるので、その詳細な説明は省略する。
<Correlation value generator 110>
The correlation value generator 110 receives Pch (P channel) soft decision data (soft decision information) and Qch (Q channel) soft decision data (soft decision) as received data (input information) encoded using a convolutional code. Information). In this embodiment, since the constraint length K is “14”, the correlation value generation unit 110 generates the generator polynomial “(Pch, Qch) = (21675 oct, 27123 oct)” from the count value of the 14-bit correlation value generation counter. According to (where oct represents an octal number), 2 K (ie, 16384) correlation values are generated. Since the generator polynomial is well known in the technical field of the present application, a detailed description thereof will be omitted.

図2は、本実施形態に係る相関値生成部110が含む相関値生成カウンタ111(図1には不図示)の構成を概念的に示すブロック図である。相関値生成部110は、14ビット(第0ビット乃至第13ビット)の相関値生成カウンタ111によって生成される後半(即ち8192〜16383カウント目)の相関値を、図2に例示する通り、0〜8191カウントにおいて生成する相関値を反転することによって生成可能である。したがって、相関値生成部110は、図2に例示する通り、相関値生成に用いる相関値生成カウンタ111のMSB(Most Significant Bit)(即ち第13ビット)を使用せずに、第0ビットから第12ビットまでの相関値生成カウンタ111による0〜8191カウント値より、前述した生成多項式に従って、Pchの相関値(P)及びQchの相関値(Q)を生成する。そして、相関値生成部110は、0〜8191カウントにおける相関値(P)及び相関値(Q)を反転した値を、8192〜16383カウントにおける相関値として生成する。   FIG. 2 is a block diagram conceptually showing the configuration of a correlation value generation counter 111 (not shown in FIG. 1) included in the correlation value generation unit 110 according to this embodiment. As illustrated in FIG. 2, the correlation value generation unit 110 sets the correlation value of the latter half (that is, the 8192 to 16383th count) generated by the 14-bit (0th to 13th bits) correlation value generation counter 111 to 0 It can be generated by inverting the correlation value generated at -8191 counts. Therefore, as illustrated in FIG. 2, the correlation value generation unit 110 does not use the MSB (Most Significant Bit) (that is, the 13th bit) of the correlation value generation counter 111 used for generating the correlation value, but from the 0th bit to the 1st bit. From the 0 to 8191 count values by the correlation value generation counter 111 up to 12 bits, the Pch correlation value (P) and the Qch correlation value (Q) are generated according to the generator polynomial described above. Then, the correlation value generation unit 110 generates a value obtained by inverting the correlation value (P) and the correlation value (Q) at 0 to 8191 counts as the correlation value at 8192 to 16383 counts.

相関値生成部110は、また、後述する4つのACS演算部121乃至124によるACS演算の並列処理化に応じて、並列処理数が「4」であることから、相関値生成カウンタ111のMSBに続く上位2ビットを使用しなくてもよい。相関値生成部110は、使用しないビットによって省略されるカウントにおける相関値に関しては、前述した生成多項式に従い、使用するビットにより生成する相関値に対して、正転、反転制御することによって、その値を生成する。即ち、相関値生成部110は、ACS演算が4並列に処理される場合、図2に示す通り相関値生成カウンタ111におけるMSB、第12ビット,及び、第11ビットを使用せずに、相関値生成カウンタ111による0〜2047カウント値により、4つのACS演算部121乃至124に入力する相関値を生成する。   Correlation value generator 110 also sets the number of parallel processes to “4” in accordance with the parallel processing of ACS calculations by four ACS calculation units 121 to 124 described later. The upper 2 bits that follow may not be used. The correlation value generation unit 110 performs the normal rotation and inversion control on the correlation value generated by the bits to be used in accordance with the above-described generation polynomial, with respect to the correlation value in the count omitted by the unused bits. Is generated. That is, when the ACS calculation is processed in parallel in four, the correlation value generation unit 110 does not use the MSB, the twelfth bit, and the eleventh bit in the correlation value generation counter 111 as shown in FIG. Correlation values to be input to the four ACS calculation units 121 to 124 are generated based on 0 to 2047 count values by the generation counter 111.

本実施形態に係るビタビ復号装置10が例えば8個のACS演算部を備えることによって、ACS演算を8並列処理する場合、図2に示す通り、相関値生成部110は、相関値生成カウンタにおけるMSBから第10ビットまでの上位4ビットを使用しなくてもよい。同様に、ビタビ復号装置10が例えば16個のACS演算部を備えることによって、ACS演算を16並列処理する場合、相関値生成部110は、相関値生成カウンタにおけるMSBから第9ビットまでの上位5ビットを使用しなくてもよい。   When the Viterbi decoding apparatus 10 according to the present embodiment includes, for example, eight ACS calculation units and performs eight ACS calculations in parallel, the correlation value generation unit 110 includes the MSB in the correlation value generation counter as illustrated in FIG. To the 10th bit may not be used. Similarly, when the Viterbi decoding apparatus 10 includes, for example, 16 ACS calculation units, when the ACS calculation is performed in 16 parallel processes, the correlation value generation unit 110 includes the upper 5 bits from the MSB to the ninth bit in the correlation value generation counter. Bits need not be used.

相関値生成部110は、例えば図3に示す通りに、受信したシンボルデータが示す、「1」である確からしさの度合い、及び「0」である確からしさの度合いに基づいて、生成した相関値に対して、重み付けを行う。相関値生成部110は、例えば、受信したシンボルデータが「111」を表す場合、相関値「1」に対する重み付けを最大とし、相関値「0」に対する重み付けを最小とするように重み付けを行なう。相関値生成部110は、その逆に、受信したシンボルデータが「000」を表す場合、相関値「0」に対する重み付けを最大とし、相関値「1」に対する重み付けを最小とするように重み付けを行なう。相関値生成部110は、重み付けした相関値を、ACS演算部121乃至124に入力する。   For example, as shown in FIG. 3, the correlation value generation unit 110 generates a correlation value based on the probability of “1” and the probability of “0” indicated by the received symbol data. Is weighted. For example, when the received symbol data represents “111”, correlation value generation section 110 performs weighting so that the weighting for correlation value “1” is maximized and the weighting for correlation value “0” is minimized. Conversely, when the received symbol data represents “000”, correlation value generation section 110 performs weighting so that the weighting for correlation value “0” is maximized and the weighting for correlation value “1” is minimized. . The correlation value generation unit 110 inputs the weighted correlation values to the ACS calculation units 121 to 124.

<ACS演算部121乃至124>
図1に示すACS演算部121乃至124は、ACS演算を4並列処理することによって、受信したシンボルデータに関する2K−1(=8192)個のブランチメトリック値を算出する。図4は、本実施形態に係るACS演算部121乃至124が並列に行うACS演算における、処理に必要となるデータを読み出してから処理結果を書き込むまでの流れを表す図である。図4は、ACS演算によるブランチメトリック値を算出する場合を示すが、ACS演算によるパスメトリック値を算出する場合も同様である。
<ACS Operation Units 121 to 124>
The ACS calculation units 121 to 124 illustrated in FIG. 1 calculate 2 K−1 (= 8192) branch metric values related to received symbol data by performing four parallel ACS calculations. FIG. 4 is a diagram illustrating a flow from reading data necessary for processing to writing a processing result in the ACS calculation performed in parallel by the ACS calculation units 121 to 124 according to the present embodiment. FIG. 4 shows the case where the branch metric value is calculated by the ACS calculation, but the same applies when the path metric value is calculated by the ACS calculation.

図4に示す通り、ACS演算部121は、前回のシンボルデータに関するブランチメトリック値m0(以降「ブランチメトリック値」を省略して記載する場合がある)とm4096とを用いて、新たに受信したシンボルデータに関するブランチメトリック値M0(以降「ブランチメトリック値」を省略して記載する場合がある)とM1とを、ACS演算を行なうことによって算出する。ACS演算部121は、m0〜m1023、及び、m4096〜m5119を用いて、M0〜M2047(即ち、M0〜M8191のうちの先頭から1/4の部分)を算出する。ACS演算部121は、算出したM0〜M1023を、ブランチメトリックメモリ141B−1に格納し、算出したM1024〜M2047を、ブランチメトリックメモリ141B−2に格納する。そして、M0〜M2047の算出に用いられるm0〜m1023、及び、m4096〜m5119は、前回のシンボルデータに関してACS演算部121乃至124がACS演算を行なった結果として、ブランチメトリックメモリ141A−1に格納されている。この場合、ブランチメモリックメモリ141A−1から前回のシンボルデータに関するブランチメトリック値を読み出すのは、ACS演算部121乃至124のうちのACS演算部121のみである。即ち、ACS演算部121とブランチメトリックメモリ141A−1とは、ブランチメトリック値の読み出しに関して、1対1に紐付けされた状態にある。   As shown in FIG. 4, the ACS calculation unit 121 uses the branch metric value m0 (hereinafter sometimes referred to as “branch metric value” in some cases) related to the previous symbol data and m4096 to newly received symbols. A branch metric value M0 related to data (hereinafter sometimes referred to as “branch metric value” may be omitted) and M1 are calculated by performing an ACS operation. The ACS calculation unit 121 calculates M0 to M2047 (that is, a portion of 1/4 from the head of M0 to M8191) using m0 to m1023 and m4096 to m5119. The ACS calculation unit 121 stores the calculated M0 to M1023 in the branch metric memory 141B-1, and stores the calculated M1024 to M2047 in the branch metric memory 141B-2. Then, m0 to m1023 and m4096 to m5119 used for calculation of M0 to M2047 are stored in the branch metric memory 141A-1 as a result of the ACS calculation units 121 to 124 performing ACS calculation on the previous symbol data. ing. In this case, only the ACS calculation unit 121 among the ACS calculation units 121 to 124 reads the branch metric value related to the previous symbol data from the branch memetic memory 141A-1. That is, the ACS calculation unit 121 and the branch metric memory 141A-1 are in a state of being linked one-to-one with respect to reading of the branch metric value.

同様に、ACS演算部122は、ブランチメトリックメモリ141A−2に格納されているm1024〜m2047、及び、m5120〜m6143を使用して、M2048〜M4095を算出する。ACS演算部122は、算出したM2048〜M3071を、ブランチメトリックメモリ141B−3に格納し、算出したM3072〜M4095を、ブランチメトリックメモリ141B−4に格納する。ブランチメモリックメモリ141A−2から前回のシンボルデータに関するブランチメトリック値を読み出すのは、ACS演算部121乃至124のうちのACS演算部122のみであるので、ACS演算部122とブランチメトリックメモリ141A−2とは、ブランチメトリック値の読み出しに関して、1対1に紐付けされた状態にある。   Similarly, the ACS calculation unit 122 calculates M2048 to M4095 using m1024 to m2047 and m5120 to m6143 stored in the branch metric memory 141A-2. The ACS calculation unit 122 stores the calculated M2048 to M3071 in the branch metric memory 141B-3, and stores the calculated M3072 to M4095 in the branch metric memory 141B-4. Since only the ACS computing unit 122 among the ACS computing units 121 to 124 reads out the branch metric value related to the previous symbol data from the branch memetic memory 141A-2, the ACS computing unit 122 and the branch metric memory 141A-2 Is in a state of being linked one-to-one with respect to reading of the branch metric value.

同様に、ACS演算部123は、ブランチメトリックメモリ141A−3に格納されているm2048〜m3071、及び、m6144〜m7167を使用して、M4096〜M6143を算出する。ACS演算部123は、算出したM4096〜M5119を、ブランチメトリックメモリ141B−1に格納し、算出したM5120〜M6143を、ブランチメトリックメモリ141B−2に格納する。ブランチメモリックメモリ141A−3から前回のシンボルデータに関するブランチメトリック値を読み出すのは、ACS演算部121乃至124のうちのACS演算部123のみであるので、ACS演算部123とブランチメトリックメモリ141A−3とは、ブランチメトリック値の読み出しに関して、1対1に紐付けされた状態にある。   Similarly, the ACS calculation unit 123 calculates M4096 to M6143 using m2048 to m3071 and m6144 to m7167 stored in the branch metric memory 141A-3. The ACS calculation unit 123 stores the calculated M4096 to M5119 in the branch metric memory 141B-1, and stores the calculated M5120 to M6143 in the branch metric memory 141B-2. Since only the ACS computing unit 123 among the ACS computing units 121 to 124 reads out the branch metric value related to the previous symbol data from the branch memorized memory 141A-3, the ACS computing unit 123 and the branch metric memory 141A-3. Is in a state of being linked one-to-one with respect to reading of the branch metric value.

同様に、ACS演算部124は、ブランチメトリックメモリ141A−4に格納されているm3072〜m4095、及び、m7168〜m8191を使用して、M6144〜M8191を算出する。ACS演算部124は、算出したM6144〜M7167を、ブランチメトリックメモリ141B−3に格納し、算出したM5120〜M6143を、ブランチメトリックメモリ141B−4に格納する。ブランチメモリックメモリ141A−4から前回のシンボルデータに関するブランチメトリック値を読み出すのは、ACS演算部121乃至124のうちのACS演算部124のみであるので、ACS演算部124とブランチメトリックメモリ141A−4とは、ブランチメトリック値の読み出しに関して、紐付けされた状態にある。   Similarly, the ACS calculation unit 124 calculates M6144 to M8191 using m3072 to m4095 and m7168 to m8191 stored in the branch metric memory 141A-4. The ACS calculation unit 124 stores the calculated M6144 to M7167 in the branch metric memory 141B-3, and stores the calculated M5120 to M6143 in the branch metric memory 141B-4. Since only the ACS calculation unit 124 among the ACS calculation units 121 to 124 reads out the branch metric value related to the previous symbol data from the branch memetic memory 141A-4, the ACS calculation unit 124 and the branch metric memory 141A-4. Is associated with the reading of the branch metric value.

図5は、本実施形態に係るACS演算部121乃至124が、ACS演算によって2K−1(=8192)個のブランチメトリック値あるいはパスメトリック値を算出する(算出結果をブランチメトリックメモリ141A及び141B、あるいはパスメトリックメモリ151に書き込む)順番を表す図である。尚、図5において、「2^(K−1)」における「^」は、べき乗を表す演算子である(以降の図面においても同様)。 In FIG. 5, the ACS calculation units 121 to 124 according to the present embodiment calculate 2 K−1 (= 8192) branch metric values or path metric values by ACS calculation (the calculation results are stored in the branch metric memories 141A and 141B). , Or write to the path metric memory 151). In FIG. 5, “^” in “2 ^ (K−1)” is an operator representing a power (the same applies to the following drawings).

図5に示す通り、ACS演算部121は、M0〜M2047を求めるACS演算を、M0から順番に行なう。ACS演算部122は、M2048〜M4095を求めるACS演算を、M2048から順番に行なう。ACS演算部123は、M4096〜M6143を求めるACS演算を、M5120からM6143まで順番に行なったのち、M4096からM5119まで順番に行なう。ACS演算部124は、M7168〜M8191を求めるACS演算を、M7168からM8191まで順番に行なったのち、M6144からM7167まで順番に行なう。   As shown in FIG. 5, the ACS calculation unit 121 performs the ACS calculation for obtaining M0 to M2047 in order from M0. The ACS calculation unit 122 performs the ACS calculation for obtaining M2048 to M4095 in order from M2048. The ACS calculation unit 123 performs the ACS calculation for obtaining M4096 to M6143 in order from M5120 to M6143, and then sequentially from M4096 to M5119. The ACS calculation unit 124 performs the ACS calculation for obtaining M7168 to M8191 in order from M7168 to M8191, and then in order from M6144 to M7167.

このように、ACS演算部121及び122は、算出対象とするブランチメトリック値について、先頭から順番に算出するのに対して、ACS演算部123及び124は、算出対象とする2048個のブランチメトリック値について、後半部の1024個のブランチメトリック値に対するACS演算を前半に行なったあとに、前半部の1024個のブランチメトリック値に対するACS演算を後半に行なう。ACS演算部121乃至124がこのような順番でACS演算を行なうのは、ACS演算部121及び124による、ブランチメトリックメモリ141B−1乃至141B−4への書き込み制御において、競合が発生することを回避することを目的とする。   As described above, the ACS calculation units 121 and 122 calculate the branch metric values to be calculated in order from the top, whereas the ACS calculation units 123 and 124 have 2048 branch metric values to be calculated. After performing the ACS operation on the 1024 branch metric values in the second half in the first half, the ACS operation on the 1024 branch metric values in the first half is performed in the second half. The ACS arithmetic units 121 to 124 perform ACS arithmetic operations in this order to avoid contention in the write control to the branch metric memories 141B-1 to 141B-4 by the ACS arithmetic units 121 and 124. The purpose is to do.

即ち、例えば、ACS演算部121により算出されたM0とACS演算部123により算出されたM4096の格納先は、図4に示す通り、いずれもブランチメトリックメモリ141B−1である。したがって、ACS演算部123がM4096から順番にACS演算を行なった場合、ブランチメトリックメモリ141B−1への書き込みに関して、ACS演算部121とACS演算部123との間において競合が発生する。本実施形態に係るACS演算部123が最初に算出するM5120の格納先は、図4に示す通り、ブランチメトリックメモリ141B−2であるので、この場合は、ACS演算部121との間で書き込みに関する競合は発生しない。   That is, for example, the storage destinations of M0 calculated by the ACS calculation unit 121 and M4096 calculated by the ACS calculation unit 123 are both the branch metric memory 141B-1 as shown in FIG. Therefore, when the ACS calculation unit 123 performs the ACS calculation sequentially from M4096, a conflict occurs between the ACS calculation unit 121 and the ACS calculation unit 123 with respect to writing to the branch metric memory 141B-1. As shown in FIG. 4, the storage destination of the M5120 that is first calculated by the ACS calculation unit 123 according to the present embodiment is the branch metric memory 141B-2. In this case, the ACS calculation unit 123 relates to writing with the ACS calculation unit 121. There is no conflict.

このように、ACS演算部121乃至124は、図4及び図5に示す通りにACS演算を行なうことによって、ACS演算の並列処理を効率よく行なうことができる。   As described above, the ACS calculation units 121 to 124 can efficiently perform the parallel processing of the ACS calculation by performing the ACS calculation as shown in FIGS. 4 and 5.

図6は、本実施形態に係るACS演算部121が、ACS演算によってブランチメトリック値M0乃至M3を算出する処理の詳細を説明する図である。ACS演算部122乃至124がブランチメトリック値も算出する処理も以下に説明するACS演算部121の手順と同様である。   FIG. 6 is a diagram illustrating details of a process in which the ACS calculation unit 121 according to the present embodiment calculates the branch metric values M0 to M3 by the ACS calculation. The process of calculating the branch metric values by the ACS calculation units 122 to 124 is the same as the procedure of the ACS calculation unit 121 described below.

ACS演算部121は、図6に示す通り、後述するブランチメトリックメモリ制御部140による制御動作を介して、ブランチメトリックメモリ141Aからビタビ復号動作クロック毎に連続して読み出した、2つのブランチメトリック値を保持する期間を、2値一組でビタビ復号動作クロックの2倍のクロック幅(期間)に伸長する。ACS演算部121は、例えば、図4に例示する通り、ブランチメトリックメモリ141A−1におけるアドレス0からブランチメトリック値m0を読み出し、ブランチメトリックメモリ141A−1におけるアドレス「2(K−1)/4」(=1024)からブランチメトリック値m4096を読み出す。そして、ACS演算部121は、読み出したm0及びm4096を2値一組で、例えば、ビタビ復号動作クロックの2倍のクロック幅を有するクロックに同期して動作する、内包するレジスタ(図1等には不図示)に保持する。ACS演算部121は、次にブランチメトリックメモリ141A−1から読み出すm1及びm4097についても、同様に、その保持期間を2値一組で、ビタビ復号動作クロックの2倍のクロック幅に伸長する。 As shown in FIG. 6, the ACS calculation unit 121 reads two branch metric values read continuously from the branch metric memory 141 </ b> A for each Viterbi decoding operation clock through a control operation by the branch metric memory control unit 140 described later. The holding period is extended to a clock width (period) that is twice that of the Viterbi decoding operation clock in a binary set. For example, as illustrated in FIG. 4, the ACS operation unit 121 reads the branch metric value m0 from the address 0 in the branch metric memory 141A-1, and the address “2 (K−1) / 4” in the branch metric memory 141A-1. The branch metric value m4096 is read from (= 1024). Then, the ACS operation unit 121 includes a register (see FIG. 1 or the like) that operates in synchronization with a clock having a clock width that is twice the Viterbi decoding operation clock as a binary set of m0 and m4096 read. (Not shown). Similarly, for the m1 and m4097 to be read next from the branch metric memory 141A-1, the ACS calculation unit 121 similarly extends the holding period to a clock width that is twice the Viterbi decoding operation clock by a binary set.

ACS演算部121(ACS122乃至124も同様)は、保持期間を伸長した2値により表される、前回に受信したシンボルデータのブランチメトリック値と、相関値生成部110によってビタビ復号動作クロック毎に生成されてACS演算部121に入力される、重み付けされた相関値を加算することによって、2値の新しいブランチメトリック値を求める。ACS演算部121は、求めた2値の新しいブランチメトリック値を比較し、大きい方の値の新しいブランチメトリック値を新たなブランチメトリック値として、ブランチメトリックメモリ制御部140による制御動作を介し、ブランチメトリックメモリ141Bに格納する。   The ACS calculation unit 121 (the same applies to the ACSs 122 to 124) is generated for each Viterbi decoding operation clock by the branch metric value of the symbol data received last time represented by the binary value obtained by extending the holding period and the correlation value generation unit 110. Then, by adding the weighted correlation values input to the ACS calculation unit 121, a binary new branch metric value is obtained. The ACS calculation unit 121 compares the obtained two new branch metric values, sets the new branch metric value of the larger value as a new branch metric value, and controls the branch metric through the control operation by the branch metric memory control unit 140. Store in the memory 141B.

より具体的には、図6に示す通り、ACS演算部121は、相関値P0及びQ0を用いて新たなブランチメトリック値を算出する際に、計算式「M0_1=m0+P0」、及び、「M0_2=m4096+Q0」に従い、「M0_1」及び「M0_2」を算出する。ACS演算部121は、算出した「M0_1」及び「M0_2」のうち、大きい方を新たなブランチメトリック値M0として求める。ACS演算部121は、相関値P1及びQ1を用いて新たなブランチメトリック値を算出する際に、計算式「M1_1=m0+P1」、「M1_2=m4096+Q1」により、「M1_1」及び「M1_2」を算出する。ACS演算部121は、算出した「M1_1」及び「M1_2」のうち、大きい方を新たなブランチメトリック値M1として求める。ACS演算部121は、同様に、m1、m4097、P2、Q2、P3、Q3を用いて、M2及びM3を求める。ACS演算部121は、M4以降のブランチメトリック値についても、同様に求める。   More specifically, as illustrated in FIG. 6, when the ACS calculation unit 121 calculates a new branch metric value using the correlation values P0 and Q0, the calculation formulas “M0_1 = m0 + P0” and “M0_2 = “M0_1” and “M0_2” are calculated according to “m4096 + Q0”. The ACS calculation unit 121 obtains the larger one of the calculated “M0_1” and “M0_2” as a new branch metric value M0. When calculating the new branch metric value using the correlation values P1 and Q1, the ACS calculation unit 121 calculates “M1_1” and “M1_2” using the calculation formulas “M1_1 = m0 + P1” and “M1_2 = m4096 + Q1”. . The ACS calculation unit 121 obtains the larger one of the calculated “M1_1” and “M1_2” as a new branch metric value M1. Similarly, the ACS calculation unit 121 calculates M2 and M3 using m1, m4097, P2, Q2, P3, and Q3. The ACS calculation unit 121 similarly obtains branch metric values after M4.

ACS演算部121乃至124は、また、ブランチメトリック値に関する比較結果をパスメトリック値として、後述するパスメトリックメモリ制御部150による制御動作を介し、パスメトリックメモリ151に格納する。ACS演算部121乃至124による、パスメトリック値を求める演算順は、上述したブランチメトリックのときと同様である。   The ACS calculation units 121 to 124 also store the comparison result regarding the branch metric value as a path metric value in the path metric memory 151 through a control operation by the path metric memory control unit 150 described later. The calculation order for obtaining path metric values by the ACS calculation units 121 to 124 is the same as that for the branch metric described above.

ACS演算部121乃至124は、後述する最尤アドレス生成部130から減算制御情報を入力された場合、ブランチメトリックメモリ141A及び141Bから読み出された前回に受信したシンボルデータに関するブランチメトリック値に対して、特定の値を減算する減算制御を行うことにより、新しいブランチメトリック値を生成する。ACS演算部121乃至124は、これにより、ブランチメトリック値に関するオーバーフローの発生を回避する。   When the subtraction control information is input from the maximum likelihood address generation unit 130 (to be described later), the ACS calculation units 121 to 124 operate on the branch metric value regarding the symbol data received last time read from the branch metric memories 141A and 141B. A new branch metric value is generated by performing subtraction control for subtracting a specific value. Thus, the ACS calculation units 121 to 124 avoid the occurrence of overflow related to the branch metric value.

<ブランチメトリックメモリ141A及び141B>
本実施形態に係るビタビ復号装置10は、図1に示す通り、ACS演算部121乃至124によって求められたブランチメトリック値を格納するメモリとして、ブランチメトリックメモリ141A及び141Bを備える。ブランチメトリックメモリ141A及び141Bは、少なくともACS演算の並列処理数に分割され、図4を用いて上述した通り、ブランチメトリック値の書き込み及び読み出し制御において、ACS演算部121乃至124の個々と、1対1に紐付けられた構成を有する。即ち、ブランチメトリックメモリ141Aは、ブランチメトリックメモリ141A−1乃至141A−4を構成し、ブランチメトリックメモリ141Bは、ブランチメトリックメモリ141B−1乃至141B−4を構成する。そして、ブランチメトリックメモリ141A−1乃至141A−4の各々は、ブランチメトリック値の読み出しに関して、順に、ACS演算部121乃至124に紐付けられている。
<Branch metric memories 141A and 141B>
As shown in FIG. 1, the Viterbi decoding apparatus 10 according to the present embodiment includes branch metric memories 141A and 141B as memories for storing branch metric values obtained by the ACS calculation units 121 to 124. The branch metric memories 141A and 141B are divided into at least the number of ACS computations in parallel processing, and as described above with reference to FIG. 1 is associated with the configuration. That is, the branch metric memory 141A constitutes branch metric memories 141A-1 to 141A-4, and the branch metric memory 141B constitutes branch metric memories 141B-1 to 141B-4. Each of the branch metric memories 141A-1 to 141A-4 is associated with the ACS calculation units 121 to 124 in order with respect to reading of the branch metric values.

ACS演算部121乃至124により求められたブランチメトリック値のビット数がmビット(mは任意の自然数)である場合、ブランチメトリックメモリ141A及び141Bは、それぞれ、mビットのワードを2048個分格納可能な容量を有するメモリを4個含むメモリである。ブランチメトリックメモリ141A及び141Bは、ブランチメトリックメモリ制御部140による制御動作を介してACS演算部121乃至124により並列処理される、前回に受信したシンボルデータのブランチメトリック値に関する読み出し制御が競合しないように、上述した様なACS演算部121乃至124と紐付けされた関係を構成し、受信したシンボルデータに関する新たな2K−1個のブランチメトリック値を格納する。 When the number of bits of the branch metric value obtained by the ACS calculation units 121 to 124 is m bits (m is an arbitrary natural number), the branch metric memories 141A and 141B can store 2048 words of m bits each. This is a memory including four memories having a large capacity. The branch metric memories 141A and 141B are processed in parallel by the ACS calculation units 121 to 124 through the control operation of the branch metric memory control unit 140 so that the read control related to the branch metric value of the symbol data received last time does not compete. A relationship associated with the ACS calculation units 121 to 124 as described above is formed, and new 2 K-1 branch metric values relating to the received symbol data are stored.

ブランチメトリックメモリ141A及び141Bは、ブランチメトリックメモリ制御部140による制御により、受信するシンボルデータ毎に、書き込み/読み出し制御が交互に切り替わる。即ち、受信したあるシンボルデータに関して、ACS演算部121乃至124により求められた新しいブランチメトリック値をブランチメトリックメモリ141Bが格納する場合、ブランチメトリックメモリ141Aは、その新しいブランチメトリック値を求めるために必要となる、前回に受信したシンボルデータに関するブランチメトリック値を、ACS演算部121乃至124に出力する。そして、その次に受信したシンボルデータに関するACS演算では、ブランチメトリックメモリ141Bが、前回に受信したシンボルデータに関するブランチメトリック値をACS演算部121乃至124に出力し、ブランチメトリックメモリ141Aが新しいブランチメトリック値を格納する。   In the branch metric memories 141A and 141B, the write / read control is alternately switched for each symbol data received under the control of the branch metric memory control unit 140. That is, when the branch metric memory 141B stores a new branch metric value obtained by the ACS calculation units 121 to 124 for certain received symbol data, the branch metric memory 141A is necessary for obtaining the new branch metric value. The branch metric value regarding the symbol data received last time is output to the ACS calculation units 121 to 124. Then, in the ACS calculation for the next received symbol data, the branch metric memory 141B outputs the branch metric value for the previously received symbol data to the ACS calculation units 121 to 124, and the branch metric memory 141A sets the new branch metric value. Is stored.

尚、ブランチメトリックメモリ141A及び141Bのビット数およびワード数は可変であり、ビタビ復号装置10を搭載するデバイスの状況などに応じて変更可能である。   Note that the number of bits and the number of words of the branch metric memories 141A and 141B are variable and can be changed according to the status of the device on which the Viterbi decoding device 10 is mounted.

<ブランチメトリックメモリ制御部140>
図1に示すブランチメトリックメモリ制御部140は、ACS演算部121乃至124により求められた、受信したシンボルデータに関する新しいブランチメトリック値が入力される。ブランチメトリックメモリ制御部140は、ブランチメトリックメモリ141A及び141Bのうちの一方に、受信したシンボルデータに関する新しいブランチメトリック値を書き込む。ブランチメトリックメモリ制御部140は、ブランチメトリックメモリ141A及び141Bのうちのもう一方に、ACS演算部121乃至124において受信したシンボルデータに関する新しいブランチメトリック値を求める際に必要となる、前回に受信したシンボルデータに関するブランチメトリック値を読み出す。即ち、ブランチメトリックメモリ制御部140は、上述した通り、ブランチメトリックメモリ141A及び141Bに対する書き込み制御と読み出し制御とを、シンボルデータが入力される毎に、交互に切り替える制御を行う。
<Branch Metric Memory Control Unit 140>
The branch metric memory control unit 140 shown in FIG. 1 receives a new branch metric value related to the received symbol data obtained by the ACS calculation units 121 to 124. The branch metric memory control unit 140 writes a new branch metric value related to the received symbol data in one of the branch metric memories 141A and 141B. The branch metric memory control unit 140 uses the other one of the branch metric memories 141A and 141B to obtain a previously received symbol that is required when obtaining a new branch metric value related to the symbol data received by the ACS calculation units 121 to 124. Read the branch metric value for the data. That is, as described above, the branch metric memory control unit 140 performs control to alternately switch between writing control and reading control for the branch metric memories 141A and 141B each time symbol data is input.

ブランチメトリックメモリ制御部140は、図4及び図5に示す通り、ACS演算部121乃至124が並列処理することにより求められる2K−1(=8192)個のブランチメトリック値のうちの前半部分(即ちM0〜M4095)と後半部分(即ちM4096〜M8191)とで異なるACS演算の順序に従って、ブランチメトリックメモリ141A及び141Bに対する書き込み制御を行う。即ち、ブランチメトリックメモリ制御部140は、図4に示す通り、2K−1個のブランチメトリック値の前半部分を求めるACS演算を行うACS121及び122から入力されたブランチメトリック値を、それぞれ2K−1/4(=2048)個(「/」は除算を表す演算子)のブランチメトリック値を格納するブランチメトリックメモリ141B−1及び141B−3における先頭のアドレス(即ちアドレス0)から書き込み制御を行う。 As shown in FIGS. 4 and 5, the branch metric memory control unit 140 is the first half of 2 K−1 (= 8192) branch metric values obtained by the ACS arithmetic units 121 to 124 performing parallel processing ( That is, the write control to the branch metric memories 141A and 141B is performed in accordance with the ACS operation order which is different between the second half part (that is, M4096 to M8191). That is, as shown in FIG. 4, the branch metric memory control unit 140 uses the branch metric values input from the ACSs 121 and 122 for performing the ACS calculation for obtaining the first half of 2 K−1 branch metric values as 2 K−. controls writing from 1/4 (= 2048) pieces ( "/" operators representing the division) for storing a branch metric value of the branch metric memory 141B-1 and the beginning of the address in the 141B-3 (i.e., address 0) .

そして、ブランチメトリックメモリ制御部140は、2K−1個のブランチメトリック値の後半部分を求めるACS演算を行うACS123及び124から入力されたブランチメトリック値を、それぞれ2K−1/4(=2048)個のブランチメトリック値を格納するブランチメトリックメモリ141B−2及び141B−4における各メモリ領域の後半部分の先頭に位置するアドレス(即ちアドレス1024)から書き込み制御を行う。 Then, the branch metric memory controller 140, a branch metric value input from ACS123 and 124 for performing ACS calculation for obtaining the second half of the 2 K-1 pieces of branch metric values, each 2 K-1/4 (= 2048 ) Write control is performed from the address (namely, address 1024) located at the head of the second half of each memory area in the branch metric memories 141B-2 and 141B-4 storing the branch metric values.

ブランチメトリックメモリ制御部140は、図4に示すように、ACS演算部121乃至124の個々における(2K−1/(4x2))/2(=512)個のブランチメトリック値に関するACS演算が経過した時点で、ACS121及びACS122により入力されたブランチメトリック値の格納先を、ブランチメトリックメモリ141B−2および141B−4における先頭のアドレス(即ちアドレス0)に切り替える。そして、ブランチメトリックメモリ制御部140は、その格納先に、ACS121及びACS122から入力されたブランチメトリック値を格納する。 As shown in FIG. 4, the branch metric memory control unit 140 has undergone an ACS calculation regarding (2 K−1 / (4 × 2)) / 2 (= 512) branch metric values in each of the ACS calculation units 121 to 124. At that time, the storage destination of the branch metric value input by the ACS 121 and ACS 122 is switched to the head address (that is, address 0) in the branch metric memories 141B-2 and 141B-4. The branch metric memory control unit 140 stores the branch metric value input from the ACS 121 and the ACS 122 in the storage destination.

ブランチメトリックメモリ制御部140は、図4に示すように、ACS演算部121乃至124の個々における(2K−1/(4x2))/2(=512)個のブランチメトリック値に関するACS演算が経過した時点で、ACS123及びACS124からのブランチメトリック値の格納先を、ブランチメトリックメモリ141B−1および141B−3が有する、各メモリ領域における後半部分の先頭のアドレス(即ちアドレス1024)に切り替える。そして、ブランチメトリックメモリ制御部140は、その格納先に、ACS123及びACS124から入力されたブランチメトリック値を格納する。 As shown in FIG. 4, the branch metric memory control unit 140 has undergone an ACS calculation regarding (2 K−1 / (4 × 2)) / 2 (= 512) branch metric values in each of the ACS calculation units 121 to 124. At that time, the storage destination of the branch metric value from the ACS 123 and ACS 124 is switched to the head address (that is, the address 1024) in the latter half of each memory area of the branch metric memories 141B-1 and 141B-3. Then, the branch metric memory control unit 140 stores the branch metric value input from the ACS 123 and ACS 124 in the storage destination.

<パスメトリックメモリ151>
図1に示すパスメトリックメモリ151は、受信したシンボルデータ毎に2K−1個のパスメトリック値を、これまでに受信した56(=14x4)個のシンボルデータに関して格納する容量を持つメモリである。これは、ビタビ復号において、パスメトリック値を遡る受信シンボルの数は、通常、拘束長Kの4倍であり、本実施形態に係る拘束長Kが「14」であることに基づく。即ち、パスメトリックメモリ151は、個々に2K−1個のパスメトリック値を格納可能なパスメトリックメモリ151−1乃至151−56を構成する。
<Path metric memory 151>
The path metric memory 151 shown in FIG. 1 is a memory having a capacity for storing 2 K−1 path metric values for each received symbol data with respect to 56 (= 14 × 4) symbol data received so far. . This is based on the fact that in Viterbi decoding, the number of received symbols going back the path metric value is usually four times the constraint length K, and the constraint length K according to the present embodiment is “14”. That is, the path metric memory 151 constitutes path metric memories 151-1 to 151-56 capable of storing 2K -1 path metric values individually.

また、パスメトリックメモリ151は、上述したブランチメトリックメモリ141A及び141Bと同様に、ACS演算部121乃至124による並列処理に応じた構成を有する。即ち、パスメトリックメモリ151は、2K−1個のパスメトリック値を格納するパスメトリックメモリ151−1乃至151−56の個々が、並列処理数(例えば「4」)に分割され、分割された個々のメモリ領域(図1には不図示)が、パスメトリック値の書き込み制御において、並列処理するACS演算部121乃至124と1対1に紐付けられた構成を有する。 Further, the path metric memory 151 has a configuration corresponding to the parallel processing by the ACS calculation units 121 to 124, similarly to the branch metric memories 141A and 141B described above. That is, in the path metric memory 151, each of the path metric memories 151-1 to 151-56 storing 2 K-1 path metric values is divided into the number of parallel processes (for example, “4”). Each memory area (not shown in FIG. 1) has a configuration in which one-to-one association with the ACS arithmetic units 121 to 124 that perform parallel processing in path metric value writing control.

パスメトリックメモリ151は、後述するパスメトリックメモリ制御部150により、ACS演算部121乃至124から出力されるパスメトリック値に関する書き込み及び読み出しを制御される。パスメトリックメモリ151に対するパスメトリック値の書き込み制御及び読み出し制御は、受信した1つのシンボルデータに関する期間(クロック)内で切り替わる。ACS演算部121乃至124によって生成された2K−1個のパスメトリック値は、パスメトリックメモリ151−1乃至151−56のいずれかに書き込まれる。 The path metric memory 151 is controlled by a path metric memory control unit 150 (described later) to write and read path metric values output from the ACS calculation units 121 to 124. The path metric value write control and read control for the path metric memory 151 are switched within a period (clock) related to one received symbol data. The 2 K−1 path metric values generated by the ACS calculation units 121 to 124 are written in any of the path metric memories 151-1 to 151-56.

パスメトリックメモリ151−1乃至151−56は、リングバッファとして機能する。即ち、パスメトリックメモリ151−i(iは1乃至56のいずれかの整数)が、受信したシンボルデータに関する2K−1個のパスメトリック値を格納した後、パスメトリックメモリ151−(i+1)は、次に受信したシンボルデータに関する2K−1個のパスメトリック値を格納する。 The path metric memories 151-1 to 151-56 function as ring buffers. That is, after the path metric memory 151-i (i is an integer from 1 to 56) stores 2 K-1 path metric values related to the received symbol data, the path metric memory 151- (i + 1) Next, 2 K−1 path metric values relating to the received symbol data are stored.

パスメトリックメモリ151に格納されたパスメトリック値に対する読み出し制御は、当該パスメトリック値に対する書き込み制御が完了した後、最尤アドレス生成部130により生成される最尤アドレス(トレースバック処理における起点となるアドレス)に基づいて、パスメトリックメモリ制御部150がトレースバック処理を行う際に行われる。このトレースバック処理におけるパスメトリック値に対する読み出し制御は、受信したシンボルデータ当たり2K−1個あるパスメトリック値の内から1つのパスメトリック値を選択して読み出される制御である。この1つのパスメトリック値を選択して読み出される制御は、パスメトリックメモリ151−1乃至151−56の全てに対して、順次行なわれる。 The read control for the path metric value stored in the path metric memory 151 is the maximum likelihood address generated by the maximum likelihood address generation unit 130 after the write control for the path metric value is completed (the address that is the starting point in the traceback process). ) Is performed when the path metric memory control unit 150 performs a traceback process. The read control with respect to the path metric value in the traceback process is a control in which one path metric value is selected and read out from 2 K−1 path metric values per received symbol data. Control for selecting and reading out one path metric value is sequentially performed on all of the path metric memories 151-1 to 151-56.

<パスメトリックメモリ制御部150>
図1に示すパスメトリックメモリ制御部150には、ACS演算部121乃至124により生成されたパスメトリック値と、最尤アドレス生成部130により生成された最尤アドレスとが入力される。パスメトリックメモリ制御部150は、パスメトリックメモリ151に対するパスメトリック値の書き込み制御を行う。
<Path Metric Memory Control Unit 150>
The path metric memory control unit 150 illustrated in FIG. 1 receives the path metric value generated by the ACS calculation units 121 to 124 and the maximum likelihood address generated by the maximum likelihood address generation unit 130. The path metric memory control unit 150 performs writing control of the path metric value to the path metric memory 151.

パスメトリックメモリ制御部150は、また、ビタビ復号におけるトレースバック処理を行うトレースバック処理部としての機能を備える。パスメトリックメモリ制御部150は、入力された最尤アドレスを用いたトレースバック処理を行う際に、パスメトリックメモリ151に格納されたパスメトリック値を読み出す読み出し制御を行う。そして、パスメトリックメモリ制御部150は、トレースバック処理を完了した時に、56個のシンボルデータに関するパスメトリック値を遡った結果として、ビタビ復号データを生成して出力する。   The path metric memory control unit 150 also has a function as a traceback processing unit that performs a traceback process in Viterbi decoding. The path metric memory control unit 150 performs read control for reading a path metric value stored in the path metric memory 151 when performing a traceback process using the input maximum likelihood address. Then, when the traceback process is completed, the path metric memory control unit 150 generates and outputs Viterbi decoded data as a result of tracing back the path metric values related to the 56 pieces of symbol data.

パスメトリックメモリ制御部150は、各々2K−1個のパスメトリック値を格納するパスメトリックメモリ151−1乃至151−56のいずれかを、受信したシンボルデータ毎に選択し、選択したパスメトリックメモリ151−iに、ACS演算部121乃至124により生成された2K−1個のパスメトリック値を格納する。パスメトリックメモリ制御部150は、次に受信したシンボルデータに関する2K−1個のパスメトリック値を、パスメトリックメモリ151−(i+1)に格納する。 The path metric memory control unit 150 selects one of the path metric memories 151-1 to 151-56 each storing 2 K-1 path metric values for each received symbol data, and selects the selected path metric memory. 151-i stores 2 K-1 path metric values generated by the ACS calculation units 121 to 124. The path metric memory control unit 150 stores 2 K−1 path metric values related to the next received symbol data in the path metric memory 151-(i + 1).

パスメトリックメモリ制御部150によるパスメトリックメモリ151に対する書き込み制御は、図4に示すブランチメトリックメモリ141A及び141Bに対する書き込み制御と同様である。即ち、パスメトリックメモリ制御部150は、ACS121及び122により求められた2K−1個の前半部分のパスメトリック値を、並列処理数に分割された記憶領域を有するパスメトリックメモリ151−iにおけるいずれか2つの記憶領域に対して、先頭のアドレス(図4に示す例における、ブランチメトリックメモリ141B−1あるいは141B−3におけるアドレス0に相当)から書き込む。そして、パスメトリックメモリ制御部150は、ACS123及び124により求められた2K−1個の後半部分のパスメトリック値を、書き込み先のパスメトリックメモリ151−iにおける各メモリ領域の後半部分の先頭に位置するアドレス(図4に示す例における、ブランチメトリックメモリ141B−2あるいは141B−4におけるアドレス1024に相当)から書き込み制御を行う。 The write control to the path metric memory 151 by the path metric memory control unit 150 is the same as the write control to the branch metric memories 141A and 141B shown in FIG. In other words, the path metric memory control unit 150 uses the path metric values of the 2K -1 first half portions obtained by the ACSs 121 and 122 in the path metric memory 151-i having a storage area divided into the number of parallel processes. For these two storage areas, writing is performed from the head address (corresponding to address 0 in the branch metric memory 141B-1 or 141B-3 in the example shown in FIG. 4). Then, the path metric memory control unit 150 sets the 2 K−1 second half portion path metric values obtained by the ACSs 123 and 124 to the beginning of the second half portion of each memory area in the write destination path metric memory 151-i. Write control is performed from the located address (corresponding to the address 1024 in the branch metric memory 141B-2 or 141B-4 in the example shown in FIG. 4).

パスメトリックメモリ制御部150は、最も確からしいパスを遡るトレースバック処理において、パスメトリックメモリ151からパスメトリック値を読み出す。図7は、パスメトリックメモリ制御部150によるトレースバック処理を行う構成(即ち、トレースバック処理部としての構成)を例示する図である。パスメトリックメモリ制御部150は、トレースバック処理部として、読み出しアドレス生成部152、及び、選択部153を備えている。   The path metric memory control unit 150 reads out the path metric value from the path metric memory 151 in the traceback process that traces the most probable path. FIG. 7 is a diagram illustrating a configuration for performing a traceback process by the path metric memory control unit 150 (that is, a configuration as a traceback processing unit). The path metric memory control unit 150 includes a read address generation unit 152 and a selection unit 153 as a traceback processing unit.

読み出しアドレス生成部152は、トレースバック処理におけるパスメトリックメモリ151に対する読み出しアドレスを生成し、図7に例示する通り、バレルシフタを構成する。但しバレルシフタは、ワードデータを、ある特定のビット数分、シフトすることが可能な論理回路である。本実施形態に係る読み出しアドレス生成部152は、セレクタ(マルチプレクサ)を表す「SEL」と、シフトレジスタを表す「D−FF Shift」とを、図7に示す通りに接続することによって、バレルシフタを構成する。但し、バレルシフタの構成は、図7に示す構成に限定されない。   The read address generation unit 152 generates a read address for the path metric memory 151 in the traceback process, and configures a barrel shifter as illustrated in FIG. However, the barrel shifter is a logic circuit capable of shifting word data by a certain number of bits. The read address generation unit 152 according to the present embodiment configures a barrel shifter by connecting “SEL” representing a selector (multiplexer) and “D-FF Shift” representing a shift register as shown in FIG. To do. However, the configuration of the barrel shifter is not limited to the configuration shown in FIG.

パスメトリックメモリ制御部150は、トレースバック処理を開始する際に、最尤アドレス生成部130により生成された最尤アドレスを、開始アドレスとして読み出しアドレス生成部152にセットする。パスメトリックメモリ制御部150は、読み出しアドレス生成部152が示す読み出しアドレスに基づいて、パスメトリックメモリ151−1乃至151−56のいずれかから、パスメトリック値を読み出す。   When starting the traceback process, the path metric memory control unit 150 sets the maximum likelihood address generated by the maximum likelihood address generation unit 130 to the read address generation unit 152 as a start address. The path metric memory control unit 150 reads a path metric value from one of the path metric memories 151-1 to 151-56 based on the read address indicated by the read address generation unit 152.

パスメトリックメモリ制御部150における選択部153は、最尤アドレスに基づいて、読み出したパスメトリック値のうちの1つを選択し、選択したパスメトリック値を、読み出しアドレス生成部152にシフト入力する。パスメトリックメモリ制御部150は、これにより、次(2番目)に遡る(読み出す)読み出しアドレスを生成し、当該読み出しアドレスが示す、パスメトリックメモリ151−1乃至151−56のいずれかから、パスメトリック値を読み出す。選択部153は、2番目の読み出しアドレスに基づいて、読み出したパスメトリック値のうちの1つを選択し、選択したパスメトリック値を、読み出しアドレス生成部152にシフト入力する。パスメトリックメモリ制御部150は、これにより、その次(3番目)に遡る(読み出す)読み出しアドレスを生成し、当該読み出しアドレスが示す、パスメトリックメモリ151−1乃至151−56のいずれかから、パスメトリック値を読み出す。   The selection unit 153 in the path metric memory control unit 150 selects one of the read path metric values based on the maximum likelihood address, and shift-inputs the selected path metric value to the read address generation unit 152. In this way, the path metric memory control unit 150 generates a read address that goes back (read) to the next (second), and from any one of the path metric memories 151-1 to 151-56 indicated by the read address, Read the value. The selection unit 153 selects one of the read path metric values based on the second read address, and shift-inputs the selected path metric value to the read address generation unit 152. Thus, the path metric memory control unit 150 generates a read address that goes back (read) to the next (third), and from any of the path metric memories 151-1 to 151-56 indicated by the read address, Read the metric value.

パスメトリックメモリ制御部150は、このような読み出し制御と選択制御とにより得られるパスメトリック値に基づいて、次々とパスメトリック値を遡る。パスメトリックメモリ制御部150は、上述した読み出し制御と選択制御とを56回実行し、パスメトリックメモリ151−1乃至151−56の個々に対して、1回ずつの読み出し制御を行うことによって、トレースバック処理を実行する。   The path metric memory control unit 150 traces back the path metric values one after another based on the path metric values obtained by such read control and selection control. The path metric memory control unit 150 executes the above-described read control and selection control 56 times, and performs the read control once for each of the path metric memories 151-1 to 151-56, thereby tracing. Perform back processing.

パスメトリックメモリ制御部150は、トレースバック処理を完了したのち、56個のシンボルデータに関するパスメトリック値を遡ったトレースバック処理の最終結果である、読み出しアドレス生成部152にシフト入力したパスメトリック値を、ビタビ復号データとして出力する。   After completing the traceback processing, the path metric memory control unit 150 shifts the path metric value shifted and input to the read address generation unit 152, which is the final result of the traceback processing that traces back the path metric values related to 56 symbol data. , And output as Viterbi decoded data.

<最尤アドレス生成部130>
図1に示す最尤アドレス生成部130は、ACS演算部121乃至124により求められた、新しいブランチメトリック値の最大値に関する選択情報(最大値選択情報)が入力される。最尤アドレス生成部130はまた、ブランチメトリックメモリ制御部140が、受信したシンボルデータに関する新しいブランチメトリック値を、ブランチメトリックメモリ141Aあるいは141Bへ書き込む際の書き込みアドレスが入力される。
<Maximum Likelihood Address Generation Unit 130>
The maximum likelihood address generation unit 130 illustrated in FIG. 1 receives selection information (maximum value selection information) regarding the maximum value of the new branch metric value obtained by the ACS calculation units 121 to 124. The maximum likelihood address generation unit 130 also receives a write address when the branch metric memory control unit 140 writes a new branch metric value related to the received symbol data into the branch metric memory 141A or 141B.

最尤アドレス生成部130は、ACS演算部121乃至124から入力された4つのブランチメトリック値の最大値から、さらに1つのブランチメトリック値の最大値を、ACS演算処理におけるブランチメトリック最大値として求める。最尤アドレス生成部130は、これにより、ACS演算部121乃至124から入力された最大値選択情報と、ブランチメトリックメモリ141A及び141Bに対する書き込みアドレスとから、ブランチメトリック最大値が書き込まれたブランチメトリックメモリ141Aあるいは141Bのアドレス情報を求める。但し当該アドレス情報は、ブランチメトリック最大値に関するパスメトリック値が書き込まれたパスメトリックメモリ151のアドレス情報と等しい。   The maximum likelihood address generation unit 130 obtains a maximum value of one branch metric value as a branch metric maximum value in the ACS calculation process from the maximum values of the four branch metric values input from the ACS calculation units 121 to 124. Thus, the maximum likelihood address generation unit 130 stores the branch metric maximum value in which the branch metric maximum value is written from the maximum value selection information input from the ACS calculation units 121 to 124 and the write addresses for the branch metric memories 141A and 141B. The address information of 141A or 141B is obtained. However, the address information is equal to the address information of the path metric memory 151 in which the path metric value related to the branch metric maximum value is written.

最尤アドレス生成部130は、ブランチメトリック最大値を求めることにより得られた最大値選択情報と、ブランチメトリック最大値が書き込まれたブランチメトリックメモリ141Aあるいは141Bのアドレス情報とに基づいて、パスメトリックメモリ制御部150によるレースバック処理において用いられる最尤アドレスを生成し、生成した最尤アドレスをパスメトリックメモリ制御部150へ入力する。   The maximum likelihood address generation unit 130 determines the path metric memory based on the maximum value selection information obtained by obtaining the branch metric maximum value and the address information of the branch metric memory 141A or 141B in which the branch metric maximum value is written. The maximum likelihood address used in the race back process by the control unit 150 is generated, and the generated maximum likelihood address is input to the path metric memory control unit 150.

最尤アドレス生成部130は、また、ACS演算部121乃至124から入力されたブランチメトリック値の最大値と閾値とを比較し、その最大値が閾値以上である場合、ACS演算部121乃至124に対して、減算制御情報を入力する。但し、減算制御情報は、ブランチメトリック値に関するオーバーフローの発生を回避するようにACS演算部121乃至124を制御する情報である。   The maximum likelihood address generation unit 130 also compares the maximum value of the branch metric value input from the ACS calculation units 121 to 124 with a threshold value. If the maximum value is equal to or greater than the threshold value, the maximum likelihood address generation unit 130 causes the ACS calculation units 121 to 124 to On the other hand, the subtraction control information is input. However, the subtraction control information is information for controlling the ACS calculation units 121 to 124 so as to avoid the occurrence of overflow related to the branch metric value.

次に図8のフローチャートを参照して、本実施形態に係るビタビ復号装置10の動作について詳細に説明する。   Next, the operation of the Viterbi decoding apparatus 10 according to the present embodiment will be described in detail with reference to the flowchart of FIG.

相関値生成部110は、受信した、畳み込み符号を用いて符号化されたシンボルデータと、相関値生成部110の説明において前述した生成多項式と基づいて相関値を生成し、生成した相関値をACS演算部121乃至124へ入力する(ステップS101)。ACS演算部121乃至124は、入力された相関値と、前回受信したシンボルデータに関するブランチメトリック値及びパスメトリック値とに基づいて、ACS演算を並列に実行することによって、ブランチメトリック値、パスメトリック値、ブランチメトリック値の最大値、及び、最大値選択情報を生成する(ステップS102)。   The correlation value generation unit 110 generates a correlation value based on the received symbol data encoded using the convolutional code and the generation polynomial described above in the description of the correlation value generation unit 110, and the generated correlation value is represented by ACS. Input to the arithmetic units 121 to 124 (step S101). The ACS calculation units 121 to 124 execute the ACS calculation in parallel based on the input correlation value and the branch metric value and path metric value related to the symbol data received last time, thereby obtaining the branch metric value and path metric value. The maximum branch metric value and maximum value selection information are generated (step S102).

ACS演算部121乃至124は、生成したブランチメトリック値を、ブランチメトリックメモリ141Aあるいは141Bへ格納し、生成したパスメトリック値を、パスメトリックメモリ151へ格納する(ステップS103)。最尤アドレス生成部130は、ACS演算部121乃至124により生成された最大値選択情報と、ブランチメトリック最大値が書き込まれたアドレス情報とに基づいて最尤アドレスを生成し、最尤アドレスをパスメトリックメモリ制御部150へ入力する(ステップS104)。   The ACS calculation units 121 to 124 store the generated branch metric value in the branch metric memory 141A or 141B, and store the generated path metric value in the path metric memory 151 (step S103). The maximum likelihood address generation unit 130 generates a maximum likelihood address based on the maximum value selection information generated by the ACS calculation units 121 to 124 and the address information in which the branch metric maximum value is written, and passes the maximum likelihood address. Input to the metric memory control unit 150 (step S104).

パスメトリックメモリ制御部150は、トレースバック処理部として、入力された最尤アドレスを、開始アドレスとして読み出しアドレス生成部152にセットする(ステップS105)。パスメトリックメモリ制御部150は、ステップS107の処理を4K(Kは拘束長)回繰り返し実行する(ステップS106)。i(iは1乃至4Kのいずれかの整数)回目のトレースバック処理として、読み出しアドレス生成部152が示す読み出すアドレスに基づいて、読み出したパスメトリック値の1つを選択し、選択したパスメトリック値を、読み出しアドレス生成部152にシフト入力する(ステップS107)。   The path metric memory control unit 150 sets the input maximum likelihood address to the read address generation unit 152 as a start address as a traceback processing unit (step S105). The path metric memory control unit 150 repeatedly executes the process of step S107 4K (K is a constraint length) times (step S106). As the i-th (i is an integer from 1 to 4K) trace back process, one of the read path metric values is selected based on the read address indicated by the read address generation unit 152, and the selected path metric value is selected. Are input to the read address generator 152 (step S107).

iが4K未満の場合、パスメトリックメモリ制御部150は、iに1を加算してステップS107の処理を行い、iが4Kである場合は、処理はステップS109へ進む(ステップS108)。パスメトリックメモリ制御部150は、読み出しアドレス生成部152にシフト入力したパスメトリック値を、ビタビ復号データとして出力し(ステップS109)、全体の処理は終了する。   If i is less than 4K, the path metric memory control unit 150 adds 1 to i and performs the process of step S107. If i is 4K, the process proceeds to step S109 (step S108). The path metric memory control unit 150 outputs the path metric value shift-input to the read address generation unit 152 as Viterbi decoded data (step S109), and the entire process ends.

本実施形態に係るビタビ復号装置10は、畳み込み符号を用いて符号化されたデータをビタビ復号によって復号する場合に、誤り訂正能力を向上すると共に、ビタビ復号処理を高速化することを可能とする。その理由は、ビタビ復号装置10は、ブランチメトリック値及びパスメトリック値に関する複数のACS演算を並列に行なうとともに、トレースバック処理において、パスメトリック値を読み出す読み出しアドレスを、その読み出しアドレスを示すバレルシフタに対して、前回読み出したパスメトリック値をシフト入力することにより生成するからである。   The Viterbi decoding apparatus 10 according to the present embodiment improves the error correction capability and speeds up the Viterbi decoding process when data encoded using a convolutional code is decoded by Viterbi decoding. . The reason is that the Viterbi decoding apparatus 10 performs a plurality of ACS operations related to the branch metric value and the path metric value in parallel, and in the traceback process, the read address for reading the path metric value is sent to the barrel shifter indicating the read address. This is because the path metric value read last time is generated by shift input.

以下に、本実施形態に係るビタビ復号装置10によって実現される効果について、詳細に説明する。   Below, the effect implement | achieved by the Viterbi decoding apparatus 10 which concerns on this embodiment is demonstrated in detail.

畳み込み符号とビタビ復号とを用いた通信方式では、拘束長Kを大きくすることによって、誤り訂正能力を向上することができる。しかしながら、拘束長Kを大きくした場合、必要な演算量が増大することにより、受信データに関するシンボルレートが低下するので、通信速度が低下するという問題がある。したがって、ビタビ復号において、誤り訂正能力を向上すると共に、復号処理を高速化することが課題である。   In a communication method using convolutional codes and Viterbi decoding, error correction capability can be improved by increasing the constraint length K. However, when the constraint length K is increased, a necessary calculation amount increases, so that a symbol rate related to received data decreases, and thus there is a problem that a communication speed decreases. Therefore, in Viterbi decoding, it is a problem to improve error correction capability and speed up the decoding process.

このような問題に対して、本実施形態に係るビタビ復号装置10は、ACS演算部121乃至124、記憶部としてのブランチメトリックメモリ141A及び141B、記憶部としてのパスメトリックメモリ151、及び、トレースバック部としてのパスメトリックメモリ制御部150を備え、例えば、図1乃至図8を参照して上述する通り動作する。即ち、ACS演算部121乃至124は、畳み込み符号を用いて符号化された入力データに対するビタビ復号を行なう場合に、ブランチメトリック値及びパスメトリック値に関する複数のACS演算を、並列あるいは擬似並列に行なう。記憶部(ブランチメトリックメモリ141A及び141B、及び、パスメトリックメモリ151)は、ACS演算部121乃至124によって求められたブランチメトリック値、及び、パスメトリック値を記憶する。トレースバック部(パスメトリックメモリ制御部150)は、パスメトリック値に対するトレースバックにおいて、記憶部からパスメトリック値を読み出す読み出しアドレスを、読み出しアドレスを示すバレルシフタに対して、読み出したパスメトリック値をシフト入力することにより生成する。   For such a problem, the Viterbi decoding apparatus 10 according to the present embodiment includes an ACS operation unit 121 to 124, branch metric memories 141A and 141B as storage units, a path metric memory 151 as storage units, and a traceback. The path metric memory control unit 150 as a unit is provided and operates as described above with reference to FIGS. 1 to 8, for example. That is, the ACS calculation units 121 to 124 perform a plurality of ACS calculations related to the branch metric value and the path metric value in parallel or pseudo-parallel when performing Viterbi decoding on input data encoded using a convolutional code. The storage units (branch metric memories 141A and 141B and path metric memory 151) store the branch metric values and path metric values obtained by the ACS calculation units 121 to 124. The traceback unit (path metric memory control unit 150) shifts and inputs the read address for reading the path metric value from the storage unit to the barrel shifter indicating the read address in the trace back for the path metric value. To generate.

このように、本実施形態に係るビタビ復号装置10は、2K−1回(Kが「14」の場合は8192回)のACS演算を並列に行なうことによって、ACS演算に要する処理時間taを大幅に短縮する。尚、ビタビ復号装置10は、ACS演算部を複数備える代わりに、例えば、ACS演算を擬似並列に行なう1つのACS演算部を備えてもよい。但し、擬似並列は、例えば時分割等による並列処理のことである。 Thus, the Viterbi decoding apparatus 10 according to the present embodiment performs the ACS operation 2 K−1 times (8192 times when K is “14”) in parallel, thereby reducing the processing time ta required for the ACS operation. Significantly shortens. Note that the Viterbi decoding apparatus 10 may include, for example, one ACS calculation unit that performs pseudo-parallel ACS calculation instead of including a plurality of ACS calculation units. However, pseudo-parallel is parallel processing by time division, for example.

また、ビタビ復号装置10は、トレースバックにおいて、パスメトリックメモリ151に対する読み出しアドレス(最尤アドレス)を生成する論理回路として、バレルシフタを備える。これにより、本実施形態に係るビタビ復号装置10は、受信したシンボルデータに関するパスメトリック値を遡る処理において、その処理に要するビタビ復号動作クロックを削減することができる。即ち、トレースバックにおいて、一般的なシフトレジスタを用いて読み出しアドレスを生成する場合、トレースバック処理時間tbは、4K回(Kが「14」の場合は56回)のパスメトリックメモリ151へのアクセスに要するビタビ復号動作クロック数分の時間と、4K回の最尤アドレスによるシフト処理に要するビタビ復号動作クロック数分の時間とを合計した値となる。これに対して、バレルシフタを用いて読み出しアドレスを生成する場合、トレースバック処理時間tbは、4K回のパスメトリックメモリへのアクセスに要するビタビ復号動作クロック数分の時間に短縮される。   Further, the Viterbi decoding apparatus 10 includes a barrel shifter as a logic circuit that generates a read address (maximum likelihood address) for the path metric memory 151 in the traceback. Thereby, the Viterbi decoding apparatus 10 according to the present embodiment can reduce the Viterbi decoding operation clock required for the process in the process of tracing back the path metric value regarding the received symbol data. That is, when a read address is generated using a general shift register in the trace back, the trace back processing time tb is 4K times (56 times when K is “14”) access to the path metric memory 151. This is a total of the time required for the number of Viterbi decoding operation clocks required for the number of times and the time required for the number of Viterbi decoding operation clocks required for the shift processing using 4K maximum likelihood addresses. On the other hand, when a read address is generated using a barrel shifter, the traceback processing time tb is shortened to a time corresponding to the number of Viterbi decoding operation clocks required for accessing the 4K path metric memory.

このように本実施形態に係るビタビ復号装置10は、拘束長Kが大きいビタビ復号において、ACS演算に要する処理時間taと、トレースバック処理時間tbとを短縮することができるので、誤り訂正能力を向上すると共に、ビタビ復号処理を高速化することができる。   As described above, the Viterbi decoding apparatus 10 according to the present embodiment can reduce the processing time ta required for the ACS calculation and the traceback processing time tb in Viterbi decoding with a large constraint length K, and thus has an error correction capability. In addition, the Viterbi decoding process can be speeded up.

また、一般的なビタビ復号においては、ブランチメトリック値に関するオーバーフローが発生することによって、ビタビ復号データに誤りが発生する問題がある。一般的なビタビ復号におけるACS演算では、受信したシンボルデータに関する2個の相関値と、前回のシンボルデータに関する2K−1個のブランチメトリック値とを加算(Addition)することによって、受信したシンボルデータに関する2K−1個のブランチメトリック値を生成する。そして、ACS演算では、生成した2K−1個のブランチメトリック値を比較(Compare)したのち、2K−1個のブランチメトリック値の最小値を検出して、その最小値を最尤値として選択(Select)する。この場合、ブランチメトリック値は加算により求められるので、求めたブランチメトリック値が、ブランチメトリック値を表す有効ビット幅を超えた場合に、オーバーフローが発生する。 Further, in general Viterbi decoding, there is a problem that an error occurs in Viterbi decoded data due to an overflow related to a branch metric value. The ACS operation in the general Viterbi decoding, 2 and the K correlation values for the received symbol data, by adding the 2 K-1 pieces of branch metric values for the previous symbol data (Addition,), the received symbol Generate 2 K-1 branch metric values for the data. In the ACS calculation, the generated 2 K-1 branch metric values are compared (Compare), the minimum value of the 2 K-1 branch metric values is detected, and the minimum value is set as the maximum likelihood value. Select. In this case, since the branch metric value is obtained by addition, an overflow occurs when the obtained branch metric value exceeds the effective bit width representing the branch metric value.

このような問題に対して、本実施形態に係る最尤アドレス生成部130は、ACS演算部121乃至124から入力されたブランチメトリック値の最大値を閾値と比較して、その最大値が閾値以上である場合に、ACS演算において、ブランチメトリックメモリ141Aあるいは141Bから読み出したブランチメトリック値に対して特定の値を減算するように、ACS演算部121乃至124を制御する。これにより、本実施形態に係るビタビ復号装置10は、ブランチメトリック値に関するオーバーフローが発生することを回避することができる。   For such a problem, the maximum likelihood address generation unit 130 according to the present embodiment compares the maximum value of the branch metric value input from the ACS calculation units 121 to 124 with a threshold value, and the maximum value is equal to or greater than the threshold value. In the ACS calculation, the ACS calculation units 121 to 124 are controlled so as to subtract a specific value from the branch metric value read from the branch metric memory 141A or 141B. Thereby, the Viterbi decoding apparatus 10 according to the present embodiment can avoid the occurrence of overflow related to the branch metric value.

また、本実施形態に係る相関値生成部110は、例えば図3に示す通り、受信したシンボルデータが示す、「1」である確からしさの度合い、及び「0」である確からしさの度合いに基づいて、相関値に対する重み付けを行う。即ち、相関値生成部110は、受信したシンボルデータが「1」あるいは「0」であることが確からしい場合に、その重み付けを大きくし、シンボルデータが「1」あるいは「0」であることが不確かである場合に、その重み付けを小さくすることによって、最尤値となる値が最大値なるような相関値を、ACS演算部121乃至124へ入力する。したがって、本実施形態に係るビタビ復号装置10は、最大値を最尤値とすることにより、上述した最大値と閾値との比較に基づくオーバーフローを回避する制御を行うことができる。   Further, for example, as shown in FIG. 3, the correlation value generation unit 110 according to the present embodiment is based on the degree of probability of “1” and the degree of probability of “0” indicated by the received symbol data. Thus, the correlation value is weighted. That is, when the received symbol data is likely to be “1” or “0”, the correlation value generation unit 110 increases the weight and the symbol data is “1” or “0”. When uncertain, by reducing the weight, a correlation value that maximizes the maximum likelihood value is input to the ACS calculation units 121 to 124. Therefore, the Viterbi decoding apparatus 10 according to the present embodiment can perform control to avoid overflow based on the comparison between the maximum value and the threshold value described above, by setting the maximum value as the maximum likelihood value.

また、ACS演算を並列に行なう場合、ブランチメトリック値に関するメモリへの配置を工夫しないと、複数のACS演算によるメモリアクセスが競合することによって、演算効率が低下する問題がある。図13は、複数のACS演算によるブランチメトリックメモリに対する読み出し制御に競合が発生する場合を例示する図である。図13に示す例では、例えば、ACS演算部1が使用するブランチメトリック値m0と、ACS演算部2が使用するブランチメトリック値m1024とが、いずれもブランチメトリックメモリA−1に配置されているので、ブランチメトリックメモリA−1に対する読み出し制御の競合が発生している。   Further, when ACS operations are performed in parallel, there is a problem in that the operation efficiency decreases due to contention of memory accesses by a plurality of ACS operations unless the arrangement of the branch metric values in the memory is devised. FIG. 13 is a diagram illustrating a case where contention occurs in read control for a branch metric memory by a plurality of ACS operations. In the example shown in FIG. 13, for example, the branch metric value m0 used by the ACS calculation unit 1 and the branch metric value m1024 used by the ACS calculation unit 2 are both arranged in the branch metric memory A-1. There is a contention of read control for the branch metric memory A-1.

これに対して、本実施形態に係るビタビ復号装置10では、図4を参照して例示的に説明した通り、複数のACS演算によるメモリアクセスが競合しないように、ブランチメトリック値に関するメモリへの配置を工夫している。即ち、例えば、ACS演算部121が使用するブランチメトリック値は全てブランチメトリックメモリ141A−1に、ACS演算部121が使用するブランチメトリック値は全てブランチメトリックメモリ141A−2に配置されている。即ち、本実施形態に係るブランチメトリックメモリ141A及び141Bは、ACS演算の並列実行数(例えば「4」)以上に分割された記憶領域であって、他の前記記憶領域との間において、アクセス制御に関する競合が発生しないように構成された複数の記憶領域を含んでいる。そして、ACS演算部121乃至124は、これら記憶領域毎に、ブランチメトリック値(パスメトリック値についても同様)を読み出すACS演算がいずれか1つになるように、ACS演算により求められたブランチメトリック値(パスメトリック値についても同様)を、ブランチメトリックメモリ141Aあるいは141Bに格納する。これにより、本実施形態に係るビタビ復号装置10は、複数のACS演算によるメモリアクセスが競合することによって、演算効率が低下することを回避することができる。   On the other hand, in the Viterbi decoding apparatus 10 according to the present embodiment, as described with reference to FIG. 4, the placement of the branch metric values in the memory so that the memory accesses by the plurality of ACS operations do not compete. Is devised. That is, for example, all branch metric values used by the ACS calculation unit 121 are arranged in the branch metric memory 141A-1, and all branch metric values used by the ACS calculation unit 121 are arranged in the branch metric memory 141A-2. That is, the branch metric memories 141A and 141B according to the present embodiment are storage areas that are divided by the number of ACS operations executed in parallel (for example, “4”) or more, and access control is performed between the other storage areas. A plurality of storage areas configured so as not to cause contention with respect to each other are included. Then, the ACS calculation units 121 to 124 determine the branch metric value obtained by the ACS calculation so that one of the ACS calculations for reading the branch metric value (the same applies to the path metric value) is provided for each storage area. (The same applies to the path metric value) is stored in the branch metric memory 141A or 141B. As a result, the Viterbi decoding apparatus 10 according to the present embodiment can avoid a reduction in calculation efficiency due to a conflict between memory accesses by a plurality of ACS calculations.

また、本実施形態に係るACS演算では、図6を参照して例示的に説明した通り、例えば、1回目の演算(新たなブランチメトリック値M0を求める演算)と、2回目の演算(新たなブランチメトリック値M1を求める演算)において、いずれも前回のブランチメトリック値m0及びm4096を使用する。即ち、本実施形態に係るACS演算では、連続する2回の演算において、同じ前回のブランチメトリック値を使用する特徴がある。本実施形態に係るACS演算部121乃至124は、このような特徴をふまえて、ビタビ復号動作クロック毎に、連続してブランチメトリックメモリ141Aあるいは141Bから読み出した2つのブランチメトリック値を使用(保持)する期間を、ビタビ復号動作クロックのクロック幅の2倍の期間に伸長する。そして、ACS演算部121乃至124は、当該2つのブランチメトリック値と、ビタビ復号動作クロック毎に生成された相関値とを使用したACS演算を行う。これにより、本実施形態に係るビタビ復号装置10は、ACS演算を効率的に行なうことができる。   In the ACS calculation according to the present embodiment, for example, as described with reference to FIG. 6, for example, a first calculation (calculation for obtaining a new branch metric value M0) and a second calculation (new In the calculation for obtaining the branch metric value M1, the previous branch metric values m0 and m4096 are both used. That is, the ACS calculation according to the present embodiment is characterized in that the same previous branch metric value is used in two consecutive calculations. The ACS calculation units 121 to 124 according to the present embodiment use (hold) two branch metric values successively read from the branch metric memory 141A or 141B for each Viterbi decoding operation clock based on such characteristics. This period is extended to a period twice the clock width of the Viterbi decoding operation clock. Then, the ACS calculation units 121 to 124 perform ACS calculation using the two branch metric values and the correlation value generated for each Viterbi decoding operation clock. Thereby, the Viterbi decoding apparatus 10 according to the present embodiment can efficiently perform the ACS calculation.

<第2の実施形態>
図9は、本願発明の第2の実施形態に係るビタビ復号装置20の構成を概念的に示すブロック図である。
<Second Embodiment>
FIG. 9 is a block diagram conceptually showing the structure of the Viterbi decoding apparatus 20 according to the second embodiment of the present invention.

本実施形態に係るビタビ復号装置20は、ACS演算部21、記憶部22、及び、トレースバック部23を備えている。   The Viterbi decoding device 20 according to the present embodiment includes an ACS calculation unit 21, a storage unit 22, and a traceback unit 23.

ACS演算部21は、畳み込み符号を用いて符号化された入力データに対するビタビ復号を行なう場合に、複数のブランチメトリック値221及びパスメトリック値222に関するACS演算を、並列あるいは擬似並列に行なう。   The ACS computing unit 21 performs ACS computation on a plurality of branch metric values 221 and path metric values 222 in parallel or pseudo-parallel when performing Viterbi decoding on input data encoded using a convolutional code.

記憶部22は、ACS演算部21によって求められたブランチメトリック値221、及び、パスメトリック値222を記憶する。   The storage unit 22 stores the branch metric value 221 and the path metric value 222 obtained by the ACS calculation unit 21.

トレースバック部23は、パスメトリック値222に対するトレースバックにおいて、記憶部22からパスメトリック値222を読み出す読み出しアドレス231を、読み出しアドレス231を示すバレルシフタ230に対して、前回読み出したパスメトリック値222をシフト入力することにより生成する。   In the traceback for the path metric value 222, the trace back unit 23 shifts the read address 231 for reading the path metric value 222 from the storage unit 22 and the previously read path metric value 222 to the barrel shifter 230 indicating the read address 231. Generated by input.

本実施形態に係るビタビ復号装置10は、畳み込み符号を用いて符号化されたデータをビタビ復号によって復号する場合に、誤り訂正能力を向上すると共に、ビタビ復号処理を高速化することを可能とする。その理由は、ビタビ復号装置20は、ブランチメトリック値及びパスメトリック値に関する複数のACS演算を並列に行なうとともに、トレースバックにおいて、パスメトリック値を読み出す読み出しアドレスを、その読み出しアドレスを示すバレルシフタに対して、前回読み出したパスメトリック値をシフト入力することにより生成するからである。   The Viterbi decoding apparatus 10 according to the present embodiment improves the error correction capability and speeds up the Viterbi decoding process when data encoded using a convolutional code is decoded by Viterbi decoding. . The reason is that the Viterbi decoding apparatus 20 performs a plurality of ACS operations on the branch metric value and the path metric value in parallel, and in the trace back, the read address for reading the path metric value is set to the barrel shifter indicating the read address. This is because the path metric value read last time is generated by shift input.

以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。   The present invention has been described above using the above-described embodiment as an exemplary example. However, the present invention is not limited to the embodiment described above. That is, the present invention can apply various modes that can be understood by those skilled in the art within the scope of the present invention.

10 ビタビ復号装置
110 相関値生成部
111 相関値生成カウンタ
121乃至124 ACS演算部
130 最尤アドレス生成部
140 ブランチメトリックメモリ制御部
141A及び141B ブランチメトリックメモリ
150 パスメトリックメモリ制御部
151 パスメトリックメモリ
152 読み出しアドレス生成部
20 ビタビ復号装置
21 ACS演算部
22 記憶部
221 ブランチメトリック値
222 パスメトリック値
23 トレースバック部
230 バレルシフタ
231 読み出しアドレス
DESCRIPTION OF SYMBOLS 10 Viterbi decoding apparatus 110 Correlation value generation part 111 Correlation value generation counter 121 thru | or 124 ACS calculating part 130 Maximum likelihood address generation part 140 Branch metric memory control part 141A and 141B Branch metric memory 150 Path metric memory control part 151 Path metric memory 152 Reading Address generation unit 20 Viterbi decoding device 21 ACS calculation unit 22 Storage unit 221 Branch metric value 222 Path metric value 23 Traceback unit 230 Barrel shifter 231 Read address

Claims (10)

畳み込み符号を用いて符号化された入力データに対するビタビ復号を行なう場合に、ブランチメトリック値及びパスメトリック値に関する複数のACS(Addition、Compare、Select)演算を、並列あるいは擬似並列に行なうACS演算手段と、
前記ACS演算手段によって求められた前記ブランチメトリック値、及び、前記パスメトリック値を記憶する記憶手段と、
前記パスメトリック値に対するトレースバックにおいて、前記記憶手段から前記パスメトリック値を読み出す読み出しアドレスを、前記読み出しアドレスを示すバレルシフタに対して、前回読み出した前記パスメトリック値をシフト入力することにより生成するトレースバック手段と、
を備えるビタビ復号装置。
ACS operation means for performing a plurality of ACS (Addition, Compare, Select) operations on branch metric values and path metric values in parallel or pseudo-parallel when Viterbi decoding is performed on input data encoded using a convolutional code. ,
Storage means for storing the branch metric value obtained by the ACS calculation means and the path metric value;
In the traceback for the path metric value, a trace back generated by shifting the read address for reading the path metric value from the storage means to the barrel shifter indicating the read address by shifting the path metric value read last time. Means,
A Viterbi decoding device comprising:
前記記憶手段は、前記ACS演算の並列実行数以上に分割された記憶領域であって、他の前記記憶領域との間において、アクセス制御に関する競合が発生しないように構成された複数の前記記憶領域を含み、
前記ACS演算手段は、前記記憶領域毎に、前記ブランチメトリック値あるいは前記パスメトリック値を読み出す前記ACS演算がいずれか1つになるように、前記ACS演算により求められた前記ブランチメトリック値あるいは前記パスメトリック値を前記記憶手段に格納する、
請求項1に記載のビタビ復号装置。
The storage means is a storage area divided into more than the number of parallel executions of the ACS operation, and a plurality of the storage areas configured to prevent contention with respect to access control with the other storage areas Including
The ACS calculation means is configured to determine the branch metric value or the path obtained by the ACS calculation so that the ACS calculation for reading the branch metric value or the path metric value becomes one for each storage area. Storing a metric value in the storage means;
The Viterbi decoding device according to claim 1.
前記トレースバックにおける起点となる最尤アドレスを生成する際に、前記ACS演算手段から入力された前記ブランチメトリック値の最大値を閾値と比較して、前記最大値が閾値以上である場合に、前記ACS演算において、前記記憶手段から読み出した前記ブランチメトリック値に対して特定の値を減算するように、前記ACS演算手段を制御する最尤アドレス生成手段をさらに備える、
請求項1または2に記載のビタビ復号装置。
When generating the maximum likelihood address that is the starting point in the traceback, the maximum value of the branch metric value input from the ACS calculation means is compared with a threshold value, and the maximum value is equal to or greater than the threshold value, In ACS calculation, it further comprises maximum likelihood address generation means for controlling the ACS calculation means so as to subtract a specific value from the branch metric value read from the storage means.
The Viterbi decoding apparatus according to claim 1 or 2.
入力された、軟判定情報を含む前記入力データから、生成多項式に基づいて相関値を生成し、生成した前記相関値を前記ACS演算手段に入力する相関値生成手段をさらに備え、
前記ACS演算手段は、入力された前記相関値を使用して、前記複数のACS演算を行う、
請求項1乃至3のいずれか一項に記載のビタビ復号装置。
Correlation value generation means for generating a correlation value from the input data including soft decision information based on a generator polynomial and inputting the generated correlation value to the ACS calculation means,
The ACS calculation means performs the plurality of ACS calculations using the input correlation value.
The Viterbi decoding device according to any one of claims 1 to 3.
前記相関値生成手段は、前記入力データに含まれるシンボルデータが示す、「1」である確からしさの度合い、及び「0」である確からしさの度合いに基づいて、前記相関値に対する重み付けを行う、
請求項4に記載のビタビ復号装置。
The correlation value generation means weights the correlation value based on the degree of probability of “1” and the degree of probability of “0” indicated by the symbol data included in the input data.
The Viterbi decoding device according to claim 4.
前記相関値生成手段は、前記ビタビ復号を行う際の動作クロック毎に、前記相関値を生成し、
前記ACS演算手段は、前記動作クロック毎に、連続して前記記憶手段から読み出した2つの前記ブランチメトリック値を保持する期間を、前記動作クロックのクロック幅の2倍に伸長したのち、前記2つのブランチメトリック値と、前記動作クロック毎に生成された前記相関値とを使用することによって、前記ACS演算を行う、
請求項4または5に記載のビタビ復号装置。
The correlation value generation means generates the correlation value for each operation clock when performing the Viterbi decoding,
The ACS calculating means extends the period for holding the two branch metric values read from the storage means successively for each operation clock to twice the clock width of the operation clock, and then Performing the ACS operation by using a branch metric value and the correlation value generated for each operation clock;
The Viterbi decoding device according to claim 4 or 5.
ACS演算手段によって、畳み込み符号を用いて符号化された入力データに対するビタビ復号を行なう場合に、ブランチメトリック値及びパスメトリック値に関する複数のACS演算を、並列あるいは擬似並列に行い、
記憶手段によって、前記ACS演算によって求められた前記ブランチメトリック値、及び、前記パスメトリック値を記憶し、
トレースバック手段によって、前記パスメトリック値に対するトレースバックにおいて、前記記憶手段から前記パスメトリック値を読み出す読み出しアドレスを、前記読み出しアドレスを示すバレルシフタに対して、前回読み出した前記パスメトリック値をシフト入力することにより生成する、
ビタビ復号方法。
When Viterbi decoding is performed on input data encoded using a convolutional code by the ACS calculation means, a plurality of ACS calculations related to branch metric values and path metric values are performed in parallel or pseudo-parallel,
The storage means stores the branch metric value obtained by the ACS operation and the path metric value,
The traceback means shift-inputs the previously read path metric value to the barrel shifter indicating the read address and the read address for reading the path metric value from the storage means in the trace back for the path metric value. Generated by the
Viterbi decoding method.
前記記憶手段が、前記ACS演算の並列実行数以上に分割された記憶領域であって、他の前記記憶領域との間において、アクセス制御に関する競合が発生しないように構成された複数の前記記憶領域を含む場合に、
前記ACS演算手段によって、前記記憶領域毎に、前記ブランチメトリック値あるいは前記パスメトリック値を読み出す前記ACS演算がいずれか1つになるように、前記ACS演算により求められた前記ブランチメトリック値あるいは前記パスメトリック値を前記記憶手段に格納する、
請求項7に記載のビタビ復号方法。
The storage means is a storage area divided into more than the number of parallel executions of the ACS operation, and a plurality of the storage areas configured to prevent contention with respect to access control with the other storage areas Including
The branch metric value or the path obtained by the ACS calculation so that the ACS calculation means reads out the branch metric value or the path metric value for each storage area. Storing a metric value in the storage means;
The Viterbi decoding method according to claim 7.
最尤アドレス生成手段によって、前記トレースバックにおける起点となる最尤アドレスを生成する際に、前記ACS演算によって求められた前記ブランチメトリック値の最大値を閾値と比較して、前記最大値が閾値以上である場合に、前記ACS演算において、前記記憶手段から読み出した前記ブランチメトリック値に対して特定の値を減算するように制御する、
請求項7または8に記載のビタビ復号方法。
When the maximum likelihood address that is the starting point in the traceback is generated by the maximum likelihood address generation means, the maximum value of the branch metric value obtained by the ACS operation is compared with a threshold value, and the maximum value is equal to or greater than the threshold value. In the ACS calculation, control is performed so as to subtract a specific value from the branch metric value read from the storage means.
The Viterbi decoding method according to claim 7 or 8.
相関値生成手段によって、入力された、軟判定情報を含む前記入力データから、生成多項式に基づいて相関値を生成し、
前記ACS演算手段によって、生成した前記相関値を使用して、前記複数のACS演算を行う、
請求項7乃至9のいずれか一項に記載のビタビ復号方法。
A correlation value is generated based on a generator polynomial from the input data including the soft decision information input by the correlation value generation means,
The ACS calculation means performs the plurality of ACS calculations using the generated correlation values.
The Viterbi decoding method according to any one of claims 7 to 9.
JP2017109057A 2017-06-01 2017-06-01 Viterbi decoding device and Viterbi decoding method Active JP7007115B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017109057A JP7007115B2 (en) 2017-06-01 2017-06-01 Viterbi decoding device and Viterbi decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017109057A JP7007115B2 (en) 2017-06-01 2017-06-01 Viterbi decoding device and Viterbi decoding method

Publications (2)

Publication Number Publication Date
JP2018207248A true JP2018207248A (en) 2018-12-27
JP7007115B2 JP7007115B2 (en) 2022-01-24

Family

ID=64958407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017109057A Active JP7007115B2 (en) 2017-06-01 2017-06-01 Viterbi decoding device and Viterbi decoding method

Country Status (1)

Country Link
JP (1) JP7007115B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111030711A (en) * 2019-12-25 2020-04-17 吉首大学 Parallel addition-comparison-selection processing method for Viterbi decoder
US11108415B2 (en) * 2019-02-26 2021-08-31 Ali Corporation Method of Viterbi algorithm and receiving device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1174801A (en) * 1997-06-30 1999-03-16 Matsushita Electric Ind Co Ltd Arithmetic processing unit
JP2000156644A (en) * 1998-11-18 2000-06-06 Nec Corp Viterbi decoding method, viterbi decoder and storage medium storing vitervi decoding program
JP2005045727A (en) * 2003-07-25 2005-02-17 Matsushita Electric Ind Co Ltd Viterbi decoder
JP2011205511A (en) * 2010-03-26 2011-10-13 Fujitsu Ltd Receiving device and receiving method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1174801A (en) * 1997-06-30 1999-03-16 Matsushita Electric Ind Co Ltd Arithmetic processing unit
JP2000156644A (en) * 1998-11-18 2000-06-06 Nec Corp Viterbi decoding method, viterbi decoder and storage medium storing vitervi decoding program
JP2005045727A (en) * 2003-07-25 2005-02-17 Matsushita Electric Ind Co Ltd Viterbi decoder
JP2011205511A (en) * 2010-03-26 2011-10-13 Fujitsu Ltd Receiving device and receiving method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11108415B2 (en) * 2019-02-26 2021-08-31 Ali Corporation Method of Viterbi algorithm and receiving device
CN111030711A (en) * 2019-12-25 2020-04-17 吉首大学 Parallel addition-comparison-selection processing method for Viterbi decoder
CN111030711B (en) * 2019-12-25 2023-06-16 吉首大学 Parallel addition-comparison selection processing method for Viterbi decoder

Also Published As

Publication number Publication date
JP7007115B2 (en) 2022-01-24

Similar Documents

Publication Publication Date Title
EP0234558B1 (en) Path trace viterbi decoder
KR100426712B1 (en) Viterbi decoder
KR100439211B1 (en) The arithmetic processing unit
US7277507B2 (en) Viterbi decoder
JP7007115B2 (en) Viterbi decoding device and Viterbi decoding method
JP2009171347A (en) Arithmetic unit, error-correction decoding circuit and arithmetic method of error locator polynomial
KR100437697B1 (en) Method and apparatus for decoding multi-level trellis coded modulation
JP2001036418A (en) Viterbi decoder and transmitter
US6601215B1 (en) Traceback buffer management for VLSI Viterbi decoders
US6757864B1 (en) Method and apparatus for efficiently reading and storing state metrics in memory for high-speed ACS viterbi decoder implementations
JP4580927B2 (en) Viterbi decoding apparatus and Viterbi decoding method
KR100311504B1 (en) state metric memory in viterbi decoder and method for decoding using the same
JP4047697B2 (en) Viterbi decoder
JP2010206570A (en) Decoding apparatus and decoding method
US7231586B2 (en) Multi-rate viterbi decoder
JP4729938B2 (en) Viterbi decoder and mobile communication device, base station device, and mobile communication terminal using the same
JP4633759B2 (en) Viterbi decoder
JP5177028B2 (en) Decryption device
KR20000049852A (en) Viterbi decoder
JP2004120791A (en) Viterbi decoder
KR19990076528A (en) Apparatus and Method for Addition Comparison Selection for Viterbi Algorithm Processing
JP2006211403A (en) Error correcting apparatus
JP2000196468A (en) Viterbi decoder and biterbi decoding method
JP3996858B2 (en) Arithmetic processing unit
JP3634333B2 (en) Digital signal processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200515

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210707

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20211110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220106

R150 Certificate of patent or registration of utility model

Ref document number: 7007115

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150