A system and method is provided for interleaving data in a communication device.
The system includes a memory that stores blocks of data to be interleaved. In addition
to the memory, the system includes a write module and a read module, each of which
is coupled to the memory. The write module is configured to receive a burst of
data and write blocks of data from the burst into the memory. The write module
is also configured to provide control information to the read logic. The control
information includes a rolling burst counter and a burst profile bank identifier
for each block. If interleaving is activated, the control information also includes
information pertaining to how the read module should interleave the block. If interleaving
is not activated, the control information also includes the byte length size of
the burst. The read module reads blocks of data from memory in either an interleaved
fashion or a non-interleaved fashion in accordance with the control information.
A block available signal and a block out signal is also provided to determine when
a block of data is available to be read from the memory.