Las puertas lógicas como AND, OR, NOT, etc., no están discretizadas en el tiempo, no manejan el tiempo en pasos. En cada momento, reflejan la entrada en algún momento anterior (hace unos nanosegundos, por lo general). Por varias razones, las señales pueden demorarse por un pequeño momento de tiempo (longitud de línea, capacitancia, etc.) y como resultado por períodos de tiempo igualmente pequeños, su salida podría reflejar un estado donde una entrada ha cambiado y otra no (todavía). Estos se conocen como peligros .
Si los peligros serán un problema en su salida, necesita diseñar alrededor de ellos. Para contar, por ejemplo, considere usar código gris que recorre todos los valores y solo cambia un bit a la vez (pero es un poco difícil crear hardware, el software no tiene problemas).
Como alternativa, comience a usar relojes y chanclas y deje que el tiempo se estabilice. No seas demasiado cauteloso. A menudo, los sistemas de puertas muy grandes (por ejemplo, una ALU completa) se pueden activar simultáneamente y se pueden generar todo tipo de riesgos. Siempre que se permita el tiempo suficiente para que el valor se establezca antes de engancharse en un flip-flop, entonces no hay problema.
El problema es similar al rebote en los interruptores y las carreras en el software. Siempre elimine los peligros de las salidas que accionan los dispositivos de potencia: es una manera fácil de atornillar lo que esté conectado a la salida. Enganche la salida con un flip-flop cronometrado o use un condensador para eliminar los peligros en este caso.