Vivado Timing Verletzung

Gast #4607395
Lesenswert?

Hallo Leute,

ich habe ein problem mit einer Timing Verletzung in einem Vivado (Zynq) 
Projekt. Ich bekomme eine Kritische Warnung, dass die Timing 
Requirements nicht erfüllt werden können. Siehe Bild: Message.
In der Timing Summery habe ich gesehen das anscheinend der Pfad von 
einem Reset zum Anderen zulange ist. Wenn ich das richtig verstanden 
habe -> Bild: timing_verletzung.
Liege ich mit meiner Vermutung richtig? Wie kann ich dieses Problem 
lösen?

Danke viemals
Angehängte Dateien:
#4607405
Lesenswert?

Schau Dir den Pfad mal im Detail an (Doppelclick auf die Linie mit dem 
Pfad).

Weil Dein Signal ...aresetn... heisst würde ich mal schauen, was Du wie 
ein synchronisierst und wie Du allfällige Clockdomain-Border-Crossings 
angehst, da liegt sicher irgendwo ein Hund begraben.

Dein "Information-Hiding-Konzept" (ausweisseln der Pfade) trägt etwas 
zur Trübung der Kristallkugel bei.
Moderator (Firma: Titel) Persönliche Seite #4607422
Lesenswert?

Paul schrieb:
> timing_verletzung.JPG
Ein JPEG ist ein ganz arg schlechtes Format für einen Screenshot. 
Stichwort: Kompressionsartefakte...

> dass die Timing Requirements nicht erfüllt werden können.
Welche Anforderungen hast du gestellt?

> Wie kann ich dieses Problem lösen?
Nimm keinen asynchronen Reset.
Synchronisiere den asynchronen Reset auf die jeweilige Taktdomäne ein.
Gast #4607448
Lesenswert?

Hallo
Danke erstmal für eure Hilfe
Ich habe mal ein Bild von der Pfadbeschreibung angehängt (Doppelklick 
auf den Pfad). Leider helfen mir diese Infos noch nicht weiter. Da bin 
ich noch nicht so erfahren.

Anhand vom VHDL Code sehe ich das das ext_reset Signal ein synchroner 
Reset ist:
1
  sync_ext_reset: process(clk_160mhz)
2
  begin
3
    if rising_edge(clk_160mhz) then
4
      ext_reset      <= ps_reset;
5
      ext_reset_sync <= ext_reset;
6
    end if;
7
  end process;

der ps_reset ist der aresetn. Der aresetn wird von einem PS Reset 
Generator erzeugt.
Welche Anforderungen ich gestellt habe weiss ich leider nicht. 
Vielleicht ist die ganze Sache ja auch kein Problem. Dachte nur wenn 
Vivado sagt das die Timing requirements fehlschlagen, kann es so nicht 
funktionieren...

mfg

Paul
Angehängte Dateien:
#4607761
Lesenswert?

Was Dir der detaillierte Pfad sagt:

Source Clock      : clk_fpga_0
Destination Clock : clkout _0

D.h. in Deinem VHDL-Code-Schnipsel ist noch nicht die ganze Wahrheit 
drin, weil dein PS_reset ja aus einer anderen Clock-Domain kommt.

Du solltest also den Eingang Deiner Synchronizer-Kette als "false-path" 
definieren (das darfst Du, weil Du mit der Synchronizer-Kette ja 
sicherstellst, dass es da keine Probleme gibt).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren