Decoder design adaptable to decode coded signals using min* or max* processing
First Claim
1. A min* (min star) circuit, the circuit comprising:
- a subtraction block that is operable to calculate a difference between a first input value and a second input value;
a first log correction factor block that is operable to determine a first log correction factor based on a first plurality of LSBs (Least Significant Bits) of the difference;
a second log correction factor block that is operable to determine a second log correction factor based on the first plurality of LSBs of the difference;
a min* log saturation block whose output value is governed by a second plurality of LSBs of the difference;
a log correction factor MUX (Multiplexor) that is operable to receive the first log correction factor and the second log correction factor as inputs and whose selection is governed by an MSB (Most Significant Bit) of the second plurality of LSBs of the difference;
an input value selection MUX that is operable to receive the first input value and the second input value as inputs and whose selection is governed by an MSB of the difference; and
a logic OR gate that is operable to receive the output value from the min* log saturation block and an output of the log correction factor MUX; and
wherein;
an output of the input value selection MUX is a minimum input value selected from among the first input value and the second input value; and
an output of the logic OR gate is a final log correction factor;
the first input value is a finite precision number A;
the second input value is a finite precision number B;
in accordance with min* processing, the minimum input value is A or B; and
in accordance with min* processing, the final log correction factor is ln(1+e−
|A−
B|).
3 Assignments
0 Petitions
Accused Products
Abstract
Decoder design adaptable to decode coded signals using min* or max* processing. A very efficient means of min* processing or max* processing may be performed within a communication device to assist in the very complex and cumbersome calculations that are employed when decoding coded signals. The types of coded signals that may be decoded using min* processing or max* processing are varied, and they include LDPC (Low Density Parity Check) coded signals, turbo coded signals, and TTCM (Turbo Trellis Coded Modulation) coded signals, among other coded signal types. Many of the calculations and/or determinations performed within min* processing or max* processing are performed simultaneously and in parallel of one another thereby ensuring very fast operation. In a finite precision digital implementation, when certain calculated bits of min* or max* processing are available, they govern selection of resultants from among multiple calculations and determinations made simultaneously and in parallel.
47 Citations
92 Claims
-
1. A min* (min star) circuit, the circuit comprising:
-
a subtraction block that is operable to calculate a difference between a first input value and a second input value; a first log correction factor block that is operable to determine a first log correction factor based on a first plurality of LSBs (Least Significant Bits) of the difference; a second log correction factor block that is operable to determine a second log correction factor based on the first plurality of LSBs of the difference; a min* log saturation block whose output value is governed by a second plurality of LSBs of the difference; a log correction factor MUX (Multiplexor) that is operable to receive the first log correction factor and the second log correction factor as inputs and whose selection is governed by an MSB (Most Significant Bit) of the second plurality of LSBs of the difference; an input value selection MUX that is operable to receive the first input value and the second input value as inputs and whose selection is governed by an MSB of the difference; and a logic OR gate that is operable to receive the output value from the min* log saturation block and an output of the log correction factor MUX; and
wherein;an output of the input value selection MUX is a minimum input value selected from among the first input value and the second input value; and an output of the logic OR gate is a final log correction factor; the first input value is a finite precision number A; the second input value is a finite precision number B; in accordance with min* processing, the minimum input value is A or B; and in accordance with min* processing, the final log correction factor is ln(1+e−
|A−
B|). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 84)
-
-
15. A min* (min star) circuit, the circuit comprising:
-
a subtraction block that is operable to calculate a difference between a first input value and a second input value; a first log correction factor block that is operable to determine a first log correction factor based on a first plurality of LSBs (Least Significant Bits) of the difference; a second log correction factor block that is operable to determine a second log correction factor based on the first plurality of LSBs of the difference; a min* log saturation block whose output value is governed by a second plurality of LSBs of the difference; a log correction factor MUX (Multiplexor) that is operable to receive the first log correction factor and the second log correction factor as inputs and whose selection is governed by an MSB (Most Significant Bit) of the second plurality of LSBs of the difference; an input value selection MUX that is operable to receive the first input value and the second input value as inputs and whose selection is governed by an MSB of the difference; and a logic OR gate that is operable to receive the output value from the min* log saturation block and an output of the log correction factor MUX; and
wherein;an output of the input value selection MUX is a minimum input value selected from among the first input value and the second input value; an output of the logic OR gate is a final log correction factor; during a first time period; the subtraction block is operable to calculate the first plurality of LSBs of the difference between the first input value and the second input value; during a second time period; the subtraction block is operable to calculate the second plurality of LSBs of the difference between the first input value and the second input value; the first log correction factor block is operable to determine the first log correction factor based on the first plurality of LSBs of the difference; and the second log correction factor block is operable to determine the second log correction factor based on the first plurality of LSBs of the difference; the first input value is a finite precision number A; the second input value is a finite precision number B; in accordance with min* processing, the minimum input value is A or B; and in accordance with min*processing, the final log correction factor is ln(1+e−
|A−
B|). - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A min* (min star) circuit, the circuit comprising:
-
a subtraction block that is operable to calculate a difference between a first input value and a second input value; a first log correction factor block that is operable to determine a first log correction factor based on a first plurality of LSBs (Least Significant Bits) of the difference; a second log correction factor block that is operable to determine a second log correction factor based on the first plurality of LSBs of the difference; a min* log saturation block whose output value is governed by a second plurality of LSBs of the difference; a log correction factor MUX (Multiplexor) that is operable to receive the first log correction factor and the second log correction factor as inputs and whose selection is governed by an MSB (Most Significant Bit) of the second plurality of LSBs of the difference; an input value selection MUX that is operable to receive the first input value and the second input value as inputs and whose selection is governed by an MSB of the difference; a logic OR gate that is operable to receive the output value from the min* log saturation block and an output of the log correction factor MUX, wherein; an output of the input value selection MUX is a minimum input Value selected from among the first input value and the second input value; and an output of the logic OR gate is a final log correction factor; and a LUT (Look-Up Table) that includes a plurality of first log correction factors and a plurality of second log correction factors defined as a function of first plurality of LSBs of the difference; and
wherein;the first log correction factor block looks up the first log correction factor from the LUT based on the first plurality of LSBs of the difference; the second log correction factor block looks up the second log correction factor from the LUT based on the first plurality of LSBs of the difference; each log correction factor of the plurality of first log correction factors and a plurality of second log correction factors is bit value of either a 0 or a 1 as defined by a single bit of precision; the output value of the min* log saturation block is a 1 when each bit of the second plurality of LSBs of the difference is a 1; the output value of the min* log saturation block is a 1 when each bit of the second plurality of LSBs of the difference is a 0; the output value of the min* log saturation block is a 0 when at least one bit of the second plurality of LSBs of the difference is a 1 and at least one bit of the second plurality of LSBs of the difference is a 0; and the final log correction factor is a bit value of either a 0 or a 1 as defined by a single bit of precision; the first input value is a finite precision number A; the second input value is a finite precision number B; in accordance with min* processing, the minimum input value is A or B; and in accordance with min* processing, the final log correction factor is ln(1+e−
|A−
B|). - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A max* (max star) circuit, the circuit comprising:
-
a subtraction block that is operable to calculate a difference between a first input value and a second input value; a first log correction factor block that is operable to determine a first log correction factor based on a first plurality of LSBs (Least Significant Bits) of the difference; a second log correction factor block that is operable to determine a second log correction factor based on the first plurality of LSBs of the difference; a max* log saturation block whose output value is governed by a second plurality of LSBs of the difference; a log correction factor MUX (Multiplexor) that is operable to receive the first log correction factor and the second log correction factor as inputs and whose selection is governed by an MSB (Most Significant Bit) of the second plurality of LSBs of the difference; an input value selection MUX that is operable to receive the first input value and the second input value as inputs and whose selection is governed by an MSB of the difference; and a logic AND gate that is operable to receive the output value from the max* log saturation block and an output of the log correction factor MUX; and
wherein;an output of the input value selection MUX is a maximum input value selected from among the first input value and the second input value; and an output of the logic AND gate is a final log correction factor; the first input value is a finite precision number A; the second input value is a finite precision number B; in accordance with min* processing, the minimum input value is A or B; and in accordance with min* processing, the final log correction factor is ln(1+e−
|A−
B|). - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
-
-
51. A max* (max star) circuit, the circuit comprising:
-
a subtraction block that is operable to calculate a difference between a first input value and a second input value; a first log correction factor block that is operable to determine a first log correction factor based on a first plurality of LSBs (Least Significant Bits) of the difference; a second log correction factor block that is operable to determine a second log correction factor based on the first plurality of LSBs of the difference; a max* log saturation block whose output value is governed by a second plurality of LSBs of the difference; a log correction factor MUX (Multiplexor) that is operable to receive the first log correction factor and the second log correction factor as inputs and whose selection is governed by an MSB (Most Significant Bit) of the second plurality of LSBs of the difference; an input value selection MUX that is operable to receive the first input value and the second input value as inputs and whose selection is governed by an MSB of the difference; and a logic AND gate that is operable to receive the output value from the max* log saturation block and an output of the log correction factor MUX; and
wherein;an output of the input value selection MUX is a maximum input value selected from among the first input value and the second input value; an output of the logic AND gate is a final log correction factor; during a first time period; the subtraction block is operable to calculate the first plurality of LSBs of the difference between the first input value and the second input value; during a second time period; the subtraction block is operable to calculate the second plurality of LSBs of the difference between the first input value and the second input value; the first log correction factor block is operable to determine the first log correction factor based on the first plurality of LSBs of the difference; and the second log correction factor block is operable to determine the second log correction factor based on the first plurality of LSBs of the difference; the first input value is a finite precision number A; the second input value is a finite precision number B; in accordance with min* processing, the minimum input value is A or B; and in accordance with min* processing, the final log correction factor is ln(1+e−
|A−
B|). - View Dependent Claims (52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
-
-
64. A max* (max star) circuit, the circuit comprising:
-
a subtraction block that is operable to calculate a difference between a first input value and a second input value; a first log correction factor block that is operable to determine a first log correction factor based on a first plurality of LSBs (Least Significant Bits) of the difference; a second log correction factor block that is operable to determine a second log correction factor based on the first plurality of LSBs of the difference; a max* log saturation block whose output value is governed by a second plurality of LSBs of the difference; a log correction factor MUX (Multiplexor) that is operable to receive the first log correction factor and the second log correction factor as inputs and whose selection is governed by an MSB (Most Significant Bit) of the second plurality of LSBs of the difference; an input value selection MUX that is operable to receive the first input value and the second input value as inputs and whose selection is governed by an MSB of the difference; a logic AND gate that is operable to receive the output value from the max* log saturation block and an output of the log correction factor MUX, wherein; an output of the input value selection MUX is a maximum input value selected from among the first input value and the second input value; and an output of the logic AND gate is a final log correction factor; and a LUT (Look-Up Table) that includes a plurality of first log correction factors and a plurality of second log correction factors defined as a function of first plurality of LSBs of the difference; the first log correction factor block looks up the first log correction factor from the LUT based on the first plurality of LSBs of the difference; the second log correction factor block looks up the second log correction factor from the LUT based on the first plurality of LSBs of the difference; each log correction factor of the plurality of first log correction factors and a plurality of second log correction factors is bit value of either a 0 or a 1 as defined by a single bit of precision; the output value of the max* log saturation block is a 1 when each bit of the second plurality of LSBs of the difference is a 1; the output value of the max* log saturation block is a 1 when each bit of the second plurality of LSBs of the difference is a 0; and the output value of the max* log saturation block is a 0 when at least one bit of the second plurality of LSBs of the difference is a 1 and at least one bit of the second plurality of LSBs of the difference is a 0; and the final log correction factor is a bit value of either a 0 or a 1 as defined by a single bit of precision; the first input value is a finite precision number A; the second input value is a finite precision number B; in accordance with min* processing, the minimum input value is A or B; and in accordance with min* processing, the final log correction factor is ln(1+e−
|A−
B|). - View Dependent Claims (65, 66, 67, 68, 69, 70, 71, 72)
-
-
73. A method for performing min* (min star) processing, the method comprising:
-
during a first time period; calculating a first plurality of LSBs (Least Significant Bits) of a difference between a first input value and a second input value; during a second time period; calculating a second plurality of LSBs of the difference between the first input value and the second input value; determining a first log correction factor based on the first plurality of LSBs of the difference; determining a second log correction factor based on the first plurality of LSBs of the difference; during a third time period; selecting either the first log correction factor or the second log correction factor as being a final log correction value based on an MSB (Most Significant Bit) of the second plurality of LSBs of the difference; and selecting a minimum input value from among the first input value and the second input value based on an MSB of the difference; and
wherein;the first input value is a finite precision number A; the second input value is a finite precision number B; in accordance with min* processing, the minimum input value is A or B; and in accordance with min* processing, the final log correction factor is ln(1+e−
|A−
B|). - View Dependent Claims (74, 75, 76, 77, 78, 79, 80, 81, 82)
-
-
83. A method for performing max* (max star) processing, the method comprising:
-
during a first time period; calculating a first plurality of LSBs (Least Significant Bits) of a difference between a first input value and a second input value; during a second time period; calculating a second plurality of LSBs of the difference between the first input value and the second input value; determining a first log correction factor based on the first plurality of LSBs of the difference; determining a second log correction factor based on the first plurality of LSBs of the difference; during a third time period; selecting either the first log correction factor or the second log correction factor as being a final log correction value based on an MSB (Most Significant Bit) of the second plurality of LSBs of the difference; and selecting a maximum input value from among the first input value and the second input value based on an MSB of the difference; and
wherein;the first input value is a finite precision number A; the second input value is a finite precision number B; in accordance with min* processing, the minimum input value is A or B; and in accordance with min* processing, the final log correction factor is ln(1+e−
|A−
B|). - View Dependent Claims (85, 86, 87, 88, 89, 90, 91, 92)
-
Specification