mikrocontroller.net

Forum: FPGA, VHDL & Co. False Path - wie lautet die richtige Anweisung im ucf File


Autor: Simon D. (simon86)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe bis jetzt Timing Constraints nur angewandt um das Timing, der 
von außen kommenden Signale zu spezifizieren.

Mein momentanes Problem (siehe Bild):

Ich habe einen Controller und einen FIFO. Der Conroller wird und muss 
mit 20 MHz getaktet werden, der FIFO mit 250 MHz. Diese beiden Takte 
habe ich mit einer DCM aus 200 MHz generiert (Phase = 0).

Wenn ich das Design synthetisiere und implementiere bekomme ich einen 
Timing Error, dass das Signal über die Leitung die im Bild mit 
almost_full bezeichnet ist, nicht "schnell" genug ist -> siehe Timing 
Report.

Das Design läuft auf dem FPGA einwandfrei und das Timing zwischen dem 
FIFO und Controller ist nicht relevant für die Funktionalität. Deswegen 
möchte ich ein False Path, Multi Cycle Path oder TIG auf diesen Pfad 
setzen... (je nachdem was das Problem löst)

Das FIFO und der Controller sind zum main-Design wiederrum gekapselt - 
also als Modul ausgeführt - kann man trotzdem Timing Constraints 
setzen??

Ich habe entsprechend den Beispielen des "Language Templates" mehrer 
Anweisungen ausprobiert - aber keine funktioniert richtig, es kommt 
immer die Meldung:

NET "almost_full" not found.  Please verify that:
   1. The specified design element actually exists in the original 
design.
   2. The specified object is spelled correctly in the constraint source 
file.

muss man Singalpfade anderst definieren - anscheinend meint ISE dass 
almost_full ein in/output Pin ist?? Kennt jemand eine funktionierende 
Anweisung?

Autor: D. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du musst schauen wie das signal genau heißt (also was die synthese draus 
macht).
Bei Altera wäre das in etwa sowas:

ddr_rx_inst|rx_pll|altpll_component|auto_generated|pll1|clk[0] und sowas 
wird ISE auch machen. Darauf kannst du dich dann im UCF beziehen. Wenn 
du die Namen dann wieder änderst musst dus im UCF auch wieder ändern, 
aber er meckert sich dann bei Bedarf an.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das Signal rausoptimiert bzw. umbenannt wird, hilft manchmal auch 
das Setzen eines Attributs im VHDL-File:
attribute TIG: string; 
attribute TIG of my_signal: signal is "yes"; 
Siehe http://www.xilinx.com/itp/xilinx4/data/docs/xst/virtex4.html

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.