Efficient design to implement min**/min**- or max**/max**- functions in LDPC (low density parity check) decoders
First Claim
1. A functional block that is operable to perform min** (min-double-star) processing in a decoder, the functional block comprising:
- a subtractor that is operable to calculate a difference between a first value and a second value;
a summer that is operable to calculate a sum of the first value and the second value;
a MUX (Multiplexor) that is operable to receive the first value, the second value, an opposite in sign value of the first value, and an opposite in sign value of the second value and whose select signals comprise a first sign bit corresponding to the difference between the first value and the second value and a second sign bit corresponding to the sum of the first value and the second value;
a first log correction functional block that is operable to provide a first log correction factor based on an absolute value of the difference between the first value and the second value; and
a second log correction functional block that is operable to provide a second log correction factor based on an absolute value of the sum of the first value and the second value.
4 Assignments
0 Petitions
Accused Products
Abstract
Efficient design to implement min**/min**− or max**/max**− functions in LDPC (Low Density Parity Check) decoders. When compared to prior art approaches, the novel and efficient implementation presented herein allows for the use of substantially less hardware and surface area within an actual communication device implemented to perform these calculations. In certain embodiments, the min** processing (and/or max** processing) is implemented to assist in the computationally intensive calculations required to decoded LDPC coded signals. In one instance, this is operable to assist in check node processing when decoding LDPC coded signals. However, the efficient principles and architectures presented herein may be implemented within other communication device types to decode other types of coded signals as well. For example, the processing presented herein may perform calculations within a variety of decoders including LDPC decoders, turbo decoders, TTCM decoders, and/or other decoder types without departing from the scope and spirit of the invention.
26 Citations
20 Claims
-
1. A functional block that is operable to perform min** (min-double-star) processing in a decoder, the functional block comprising:
-
a subtractor that is operable to calculate a difference between a first value and a second value; a summer that is operable to calculate a sum of the first value and the second value; a MUX (Multiplexor) that is operable to receive the first value, the second value, an opposite in sign value of the first value, and an opposite in sign value of the second value and whose select signals comprise a first sign bit corresponding to the difference between the first value and the second value and a second sign bit corresponding to the sum of the first value and the second value; a first log correction functional block that is operable to provide a first log correction factor based on an absolute value of the difference between the first value and the second value; and a second log correction functional block that is operable to provide a second log correction factor based on an absolute value of the sum of the first value and the second value. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A functional block that is operable to perform max** (max-double-star) processing in a decoder, the functional block comprising:
-
a subtractor that is operable to calculate a difference between a first value and a second value; a summer that is operable to calculate a sum of the first value and the second value; a MUX (Multiplexor) that is operable to receive the first value, the second value, an opposite in sign value of the first value, and an opposite in sign value of the second value and whose select signals comprise a first sign bit corresponding to the difference between the first value and the second value and a second sign bit corresponding to the sum of the first value and the second value; a first log correction functional block that is operable to provide a first log correction factor based on an absolute value of the difference between the first value and the second value; and a second log correction functional block that is operable to provide a second log correction factor based on an absolute value of the sum of the first value and the second value. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A method for performing min** (min-double-star) processing, min**−
- (min-double-star-minus) processing, max** (max-double-star) processing or max**−
(max-double-star-minus) processing, the method comprising;calculating a difference between a first value and a second value; calculating a sum of the first value and the second value; calculating an opposite in sign value of the first value; calculating an opposite in sign value of the second value; based on a first sign bit corresponding to the difference between the first value and the second value and based on a second sign bit corresponding to the sum of the first value and the second value, selecting the first value, the second value, the opposite in sign value of the first value, or the opposite in sign value of the second value; determining a first log correction factor based on an absolute value of the difference between the first value and the second value; and determining a second log correction factor based on an absolute value of the sum of the first value and the second value. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
- (min-double-star-minus) processing, max** (max-double-star) processing or max**−
Specification