[go: up one dir, main page]

CN119814046A - A QC-LDPC code decoder based on FPGA and its implementation method - Google Patents

A QC-LDPC code decoder based on FPGA and its implementation method Download PDF

Info

Publication number
CN119814046A
CN119814046A CN202411855004.8A CN202411855004A CN119814046A CN 119814046 A CN119814046 A CN 119814046A CN 202411855004 A CN202411855004 A CN 202411855004A CN 119814046 A CN119814046 A CN 119814046A
Authority
CN
China
Prior art keywords
data
layer
unit
llr
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202411855004.8A
Other languages
Chinese (zh)
Other versions
CN119814046B (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.)
Anhui Zhongke Terahertz Technology Co ltd
Anhui University
Original Assignee
Anhui Zhongke Terahertz Technology Co ltd
Anhui 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 Anhui Zhongke Terahertz Technology Co ltd, Anhui University filed Critical Anhui Zhongke Terahertz Technology Co ltd
Priority to CN202411855004.8A priority Critical patent/CN119814046B/en
Publication of CN119814046A publication Critical patent/CN119814046A/en
Application granted granted Critical
Publication of CN119814046B publication Critical patent/CN119814046B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种基于FPGA的QC‑LDPC码译码器及其实现方法,属于通信技术领域。信道信息以及后验概率存储单元LLR_RAM,前端移位寄存器单元F_shifter。本发明在变量节点处理单元VNU前引入了一个数据选择器Data_selector,该选择器连接移位寄存器,该选择器灵活连接移位寄存器的输出值至VNU,从而将当前层的RAM读操作提前至上一层数据更新阶段,本层更新数据也部分写入存储单元LLR_RAM,部分传递至下一层VNU,减少了RAM读取的三个时钟周期,提高效率并且不降低译码性能;此外,采用层内并行译码算法和4级流水线结构技术,使译码器吞吐量进一步的带提升;提升解码速度并降低延迟且不降低性能,适用于高速通信场景中的LDPC译码应用。

The present invention discloses a QC-LDPC code decoder based on FPGA and an implementation method thereof, and belongs to the field of communication technology. Channel information and posterior probability storage unit LLR_RAM, front-end shift register unit F_shifter. The present invention introduces a data selector Data_selector in front of the variable node processing unit VNU, the selector is connected to the shift register, and the selector flexibly connects the output value of the shift register to VNU, thereby advancing the RAM read operation of the current layer to the data update stage of the previous layer, and the updated data of this layer is also partially written into the storage unit LLR_RAM, and partially transmitted to the next layer VNU, reducing three clock cycles of RAM reading, improving efficiency and not reducing decoding performance; in addition, the intra-layer parallel decoding algorithm and the 4-level pipeline structure technology are adopted to further improve the decoder throughput; improve the decoding speed and reduce the delay without reducing the performance, which is suitable for LDPC decoding applications in high-speed communication scenarios.

Description

