En lógica digital , un peligro en un sistema es un efecto indeseable causado por una deficiencia en el sistema o por influencias externas. Los peligros lógicos son manifestaciones de un problema en el que los cambios en las variables de entrada no cambian la salida correctamente debido a algún tipo de retraso causado por elementos lógicos ( compuertas NOT , AND , OR , etc.). Esto hace que la lógica no realice su función. adecuadamente. Los tres tipos diferentes de peligros más comunes generalmente se denominan peligros estáticos, dinámicos y funcionales.
Los peligros son un problema temporal, ya que el circuito lógico eventualmente se asentará en la función deseada. Por lo tanto, en diseños síncronos, es una práctica estándar registrar la salida de un circuito antes de que se utilice en un dominio de reloj diferente o se enrute fuera del sistema, de modo que los peligros no causen ningún problema. Sin embargo, si ese no es el caso, es imperativo que se eliminen los peligros, ya que pueden afectar a otros sistemas conectados.
Peligros estáticos
Un peligro estático es la situación en la que, cuando cambia una variable de entrada, la salida cambia momentáneamente antes de estabilizarse al valor correcto. Hay dos tipos de peligros por electricidad estática:
- Peligro estático-1: la salida es actualmente 1 y después de que cambian las entradas, la salida cambia momentáneamente a 0,1 antes de establecerse en 1
- Peligro estático-0: la salida es actualmente 0 y después de que las entradas cambian, la salida cambia momentáneamente a 1,0 antes de establecerse en 0
En una lógica AND-OR de dos niveles correctamente formada basada en una expresión de suma de productos, no habrá riesgos de estática-0. Por el contrario, no habrá peligros estáticos-1 en una implementación OR-AND de una expresión Producto de sumas.
El método más comúnmente utilizado para eliminar los peligros estáticos es agregar lógica redundante (términos de consenso en la expresión lógica).
Ejemplo de peligro estático
Considere un circuito imperfecto que sufre un retraso en los elementos lógicos físicos, es decir, puertas Y, etc.
El circuito simple realiza la función observando:
De un vistazo al diagrama inicial, está claro que si no ocurrieran retrasos, entonces el circuito funcionaría normalmente. Sin embargo, nunca se fabrican dos puertas exactamente iguales. Debido a esta imperfección, la demora de la primera puerta AND será ligeramente diferente a la de su contraparte. Por tanto, se produce un error cuando la entrada cambia de 111 a 011, es decir, cuando X1 cambia de estado.
Ahora sabemos aproximadamente cómo está ocurriendo el peligro, para una imagen más clara y la solución sobre cómo resolver este problema, miraríamos el mapa de Karnaugh . Las dos puertas se muestran mediante anillos sólidos, y el peligro se puede ver debajo del anillo punteado. Un teorema probado por Huffman [1] nos dice que al agregar un bucle redundante 'X2X3' esto eliminará el peligro.
Entonces nuestra función original ahora es: f = X 1 * X 2 + X 1 '* X 3 + X 2 * X 3
Ahora podemos ver que incluso con elementos lógicos imperfectos, nuestro ejemplo no mostrará señales de peligro cuando X1 cambie de estado. Esta teoría se puede aplicar a cualquier sistema lógico. Los programas de computadora se ocupan de la mayor parte de este trabajo ahora, pero para ejemplos simples, es más rápido realizar la depuración a mano. Cuando hay muchas variables de entrada (digamos 6 o más) será bastante difícil "ver" los errores en un mapa de Karnaugh.
Peligros dinámicos
Un peligro dinámico es la posibilidad de que una salida cambie más de una vez como resultado de un solo cambio de entrada. Los peligros dinámicos a menudo ocurren en circuitos lógicos más grandes donde hay diferentes rutas a la salida (desde la entrada). Si cada ruta tiene un retraso diferente, rápidamente queda claro que existe la posibilidad de cambiar los valores de salida que difieren de la salida requerida / esperada.
Por ejemplo, un circuito lógico está destinado a cambiar el estado de salida de 1 a 0 , pero en su lugar cambia de 1 a 0, luego 1 y finalmente descansa en el valor correcto 0 . Este es un peligro dinámico.
Como regla general, los peligros dinámicos son más complejos de resolver, pero tenga en cuenta que si se han eliminado todos los peligros estáticos de un circuito, los peligros dinámicos no pueden ocurrir.
Riesgos funcionales
A diferencia de los peligros estáticos y dinámicos, los peligros funcionales son los causados por un cambio aplicado a más de una entrada. No existe una solución lógica específica para eliminarlos. Un método realmente confiable es evitar que las entradas cambien simultáneamente, lo que no es aplicable en algunos casos. Por lo tanto, los circuitos deben diseñarse cuidadosamente para tener retrasos iguales en cada ruta. [2]
Ver también
Referencias
- ^ Huffman, DA (1957), El diseño y uso de redes de conmutación libres de peligros , J. ACM 4, 47
- ^ "Peligros" . www.ee.surrey.ac.uk . Consultado el 17 de marzo de 2018 .