Forum: FPGA, VHDL & Co. Timing Constraints - asynchroner Fifo Xilinx ISE 13.4


von Hochpass (Gast)


Lesenswert?

Auszug aus dem Timing Report:
1
Paths for end point channel_3/U_3/U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/gsync_stage[1].wr_stg_inst/Q_0 (SLICE_X51Y69.BY), 1 path 
2
 -------------------------------------------------------------------------------- 
3
 Slack (setup path):     -0.802ns (requirement - (data path - clock path skew + uncertainty)) 
4
   Source:               channel_3/U_3/U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_gc_0 (FF) 
5
   Destination:          channel_3/U_3/U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/gsync_stage[1].wr_stg_inst/Q_0 (FF) 
6
   Requirement:          1.250ns 
7
   Data Path Delay:      1.672ns (Levels of Logic = 0)(Component delays alone exceeds constraint) 
8
   Clock Path Skew:      -0.380ns (1.817 - 2.197) 
9
   Source Clock:         CLK_200_int rising at 5.000ns 
10
   Destination Clock:    CLKFX_int rising at 6.250ns 
11
   Clock Uncertainty:    0.000ns 
12
  
13
   Maximum Data Path: channel_3/U_3/U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_gc_0 to channel_3/U_3/U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/gsync_stage[1].wr_stg_inst/Q_0 
14
     Location             Delay type         Delay(ns)  Physical Resource 
15
                                                        Logical Resource(s) 
16
     -------------------------------------------------  ------------------- 
17
     SLICE_X50Y68.YQ      Tcko                  0.676   channel_3/U_3/U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_q<0><1> 
18
                                                        channel_3/U_3/U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_gc_0 
19
     SLICE_X51Y69.BY      net (fanout=1)        0.682   channel_3/U_3/U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_q<0><0> 
20
     SLICE_X51Y69.CLK     Tdick                 0.314   channel_3/U_3/U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_q<1><1> 
21
                                                        channel_3/U_3/U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/gsync_stage[1].wr_stg_inst/Q_0 
22
     -------------------------------------------------  ---------------------------
Die Folgenden constraints gehen nicht:
NET *rd_pntr_gc_<*> TIG;
NET "*rd_pntr_gc_<*>" TIG;
Fehlermeldung:
1
ERROR:ConstraintSystem:58 - Constraint <NET *rd_pntr_gc_<*> TIG;>
2
   [ucf/tasd_top.ucf(318)]: NET "*rd_pntr_gc_<*>" does not match any design
3
   objects.

Hat sich in der ISE 13.4 was zum Schlechten verbessert? Hat noch jemand 
eine Idee?

Ich sag schon mal Danke!

von Martin K. (Gast)


Lesenswert?

Ich bin nicht 100% sicher, ob ich das komplett verstehe, weil ich den 
"*"-Konstrukt nicht verwende, ich meine aber, dass TIG noch ein zweites 
Signal benötigt.

Dann sehe ich, dass rd_pntr_gc_0 gar kein vektor ist, wo der zweite 
Stern greifen könnte.

Was es häufig gibt, ist ein mismatch zwischen UCF und Kommandogenerator 
in ISE. Die haben ein Grossschrift-Kleinschrift-Problem.

von Duke Scarring (Gast)


Lesenswert?

Bei mir sehen die timing ignore Sachen auch etwas anders aus:
1
NET "clk_driver_b.dcm_sp_i0_clkfx" TNM_NET = "clkfx";
2
NET "clk_driver_b.dcm_sp_i0_clkdv" TNM_NET = "clkdv";
3
TIMESPEC "TS_clkfx_clkdv" = FROM "clkfx" to "clkdv" TIG;

Duke

von Christian R. (supachris)


Lesenswert?

Der braucht wahrscheinlich den richtigen Pfad der FIFO Instanz. So 
stehts ja auch im User Guide:
1
NET fifoinstance/grf.rf/gcx.clkx/wr_pntr_gc<0> TIG;
2
NET fifoinstance/grf.rf/gcx.clkx/wr_pntr_gc<1> TIG;
3
...
4
NET fifoinstance/grf.rf/gcx.clkx/wr_pntr_gc<9> TIG;
5
NET fifoinstance/grf.rf/gcx.clkx/rd_pntr_gc<0> TIG;
6
NET fifoinstance/grf.rf/gcx.clkx/rd_pntr_gc<1> TIG;
7
...
8
NET fifoinstance/grf.rf/gcx.clkx/rd_pntr_gc<9> TIG;

von Hochpass (Gast)


Lesenswert?

Vor dem Update auf die neueste Version in Xilinx ISE 13.4 also 
xilinx.com:ip:fifo_generator:8.4
hat folgendes getan:
1
NET "*/grf.rf/gcx.clkx/wr_pntr_gc<*>" TIG;
2
NET "*/grf.rf/gcx.clkx/rd_pntr_gc<*>" TIG;

Ich glaub ich schmeiß den Mist wieder raus und hol mir das Backup der 
vom alten core.

von Christian R. (supachris)


Lesenswert?

Hm, im Fifo User Guide der 8.3 steht das drin:
1
NET <fifo_instance>/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/wr_pntr_gc<0> TIG;
2
3
NET <fifo_instance>/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_gc<0> TIG;

Offenbar ist da jetzt die interne Bezeichnung anders.

von Sigi (Gast)


Lesenswert?

Sieht's besser aus, wenn man ein Slash verwendet:

NET "*\rd_pntr_gc_<*>" TIG;

(ISE sucht glaube ich manchmal nicht "gut" genug).

von Hochpass (Gast)


Lesenswert?

Tut leider auch nicht. Ich gehe langsam davon aus, dass der fifo 
generator 8.4 nen hau hat.

Da geht ja nicht mal die Doku. :-(

von Hochpass (Gast)


Angehängte Dateien:

Lesenswert?

so kein Wunder

Es gibt kein Netz mit rd_pntr_gc sondern nur rd_pntr_gc_xor....

Und wenn man das Xor netz über den timing constraints editor hinzufügt 
werden trotzdem fehlermeldungen geschmissen

-> ISE: LMAA

Ich gehe zurück auf den alten core und fertig

Danke für die Anteilnahme

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.