Hints To Operate a Simple Feedback Shift Register Simulator


[English] [German] [Russian]


A short illustrating description taken from notes on the lecture "Digitale Fehlerdiagnose" (by W. Goerke, edition summer term 1998, University of Karlsruhe) contains an example of how to use a linear feedback shift register in order to calculate signatures which can be used for fault diagnosis. If a primitive polynomial is used to select certain feedback connections a very long shift sequence will be generated. In particular, any input sequence except the one that describes the feedback connections will generate a unique register content so that it can be used to identify the applied input sequence. As a consequence, these "signatures" will detect any deviation from an original signature for any node of a circuit due to a failure if simply compared to those of the original fault-free state of the circuit.

The process of forming the signature has been modelled by a Java applet that provides the possibility of interactive input to the register. To use the simulator, try the following steps:

  1. Call the applet via the internet: English, German;

  2. Mark a suitable feedback pattern (e.g. enter the polynomial 0000 0010 1001 0001 into the shift register);

  3. Enter any 16 bit input sequence (e.g. 0101 0101 0101 0010 in binary mode, or 5552 in hexadecimal mode). If this sequence is being input in hexadecimal mode, use the following symbols:  A, C, F, H, P, U instead of A, B, C, D, E, F;

  4. Start the operation by pushing once (or repeatedly) buttons "Start", "Step" or "Clock";

  5. Repeat the run by pushing "Restart", then (again) "Start", "Step" or "Clock";

If the data indicated above are used, the register should contain 0110 1011 1010 1010 in the binary mode or 6CAA in hexadecimal mode after completion of the simulation. The buttons "+" and "-" change the simulation speed.

You can also try the following data assuming the feedback pattern 0000 0010 1001 0001:

Input sequence
(binary - hexadecimal )
Result
(binary - hexadecimal)
binary hexadecimal binary hexadecimal
0111 1111 1111 1000 7UU8 0111 1100 1111 1110 7FUP
0001 1110 0000 0000 1P00 0100 1100 0111 1000 4F78
0000 0111 1110 0000 07P0 0011 0111 1110 0000 37P0
0000 0001 1001 1111 019U 0011 1001 1000 0000 3980
1111 1000 0001 1111 U81U 1111 1001 1001 1111 U99U
1110 0111 1111 1111 P7UU 0111 0010 0110 0111 7267
1111 1110 0111 1111 UP7U 0000 1111 1111 1111 0UUU
0001 1001 1000 0000 1980 0111 1101 1001 1000 7H98
1001 1001 1000 0111 9987 1100 1111 0001 1001 FU19
1100 1100 1100 0111 FFF7 1110 1100 1011 0011 PFC3

[English] [German] [Russian]

The implementation is the result of a student project, namely by
Yifang Chen, University of Karlsruhe, and
Kirill Safronov, Ufa State Aviation Technical University.

Last change: April 20, 2004