An interleaver circuit architectures, which utilizes the relationship
between intra-row elements in a matrix, in order to simplify the MOD
computations necessary in an interleaver. The interleaver calculates a
subset of results, stores those results, performs operations on the
stored results in order to obtain new results, then updates at least some
of the old results with the new results for the next column operation.
The interleaver address is then calculated row by row. By storing only a
subset of the results and replacing old results with new results, the
interleaver can calculate the interleaver address "on the fly" in one
clock cycle with very little delay. The interleaver may also require less
power and smaller substrate surface area.