This website requires JavaScript.


La production JLCPCB continue pendant les vacances du Fête du Printemps. Les spécifications spéciales seront traitées après les vacances. Consultez notre planning des vacances >


Bons Plans Installer Maintenant
Expédier à
Blog

Comprendre le timing des circuits numériques : temps de setup, temps de hold, délai de contamination et décalage d’horloge

Publié initialement Nov 28, 2025, mis à jour Dec 24, 2025

8 min

Ceci est le deuxième article de la série sur le délai de propagation dans les circuits numériques. Lors de la conception d’un circuit numérique, deux points principaux doivent être assurés : d’abord la fonctionnalité, ensuite le timing. Nous avons couvert les blocs de base dans un article précédent. En électronique, le temps n’est rien d’autre que les cycles d’horloge. Comme tout est basé sur ces cycles, ils déterminent la fréquence de fonctionnement, la vitesse et bien plus dans un circuit électronique. Nous avons déjà vu des circuits qui ne fonctionnent qu’en synchronisation avec l’horloge, appelés circuits séquentiels. Lors de l’utilisation d’un microcontrôleur, FPGA ou ASIC, il est impératif de respecter les contraintes de timing pour garantir le bon fonctionnement du circuit. Aujourd’hui, nous allons examiner les types de contraintes de timing auxquelles il faut prêter attention. Ce guide couvre les fondamentaux : temps de setup, temps de hold, délai de contamination (min) et décalage d’horloge, et montre comment ils interagissent dans les équations de timing et les conceptions réelles.


Paramètres de timing en conception numérique :


Deux métriques de délai sont importantes pour les blocs combinatoires :

  • Tpd (délai de propagation, max) : le plus long délai possible causé par les éléments du circuit combinatoire, utilisé pour les vérifications de setup.
  • Tcd (délai de contamination, min) : le délai le plus court possible, utilisé pour les vérifications de hold.
  • Période d’horloge (Tclk) : le temps entre deux fronts d’horloge consécutifs utilisés pour un chemin.


Délai de propagation vs délai de contamination :


  • Délai de propagation (Tpd, max) : C’est le pire cas (le plus long) à travers une porte ou un bloc logique. Utilisé pour les vérifications de setup, car il faut s’assurer que les dernières données arrivent encore à temps.





  • Délai de contamination / min (Tcd/min) : C’est le meilleur cas (le plus court) à travers une porte ou un bloc logique. Utilisé pour les vérifications de hold, car il faut tenir compte du moment le plus précoce où un signal modifié peut apparaître sur le flip-flop de capture.


Décalage d’horloge (Clock Skew) :


Différence de temps d’arrivée du signal d’horloge entre le flip-flop source et le flip-flop de destination. Cela peut être causé par la longueur des fils du système reliant l’horloge aux flip-flops A et B. Il y aura un décalage de timing car les signaux ne peuvent pas arriver simultanément sur tous les flip-flops. Les principales sources de skew sont : déséquilibre de l’arbre d’horloge, différences de routage, buffers, choix de synthèse/CTS, horloge locale, et jitter d’insertion PLL/BUF.

  • Skew positif : l’horloge de capture arrive plus tard que l’autre bloc logique.
  • Skew négatif : l’horloge de capture arrive plus tôt que l’autre bloc logique.

Le skew peut être introduit intentionnellement pour améliorer le timing (souvent pour relaxer le setup sur un chemin critique) tout en respectant les contraintes de hold.


Temps de Setup :


Le temps de setup (Tsu) est l’intervalle minimal avant le front actif de l’horloge pendant lequel les données d’entrée d’un flip-flop doivent être stables. Si les données ne sont pas stables avant ce front d’horloge dans l’intervalle spécifié, il y aura violation du temps de setup. Des données arrivant trop tard peuvent amener le flip-flop à capturer une valeur incorrecte.





Vérification du timing : Le temps de setup est généralement violé par des délais de propagation inappropriés. Si le délai de propagation depuis le premier flip-flop est supérieur au front d’horloge suivant, aucune donnée ne sera capturée ou apparaîtra au même moment, ce qui peut provoquer une métastabilité.


Temps de Hold :


Le temps de hold (Thold) est l’intervalle minimal après le front actif de l’horloge pendant lequel les données d’entrée doivent rester stables. Si les données changent trop rapidement après le front de lancement et arrivent au flip-flop de capture avant que son latch interne ait fini de maintenir les données, le flip-flop peut capturer une valeur corrompue.