QC-LDPC code decoder based on FPGA and implementation method thereof
Technical Field
The invention relates to the technical field of communication, in particular to a QC-LDPC code decoder based on an FPGA and an implementation method thereof.
Background
In digital communication systems, signals are subject to various noise and interference during transmission, resulting in errors in the transmitted data. In order to improve the reliability of data transmission, a forward error correction coding technology is generally adopted, and an LDPC code is used as a very efficient error correction code, and has become one of important coding schemes in a modern communication system due to the excellent performance of the LDPC code approaching the shannon limit, and is widely used in various fields such as deep space communication, terahertz communication and the like. Decoders of LDPC codes have been widely studied in terms of code architecture, decoding algorithm, hardware implementation, etc., wherein how to improve throughput and hardware resource utilization of LDPC decoders while guaranteeing decoding performance has become a hot point of study.
Among many decoding algorithms of LDPC codes, hierarchical iterative decoding is popular because of its excellent convergence. In terms of hardware implementation, system throughput may be improved by reducing the clock cycles per layer of data processing, or by increasing more pipeline stages. However, when the next layer needs to use the updated LLR value, the update process of the previous layer may not be completed, resulting in that the data cannot be updated in time, thereby affecting the decoding performance. Therefore, the speed of intra-layer data processing becomes a critical factor limiting decoder throughput. With the introduction of pipelines, the problem of read-write collision of a message memory further aggravates the problems of limited throughput and reduced decoding performance.
There are mainly several approaches to the current solutions. One is to introduce a waiting period during processing, and only after the previous layer has completed calculation and obtained updated LLR values, the next layer operation is started. However, the latency period introduced is typically long, greatly affecting the throughput of the decoding, one approach is to continually process each layer of operations without setting the latency period, read old LLR values when pipeline conflicts are encountered, and temporarily ignore the update contribution of the previous layer in the current layer processing.
However, when the number of conflict submatrices is large, the decoding performance is obviously reduced, and another method is to reduce the number of conflicts by reordering the processing of the submatrices and deferring the use time of the update contribution value based on the above method, but the method only reduces the data update conflict and does not solve the problem of reducing the decoding performance.
Disclosure of Invention
1. Technical problem to be solved
The invention aims to provide an FPGA-based QC-LDPC code decoder and an implementation method thereof, which are used for solving the problems that in the background art, when the number of conflict submatrices is large, the method can obviously reduce the decoding performance, and the other method is used for reducing the number of conflicts by reordering the processing of the submatrices and deferring the use time of updating contribution values on the basis of the method, but only reduces the data updating conflict, but does not solve the problem of reducing the decoding performance.
2. Technical proposal
A FPGA-based QC-LDPC code decoder comprising:
The channel information and posterior probability storage unit LLR_RAM is used for storing the initially transmitted channel data and LLR information after data updating iteration, n RAM storage blocks are shared, and n is the column block number of the check matrix H;
the front-end shift register unit F_shift is used for performing cyclic right shift operation on data output by the LLR_RAM according to the shift requirement of the unit matrix in each layer of the check matrix H, and k blocks of F_shift memory blocks are used as the maximum value in the number of the unit matrix which is not negative in each layer of column partition;
the variable node computing unit VNU is used for updating and computing the information data outside the variable nodes in the iterative process, and m variable node computing units are used for the total, wherein m is the number of rows of the identity matrix in the check matrix H;
The check node calculation unit CNU is used for updating and calculating the information data outside the check nodes in the iterative process, wherein m check node calculation units are used for the total, and m is the number of rows of the identity matrix in the check matrix H;
The posterior probability updating module LUU updates posterior probability LLR of the layer according to updated variable node information check node information, and m posterior probability updating units are totally arranged, wherein m is the number of rows of the identity matrix in the check matrix H;
The back-end shift register unit B_shift is used for reversely shifting a part of data output by the LUU, writing the data back to the RAM, and performing cyclic right shifting operation of the unit matrix according to the H matrix shift requirement of the next layer, wherein k blocks of B_shift memory blocks are shared, and k is the maximum value in the number of the unit matrices which are not negative in each layer of column partition;
the Data selector unit data_selector is used for selecting the shift registers at the front end and the rear end to output Data, connecting the Data to the VNU module and starting the Data iteration of the next layer;
The check node information storage FIFO unit R_M_FIFO is mainly used for storing external information updated by check nodes, and k check node information storage R_M_FIFO units are used for storing k pieces of check node information, wherein k is the maximum value in the number of non-negative unit matrixes in each layer of column partition;
The variable node information storage FIFO module Q_M_FIFO is mainly used for storing external information updated by variable nodes, and k check node information storage Q_M_FIFO units are used for storing the external information updated by the variable nodes, wherein k is the maximum value in the number of non-negative unit matrixes in each layer of column partition;
The control module Con_M controls the same-layer data processing and the data exchange between different layers of all the modules, and the time sequence of 4-pipeline frame staggered decoding.
Preferably, the channel information and posterior probability storage unit LLR_RAM completely writes data only when initialization and iteration are completed, the other data iterates layers, only selectively writes, the writing selection is controlled by the control module Con_M, the first layer data only reads all data of the layers according to the first layer matrix requirement when the iteration is initiated, the other layers selectively read part, LLR_RAM data is read, 3 clocks are processed in advance of the layer data, and the reading selection is controlled by the control module Con_M.
Preferably, the front-end drum shift register unit f_selector includes a Data selector module data_selector, and the output Data of the front-end drum shift register unit f_selector is not completely shifted and output according to the current layer shift requirement of the conventional structure, but is partially shifted and output according to the connection of the Data selector module data_selector to the next layer, which is controlled by the control module con_m.
Preferably, the Data selector module data_selector selects Data connected to the variable node computing unit VNU according to the current iteration layer number, the Data being output values of the front-end and back-end shift register units, respectively.
Preferably, the output Data of the back-end shift register unit b_shift is no longer determined by the full recovery of the original LLR sequence of the conventional structure, but by whether the Data selector module data_selector is connected to the next-layer variable node computing unit VNU, and if connected to the next-layer VNU, the output Data is processed according to the shift requirement of the block matrix of the next-layer, and if not connected to the next-layer, the shift is recovered to the original LLR sequence, and the Data selector module data_selector is written back to the llr_ram module.
Preferably, the control module Con_M starts from the channel input to the LLR_RAM unit, controls the data processing sequence of each layer, from F_shifter to VNU to CNU to LUU, finally to B_shifter, and then to write back to the RAM_LLR module according to the need, manages the data flow between layers, transfers the data from the first layer to the second layer to the last layer in turn, completes one data iteration until the required data iteration times are completed, controls 4-pipeline frame interleaved decoding, uses 4-pipeline frame interleaved decoding because each layer of data processing needs 4 clocks, and each clock corresponds to different frame data processing when processing the data in the layer.
Preferably, the implementation method of the QC-LDPC code decoder based on the FPGA comprises the following steps:
s1, initializing, namely storing received four-frame channel initial information LLR into each storage block of an LLR_RAM unit in a blocking manner according to the columns of a check matrix H, writing all 0 check node information into each R_M_FIFO unit, and initializing iteration number item to 0;
S2, iterating first layer data, namely firstly, reading data in the first layer data according to LLR_RAM units corresponding to non-negative blocking matrixes in the first layer of the check matrix H, sequentially extracting data corresponding to each frame, shifting the data in a front-end shift register unit F_shift, sending the shifted data into a VNU (virtual network unit) for variable node data updating, then sending the data into a CNU for check node updating, carrying out posterior probability updating on the data by the LUU, and finally sending the posterior probability LLR data into a B_shift unit;
S3, in the updating process of the VNU module of the first layer, based on a non-negative blocking matrix in a check matrix H of the second layer, preparing Data of the second layer, if the blocking of the first layer H matrix is adjacent to the blocking of the second layer H matrix up and down and are non-negative matrices, the Data can be directly obtained by shifting LLR Data corresponding to the first layer through a B_shift unit without re-reading an LLR_RAM unit; if the first layer H matrix is divided into blocks with negative matrix and the second layer H matrix is divided into blocks with non-negative matrix, the LLR Data corresponding to the second layer needs to read information from the RAM-LLR unit and carry out corresponding shift operation through the F-shift unit; if the first layer H matrix is divided into non-negative matrix and the second layer H matrix is divided into negative matrix, the LLR Data corresponding to the first layer is required to be shifted and recovered through the B_shift unit and written back into the LLR_RAM unit, the Data acquired by the second layer is sent to the data_selector Data selection module after being shifted and sent to the VNU, and Data update is carried out by adopting operation similar to the first layer;
s4, repeating the steps until the data updating of all layers is completed, adding 1 to iteration number item, if the iteration number does not reach the set iteration number, continuing to update the data, and after the iteration is completed, restoring the posterior probability LLR output by the LUU by the B_shifter unit to an original sequence and writing back to the RAM_LLR unit;
s5, outputting a decoding result, namely reading updated data from the RAM-LLR unit, performing decoding judgment, and finally outputting the result.
Preferably, the data processing algorithm used is the hierarchical minimum sum algorithm LMSA.
3. Advantageous effects
Compared with the prior art, the invention has the advantages that:
The invention relates to a QC-LDPC code decoder based on an FPGA and an implementation method thereof, which are improved on the basis of the structure of the traditional LDPC code decoder, in particular to a Data selector which is introduced before a variable node processing unit VNU. The two input ends of the selector are respectively connected with the shift register of the input end and the output end of the system, and the output value of the shift register is flexibly connected to the VNU through the selector, so that the RAM read operation of the current layer is advanced to the updating stage of the previous layer;
According to the QC-LDPC code decoder based on the FPGA and the implementation method thereof, update data of the layer is also partially written into the LLR-RAM unit and is partially transmitted to the next layer of VNU, three clock cycles for reading by the RAM are reduced, the data transmission efficiency is improved, and the decoding performance is not reduced;
The invention adopts an intra-layer parallel decoding algorithm and a 4-stage pipeline structure technology, so that the throughput of the decoder is further improved. This design significantly increases decoding speed and reduces latency without degrading performance, and is suitable for LDPC decoding applications in high-speed communication scenarios.
Drawings
FIG. 1 is a schematic diagram of a QC-LDPC decoder based on an FPGA and a method for implementing the same;
FIG. 2 is a schematic diagram of a QC-LDPC code decoder based on an FPGA and a 4-pipeline frame interleaved decoding method for implementing the same;
FIG. 3 is a schematic flow chart of the QC-LDPC decoder based on the FPGA and the QC-LDPC decoder provided by the implementation method thereof;
FIG. 4 is a timing diagram of a QC-LDPC code decoder based on an FPGA and a method for implementing the same, which provides 4-pipe frame interleaved decoding of the QC-LDPC code decoder;
Fig. 5 is a graph showing decoding performance of the QC-LDPC decoder using BPSK modulation under AWGN channels according to the present invention based on the FPGA QC-LDPC code decoder and the implementation method thereof.
Detailed Description
In the description of the present invention, it should be understood that the terms "center", "longitudinal", "lateral", "length", "width", "thickness", "upper", "lower", "front", "rear", "left", "right", "vertical", "horizontal", "top", "bottom", "inner", "outer", "clockwise", "counterclockwise", etc. indicate orientations or positional relationships based on the orientations or positional relationships shown in the drawings are merely for convenience in describing the present invention and simplifying the description, and do not indicate or imply that the apparatus or elements referred to must have a specific orientation, be configured and operated in a specific orientation, and thus should not be construed as limiting the present invention.
In the description of the present invention, the meaning of "a plurality" is two or more, unless explicitly defined otherwise.
In the description of the present invention, unless explicitly specified and limited otherwise, the terms "mounted," "configured to," "engaged with," "connected to," and the like are to be construed broadly, and include, for example, "connected to," whether fixedly connected to, detachably connected to, or integrally connected to, mechanically connected to, electrically connected to, directly connected to, indirectly connected to, and in communication with each other via an intermediate medium. The specific meaning of the above terms in the present invention will be understood in specific cases by those of ordinary skill in the art.
Referring to fig. 1-5, the present invention provides a technical solution:
a FPGA-based QC-LDPC code decoder comprising:
The device comprises channel information, a posterior probability storage unit LLR_RAM, a front-end roller shift register unit F_selector, a variable node calculation unit VNU, a check node calculation unit CNU, a posterior probability update unit LUU, a rear-end roller shift register unit B_selector, a Data selector module data_selector, a check node information storage FIFO unit R_M_FIFO, a variable node information storage FIFO unit Q_M_FIFO and a control module Con_M;
The LLR values corresponding to the non-negative blocking sub-matrix of the next layer are no longer read out of the LLR_RAM cells and shifted to the VNU. If the current layer is the negative submatrix and the lower layer is not the negative submatrix, the LLR of the next layer is read from an LLR_RAM unit in advance by 3 clocks and is sent to an F_shift unit, the current layer is the non-negative submatrix, the lower layer is the negative matrix, the LLR of the current layer is shifted and recovered and written back to the LLR_RAM, and in addition, an intra-layer parallel decoding algorithm and a 4-level pipeline structure technology are adopted as shown in figure 2, so that the throughput of a decoder is further improved;
The channel information and posterior probability storage unit LLR_RAM is used for storing the initially transmitted channel data and LLR information after data updating iteration, n RAM storage blocks are shared, and n is the column block number of the check matrix H;
the front-end shift register unit F_shift is used for performing cyclic right shift operation on data output by the LLR_RAM according to the shift requirement of the unit matrix in each layer of the check matrix H, and k blocks of F_shift memory blocks are used as the maximum value in the number of the unit matrix which is not negative in each layer of column partition;
the variable node computing unit VNU is used for updating and computing the information data outside the variable nodes in the iterative process, and m variable node computing units are used for the total, wherein m is the number of rows of the identity matrix in the check matrix H;
The check node calculation unit CNU is used for updating and calculating the information data outside the check nodes in the iterative process, wherein m check node calculation units are used for the total, and m is the number of rows of the identity matrix in the check matrix H;
The posterior probability updating module LUU updates posterior probability LLR of the layer according to updated variable node information check node information, and m posterior probability updating units are totally arranged, wherein m is the number of rows of the identity matrix in the check matrix H;
The back-end shift register unit B_shift is used for reversely shifting a part of data output by the LUU, writing the data back to the RAM, and performing cyclic right shifting operation of the unit matrix according to the H matrix shift requirement of the next layer, wherein k blocks of B_shift memory blocks are shared, and k is the maximum value in the number of the unit matrices which are not negative in each layer of column partition;
the Data selector unit data_selector is used for selecting the shift registers at the front end and the rear end to output Data, connecting the Data to the VNU module and starting the Data iteration of the next layer;
The check node information storage FIFO unit R_M_FIFO is mainly used for storing external information updated by check nodes, and k check node information storage R_M_FIFO units are used for storing k pieces of check node information, wherein k is the maximum value in the number of non-negative unit matrixes in each layer of column partition;
The variable node information storage FIFO module Q_M_FIFO is mainly used for storing external information updated by variable nodes, and k check node information storage Q_M_FIFO units are used for storing the external information updated by the variable nodes, wherein k is the maximum value in the number of non-negative unit matrixes in each layer of column partition;
A control module Con_M for controlling the same layer data processing of all the modules and the data exchange between different layers, and the time sequence of 4-pipeline frame staggered decoding;
specifically, the channel information and posterior probability storage unit LLR_RAM only performs complete writing of data when initialization and iteration are completed, the other data iterates layers, only performs selective writing, writing selection is controlled by the control module Con_M, only performs all data reading of the first layer according to the first layer matrix requirement when the initial iteration is performed, the other layers perform selective partial reading, and reads LLR_RAM data, processes the data of the layer for 3 clocks in advance, and the reading selection is controlled by the control module Con_M.
Further, the front-end drum shift register unit f_shift includes a Data selector module data_selector, and the output Data of the front-end drum shift register unit f_shift is not completely shifted and output according to the current layer shift requirement of the conventional structure, but is partially shifted and output according to the connection of the Data selector module data_selector to the next layer, which is controlled by the control module con_m.
Further, the Data selector module data_selector selects Data connected to the variable node calculation unit VNU according to the current iteration layer number, the Data being output values of the front-end and back-end shift register units, respectively.
Further, the output Data of the back-end shift register unit b_shift is not completely restored to the original LLR sequence by the conventional structure, but is determined by whether the Data selector module data_selector is connected to the next-layer variable node computing unit VNU, if connected to the next-layer VNU, the output Data is processed according to the shift requirement of the block matrix of the next-layer, and if not connected to the next-layer, the shift is restored to the original LLR sequence, and the Data selector module data_selector is written back to the llr_ram module.
Further, the control module Con_M starts from the channel input to the LLR_RAM unit, controls the data processing sequence of each layer, from F_shift to VNU to CNU to LUU, finally to B_shift, and then to write back to the RAM_LLR module according to the need, manages the data flow between layers, transfers the data from the first layer to the second layer to the last layer in turn, completes one data iteration until the required data iteration times are completed, controls 4-channel frame interleaved decoding, uses 4-channel frame interleaved decoding because each layer of data processing needs 4 clocks, and each clock corresponds to different frame data processing when the data is processed in the layer.
Notably, the implementation method of the QC-LDPC code decoder based on the FPGA comprises the following steps of:
s1, initializing, namely storing received four-frame channel initial information LLR into each storage block of an LLR_RAM unit in a blocking manner according to the columns of a check matrix H, writing all 0 check node information into each R_M_FIFO unit, and initializing iteration number item to 0;
S2, iterating first layer data, namely firstly, reading data in the first layer data according to LLR_RAM units corresponding to non-negative blocking matrixes in the first layer of the check matrix H, sequentially extracting data corresponding to each frame, shifting the data in a front-end shift register unit F_shift, sending the shifted data into a VNU (virtual network unit) for variable node data updating, then sending the data into a CNU for check node updating, carrying out posterior probability updating on the data by the LUU, and finally sending the posterior probability LLR data into a B_shift unit;
S3, in the updating process of the VNU module of the first layer, based on a non-negative blocking matrix in a check matrix H of the second layer, preparing Data of the second layer, if the blocking of the first layer H matrix is adjacent to the blocking of the second layer H matrix up and down and are non-negative matrices, the Data can be directly obtained by shifting LLR Data corresponding to the first layer through a B_shift unit without re-reading an LLR_RAM unit; if the first layer H matrix is divided into blocks with negative matrix and the second layer H matrix is divided into blocks with non-negative matrix, the LLR Data corresponding to the second layer needs to read information from the RAM-LLR unit and carry out corresponding shift operation through the F-shift unit; if the first layer H matrix is divided into non-negative matrix and the second layer H matrix is divided into negative matrix, the LLR Data corresponding to the first layer is required to be shifted and recovered through the B_shift unit and written back into the LLR_RAM unit, the Data acquired by the second layer is sent to the data_selector Data selection module after being shifted and sent to the VNU, and Data update is carried out by adopting operation similar to the first layer;
s4, repeating the steps until the data updating of all layers is completed, adding 1 to iteration number item, if the iteration number does not reach the set iteration number, continuing to update the data, and after the iteration is completed, restoring the posterior probability LLR output by the LUU by the B_shifter unit to an original sequence and writing back to the RAM_LLR unit;
s5, outputting a decoding result, namely reading updated data from the RAM-LLR unit, performing decoding judgment, and finally outputting the result.
Embodiment one:
The embodiment of the invention provides an FPGA-based QC-LDPC code decoder and an implementation method thereof, and the specific processing steps are shown in figure 4;
The method comprises the steps of S1, initializing, namely storing received four-frame channel initial information LLR into each storage block of channel information and a posterior probability storage unit LLR_RAM in a segmented mode according to the columns of H of a check matrix, wherein each storage block has a storage address of 0-3, and respectively corresponds to the same LLR divided storage positions in different frames;
s2, iterating the first layer of data;
a) According to the first layer of the check matrix H, the storage data in each storage block of the LLR_RAM unit at the position where the first layer of the check matrix H is a non-negative sub-matrix is sequentially read, the first clock reads the corresponding data of the first frame, the second clock reads the corresponding data of the second frame, and at the same time, the second clock starts to read the variable node data corresponding to the first layer of the first frame in each storage block of the R_M_FIFO; the method comprises the steps of finishing four-frame LLR block initial information reading in the first four clocks, finishing variable node information corresponding to the first layer four frames in the second to fifth clocks, sequentially sending the read LLR block initial data into each shifting unit of a front-end shifting register unit Fl_shift corresponding to the first layer according to a reading sequence, shifting according to the shifting requirement of a first layer check matrix, wherein F_shift only consumes one clock when finishing shifting operation, the four-frame LLR block data share the same F_shift, distinguishing the four sent clocks sequentially, and controlling the data reading operation by a control module Con_M;
b) The first layer front end shift register unit F_shift outputs Data, the Data is connected to all the computing units of the VNU by the selection module data_selector, variable node Data of all the frames of R_M_FIFO read at the moment are also connected to all the computing units of the VNU, after all the computing units of the VNU complete Data updating of variable nodes, the Data are sent to all the computing units of the CNU and all the storage units of the Q_M_FIFO, the CNU reads the information of Q_M_FIFO just stored during the Data updating of the check node, and after the Data of the check node complete updating, the Data are sent to all the module computing units of the LUU and all the storage units of the R_M_FIFO. Each calculation unit of the LUU sends the data into each shift unit of the back-end shift register B_shift after finishing the data updating of the posterior probability LLR for the sent check node information and Q_M_FIFO storage information; the four frames of LLR block data share the same VNU, CNU and LUU modules, the four clocks are fed in to be distinguished successively, and the reading operation of the data is controlled by a control module Con_M;
c) The Data sent to each shift unit of the back-end shift register B_shift is subjected to shift control by a control module according to the blocks which are not negative in the second layer of the block of the check matrix H, if the blocks of the first layer and the second layer are adjacent and are not negative, the check block of the second layer is directly obtained by directly shifting the corresponding B_shift unit of the first layer instead of being read again from the LLR_RAM storage unit, the shifted blocks are connected to each calculation unit of the VNU of the second layer by a Data selection module data_selector, and the second layer Data update is started; if the blocks of the first layer are adjacent to the blocks of the second layer, the check block corresponding to the first layer is not negative, and the check block of the second layer is negative, the posterior probability LLR block output by the LUU of the first layer is directly shifted to restore the original sequence, and the original sequence is written back to the storage position corresponding to the RAM_LLM; if the first layer and the second layer are adjacent, the check block corresponding to the first layer is negative, but the check block of the second layer is not negative, three clocks are required to be read from the corresponding storage position of the RAM_LLM in advance before the B_shift unit outputs, wherein two clocks are read, one clock is sent to the shift unit corresponding to the front shift register module F_shift for shift output, output Data is sent to the Data selection module data_selector to be connected to the VNU computing unit of the second layer, at the moment, the shift unit of the front shift register module F_selector and the shift unit of the rear shift register module B_selector are simultaneously connected to the Data selection module data_selector, and the VNU module computing unit of the second layer is connected to the data_selector for update;
Second layer data update, namely acquiring second layer data from c), performing data update of the second layer according to the similar operation of b) and c), and acquiring third layer data for update;
And finishing an iteration operation according to the operation until the last layer of data is updated, and performing an 1 adding operation on the iteration count item. If the iteration number requirement is not completed, acquiring new layer data according to the step 2 c), and updating the data of the layer according to the similar operations of the step 2B) and the step 2 c) until the iteration requirement is completed, and after the iteration is completed, sending posterior probability LLR output by each calculation unit of the LUU module into a shift unit of a rear-end shift register module B_shift to restore an original LLR sequence, and writing back into a RAM_LLR storage unit;
completely reading the iterated data from the RAM-LLR storage unit, performing decoding judgment, and outputting;
The data processing algorithm used in the embodiment is a hierarchical minimum sum algorithm LMSA;
the calculation formula of the VNU module is as follows:
External messages expressed as the jth check node propagated from the ith variable node of the nth layer at the ith iteration, for a particular m and n, in the mth layer Updated by the a posteriori probability LLR in the n-th layer.
The calculation formula of the CNU module is as follows:
Wherein the method comprises the steps of Meaning that at the ith iteration, an external message propagates from the jth check node to the ith variable node of the nth layer. N(j)\i The variable node set participating in the jth check equation is represented, excluding the ith variable node. Where α is the attenuation factor α ε (0, 1).
The calculation formula of the LUU module is as follows:
The update of a posterior LLR of an ith variable node of an nth layer in the ith iteration is represented;
The embodiment is tested in an AWGN channel with BPSK modulation as shown in fig. 5. The normalization factor is set to α=0.75. Meanwhile, the initialization information LLR, the VNU information and the posterior probability information LLR are quantized in a manner of [6, 8 ]. In the decoding process, the maximum iteration times are respectively set to be 5 times, 10 times and 15 times, the error rate is counted, and the error rate is compared with the error rate of 10 times of iteration data of LNMS algorithm of MATLAB without any modification. As can be seen from fig. 5, when the number of iterations is set to 10, the decoding performance of the decoder is substantially optimal, and when the bit error rate is 10 -5, the difference between the decoding performance of the decoder and MATLAB for 10 times is less than 0.1dB.
The embodiment is tested in an AWGN channel with BPSK modulation as shown in fig. 5. The normalization factor is set to α=0.75. Meanwhile, the initialization information LLR, the VNU information and the posterior probability information LLR are quantized in a manner of [6, 8 ]. In the decoding process, the maximum iteration times are respectively set to be 5 times, 10 times and 15 times, the error rate is counted, and the error rate is compared with the error rate of 10 times of iteration data of LNMS algorithm of MATLAB without any modification. As can be seen from fig. 5, when the number of iterations is set to 10, the decoding performance of the decoder is substantially optimal, and when the bit error rate is 10 -5, the difference between the decoding performance of the decoder and MATLAB for 10 times is less than 0.1dB.
The specific throughput of the embodiment is obtained by the following formula:
Where N ldpc represents the LDPC code length used, N fram represents the number of frames that can be decoded simultaneously, f clk represents the system clock frequency used, rate is the code Rate, N iter represents the number of iterations, N lay represents the number of decoder layers, and C lay represents the number of clocks required for each layer of iterations. At 254M clock frequency, a calculated single drop can achieve a throughput of 102.87Gb/s at maximum. The decoder is suitable for QC-LDPC decoding in a high-speed communication scene. The FPGA of the case realizes the statistical result as follows;
The foregoing has shown and described the basic principles, principal features and advantages of the invention. It will be understood by those skilled in the art that the present invention is not limited to the above-described embodiments, and that the above-described embodiments and descriptions are only preferred embodiments of the present invention, and are not intended to limit the invention, and that various changes and modifications may be made therein without departing from the spirit and scope of the invention as claimed. The scope of the invention is defined by the appended claims and equivalents thereof.

