[go: up one dir, main page]

CN102594369B - Quasi-cyclic low-density parity check code decoder based on FPGA (field-programmable gate array) and decoding method - Google Patents

Quasi-cyclic low-density parity check code decoder based on FPGA (field-programmable gate array) and decoding method Download PDF

Info

Publication number
CN102594369B
CN102594369B CN201210045900.9A CN201210045900A CN102594369B CN 102594369 B CN102594369 B CN 102594369B CN 201210045900 A CN201210045900 A CN 201210045900A CN 102594369 B CN102594369 B CN 102594369B
Authority
CN
China
Prior art keywords
information
decoding
ram
external information
data
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
CN201210045900.9A
Other languages
Chinese (zh)
Other versions
CN102594369A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201210045900.9A priority Critical patent/CN102594369B/en
Publication of CN102594369A publication Critical patent/CN102594369A/en
Application granted granted Critical
Publication of CN102594369B publication Critical patent/CN102594369B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

The invention discloses a low-storage capacity high-speed QC-LDPC (quasi-cyclic low-density parity check) code decoder based on an FPGA (field-programmable gate array) and a decoding method, which are mainly used for solving the problem of low utilization efficiency of memory resources of a node update processing unit and an RAM (random access memory) of the decoder in the prior art. The decoder can simultaneously process two frames of decoding data, the decoder is used for setting an external information value of the first frame of data as all-zero and setting the second frame of data as a channel for receiving likelihood ratio information in the data initialization phase, so that a variable node processing unit and a check node processing unit can completely alternately process the two data frames in parallel in the whole decoding process, effectively shorten the work clock cycle required for processing the two frames of data and enable the decoding throughput to be about two times as that of a traditional design method. According to the decoder disclosed by the invention, a dynamic address access management method is adopted in external information access, and the parallel access of the two frames of decoding data can be realized in the single RAM; and compared with the existing decoder, the utilization efficiency of BRAM (broadcast recognition access method) resources is doubled in comparison with the existing decoders, and the decoder can be used for error correction in information transmission of a physical layer based on LDPC codes.

Description

