JP2001028550A - Flexible viterbi decoder for radio application - Google Patents

Flexible viterbi decoder for radio application

Info

Publication number
JP2001028550A
JP2001028550A JP2000057869A JP2000057869A JP2001028550A JP 2001028550 A JP2001028550 A JP 2001028550A JP 2000057869 A JP2000057869 A JP 2000057869A JP 2000057869 A JP2000057869 A JP 2000057869A JP 2001028550 A JP2001028550 A JP 2001028550A
Authority
JP
Japan
Prior art keywords
acs
state
stage
traceback
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000057869A
Other languages
Japanese (ja)
Other versions
JP4331371B2 (en
Inventor
Dale E Hocevar
イー、ホスバー デール
Alan Gatherer
ギャザラー アラン
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2001028550A publication Critical patent/JP2001028550A/en
Application granted granted Critical
Publication of JP4331371B2 publication Critical patent/JP4331371B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To obtain high flexibility with increased decoding performance and low power requirement. SOLUTION: A decoder 110 system is provided with a state metric update unit 120, including a state metric memory 126 and a cascade-type addition/ comparison/selection(ACS) unit 122. The unit 122 includes a plurality of serial connection ACS stages, in which a plurality of ACS processing, is executed together with the memory 126. One ACS state identifies a plurality of path decisions and operates, so as to transmit the identified path decision to the next ACS stage connected to the ACS stage. A trace back unit 130 is provided, a trace back memory 132 related to the unit 130 stores a set of cumulative path decisions, and the unit 130 carries out trace back of the memory 132. Path decisions relating to the ACS stage and the next ACS stage are accumulated as a set during ACS processing before being written to the trace back memory, and thus, an access to the trace back memory is minimized.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、一般的には、ビタ
ビ・デコーディング・システムに関し、詳細には、無線
およびその他のタイプの通信応用のためのコンボルーシ
ョン・コードについての(ビタビ・アルゴリズムに基づ
く)フレキシブルで高速かつ低電力のデコーディングを
提供するシステムおよび方法に関する。
FIELD OF THE INVENTION The present invention relates generally to Viterbi decoding systems and, more particularly, to a Viterbi algorithm for convolutional codes for wireless and other types of communication applications. System) that provides flexible, fast and low power decoding.

【0002】[0002]

【従来の技術】最近の社会は、無線通信の劇的な増大を
目にしている。無線技術(例えば、衛星,マイクロ波)
は、セルラおよび他の通信に対する必要性が絶えず増大
するようなシステムを提供している。増大しかつ信頼性
のある通信能力に対する要求を満足するために、よりフ
レキシブルでパワーがあり効率的なシステムが必要であ
る。特に、増大する無線通信に対する社会のニーズを満
たすため、順方向エラー訂正(forward error correcti
on)システムを改善しなければならない。
2. Description of the Related Art Recent years have seen a dramatic increase in wireless communications. Wireless technology (eg satellite, microwave)
Provides a system in which the need for cellular and other communications is constantly increasing. To meet the demand for increased and reliable communication capabilities, more flexible, power and efficient systems are needed. In particular, in order to meet the increasing needs of society for wireless communication, forward error correction is needed.
on) The system must be improved.

【0003】順方向エラー訂正システムは、今日の通信
システムの多くにおいては必要なコンポーネントであ
る。これらシステムは、一般には、無線データの送信お
よび受信の間に発生することのあるエラーを実質的に訂
正することによって通信システムに対しロバスト性を付
加するものである。このことは、電力および/または帯
域幅が制限されたシステムに対しては特に当てはまる。
しばしば、そのような順方向エラー訂正システムでは、
コンボルーション・コーディングが鍵となる部分とな
る。一般に、コンボルーション・コーディング・システ
ムは、冗長データを無線データ送信に導入し、それによ
って、送信内に発生するランダム・エラーが訂正される
高い可能性をもつようにする。その結果、デコーディン
グ・システム(例えば、ビタビ・デコーダ)を適所に設
けることによって、その送信データを受信したときにコ
ンボルーション・コーディングされたデータをデコード
し、それにより、実際のデータ送信を再構成できるよう
にしなければならない。
[0003] Forward error correction systems are a necessary component in many of today's communication systems. These systems generally add robustness to a communication system by substantially correcting errors that may occur during transmission and reception of wireless data. This is especially true for systems with limited power and / or bandwidth.
Often, in such forward error correction systems,
Convolution coding is a key part. In general, convolutional coding systems introduce redundant data into the wireless data transmission so that random errors that occur in the transmission have a high probability of being corrected. As a result, by providing a decoding system (eg, a Viterbi decoder) in place, the convolution coded data is decoded when the transmitted data is received, thereby reconstructing the actual data transmission. I need to be able to do it.

【0004】従来技術の図1を参照すると、無線通信シ
ステム10は、従来の無線システムに提示されたある特
定の問題を示している。送信機20は、通信信号24を
衛星システム30に向けている。衛星システム30は、
通信信号24を受信したとき、通信信号24aを地上の
基地局32に向け、ここで、その信号を意図された宛先
に対して処理する。通信信号24および通信信号24a
の送信中においてはいつでも、ノイズ34が伝送の一部
分を破壊して(エラーを生じさせ)、これにより、基地
局32において適正でない信号受信を生じさせるおそれ
がある。エラー訂正システムが設けられていないなら
ば、その信号は、基地局32において適正に受信される
ためには、おそらくその再送信を行わなければならなく
なる。このため、非効率およびコスト上昇が生じるおそ
れが高い。
Referring to the prior art FIG. 1, a wireless communication system 10 illustrates certain problems that have been presented in conventional wireless systems. Transmitter 20 directs communication signal 24 to satellite system 30. The satellite system 30
Upon receiving the communication signal 24, it directs the communication signal 24a to a terrestrial base station 32, where it is processed for its intended destination. Communication signal 24 and communication signal 24a
At any time during transmission, the noise 34 can disrupt parts of the transmission (causing errors), which can cause improper signal reception at the base station 32. If no error correction system is provided, the signal will likely have to be retransmitted in order to be properly received at base station 32. Therefore, there is a high possibility that inefficiency and cost increase will occur.

【0005】図2は、ノイズの存在に拘わらず送信信号
が適正に通信される確率を増大させるためにコンボルー
ション・エンコーディングおよびビタビ・デコーディン
グを用いている従来技術のエラー訂正システム40を示
している。入力データ42(例えば、オーディオ,ビデ
オ,コンピュータのデータ)は、コンボルーション・エ
ンコーダ44に入力される。エンコードされたデータ
は、1シーケンスのデータ・ビット46(エンコード符
号とも呼ぶ)として提供され、これは、実際のデータと
冗長的に付加されたデータとからなり、通信リンク48
を介して送信する。通信リンク48はノイズをそのデー
タ送信に導入することがあり、したがって、送信データ
・ビット46は、それらの宛先に達するときまでに破壊
されることがある。各受信(破壊されている可能性のあ
る)データ・ビット46aは、ビタビ・デコーダ50に
よって処理されてデコード出力データ52を提供する。
(1967年にアンドリュー・ビタビによって最初に提
案されたビタビ・アルゴリズムに基づく)ビタビ・デコ
ーダ50は、ノイズが送信(コンボルーション処理され
た)データ46のいくつかに影響を与えたとしても元々
送信された入力データ42を高い確率で判定することが
できるデコーディング・システムを提供する。一般に
は、入力データ42は、コンボルーション処理されたエ
ンコード・データ46aから得た入力データ42に対す
る最尤シーケンスを計算することによって、判定するこ
とができる。
FIG. 2 shows a prior art error correction system 40 that uses convolutional encoding and Viterbi decoding to increase the probability that a transmitted signal will be properly communicated in the presence of noise. I have. Input data 42 (eg, audio, video, computer data) is input to a convolution encoder 44. The encoded data is provided as a sequence of data bits 46 (also referred to as an encoding code), which consists of the actual data and redundantly appended data,
To send over. Communication link 48 may introduce noise into its data transmission, so that transmitted data bits 46 may be corrupted by the time they reach their destination. Each received (possibly corrupted) data bit 46a is processed by a Viterbi decoder 50 to provide decoded output data 52.
The Viterbi decoder 50 (based on the Viterbi algorithm first proposed by Andrew Viterbi in 1967) is transmitted even if noise affects some of the transmitted (convoluted) data 46. A decoding system capable of determining the input data 42 with high probability. In general, the input data 42 can be determined by calculating a maximum likelihood sequence for the input data 42 obtained from the convolved encoded data 46a.

【0006】コンボルーション・エンコーディングは、
入力データ・ビット42をエンコーダを介して1つ以上
の前の入力ビット42とコンボルーション処理(冗長的
に加算)することによって、実行される。コンボルーシ
ョン・レート1/2で抑制長9のコンボルーション・エ
ンコーダ44の一例が、従来技術の図3に示されてい
る。入力ビット42は、種々の位置において出力X0
8を供給するシフトレジスタ44aのような一連の遅
延素子60に入力される。これら出力X0〜X8は、XO
R関数62a,62bによって組み合わされて、エンコ
ード符号セットG0,G1を発生する。XOR関数62
a,62bに接続(タップ)された出力X0〜X8は、所
与の入力データ・シーケンス42に対してG0およびG1
の出力コード・シーケンスを決定する。この入力−出力
関係は、エンコーダ出力G0,G1に対しコード多項式で
記述することができる。例えば、図3に示したエンコー
ダ44に対しては、コード多項式は次の通りに与えられ
る。
[0006] Convolutional encoding is
It is performed by convolving (redundantly adding) input data bits 42 with one or more previous input bits 42 via an encoder. An example of a convolution encoder 44 with a convolution rate of 1/2 and a suppression length of 9 is shown in FIG. 3 of the prior art. The input bits 42 correspond to the outputs X 0 to
The X 8 is input to a series of delay elements 60, such as a shift register 44a supplies. These outputs X 0 to X 8 are XO
Combined by the R functions 62a, 62b to generate the encoded code sets G 0 , G 1 . XOR function 62
The outputs X 0 -X 8 connected (tapped) to a, 62b are G 0 and G 1 for a given input data sequence 42.
Determine the output code sequence of. This input-output relationship can be described by a code polynomial for encoder outputs G 0 and G 1 . For example, for the encoder 44 shown in FIG. 3, the code polynomial is given as follows:

【0007】 G0=X0+X1+X3+X6+X8=1+X1+X3+X6
81=X0+X2+X3+X7+X8=1+X2+X3+X7
8 注)TMS320C54xファミリのビタビ・デコーディング
技術,1996年,テキサス・インスツルメンツ・アプ
リケーション・レポートSPRA071は、コンボルー
ション・エンコーダおよびそのコード多項式に関する更
なる詳細を示しており、また、この言及により本文に援
用される。
G 0 = X 0 + X 1 + X 3 + X 6 + X 8 = 1 + X 1 + X 3 + X 6 +
X 8 G 1 = X 0 + X 2 + X 3 + X 7 + X 8 = 1 + X 2 + X 3 + X 7 +
X 8 Note) TMS320C54x family Viterbi decoding technology, in 1996, Texas Instruments application report SPRA071 shows further details related to the convolution encoder and its code polynomial, also, in the body by this reference Incorporated.

【0008】図示のように、図3のエンコーダ44は、
すべての入力ビット42に対してエンコード符号セット
0,G1を発生する。このようにして、エンコーダは、
1/2のレート(1入力/2出力)を有する。抑制長
(K)は、遅延素子60の数の関数である、エンコーダ
によって用いられる組合せの全スパンを表す。抑制長K
=9は、2(9-1)=256のエンコーダ状態(第9ビッ
トが入力ビット)があることを意味する。これら状態
は、状態S0(2進数“00000000”)から状態
S255(2進数“11111111”)で表される。
As shown, the encoder 44 of FIG.
Generate encoding code sets G 0 and G 1 for all input bits 42. In this way, the encoder
It has a rate of 1/2 (1 input / 2 output). The suppression length (K) represents the total span of the combination used by the encoder, which is a function of the number of delay elements 60. Suppression length K
= 9 means that there are 2 (9-1) = 256 encoder states (the ninth bit is an input bit). These states are represented by state S0 (binary “00000000”) to state S255 (binary “11111111”).

【0009】コンボルーション・エンコード・データ
は、ビタビ・アルゴリズムに従ってデコードすることが
できる。ビタビ・アルゴリズムの基本は、過去の入力デ
ータ42に対する所与のデータ状態の依存性に基づいて
1つの所与の状態から次の状態への可能なエンコーダ4
4出力状態遷移についての知識を用いる(例えば、エン
コーダを模擬する)ことによって、コンボルーション・
エンコード・データをデコードすることである。許容可
能な状態遷移は、代表的には、入力データ42のエンコ
ーディング・プロセスに基づいて受信データ・シーケン
スに対する可能な状態経路を提供するトレリス図(コン
ボルーション状態図に類似)で表される。トレリス構造
は、上述のコンボルーション・エンコーダ44の構造全
体およびコード多項式コンフィギュレーションによって
決まる。ビタビ・アルゴリズムは、送信エンコーダ44
出力シーケンスをデコーダにおける受信データ・シーケ
ンスと一致させる最高の確率をもつものにその経路を限
定することによって、トレリスを通る状態経路の数を最
小にする方法を提供する。
[0009] The convolutional encoded data can be decoded according to the Viterbi algorithm. The basis of the Viterbi algorithm is a possible encoder 4 from one given state to the next based on the dependence of a given data state on past input data 42.
By using knowledge of the four output state transitions (eg, simulating an encoder), the convolution
Decoding the encoded data. Acceptable state transitions are typically represented in a trellis diagram (similar to a convolution state diagram) that provides a possible state path for a received data sequence based on the encoding process of the input data 42. The trellis structure is determined by the overall structure of the convolution encoder 44 and the code polynomial configuration described above. The Viterbi algorithm uses the transmit encoder 44
A method is provided that minimizes the number of state paths through the trellis by limiting the output sequence to the one with the highest probability of matching the received data sequence at the decoder.