Claims (8)

1.一种基于FPGA的QC-LDPC码译码器,其特征在于,包括:1. A QC-LDPC code decoder based on FPGA, characterized by comprising: 信道信息以及后验概率存储单元LLR_RAM,用于存储初始传入的信道数据以及数据更新迭代之后的LLR信息,共有n块RAM存储块,n为校验矩阵H的列分块数量;The channel information and posterior probability storage unit LLR_RAM is used to store the initially input channel data and the LLR information after the data update iteration. There are n RAM storage blocks in total, where n is the number of column blocks of the check matrix H; 前端移位寄存器单元F_shifter,用于将LLR_RAM输出的数据按校验矩阵H各层内的单位矩阵的移位要求进行循环右移操作,共有k块F_shifter存储块,k为各层列分块中不为负的单位矩阵数量中的最大值;The front-end shift register unit F_shifter is used to perform a circular right shift operation on the data output by the LLR_RAM according to the shift requirements of the unit matrix in each layer of the check matrix H. There are k F_shifter storage blocks in total, and k is the maximum value of the number of non-negative unit matrices in the column blocks of each layer; 变量节点计算单元VNU,用于对迭代过程中变量节点外信息数据的更新和计算,共有m个变量节点计算单元,m为校验矩阵H中单位矩阵的行数;The variable node calculation unit VNU is used to update and calculate the external information data of the variable node during the iteration process. There are m variable node calculation units in total, where m is the number of rows of the unit matrix in the check matrix H; 校验节点计算单元CNU,用于对迭代过程中校验节点外信息数据的更新和计算,其中共有m个校验节点计算单元,m为校验矩阵H中单位矩阵的行数;The check node calculation unit CNU is used to update and calculate the external information data of the check node during the iteration process. There are m check node calculation units in total, where m is the number of rows of the unit matrix in the check matrix H; 后验概率更新模块LUU,根据更新后的变量节点信息校验节点信息,更新该层的后验概率LLR,共有m个验概率更新单元,m为校验矩阵H中单位矩阵的行数;The posterior probability update module LUU verifies the node information according to the updated variable node information and updates the posterior probability LLR of the layer. There are m posterior probability update units in total, where m is the number of rows of the unit matrix in the check matrix H. 后端移位寄存器单元B_shifter,用于将LUU输出的数据一部分进行反向移位,写回RAM,一部分按下一层的H矩阵移位要求进行单位矩阵的循环右移操作,共有k块B_shifter存储块,k为各层列分块中不为负的单位矩阵数量中的最大值;The back-end shift register unit B_shifter is used to reverse shift part of the data output by the LUU and write it back to the RAM, and perform a circular right shift operation on the unit matrix according to the H matrix shift requirement of the next layer. There are k B_shifter storage blocks in total, and k is the maximum value of the number of non-negative unit matrices in the column blocks of each layer; 数据选择器单元Data_selector,用于选择前端与后端的移位寄存器输出数据,将数据连接到VNU模块,开启下一层的数据迭代;The data selector unit Data_selector is used to select the output data of the shift registers at the front end and the back end, connect the data to the VNU module, and start the data iteration of the next layer; 校验节点信息存储FIFO单元R_M_FIFO,主要用于存储校验节点更新后的外信息,共有k个校验节点信息存储R_M_FIFO单元,k为各层列分块中不为负的单位矩阵数量中的最大值;The check node information storage FIFO unit R_M_FIFO is mainly used to store the updated external information of the check node. There are k check node information storage R_M_FIFO units in total, where k is the maximum value of the number of non-negative unit matrices in each layer column block; 变量节点信息存储FIFO模块Q_M_FIFO,主要用于存储变量节点更新后的外信息,共有k个校验节点信息存储Q_M_FIFO单元,k为各层列分块中不为负的单位矩阵数量中的最大值;The variable node information storage FIFO module Q_M_FIFO is mainly used to store the updated external information of the variable node. There are k check node information storage Q_M_FIFO units in total, where k is the maximum value of the number of non-negative unit matrices in each layer column block; 控制模块Con_M,控制上述所有模块的同层数据处理和不同层之间的数据交换,以及4管道帧交错解码的时序。The control module Con_M controls the same-layer data processing and data exchange between different layers of all the above modules, as well as the timing of 4-pipeline frame interleaving decoding. 2.根据权利要求1所述的一种基于FPGA的QC-LDPC码译码器,其特征在于:所述信道信息以及后验概率存储单元LLR_RAM,仅在初始化以及迭代完成时,数据完全写入,其余数据迭代层,只进行有选择的写入,写入选择由控制模块Con_M控制;仅在初始迭代时第一层数据按第一层矩阵要求进行该层全部数据读出,其余层有选择的部分读出,并且读取LLR_RAM数据,超前该层数据处理3个时钟进行,读取选择由控制模块Con_M控制。2. According to claim 1, a QC-LDPC code decoder based on FPGA is characterized in that: the channel information and posterior probability storage unit LLR_RAM, data is completely written only when initialized and iteration is completed, and the remaining data iteration layers are only selectively written, and the write selection is controlled by the control module Con_M; only in the initial iteration, the first layer of data is read out according to the requirements of the first layer matrix, and the remaining layers are selectively partially read out, and the LLR_RAM data is read, which is 3 clocks ahead of the data processing of this layer, and the read selection is controlled by the control module Con_M. 3.根据权利要求2所述的一种基于FPGA的QC-LDPC码译码器,其特征在于:所述前端滚筒移位寄存器单元F_shifter包括数据选择器模块Data_selector,所述前端滚筒移位寄存器单元F_shifter的输出数据不再由传统结构的按当前层移位要求,完全移位输出,而是根据数据选择器模块Data_selector连接到下一层的部分,由控制模块Con_M控制,进行部分移位输出。3. According to claim 2, a QC-LDPC code decoder based on FPGA is characterized in that: the front-end drum shift register unit F_shifter includes a data selector module Data_selector, and the output data of the front-end drum shift register unit F_shifter is no longer completely shifted and output according to the shift requirements of the current layer of the traditional structure, but is partially shifted and output according to the part connected to the next layer by the data selector module Data_selector, controlled by the control module Con_M. 4.根据权利要求3所述的一种基于FPGA的QC-LDPC码译码器,其特征在于:所述数据选择器模块Data_selector根据当前迭代层数,选择连接到变量节点计算单元VNU的数据,该数据分别为前端和后端移位寄存器单元的输出值。4. A QC-LDPC code decoder based on FPGA according to claim 3, characterized in that: the data selector module Data_selector selects data connected to the variable node calculation unit VNU according to the current iteration layer number, and the data are the output values of the front-end and back-end shift register units respectively. 5.根据权利要求4所述的一种基于FPGA的QC-LDPC码译码器,其特征在于:所述后端移位寄存器单元B_shifter的输出数据不再由传统结构的完全恢复原LLR序列,而是由数据选择器模块Data_selector是否连接到下一层变量节点计算单元VNU决定,如果连接到下一层的VNU则按照下一层的分块矩阵的移位要求处理;未连接到下一层,则移位恢复为原LLR序列,写回LLR_RAM模块。5. According to claim 4, a QC-LDPC code decoder based on FPGA is characterized in that: the output data of the back-end shift register unit B_shifter is no longer completely restored to the original LLR sequence by the traditional structure, but is determined by whether the data selector module Data_selector is connected to the variable node calculation unit VNU of the next layer. If it is connected to the VNU of the next layer, it is processed according to the shift requirements of the block matrix of the next layer; if it is not connected to the next layer, it is shifted and restored to the original LLR sequence and written back to the LLR_RAM module. 6.根据权利要求1所述的一种基于FPGA的QC-LDPC码译码器,其特征在于:所述控制模块Con_M从信道输入至LLR_RAM单元开始,控制每一层的数据处理顺序,由F_shifter至VNU再至CNU后至LUU,最后再到B_shifter,然后后根据需要写回RAM_LLR模块;管理层间的数据流动,数据由第一层,传递到第二层,依次至最后一层,完成一次数据迭代,直至完成要求的数据迭代次数;控制4管道帧交错解码,由于每层数据处理需要4个时钟,因此使用的是4管道帧交错解码,在层内处理数据时,每个时钟都对应不同的帧数据处理。6. A QC-LDPC code decoder based on FPGA according to claim 1, characterized in that: the control module Con_M starts from the channel input to the LLR_RAM unit, controls the data processing order of each layer, from F_shifter to VNU, then to CNU, then to LUU, and finally to B_shifter, and then writes back to the RAM_LLR module as needed; manages the data flow between layers, the data is transferred from the first layer to the second layer, and then to the last layer in turn, completing a data iteration until the required number of data iterations is completed; controls 4-pipeline frame interleaved decoding, because each layer of data processing requires 4 clocks, so 4-pipeline frame interleaved decoding is used, when processing data within a layer, each clock corresponds to different frame data processing. 7.根据权利要求1~6任一项所述的一种基于FPGA的QC-LDPC码译码器的实现方法,其特征在于:7. The method for implementing a QC-LDPC code decoder based on FPGA according to any one of claims 1 to 6, characterized in that: S1:初始化:将接收到的四帧信道初始信息LLR,按校验矩阵H的列进行分块存储到LLR_RAM单元的各个存储块中,并在各R_M_FIFO单元中写入全0的校验节点信息,同时,将迭代次数iter初始化为0;S1: Initialization: The received four-frame channel initial information LLR is divided into blocks and stored in each storage block of the LLR_RAM unit according to the columns of the check matrix H, and the check node information of all 0 is written in each R_M_FIFO unit. At the same time, the number of iterations iter is initialized to 0; S2:第一层数据迭代:首先,根据校验矩阵H的第一层中非负分块矩阵对应的LLR_RAM单元读取其中的数据,依次提取每帧对应的数据,并在前端移位寄存器单元F_shifter中进行移位,移位后的数据送入VNU进行变量节点数据更新,后送入CNU进行校验节点的更新,LUU对数据进行后验概率更新,最终将后验概率LLR数据送入B_shifter单元;S2: First layer data iteration: First, read the data in the LLR_RAM unit corresponding to the non-negative block matrix in the first layer of the check matrix H, extract the data corresponding to each frame in turn, and shift it in the front-end shift register unit F_shifter. The shifted data is sent to VNU for variable node data update, and then sent to CNU for check node update. LUU updates the posterior probability of the data, and finally sends the posterior probability LLR data to the B_shifter unit; S3:后续层的数据更新:在第一层VNU模块更新过程中,基于第二层的校验矩阵H中的非负分块矩阵,进行第二层数据准备,如果第一层H矩阵分块与第二层H矩阵分块上下相邻且互为非负矩阵,数据可以直接由第一层对应的LLR数据通过B_shifter单元移位获得而不需要重新读取LLR_RAM单元;如果第一层H矩阵分块为负矩阵,第二层H矩阵分块为非负矩阵,则第二层对应的LLR数据需从RAM_LLR单元读取信息并通过F_shifter单元进行相应的移位操作;如果第一层H矩阵分块为非负矩阵,第二层H矩阵分块为负矩阵,则需将第一层对应的LLR数据通过B_shifter单元进行移位恢复,并写回LLR_RAM单元,第二层获取的数据,在通过移位操作后送入Data_selector数据选择模块,并由此送入VNU,采用与第一层相似的操作进行数据更新;S3: Data update of subsequent layers: During the update process of the first-layer VNU module, the second-layer data is prepared based on the non-negative block matrix in the second-layer check matrix H. If the first-layer H matrix block and the second-layer H matrix block are adjacent to each other and are non-negative matrices, the data can be directly obtained by shifting the LLR data corresponding to the first layer through the B_shifter unit without re-reading the LLR_RAM unit; if the first-layer H matrix block is a negative matrix and the second-layer H matrix block is a non-negative matrix, the LLR data corresponding to the second layer needs to read the information from the RAM_LLR unit and perform the corresponding shift operation through the F_shifter unit; if the first-layer H matrix block is a non-negative matrix and the second-layer H matrix block is a negative matrix, the LLR data corresponding to the first layer needs to be shifted and restored through the B_shifter unit and written back to the LLR_RAM unit. The data obtained by the second layer is sent to the Data_selector data selection module after the shift operation, and then sent to the VNU, and the data is updated using operations similar to the first layer; S4:迭代过程:重复上述步骤,直到所有层的数据更新完成,迭代次数iter加1,如果未达到设定的迭代次数,继续进行数据更新,当迭代完成后,将LUU输出的后验概率LLR由B_shifter单元恢复原始序列并写回RAM_LLR单元;S4: Iteration process: Repeat the above steps until the data update of all layers is completed, and the number of iterations iter increases by 1. If the set number of iterations is not reached, continue to update the data. When the iteration is completed, the posterior probability LLR output by the LUU is restored to the original sequence by the B_shifter unit and written back to the RAM_LLR unit; S5:输出译码结果:从RAM_LLR单元中读取更新后的数据,并进行译码判决,最终输出结果。S5: Output decoding result: read the updated data from the RAM_LLR unit, perform decoding decision, and finally output the result. 8.根据权利要求7所述的一种基于FPGA的QC-LDPC码译码器的实现方法,其特征在于:使用的数据处理算法为分层最小和算法LMSA。8. The method for implementing a QC-LDPC code decoder based on FPGA according to claim 7, characterized in that the data processing algorithm used is a layered minimum sum algorithm (LMSA).
CN202411855004.8A 2024-12-17 2024-12-17 A QC-LDPC code decoder based on FPGA and its implementation method Active CN119814046B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202411855004.8A CN119814046B (en) 2024-12-17 2024-12-17 A QC-LDPC code decoder based on FPGA and its implementation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202411855004.8A CN119814046B (en) 2024-12-17 2024-12-17 A QC-LDPC code decoder based on FPGA and its implementation method

