Forum: FPGA, VHDL & Co. failed paths im Timing analyzer


von Dete K. (dete)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

> 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.

von Dete K. (dete)


Lesenswert?

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?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Du hast derzeit dieses Problem:
Nehmen wir einen Takt von 10ns an.
1
            (Kombinatorik  )
2
[FF]--------(Durchlaufzeit )---------[FF]
3
            (  z.B. 13ns    )

Das sieht im FPGA dann so aus:
1
[  ]                                                                                 [  ]
2
[FF]-----( LUT )-----( LUT )-----( LUT )--------( LUT )-----( LUT )-----( LUT )------[FF]
3
     1ns   1ns   1ns   1ns   1ns   1ns    1ns     1ns   1ns   1ns   1ns   1ns    1ns      
4
                                     13ns

Wenn du jetzt das machst:
1
[  ]                                      [  ]                                       [  ]
2
[FF]-----( LUT )-----( LUT )-----( LUT )--[FF]--( LUT )-----( LUT )-----( LUT )------[FF]
3
     1ns   1ns   1ns   1ns   1ns   1ns 1ns   1ns  1ns   1ns   1ns   1ns   1ns    1ns      
4
                    7ns                                 7ns
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!!!

von Dete K. (dete)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

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

von Dete K. (dete)


Lesenswert?

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?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> 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).

von Dete K. (dete)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.