【0010】図4は、トレリス66の一部分の例示であ
り、基本的なビタビ・アルゴリズム・バタフライ計算を
示している。現在状態ノード68a,68bから次状態
ノード68c,68dへの4つの可能なエンコーダ遷移
70a〜70dが示されている。図示のように、2つの
遷移経路(ブランチ)は、各現在状態ノード68a,6
8bから各次状態ノード68c,68dへと存在する。
ビタビ・アルゴリズムは、2つの可能な遷移経路のうち
の最も可能性のあるものが判定されたのちに“生存者”
経路の一部分として選択されるプロセスを提供する。例
えば、ブランチ70a,70bは、次状態ノード68c
への2つの可能な遷移経路を提供する。同様に、ブラン
チ70c,70dは、次状態ノード68dへの2つの可
能な遷移経路を提供する。遷移経路70a〜70dは、
入力ビット42によって指示されるようにコンボルーシ
ョン・エンコーダ44によって発生される次の最尤状態
への可能な方向を提供する。一旦(複数のバタフライ・
ステージを通して)1つのシーケンスの生存者経路が判
定されると、コンボルーション・エンコーダ44への最
も可能性のあるデータ入力シーケンス42を再構成する
ことができ、これにより、コンボルーション・エンコー
ディング・データがデコードされる。
FIG. 4 is an illustration of a portion of a trellis 66, illustrating the basic Viterbi algorithm butterfly computation. Four possible encoder transitions 70a-70d from the current state nodes 68a, 68b to the next state nodes 68c, 68d are shown. As shown, the two transition paths (branches) correspond to each current state node 68a, 6
8b to each next state node 68c, 68d.
The Viterbi algorithm "survives" after the most probable of the two possible transition paths has been determined.
Provide a process that is selected as part of the path. For example, the branches 70a and 70b are connected to the next state node 68c.
Provides two possible transition paths. Similarly, branches 70c, 70d provide two possible transition paths to next state node 68d. The transition paths 70a to 70d are:
It provides a possible direction to the next maximum likelihood state generated by convolution encoder 44 as indicated by input bit 42. Once (multiple butterflies
Once the survivor path of one sequence has been determined (through the stages), the most likely data input sequence 42 to the convolution encoder 44 can be reconstructed, so that the convolution encoding data is Decoded.

【0011】デコーダ動作は、一般には、ブランチ・メ
トリック計算と、加算/比較/選択(ACS)処理と、ト
レースバック処理とを含む。ブランチ・メトリック計算
は、現在状態から次状態への所与の遷移経路が正しいこ
との可能性の尺度を提供する。ブランチ・メトリック計
算では、受信データ値、代表的には入力信号の電圧また
は電流の大きさを表す8ビットまたは16ビットのデジ
タル値が処理されて、現在状態から次状態への状態遷移
から生ずる、受信データ値とノイズによって破壊されて
いないすべての可能な実際のデータ値との間のユークリ
ッド距離または等価距離(更なる詳細については上記T
Iの文献を参照)を判定する。
The decoder operation generally includes a branch metric calculation, an add / compare / select (ACS) process, and a traceback process. The branch metric calculation provides a measure of the likelihood that a given transition path from the current state to the next state is correct. In the branch metric calculation, a received data value, typically an 8-bit or 16-bit digital value representing the magnitude of the voltage or current of the input signal, is processed, resulting from a state transition from the current state to the next state. The Euclidean or equivalent distance between the received data value and all possible actual data values not corrupted by noise (see T.
I).

【0012】このため、抑制長Kをもつレート1/Rの
コンボルーション・デコーダからのデータ信号をデコー
ドすることは、このデコーダに入力された各エンコード
符号に対し全部で2Rブランチ・メトリック値を判定す
る必要がある。記述したように、2Rブランチ・メトリ
ック値の組は、1つの特定の受信入力符号に対する完全
なブランチ・メトリック組として定められる。
For this reason, decoding the data signal from the rate 1 / R convolution decoder having the suppression length K means that a total of 2 R branch metric values for each encoding code input to the decoder are obtained. It is necessary to judge. As described, the set of 2 R branch metric values is defined as the complete branch metric set for one particular received input code.

【0013】次のデコーダ・ステップでは、すべての可
能な状態遷移に対する先に計算されたブランチ・メトリ
ック値が処理され、次状態への経路の各々に対する“累
積距離”を判定する。実現例に依存して最小または最大
の距離(すなわち、最大の確率)をもつ経路が、生存者
経路として選択される。これは、加算/比較/選択また
はACS処理として知られている。ACS処理は、2つ
の基本処理に分解できる。加算処理すなわち経路メトリ
ック計算と、比較/選択処理とである。経路メトリック
加算処理は、受信データ入力シーケンスに対するブラン
チ・メトリック値をもつ(ビタビ処理の開始時にユーザ
が初期化し、状態から状態へと前方に運ばれる)現在状
態値の累積である。比較/選択処理は、加算処理からの
2つの値を計算し比較して、その最小値(または、実現
例に依存して最大値)を判定し、1つ以上の“トレース
バック・ビット”を記憶してその選択され生存者経路を
指示する。
In the next decoder step, the previously calculated branch metric values for all possible state transitions are processed to determine the "cumulative distance" for each of the paths to the next state. The path with the minimum or maximum distance (ie, maximum probability) depending on the implementation is selected as the survivor path. This is known as an add / compare / select or ACS process. The ACS process can be broken down into two basic processes. The addition process, ie, the route metric calculation, and the comparison / selection process. The path metric addition process is the accumulation of the current state value with the branch metric value for the received data input sequence (initialized by the user at the start of the Viterbi process and carried forward from state to state). The comparison / selection process calculates and compares the two values from the addition process to determine its minimum (or maximum, depending on the implementation) and determines one or more "traceback bits". Memorize and indicate the selected survivor path.

【0014】最後のデコーディング・ステップは、トレ
ースバック処理である。このステップは、最初の2つの
ステップによって判定されたように、状態遷移のトレリ
スを通る最尤経路をトレースし、トレリスを通る最も可
能性のある経路を再構成して、エンコーダ44に入力さ
れた元データを抽出する。
The last decoding step is a traceback process. This step traces the maximum likelihood path through the trellis of the state transition, as determined by the first two steps, and reconstructs the most likely path through the trellis and is input to the encoder 44. Extract the original data.

【0015】[0015]

【発明が解決しようとする課題】従来は、デジタル信号
プロセッサ(DSP)を用いることにより、種々のビタ
ビ・デコーディング応用を取り扱っている。多くのDS
Pは、ビタビ・デコーディング・アルゴリズムのために
特に設計された特別の命令を有している。例えば、今日
のセルラ電話応用の多くはDSP解決法を含む。しか
し、上述のコード(K=9)のようなコードを高いデー
タ・レート(384kbits/sec〜2Mbits/sec)ととも
に用いると、高い計算レートが一般に必要とされる。こ
れは、毎秒当たり49×106から256×106のビタ
ビACS処理を必要とすることがある。これらの計算処
理は、例えば多数のボイス/データ・チャンネルがセル
ラ基地局のDSPによって処理される場合には、その何
倍にも増大する。このため、ビタビ・デコーディング
は、DSPの計算帯域幅の大部分を消費することがあ
る。この結果、増大する計算要求を満たすために、より
高い性能のシステムが必要である。
Conventionally, various Viterbi decoding applications have been addressed by using a digital signal processor (DSP). Many DS
P has special instructions specifically designed for the Viterbi decoding algorithm. For example, many of today's cellular telephone applications include DSP solutions. However, when using a code like the one described above (K = 9) with high data rates (384 kbits / sec to 2 Mbits / sec), high computation rates are generally required. This may require 49 × 10 6 to 256 × 10 6 Viterbi ACS processing per second. These computations are multiplied, for example, if multiple voice / data channels are processed by the DSP of the cellular base station. For this reason, Viterbi decoding may consume a large part of the computation bandwidth of the DSP. As a result, higher performance systems are needed to meet the increasing computational demands.

【0016】従来のデコーディング・システムが直面す
る別の問題は、種々の形態のコンボルーション・コード
をデコードする必要性である。多くのデコーディング・
システムは、ある特定のタイプのコンボルーション・コ
ードを処理するようにハードワイヤ接続されているかハ
ード・コード化されている。例えば、上述の抑制長K
は、1つのエンコーディング・システムから次のエンコ
ーディング・システムへと変化することがある(例え
ば、K=9,8,7,6,5など)。また、上記のコー
ド多項式は、たとえ抑制長が変化しないままであったと
しても、システムからシステムへと変化することがあ
る。ハードワイヤ接続されたまたはハード・コード化さ
れたデコーディング・システムは、これらの異なるエン
コーディング要求に応えるためには、再設計する必要が
ある。種々の他のパラメータも、エンコーディング/デ
コーディング・プロセスにおいて変化させる必要が生ず
ることがある。したがって、デコーディング・システム
が種々の形態のエンコード・データの処理において高度
のフレキシビリティを提供することが望ましい。
Another problem faced by conventional decoding systems is the need to decode various forms of convolutional codes. Many decoding
The system is hardwired or hardcoded to handle certain types of convolutional codes. For example, the suppression length K described above
May change from one encoding system to the next (eg, K = 9, 8, 7, 6, 5, etc.). Also, the above code polynomial may change from system to system, even if the suppression length remains unchanged. Hard-wired or hard-coded decoding systems need to be redesigned to meet these different encoding requirements. Various other parameters may also need to be changed in the encoding / decoding process. Accordingly, it is desirable for a decoding system to provide a high degree of flexibility in processing various forms of encoded data.

【0017】従来のデコーディング・システムが直面す
るさらに別の問題は、増大された電力要求である。デー
タがより高いレートでデコードされるにつれて、デコー
ディング・システムの計算要求は、しばしば、デコーダ
(例えば、DSP,処理システム)の電力要求を増大さ
せる。多くの従来のシステムは、デコーディング処理中
に広範なレジスタおよびメモリ・アクセスを必要とす
る。これは、一般に、デコーダで消費される電力を増大
させ、また、デコーダ性能(例えば、速度,信頼性)を
一般に低下させる。
[0017] Yet another problem faced by conventional decoding systems is the increased power requirements. As data is decoded at higher rates, the computational requirements of the decoding system often increase the power requirements of the decoder (eg, DSP, processing system). Many conventional systems require extensive register and memory access during the decoding process. This generally increases the power consumed by the decoder and generally reduces decoder performance (eg, speed, reliability).

【0018】したがって、従来のデコーディング・シス
テムに関連した上述の問題に鑑み、増大されたデコーデ
ィング性能および低い電力要求で高度のフレキシビリテ
ィを提供するビタビ・デコーディング・システムおよび
方法を有することが望ましい。
Accordingly, in view of the above-mentioned problems associated with conventional decoding systems, it would be desirable to have a Viterbi decoding system and method that provides increased flexibility in increased decoding performance and lower power requirements. desirable.

【0019】[0019]

【課題を解決するための手段】本発明は、プログラマブ
ルDSPシステム内で動作することができ、また、フレ
キシビリティ,低電力および高データ・スループット・
レートを提供する、無線または他のタイプの応用のため
のビタビ・デコーダ用のVLSIアーキテクチャに向け
られたものである。このアーキテクチャは、セルラ基地
局およびモバイル・ハンドセットを含む多数の応用領域
のためのコスト効果のある解決法を提供することを意図
されている。
SUMMARY OF THE INVENTION The present invention is operable in a programmable DSP system and provides flexibility, low power and high data throughput.
It is directed to a VLSI architecture for a Viterbi decoder for wireless or other types of applications that provides rates. This architecture is intended to provide a cost-effective solution for a number of application areas, including cellular base stations and mobile handsets.

【0020】本デコーダは、好ましくは、レート1/n
で抑制長K=9(256状態)以下の複数の共通の線形
コンボルーション・コードに対して動作し、K=9の場
合には2.5Mbpsの実質的に高いスループット・レ
ートが可能である。特に、高データ・スループット・レ
ートは、いくつかのトレリス・ステージに渡って同時に
動作するカスケード形ACSシステムによって達成され
る。さらに、カスケード形ACSは、ACS処理の間に
部分プレトレースバック処理を多数のトレリス・ステー
ジに渡って実行する。これは、デコードされた出力ビッ
トを検索する最終のトレースバック処理の複雑さを減少
させることによって、また、これに関連したメモリ・ア
クセスの数を実質的に減少させることによって、システ
ム・スループットを増大させる。
The decoder preferably has a rate 1 / n
Operates on a plurality of common linear convolutional codes with a suppression length of K = 9 (256 states) or less, with K = 9 allowing a substantially higher throughput rate of 2.5 Mbps. In particular, high data throughput rates are achieved with cascaded ACS systems operating simultaneously over several trellis stages. In addition, the cascaded ACS performs partial pre-traceback processing during the ACS processing over multiple trellis stages. This increases system throughput by reducing the complexity of the final traceback process of retrieving decoded output bits, and by substantially reducing the number of memory accesses associated therewith. Let it.

【0021】この高いデータ・スループット・レート
は、デコーダが次世代セルラ基地局用の実質的に数百の
ボイス・チャンネルを取り扱うことができるようにす
る。これは、システムが必要とするDSPプロセッサの
数を大いに減少させ、純粋なDSPベース・システムの
システム・コストを低下させるのに有望である。これら
のタイプのデータ・レートおよびコードは、衛星通信か
らセルラ電話までの種々の無線用途において広範囲に用
いられる。
This high data throughput rate allows the decoder to handle virtually hundreds of voice channels for next generation cellular base stations. This promises to greatly reduce the number of DSP processors required by the system and to reduce the system cost of a pure DSP based system. These types of data rates and codes are widely used in various wireless applications, from satellite communications to cellular telephones.

【0022】特定のエンコーディング用途間およびビタ
ビ・デコーディング問題の正確な構造に関するいくつか
のデコーディング用途内には変動があるため、デコーデ
ィング・アーキテクチャにおけるフレキシビリティを提
供する。特に、上記のカスケード形ACSシステムは、
K=9に対してトレリスの多数のステージに渡って動作
することによって、可変抑制長コードに対して動作する
ように構成することができる。これは、状態メトリック
・メモリとともにサブトレリス・アーキテクチャに対し
て動作することによって達成される。K<9の場合に対
しては、特定のACSステージは選択的にバイパスされ
る。
Variations between specific encoding applications and within some decoding applications regarding the exact structure of the Viterbi decoding problem provide flexibility in the decoding architecture. In particular, the cascaded ACS system described above
By operating over multiple stages of the trellis for K = 9, it can be configured to operate on variable suppression length codes. This is achieved by operating on a sub-trellis architecture with state metric memory. For K <9, certain ACS stages are selectively bypassed.

【0023】本発明は、高度のフレキシビリティを組み
込むことにより、デコーダを多くの変動する状況におい
て用いることができるようにする。デコーダのフレキシ
ビリティは、可変の抑制長と、ユーザ供給の多項式コー
ド係数と、コード・レートと、収束距離およびフレーム
構造のようなトレースバック・セッティングとを含む。
The present invention allows the decoder to be used in many changing situations by incorporating a high degree of flexibility. Decoder flexibility includes variable suppression length, user-supplied polynomial code coefficients, code rate, and traceback settings such as convergence distance and frame structure.

【0024】本発明のデコーダとDSPとの間の高デー
タ・レート転送を可能にするようにメモリ・マッピング
されるDSPインターフェースが設けられている。これ
は、DSPの処理負担を大きく低減し、よりパワフルな
システム全体を提供する。デコーダ内には、かなりのバ
ッファ処理も提供される。本発明は、実行完了,入力バ
ッファ・ローおよび送受ブロック転送完了のような種々
のトリガ信号を含むインテリジェントなデータ転送およ
び同期機構もサポートする。
A DSP interface is provided which is memory mapped to allow high data rate transfers between the decoder of the present invention and the DSP. This greatly reduces the processing burden on the DSP and provides a more powerful overall system. Considerable buffering is also provided within the decoder. The present invention also supports intelligent data transfer and synchronization mechanisms, including various trigger signals, such as execution complete, input buffer low and transmit / receive block transfer completion.

【0025】さらに、本発明は、高データ・レートで動
作し、高エネルギー効率(すなわち、低電力)であるよ
うに設計されている。低電力動作は、レジスタ動作およ
びメモリ・アクセスを最小限にすることによって、ま
た、デコーディング・プロセスの特定の態様を並列にか
つストリームライン化することによって達成する。例え
ば、上述したACS処理は、ACS処理の間、プレトレ
ースバック処理を実行する。さらに、トレリスの多数の
ステージに渡り同時に動作することによって、メモリ・
アクセスが減少される。以上の目的およびそれに関係す
る目的を達成するために、本発明は、以下に詳述する特
徴を有する。以下の記述および添付の図面は、本発明の
ある一定の実施形態を詳細に示すものである。しかし、
これら実施形態は代表的なものであるが、本発明の原理
を用いる種々の方法のうちのいくつかに過ぎない。本発
明の以下の詳細な説明を図面とともに考慮することによ
り、本発明の他の目的,利点および新規な特徴が明らか
となる。
Furthermore, the present invention is designed to operate at high data rates and to be energy efficient (ie, low power). Low power operation is achieved by minimizing register operations and memory accesses, and by parallelizing and streamlining certain aspects of the decoding process. For example, the above-described ACS process executes a pre-traceback process during the ACS process. In addition, by operating simultaneously across many stages of the trellis, memory
Access is reduced. In order to achieve the above object and related objects, the present invention has the following features. The following description and the annexed drawings set forth in detail certain embodiments of the invention. But,
While these embodiments are representative, they are merely some of the various ways in which the principles of the present invention may be employed. Other objects, advantages and novel features of the invention will become apparent from the following detailed description of the invention when considered in conjunction with the drawings.

【0026】[0026]

【実施の形態】次に、本発明について、図面を参照して
説明する。なお、図面では、同じ要素を参照するため
に、同じ参照符号を使用する。本発明によれば、ビタビ
・デコーダ110(図6)は、カスケード形ACS12
2(図7)を介して複数のトレリス・ステージ(図5)
を同時にデコードする。これは、実質上、メモリ・アク
セス・サイクルを低減し、それによって、電力要求を低
下させ、かつ、システム・スループットを増大させる。
カスケード形ACS処理の間、トレリスの部分的トレー
スバックは、固有のレジスタ交換アーキテクチャ(図
8)を介してACS動作の間に同時に生じる。これもま
た、電力要求を低下させ、かつ、システム・スループッ
トを増大させる。更に、可変の抑制長コードは、カスケ
ード形ACS122内に実装されたバイパス・システム
を介して解決することができ、また、種々のエンコーデ
ィング構造をデコードするために複数のユーザ供給コー
ド多項式を用いることができる(図9)。これは、デコ
ーダ110にかなりの度合いのフレキシビリティを提供
する。
Next, the present invention will be described with reference to the drawings. In the drawings, the same reference numerals are used to refer to the same elements. According to the present invention, the Viterbi decoder 110 (FIG. 6)
2 (FIG. 7) through multiple trellis stages (FIG. 5)
Are decoded simultaneously. This substantially reduces memory access cycles, thereby lowering power requirements and increasing system throughput.
During cascaded ACS processing, partial traceback of the trellis occurs simultaneously during ACS operation via a unique register exchange architecture (FIG. 8). This also reduces power requirements and increases system throughput. In addition, variable suppression length codes can be resolved via a bypass system implemented in the cascaded ACS 122, and multiple user-supplied code polynomials can be used to decode various encoding structures. (Figure 9). This provides the decoder 110 with a significant degree of flexibility.

【0027】最初に図5を参照すると、トレリス図が、
本発明の一実施形態に従って示されている。トレリス
は、16の状態(K=5)を有する一個のシフトレジス
タ・コードからのコンボルーション・エンコーダに対応
している。この16状態は、状態インデックス0〜15
(例えば、100a,100b,100c)によって表
されており、状態インデックス0〜15は、コラムC1
〜C5に示されており、特定の時点(例えば、1つのエ
ンコーダ状態から次のエンコーダ状態への遷移)に対応
する。コラム間の遷移は、ステージ(例えば、ステージ
1,ステージ2など)とも呼ばれることがある。各ステ
ージは、先行状態(左)から現在または次の状態(右)
への左から右への入力−出力ビット・マッピングを提供
し、また、1組のブランチ(例えば、102a,102
b)は、ステージ間の可能なビット遷移を表している。
この入力−出力(ステージからステージ)ビット・マッ
ピングは、エンコーダ・コンフィギュレーションを記述
するとともにユーザによって供給される1組のコード多
項式によって提供されている。
Referring first to FIG. 5, the trellis diagram is:
Shown in accordance with one embodiment of the present invention. The trellis corresponds to a convolutional encoder from one shift register code with 16 states (K = 5). These 16 states have state indices 0 to 15
(For example, 100a, 100b, and 100c), and the state indexes 0 to 15 are stored in the column C1.
C5 to C5 and correspond to a particular point in time (e.g., transition from one encoder state to the next encoder state). Transitions between columns may also be referred to as stages (eg, stage 1, stage 2, etc.). Each stage is from the previous state (left) to the current or next state (right)
To provide a left-to-right input-output bit mapping to a set of branches (eg, 102a, 102a).
b) represents possible bit transitions between stages.
This input-output (stage-to-stage) bit mapping is provided by a set of code polynomials that describe the encoder configuration and are supplied by the user.

