JP4822071B2 - Decoding device and decoding method - Google Patents

Decoding device and decoding method Download PDF

Info

Publication number
JP4822071B2
JP4822071B2 JP2007119097A JP2007119097A JP4822071B2 JP 4822071 B2 JP4822071 B2 JP 4822071B2 JP 2007119097 A JP2007119097 A JP 2007119097A JP 2007119097 A JP2007119097 A JP 2007119097A JP 4822071 B2 JP4822071 B2 JP 4822071B2
Authority
JP
Japan
Prior art keywords
decoding
value
storage means
reception
supplied
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.)
Expired - Fee Related
Application number
JP2007119097A
Other languages
Japanese (ja)
Other versions
JP2008278191A (en
Inventor
峰志 横川
雄一 平山
修 新谷
諭志 岡田
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2007119097A priority Critical patent/JP4822071B2/en
Publication of JP2008278191A publication Critical patent/JP2008278191A/en
Application granted granted Critical
Publication of JP4822071B2 publication Critical patent/JP4822071B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、復号装置および復号方法に関し、特に、低密度パリティ検査符号(LDPC符号)を復号する場合において、回路規模を削減することができるようにした復号装置および復号方法に関する。   The present invention relates to a decoding apparatus and a decoding method, and more particularly, to a decoding apparatus and a decoding method capable of reducing the circuit scale when decoding a low density parity check code (LDPC code).

近年、例えば、移動体通信や深宇宙通信といった通信分野、及び地上波又は衛星ディジタル放送といった放送分野の研究が著しく進められているが、それに伴い、誤り訂正符号化及び復号の効率化を目的として符号理論に関する研究も盛んに行われている。   In recent years, for example, the field of communication such as mobile communication and deep space communication and the field of broadcasting such as terrestrial or satellite digital broadcasting have been remarkably advanced. Research on coding theory is also actively conducted.

符号性能の理論的限界としては、いわゆるシャノン(C. E. Shannon)の通信路符号化定理によって与えられるシャノン限界が知られている。符号理論に関する研究は、このシャノン限界に近い性能を示す符号を開発することを目的として行われている。近年では、シャノン限界に近い性能を示す符号化方法として、例えば、並列連接畳み込み符号(PCCC(Parallel Concatenated Convolutional Codes))や、縦列連接畳み込み符号(SCCC(Serially Concatenated Convolutional Codes))といった、いわゆるターボ符号化(Turbo coding)と呼ばれる手法が開発されている。また、これらのターボ符号が開発される一方で、古くから知られる符号化方法である低密度パリティ検査符号(Low Density Parity Check codes)(以下、LDPC符号という)化が脚光を浴びつつある。   As the theoretical limit of code performance, the Shannon limit given by the so-called Shannon (C. E. Shannon) channel coding theorem is known. Research on code theory is being conducted with the goal of developing codes that exhibit performance close to the Shannon limit. In recent years, encoding methods that exhibit performance close to the Shannon limit include, for example, so-called turbo codes such as parallel concatenated convolutional codes (PCCC (Parallel Concatenated Convolutional Codes)) and tandem concatenated convolutional codes (SCCC). A technique called Turbo coding has been developed. While these turbo codes have been developed, the use of low density parity check codes (hereinafter referred to as LDPC codes), which is an encoding method that has been known for a long time, is attracting attention.

LDPC符号は、R. G. Gallagerによる非特許文献1において最初に提案されたものであり、その後、非特許文献2等において再注目されるに至ったものである。   The LDPC code was first proposed in Non-Patent Document 1 by R. G. Gallager, and thereafter has been refocused in Non-Patent Document 2 and the like.

LDPC符号は、近年の研究により、ターボ符号等と同様に、符号長を長くしていくにしたがって、シャノン限界に近い性能が得られることがわかりつつある。また、LDPC符号は、最小距離が符号長に比例するという性質があることから、その特徴として、ブロック誤り確率特性がよく、さらに、ターボ符号等の復号特性において観測される、いわゆるエラーフロア現象が殆ど生じないことも利点として挙げられる。   Recent studies have shown that LDPC codes can achieve performance close to the Shannon limit as the code length is increased, similar to turbo codes and the like. In addition, since the LDPC code has the property that the minimum distance is proportional to the code length, its characteristic is that the block error probability characteristic is good, and furthermore, the so-called error floor phenomenon observed in the decoding characteristic such as turbo code is observed. An advantage is that it hardly occurs.

以上のような利点により、LDPC符号にBCH符号が連接された誤り訂正方式が、ETSI(European Telecommunication Standard Institute)により規格化されたDVB-S2(Digital Video Broadcasting S2)規格等にも採用され、DVB-S2規格は、この誤り訂正方式と、8PSK(8-Phase Shift Keying)以上の多値変調とが組み合わされた規格となっている。また、受信機の性能が同一である場合、DVB-S2規格では、畳み込み符号とリードソロモン符号を連接した方式を採用するDVB-S規格に対して、帯域あたりの伝送容量が25%から30%程度に向上されることが見込まれている。   Due to the above advantages, the error correction method with the BCH code concatenated with the LDPC code is also adopted in the DVB-S2 (Digital Video Broadcasting S2) standard standardized by the European Telecommunication Standard Institute (ETSI). The -S2 standard is a standard that combines this error correction method and multi-level modulation of 8PSK (8-Phase Shift Keying) or higher. When the receiver performance is the same, the DVB-S2 standard has a transmission capacity of 25% to 30% per band compared to the DVB-S standard, which employs a concatenated convolutional code and Reed-Solomon code. It is expected to be improved to a certain extent.

ところで、LDPC符号の復号は、Gallagerが確率復号(Probabilistic Decoding)と称して提案したアルゴリズムであって、バリアブルノード(variable node(メッセージノード(message node)とも呼ばれる。))と、チェックノード(check node)とからなる、いわゆるタナーグラフ(Tanner graph)上での確率伝播(belief propagation)によるメッセージ・パッシング・アルゴリズムによって行うことが可能である。なお、以下、適宜、バリアブルノードとチェックノードを、単に、ノードともいう。   By the way, decoding of an LDPC code is an algorithm proposed by Gallager called probabilistic decoding (Probabilistic Decoding), which is a variable node (also called a message node) and a check node. ) And a message passing algorithm based on belief propagation on a so-called Tanner graph. Hereinafter, the variable node and the check node are also simply referred to as nodes as appropriate.

しかしながら、確率復号においては、各ノード間で受け渡されるメッセージが実数値であることから、解析的に解くためには、連続した値をとるメッセージの確率分布そのものを追跡する必要があり、非常に困難を伴う解析を必要とすることになる。そこで、Gallagerは、LDPC符号の復号アルゴリズムとして、アルゴリズムA又はアルゴリズムBを提案している。   However, in probabilistic decoding, since the message passed between each node is a real value, in order to solve it analytically, it is necessary to track the probability distribution itself of messages that take consecutive values. It will require analysis with difficulty. Therefore, Gallager has proposed algorithm A or algorithm B as a decoding algorithm for LDPC codes.

LDPC符号の復号は、一般的には、図1に示すような手順にしたがって行われる。なお、ここでは、フレーム単位でLDPC符号化されたLDPC符号を受信値U0とし、チェックノードから出力されるメッセージをujとし、バリアブルノードから出力されるメッセージをviとする。メッセージとは、値の"0"らしさを、いわゆる対数尤度比(log likelihood ratio)で表現した実数値である。また、ここでは、受信値U0の"0"らしさの対数尤度比を、受信値u0iと表すこととする。 The decoding of the LDPC code is generally performed according to a procedure as shown in FIG. Here, an LDPC code LDPC-encoded in frame units is a received value U 0 , a message output from the check node is u j, and a message output from the variable node is v i . The message is a real value expressing the value of “0” as a so-called log likelihood ratio. Here, the log likelihood ratio of the “0” likelihood of the received value U 0 is expressed as a received value u 0i .

まず、LDPC符号の復号においては、図1に示すように、ステップS11において、受信値U0(受信値u0i)が受信され、メッセージujが"0"に初期化されるとともに、繰り返し処理のカウンタとしての整数をとる変数kが"0"に初期化される。ステップS12において、受信値u0iに基づいて、式(1)に示す演算を行うことによってメッセージviが求められ、さらに、このメッセージviに基づいて、式(2)に示す演算を行うことによってメッセージujが求められる。 First, in decoding of an LDPC code, as shown in FIG. 1, in step S11, a received value U 0 (received value u 0i ) is received, a message u j is initialized to “0”, and an iterative process is performed. A variable k that takes an integer as a counter of is initialized to "0". In step S12, the message v i is obtained by performing the calculation shown in Expression (1) based on the received value u 0i , and further the calculation shown in Expression (2) is performed based on the message v i. Asks for the message u j .

Figure 0004822071
・・・(1)
Figure 0004822071
... (1)

Figure 0004822071
・・・(2)
Figure 0004822071
... (2)

なお、式(1)と式(2)におけるdvとdcは、それぞれ、検査行列Hの縦方向(行方向)と横方向(列方向)の"1"の個数を示す任意に選択可能とされるパラメータであり、例えば、(3,6)符号の場合には、dv=3,dc=6となる。 Note that d v and d c in Equation (1) and Equation (2) can be arbitrarily selected to indicate the number of “1” s in the vertical direction (row direction) and horizontal direction (column direction) of the parity check matrix H, respectively. For example, in the case of the (3, 6) code, d v = 3 and d c = 6.

また、式(1)または(2)の演算においては、それぞれ、メッセージを出力しようとする枝(edge)から入力されたメッセージを、和または積演算のパラメータとしては用いないことから、和または積演算の範囲が、1乃至dv-1または1乃至dc-1となっている。さらに、式(2)に示す演算は、実際には、2入力v1,v2に対する1出力で定義される式(3)に示す関数R(v1,v2)のテーブルを予め作成しておき、これを式(4)に示すように連続的(再帰的)に用いることによって行われる。 In addition, in the calculation of the expression (1) or (2), the message input from the edge to which the message is to be output is not used as a parameter for the sum or product operation. The range of operation is 1 to d v -1 or 1 to d c -1. Furthermore, the calculation shown in the equation (2) actually creates a table of the function R (v 1 , v 2 ) shown in the equation (3) defined by one output for two inputs v 1 and v 2 in advance. This is done by using it continuously (recursively) as shown in equation (4).

Figure 0004822071
・・・(3)
Figure 0004822071
... (3)

Figure 0004822071
・・・(4)
Figure 0004822071
... (4)

ステップS12では、さらに、変数kが"1"だけインクリメントされる。ステップS13では、変数kが所定の繰り返し復号回数N以上であるか否かが判定される。ステップS13において、変数kがN以上ではないと判定された場合、処理はステップS12に戻り、以下、同様の処理が繰り返される。   In step S12, the variable k is further incremented by “1”. In step S13, it is determined whether or not the variable k is equal to or greater than a predetermined iterative decoding count N. If it is determined in step S13 that the variable k is not N or more, the process returns to step S12, and the same process is repeated thereafter.

一方、ステップS13において、変数kがN以上であると判定された場合、ステップS14において、式(5)に示す演算を行うことによって、最終的に出力する復号結果としてのメッセージvが求められて出力され、LDPC符号の復号処理が終了する。   On the other hand, if it is determined in step S13 that the variable k is greater than or equal to N, in step S14, the message v as the decoding result to be finally output is obtained by performing the calculation shown in equation (5). The LDPC code decoding process ends.

Figure 0004822071
・・・(5)
Figure 0004822071
... (5)

なお、式(5)の演算は、式(1)の演算とは異なり、バリアブルノードに接続している全ての枝からの入力メッセージを用いて行われる。   In addition, the calculation of Formula (5) is performed using the input message from all the branches connected to the variable node, unlike the calculation of Formula (1).

このようなLDPC符号の復号は、例えば(3,6)符号の場合には、図2に示すように、各ノード間でメッセージの授受が行われる。なお、図2における"="で示すノード(バリアブルノード)では、式(1)に示した演算が行われ、"+"で示すノード(チェックノード)では、式(2)に示した演算が行われる。特に、アルゴリズムAにおいては、メッセージを2元化し、"+"で示すノードにて、dc-1個の入力メッセージの排他的論理和演算を行い、"="で示すノードにて、受信値Rに対して、dv-1個の入力メッセージが全て異なるビット値であった場合には、符号を反転して出力する。 For example, in the case of a (3, 6) code, such an LDPC code is decoded as shown in FIG. In FIG. 2, the calculation shown in Expression (1) is performed at the node indicated by “=” (variable node), and the calculation shown in Expression (2) is performed at the node indicated by “+” (check node). Done. In particular, in algorithm A, the message is binarized, and the exclusive OR operation of d c −1 input messages is performed at the node indicated by “+”, and the received value at the node indicated by “=”. For R, if d v −1 input messages all have different bit values, the sign is inverted and output.

また、一方で、近年、LDPC符号の復号の実装方法に関する研究も行われている。実装方法について述べる前に、まず、LDPC符号の復号を模式化して説明する。   On the other hand, in recent years, research on implementation methods for decoding LDPC codes has also been conducted. Before describing the mounting method, first, decoding of an LDPC code will be schematically described.

図3は、(3,6)LDPC符号(符号化率1/2、符号長12)の検査行列H(parity check matrix)の例である。LDPC符号の検査行列Hは、図4のように、タナーグラフを用いて書き表すことができる。なお、図4において、"+"で表わされるのが、チェックノードであり、"="で表わされるのが、バリアブルノードである。チェックノードとバリアブルノードは、それぞれ、検査行列Hの行と列に対応する。チェックノードとバリアブルノードとの間の結線は、枝(edge)であり、検査行列Hの"1"に相当する。即ち、検査行列Hの第j行第i列のコンポーネントが1である場合には、図4において、上からi番目のバリアブルノード("="のノード)と、上からj番目のチェックノード("+"のノード)とが、枝により接続される。枝は、バリアブルノードに対応する符号ビットが、チェックノードに対応する拘束条件を持つことを表わす。なお、図4は、図3の検査行列Hのタナーグラフとなっている。   FIG. 3 is an example of a check matrix H (parity check matrix) of a (3, 6) LDPC code (coding rate 1/2, code length 12). The parity check matrix H of the LDPC code can be written using a Tanner graph as shown in FIG. In FIG. 4, “+” represents a check node, and “=” represents a variable node. Check nodes and variable nodes correspond to the rows and columns of the parity check matrix H, respectively. The connection between the check node and the variable node is an edge and corresponds to “1” of the parity check matrix H. That is, when the component in the j-th row and the i-th column of the check matrix H is 1, in FIG. 4, the i-th variable node from the top ("=" node) and the j-th check node from the top ( Are connected by a branch. The branch indicates that the sign bit corresponding to the variable node has a constraint condition corresponding to the check node. 4 is a Tanner graph of the parity check matrix H of FIG.

確率伝播(Belief Propagation)、サムプロダクトアルゴリズム(Sum Product Algorithm)等と呼ばれるLDPC符号の復号方法は、バリアブルノードの演算とチェックノードの演算とを繰り返し行う。   An LDPC code decoding method called “Belief Propagation” or “Sum Product Algorithm” repeatedly performs variable node computation and check node computation.

バリアブルノードでは、図5のように、式(1)の演算を行う。すなわち、図5において、計算しようとしている枝に対応するメッセージviは、バリアブルノードに繋がっている残りの枝からのメッセージu1およびu2と、受信情報u0iを用いて計算される。他の枝に対応するメッセージも同様に計算される。 In the variable node, the calculation of Expression (1) is performed as shown in FIG. That is, in FIG. 5, the message v i corresponding to the branch to be calculated is calculated using the messages u 1 and u 2 from the remaining branches connected to the variable node and the reception information u 0i . Messages corresponding to other branches are similarly calculated.

チェックノードの演算について説明する前に、式(2)を、式a×b=exp{ln(|a|)+ln(|b|)}×sign(a)×sign(b)の関係を用いて、式(6)のように書き直す。但し、sign(x)は、x≧0のとき1であり、x<0のとき-1である。   Before explaining the operation of the check node, the expression (2) is changed to the expression a × b = exp {ln (| a |) + ln (| b |)} × sign (a) × sign (b). And rewrite as equation (6). However, sign (x) is 1 when x ≧ 0, and −1 when x <0.

Figure 0004822071
・・・(6)
Figure 0004822071
... (6)

更に、x≧0において、φ(x)=−ln(tanh(x/2))と定義すると、φ-1(x)=2tanh-1(e-x)であるから、式(6)は、式(7)のように書くことができる。 Furthermore, when x ≧ 0 and φ (x) = − ln (tanh (x / 2)), it is φ −1 (x) = 2 tanh −1 (e −x ). And can be written as equation (7).

Figure 0004822071
・・・(7)
Figure 0004822071
... (7)

チェックノードでは、図6のように、式(7)の演算を行う。すなわち、図6において、計算しようとしている枝に対応するメッセージujは、チェックノードに繋がっている残りの枝からのメッセージv1,v2,v3,v4,v5を用いて計算される。他の枝に対応するメッセージも同様に計算される。 In the check node, the calculation of Expression (7) is performed as shown in FIG. That is, in FIG. 6, the message u j corresponding to the branch to be calculated is calculated using the messages v 1 , v 2 , v 3 , v 4 , v 5 from the remaining branches connected to the check node. The Messages corresponding to other branches are similarly calculated.

なお、関数φ(x)は、φ(x)=ln((ex+1)/(ex-1))とも表すことができ、x>0において、φ(x)=φ-1(x)である。関数φ(x)およびφ-1(x)をハードウェアに実装する際には、LUT(Look Up Table)を用いて実装される場合があるが、両者共に同一のLUTとなる。 The function φ (x) can also be expressed as φ (x) = ln ((e x +1) / (e x −1)). When x> 0, φ (x) = φ −1 ( x). When the functions φ (x) and φ −1 (x) are mounted on hardware, they may be mounted using a LUT (Look Up Table), but both are the same LUT.

サムプロダクトアルゴリズムをハードウェアに実装する場合、式(1)で表わされるバリアブルノード演算および式(7)で表わされるチェックノード演算を、適度な回路規模と動作周波数で繰り返し行うことが必要である。   When the thumb product algorithm is implemented in hardware, it is necessary to repeatedly perform the variable node operation represented by Expression (1) and the check node operation represented by Expression (7) with an appropriate circuit scale and operating frequency.

次に、図7乃至図10を参照して、復号装置の実装方法の例として、各ノードの演算を1つずつ順次行うことによって復号を行う場合(full serial decoding)の実装方法について説明する。   Next, with reference to FIG. 7 to FIG. 10, as an example of a decoding device mounting method, a mounting method in the case where decoding is performed by sequentially performing each node operation one by one (full serial decoding) will be described.

なお、ここでは、例えば、図7の、36(行)×108(列)の検査行列Hで表現される符号(符号化率2/3、符号長108)を復号するものとする。図7の検査行列Hの1の数は323であり、従って、そのタナーグラフでは、枝の数は323個となる。ここで、図7の検査行列Hでは、0を、"."で表現している。   Here, for example, it is assumed that a code (coding rate 2/3, code length 108) represented by a check matrix H of 36 (rows) × 108 (columns) in FIG. 7 is decoded. The number of 1s in the parity check matrix H in FIG. 7 is 323. Therefore, in the Tanner graph, the number of branches is 323. Here, in the check matrix H in FIG. 7, 0 is expressed by “.”.

図8は、各ノードの演算を1つずつ順次行う復号装置の構成例を示している。   FIG. 8 shows an example of the configuration of a decoding apparatus that sequentially performs the calculation of each node one by one.

図8の復号装置では、動作クロックの1クロック(clock)ごとに、1つの枝に対応するメッセージが計算される。   In the decoding device of FIG. 8, a message corresponding to one branch is calculated for each clock of the operation clock.

即ち、図8の復号装置は、2つの枝用メモリ100および102、1つのチェックノード計算器101、1つのバリアブルノード計算器103、1つの受信用メモリ104、1つの制御部105からなる。   That is, the decoding apparatus in FIG. 8 includes two branch memories 100 and 102, one check node calculator 101, one variable node calculator 103, one reception memory 104, and one control unit 105.

図8の復号装置では、枝用メモリ100または102からメッセージデータが1つずつ読み出され、そのメッセージデータを用いて、所望の枝に対応するメッセージデータが計算される。そして、その計算によって求められたメッセージデータが1つずつ後段の枝用メモリ102または100に格納されていく。繰り返し復号を行うことにより、高い誤り訂正能力を実現する際には、この1回復号を行う図8の復号装置を複数個縦列に連接するか、もしくは図8の復号装置を繰り返し用いることによって、繰り返し復号を実現する。なお、ここでは、例えば、図8の復号装置が複数個接続されているものとする。   In the decoding device of FIG. 8, message data is read one by one from the branch memory 100 or 102, and message data corresponding to a desired branch is calculated using the message data. The message data obtained by the calculation is stored in the branch memory 102 or 100 in the subsequent stage one by one. When a high error correction capability is realized by performing iterative decoding, a plurality of decoding devices of FIG. 8 that perform this one-time decoding are connected in series or by repeatedly using the decoding device of FIG. Implements iterative decoding. Here, for example, it is assumed that a plurality of decoding devices in FIG. 8 are connected.

枝用メモリ100は、前段の復号装置(図示せず)のバリアブルノード計算器103から供給されるメッセージD100を、後段のチェックノード計算器101が読み出す順番に格納していく。そして、枝用メモリ100は、チェックノード計算のフェーズでは、メッセージD100を、格納してある順番通りに、メッセージD101として、チェックノード計算器101に供給する。   The branch memory 100 stores the message D100 supplied from the variable node calculator 103 of the preceding decoding device (not shown) in the order in which the subsequent check node calculator 101 reads the message D100. In the check node calculation phase, the branch memory 100 supplies the message D100 to the check node calculator 101 as the message D101 in the stored order.

チェックノード計算器101は、制御部105から供給される制御信号D106に基づき、枝用メモリ100から供給されるメッセージD101を用いて、式(7)に従って演算を行い、その演算によって求められたメッセージD102を、後段の枝用メモリ102に供給する。   Based on the control signal D106 supplied from the control unit 105, the check node calculator 101 uses the message D101 supplied from the branch memory 100 to perform an operation according to Expression (7), and obtains the message obtained by the operation. D102 is supplied to the branch memory 102 in the subsequent stage.

枝用メモリ102は、前段のチェックノード計算器101から供給されるメッセージD102を、後段のバリアブルノード計算器103が読み出す順番に格納していく。そして、枝用メモリ102は、バリアブルノード計算のフェーズでは、メッセージD102を、格納してある順番通りに、メッセージD103として、バリアブルノード計算器103に供給する。   The branch memory 102 stores the message D102 supplied from the previous check node calculator 101 in the order in which the subsequent variable node calculator 103 reads the message D102. In the variable node calculation phase, the branch memory 102 supplies the message D102 to the variable node calculator 103 as the message D103 in the stored order.

さらに、バリアブルノード計算器103には、制御部105から制御信号D107が供給されるとともに、受信用メモリ104から受信値D104が供給される。バリアブルノード計算器103は、制御信号D107に基づき、枝用メモリ100から供給されるメッセージD103と受信用メモリ104から供給される受信値D104を用い、式(1)に従って演算を行い、その演算の結果得られるメッセージD105を、図示せぬ後段の復号装置の枝用メモリ100に供給する。   Further, the control signal D107 is supplied from the control unit 105 to the variable node calculator 103, and the reception value D104 is supplied from the reception memory 104. Based on the control signal D107, the variable node calculator 103 uses the message D103 supplied from the branch memory 100 and the received value D104 supplied from the reception memory 104, and performs an operation according to the equation (1). The message D105 obtained as a result is supplied to the branch memory 100 of the decoding device in the subsequent stage (not shown).

受信用メモリ104には、通信路を通して受信されたLDPC符号から計算された、符号ビットの0らしさを表す受信LLR(対数尤度比)である受信値D108を受信し、格納する。なお、LDPC符号は、フレーム単位でLDPC符号化されている。受信用メモリ104は、格納している受信値D108を読み出し、受信値D104としてバリアブルノード計算器103に供給する。   The reception memory 104 receives and stores a reception value D108, which is a reception LLR (log likelihood ratio) representing the likelihood of 0 of the code bit calculated from the LDPC code received through the communication path. Note that the LDPC code is LDPC-coded in units of frames. The reception memory 104 reads the received reception value D108 and supplies it to the variable node calculator 103 as the reception value D104.

制御部105は、バリアブルノード演算を制御する制御信号D106と、チェックノード演算を制御する制御信号D107を、それぞれチェックノード計算器101とバリアブルノード計算器103に供給する。制御部105は、枝用メモリ100に全ての枝のメッセージが格納されたとき、チェックノード計算器101に制御信号D106を供給し、枝用メモリ102に全ての枝のメッセーが格納されたとき、バリアブルノード計算器103に制御信号D107を供給する。   The control unit 105 supplies a control signal D106 for controlling the variable node calculation and a control signal D107 for controlling the check node calculation to the check node calculator 101 and the variable node calculator 103, respectively. When all branch messages are stored in the branch memory 100, the control unit 105 supplies the control signal D106 to the check node calculator 101, and when all branch messages are stored in the branch memory 102, A control signal D107 is supplied to the variable node calculator 103.

図9は、図8のチェックノード計算器101の詳細構成例を示している。   FIG. 9 shows a detailed configuration example of the check node calculator 101 of FIG.

なお、図9では、各メッセージが符号ビットを合わせて合計6ビット(bit)に量子化されているものとして、チェックノード計算器101を表している。また、図9では、図7の検査行列Hで表わされるLDPC符号のチェックノード演算が行われる。さらに、図9のチェックノード演算器101には、クロックckが供給され、このクロックckは、必要なブロックに供給されるようになっている。そして、各ブロックは、クロックckに同期して処理を行う。   In FIG. 9, the check node calculator 101 is represented on the assumption that each message is quantized to a total of 6 bits including the sign bits. In FIG. 9, a check node calculation of the LDPC code represented by the check matrix H in FIG. 7 is performed. Further, a clock ck is supplied to the check node computing unit 101 in FIG. 9, and this clock ck is supplied to a necessary block. Each block performs processing in synchronization with the clock ck.

図9のチェックノード計算器101は、制御部105から供給される、例えば、1ビットの制御信号D106に基づき、枝用メモリ100から1つずつ読み込まれるメッセージD101を用いて、式(7)にしたがって演算を行う。   The check node calculator 101 in FIG. 9 is supplied from the control unit 105, for example, using the message D101 read one by one from the branch memory 100 based on the 1-bit control signal D106. Therefore, calculation is performed.

即ち、チェックノード計算器101では、検査行列Hの各列に対応するバリアブルノードからの6ビットのメッセージD101(メッセージvi)が1つずつ読み込まれ、その下位ビットである絶対値D122(|vi|)がLUT121に、その最上位ビットである符号ビットD121がEXOR回路129とFIFO(First In First Out)メモリ133にそれぞれ供給される。また、チェックノード計算器101には、制御部105から制御信号D106が供給され、その制御信号D106は、セレクタ124とセレクタ131に供給される。 That is, the check node calculator 101 reads one 6-bit message D101 (message v i ) from the variable node corresponding to each column of the check matrix H one by one, and the absolute value D122 (| v i |) is supplied to the LUT 121, and the sign bit D121, which is the most significant bit, is supplied to the EXOR circuit 129 and the FIFO (First In First Out) memory 133, respectively. The check node calculator 101 is supplied with a control signal D106 from the control unit 105, and the control signal D106 is supplied to the selector 124 and the selector 131.

LUT121は、絶対値D122(|vi|)に対して、式(7)におけるφ(|vi|)の演算を行った5ビットの演算結果D123(φ(|vi|))を読み出し、加算器122とFIFOメモリ127に供給する。 The LUT 121 reads the 5-bit operation result D123 (φ (| v i |)) obtained by performing the operation of φ (| v i |) in the equation (7) with respect to the absolute value D122 (| v i |). The adder 122 and the FIFO memory 127 are supplied.

加算器122は、演算結果D123(φ(|vi|))とレジスタ123に格納されている9ビットの値D124とを加算することにより、演算結果D123を積算し、その結果得られる9ビットの積算値をレジスタ123に再格納する。なお、検査行列Hの1行に亘る全ての枝からのメッセージD101の絶対値D122(|vi|)に対する演算結果が積算された場合、レジスタ123はリセットされる。 The adder 122 adds the operation result D123 (φ (| v i |)) and the 9-bit value D124 stored in the register 123, thereby accumulating the operation result D123, and 9 bits obtained as a result. Is stored again in the register 123. Note that when the calculation results for the absolute value D122 (| v i |) of the message D101 from all branches over one row of the check matrix H are accumulated, the register 123 is reset.

検査行列Hの1行に亘るメッセージD101が1つずつ読み込まれ、レジスタ123に1行分の演算結果D123が積算された積算値が格納された場合、制御部105から供給される制御信号D106は、0から1に変化する。例えば、行の重み(row weight)が「9」である場合、制御信号D106は、1から8クロック目までは、「0」となり、9クロック目では「1」となる。   When the message D101 over one row of the check matrix H is read one by one and the accumulated value obtained by accumulating the operation result D123 for one row is stored in the register 123, the control signal D106 supplied from the control unit 105 is , Change from 0 to 1. For example, when the row weight is “9”, the control signal D106 is “0” from the first to the eighth clock, and “1” at the ninth clock.

制御信号D106が「1」の場合、セレクタ124は、レジスタ123に格納されている値、即ち、検査行列Hの1行に亘る全ての枝からのメッセージD101(メッセージvi)から求められたφ(|vi|)が積算された9ビットの値D124(i=1からi=dcまでのΣφ(|vi|))を選択し、値D125として、レジスタ125に出力して格納させる。レジスタ125は、格納している値D125を、9ビットの値D126として、セレクタ124と加算器126に供給する。制御信号D106が「0」の場合、セレクタ124は、レジスタ125から供給された値D126を選択し、レジスタ125に出力して再格納させる。即ち、検査行列Hの1行に亘る全ての枝からのメッセージD101(メッセージvi)から求められたφ(|vi|)が積算されるまで、レジスタ125は、前回積算されたφ(|vi|)を、セレクタ124と加算器126に供給する。 When the control signal D106 is “1”, the selector 124 determines the value obtained from the value stored in the register 123, that is, the message D101 (message v i ) from all branches over one row of the check matrix H. (| v i |) 9-bit value that is accumulated D124 (Sigma] [phi of i = 1 through i = d c (| v i |)) is selected, as a value D125, and stores and outputs to the register 125 . The register 125 supplies the stored value D125 to the selector 124 and the adder 126 as a 9-bit value D126. When the control signal D106 is “0”, the selector 124 selects the value D126 supplied from the register 125, outputs it to the register 125, and stores it again. That is, until φ (| v i |) obtained from the message D101 (message v i ) from all branches over one row of the check matrix H is accumulated, the register 125 accumulates φ (| v i |) is supplied to the selector 124 and the adder 126.

一方、FIFOメモリ127は、レジスタ125から新たな値D126(i=1からi=dcまでのΣφ(|vi|))が出力されるまでの間、LUT121が出力した演算結果D123(φ(|vi|))を遅延し、5ビットの値D127として減算器126に供給する。減算器126は、レジスタ125から供給された値D126から、FIFOメモリ127から供給された値D127を減算し、その減算結果を、5ビットの減算値D128としてLUT128に供給する。即ち、減算器126は、検査行列Hの1行に亘る全ての枝からのメッセージD101(メッセージvi)から求められたφ(|vi|)の積算値から、求めたい枝からのメッセージD101(メッセージvi)から求められたφ(|vi|)を減算して、その減算値(i=1からi=dc−1までのΣφ(|vi|))を減算値D128としてLUT128に供給する。 On the other hand, FIFO memories 127, (from i = 1 i = Σφ to d c (| v i |) ) a new value D126 from the register 125 until it is output, the result calculation LUT121 has output D123 (phi (| v i |)) is delayed and supplied to the subtractor 126 as a 5-bit value D127. The subtractor 126 subtracts the value D127 supplied from the FIFO memory 127 from the value D126 supplied from the register 125, and supplies the subtraction result to the LUT 128 as a 5-bit subtraction value D128. That is, the subtractor 126 calculates the message D101 from the branch to be obtained from the integrated value of φ (| v i |) obtained from the message D101 (message v i ) from all the branches over one row of the check matrix H. Φ (| v i |) obtained from (message v i ) is subtracted, and the subtraction value (Σφ (| v i |) from i = 1 to i = d c −1) is used as the subtraction value D128. Supply to LUT128.

なお、減算器126は、レジスタ125から供給される9ビットの値D126から、FIFOメモリ127から供給される5ビットの値D127を減算するから、その減算結果は、最大で9ビットとなり得るのに対して、5ビットの減算値D128を出力する。このため、レジスタ125から供給される9ビットの値D126から、FIFOメモリ127から供給される5ビットの値D127を減算した減算結果が、5ビットで表せない場合、つまり、減算結果が、5ビットで表すことができる最大値(31(2進数では11111))を越える場合には、減算器126は、減算結果を、5ビットで表すことができる最大値にクリッピングし、5ビットの減算値D128を出力する。   Since the subtractor 126 subtracts the 5-bit value D127 supplied from the FIFO memory 127 from the 9-bit value D126 supplied from the register 125, the subtraction result can be 9 bits at maximum. In contrast, a 5-bit subtraction value D128 is output. Therefore, when the subtraction result obtained by subtracting the 5-bit value D127 supplied from the FIFO memory 127 from the 9-bit value D126 supplied from the register 125 cannot be expressed in 5 bits, that is, the subtraction result is 5 bits. The subtractor 126 clips the subtraction result to the maximum value that can be represented by 5 bits and exceeds the maximum value that can be represented by 31 (11111 in binary number). Is output.

LUT128は、減算値D128(i=1からi=dc−1までのΣφ(|vi|))に対して、式(7)におけるφ-1(Σφ(|vi|))の演算を行った5ビットの演算結果D129(φ-1(Σφ(|vi|)))を出力する。 The LUT 128 calculates φ −1 (Σφ (| v i |)) in Expression (7) with respect to the subtraction value D128 (Σφ (| v i |) from i = 1 to i = d c −1). A 5-bit calculation result D129 (φ −1 (Σφ (| v i |))) is output.

以上の処理と並行して、EXOR回路129は、レジスタ130に格納されている1ビットの値D131と符号ビットD121との排他的論理和を演算することにより、符号ビットどうしの乗算を行い、1ビットの乗算結果D130をレジスタ130に再格納する。なお、検査行列Hの1行に亘る全ての枝からのメッセージD101の符号ビットD121が乗算された場合、レジスタ130はリセットされる。   In parallel with the above processing, the EXOR circuit 129 multiplies the sign bits by calculating an exclusive OR of the 1-bit value D131 stored in the register 130 and the sign bit D121. The bit multiplication result D130 is stored again in the register 130. Note that when the sign bit D121 of the message D101 from all branches over one row of the check matrix H is multiplied, the register 130 is reset.

検査行列Hの1行に亘る全ての枝からのメッセージD101の符号ビットD121が乗算された乗算結果D130(i=1からdcまでのΠsign(vi))がレジスタ130に格納された場合、制御部105から供給される制御信号D106は、「0」から「1」に変化する。 If (Paisign from i = 1 to d c (v i)) multiplication result D130 to the sign bit D121 of the message D101 is multiplied from all of the branches across one line of the parity check matrix H is stored in the register 130, The control signal D106 supplied from the control unit 105 changes from “0” to “1”.

制御信号D106が「1」の場合、セレクタ131は、レジスタ130に格納されている値、即ち、検査行列Hの1行に亘る全ての枝からのメッセージD101の符号ビットD121が乗算された値D131(i=1からi=dcまでのΠsign(vi))を選択し、1ビットの値D132としてレジスタ132に出力して格納させる。レジスタ132は、格納している値D132を、1ビットの値D133としてセレクタ131とEXOR回路134に供給する。制御信号D106が「0」の場合、セレクタ131は、レジスタ132から供給された値D133を選択し、レジスタ132に出力して再格納させる。即ち、検査行列Hの1行に亘る全ての枝からのメッセージD101(メッセージvi)の符号ビットD121が乗算されるまで、レジスタ132は、前回格納した値を、セレクタ131とEXOR回路134に供給する。 When the control signal D106 is “1”, the selector 131 has a value D131 obtained by multiplying the value stored in the register 130, that is, the sign bit D121 of the message D101 from all branches of one row of the check matrix H. (i = 1 from up to i = d c Πsign (v i )) is selected, to store output as 1-bit value D132 to the register 132. The register 132 supplies the stored value D132 to the selector 131 and the EXOR circuit 134 as a 1-bit value D133. When the control signal D106 is “0”, the selector 131 selects the value D133 supplied from the register 132, outputs it to the register 132, and stores it again. In other words, the register 132 supplies the previously stored value to the selector 131 and the EXOR circuit 134 until the sign bits D121 of the message D101 (message v i ) from all branches over one row of the check matrix H are multiplied. To do.

一方、FIFOメモリ133は、レジスタ132から新たな値D133(i=1からi=dcまでのΠsign(vi))がEXOR回路134に供給されるまでの間、符号ビットD121を遅延し、1ビットの値D134としてEXOR回路134に供給する。EXOR回路134は、レジスタ132から供給された値D133と、FIFOメモリ133から供給された値D134との排他的論理和を演算することにより、値D133を、値D134で除算し、1ビットの除算結果を除算値D135として出力する。即ち、EXOR回路134は、検査行列Hの1行に亘る全ての枝からのメッセージD101の符号ビットD121(sign(|vi|))の乗算値を、求めたい枝からのメッセージD101の符号ビットD121(sign(|vi|))で除算して、その除算値(i=1からi=dc−1までのΠsign(|vi|))を除算値D135として出力する。 On the other hand, FIFO memories 133, between (from i = 1 i = Πsign to d c (v i)) a new value D133 from the register 132 until is supplied to the EXOR circuit 134 delays the sign bit D121, The 1-bit value D134 is supplied to the EXOR circuit 134. The EXOR circuit 134 calculates the exclusive OR of the value D133 supplied from the register 132 and the value D134 supplied from the FIFO memory 133, thereby dividing the value D133 by the value D134 and dividing by 1 bit. The result is output as the division value D135. That is, the EXOR circuit 134 uses the sign bit D121 (sign (| v i |)) of the message D101 from all the branches over one row of the check matrix H as the sign bit of the message D101 from the branch to be obtained. Dividing by D121 (sign (| v i |)), the divided value (Πsign (| v i |) from i = 1 to i = d c −1) is output as a divided value D135.

チェックノード計算器101では、LUT128から出力された5ビットの演算結果D129を下位5ビットとするとともに、EXOR回路134から出力された1ビットの除算値D135を最上位ビットとする合計6ビットがメッセージD102(メッセージuj)として出力される。 In the check node calculator 101, the 5-bit operation result D129 output from the LUT 128 is set to the lower 5 bits, and the total 6 bits including the 1-bit division value D135 output from the EXOR circuit 134 as the most significant bit is a message. D102 (message u j ) is output.

以上のように、チェックノード計算器101では、式(7)の演算が行われ、メッセージujが求められる。 As described above, the check node calculator 101 performs the calculation of Expression (7) to obtain the message u j .

なお、図7の検査行列Hの行の重みの最大は9であるため、即ち、チェックノードに供給されるメッセージの最大数は9であるため、チェックノード計算器101は、9個のメッセージ(φ(|vi|))を遅延させるFIFOメモリ127とFIFOメモリ133を有している。行の重みが9未満の行のメッセージを計算するときには、FIFOメモリ127とFIFOメモリ133における遅延量が、その行の重みの値に減らされる。 Note that since the maximum row weight of the check matrix H in FIG. 7 is 9, that is, the maximum number of messages supplied to the check node is 9, the check node calculator 101 has nine messages ( A FIFO memory 127 and a FIFO memory 133 for delaying φ (| v i |)) are provided. When calculating a message for a row with a row weight less than 9, the amount of delay in the FIFO memory 127 and the FIFO memory 133 is reduced to the value of the row weight.

図10は、図8のバリアブルノード計算器103の詳細構成例を示している。   FIG. 10 shows a detailed configuration example of the variable node calculator 103 of FIG.

なお、図10では、各メッセージが符号ビットを合わせて合計6ビット(bit)に量子化されているものとして、バリアブルノード計算器103を表している。また、図10では、図7の検査行列Hで表わされるLDPC符号のバリアブルノード演算が行われる。さらに、図10のバリアブルノード計算機103には、クロックckが供給され、クロックckは、必要なブロックに供給されるようになっている。そして、各ブロックは、クロックckに同期して処理を行う。   In FIG. 10, the variable node calculator 103 is represented on the assumption that each message is quantized to a total of 6 bits including the sign bits. In FIG. 10, the variable node calculation of the LDPC code represented by the check matrix H in FIG. 7 is performed. Further, the variable node computer 103 in FIG. 10 is supplied with a clock ck, and the clock ck is supplied to a necessary block. Each block performs processing in synchronization with the clock ck.

図10のバリアブルノード計算器103は、制御部105から供給される、例えば、1ビットの制御信号D107に基づき、枝用メモリ102から1つずつ読み込まれるメッセージD103と、受信用メモリ104から読み込まれる受信値D104を用いて、式(1)にしたがって演算を行う。   The variable node calculator 103 in FIG. 10 is supplied from the control unit 105, for example, based on a 1-bit control signal D107, and is read from the branch memory 102 one by one and the reception memory 104. Using received value D104, calculation is performed according to equation (1).

即ち、バリアブルノード計算器103では、検査行列Hの各行に対応するチェックノードからの6ビットのメッセージD103(メッセージuj)が1つずつ読み込まれ、そのメッセージD103が、加算器151とFIFOメモリ155に供給される。また、バリアブルノード計算器103では、受信用メモリ104から6ビットの受信値D104が1つずつ読み込まれ、加減算器156に供給される。さらに、バリアブルノード計算器103には、制御部105から制御信号D107が供給され、その制御信号D107は、セレクタ153に供給される。 That is, the variable node calculator 103 reads one 6-bit message D103 (message u j ) from the check node corresponding to each row of the check matrix H, and the message D103 is added to the adder 151 and the FIFO memory 155. To be supplied. In the variable node calculator 103, the 6-bit received value D 104 is read one by one from the reception memory 104 and supplied to the adder / subtracter 156. Further, the control signal D107 is supplied from the control unit 105 to the variable node calculator 103, and the control signal D107 is supplied to the selector 153.

加算器151は、メッセージD103(メッセージuj)とレジスタ152に格納されている9ビットの値D151とを加算することにより、メッセージD103を積算し、その結果得られる9ビットの積算値を、レジスタ152に再格納する。なお、検査行列Hの1列に亘る全ての枝からのメッセージD103が積算された場合、レジスタ152はリセットされる。 The adder 151 adds the message D103 (message u j ) and the 9-bit value D151 stored in the register 152 to accumulate the message D103, and the resulting 9-bit accumulated value is stored in the register. Store again in 152. When the messages D103 from all branches over one column of the check matrix H are accumulated, the register 152 is reset.

検査行列Hの1列に亘るメッセージD103が1つずつ読み込まれ、レジスタ152に1列分のメッセージD103が積算された値が格納された場合、制御部105から供給される制御信号D107は、「0」から「1」に変化する。例えば、列の重みが「5」である場合、制御信号D107は、1から4クロック目までは「0」となり、5クロック目では「1」となる。   When the message D103 over one column of the check matrix H is read one by one and the value obtained by integrating the message D103 for one column is stored in the register 152, the control signal D107 supplied from the control unit 105 is “ It changes from “0” to “1”. For example, when the column weight is “5”, the control signal D107 is “0” from the first to the fourth clock, and “1” at the fifth clock.

制御信号D107が「1」の場合、セレクタ153は、レジスタ152に格納されている値、即ち、検査行列Hの1列に亘る全ての枝からのメッセージD103(メッセージuj)が積算された9ビットの値D151(j=1からdVまでのΣuj)を選択し、レジスタ154に出力して格納させる。レジスタ154は、格納している値D151を、9ビットの値D152として、セレクタ153と加減算器156に供給する。制御信号D107が「0」の場合、セレクタ153は、レジスタ154から供給された値D152を選択し、レジスタ154に出力し再格納させる。即ち、検査行列Hの1列に亘る全ての枝からのメッセージD103(メッセージuj)が積算されるまで、レジスタ154は、前回積算された値を、セレクタ153と加減算器156に供給する。 When the control signal D107 is “1”, the selector 153 integrates the value stored in the register 152, that is, the message D103 (message u j ) from all branches over one column of the check matrix H. select (? uj j from j = 1 to d V) value D151 of bits to be stored and outputs to the register 154. The register 154 supplies the stored value D151 to the selector 153 and the adder / subtracter 156 as a 9-bit value D152. When the control signal D107 is “0”, the selector 153 selects the value D152 supplied from the register 154, outputs it to the register 154, and stores it again. That is, until the message D103 (message u j ) from all branches over one column of the check matrix H is accumulated, the register 154 supplies the previously accumulated value to the selector 153 and the adder / subtracter 156.

一方、FIFOメモリ155は、レジスタ154から新たな値D152(j=1からdVまでのΣuj)が出力されるまでの間、チェックノードからのメッセージD103を遅延し、6ビットの値D153として加減算器156に供給する。加減算器156は、レジスタ154から供給された値D152から、FIFOメモリ155から供給された値D153を減算する。即ち、加減算器156は、検査行列Hの1列に亘る全ての枝からのメッセージD103(メッセージuj)の積算値から、求めたい枝からのメッセージujを減算して、その減算値(j=1からdv−1までのΣuj)を求める。さらに、加減算器156には、その減算値(j=1からdv−1までのΣuj)に、受信用メモリ104から供給された受信値D104を加算して、その結果得られる6ビットの値をメッセージD105(メッセージvi)として出力する。 On the other hand, FIFO memories 155, between (from j = 1? Uj j to d V) a new value D152 from the register 154 until the output delays the message D103 from check nodes, as a 6-bit value D153 This is supplied to the adder / subtracter 156. The adder / subtracter 156 subtracts the value D153 supplied from the FIFO memory 155 from the value D152 supplied from the register 154. That is, the adder / subtracter 156 subtracts the message u j from the branch to be obtained from the integrated value of the message D103 (message u j ) from all branches over one column of the check matrix H, and the subtraction value (j Σu j ) from = 1 to d v −1. Further, the adder / subtracter 156 adds the reception value D104 supplied from the reception memory 104 to the subtraction value (Σu j from j = 1 to d v −1), and obtains a 6-bit obtained as a result. The value is output as message D105 (message v i ).

以上のように、バリアブルノード計算器103では、式(1)の演算が行われ、メッセージviが求められる。 As described above, the variable node calculator 103 performs the calculation of Expression (1) to obtain the message v i .

なお、図7の検査行列Hの列の重みの最大は5であるため、即ち、バリアブルノードに供給されるメッセージの最大数は5であるため、バリアブルノード計算器103は、5個のメッセージ(uj)を遅延させるFIFOメモリ155を有している。列の重みが5未満の列のメッセージを計算するときには、FIFOメモリ155における遅延量が、その列の重みの値に減らされる。 Since the maximum weight of the column of the check matrix H in FIG. 7 is 5, that is, the maximum number of messages supplied to the variable node is 5, the variable node calculator 103 has five messages ( a FIFO memory 155 for delaying u j ). When calculating a message for a column with a column weight less than 5, the amount of delay in the FIFO memory 155 is reduced to the value of the column weight.

また、加減算器156は、レジスタ154から供給される9ビットの値D152から、FIFOメモリ155から供給される6ビットの値D153を減算するとともに、受信用メモリ104から供給される6ビットの受信値D104を加算する演算を行うから、その演算結果は、6ビットのメッセージD105で表すことができる最小値未満となるか、または最大値を越えることがある。加減算器156は、演算結果が、6ビットのメッセージD105で表すことができる最小値未満である場合には、その最小値にクリッピングし、演算結果が、6ビットのメッセージD105で表すことができる最大値を越える場合には、その最大値にクリッピングする。   The adder / subtractor 156 subtracts the 6-bit value D153 supplied from the FIFO memory 155 from the 9-bit value D152 supplied from the register 154, and also receives the 6-bit received value supplied from the reception memory 104. Since the operation of adding D104 is performed, the operation result may be less than the minimum value that can be represented by the 6-bit message D105 or may exceed the maximum value. If the operation result is less than the minimum value that can be represented by the 6-bit message D105, the adder / subtracter 156 clips to the minimum value, and the operation result is the maximum that can be represented by the 6-bit message D105. If the value is exceeded, the maximum value is clipped.

図8の復号装置では、検査行列Hの重みにしたがって、制御部105から制御信号が与えられる。そして、図8の復号装置によれば、枝用メモリ100および102、並びにチェックノード計算器101およびバリアブルノード計算器103のFIFOメモリ127,133,155の容量さえ足りれば、制御信号のみを変えることで様々な検査行列HのLDPC符号を復号することができる。   In the decoding apparatus of FIG. 8, a control signal is given from the control unit 105 according to the weight of the check matrix H. According to the decoding apparatus of FIG. 8, only the control signal is changed as long as the capacity of the branch memories 100 and 102 and the FIFO memories 127, 133, and 155 of the check node calculator 101 and the variable node calculator 103 are sufficient. Thus, LDPC codes of various parity check matrices H can be decoded.

なお、図示しないが、図8の復号装置では、復号の最終段において、式(1)のバリアブルノード演算の代わりに、式(5)の演算が行われ、その演算結果が、最終的な復号結果として出力される。   Although not shown, in the decoding device of FIG. 8, in the final stage of decoding, the calculation of Expression (5) is performed instead of the variable node calculation of Expression (1), and the calculation result is the final decoding. Output as a result.

図8の復号装置を繰り返し用いて、LDPC符号を復号する場合には、チェックノード演算とバリアブルノード演算とが交互に行われる。即ち、図8の復号装置では、チェックノード計算器101によるチェックノード演算の結果を用いて、バリアブルノード計算器103によりバリアブルノード演算が行われ、バリアブルノード計算器103によるバリアブルノード演算の結果を用いて、チェックノード計算器101によりチェックノード演算が行われる。   When the LDPC code is decoded by repeatedly using the decoding apparatus of FIG. 8, the check node calculation and the variable node calculation are alternately performed. That is, in the decoding device of FIG. 8, the variable node calculation is performed by the variable node calculator 103 using the check node calculation result by the check node calculator 101, and the variable node calculation result by the variable node calculator 103 is used. Thus, the check node calculator 101 performs a check node calculation.

従って、323の枝を有する図7の検査行列Hを用いた1回の復号に、323×2=646クロック(clock)を必要とする。例えば、50回の繰り返し復号を行うためには、符号長である108個の符号からなる1フレーム分の符号語を、受信値として受信する間に、646×50=32300クロック動作することが必要であり、受信周波数の約300(≒32300/108)倍の高速動作が必要になる。受信周波数が数十MHzであるとすると、GHz以上の速度での動作を要求されることになる。   Therefore, one decoding using the check matrix H of FIG. 7 having 323 branches requires 323 × 2 = 646 clocks. For example, in order to perform 50 times of iterative decoding, it is necessary to operate 646 × 50 = 32300 clocks while receiving one frame of codewords consisting of 108 codes, which are code lengths, as received values. Therefore, a high-speed operation approximately 300 (≈32300 / 108) times the reception frequency is required. If the reception frequency is several tens of MHz, operation at a speed of GHz or higher is required.

また、図8の復号装置を、例えば、50台連接して、LDPC符号を復号する場合には、1フレーム目のバリアブルノード演算を行っている間に、2フレーム目のチェックノード演算を行い、3フレーム目のバリアブルノード演算を行う、というように、複数のバリアブルノード演算とチェックノード演算とを同時に行うことができる。この場合、108個の符号を受信する間に、323個の枝を計算すればよいので、復号装置は、受信周波数の約3(≒323/108)倍の周波数で動作すればよいことになり、十分に実現可能である。しかしながら、この場合、回路規模が、単純には、図8の復号装置の50倍になる。   In addition, when decoding the LDPC code by connecting, for example, 50 decoding apparatuses in FIG. 8, while performing the variable node calculation of the first frame, the check node calculation of the second frame is performed, A plurality of variable node operations and check node operations can be performed simultaneously, such as performing a variable node operation of the third frame. In this case, since it is only necessary to calculate 323 branches while 108 codes are received, the decoding apparatus only needs to operate at a frequency approximately 3 (≈323 / 108) times the reception frequency. Is fully feasible. However, in this case, the circuit scale is simply 50 times that of the decoding device of FIG.

そこで、図8の復号装置の他に、4つずつのメッセージの計算を同時に行う実装方法について、例えば、非特許文献3に述べられているが、この場合、メモリの異なるアドレスからの同時読み出し、もしくは同時書き込みを避けることが一般的には容易でなく、メモリアクセス制御が困難であるという問題がある。   Therefore, for example, Non-Patent Document 3 describes an implementation method for simultaneously calculating four messages in addition to the decoding device of FIG. 8. In this case, simultaneous reading from different addresses in the memory, Alternatively, it is generally not easy to avoid simultaneous writing, and there is a problem that memory access control is difficult.

この問題を解決するため、例えば、非特許文献4、“非特許文献5などに、ランダムな符号ではなく、部分的にパラレルな復号器の実装に親和性の高い符号および復号装置について報告されている。しかしながら、非特許文献4や5などに記載されている復号装置の実現方法は特定の符号のみに対応するものであり、1つの復号器で様々な符号長、符号化率の符号を復号することは困難である。   In order to solve this problem, for example, Non-Patent Document 4 and “Non-Patent Document 5” report a code and a decoding device that are highly compatible with the implementation of a partially parallel decoder rather than a random code. However, the decoding apparatus implementation methods described in Non-Patent Documents 4 and 5 correspond only to specific codes, and a single decoder decodes codes of various code lengths and coding rates. It is difficult to do.

また、P×Pの単位行列、その単位行列の1のうち1個以上が0になった行列(以下、適宜、準単位行列という)、単位行列または準単位行列をサイクリックシフト(cyclic shift)した行列(以下、適宜、シフト行列という)、単位行列、準単位行列、またはシフト行列のうちの2以上(複数)の和(以下、適宜、和行列という)、P×Pの0行列の組み合わせで表すことが可能な検査行列Hを有するLDPC符号、もしくは行や列の置換により、これらの行列の組み合わせで表すことが可能な検査行列Hを有するLDPC符号であれば、符号長、符号化率が異なる符号であっても復号可能な復号装置が考案されている。   In addition, a P × P unit matrix, a matrix in which one or more of the unit matrices become 0 (hereinafter referred to as a quasi-unit matrix as appropriate), a unit matrix or a quasi-unit matrix is cyclic shifted. A combination of two or more (a plurality of) of unit matrices, quasi-unit matrices, or shift matrices (hereinafter referred to as a sum matrix), and a P × P 0 matrix, respectively. If the LDPC code has a parity check matrix H that can be represented by or an LDPC code that has a parity check matrix H that can be represented by a combination of these matrices by row or column replacement, the code length, coding rate A decoding apparatus has been devised that can decode even different codes.

この復号装置では、チェックノード演算を行うチェックノード計算器とバリアブルノード演算を行うバリアブルノード計算器がP個ずつ設けられ、チェックノード演算とバリアブルノード演算がP個ずつ並列に行われることにより、復号が行われる。   In this decoding apparatus, P check node calculators that perform check node operations and P variable node calculators that perform variable node operations are provided, and decoding is performed by performing P check node operations and P variable node operations in parallel. Is done.

さらに、サムプロダクトアルゴリズムを近似して実装する方法なども提案されているが、この方法では、性能の劣化を招いてしまう。   In addition, a method of approximating and implementing the sum product algorithm has been proposed, but this method causes performance degradation.

ところで、復号装置を構成する受信用メモリが、受信値u0iを格納する1つのメモリから構成される場合、受信用メモリは、読み出しと書き込みを同時に行うことができないため、受信値u0iの記憶と、その受信値u0iを用いた復号のいずれか一方を行っている間、他方を行うことはできない。従って、受信用メモリの使用効率が悪く、スループットが低下してしまう。 By the way, when the reception memory constituting the decoding device is composed of one memory for storing the reception value u 0i , the reception memory cannot read and write at the same time, and therefore stores the reception value u 0i . While one of decoding using the received value u 0i is being performed, the other cannot be performed. Therefore, the use efficiency of the reception memory is poor and the throughput is reduced.

そこで、受信用メモリに、受信値u0iを格納する複数のメモリを設け、読み出しと書き込みを同時に行うようにすることが考えられている。 Therefore, it is considered to provide a plurality of memories for storing the received value u 0i in the receiving memory so that reading and writing are performed simultaneously.

図11は、2個のメモリが設けられた受信用メモリ200の構成の一例を示している。   FIG. 11 shows an example of the configuration of the reception memory 200 provided with two memories.

図11の受信用メモリ200は、スイッチ211および214、並びに受信値格納用メモリ212および213から構成される。   The reception memory 200 shown in FIG. 11 includes switches 211 and 214 and reception value storage memories 212 and 213.

スイッチ211には、通信路を通して受信されたLDPC符号から計算された、符号ビットの0らしさを表す受信LLRである受信値D211が供給されるとともに、復号装置を構成する制御部から、受信値格納用メモリ212および213のいずれか一方の選択を表す制御信号D2101が供給される。スイッチ211は、制御信号D2101に基づいて、受信値D211を、受信値D212として受信値格納用メモリ212に、または受信値D213として受信値格納用メモリ213に供給する。 The switch 211 is supplied with a reception value D211 that is a reception LLR representing the likelihood of 0 of the code bit calculated from the LDPC code received through the communication path, and stores the reception value from the control unit constituting the decoding device. A control signal D210 1 representing selection of either one of the memories 212 and 213 is supplied. Switch 211 based on the control signal D210 1, and supplies the received value D211, the received-value storage memory 212 as a received value D 212, or received-value storage memory 213 as a received value D213.

受信値格納用メモリ212は、スイッチ211からの受信値D212を格納したり、既に格納している受信値D212を、受信値D214としてスイッチ214に供給する。受信値格納用メモリ213は、受信値格納用メモリ212と同様に、スイッチ211からの受信値D213を格納したり、既に格納している受信値D215をスイッチ214に供給する。   The reception value storage memory 212 stores the reception value D212 from the switch 211 or supplies the reception value D212 already stored to the switch 214 as the reception value D214. Similarly to the reception value storage memory 212, the reception value storage memory 213 stores the reception value D213 from the switch 211 or supplies the reception value D215 already stored to the switch 214.

なお、受信値格納用メモリ212および213は、例えば、シングルポートRAM(Random Access Memory)で構成される。また、受信値格納用メモリ212および213のそれぞれに格納されるデータ量、即ち、受信値格納用メモリ212および213のそれぞれに必要とされる記憶容量は、LDPC符号の符号長と、受信値の量子化ビット数との乗算値である。   The reception value storage memories 212 and 213 are configured by, for example, a single port RAM (Random Access Memory). Further, the amount of data stored in each of the received value storage memories 212 and 213, that is, the storage capacity required for each of the received value storage memories 212 and 213, is the code length of the LDPC code, the received value It is a multiplication value with the number of quantization bits.

スイッチ214には、復号装置を構成する制御部から、受信値格納用メモリ212と213の一方の選択を表す制御信号D2102が供給され、スイッチ214は、その制御信号D2102に基づいて、受信値格納用メモリ212から読み出された受信値D214または受信値格納用メモリ213から読み出された受信値D215を、受信値D216としてバリアブルノード計算器に出力する。 The switch 214, the control unit constituting the decoding apparatus, the control signal D210 2 representing selection of one of the received-value storage memory 212 and 213 is supplied, the switch 214 based on the control signal D210 2, received The reception value D214 read from the value storage memory 212 or the reception value D215 read from the reception value storage memory 213 is output to the variable node calculator as the reception value D216.

なお、制御信号D2101は、受信値格納用メモリ212および213の一方の選択を表し、制御信号D2102は、他方の選択を表す。従って、受信値格納用メモリ212および213の一方で書き込みが行われている間、他方で読出しが行われる。 The control signal D210 1 represents one selection of the received value storage memories 212 and 213, and the control signal D210 2 represents the other selection. Therefore, while writing is being performed on one of the received value storage memories 212 and 213, reading is performed on the other.

以上のように、受信用メモリ200では、2つの受信値格納用メモリ212および213が設けられているので、一方で入力される受信値D211を格納している間に、他方で既に格納されている受信値D216を出力することができる。その結果、受信用メモリ200では、連続して入力される受信値D211を、受信値D216として連続出力することができる。
As described above, the reception memory 200 is provided with the two reception value storage memories 212 and 213, so that while the reception value D211 input on one side is being stored, the reception value D211 is already stored on the other side. The received value D216 can be output. As a result, the reception memory 200 can continuously output the reception value D211 that is continuously input as the reception value D216.

R. G. Gallager, "Low Density Parity Check Codes", Cambridge, Massachusetts: M. I. T. Press, 1963R. G. Gallager, "Low Density Parity Check Codes", Cambridge, Massachusetts: M. I. T. Press, 1963 D. J. C. MacKay, "Good error correcting codes based on very sparse matrices", Submitted to IEEE Trans. Inf. Theory, IT-45, pp. 399-431, 1999」や、「M. G. Luby, M. Mitzenmacher, M. A. Shokrollahi and D. A. Spielman, "Analysis of low density codes and improved designs using irregular graphs", in Proceedings of ACM Symposium on Theory of Computing, pp. 249-258, 1998DJC MacKay, "Good error correcting codes based on very sparse matrices", Submitted to IEEE Trans. Inf. Theory, IT-45, pp. 399-431, 1999, and MG Luby, M. Mitzenmacher, MA Shokrollahi and DA Spielman, "Analysis of low density codes and improved designs using irregular graphs", in Proceedings of ACM Symposium on Theory of Computing, pp. 249-258, 1998 E. Yeo, P. Pakzad, B. Nikolic and V. Anantharam, "VLSI Architectures for iterative Decoders in Magnetic Recording Channels", IEEE Transactions on Magnetics, Vol. 37, No. 2, March 2001E. Yeo, P. Pakzad, B. Nikolic and V. Anantharam, "VLSI Architectures for iterative Decoders in Magnetic Recording Channels", IEEE Transactions on Magnetics, Vol. 37, No. 2, March 2001 T.Zhang,K.K.Parhi,”Joint(3,k)-regular LDPC Code and decoder/encoder design,”IEEE Transactions on Signal Processing,Vol.52,No.4,pp.1065-1079,April 2004T. Zhang, K. K. Parhi, “Joint (3, k) -regular LDPC Code and decoder / encoder design,” IEEE Transactions on Signal Processing, Vol. 52, No. 4, pp. 1065-1079, April 2004 M.M.Mansour,N.R.Shanbhag,”A novel design methodology for high-performance programmable decoder cores for AA-LDPC codes,”Proceedings of IEEE Workshop on Signal Processing Systems 2003(SIPS 2003),pp.29-34,Aug.2003M.M.Mansour, N.R.Shanbhag, “A novel design methodology for high-performance programmable decoder cores for AA-LDPC codes,” Proceedings of IEEE Workshop on Signal Processing Systems 2003 (SIPS 2003), pp. 29-34, Aug. 2003

上述したチェックノード演算とバリアブルノード演算をP個ずつ並列に行う復号装置では、P個のバリアブルノード計算器のそれぞれが、受信用メモリ200に記憶されている受信値u0iをそれぞれ用いて同時にバリアブルノード演算を行うので、受信用メモリ200からP個の受信値u0iを同時に読み出す必要がある。従って、受信値格納用メモリ212および213のそれぞれに必要なビット幅は、Pビットであり、Pが大きい場合、受信値格納用メモリ212および213に必要なビット幅は大きくなる。 In the decoding apparatus that performs P check node operations and P variable node operations in parallel, each of the P variable node calculators uses the received value u 0i stored in the reception memory 200 and simultaneously performs variable processing. Since node calculation is performed, it is necessary to simultaneously read P received values u 0i from the reception memory 200. Therefore, the bit width required for each of the reception value storage memories 212 and 213 is P bits. When P is large, the bit width required for the reception value storage memories 212 and 213 is large.

例えば、DVB-S2規格に準拠した、符号長が64800であるLDPC符号を復号する場合、LDPC符号の量子化ビット数が5ビットであり、Pが360であるとき、受信値格納用メモリ212および213に必要なビット幅は、1800(=360×5)ビットとなり、ワード数は180(=64800/360)ワードとなる。   For example, when decoding an LDPC code based on the DVB-S2 standard and having a code length of 64800, when the number of quantization bits of the LDPC code is 5 bits and P is 360, the received value storage memory 212 and The bit width required for 213 is 1800 (= 360 × 5) bits, and the number of words is 180 (= 64800/360) words.

そして、受信値格納用メモリ212および213を構成するRAM(Random Access Memory)マクロなどのビット幅は、数百ビット程度であるため、大きいビット幅を確保するためには、受信値格納用メモリ212および213を構成するRAMマクロの数が多くなり、受信用メモリ200の回路規模が増大する。   Since the bit width of a RAM (Random Access Memory) macro or the like constituting the received value storage memories 212 and 213 is about several hundred bits, in order to secure a large bit width, the received value storage memory 212 is used. And the number of RAM macros constituting 213 increases, and the circuit scale of the reception memory 200 increases.

本発明は、このような状況に鑑みてなされたものであり、LDPC符号を復号する場合において、回路規模を削減することができるようにするものである。   The present invention has been made in view of such a situation, and makes it possible to reduce the circuit scale when decoding an LDPC code.

本発明の第1の側面の復号装置は、LDPC(Low Density Parity Check)符号を復号する復号装置であって、間欠的に入力される前記LDPC符号の受信値を一時的に記憶する第1の記憶手段と、前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLDPC符号の受信値を一時的に記憶し、記憶している前記受信値を連続的に読み出す第の記憶手段と、前記第の記憶手段により連続的に読み出される受信値を記憶し、記憶している前記受信値を所定の単位ごとに読み出す第の記憶手段と、前記第の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号する復号手段とを備え、前記第の記憶手段のビット幅は、前記第の記憶手段のビット幅より小さい。 A decoding apparatus according to a first aspect of the present invention is a decoding apparatus that decodes an LDPC (Low Density Parity Check) code, and that temporarily stores a reception value of the LDPC code that is intermittently input. A storage means and a reception value continuously read from the first storage means or a reception value of the LDPC code input intermittently are temporarily stored, and the stored reception value is continuously stored. A second storage means for reading out the received data, a third storage means for storing the received value continuously read out by the second storage means, and reading out the stored received value for each predetermined unit; And a decoding means for decoding the received value read out for each predetermined unit by the storage means for each predetermined unit, and the bit width of the second storage means is the same as that of the third storage means. Less than bit width.

本発明の第1の側面の復号装置においては、前記第の記憶手段から前記受信値が読み出され、その受信値が前記第の記憶手段に記憶される転送時間は、前記LDPC符号の符号語単位の受信値内の値のない時間である無効時間以内であるようにすることができる。 In the decoding device according to the first aspect of the present invention, the transfer time for reading the received value from the second storage means and storing the received value in the third storage means is the LDPC code. It can be made within the invalid time which is a time without a value in the received value of the codeword unit.

本発明の第1の側面の復号装置においては、前記第の記憶手段は、前記受信値を前記符号語単位で読み出すことができる。 In the decoding device according to the first aspect of the present invention, the second storage means can read the received value in units of codewords.

本発明の第1の側面の復号装置は、前記第1の記憶手段は、前記間欠的に入力されるLDPC符号の受信値を前記転送時間に一時的に記憶することができる。 In the decoding device according to the first aspect of the present invention, the first storage means can temporarily store the reception value of the intermittently input LDPC code at the transfer time.

本発明の第1の側面の復号装置においては、前記第の記憶手段は、前記受信値を前記符号語単位で読み出す前に、前回の読み出し対象である受信値の復号の終了を要求する復号終了要求信号を前記復号手段に供給し、その後、所定の時間経過後に、前記受信値を前記符号語単位で読み出し、前記復号手段は、前記復号終了要求信号に応じて、前記前回の読み出し対象である受信値の復号を終了し、前記所定の時間と前記転送時間の和は、前記無効時間以内であるようにすることができる。 In the decoding device according to the first aspect of the present invention, the second storage means performs a decoding requesting the end of decoding of a reception value that is a previous read target before reading the reception value in units of codewords. An end request signal is supplied to the decoding unit, and then, after a predetermined time has elapsed, the received value is read out in units of codewords, and the decoding unit is configured to read the previous read target according to the decoding end request signal. The decoding of a certain received value is terminated, and the sum of the predetermined time and the transfer time can be within the invalid time.

本発明の第1の側面の復号装置は、前記第1の記憶手段は、前記間欠的に入力されるLDPC符号の受信値を、前記転送時間と前記所定の時間に一時的に記憶することができる。 In the decoding device according to the first aspect of the present invention, the first storage means may temporarily store the received value of the LDPC code input intermittently at the transfer time and the predetermined time. it can.

本発明の第1の側面の復号方法は、間欠的に入力されるLDPC符号の受信値を一時的に記憶する第1の記憶手段と、前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLDPC符号の受信値を一時的に記憶する第の記憶手段と、前記第の記憶手段により連続的に読み出される受信値を記憶する第の記憶手段と、前記第の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号する復号手段とを備え、前記LDPC符号を復号する復号装置の復号方法であって、前記第1の記憶手段が、前記間欠的に入力されるLDPC符号の受信値を一時的に記憶し、
前記第の記憶手段よりビット幅が小さい前記第の記憶手段が、前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLDPC符号の受信値を一時的に記憶し、前記第の記憶手段が、記憶している前記受信値を連続的に読み出し、前記第の記憶手段が、前記第の記憶手段により連続的に読み出される受信値を記憶し、前記第の記憶手段が、記憶している前記受信値を前記所定の単位ごとに読み出し、前記復号手段が、前記第の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号するステップを含む。
The decoding method according to the first aspect of the present invention includes a first storage means for temporarily storing received values of LDPC codes that are input intermittently, and a continuous reading from the first storage means. Second storage means for temporarily storing the received value or the received value of the LDPC code input intermittently, and third storage means for storing the received value continuously read out by the second storage means And decoding means for decoding the LDPC code, comprising: decoding means for decoding the received value read by the third storage means for each predetermined unit for each predetermined unit; The first storage means temporarily stores the intermittently received LDPC code received value;
The second storage means having a bit width smaller than that of the third storage means temporarily receives the reception value read continuously from the first storage means or the reception value of the LDPC code input intermittently. And the second storage means continuously reads the stored reception value, and the third storage means stores the reception value continuously read by the second storage means. The third storage means reads the stored reception value for each predetermined unit, and the decoding means reads the reception value read for each predetermined unit by the third storage means. And decoding for each of the predetermined units.

本発明の第2の側面の復号装置は、LDPC(Low Density Parity Check)符号を復号する復号装置であって、間欠的に入力される前記LDPC符号の受信値を一時的に記憶する第1の記憶手段と、前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLDPC符号の受信値を一時的に記憶し、記憶している前記受信値を連続的に読み出す第2の記憶手段と、前記第2の記憶手段により連続的に読み出される受信値を記憶し、記憶している前記受信値を所定の単位ごとに読み出す第3の記憶手段と、前記第3の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号する復号手段とを備え、前記第2の記憶手段と前記第3の記憶手段は、直列に接続され、前記第2の記憶手段のビット幅は、前記第3の記憶手段のビット幅より小さいA decoding apparatus according to a second aspect of the present invention is a decoding apparatus that decodes an LDPC (Low Density Parity Check) code, and that temporarily stores a reception value of the LDPC code that is input intermittently. A storage means and a reception value continuously read from the first storage means or a reception value of the LDPC code input intermittently are temporarily stored, and the stored reception value is continuously stored. A second storage means for reading out the received data, a third storage means for storing the received value continuously read out by the second storage means, and reading out the stored received value for each predetermined unit; And a decoding means for decoding the received value read out for each predetermined unit by the storage means, and the second storage means and the third storage means are connected in series. is the bit width of the second storage means, said third storage means Bit smaller than the width.

本発明の第1の側面においては、第1の記憶手段が、間欠的に入力されるLDPC符号の受信値を一時的に記憶し、の記憶手段よりビット幅が小さい第の記憶手段が、第1の記憶手段から連続的に読み出された受信値または間欠的に入力されるLDPC符号の受信値を一時的に記憶し、第の記憶手段が、記憶している受信値を連続的に読み出し、第の記憶手段が、第の記憶手段により連続的に読み出される受信値を記憶し、第の記憶手段が、記憶している受信値を所定の単位ごとに読み出し、復号手段が、第の記憶手段により所定の単位ごとに読み出された受信値を、所定の単位ごとに復号する。 In the first aspect of the present invention, the first storage means temporarily stores the received value of the LDPC code input intermittently, and the second storage means has a bit width smaller than that of the third storage means. However, the reception value continuously read from the first storage means or the reception value of the LDPC code input intermittently is temporarily stored, and the second storage means stores the reception value stored. continuously read, the third memory means stores the received values to be read successively by the second storage means, third storage means, reading the received value stored for each predetermined unit, Decoding means decodes the received value read for each predetermined unit by the third storage means for each predetermined unit.

本発明の第2の側面においては、間欠的に入力されるLDPC符号の受信値を一時的に記憶する第1の記憶手段が設けられ、第1の記憶手段から連続的に読み出された受信値または間欠的に入力されるLDPC符号の受信値を一時的に記憶し、記憶している受信値を連続的に読み出す第2の記憶手段と、第2の記憶手段により連続的に読み出される受信値を記憶し、記憶している受信値を所定の単位ごとに読み出す第3の記憶手段とが、直列に接続され、第3の記憶手段により所定の単位ごとに読み出された受信値を、所定の単位ごとに復号する復号手段が設けられる。なお、第2の記憶手段のビット幅は、第3の記憶手段のビット幅より小さいIn the second aspect of the present invention, there is provided first storage means for temporarily storing received values of LDPC codes inputted intermittently, and reception continuously read out from the first storage means. Value or intermittently inputted LDPC code received value, second storage means for continuously reading the stored received value, and reception continuously read by the second storage means A third storage means for storing a value and reading the stored reception value for each predetermined unit, connected in series, and the reception value read for each predetermined unit by the third storage means, Decoding means for decoding for each predetermined unit is provided. The bit width of the second storage means is smaller than the bit width of the third storage means .

以上のように、本発明の第1の側面および第2の側面によれば、LDPC符号を復号する場合において、回路規模を削減することができる。   As described above, according to the first and second aspects of the present invention, it is possible to reduce the circuit scale when decoding an LDPC code.

以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。   Embodiments of the present invention will be described below. Correspondences between constituent elements described in the claims and specific examples in the embodiments of the present invention are exemplified as follows. This description is to confirm that specific examples supporting the invention described in the claims are described in the embodiments of the invention. Therefore, even if there are specific examples that are described in the embodiment of the invention but are not described here as corresponding to the configuration requirements, the specific examples are not included in the configuration. It does not mean that it does not correspond to a requirement. On the contrary, even if a specific example is described here as corresponding to a configuration requirement, this means that the specific example does not correspond to a configuration requirement other than the configuration requirement. not.

さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。   Further, this description does not mean that all the inventions corresponding to the specific examples described in the embodiments of the invention are described in the claims. In other words, this description is an invention corresponding to the specific example described in the embodiment of the invention, and the existence of an invention not described in the claims of this application, that is, in the future, a divisional application will be made. Nor does it deny the existence of an invention added by amendment.

本発明の第1の側面の復号装置は、
LDPC(Low Density Parity Check)符号を復号する復号装置(例えば、図12の復号装置
400)であって、
間欠的に入力される前記LDPC符号の受信値を一時的に記憶する第1の記憶手段(例えば、図18のプリバッファ511)と、
前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLDPC符号の受信値を一時的に記憶し、記憶している前記受信値を連続的に読み出す第の記憶手段(例えば、図18の入力バッファ513)と、
前記第の記憶手段により連続的に読み出される受信値を記憶し、記憶している前記受信値を所定の単位ごとに読み出す第の記憶手段(例えば、図18の受信値格納用メモリ514)と、
前記第の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号する復号手段(例えば、図12の計算部412,415)と
を備え、
前記第の記憶手段のビット幅は、前記第の記憶手段のビット幅より小さい。
The decoding device according to the first aspect of the present invention provides:
A decoding device (for example, the decoding device 400 in FIG. 12) that decodes an LDPC (Low Density Parity Check) code,
First storage means (for example, pre-buffer 511 in FIG. 18) for temporarily storing the received value of the LDPC code input intermittently;
Temporarily storing the received value of the first continuously read received value or the intermittent LDPC code input from the storage means, second reading the received value stored continuously Storage means (for example, the input buffer 513 in FIG. 18);
Storing the received values are continuously read out by said second storage means, third storage means for reading the received value stored in each predetermined unit (e.g., received-value storage memory 514 in FIG. 18) When,
Decoding means (for example, the calculation units 412 and 415 in FIG. 12) that decodes the received value read by the third storage means for each predetermined unit for each predetermined unit;
The bit width of the second storage means is smaller than the bit width of the third storage means.

本発明の第1の側面の復号方法は、
間欠的に入力されるLDPC符号の受信値を一時的に記憶する第1の記憶手段と、前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLDPC符号の受信値を一時的に記憶する第の記憶手段(例えば、図18の入力バッファ513)と、前記第の記憶手段により連続的に読み出される受信値を記憶する第の記憶手段(例えば、図18の受信値格納用メモリ514)と、前記第の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号する復号手段(例えば、図12の計算部412,415)とを備え、前記LDPC符号を復号する復号装置(例えば、図12の復号装置400)の復号方法であって、
前記第1の記憶手段が、前記間欠的に入力されるLDPC符号の受信値を一時的に記憶し、
前記第の記憶手段よりビット幅が小さい前記第の記憶手段が、前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLDPC符号の受信値を一時的に記憶し(例えば、図20のステップS25)、
前記第の記憶手段が、記憶している前記受信値を連続的に読み出し(例えば、図20のステップS31)、
前記第の記憶手段が、前記第の記憶手段により連続的に読み出される受信値を記憶し(例えば、図20のステップS32)、
前記第の記憶手段が、記憶している前記受信値を前記所定の単位ごとに読み出し(例えば、図20のステップS37)、
前記復号手段が、前記第の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号する(例えば、図21のステップS51)
ステップを含む。
The decoding method according to the first aspect of the present invention includes:
First storage means for temporarily storing received values of LDPC codes input intermittently; received values read continuously from the first storage means; or LDPC codes input intermittently Second storage means (for example, the input buffer 513 in FIG. 18) for temporarily storing the received value and third storage means (for example, for storing the reception value continuously read by the second storage means) , The received value storage memory 514) of FIG. 18 and a decoding means for decoding the received value read for each predetermined unit by the third storage means (for example, the calculation of FIG. 12). A decoding device (for example, the decoding device 400 of FIG. 12) for decoding the LDPC code,
The first storage means temporarily stores a reception value of the LDPC code input intermittently;
The second storage means having a bit width smaller than that of the third storage means temporarily receives the reception value read continuously from the first storage means or the reception value of the LDPC code input intermittently. (For example, step S25 in FIG. 20)
The second storage means continuously reads out the received value stored (for example, step S31 in FIG. 20),
The third storage means stores the received value continuously read out by the second storage means (for example, step S32 in FIG. 20),
The third storage means reads the stored reception value for each predetermined unit (for example, step S37 in FIG. 20),
The decoding means decodes the received value read for each predetermined unit by the third storage means for each predetermined unit (for example, step S51 in FIG. 21).
Includes steps.

