Chargement…
Chargement…
Comprendre le setup time, le hold time, le chemin critique et le calcul de slack en FPGA.
Un résultat correct doit aussi arriver au bon moment. La simulation vérifie les valeurs ; l'analyse statique de timing (STA) vérifie les délais des chemins à partir des horloges, des contraintes d'entrée et de sortie, et des exceptions justifiées.
Le setup impose une donnée stable pendant une durée minimale avant le front de capture. Un changement trop proche du front peut entraîner une capture incorrecte ou une métastabilité. La STA examine donc l'arrivée la plus tardive, avec le délai maximal du chemin.
Le hold impose la stabilité pendant une durée minimale après le front. Si la nouvelle donnée arrive trop tôt, elle peut perturber la valeur capturée. La STA examine ici l'arrivée la plus précoce, avec le délai minimal.
Une violation de hold demande souvent d'ajouter du délai sur le chemin. Baisser la fréquence ne la résout généralement pas, car le problème se situe autour du même front de capture.
Le slack indique la marge restante, après prise en compte des délais d'horloge, des exigences setup ou hold et des incertitudes :
| Contrôle | Calcul de la marge |
|---|---|
| Setup | Temps requis − arrivée maximale de la donnée |
| Hold | Arrivée minimale de la donnée − temps requis |
Un slack positif respecte la contrainte ; négatif, il signale une violation. Zéro correspond exactement à la limite.
Le schéma montre un manque de 6 ns en setup et une marge de 1 ns en hold. Pour améliorer le setup, réduis le chemin combinatoire, ajoute un étage de pipeline ou ajuste la fréquence visée.
Après placement et routage, le rapport utilise les délais des ressources et des connexions implémentées :
| Indicateur | Ce qu'il résume |
|---|---|
| WNS | Pire marge de setup |
| WHS | Pire marge de hold |
| TNS | Somme des marges négatives de setup |
| THS | Somme des marges négatives de hold |
Examine les pires chemins : registres de départ et d'arrivée, profondeur logique et part du routage. Corrige la cause, puis relis les marges.
Vérifie également les avertissements et les chemins non contraints. Un rapport sans violation ne prouve rien sur un chemin absent de l'analyse. Une exception doit refléter le fonctionnement réel ; set_false_path ne sert pas à cacher un chemin critique.
Exclure de la STA les chemins entre deux horloges asynchrones ne remplace pas un synchroniseur. Vérifie aussi le circuit qui fait passer les signaux d'un domaine d'horloge à l'autre. Utilise une chaîne de synchronisation si le signal s'y prête, ou un handshake ou une FIFO asynchrone pour des transferts plus complexes. Un rapport de timing sans violation ne suffit pas à garantir la fiabilité de cette traversée.
Dans Vivado, utilise report_cdc (AMD UG835) pour examiner les structures de traversée. Le guide AMD UG949 sur les CDC explique quels circuits employer. Pour les groupes d'horloges asynchrones, consulte UG903. Avec Quartus, l'analyse des chaînes de synchronisation est décrite dans le guide Altera sur les rapports de métastabilité et MTBF.
Le pipeline AXI4-Stream multi-horloge fait passer un flux entre 100 MHz et 150 MHz avec un Clock Converter et une FIFO. Vérifie les interfaces, les horloges et les resets avec le validateur du schéma. Ce contrôle ne mesure ni les marges STA ni la fiabilité physique de la traversée ; ces points demandent les rapports d’implémentation et de CDC décrits ci-dessus.
📝 Tester mes connaissances - Quiz du chapitre