【0028】状態インデックスは、先行ステージからの
累積状態メトリック(後で詳述)を保持するメモリ・ロ
ケーションへのポインタとして生成される。各コラム内
の各状態インデックスはこの図の右の次のステージ内の
2つの他の定められた状態インデックスに遷移すること
(出力を与えること)ができるだけであることに注意さ
れたい。同様に、1つのコラムの右の1つのコラム内の
各状態インデックスは、左にある定められた状態インデ
ックスから2つの入力を受けるだけである。例えば、コ
ラムC1内の状態8は、コラムC2,C3,C4などの
各々内の状態0または状態1に遷移できるだけである。
同様に、任意のコラム内の状態12は、コラムC1,C
2,C3など内の状態6または状態14からの入力を受
けることができるだけである。
The state index is generated as a pointer to a memory location that holds the accumulated state metrics from the previous stage (described in more detail below). Note that each state index in each column can only transition (giving output) to two other defined state indexes in the next stage to the right of the figure. Similarly, each state index in one column to the right of one column only receives two inputs from the defined state index to the left. For example, state 8 in column C1 can only transition to state 0 or state 1 in each of columns C2, C3, C4, etc.
Similarly, state 12 in any column is determined by columns C1, C
2, C3 etc. only receive input from state 6 or state 14.

【0029】以下で詳細に説明するように、エンコーダ
への原入力データを最終的に判定するトレリス中の1つ
の可能な経路は、本発明では、各状態に入る各1組のブ
ランチに対してACS(加算/比較/選択)動作を実行
することによって、判定される。1組のブランチ・メト
リック(以下で詳述)は、先行ステージからの累積状態
メトリック(最初は、コラムC1内の累積状態メトリッ
クは、所望の所定の値(例えば、0の値または非常に大
きな数)にリセットされることができる)に加算される
(ACSの加算部分)。次に、どのブランチが次のステ
ージに対して最も低い累積状態メトリックまたは好まし
くは最も高い累積状態メトリックを発生するかに基づい
て、各ACS動作から1つのブランチを選択する(AC
Sの比較および選択部分)。ACS動作を介して多数の
ステージを解決した後、選択されたブランチが、1つの
全体経路に収束し始めることになる。選択されたブラン
チから各ステージを通る1つの経路をトレースバックす
ることによって(以下で詳述)、デコードされたデータ
を判定することができる。
As will be explained in detail below, one possible path in the trellis that ultimately determines the original input data to the encoder is, in the present invention, for each set of branches entering each state. The determination is made by performing an ACS (addition / comparison / selection) operation. A set of branch metrics (described in more detail below) is the cumulative state metric from the preceding stage (initially, the cumulative state metric in column C1 has a desired predetermined value (eg, a value of 0 or a very large number). ) Can be reset)) (the addition part of the ACS). Next, select one branch from each ACS operation based on which branch generates the lowest or preferably the highest cumulative state metric for the next stage (AC
S comparison and selection part). After resolving a number of stages via the ACS operation, the selected branches will begin to converge on one overall path. By tracing back one path through each stage from the selected branch (described in more detail below), the decoded data can be determined.

【0030】図6には、本発明によるビタビ・デコーデ
ィング・システム110のトップ・レベルの概略ブロッ
ク図が示されており、これは、一般に、2つの主要なユ
ニットすなわち状態メトリック更新ユニット120とト
レースバック・ユニット130とから成っている。状態
メトリック更新ユニット120は、カスケード形ACS
122と、状態メトリック・メモリ126と、トレース
バック・ユニット130からブランチ・メトリック13
4を受信するとともにブランチ・メトリック134をA
CS122と同期させるブランチ・メトリック選択ユニ
ット138とを備えている。
FIG. 6 shows a top-level schematic block diagram of a Viterbi decoding system 110 according to the present invention, which generally comprises two main units, a state metric update unit 120 and a trace. And a back unit 130. The state metric updating unit 120 includes a cascaded ACS.
122, the state metric memory 126, and the branch metric 13 from the traceback unit 130.
4 and the branch metric 134 is set to A
And a branch metric selection unit 138 for synchronizing with the CS 122.

【0031】カスケード形ACS122は、状態メトリ
ック・メモリ126とともに、デコーディング・プロセ
スが時間で前方に進むにつれて、トレリス内の各ステー
ジに対して、1組の累積状態メトリック(SM)125
(経路メトリックとも呼ぶ)を判定する。カスケード形
ACS122は、1組の入来ブランチ・メトリック13
4により加算,減算および比較を実行し、経路判断値1
24を決定する新たな状態メトリックを選択する。これ
は、各状態におけるメトリックを評価して、2つの入来
ブランチのどちらが所望の特定のアルゴリズム実現に依
存して最も小さなまたは好ましくは最も大きな次の状態
メトリック125を提供するかを判定することによっ
て、達成される。その評価は、ブランチが出た状態イン
デックスによってアドレスされる状態メトリック・メモ
リ126にブランチ・メトリック134を加算すること
によって、ACS122によって実行される。以下に詳
細に説明するように、(好ましくは、周辺DSP140
によって決定された)ブランチ・メトリック134は、
デコーダへのコンボルーション処理された入力データか
ら取得されるとともに代表的には受信側(入力)ソフト
判断と既知の変調点との間の距離尺度である数の複数の
組(トレリス・ステージ当たり1つの組)である。しか
しながら、他の形態のブランチ・メトリック・データも
用いることができ、このようなデータ形態は、本発明の
範囲内に入ると考えるものである。
Cascaded ACS 122, along with state metric memory 126, provides a set of cumulative state metrics (SM) 125 for each stage in the trellis as the decoding process moves forward in time.
(Also called a route metric). Cascaded ACS 122 has a set of incoming branch metrics 13
4 to perform addition, subtraction, and comparison, and the route judgment value 1
Select a new state metric that determines 24. This is done by evaluating the metric in each state to determine which of the two incoming branches provides the smallest or preferably the largest next state metric 125 depending on the particular algorithm implementation desired. Is achieved. The evaluation is performed by ACS 122 by adding branch metric 134 to state metric memory 126, which is addressed by the state index at which the branch left. As described in detail below, (preferably, the peripheral DSP 140
Branch metric 134)
Multiple sets of numbers (one per trellis stage) obtained from the convolved input data to the decoder and typically a measure of the distance between the receiver (input) soft decisions and the known modulation points. Pair). However, other forms of branch metric data may be used, and such data forms are contemplated to be within the scope of the present invention.

【0032】好ましくは、SRAMメモリ126は、継
続的に読み出され更新され書き戻されるその組の状態メ
トリック125を格納する。経路判断値124は、カス
ケード形ACS122によってトレースバック・ユニッ
ト130およびこれに関連のメモリ132に供給され、
ここで、経路判断値124は、以下で詳述するように、
デコードされたデータのトレースバック判定に用いられ
る。
Preferably, SRAM memory 126 stores the set of state metrics 125 that are continuously read, updated and written back. Route decision value 124 is provided by cascaded ACS 122 to traceback unit 130 and its associated memory 132,
Here, the route determination value 124 is, as described in detail below,
Used for traceback determination of decoded data.

【0033】アドレス/制御ブロック136は、トレリ
スを通るデータを監督し、状態メトリック・メモリ12
6用のメモリ・アドレス指定を提供する。以下で詳述す
るアドレス/制御ブロック136は、ユーザ供給の抑制
長に基づく状態インデックス生成を担当する。アドレス
/制御ブロック136は、ブランチ・メトリック選択ユ
ニット138で受信されたブランチ・メトリック134
をACS122と同期させることも担当する。
An address / control block 136 supervises the data passing through the trellis and stores the state metric memory 12
6 provides memory addressing. The address / control block 136, described in detail below, is responsible for generating a state index based on the user supplied suppression length. The address / control block 136 converts the branch metric 134 received at the branch metric selection unit 138.
In synchronization with the ACS 122.

【0034】トレースバック・ユニット130は、本発
明による他の一次ユニットであり、多数の機能を果た
す。トレースバック・ユニット130は、カスケード形
ACS122から受けた経路判断124を格納し、それ
からトレースバックを実行する。トレースバックのプロ
セスは、出力(デコードされた)ビットを作成し、その
デコードされた出力および入来ブランチ・メトリック1
34に対する記憶を提供する。トレースバック・ユニッ
ト130は、好ましくは、そのようなデータを格納する
1つ以上のメモリ132を備えている。
Traceback unit 130 is another primary unit according to the present invention and performs a number of functions. The traceback unit 130 stores the path decision 124 received from the cascaded ACS 122 and then performs a traceback. The traceback process creates an output (decoded) bit, and outputs the decoded output and incoming branch metric 1
Provide storage for. Traceback unit 130 preferably includes one or more memories 132 for storing such data.

【0035】デコーディング・システム110の固有の
特徴は、デコーディング・システム110とシステム1
10がサポートを提供する好ましくはDSP140との
間でのデコーディング・プロセス全体の分割にある。ブ
ランチ・メトリック計算のすべては、好ましくは、シス
テム110の外部、好ましくはDSP140において実
行される。同様に、デパンクチャ(depuncture)操作
も、DSP140によって実行されるようにできる(例
えば、ヌルまたは他の補償値を入力ストリームに挿
入)。これは、これら機能(例えば、ブランチ・メトリ
ック計算,デパンクチャなど)に対するより一層のユー
ザ制御を提供する。
The unique features of decoding system 110 are that decoding system 110 and system 1
10 lies in the division of the entire decoding process with the DSP 140, which preferably provides support. All of the branch metric calculations are preferably performed outside system 110, preferably in DSP 140. Similarly, a depuncture operation may be performed by the DSP 140 (eg, inserting a null or other compensation value into the input stream). This provides more user control over these functions (eg, branch metric calculation, depuncturing, etc.).