Quasi-cyclic Low-density Parity-check Codes decoder and interpretation method based on FPGA
Technical field
The invention belongs to communication technical field, relate to channel error correction encoding decoder, particularly a kind of Quasi-cyclic Low-density Parity-check Codes decoder and interpretation method based on FPGA, can be used for the physical layer information transmission error correction based on LDPC code.
Background technology
Tradition quasi-cyclic low-density verification QC-LDPC code decoder is mainly made up of variable node computing module VNU, check node calculation module CNU, check equations computing module PCU and some memory modules, wherein memory module comprises three parts, respectively channel initial information memory module RAM_F, iteration external information memory module RAM_M and decoding code word memory module RAM_C, as shown in Figure 1.The QC-LDPC code decoder that is m × n for basic matrix block count, VNU module comprises n concrete variable node computing unit VNU j, 1≤j≤n, CNU module comprises m variable node computing unit CNU i, 1≤i≤m, RAM_F module comprises n block RAM memory block F j, 1≤j≤n, RAM_M module comprises m × n block RAM memory block M i, j, 1≤i≤m, 1≤j≤n.Every F jcontain one and CNU ithe read port being connected, every M i, jcontain two reading-writing port, two ports all and VNU jand CNU ibe connected.Channel information in external information and RAM_F in RAM_M all uses static address way to manage, and the external information that each node is corresponding and the read/write address of channel information are fixed value.If it is z × z that the submatrix of LDPC verification battle array divides block size, the specific works process of QC-LDPC code decoder iterative decoding is as follows: (1) initialization: the channel information sequence of reception is divided into n piecemeal and stores respectively n F in RAM_F into jin memory block, by the external information memory block M in RAM_M i, j, 1≤i≤m, it is complete zero that 1≤j≤n is initialized as, and initialization iterations iter is set to 0 time; (2) variable node upgrades: each variable node computing unit VNU jthe M that sequential update is coupled i, jin z external information, external information of every renewal, VNU jrespectively from F jand M i, jread port in read a channel information and an external information, carry out the renewal of variable node and calculate and the judgement of this decoding code word, new external information and decoding code word are write respectively to M i, jin RAM_C.Reading, calculate and writing with pipeline system of each nodal information completes; (3) check-node upgrades: each check node calculation unit CNU ithe M that sequential update is coupled i, jin z external information, external information CNU of every renewal ifrom the M being attached thereto i, jread port in read an external information, the renewal of carrying out check-node after calculating is returned new external information into M i, jin.Reading, calculate and writing with pipeline system of each check-node information completes.Meanwhile, PCU takes out decoding codeword information from RAM_C, and code word and check matrix are multiplied each other, and produces syndrome vector; (4) by iterations iter cumulative 1.If the syndrome calculating vector, for complete zero, represents that the decoding code word that this time judgement obtains is legal-code, or iter reached maximum iteration time MAX_ITER, proceeds to so step (5)
By decode results output, otherwise, turn back to step (2) and proceed the iterative computation of next round; (5) the decoding code word in RAM_C memory module is read as final decode results output.
In the access of memory, VNU and CNU are a kind of access method of switched to the read-write of RAM_M, and in the time that VNU works, the access right of RAM_M is by VNU module controls, and in the time that CNU works, the access right of RAM_M is by CNU module controls.Memory M i, jin reading and writing data adopt static address way to manage, the memory address of each extrinsic information data is fixed value.Z extrinsic information data of the sub-piecemeal of each check matrix is stored in the M corresponding with it i, jin, z is the dimension of syndrome matrix, i, and j is respectively row piecemeal sequence number and the row piecemeal sequence number of syndrome matrix.VNU in step (2) jneed column major order read-write M i, jin z external information, this submatrix first row is fixed as 0~z to the external information reference address of z row, while reading and writing data, its initial reference address is 0, the read/write address cumulative 1 of every next external information; CNU in step (3) iread and write M by row order i, jin z extrinsic information data, if the cycle offset of the capable j row of i syndrome matrix is α ij, the reference address of the extrinsic information data that this submatrix x is capable is so (α ij+ x) modz, while reading and writing data, initial reference address is α ij, every next read/write address is that a upper address adds the 1 rear value to z delivery, the read/write address schematic diagram of this static address way to manage is as shown in Figure 2.
Because the iterative decoding process of LDPC code is the process that a variable node and check-node alternately transmit external information, VNU and CNU input and output each other, in the course of work of traditional ldpc code decoder, VNU and CNU only have a side in work simultaneously, most for the treatment of circuit in decoder in half decoding time in idle condition, therefore cause the utilization ratio of FPGA hardware resource lower, Fig. 3 has provided both work schedules in iterative decoding process.
For the lower problem of traditional ldpc code decoder hardware resource utilization efficiency, the decoder design method of the decoding simultaneously of a kind of two frame data, the different external informations of decoding computing unit alternate treatment two frames is suggested.The variable node computing unit VNU of decoder is connected two frame coding data with check node calculation unit CNU simultaneously, RAM_F1 and RAM_F2 store respectively the channel information of two Frames, RAM_M1 and RAM_M2 store respectively the external information of two Frames, RAM_C1 and RAM_C2 store respectively the judgement code word of two Frames, its decode procedure is as follows: (1) initialization: two frame channel information sequences are stored into respectively in RAM_F1 and RAM_F2, the iterative processing number of times that external information in RAM_M1 and RAM_M2 is initialized as to complete zero, two Frame is made as 0 time; The variable node of (2) first frames upgrades: first VNU processing unit completes the variable node renewal of the first frame data, and now CNU processing unit is temporarily idle; The parallel renewal of variable node of the check-node of (3) first frames and the second frame: the check-node that CNU processing unit completes the first frame data upgrades, VNU processing unit jumps to the variable node renewal that completes the second frame data on the second frame simultaneously; (4) exchange two frame data are processed: if in last round of renewal, CNU upgrades the first frame data, and VNU upgrades the second frame data, and CNU forwards the renewal that completes check-node on the second frame to, and VNU forwards the renewal that completes variable node on the first frame to; Otherwise the check-node that CNU completes the first frame data upgrades, the variable node that VNU completes the second frame data upgrades; (5) complete zero if the syndrome vector of two frames is, or reached maximum iteration time, proceed to step (6) by decode results output, otherwise, proceed to step (4) and proceed the exchange iterative processing of two frame data; (6) the decoding code word of RAM_C1 and RAM_C2 two memory modules is read as final decode results output.
The VPU of this improved two frame parallel decoding methods and CPU upgrade sequential as shown in Figure 4.Due to VPU two Frames different with CPU alternate treatment, the decoder throughput that the method design obtains approaches the twice of traditional design method, but because each ram port in FPGA can only be read and write the data on address at every turn, adopt traditional static address management method, reading and writing of each external information need to take two different ports, the port number of every block RAM resource mostly is 2 most, therefore two frame data of decoder must be stored in respectively in two different block RAMs, and the RAM resource requirement quantity of this decoder is the twice of conventional method.In addition, because decoder only has VNU in running order in the decoding incipient stage, there is free timeslot in CNU, and the method is not accomplished the complete parallel work of VNU and CNU two processing units.
Summary of the invention
The object of the invention is to the deficiency for above-mentioned prior art, a kind of Quasi-cyclic Low-density Parity-check Codes decoder and interpretation method based on FPGA is provided, to reduce the quantity that takies of FPGA storage resources, improve the utilization ratio of logical resource and RAM resource in decoder, and improve the decoding throughput of decoder.
For achieving the above object, check code decoder of the present invention, comprising:
Variable node computing module VNU, upgrades and calculates for the variable node external information to decoding, wherein comprises n variable node computing unit VNU j, 1≤j≤n, the row piecemeal quantity that n is basic matrix;
Check node calculation module CNU, upgrades and calculates for the check-node external information to decoding, wherein comprises m check node calculation unit CNU i, 1≤i≤m, the row piecemeal quantity that m is basic matrix;
Whether check equations computing module PCU is legal-code for verification decode results;
Channel initial information memory module RAM_F, for the channel likelihood ratio information of storing received, wherein comprises n block RAM memory block F j, 1≤j≤n;
Iteration external information memory module RAM_M, the iteration external information of mutually transmitting for storing iterative decoding process variable node and check-node, wherein comprises m × n block RAM memory block M i, j, 1≤i≤m, 1≤j≤n;
Decoding code word memory module RAM_C, the code word result obtaining for storing decoding;
It is characterized in that:
Every block RAM in tri-modules of described RAM_F, RAM_M and RAM_C is all stored two different frame coding data;
Described every memory block F jin contain two read ports, these two read ports all with check node calculation unit CNU ibe connected, be responsible for respectively reading of the different channel initial information of two frames;
Described every memory block M i, jin contain two reading-writing port, its read-write mode is " write-after-read pattern ", each reading-writing port all with variable node computing unit VNU jwith check node calculation unit CNU ibe connected, the each read-write of being responsible for a frame iteration external information of each port.
For achieving the above object, check code decoding method of the present invention, comprises the steps:
1) initialization: the each memory block F that the two frame channel likelihood ratio information that receive is deposited in to channel initial information memory module RAM_F according to the row piecemeal segmentation of check matrix H iin, the address realm of two frame data is respectively 0~z-1 and z~2z-1, and z is the dimension of syndrome matrix; The first frame external information in iteration external information memory module RAM_M is initialized as to complete zero, the second frame external information and is initialized as channel reception likelihood ratio information; Iterations iter is initialized as 0 time;
2) check-node of the variable node to the first frame data and the second frame data upgrades:
2a) the each variable node computing unit VNU in variable node computing module jupgrade one by one the M being attached thereto with row order i, jin z external information, wherein VNU of the first frame jupgrade the variable node computing unit calculating, M for carrying out j row variable node in VNU i, jfor storing the memory block of the capable j row of i syndrome matrix external information in RAM_M;
2b) the each check node calculation unit CNU in check node calculation module iupgrade one by one with row order the M being attached thereto i, jin z external information, wherein CNU of the second frame iupgrade the check node calculation unit calculating, M for carrying out the capable check-node of i in CNU i, jfor storing the memory block of the capable j row of i syndrome matrix external information in RAM_M;
3) variable node of the check-node to the first frame data and the second frame data upgrades:
3a) the each check node calculation unit CNU in check node calculation module iupgrade one by one with row order the M being attached thereto i, jin z external information of the first frame;
3b) the each variable node computing unit VNU in variable node computing module jupgrade one by one the M being attached thereto with row order i, jin z external information of the second frame;
4) iterations iter is added to 1, calculate the syndrome vector s of the first frame coding result 1syndrome vector s with the second frame coding result 2if, s 1=s 2=0 or iter equal maximum iteration time MAX_ITER, execution step 5), otherwise forward step 2 to) proceed iterative decoding calculate;
5) from decoding code word memory module RAM_C, reading respectively two frame coding court verdicts exports as decode results.
The present invention is because the external information value of the first frame data is set to full 0 by the data initialization stage at decoder, the external information value of the second frame data is made as to channel and receives likelihood ratio information, can make code check node processing unit just can walk abreast together with variable node processing unit and carry out the iteration renewal processing of two frame coding data in the incipient stage of decode procedure, effectively shorten and processed the required work clock cycle of two decoding data frames, thereby improved the decoding throughput of whole decoder; Simultaneously because the present invention has adopted dynamic address access management method in the access of external information, make variable node processing unit and code check node processing unit only need a ram port just can complete the read-write of a frame extrinsic information data, thereby can in monolithic RAM, realize the storage and inquire of two frame coding data simultaneously, compared with traditional design method, the BRAM resource utilization of decoder can double.
Realize result and show, the present invention can, in the case of the FPGA hardware resource quantity of QC-LDPC code decoder use is substantially constant, improve nearly one times by total decoding throughput of conventional decoder.
Brief description of the drawings
Fig. 1 is traditional ldpc code decoder structural representation;
Fig. 2 is the read/write address schematic diagram of existing static address way to manage;
Fig. 3 is the iteration working timing figure of VNU and CNU in conventional decoder;
Fig. 4 is that VPU and the CPU of existing improved two frame parallel decodings upgrades sequential chart;
Fig. 5 is low memory space high speed decoder structure chart provided by the invention;
Fig. 6 is the flow chart of low memory space high speed decoding method provided by the invention;
Fig. 7 is the external information dynamic address access schematic diagram in interpretation method of the present invention;
Fig. 8 is decoding performance analogous diagram of the present invention.
Embodiment
With reference to Fig. 5, low memory space high speed decoder structure provided by the invention mainly comprises 6 parts, is respectively variable node computing module VNU, check node calculation module CNU, check equations computing module PCU, channel initial information memory block RAM_F, iteration external information memory block RAM_M and decoding code word memory block RAM_C.Wherein, variable node computing module VNU, upgrades calculating for the variable node external information that completes decoding, and it comprises n variable node computing unit VNU j, 1≤j≤n, the row piecemeal quantity that n is basic matrix; Check node calculation module CNU, upgrades calculating for the check-node external information that completes decoding, and it comprises m check node calculation unit CNU i, 1≤i≤m, the row piecemeal quantity that m is basic matrix; Whether check equations computing module PCU is legal-code for verification decode results; Channel initial information memory module RAM_F, for the channel likelihood ratio information of storing received, it comprises n block RAM memory block F j, 1≤j≤n; Iteration external information memory module RAM_M, the iteration external information of mutually transmitting for storing iterative decoding process variable node and check-node, it comprises m × n block RAM memory block M i, j, 1≤i≤m, 1≤j≤n; Decoding code word memory module RAM_C, the code word result obtaining for storing decoding.Wherein, in the each RAM memory block in RAM_F, RAM_M and RAM_C, all have the decoding data of different two frames, they respectively: the decoding data of storing in RAM_F is that different two frame channels receive likelihood ratios; The decoding data of storing in RAM_C is two different frame coding court verdicts; The two frame coding data of storing in RAM_M are external information initial value, the initial external information of this first frame data storage is check-node external information, its value is full 0, and the initial external information of this second frame data storage is variable node external information, the likelihood ratio that its value receives for channel.
In decoder, the annexation of each module is as follows:
Every memory block F in RAM_F jin contain two read ports, these two read ports all with check node calculation unit CNU ibe connected, be responsible for respectively reading of the different channel initial information of two frames; Every memory block M in RAM_M i, jin contain two reading-writing port, its read-write mode is " write-after-read pattern ", each reading-writing port all with variable node computing unit VNU jwith check node calculation unit CNU ibe connected, each port is each is responsible for the reading and writing of a frame iteration external information.The write port of RAM_C is connected with PCU with VNU respectively with read port, and VNU deposits judgement code word RAM_C in from write port, and PCU reads inspection from read port by judgement code word, and whether it is legal-code.
With reference to Fig. 6, low memory space high speed decoding method provided by the invention, its step is as follows:
Step 1, initialization: the each memory block F that the two frame channel likelihood ratio information that receive is deposited in to channel initial information memory module RAM_F according to the row piecemeal segmentation of check matrix H jin, the address realm of two frame data is respectively 0~z-1 and z~2z-1, F jfor storing the memory block of j row syndrome matrix channel initial information in RAM_M, z is the dimension of syndrome matrix; The first frame external information in iteration external information memory module RAM_M is initialized as to complete zero, the second frame external information and is initialized as channel reception likelihood ratio information; Iterations iter is initialized as 0 time;
Step 2, the check-node of the variable node to the first frame data and the second frame data upgrades:
Each variable node computing unit VNU in variable node computing module jupgrade one by one the M being attached thereto with row order i, jin z external information of the first frame; Meanwhile, the each check node calculation unit CNU in check node calculation module iupgrade one by one with row order the M being attached thereto i, jin z external information, wherein VNU of the second frame jupgrade the variable node computing unit calculating, CNU for carrying out j row variable node in VNU iupgrade the check node calculation unit calculating, M for carrying out the capable check-node of i in CNU i, jfor storing the memory block of the capable j row of i syndrome matrix external information in RAM_M;
Described variable node computing unit VNU jthe renewal of each external information is divided into three steps: VNU jfirst respectively from M i, jand F jin read required external information and the channel likelihood ratio information calculated of upgrading; VNU jcarry out the renewal calculating of variable node according to the external information of reading and channel likelihood ratio information again, and complete the decoding bit decision of this node; VNU jthe extrinsic information data finally renewal being calculated and decoding decision bits write respectively M i, jin decoding code word memory module RAM_C.
Described check node calculation unit CNU ithe renewal of each external information is also divided into three steps: CNU ifirst from M i, jin read to upgrade and calculate required external information; CNU icarry out again the renewal calculating of variable node according to the external information of reading; CNU ithe external information finally renewal being calculated is written back to M i, jin;
Described variable node computing unit VNU jwith check node calculation unit CNU ito the renewal of each external information, need to be to M i, jin extrinsic information data read and write, wherein M i, jin the read-write of extrinsic information data adopt a kind of dynamic address access management method, often carry out the renewal of an external information, the external information memory address of each variable node and check-node will change, its address distribution method is as follows:
A) by M i, jin z external information initial storage address of the first frame data be made as respectively 0~z-1, the z of the second frame data external information initial storage address is made as respectively to z~2z-1, z is the dimension of syndrome matrix;
B) after each variable node external information is upgraded and calculated, the memory address of this extrinsic information data will, from new distribution, be d if it reads address v, its writing address will be set as (d v+ L v) modz, L vit is VNU carries out variable node renewal streamline computational length to an extrinsic information data;
C) after each check-node external information is upgraded and calculated, the memory address of this extrinsic information data will, from new distribution, be d if it reads address h, its writing address will be set as (d h+ L h) modz, L hit is CNU carries out check-node renewal streamline computational length to an extrinsic information data.
For example, to the first frame variable node, if the initial storage address of its external information is l, and there is (l+2L v+ L h) modz < z, the address access process that its external information iteration is upgraded is as follows: variable node upgrades for the first time, and read and the writing address of this external information are respectively l and l+L v; Check-node upgrades for the first time, and reading with writing address of this external information is respectively l+L vand l+L v+ L h, variable node upgrades for the second time, and reading with writing address of this external information is respectively l+L v+ L hand l+2L v+ L h, after, the writing address that each check-node upgrades is read address for it and is added L hresult to z delivery afterwards, the writing address that each variable node upgrades is read address for it and is added L vresult to z delivery afterwards, as shown in Figure 7.
The address that this address distribution method makes the node external information that current needs read is identical with the address of upgrading the node external information that complete needs write, read-write mode by reading-writing port is set to " write-after-read pattern ", can in single reading-writing port, complete reading and writing of two variable node external informations or two check-node external informations simultaneously.
Step 3, the variable node of the check-node to the first frame data and the second frame data upgrades:
Each check node calculation unit CNU in check node calculation module iupgrade one by one with row order the M being attached thereto i, jin z external information of the first frame, the each variable node computing unit VNU in variable node computing module simultaneously jupgrade one by one the M being attached thereto with row order i, jin z external information of the second frame;
Step 4, adds 1 by iterations iter, calculates the syndrome vector s of the first frame coding result 1syndrome vector s with the second frame coding result 2if, s 1=s 2=0 or iter equal maximum iteration time MAX_ITER, execution step 5, otherwise forward to step 2 proceed iterative decoding calculate;
Step 5 is read respectively two frame coding court verdicts and is exported as decode results from decoding code word memory module RAM_C.
Decoder effect of the present invention can and realize result by following theory analysis and further illustrate:
1. the two frame start node extrinsic information data of storing in iteration external information memory module of the present invention are respectively variable node external information and check-node external information, make variable node processing unit and the code check node processing unit can complete parallel alternate treatment two Frames in whole decode procedure, in the situation that decoder work clock is identical, the throughput of its decoding is the twice of conventional decoder, higher than the decoding throughput of improved two frame parallel decoders.The present invention has adopted dynamic address access management method in the access of external information, can in monolithic RAM, realize the storage and inquire of two frame coding data simultaneously, compared with improved two frame parallel decoders, the required BRAM resource of decoder can reduce half.
2. decoder of the present invention and interpretation method realize on the XC4VLX80FPGA of Xilinx company.This decoder is 5/6 based on code check, the QC-LDPC code that code length is 2304, and decoding algorithm is normalization minimum-sum algorithm, Fig. 8 is the decoding performance of this QC-LDPC code under awgn channel, BPSK modulation condition.
Traditional decoder, improved two frame parallel decoders and low memory space high speed decoder of the present invention on ISE10.1 platform to realize result data as shown in the table.
The result that realizes on table 1Xilinx FPGAXC4VLX80 is added up
As seen from Table 1, the decoding throughput of low memory space high speed decoder of the present invention is 190Mbps, approach the twice of conventional decoder throughput, the throughput of more improved two frame parallel decoders is slightly high, decoder for decoding throughput of the present invention does not reach the twice of conventional decoder completely, is because the operation clock frequency of this decoder is lower slightly compared with conventional decoder.On the usage quantity of hardware resource, the required Slice resource of decoder of the present invention is slightly high compared with conventional decoder, substantially suitable with improved two frame parallel decoders, the required RAM resource of decoder of the present invention is identical with conventional decoder, is the half of the RAM resource of improved two frame parallel decoders.
The present invention's known technology that detailed description is not this area.

