Forum: FPGA, VHDL & Co. Spartan 3 PLL


von Kest (Gast)


Lesenswert?

Hallo, Leute

folgedes Problem: ich muss zwei Clocks je 54 MHz aus dem Quarz 50 MHz
generieren. Ein Mal ohne und ein Mal mit 45 Grad Phasenevrschiebung.
Das eigentliche Problem ist, dass es "Mal funktioniert, mal nicht"
:-o Mal sind die Clocks phasenverschoben, mal sind die gleich, mal ist
die Phasenverschibung 180 Grad... Also nach dem Reset ist immer ein
Glückspiel, was rauskommt.
Das FPGA Board ist Spartan 3 Starter Kit.

weis jemand Rat? Bzw. hat jemand das gleiche Problem gehabt?

Kest

von TheMason (Gast)


Lesenswert?

@kest

ich hab zwar immer noch nichts mit den dcms des spartan 3 gemacht, aber
war das nicht so das der nur vielfache von 90 grad machen konnte ?!
ansonsten würd ich sagen (wenns denn geht) den takt zu verachtfachen
(360 / 8 = 45) und das ganze über zähler & logik erzeugen.
hab aber mit den clock-basteleien noch nicht soviel gemacht.

gruß
rene

von Kest (Gast)


Lesenswert?

Nee, über Zähler geht es nicht :-/

Es scheint so, als ob die PLL nicht einrastet oder so... kein Wunder,
dass ich auf Xilinx schlecht zu sprechen bin, wenn das nur nur ab und
zu geht :-(

Kest

von Kest (Gast)


Lesenswert?

ich antworte mir selbst ;-)

Es ist halt bei Xilinx so :-o Habe mit jemanden gesprochen, der sich
damit auskennt ;-) DCMs werden ständig nachgeregelt, was ab und zu zu
Fehlern führt -- also: vorsicht geboten :-/

Kest

von SSSsssss (Gast)


Lesenswert?

Hi!

Also ich hatte sowas ähnliches:
eingabe 50mhz
ausgabe 20mhz

Wenn ich nun die 50mhz noch intern verwendet habe hat die dcm
nur noch murks gemacht. auf der 20mhz leitung kam alles mögliche an
Erst als ich die 50mhz NUR als dcm input hatte und meine 50mhz nach der
dcm (glaub es war clkfx oder so)
abgegriffen habe lief es stabil.
Auch diverses rumprobieren mit zusätzlichen manuellen buffern hat
nichts gebracht...

hast du die 50mhz noch woanders benutzt ?

bye, Simon

von Kest (Gast)


Lesenswert?

Nein, 50 MHz benutze ich gar nicht...

aber okay, ich habe mich damit abgefunden. Ist halt blöd, wenn man ewig
da sitzt und rumprobiert, dabei ist das wohl ein "bekanntes" Problem
:-@

Kest

von SSSsssss (Gast)


Lesenswert?

hast du mal die locked und status flags ausgegeben ? also zb auf ne led
legen oder so...
und wartest du bis die dcm gelockt ist ?
(entweder im vhdl code oder per startup option wie es der coregen auch
vorschlägt wenn man das locked signal wegclickt)

Bye, Simon

von Kest (Gast)


Lesenswert?

Nein, ich warte da nicht (und gebe nichts aus)... wieso sollte ich
auch?

Ich stelle im Coregen die Phase ein und erwarte, dass sie auch stimmt.
Ob sie nach dem Starup ein Paar ms stimmt oder nicht, ist mir erstmal
egal, aber dann?

Kest

von Ssss S. (sssssss)


Lesenswert?

Versuch mal im promgen (?) die startup sequenz so zu ändern dass er erst
aufs locked wartet.
Wie das genau heisst steht hier irgendwo drin:
http://www.xilinx.com/bvdocs/appnotes/xapp462.pdf

Vielleicht gehts ja dann ;)
Aber ich glaub dasselbe Problem hatte ich mal mit zwei 180°
verschobenen Clocks,
ich glaub da kam auch ab und an murks raus.
Habs dann aufgegeben und anders gelöst...

Bye, Simon

von Ssss S. (sssssss)


Lesenswert?

mit dem locked signal ausgeben/angucken meinte ich dass du mal gucken
sollst ob das locked wieder auf unlocked geht.
Wenn ich das S3 pdf richtig verstehe kann die DCM im betrieb auf
unlocked umspringen, man
soll in dem fall die Verarbeitung unterbrechen, dcm resetten und dann
weitermachen.
Wobei ich das in meiner Anwendung nciht brauchen konnte...

Bye, Simon

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.