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 sincrónicos [ cita requerida ] como asincrónicos . [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 alguna forma de retraso causado por elementos lógicos ( puertas NOT , AND , OR , etc.). Esto da como resultado que la lógica no realice su función correctamente. Los tres tipos de peligros más comunes generalmente se denominan peligros estáticos, dinámicos y de función.

Los peligros son un problema temporal, ya que el circuito lógico acabará estableciéndose en la función deseada. Por lo tanto, en los diseños sincrónicos, 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 envíe fuera del sistema, de modo que los peligros no provoquen 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 en el valor correcto. Existen dos tipos de peligros estáticos:

En una lógica AND-OR de dos niveles correctamente formada y basada en una expresión de suma de productos, no habrá peligros de 0 estático (pero puede que sí haya peligros de 1 estático). Por el contrario, no habrá peligros de 1 estático en una implementación OR-AND de una expresión de producto de sumas (pero puede que sí haya peligros de 0 estático).

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

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

El circuito simple realiza la función notando:

De un vistazo al diagrama de partida, es claro que si no se produjeran retrasos, entonces 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 para resolver este problema sería mirar el mapa de Karnaugh . Las dos puertas se muestran con anillos sólidos y el peligro se puede ver debajo del anillo discontinuo. Un teorema demostrado por Huffman [2] nos dice que al agregar un bucle redundante 'BC' esto eliminará el peligro.

Así que 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 informáticos se ocupan de la mayor parte de este trabajo en la actualidad, pero para los ejemplos sencillos 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 una serie de cambios de 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 solo cambio de entrada.

Los peligros dinámicos suelen ocurrir en circuitos lógicos más grandes donde hay diferentes rutas hacia la salida (desde la entrada). Si cada ruta tiene un retraso diferente, entonces rápidamente se hace evidente que existe la posibilidad de que se modifiquen los valores de salida que difieren de la salida requerida/esperada.

Por ejemplo, un circuito lógico está diseñado para cambiar el estado de salida de 1 a 0 , pero en lugar de eso cambia de 1 a 0, luego a 1 y finalmente se queda en el valor correcto 0. Esto es un riesgo 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 no pueden ocurrir peligros dinámicos.

Riesgos funcionales

A diferencia de los peligros estáticos y dinámicos, los peligros funcionales son aquellos provocados 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 retardos iguales en cada ruta. [3]

Otros

Peligros de la lógica combinacional
En la 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 del circuito lógico implementado. [1] : 43 
Peligros funcionales combinatorios
En la lógica combinacional hay peligros 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 
Peligros 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. ^ abcdef Lopes, Jeremy (2018-11-26) [2017]. "Diseño de un circuito integrado no volátil GALS (globalmente asíncrono y 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 libres de 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 .