An efficient way to generate the address sequence for the RAM
implementation of Forney's (P, D, m) interleavers requires only A+1+2P
memory locations, which is close to the theoretical minimum. Here A is
the average delay of the symbols through the interleaver. The address
generation circuit (with simple adders and registers) works for variable
P,D,m. This is achieved by decomposing the (P,D,m) interleaver into a
concatenation of a multiplexed interleaver (implemented with A+1 memory
locations), followed by a block interleaver (implemented with 2P memory
locations). In many applications, these 2P memory locations can be
treated as part of the memory for controlling the data flow of the
system.