stringtranslate.com

Peligro (lógica)

En lógica digital , un peligro es un efecto indeseable causado por una deficiencia en el sistema o influencias externas tanto en circuitos síncronos [ cita requerida ] como asíncronos . [1] : 43  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 ( puertas NOT , AND , OR , etc.). La lógica no realiza su función correctamente. Los tres tipos de peligros más comunes se suelen denominar peligros estáticos, dinámicos y funcionales.

Los peligros son un problema temporal, ya que el circuito lógico eventualmente adoptará 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 utilizarlo en un dominio de reloj diferente o de enrutarlo fuera del sistema, de modo que los peligros no causen ningún problema. Sin embargo, si ese no es el caso, es imperativo eliminar los peligros, ya que pueden afectar a otros sistemas conectados.

Peligros estáticos

Un peligro estático es un cambio del estado de una señal dos veces seguidas cuando se espera que la señal permanezca constante. [1] : 48  Cuando una señal de entrada cambia, la salida cambia momentáneamente antes de estabilizarse al valor correcto. Hay dos tipos de peligros estáticos:

En una lógica AND-OR de dos niveles formada correctamente y basada en una expresión de suma de productos, no habrá peligros de estática-0 (pero aún puede haber peligros de estática-1). Por el contrario, no habrá riesgos estáticos-1 en una implementación OR-AND de una expresión de producto de sumas (pero aún puede haber riesgos estáticos-0).

El método más 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 físicos lógicos, es decir, puertas Y, etc.

El circuito simple realiza la función teniendo en cuenta:

Al observar el diagrama de inicio, queda claro que si no se produjeran retrasos, el circuito funcionaría normalmente. Sin embargo, nunca se fabrican dos puertas exactamente iguales. Debido a esta imperfección, el retraso de la primera puerta AND será ligeramente diferente al de su contraparte. Por lo tanto, se produce un error cuando la entrada cambia e y la solución sobre cómo resolver este problema, buscaríamos el mapa de Karnaugh . Las dos puertas se muestran mediante anillos macizos y el peligro se puede ver debajo del anillo discontinuo. Un teorema demostrado por Huffman [2] nos dice que añadiendo un bucle redundante 'BC' se eliminará el peligro.

Entonces nuestra función original ahora es:

Ahora podemos ver que incluso con elementos lógicos imperfectos, nuestro ejemplo no mostrará signos de peligro cuando A cambie de estado. Esta teoría se puede aplicar a cualquier sistema lógico. Los programas de computadora se encargan de la mayor parte de este trabajo ahora, pero para ejemplos simples es más rápido hacer 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 una serie de cambios del estado de una señal que ocurren varias veces seguidas cuando se espera que la señal cambie de estado solo una vez. [1] : 48  Un peligro dinámico es la posibilidad de que una salida cambie más de una vez como resultado de un único cambio de entrada.

Los peligros dinámicos a menudo ocurren en circuitos lógicos más grandes donde hay diferentes rutas hacia 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 lugar de eso cambia de 1 a 0, luego a 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, entonces los peligros dinámicos no pueden ocurrir.

Peligros funcionales

A diferencia de los riesgos estáticos y dinámicos, los riesgos funcionales son aquellos 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 cual no es aplicable en algunos casos. Por lo tanto, los circuitos deben diseñarse cuidadosamente para tener retrasos iguales en cada ruta. [3]

Otros

Peligros de lógica combinacional
En la lógica combinacional hay un peligro que depende de la distribución de los retrasos en la propagación de la señal en los circuitos lógicos y del diseño general de la función del circuito lógico implementado. [1] : 43 
Peligros funcionales combinados
En la lógica combinacional hay peligros que pueden detectarse y suprimirse en un nivel superior de programación, estudiando y modificando la función lógica de salida. [1] : 43 
Peligros secuenciales
Es un tipo de cambios de señal indeseables que se encuentran en los sistemas en bucle. [1] : 43 

Ver también

Referencias

  1. ^ abcdef Lopes, Jeremy (26 de noviembre de 2018) [2017]. "Diseño de un circuito integrado no volátil GALS (globalmente asíncrono localmente síncrono) innovador para aplicaciones espaciales" (PDF) . Universidad de Montpellier.
  2. ^ Huffman, DA (1957), "El diseño y uso de redes de conmutación sin riesgos", Journal of the ACM , 4 , J. ACM 4, 47: 47–62, doi : 10.1145/320856.320866 , S2CID  1765037
  3. ^ "Peligros". www.ee.surrey.ac.uk . Consultado el 17 de marzo de 2018 .