Forum: FPGA, VHDL & Co. Problem mit 2 DCM's im XC3s50AN


von Joern (Gast)


Lesenswert?

Hallo,
ich versuche, leider noch ohne viel Erfahrung, 2 DCM'S im XC3s50 
aufzubauen. Möchte aus 20MHz input 100 und 150 generieren. Egal ob ich 
versuche von einem oder 2 externen Eingängen die DCM's zu speisen, 
meldet die IDE10.1 immer Error
"Place:962 - A DCM / BUFGCTRL clock component pair have been found that 
are not placed at an optimal DCM / BUFGCTRL site pair. The DCM component 
<inst_GCLK2/DCM_SP_INST> is locked to site <DCM_X1Y0> and the 
corresponding BUFGCTRL component <inst_GCLK2/CLK0_BUFG_INST> is locked 
to site BUFGMUX_X2Y1>. This will not allow the usage of the fast path 
between the DCM and the Clock buffer. ..."
Jetzt kann ich zwar mit dem .ucf Eintrag den Error wenigstens in eine 
Warnung umbiegen aber wirklich weiterhelfen tut das letztlich auch 
nicht, da ich den sauberen Clock brauche. Die app-notes und guides von 
xilinx haben mich leider auch nicht weitergebracht. Hat jemand 
vielleicht einen Tip oder brauchbaren Link wie ich die 2 DCM ordentlich 
zum spielen bringe ??

von Falk B. (falk)


Lesenswert?

@ Joern (Gast)

>Jetzt kann ich zwar mit dem .ucf Eintrag den Error wenigstens in eine
>Warnung umbiegen aber wirklich weiterhelfen tut das letztlich auch

Na das ist doch selbsterklärend. Du hast die DCMs per Constrainsts 
platziert, leider aber falsch. Die Software erkannt es nicht als 
optimale Konfiguration an. Platzier sie mal woanders.

MFG
Falk

von Joern (Gast)


Lesenswert?

hmmm? Eigentlich habe ich die nur per wizard erstellt, bin mir also 
nicht bewußt sie irgendwo platziert zu haben. Würde sie auch gerne 
dorthin platzieren wo's am besten paßt, nur wie ?? Habe zwar gelesen das 
es über 'user constrainsts/floorplan/IO/Log....' zu plazieren gehen 
soll, nur die Info allein hilft mir auch nicht weiter. Kannst du mir da 
vielleicht in meiner Unwissenheit noch etwas weiterhelfen??

von Falk B. (falk)


Lesenswert?

@ Joern (Gast)

>hmmm? Eigentlich habe ich die nur per wizard erstellt, bin mir also
>nicht bewußt sie irgendwo platziert zu haben.

Dan hat die der Wizard reingeschmuggelt.

>vielleicht in meiner Unwissenheit noch etwas weiterhelfen??

Im ISE Projektexplorer gibt es einen PFad "User Constraints", den kann 
man öffnen, dort steht dann was mit "Edit Constraints". Das UCF ist ein 
einfaches Textfile, wo ma seine Constraints reinschreibt. Die Syntax 
gibt es in der Onlinehilfe sowie im Constraint User Guide, irgendwo auf 
der Xilinx-Homepage

MFG
Falk

von Joern (Gast)


Lesenswert?

OK, soweit war ich auch schon. Da steht die ganze IO-Pin-Definition 
drin. Auch meine beiden Clock Input P124/129(GCLK4/GCLK8), wobei ich 
auch schon andere versucht habe. Habe mir gedacht das GCLK4..7 und 
GCLK8..11 eigentlich zu den beiden DCM's im S50 passen sollten. Paßt 
aber scheinbar irgendwie doch nicht. So weit ich das verstehe 
(vielleicht aber falsch) kann er den Outbuffer des DCM nicht geeignet 
platzieren. Oder?? Und wie kann ich das beheben ??

von Falk B. (falk)


Lesenswert?

@ Joern (Gast)

>(vielleicht aber falsch) kann er den Outbuffer des DCM nicht geeignet
>platzieren. Oder??

Nein, es geht umd die DCMs + Global Clock buffer. Schau in den 
Floorplanner, dort kannst du auch sehr einfach die Platzierung machen. 
UCF ist der Hack für UNIX-Anhänger ;-)

MFG
Falk

von New I. (newie)


Lesenswert?

@ Joern

Mit dem DCM hatte ich Anfangs auch Probleme.

Versuche folgendes:

Den Systemtakt 20MHz an den CLKIN-Eingang vom DCM1 (20MHz->100MHz) und 
den CLKIN-Eingang vom DCM2 (20MHz->150MHz) an den CLK0-Pin vom DCM1. Den 
RST-Pin von DCM1 und DCM2 an GND anschliessen.
Nun sollten am CLKFX-Pin vom DCM1 100Mhz und am CLKFX-Pin vom DCM2 
150MHz anliegen.

Wichtig ist dass die Häckhen bei RST und CLKFX gesetzt sind.



Gruss
Stanko

von Joern (Gast)


Lesenswert?

@Falk:
Im Floorplaner kann ich den Clock Input Pin schön hin und her platzieren 
(praktisch alles von GCLK4..11 durchprobiert) was mir aber nicht hilft, 
der Fehler bleibt. Wenn ich dort noch mehr rumschieben kann muß mir 
nochmal jemand 'n Wink geben.