Claims (2)

1.一种基于FPGA的低存储量高速QC-LDPC码译码器,包括:1. A low-memory high-speed QC-LDPC code decoder based on FPGA, comprising: 变量节点计算模块VNU,用于对译码的变量节点外信息更新计算,其中包含n个变量节点计算单元VNUj,1≤j≤n,n为基矩阵的列分块数量;The variable node calculation module VNU is used to update and calculate the information outside the decoded variable node, which includes n variable node calculation units VNU j , 1≤j≤n, and n is the number of column blocks of the base matrix; 校验节点计算模块CNU,用于对译码的校验节点外信息更新计算,其中包含m个校验节点计算单元CNUi,1≤i≤m,m为基矩阵的行分块数量;The check node calculation module CNU is used to update and calculate the information outside the decoded check node, which includes m check node calculation units CNU i , 1≤i≤m, and m is the number of row blocks of the base matrix; 校验方程计算模块PCU,用于校验译码结果是否为合法码字;The verification equation calculation module PCU is used to verify whether the decoding result is a legal code word; 信道初始信息存储模块RAM_F,用于存储接收的信道似然比信息,其中包含n块RAM存储块Fj,1≤j≤n;The channel initial information storage module RAM_F is used to store the received channel likelihood ratio information, which includes n blocks of RAM storage blocks F j , 1≤j≤n; 迭代外信息存储模块RAM_M,用于存储迭代译码过程中变量节点和校验节点相互传递的迭代外信息,其中包含m×n块RAM存储块Mi,j,1≤i≤m,1≤j≤n;The iterative external information storage module RAM_M is used to store the iterative external information transmitted between the variable node and the check node during the iterative decoding process, which includes m×n blocks of RAM storage blocks M i,j , 1≤i≤m,1≤ j≤n; 译码码字存储模块RAM_C,用于存储译码得到的码字结果;The decoding codeword storage module RAM_C is used to store the codeword result obtained by decoding; 其特征在于:It is characterized by: 所述RAM_F、RAM_M和RAM_C三个模块中的每块RAM均存储不同的两帧译码数据,即迭代外信息存储模块RAM_M中存储的两帧译码数据为外信息初始值,其中第一帧数据存储的初始外信息为校验节点外信息,其值为全0,第二帧数据存储的初始外信息为变量节点外信息,其值为信道接收的似然比值;信道初始信息存储模块RAM_F中存储的译码数据为不同的两帧信道接收似然比值;译码码字存储模块RAM_C中存储的译码数据为不同的两帧译码判决结果;Each block of RAM in the three modules of RAM_F, RAM_M and RAM_C stores two different frames of decoding data, that is, the two frames of decoding data stored in the iterative external information storage module RAM_M are initial values of external information, wherein the first frame The initial extrinsic information stored in the data is the check node extrinsic information, and its value is all 0; the initial extrinsic information stored in the second frame data is the variable node extrinsic information, and its value is the likelihood ratio value received by the channel; the channel initial information storage module RAM_F The decoding data stored in is different two-frame channel reception likelihood ratios; the decoding data stored in the decoding code word storage module RAM_C is different two-frame decoding judgment results; 所述每块存储块Fj中含有两个只读端口,这两个只读端口均与校验节点计算单元CNUi相连,分别负责两帧不同的信道初始信息的读取;Each of the storage blocks F j contains two read-only ports, and these two read-only ports are connected to the check node computing unit CNU i , and are respectively responsible for reading the initial information of two different channels of frames; 所述每块存储块Mi,j中含有两个读写端口,其读写模式为“先读后写模式”,每个读写端口均与变量节点计算单元VNUj和校验节点计算单元CNUi相连,每个端口各负责一帧迭代外信息的读写。Each of the storage blocks M i,j contains two read-write ports, and its read-write mode is "read first and then write mode", and each read-write port is connected to the variable node computing unit VNU j and the check node computing unit CNU i is connected, and each port is responsible for reading and writing information outside of one frame of iteration. 2.一种基于FPGA的低存储量高速QC-LDPC码译码方法,包括如下步骤:2. A low storage capacity high-speed QC-LDPC code decoding method based on FPGA, comprising the steps: 1)初始化:将接收到的两帧信道似然比信息按照校验矩阵H的列分块分段存入信道初始信息存储模块RAM_F的各存储块Fj中,两帧数据的地址范围分别为0~z-1和z~2z-1,Fj为RAM_F中存储第j列校验子矩阵信道初始信息的存储块,z为校验子矩阵的维数;将迭代外信息存储模块RAM_M中的第一帧外信息初始化为全零,第二帧外信息初始化为信道接收似然比信息;将迭代次数iter初始化为0次;1) Initialization: the received two frames of channel likelihood ratio information are stored in each storage block F j of the channel initial information storage module RAM_F according to the columns of the parity check matrix H, and the address ranges of the two frames of data are respectively 0~z-1 and z~2z-1, F j is the storage block in RAM_F that stores the initial information of the syndrome matrix channel in the jth column, z is the dimension of the syndrome matrix; the iterative external information storage module RAM_M The information outside the first frame of is initialized to all zeros, and the information outside the second frame is initialized to channel reception likelihood ratio information; the number of iterations iter is initialized to 0 times; 2)对第一帧数据的变量节点和第二帧数据的校验节点进行更新:2) Update the variable node of the first frame data and the check node of the second frame data: 2a)变量节点计算模块中的每个变量节点计算单元VNUj以列顺序逐个更新与之相连的Mi,j中的第一帧的z个外信息:2a) Each variable node computing unit VNU j in the variable node computing module updates the z extrinsic information of the first frame in the connected M i,j one by one in column order: 2a1)由VNUj分别从Mi,j和Fj中读取更新计算所需的外信息和信道似然比信息;Mi,j中的第一帧数据的z个外信息初始存储地址分别为0~z-1,每次外信息更新完毕后其存储地址将改变,其中VNUj为VNU中进行第j列变量节点更新计算的变量节点计算单元,Mi,j为RAM_M中存储第i行第j列校验子矩阵外信息的存储块;2a1) VNU j reads the extrinsic information and channel likelihood ratio information required for update calculation from M i,j and F j respectively; the initial storage addresses of z extrinsic information of the first frame data in Mi ,j are respectively is 0~z-1, and its storage address will change after each update of the external information, where VNU j is the variable node computing unit that performs the update calculation of the jth column of variable nodes in the VNU, M i,j is the i-th column stored in RAM_M A storage block of information outside the syndrome matrix in the jth column of the row; 2a2)由VNUj根据读出的外信息和信道似然比信息进行变量节点的更新计算,并完成该节点的译码比特判决;2a2) The VNU j performs the update calculation of the variable node according to the read external information and the channel likelihood ratio information, and completes the decoding bit judgment of the node; 2a3)由VNUj将更新计算得到的外信息数据和译码判决比特分别写入Mi,j和译码码字存储模块RAM_C中,若该变量节点的外信息在Mi,j中的读出地址为dv,则将写入地址设置为(dv+Lv)mod z,Lv是VNUj对一个外信息数据进行变量节点更新计算的流水线长度,符号mod代表取模运算;2a3) VNU j writes the updated and calculated extrinsic information data and decoding decision bits into M i,j and decoded code word storage module RAM_C respectively, if the extrinsic information of the variable node is read in M i,j If the output address is d v , set the write address to (d v +L v ) mod z, where L v is the pipeline length for VNU j to perform variable node update calculation on an external information data, and the symbol mod represents a modulo operation; 2b)校验节点计算模块中的每个校验节点计算单元CNUi以行顺序逐个更新与之相连的Mi,j中的第二帧的z个外信息:2b) Each check node computing unit CNU i in the check node computing module updates the z external information of the second frame in the connected M i,j one by one in row order: 2b1)由CNUi从Mi,j中读取更新计算所需的外信息;第二帧数据的z个外信息初始存储地址分别为z~2z-1,每次外信息更新完毕后其存储地址将改变,其中CNUi为CNU中进行第i行校验节点更新计算的校验节点计算单元;2b1) CNU i reads the extrinsic information required for update calculation from M i,j ; the initial storage addresses of the z extrinsic information of the second frame data are respectively z~2z-1, and each time the extrinsic information is updated, it is stored The address will change, where CNU i is the check node calculation unit in the CNU that performs the i-th check node update calculation; 2b2)由CNUi根据读出的外信息进行变量节点的更新计算;2b2) CNU i performs update calculation of variable nodes according to the read external information; 2b3)由CNUi将更新计算得到的外信息回写到Mi,j中;若校验节点外信息的读出地址为dh,则将写入地址设置为(dh+Lh)mod z,Lh是CNU对一个外信息数据进行校验节点更新计算的流水线长度;2b3) CNU i writes back the external information obtained by the update calculation to M i,j ; if the read address of the external information of the check node is d h , set the write address to (d h +L h )mod z, L h is the pipeline length for the CNU to perform check node update calculation on an external information data; 3)对第一帧数据的校验节点和第二帧数据的变量节点进行更新:3) Update the check node of the first frame data and the variable node of the second frame data: 3a)校验节点计算模块中的每个校验节点计算单元CNUi以行顺序逐个更新与之相连的Mi,j中的第一帧的z个外信息:3a) Each check node computing unit CNU i in the check node computing module updates the z external information of the first frame in the connected M i,j one by one in row order: 3a1)由CNUi从Mi,j中读取更新计算所需的外信息;3a1) CNU i reads the external information required for update calculation from M i,j ; 3a2)由CNUi根据读出的外信息进行变量节点的更新计算;3a2) CNU i performs update calculation of variable nodes according to the read external information; 3a3)由CNUi将更新计算得到的外信息回写到Mi,j中;若校验节点外信息的读出地址为dh,则将写入地址设置为(dh+Lh)mod z,Lh是CNU对一个外信息数据进行校验节点更新计算的流水线长度;3a3) CNU i writes the updated and calculated external information back into M i,j ; if the read address of the external information of the check node is d h , set the write address to (d h +L h )mod z, L h is the pipeline length for the CNU to perform check node update calculation on an external information data; 3b)变量节点计算模块中的每个变量节点计算单元VNUj以列顺序逐个更新与之相连的Mi,j中的第二帧的z个外信息:3b) Each variable node computing unit VNU j in the variable node computing module updates the z extrinsic information of the second frame in the connected M i,j one by one in column order: 3b1)由VNUj分别从Mi,j和Fj中读取更新计算所需的外信息和信道似然比信息;3b1) VNU j reads the extrinsic information and channel likelihood ratio information required for update calculation from M i, j and F j respectively; 3b2)由VNUj根据读出的外信息和信道似然比信息进行变量节点的更新计算,并完成该节点的译码比特判决;3b2) The VNU j performs the update calculation of the variable node according to the read external information and the channel likelihood ratio information, and completes the decoding bit judgment of the node; 3b3)由VNUj将更新计算得到的外信息数据和译码判决比特分别写入Mi,j和RAM_C中,若该变量节点的外信息在Mi,j中的读出地址为dv,则将写入地址设置为(dv+Lv)mod z,Lv是VNU对一个外信息数据进行变量节点更新计算的流水线长度;3b3) VNU j writes the updated and calculated extrinsic information data and decoding decision bits into M i,j and RAM_C respectively, if the read address of the variable node’s extrinsic information in Mi ,j is d v , Then set the write address to (d v +L v ) mod z, where L v is the pipeline length for VNU to perform variable node update calculation on an external information data; 4)将迭代次数iter加1,计算第一帧译码结果的伴随式向量s1和第二帧译码结果的伴随式向量s2,若s1=s2=0或iter等于最大迭代次数MAX_ITER,执行步骤5),否则转到步骤2)继续进行迭代译码计算;4) Add 1 to the number of iterations iter, and calculate the syndrome vector s 1 of the decoding result of the first frame and the syndrome vector s 2 of the decoding result of the second frame, if s 1 =s 2 =0 or iter is equal to the maximum number of iterations MAX_ITER, execute step 5), otherwise go to step 2) to continue iterative decoding calculation; 5)从译码码字存储模块RAM_C中分别读出两帧译码判决结果作为译码结果输出。5) Read out two frames of decoding decision results from the decoding codeword storage module RAM_C as the decoding results and output them.
CN201210045900.9A 2012-02-27 2012-02-27 Quasi-cyclic low-density parity check code decoder based on FPGA (field-programmable gate array) and decoding method Expired - Fee Related CN102594369B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210045900.9A CN102594369B (en) 2012-02-27 2012-02-27 Quasi-cyclic low-density parity check code decoder based on FPGA (field-programmable gate array) and decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210045900.9A CN102594369B (en) 2012-02-27 2012-02-27 Quasi-cyclic low-density parity check code decoder based on FPGA (field-programmable gate array) and decoding method