【0036】デコーダ・システム110は、動作がフレ
キシブルである。つまり、5から9の抑制長に対して動
作することができ、4つのトレリス・ステージ上の25
6状態まで同時に処理することができる。システム11
0は、ユーザ供給コード係数の任意の組をもつレート1
/2およびレート1/3の場合を処理する。また、この
ビット・レートは可変とすることができる(例えば、デ
コーダは、ビット・レートに拘わらず、固定サイズの受
信データ・フレームを検出することによって、動作する
ようにできる)。システム110は、データの尾部(特
定の状態を強制するために挿入された入力ビット)が状
態ゼロへの復帰を強制したりシステムが強制状態のない
継続的なデコード・モードでランするフレーム化入力デ
ータを処理する。1つのフレームの開始時に状態メトリ
ックを有効にプリセットするためのある種のオプション
も利用可能である。例えば、ユーザは、状態ゼロの初期
メトリックを最も大きい値にセットするとともにその他
のすべての状態を最も小さな値にセットして、そのフレ
ームの開始時にすべてのトレースバック経路を状態ゼロ
に復帰することを強制したい場合がある。トレースバッ
ク・プロセスが出力ビットを発生する前に利用する収束
距離(convergence distance)も、調節可能なパラメー
タであり、ユーザによって供給される。
The operation of the decoder system 110 is flexible. That is, it can operate for suppression lengths of 5 to 9 and can operate on 25
Up to 6 states can be processed simultaneously. System 11
0 is rate 1 with any set of user-supplied code coefficients
/ 2 and rate 1/3. Also, the bit rate can be variable (eg, the decoder can operate by detecting a fixed size received data frame regardless of the bit rate). The system 110 has a framing input in which the tail of the data (input bits inserted to force a particular state) forces a return to state zero or the system runs in a continuous decode mode without a forced state. Process the data. Certain options are also available for effectively presetting the state metric at the beginning of a frame. For example, the user may set the initial metric of state zero to the highest value and set all other states to the lowest value to return all traceback paths to state zero at the beginning of the frame. Sometimes you want to force. The convergence distance utilized by the traceback process before generating the output bits is also an adjustable parameter, supplied by the user.

【0037】DSPインターフェース回路144は、デ
コーダ・システム110に対するメモリ・マッピング・
インターフェースを提供する。DSPインターフェース
144は、入来ブランチ・メトリックおよび出立(outg
oing)デコード・ビットのブロック・データ転送を利用
して動作する(バス146として示す)。これら転送
は、DMA(または、その他)の周辺DSPサポートを
用いて実行され得る。このため、バスが効率的に利用さ
れ、最小の相互作用がDSP140から必要とされる。
The DSP interface circuit 144 includes a memory mapping function for the decoder system 110.
Provide an interface. The DSP interface 144 provides incoming branch metrics and outgoing (outg)
oing) Operates using block bit transfer of decode bits (shown as bus 146). These transfers may be performed using DMA (or other) peripheral DSP support. Thus, the bus is used efficiently and minimal interaction is required from DSP 140.

【0038】次に、図7を参照すると、カスケード形A
CS122のより詳細なブロック図を本発明に従って示
されている。ACSユニット122は、(図6の状態メ
トリック・メモリ126からの)1組の状態メトリック
125を、(集合的に134と符号された、トレースバ
ック・メモリ132から受信される)対応する1組のブ
ランチ・メトリック134a〜134dと一緒に処理す
る。これは、時間で前方にステージからステージへ累積
状態メトリックとして図5に示したトレリス中を運ばれ
るその組の状態メトリック125を処理することによっ
て、実現される。ACSステージ150b〜156bに
対応するトレリスの各ステージでは、累積状態メトリッ
クが、現ステージのブランチ・メトリック・データ13
4を利用して更新される。状態メトリック更新は、先行
のトレリス状態からの2つの可能なトレリス・ブランチ
から最適ブランチ(識別された経路判断)を判定するこ
とによって、達成される。1つのACS処理はトレリス
・ステージ当たり1つのコラム内の各ノードに対して提
供されることに注意されたい。例えば、図5では、16
個のACS処理がコラムC2,C3,C4,C5に対し
て提供され、したがって、各コラムは、図7のACSス
テージ150b,152b,154b,156b当たり
16個のACS処理を含む。
Next, referring to FIG.
A more detailed block diagram of CS 122 is shown in accordance with the present invention. ACS unit 122 converts a set of state metrics 125 (from state metric memory 126 in FIG. 6) to a corresponding set of state metrics (received from traceback memory 132, collectively labeled 134). Process with branch metrics 134a-134d. This is achieved by processing the set of state metrics 125 carried through the trellis shown in FIG. 5 as a cumulative state metric forward from stage to stage in time. In each of the trellis stages corresponding to the ACS stages 150b to 156b, the accumulated state metric is the branch metric data 13
4 is updated. State metric updates are achieved by determining the best branch (identified path decision) from the two possible trellis branches from the previous trellis state. Note that one ACS process is provided for each node in one column per trellis stage. For example, in FIG.
ACS operations are provided for columns C2, C3, C4, and C5, so each column includes 16 ACS operations per ACS stage 150b, 152b, 154b, 156b of FIG.

【0039】最適ブランチとは、最も小さいまたは好ま
しくは最も大きい次の状態メトリックを生ずるブランチ
(識別された経路)を指し、これは、トレリス・ブラン
チが出てきたトレリス状態の累積状態メトリック125
にブランチ・メトリック134を加算することによっ
て、定められる。各トレリス・ブランチは、1組の可能
な出力ビットに対応し、また、ブランチ・メトリック
は、出力ビットから受信入力データへの距離測定値に対
応している。その出力ビットは、好ましくは、送信され
る衛星点(constellation point)にマップされ、ま
た、ブランチ・メトリックは、受信データと衛星点との
間のユークリッド距離である。ブランチ・メトリック計
算は、当該分野においてはよく知られており、これに関
する更なる説明については、簡略のため省略する。
The optimal branch refers to the branch (identified path) that yields the smallest or preferably the largest next state metric, which is the cumulative state metric 125 of the trellis state from which the trellis branch came out.
By adding the branch metric 134 to the Each trellis branch corresponds to a set of possible output bits, and the branch metric corresponds to a distance measurement from the output bits to the received input data. The output bits are preferably mapped to a constellation point to be transmitted, and the branch metric is the Euclidean distance between the received data and the satellite point. Branch metric calculations are well known in the art, and further description thereof will be omitted for brevity.

【0040】ACSプロセスが実行されるとき、トレリ
スの各ステージでの各状態に対する選択されたブランチ
(例えば、経路判断)が記録される。このため、各状態
への最適経路(例えば、識別された経路)は、既知とな
る。次に、デコーダ・システム110の出力が、以上か
ら選択されたブランチに沿って逆方向にトレリスを横切
ることによって、判定される。ある一定の距離(収束距
離として知られている)の後、他のトレリス状態からの
識別された経路はすべて、単一の経路に収束していく可
能性が高い。この収束した時点で、有効なデコード出力
ビットが、以下で詳述するトレースバック・プロセスか
ら得られる。
When the ACS process is performed, the selected branch (eg, path decision) for each state at each stage of the trellis is recorded. For this reason, the optimal route (for example, the identified route) to each state is known. Next, the output of the decoder system 110 is determined by traversing the trellis in the reverse direction along the branch selected above. After a certain distance (known as the convergence distance), all identified paths from other trellis states are likely to converge on a single path. At this point, valid decode output bits are obtained from the traceback process described in detail below.

【0041】図7に示すように、本発明のACSユニッ
ト122は、カスケードを形成し、ブロック間に遅延レ
ジスタ160a〜160fおよびクロス・スイッチ16
2〜164のグルーピングを有する4つのACSブロッ
ク150b〜156bから成っている。各ACSブロッ
クは、トレリスの1つのステージに対し、複数の基数
(radix)2またはバタフライの加算/比較/選択処理
を実行する。ACSカスケード122は、トレリスの4
つのステージに対し、基数16・ACS処理を実行す
る。基数Nは、処理を行う対象のサブトレリスのサイズ
を指す。Nは、状態の数を指し、2の累乗としなければ
ならない。以下に詳細に説明するように、図5に示した
トレリスは、K=9に対しステージ当たり256までの
多数の状態に、図5に示したトレリスを多数状態に対す
るサブトレリスとして用いることにより、適用すること
ができる。基本カスケード構造処理については、さら
に、“高速ビタビ・デコーディング用のアルゴリズムお
よびアーキテクチャ(“Algorithms and Architectures
for high speed Viterbi decoding”, Ph. D. Dissert
ation, Dept. of Electrical Engineering. Stanford U
niversity, 1993, by Peter Black)”を参照すること
ができ、これはその全体を本言及により本文に含めるも
のとする。
As shown in FIG. 7, the ACS unit 122 of the present invention forms a cascade, and includes delay registers 160a to 160f and a cross switch 16 between blocks.
It consists of four ACS blocks 150b-156b with a grouping of 2-164. Each ACS block performs a plurality of radix 2 or butterfly addition / comparison / selection processes for one stage of the trellis. The ACS cascade 122 is a trellis 4
A radix-16 ACS process is executed for one stage. The radix N indicates the size of the sub-trellis to be processed. N refers to the number of states and must be a power of two. As will be described in detail below, the trellis shown in FIG. 5 can be applied to multiple states up to 256 per stage for K = 9 by using the trellis shown in FIG. 5 as sub-trellis for multiple states. can do. For more information on basic cascade structure processing, see Algorithms and Architectures for Fast Viterbi Decoding.
for high speed Viterbi decoding ”, Ph. D. Dissert
ation, Dept. of Electrical Engineering. Stanford U
niversity, 1993, by Peter Black), which is hereby incorporated by reference in its entirety.

【0042】基数16のACSは、16状態トレリスに
対し処理を行い、トレリスの4つのステージの1つの前
方ステップに対し新たな状態メトリックを計算する。こ
のカスケード実現は、各中間ステージ(ACSブロック
150b〜156b内の基数2のACSユニット当たり
2つの状態)に対し状態メトリックを計算して、累積さ
れた状態メトリックを受け渡すことによって、これを達
成し、その際、次のカスケード・ステージへの適当な再
順序付け(reorder)をする(現ステージの出力を次の
ステージの正しい入力にルーティングする)。ACSブ
ロック150b〜156b間のレジスタ160a〜16
0fおよびクロス・スイッチ162〜166は、特定の
トレリス・ステージによって定められる再順序付けを実
行する。クロス・スイッチは、トレリスのどの部分に対
して処理を行おうとしているかに依存して、データをそ
のまま通したり、そのデータを2つのバス(バスAおよ
びバスBとして示す)上で交換する。クロス・スイッチ
・セッティングは、デコーダ110の動作中に設定レー
トで変化することがある。
The radix-16 ACS operates on a 16 state trellis and computes a new state metric for one forward step of the four stages of the trellis. This cascade implementation accomplishes this by calculating a state metric for each intermediate stage (two states per radix-2 ACS unit in ACS blocks 150b-156b) and passing the accumulated state metrics. With appropriate reordering to the next cascade stage (routing the output of the current stage to the correct input of the next stage). Registers 160a-16 between ACS blocks 150b-156b
0f and cross switches 162-166 perform the reordering defined by the particular trellis stage. The cross switch passes data through or exchanges the data on two buses (shown as bus A and bus B), depending on which part of the trellis is being processed. The cross switch setting may change at a set rate during operation of the decoder 110.

【0043】256状態を有するコンボルーション・コ
ードに対する処理に関して、トレリスは、サイズ16の
16個のサブトレリスのインターリーブからなると考え
ることができる。このため、これらサブトレリスは、シ
ーケンシャルな形式でカスケードACSデータ経路12
2に1つまた1つと供給される。各サブトレリスの正し
いノードは、SMメモリ126から読み出され、ACS
データ経路122に供給され、次に、その結果がSMメ
モリ126に記憶し戻される。すべての抑制長の場合
(K=9から5)に対しては、“インプレース・スケジ
ューリング(in-place scheduling)”が用いられ、し
たがって、状態メトリックの1つのみのコピーが格納さ
れる。「インプレース・スケジューリング」は、ACS
計算が完了した後に、先行の状態メトリックを新たな状
態メトリック結果によって上書きすることを指す。
For processing on a convolutional code having 256 states, the trellis can be considered to consist of an interleave of 16 sub-trellis of size 16. For this reason, these sub-trellis are organized in a cascaded ACS data path 12 in a sequential manner.
2 are supplied one by one. The correct node for each sub-trellis is read from SM memory 126 and ACS
The data is supplied to the data path 122, and the result is stored back in the SM memory 126. For all suppression length cases (K = 9 to 5), "in-place scheduling" is used, and therefore only one copy of the state metric is stored. "In-Place Scheduling" uses ACS
Refers to overwriting the previous state metric with the new state metric result after the calculation is completed.

【0044】「インプレース・スケジューリング」が行
われるトレリスをサブトレリスに分割する方法は、2つ
のフェーズ、すなわち、フェーズAとフェーズBとを有
し、これらは、トレリス中を前方に移動するときに繰り
返される。例えば、図5の16個の状態トレリスは、2
つのステージに対し、サイズ4のサブトレリスに分割す
ることができる。フェーズAは、ステージ1とステージ
2とをカバーし、ここで、サブトレリスは織り交ぜられ
ている。フェーズBは、ステージ3とステージ4とをカ
バーし、ここで、サブトレリスは、分離され、各1つが
別のものの上に現れる。これは、メモリ・アドレスおよ
び状態インデックスを発生するための2つの区別できる
フェーズをもたらす。
The method of dividing the trellis where "in-place scheduling" takes place into sub-trellis has two phases, phase A and phase B, which are used when moving forward through the trellis. Repeated. For example, the 16 state trellis of FIG.
One stage can be divided into size 4 sub-trellis. Phase A covers stage 1 and stage 2, where the sub-trellis is interlaced. Phase B covers stage 3 and stage 4, where the sub-trellis are separated and each one appears on another. This results in two distinct phases for generating the memory address and state index.

【0045】一時にトレリスのたった1つのステージに
しか処理を行うことができないより伝統的なアプローチ
と比べ、本発明の基数16のカスケード・アプローチ
は、よりエネルギー効率がよい。伝統的なアプローチ
は、ステージ当たり1回すべての状態メトリックの読出
しおよび書込みを必要とするのに対し、本発明はこれを
4ステージ当たり1回に減少する。したがって、メモリ
I/Oトランザクションが大きな電力を消費するため、
電力の節約ができる。
[0045] Compared to the more traditional approach, which can operate on only one stage of the trellis at a time, the radix-16 cascade approach of the present invention is more energy efficient. Whereas the traditional approach requires reading and writing all state metrics once per stage, the present invention reduces this to once per four stages. Therefore, memory I / O transactions consume large amounts of power,
Power can be saved.

【0046】より効率的なトレースバック処理(後述)
を提供するために、長さ4の部分トレースバック(part
ial traceback)を実現する新規な方法が、カスケード
ACS処理中に実施される。プレトレースバックは、部
分トレースバックが経路判断情報を後のトレースバック
完了のため格納する前に各トレリス状態に対して実行さ
れることを意味する。本発明によれば、プレトレースバ
ックを実施するのに用いられるシステムは、固有レジス
タ交換(図8の170a,170b)と、ACSブロッ
ク150b〜156b間に位置する再順序付けハードウ
ェア160a〜160f,162,163,164の拡
張との組合せである。
More efficient traceback processing (described later)
To provide a partial traceback of length 4 (part
A new method of implementing ial traceback) is implemented during the cascaded ACS process. Pre-traceback means that a partial traceback is performed for each trellis state before storing path decision information for later traceback completion. In accordance with the present invention, the system used to perform pre-traceback is a unique register exchange (170a, 170b in FIG. 8) and reordering hardware 160a-160f, 162 located between the ACS blocks 150b-156b. , 163, and 164.