Vérification du timing : L’arrivée la plus précoce des nouvelles données est donnée par Tcq + Tcd. Elle ne doit pas atteindre le flip-flop de capture avant la fin de l’intervalle de hold.


Chemins de timing dans un circuit numérique :


Un chemin de timing synchrone typique est présenté ci-dessous. Nous examinerons chaque partie une par une :
Front de lancement (Flip-Flop A) → Tcq (clock-to-Q) → logique combinatoire → Tpd/Tcd (propagation/contamination) → Flip-Flop B de capture → vérifications Setup/Hold

  • Événement de lancement : Le flip-flop A produit une nouvelle valeur après son front d’horloge. Cette donnée se propage ensuite à travers la logique combinatoire.


  • Événement de capture : La donnée en sortie du flip-flop A sert d’entrée au flip-flop B, qui capture la valeur au front d’horloge suivant pertinent.

Le lancement et la capture sont les premiers et derniers événements du chemin de timing, mais de nombreuses opérations se déroulent entre les deux.


Équations de timing :


Setup :



Hold :



Où Jclk représente le jitter de l’horloge (ajouter le jitter positif de manière conservatrice dans l’équation de setup et soustraire ou ajouter de manière appropriée pour le hold comme marge de sécurité. Le jitter est considéré comme une réduction de la marge de timing disponible).


Exemple numérique (chemin à cycle unique) :


Données typiques :

  • Tclk = 5,0 ns (période cible)
  • Tskew = +0,10 ns (horloge de capture arrive 0,1 ns plus tard)
  • Tcx (Tcq) = 0,12 ns (clock-to-Q)
  • Tpd = 2,80 ns (délai de propagation combinatoire max)
  • Tsu = 0,08 ns (temps de setup)
  • Tcd = 0,02 ns (délai de contamination/min)
  • Thold = 0,05 ns (requirement de hold du flip-flop)


Vérification du Setup :

Trequise=Tcq + Tpd + Tsu - Tskew = 0.12 + 2.80 + 0.08 - 0.10 = 2.90 ns

Slacksetup​=Tclk - 2.90 = 5.00 - 2.90 = 2.10 ns → PASS (comfortable margin).

Vérification du Hold :

Holdautoriseˊ=Tcq + Tcd - Tskew = 0.12 + 0.02 - 0.10 = 0.04 ns

Slackhold​=0.04 - Thold = 0.04 - 0.05 = -0.01 ns → HOLD VIOLATION by 10 ps.

Le chemin respecte facilement le setup (grande marge), mais un chemin très rapide provoque une violation du hold. Cela est courant dans les conceptions réelles : le setup est confortable tandis que le hold échoue.


Causes courantes de violations et corrections pratiques :


Violations de Setup :

  • Chemin trop long : ajouter un registre/pipeline, réduire la profondeur logique ou restructurer l’algorithme.


  • Coin de processus lent : utiliser des cellules plus rapides, augmenter VDD, améliorer le routage pour réduire Tpd.


Violations de Hold :

  • Chemin trop rapide : ajouter un retard délibéré (buffer/inverseur), utiliser l’insertion de délai minimal ou rallonger le chemin.


  • Chemin multi-cycle : convertir le chemin en multi-cycle si fonctionnellement possible et le marquer dans l’outil STA.


Trucs de conception : skew utile, chemins multi-cycle, retiming


  • Skew utile : introduit intentionnellement pour relaxer le setup sur un chemin critique tout en respectant le hold.


  • Chemins multi-cycle : si autorisé par l’architecture, marquer le chemin comme multi-cycle dans STA avec contraintes appropriées.



Conclusion :


Dans cet article, nous avons détaillé le temps de setup et le temps de hold avec des exemples. Le délai de contamination et le décalage d’horloge sont interconnectés avec les équations de timing. Le setup est gouverné par les délais maximaux, tandis que le hold est gouverné par les délais minimaux. Des astuces de conception et des solutions aux violations courantes ont également été partagées. Pour un circuit numérique, non seulement la fonctionnalité mais aussi le timing sont essentiels. Cette série continuera avec d’autres concepts de conception numérique et de timing. Consultez la section JLCPCB pour approfondir rapidement vos connaissances.



Continuez à apprendre