I am trying to understand a Xilinx application note XAPP052 "Efficient Shift Registers, LFSR Counters, and Long Pseudo-Random Sequence Generators". It shows a method on how to use LFSRs to get random bit sequence of maximum length.
There are few things that I am trying to understand here:
I expected this document to show shift register chains with XOR or XNOR gate in feedback as it happens with CRC circuits. However, this is not the case an I am totally confused what they are really getting to.
1. What is the purpose of the "address counter" that keeps popping up in the whole document, even in Figures 3, 4 and 5!
2. The figure 5 shows Taps that exactly match the Table 3. The DFF and synchronous RAM blocks make up a 63-bit shift register with taps at bits 62 and 63. But, why do the RAM blocks have input from the address counter??? Shift registers don't need address input.
3. The figure 5 shows a 100x8 shift register. Why is it 100x8 and not just 100x1, we can still get the random sequnce that way right?
Also, if this is shift register then why do we need this address counter made up of 4 DFFs at the bottom? The taps for location 100 and 63 (going into XNOR gate) is not shown at all!? The input into the RAM blocks is DIN ( 8 ) for the first and also the last RAM block!?
4. In Figure 3 I do not see taps at locations 32, 22, 2, 1 which should happen for a 32-bit sequence. Why are they not making a 32x8 or 32x16 block here but they did something like this in Figue 4?
Finally,
5. What exactly is relationship between Tables 1 & 2 and the Table 3? I think the Tables 1 and 2 are merely about the address counter while the Table 3 is about the circuit used to generate the random bit sequence.