Was ist eine Zeitbeschränkung für falsche Pfade?

Was genau sind in der FPGA-Welt falsche Pfadbeschränkungen für einen HDL-Compiler? Warum sind sie nützlich?

Dies ist ein digitales Konzept, nicht nur ein FPGA-Konzept.

Antworten (3)

Falsche Pfade sind Timing-Pfade, die im endgültigen Design niemals wirklich angewendet werden. Angenommen, Sie entwerfen einen 4-Bit-Zähler und es stellt sich heraus, dass es einen sehr langsamen Verzögerungspfad gibt, wenn Sie von 12 auf 13 inkrementieren eigentliche Gestaltung. Sie kennzeichnen den langsamen Pfad als falschen Pfad, damit der Compiler keine Zeit aufwendet oder zusätzliche Logik hinzufügt, um den falschen Pfad schneller laufen zu lassen.

Huh, und ich dachte, der falsche Pfad hätte mit der Verwendung von Atmels anstelle von PICs oder so etwas zu tun.
Eine bedeutendere Art von falschem Pfad ist meines Erachtens ein Signal, das sich an der Flanke einer Uhr ändert und an der Flanke einer anderen Uhr abgetastet wird, aber entweder ändert sich das Signal niemals in der Nähe der Zeit, zu der sich die zweite Uhr ändert, oder wenn es ändert nichts wird sich um seinen Wert kümmern. Timing-Analyse-Tools würden wahrscheinlich versagen, es sei denn, man fügte einen doppelten Synchronisierer hinzu, der von der zweiten Uhr gesteuert wird, aber das Hinzufügen eines solchen Synchronisierers könnte das Design vollständig zerstören. Beispielsweise könnte der erste Takt mit 1 MHz und der zweite mit 32 kHz laufen, aber ...
... das Gerät, das das Signal erzeugt, kann es drei 1-MHz-Zyklen ändern, nachdem es eine steigende Flanke am 32-kHz-Takt gesehen hat. Folglich kann garantiert werden, dass das durch den 32-kHz-Takt zwischengespeicherte Signal die Abtast/Halte-Anforderungen des 32-kHz-Zwischenspeichers ohne zusätzliche Synchronisation erfüllt. Wenn die Logik auf der 1-MHz-Seite ihre Daten basierend darauf erzeugt, was die 32-kHz-Seite tut, könnte ein solches Design ermöglichen, dass Informationen, die in einem Zyklus auf der 32-kHz-Seite erzeugt werden, bis zum nächsten Zyklus in beide Richtungen durchsickern. Das Hinzufügen einer doppelten Synchronisation auf der 32-kHz-Seite würde das brechen.

Ein falscher Pfad ist ein Pfad, der zwar im Design vorhanden ist, aber bei der Operation keine Rolle spielt, sodass es nicht erforderlich ist, ihn in die Zeitanalyse einzubeziehen.
Dies kann verschiedene Gründe haben, aber da das Timing-Analyse-Tool normalerweise nicht weiß (obwohl es einige Tools gibt, die sie erkennen können), welche Pfade verwendet werden können oder nicht, müssen Sie es ihm mitteilen. Es ähnelt einem Weg mit mehreren Zyklen, bei dem Sie ihm mitteilen können, dass ein bestimmter Weg mehr als einen Zyklus verwenden darf, um ihn abzuschließen.

Ein Beispiel (für einen falschen Pfad) ist ein Register, das beim Einschalten einmal beschrieben werden kann, dann aber im selben Zustand bleibt.

Ein falscher Pfad ist einfach ein logischer Pfad, den Sie von der Überprüfung ausschließen möchten, um festzustellen, ob er während der Zeitanalyse dem Timing entspricht. Es gibt zwei Gründe, Pfade auszuschließen, erstens, weil der falsche Pfad die Werkzeuge härter arbeiten lässt, um das Timing für dieses Signal einzuhalten, was wiederum legitime Signalpfade beeinträchtigt, die möglicherweise zusätzliche Timing-Fehler verursachen, und weil es dazu führt, dass die Timing-Prüfung Fehler meldet möglicherweise Ablenkung des Designers von legitimen Timing-Fehlern.

Falsche Pfade werden durch logische Pfade zwischen unabhängigen asynchronen Takten oder Takten derselben Frequenz, aber mit unbekannter Phasenbeziehung oder einem Pfad verursacht, der während des normalen Schaltungsbetriebs niemals aktiviert werden würde. Wenn Sie dem Tool sagen, dass es einen Pfad ignorieren soll, funktioniert das Timing nicht, nur dass das Timing nicht überprüft wird. Es obliegt dem Konstrukteur, manuell sicherzustellen, dass die richtige Synchronisationslogik für diese ignorierten Signalpfade verwendet wird.