This invention relates to the field of integrated circuit design. More particularly, this invention relates to an efficient hardware implementation of a variable node processing unit (VNU) inside of a low-density parity check (LDPC) min-sum decoder.
Low density parity-check (LDPC) codes were first proposed by Gallager in 1962, and then “rediscovered” by MacKay in 1996. LDPC codes have been shown to achieve an outstanding performance that is very close to the Shannon transmission limit. However it is very difficult to build an efficient hardware implementation of a circuit for decoding LDPC codes. All existing hardware implementations of LDPC decoding algorithms suffer from low speed and large area and power requirements. It is very important to develop an LDPC-decoder that has better speed, area, and power characteristics than the existing implementations.
The most promising algorithm for decoding LDPC-codes is so the called min-sum algorithm. Generally speaking this algorithm performs two main operations
A typical hardware implementation of this algorithm represents the LDPC decoder as a set of multiple node processing units performing operations (1) and (2) as given above. There are two types of units:
The decoder may contain up to thousands of these two units working in parallel. One hardware realization of a VNU as depicted in
What is needed, therefore, is a VNU that improves—at least in part—the speed, area, and power characteristics of the VNU, and therefore enables the construction of a better LDPC decoder.
The above and other needs are met by a variable node processing unit with N+1 inputs, having at least a first bank of two-input adders and a separate last bank of two-input adders, where the banks of adders are disposed in series. A sign module outputs a sign value. The unit has N+1 outputs, where one of the outputs is the sign value.
In various embodiments, the variable node processing unit is disposed in a low-density parity check min-sum decoder. In some embodiments, at least one of the two-input adders is a Signed Ripple-Carry adder, with a flip-flop interjected between two adjacent ones of the logic elements. In some embodiments the sign module includes a chain of majority cells that calculate the sign value without calculating a corresponding sum value, with a flip-flop interjected between two adjacent ones of the majority cells.
Further advantages of the invention are apparent by reference to the detailed description when considered in conjunction with the figures, which are not to scale so as to more clearly show the details, wherein like reference numbers indicate like elements throughout the several views, and wherein:
Instead of using an N-input summator followed by subtractors, the embodiments of the present invention use simultaneous implementation of N partials sums Si and SIGN as shown in
y1=M+A1
y2=M+A2
y3=A2+A3
y4=A2+A4
y5=A3+A4
S1=y2+y5
S2=y1+y5
S3=y1+y4
S4=y1+y3
SIGN=sign(A4+S4)
Implementation of the Adder Submodule
To further reduce the circuit area, a Ripple-Carry implementation of two-input adders inside the VNU is used. Conventional Ripple-Carry adders use N logic elements to implement an addition of two N-bit unsigned numbers A and B, as shown in
An enhancement according to the basic Ripple-Carry adder depicted in
Ripple-Carry adders are very small and power-efficient, but the circuit delay is relatively big (for example, delay from inputs A0 and B0 to output SN+1). To reduce the delay of the circuit, the Ripple-Carry adders are segmented by inserting a flip-flop somewhere in the middle of the chain of Full-Adders, as depicted in
Implementation of the Sign Calculation Submodule
As mentioned above, the SIGN value is calculated by the formula:
SIGN=sign(A4+S4).
To calculate this value, a two-input adder can be used to find the sum S=A4+S4 and then take the uppermost bit of the sum to obtain the sign. However, in some embodiments an optimized circuit is used that calculates the sign of the sum without calculating the sum itself. The corresponding circuit is depicted in
To further optimize the circuit speed, the chain of majority cells is segmented by inserting a flip-flop in the same manner as for the Ripple-Carry adder described above. The corresponding circuit is depicted in
The circuits above use the following logic elements:
The foregoing description of preferred embodiments for this invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Obvious modifications or variations are possible in light of the above teachings. The embodiments are chosen and described in an effort to provide the best illustrations of the principles of the invention and its practical application, and to thereby enable one of ordinary skill in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. All such modifications and variations are within the scope of the invention as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly, legally, and equitably entitled.
Number | Name | Date | Kind |
---|---|---|---|
5189635 | Ohki | Feb 1993 | A |
7299397 | Yokokawa et al. | Nov 2007 | B2 |
20030055852 | Wojko | Mar 2003 | A1 |
20030229843 | Yu et al. | Dec 2003 | A1 |
20080052558 | Sun et al. | Feb 2008 | A1 |
Entry |
---|
R.G. Gallager, “Low density parity check codes,” IRE Trans. Inform. Theory, vol. IT-8, pp. 21-28, Jan. 1962. |
D.J.C. MacKay and R.M. Neal, “Near Shannon limit performance of low density parity check codes,” Electron. Lett., vol. 32, No. 18, pp. 1645-1646, 1996. |
Number | Date | Country | |
---|---|---|---|
20100030835 A1 | Feb 2010 | US |