2. TIMING HAZARDS
El retardo de propagación de un sistema es el tiempo requerido para generar a la salida un estado estable.
Los TimingHazards son las fluctuaciones que ocurren durante el periodo de transición;en un sistema digital
muchos caminos pueden conducir al mismo puerto de salida, y dado que el retraso de cada ruta es
diferente, las señales pueden propagarse al puerto de salida en diferentes tiempos. Por esta razón antes de
que el puerto de salida produzca un valor de estado estacionario (estable)debió a ver pasado por
fluctuaciones (incertidumbres) varias veces. Dichas fluctuaciones son uno o más impulsos cortos no
deseados, a los cuales se los conoce como GLITCHES.Se puede decir que un circuito tiene
TimmingHazard(problemas de tiempo) si puede producir “glitches” en su señal de salida resultante.
GLITCH
Son impulsos cortos no deseados en la salida de un sistema digital antes de llegar a la estabilidad de la
salida deseada, producidos por los retardos que genera el sistema debido a la capacidad de respuesta que
presenta sus elementos en el tiempo.
2
3. ¿CÓMO SE LLAMAN LOS TIEMPOS INVOLUCRADOS?
STATIC HAZARDS
Es una condición en la que la salida de un circuito produce un glitch cuando debe permanecer en un valor
constante. Existe la posibilidad de tener statichazards de 2 tipos:
Static 1 Hazards
Se produce cuando la salida debiendo mantenerse en un estado lógico 1 constante, el retardo de
las compuertas causa un breve fallo (glitch) a 0L de la señal de salida.
Statis 0 Hazards
Se produce cuando la salida debiendo mantenerse en un estado lógico 0 constante, el retardo de
las compuertas causa un breve fallo (glitch) a 1L de la señal de salida.
Con frecuencia estos statichazardsocurren cuando un señal
y su complemento momentáneamente asumen el mismo
valor.
DYNAMIC HAZARDS
Es una condición en la que la salida de un circuito tiene la posibilidad de que su salida cambie más de una
vez como el resultado de una única transición de entrada.
Generalmente se produce los DynamicHazards cuando una señal asume múltiples valores, o también puede
ocurrir cuando hay varios caminos con diferentes retardos.
3
4. Caso en el que una señal tiene múltiples valores
¿QUÉ SE HACE PARA SOLUCIONAR EL PROBLEMA?
Existealgunas formas de solucionar los TIMING HAZARDS, entre ellas tenemos:
Diseñar un circuito Hazard-free.
Su principio se basa en agregar al circuito un término producto redundante para eliminar el
TimingHazards, proveniente dicho término de la observación del mapa de Karnaugh . Aunque este
método nos propone un circuito libre de glitches, este enfoque se tornaría problemático si el
diseño es luego procesado por el software de síntesis, y esto hay que considerarlo en la
implementación.
Retraso del sistema mediante compuertas en cascada.
4
5. Un viejo truco de diseño sensible a los retrasos, de uso común, es el uso de puertas en cascada para
generarun retraso.
El propósito de este circuito es generar un pulso de corta duración cuando la entrada a cambiado
de ‘0’ a ‘1’. El inversor introduce un pequeño retraso y causa mometanemente un pulso de '1L',
como se muestra en el diagrama de temporización. Este circuito sólo tiene sentido si tenemos en
cuenta su comportamiento transitorio.
Podemos observar su implantación en código VHDL, expresado a continuación:
Se plantea el siguiente circuito:
sh<= (a and (not b)) or (b and c);
Para añadir a este circuito un retraso y eliminar elTimingHazards mediante lo propúesto anterior
mente solamente se tendrá que crear una señal que ejecuta la siguiente acción:
pulse<= a and (not a);
Esperar hasta que la señal se estabilice.
El retraso es uno de los elementos más importantes de la simulación, puesto que el comportamiento
de un circuito puede cambiar dependiendo del cambio de las diferentes señales. Cuando se realiza
una asignación se produce de forma inmediata, puesto que no se ha especificado ningún retraso.
Este comportamiento puede ser alterado mediante la opción, AFTER cuando se asigna un valor a una
señal. Su sintaxis corresponde la siguiente línea:
Señal<= valor AFTER tiempo;(código VHDL)
Donde tiempo es un valor de tiempo indicado en us, ns, ms, etc.
5