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 PDFInfo
- 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
- external information
- node
- check
- ram
- information
- 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
Links
Images
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
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:
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. the low memory space high speed QC-LDPC code decoder based on FPGA, 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, be that the two frame coding data of storing in iteration external information memory module RAM_M are external information initial value, wherein the initial external information of the first frame data storage is check-node external information, its value is full 0, the initial external information of the second frame data storage is variable node external information, the likelihood ratio that its value receives for channel; The decoding data of storing in channel initial information memory module RAM_F is that two different frame channels receive likelihood ratio; The decoding data of storing in decoding code word memory module RAM_C is two different frame coding court verdicts;
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.
2. the low memory space high speed QC-LDPC code coding method based on FPGA, 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
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_F, 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 of the first frame:
2a1) by VNU
jrespectively from M
i,jand F
jin read required external information and the channel likelihood ratio information calculated of upgrading; M
i,jin z external information initial storage address of the first frame data be respectively 0~z-1, each external information upgrade after its memory address will change, wherein VNU
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;
2a2) by VNU
jcarry out the renewal calculating of variable node according to the external information of reading and channel likelihood ratio information, and complete the decoding bit decision of this node;
2a3) by VNU
jthe extrinsic information data that renewal is calculated and decoding decision bits write respectively M
i,jin decoding code word memory module RAM_C, if the external information of this variable node is at M
i,jin the address of reading be d
v, writing address is set to (d
v+ L
v) mod z, L
vvNU
jan extrinsic information data is carried out to variable node and upgrade the streamline length of calculating, symbol mod represents modulo operation;
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 of the second frame:
2b1) by CNU
ifrom M
i,jin read to upgrade and calculate required external information; The z of the second frame data external information initial storage address is respectively z~2z-1, and after each external information renewal, its memory address will change, wherein CNU
iupgrade for carrying out the capable check-node of i in CNU the check node calculation unit calculating;
2b2) by CNU
icarry out the renewal of variable node calculates according to the external information of reading;
2b3) by CNU
ithe external information that renewal is calculated is written back to M
i,jin; If the address of reading of check-node external information is d
h, writing address is set to (d
h+ L
h) mod z, L
hthat CNU carries out to an extrinsic information data streamline length that check-node renewal is calculated;
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:
3a1) by CNU
ifrom M
i,jin read to upgrade and calculate required external information;
3a2) by CNU
icarry out the renewal of variable node calculates according to the external information of reading;
3a3) by CNU
ithe external information that renewal is calculated is written back to M
i,jin; If the address of reading of check-node external information is d
h, writing address is set to (d
h+ L
h) mod z, L
hthat CNU carries out to an extrinsic information data streamline length that check-node renewal is calculated;
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:
3b1) by VNU
jrespectively from M
i,jand F
jin read required external information and the channel likelihood ratio information calculated of upgrading;
3b2) by VNU
jcarry out the renewal calculating of variable node according to the external information of reading and channel likelihood ratio information, and complete the decoding bit decision of this node;
3b3) by VNU
jthe extrinsic information data that renewal is calculated and decoding decision bits write respectively M
i,jin RAM_C, if the external information of this variable node is at M
i,jin the address of reading be d
v, writing address is set to (d
v+ L
v) mod z, L
vthat VNU carries out to an extrinsic information data streamline length that variable node renewal is calculated;
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.
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) |
Families Citing this family (4)
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 kind of high-speed adaptive DVB-S2 ldpc decoder and interpretation 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)
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 |
-
2012
- 2012-02-27 CN CN201210045900.9A patent/CN102594369B/en not_active Expired - Fee Related
Patent Citations (3)
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)
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页. |
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 | |
CN104868925B (en) | Coding method, interpretation method, code device and the code translator of structured LDPC code | |
US9432053B1 (en) | High speed LDPC decoder | |
CN102545913B (en) | Iterative decoding method and iterative decoding system | |
CN102412847B (en) | Method and apparatus for decoding low density parity check code using united node processing | |
US7853854B2 (en) | Iterative decoding of a frame of data encoded using a block coding algorithm | |
CN107370490B (en) | Method and device for encoding and decoding structured LDPC (Low Density parity check) | |
CN101951264B (en) | Multiple-rate, quasi-cycling and low density decoder for parity check codes | |
CN1767397A (en) | The apparatus for efficiently decoding of low density parity check code and method | |
WO2018036178A1 (en) | Decoding method for low density parity check code (ldpc) | |
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 | |
US10848182B2 (en) | Iterative decoding with early termination criterion that permits errors in redundancy part | |
CN102594369B (en) | Quasi-cyclic low-density parity check code decoder based on FPGA (field-programmable gate array) and decoding method | |
CN101154948A (en) | Methods and apparatus for low-density parity check decoding using hardware-sharing and serial sum-product architecture | |
CN103618556A (en) | Partially parallel quasi-cyclic low-density parity-check (QC-LDPC) decoding method based on row message passing (RMP) scheduling | |
US20170163288A1 (en) | On-the-fly evaluation of the number of errors corrected in iterative ecc decoding | |
CN113783576A (en) | Method and apparatus for vertical layered decoding of quasi-cyclic low density parity check codes constructed from clusters of cyclic permutation matrices | |
US20110179337A1 (en) | Memory utilization method for low density parity check code, low density parity check code decoding method and decoding apparatus thereof | |
CN101420279B (en) | High speed LDPC decoder in mobile multimedia broadcast and decoding method | |
CN102412844B (en) | Decoding method and decoding device of IRA (irregular repeat-accumulate) series LDPC (low density parity check) codes | |
CN102820890B (en) | Encoder device and method for short code length multi-system weighted repeat-accumulate code | |
CN102340317A (en) | High-throughput rate decoder structure of structuring LDPC code and decoding method thereof | |
CN102611462B (en) | LDPC-CC (Low-Density Parity-Check Convolution Codes) decoding algorithm and decoder | |
US10727869B1 (en) | Efficient method for packing low-density parity-check (LDPC) decode operations | |
Gentile et al. | Low-complexity architectures of a decoder for IEEE 802.16 e LDPC codes |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140604 Termination date: 20200227 |