An interleaver has an input multiplexer that receives a data sequence at
an interleaver input and that separates the data sequence into multiple
data sub-blocks. The interleaver has a linear feedback shift register
that generates an input address sequence. The interleaver has adder
circuits that generate output address sequences associated with each data
sub-block. The interleaver has memory that stores the data sub-blocks at
addresses controlled by the input address sequence. The memory reproduces
each data sub-block in an interleaved sequence controlled by the
associated output address sequence. The interleaver has an output
multiplexer that assembles the interleaved sequences to provide an
interleaver output.