【0047】図8には、本発明によるプレトレースバッ
ク・システムが示されている。再順序付け構造のACS
データ経路の一部分であるレジスタ166は、(n)と
してより広くして、累積するプレトレースバック経路を
これらが保持できるようにしている。レジスタ166は
また、先行のステージからの10ビットの累積状態メト
リック値を提供する。ここで、どのトレリスもこの時点
では解決(ACS経路判定)されていないため、図7の
ステージ150bの前ではnは0ビットに等しいことに
留意すべきである。ステージ152bでは、1つのステ
ージが判定(経路選択)されているため、nは1ビット
に等しく、また、ステージ154bではn=2ビット、
ステージ156bではn=3ビットである。各ACSブ
ロック168a,168bの後(ACSブロックの上半
部168aが上バタフライ・ノードに対する経路を判定
し、ACSブロックの下半部168bが下バタフライ・
ノードに対する経路を判定する)、追加の1ビットがA
CS処理の結果として次のステージに供給される。
FIG. 8 shows a pre-traceback system according to the present invention. ACS of reordered structure
Registers 166, which are part of the data path, are wider as (n) to allow them to hold an accumulating pre-traceback path. Register 166 also provides the 10-bit accumulated state metric value from the previous stage. Here, it should be noted that n is equal to 0 bits before stage 150b in FIG. 7, since no trellis has been resolved (ACS path determination) at this time. In the stage 152b, since one stage is determined (path selection), n is equal to 1 bit. In the stage 154b, n = 2 bits.
In the stage 156b, n = 3 bits. After each ACS block 168a, 168b (the upper half 168a of the ACS block determines the path to the upper butterfly node and the lower half 168b of the ACS block
Determine the route to the node), and the additional 1 bit is A
It is supplied to the next stage as a result of the CS processing.