本発明の第2の側面の復号装置は、
LDPC(Low Density Parity Check)符号を復号する復号装置(例えば、図12の復号装置400)であって、
間欠的に入力される前記LDPC符号の受信値を一時的に記憶する第1の記憶手段と、
前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLD
PC符号の受信値を一時的に記憶し、記憶している前記受信値を連続的に読み出す第2の記憶手段(例えば、図18の入力バッファ513)と、
前記第2の記憶手段により連続的に読み出される受信値を記憶し、記憶している前記受信値を所定の単位ごとに読み出す第3の記憶手段(例えば、図18の受信値格納用メモリ514)と、
前記第3の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号する復号手段(例えば、図12の計算部412,415)と
を備え、
前記第2の記憶手段と前記第3の記憶手段は、直列に接続され
前記第2の記憶手段のビット幅は、前記第3の記憶手段のビット幅より小さい
The decoding device according to the second aspect of the present invention provides:
A decoding device (for example, the decoding device 400 in FIG. 12) that decodes an LDPC (Low Density Parity Check) code,
First storage means for temporarily storing the received value of the LDPC code input intermittently;
Received value continuously read from the first storage means or LD input intermittently
Second storage means (for example, the input buffer 513 in FIG. 18) for temporarily storing the received value of the PC code and continuously reading the stored received value;
The third storage means for storing the reception value continuously read out by the second storage means and reading out the stored reception value for each predetermined unit (for example, the reception value storage memory 514 in FIG. 18). When,
Decoding means (for example, the calculation units 412 and 415 in FIG. 12) that decodes the received value read by the third storage means for each predetermined unit for each predetermined unit;
The second storage means and the third storage means are connected in series ,
The bit width of the second storage means is smaller than the bit width of the third storage means .

以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。   Hereinafter, specific embodiments to which the present invention is applied will be described in detail with reference to the drawings.

図12は、本発明を適用した復号装置の第1の実施の形態の構成例を示している。   FIG. 12 shows a configuration example of the first embodiment of a decoding device to which the present invention is applied.

なお、ここでは、図13に示す、6×6の単位行列、準単位行列、シフト行列、和行列、6×6の0行列の組み合わせで表すことが可能な検査行列Hを有するLDPC符号、もしくは行や列の置換により、これらの行列の組み合わせで表すことが可能な検査行列Hを有するLDPC符号を復号することとする。   Note that, here, an LDPC code having a parity check matrix H that can be represented by a combination of a 6 × 6 unit matrix, a quasi-unit matrix, a shift matrix, a sum matrix, and a 6 × 6 zero matrix shown in FIG. It is assumed that an LDPC code having a parity check matrix H that can be represented by a combination of these matrices is decoded by row or column replacement.

図13の検査行列Hは、図7に示した検査行列Hを、6×6の行列の単位に間隔を空けて表したものである。また、図13の検査行列Hを構成する6×6の単位行列、準単位行列、シフト行列、和行列、0行列を、以下、適宜、構成行列という。   The parity check matrix H in FIG. 13 represents the parity check matrix H shown in FIG. 7 with an interval in units of 6 × 6 matrices. In addition, the 6 × 6 unit matrix, the quasi-unit matrix, the shift matrix, the sum matrix, and the 0 matrix constituting the parity check matrix H in FIG.

図12の復号装置400は、復号途中結果格納用メモリ410、サイクリックシフト回路411、6つの計算器4121乃至計算器4126からなる計算部412、復号途中結果格納用メモリ413、サイクリックシフト回路414、6つの計算器4151乃至計算器4156からなる計算部415、スイッチ416、受信用メモリ417、および制御部418から構成され、LDPC符号を6つずつ復号する。 12 includes a decoding intermediate result storage memory 410, a cyclic shift circuit 411, a calculation unit 412 including six calculators 412 1 to 412 6 , a decoding intermediate result storage memory 413, a cyclic shift. The circuit 414 includes a calculator 415 including six calculators 415 1 to 415 6 , a switch 416, a reception memory 417, and a controller 418, and decodes LDPC codes six by six.

ここで、計算器412k(k=1,2,・・・,6)で行われる演算と、計算器415kで行われる演算について、式を用いて説明する。 Here, the calculation performed by the calculator 412 k (k = 1, 2,..., 6) and the calculation performed by the calculator 415 k will be described using equations.

具体的には、計算部412は、上述した式(7)と、以下に表す式(8)にしたがう第1の演算を行い、その第1の演算の結果である復号途中結果ujを復号途中結果格納用メモリ410に供給して格納させる。計算部415は、上述した式(5)にしたがう第2の演算を行い、その第2の演算の結果である復号途中結果vを復号途中結果格納用メモリ410に供給して格納させる。 Specifically, the calculation unit 412 performs the first calculation according to the above-described equation (7) and the following equation (8), and decodes the decoding result u j that is the result of the first calculation. The result is supplied to and stored in the intermediate result storage memory 410. The calculation unit 415 performs the second calculation according to the above-described equation (5), and supplies the decoding intermediate result v, which is the result of the second calculation, to the decoding intermediate result storage memory 410 for storage.

Figure 0004822071
・・・(8)
Figure 0004822071
... (8)

なお、式(8)のudvは、検査行列Hのi列のメッセージを求めようとする枝からのチェックノード演算の途中結果(ここでは、チェックノード演算結果そのもの)を表している。即ち、udvは、求めたい枝に対応する復号途中結果である。 Note that u dv in Expression (8) represents an intermediate result (in this case, the check node calculation result itself) of the check node calculation from the branch for which the i-column message of the check matrix H is to be obtained. That is, u dv is a decoding intermediate result corresponding to the branch to be obtained.

即ち、上述した式(5)にしたがう第2の演算の結果得られる復号途中結果vは、受信値u0iと検査行列Hのi列の各行の1に対応するすべての枝からのチェックノード演算の復号途中結果ujとを加算したものであるので、上述した式(7)に用いられる値viは、式(5)にしたがう第2の演算の結果得られる復号途中結果vから、検査行列Hのi列の、各行の1に対応する枝からのチェックノード演算の復号途中結果ujのうち、メッセージを求めようとする枝からのチェックノード演算の復号途中結果udvを引いた値となる。つまり、式(7)の演算に用いられる値viを求める式(1)の演算は、上述した式(5)と式(8)を組み合わせた演算である。 That is, the decoding intermediate result v obtained as a result of the second calculation according to the above-described equation (5) is the check node calculation from all branches corresponding to 1 in each row of the i column of the received value u 0i and the check matrix H. because of the decoding intermediate result is obtained by adding the u j, the values v i used in equation (7) described above, from the equation (5) in accordance of the second operation result obtained decoding intermediate results v, test A value obtained by subtracting the decoding intermediate result u dv of the check node operation from the branch for which a message is to be obtained from the decoding intermediate result u j of the check node operation from the branch corresponding to 1 in each row of the i column of the matrix H. It becomes. That is, the calculation of the expression (1) for obtaining the value v i used for the calculation of the expression (7) is a combination of the above expressions (5) and (8).

従って、復号装置400では、計算部412による式(7)および式(8)にしたがう第1の演算と、計算部415による式(5)にしたがう第2の演算とが交互に行われ、計算部415が、最後の第2の演算の結果を復号結果として出力することにより、LDPC符号の繰り返し復号を行うことができる。   Accordingly, in the decoding device 400, the first calculation according to the equations (7) and (8) by the calculation unit 412 and the second calculation according to the equation (5) by the calculation unit 415 are alternately performed, and the calculation is performed. The unit 415 outputs the result of the last second operation as a decoding result, so that it is possible to perform LDPC code iterative decoding.

なお、ここでは、式(7)と式(8)にしたがう第1の演算結果を、復号途中結果ujと記載するが、この復号途中結果ujは、式(7)のチェックノード演算結果ujに等しい。 Here, the first calculation result according to Expression (7) and Expression (8) is described as a decoding intermediate result u j, and this decoding intermediate result u j is the check node calculation result of Expression (7). It is equal to u j .

また、第2の演算により求められる式(5)のvは、式(1)のバリアブルノード演算結果viに対して、メッセージを求めようとする枝からのチェックノード演算結果ujを加算したものであるから、検査行列Hの1列(1つのバリアブルノード)に対して、1つだけ求められる。 Further, v in the expression (5) obtained by the second operation is obtained by adding the check node operation result u j from the branch for which a message is to be obtained to the variable node operation result v i in the expression (1). Therefore, only one is obtained for one column (one variable node) of the check matrix H.

復号装置400では、計算部412が、計算部415による第2の演算の結果である検査行列Hの列に対応する復号途中結果vを用いて、第1の演算を行い、その演算の結果得られる検査行列Hのi列の、各行の1に対応する枝のメッセージ(各チェックノードが各枝に出力するメッセージ)の枝からのチェックノード演算の復号途中結果ujを復号途中結果格納用メモリ413に格納する。従って、復号途中結果格納用メモリ413の容量は、チェックノード演算の結果を格納する場合と同様に、検査行列Hの1の数(全枝数)と量子化ビット数とを乗算した値となる。 In decoding apparatus 400, calculation unit 412 performs the first calculation using decoding intermediate result v corresponding to the column of parity check matrix H that is the result of the second calculation by calculation unit 415, and obtains the result of the calculation. Decoding intermediate result u j of the check node operation from the branch of the message corresponding to 1 in each row (message output by each check node to each branch) of i columns of the parity check matrix H It stores in 413. Therefore, the capacity of the decoding intermediate result storage memory 413 is a value obtained by multiplying the number of 1 (the number of all branches) of the parity check matrix H and the number of quantization bits as in the case of storing the result of the check node calculation. .

一方、計算部415は、計算部412による第1の演算の結果である検査行列Hのi列の、各行の“1”に対応する復号途中結果ujと受信値u0iを用いて、第2の演算を行い、その演算の結果得られるi列に対応する復号途中結果vを復号途中結果格納用メモリ410に格納する。従って、復号途中結果格納用メモリ410に必要な容量は、検査行列Hの“1”の数より少ない検査行列Hの列数、即ち、LDPC符号の符号長と復号途中結果vの量子化ビット数とを乗算した値となる。 On the other hand, the calculation unit 415 uses the decoding intermediate result u j corresponding to “1” of each row and the received value u 0i of the i column of the parity check matrix H that is the result of the first calculation by the calculation unit 412 to 2 is performed, and the decoding intermediate result v corresponding to the i column obtained as a result of the calculation is stored in the decoding intermediate result storage memory 410. Therefore, the necessary capacity of the decoding intermediate result storage memory 410 is the number of columns of the parity check matrix H smaller than the number of “1” of the parity check matrix H, that is, the code length of the LDPC code and the number of quantization bits of the decoding intermediate result v It becomes the value which multiplied.

その結果、バリアブルノード演算の結果を格納する場合に比べて、復号途中結果格納用メモリ410のメモリ容量を削減することができ、これにより、復号装置400の回路規模を小さくすることができる。   As a result, the memory capacity of the decoding intermediate result storage memory 410 can be reduced as compared with the case where the result of the variable node calculation is stored, whereby the circuit scale of the decoding device 400 can be reduced.

以下、図12の復号装置400の各部の動作について詳細に説明する。   Hereinafter, the operation of each unit of the decoding device 400 of FIG. 12 will be described in detail.

復号途中結果格納用メモリ410には、スイッチ416から、計算部415による第2の演算の結果である検査行列Hの6つの列に対応する6つの復号途中結果D415が復号途中結果D416として供給され、復号途中結果格納用メモリ410は、計算部415から供給された6つの復号途中結果D416(vi)を、第1アドレスから順に格納する。 The decoding intermediate result storage memory 410 is supplied with six decoding intermediate results D415 corresponding to the six columns of the check matrix H as the result of the second calculation by the calculation unit 415 from the switch 416 as the decoding intermediate result D416. The decoding intermediate result storage memory 410 stores the six decoding intermediate results D416 (v i ) supplied from the calculation unit 415 in order from the first address.

即ち、復号途中結果格納用メモリ410の第1アドレスには、検査行列Hの列に対応する復号途中結果D416のうち、第1列目から第6列目の復号途中結果D416が格納される。そして、同様に、第2アドレスには、第7列目から第12列目の復号途中結果D416が格納され、第3アドレスには、第13列目から第18列目の復号途中結果D416が格納される。以後、同様に、第103列目から第108列目までの復号途中結果D416が、6個ずつ、第4アドレスから第18アドレスまで格納され、計108個の復号途中結果D416が復号途中結果格納用メモリ410に格納される。従って、復号途中結果格納用メモリ410のワード(word)数は、図13の検査行列Hの列数(LDPC符号の符号長)である108を、同時に読み書きする復号途中結果の数である6で割り算した18となる。   That is, in the decoding address storage memory 410, the decoding intermediate result D416 from the first column to the sixth column among the decoding intermediate results D416 corresponding to the columns of the check matrix H is stored. Similarly, the decryption result D416 from the seventh column to the twelfth column is stored at the second address, and the decryption result D416 from the thirteenth column to the eighteenth column is stored at the third address. Stored. Thereafter, similarly, decoding intermediate results D416 from the 103rd column to the 108th column are stored in increments of 6 from the 4th address to the 18th address, and a total of 108 decoding intermediate results D416 are stored as the decoding intermediate results. Stored in the memory 410. Therefore, the number of words in the decoding intermediate result storage memory 410 is 6, which is the number of decoding intermediate results simultaneously reading and writing 108, which is the number of columns of the check matrix H (code length of the LDPC code) in FIG. Divide by 18.

また、復号途中結果格納用メモリ410は、既に格納してある復号途中結果D416から、後段の計算部412が求めようとする復号途中結果ujの対応する検査行列Hの行において“1”になっている復号途中結果D146を6つ同時に読み出し、復号途中結果D410として、サイクリックシフト回路411に供給する。 Further, the decoding intermediate result storage memory 410 sets “1” in the row of the check matrix H corresponding to the decoding intermediate result u j to be obtained by the subsequent calculation unit 412 from the decoding intermediate result D416 already stored. Six decoding intermediate results D146 are simultaneously read and supplied to the cyclic shift circuit 411 as decoding intermediate results D410.

なお、復号途中結果格納用メモリ410は、例えば、6つの復号途中結果を同時に読み書き可能なシングルポートRAMで構成される。また、復号途中結果格納用メモリ410には、計算部415の第2の演算により演算された列に対応する復号途中結果D416が格納されるので、復号途中結果格納用メモリ410に格納されるデータ量、即ち、復号途中結果格納用メモリ410に必要とされる記憶容量は、復号途中結果D414の量子化ビット数と、検査行列Hの列数(LDPC符号の符号長)との乗算値である。   Note that the decoding intermediate result storage memory 410 is composed of, for example, a single-port RAM that can simultaneously read and write six decoding intermediate results. Further, since the decoding intermediate result storage memory 410 stores the decoding intermediate result D416 corresponding to the column calculated by the second calculation of the calculation unit 415, the data stored in the decoding intermediate result storage memory 410 is stored in the decoding intermediate result storage memory 410. The amount, that is, the storage capacity required for the decoding intermediate result storage memory 410 is a product of the number of quantization bits of the decoding intermediate result D414 and the number of columns of the parity check matrix H (code length of the LDPC code). .

サイクリックシフト回路411には、復号途中結果格納用メモリ410から6つの復号途中結果D410が供給されるとともに、制御部418から、その復号途中結果D410に対応する検査行列Hの1が、検査行列Hにおいて元となる単位行列などを幾つサイクリックシフトであるかの情報(Matrixデータ)を表す制御信号D420が供給される。サイクリックシフト回路411は、制御信号D420を基に、6つの復号途中結果D410を並べ替えるサイクリックシフトを行い、その結果を復号途中結果D411として、計算部412に供給する。   The cyclic shift circuit 411 is supplied with six decoding intermediate results D410 from the decoding intermediate result storage memory 410, and the control unit 418 adds 1 of the check matrix H corresponding to the decoding intermediate result D410 to the check matrix. A control signal D420 representing information (Matrix data) indicating the number of cyclic shifts of the original unit matrix in H is supplied. The cyclic shift circuit 411 performs cyclic shift for rearranging the six decoding intermediate results D410 based on the control signal D420, and supplies the result to the calculation unit 412 as the decoding intermediate result D411.

計算部412は、6つの計算器4121乃至4126からなる。計算部412には、サイクリックシフト回路411から、計算部415による第2の演算の結果得られた6つの復号途中結果D411(vi)が供給されるとともに、復号途中結果格納用メモリ413から、前回、計算器4121乃至4126による第1の演算の結果得られた6つの復号途中結果D413(uj)が供給され、その6つの復号途中結果D411と6つの復号途中結果D413が、計算器4121乃至4126にそれぞれ供給される。また、計算部412には、制御部418から制御信号D421が供給され、その制御信号D421が、計算器4121乃至4126に供給される。なお、制御信号D421は、6つの計算器4121乃至4126に共通の信号である。 The calculation unit 412 includes six calculators 412 1 to 412 6 . The calculation unit 412 is supplied with six decoding intermediate results D411 (v i ) obtained as a result of the second calculation by the calculation unit 415 from the cyclic shift circuit 411 and from the decoding intermediate result storage memory 413. The six decoding intermediate results D413 (u j ) obtained as a result of the first calculation by the calculators 412 1 to 412 6 are supplied last time, and the six decoding intermediate results D411 and the six decoding intermediate results D413 are These are supplied to the calculators 412 1 to 412 6 , respectively. Further, the control unit D 418 is supplied with the control signal D 421 from the control unit 418, and the control signal D 421 is supplied to the calculators 412 1 to 412 6 . The control signal D421 is a signal common to the six calculators 412 1 to 412 6 .

