Hallo Leute!
Ich nutze einen Spartan-3A XC3S200A-4FT256 und ISE 12.1 (Webpack).
Bisher hatte ich folgende DCM-Konfiguration, die ohne Probleme lief:
Clock Eingangs-Pin (R9) -> IBUFG -> [DCM1 -> DCM2]
DCM1 und DCM2 sind kaskadiert und wurden als solche mit CoreGen erzeugt.
Den IBUFG habe ich darauf aus dem mit CoreGen generierten Modul
herausgenommen und ins Top-Modul gebracht. DCM1 erzeugt einen CLKFX und
einen CLK2X. Der CLK2X dient einmal als interner Feedback für DCM1 und
geht auch zu DCM2. DCM2 erzeugt daraus einen CLK0 (der auch als interner
Feedback für DCM2 dient) und einen CLK90. Alle Output-Clocks der beiden
DCMs verwenden BUFGs.
Nun wollte ich einen dritten DCM_NEU erzeugen, der unabhängig von DCM1
und DCM2 einen eigenen CLKFX erzeugt. Als interner Feedback dient CLK0
des DCM_NEU. Auch hier verwenden alle Ausgangs-Clocks des DCM BUFGs. In
Coregen habe ich bei DCM_NEU als CLKIN Source INTERNAL gewählt, damit
ich den oben erwähnten bereits vorhandenen IBUFG nutzen kann. Der CLKIN
Eingang von DCM_NEU habe ich mit diesem IBUFG verbunden, so dass ich nun
zusätzlich zur oberen Konfiguration:
IBUFG (derselbe von oben) -> DCM_NEU
habe.
Der Place & Route Prozess meldet aber nun folgenden Fehler (in der
Fehlermeldung "the_clk8mhz_dcm" DCM_NEU):
ERROR:Place:1012 - A clock IOB / DCM component pair have been found that
are not placed at an optimal clock IOB / DCM
site pair. The clock component <the_clk8mhz_dcm/DCM_SP_INST> is placed
at site <DCM_X0Y1>. The clock IO/DCM site
can be paired if they are placed/locked in the same quadrant. The IO
component <sys_clk_in> is placed at site
<PAD151>. This will not allow the use of the fast path between the IO
and the Clock buffer. If this sub optimal
condition is acceptable for this design, you may use the
CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote
this message to a WARNING and allow your design to continue. However,
the use of this override is highly discouraged
as it may lead to very poor timing results. It is recommended that this
error condition be corrected in the design. A
list of all the COMP.PINs used in this clock placement rule is listed
below. These examples can be used directly in
the .ucf file to override this clock rule.
< NET "sys_clk_in" CLOCK_DEDICATED_ROUTE = FALSE; >
< PIN "the_clk8mhz_dcm/DCM_SP_INST.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE;
>
Das Eigenartige ist, dass die Xilinx Answer Datenbank nun auf folgende
Bugs verweist:
http://www.xilinx.com/support/answers/31462.htm -> 10.1 Spartan-3A PAR -
ERROR:Place:1012 - A clock IOB / DCM component pair have been found that
are not placed at an optimal clock IOB / DCM site pair
und
http://www.xilinx.com/support/answers/34571.htm -> AR #34571 - ISE
Design Suite 11.5 Update - Known Issues for Early Access 11.5 DVD
Release
Im zweiten AR ist dann ein weiterer Link zu Xilinx Answer 34613: 11.5
EDK - "ERROR:Place:1012 - A clock IOB / DCM component pair have been
found that are not place at an optimal clock IOB / DCM site pair"
Dieser AR 34613 ist aber nicht vorhanden: "We apologize, but the page
you have requested was not found on our site."
Die Frage ist nun, ob die oben genannte Fehlermeldung ein Bug ist. Oder
ist es einfach so, dass mein Clock-Signal von Clock Pin (R9) über den
IBUFG nur zu DCM1, aber nicht gleichzeitig auch zu DCM_NEU gelangen
kann? Es gibt ja laut UG331 bevorzugte Clock-Eingangs-Pins für die
einzelnen DCMs. Kann es sein, dass tatsächlich nur die eine DCM in dem
einen Quadranten von Clock Pin R9 versorgt werden kann?
Habe auch versucht, die DCM manuell näher am Clock Pin zu platzieren
(INST "the_clk8mhz_dcm/DCM_SP_INST" LOC=DCM_X0Y0;) - siehe angehängten
Screenshot vom PlanAhead.
Rechts unten ist DCM1, links oben ist DCM2 (beide cyan).
Links unten (X0Y0) ist dann der manuell platzierte DCM_NEU (orange).
Vom Clock-Eingangs-Pin R9 aus gehen die beiden grünen Striche zu DCM1
und DCM_NEU.
Das manuelle Platzieren hat leider nichts gebracht. Der P&R-Fehler kommt
erneut :( Kann der Fehler evtl. auch was damit zu tun haben, dass keine
freien Global Clock Routing Ressourcen mehr vorhanden sind?
Danke für jede Hilfe!
Grüße,
Anguel