Hallo zusammen
Nach der erfolgreichen Kompilation meines VHDL-Projektes erscheint im
Timing Analyzer folgene Meldung
(rot)" Total number of failed paths "
In der letzten Spalte der Tabelle steht (rot) 4,
Meine Frage:
Woran liegt das? und in welche Richtung muss ich gehen, um diese
Felhermeldung zu beheben?
Vielen Dank im voraus
> Woran liegt das? und in welche Richtung muss ich gehen, um diese> Felhermeldung zu beheben?
Rückwärts.
Das Problem ist, dass die Logik zwischen zwei Flipflops länger braucht
als sie (durch den Takt der FFs) Zeit hat.
Entweder die Taktfrequenz deines Designs verringern oder dir den
fehlgeschlagenen Pfad genau anschauen und da entweder Logik rausnehmen
oder noch ein paar FFs zusätzlich einbauen.
erstmal Danke für die antwort
wie meinst du, zusätzliche FFs einbauen? ; logisch klingt FFs
rausnehmen;
würde sich dadurch nicht die Delay -Zeit vergrößern?
Dann siehst du, dass von FF bis zum FF nur noch etwa die Hälfte der
Kombinatorik und Verdrahtungs-Laufzeit anfällt --> dein Design ist
schneller geworden.
Allerdings hast du dadurch einen Takt Latency (Verzögerung), du bist
also nicht schneller fertig!!!
Guten Morgen,
Wahnsinn, dass nenn ich mal eine Erklärung. So versteht man was auf
anhieb.
Ich werde das gleich umsetzen,
eine Verzögerung auf dieser Leitung kann ich vernachlässigen.
Habe noch drei Fragen:
1.) Bedeutet die Fehlermeldung "failed paths" (rot) im Timing Analyzer
das diese Verbindungen nicht gesetzt wurden? Oder vielmehr
gesetzt werden, sobald das *.sof file auf den FPGA überspielt wird?
2.) Wie kann ich im Assignment Editor im Quartus für Verbindungen oder
Pins einstellen, dass die Verzögerungen durch langes Routing
vernachlässigbar sind. also: Leitung ziehen, Länge ist egal
3.) Sind für eine Synchronisation von Signalen zwischen zwei Taktdomains
2 FF nötig oder ist das auch mit weniger machbar? (oder auf einen
anderen Weg)
Danke für die Antwort im Voraus
1) Das bedeutet, dass das Signal im FPGA unter den worst-case
Bedingungen zu langsam ist. Wenn es sich da nur um ganz wenig handelt,
kann es durchaus sein dass dein Design bei Raumtemperatur noch geht,
aber bei 50° nicht mehr. Oder bei kleinen Spannungsschwankungen aufhört
zu funktionieren. Die Pfade sind schon alle da, nur eben zu langsam. Der
Timing Analyser läuft ja auch erst übers Design wenn es schon fertig ist
und überprüft das nochmal.
2) Wenn du nicht getaktete Logik hast geht das von selber. Sobald du
aber getaktete FFs drin hast, muss das Signal rechtzeitig zum Takt am
nächsten FF sein. Da hilft nur Design anpassen.
3) 2FFs ist die Standard-Lösung.
Im Allgemeinen bleibt zu sagen, dass Probleme mit dem Takt sehr
schwierig zu debuggen sein können. Die (nicht delay-annotierte)
Simulation geht, der FPGA geht manchmal oder nicht. Wer da irgendwelche
seltsamen Sachen einbaut sollte entweder sehr genau wissen was er tut
oder wird früher oder später in Probleme laufen
ja das sind alles getaktete FFs.
>> .... Da hilft nur Design anpassen.>> 3) 2FFs ist die Standard-Lösung.>
Setze in der ersten Taktdomain ein Signal; Ich benutze dazu ein FF in
einem Prozess. (also Standart)
In der zweiten Taktdomain synchronisiere ich das Signal mittels 2 FFs
und setze damit wieder ein signal.
Wie soll ich das noch anpassen?
> 2.) Wie kann ich im Assignment Editor im Quartus für Verbindungen oder> Pins einstellen, dass die Verzögerungen durch langes Routing> vernachlässigbar sind. also: Leitung ziehen, Länge ist egal
Das Stichwort hier heißt Timing Constraints. Auf welchem Weg du das
bei Altera eingibst, weiß ich nicht, aber bei Xilinx gibt es eine
User-Constraints Datei, wo z.B. auch die Pinzuordnung stattfindet. Dort
kann man dan Pfade angeben, für die das Timing uninteressant ist (z.B.
Config-Daten, die sich nicht jeden Takt ändern).
Hallo nochmal
> Das Stichwort hier heißt Timing Constraints. Auf welchem Weg du das> bei Altera eingibst, weiß ich nicht, aber bei Xilinx gibt es eine> User-Constraints Datei, wo z.B. auch die Pinzuordnung stattfindet. Dort> kann man dan Pfade angeben, für die das Timing uninteressant ist (z.B.> Config-Daten, die sich nicht jeden Takt ändern).
kann mir jemand sagen wo ich diese Timing Constraints im Quartus
finde?
habe bis eben gesucht, aber nicht wirklich was gefunden.
> 2.) Wie kann ich im Assignment Editor im Quartus für Verbindungen oder> Pins einstellen, dass die Verzögerungen durch langes Routing> vernachlässigbar sind. also: Leitung ziehen, Länge ist egal
Wie stelle ich dies ( 2.) ) unter den Timing Constraints ein?
vielen Dank im voraus
Eine eigene Frage?
Dieser Thread ist über 18 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.