計算器4121乃至4126は、それぞれ復号途中結果D411と復号途中結果D413を用いて、式(7)と式(8)にしたがって第1の演算を行い、復号途中結果D412(uj)を求める。計算部412は、計算器4121乃至4126による演算の結果得られる検査行列Hの6つの1に対応する6つの復号途中結果D412を復号途中結果格納用メモリ413に供給する。なお、計算器4121乃至4126の詳細については、後述する図14を参照して説明する。 The calculators 412 1 to 412 6 use the decoding intermediate result D411 and the decoding intermediate result D413, respectively, to perform the first calculation according to the equations (7) and (8), and obtain the decoding intermediate result D412 (u j ). Ask. The calculation unit 412 supplies six decoding intermediate results D412 corresponding to six ones of the check matrix H obtained as a result of the calculation by the calculators 412 1 to 412 6 to the decoding intermediate result storage memory 413. Details of the calculators 412 1 to 412 6 will be described with reference to FIG.

復号途中結果格納用メモリ413は、例えば、6つの復号途中結果を同時に読み書き可能な、2つのシングルポートRAMから構成される。復号途中結果格納用メモリ413には、計算部412から6つの復号途中結果D412が供給されるとともに、制御部418から復号途中結果格納用メモリ413の読み書きを制御する制御信号D422が供給される。   The decoding intermediate result storage memory 413 includes, for example, two single-port RAMs that can simultaneously read and write six decoding intermediate results. Six decoding intermediate results D412 are supplied from the calculation unit 412 to the decoding intermediate result storage memory 413, and a control signal D422 for controlling reading and writing of the decoding intermediate result storage memory 413 is supplied from the control unit 418.

復号途中結果格納用メモリ413は、制御信号D422に基づいて、計算部412から供給される6つの復号途中結果D412をまとめて格納すると同時に、既に格納してある6つの復号途中結果D412を読み出し、復号途中結果D413として、計算部412とサイクリックシフト回路414に供給する。即ち、復号途中結果格納用メモリ413は、計算部412とサイクリックシフト回路414に供給する復号途中結果D413の読み出しと、計算部412から供給される復号途中結果D412の書き込みとを、同時に行う。   Based on the control signal D422, the decoding intermediate result storage memory 413 stores the six decoding intermediate results D412 supplied from the calculation unit 412 together, and simultaneously reads the six decoding intermediate results D412 already stored. The decoding result D413 is supplied to the calculation unit 412 and the cyclic shift circuit 414. That is, the decoding intermediate result storage memory 413 simultaneously reads the decoding intermediate result D413 supplied to the calculation unit 412 and the cyclic shift circuit 414 and writes the decoding intermediate result D412 supplied from the calculation unit 412.

なお、復号途中結果格納用メモリ413には、計算部412の第1の演算により演算された検査行列Hのi列の、各行の1に対応する枝からの第1の演算の復号途中結果D412が格納されるので、復号途中結果格納用メモリ413に格納されるデータ量、即ち、復号途中結果格納用メモリ413に必要とされる記憶容量は、復号途中結果D412の量子化ビット数と、検査行列Hの1の数との乗算値となる。この復号途中結果格納用メモリ413の詳細については、後述する図16を参照して説明する。   The decoding intermediate result storage memory 413 stores the decoding intermediate result D412 of the first calculation from the branch corresponding to 1 in each row of i columns of the check matrix H calculated by the first calculation of the calculation unit 412. Therefore, the amount of data stored in the decoding intermediate result storage memory 413, that is, the storage capacity required for the decoding intermediate result storage memory 413, is determined by the number of quantization bits of the decoding intermediate result D412 and the check. It is a multiplication value of the number of 1 in the matrix H. Details of the decoding intermediate result storage memory 413 will be described with reference to FIG.

サイクリックシフト回路414には、復号途中結果格納用メモリ413から6つの復号途中結果D413(uj)が供給されるとともに、制御部418から、その復号途中結果D413に対応する検査行列Hの1が検査行列Hにおいて元となる単位行列などを幾つサイクリックシフトしたものであるかの情報(Matrixデータ)を表す制御信号D423が供給される。サイクリックシフト回路414は、制御信号D423を基に、6つの復号途中結果D413を並べ替えるサイクリックシフトを行い、その結果を復号途中結果D414として、計算部415に供給する。 The cyclic shift circuit 414 is supplied with six decoding intermediate results D413 (u j ) from the decoding intermediate result storage memory 413, and from the control unit 418, 1 of the check matrix H corresponding to the decoding intermediate result D413. Is supplied with a control signal D423 indicating information (Matrix data) indicating how many cyclic shifts of the original unit matrix and the like in the check matrix H are performed. The cyclic shift circuit 414 performs a cyclic shift that rearranges the six decoding intermediate results D413 based on the control signal D423, and supplies the result to the calculation unit 415 as a decoding intermediate result D414.

計算部415は、6つの計算器4151乃至4156からなる。計算部415には、サイクリックシフト回路414から6つの復号途中結果D414が供給され、その復号途中結果D414が、計算器4151乃至4156のそれぞれに供給される。また、計算部415には、受信用メモリ417から6つの受信値D419が同時に供給され、その受信値D419が、計算器4151乃至4156のそれぞれに供給される。さらに、計算部415には、制御部418から制御信号D424が供給され、その制御信号D424が計算器4151乃至4156に供給される。なお、制御信号D424は、6つの計算器4151乃至4156に共通の信号である。 The calculation unit 415 includes six calculators 415 1 to 415 6 . Six decoding intermediate results D414 are supplied from the cyclic shift circuit 414 to the calculation unit 415, and the decoding intermediate results D414 are supplied to the calculators 415 1 to 415 6 respectively. The calculation unit 415 is simultaneously supplied with six reception values D419 from the reception memory 417, and the reception values D419 are supplied to the calculators 415 1 to 415 6 respectively. Further, a control signal D424 is supplied from the control unit 418 to the calculation unit 415, and the control signal D424 is supplied to the calculators 415 1 to 415 6 . The control signal D424 is a signal common to the six calculators 415 1 to 415 6 .

計算器4151乃至4156は、それぞれ復号途中結果D414と受信値D419とを用いて、式(5)にしたがって、それぞれ第2の演算を同時に行い、復号途中結果D415を求める。計算部415は、計算器4151乃至4156の第2の演算の結果得られる6つの復号途中結果D415(v)を、スイッチ416に供給する。なお、計算器4151乃至4156の詳細については、後述する図15を参照して説明する。 Calculators 415 1 to 415 6 use decoding intermediate result D414 and received value D419, respectively, to simultaneously perform a second calculation according to equation (5) to obtain decoding intermediate result D415. The calculation unit 415 supplies six decoding intermediate results D415 (v) obtained as a result of the second calculation of the calculators 415 1 to 415 6 to the switch 416. Details of the calculators 415 1 to 415 6 will be described with reference to FIG.

以上のように、復号途中結果格納用メモリ410、サイクリックシフト回路411、計算部412、復号途中結果格納用メモリ413、サイクリックシフト回路414、計算部415の順で、データが一巡することで、復号装置400は、1回の復号を行うことができる。   As described above, the data goes around in the order of the decoding intermediate result storage memory 410, the cyclic shift circuit 411, the calculation unit 412, the decoding intermediate result storage memory 413, the cyclic shift circuit 414, and the calculation unit 415. The decoding apparatus 400 can perform one decoding.

スイッチ416は、制御部418から供給される、復号結果の出力を表す制御信号D425に応じて、計算部415から供給される6つの復号途中結果D415の出力先を変更する。具体的には、スイッチ416は、制御信号D425が供給されない場合、6つの復号途中結果D415を、復号途中結果D416として、復号途中結果格納用メモリ410に供給する。一方、スイッチ416は、制御信号D425が供給される場合、6つの復号途中結果D415を、最終的な復号結果D417として出力する。   The switch 416 changes the output destinations of the six intermediate decoding results D415 supplied from the calculation unit 415 according to the control signal D425 supplied from the control unit 418 and representing the output of the decoding results. Specifically, when the control signal D425 is not supplied, the switch 416 supplies the six decoding intermediate results D415 to the decoding intermediate result storage memory 410 as decoding intermediate results D416. On the other hand, when the control signal D425 is supplied, the switch 416 outputs six decoding intermediate results D415 as final decoding results D417.

受信用メモリ417には、通信路を通して受信されたLDPC符号から計算された、符号ビットの0らしさを表す受信LLRである受信値D418が入力される。   The reception memory 417 receives a reception value D418, which is a reception LLR calculated from the LDPC code received through the communication path and indicating the likelihood of the code bit being zero.

なお、ここでは、通信路を通して、例えば、DVB-S2規格に準拠したLDPC符号が受信されるものとする。この場合、各フレームの実際の値の先頭に、ヘッダが設けられ、また復号装置400の前段の復調処理の同期性能改善のために各フレームの実際の値の途中にパイロットが挿入されるため、このヘッダとパイロットの区間が、実際の値のない無効時間となり、受信されたLDPC符号から計算された受信値D418は、間欠的になる。さらに、復号装置400の動作クロックは、一般的に、前段の復調処理の動作クロックより高速であるため、動作クロックの乗り換えによっても無効時間が発生し、受信値D418は間欠的になる。   Here, for example, it is assumed that an LDPC code conforming to the DVB-S2 standard is received through the communication path. In this case, since a header is provided at the head of the actual value of each frame, and a pilot is inserted in the middle of the actual value of each frame in order to improve the synchronization performance of the demodulation process of the preceding stage of the decoding device 400, This header-pilot section is an invalid time without an actual value, and the received value D418 calculated from the received LDPC code is intermittent. Furthermore, since the operation clock of the decoding device 400 is generally faster than the operation clock of the preceding demodulation process, invalid time is generated even when the operation clock is changed, and the received value D418 becomes intermittent.

受信用メモリ417は、間欠的に入力された受信値D418を格納する。そして、受信用メモリ417は、既に格納している受信値D418を、バリアブルノード演算に必要となる順番に6つずつ読み出し、受信値D419として計算部415に供給する。なお、受信用メモリ417の詳細については、後述する図18を参照して説明する。   The reception memory 417 stores the reception value D418 input intermittently. Then, the reception memory 417 reads out the reception values D418 that are already stored in the order required for variable node calculation, and supplies them to the calculation unit 415 as reception values D419. Details of the reception memory 417 will be described with reference to FIG.

制御部418は、予め設定された所定の回数だけ繰り返して復号が行われるように、各部を制御する。具体的には、制御部418は、制御信号D420をサイクリックシフト回路411に、制御信号D421を計算部412に供給することにより、それぞれを制御する。また、制御部418は、制御信号D422を復号途中結果格納用メモリ413に、制御信号D423をサイクリックシフト回路414に、制御信号D424を計算部415にそれぞれ供給することにより、それぞれを制御する。さらに、制御部418は、所定のタイミングで、制御信号D425をスイッチ416に供給することにより、所定の回数だけ繰り返し行われた第2の演算の最後の結果として得られる復号途中結果D415を、復号結果D417として出力させるように、スイッチ416を制御する。   The control unit 418 controls each unit so that decoding is repeatedly performed a predetermined number of times set in advance. Specifically, the control unit 418 controls the control signal D420 by supplying the control signal D420 to the cyclic shift circuit 411 and the control signal D421 to the calculation unit 412, respectively. In addition, the control unit 418 controls the control signal D422 by supplying the control signal D422 to the decoding intermediate result storage memory 413, the control signal D423 to the cyclic shift circuit 414, and the control signal D424 to the calculation unit 415, respectively. Further, the control unit 418 supplies the control signal D425 to the switch 416 at a predetermined timing, thereby decoding the intermediate decoding result D415 obtained as the final result of the second calculation repeatedly performed a predetermined number of times. The switch 416 is controlled to output the result D417.

図14は、図12の計算部412の計算器4121の詳細構成例を示すブロック図である。 Figure 14 is a block diagram illustrating a detailed configuration example of a calculator 412 first calculation portion 412 of FIG. 12.

なお、図14では、計算器4121について説明するが、計算器4122乃至計算器4126も同様に構成される。 In FIG. 14, the calculator 412 1 will be described, but the calculators 412 2 to 412 6 are similarly configured.

また、図14では、前回の計算部412による第1の演算の結果得られる各復号途中結果(udv)が符号ビットを合わせて合計6ビット(bit)に量子化され、計算部415による第2の演算の結果得られる各復号途中結果(v)が9ビットに量子化されているものとして、計算器4121を表している。さらに、図14の計算器4121には、クロックckが供給され、このクロックckは、必要なブロックに供給されるようになっている。そして、各ブロックは、クロックckに同期して処理を行う。 In FIG. 14, each decoding intermediate result (u dv ) obtained as a result of the first calculation by the previous calculation unit 412 is quantized into a total of 6 bits (bits) including the sign bit, and the calculation unit 415 performs the first calculation. as a second arithmetic operation results each decoding intermediate result obtained (v) are quantized to 9 bits represent the calculator 412 1. Further, the calculator 412 1 of FIG. 14, the clock ck is supplied, the clock ck is to be supplied to the necessary blocks. Each block performs processing in synchronization with the clock ck.

図14の計算器4121は、制御部418から供給される制御信号D421に基づいて、復号途中結果格納用メモリ413から1つずつ読み込まれる、前回の計算部412による第1の演算の結果得られた復号途中結果D413(udv)と、サイクリックシフト回路411から1つずつ読み込まれる復号途中結果D411(v)とを用いて、式(7)と式(8)にしたがう第1の演算を行う。 Calculator 412 1 of FIG. 14, based on the control signal D421 supplied from the control unit 418, it is read one by one from the decoding intermediate result storage memory 413, the first operation from the previous calculation portion 412 resulting The first calculation according to the equations (7) and (8) using the decoded intermediate result D413 (u dv ) and the decoding intermediate result D411 ( v ) read one by one from the cyclic shift circuit 411. I do.

即ち、計算器4121には、サイクリックシフト回路411から供給される6つの9ビットの復号途中結果D411(v)のうちの、1つの復号途中結果D411が供給されるとともに、復号途中結果格納用メモリ413から供給される、前回の計算部412による演算の結果である6つの6ビットの復号途中結果D413(uj)のうちの、1つの復号途中結果D413が供給され、その9ビットの復号途中結果D411(v)と6ビットの復号途中結果D413(udv)が、減算器431に供給される。また、計算器4121には、制御部418から制御信号D421が供給され、その制御信号D421がセレクタ435とセレクタ442に供給される。 In other words, the calculator 412 1, the cyclic shift circuit 411 6 9-bit decoding intermediate results supplied from D411 of (v), together with one decoding intermediate results D411 are supplied, the decoding intermediate result storage Of the six 6-bit decoding intermediate results D413 (u j ) supplied from the previous memory 413, which is the result of the previous calculation by the calculation unit 412, is supplied, and the 9-bit decoding result D413 is supplied. The decoding intermediate result D411 (v) and the 6-bit decoding intermediate result D413 (u dv ) are supplied to the subtractor 431. Further, the calculator 412 1, the control signal D421 is supplied from the control unit 418, the control signal D421 is supplied to the selector 435 and the selector 442.

減算器431は、9ビットの復号途中結果D411(v)から6ビットの復号途中結果D413(uj)を減算し、その6ビットの減算値D431を出力する。即ち、減算器431は、式(8)にしたがって演算を行い、その演算の結果である減算値D431(vi)を出力する。 The subtractor 431 subtracts the 6-bit decoding intermediate result D413 (u j ) from the 9-bit decoding intermediate result D411 (v), and outputs the 6-bit subtraction value D431. That is, the subtractor 431 performs an operation according to the equation (8), and outputs a subtraction value D431 (v i ) that is the result of the operation.

減算器431により出力された6ビットの減算値D431のうち、最上位ビットの正負を示す符号ビットD432(sign(vi))がEXOR回路440に供給され、下位5ビットの絶対値D433(|vi|)がLUT432に供給される。 Of the 6-bit subtraction value D431 output by the subtractor 431, the sign bit D432 (sign (v i )) indicating the sign of the most significant bit is supplied to the EXOR circuit 440, and the absolute value D433 (| v i |) is supplied to the LUT 432.

LUT432は、絶対値D433(|vi|)に対して、式(7)におけるφ(|vi|)の演算を行った5ビットの演算結果D434(φ(|vi|))を読み出し、加算器433とFIFOメモリ438に供給する。 The LUT 432 reads out the 5-bit calculation result D434 (φ (| v i |)) obtained by performing the calculation of φ (| v i |) in Expression (7) with respect to the absolute value D433 (| v i |). To the adder 433 and the FIFO memory 438.

加算器433は、演算結果D434(φ(|vi|))とレジスタ434に格納されている9ビットの値D435とを加算することにより、演算結果D434を積算し、その結果得られる9ビットの積算値をレジスタ434に再格納する。なお、検査行列Hの1行に亘る全ての1に対応する復号途中結果D411から求められた絶対値D433(|vi|)に対する演算結果が積算された場合、レジスタ434はリセットされる。 The adder 433 adds the operation result D434 (φ (| v i |)) and the 9-bit value D435 stored in the register 434, thereby accumulating the operation result D434, and 9 bits obtained as a result. Is stored again in the register 434. Note that when the calculation results for the absolute value D433 (| v i |) obtained from the decoding intermediate result D411 corresponding to all 1s in one row of the check matrix H are accumulated, the register 434 is reset.

検査行列Hの1行に亘る復号途中結果D411が1つずつ読み込まれ、レジスタ434に1行分の演算結果D434が積算された積算値が格納された場合、制御部418から供給される制御信号D421は、0から1に変化する。例えば、行の重み(row weight)が「9」である場合、制御信号D421は、1から8クロック目までは、「0」となり、9クロック目では「1」となる。   When decoding result D411 over one row of parity check matrix H is read one by one and an integrated value obtained by integrating operation results D434 for one row is stored in register 434, a control signal supplied from control unit 418 D421 changes from 0 to 1. For example, when the row weight is “9”, the control signal D421 is “0” from the first to the eighth clock, and “1” at the ninth clock.

制御信号D421が「1」の場合、セレクタ435は、レジスタ434に格納されている値、即ち、検査行列Hの1行に亘る全ての1に対応する復号途中結果D411(復号途中結果v)から求められたφ(|vi|)が積算された9ビットの値D435(i=1からi=dcまでのΣφ(|vi|))を選択し、値D436として、レジスタ436に出力して格納させる。レジスタ436は、格納している値D436を、9ビットの値D437として、セレクタ435と加減算器437に供給する。制御信号D421が「0」の場合、セレクタ435は、レジスタ436から供給された値D437を選択し、レジスタ436に出力して再格納させる。即ち、検査行列Hの1行に亘る全ての1に対応する復号途中結果D411(復号途中結果v)から求められたφ(|vi|)が積算されるまで、レジスタ436は、前回積算されたφ(|vi|)を、セレクタ435と加減算器437に供給する。 When the control signal D421 is “1”, the selector 435 uses the value stored in the register 434, that is, the decoding intermediate result D411 (decoding intermediate result v) corresponding to all 1s over one row of the check matrix H. obtained φ (| v i |) 9-bit value that is accumulated D435 (Sigma] [phi of i = 1 through i = d c (| v i |)) is selected, as a value D436, the output to the register 436 And store it. The register 436 supplies the stored value D436 to the selector 435 and the adder / subtracter 437 as a 9-bit value D437. When the control signal D421 is “0”, the selector 435 selects the value D437 supplied from the register 436, outputs it to the register 436, and stores it again. That is, the register 436 is accumulated last time until φ (| v i |) obtained from the decoding intermediate result D411 (decoding intermediate result v) corresponding to all 1s in one row of the check matrix H is integrated. Φ (| v i |) is supplied to the selector 435 and the adder / subtractor 437.

一方、FIFOメモリ438は、レジスタ436から新たな値D437(i=1からi=dcまでのΣφ(|vi|))が出力されるまでの間、LUT432が出力した演算結果D434(φ(|vi|))を遅延し、5ビットの値D438として加減算器437に供給する。加減算器437は、レジスタ436から供給された値D437から、FIFOメモリ438から供給された値D438を減算し、その減算結果を、5ビットの減算値D439としてLUT439に供給する。即ち、加減算器437は、検査行列Hの1行に亘る全ての1に対応する復号途中結果D411(復号途中結果v)から求められたφ(|vi|)の積算値から、求めたい枝に対応する復号途中結果、即ち、検査行列Hの所定の1に対応する復号途中結果D411(復号途中結果v)から求められたφ(|vi|)を減算して、その減算値(i=1からi=dc−1までのΣφ(|vi|))を減算値D439としてLUT439に供給する。 On the other hand, FIFO memories 438, (from i = 1 i = Σφ to d c (| v i |) ) a new value D437 from the register 436 until it is output, the result calculation LUT432 has output D434 (phi (| v i |)) is delayed and supplied to the adder / subtracter 437 as a 5-bit value D438. The adder / subtracter 437 subtracts the value D438 supplied from the FIFO memory 438 from the value D437 supplied from the register 436, and supplies the subtraction result to the LUT 439 as a 5-bit subtraction value D439. That is, the adder / subtracter 437 determines the branch to be obtained from the integrated value of φ (| v i |) obtained from the decoding intermediate result D411 (decoding intermediate result v) corresponding to all 1s in one row of the check matrix H. , I.e., φ (| v i |) obtained from the decoding intermediate result D411 (decoding intermediate result v) corresponding to a predetermined 1 of the check matrix H is subtracted, and the subtraction value (i Σφ (| v i |) from = 1 to i = d c −1) is supplied to the LUT 439 as the subtraction value D439.

LUT439は、減算値D439(i=1からi=dc−1までのΣφ(|vi|))に対して、式(7)におけるφ-1(Σφ(|vi|))の演算を行った5ビットの演算結果D440(φ-1(Σφ(|vi|)))を出力する。 The LUT 439 calculates φ −1 (Σφ (| v i |)) in Expression (7) for the subtraction value D439 (Σφ (| v i |) from i = 1 to i = d c −1). A 5-bit calculation result D440 (φ −1 (Σφ (| v i |))) is output.

以上の処理と並行して、EXOR回路440は、レジスタ441に格納されている1ビットの値D442と符号ビットD432との排他的論理和を演算することにより、符号ビットどうしの乗算を行い、1ビットの乗算結果D441をレジスタ441に再格納する。なお、検査行列Hの1行に亘る全ての1に対応する復号途中結果D411から求められた符号ビットD432が乗算された場合、レジスタ441はリセットされる。   In parallel with the above processing, the EXOR circuit 440 performs an exclusive OR operation between the 1-bit value D442 stored in the register 441 and the sign bit D432, thereby multiplying the sign bits by 1 The bit multiplication result D441 is re-stored in the register 441. When the sign bit D432 obtained from the decoding intermediate result D411 corresponding to all 1s in one row of the check matrix H is multiplied, the register 441 is reset.

検査行列Hの1行に亘る全ての1に対応する復号途中結果D411から求められた符号ビットD432が乗算された乗算結果D441(i=1からdcまでのΠsign(vi))がレジスタ441に格納された場合、制御部418から供給される制御信号D421は、「0」から「1」に変化する。 (Paisign from i = 1 to d c (v i)) multiplication result D441 with sign bit D432 is multiplied by the obtained from the decoding intermediate result D411 corresponding to all 1 across one line of the parity check matrix H register 441 Stored in the control signal 421, the control signal D421 supplied from the control unit 418 changes from “0” to “1”.

制御信号D421が「1」の場合、セレクタ442は、レジスタ441に格納されている値、即ち、検査行列Hの1行に亘る全ての1に対応する復号途中結果D411から求められた符号ビットD432が乗算された値D442(i=1からi=dcまでのΠsign(vi))を選択し、1ビットの値D443としてレジスタ443に出力して格納させる。レジスタ443は、格納している値D443を、1ビットの値D444としてセレクタ442とEXOR回路445に供給する。制御信号D421が「0」の場合、セレクタ442は、レジスタ443から供給された値D444を選択し、レジスタ443に出力して再格納させる。即ち、検査行列Hの1行に亘る全ての1に対応する復号途中結果D411(復号途中結果v)から求められた符号ビットD432が乗算されるまで、レジスタ443は、前回格納した値を、セレクタ442とEXOR回路445に供給する。 When the control signal D421 is “1”, the selector 442 uses the value stored in the register 441, that is, the sign bit D432 obtained from the decoding intermediate result D411 corresponding to all 1s over one row of the check matrix H. There select multiplied value D442 (Πsign of i = 1 through i = d c (v i) ), and stores and outputs a 1-bit value D443 to the register 443. The register 443 supplies the stored value D443 to the selector 442 and the EXOR circuit 445 as a 1-bit value D444. When the control signal D421 is “0”, the selector 442 selects the value D444 supplied from the register 443, outputs it to the register 443, and stores it again. That is, until the sign bit D432 obtained from the decoding intermediate result D411 (decoding intermediate result v) corresponding to all 1s in one row of the check matrix H is multiplied, the register 443 stores the previously stored value as a selector. 442 and the EXOR circuit 445.

一方、FIFOメモリ444は、レジスタ443から新たな値D444(i=1からi=dcまでのΠsign(vi))がEXOR回路445に供給されるまでの間、符号ビットD432を遅延し、1ビットの値D445としてEXOR回路445に供給する。EXOR回路445は、レジスタ443から供給された値D444と、FIFOメモリ444から供給された値D445との排他的論理和を演算することにより、値D444を、値D445で除算し、1ビットの除算結果を除算値D446として出力する。即ち、EXOR回路445は、検査行列Hの1行に亘る全ての1に対応する復号途中結果D411から求められた符号ビットD432(sign(vi))の乗算値を、検査行列Hの所定の1に対応する復号途中結果D411から求められた符号ビットD432(sign(vi))で除算して、その除算値(i=1からi=dc−1までのΠsign(vi))を除算値D446として出力する。 On the other hand, FIFO memories 444, between (from i = 1 i = Πsign to d c (v i)) a new value D444 from the register 443 until is supplied to the EXOR circuit 445 delays the sign bit D432, The 1-bit value D445 is supplied to the EXOR circuit 445. The EXOR circuit 445 calculates the exclusive OR of the value D444 supplied from the register 443 and the value D445 supplied from the FIFO memory 444, thereby dividing the value D444 by the value D445 and dividing by 1 bit. The result is output as the division value D446. That is, the EXOR circuit 445 uses the multiplication value of the sign bit D432 (sign (v i )) obtained from the decoding intermediate result D411 corresponding to all 1s over one row of the parity check matrix H as a predetermined value of the parity check matrix H. 1 is divided by the sign bit D432 (sign (v i )) obtained from the decoding intermediate result D411 corresponding to 1, and the divided value (Πsign (v i ) from i = 1 to i = d c −1) is obtained. Output as division value D446.

計算器4121では、LUT439から出力された5ビットの演算結果D440を下位5ビットとするとともに、EXOR回路445から出力された1ビットの除算値D446を最上位ビットとする合計6ビットが復号途中結果D412(復号途中結果uj)として出力される。 The calculator 412 1, an operation result D440 of 5 bits output with the lower 5 bits from LUT439, a total of 6 bits are decoded middle of the 1-bit divided value D446 outputted from the EXOR circuit 445 and the most significant bit The result is output as D412 (decoding intermediate result u j ).

以上のように、計算器4121では、式(7)と式(8)の演算が行われ、復号途中結果ujが求められる。 As described above, the calculator 412 1, performs the operation of equation (7) and (8), the decoding intermediate results u j is obtained.

なお、図13の検査行列Hの行の重みの最大は9であるため、即ち、計算器4121に供給される復号途中結果D411(v)と復号途中結果D413(udv)の最大数は9であるため、計算器4121は、9個の復号途中結果D411から求められる9個の演算結果D434(φ(|vi|))を遅延させるFIFOメモリ438と、9個の符号ビットD432を遅延させるFIFOメモリ444を有している。行の重みが9未満の行のメッセージを計算するときには、FIFOメモリ438とFIFOメモリ444における遅延量が、その行の重みの値に減らされる。 Incidentally, since the maximum weight of the rows of the check matrix H of FIG. 13 is a 9, i.e., the maximum number of calculator 412 1 middle decoding supplied results D411 (v) decoding intermediate results to D413 (u dv) is Therefore, the calculator 412 1 delays nine operation results D434 (φ (| v i |)) obtained from nine decoding intermediate results D411, and nine code bits D432. FIFO memory 444 is provided for delaying. When calculating a message for a row with a row weight less than 9, the amount of delay in the FIFO memory 438 and FIFO memory 444 is reduced to the value of the row weight.

図15は、図12の計算部415の計算器4151の構成例を示すブロック図である。 Figure 15 is a block diagram showing a configuration example of a calculator 415 first calculation unit 415 of FIG. 12.

なお、図15では、計算器4151について説明するが、計算器4152乃至計算器4156も同様に構成される。 In FIG. 15, the calculator 415 1 will be described, but the calculators 415 2 to 415 6 are similarly configured.

また、図15では、計算部412による第1の演算の結果得られる各復号途中結果(uj)が符号ビットを合わせて合計6ビットに量子化されているものとして、計算器4151を表している。さらに、図15の計算器4151には、クロックckが供給され、このクロックckは、必要なブロックに供給されるようになっている。そして、各ブロックは、クロックckに同期して処理を行う。 Further, in FIG. 15, as the calculation unit 412 according to the first results the decoding intermediate result obtained in operation (u j) are quantized to six bits to suit the sign bit represents a calculator 415 1 ing. Further, the calculator 415 1 of FIG. 15, the clock ck is supplied, the clock ck is to be supplied to the necessary blocks. Each block performs processing in synchronization with the clock ck.

図15の計算器4151は、制御部418から供給される制御信号D424に基づいて、受信用メモリ417から1つずつ読み込まれる受信値D419(u0i)と、サイクリックシフト回路414から1つずつ読み込まれる復号途中結果D414(uj)とを用いて、式(5)にしたがう第2の演算を行う。 The calculator 415 1 shown in FIG. 15 receives the received value D419 (u 0i ) read one by one from the receiving memory 417 and one from the cyclic shift circuit 414 based on the control signal D424 supplied from the control unit 418. Using the decoding intermediate result D414 (u j ) read one by one, the second calculation according to the equation (5) is performed.

即ち、計算器4151では、サイクリックシフト回路414から、検査行列Hの各行の1に対応する6ビットの復号途中結果D414(uj)が1つずつ読み込まれ、その復号途中結果D414が、加算器471に供給される。また、計算器4151では、受信用メモリ417から6ビットの受信値D419が1つずつ読み込まれ、加算器475に供給される。さらに、計算器4151には、制御部418から制御信号D424が供給され、その制御信号D424は、セレクタ473に供給される。 That is, in the calculator 415 1 , the 6-bit decoding intermediate result D414 (u j ) corresponding to 1 in each row of the check matrix H is read from the cyclic shift circuit 414 one by one, and the decoding intermediate result D414 is This is supplied to the adder 471. Further, the calculator 415 1, the received value D419 of six bits from the receiving memory 417 are read in one by one, it is supplied to the adder 475. Further, the calculator 415 1, the control signal D424 is supplied from the control unit 418, the control signal D424 is supplied to the selector 473.

加算器471は、復号途中結果D414(uj)とレジスタ472に格納されている9ビットの値D471とを加算することにより、復号途中結果D414を積算し、その結果得られる9ビットの積算値を、レジスタ472に再格納する。なお、検査行列Hの1列に亘る全ての1に対応する復号途中結果D414が積算された場合、レジスタ472はリセットされる。 The adder 471 adds the decoding intermediate result D414 by adding the decoding intermediate result D414 (u j ) and the 9-bit value D471 stored in the register 472, and obtains the 9-bit integrated value obtained as a result. Is stored in the register 472 again. When the decoding intermediate results D414 corresponding to all 1s over one column of the check matrix H are accumulated, the register 472 is reset.

検査行列Hの1列に亘る復号途中結果D414が1つずつ読み込まれ、レジスタ472に1列分の復号途中結果D414が積算された値が格納された場合、制御部418から供給される制御信号D424は、「0」から「1」に変化する。例えば、列の重みが「5」である場合、制御信号D424は、1から4クロック目までは「0」となり、5クロック目では「1」となる。   When a decoding intermediate result D414 over one column of the check matrix H is read one by one and a value obtained by integrating the decoding intermediate result D414 for one column is stored in the register 472, a control signal supplied from the control unit 418 D424 changes from “0” to “1”. For example, when the column weight is “5”, the control signal D424 is “0” from the first to the fourth clock, and “1” at the fifth clock.

制御信号D424が「1」の場合、セレクタ473は、レジスタ472に格納されている値、即ち、検査行列Hの1列に亘る全ての枝からの復号途中結果D414(uj)が積算された9ビットの値D471(j=1からdVまでのΣuj)を選択し、レジスタ474に出力して格納させる。レジスタ474は、格納している値D471を、9ビットの値D472として、セレクタ473と加算器475に供給する。制御信号D424が「0」の場合、セレクタ473は、レジスタ474から供給された値D472を選択し、レジスタ474に出力し再格納させる。即ち、検査行列Hの1列に亘る全ての枝からの復号途中結果D414(uj)が積算されるまで、レジスタ474は、前回積算された値を、セレクタ473と加算器475に供給する。 When the control signal D424 is “1”, the selector 473 accumulates the values stored in the register 472, that is, the decoding intermediate results D414 (u j ) from all the branches over one column of the check matrix H. 9-bit value D471 (from j = 1? uj j to d V) is selected, it is stored in output register 474. The register 474 supplies the stored value D471 to the selector 473 and the adder 475 as a 9-bit value D472. When the control signal D424 is “0”, the selector 473 selects the value D472 supplied from the register 474, outputs it to the register 474, and stores it again. That is, the register 474 supplies the previous accumulated value to the selector 473 and the adder 475 until the decoding intermediate results D414 (u j ) from all the branches over one column of the check matrix H are accumulated.

加算器475は、9ビットの値D472と、受信用メモリ417から供給された6ビットの受信値D419とを加算して、その結果得られる6ビットの値を復号途中結果D415(v)として出力する。   The adder 475 adds the 9-bit value D472 and the 6-bit reception value D419 supplied from the reception memory 417, and outputs the 6-bit value obtained as a result as a decoding intermediate result D415 (v). To do.

以上のように、計算器4151では、式(5)の演算が行われ、復号途中結果vが求められる。 As described above, the calculator 415 1, performs the operation of Equation (5), the decoding intermediate results v are obtained.

なお、図7の検査行列Hの列の重みの最大は5であるため、即ち、計算器4151に供給される復号途中結果ujの最大数は5であるため、計算器4151は、6ビットの復号途中結果ujを最大5個加算する。従って、計算器4151の出力は、9ビットの値となっている。 Since the maximum column weight of the parity check matrix H in FIG. 7 is 5, that is, the maximum number of decoding intermediate results u j supplied to the calculator 415 1 is 5, the calculator 415 1 A maximum of five 6-bit decoding intermediate results u j are added. Thus, the output of the calculator 415 1 has a 9-bit value.

図16は、図12の復号途中結果格納用メモリ413の構成例を示すブロック図である。   FIG. 16 is a block diagram illustrating a configuration example of the decoding intermediate result storage memory 413 of FIG.

復号途中結果格納用メモリ413は、スイッチ501と504、および2つのシングルポートRAMである復号途中結果格納用RAM502と503から構成される。   The decoding intermediate result storage memory 413 includes switches 501 and 504 and decoding intermediate result storage RAMs 502 and 503 which are two single-port RAMs.

この復号途中結果格納用メモリ413の各部について詳細に説明する前に、まず、復号途中結果格納用RAM502と503へのデータの格納方法について説明する。   Before describing each part of the decoding intermediate result storage memory 413 in detail, first, a method of storing data in the decoding intermediate result storage RAMs 502 and 503 will be described.

復号途中結果格納用RAM502と503は、計算部412による第1の演算の結果得られ、スイッチ501を介して供給された復号途中結果D412を格納する。   The decoding intermediate result storage RAMs 502 and 503 store the decoding intermediate result D412 obtained as a result of the first calculation by the calculation unit 412 and supplied via the switch 501.

具体的には、復号途中結果格納用RAM502の第1アドレスから第9アドレスには、図13の検査行列Hの第1行目から第6行目までの1に対応する復号途中結果D412(D501)が、各行ともに横方向(列方向)に詰めた形に(0を無視した形で)格納される。   Specifically, the decoding intermediate result D412 (D501) corresponding to 1 from the first row to the sixth row of the parity check matrix H in FIG. ) Are stored in a form packed in the horizontal direction (column direction) for each row (ignoring 0).

即ち、第j行第i列を、(j,i)と表すこととすると、復号途中結果格納用RAM502の第1アドレスには、図13の検査行列Hの構成行列である(1,1)から(6,6)の6×6の単位行列の1に対応するデータが、第2アドレスには、図13の検査行列Hの構成行列である(1,25)から(6,30)のシフト行列(6×6)の単位行列を右方向に5つだけサイクリックシフトしたシフト行列)の1に対応するデータが格納される。第3アドレスから第8アドレスも同様に図13の検査行列Hの構成行列と対応づけてデータが格納される。そして、第9アドレスには、検査行列Hの(1,102)から(6,108)のシフト行列(6×6の単位行列のうちの1行目の1を0に置き換えて1つだけ左方向にサイクリックシフトしたシフト行列)の1に対応するデータが格納される。ここで、図13の検査行列Hの(1,102)から(6,108)のシフト行列においては、1行目に1がないため、第9アドレスにはデータが格納されない。   That is, if the j-th row and the i-th column are represented as (j, i), the first address of the decoding intermediate result storage RAM 502 is the constituent matrix of the check matrix H of FIG. To (6,6) corresponding to 1 of the 6 × 6 unit matrix, the second address includes (1,25) to (6,30) which are constituent matrices of the check matrix H of FIG. Data corresponding to 1 of a shift matrix (shift matrix obtained by cyclically shifting a unit matrix of 6 × 6) by five in the right direction) is stored. Similarly, data is stored in association with the configuration matrix of the check matrix H in FIG. At the ninth address, the shift matrix (1,102) to (6,108) of the parity check matrix H (1 in the first row of the 6 × 6 unit matrix is replaced with 0 and cyclically leftward by one). Data corresponding to 1 of the shifted shift matrix) is stored. Here, in the shift matrix from (1,102) to (6,108) of the parity check matrix H in FIG. 13, since there is no 1 in the first row, no data is stored at the ninth address.

また、復号途中結果格納用RAM502の第10アドレスから第18アドレスには、図13の検査行列Hの第13行目から第18行目までの1に対応するデータが格納される。即ち、第10アドレスには、検査行列Hの(13,7)から(18,12)の6×6の単位行列を右方向に5つだけサイクリックシフトした行列の1に対応するデータが格納され、第11アドレスには、検査行列Hの(13,13)から(18,18)の和行列(6×6の単位行列と、6×6の単位行列を右方向に1つだけサイクリックシフトしたシフト行列との和である和行列)を構成するシフト行列の1に対応するデータが格納される。また、第12アドレスには、検査行列Hの(13,13)から(18,18)の和行列を構成する単位行列の1に対応するデータが格納される。以下、第13アドレスから第18アドレスについても、検査行列Hに対応づけてデータが格納される。   Further, data corresponding to 1 from the 13th row to the 18th row of the check matrix H in FIG. 13 is stored in the 10th to 18th addresses of the decoding intermediate result storage RAM 502. That is, at the 10th address, data corresponding to 1 of the matrix obtained by cyclically shifting the 6 × 6 unit matrix from (13,7) to (18,12) of the check matrix H by five to the right is stored. At the eleventh address, the sum matrix of (13,13) to (18,18) of the check matrix H (6 × 6 unit matrix and 6 × 6 unit matrix only one cyclically in the right direction) The data corresponding to 1 of the shift matrix constituting the sum matrix with the shifted shift matrix) is stored. Further, data corresponding to 1 of the unit matrix constituting the sum matrix of (13,13) to (18,18) of the check matrix H is stored at the twelfth address. Hereinafter, the data corresponding to the check matrix H is also stored for the 13th to 18th addresses.

即ち、重みが2以上の構成行列については、その構成行列を、重みが1であるP×Pの単位行列、そのコンポーネントである1のうち1個以上が0になった準単位行列、または単位行列もしくは準単位行列をサイクリックシフトしたシフト行列のうちの複数の和の形で表現したときの、その重みが1の単位行列、準単位行列、またはシフト行列の1の位置に対応するデータ(単位行列、準単位行列、またはシフト行列に属する枝に対応するメッセージの復号途中結果)は、同一アドレスに格納される。   That is, for a configuration matrix with a weight of 2 or more, the configuration matrix is a P × P unit matrix with a weight of 1, a quasi-unit matrix with one or more of its components being 0, or a unit When the matrix or the quasi-unit matrix is expressed in the form of a plurality of shift matrices obtained by cyclic shift, the data corresponding to the position of the unit matrix, the quasi-unit matrix, or the shift matrix having a weight of 1 ( The result of decoding a message corresponding to a branch belonging to a unit matrix, a quasi-unit matrix, or a shift matrix is stored at the same address.

同様に、復号途中結果格納用RAM502の第19アドレスから第27アドレスには、図13の検査行列Hに対応づけて、第25行目から第30行目までの1に対応するデータが格納される。即ち、復号途中結果格納用RAM502のワード数は、27である。   Similarly, data corresponding to 1 from the 25th row to the 30th row is stored in the 19th to 27th addresses of the decoding intermediate result storage RAM 502 in association with the check matrix H in FIG. The That is, the number of words in the decoding intermediate result storage RAM 502 is 27.

復号途中結果格納用RAM503の第1アドレスから第9アドレスには、図13の検査行列Hの第7行目から第12行目までの1に対応する復号途中結果D412(D502)が、各行ともに横方向(列方向)に詰めた形に(0を無視した形で)格納される。   Decoding intermediate result D412 (D502) corresponding to 1 from the seventh row to the twelfth row of parity check matrix H in FIG. It is stored in a form packed in the horizontal direction (column direction) (ignoring 0).

即ち、復号途中結果格納用RAM503の第1アドレスには、検査行列Hの構成行列である(7,1)から(12,6)の和行列(6×6の単位行列を右方向に2つだけサイクリックシフトした第1のシフト行列と、右方向に4つだけサイクリックシフトした第2のシフト行列の和である和行列)を構成する第1のシフト行列の1に対応するデータが、第2アドレスには、検査行列Hの構成行列である(7,1)から(12,6)の和行列を構成する第2のシフト行列の1に対応するデータが格納される。以下、第3アドレスから第9アドレスも同様に検査行列Hの構成行列と対応づけてデータが格納される。   That is, at the first address of the decoding intermediate result storage RAM 503, the sum matrix (6 × 6 unit matrix of 2 × 6 × 6), which is the component matrix of the check matrix H, is added in the right direction. Data corresponding to 1 of the first shift matrix constituting the first shift matrix that is cyclically shifted only by 1 and the sum matrix that is the sum of the second shift matrix that is cyclically shifted by 4 in the right direction, In the second address, data corresponding to 1 of the second shift matrix constituting the sum matrix of (7,1) to (12,6), which is the constituent matrix of the check matrix H, is stored. Thereafter, data is stored in association with the configuration matrix of the check matrix H in the same manner from the third address to the ninth address.

同様に、復号途中結果格納用RAM503の第10アドレスから第18アドレスには、図13の検査行列Hの第19行目から第24行目までの1に対応するデータが、第19アドレスから第27アドレスには、検査行列Hの第31行目から第36行目までの1に対応するデータが、図13の検査行列Hに対応づけて格納される。即ち、復号途中結果格納用RAM503のワード数は、27である。   Similarly, the 10th to 18th addresses of the decoding intermediate result storage RAM 503 include data corresponding to 1 from the 19th line to the 24th line of the parity check matrix H in FIG. At address 27, data corresponding to 1 from the 31st row to the 36th row of the parity check matrix H is stored in association with the parity check matrix H of FIG. That is, the number of words in the decoding intermediate result storage RAM 503 is 27.

上述したように、復号途中結果格納用RAM502と503のワード(word)数は、27である。即ち、ワード数は、検査行列Hの行の重み(row weight)の9と行数の36とを乗算し、その乗算結果(検査行列Hの1の数)を、同時に読み出す復号途中結果D501の数の6で除算し、さらに、復号途中結果格納用メモリ413が有する復号途中結果格納用RAMの個数の2で除算した値となる。   As described above, the number of words in the decoding intermediate result storage RAMs 502 and 503 is 27. That is, the number of words is obtained by multiplying the row weight 9 of the parity check matrix H by the number 36 of the row, and the multiplication result (the number of 1s in the parity check matrix H) is simultaneously read from the decoding intermediate result D501. The value is divided by the number 6 and further divided by 2 which is the number of decoding intermediate result storage RAMs included in the decoding intermediate result storage memory 413.

以下、図16の復号途中結果格納用メモリ413の各部の動作について詳細に説明する。   Hereinafter, the operation of each part of the decoding intermediate result storage memory 413 in FIG. 16 will be described in detail.

復号途中結果格納用メモリ413には、計算部412により第1の演算が行われる場合、計算部412から第1の演算の結果得られる復号途中結果D412(uj)が供給され、その復号途中結果D412が復号途中結果格納用RAM502または復号途中結果格納用RAM503のうちの一方の所定のアドレスに書き込まれると同時に、他方から、前回の計算部412による第1の演算の結果得られた復号途中結果D412(uj)が読み出され、計算部412に出力される。一方、計算部415により第2の演算が行われる場合、復号途中結果格納用メモリ413は、復号途中結果格納用RAM502または復号途中結果格納用RAM503に書き込みを行わず、どちらか一方のRAMの所定のアドレスから復号途中結果を読み出して、サイクリックシフト回路414に供給する。 When the first calculation is performed by the calculation unit 412, the decoding intermediate result D 412 (u j ) obtained as a result of the first calculation is supplied from the calculation unit 412 to the decoding intermediate result storage memory 413. The result D412 is written to a predetermined address of one of the decoding intermediate result storage RAM 502 or the decoding intermediate result storage RAM 503, and at the same time, the decoding intermediate obtained as a result of the first calculation by the previous calculation unit 412 from the other. The result D412 (u j ) is read and output to the calculation unit 412. On the other hand, when the second calculation is performed by the calculation unit 415, the decoding intermediate result storage memory 413 does not write to the decoding intermediate result storage RAM 502 or the decoding intermediate result storage RAM 503, and the predetermined calculation of either one of the RAMs is not performed. The intermediate decoding result is read out from the address and supplied to the cyclic shift circuit 414.

具体的には、スイッチ501には、計算部412から6つの復号途中結果D412が供給されるとともに、その復号途中結果D412を書き込むメモリとして、復号途中結果格納用RAM502または復号途中結果格納用RAM503の一方の選択を表す制御信号D4221が制御部418から供給される。スイッチ501は、制御信号D4221に基づいて、復号途中結果格納用RAM502または復号途中結果格納用RAM503の一方を選択し、その選択した一方に、6つの復号途中結果D412を供給する。 Specifically, six intermediate decoding results D412 are supplied from the calculation unit 412 to the switch 501, and the decoding intermediate result storage RAM 502 or the decoding intermediate result storage RAM 503 is used as a memory for writing the decoding intermediate result D412. control signal D422 1 representing one of the selection is supplied from the control unit 418. The switch 501 selects one of the decoding intermediate result storage RAM 502 or the decoding intermediate result storage RAM 503 based on the control signal D4221, and supplies six decoding intermediate results D412 to the selected one.

復号途中結果格納用RAM502には、スイッチ501から6つの復号途中結果D412が、復号途中結果D501として供給されるとともに、制御部418からアドレスを表す制御信号D4222が供給される。復号途中結果格納用RAM502は、制御信号D4222が表すアドレスに既に格納されている前回の計算部412による第1の演算の結果得られた6つの復号途中結果D501を読み出し、復号途中結果D503としてスイッチ504に供給する。また、復号途中結果格納用RAM502は、制御信号D4222が表すアドレスに、スイッチ501から供給された6つの復号途中結果D501を格納する。 The decoding intermediate result storage RAM 502, 6 single decoding intermediate results D412 from the switch 501, is supplied as a decoded intermediate results D501, the control signal D422 2 representing the address is supplied from the control unit 418. Decoding intermediate result storage RAM502 reads the control signal D422 2 addresses already previous stored calculator 412 according to the first calculation result obtained six decoding intermediate results representative D501, as a decoding intermediate result D503 Supply to switch 504. Further, the decoding intermediate result storage RAM502 in the address indicated by the control signal D422 2, stores the six decoding intermediate results D501 supplied from the switch 501.

復号途中結果格納用RAM503には、スイッチ501から6つの復号途中結果D412が、復号途中結果D502として供給されるとともに、制御部418からアドレスを表す制御信号D4223が供給される。復号途中結果格納用RAM503は、制御信号D4223が表すアドレスに既に格納されている前回の計算部412による第1の演算の結果得られた6つの復号途中結果D502を読み出し、復号途中結果D504としてスイッチ504に供給する。また、復号途中結果格納用RAM503は、制御信号D4223が表すアドレスに、スイッチ501から供給された6つの復号途中結果D502を格納する。 The decoding intermediate result storage RAM 503, 6 single decoding intermediate results D412 from the switch 501, is supplied as a decoded intermediate results D502, the control signal D422 3 representing the address supplied from the controller 418. Decoding intermediate result storage RAM503 reads the control signal D422 3 represents addresses already stored first according to the previous calculation portion 412 and the calculation results obtained six decoding intermediate results D502, as a decoding intermediate result D504 Supply to switch 504. Further, the decoding intermediate result storage RAM503 in the address indicated by the control signal D422 3, stores the six decoding intermediate results D502 supplied from the switch 501.

スイッチ504には、復号途中結果格納用RAM502から復号途中結果D503が供給されるか、あるいは復号途中結果格納用RAM503から復号途中結果D504が供給される。また、制御部418から、復号途中結果格納用RAM502または復号途中結果格納用RAM503の一方の選択を表す制御信号D4224が供給される。スイッチ504は、制御信号D4224に基づいて、復号途中結果格納用RAM502または復号途中結果格納用RAM503の一方を選択し、その選択した一方から供給された6つの復号途中結果を、6つの復号途中結果D413として計算部412とサイクリックシフト回路414に供給する。 The switch 504 is supplied with the decoding intermediate result D503 from the decoding intermediate result storage RAM 502 or the decoding intermediate result D504 from the decoding intermediate result storage RAM 503. Further, the control unit 418, the control signal D422 4 that represents the selection of one of the decoding intermediate result storage RAM502 or decoding intermediate result storage RAM503 is supplied. Switch 504, the control signal D422 based on 4 selects one of the decoding intermediate result storage RAM502 or decoding intermediate result storage RAM 503, the six decoding intermediate results supplied from one of the the selected six decoding middle The result D413 is supplied to the calculation unit 412 and the cyclic shift circuit 414.

図17は、復号途中結果格納用メモリ413の復号途中結果格納用RAM502と復号途中結果格納用RAM503の読み出しと書き込みの動作を説明するタイミングチャートである。   FIG. 17 is a timing chart for explaining the reading and writing operations of the decoding intermediate result storage RAM 502 and the decoding intermediate result storage RAM 503 of the decoding intermediate result storage memory 413.

なお、図17において、横軸は、時間(t)を表している。また、図17では、左上から順に右下方向になるに連れて大きくなるように構成行列に付された数字iの構成行列の1に対応するデータの読み出しをRiと表し、そのデータの書き込みをWiと表す。   In FIG. 17, the horizontal axis represents time (t). In FIG. 17, reading data corresponding to 1 of the constituent matrix of the number i added to the constituent matrix so as to increase from the upper left toward the lower right is expressed as Ri, and the writing of the data is performed. Expressed as Wi.

復号途中結果格納用メモリ413では、計算部412により第1の演算が行われる場合、復号途中結果格納用RAM502が、制御信号D4222に基づいて、既に格納している、前回の計算部412の第1の演算の結果得られた復号途中結果D501のうち、同一アドレスに格納している検査行列Hの第1行目から第6行目までの1に対応する復号途中結果D501を、1クロックに6つずつ、9回(9クロック分)連続して読み出し(R0乃至R8)、スイッチ504を介して、計算部412に供給する。即ち、図13の検査行列Hの行重みは、9であるため、検査行列Hの各行の1に対応する復号途中結果は9つあり、復号途中結果格納用RAM502は、第1行目から第6行目までの1に対応する6つの復号途中結果D501を、6つ単位で9回連続して読み出し、計算部412に供給する。 The decoding intermediate result storage memory 413, if the calculation part 412 first operation is performed, the decoding intermediate result storage RAM 502, based on the control signal D422 2, already stored, the previous calculation unit 412 Of decoding intermediate result D501 obtained as a result of the first calculation, decoding intermediate result D501 corresponding to 1 from the first row to the sixth row of parity check matrix H stored at the same address is set to one clock. Are read out 9 times (for 9 clocks) continuously (R0 to R8) and supplied to the calculation unit 412 via the switch 504. That is, since the row weight of the parity check matrix H in FIG. 13 is 9, there are nine decoding intermediate results corresponding to 1 in each row of the parity check matrix H, and the decoding intermediate result storage RAM 502 has the first row from the first row. Six intermediate decoding results D501 corresponding to 1 up to the sixth line are read out 9 times in units of 6 and supplied to the calculation unit 412.

次に、復号途中結果格納用RAM503は、制御信号D4223に基づいて、既に格納している、前回の計算部412による第1の演算の結果得られた復号途中結果D502のうち、同一アドレスに格納している検査行列Hの第7行目から第12行目までの1に対応する復号途中結果D502を、6つ単位で9回連続して読み出し(R9乃至R17)、スイッチ504を介して、計算部412に供給する。そして、以降も同様に、復号途中結果格納用RAM502および503は、交互に、復号途中結果D501またはD502を、6つ単位で9回連続して読み出し、計算部412に供給する。 Next, the decoding intermediate result storage RAM503, based on the control signal D422 3, already stored, out of the previous calculation unit 412 according to the first resultant decoded intermediate results of computation D502, at the same address The decoding intermediate result D502 corresponding to 1 from the 7th row to the 12th row of the stored parity check matrix H is read out 9 times in units of 6 (R9 to R17), and via the switch 504 , And supplied to the calculation unit 412. Subsequently, similarly, the decoding intermediate result storage RAMs 502 and 503 alternately read the decoding intermediate result D501 or D502 nine times in units of six and supply them to the calculation unit 412.

ところで、ノードを1つずつ計算する計算器4121乃至4126または4151乃至4156では、ノード次数(node degree)分の遅延が生じる。例えば、計算器4121乃至4126では9クロック分の遅延が生じる。また、復号装置400が100MHzを超える高速動作を行う場合、計算器4121乃至4126では、さらに3クロック分程度の遅延が生じ、3クロック分程度のパイプライン化が必要となる。 By the way, in the calculators 412 1 to 412 6 or 415 1 to 415 6 that calculate nodes one by one, a delay corresponding to the node degree occurs. For example, the calculators 412 1 to 412 6 have a delay of 9 clocks. Further, when the decoding device 400 performs a high-speed operation exceeding 100 MHz, the calculators 412 1 to 412 6 are further delayed by about 3 clocks and need to be pipelined by about 3 clocks.

即ち、計算部412が第1の演算を行うために必要な時間、即ち復号途中結果格納用メモリ413から復号途中結果D413が読み出されてから、その復号途中結果D413を用いた第1の演算の結果得られる復号途中結果D412が復号途中結果格納用メモリ413に供給されるまでの時間は、12クロック分の時間T1となる。   That is, the time required for the calculation unit 412 to perform the first calculation, that is, after the decoding intermediate result D413 is read from the decoding intermediate result storage memory 413, the first calculation using the decoding intermediate result D413 is performed. The time until the decoding intermediate result D412 obtained as a result of the above is supplied to the decoding intermediate result storage memory 413 is a time T1 corresponding to 12 clocks.

この場合、復号途中結果格納用RAM502から復号途中結果D503の1回目の読み出し(R0)が開始されてから時間T1後に、計算部412から復号途中結果格納用メモリ413への、第1の演算の結果得られる検査行列Hの第1行目から第6行目までの1に対応する6つの復号途中結果D412の供給が開始される。その復号途中結果D413は、スイッチ501を介して復号途中結果D501として復号途中結果格納用RAM502に供給され、復号途中結果格納用RAM502は、その復号途中結果D501を、制御信号D4222に基づいて、既に読み出された復号途中結果D503が格納されていたアドレスに9回続けて格納する(W0乃至W8)。 In this case, after the time T1 after the first reading (R0) of the decoding intermediate result D503 from the decoding intermediate result storage RAM 502 is started, the first calculation is performed from the calculation unit 412 to the decoding intermediate result storage memory 413. Supply of six intermediate decoding results D412 corresponding to 1 from the first row to the sixth row of the check matrix H obtained as a result is started. The decoded intermediate results D413 are supplied to the decoding intermediate result storage RAM502 as decoded intermediate results D501 via the switch 501, the decoding intermediate result storage RAM502 is the decoded intermediate results D501, based on the control signal D422 2, It is stored nine times continuously at the address where the already decoded intermediate result D503 has been stored (W0 to W8).

即ち、復号途中結果格納用RAM502により復号途中結果D503の9回の読み出し(R0乃至R8)が終了してから、復号途中結果格納用RAM502により復号途中結果D501の9回の格納(W0乃至W8)が開始されるまでに、3クロック分の時間Tw(=T1−9)の待ち時間が生じる。   In other words, after the decoding intermediate result D503 is read nine times (R0 to R8) by the decoding intermediate result storage RAM 502, the decoding intermediate result D501 is stored nine times (W0 to W8) by the decoding intermediate result storage RAM 502. Is started for a period of time Tw (= T1-9) for three clocks.

その結果、復号途中結果格納用RAM503からの9回の読み出し(R9乃至R17)が終了してから、時間Twが経過後に復号途中結果格納用RAM502への9回の格納(W0乃至W8)が終了する。従って、復号途中結果格納用RAM503からの9回の読み出し(R9乃至R17)が終了してから、復号途中結果格納用RAM502からの9回の読み出し(R18乃至R26)を開始するまでに、時間Twの待ち時間が必要となる。   As a result, nine times of reading (R9 to R17) from the decoding intermediate result storage RAM 503 is completed, and nine times of storage (W0 to W8) to the decoding intermediate result storage RAM 502 is completed after the time Tw has elapsed. To do. Accordingly, the time Tw from the end of nine readings (R9 to R17) to the decoding intermediate result storage RAM 503 to the start of nine readings (R18 to R26) from the decoding intermediate result storage RAM 502 is completed. Waiting time is required.

図18は、図12の受信用メモリ417の詳細構成例を示している。   FIG. 18 shows a detailed configuration example of the reception memory 417 in FIG.

図18の受信用メモリ417は、プリバッファ511、スイッチ512、入力バッファ513、および受信値格納用メモリ514により構成される。受信用メモリ417には、受信値D418が間欠的に入力され、この受信値D418は、プリバッファ511とスイッチ512の端子512Aに供給される。   The reception memory 417 in FIG. 18 includes a pre-buffer 511, a switch 512, an input buffer 513, and a reception value storage memory 514. The reception value D418 is intermittently input to the reception memory 417, and the reception value D418 is supplied to the prebuffer 511 and the terminal 512A of the switch 512.

プリバッファ511には、入力バッファ513から、プリバッファ511の選択を表す制御信号D515が供給される。プリバッファ511は、その制御信号D515に応じて、受信値D418を一時的に記憶する。なお、プリバッファ511の記憶容量は、入力バッファ513から受信値格納用メモリ514へ1フレーム分の受信値D513を転送するために必要な時間内に、受信可能な受信値D418の最大数Mと、量子化ビット数との乗算値である。   A control signal D515 indicating selection of the prebuffer 511 is supplied from the input buffer 513 to the prebuffer 511. The pre-buffer 511 temporarily stores the received value D418 according to the control signal D515. Note that the storage capacity of the pre-buffer 511 is the maximum number M of received values D418 that can be received within the time required to transfer the received value D513 for one frame from the input buffer 513 to the received value storage memory 514. , The multiplication value with the number of quantization bits.

これに対して、後述するように、入力バッファ513と受信値格納用メモリ514の記憶容量は、1フレーム分の受信値のデータ量、即ち、符号長と量子化ビット数の乗算値であるので、プリバッファ511の記憶容量は、入力バッファ513と受信値格納用メモリ514の記憶容量に比べて十分に小さい。   On the other hand, as will be described later, the storage capacity of the input buffer 513 and the reception value storage memory 514 is the data amount of the reception value for one frame, that is, the product of the code length and the number of quantization bits. The storage capacity of the pre-buffer 511 is sufficiently smaller than the storage capacity of the input buffer 513 and the received value storage memory 514.

また、プリバッファ511は、記憶している受信値D418を受信値D511として連続的に読み出し、スイッチ512を介して入力バッファ513に供給する。さらに、プリバッファ511は、読み出し済みの受信値D418を削除する。プリバッファ511は、記憶している受信値D418がなくなった場合、スイッチ512に、端子512Aの選択を表す制御信号D514を供給する。   Further, the pre-buffer 511 continuously reads the stored received value D418 as the received value D511 and supplies it to the input buffer 513 via the switch 512. Further, the pre-buffer 511 deletes the received reception value D418 that has been read. The pre-buffer 511 supplies a control signal D514 indicating selection of the terminal 512A to the switch 512 when there is no stored reception value D418.

スイッチ512は、3つの端子512A乃至512Cを有している。端子512Aには受信値D418が入力され、端子512Bにはプリバッファ511が接続され、端子512Cには入力バッファ513が接続される。スイッチ512は、プリバッファ511から供給される制御信号D514に応じて、端子512Aと端子512Cを接続し、端子512Aに入力される受信値D418を、受信値D512として入力バッファ513に入力する。また、スイッチ512は、入力バッファ513から供給される制御信号D515に応じて、端子512Bと端子512Cを接続し、プリバッファ511から読み出された受信値D511を、受信値D512として入力バッファ513に入力する。   The switch 512 has three terminals 512A to 512C. The received value D418 is input to the terminal 512A, the pre-buffer 511 is connected to the terminal 512B, and the input buffer 513 is connected to the terminal 512C. The switch 512 connects the terminal 512A and the terminal 512C according to the control signal D514 supplied from the pre-buffer 511, and inputs the reception value D418 input to the terminal 512A to the input buffer 513 as the reception value D512. The switch 512 connects the terminal 512B and the terminal 512C according to the control signal D515 supplied from the input buffer 513, and the received value D511 read from the prebuffer 511 is input to the input buffer 513 as the received value D512. input.

入力バッファ513の記憶容量は、例えば、符号長と量子化ビット数の乗算値であり、入力バッファ513は、スイッチ512により入力される受信値D512を、一時的に1フレーム分記憶する。なお、ここでは、入力バッファ513のビット幅は、受信値格納用メモリ514のビット幅の1/N(Nは2以上の整数)倍であり、ワード数は、受信値格納用メモリ514のワード数のN倍であるものとするが、入力バッファ513のビット幅は、受信値格納用メモリ514のビット幅より小さければ、1/N倍である必要はない。   The storage capacity of the input buffer 513 is, for example, a multiplication value of the code length and the number of quantization bits, and the input buffer 513 temporarily stores the received value D512 input by the switch 512 for one frame. Here, the bit width of the input buffer 513 is 1 / N (N is an integer of 2 or more) times the bit width of the received value storage memory 514, and the number of words is the number of words in the received value storage memory 514. Although the bit width of the input buffer 513 is smaller than the bit width of the received value storage memory 514, it is not necessary to be 1 / N times.

入力バッファ513は、1フレーム分の受信値D512の書き込みを完了した場合、例えば、入力バッファ513の空き容量がゼロになった場合、プリバッファ511とスイッチ512に制御信号D515を入力する。そして、入力バッファ513は、記憶している1フレーム分の受信値D512を、受信値D513として連続的に読み出し、受信値格納用メモリ514に転送する。即ち、入力バッファ513は、1フレーム単位、つまり、符号語単位で、受信値D512を連続的に読み出し、受信値格納用メモリ514に転送する。   The input buffer 513 inputs the control signal D515 to the prebuffer 511 and the switch 512 when the writing of the reception value D512 for one frame is completed, for example, when the free capacity of the input buffer 513 becomes zero. Then, the input buffer 513 continuously reads the stored received value D512 for one frame as the received value D513, and transfers it to the received value storage memory 514. That is, the input buffer 513 continuously reads the received value D512 in units of one frame, that is, in codeword units, and transfers the received value D512 to the received value storage memory 514.

受信値格納用メモリ514は、入力バッファ513に直列に接続され、受信値格納用メモリ514の記憶容量は、符号長と量子化ビット数の乗算値である。受信値格納用メモリ514は、入力バッファ513から転送されてくる1フレーム分の受信値D513を、第1アドレスから順に格納する。   The reception value storage memory 514 is connected in series to the input buffer 513, and the storage capacity of the reception value storage memory 514 is a product of the code length and the number of quantization bits. The reception value storage memory 514 stores the reception value D513 for one frame transferred from the input buffer 513 in order from the first address.

なお、上述したように、6つの計算器4151乃至4156は、同時に第2の演算を行うので、受信値格納用メモリ514は、6つの受信値D419を同時に計算器4151乃至4156のそれぞれに供給する必要がある。従って、受信値格納用メモリ514は、例えば、6つの受信値D419を同時に読み出し可能なシングルポートRAMで構成され、受信値格納用メモリ514のビット幅は、量子化ビット数の6倍のビットであり、ワード数は、符号長(いまの場合、108)から6を除算した値(いまの場合、18)である。 As described above, since the six calculators 415 1 to 415 6 perform the second calculation at the same time, the received value storage memory 514 simultaneously outputs the six received values D419 to the calculators 415 1 to 415 6 . Each needs to be supplied. Accordingly, the reception value storage memory 514 is configured by, for example, a single port RAM that can simultaneously read six reception values D419, and the bit width of the reception value storage memory 514 is 6 times the number of quantization bits. Yes, the number of words is a value obtained by dividing 6 from the code length (108 in this case) (18 in this case).

具体的には、受信値格納用メモリ514の第1アドレスには、検査行列Hの列に対応する受信値D513のうち、第1列から第6列目の受信値D513が格納される。そして、同様に、第2アドレスには、第7列目から第12列目の受信値D513が格納され、第3アドレスには、第13列目から第18列目の受信値D513が格納される。以後、同様に、第103列目から第108列目までの受信値D513が、6個ずつ、第4アドレスから第18アドレスまで格納され、計108個の受信値D513が受信値格納用メモリ514格納される。   Specifically, among the reception values D513 corresponding to the columns of the check matrix H, the reception values D513 in the first to sixth columns are stored in the first address of the reception value storage memory 514. Similarly, received values D513 in the seventh column to the twelfth column are stored in the second address, and received values D513 in the thirteenth column to the eighteenth column are stored in the third address. The Thereafter, similarly, received values D513 from the 103rd column to the 108th column are stored in increments of 6 from the 4th address to the 18th address, and a total of 108 received values D513 are stored in the received value storage memory 514. Stored.

受信値格納用メモリ514は、記憶している1フレーム分の受信値D513を、ワード単位で6つずつ読み出し、その読み出した6つの受信値D513を6つの受信値D419として計算部415(図12)に供給する。   The received value storage memory 514 reads the received values D513 for one frame stored in units of words in units of six words, and the calculated six received values D513 as six received values D419 are calculated by a calculation unit 415 (FIG. 12). ).

以上のように、受信用メモリ417では、入力バッファ513と受信値格納用メモリ514が直列に接続され、計算部415への受信値D419の出力が、1つの受信値格納用メモリ514で行われるので、入力バッファ513は、6つの受信値D419を同時に読み出す必要がなく、入力バッファ513のビット幅を、量子化ビット数の6倍のビットより小さくすることができる。その結果、量子化ビット数の6倍のビット幅を有する2つの受信値格納用メモリ212および213から構成される従来の受信用メモリ104(図11)に比べて、受信用メモリ417を構成するRAMマクロの数を削減し、これにより、受信用メモリ417の回路規模を削減することができる。   As described above, in the reception memory 417, the input buffer 513 and the reception value storage memory 514 are connected in series, and output of the reception value D419 to the calculation unit 415 is performed by one reception value storage memory 514. Therefore, the input buffer 513 does not need to read the six received values D419 at the same time, and the bit width of the input buffer 513 can be made smaller than six times the number of quantization bits. As a result, the reception memory 417 is configured as compared with the conventional reception memory 104 (FIG. 11) configured by the two reception value storage memories 212 and 213 having a bit width 6 times the number of quantization bits. By reducing the number of RAM macros, the circuit scale of the reception memory 417 can be reduced.

次に、図19を参照して、図18の受信用メモリ417におけるタイミングについて説明する。   Next, timing in the reception memory 417 in FIG. 18 will be described with reference to FIG.

図19Aに示すように、時刻tAにおいて、受信用メモリ417に対する、先頭からi番目のフレームであるフレーム#iの受信値D418の間欠的な入力が開始されると、図19Bに示すように、プリバッファ511は、入力バッファ513からの制御信号D515に応じて、受信値D418の書き込みを開始し、後述するフレーム#iの1つ前のフレーム#i−1の受信値D513の、受信値格納用メモリ514への転送が終了する時刻tBまでの時間Aの間、受信値D418の書き込みのみを行う(図中、Wi)。なお、フレーム#iの受信値D418の先頭には、上述したように、実際の値の前にヘッダが付加されているので、プリバッファ511は、実際の値が受信される時刻tA´から書き込みを開始する。 As shown in FIG. 19A, when intermittent input of the reception value D418 of frame #i, which is the i-th frame from the beginning, is started to the reception memory 417 at time t A as shown in FIG. 19B. The pre-buffer 511 starts writing the received value D418 in response to the control signal D515 from the input buffer 513, and receives the received value of the received value D513 of the frame # i-1 immediately before the frame #i described later. During the time A up to the time t B when the transfer to the storage memory 514 ends, only the reception value D418 is written (W i in the figure). Since the header is added before the actual value at the beginning of the reception value D418 of the frame #i as described above, the prebuffer 511 starts from the time t A ′ when the actual value is received. Start writing.

また、時刻tA´から時刻tBまでの間、図19Dに示すように、スイッチ512は、入力バッファ513からの制御信号D515に応じて、プリバッファ511を選択するが、図19Bに示したように、プリバッファ511は読み出しを行わない。従って、図19Cに示すように、プリバッファ511からスイッチ512には何も供給されず、図19Eに示すように、スイッチ512から入力バッファ513にも何も供給されない。 Further, from time t A ′ to time t B , as shown in FIG. 19D, the switch 512 selects the pre-buffer 511 in accordance with the control signal D515 from the input buffer 513, as shown in FIG. 19B. As described above, the pre-buffer 511 does not perform reading. Accordingly, nothing is supplied from the pre-buffer 511 to the switch 512 as shown in FIG. 19C, and nothing is supplied from the switch 512 to the input buffer 513 as shown in FIG. 19E.

一方、図19Fに示すように、時刻tAにおいて、入力バッファ513は、既に記憶しているフレーム#i−1の受信値D512の読み出し、および、その受信値D512の受信値格納用メモリ514への転送を開始し(図中、Ri-1)、これにより、図19Gに示すように、受信値格納用メモリ514には、フレーム#i−1の受信値D512が受信値D513として供給される。そして、図19Hに示すように、受信値格納用メモリ514は、入力バッファ513から供給される、フレーム#i−1の受信値D513の書き込みを開始する(図中、Wi-1)。 On the other hand, as shown in FIG. 19F, at time t A , the input buffer 513 reads the received value D512 of the frame # i−1 that has already been stored, and stores the received value D512 in the received value storage memory 514. It starts the transfer (in the figure, R i-1), thereby, as shown in FIG. 19G, the received-value storage memory 514, frame # i-1 of the received value D512 is supplied as a received value D513 The Then, as shown in FIG. 19H, the reception value storage memory 514 starts writing the reception value D513 of the frame # i−1 supplied from the input buffer 513 (W i−1 in the figure).

時刻tAから時間A後の時刻tBにおいて、図19F乃至図19Hに示すように、入力バッファ513から受信値格納用メモリ514へのフレーム#i−1の受信値D513の転送が終了すると、図19Bに示すように、プリバッファ511は、間欠的に供給されるフレーム#iの受信値D418の書き込みと、既に書き込まれているフレーム#iの受信値D418の連続的な読み出しの両方を開始する(図中、Wi&Ri)。従って、図19Cに示すように、プリバッファ511からスイッチ512には、フレーム#iの受信値D418が、無効時間分を詰めた状態で受信値D511として入力される。 At time t B after the time A from the time t A, as shown in FIG. 19F to FIG. 19H, the transfer of the frame # i-1 received value D513 from the input buffer 513 to the received-value storage memory 514 is completed, As shown in FIG. 19B, the pre-buffer 511 starts both writing of the reception value D418 of the frame #i supplied intermittently and continuous reading of the reception value D418 of the frame #i already written. (W i & R i in the figure). Accordingly, as shown in FIG. 19C, the received value D418 of frame #i is input from the pre-buffer 511 to the switch 512 as the received value D511 with the invalid time reduced.

このとき、図19Dに示すように、スイッチ512は、プリバッファ511を選択したままであり、図19Eに示すように、プリバッファ511から読み出されたフレーム#iの受信値D511を、受信値D512として入力バッファ513に供給する。また、図19Fに示すように、時刻tBにおいて、入力バッファ513は、フレーム#i−1の受信値D513の読み出しを終了し、スイッチ512から供給される、フレーム#iの受信値D512の書き込みを開始する(図中、Wi)。従って、図19Gに示すように、受信値格納用メモリ514には、受信値D513が入力されなくなる。このとき、図19Hに示すように、受信値格納用メモリ514は、時間Aに書き込んだフレーム#i−1の受信値D513を6個単位で受信値D419として読み出し、計算部415に供給する。その結果、フレーム#i−1の繰り返し復号が行われる(繰り返し復号#i−1)。 At this time, as shown in FIG. 19D, the switch 512 keeps selecting the pre-buffer 511, and the received value D511 of the frame #i read from the pre-buffer 511 is changed to the received value as shown in FIG. This is supplied to the input buffer 513 as D512. Also, as shown in FIG. 19F, at time t B , the input buffer 513 finishes reading the received value D513 of frame # i−1 and writes the received value D512 of frame #i supplied from the switch 512. Is started (W i in the figure). Accordingly, as shown in FIG. 19G, the received value D513 is not input to the received value storage memory 514. At this time, as shown in FIG. 19H, the received value storage memory 514 reads the received value D513 of frame # i−1 written at time A as received values D419 in units of six, and supplies them to the calculation unit 415. As a result, iterative decoding of frame # i-1 is performed (iterative decoding # i-1).

ところで、プリバッファ511には受信値D418が間欠的に供給されるが、プリバッファ511からは受信値D418が連続的に読み出されるので、受信値D418の書き込みと読み出しを両方行うと、所定の時間経過後にプリバッファ511が空になる。図19の例では、この所定の時間は時間Bであるものとする。   By the way, the reception value D418 is intermittently supplied to the pre-buffer 511, but the reception value D418 is continuously read from the pre-buffer 511. Therefore, if both the writing and reading of the reception value D418 are performed, a predetermined time is obtained. After the elapse, the prebuffer 511 is emptied. In the example of FIG. 19, this predetermined time is assumed to be time B.

従って、図19Bに示すように、プリバッファ511は、時刻tBから時間B後の時刻tCにおいて、受信値D418の書き込みと読み出しを終了し(図中、NO)、これにより、図19Cに示すように、プリバッファ511からスイッチ512への受信値D511の供給が終了される。このとき、プリバッファ511は、制御信号D514をスイッチ512に供給し、スイッチ512は、図19Dに示すように、その制御信号D514に応じて端子512Aを選択する。その結果、図19Eに示すように、間欠的に入力されるフレーム#iの受信値D418が、そのまま受信値D512として入力バッファ513に入力される。 Accordingly, as shown in FIG. 19B, the pre-buffer 511 finishes writing and reading the received value D418 (NO in the figure) at time t C after time B from time t B , thereby causing FIG. As shown, the supply of the received value D511 from the prebuffer 511 to the switch 512 is terminated. At this time, the pre-buffer 511 supplies the control signal D514 to the switch 512, and the switch 512 selects the terminal 512A according to the control signal D514 as shown in FIG. 19D. As a result, as shown in FIG. 19E, the reception value D418 of the frame #i that is intermittently input is input as it is to the input buffer 513 as the reception value D512.

また、図19Fに示すように、時刻tCにおいても、入力バッファ513は、スイッチ512から入力される、フレーム#iの受信値D512の書き込みを続け、時刻tDにおいて、フレーム#iの受信値D512のすべての書き込みを完了すると、書き込みを終了する。即ち、入力バッファ513は、時刻tBから時刻tCまでの時間Bの間、プリバッファ511から連続的に入力される受信値D511を受信値D512として書き込み、時刻tCから時刻tDまでの時間Cの間、プリバッファ511を介さずに間欠的に直接入力される受信値D418を受信値D512として書き込むことにより、フレーム#iのすべての受信値D418を書き込む。 Also, as shown in FIG. 19F, at time t C , the input buffer 513 continues to write the received value D512 of frame #i input from the switch 512, and at time t D , the received value of frame #i. When all writing of D512 is completed, the writing ends. That is, the input buffer 513 writes the reception value D511 continuously input from the pre-buffer 511 as the reception value D512 during the time B from time t B to time t C , and from time t C to time t D. During time C, all received values D418 of frame #i are written by writing received values D418 that are directly input intermittently without passing through the pre-buffer 511 as received values D512.

このように、時間BとCの間、入力バッファ513は書き込みを行っており、読み出しを行わないので、図19Gに示すように、時刻tCから時間Cの間においても、入力バッファ513から受信値格納用メモリ514に受信値D513は供給されない。従って、時刻tCから時間Cの間においても、フレーム#i−1の繰り返し復号は行われ続ける。そして、時刻tCから時間C後の時刻tDにおいて、フレーム#i−1の所定の回数の復号が完了すると、その復号は終了される。 As described above, since the input buffer 513 performs writing and does not perform reading during the time B and C, the reception from the input buffer 513 is also performed between the time t C and the time C as shown in FIG. 19G. The received value D513 is not supplied to the value storage memory 514. Therefore, iterative decoding of frame # i-1 continues to be performed between time t C and time C. When the predetermined number of times of decoding of frame # i-1 is completed at time t D after time C from time t C , the decoding ends.

次に、図19Aに示すように、時刻tDにおいて、受信用メモリ417に対する、フレーム#iの次のフレーム#i+1の受信値D418の間欠的な入力が開始されると、時刻tAから時刻tDまでの時間A乃至Cと同様に処理が行われる。 Next, as shown in FIG. 19A, at time t D, for receiving memory 417, the intermittent input received value D418 of the next frame # i + 1 of the frame #i is started, time from time t A Processing is performed in the same manner as the times A to C until t D.

即ち、時刻tDから時刻tEまでの時間Aの間、図19F乃至図19Hに示すように、時刻tBから時刻tDまでの間に入力バッファ513に書き込まれたフレーム#iの受信値D512の読み出し、および、その受信値D512の受信値格納用メモリ514への転送が行われるとともに(図中、Ri)、受信値格納用メモリ514からの6つの受信値D419の書き込みが行われる(図中、Wi)。また、図19Bに示すように、フレーム#i+1の実際の値が受信される時刻tD´から時刻tEまでの間、プリバッファ511は、フレーム#i+1の受信値D418の書き込みのみを行い(図中、Wi+1)、図19Dに示すように、スイッチ512は、入力バッファ513からの制御信号D515に応じて、プリバッファ511を選択するので、図19Cと図19Eに示すように、プリバッファ511から入力バッファ513には何も供給されない。 That is, during time A from time t D to time t E , as shown in FIGS. 19F to 19H, the received value of frame #i written to the input buffer 513 from time t B to time t D is shown. The D512 is read and the received value D512 is transferred to the received value storage memory 514 (R i in the figure), and the six received values D419 from the received value storage memory 514 are written. (W i in the figure). Further, as shown in FIG. 19B, between the time t D 'the actual value of the frame # i + 1 is received until time t E, the pre-buffer 511, only performs writing received values D418 of frame # i + 1 ( In the figure, W i + 1 ), as shown in FIG. 19D, the switch 512 selects the pre-buffer 511 in accordance with the control signal D515 from the input buffer 513. Therefore, as shown in FIGS. 19C and 19E, Nothing is supplied from the pre-buffer 511 to the input buffer 513.

そして、図19B乃至図19Fに示すように、時刻tEから時刻tFまでの時間Bおよび時刻tFから時刻tGまでの時間Cの間、時刻tDからプリバッファ511に書き込まれるフレーム#i+1の受信値D418と、プリバッファ511に書き込まれずに直接供給されるフレーム#i+1の受信値D418が入力バッファ513に書き込まれ(図中、Wi+1)、この間、フレーム#iの復号が所定の回数繰り返される(図中、繰り返し復号#i)。 Then, as shown in FIGS. 19B to 19F, the frame # written in the prebuffer 511 from the time t D during the time B from the time t E to the time t F and the time C from the time t F to the time t G. The received value D418 of i + 1 and the received value D418 of frame # i + 1 supplied directly without being written to the prebuffer 511 are written to the input buffer 513 (W i + 1 in the figure), and during this time, the decoding of frame #i is performed. It is repeated a predetermined number of times (in the figure, iterative decoding #i).

以上のように、受信値D418は間欠的に供給されるので、連続的にプリバッファ511から読み出される、時間AとBの間に受信される各フレームの受信値D418の無効時間を利用して、その無効時間以内であれば、入力バッファ513から受信値格納用メモリ514に受信値D513を転送することができる。従って、受信用メモリ417では、入力バッファ513と受信値格納用メモリ514を直列に接続することができ、その結果、上述したように回路規模を削減することができる。   As described above, since the reception value D418 is intermittently supplied, the invalid time of the reception value D418 of each frame received between the times A and B continuously read from the prebuffer 511 is used. If it is within the invalid time, the received value D513 can be transferred from the input buffer 513 to the received value storage memory 514. Therefore, in the reception memory 417, the input buffer 513 and the reception value storage memory 514 can be connected in series, and as a result, the circuit scale can be reduced as described above.

なお、受信値D513を転送する時間Aが、時間BおよびCと比較して十分に短くなるように設計することは容易である。この設計により、時間Aが長いことによる復号劣化を抑制することができる。   It is easy to design the time A for transferring the reception value D513 to be sufficiently shorter than the times B and C. With this design, it is possible to suppress degradation of decoding due to the long time A.

次に、図20を参照して、図18の受信用メモリ417における受信値処理について説明する。この受信値処理は、例えば、各フレームの受信値D418が受信用メモリ417に間欠的に入力されたとき、開始される。   Next, reception value processing in the reception memory 417 of FIG. 18 will be described with reference to FIG. This reception value processing is started, for example, when the reception value D418 of each frame is intermittently input to the reception memory 417.

ステップS21において、プリバッファ511は、間欠的に入力される受信値D418の書き込みを開始する。ステップS22において、スイッチ512は、前のフレームに対するステップS31の処理で、入力バッファ513から制御信号D515が入力されたかどうかを判定する。   In step S21, the pre-buffer 511 starts writing the reception value D418 that is input intermittently. In step S22, the switch 512 determines whether or not the control signal D515 is input from the input buffer 513 in the process of step S31 for the previous frame.

ステップS22において、制御信号D515が入力されていないと判定された場合、即ち、前のフレームの受信値D512の入力バッファ513への書き込みが終了していない場合、スイッチ512は、制御信号D515が入力されるまで待機する。一方、ステップS22において、制御信号D515が入力されたと判定された場合、即ち、前のフレームの受信値D512の入力バッファ513への書き込みが終了した場合、ステップS23において、スイッチ512は、その制御信号D515に応じて、プリバッファ511と入力バッファ513を接続する。   If it is determined in step S22 that the control signal D515 has not been input, that is, if the reception value D512 of the previous frame has not been written to the input buffer 513, the switch 512 receives the control signal D515. Wait until On the other hand, if it is determined in step S22 that the control signal D515 has been input, that is, if writing of the received value D512 of the previous frame to the input buffer 513 is completed, in step S23, the switch 512 controls the control signal D515. The pre-buffer 511 and the input buffer 513 are connected according to D515.

ステップS24において、プリバッファ511は、制御信号D515に応じて、既に書き込まれている受信値D418の受信値D511としての連続的な読み出しを開始する。即ち、プリバッファ511は、受信値D418の書き込みを行うとともに、受信値D511の読み出しを行う。プリバッファ511から読み出された受信値D511は、スイッチ512に供給され、受信値D512として入力バッファ513に供給される。   In step S24, the pre-buffer 511 starts continuous reading of the reception value D418 already written as the reception value D511 in response to the control signal D515. That is, the pre-buffer 511 writes the received value D418 and reads the received value D511. The received value D511 read from the pre-buffer 511 is supplied to the switch 512, and is supplied to the input buffer 513 as the received value D512.

ステップS25において、入力バッファ513は、スイッチ512を介してプリバッファ511から供給される受信値D512の書き込みを開始する。ステップS26において、プリバッファ511は、プリバッファ511が空になったかどうか、即ち、プリバッファ511に書き込まれた受信値D418がすべて読み出されたかどうかを判定し、プリバッファ511が空になっていないと判定した場合、空になるまで待機する。   In step S25, the input buffer 513 starts writing the received value D512 supplied from the prebuffer 511 via the switch 512. In step S26, the pre-buffer 511 determines whether or not the pre-buffer 511 is empty, that is, whether or not all the reception values D418 written to the pre-buffer 511 have been read, and the pre-buffer 511 is empty. If not, wait until it is empty.

一方、ステップS26において、プリバッファ511が空になったと判定された場合、ステップS27において、プリバッファ511は、受信値D418の書き込みと読み出しを終了する。ステップS28において、プリバッファ511は、制御信号D514をスイッチ512に出力する。ステップS29において、スイッチ512は、プリバッファ511から供給される制御信号D514に応じて、端子512Aと入力バッファ513を接続する。   On the other hand, if it is determined in step S26 that the prebuffer 511 is empty, in step S27, the prebuffer 511 ends writing and reading of the received value D418. In step S <b> 28, the prebuffer 511 outputs the control signal D514 to the switch 512. In step S29, the switch 512 connects the terminal 512A and the input buffer 513 according to the control signal D514 supplied from the prebuffer 511.

ステップS30において、入力バッファ513は、1フレーム分の受信値D512が書き込まれたかどうか、即ち、入力バッファ513の空き容量がゼロになったかどうかを判定する。ステップS30で1フレーム分の受信値D512がまだ書き込まれていないと判定された場合、1フレーム分の受信値D512がすべて書き込まれるまで待機する。   In step S30, the input buffer 513 determines whether or not the received value D512 for one frame has been written, that is, whether or not the free capacity of the input buffer 513 has become zero. If it is determined in step S30 that the reception value D512 for one frame has not yet been written, the process waits until all the reception values D512 for one frame are written.

一方、ステップS30で1フレーム分の受信値D512が書き込まれたと判定された場合、ステップS31において、入力バッファ513は、制御信号D515をプリバッファ511とスイッチ512に出力する。この制御信号D515は、いま入力バッファ513に書き込まれた受信値D512に対応するフレームの次のフレームに対する、ステップS22の処理で、スイッチ512に入力されたかどうかが判定される。   On the other hand, if it is determined in step S30 that the received value D512 for one frame has been written, the input buffer 513 outputs the control signal D515 to the prebuffer 511 and the switch 512 in step S31. It is determined whether or not this control signal D515 has been input to the switch 512 in the process of step S22 for the frame next to the frame corresponding to the received value D512 written in the input buffer 513.

ステップS32において、入力バッファ513は、書き込まれている1フレーム分の受信値D512を受信値D513として読み出し、その受信値D513の受信値格納用メモリ514への転送を開始する。   In step S32, the input buffer 513 reads the received value D512 for one frame written as the received value D513, and starts transferring the received value D513 to the received value storage memory 514.

ステップS33において、受信値格納用メモリ514は、入力バッファ513から転送されてきた受信値D513の書き込みを開始する。ステップS34において、入力バッファ513は、1フレーム分の受信値D513の転送が完了したかどうか、即ち、書き込まれている受信値D513のすべてを転送したかどうかを判定し、1フレーム分の受信値D513の転送がまだ完了していないと判定した場合、転送が完了するまで待機する。   In step S <b> 33, the reception value storage memory 514 starts writing the reception value D <b> 513 transferred from the input buffer 513. In step S34, the input buffer 513 determines whether or not the transfer of the reception value D513 for one frame has been completed, that is, whether or not all of the written reception values D513 have been transferred. If it is determined that the transfer of D513 is not yet completed, the process waits until the transfer is completed.

一方、ステップS34で1フレーム分の受信値D513の転送が完了したと判定された場合、ステップS35において、入力バッファ513は、受信値D513の転送を終了する。ステップS36において、受信値格納用メモリ514は、入力バッファ513から転送されてきた受信値D513の書き込みを終了する。   On the other hand, if it is determined in step S34 that the transfer of the received value D513 for one frame has been completed, the input buffer 513 ends the transfer of the received value D513 in step S35. In step S36, the received value storage memory 514 finishes writing the received value D513 transferred from the input buffer 513.

ステップS37において、受信値格納用メモリ514は、書き込まれた受信値D513を、ワード単位で6つずつ読み出し、受信値D419として、計算部415に出力する。そして、処理は終了する。   In step S <b> 37, the received value storage memory 514 reads out the written received values D513 in units of 6 words, and outputs the received values D419 to the calculator 415 as received values D419. Then, the process ends.

次に、図21を参照して、図12の復号装置400における復号処理について説明する。この復号処理は、例えば、受信用メモリ417から各フレームの受信値D419が6つ単位で読み出されたとき、開始される。   Next, with reference to FIG. 21, the decoding process in the decoding device 400 of FIG. 12 will be described. This decoding process is started, for example, when the reception value D419 of each frame is read from the reception memory 417 in units of six.

ステップS49において、制御部418は、復号途中結果格納用RAM502および503(図16)のうちのいずれか1つを読み出しメモリとして選択し、その選択を表す制御信号D4224をスイッチ504に供給する。スイッチ504は、制御信号D4224に基づいて、復号途中結果格納用RAM502または503を選択し、その選択した復号途中結果格納用RAM502または503から6つ単位で供給される復号途中結果D503またはD504を、復号途中結果D413としてサイクリックシフト回路414と計算部412に供給する。 In step S49, the control unit 418 selects any one of the decoding intermediate result storage RAMs 502 and 503 (FIG. 16) as a read memory, and supplies a control signal D422 4 indicating the selection to the switch 504. Switch 504, based on the control signal D422 4, and select the decoded intermediate result storage RAM502 or 503, the decoding intermediate result D503 or D504 supplied from the decoding intermediate result storage RAM502 or 503 the selected six units The result is supplied to the cyclic shift circuit 414 and the calculation unit 412 as a decoding intermediate result D413.

ステップS49の処理後は、ステップS50に進み、サイクリックシフト回路414は、復号途中結果格納用メモリ413のスイッチ504から供給される6つの復号途中結果D413(uj)をサイクリックシフトし、計算部415に供給する。 After the processing of step S49, the process proceeds to step S50, where the cyclic shift circuit 414 cyclically shifts the six decoding intermediate results D413 (u j ) supplied from the switch 504 of the decoding intermediate result storage memory 413 to calculate To the unit 415.

具体的には、サイクリックシフト回路414には、復号途中結果格納用メモリ413から6つ単位で復号途中結果D413が供給されるとともに、制御部418から、その復号途中結果D413に対応するMatrixデータを表す制御信号D423が供給される。サイクリックシフト回路414は、制御信号D423を基に、6つの復号途中結果D413をサイクリックシフトし、その結果を復号途中結果D414として、計算部415に供給する。   Specifically, the cyclic intermediate circuit D414 is supplied with the decoding intermediate result D413 in units of six from the decoding intermediate result storage memory 413, and from the control unit 418, the Matrix data corresponding to the decoding intermediate result D413. Is supplied with a control signal D423. The cyclic shift circuit 414 cyclically shifts the six decoding intermediate results D413 based on the control signal D423, and supplies the result to the calculation unit 415 as a decoding intermediate result D414.

ステップS51において、計算部415は、第2の演算を行い、その演算の結果である復号途中結果D415をスイッチ416に供給する。   In step S51, the calculation unit 415 performs the second calculation, and supplies the decoding intermediate result D415, which is the result of the calculation, to the switch 416.

具体的には、計算部415には、ステップS50でサイクリックシフト回路414から6つの復号途中結果D414が供給されるとともに、受信用メモリ417から6つの受信値D419が供給され、復号途中結果D414と受信値D419が、計算部415の計算器4151乃至4156それぞれに1つずつ供給される。さらに、計算部415には、制御部418から制御信号D424が供給され、その制御信号D424が計算器4151乃至4156に供給される。 Specifically, the decoding unit 415 is supplied with six intermediate decoding results D414 from the cyclic shift circuit 414 in step S50, and is also supplied with six reception values D419 from the reception memory 417, and the intermediate decoding result D414. The received value D419 is supplied to each of the calculators 415 1 to 415 6 of the calculation unit 415. Further, a control signal D424 is supplied from the control unit 418 to the calculation unit 415, and the control signal D424 is supplied to the calculators 415 1 to 415 6 .

計算器4151乃至4156は、復号途中結果D414と受信値D419を用いて、制御信号D424に基づいて、式(5)にしたがって、それぞれ第2の演算を行い、その第2の演算の結果得られる検査行列Hの列に対応する復号途中結果D415(v)をスイッチ416に供給する。 Calculators 415 1 to 415 6 use decoding intermediate result D414 and received value D419, respectively, to perform a second calculation according to equation (5) based on control signal D424, and the result of the second calculation The decoding intermediate result D415 (v) corresponding to the column of the check matrix H obtained is supplied to the switch 416.

なお、受信用メモリ417から供給された受信値D419に対して、まだ第1の演算が行われておらず、復号途中結果格納用メモリ413に復号途中結果D412が格納されていない場合、計算部415は、復号途中結果ujを初期値に設定し、第2の演算を行う。 When the first calculation has not yet been performed on the reception value D419 supplied from the reception memory 417, and the decoding intermediate result D412 is not stored in the decoding intermediate result storage memory 413, the calculation unit In step S415, the decoding intermediate result u j is set to an initial value, and the second calculation is performed.

ステップS52において、制御部418は、予め設定された所定の回数だけ復号が行われたかどうか、即ち、予め設定された所定の回数だけ第1の演算と第2の演算が行われたかどうかを判定する。ステップS52で、所定の回数だけまだ復号が行われていないと判定された場合、ステップS53において、スイッチ416は、計算部415から供給される6つの復号途中結果D415(v)を復号途中結果格納用メモリ410に供給する。   In step S52, the control unit 418 determines whether decoding has been performed a predetermined number of times, that is, whether the first calculation and the second calculation have been performed a predetermined number of times. To do. If it is determined in step S52 that decoding has not been performed a predetermined number of times, the switch 416 stores the six decoding intermediate results D415 (v) supplied from the calculation unit 415 in step S53. Supply to the memory 410.

ステップS54において、復号途中結果格納用メモリ410は、スイッチ416から供給された6つの復号途中結果D415(v)を、同一アドレスに格納する。   In step S54, the decoding intermediate result storage memory 410 stores the six decoding intermediate results D415 (v) supplied from the switch 416 at the same address.

ステップS55において、制御部418は、計算部415により、検査行列Hの列に対応する全ての復号途中結果D415が演算されたかどうかを判定し、全ての復号途中結果D415が演算されていないと判定した場合、ステップS49に戻り、上述した処理を繰り返す。   In step S55, the control unit 418 determines whether all the decoding intermediate results D415 corresponding to the columns of the check matrix H have been calculated by the calculation unit 415, and determines that all the decoding intermediate results D415 have not been calculated. If so, the process returns to step S49 and the above-described processing is repeated.

一方、ステップS55において、制御部418は、計算部415により、検査行列Hの列に対応する全ての復号途中結果D415が演算されたと判定した場合、ステップS56において、サイクリックシフト回路411は、制御部418から供給される制御信号D420を基に、復号途中結果格納用メモリ410から供給される6つの復号途中結果D410(v)をサイクリックシフトし、その結果を6つ単位で復号途中結果D411として、計算部412に供給する。   On the other hand, in step S55, when the control unit 418 determines that all the decoding intermediate results D415 corresponding to the columns of the check matrix H are calculated by the calculation unit 415, in step S56, the cyclic shift circuit 411 Based on the control signal D420 supplied from the unit 418, the six decoding intermediate results D410 (v) supplied from the decoding intermediate result storage memory 410 are cyclically shifted, and the results are decoded in units of six D411. Is supplied to the calculation unit 412.

ステップS57において、計算部412は、第1の演算を行い、その第1の演算の結果である復号途中結果D412を復号途中結果格納用メモリ413に供給する。   In step S57, the calculation unit 412 performs the first calculation, and supplies the decoding intermediate result D412 that is the result of the first calculation to the decoding intermediate result storage memory 413.

