This website requires JavaScript.
Cupones Descargar la aplicación
Envie a
Blog

Comprendiendo el timing de los circuitos digitales: Setup, Hold, Retardo de contaminación y desfase del reloj

Publicado originalmente Mar 31, 2026, Actualizado Mar 31, 2026

8 min

Tabla de contenidos
  • Parámetros de temporización (timing) en diseño digital:
  • Retardo de propagación vs Retardo de contaminación:
  • Desfase del reloj:
  • Tiempo de setup:
  • Tiempo de Hold:
  • Rutas de timing en un circuito digital:
  • Ecuaciones de Timing:
  • Ejemplo numérico resuelto (Ruta de ciclo único):
  • Causas comunes de violaciones y soluciones prácticas
  • Trucos de diseño (Desfase útil, rutas multi-ciclo, Retiming)
  • Conclusión

Este es el segundo artículo de la serie sobre retardo de propagación en circuitos digitales. Al diseñar un circuito digital, hay dos aspectos principales que debemos garantizar: la funcionalidad y el tiempo (timing). En un artículo anterior hemos cubierto los bloques básicos. En electrónica, el tiempo está determinado por los ciclos de reloj. Todo se basa en estos ciclos, lo que define la frecuencia de funcionamiento, la velocidad y otros parámetros del circuito. Existen circuitos que solo funcionan sincronizados con el reloj, conocidos como circuitos secuenciales. Al trabajar con microcontroladores, FPGA o ASIC, es imprescindible cumplir las restricciones de temporización para garantizar el funcionamiento correcto del circuito. En este artículo veremos los distintos tipos de restricciones de temporización que deben considerarse. Esta guía cubre los conceptos fundamentales: tiempo de setup, tiempo de hold, retardo de contaminación (mínimo) y skew de reloj, así como su interacción en ecuaciones de temporización y diseños reales.

Parámetros de temporización (timing) en diseño digital:

Existen dos métricas de retardo importantes en bloques combinacionales:

    • Tpd (Retardo de propagación, máx): Es el mayor retardo posible causado por los elementos de un circuito combinacional, y se utiliza en las comprobaciones de setup.
    • Tcd (Retardo de contaminación, mín): Es el menor retardo posible, y se utiliza en las comprobaciones de hold.
    • Periodo de reloj (Tclk): El tiempo entre flancos consecutivos del reloj utilizados para una ruta.

Retardo de propagación vs Retardo de contaminación:

  • Retardo de propagación (Tpd, máximo): Es el retardo máximo (peor caso) a través de una puerta/bloque lógico. Se utiliza para las comprobaciones de setup, ya que debemos asegurarnos de que los datos más recientes aún cumplen el setup.

  • Retardo de contaminación/Min (Tcd/mín): Es el retardo mínimo (mejor caso) a través de una puerta/bloque lógico. Se utiliza para las comprobaciones de hold, ya que debemos considerar el momento más temprano en que una señal cambiada puede aparecer en el flip-flop de captura.

Desfase del reloj:

Es la diferencia de tiempo en la llegada del reloj entre el flip-flop origen y el flip-flop destino. Puede ser causada por cables largos del sistema desde el reloj hasta los flip-flops A y B. Habrá un desajuste en el tiempo porque las señales no pueden llegar al mismo tiempo a todos los flip-flops. Las principales fuentes de desfase son el desequilibrio del árbol de reloj, diferencias de enrutamiento, buffers, elecciones de síntesis/CTS, gating local de reloj y jitter por inserción de PLL/BUF.

  • Desfase Positivo: El reloj de captura llega más tarde que el otro bloque lógico.
  • Desfase Negativo:El reloj de captura llega antes en comparación con el otro bloque lógico.

Intencionadamente, se introduce el desfase para mejorar el timing (comúnmente para relajar el setup en una ruta crítica) mientras se asegura que se cumplen las restricciones de hold.

Tiempo de setup:

El tiempo de setup (Tsu) es el intervalo mínimo antes del flanco activo del reloj durante el cual los datos de entrada de un flip-flop deben permanecer estables. Si los datos no son estables antes de ese flanco en el intervalo especificado, se producirán violaciones de setup. Si los datos llegan demasiado tarde, el flip-flop de captura puede registrar un valor incorrecto.

Comprobación de Timing: El tiempo de Setup se viola principalmente por retardos de propagación inapropiados. Si el retardo de propagación desde el primer flip-flop es mayor que el siguiente flanco de reloj, no habrá captura de datos, y los datos aparecerán después del reloj o quizá al mismo tiempo, lo que puede provocar metastabilidad en el flip-flop.

Tiempo de Hold:

El tiempo de hold (Thold) es el intervalo mínimo después del flanco activo del reloj durante el cual los datos de entrada deben permanecer estables. Si los datos cambian demasiado rápido después del flanco de lanzamiento y llegan al flip-flop de captura antes de que su latch interno haya terminado de mantenerlos, el flip-flop puede capturar un valor corrupto.

