This application claims the benefit of Taiwan application Serial No. 106120678, filed on Jun. 21, 2017, the subject matter of which is incorporated herein by reference.
The invention relates in general to low-density parity-check (LDPC) codes, and more particularly to a decoding circuit and method for quasi-cyclic low-density parity-check (QC-LDPC) codes.
Low-density parity-check (LDPC) codes are often used in communication systems to enhance the accuracy rate of data transmission. A transmitter multiplies original data to be transmitted by a generate matrix to generate transmission data longer than the original data. A receiver decodes the transmission data according to a check matrix to restore the original data. In practice, the receiver decodes the transmission data by an iterative operation. It is thus known that, the decoding operation of LDPC codes involves a colossal amount of computation. Therefore, there is a need for a solution that attends to both circuit costs and operation performance for the related field.
In view of issues of the prior art, it is an object of the present invention to provide a decoding circuit and method for quasi-cyclic low-density parity-check (QC-LDPC) codes to enhance operation performance.
The present invention discloses a decoding circuit for QC LDPC codes. The decoding circuit includes: a memory, storing a check matrix and multiple sets of transmission data, wherein the check matrix includes N sub-matrices; w decoding units, where w<360; and a controller, coupled to the memory and the w decoding units, decoding the transmission data sent to the w decoding units according to the check matrix and sequences of: sending w sets of transmission data corresponding to a first block of a first sub-matrix to the w decoding units for decoding; and after completely decoding the w sets of transmission data corresponding to the first block of the first sub-matrix, sending w sets of transmission data corresponding to a first block of a second sub-matrix to the w decoding units for decoding.
The present invention further discloses a decoding method for QC LDPC codes applied to a check matrix and multiple sets of transmission data. The check matrix includes N sub-matrices. The decoding method uses w (w<360) decoding units for decoding and includes steps of: sending w sets of transmission data corresponding to a first block of a first sub-matrix to the w decoding units for decoding; and after completely decoding the w sets of transmission data corresponding to the first block of the first sub-matrix, sending w sets of transmission data corresponding to a first block of a second sub-matrix to the w decoding units for decoding.
Compared to conventional technologies, the decoding circuit and method for QC-LDPC of the present invention use simple circuits to achieve decoding operations as well as performance at the same time.
The above and other aspects of the invention will become better understood with regard to the following detailed description of non-limiting embodiments. The following description is made with reference to the accompanying drawings.
The disclosure of this application includes a decoding circuit and method for quasi-cyclic low-density parity check (QC-LDPC) codes. In possible implementation, one person skilled in the art can select equivalent elements or steps to achieve the present invention based on the disclosure of the application; that is, the implementation of the present invention is not limited to the following embodiments.
In consideration of decoding performance, most LCPC decoders adopt parallel operation architecture. For example, a check matrix of a QC-LDPC includes multiple sub-matrices and is a 360*360 identity matrix. Thus, a QC-LDPC decoder mostly adopt 360 identical decoding circuits to perform parallel decoding operations on the check matrix.
For example,
After one round of correction on the transmission data is completed according to the decoding schedule, the decoding circuit 100 outputs the corrected data to a check circuit (not shown) to determine whether the correct data is converged. If not, the decoding circuit 100 again corrects the transmission data according to the above decoding schedule until the corrected data is converged.
In one embodiment, the number of decoding units in the decoding circuit may be less than 360 to reduce the production costs of the decoding circuit. For example,
wherein p and q are relatively prime,
and p is a factor of p.
However, when the number of decoding units in the decoding circuit is smaller than 360, the decoding schedule of the check matrix needs to be especially designed, otherwise the decoding performance may be affected. For example,
In this embodiment, the controller 302 may be a processor. However, the present invention is not limited to such example. In other embodiments, the controller 302 may be a specific-application integrated circuit (ASIC), a field programmable gate array (FPGA) or a digital signal processor (DSP).
It should be noted that, compared to the controller 102 that outputs the corrected transmission data after one round of correction is performed on the transmission data to determine whether the corrected transmission data is converged, the controller 302 only outputs the corrected transmission data after every two rounds of correction to determine whether the corrected transmission data. Thus, the number of times of convergence determination can be reduced to accelerate the convergence speed of transmission data to further enhance the decoding performance.
Further, in each decoding process, the controller 302 does not send transmission data corresponding to different sub-matrices to the 240 decoding units 303-1 to 303-240 (e.g., not sending the 120 sets of transmission data corresponding to the matrix I1-1 to the decoding units 303-1 to 303-120, and the 120 sets of transmission data corresponding to the matrix I1-2 to the decoding units 303-121 to 303-240 to simultaneously decode the transmission data corresponding to different sub-matrices) to enhance the decoding performance. More specifically, because of how the storage method of the transmission data in the memory 301 is designed, the memory 301 is only accessed once when the transmission data corresponding to the same sub-matrix is read or stored, and the memory 301 is accessed for more than once when the transmission data corresponding to different sub-matrices is read or stored. Therefore, if the 240 decoding units 303-1 to 303-240 simultaneously decodes the transmission data corresponding to two sub-matrices, the controller 302 needs to access the memory 301 four times (accessing twice for reading and accessing twice for storing). As such, the decoding performance of the decoding circuit 300 is reduced.
The number of rows of the check matrix H and the number of sub-matrices included in each row in the above description are in exemplary values, and are not to be construed as limitations to the present invention.
One person skilled in the art can understand implementation details and variations of the method of the present invention based on the disclosure on the device of the present invention, and such details shall be omitted herein. While the invention has been described by way of example and in terms of the embodiments, it is to be understood that the invention is not limited thereto. On the contrary, it is intended to cover various modifications and similar arrangements and procedures, and the scope of the appended claims therefore should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements and procedures.
Number | Date | Country | Kind |
---|---|---|---|
106120678 | Jun 2017 | TW | national |