Claims
- 1. A method of generating addresses for an interleaver of an encoder in a wireless communication system, the method comprising:
determining a first counter value corresponding to a first valid address; generating the first valid address from the first counter value; determining a second counter value, the second counter value corresponding to a second valid address; and generating the second valid address based on the second counter value.
- 2. The method as in claim 1, wherein the first counter value and the second counter value are included in a set of counter values corresponding to valid addresses.
- 3. The method as in claim 2, wherein generating an address comprises:
adding an offset to the counter value.
- 4. The method as in claim 2, wherein determining the second counter value comprises adding a counter offset value to the first counter value.
- 5. The method as in claim 4, wherein the set of counter values are stored in a memory storage device, each stored counter value having a corresponding counter offset value.
- 6. An address generation apparatus for an interleaver in a wireless communication system, the apparatus comprising:
means for determining a first counter value corresponding to a first valid address; means for generating the first valid address from the first counter value; means for determining a second counter value, the second counter value corresponding to a second valid address; and means for generating the second valid address based on the second counter value
- 7. The apparatus as in claim 6, wherein the means for generating a second counter value adds an offset counter value to the first counter value.
- 8. An address generation apparatus for an interleaver in a wireless communication system, the apparatus comprising:
a counter; and a plurality of address generators each coupled to the counter, each of the plurality of address generators comprising:
a memory storage device coupled to the counter, storing a plurality of counter values with corresponding counter offset values; and a second counter coupled to the memory storage device, adapted to add the counter offset value to a previously generated address.
- 9. The apparatus as in claim 8, wherein the second counter comprises:
an adder having a first input coupled to the memory storage device; a multiplexor having a first input coupled to an output of the adder and a second input coupled to a predetermined initialization value; and a second memory storage device coupled to the output of the multiplexor and having an output coupled to a second input to the adder.
- 10. The apparatus as in claim 9, further comprising:
append circuitry coupled between the memory storage device and the second counter, wherein the append circuitry appends a predetermined value to the output of the memory storage device.
- 11. The apparatus as in claim 10, wherein the first memory storage device is a look up table.
- 12. A data encoder, comprising:
a plurality of memories for storing sequential input information bits; a plurality of interleavers for scrambling the input information bits; a first encoder coupled to a first of the memories, the first encoder adapted to encode the sequential input information bits; and a second encoder coupled to the plurality of memories, the second encoder adapted to encode the interleaved input information bits.
- 13. The data encoder as in claim 12, wherein the first encoder and the second encoder process multiple bits per system clock cycle.
- 14. The data encoder as in claim 13, wherein the first encoder and the second encoder include a plurality of AND-XOR trees.
- 15. The data encoder as in claim 14, wherein the first encoder and the second encoder recursively process multiple bits.
- 16. A method of encoding data, comprising:
receiving a plurality of input bits; calculating a first set of state values based on the plurality of input bits; and generating a first set of encoded output values using the first set of state values and the plurality of input bits.
- 17. The method as in claim 16, wherein the first set of state values are stored in memory storage devices.
- 18. The method as in claim 17, further comprising:
generating a second set of state values based on the plurality of input bits and the first set of state values, wherein generating the first set of encoded output values uses the first set of state values, the second set of state values, and the plurality of input bits.
- 19. The method as in claim 18, further comprising:
providing the plurality of input bits as a first set of outputs.
- 20. A method of encoding data, comprising:
receiving a plurality of input bits; and during a single system clock cycle:
calculating a first set of state values based on the plurality of input bits; calculating a second set of state values based on the plurality of input bits and the first set of state values; calculating a third set of state values based on the plurality of input bits, and the first and second sets of state values; and generating a set of encoded outputs based on the first, second, and third sets of state values.
- 21. A method of as in claim 20, further comprising:
storing the third set of state values in a memory storage device.
- 22. A method as in claim 21, further comprising:
receiving a second plurality of input bits; during a single system clock cycle:
calculating a fourth set of state values based on the second plurality of input bits and the third set of state values; calculating a fifth set of state values based on the second plurality of input bits and the fourth set of state values; calculating a sixth set of state values based on the second plurality of input bits and the fourth and fifth sets of state values; and generating a second set of encoded outputs based on the fourth, fifth, and sixth sets of state values.
- 23. An encoder apparatus, comprising:
a lookahead state generator adapted to generate a plurality of state values during one system clock cycle in response to receiving a plurality of input bits; a first output generator coupled to the lookahead state generator, the first output generator adapted to output a set of output values in response to the plurality of state values; and a second output generator coupled to the lookahead state generator, the second output generator adapted to output a second set of output values in response to the plurality of state values.
- 24. The encoder apparatus as in claim 23, wherein the first output generator generates the set of output values according to:
- 25. The encoder apparatus as in claim 24, wherein the second output generator generates the second set of output values according to:
- 26. An apparatus for encoding data, comprising:
means for receiving a plurality of input bits; and means for calculating a first set of state values based on the plurality of input bits; means for calculating a second set of state values based on the plurality of input bits and the first set of state values; means for calculating a third set of state values based on the plurality of input bits, and the first and second sets of state values; and means for generating a set of encoded outputs based on the first, second, and third sets of state values during a single system clock cycle.
- 27. An apparatus, comprising:
a data processing unit; and a memory storage device adapted to store a plurality of computer-readable instructions for:
receiving a plurality of input bits; and during a single system clock cycle:
calculating a first set of state values based on the plurality of input bits; calculating a second set of state values based on the plurality of input bits and the first set of state values; calculating a third set of state values based on the plurality of input bits, and the first and second sets of state values; and generating a set of encoded outputs based on the first, second, and third sets of state values.
REFERENCE TO CO-PENDING APPLICATIONS
[0001] The present Application for patent is related to U.S. patent application Ser. No. 09/957,820, entitled “Method and Apparatus for Coding Bits of Data in Parallel,” filed on Sep. 20, 2001, assigned to the assignee hereof, and hereby expressly incorporated by reference.