The choice where to add such extra inputs to the basic linear-feedback shift register is completely arbitrary, and up two n extra inputs can be used to an n-stage LFSR. In the applet, only the first and fourth stage of the linear-feedback shift-register are modified to include those extra XOR gates, for a total of two data inputs. This should make it easy to recognize the basic LFSR structure. Simply click the input switches, or type the 'a' and 's' bindkeys to control the data inputs during the simulation.
At each active edge of the clock signal, the next state of the LFSR depends on both its current state and the current values of the extra data inputs. When all data inputs are low, the LFSR simply follows the standard feedback sequence(s) as defined by the structure of the XOR gates in its feedback path. However, whenever the external data inputs are high during the active edge of the clock signal, the flipflop driven by the corresponding XOR gate will be toggled with respect to the default feedback sequence, and therefore modify the feedback sequence.
Obviously, the value of the signature analysis register depends on both the initial state (after a reset), and all data input values clocked into the register since the initialization. The final register contents after m clock pulses can be interpreted as a signature of all data inputs during those clock cycles. Naturally, different input value sequences can result in the same final signatures, because a register with n stages has only 2n different states, but the probability of such aliasing falls exponentially with increasing number of stages. For example, the probability of accidental aliasing is only 2-32 in a 32-stage register.
Signature analysis registers are often used in combination with standard LFSRs for on-chip selftest of VLSI circuits. The idea, explained in more detail in the following applet, is to use a first standard LFSR to generate a long sequence of pseudo-random input data for a block of logic. The outputs of the block of logic are connected to the data inputs of a second signature analysis register. After running both registers for a predefined number of clock cycles, the result value of the signature analysis register is read-out and compared with the constant 'golden' signature value calculated beforehand for the intact circuit. If the signatures differ, the block of logic is known to be defect, while matching signatures indicate that the block of logic is working (with a very high-probability). Two major advantages of using LFSRs for the pattern generation and signature analysis are their low cost and high operating frequency.
A variant of the signature analysis register, the so-called BILBO, can be used in different operating modes as each of a standard D-type register, standard shift-register, LFSR-based pattern generator, and LFSR-based signature analysis register.
Run the applet | Run the editor (via Webstart)