Forum: FPGA, VHDL & Co. Clock dedicated Route - Pinalternativen rausfinden


von D. S. (des)


Lesenswert?

Hallo zusammen,

ich habe in meinem Design einen Clock Pin anscheinend nicht ideal 
platziert. Das gab einen Error, der durch folgende Anweisung zu einem 
Warnung wurde:
1
NET v_in_clk   CLOCK_DEDICATED_ROUTE = FALSE;

Die Warnung dazu:
1
Place:1109 - A clock IOB / BUFGMUX clock component pair have been found
2
 that are not placed at an optimal clock IOB / BUFGMUX site pair. The
3
 clock IOB component <v_in_clk> is placed at site <T18>. The corresponding
4
 BUFG component <v_in_clk_BUFGP/BUFG> is placed at site <BUFGMUX_X2Y10>.
5
 There is only a select set of IOBs that can use the fast path to the
6
 Clocker buffer, and they are not being used. You may want to analyze why
7
 this problem exists and correct it. This is normally an ERROR but the
8
 CLOCK_DEDICATED_ROUTE constraint was applied on COMP.PIN <v_in_clk.PAD>
9
 allowing your design to continue. This constraint disables all clock
10
 placer rules related to the specified COMP.PIN. The use of this override
11
 is highly discouraged as it may lead to very poor timing results. It is
12
 recommended that this error condition be corrected in the design.

Wie ich das verstehe, ist das so, dass es spezielle Clock Buffer nicht 
an jeder Stelle im FPGA gibt. Wenn dann der Abstand zum Pin zu groß ist, 
muss das Signal bis zum Buffer über andere, nicht dafür optimierte 
Leitungen geführt werden, was die Timing Performance deutlich schmälert.

Außerdem soll dieser Workaround laut Xilinx vermieden werden.

Meine Fragen nun dazu:
- Wie kann man den Fast Path nutzen, von dem in dem Warning die Rede 
ist? Gibt's da eine Constraint dafür?
- In der Pinbelegung für diese Clock bin ich noch einigermaßen flexibel. 
Wie finde ich heraus, welche Pins in der Nähe liegen und dafür verwendet 
werden können? (Dann kann ich den Eingang nochmal umändern)

Als Entwicklungsumgebung verwende ich Xilinx ISE 14.4 WebPack. FPGA ist 
Spartan6 XC6SLX45.

Danke schon mal!

von Christian R. (supachris)


Lesenswert?

Schau dir mal den Clocking User Guide des Spartan 6 an, da ist für jeden 
FPGA das Clocking-Schema drin. Du musst eigentlich nur drauf achten, den 
externen Takt an einen GCLK Eingang anzuschließen, die können zumindest 
über BUFG alles intern erreichen. Haarig wirds bei BUFIO2 usw.
Anscheinend hat du den Clock an einem Regional Clock angeschlossen.

von daniel__m (Gast)


Lesenswert?

hi,

du hast wohl eine input-pin für ein Takt-Signal verwendet, der nicht mit 
gclk gekennzeichnet ist.

Beim Spartan 6 haben nur bestimmte Pins direkte Verbindungen zu den 
Clock-Bauteilen. Diese direkte Verbindungen haben ein bekanntes und 
konstantes Delay und können so z.b. durch eine DCM kompensiert werden. 
Bei den anderen Pins muss über das Fabric gegangen werden, was nach 
jeder Übersetzung anders geroutet wird -> nicht konstant. Evtl. kommt 
auch noch zusätzlich Jitter zum Takt.

Welche Pins du für Eingangstakte verwenden solltest, steht im UG385 und 
kommt auch auf dein Package an.

grüße

von D. S. (des)


Lesenswert?

danke für die Antworten, das mit den gclk Eingängen wusste ich nicht. 
Hab den Pin umgelegt und jetzt geht es.

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.