Publications (2)

Publication Number Publication Date
CN102594369A CN102594369A (en) 2012-07-18
CN102594369B true CN102594369B (en) 2014-06-04

Family

ID=46482624

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210045900.9A Expired - Fee Related CN102594369B (en) 2012-02-27 2012-02-27 Quasi-cyclic low-density parity check code decoder based on FPGA (field-programmable gate array) and decoding method

Country Status (1)

Country Link
CN (1) CN102594369B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI867584B (en) * 2023-06-16 2024-12-21 睿寬智能科技有限公司 Method for reducing latency in ldpc shuffle decoding by swapping columns of ldpc codes

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103220003B (en) * 2013-03-29 2016-12-28 西安空间无线电技术研究所 Improve the implementation method of the QC-LDPC decoder of node processing degree of parallelism
CN106571829B (en) * 2016-10-27 2019-09-06 西安空间无线电技术研究所 A high-speed adaptive DVB-S2 LDPC decoder and decoding method based on FPGA
CN106911337B (en) * 2017-01-23 2020-06-09 深圳忆联信息系统有限公司 Data processing method, device and decoder
CN108494410A (en) * 2018-03-30 2018-09-04 北京联想核芯科技有限公司 Interpretation method, device, equipment and medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188426A (en) * 2007-12-05 2008-05-28 深圳国微技术有限公司 Decoder for parallel processing of LDPC code of aligning cycle structure and its method
CN101771421A (en) * 2010-03-11 2010-07-07 复旦大学 Ultrahigh-speed and low-power-consumption QC-LDPC code decoder based on TDMP
CN102064837A (en) * 2010-12-24 2011-05-18 西安电子科技大学 Partially parallel decoding method of quasi-cyclic low density parity check (QC-LDPC) code based on first in first out (FIFO) fragmentation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188426A (en) * 2007-12-05 2008-05-28 深圳国微技术有限公司 Decoder for parallel processing of LDPC code of aligning cycle structure and its method
CN101771421A (en) * 2010-03-11 2010-07-07 复旦大学 Ultrahigh-speed and low-power-consumption QC-LDPC code decoder based on TDMP
CN102064837A (en) * 2010-12-24 2011-05-18 西安电子科技大学 Partially parallel decoding method of quasi-cyclic low density parity check (QC-LDPC) code based on first in first out (FIFO) fragmentation

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"10 Gbps LDPC编码器的FPGA设计";袁瑞佳 等;《电子与信息学报》;20111231;第33卷(第12期);第2942-2947页 *
"基于FPGA 的LDPC 码编译码器联合设计";袁瑞佳 等;《电子与信息学报》;20120131;第34卷(第1期);第38-44页 *
袁瑞佳 等."10 Gbps LDPC编码器的FPGA设计".《电子与信息学报》.2011,第33卷(第12期),第2942-2947页.
袁瑞佳 等."基于FPGA 的LDPC 码编译码器联合设计".《电子与信息学报》.2012,第34卷(第1期),第38-44页.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI867584B (en) * 2023-06-16 2024-12-21 睿寬智能科技有限公司 Method for reducing latency in ldpc shuffle decoding by swapping columns of ldpc codes

Also Published As

Publication number Publication date
CN102594369A (en) 2012-07-18

Similar Documents

Publication Publication Date Title
US8739001B2 (en) LDPC encoding and decoding techniques
US9432053B1 (en) High speed LDPC decoder
US10298261B2 (en) Reduced complexity non-binary LDPC decoding algorithm
CN101951264B (en) Multiple-rate, quasi-cycling and low density decoder for parity check codes
US7853854B2 (en) Iterative decoding of a frame of data encoded using a block coding algorithm
CN101106381B (en) Hierarchical LDPC decoder and decoding processing method
CN1874164B (en) Message passing decoding apparatus and method using simultaneous memory access
CN100425000C (en) Twin-turbo structure low-density parity-check code decoder and decoding method
CN101803210B (en) Method, apparatus and apparatus for providing semi-parallel low-density parity-check decoding using block-structured parity-check matrix
US9195536B2 (en) Error correction decoder and error correction decoding method
CN102664638A (en) FPGA (Field Programmable Gate Array) realization method for multi-code-length LDPC (Low Density Parity Check) code decoder on basis of hierarchical NMS (Network Management System) algorithm
WO2018036178A1 (en) Decoding method for low density parity check code (ldpc)
CN102594369B (en) Quasi-cyclic low-density parity check code decoder based on FPGA (field-programmable gate array) and decoding method
CN101777921B (en) Structured LDPC code decoding method and device for system on explicit memory chip
CN1767397A (en) High-efficiency decoding device and method for low-density parity-check codes
CN108696282A (en) A kind of QC-LDPC code full parellel layered structure decoders of high-efficient low-complexity
US20200091933A1 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
CN103618556A (en) Partially parallel quasi-cyclic low-density parity-check (QC-LDPC) decoding method based on row message passing (RMP) scheduling
CN102340317B (en) High-throughput rate decoder and decoding method of structured LDPC code
CN102957436A (en) Low-density parity check code decoding device and low-density parity check code decoding method
CN102412844B (en) Decoding method and decoding device of IRA (irregular repeat-accumulate) series LDPC (low density parity check) codes
CN102201817B (en) Low-power-consumption LDPC decoder based on optimization of memory folding architecture
CN118573213A (en) FPGA implementation method, system and medium based on layering and product decoding algorithm
CN107872231B (en) LDPC decoding method and device
CN102064837A (en) Partially parallel decoding method of quasi-cyclic low density parity check (QC-LDPC) code based on first in first out (FIFO) fragmentation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140604

Termination date: 20200227

CF01 Termination of patent right due to non-payment of annual fee