Portierung meiner Antwort von SO . Das konzentriert sich darauf, warum es unpraktisch ist, absolute Verzögerungen zu synthetisieren
Bei der Synthese von Taktbäumen gleicht das Synthesewerkzeug diese durch Hinzufügen von Verzögerungen aus, sodass alle Knoten die Uhr gleichzeitig empfangen. Es scheint also, dass das Synthesewerkzeug Verzögerungen hinzufügen kann.
Bei der Herstellung von ASICs gibt es jedoch Unterschiede in der Geschwindigkeit. Auf hohem Niveau kann dies als langsam, typisch und schnell angesehen werden. In der Praxis gibt es Hunderte von Variationen dieser Ecken, in denen bestimmte Gerätetypen im Silizium schnell und andere langsam laufen.
Diese Ecken des Siliziums haben auch eine Temperaturbewertung, der schlimmste Fall kann + 140 ° C schnelles Silizium und -40 ° C langsames Silizium sein. Die Variation der Verzögerung durch einen Puffer könnte in diesem Fall von 1 ns bis 30 ns betragen.
Um dies zu Verilog zurückzubringen, wenn #10
es synthetisierbar wäre, würden Sie tatsächlich 155 + -145 erhalten, dh 10 ns bis 300 ns. Wenn Sie auch etwas entworfen haben #20
, das Teil derselben Schnittstelle oder Steuerungsstruktur ist, wird es einen Bereich von 20 ns bis 600 ns haben . Daher ist das Ganze gegen Ihr Design nicht wirklich gültig. Sie erhalten nicht das genaue #10
und #20
das wurden angegeben.
Die Taktbäume sind so konzipiert, dass die maximalen und minimalen Verzögerungen begrenzt werden und alle Knoten im Taktbaum relativ zueinander skaliert werden. Sie erhalten niemals eine so strenge Regel, dass es # 10ns sein muss, da dies in einem kombinatorischen Schaltkreis physikalisch unmöglich zu garantieren ist.