Usando SOLAMENTE DFF, usaría 15 DFF y haría tres bucles de cinco. (La salida vuelve a la entrada) con valores preestablecidos.
Por lo tanto, el primer bucle está preestablecido en 00111 (ls bit), segundo 01001 (bit medio), tercer 00011 (bit ms).
Elaboración:
Si escribes la secuencia de números en binario, obtienes:
000
010
001
101
111
Luego toma una columna y la convierte a 5 DFF en una fila, pero conecta la salida del último a la entrada del primero. Si registra esos DFF, el patrón girará en círculo.
Usando algún tipo de reinicio puede establecer o borrar los DFF a los valores preestablecidos de una columna. Si marca los 15 DFF, los patrones girarán. Si tomas tres DFF 'adyacentes' verás que la secuencia viene.
1 -> 1 -> 0 -> 0 -> 0 => this is
1 -> 0 -> 0 -> 1 -> 0 => where your
1 -> 1 -> 1 -> 0 -> 0 => numbers appear
En el 'diagrama' de arriba, la secuencia aparece solo una vez.
Para repetirlo, devuelve la salida a la entrada
+-> 1 -> 1 -> 0 -> 0 -> 0 -+ => this is
+-> 1 -> 0 -> 0 -> 1 -> 0 -+ => where your
+-> 1 -> 1 -> 1 -> 0 -> 0 -+ => numbers appear
| |
+----------<-------<-------+
Puede que no sea elegante, ya que es una fuerza bruta. Pero funciona y puedes usarlo para cualquier patrón. Nunca lo haría así en la vida real a menos que no sea demasiado grande y tenga que ejecutarse a, por ejemplo. 10 GHz.