Articulo de referencia

Peligro (lógica)

En lógica digital , un riesgo es un efecto indeseable causado por una deficiencia en el sistema o influencias externas en circuitos síncronos y asíncronos . [ 1 ] : 43 Los riesg...

En lógica digital , un riesgo es un efecto indeseable causado por una deficiencia en el sistema o influencias externas en circuitos síncronos y asíncronos . [ 1 ] : 43 Los riesgos lógicos son manifestaciones de un problema en el que los cambios en las variables de entrada no modifican la salida correctamente debido a algún tipo de retardo causado por los elementos lógicos ( compuertas NOT , AND , OR , etc.). Esto provoca que la lógica no realice su función correctamente. Los tres tipos más comunes de riesgos se denominan generalmente riesgos estáticos, dinámicos y funcionales.

Los riesgos son un problema temporal, ya que el circuito lógico finalmente se estabilizará y funcionará como se desea. Por lo tanto, en diseños síncronos, es práctica habitual registrar la salida de un circuito antes de utilizarla en un dominio de reloj diferente o de sacarla del sistema, para evitar que los riesgos causen problemas. Sin embargo, si esto no ocurre, es fundamental eliminar los riesgos, ya que pueden afectar a otros sistemas conectados.

Riesgos de estática

Un riesgo estático es un cambio de 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 riesgos estáticos:

  • Riesgo estático-1: la salida es actualmente 1 y, tras un cambio en las entradas, la salida cambia momentáneamente a 0,1 antes de estabilizarse en 1.
  • Riesgo estático-0: la salida es actualmente 0 y, tras un cambio en las entradas, la salida cambia momentáneamente a 1,0 antes de estabilizarse en 0.

En una lógica AND-OR de dos niveles correctamente formulada, basada en una expresión de suma de productos, no habrá riesgos estáticos de 0 (pero sí podrían existir riesgos estáticos de 1). Por el contrario, no habrá riesgos estáticos de 1 en una implementación OR-AND de una expresión de producto de sumas (pero sí podrían existir riesgos estáticos de 0).

El método más utilizado para eliminar los riesgos estáticos consiste en añadir lógica redundante (términos de consenso en la expresión lógica).

Ejemplo de riesgo estático

Consideremos un circuito imperfecto que sufre un retardo en los elementos lógicos físicos, es decir, en las puertas AND, etc.

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

F(A,B,do)¯=AB+A¯do{\displaystyle {\overline {f(A,B,C)}}=AB+{\overline {A}}C}

Observando el diagrama inicial, queda claro que, si no hubiera retardos, el circuito funcionaría con normalidad. Sin embargo, no existen dos compuertas idénticas. Debido a esta imperfección, el retardo de la primera compuerta AND será ligeramente diferente al de la otra. Por lo tanto, se produce un error cuando la entrada cambia de 111 a 011, es decir, cuando A cambia de estado.

Ahora que sabemos aproximadamente cómo se produce el peligro, para obtener una imagen más clara y la solución a este problema, recurriríamos al mapa de Karnaugh .

Un teorema demostrado por Huffman [ 2 ] establece que agregar un bucle redundante 'BC' eliminará el riesgo.

La función modificada es:

F(A,B,do)¯=AB+A¯do+Bdo{\displaystyle {\overline {f(A,B,C)}}=AB+{\overline {A}}C+BC}

Ahora podemos ver que, incluso con elementos lógicos imperfectos, nuestro ejemplo no mostrará señales de peligro cuando A cambie de estado. Esta teoría se puede aplicar a cualquier sistema lógico. Actualmente, los programas informáticos se encargan de la mayor parte de este trabajo, pero para ejemplos sencillos es más rápido depurar manualmente. Cuando hay muchas variables de entrada (por ejemplo, 6 o más), resulta bastante difícil visualizar los errores en un mapa de Karnaugh.

riesgos dinámicos

Un riesgo 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 riesgo dinámico es la posibilidad de que una salida cambie más de una vez como resultado de un único cambio de entrada.

Los riesgos dinámicos suelen presentarse en circuitos lógicos complejos con diferentes rutas hacia la salida (desde la entrada). Si cada ruta tiene un retardo distinto, resulta evidente que existe la posibilidad de que los valores de salida varíen y difieran de los valores esperados.

Por ejemplo, un circuito lógico debería cambiar su estado de salida de 1 a 0 , pero en cambio cambia de 1 a 0 , luego a 1 y finalmente se queda en el valor correcto de 0. Esto es un riesgo dinámico.

Por regla general, los riesgos dinámicos son más complejos de resolver, pero cabe señalar que si se han eliminado todos los riesgos estáticos de un circuito, entonces no pueden producirse riesgos dinámicos.

Riesgos 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 fiable consiste en 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 que tengan retardos iguales en cada ruta. [ 3 ]

Otros

Riesgos lógicos combinacionales
En lógica combinacional, existe un riesgo que depende de la distribución de los retardos de propagación de la señal en los circuitos lógicos y del diseño general de la función implementada en un circuito lógico. [ 1 ] : 43
Riesgos funcionales combinados
En la lógica combinacional existen riesgos que pueden detectarse y suprimirse en un nivel superior de programación, mediante el estudio y la modificación de la función lógica de salida. [ 1 ] : 43
Riesgos secuenciales
Es un tipo de cambios de señal indeseables que se encuentran en sistemas en bucle. [ 1 ] : 43

Véase también

Referencias

  1. 1 2 3 4 5 6 Lopes, Jeremy (26-11-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. "Riesgos" . www.ee.surrey.ac.uk . Consultado el 17 de marzo de 2018 .
  • http://www.ee.surrey.ac.uk/Projects/Labview/Sequential/Course/02-Hazards/hazards.htm#FunctionHazards