具体的には、計算部412には、ステップS56でサイクリックシフト回路411から6つの復号途中結果D411(v)が供給されるとともに、後述するステップS59で既に格納された前回の計算部412による第1の演算の結果得られた6つの復号途中結果D413(uj)が供給され、その復号途中結果D411とD413が、計算部412の計算器4121乃至4126のそれぞれに1つずつ供給される。さらに、計算部412には、制御部418から制御信号D421が供給され、その制御信号D421が計算器4121乃至4126に供給される。 Specifically, the calculation unit 412 is supplied with six decoding intermediate results D411 (v) from the cyclic shift circuit 411 in step S56, and is also stored in the previous calculation unit 412 already stored in step S59 described later. Six decoding intermediate results D413 (u j ) obtained as a result of the first calculation are supplied, and the decoding intermediate results D411 and D413 are supplied to each of the calculators 412 1 to 412 6 of the calculation unit 412. Is done. Further, the calculation unit 412 is supplied with the control signal D421 from the control unit 418, and the control signal D421 is supplied to the calculators 412 1 to 412 6 .

計算器4121乃至4126は、それぞれ復号途中結果D411とD413を用いて、制御信号D421に基づいて、式(7)と式(8)にしたがって、それぞれ第1の演算を行い、その第1の演算の結果得られる復号途中結果D412(uj)を復号途中結果格納用メモリ413に供給する。 The calculators 412 1 to 412 6 respectively perform first calculations according to the equations (7) and (8) based on the control signal D421 using the decoding intermediate results D411 and D413, respectively. The decoding intermediate result D412 (u j ) obtained as a result of the above operation is supplied to the decoding intermediate result storage memory 413.

なお、受信用メモリ417から供給された受信値D419に対して、まだ第1の演算が行われておらず、復号途中結果格納用メモリ413に復号途中結果D412が格納されていない場合、計算部412は復号途中結果udvを0に設定する。具体的には、例えば、受信値D419に対する復号を行う前に、復号途中結果格納用メモリ413が0に初期化されるか、または計算部412が復号途中結果格納用メモリ413からの入力を0にマスクする。 When the first calculation has not yet been performed on the reception value D419 supplied from the reception memory 417, and the decoding intermediate result D412 is not stored in the decoding intermediate result storage memory 413, the calculation unit In 412, the decoding result u dv is set to 0. Specifically, for example, before decoding the received value D419, the decoding intermediate result storage memory 413 is initialized to 0, or the calculation unit 412 sets the input from the decoding intermediate result storage memory 413 to 0. To mask.

ステップS58において、制御部418は、復号途中結果格納用RAM502および503のうちのいずれか1つを格納メモリとして選択し、その選択を表す制御信号D4221をスイッチ501(図16)に供給する。スイッチ501は、制御信号D4221に基づいて、6つの復号途中結果D412を格納する復号途中結果格納用RAM502または503を選択し、その選択した復号途中結果格納用RAM502または503に、復号途中結果D412を復号途中結果D501またはD502として供給する。 In step S58, the control unit 418 selects a storage memory any one of the decoding intermediate result storage RAM502 and 503, and supplies a control signal D422 1 representing the selection switch 501 (FIG. 16). Switch 501 based on the control signal D422 1, six decoding intermediate results select the decoding intermediate result storage RAM502 or 503 for storing the D412, decoding intermediate result storage RAM502 or 503 the selected, decoded intermediate results D412 Is supplied as a decoding intermediate result D501 or D502.

ステップS59において、復号途中結果格納用RAM502または503は、ステップS58でスイッチ501から供給された6つの復号途中結果D501またはD502(uj)を、同一のアドレスに格納する。 In step S59, the decoding intermediate result storage RAM 502 or 503 stores the six decoding intermediate results D501 or D502 (u j ) supplied from the switch 501 in step S58 at the same address.

ステップS60において、制御部418は、計算部412により、検査行列Hの全ての1に対応する復号途中結果D412が演算されたかどうかを判定し、全ての復号途中結果D412が演算されていないと判定した場合、処理はステップS56に戻り、上述した処理が繰り返される。   In step S60, the control unit 418 determines whether or not the decoding intermediate result D412 corresponding to all 1s of the check matrix H has been calculated by the calculation unit 412 and determines that all the decoding intermediate results D412 have not been calculated. If so, the process returns to step S56, and the above-described process is repeated.

一方、ステップS60において、計算部412により、全ての1に対応する復号途中結果D412が演算されたと判定された場合、処理はステップS49に戻り、上述した処理が繰り返される。   On the other hand, if it is determined in step S60 that the calculation unit 412 has calculated the intermediate decoding results D412 corresponding to all 1, the process returns to step S49 and the above-described process is repeated.

また、ステップS52で所定の回数だけ復号が行われたと判定された場合、ステップS61において、制御部418は、制御信号D425をスイッチ416に出力する。ステップS62において、スイッチ416は、直前のステップS51で得られる復号途中結果D415を、最終的な復号結果D417として出力する。   If it is determined in step S52 that decoding has been performed a predetermined number of times, the control unit 418 outputs a control signal D425 to the switch 416 in step S61. In step S62, the switch 416 outputs the decoding intermediate result D415 obtained in the immediately preceding step S51 as the final decoding result D417.

図22は、本発明を適用した復号装置の第2の実施の形態の構成例を示している。   FIG. 22 shows a configuration example of the second embodiment of the decoding device to which the present invention is applied.

図22の復号装置600は、復号途中結果格納用メモリ410、サイクリックシフト回路411、6つの計算器4121乃至計算器4126からなる計算部412、復号途中結果格納用メモリ413、サイクリックシフト回路414、6つの計算器4151乃至計算器4156からなる計算部415、スイッチ416、受信用メモリ611、および制御部612から構成され、制御部612は、受信用メモリ611から供給される、復号の終了を要求する復号終了要求信号D601に応じて、制御信号D425をスイッチ416に供給する。なお、図12と同一のものには同一の符号を付してあり、説明は繰り返しになるので省略する。 22 includes a decoding intermediate result storage memory 410, a cyclic shift circuit 411, a calculation unit 412 including six calculators 412 1 to 412 6 , a decoding intermediate result storage memory 413, a cyclic shift. The circuit 414 includes a calculator 415 including six calculators 415 1 to 415 6 , a switch 416, a reception memory 611, and a control unit 612. The control unit 612 is supplied from the reception memory 611. A control signal D425 is supplied to the switch 416 in response to a decoding end request signal D601 requesting the end of decoding. In addition, the same code | symbol is attached | subjected to the same thing as FIG. 12, and since description is repeated, it abbreviate | omits.

受信用メモリ611には、図12の受信用メモリ417と同様に、受信値D418が入力され、受信用メモリ611は、その受信値D418を格納する。そして、受信用メモリ611は、既に格納している受信値D418を、バリアブルノード演算に必要となる順番に6つずつ読み出し、受信値D419として計算部415に供給する。また、受信用メモリ611は、いまの復号対象の次のフレームの受信値D418が読み出し可能な状態となったとき、復号終了要求信号D601を制御部612に供給する。なお、受信用メモリ611の詳細については、後述する図23を参照して説明する。   Similarly to the reception memory 417 of FIG. 12, the reception value 418 is input to the reception memory 611, and the reception memory 611 stores the reception value D418. Then, the reception memory 611 reads out the reception values D418 that are already stored in the order required for variable node calculation, and supplies them to the calculation unit 415 as reception values D419. Further, the reception memory 611 supplies the decoding end request signal D601 to the control unit 612 when the reception value D418 of the next frame to be decoded is ready to be read. Details of the reception memory 611 will be described with reference to FIG.

制御部612は、受信用メモリ611から復号終了要求信号D601が供給されるまで繰り返して復号が行われるように、各部を制御する。具体的には、制御部612は、制御信号D420をサイクリックシフト回路411に、制御信号D421を計算部412に供給することにより、それぞれを制御する。また、制御部612は、制御信号D422を復号途中結果格納用メモリ413に、制御信号D423をサイクリックシフト回路414に、制御信号D424を計算部415にそれぞれ供給することにより、それぞれを制御する。さらに、制御部612は、復号終了要求信号D601に応じて、制御信号D425をスイッチ416に供給することにより、復号終了要求信号D601が供給されるまでに繰り返し行われた、第2の演算の最後の結果として得られる復号途中結果D415を、復号結果D417として出力させるように、スイッチ416を制御する。   The control unit 612 controls each unit so that decoding is repeatedly performed until the decoding end request signal D601 is supplied from the reception memory 611. Specifically, the control unit 612 controls the control signal D420 by supplying the control signal D420 to the cyclic shift circuit 411 and the control signal D421 to the calculation unit 412, respectively. Further, the control unit 612 controls the control signal D422 by supplying the control signal D422 to the decoding intermediate result storage memory 413, the control signal D423 to the cyclic shift circuit 414, and the control signal D424 to the calculation unit 415, respectively. Furthermore, the control unit 612 supplies the control signal D425 to the switch 416 in response to the decoding end request signal D601, thereby repeatedly performing the last operation until the decoding end request signal D601 is supplied. The switch 416 is controlled so that the decoding intermediate result D415 obtained as a result of the above is output as the decoding result D417.

図23は、図22の受信用メモリ611の詳細構成例を示している。   FIG. 23 shows a detailed configuration example of the reception memory 611 of FIG.

図23の受信用メモリ611は、プリバッファ511、スイッチ512、受信値格納用メモリ514、および入力バッファ621により構成される。なお、図23において、図18と同一のものには同一の符号を付してあり、説明は繰り返しになるので省略する。   The reception memory 611 in FIG. 23 includes a pre-buffer 511, a switch 512, a reception value storage memory 514, and an input buffer 621. In FIG. 23, the same components as those in FIG. 18 are denoted by the same reference numerals, and the description thereof will be omitted to avoid repetition.

入力バッファ621の記憶容量は、図18の入力バッファ513と同様に、例えば、符号長と量子化ビット数の乗算値であり、入力バッファ621は、スイッチ512により入力される受信値D512を、一時的に1フレーム分記憶する。なお、入力バッファ621のビット幅は、入力バッファ513と同様に、受信値格納用メモリ514のビット幅の1/N倍であり、ワード数は、受信値格納用メモリ514のN倍であるものとする。   The storage capacity of the input buffer 621 is, for example, a multiplication value of the code length and the number of quantization bits, as in the input buffer 513 in FIG. 18. The input buffer 621 temporarily stores the received value D512 input by the switch 512. One frame is stored. Note that the bit width of the input buffer 621 is 1 / N times the bit width of the received value storage memory 514, and the number of words is N times that of the received value storage memory 514, similar to the input buffer 513. And

入力バッファ621は、1フレーム分の受信値D512の書き込みを完了した場合、その受信値D512に対応するフレームを復号対象とするため、そのフレームの1つ前のフレームの復号終了要求信号D601を制御部612に供給する。その後、所定の時間が経過したとき、入力バッファ621は、いま書き込みが完了したフレームの前のフレームの復号が終了されたと判定し、プリバッファ511とスイッチ512に制御信号D515を入力するとともに、記憶している1フレーム分の受信値D512を、受信値D513として読み出し、受信値格納用メモリ514に転送する。これにより、復号対象とするフレームが変更される。   When the input buffer 621 has completed the writing of the reception value D512 for one frame, the input buffer 621 controls the decoding end request signal D601 of the frame immediately before that frame in order to set the frame corresponding to the reception value D512 as the decoding target. Supplied to the unit 612. Thereafter, when a predetermined time has elapsed, the input buffer 621 determines that the decoding of the frame preceding the frame that has just been written has been completed, inputs the control signal D515 to the prebuffer 511 and the switch 512, and stores it. The received value D512 for one frame is read as the received value D513 and transferred to the received value storage memory 514. As a result, the frame to be decoded is changed.

次に、図24を参照して、図23の受信用メモリ611におけるタイミングについて説明する。   Next, timing in the reception memory 611 in FIG. 23 will be described with reference to FIG.

なお、図24A乃至図24Eは、図19A乃至図19Eと同様であるので、説明は適宜省略する。   Note that FIGS. 24A to 24E are the same as FIGS. 19A to 19E, and a description thereof will be omitted as appropriate.

図24Aに示すように、時刻tAにおいて、受信用メモリ611に対する、フレーム#iの受信値D418の間欠的な入力が開始される、即ち、フレーム#i−1の入力バッファ621への書き込みが完了すると、図24Hに示すように、入力バッファ621は、フレーム#i−1の前のフレーム#i−2の復号終了要求信号D601を制御部612に供給し、図24Fに示すように、入力バッファ621は、所定の時間Dが経過するまで待機する。 As shown in FIG. 24A, at time t A , intermittent input of the received value D418 of frame #i to the receiving memory 611 is started, that is, writing of the frame # i−1 to the input buffer 621 is started. When completed, as shown in FIG. 24H, the input buffer 621 supplies the decoding end request signal D601 of the frame # i-2 before the frame # i-1 to the control unit 612, and the input as shown in FIG. 24F. The buffer 621 waits until a predetermined time D elapses.

そして、所定の時間Dが経過した時刻tHにおいて、図24Fに示すように、入力バッファ621は、書き込みが完了しているフレーム#i−1の受信値D512の読み出し、および、その受信値D512の受信値格納用メモリ514への転送を開始し(図中、Ri-1)、これにより、図24Gに示すように、受信値格納用メモリ514には、フレーム#i−1の受信値D512が受信値D513として供給される。そして、図24Iに示すように、受信値格納用メモリ514は、入力バッファ621から供給される、フレーム#i−1の受信値D513の書き込みを開始する(図中、Wi-1)。 Then, at time t H when the predetermined time D has elapsed, as shown in FIG. 24F, the input buffer 621 reads the received value D512 of frame # i−1 for which writing has been completed, and receives the received value D512. To the received value storage memory 514 (R i-1 in the figure), and as shown in FIG. 24G, the received value storage memory 514 stores the received value of frame # i−1. D512 is supplied as the received value D513. Then, as shown in FIG. 24I, the received value storage memory 514 starts writing the received value D513 of the frame # i−1 supplied from the input buffer 621 (W i−1 in the figure).

なお、時刻tAから時間A後の時刻tBから、時刻tDまでの時間BおよびCの間の処理は、図19A乃至図19Hで示した場合と同様であるので、説明は省略する。 Incidentally, from the time t B after the time A from the time t A, the process between the time B and C up to time t D is the same as the case shown in FIG. 19A through FIG. 19H, description will be omitted.

次に、図24Aに示すように、時刻tDにおいて、受信用メモリ611に対する、フレーム#i+1の受信値D418の間欠的な入力が開始されると、時刻tAから時刻tDまでの時間A乃至Cと同様に処理が行われる。 Next, as shown in FIG. 24A, at time t D, for receiving memory 611, the intermittent input received value D418 frame # i + 1 is started, from the time t A to time t D Time A Processing is performed in the same manner as in C.

即ち、時刻tDにおいて、図24Hに示すように、入力バッファ621は、時刻tBから時刻tDまでに書き込んだフレーム#iの前のフレーム#i−1の復号終了要求信号D601を制御部612に供給し、図24Fに示すように、入力バッファ621は、所定の時間Dが経過するまで待機する。 That is, at time t D , as shown in FIG. 24H, the input buffer 621 uses the control unit to transmit the decoding end request signal D601 of frame # i−1 before frame #i written from time t B to time t D. The input buffer 621 waits until a predetermined time D elapses, as shown in FIG. 24F.

そして、所定の時間Dが経過した時刻tJにおいて、入力バッファ621は、時刻tBから時刻tDまでの間に書き込んだフレーム#iの受信値D512の読み出し、および、その受信値D512の受信値格納用メモリ514への転送を開始し(図中、Ri)、図24Iに示すように、受信値格納用メモリ514は、入力バッファ621から供給される、フレーム#iの受信値D513の書き込みを開始する(図中、Wi)。なお、フレーム#i−1の復号は、図24Iに示すように、復号終了要求信号D601が出力された後終了される。図24の例では、復号終了要求信号D601が出力されてから、所定の時間Dが経過した時刻tJに、復号が終了されている。 Then, at time t J when the predetermined time D has elapsed, the input buffer 621 reads the received value D512 of frame #i written between time t B and time t D and receives the received value D 512. The transfer to the value storage memory 514 is started (R i in the figure). As shown in FIG. 24I, the reception value storage memory 514 receives the received value D513 of the frame #i supplied from the input buffer 621. Start writing (W i in the figure). Note that the decoding of frame # i-1 is ended after the decoding end request signal D601 is output, as shown in FIG. 24I. In the example of FIG. 24, the decoding is completed at time t J when a predetermined time D has elapsed after the decoding end request signal D601 is output.

以上のように、受信値D418は間欠的に供給されるので、連続的にプリバッファ511から読み出される、時間AとBの間に受信される各フレームの受信値D418の無効時間を利用して、その無効時間以内であれば、復号終了要求信号D601を出力して所定の時間待機し、その後、入力バッファ621から受信値格納用メモリ514に受信値D513を転送することができる。   As described above, since the reception value D418 is intermittently supplied, the invalid time of the reception value D418 of each frame received between the times A and B continuously read from the prebuffer 511 is used. If it is within the invalid time, the decoding end request signal D601 is output and a predetermined time is awaited, and then the received value D513 can be transferred from the input buffer 621 to the received value storage memory 514.

また、受信用メモリ611は、復号終了要求信号D601を制御部612に供給し、制御部612は、その復号終了要求信号D601が供給されるまで復号を繰り返して行うように各部を制御するので、可能な限り多くの回数の復号を行うことができる。その結果、予め設定された所定の回数だけ復号を繰り返し行う場合に比べて、さらに復号性能を向上させることができる。また、復号の回数を予め設定しておく手間を省くことができる。   In addition, the reception memory 611 supplies the decoding end request signal D601 to the control unit 612, and the control unit 612 controls each unit to repeatedly perform decoding until the decoding end request signal D601 is supplied. Decoding can be performed as many times as possible. As a result, the decoding performance can be further improved as compared with the case where the decoding is repeatedly performed a predetermined number of times. Further, it is possible to save the trouble of setting the number of times of decoding in advance.

次に、図25を参照して、図23の受信用メモリ611における受信値処理について説明する。この受信値処理は、例えば、各フレームの受信値D418が受信用メモリ611に間欠的に入力されたとき、開始される。   Next, received value processing in the reception memory 611 in FIG. 23 will be described with reference to FIG. This reception value processing is started, for example, when the reception value D418 of each frame is intermittently input to the reception memory 611.

ステップS111乃至S121の処理は、図20のステップS21乃至S31の処理と同様であるので、説明は省略する。   The processing in steps S111 to S121 is the same as the processing in steps S21 to S31 in FIG.

ステップS122において、入力バッファ621は、復号終了要求信号D601を制御部612に出力する。ステップS123において、入力バッファ621は、ステップS122で復号終了要求信号D601を出力してから、所定の時間が経過したかどうかを判定し、所定の時間が経過していないと判定した場合、所定の時間が経過するまで待機する。   In step S122, the input buffer 621 outputs the decoding end request signal D601 to the control unit 612. In step S123, the input buffer 621 determines whether or not a predetermined time has elapsed since the decoding end request signal D601 was output in step S122. If it is determined that the predetermined time has not elapsed, Wait until time has passed.

ステップS123において、ステップS122で復号終了要求信号D601を出力してから、所定の時間が経過したと判定された場合、ステップS124において、入力バッファ621は、図20のステップS32の処理と同様に、書き込まれている1フレーム分の受信値D512を受信値D513として読み出し、その受信値D513の受信値格納用メモリ514への転送を開始する。   In step S123, when it is determined that a predetermined time has elapsed since the decoding end request signal D601 was output in step S122, the input buffer 621 in step S124 is similar to the process in step S32 of FIG. The written reception value D512 for one frame is read as the reception value D513, and transfer of the reception value D513 to the reception value storage memory 514 is started.

ステップS124乃至S129の処理は、図20のステップS32乃至S37の処理と同様であるので、説明は省略する。   The processing in steps S124 to S129 is the same as the processing in steps S32 to S37 in FIG.

次に、図26を参照して、図22の復号装置600における復号処理について説明する。この復号処理は、例えば、受信用メモリ611から各フレームの受信値D419が6つ単位で読み出されたとき、開始される。   Next, with reference to FIG. 26, the decoding process in the decoding device 600 of FIG. 22 will be described. This decoding process is started, for example, when the reception value D419 of each frame is read in units of six from the reception memory 611.

ステップS149乃至S151の処理は、図21のステップS49乃至S51の処理と同様であるので説明は省略する。   The processing in steps S149 through S151 is the same as the processing in steps S49 through S51 in FIG.

ステップS152において、制御部612は、受信用メモリ611の入力バッファ621から復号終了要求信号が供給されたかどうかを判定し、復号終了要求信号が供給されていないと判定した場合、ステップS153において、スイッチ416は、図21のステップS53の処理と同様に、計算部415から供給される6つの復号途中結果D415(v)を復号途中結果格納用メモリ410に供給する。ステップS154乃至S160の処理は、図21のステップS54乃至S60の処理と同様であるので、説明は省略する。   In step S152, the control unit 612 determines whether or not the decoding end request signal is supplied from the input buffer 621 of the reception memory 611. If it is determined that the decoding end request signal is not supplied, in step S153, the switch Step 416 supplies the six decoding intermediate results D415 (v) supplied from the calculation unit 415 to the decoding intermediate result storage memory 410 as in the process of step S53 of FIG. The processing in steps S154 to S160 is the same as the processing in steps S54 to S60 in FIG.

一方、ステップS152で入力バッファ621から復号終了要求信号が供給されたと判定された場合、ステップS161において、制御部612は、図21のステップS61の処理と同様に、制御信号D425を出力する。ステップS162において、スイッチ416は、図21のステップS62の処理と同様に、直前のステップS51で得られる復号途中結果D415を、最終的な復号結果D417として出力する。   On the other hand, when it is determined in step S152 that the decoding end request signal has been supplied from the input buffer 621, in step S161, the control unit 612 outputs the control signal D425 as in the process of step S61 in FIG. In step S162, the switch 416 outputs the decoding intermediate result D415 obtained in the immediately preceding step S51 as the final decoding result D417, similarly to the processing in step S62 of FIG.

なお、図12の復号装置400および図22の復号装置600では、第1の演算と第2の演算を繰り返し行うことにより復号を行ったが、チェックノード演算とバリアブルノード演算を繰り返し行うことにより復号を行うようにすることもできる。   Note that in the decoding device 400 in FIG. 12 and the decoding device 600 in FIG. 22, decoding is performed by repeatedly performing the first calculation and the second calculation, but decoding is performed by repeatedly performing the check node calculation and the variable node calculation. It is also possible to perform.

また、上述の場合には、説明を簡単にするために、Pが6の場合、即ち、検査行列Hを構成する構成行列の行数および列数が6の場合を例に挙げたが、構成行列の行数および列数Pは必ずしも6である必要はなく、検査行列Hによって異なる値を取ることもあり得る。例えば、Pは360や392であってもよい。   Further, in the above case, for the sake of simplicity of explanation, the case where P is 6, that is, the case where the number of rows and the number of columns of the constituent matrix constituting the parity check matrix H is given as an example, The number of rows and the number of columns P of the matrix do not necessarily have to be 6, and may take different values depending on the check matrix H. For example, P may be 360 or 392.

例えば、Pが360である場合、量子化ビット数が5ビットであり、DVB-S2規格に準拠した、符号長が64800であるLDPC符号を復号するとすると、図18の受信用メモリ417や図23の受信用メモリ611では、受信値格納用メモリ514のビット幅が、1800(=360×5)ビットとなり、ワード数が、180(=64800/360)ワードとなる。即ち、受信値格納用メモリ514は、ビット幅とワード数の比が10対1の多ビット小ワードのメモリとなる。ここで、例えばNが10であるとすると、入力バッファ513や621のビット幅は、180(=1800/10)ビットとなり、ワード数は1800(=180×10)ワードとなる。即ち、入力バッファ513は、ビット幅とワード数の比が1対10の小ビット多ワードのメモリとなる。   For example, when P is 360, when an LDPC code having a quantization length of 5 bits and a code length of 64800 conforming to the DVB-S2 standard is decoded, the reception memory 417 in FIG. In the reception memory 611, the bit width of the reception value storage memory 514 is 1800 (= 360 × 5) bits, and the number of words is 180 (= 64800/360) words. That is, the received value storage memory 514 is a multi-bit small word memory having a bit width to word number ratio of 10: 1. Here, if N is 10, for example, the bit width of the input buffers 513 and 621 is 180 (= 1800/10) bits, and the number of words is 1800 (= 180 × 10) words. That is, the input buffer 513 is a small-bit multi-word memory having a bit width to word ratio of 1:10.

これに対して、従来の図11の受信用メモリ200では、上述したように、受信値格納用メモリ212および213の両方のビット幅が、1800(=360×5)ビットとなり、ワード数が180(=5×1800/360)ワードとなる。即ち、受信値格納用メモリ212および213は、両方とも、ビット幅とワード数の比が10対1の多ビット小ワードのメモリとなる。   On the other hand, in the conventional reception memory 200 of FIG. 11, as described above, the bit widths of both the reception value storage memories 212 and 213 are 1800 (= 360 × 5) bits, and the number of words is 180. (= 5 × 1800/360) words. That is, both the received value storage memories 212 and 213 are multi-bit small word memories having a bit width to word number ratio of 10: 1.

以上のように、図18の受信用メモリ417や図23の受信用メモリ611では、多ビット小ワードの受信値格納用メモリ514と、小ビット多ワードの入力バッファ513を1つずつ設ければよいので、図11に示した多ビット小ワードの受信値格納用メモリ212および213を両方設ける必要のある受信用メモリ200に比べて、受信用メモリ417(611)を構成するマクロの数を削減することができる。その結果、受信用メモリ417(611)の回路規模を削減することができる。   As described above, in the reception memory 417 in FIG. 18 and the reception memory 611 in FIG. 23, if the reception value storage memory 514 for multi-bit small words and the input buffer 513 for small bits and multi-words are provided one by one. Therefore, the number of macros constituting the reception memory 417 (611) is reduced as compared with the reception memory 200 in which both the reception values storage memories 212 and 213 for multi-bit small words shown in FIG. can do. As a result, the circuit scale of the reception memory 417 (611) can be reduced.

また、図18の受信用メモリ417および図23の受信用メモリ611は、全ノードの演算を同時に行うことによって復号を行う場合(full parallel decoding)の復号装置にも適用することができる。   Further, the reception memory 417 in FIG. 18 and the reception memory 611 in FIG. 23 can also be applied to a decoding device in a case where decoding is performed by simultaneously performing operations on all nodes (full parallel decoding).

この復号装置の実装法については、例えば、C. Howland and A. Blanksby, "Parallel Decoding Architectures for Low Density Parity Check Codes", Symposium on Circuits and Systems, 2001に記載されている。   An implementation method of this decoding apparatus is described in, for example, C. Howland and A. Blanksby, “Parallel Decoding Architectures for Low Density Parity Check Codes”, Symposium on Circuits and Systems, 2001.

図27は、全ノードの演算を同時に行う本発明を適用した復号装置の第3の実施の形態の構成例を示している。   FIG. 27 shows a configuration example of a third embodiment of a decoding device to which the present invention is applied that performs computations on all nodes simultaneously.

なお、ここでも、図13の検査行列Hで表現される符号(符号化率2/3、符号長108)を復号するものとする。   In this case as well, it is assumed that the code (coding rate 2/3, code length 108) represented by parity check matrix H in FIG. 13 is decoded.

図27の復号装置1100では、枝用メモリ1202または1206から、323個ある枝に対応するメッセージデータを全て同時に読み出し、そのメッセージデータを用いて、323個の枝に対応する新たなメッセージデータを演算する。さらに、その演算の結果求められた新たなメッセージデータが全て同時に後段の枝用メモリ1206または1202に格納されていく。そして、図27の復号装置1100を繰り返し用いることで繰り返し復号が実現される。   In the decoding device 1100 of FIG. 27, all message data corresponding to 323 branches are simultaneously read from the branch memory 1202 or 1206, and new message data corresponding to 323 branches are calculated using the message data. To do. Further, all new message data obtained as a result of the calculation are simultaneously stored in the branch memory 1206 or 1202 at the subsequent stage. Then, iterative decoding is realized by repeatedly using the decoding device 1100 of FIG.

図27において、復号装置1100は、1つの受信用メモリ1205、2つの枝入れ替え装置1200および1203、2つの枝用メモリ1202および1206、36個のチェックノード計算器12011乃至120136、108個のバリアブルノード計算器12041乃至1204108からなる。以下、各部について詳細に説明する。 In FIG. 27, the decoding device 1100 includes one reception memory 1205, two branch switching devices 1200 and 1203, two branch memories 1202 and 1206, 36 check node calculators 1201 1 to 1201 36 , and 108 pieces. It consists of variable node calculators 1204 1 to 1204 108 . Hereinafter, each part will be described in detail.

枝用メモリ1206は、前段のバリアブルノード計算器12041乃至1204108からのメッセージD12061乃至D1206108を全て同時に格納し、次の時刻(次のクロックのタイミング)に、メッセージD12061乃至D1206108を、メッセージD12071乃至D1207108として読み出し、次段の枝入れ替え装置1200に、メッセージD1200(D12001乃至D1200108)として供給する。枝入れ替え装置1200は、枝用メモリ1206から供給されたメッセージD12001乃至D1200108の順番を、図13の検査行列Hにしたがって並び替え、チェックノード計算器12011乃至120136に、メッセージD12011乃至D120136として供給する。 Branch memory 1206 stores all the messages D1206 1 D1206 108 from the preceding variable node calculator 1204 1 to 1204 108 At the same time, the next time (the timing of the next clock), a message D1206 1 D1206 108 The messages are read as messages D1207 1 to D1207 108 and supplied as messages D1200 (D1200 1 to D1200 108 ) to the branch switching device 1200 at the next stage. Branch swapping device 1200, the order of the supplied message D1200 1 D1200 108 from the branch memory 1206, reordering according to the check matrix H of FIG. 13, the check node calculator 1201 1 to 1201 36, message D1201 1 Supplied as D1201 36 .

チェックノード計算器12011乃至120136は、枝入れ替え装置1200から供給されるメッセージD12011乃至D120136を用いて式(7)にしたがって演算を行い、その演算の結果得られるメッセージD12021乃至D120236を、枝用メモリ1202に供給する。 Check node calculator 1201 1 to 1201 36, branch replacement by using the messages D1201 1 D1201 36 supplied from the apparatus 1200 performs arithmetic according to equation (7), the message D1202 1 D1202 36 obtained as a result of the calculation Is supplied to the branch memory 1202.

枝用メモリ1202は、前段のチェックノード計算器12011乃至120136から供給されるメッセージD12021乃至D120236を全て同時に格納し、次の時刻に、そのすべてのメッセージD12021乃至D120236を、メッセージD12031乃至D120336として、次段の枝入れ替え装置1203に供給する。 The branch memory 1202 stores all the messages D1202 1 to D1202 36 supplied from the previous check node calculators 1201 1 to 1201 36 at the same time, and at the next time, all the messages D1202 1 to D1202 36 are D1203 1 to D1203 36 are supplied to the next-stage branch replacement device 1203.

枝入れ替え装置1203は、枝用メモリ1202から供給されたメッセージD12031乃至D120336の順番を図13の検査行列Hにしたがって並び替え、バリアブルノード計算器12041乃至1204108に、メッセージD12041乃至D1204108として供給する。 Branch swapping device 1203, reordering according to the check matrix H of FIG. 13 the order of the supplied message D1203 1 D1203 36 from the branch memory 1202, a variable node calculator 1204 1 to 1204 108, messages D1204 1 D1204 Supply as 108 .

バリアブルノード計算器12041乃至1204108は、枝入れ替え装置1203から供給されるメッセージD12041乃至D1204108と、受信用メモリ1205から供給される受信値D12051乃至D1205108を用いて式(1)にしたがって演算を行い、その演算の結果得られるメッセージD12061乃至D1206108を、次段の枝用メモリ1206に供給する。 The variable node calculators 1204 1 to 1204 108 use the messages D1204 1 to D1204 108 supplied from the branch switching device 1203 and the received values D1205 1 to D1205 108 supplied from the reception memory 1205 to formula (1). Therefore, an operation is performed, and messages D1206 1 to D1206 108 obtained as a result of the operation are supplied to the branch memory 1206 at the next stage.

受信用メモリ1205は、図18の受信用メモリ417または図23の受信用メモリ611と同様に構成される。即ち、図示は省略するが、受信用メモリ1205は、プリバッファ、スイッチ、入力バッファ、および受信値格納用メモリにより構成され、受信値格納用メモリのビット幅は、バリアブルノード数である108個と量子化ビット数の乗算値であり、入力バッファのビット幅は、その乗算値の1/N倍である。   The reception memory 1205 is configured in the same manner as the reception memory 417 in FIG. 18 or the reception memory 611 in FIG. That is, although not shown, the reception memory 1205 includes a pre-buffer, a switch, an input buffer, and a reception value storage memory. The bit width of the reception value storage memory is 108, which is the number of variable nodes. This is a multiplication value of the number of quantization bits, and the bit width of the input buffer is 1 / N times the multiplication value.

