Estoy tratando de entender cómo implementar un contador de rizado binario arriba / abajo. Básicamente, tengo un montón de D-flipflops, y conecto clk del siguiente flipflop al éter Q o Q '.
Entonces, si quiero cambiar la dirección de conteo, simplemente cambio todos los multiplexores clk entre Q y Q ', y el contador comienza a contar en la dirección opuesta.
Sin embargo, el problema es que cuando cambio las entradas entre Q y Q, los flipflops hacen 1 conteo, por lo que mi contador cuenta desde un número diferente.
I.e. No puedo tener algo como: 0- > 1- > 2- > 3 (cambio de dirección) - > 2- > 1- > 0, es como 0- > 1- > 2- & gt ; 3 (cambio de dirección) - > c- > b- > a- > 9 ...
¿Qué me estoy perdiendo?