Comprendre le timing des circuits numériques : temps de setup, temps de hold, délai de contamination et décalage d’horloge
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.
Articles les plus lus
• Guide des 10 Composants Électroniques les Plus Couramment Utilisés
• PCBs expliqués : un guide simple des circuits imprimés
• Comprendre les bases des dispositifs et circuits électroniques
• Comprendre le timing des circuits numériques : temps de setup, temps de hold, délai de contamination et décalage d’horloge
Continuez à apprendre
Comparaison des PCB 6 couches avec d’autres PCB multicouches : coût, complexité et optimisation
Avec la demande croissante pour des appareils électroniques sophistiqués, le choix des circuits imprimés (PCB) devient crucial. Parmi les différentes options multicouches, les PCB 6 couches sont souvent privilégiés pour leur équilibre entre coût, complexité et performance. Cet article compare les PCB 6 couches avec d’autres options multicouches, propose des stratégies pour optimiser leur conception, examine les tendances futures et considère leur impact environnemental. Coût vs Complexité Coût de fabr......
Choisir les bons composants électroniques pour votre conception électronique : conseils et bonnes pratiques
Un circuit imprimé (PCB) équipé de divers composants électroniques Choisir les bons composants électroniques est crucial pour le succès de toute conception électronique. Que vous conceviez un circuit simple pour un projet personnel ou un système complexe pour une application commerciale, le choix des composants appropriés peut faire toute la différence. Avec la grande variété de composants électroniques disponibles, il peut être difficile de savoir par où commencer. Dans cet article, nous fournirons d......
FR4 vs Rogers : Quel matériau de PCB choisir ?
Traditionnellement, les fabricants produisaient des PCB (cartes de circuits imprimés) avec des matériaux résistants à la chaleur et donc moins coûteux à fabriquer. Avec l’essor des applications à haute fréquence dans l’industrie électronique, le FR4 seul ne suffit plus. Certains équipements, bien que n’étant pas exposés à des températures extrêmes, doivent fonctionner à des fréquences RF (radiofréquences). Pour répondre aux exigences de performance extrême des applications RF, des matériaux spécialisé......
Comparaison des matériaux de substrat PCB : résistance thermique et performance
Les circuits imprimés (PCB) sont un élément essentiel de l’électronique moderne, servant de support à de nombreux appareils, des smartphones aux équipements médicaux. Le choix du matériau de substrat est un facteur crucial dans la conception des PCB, en particulier pour l’impédance, la résistance thermique et la performance globale. Dans cet article, nous comparerons la résistance thermique et les performances de trois matériaux de substrat PCB courants : FR-4, aluminium et céramique, et fournirons de......
PCBs expliqués : un guide simple des circuits imprimés
Les circuits imprimés, ou PCBs (Printed Circuit Boards), sont les éléments essentiels de presque tous les appareils électroniques modernes. Ils jouent un rôle crucial en assurant l’interconnexion électrique entre les composants, le support mécanique permettant de les maintenir en place, ainsi qu’un format compact facilement intégrable dans un produit final. Ils constituent le cœur d’un appareil électronique, responsable à la fois de sa forme et de sa fonction, et ils permettent aux semi-conducteurs av......
Comprendre les bases des dispositifs et circuits électroniques
Dans le domaine des technologies modernes, les dispositifs et circuits électroniques jouent un rôle essentiel dans l’alimentation aussi bien des appareils du quotidien que des machines les plus complexes. Comprendre les bases de ces composants permet d’acquérir une meilleure vision du fonctionnement et de l’interaction des différents systèmes électroniques. Cet article explore les notions fondamentales des dispositifs et circuits électroniques, leurs types, leurs fonctions, ainsi que l’importance de l......