受信用メモリ1205には、通信路を通して受信されたLDPC符号から計算された、符号ビットの0らしさを表す受信LLRである受信値D12051乃至D1205108が入力される。受信用メモリ1205は、その受信値12051乃至D1205108を格納する。そして、受信用メモリ1205は、既に格納している108個の受信値D12051乃至D1205108をすべて同時に読み出し、受信値D12051乃至D1205108としてバリアブルノード計算器12041乃至1204108に供給する。なお、受信用メモリ1205が図23の受信用メモリ611と同様に構成される場合には、復号終了要求信号が、各部を制御する制御部(図示せず)に出力される。 The reception memory 1205 is input with received values D1205 1 to D1205 108 that are reception LLRs indicating the likelihood of 0 of the code bits calculated from the LDPC code received through the communication path. Receiving memory 1205 stores the received value 1205 1 to D1205 108. Then, the reception memory 1205 simultaneously reads all the 108 reception values D1205 1 to D1205 108 already stored, and supplies them to the variable node calculators 1204 1 to 1204 108 as reception values D1205 1 to D1205 108 . When reception memory 1205 is configured in the same manner as reception memory 611 in FIG. 23, a decoding end request signal is output to a control unit (not shown) that controls each unit.

図28は、チェックノード演算を同時に行う図27のチェックノード計算器1201m(m=1,2,・・・,36)の構成例を示している。 FIG. 28 shows a configuration example of the check node calculator 1201 m (m = 1, 2,..., 36) of FIG.

図28のチェックノード計算器1201mでは、図9のチェックノード計算器101と同様にして、式(7)のチェックノード演算が行われるが、そのチェックノード演算が、すべての枝について同時に行われる。 In the check node calculator 1201 m of FIG. 28, the check node calculation of Expression (7) is performed in the same manner as the check node calculator 101 of FIG. 9, and the check node calculation is simultaneously performed for all branches. .

即ち、図28のチェックノード計算器1201mでは、枝入れ替え装置1200から供給される図13の検査行列Hの各列に対応するバリアブルノードからのメッセージD12211乃至D12219(vi)が全て同時に読み込まれ、それぞれの下位5ビットである絶対値D1222乃至D12229(|vi|)がLUT12211乃至12219にそれぞれ供給される。また、メッセージD12211乃至D12219(vi)の最上位ビットである1ビットの符号ビットD12231乃至D12239が、EXOR回路12261乃至12269にそれぞれ供給されるとともに、EXOR回路1225に供給される。 That is, in the check node calculator 1201 m of FIG. 28, all the messages D12221 1 to D1221 9 (v i ) from the variable nodes corresponding to the columns of the check matrix H of FIG. The absolute values D1222 to D1222 9 (| v i |), which are the lower 5 bits of each, are supplied to the LUTs 1221 1 to 1221 9 respectively. The message D1221 1 D1221 9 (v i) of the 1-bit is the most significant bit sign bit D1223 1 D1223 9 is, while being supplied to the EXOR circuit 1226 1 to 1226 9, is supplied to the EXOR circuit 1225 The

LUT12211乃至12219は、絶対値D1222乃至D12229(|vi|)に対して、式(7)におけるφ(|vi|)の演算を行った5ビットの演算結果D12241乃至D12249(φ(|vi|))をそれぞれ読み出し、それぞれを減算器12231乃至12239に供給する。また、LUT12211乃至12219は、演算結果D12241乃至D12249(φ(|vi|))を加算器1222に供給する。 The LUTs 1221 1 to 1221 9 are 5-bit calculation results D1224 1 to D1224 9 obtained by performing the calculation of φ (| v i |) in Expression (7) on the absolute values D1222 to D1222 9 (| v i |). (φ (| v i |) ) read respectively, and supplies each to a subtractor 1223 1 to 1223 9. Further, LUT1221 1 to 1221 9, the operation result D1224 1 to D1224 9 supplied to the adder 1222 a (φ (|) | v i ).

加算器1222は、演算結果D12241乃至D12249(φ(|vi|))の値の総和(1行分の演算結果の総和)を演算し、9ビットの演算結果D1225(i=1から9のΣφ(|vi|))を、減算器12231乃至12239に供給する。減算器12231乃至12239は、演算結果D1225から、演算結果D12241乃至D12249(φ(|vi|))をそれぞれ減算し、5ビットの減算値D12271乃至D12279を、LUT12241乃至12249に供給する。即ち、減算器12231乃至12239は、全ての枝からのメッセージviから求められたφ(|vi|)の積算値から、求めたい枝からのメッセージviから求められたφ(|vi|)を減算して、その減算値D12271乃至D12279(i=1から8までのΣφ(|vi|))をLUT12241乃至12249にそれぞれ供給する。LUT12241乃至12249は、減算値D12271乃至D12279に対して、式(7)におけるφ-1(Σφ(|vi|))の演算を行った5ビットの演算結果D12281乃至D12289を読み出して出力する。 The adder 1222 calculates the sum of the values of the calculation results D1224 1 to D1224 9 (φ (| v i |)) (sum of the calculation results for one row), and calculates the 9-bit calculation result D1225 (from i = 1) 9 Σφ (| v i |)) is supplied to the subtracters 1223 1 to 1223 9 . The subtracters 1223 1 to 1223 9 subtract the calculation results D1224 1 to D1224 9 (φ (| v i |)) from the calculation result D1225, respectively, and subtract the 5-bit subtraction values D1227 1 to D1227 9 to the LUT 1224 1 to 1224 is supplied to the 9. That is, the subtracters 1223 1 to 1223 9 obtain φ (|) obtained from the message v i from the branch to be obtained from the integrated value of φ (| v i |) obtained from the message v i from all the branches. v i |) is subtracted, the subtraction value D1227 1 D1227 9 (from i = 1 to 8 Σφ (| v i |) respectively supply) LUT1224 to 1 to 1224 9. LUT1224 1 to 1224 9, to the subtraction value D1227 1 to D1227 9, φ -1 (Σφ ( | v i |)) in Equation (7) computes the 5-bit operation result D1228 1 to Been of D1228 9 Is read and output.

一方、EXOR回路1225は、全ての符号ビットD12231乃至D12239の排他的論理和を演算することにより、符号ビットD12231乃至D12239の乗算を行い、1ビットの乗算値D1226(1行分の符号ビットの乗算値(i=1から9までのΠsign(vi)))をEXOR回路12261乃至12269にそれぞれ供給する。EXOR回路12261乃至12269は、乗算値D1226と符号ビットD12231乃至D12239それぞれとの排他的論理を演算することにより、乗算値D1226を、符号ビットD12231乃至D12239それぞれで除算した1ビットの除算値D12291乃至D12299(i=1から8までのΠsign(vi))を求めて出力する。 On the other hand, EXOR circuit 1225, by calculating all the exclusive OR of the sign bit D1223 1 to D1223 9, multiplies the sign bits D1223 1 to D1223 9, 1 bit multiplier D1226 (for one row It supplies each multiplication value of the sign bit of the (Paisign of i = 1 to 9 (v i))) to the EXOR circuit 1226 1 to 1226 9. EXOR circuits 1226 1 to 1226 9, by calculating an exclusive OR of the multiplication value D1226 and the sign bit D1223 1 D1223 9 respectively, 1-bit multiplication value D1226, divided by the sign bit D1223 1 D1223 9 respectively The division values D1229 1 to D1229 9 (i sign (v i ) from 1 to 8) are obtained and output.

チェックノード計算器1201mでは、LUT12241乃至12249から出力された5ビットの演算結果D12281乃至D12289それぞれを下位5ビットとするとともに、EXOR回路12261乃至12269から出力された除算値D12291乃至D12299それぞれを最上位ビットとする合計6ビットが、チェックノード演算の結果得られるメッセージD12301乃至D12309として出力される。 In the check node calculator 1201 m , the 5-bit calculation results D1228 1 to D1228 9 output from the LUTs 1224 1 to 1224 9 are set to the lower 5 bits, and the division value D1229 output from the EXOR circuits 1226 1 to 1226 9 1 to D1229 9 total 6 bits of the most significant bit, respectively, is output as a message D1230 1 D1230 9 obtained as a result of the check node operation.

以上のように、チェックノード計算器1201mでは、式(7)の演算が行われ、メッセージujが求められる。 As described above, in the check node calculator 1201 m , the calculation of Expression (7) is performed and the message u j is obtained.

なお、図28では、各メッセージが符号ビットを合わせて合計6ビットに量子化されているものとして、チェックノード計算器1201mを表している。また、図28の回路は1つのチェックノードに相当する。ここで処理の対象としている図13の検査行列Hについては、その行数である36行のチェックノードが存在するため、図27の復号装置1100は、図28に示したようなチェックノード計算器1201mを36個有している。 In FIG. 28, the check node calculator 1201 m is represented on the assumption that each message is quantized to a total of 6 bits including the sign bits. The circuit in FIG. 28 corresponds to one check node. Since the check matrix H in FIG. 13 to be processed here has 36 check nodes, which is the number of the check matrix H, the decoding device 1100 in FIG. 27 uses the check node calculator as shown in FIG. There are 36 1201 m .

また、図28のチェックノード計算器1201mでは、9個のメッセージを同時に計算することができる。そして、ここで処理の対象としている図13の検査行列Hの行の重みは、第1行が8で、第2乃至第36行が9であるため、即ち、チェックノードに供給されるメッセージの数が、8のケースが1つと、9のケースが29あるため、チェックノード計算器12011は、図28の回路と同様の8つのメッセージを同時に計算することができる回路構成となっており、残りのチェックノード計算器12012乃至120136は、図28の回路と同一構成となっている。 In addition, the check node calculator 1201 m in FIG. 28 can simultaneously calculate nine messages. The weights of the check matrix H in FIG. 13 to be processed here are 8 for the first row and 9 for the second to 36th rows, that is, the message supplied to the check node. Since there are one case of 8 and 29 cases of 9, the check node calculator 12011 1 has a circuit configuration that can simultaneously calculate eight messages similar to the circuit of FIG. The remaining check node calculators 1201 2 to 1201 36 have the same configuration as the circuit of FIG.

図29は、バリアブルノード演算を同時に行う図27のバリアブルノード計算器1204p(p=1,2,・・・,108)の構成例を示している。 FIG. 29 shows a configuration example of the variable node calculator 1204 p (p = 1, 2,..., 108) of FIG.

図29のバリアブルノード計算器1204pでは、図10のバリアブルノード計算器103と同様にして、式(1)のバリアブルノード演算が行われるが、そのバリアブルノード演算が、すべての枝について同時に行われる。 In the variable node calculator 1204 p of FIG. 29, the variable node calculation of Expression (1) is performed in the same manner as the variable node calculator 103 of FIG. 10, but the variable node calculation is simultaneously performed for all branches. .

即ち、図29のバリアブルノード計算器1204pでは、枝入れ替え装置1203から供給される、検査行列Hの各行に対応するチェックノードからの6ビットのメッセージD12511乃至D12515(メッセージuj)が全て同時に読み込まれ、それぞれ加減算器12521乃至12525に供給されるとともに、加算器1251に供給される。また、バリアブルノード計算器1204pには、受信用メモリ1205から受信値D1271が供給され、その受信値D1271は、加減算器12521乃至12525に供給される。 That is, in the variable node calculator 1204 p of FIG. 29, all of the 6-bit messages D1251 1 to D1251 5 (message u j ) supplied from the branch replacement device 1203 from the check nodes corresponding to each row of the check matrix H read simultaneously, it is supplied to the subtracter 1252 1 to 1252 5 respectively, are supplied to the adder 1251. Further, the variable node calculator 1204 p, the reception value D1271 supplied from the receiving memory 1205, the received value D1271 is supplied to the subtracter 1252 1 to 1252 5.

加算器1251は、全てのメッセージD12511乃至D12515(メッセージuj)を積算し、9ビットの積算値D1252(1列分のメッセージの総和値(j=1から5までのΣuj))を加減算器12521乃至12525に供給する。加減算器12521乃至12525は、積算値D1252から、メッセージD12511乃至D12515(メッセージuj)をそれぞれ減算する。即ち、加減算器12521乃至12525は、全ての枝からのメッセージujの積算値D1252から、求めたい枝からのメッセージD12511乃至D12515(メッセージuj)をそれぞれ減算して、その減算値(j=1から4までのΣuj)を求める。 The adder 1251 accumulates all the messages D1251 1 to D1251 5 (message u j ), and adds a 9-bit accumulated value D1252 (total value of messages for one column (Σu j from 1 to 5)). This is supplied to the adders / subtracters 1252 1 to 1252 5 . The adders / subtracters 1252 1 to 1252 5 subtract the messages D12511 1 to D1251 5 (message u j ) from the integrated value D1252, respectively. That is, the adders / subtracters 1252 1 to 1252 5 subtract the messages D1251 1 to D1251 5 (message u j ) from the branches to be obtained from the integrated values D1252 of the messages u j from all branches, respectively, and the subtracted values. (Σu j from j = 1 to 4) is obtained.

さらに、加減算器12521乃至12525は、減算値(j=1から4までのΣuj)に、受信値D1271(u0i)を加算して、6ビットの加算値D12531乃至D12535を、バリアブルノード演算の結果として出力する。 Further, the adder / subtracters 1252 1 to 1252 5 add the received value D1271 (u 0i ) to the subtraction value (Σu j from j = 1 to 4), and the 6-bit addition values D1253 1 to D1253 5 are obtained. Output as a result of variable node operation.

以上のように、バリアブルノード計算器1204pでは、式(1)の演算が行われ、メッセージviが求められる。 As described above, the variable node calculator 1204 p performs the calculation of Expression (1) to obtain the message v i .

なお、図29では、各メッセージが符号ビットを合わせて合計6ビットに量子化されているものとして、バリアブルノード計算器1204pを表している。また、図29の回路は1つのバリアブルノードに相当する。ここで処理の対象としている図13の検査行列Hについては、その列数である108列のバリアブルノードが存在するから、図27の復号装置1100は、図29に示したような回路を108個有している。 In FIG. 29, the variable node calculator 1204 p is represented on the assumption that each message is quantized to a total of 6 bits including the sign bits. The circuit in FIG. 29 corresponds to one variable node. Since there are 108 variable nodes as the number of columns for the check matrix H in FIG. 13 to be processed here, the decoding apparatus 1100 in FIG. 27 has 108 circuits as shown in FIG. Have.

また、図29のバリアブルノード計算器1204pでは、5個のメッセージを同時に計算することができる。そして、ここで処理の対象としている図13の検査行列Hは、重みが5,3,2,1の列が、それぞれ、18列、54列、35列、1列あるので、バリアブルノード計算器12041乃至1204108のうちの18個は、図29の回路と同一構成となっており、残りの54個、35個、1個は、図29の回路と同様の3,2,1つのメッセージをそれぞれ同時に計算することができる回路構成となっている。 In addition, the variable node calculator 1204 p in FIG. 29 can simultaneously calculate five messages. In the parity check matrix H of FIG. 13 to be processed here, there are 18 columns, 54 columns, 35 columns, and 1 column of weights 5, 3, 2, and 1, respectively. 18 of 1204 1 to 1204 108 have the same configuration as the circuit of FIG. 29, and the remaining 54, 35, and 1 are 3, 2, and 1 messages similar to the circuit of FIG. It is a circuit configuration that can calculate each of them simultaneously.

なお、図示しないが、図27の復号装置1100においても、図8における場合と同様に、復号の最終段においては、式(1)のバリアブルノード演算の代わりに、式(5)の演算が行われ、その演算結果が最終的な復号結果として出力される。   Although not shown, in the decoding device 1100 of FIG. 27, as in the case of FIG. 8, in the final stage of decoding, the calculation of Expression (5) is performed instead of the variable node calculation of Expression (1). The operation result is output as the final decoding result.

図27の復号装置1100によれば、323個ある枝に対応するメッセージすべてを1クロックで同時に計算することができる。   According to the decoding device 1100 of FIG. 27, all messages corresponding to 323 branches can be calculated simultaneously in one clock.

図27の復号装置1100を繰り返し用いて復号する場合には、チェックノード演算とバリアブルノード演算とを交互に行い、1回の復号を2クロックで行うことができる。従って、例えば、50回の復号を行うためには、符号長である108個の符号からなる1フレーム分の符号語を、受信値として受信する間に、2×50=100クロック動作すれば良いことになり、ほぼ受信周波数と同一の動作周波数でよいことになる。一般的に、LDPC符号は、符号長が数千から数万と大きいことから、図27の復号装置1100を用いれば、復号回数を極めて多くすることができ、誤り訂正性能の向上を期待することができる。   In the case of decoding by repeatedly using the decoding device 1100 of FIG. 27, check node calculation and variable node calculation can be alternately performed, and one decoding can be performed in two clocks. Therefore, for example, in order to perform decoding 50 times, it is only necessary to operate 2 × 50 = 100 clocks while receiving a code word for one frame composed of 108 codes having a code length as a reception value. In other words, the operating frequency that is substantially the same as the reception frequency is sufficient. In general, since the LDPC code has a code length as large as several thousand to several tens of thousands, if the decoding apparatus 1100 in FIG. 27 is used, the number of decoding can be extremely increased, and improvement in error correction performance is expected. Can do.

但し、図27の復号装置1100は、タナーグラフのすべての枝に対応するメッセージの演算を、並列で行うため、回路規模が、符号長に比例して大きくなる。また、図27の復号装置1100を、ある符号長の、ある符号化率の、ある検査行列Hを持つLDPC符号の復号を行う装置として構成した場合、その復号装置1100において、他の符号長や、他の符号化率、他の検査行列Hを持つLDPC符号の復号を行うことは困難となる。   However, since the decoding apparatus 1100 of FIG. 27 performs computation of messages corresponding to all branches of the Tanner graph in parallel, the circuit scale increases in proportion to the code length. In addition, when the decoding apparatus 1100 in FIG. 27 is configured as an apparatus that decodes an LDPC code having a certain code length, a certain coding rate, and a certain parity check matrix H, the decoding apparatus 1100 may have other code lengths or It becomes difficult to decode LDPC codes having other coding rates and other check matrices H.

なお、本実施の形態では、符号長108、符号化率2/3のLDPC符号を用いたが、LDPC符号の符号長や符号化率は、どのような値であってもよい。   In this embodiment, an LDPC code having a code length of 108 and an encoding rate of 2/3 is used, but the LDPC code may have any value for the code length and the encoding rate.

また、検査行列Hが、構成行列の行数および列数Pの倍数でない場合は、検査行列Hの端数の外側にすべて0(all 0)の成分を付けてPの倍数とみなして適用することができる場合がある。   If the parity check matrix H is not a multiple of the number of rows and the number of columns P of the constituent matrix, apply all the components of 0 (all 0) outside the fraction of the parity check matrix H as a multiple of P. May be possible.

一般的に、LDPC符号は符号長が数千から数万と大きいため、Pの値も数百の大きさを持つものが使われる。その場合には、更に本発明に係る復号装置を用いる効果は大きくなる。   In general, since the LDPC code has a code length as large as several thousand to several tens of thousands, a code having a P value of several hundreds is used. In that case, the effect of using the decoding device according to the present invention is further increased.

なお、上述したLDPC符号を復号する復号装置は、例えば、(ディジタル)衛星放送を受信するチューナなどに適用することができる。   Note that the decoding device that decodes the LDPC code described above can be applied to, for example, a tuner that receives a (digital) satellite broadcast.

LDPC符号の復号手順を説明するフローチャートである。It is a flowchart explaining the decoding procedure of an LDPC code. メッセージの流れを説明する図である。It is a figure explaining the flow of a message. LDPC符号の検査行列Hの例を示す図である。It is a figure which shows the example of the check matrix H of a LDPC code. 検査行列Hのタナーグラフを示す図である。6 is a diagram illustrating a Tanner graph of a check matrix H. FIG. バリアブルノードを示す図である。It is a figure which shows a variable node. チェックノードを示す図である。It is a figure which shows a check node. LDPC符号の検査行列Hの例を示す図である。It is a figure which shows the example of the check matrix H of a LDPC code. ノード演算を1つずつ行うLDPC符号の復号装置の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the decoding apparatus of the LDPC code which performs node calculation one by one. 図8のチェックノード計算器の詳細構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the check node calculator of FIG. 図8のバリアブルノード計算器の詳細構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the variable node calculator of FIG. 2個のメモリが設けられた受信用メモリの構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the memory for reception provided with two memories. 本発明を適用した復号装置の第1の実施の形態の構成例を示すブロック図である。It is a block diagram which shows the structural example of 1st Embodiment of the decoding apparatus to which this invention is applied. 6×6単位に分割した検査行列Hの例を示す図である。It is a figure which shows the example of the test matrix H divided | segmented into 6x6 units. 図12の計算器の詳細構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the calculator of FIG. 図12の計算器の詳細構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the calculator of FIG. 図12の復号途中結果格納用メモリの構成例を示すブロック図である。It is a block diagram which shows the structural example of the memory for decoding result storage of FIG. 図12の復号途中結果格納用RAMの動作を説明するタイミングチャートである。13 is a timing chart for explaining the operation of the decoding intermediate result storage RAM of FIG. 12; 図12の受信用メモリの詳細構成例を示している。13 illustrates a detailed configuration example of the reception memory in FIG. 12. 図18の受信用メモリにおけるタイミングを説明するタイミングチャートである。FIG. 19 is a timing chart illustrating timings in the reception memory of FIG. 18. FIG. 図18の受信用メモリにおける受信値処理について説明するフローチャートである。FIG. 19 is a flowchart for describing reception value processing in the reception memory of FIG. 18. FIG. 図12の復号装置における復号処理について説明するフローチャートである。Fig. 13 is a flowchart for describing decoding processing in the decoding device of Fig. 12. 本発明を適用した復号装置の第2の実施の形態の構成例を示すブロック図である。It is a block diagram which shows the structural example of 2nd Embodiment of the decoding apparatus to which this invention is applied. 図22の受信用メモリの詳細構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the memory for reception of FIG. 図23の受信用メモリにおけるタイミングについて説明するタイミングチャートである。24 is a timing chart for describing timing in the reception memory of FIG. 図23の受信用メモリにおける受信値処理について説明するフローチャートである。It is a flowchart explaining the received value process in the memory for reception of FIG. 図22の復号装置における復号処理について説明するフローチャートである。It is a flowchart explaining the decoding process in the decoding apparatus of FIG. 本発明を適用した復号装置の第3の実施の形態の構成例を示すブロック図である。It is a block diagram which shows the structural example of 3rd Embodiment of the decoding apparatus to which this invention is applied. 図27のチェックノード計算器の構成例を示すブロック図である。It is a block diagram which shows the structural example of the check node calculator of FIG. 図27のバリアブルノード計算器の構成例を示すブロック図である。It is a block diagram which shows the structural example of the variable node calculator of FIG.

符号の説明Explanation of symbols

400 復号装置, 412,415 計算部, 417 受信用メモリ, 511 プリバッファ, 513 入力バッファ, 514 受信値格納用メモリ, 600 復号装置, 611 受信用メモリ, 621 入力バッファ, 1100 復号装置, 1205 受信用メモリ, 1201 チェックノード計算器, 1204 バリアブルノード計算器   400 decoding device, 412, 415 calculation unit, 417 reception memory, 511 pre-buffer, 513 input buffer, 514 received value storage memory, 600 decoding device, 611 reception memory, 621 input buffer, 1100 decoding device, 1205 reception Memory, 1201 check node calculator, 1204 variable node calculator

Claims (8)

LDPC(Low Density Parity Check)符号を復号する復号装置であって、
間欠的に入力される前記LDPC符号の受信値を一時的に記憶する第1の記憶手段と、
前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLDPC符号の受信値を一時的に記憶し、記憶している前記受信値を連続的に読み出す第2の記憶手段と、
前記第2の記憶手段により連続的に読み出される受信値を記憶し、記憶している前記受信値を所定の単位ごとに読み出す第3の記憶手段と、
前記第3の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号する復号手段と
を備え、
前記第2の記憶手段のビット幅は、前記第3の記憶手段のビット幅より小さい
復号装置。
A decoding device for decoding LDPC (Low Density Parity Check) code,
First storage means for temporarily storing the received value of the LDPC code input intermittently;
A second value that temporarily stores the reception value continuously read from the first storage means or the reception value of the LDPC code that is intermittently input, and that continuously reads the stored reception value; Storage means,
Storing a reception value continuously read out by the second storage unit, and reading out the stored reception value for each predetermined unit;
Decoding means for decoding the received value read for each predetermined unit by the third storage means for each predetermined unit;
The bit width of the second storage means is smaller than the bit width of the third storage means.
前記第2の記憶手段から前記受信値が読み出され、その受信値が前記第3の記憶手段に記憶される転送時間は、前記LDPC符号の符号語単位の受信値内の値のない時間である無効時間以内である
請求項1に記載の復号装置。
The transfer time when the received value is read from the second storage means and the received value is stored in the third storage means is a time when there is no value in the received value of the code word unit of the LDPC code. The decoding device according to claim 1, which is within a certain invalid time.
前記第2の記憶手段は、前記受信値を前記符号語単位で読み出す
請求項2に記載の復号装置。
The decoding device according to claim 2, wherein the second storage unit reads the received value in units of the codeword.
前記第1の記憶手段は、前記間欠的に入力されるLDPC符号の受信値を前記転送時間に一時的に記憶する
請求項3に記載の復号装置。
The decoding device according to claim 3, wherein the first storage means temporarily stores the reception value of the LDPC code input intermittently at the transfer time.
前記第2の記憶手段は、前記受信値を前記符号語単位で読み出す前に、前回の読み出し対象である受信値の復号の終了を要求する復号終了要求信号を前記復号手段に供給し、その後、所定の時間経過後に、前記受信値を前記符号語単位で読み出し、
前記復号手段は、前記復号終了要求信号に応じて、前記前回の読み出し対象である受信値の復号を終了し、
前記所定の時間と前記転送時間の和は、前記無効時間以内である
請求項3に記載の復号装置。
The second storage means supplies the decoding means with a decoding end request signal for requesting the end of decoding of the reception value that is the previous reading target before reading the reception value in units of codewords, and then After a predetermined time elapses, the received value is read in the codeword unit,
In response to the decoding end request signal, the decoding means ends decoding of the received value that is the previous reading target,
The decoding device according to claim 3, wherein a sum of the predetermined time and the transfer time is within the invalid time.
前記第1の記憶手段は、前記間欠的に入力されるLDPC符号の受信値を、前記転送時間と前記所定の時間に一時的に記憶する
請求項5に記載の復号装置。
The decoding device according to claim 5, wherein the first storage means temporarily stores the reception value of the intermittently input LDPC code at the transfer time and the predetermined time.
間欠的に入力されるLDPC符号の受信値を一時的に記憶する第1の記憶手段と、前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLDPC符号の受信値を一時的に記憶する第2の記憶手段と、前記第2の記憶手段により連続的に読み出される受信値を記憶する第3の記憶手段と、前記第3の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号する復号手段とを備え、前記LDPC符号を復号する復号装置の復号方法であって、
前記第1の記憶手段が、前記間欠的に入力されるLDPC符号の受信値を一時的に記憶し、
前記第3の記憶手段よりビット幅が小さい前記第2の記憶手段が、前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLDPC符号の受信値を一時的に記憶し、
前記第2の記憶手段が、記憶している前記受信値を連続的に読み出し、
前記第3の記憶手段が、前記第2の記憶手段により連続的に読み出される受信値を記憶し、
前記第3の記憶手段が、記憶している前記受信値を前記所定の単位ごとに読み出し、
前記復号手段が、前記第3の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号する
ステップを含む復号方法。
First storage means for temporarily storing received values of LDPC codes input intermittently; received values read continuously from the first storage means; or LDPC codes input intermittently A second storage means for temporarily storing the received value, a third storage means for storing the received value continuously read by the second storage means, and a predetermined unit by the third storage means A decoding means for decoding the LDPC code, comprising: a decoding means for decoding the received value read for each predetermined unit;
The first storage means temporarily stores a reception value of the LDPC code input intermittently;
The second storage means having a bit width smaller than that of the third storage means temporarily receives the reception value read continuously from the first storage means or the reception value of the LDPC code input intermittently. Memorize,
The second storage means continuously reads out the received value stored therein,
The third storage means stores received values continuously read out by the second storage means;
The third storage means reads the stored received value for each predetermined unit,
A decoding method, comprising: a step in which the decoding means decodes the received value read out for each predetermined unit by the third storage means for each predetermined unit.
LDPC(Low Density Parity Check)符号を復号する復号装置であって、
間欠的に入力される前記LDPC符号の受信値を一時的に記憶する第1の記憶手段と、
前記第1の記憶手段から連続的に読み出された受信値または前記間欠的に入力されるLDPC符号の受信値を一時的に記憶し、記憶している前記受信値を連続的に読み出す第2の記憶手段と、
前記第2の記憶手段により連続的に読み出される受信値を記憶し、記憶している前記受信値を所定の単位ごとに読み出す第3の記憶手段と、
前記第3の記憶手段により所定の単位ごとに読み出された受信値を、前記所定の単位ごとに復号する復号手段と
を備え、
前記第2の記憶手段と前記第3の記憶手段は、直列に接続され
前記第2の記憶手段のビット幅は、前記第3の記憶手段のビット幅より小さい
復号装置。
A decoding device for decoding LDPC (Low Density Parity Check) code,
First storage means for temporarily storing the received value of the LDPC code input intermittently;
A second value that temporarily stores the reception value continuously read from the first storage means or the reception value of the LDPC code that is intermittently input, and that continuously reads the stored reception value; Storage means,
Storing a reception value continuously read out by the second storage unit, and reading out the stored reception value for each predetermined unit;
Decoding means for decoding the received value read for each predetermined unit by the third storage means for each predetermined unit;
The second storage means and the third storage means are connected in series ,
A decoding device in which the bit width of the second storage means is smaller than the bit width of the third storage means .
JP2007119097A 2007-04-27 2007-04-27 Decoding device and decoding method Expired - Fee Related JP4822071B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007119097A JP4822071B2 (en) 2007-04-27 2007-04-27 Decoding device and decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007119097A JP4822071B2 (en) 2007-04-27 2007-04-27 Decoding device and decoding method

Publications (2)

Publication Number Publication Date
JP2008278191A JP2008278191A (en) 2008-11-13
JP4822071B2 true JP4822071B2 (en) 2011-11-24

Family

ID=40055621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007119097A Expired - Fee Related JP4822071B2 (en) 2007-04-27 2007-04-27 Decoding device and decoding method

Country Status (1)

Country Link
JP (1) JP4822071B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4821724B2 (en) * 2007-07-18 2011-11-24 ソニー株式会社 Decoding device and decoding method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4729964B2 (en) * 2005-04-25 2011-07-20 ソニー株式会社 Decoding device and decoding method
JP4341646B2 (en) * 2006-06-14 2009-10-07 住友電気工業株式会社 Decoding device
WO2008069231A1 (en) * 2006-12-07 2008-06-12 Nec Corporation Decoding device and decoding method

Also Published As

Publication number Publication date
JP2008278191A (en) 2008-11-13

Similar Documents

Publication Publication Date Title
JP4225163B2 (en) Decoding device, decoding method, and program
JP4622654B2 (en) Decoding device and decoding method
JP4595650B2 (en) Decoding device and decoding method
KR101158919B1 (en) Decoding method, decoding device, and recording medium
JP4487213B2 (en) Decoding apparatus and method, and program
US8826094B2 (en) Accumulating LDPC (low density parity check) decoder
JP4487212B2 (en) Decoding device and method, transmission / reception system, receiving device and method, and program
JP4293172B2 (en) Decoding device and decoding method
JP2007036776A (en) Decoding apparatus and decoding method
JP4285148B2 (en) Decoding device, decoding method, and program
JP4822071B2 (en) Decoding device and decoding method
JP4729964B2 (en) Decoding device and decoding method
JP4730592B2 (en) Decoding device and decoding method
Marchand Implementation of an LDPC decoder for the DVB-S2,-T2 and-C2 standards
JP4284600B2 (en) Decoding device
JP4821724B2 (en) Decoding device and decoding method
JP4288582B2 (en) Decoding device, decoding method, and program
JP2007081602A (en) Decoder and decoding method
JP4780027B2 (en) Decoding device, control method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110727

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

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

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

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees