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


von Simon D. (simon86)


Angehängte Dateien:

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?

von D. I. (Gast)


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.

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


Lesenswert?

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

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.