@ Stanko:
Werd ich gleich mal probieren. Klinkt aber ein wenig nach in serie 
geschaltete DCM's , was ich per Wizard auch schon probiert hatte und 
irgend ne andere Fehlermeldung brachte.
Ich versuch's und gebe Meldung.

Schonmal danke für die Unterstützung, falls es jetzt jemanden zu spät 
wird !

von Christian R. (supachris)


Lesenswert?

Naja, die Fehlermeldung erklärt doch alles. Der kleine Chip hat nur eine 
DCM pro Seite, man kann also nicht einen CLK-Eingang für beide DCMs 
benutzen. Das einfachste wäre, den Takt an 2 GCK Eingänge zu legen, pro 
Seite einen. Du könntest aber im Core Generator auch 2 DCMs kaskadieren, 
da gibts einen extra Punkt. Vielleicht kommst du da irgendwie auf deine 
Takt-kombinationen.

von Joern (Gast)


Lesenswert?

@ Christian:
Genau das hatte ich mir auch gedacht ! Nur, siehe oben, auch wenn ich 
über 2 GCK Eingänge die DCMs unabhängig voneinander aufbauen will (z.B. 
"P124/129(GCLK4/GCLK8)") bleibt mein Problem erhalten. Am Wizard Punkt 
"serie" bin ich noch dran.

von Christian R. (supachris)


Lesenswert?

Hm, wenn dann müsstest du schon einen CLK-Pin auf der anderen Seite des 
Chips benutzen, nicht nebeneinander. Das bringt ja dann auch nix.

von Falk B. (falk)


Lesenswert?

@ Joern (Gast)

>Im Floorplaner kann ich den Clock Input Pin schön hin und her platzieren
>(praktisch alles von GCLK4..11 durchprobiert) was mir aber nicht hilft,

Das ist doch nichtmal die halbe Miete. Es gibt drei Komponenten, die 
richtig platziert werden müssen
Clock Input Pin
DCM
Global Clock Buffer.

Müssen alle im Floorplanner zu finden sein. Die müssen alle an die 
richtige Stelle EXPLIZIT platziert werden.

MFG
Falk

von Joern (Gast)


Lesenswert?

@ supachris:
Das hatte ich eigentlich anders gesehen, da der 50er Chip nur die 2 DCMs 
auf der einen Seite hat. Aber ok, nichts geht über probieren.
Ergebnis:
Error 962 + Error 1012
"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 <inst_GCLK2/DCM_SP_INST> is placed at 
site <DCM_X1Y0>.  The clock IO/DCM site can be
   paired if they are placed/locked in the same quadrant.  The IO 
component <Clock2> is placed at site <P58>.  This will
   not allow the use of the fast path between the IO and the Clock 
buffer."

 Was mir auch einleuchtet. Laut UG331 hat der S50AN nur Top-Left und 
Top-Right und die scheinen mir nach Figure 2-2 über die global clock 
inputs GCLK4...11 richtig angebunden. Hmm? Aber die ISE meckert ??

von Joern (Gast)


Lesenswert?

@ Falk:
Leuchtet mir ein. Den Input Pin kann ich platzieren, ok soweit kein 
Problem. Das DCM sehe ich im Floorplan, aber der ist ja wohl fest 
vorgeben. Also geht da nichts. Bleibt der global Clock Buffer, den ich 
aber nicht sehe. Und was ich nicht sehe, kann ich nicht platzieren. 
Somit stellt sich die Frage: Wie finde ich den Buffer im Floorplan ?? 
Ich bekomme im Area Floorplan unter translated Netlist auch die Pins und 
die inst_GCLK gelistet, aber wenn ich da draufgehe werden nur die Pin im 
Floorplan angezeigt. Wenn ich die inst_GCLK rüberziehe in den Floorplan 
scheint aber nichts zu passieren, sieht also nicht so aus als wenn ich 
da irgendetwas platziere. ?? Oder ??

von Falk B. (falk)


Lesenswert?

@Joern (Gast)

>Problem. Das DCM sehe ich im Floorplan, aber der ist ja wohl fest
>vorgeben. Also geht da nichts.

Nöö, du kanst dir aussuchen, an welhe Stelle er soll, auch wenn der IC 
nur zwei DCM Platzierungen kennt.

>Somit stellt sich die Frage: Wie finde ich den Buffer im Floorplan ??

Der muss in der Liste aller Elemente am linken Rand auftauchen, wo auch 
alle LUTs unf FFs zu finden sind.

>Floorplan angezeigt. Wenn ich die inst_GCLK rüberziehe in den Floorplan
>scheint aber nichts zu passieren, sieht also nicht so aus als wenn ich
>da irgendetwas platziere. ?? Oder ??

Du musst sie glaub ich mit einem Click platzieren.

MFG
Falk

von Joern (Gast)


Lesenswert?

@ Falk:
Aller Anfang ist schwer !! Hab's gefunden / Problem behoben !
Sind wohl die elementarsten Grundkenntnissen die mir da noch fehlen aber 
ich bin bemüht. Besten Dank nochmal !

von Jörg (Gast)


Lesenswert?

@Joern,

Und wo lag jetzt dein Problem? Ich hatte selbst mal ein X3C50/X3C100
mit zwei DCMs (per CoreGenerator erzeugt), und die liessen sich ohne
Probleme synthetisieren/implementieren. Ich hatte nur einen GCLK-Eingang
verwendet, keine Contraints (z.B. per Floorplanner). Kannst du vieleicht
etwas dazu sagen? Hatte ich nur Glück bei der Wahl des GCLK-Eingangs?

Gruss

Jörg

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.