Forum: FPGA, VHDL & Co. Clock-Inputs Spartan 7


von Mampf F. (mampf) Benutzerseite


Lesenswert?

Guten Mittag,

ich steh gerade so richtig auf dem Schlauch ...^^

Ich hab ein Arty S7 Board, an das ich einen Clock über einen 
Erweiterungs-Header anschließen möchte.

Bei der Implementierung bekomme ich folgenden Fehler:

> [Place 30-574] Poor placement for routing between an IO pin and BUFG.
> If this sub optimal condition is acceptable for this design, you may
> use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote
> this message to a WARNING. However, the use of this override is highly
> discouraged. These examples can be used directly in the .xdc file to
> override this clock rule. <snip>

Leider sieht man im Referenz-Manual und im Schaltplan des Arty S7 und 
sogar im Pinout des Spartan 7 nicht, welche I/Os als Clock-Input 
verwendet werden können.

Soll man den Fehler einfach ignorieren und den Vorschlag in die 
Constraints schreiben?

> set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets SWCLK_IBUF]

Es handelt sich um einen SWD-Clock, der zur internen Cortex M1 IP geht.

Das FPGA ist mit 15% nicht so ausgelastet, dass man so schlechtes 
Routing erwarten könnte.

Hier noch das Pinout-File von Xilinx:
https://www.xilinx.com/support/packagefiles/s7packages/xc7s50csga324pkg.txt

Da kann man nicht wirklich erkennen, woran man Clocks anschließen soll.

Hat jemand eine Idee?

Viele Grüße,
Mampf

*edit*: Google spuckt eine Xilinx-Seite mit folgender Hilfe aus:
> To resolve this issue, either:
> 1) Move the clock input to a clock capable pin.

Ahja, darauf wäre ich nie gekommen ... Aber wo sind die clock capable 
pins xD

: Bearbeitet durch User
von Hannes (Gast)


Lesenswert?

Bei der 7er Serie sind die Clock-Inputs die mittleren 4 Lanes einer Bank 
(also 11, 12, 13, 14). Wird die Clock single-ended verwendet, kann diese 
nur auf dem P-Pin als Clock geroutet werden. Das sind die 
MRCC/SRCC-Pins.

Die Auslastung des FPGAs hat hiermit nichts zu tun - die Clock wird bei 
deaktiviertem Dedicated Routing entweder ueber normales Routing geleitet 
(statt ueber die Clock-Buffer), oder bei Verwendung der Clock-Buffer 
gibt es einen deutlich groesseren (und schwerer zu definierenden) Skew 
als bei der Verwendung eines Clock-Paares.

Dieser Skew muss beim constrainen und routen beruecksichtigt werden. Er 
laesst sich auch nicht so einfach wie sonst mit einer MMCM reduzieren, 
sondern es muss deutlich mehr Aufwand betrieben werden.

Wie sieht das restliche Signal denn aus? Clock, Daten, 
Setup/Hold-Zeiten?

von freduardo (Gast)


Lesenswert?

Hi,

die Clocking Ressourcen des Spartan 7 sind beschrieben in:

https://www.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf

Schau Dir da das Kapitel "Clock capable I/O" an (Seite 49).

Gruß Freduardo

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Hannes schrieb:
> Bei der 7er Serie sind die Clock-Inputs die mittleren 4 Lanes einer Bank
> (also 11, 12, 13, 14). Wird die Clock single-ended verwendet, kann diese
> nur auf dem P-Pin als Clock geroutet werden. Das sind die
> MRCC/SRCC-Pins.

Aaaaah, vielen Dank!

Hannes schrieb:
> Wie sieht das restliche Signal denn aus? Clock, Daten,
> Setup/Hold-Zeiten?

Da hab ich nichts angegeben ... Das SWD ist ziemlich langsam, sodass ich 
denke, da keine Probleme zu bekommen.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Hat nun geklappt!

Vielen Dank!

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.