【0048】この追加ビットは、ACS処理の結果とし
て先行ステージからどの経路が選択されていたかを示
す。ビット172a,172bは、ACSブロック16
8a,168bから追加ビットとして供給されて、現ス
テージからの選択経路に添付すべき先行ステージから前
方(前送(forwarding))に運ばれてきた選択経路17
4a〜174dを(マルチプレクサ170a,170b
を介して)選択する。先行ステージからの選択されたプ
レトレースバック・ビット(マルチプレクサ170a,
170bの出力)に現ステージからのこれら追加ビット
を添付する機能は、参照符号176a,176bで示さ
れている。次に、次のステージへのレジスタ経路は、n
+1として表されて、次の連続するステージに送り出さ
れる部分プレトレースバック・ビットの累積を示す。
This additional bit indicates which path has been selected from the preceding stage as a result of the ACS processing. Bits 172a and 172b are set in ACS block 16
8a, 168b, which are supplied as additional bits and are carried forward (forwarding) from the preceding stage to be attached to the selected route from the current stage.
4a to 174d (multiplexers 170a and 170b
Select via). The selected pretrace back bit from the previous stage (multiplexer 170a,
The function of appending these additional bits from the current stage to the (output of 170b) is indicated by reference numerals 176a, 176b. Next, the register path to the next stage is n
Represented as +1 to indicate the accumulation of partial pretraceback bits sent out to the next successive stage.

【0049】部分プレトレースバックに対して上述した
レジスタ交換は、カスケード形ACS122と組み合わ
さって、メモリ・アクセスおよび電力消費を低減するた
めの独特のデコーディング・アーキテクチャを提供す
る。本発明のカスケード形ACSと関連するレジスタ交
換は、トレリスの4つのステージに対する経路を判定し
た後にトレースバック・メモリ(後述)を更新する。こ
れは、メモリ・アクセスを4の係数で減少させる。これ
は、電力消費を実質的に減少させ、また、デコーダ11
0の性能を実質的に増大させる。
The register exchange described above for partial pretraceback, combined with the cascaded ACS 122, provides a unique decoding architecture for reducing memory access and power consumption. The register exchange associated with the cascaded ACS of the present invention updates the traceback memory (described below) after determining the path to the four stages of the trellis. This reduces memory access by a factor of four. This substantially reduces power consumption and also reduces decoder 11
0 performance is substantially increased.

【0050】また、カスケード形ACS構造122は、
9未満の抑制長のコード(256状態よりも少ない)を
判定するのにも用いられる。種々の抑制長コンボルーシ
ョン・エンコーダで動作するフレキシビリティを提供す
るこの特徴を実現する実施形態は、2つある。
The cascaded ACS structure 122 is
It is also used to determine codes with suppression lengths less than 9 (less than 256 states). There are two embodiments that implement this feature providing flexibility to operate with various constrained length convolutional encoders.

【0051】好ましい実施形態は、インプレース・スケ
ジュールの方法(過去の状態メトリック判定を現ステー
ジからの状態メトリック判定で継続的に上書きする)に
おけるのと同じように、トレリスのジオメトリと調和し
た状態に留まる。図5に示したトレリスのジオメトリ
は、メモリ長(K−1)に等しい距離の後に繰り返す。
抑制長コードは、2つのフェーズに分割され、これは、
対称的なものではないようにできるが、それら2つのフ
ェーズの長さ(ステージの数)の和が常にメモリ長と等
しくなるようにする。特に、K=8で128状態に対し
ては、基数16のフェーズI計算は、トレリスの4ステ
ージで判定され、基数8のフェーズII計算は、トレリス
の3ステージで判定される。同様に、K=7に対して
は、フェーズIは基数16の4つのステージで計算さ
れ、フェーズIIは基数4の2つのステージで判定され
る。K=6に対しては、フェーズIは基数16の4つの
ステージで計算され、フェーズIIは基数2の1つのステ
ージで判定される。K=5に対しては、フェーズIは基
数16の4つのステージで計算され、フェーズIIは不必
要である。
The preferred embodiment provides a state consistent with the trellis geometry, as in the in-place scheduling method (continuously overwriting past state metric decisions with state metric decisions from the current stage). stay. The trellis geometry shown in FIG. 5 repeats after a distance equal to the memory length (K-1).
The suppression length code is split into two phases,
Although it is not symmetrical, the sum of the lengths of the two phases (number of stages) is always equal to the memory length. In particular, for 128 states with K = 8, the radix-16 phase I calculation is determined in four trellis stages and the radix-8 phase II calculation is determined in three trellis stages. Similarly, for K = 7, phase I is calculated in four radix-16 stages and phase II is determined in two radix-4 stages. For K = 6, Phase I is calculated in four radix-16 stages and Phase II is determined in one radix-2 stage. For K = 5, Phase I is calculated in four radix-16 stages, and Phase II is unnecessary.

【0052】例えば基数8で3ステージ状況に対してカ
スケードACS構造を動作させるには、第1のACSス
テージ150bはバイパスされ、また、メトリックは、
データ経路回路160a,160b,162を流れ、第
2のACSブロック152b中に効果的に供給される。
同様に、基数4で2ステージの動作に関しては、データ
は、第3のACSブロック154bに効果的に供給され
る。基数2動作に関しては、データは、最後のACSブ
ロック156bに効果的に供給される。バイパス機構
は、ACSブロック内で用いることができ、累積状態メ
トリック・データをACSブロック中をデジタル的にル
ーティングするとともにどのような計算変更も受けずに
ハードウェアを再順序付けするための任意の周知のスイ
ッチング・システム(例えば、バイパス用に選択された
マルチプレクサ)とすることができる。代替の実施形態
では、ACSブロックとデータ経路とは、計算のために
必要な第1のACSブロックの前に完全にバイパスされ
ることもできる。例えば基数8の場合は、図7に示した
回路150b,160a,160b,162をバイパス
することが必要となる。
For example, to operate the cascaded ACS structure for a three stage situation in radix 8, the first ACS stage 150b is bypassed and the metric is
It flows through the data path circuits 160a, 160b, 162 and is effectively fed into the second ACS block 152b.
Similarly, for a radix-4, two-stage operation, data is effectively provided to the third ACS block 154b. For radix-2 operation, data is effectively provided to the last ACS block 156b. The bypass mechanism can be used within the ACS block, and any well-known method for digitally routing accumulated state metric data through the ACS block and reordering the hardware without any computational changes. It can be a switching system (eg, a multiplexer selected for bypass). In an alternative embodiment, the ACS block and the data path may be completely bypassed before the first ACS block required for computation. For example, in the case of radix 8, it is necessary to bypass the circuits 150b, 160a, 160b, and 162 shown in FIG.

【0053】好ましい実施形態の利点は、状態インデッ
クスまたはメモリ・アドレスを発生することが比較的直
線的となることである。理解されるべきであるが、各抑
制長の場合に対し必要な順序付けは、より一般的な順序
付けアルゴリズムの場合として表現することもできる。
例えば、固有のアドレス発生器は、この実施形態に対し
設計することができる。代替の実施形態は、K>4と仮
定したとき、トレリスの4ステージに渡って基数16動
作を常に実行することにより動作する。しかし、アドレ
ス発生は、より複雑となる。
An advantage of the preferred embodiment is that generating the state index or memory address is relatively linear. It should be understood that the ordering required for each constraint length case can also be expressed as for a more general ordering algorithm.
For example, a unique address generator can be designed for this embodiment. An alternative embodiment operates by always performing a radix-16 operation over the four stages of the trellis, assuming K> 4. However, address generation is more complicated.

【0054】カスケード・データ経路内の各ACSブロ
ック150b〜156bは、すべての状態が処理される
まで、単一のトレリス・ステージに対して動作する。こ
れは、所与の1つのステージに対するブランチ・メトリ
ックの組134が関連のACSブロックで使用するため
に状態メトリック更新ユニット120に供給されること
を意味する。しかし、ACSブロックの各バタフライ動
作は現データ組から特定のブランチ・メトリックを必要
とし、また、特定のブランチ・メトリックは判定され選
択されるべきである。このブランチ・メトリック選択
は、トレリス状態インデックスとユーザ供給コード多項
式とに依存する。
Each ACS block 150b-156b in the cascade data path operates on a single trellis stage until all states have been processed. This means that the set of branch metrics 134 for a given stage is provided to the state metric update unit 120 for use in the associated ACS block. However, each butterfly operation of the ACS block requires a specific branch metric from the current data set, and the specific branch metric should be determined and selected. This branch metric selection depends on the trellis state index and the user-supplied code polynomial.

【0055】本発明の好ましい実施形態は、適当なブラ
ンチ・メトリックをACSブロック150b〜156b
に供給する等しいサイズで実質的に同一構造の2つの等
価なハードウェア・ブロックを提供する。一方のブラン
チ・メトリック(BM)選択ユニット138は最初の2
つのACSブロック150b,152bに作用し、ま
た、他方のBM選択ユニット138は最後の2つのAC
Sブロック154b,156bに作用する。
The preferred embodiment of the present invention uses the appropriate branch metrics in the ACS blocks 150b-156b.
To provide two equivalent hardware blocks of equal size and substantially identical construction. One branch metric (BM) selection unit 138 has the first two
And the other BM selection unit 138 operates the last two AC blocks 150b and 152b.
It acts on the S blocks 154b and 156b.

【0056】図9は、1つのそのようなブランチ・メト
リック選択ユニット138の一般的な構造を示してい
る。各BM選択ユニット138は、トレリスに対する状
態インデックスを提供する状態インデックス発生器20
2と、ブランチ・メトリック・インデックス・ブロック
204とを含む。理解されるべきであるが、状態インデ
ックス発生器202は、図6に示したアドレス/制御ブ
ロック136の一部分と考えることもできる。ブランチ
・メトリック・インデックス・ブロック204は、第1
の組のBMインデックス206と第2の組のBMインデ
ックス208とを各ACSブロック210,212に対
し1つずつ発生する。第2組のインデックス208は、
これらのインデックスをBM選択マルチプレクサ216
aに(ACS計算に同期された)正確な時間で到達させ
る遅延レジスタのチェーン214を通して供給される。
遅延214は、ACSカスケード210,212と上記
関連の再順序付けハードウェアとを通る遅延に従う。
FIG. 9 shows the general structure of one such branch metric selection unit 138. Each BM selection unit 138 includes a state index generator 20 that provides a state index for the trellis.
2 and a branch metric index block 204. It should be understood that the state index generator 202 can be considered as part of the address / control block 136 shown in FIG. Branch metric index block 204 includes a first
BM indexes 206 and a second set of BM indexes 208 are generated, one for each ACS block 210,212. The second set of indexes 208 is
These indexes are stored in the BM selection multiplexer 216.
a is provided through a chain of delay registers 214 that arrive at a precise time (synchronized with the ACS calculation).
Delay 214 follows the delay through ACS cascades 210, 212 and the associated reordering hardware.

【0057】BM選択マルチプレクサ216a,216
bは、ブランチ・メトリック・インデックス・ロジック
204からのインデックスを利用し、ブランチ・メトリ
ック保持レジスタ218a,218bから、ACSステ
ージに対するブランチ・メトリックの組から正しいBM
を選択する。インデックスの1つのビット220a,2
20bも、ACSブロック210,212に供給され、
特定のブランチ・メトリックの符号を示す。結果とし
て、ブランチ・メトリックの半分のみが格納され転送さ
れる。理解されるべきであるが、ブランチ・メトリック
をもっと格納することを必要とする他のコンボルーショ
ン・コーディング手法も用いることができ、したがっ
て、これも本発明では考慮に入れられている。
BM selection multiplexers 216a, 216
b uses the index from the branch metric index logic 204, and from the branch metric holding registers 218a, 218b, the correct BM from the set of branch metrics for the ACS stage.
Select One bit 220a, 2 of the index
20b is also supplied to the ACS blocks 210 and 212,
Indicates the sign of a particular branch metric. As a result, only half of the branch metrics are stored and forwarded. It should be understood that other convolutional coding techniques that require more branch metrics to be stored can also be used and are therefore also taken into account in the present invention.

【0058】状態インデックス発生器(残りの1/2ブ
ランチ・メトリック選択ユニットからの図示しない1つ
の発生器)は、ACSカスケード・データ経路中に供給
されるトレリス状態に対する状態インデックスのシーケ
ンスを表す同じシーケンスを生成する。第2の状態イン
デックス発生器(不図示)は、第1の状態インデックス
発生器202に対して相対的に遅延された開始を提供し
て、カスケード・ステージ3,4との適正な時間整合を
保証する。BMインデックス・ブロック204は、各状
態インデックスをコード多項式とともに(コンボルーシ
ョン・エンコーダが出力ビットを発生するのと同様の方
法で)用いることにより、各ブランチ・メトリック・イ
ンデックスを発生する。
The state index generator (one generator not shown from the remaining half-branch metric selection unit) is the same sequence representing the sequence of state indexes for the trellis states provided in the ACS cascade data path. Generate A second state index generator (not shown) provides a delayed start relative to first state index generator 202 to ensure proper time alignment with cascade stages 3,4. I do. The BM index block 204 generates each branch metric index by using each state index with a code polynomial (in a manner similar to how a convolution encoder generates output bits).

【0059】理解されるべきであるが、状態シーケンス
順序は、各ACSカスケード・ステージで異なってお
り、したがって、カスケード・ステージ2,3,4で追
加の動作が行われなければならない。事実上、各ACS
ステージに対する正しい状態インデックスは、入来する
インデックスから得られる。入来インデックスは、第1
のカスケード・ステージ・シーケンスとして発生される
が、トレリスのジオメトリに続くカスケード構造の再順
序付けに起因して所要のインデックスに直接関係してい
る。このため、所要の次のステージのインデックスは、
新たな空のスロットを満たす0および1の適当な添付を
伴う入来インデックスのシフトによって得ることができ
る(状態メトリック・コラム・アドレス)。0および1
の適当な組は、状態とトレリス内の状態インデックス位
置との間の既知のトレリス接続により定まる。カウンテ
ィング機構222を用いることにより、添付ビットを提
供し、いつ任意の特定のカスケード・ステージに対し異
なった組のインデックスを利用するかを判定することが
できる。例えば、カスケード・ステージ2に対しては1
ビットを添付し、ステージ3に対しては2ビットを添付
し、ステージ4に対しては3ビットを添付する。
It should be understood that the state sequence order is different at each ACS cascade stage, so that additional operations must be performed at cascade stages 2, 3, and 4. Effectively each ACS
The correct state index for the stage is obtained from the incoming index. The incoming index is the first
Cascade stage sequence, but is directly related to the required index due to the reordering of the cascade structure following the trellis geometry. Therefore, the required next stage index is:
It can be obtained by shifting the incoming index with the appropriate attachment of 0 and 1 to fill the new empty slot (state metric column address). 0 and 1
Is determined by the known trellis connection between the state and the state index position in the trellis. By using the counting mechanism 222, an additional bit can be provided to determine when to use a different set of indices for any particular cascade stage. For example, 1 for cascade stage 2
Bits are attached, 2 bits are attached to stage 3, and 3 bits are attached to stage 4.

【0060】本発明の状態インデックス発生をさらに例
示するため、図5のトレリスに戻って参照して、ステー
ジ1のものからのステージ2に対する状態インデックス
をさらに詳細に説明する。トレリスのバタフライ構造の
プロパティに関係して、バタフライ当たりたった1つの
状態インデックスしか必要とされない。また、1つのイ
ンデックスまたはノードをある特定のステージに関して
参照するとき、そのインデックスまたはノードはそのス
テージの左側を参照している、ということに注意された
い。
To further illustrate the state index generation of the present invention, referring back to the trellis of FIG. 5, the state index from stage 1 to stage 2 will be described in more detail. In connection with the properties of the trellis butterfly structure, only one state index per butterfly is needed. Also note that when referring to an index or node for a particular stage, that index or node references the left side of that stage.

【0061】コラムC1の下側バタフライ・インデック
スは、最初は、8つのインデックスのシーケンスすなわ
ち8,9,10,11,12,13,14,15を発生
するステージ1に対し発生される。バタフライの正確な
順序でステージ2に対する状態インデックスを発生する
ことは、コラムC2のトップから始まるステージ2の最
初の4つのバタフライを観察する。ここで、コラムC2
のこれらのインデックスの各々のトップ・ノードは、ス
テージ1の最初の4つのバタフライのものであるステー
ジ1の下側のノードに接続する。詳細には、インデック
ス8,9,10,11をもつバタフライである。これら
インデックスを直接操作することにより、ステージ2に
対する最初の4つのインデックスを以下の通り発生す
る。すなわち、それらのインデックスを4ビットの番号
として解釈し、各インデックスを左にシフトし、その最
上位ビットを落とし、最下位ビットを“0”とする。こ
れは、これらノードのいずれかにありかつ入力ビットに
対し“0”が与えられたときに、コンボルーション・エ
ンコーダのアクションを模倣する。その結果生じる4つ
のインデックスは、コラムC2の0,2,4,6であ
る。したがって、ステージ2の最初の4つのバタフライ
に対するインデックスがトップ・ノードに対して発生さ
れる。
The lower butterfly index of column C1 is initially generated for stage 1 which generates a sequence of eight indices: 8, 9, 10, 11, 12, 13, 14, 15. Generating a state index for stage 2 in the exact order of the butterfly observes the first four butterflies of stage 2 starting at the top of column C2. Here, column C2
The top node of each of these indices connects to the lower node of stage 1 which is that of the first four butterflies of stage 1. In detail, it is a butterfly having indices 8, 9, 10, and 11. By manipulating these indices directly, the first four indices for stage 2 are generated as follows. That is, those indexes are interpreted as 4-bit numbers, each index is shifted to the left, the most significant bit is dropped, and the least significant bit is set to “0”. This mimics the action of the convolutional encoder when at any of these nodes and given a "0" for the input bit. The resulting four indices are 0, 2, 4, and 6 in column C2. Therefore, an index for the first four butterflies of stage 2 is generated for the top node.

【0062】次に、図5のステージ2の最後の4つのバ
タフライを参照すると、ボトム・ノードは、ステージ1
の最後の4つのバタフライのボトム・ノードに接続して
いる。このため、ステージ1からのインデックス12,
13,14,15は左にシフトされ、その最上位ビット
が落とされ、その最下位ビットが“1”にセットされ
る。これは、コンボルーション・エンコーダを模倣しか
つ入力ビットが“1”に等しいとみなすことにより、コ
ラムC2のインデックス9,11,13,15を発生す
る。同じプロセスは、ステージ3およびステージ4に対
し繰り返すことができる。添付ビット(上記の最下位ビ
ット)は、セットされたパターンに続くことを示すこと
ができる。詳細には、トップからボトムまでのカウンテ
ィング・パターンである。上記の例では、そのパターン
は、4つの連続したバタフライの各々に対して、“0”
そして次に“1”である。次のステージに対しては、こ
のパターンは、2つの連続したバタフライの各々に対し
て、“00”,“01”,“10”,“11”となる。
Referring now to the last four butterflies of stage 2 of FIG.
To the bottom nodes of the last four butterflies. For this reason, the index 12 from the stage 1,
13, 14, and 15 are shifted to the left, the most significant bit is dropped, and the least significant bit is set to "1". This generates the indices 9, 11, 13, 15 of column C2 by imitating a convolutional encoder and assuming that the input bits are equal to "1". The same process can be repeated for stage 3 and stage 4. The appended bits (least significant bits above) can indicate that they follow the set pattern. Specifically, it is a counting pattern from top to bottom. In the above example, the pattern is "0" for each of four consecutive butterflies.
Then, it is "1". For the next stage, this pattern will be "00", "01", "10", "11" for each of two consecutive butterflies.

【0063】ブランチ・メトリック状態インデックスを
発生することは、例えば図3に示したコンボルーション
・エンコーダ44の所与の状態に対して1つの組の出力
ビットを発生することと類似している。しかし、各ブラ
ンチ・メトリック・インデックスに対しては、バタフラ
イの上側または下側の状態インデックスのいずれかに加
えて、仮定の入力ビットに対する何らかの選択が必要と
なる。入力ビットは、状態インデックスがトップ・バタ
フライ・ノードに対するときは“0”に、反対の場合に
は“1”に単純にセットすることもできる。また、上記
の説明から分かるように、“0”が次のステージのトッ
プ・ノードに達するために添付され、“1”が次のステ
ージのボトム・ノードに達するために添付されるため、
入力ビットは先行ステージのインデックスから生成され
た状態インデックスの最下位ビットと同じである。
Generating a branch metric state index is similar to generating a set of output bits for a given state of the convolutional encoder 44, for example, shown in FIG. However, for each branch metric index, some choice is required for the hypothetical input bits in addition to either the upper or lower state index of the butterfly. The input bit may simply be set to "0" when the state index is for the top butterfly node and "1" otherwise. Also, as can be seen from the above description, "0" is appended to reach the top node of the next stage, and "1" is appended to reach the bottom node of the next stage,
The input bits are the same as the least significant bits of the state index generated from the previous stage index.

【0064】図4に戻って参照すると、ノード68aが
“0”の最上位ビットを有するインデックスであり、ノ
ード68cが“0”の最下位ビットを有するインデック
スである場合、ブランチ70a,70bは“0”の入力
ビットで横断することができ、ブランチ70c,70d
は“1”の入力ビットで横断することができる。さら
に、周知のように、ブランチ70aからの出力ビット
は、ブランチ70dのものと同じになる。このプロパテ
ィを上で利用することにより、仮定の入力ビットが各ケ
ースで水平ブランチを選択するようにセットされている
ことを条件に、バタフライのトップ・インデックス68
aまたはボトム・インデックス68bのいずれかが各ブ
ランチ・メトリック・インデックスを発生するのに利用
できるようにする。
Referring back to FIG. 4, if node 68a is the index with the most significant bit of "0" and node 68c is the index with the least significant bit of "0", then branches 70a and 70b are Branches 70c, 70d
Can be traversed with an input bit of "1". Further, as is well known, the output bits from branch 70a will be the same as those of branch 70d. Utilizing this property above, the butterfly's top index 68, provided that the hypothetical input bit is set to select the horizontal branch in each case.
Make either a or the bottom index 68b available to generate each branch metric index.

【0065】再び図9を参照すると、上述の状態シーケ
ンス順序付け動作を実施するようにできる種々の実施形
態がある。好ましい実施形態では、任意のコード多項式
が設けられ、この場合、コード多項式レジスタ224a
〜224cは多項式を保持することができる。ビット毎
に、各多項式は、上からの得られた状態インデックスと
論理的にAND演算し、この結果のビットを互いに排他
的論理和演算して1ビットの各ブランチ・メトリック・
インデックスを形成する(コンボルーション・エンコー
ディングに類似)。代替的には、ある一定の数の異なっ
たコードのみを実現する場合、ハードウェアは、それら
コードに対し専用に設けることもできる。これは、状態
インデックス,カウンティング・インデックスおよび固
定コード多項式に関して、各ブランチ・メトリック・イ
ンデックス(ビット毎)に対する各コード多項式に関し
て論理式を書き出すことにより行うことができる。この
とき、ロジック合成を用いることにより、コンパクトな
表現を生成することができる。いずれの場合でも、同じ
1つのハードウェアが、不要な上位のアドレス・ビット
を論理的にカットオフ(例えば、シフト操作、ローテー
ション)することにより、異なった抑制長のコードを取
り扱うことができる。理解されるべきであるが、コード
多項式の数はコード・レートに依存して変化するように
できる。図9に示した実施形態は、1/2および1/3
のコード・レートに対して動作する。さらに理解される
べきであるが、ここで開示する本発明は複数の他のコー
ド・レート(例えば、1/4,1/5など)にも適用す
ることができる。
Referring again to FIG. 9, there are various embodiments that can perform the state sequence ordering operation described above. In the preferred embodiment, an optional code polynomial is provided, in which case the code polynomial register 224a
2224c can hold a polynomial. For each bit, each polynomial is logically ANDed with the state index obtained from above, and the resulting bits are exclusive ORed with each other to produce a one-bit branch metric
Form an index (similar to convolutional encoding). Alternatively, if only a certain number of different codes are implemented, hardware may be dedicated to those codes. This can be done by writing a logical expression for each code polynomial for each branch metric index (per bit) for the state index, counting index and fixed code polynomial. At this time, a compact expression can be generated by using logic synthesis. In either case, the same piece of hardware can handle codes with different suppression lengths by logically cutting off (eg, shifting, rotating) the unwanted upper address bits. It should be understood that the number of code polynomials can vary depending on the code rate. The embodiment shown in FIG.
Operating at a code rate of It should be further understood that the invention disclosed herein can be applied to multiple other code rates (eg, 1 /, 5, etc.).

【0066】また、単一の状態インデックス発生器20
2を用いて、4つのすべてのブランチ・メトリック・イ
ンデックスを計算する1つのブランチ・メトリック・イ
ンデックス・ブロックに供給することもでき、各インデ
ックスは必要な遅延チェーンを介して各ブランチ・メト
リック選択マルチプレクサに送られる。また、各ACS
ブロック用の発生器を適当な遅延開始時間でもって用
い、これにより、遅延レジスタを取り除くようにするこ
とができる。
Also, a single state index generator 20
2 can be fed into one branch metric index block that computes all four branch metric indices, each index passing through the required delay chain to each branch metric selection multiplexer. Sent. In addition, each ACS
A generator for the block can be used with an appropriate delay start time, thereby eliminating the delay register.

【0067】図6に戻って参照して、トレースバック・
ユニット130について詳細に説明する。トレースバッ
ク・ユニット130の主な機能は、上述のACS処理中
にトレースバック・メモリ132に格納された部分プレ
トレースバック判断に対してトレースバック処理を実行
することである。トレースバック・ユニット130はま
た、デコードされた出力データを累積し格納する機能を
実行し、DSP140から状態メトリック更新ユニット
120へのそれらのルート上のブランチ・メトリックに
対するバッファ記憶として作用する。
Referring back to FIG.
The unit 130 will be described in detail. The main function of the traceback unit 130 is to perform a traceback process for the partial pre-traceback determination stored in the traceback memory 132 during the ACS process described above. Traceback unit 130 also performs the function of accumulating and storing the decoded output data and acts as a buffer store for branch metrics on their route from DSP 140 to state metric update unit 120.

【0068】トレースバック処理は、各新たなデータ・
アイテムが構成するのに役立つ経路に続く経路判断デー
タを通して後方に横断することから成っている。一旦ト
レースバック・プロセスの十分なステップが達成される
と(収束距離)、デコードされた出力ビットを累積で
き、これは同じデータから得たものである。基本のトレ
ースバック処理は周知である。トレースバック・ユニッ
ト130の中心部は、経路判断がメモリ132に格納さ
れるような方法で命じられるビタビ・アルゴリズムの直
接実現として構成される。本発明のトレースバック処理
は、それが種々の抑制長コードに対してかつ種々の長さ
のプレトレースバックで動作する点で、独特のものであ
る。また、トレースバック・ユニット130は、判断記
憶,トレースバック,デコードされた出力の記憶および
ブランチ・メトリックの記憶を同時に提供する。この種
々の記憶に必要なものは、1つ以上のメモリ回路によっ
て提供することができる。
The traceback processing is performed for each new data
It consists of traversing backwards through path decision data following the path that helps the item to compose. Once sufficient steps of the traceback process have been achieved (convergence distance), the decoded output bits can be accumulated, derived from the same data. Basic traceback processing is well known. The heart of the traceback unit 130 is configured as a direct implementation of the Viterbi algorithm dictated in such a way that the path decision is stored in the memory 132. The traceback process of the present invention is unique in that it operates on different suppressed length codes and with different lengths of pretraceback. Also, the traceback unit 130 simultaneously provides decision storage, traceback, storage of decoded output and storage of branch metrics. What is needed for this various storage can be provided by one or more memory circuits.

【0069】例えば最も普通の状況である長さ4のプレ
トレースバックでのトレースバック処理に関しては、以
下で詳述する32ビット・ワードをトレースバック・メ
モリ132から読み出し、状態インデックス・シフトレ
ジスタ(不図示)の下位ビット(最下位)を用いて32
ビット・ワードから4ビットを選択する。4ビットは、
これらアイテムが既に後方にトレースされているため
に、次の状態インデックスに必要でかつ直ちにその一部
分となる次のプレトレースバック・アイテムである。こ
の状態インデックスのMSBの一部分は、可変循環カウ
ントと一緒に利用することにより、メモリ・アドレスを
形成する。
For example, for traceback processing in a pretraceback of length 4 which is the most common situation, a 32-bit word, which will be described in detail below, is read from the traceback memory 132 and the state index shift register (non- 32) using the lower bit (least significant) of
Select 4 bits from the bit word. The four bits are
Because these items have already been traced backwards, they are the next pre-traceback items needed for and immediately part of the next state index. The MSB portion of this state index is used in conjunction with the variable cycle count to form a memory address.

【0070】4未満のプレトレースバック長またはこれ
より小さな抑制長のコードでトレースバックを実行する
とき、ハードウェアは、メモリ・ワードから必要な長さ
のみを選択するように構成される。状態インデックス・
レジスタからのビットの数および位置も、それに応じて
調節される。このようにして、多数のコードがイネーブ
ルされる。
When performing a traceback with a code having a pretraceback length of less than 4 or less, the hardware is configured to select only the required length from the memory words. State index
The number and position of the bits from the registers are adjusted accordingly. In this way, a number of codes are enabled.

【0071】一旦収束長(生存経路距離)がトレースバ
ック・プロセスで通過されると、デコードされた出力ビ
ットは累積され得る。デコードされた出力ビットは、状
態インデックスに供給されるメモリ・ワードの選択され
た部分から直接来る。これらのビットは、プレトレース
バック長と同じサイズのグループで来て、32ビットの
レジスタに累積され、必要に応じてトレースバック・メ
モリ132に格納される。
Once the convergence length (survival path distance) has been passed through in the traceback process, the decoded output bits can be accumulated. The decoded output bits come directly from a selected portion of the memory word supplied to the state index. These bits come in groups of the same size as the pretraceback length, are accumulated in 32-bit registers, and are stored in traceback memory 132 as needed.

【0072】SM更新ユニット120から到来するプレ
トレースバック判断ビットも、トレースバック・メモリ
132に書き込まれる前に、32ビットのレジスタに累
積される。この情報は、レジスタ内およびメモリ132
でシーケンシャルに配列され、これにより、構成された
状態インデックスの諸部分を上述の情報へのポインタと
して利用できるようにする。
The pre-traceback decision bits coming from the SM update unit 120 are also accumulated in a 32-bit register before being written to the traceback memory 132. This information is stored in registers and in memory 132
, So that the parts of the constructed state index are available as pointers to the above information.

【0073】トレースバック・ユニット130は、トレ
ースバック・メモリ132に関するI/O動作およびバ
ッファ管理のすべてを制御する。デコードされた出力の
記憶,ブランチ・メトリックの記憶および判断データの
記憶はすべて、循環バッファを必要とする。
Traceback unit 130 controls all I / O operations and buffer management for traceback memory 132. Storing decoded output, storing branch metrics, and storing decision data all require circular buffers.

【0074】図10を参照すると、トレースバック・ユ
ニット130のより詳細な回路ブロック図が示されてい
る。特に、図10は、どのようにしてトレースバック・
ユニットが図6に示したカスケード形ACS122から
受け取った判断データ124(すなわち、部分トレース
バック・データ)を格納するかについて示している。I
/Oメモリ132aは、デコードされた出力ワード30
0を格納し、出力ワード300aを図6に示した外部D
SP140に供給するために含めている。I/Oメモリ
132aも、DSP140からの入来ブランチ・メトリ
ック・ワード310を格納し、適当なブランチ・メトリ
ック・ワード134を状態メトリック・ユニット120
に供給する。トレースバック・ユニット130も、以下
に詳述するように、トレースバック処理を実行し、その
すべてを十分に制御し、アドレス生成およびFIFO管
理を提供する。
Referring to FIG. 10, a more detailed circuit block diagram of the traceback unit 130 is shown. In particular, FIG. 10 shows how traceback
FIG. 9 shows whether the unit stores the judgment data 124 (ie, the partial traceback data) received from the cascaded ACS 122 shown in FIG. I
/ O memory 132a outputs decoded output word 30
0 is stored, and the output word 300a is stored in the external D shown in FIG.
Included to supply to SP140. I / O memory 132a also stores incoming branch metric words 310 from DSP 140 and stores appropriate branch metric words 134 in state metric unit 120.
To supply. The traceback unit 130 also performs traceback processing, as well as fully control all of it, and provides address generation and FIFO management, as described in more detail below.

【0075】図10には、トレースバック・ユニット1
30の動作用の複数のマルチプレクサが示されている。
これらの内のいくつかは、図示された入力ビット・ベク
トルの1つを出力として選択するだけである標準のマル
チプレクサである。しかし、他のマルチプレクサは、一
般化されたマルチプレクサである。これらは、複雑な記
述を有し、マルチプレクサへの制御ビットに依存する入
力のカスタム選択に続くことによって、入力から出力を
選択する。すなわち、これらマルチプレクサは、すべて
の入力ベクトルを互いにグループ化された各ビットとし
てみなすようにでき、任意の順序でこれらのビットの任
意のものを選択された出力ビットして選択することがで
きる。これらは、VHDLプロセス内の制御ビットに依
存するビット選択用の特定の定義を提供することによっ
て、構築される。これは、次に、通常は伝統的なマルチ
プレクサの層状の構造に合成される。
FIG. 10 shows the trace back unit 1
Multiplexers for 30 operations are shown.
Some of these are standard multiplexers that only select one of the illustrated input bit vectors as an output. However, other multiplexers are generalized multiplexers. These have a complex description and select an output from an input by following a custom selection of the input depending on the control bits to the multiplexer. That is, the multiplexers can treat all input vectors as each bit grouped together, and can select any of these bits in any order as the selected output bit. These are built by providing specific definitions for bit selection that depend on control bits within the VHDL process. This is then combined into a layered structure, usually a traditional multiplexer.

【0076】トレースバック・メモリ・マルチプレクサ
312は、標準のマルチプレクサであり、トレースバッ
ク・メモリ132に提示するために判断記憶アドレス3
14またはトレースバック・アドレス316のいずれか
を選択する。判断マルチプレクサ318は、一般化され
たマルチプレクサであり、判断318a,318bの8
ビットが32ビット・レジスタ320内の非オーバーラ
ップ位置内に置かれるように判断入力ベクトルおよびい
くつかのフィードバック・ビットを選択する。この結
果、それらのベクトルは、レジスタ320内に到着順で
スタックされ、32ビットすなわち4つのベクトル組が
到着した後にメモリ132に格納される。I/Oメモリ
・データ・マルチプレクサ322は、標準のマルチプレ
クサであり、I/Oメモリ132aにおける格納のため
に出力ワード300またはブランチ・メトリック・ワー
ド310を選択する。
Traceback memory multiplexer 312 is a standard multiplexer, which determines the decision storage address 3 for presentation to traceback memory 132.
14 or the traceback address 316. The decision multiplexer 318 is a generalized multiplexer, and the decision multiplexers 318a and 318b
Select the decision input vector and some feedback bits so that the bits are placed in non-overlapping locations in the 32-bit register 320. As a result, the vectors are stacked in the order of arrival in the register 320 and stored in the memory 132 after the arrival of the 32-bit or four-vector set. I / O memory data multiplexer 322 is a standard multiplexer that selects output word 300 or branch metric word 310 for storage in I / O memory 132a.

【0077】トレースバック・マルチプレクサ324
は、標準のマルチプレクサであり、32ビットの入力ベ
クトル324aをすべて線形順序で各々4ビットから成
る8つのベクトルとしてみなす。マルチプレクサ324
は、4ビット・ベクトルの1つ(ワードで先に記憶され
た318aまたは318b)を出力324bとして選択
する。4ビット324bの各々は、部分プレトレースバ
ック経路セグメントである(すなわち、先に記憶された
4ビット判断の1つであるが、時には、たった1ビッ
ト,2ビットまたは3ビットが上述のバイパス操作のた
めに無効とされることがある)。その後、4ビット部分
プレトレースバック判断324bは、標準のマルチプレ
クサ326a,326b,326cを介してルーティン
グされる。
Traceback multiplexer 324
Is a standard multiplexer that considers the 32-bit input vector 324a as eight vectors, each consisting of four bits, all in linear order. Multiplexer 324
Selects one of the 4-bit vectors (318a or 318b previously stored in a word) as output 324b. Each of the four bits 324b is a partial pretrace back path segment (i.e., one of the four bit decisions previously stored, but sometimes only one, two or three bits are used in the bypass operation described above). May be invalidated). Thereafter, the 4-bit partial pretraceback decision 324b is routed through standard multiplexers 326a, 326b, 326c.

【0078】一般化マルチプレクサ328は、トレース
バック・ワードの正しい部分を選択するために次のサイ
クルで使用するため、6入力ビット328a,328b
から正しい3ビットを選択する。これらの6入力ビット
328a,328bは、トレースバック・プロセスにお
ける現在の状態インデックスの一部分を表している。マ
ルチプレクサ328の選択は、コンボルーション・コー
ドの抑制長と、トレリスのどれ程多くのステージが処理
されているかということとに依存する。
Generalization multiplexer 328 has six input bits 328a, 328b for use in the next cycle to select the correct part of the traceback word.
Select the correct 3 bits from These six input bits 328a, 328b represent a portion of the current state index in the traceback process. The choice of multiplexer 328 depends on the suppression length of the convolutional code and how many stages of the trellis are being processed.

【0079】一般化マルチプレクサ330は、現在の状
態インデックス330aまたは330bの8ビットから
選択し、デコードされた出力ビットとなる1組の4ビッ
トを選択する。しかし、時には、抑制長に依存して有効
となる3ビット,2ビットまたは1ビットのみがある。
The generalized multiplexer 330 selects from the eight bits of the current state index 330a or 330b and selects a set of four bits that will be the decoded output bits. However, sometimes there are only three, two or one bits that are valid depending on the suppression length.

【0080】一般化マルチプレクサ332は、デコード
された出力ビット336を累積レジスタ338中に効果
的にスタックする。32の有効ビットが累積レジスタ3
38に格納されると、それらはI/Oメモリ132aに
一般化マルチプレクサ340を介して送られる。マルチ
プレクサ340は、累積レジスタ338の35ビットか
らの有効なデコードされた出力ビットである正しい32
ビットを選択する。この選択は、抑制長とトレリス・ス
テージの数とに依存する。
The generalized multiplexer 332 effectively stacks the decoded output bits 336 in the accumulation register 338. 32 valid bits are accumulated register 3
Once stored at 38, they are sent to I / O memory 132a via generalized multiplexer 340. Multiplexer 340 provides a valid decoded output bit from 35 bits of accumulation register
Select a bit. This choice depends on the suppression length and the number of trellis stages.

【0081】一般化トレースバック・アドレス・マルチ
プレクサ342は、次のトレースバック・ワード324
a用のトレースバック・アドレス342dの下位部分を
形成する。マルチプレクサ342は、3つの異なったベ
クトル342a,342b,342cからの9ビットの
入力から正しいアドレス・ビットを選択する。再び、こ
の選択は、抑制長とステージの数とに依存する。完全な
トレースバック・アドレスは、矢印線342a,342
eとして示されているトレースバック・ポインタ342
fの上位ビット342eと下位アドレス・ビット342
dを連結することによって構築される。ポインタ324
fは、トレースバック・コントローラ334内のカウン
タ(不図示)から来て、トレースバックを実現するため
にトレースバック・メモリ132中での後方移動を提供
する。トレースバック・ポインタ・ビット342aの内
の一部分も、種々の抑制長コードに対して、必要に応じ
て、マルチプレクサ342を介して下位アドレス・ビッ
ト342dを形成するのに使用され得る。
The generalized traceback address multiplexer 342 provides the next traceback word 324
Form the lower part of traceback address 342d for a. Multiplexer 342 selects the correct address bit from the 9-bit input from three different vectors 342a, 342b, 342c. Again, this choice depends on the suppression length and the number of stages. The complete traceback address is indicated by arrows 342a, 342
traceback pointer 342 shown as e
upper bit 342e and lower address bit 342 of f
Constructed by concatenating d. Pointer 324
f comes from a counter (not shown) in traceback controller 334 and provides backward movement in traceback memory 132 to implement traceback. A portion of traceback pointer bits 342a may also be used to form lower address bits 342d via multiplexer 342, as needed, for various suppressed length codes.

【0082】トレースバック・コントローラ334は、
トレースバック・ユニット130を制御するためのすべ
てのロジックを含み、先に説明した処理を制御するため
にまたアドレス発生およびメモリ・データ管理を制御す
るために必要なものである多くのカウンタ,レジスタお
よびマルチプレクサを備えている。
The traceback controller 334
It contains all the logic for controlling the traceback unit 130, and includes many counters, registers and the like needed to control the processing described above and to control address generation and memory data management. A multiplexer is provided.

【0083】図11を参照すると、本発明によるビタビ
・デコーディング・システム用の方法が示されている。
ステップ400では、複数のACS処理が、上述のよう
にカスケード形ACSユニット122を介して複数のA
CSステージを通して実行される(例えば図7参照)。
ステップ410に進むと、経路判断が、ステップ400
のACS処理の結果としてACS122の1つのステー
ジに入るすべてのブランチに対して判定される(例えば
図7および図8参照)。ステップ420に進み、経路判
断が、ACSのデータ経路を広くすることによりACS
処理中に累積される(例えば、経路判断ビットをACS
データ経路に添付する。例えば図8参照)。
Referring to FIG. 11, there is illustrated a method for a Viterbi decoding system according to the present invention.
In step 400, the plurality of ACS processes are performed via the cascaded ACS unit 122 as described above.
It is executed through the CS stage (for example, see FIG. 7).
Proceeding to step 410, the route judgment is
Are determined for all branches that enter one stage of the ACS 122 as a result of the ACS processing (see, for example, FIGS. 7 and 8). Proceeding to step 420, the path determination determines that the ACS
Accumulated during processing (for example, the
Attach to data path. For example, see FIG.

【0084】ステップ430では、累積された経路判断
が、続くACSステージに送られる(例えば図8参
照)。これは、例えば、続くACSステージの識別され
た経路判断に基づいてその累積された経路判断を続くA
CSステージにルーティングすることによって、行うこ
とができる(例えば、続くステージの経路判断ビット
は、先行ステージからの累積された経路をマルチプレク
サ回路を介して選択する)。この累積された経路判断
は、次に、マルチプレクサ回路を介して続くACSステ
ージの経路判断と組み合わされる(例えば図8参照)。
In step 430, the accumulated route judgment is sent to the subsequent ACS stage (see, for example, FIG. 8). This may include, for example, following the accumulated path decision based on the identified path decision of the subsequent ACS stage with A
This can be done by routing to the CS stage (e.g., the path decision bits of the following stage select the accumulated path from the preceding stage via a multiplexer circuit). This accumulated path decision is then combined with a subsequent ACS stage path decision via a multiplexer circuit (see, for example, FIG. 8).

【0085】ステップ440では、複数のACSステー
ジに渡る1組の累積経路判断が、トレースバック・メモ
リに供給される。例えば、累積経路判断は、続くACS
ステージの経路判断に添付される。添付された経路判断
は、次に、広くされたACSデータ経路に記憶される
(例えば図8参照)。ステップ440を完了した後、こ
のプロセスはステップ400に戻り、これにより、デコ
ーディング処理がさらに実行されるようにできる。
At step 440, a set of cumulative path decisions across multiple ACS stages are provided to the traceback memory. For example, the cumulative path determination is based on the following ACS
Attached to the stage route judgment. The attached path decision is then stored in the widened ACS data path (see, for example, FIG. 8). After completing step 440, the process returns to step 400 so that the decoding process can be performed further.

【0086】以上、本発明について一定の好ましい実施
形態または実施形態で図示し記述したが、この明細書お
よび添付図面を読み理解すれば、等価な変更および修正
が当業者にはできることが明らかである。特に、上述の
コンポーネント(アセンブリ,デバイス,回路など)に
よって実行される種々の機能に関しては、そのようなコ
ンポーネントを記述するのに使用された用語(「手段」
に対する言及も含む)は、本発明の図示された例示の実
施形態における機能を実行する開示された構造に構造上
等価でないとしても、そうでないと指示しない限り、記
述されたコンポーネントの特定の機能を実行する任意の
コンポーネントに対応するもの(すなわち、等価の機
能)であることを意図している。また、本発明の特定の
特徴についていくつかの実施形態の1つのみで開示した
が、このような特徴は、希望に応じて他の実施形態の1
つ以上の他の特徴並びに任意の所与のまたは特定の応用
に対する利点と組み合わせることもできる。
While the present invention has been illustrated and described with reference to certain preferred embodiments or embodiments, it will be apparent to those skilled in the art that equivalent changes and modifications can be made by reading and understanding this specification and the accompanying drawings. . In particular, with respect to various functions performed by the aforementioned components (assemblies, devices, circuits, etc.), the terminology used to describe such components ("means")
), Unless specifically indicated to be otherwise structurally equivalent to the disclosed structure performing the functions in the illustrated exemplary embodiment of the invention, unless otherwise indicated. It is intended to correspond to any component that performs (ie, an equivalent function). Also, while certain features of the invention have been disclosed in only one of the embodiments, such features may be incorporated in other embodiments as desired.
It can also be combined with one or more other features as well as advantages for any given or specific application.

【図面の簡単な説明】[Brief description of the drawings]

【図1】従来技術の無線通信システムのブロック図であ
る。
FIG. 1 is a block diagram of a conventional wireless communication system.

【図2】従来技術のコンボルーション・エンコーダおよ
びビタビ・デコーダのブロック図である。
FIG. 2 is a block diagram of a prior art convolution encoder and Viterbi decoder.

【図3】従来技術のコンボルーション・エンコーダの概
略ブロック図である。
FIG. 3 is a schematic block diagram of a prior art convolution encoder.

【図4】現在の状態ノードから次の状態ノードへの可能
なエンコーダ遷移を示す従来技術のビタビ・アルゴリズ
ムのバタフライ構造である。
FIG. 4 is a prior art Viterbi algorithm butterfly structure showing possible encoder transitions from a current state node to the next state node.

【図5】本発明によるビタビ・デコーディングに対する
4ステージで16状態のトレリス図である。
FIG. 5 is a 4 stage, 16 state trellis diagram for Viterbi decoding according to the present invention.

【図6】本発明によるビタビ・デコーダの概略ブロック
図である。
FIG. 6 is a schematic block diagram of a Viterbi decoder according to the present invention.

【図7】本発明によるビタビ・デコーダに対するカスケ
ード形ACSユニットの概略ブロック図である。
FIG. 7 is a schematic block diagram of a cascaded ACS unit for a Viterbi decoder according to the present invention.

【図8】本発明によるビタビ・デコーダに対するACS
ユニットのより詳細な概略ブロック図である。
FIG. 8 is an ACS for a Viterbi decoder according to the present invention.
FIG. 3 is a more detailed schematic block diagram of a unit.

【図9】本発明によるビタビ・デコーダに対するブラン
チ・メトリック選択ユニットの概略ブロック図である。
FIG. 9 is a schematic block diagram of a branch metric selection unit for a Viterbi decoder according to the present invention.

【図10】本発明によるトレースバック・ユニットの概
略ブロック図である。
FIG. 10 is a schematic block diagram of a traceback unit according to the present invention.

【図11】本発明によるビタビ・デコーディングに対す
る方法を示すフローチャート図である。
FIG. 11 is a flowchart illustrating a method for Viterbi decoding according to the present invention.

【符号の説明】[Explanation of symbols]

110 ビタビ・デコーダ 120 状態メトリック更新ユニット 122 カスケード形ACS 124 経路判断値 125 累積状態メトリック(SM) 126 状態メトリック・メモリ 130 トレースバック・ユニット 132 トレースバック・メモリ 134 ブランチ・メトリック 136 アドレス/制御ブロック 138 ブランチ・メトリック選択ユニット 110 Viterbi decoder 120 State metric update unit 122 Cascaded ACS 124 Path decision value 125 Cumulative state metric (SM) 126 State metric memory 130 Traceback unit 132 Traceback memory 134 Branch metric 136 Address / control block 138 Branch・ Metric selection unit

Claims (14)

【特許請求の範囲】[Claims] 【請求項1】 デコーダ・システムであって、 状態メトリック・メモリとカスケード形加算/比較/選
択(ACS)ユニットとを含む状態メトリック更新ユニ
ットであって、 前記カスケード形ACSユニットが、前記状態メトリッ
ク・メモリとともに複数のACS処理を実行する複数の
直列結合されたACSステージを含み、 1つのACSステージが、複数の経路判断を識別し、該
識別された経路判断をそれに結合された次のACSステ
ージに伝えるように動作可能である、状態メトリック更
新ユニットと、 トレースバック・ユニットであって、これに関連したト
レースバック・メモリに1組の累積経路判断を格納し、
該1組の累積経路判断に対してトレースバックを実行す
る、トレースバック・ユニットと、 を具備し、 前記ACSステージおよび前記次のACSステージに関
連した前記経路判断が、前記トレースバック・メモリに
書き込まれる前に前記ACS処理中に1組として累積さ
れ、これにより、前記トレースバック・メモリに対する
アクセスを最小限にする、 デコーダ・システム。
1. A decoder system, comprising: a state metric update unit including a state metric memory and a cascaded add / compare / select (ACS) unit, wherein said cascaded ACS unit comprises: A plurality of series-coupled ACS stages that perform a plurality of ACS operations with the memory, wherein one ACS stage identifies the plurality of path decisions and transfers the identified path decisions to a next ACS stage coupled thereto. A state metric update unit operable to communicate, and a traceback unit, storing a set of cumulative path decisions in a traceback memory associated therewith;
A traceback unit for performing a traceback on the set of cumulative path decisions, wherein the path decisions associated with the ACS stage and the next ACS stage are written to the traceback memory. A decoder system that accumulates as a set during the ACS processing before being accessed, thereby minimizing access to the traceback memory.
【請求項2】 前記識別された経路判断が、該識別され
た経路判断をACS処理中に前記ACSステージから前
記次のACSステージに送ることによって、1組として
累積される、請求項1記載のデコーダ・システム。
2. The method of claim 1, wherein the identified path decisions are accumulated as a set by sending the identified path decisions from the ACS stage to the next ACS stage during ACS processing. Decoder system.
【請求項3】 前記状態メトリック更新ユニットが、A
CS処理中に、1組のブランチ・メトリック値を選択し
て1組の状態メトリック値と同期させるよう動作可能な
ブランチ・メトリック選択ユニットをさらに含む、請求
項1記載のデコーダ・システム。
3. The state metric updating unit comprises: A
The decoder system of claim 1, further comprising a branch metric selection unit operable to select a set of branch metric values and synchronize with the set of state metric values during CS processing.
【請求項4】 複数のACSステージに関して前記1組
のブランチ・メトリックを同期させる遅延回路をさらに
含む、請求項3記載のブランチ・メトリック選択ユニッ
ト。
4. The branch metric selection unit according to claim 3, further comprising a delay circuit for synchronizing said set of branch metrics with respect to a plurality of ACS stages.
【請求項5】 前記カスケード形ACSユニットのステ
ージに対する状態メトリック値を識別する状態メトリッ
ク・メモリ・アドレス指定とブランチ・メトリック選択
用の状態インデックスとを提供する状態インデックス発
生器をさらに含む、請求項3記載のブランチ・メトリッ
ク選択ユニット。
5. The system of claim 3, further comprising a state index generator providing state metric memory addressing identifying state metric values for the stages of the cascaded ACS unit and a state index for branch metric selection. The described branch metric selection unit.
【請求項6】 ユーザ供給コード多項式を格納し、複数
のコンボルーション・コードに対してフレキシブルな処
理をイネーブルする1組のコード多項式レジスタをさら
に含む、請求項3記載のブランチ・メトリック選択ユニ
ット。
6. The branch metric selection unit according to claim 3, further comprising a set of code polynomial registers for storing a user-supplied code polynomial and enabling flexible processing for the plurality of convolution codes.
【請求項7】 前記ユーザ供給コード多項式を受けるブ
ランチ・メトリック・インデックス・ロジック回路であ
って、該ブランチ・メトリック・インデックス・ロジッ
クが、状態インデックスと状態カウンタとを受けて、多
数のACSステージに対するブランチ・メトリック・イ
ンデックスを発生し、正しいブランチ・メトリックを選
択する、ブランチ・メトリック・インデックス・ロジッ
ク回路をさらに含む、請求項6記載のブランチ・メトリ
ック選択ユニット。
7. A branch metric index logic circuit receiving the user-supplied code polynomial, the branch metric index logic receiving a state index and a state counter to branch to a number of ACS stages. 7. The branch metric selection unit of claim 6, further comprising: a branch metric index logic circuit for generating a metric index and selecting a correct branch metric.
【請求項8】 前記状態メトリック更新ユニットと前記
トレースバック・ユニットとの両方に動作上結合された
DSPインターフェース回路をさらに含み、 該DSPインターフェース回路が、DSPからの前記ブ
ランチ・メトリックを前記トレースバック・ユニットに
伝え、デコードされた出力ビットを前記トレースバック
・ユニットから前記DSPに送る、 請求項1記載のデコーディング・システム。
8. The system further comprising a DSP interface circuit operatively coupled to both the state metric update unit and the traceback unit, the DSP interface circuit operable to trace the branch metric from a DSP to the traceback unit. The decoding system of claim 1, wherein the decoding system communicates to the unit and sends decoded output bits from the traceback unit to the DSP.
【請求項9】 前記DSPが、ブランチ・メトリック計
算およびデパンクチャを実行し、これにより、前記デコ
ーディング・システムのフレキシブルな動作を容易にす
る、請求項8記載のデコーディング・システム。
9. The decoding system of claim 8, wherein said DSP performs branch metric calculations and depuncturing, thereby facilitating flexible operation of said decoding system.
【請求項10】 トレースバック処理が、複数の抑制長
コードに対して実行される、請求項1記載のトレースバ
ック・ユニット。
10. The traceback unit according to claim 1, wherein the traceback processing is performed on a plurality of suppressed length codes.
【請求項11】 ビタビ・デコーディングの方法であっ
て、 加算/比較/選択(ACS)処理を複数のACSステー
ジに渡って実行するステップと、 前記ACS処理中に経路判断を判定するステップと、 前記ACS処理に基づいて前記経路判断を累積するステ
ップと、 前記累積された経路判断を前記複数のACSステージの
続くACSステージに送るステップと、 前記累積された経路判断を1組としてトレースバック・
メモリに供給してトレースバック・メモリ・アクセスを
減少させるステップと、 を具備する、方法。
11. A method for Viterbi decoding, comprising: performing an add / compare / select (ACS) process across a plurality of ACS stages; and determining a path decision during the ACS process. Accumulating the path judgment based on the ACS processing; sending the accumulated path judgment to an ACS stage subsequent to the plurality of ACS stages;
Providing trace back memory access to the memory.
【請求項12】 前記経路判断を累積するステップが、
前記ACS処理に基づいて経路判断の受けるACSデー
タ経路を広げるステップを含む、請求項11記載の方
法。
12. The step of accumulating the route judgment,
The method according to claim 11, further comprising a step of expanding an ACS data path subjected to a path determination based on the ACS processing.
【請求項13】 前記累積された経路判断を送るステッ
プが、 現在のACSステージの識別された経路判断に基づいて
続くACSステージの前記累積された経路判断をルーテ
ィングするステップと、 前記識別され累積された経路判断を前記続くACSステ
ージの前記経路判断と組み合わせるステップと、をさら
に含む、 請求項11記載の方法。
13. The step of sending the accumulated path decision comprises: routing the accumulated path decision of a subsequent ACS stage based on the identified path decision of a current ACS stage; Combining the determined path with the determined path of the subsequent ACS stage.
【請求項14】 前記累積された経路判断を1組として
トレースバック・メモリに供給するステップが、前記累
積された経路判断を前記続くACSステージに関連した
1組の経路判断に添付するステップをさらに含む、請求
項11記載の方法。
14. The method of providing the accumulated path decisions as a set to a traceback memory further comprising: attaching the accumulated path decisions to a set of path decisions associated with the subsequent ACS stage. The method of claim 11, comprising:
JP2000057869A 1999-01-29 2000-01-27 Flexible Viterbi decoder for wireless applications Expired - Fee Related JP4331371B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11776399P 1999-01-29 1999-01-29
US117763 1999-01-29

Publications (2)

Publication Number Publication Date
JP2001028550A true JP2001028550A (en) 2001-01-30
JP4331371B2 JP4331371B2 (en) 2009-09-16

Family

ID=22374675

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000057869A Expired - Fee Related JP4331371B2 (en) 1999-01-29 2000-01-27 Flexible Viterbi decoder for wireless applications

Country Status (1)

Country Link
JP (1) JP4331371B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062701B2 (en) 2000-03-02 2006-06-13 Infineon Technologies Ag Method for storing path metrics in a viterbi decoder
JP2009535939A (en) * 2006-04-27 2009-10-01 クゥアルコム・インコーポレイテッド Viterbi decoding apparatus and technology
JP2010206570A (en) * 2009-03-04 2010-09-16 Sony Corp Decoding apparatus and decoding method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062701B2 (en) 2000-03-02 2006-06-13 Infineon Technologies Ag Method for storing path metrics in a viterbi decoder
JP2009535939A (en) * 2006-04-27 2009-10-01 クゥアルコム・インコーポレイテッド Viterbi decoding apparatus and technology
JP2010206570A (en) * 2009-03-04 2010-09-16 Sony Corp Decoding apparatus and decoding method

Also Published As

Publication number Publication date
JP4331371B2 (en) 2009-09-16

Similar Documents

Publication Publication Date Title
US6901118B2 (en) Enhanced viterbi decoder for wireless applications
US6690750B1 (en) Flexible Viterbi decoder for wireless applications
JP3677257B2 (en) Convolution decoding device
US7139968B2 (en) Processing unit and processing method
AU762877B2 (en) Component decoder and method thereof in mobile communication system
EP1204210A1 (en) Architecture for a communications device
EP1204211B1 (en) Butterfly processor for telecommunications
EP1204212B1 (en) Method and apparatus for path metric processing in telecommunications systems
US7234100B1 (en) Decoder for trellis-based channel encoding
Chadha et al. A reconfigurable Viterbi decoder architecture
US7506239B2 (en) Scalable traceback technique for channel decoder
EP1111798A1 (en) Digital signal processor
KR100387089B1 (en) Viterbi decoder with reduced number of bits in branch metric calculation processing
JP4331371B2 (en) Flexible Viterbi decoder for wireless applications
EP1024604A2 (en) Flexible viterbi decoder for wireless applications
US20050138535A1 (en) Method and system for branch metric calculation in a viterbi decoder
JP2002534902A (en) ML state selection apparatus and method in decoding apparatus
JP4295871B2 (en) Error correction decoder
KR100386027B1 (en) Logic circuit of branch metric unit for supporting various code rates in viterbi decoder
JP3383661B2 (en) Arithmetic processing unit
JP2003234656A (en) Arithmetic processing unit
Mulik et al. Design of Viterbi Decoder for Noisy Channel on FPGA
Jamal et al. Design and FPGA Implementation of Low Power Punctured Soft Decision Viterbi Decoder
JP2003204271A (en) Digital signal processor
KR20010001821A (en) The structure of trace-back survival memory in viterbi decoder apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070126

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: 20090519

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090618

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130626

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees