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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.