Publications (2)

Publication Number Publication Date
CN119814046A true CN119814046A (en) 2025-04-11
CN119814046B CN119814046B (en) 2025-09-09

Family

ID=95279161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202411855004.8A Active CN119814046B (en) 2024-12-17 2024-12-17 A QC-LDPC code decoder based on FPGA and its implementation method

Country Status (1)

Country Link
CN (1) CN119814046B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100185913A1 (en) * 2009-01-16 2010-07-22 Ralink Technology Corporation Method for decoding ldpc code and the circuit thereof
EP2464019A1 (en) * 2010-12-09 2012-06-13 Nxp B.V. Low density parity-check code decoding
CN107294541A (en) * 2016-04-11 2017-10-24 清华大学 Low area overhead from fault-tolerant ldpc decoder
CN114499540A (en) * 2021-12-17 2022-05-13 上海大学 LDPC layered decoding method based on two-way LLR updating
CN115642920A (en) * 2022-11-14 2023-01-24 西安邮电大学 A QC-LPDC soft-decision decoding algorithm circuit and its implementation method
CN115714603A (en) * 2022-11-18 2023-02-24 西安电子科技大学广州研究院 QC-LDPC improved decoder for eliminating waiting period
CN117081606A (en) * 2023-08-02 2023-11-17 广东工业大学 A dynamically configurable decoding method and device for QC-LDPC decoder

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100185913A1 (en) * 2009-01-16 2010-07-22 Ralink Technology Corporation Method for decoding ldpc code and the circuit thereof
EP2464019A1 (en) * 2010-12-09 2012-06-13 Nxp B.V. Low density parity-check code decoding
CN107294541A (en) * 2016-04-11 2017-10-24 清华大学 Low area overhead from fault-tolerant ldpc decoder
CN114499540A (en) * 2021-12-17 2022-05-13 上海大学 LDPC layered decoding method based on two-way LLR updating
CN115642920A (en) * 2022-11-14 2023-01-24 西安邮电大学 A QC-LPDC soft-decision decoding algorithm circuit and its implementation method
CN115714603A (en) * 2022-11-18 2023-02-24 西安电子科技大学广州研究院 QC-LDPC improved decoder for eliminating waiting period
CN117081606A (en) * 2023-08-02 2023-11-17 广东工业大学 A dynamically configurable decoding method and device for QC-LDPC decoder

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
T. T. NGUYEN-LY, V. SAVIN, K. LE, D. DECLERCQ, F. GHAFFARI AND O. BONCALO: "Analysis and Design of Cost-Effective, High- Throughput LDPC Decoders", IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, 31 March 2018 (2018-03-31) *
V. L. PETROVIĆ, M. M. MARKOVIĆ, D. M. E. MEZENI, L. V. SARANOVAC AND A. RADOŠEVIĆ: "Flexible High Throughput QC-LDPC Decoder With Perfect Pipeline Conflicts Resolution and Efficient Hardware Utilization", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS I: REGULAR PAPERS, 31 October 2020 (2020-10-31) *
张行宇: "基于FPGA的并行LDPC编译码算法研究与实现", 中国优秀硕士论文电子期刊网, 15 March 2024 (2024-03-15) *

Also Published As

Publication number Publication date
CN119814046B (en) 2025-09-09

Similar Documents

Publication Publication Date Title
US10958288B2 (en) Decoder for low-density parity-check codes
US7133853B2 (en) Methods and apparatus for decoding LDPC codes
US8321747B2 (en) QC-LDPC code decoder and corresponding decoding method
WO2022037504A1 (en) Multi-mode ldpc decoder for use in deep space communication
US20060020870A1 (en) Layered decoding of low density parity check (PDPC) codes
CN101800559B (en) A High-Speed Configurable QC-LDPC Code Decoder Based on TDMP
CN109495115B (en) LDPC decoder based on FPGA and decoding method
EP1779524A4 (en) Improvements to a layered decoding approach for low density parity check (ldpc) codes
CN101154948B (en) The method of decoding code and decoder
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
CN101777921B (en) Structured LDPC code decoding method and device for system on explicit memory chip
CN101924564A (en) Partial parallel quasi-cyclic LDPC code decoder structure with synchronously updated row and column nodes
CN100425000C (en) Twin-turbo structure low-density parity-check code decoder and decoding method
CN102594369B (en) Quasi-cyclic low-density parity check code decoder based on FPGA (field-programmable gate array) and decoding method
CN100589357C (en) LDPC code vector decoding device and method based on unit matrix and its cyclic shift matrix
CN102340317B (en) High-throughput decoder and decoding method for structured LDPC codes
CN103166648B (en) A kind of LDPC decoder and its implementation
CN115714603B (en) An improved QC-LDPC decoder that eliminates wait cycles
CN119814046B (en) A QC-LDPC code decoder based on FPGA and its implementation method
CN102064837A (en) Partially parallel decoding method of quasi-cyclic low density parity check (QC-LDPC) code based on first in first out (FIFO) fragmentation
CN101777920A (en) Coding method and coding and decoding device of low-density parity check code
CN113055025B (en) Reconfigurable polar code and low density parity check code decoder
CN120528440B (en) LDPC decoder facing CCSDS standard and decoding method thereof
Yet et al. A High Flexibility Decoding Structure with High Hardware Utilization Efficiency for QC-LDPC
CN113271109A (en) Iterative cycle data storage method and system in LDPC decoding process

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant