Portage de ma réponse de SO . Ce qui explique pourquoi il est impossible de synthétiser des retards absolus
Lors de la synthèse d'arbres d'horloge, l'outil de synthèse les équilibre en ajoutant des retards afin que tous les nœuds reçoivent l'horloge en même temps, il semblerait donc que l'outil de synthèse ait la capacité d'ajouter des retards.
Cependant, lorsque les ASIC sont fabriqués, la vitesse varie, à un niveau élevé, elle peut être considérée comme lente, typique et rapide. Dans la pratique, il existe des centaines de variations de ces coins où certains types d'appareils dans le silicium fonctionnent rapidement et d'autres ralentissent.
Ces coins du silicium ont également une température nominale, le pire des cas peut être + 140C Silicium rapide et -40C Silicium lent. La variation du retard à travers un tampon dans ce cas pourrait être de 1ns à 30ns.
Pour ramener cela à Verilog s'il #10
était synthétisable, vous obtiendriez en fait 155 + -145, c'est-à-dire 10ns à 300ns, si vous avez également conçu quelque chose avec #20
pour faire partie de la même interface ou structure de contrôle, il va avoir une plage de 20ns à 600ns . Par conséquent, le tout n'est pas vraiment valable par rapport à votre conception. Vous n'obtenez pas l'exact #10
et #20
cela a été spécifié.
Les arborescences d'horloge sont conçues de manière à limiter les retards max et min et à ce que tous les nœuds de l'arborescence évoluent les uns par rapport aux autres. On ne leur donne jamais une règle si stricte qu'elle doit être de # 10ns car cela est physiquement impossible à garantir dans un circuit combinatoire.