Comprobación de Timing: La llegada más temprana posible de nuevos datos viene dada por Tcq + Tcd. Esto no debe alcanzar el flip-flop de captura antes de que este haya completado su intervalo de hold.

Rutas de timing en un circuito digital:

Una ruta de timing sincrónica típica se muestra a continuación. Analizaremos cada parte una por una:

Flanco de Lanzamiento (Flip-Flop A) → Tcq (clock-to-Q) → Lógica Combinacional → Tpd/Tcd (propagación/contaminación) → Flip-Flop de Captura B → Comprobaciones de Setup/Hold

  • Evento de lanzamiento: El flip-flop A genera un nuevo valor de datos tras su evento de reloj. Ahora, la salida de este flip-flop queda fijada a ese valor particular y se propaga a través de la lógica combinacional.
  • Evento de captura: Los datos provenientes de la salida del flip-flop A sirven como entrada del flip-flop B, que los muestreará en el siguiente flanco de reloj relevante.

El lanzamiento y la captura son los primeros y últimos eventos en la ruta de timing, pero entre ellos ocurren muchas cosas que se explican en la siguiente sección.

Ecuaciones de Timing:

Setup:

Hold:

Donde Jclk es el jitter del reloj (añada el jitter positivo de forma conservadora a la ecuación de setup y reste o sume según corresponda al hold como margen de seguridad. El jitter se trata como una reducción del margen de timing disponible).

Ejemplo numérico resuelto (Ruta de ciclo único):

Datos (números típicos):

  • Tclk = 5,0 ns (periodo objetivo)
  • Tskew = +0,10 ns (el reloj de captura llega 0,1 ns más tarde)
  • Tcx (Tcq) = 0,12 ns (clock-to-Q)
  • Tpd = 2,80 ns (propagación combinacional máxima)
  • Tsu = 0,08 ns (tiempo de setup)
  • Tcd = 0,02 ns (retardo mínimo de contaminación)
  • Thold = 0,05 ns (requisito de hold del flip-flop)

Comprobación de Setup:

Periodo requerido: Tcq + Tpd + Tsu - Tskew = 0,12 + 2,80 + 0,08 - 0,10 = 2,90 ns

Slack_setup = Tclk - 2,90 = 5,00 - 2,90 = 2,10 ns → APROBADO (margen cómodo).

Comprobación de Hold:

Hold permitido = Tcq + Tcd - Tskew = 0,12 + 0,02 - 0,10 = 0,04 ns

Slack_hold = 0,04 - Thold = 0,04 - 0,05 = -0,01 ns → VIOLACIÓN DE HOLD de 10 ps.

La ruta cumple fácilmente el setup (gran slack), pero una ruta muy rápida provoca una violación de hold. Esto es común en diseños reales: el setup es cómodo mientras que el hold falla.

Causas comunes de violaciones y soluciones prácticas

Violaciones de Setup (soluciones típicas):

  • Ruta demasiado larga: Para solucionar este problema, intente insertar un pipeline/registro, reducir la profundidad lógica o reestructurar el algoritmo.
  • Esquina de proceso lenta: Para mejorar, considere usar celdas de biblioteca más rápidas (mayor fuerza de conducción), aumentar VDD y optimizar el enrutamiento para reducir Tpd.

Violaciones de Hold (soluciones típicas):

  • Ruta demasiado rápida: Debe agregar un retardo deliberado (colocar buffer/inversor), usar inserción de retardo mínimo en el place-and-route o enrutar la ruta más largo.
  • Ruta de múltiples ciclos: Convierta la ruta específica a multi-ciclo si es funcionalmente permitido (marque de manera segura las rutas multi-ciclo en la herramienta STA).

Trucos de diseño (Desfase útil, rutas multi-ciclo, Retiming)

  • Desfase útil: En este caso, el desfase se introduce deliberadamente para relajar el setup en una ruta crítica, asegurando que el hold se mantenga seguro. Es una técnica avanzada utilizada tras un análisis cuidadoso.
  • Rutas multi-ciclo: Si una ruta está arquitectónicamente permitida a tomar múltiples ciclos, márquela como multi-ciclo en STA (análisis estático de timing). Debemos establecer restricciones apropiadas en lugar de forzar timing de un solo ciclo.

Conclusión

En este artículo, hemos analizado el tiempo de setup y el tiempo de hold con mayor detalle y con ejemplos. El retardo de contaminación y el desfase del reloj están interrelacionados con las ecuaciones de timing. El setup se rige por los retardos de peor caso (máximos), mientras que el hold se rige por los retardos de mejor caso (mínimos). También se comparten algunos trucos de diseño junto con violaciones comunes y sus soluciones. En lo que respecta al circuito digital, no solo la funcionalidad, sino también el timing son igualmente importantes. Esta serie continuará con más conceptos relacionados con el diseño digital y el timing en el futuro. Visite la sección de JLCPCB para adquirir rápidamente este conocimiento.

Siga aprendiendo