Claims
- 1. An interleaver memory structure for facilitating the decoding of a plurality of encoded symbols, the interleaver memory structure comprising:
during a first clock cycle:
a first interleaver pattern memory receives a first sequential read address; a second interleaver pattern memory receives a first sequential write address; during a second clock cycle:
the first interleaver pattern memory receives a second sequential write address; the second interleaver pattern memory receives a second sequential read address; a first read address is received from the first interleaver pattern memory for use by a first interleaver memory; a first write address is received from the second interleaver pattern memory for use by a second interleaver memory; during a third clock cycle:
the first interleaver pattern memory receives a third sequential read address; the second interleaver pattern memory receives a third sequential write address; a second write address is received from the first interleaver pattern memory for use by the first interleaver memory; a second read address is received from the second interleaver pattern memory for use by the second interleaver memory; a first data is read from the first interleaver memory; a second data is written to the second interleaver memory; and wherein each of the first interleaver pattern memory, the second interleaver pattern memory, the first interleaver memory, and the second interleaver memory are implemented using single port memory structures.
- 2. The interleaver memory structure of claim 1, wherein:
during a fourth clock cycle:
the first interleaver pattern memory receives a fourth sequential write address; the second interleaver pattern memory receives a fourth sequential read address; a third read address is received from the first interleaver pattern memory for use by the first interleaver memory; a third write address is received from the second interleaver pattern memory for use by the second interleaver memory; a third data is written to the first interleaver memory; and a fourth data is read from the second interleaver memory.
- 3. The interleaver memory structure of claim 1, wherein read accesses and write accesses are alternatively performed within each of the first interleaver memory and the second interleaver memory.
- 4. The interleaver memory structure of claim 1, wherein the first sequential read address and the first sequential write address are offset by an odd value.
- 5. The interleaver memory structure of claim 1, wherein the second sequential write address and the second sequential write address are offset by an odd value.
- 6. The interleaver memory structure of claim 1, further comprising:
a first multiplexor (MUX) that receives the first sequential read address and the first sequential write address as inputs during the first clock cycle and provides the first sequential read address to the first interleaver pattern memory; a second MUX that receives the first sequential read address and the first sequential write address as inputs during the first clock cycle and provides the first sequential write address to the second interleaver pattern memory; wherein the first MUX receives the second sequential read address and the second sequential write address as inputs during the second clock cycle and provides the second sequential write address to the first interleaver pattern memory; and wherein the second MUX receives the second sequential read address and the second sequential write address as inputs during the second clock cycle and provides the second sequential read address to the second interleaver pattern memory.
- 7. The interleaver memory structure of claim 1, wherein the interleaver memory structure is employed by a soft-in soft-out (SISO) decoder that includes a top SISO and a bottom SISO;
wherein the top SISO provides extrinsic information that is fed back to the bottom SISO in an interleaved order during a first SISO operation; and wherein the bottom SISO provides extrinsic information that is fed back to the top SISO in a de-interleaved order during a second SISO operation.
- 8. The interleaver memory structure of claim 1, wherein the interleaver memory structure is employed by a soft-in soft-out (SISO) decoder;
wherein the SISO decoder is implemented as a single, recycled SISO decoder; wherein the SISO provides extrinsic information that is fed back to the SISO in an interleaved order during a first SISO operation; and wherein the SISO provides extrinsic information that is fed back to the SISO in a de-interleaved order during a second SISO operation.
- 9. The interleaver memory structure of claim 1, wherein the plurality of encoded symbols is encoded according to a rate control sequence having a plurality of rate controls arranged in a period.
- 10. The interleaver memory structure of claim 9, wherein a rate control of the plurality of rate controls includes a modulation that includes a constellation having a mapping.
- 11. The interleaver memory structure of claim 9, wherein a first rate control of the plurality of rate controls includes a first modulation that includes a first constellation having a first mapping; and
wherein a second rate control of the plurality of rate controls includes a second modulation that includes a second constellation having a second mapping.
- 12. The interleaver memory structure of claim 1, wherein the interleaver memory structure is employed by a soft-in soft-out (SISO) decoder;
wherein the SISO decoder is part of a decoder that employs a trellis to decode the plurality of encoded symbols; wherein the plurality of encoded symbols is encoded according to a rate control sequence having a plurality of rate controls arranged in a period; wherein the SISO decoder includes a top SISO and a bottom SISO; wherein the top SISO, based on a plurality of trellis metrics, calculates a first plurality of extrinsic values for each encoded symbol of the plurality of encoded symbols according to the respective rate control; wherein the interleaver memory structure interleaves the first plurality of extrinsic values to generate a first “a priori probability” (app) information; the bottom SISO, based on the plurality of trellis metrics, calculates a second plurality of extrinsic values for each encoded symbol of the plurality of encoded symbols according to the respective rate control; wherein the interleaver memory structure de-interleaves the second plurality of extrinsic values to generate a second “a priori probability” (app) information; wherein the first “a priori probability” (app) information is fed back to the bottom SISO; wherein the second “a priori probability” (app) information is fed back to the top SISO; wherein the top SISO and the bottom SISO operate cooperatively to perform at least one iteration of iterative decoding to generate a plurality of soft symbol decisions, each soft symbol decision of the plurality of soft symbol decisions corresponds to an encoded symbol of the plurality of encoded symbols; and an output processor, communicatively coupled to the bottom SISO, that generates a hard symbol decision for each soft symbol decision of the plurality of soft symbol decisions thereby making a best estimate for each encoded symbol of the plurality of encoded symbols.
- 13. The interleaver memory structure of claim 1, wherein the plurality of encoded symbols is encoded according to at least one of TTCM (Turbo Trellis Coded Modulation), PC-TCM (Parallel Concatenated Trellis Coded Modulation), and Trellis Code Modulation (TCM).
- 14. The interleaver memory structure of claim 1, wherein the interleaver memory structure is employed by a decoder that is implemented within a communication receiver; and
wherein the communication receiver is contained within at least one of a satellite communication system, a High Definition Television (HDTV) communication system, a cellular communication system, a microwave communication system, a point-to-point communication system, a uni-directional communication system, a bi-directional communication system, a one to many communication system, and a fiber-optic communication system.
- 15. An interleaver memory structure for facilitating the decoding of a plurality of encoded symbols, the interleaver memory structure comprising:
a first multiplexor (MUX) that receives the sequential read addresses and the sequential write addresses as inputs, the selection of the first MUX is made using a clock signal having even and odd cycles; a second MUX that receives sequential read addresses and sequential write addresses as inputs, the selection of the second MUX is made using an inversion of the clock signal having even and odd cycles; wherein corresponding sequential read addresses and sequential write addresses are offset by an odd value; a first interleaver pattern memory that alternatively receives sequential read addresses and sequential write addresses from the first MUX; a second interleaver pattern memory that alternatively receives sequential write addresses and sequential read addresses from the second MUX; a first interleaver memory that is communicatively coupled to the first interleaver pattern memory; a second interleaver memory that is communicatively coupled to the second interleaver pattern memory; wherein the first interleaver memory receives input data that is written therein according to a sequential write address provided by the first interleaver pattern memory; wherein the first interleaver memory provides output data that is read there from according to a sequential read address provided by the first interleaver pattern memory; wherein the second interleaver memory receives input data that is written therein according to a sequential write address provided by the second interleaver pattern memory; wherein the second interleaver memory provides output data that is read there from according to a sequential read address provided by the second interleaver pattern memory; a third MUX that receives the output data from the first interleaver memory and the output data from the second interleaver memory as inputs, the selection of the third MUX is made using the clock signal having even and odd cycles; and wherein each of the first interleaver pattern memory, the second interleaver pattern memory, the first interleaver memory, and the second interleaver memory are implemented using single port memory structures.
- 16. The interleaver memory structure of claim 15, wherein:
the first interleaver pattern memory receives a first sequential read address when the second interleaver pattern memory receives a first sequential write address; and the first interleaver pattern memory receives a second sequential write address when the second interleaver pattern memory receives a second sequential read address.
- 17. The interleaver memory structure of claim 15, wherein read accesses and write accesses are alternatively performed within each of the first interleaver memory and the second interleaver memory.
- 18. The interleaver memory structure of claim 15, further comprising:
a first AND gate, whose output governs the writing of input data to the first interleaver memory, that receives a write command and the clock signal having even and odd cycles as inputs; and a second AND gate, whose output governs the writing of input data to the second interleaver memory, that receives a write command and the inversion of the clock signal having even and odd cycles.
- 19. The interleaver memory structure of claim 15, wherein the interleaver memory structure is employed by a soft-in soft-out (SISO) decoder that includes a top SISO and a bottom SISO;
wherein the top SISO provides extrinsic information that is fed back to the bottom SISO in an interleaved order during a first SISO operation; and wherein the bottom SISO provides extrinsic information that is fed back to the top SISO in a de-interleaved order during a second SISO operation.
- 20. The interleaver memory structure of claim 15, wherein the interleaver memory structure is employed by a soft-in soft-out (SISO) decoder;
wherein the SISO decoder is implemented as a single, recycled SISO decoder; wherein the SISO provides extrinsic information that is fed back to the SISO in an interleaved order during a first SISO operation; and wherein the SISO provides extrinsic information that is fed back to the SISO in a de-interleaved order during a second SISO operation.
- 21. The interleaver memory structure of claim 15, wherein the plurality of encoded symbols is encoded according to a rate control sequence having a plurality of rate controls arranged in a period.
- 22. The interleaver memory structure of claim 21, wherein a rate control of the plurality of rate controls includes a modulation that includes a constellation having a mapping.
- 23. The interleaver memory structure of claim 21, wherein a first rate control of the plurality of rate controls includes a first modulation that includes a first constellation having a first mapping; and
wherein a second rate control of the plurality of rate controls includes a second modulation that includes a second constellation having a second mapping.
- 24. The interleaver memory structure of claim 15, wherein the interleaver memory structure is employed by a soft-in soft-out (SISO) decoder that is part of a decoder that employs a trellis to decode the plurality of encoded symbols;
wherein the plurality of encoded symbols is encoded according to a rate control sequence having a plurality of rate controls arranged in a period; wherein the SISO decoder includes a top SISO and a bottom SISO; wherein the top SISO, based on a plurality of trellis metrics, calculates a first plurality of extrinsic values for each encoded symbol of the plurality of encoded symbols according to the respective rate control; wherein the interleaver memory structure interleaves the first plurality of extrinsic values to generate a first “a priori probability” (app) information; the bottom SISO, based on the plurality of trellis metrics, calculates a second plurality of extrinsic values for each encoded symbol of the plurality of encoded symbols according to the respective rate control; wherein the interleaver memory structure de-interleaves the second plurality of extrinsic values to generate a second “a priori probability” (app) information; wherein the first “a priori probability” (app) information is fed back to the bottom SISO; wherein the second “a priori probability” (app) information is fed back to the top SISO; wherein the top SISO and the bottom SISO operate cooperatively to perform at least one iteration of iterative decoding to generate a plurality of soft symbol decisions, each soft symbol decision of the plurality of soft symbol decisions corresponds to an encoded symbol of the plurality of encoded symbols; and an output processor, communicatively coupled to the bottom SISO, that generates a hard symbol decision for each soft symbol decision of the plurality of soft symbol decisions thereby making a best estimate for each encoded symbol of the plurality of encoded symbols.
- 25. The interleaver memory structure of claim 15, wherein the plurality of encoded symbols is encoded according to at least one of TTCM (Turbo Trellis Coded Modulation), PC-TCM (Parallel Concatenated Trellis Coded Modulation), and Trellis Code Modulation (TCM).
- 26. The interleaver memory structure of claim 15, wherein the interleaver memory structure is employed by a decoder that is implemented within a communication receiver; and
wherein the communication receiver is contained within at least one of a satellite communication system, a High Definition Television (HDTV) communication system, a cellular communication system, a microwave communication system, a point-to-point communication system, a uni-directional communication system, a bi-directional communication system, a one to many communication system, and a fiber-optic communication system.
- 27. A soft-in soft-out (SISO) decoder that includes an interleaver memory structure for facilitating the decoding of a plurality of encoded symbols, the SISO decoder comprising:
a top SISO that, based on a plurality of trellis metrics, calculates a first plurality of extrinsic values for each encoded symbol of the plurality of encoded symbols; wherein the interleaver memory structure interleaves the first plurality of extrinsic values to generate a first “a priori probability” (app) information; a bottom SISO that, based on the plurality of trellis metrics, calculates a second plurality of extrinsic values for each encoded symbol of the plurality of encoded symbols according to the respective rate control; wherein the interleaver memory structure de-interleaves the second plurality of extrinsic values to generate a second “a priori probability” (app) information; wherein the first “a priori probability” (app) information is fed back to the bottom SISO; wherein the second “a priori probability” (app) information is fed back to the top SISO; wherein the top SISO and the bottom SISO operate cooperatively to perform at least one iteration of iterative decoding to generate a plurality of soft symbol decisions, each soft symbol decision of the plurality of soft symbol decisions corresponds to an encoded symbol of the plurality of encoded symbols; and an output processor, communicatively coupled to the bottom SISO, that generates a hard symbol decision for each soft symbol decision of the plurality of soft symbol decisions thereby making a best estimate for each encoded symbol of the plurality of encoded symbols; wherein the interleaver memory structure includes a first interleaver pattern memory, a second interleaver pattern memory, a first interleaver memory, and a second interleaver memory that are all implemented using single port memory structures;
during a first clock cycle:
a first interleaver pattern memory receives a first sequential read address; a second interleaver pattern memory receives a first sequential write address; during a second clock cycle:
the first interleaver pattern memory receives a second sequential write address; the second interleaver pattern memory receives a second sequential read address; a first read address is received from the first interleaver pattern memory for use by a first interleaver memory; a first write address is received from the second interleaver pattern memory for use by a second interleaver memory; during a third clock cycle:
the first interleaver pattern memory receives a third sequential read address; the second interleaver pattern memory receives a third sequential write address; a second write address is received from the first interleaver pattern memory for use by the first interleaver memory; a second read address is received from the second interleaver pattern memory for use by the second interleaver memory; a first data is read from the first interleaver memory; a second data is written to the second interleaver memory; and wherein each of the first interleaver pattern memory, the second interleaver pattern memory, the first interleaver memory, and the second interleaver memory are implemented using single port memory structures.
- 28. The SISO decoder of claim 27, wherein the plurality of encoded symbols is encoded according to a rate control sequence having a plurality of rate controls arranged in a period.
- 29. The SISO decoder of claim 28, wherein a rate control of the plurality of rate controls includes a modulation that includes a constellation having a mapping.
- 30. The SISO decoder of claim 28, wherein a first rate control of the plurality of rate controls includes a first modulation that includes a first constellation having a first mapping; and
wherein a second rate control of the plurality of rate controls includes a second modulation that includes a second constellation having a second mapping.
- 31. The SISO decoder of claim 27, wherein:
during a fourth clock cycle:
the first interleaver pattern memory receives a fourth sequential write address; the second interleaver pattern memory receives a fourth sequential read address; a third read address is received from the first interleaver pattern memory for use by the first interleaver memory; a third write address is received from the second interleaver pattern memory for use by the second interleaver memory; a third data is written to the first interleaver memory; and a fourth data is read from the second interleaver memory.
- 32. The SISO decoder of claim 27, wherein read accesses and write accesses are alternatively performed within each of the first interleaver memory and the second interleaver memory.
- 33. The SISO decoder of claim 27, wherein the first sequential read address and the first sequential write address are offset by an odd value.
- 34. The SISO decoder of claim 27, wherein the second sequential write address and the second sequential write address are offset by an odd value.
- 35. The SISO decoder of claim 27, wherein the interleaver memory structure further comprises:
a first multiplexor (MUX) that receives the first sequential read address and the first sequential write address as inputs during the first clock cycle and provides the first sequential read address to the first interleaver pattern memory; a second multiplexor (MUX) that receives the first sequential read address and the first sequential write address as inputs during the first clock cycle and provides the first sequential write address to the second interleaver pattern memory; wherein the first MUX receives the second sequential read address and the second sequential write address as inputs during the second clock cycle and provides the second sequential write address to the first interleaver pattern memory; and wherein the second MUX receives the second sequential read address and the second sequential write address as inputs during the second clock cycle and provides the second sequential read address to the second interleaver pattern memory.
- 36. The SISO decoder of claim 27, wherein the plurality of encoded symbols is encoded according to at least one of TTCM (Turbo Trellis Coded Modulation), PC-TCM (Parallel Concatenated Trellis Coded Modulation), and Trellis Code Modulation (TCM).
- 37. The SISO decoder of claim 27, wherein the SISO decoder is implemented within a communication receiver; and
wherein the communication receiver is contained within at least one of a satellite communication system, a High Definition Television (HDTV) communication system, a cellular communication system, a microwave communication system, a point-to-point communication system, a uni-directional communication system, a bi-directional communication system, a one to many communication system, and a fiber-optic communication system.
- 38. An interleaver memory processing method, the method comprising:
during a first clock cycle:
providing a first sequential read address to a first interleaver pattern memory; providing a first sequential write address to a second interleaver pattern memory; during a second clock cycle:
providing a second sequential write address to the first interleaver pattern memory; providing a second sequential read address to the second interleaver pattern memory; receiving a first read address from the first interleaver pattern memory for use by a first interleaver memory; receiving a first write address from the second interleaver pattern memory for use by a second interleaver memory; during a third clock cycle:
providing a third sequential read address to the first interleaver pattern memory; providing a third sequential write address to the second interleaver pattern memory; receiving a second write address from the first interleaver pattern memory for use by the first interleaver memory; receiving a second read address from the second interleaver pattern memory for use by the second interleaver memory; reading a first data from the first interleaver memory; and writing a second data to the second interleaver memory.
- 39. The method of claim 38, wherein:
during a fourth clock cycle:
providing a fourth sequential write address to the first interleaver pattern memory; providing a fourth sequential read address to the second interleaver pattern memory; receiving a third read address from the first interleaver pattern memory for use by the first interleaver memory; receiving a third write address from the second interleaver pattern memory for use by the second interleaver memory; writing a third data to the first interleaver memory; and reading a fourth data from the second interleaver memory.
- 40. The method of claim 38, wherein read accesses and write accesses are alternatively performed within each of the first interleaver memory and the second interleaver memory.
- 41. The method of claim 38, wherein the first sequential read address and the first sequential write address are offset by an odd value.
- 42. The method of claim 38, wherein the second sequential write address and the second sequential write address are offset by an odd value.
- 43. The method of claim 38, wherein the plurality of encoded symbols is encoded according to a rate control sequence having a plurality of rate controls arranged in a period.
- 44. The method of claim 43, wherein a rate control of the plurality of rate controls includes a modulation that includes a constellation having a mapping.
- 45. The method of claim 43, wherein a first rate control of the plurality of rate controls includes a first modulation that includes a first constellation having a first mapping; and
wherein a second rate control of the plurality of rate controls includes a second modulation that includes a second constellation having a second mapping.
- 46. The method of claim 38, wherein the plurality of encoded symbols is encoded according to at least one of TTCM (Turbo Trellis Coded Modulation), PC-TCM (Parallel Concatenated Trellis Coded Modulation), and Trellis Code Modulation (TCM).
- 47. The method of claim 38, wherein the method is performed within a decoder that is implemented within a communication receiver;
wherein the communication receiver is contained within at least one of a satellite communication system, a High Definition Television (HDTV) communication system, a cellular communication system, a microwave communication system, a point-to-point communication system, a uni-directional communication system, a bi-directional communication system, a one to many communication system, and a fiber-optic communication system.
CROSS REFERENCE TO RELATED PATENTS/PATENT APPLICATIONS
[0001] The present U.S. Utility patent application claims priority pursuant to 35 U.S.C. §119(e) to the following U.S. Provisional Patent Applications which are hereby incorporated herein by reference in their entirety and made part of the present U.S. Utility patent application for all purposes:
[0002] 1. U.S. Provisional Patent Application Serial No. 60/384,698, entitled “Variable code rate and signal constellation turbo trellis coded modulation codec,” (Attorney Docket No. BP 2333), filed May 31, 2002, pending. 2. U.S. Provisional Application Serial No. 60/435,927, “Interleaver for iterative decoder,” (Attorney Docket No. BP 2687), filed Dec. 20, 2002, pending.
[0003] The present U.S. Utility patent application also claims priority pursuant to 35 U.S.C. §120 to the following U.S. Utility patent application which is hereby incorporated herein by reference in its entirety and is made part of the present U.S. Utility patent application for all purposes:
[0004] 1. U.S. Utility application Ser. No. 10/264,486, entitled “Variable code rate and signal constellation turbo trellis coded modulation codec,” (Attorney Docket No. BP 2333), filed Oct. 4, 2002, pending.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60384698 |
May 2002 |
US |
|
60435927 |
Dec 2002 |
US |