www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Spartan 3 PLL


Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: SSSsssss (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: SSSsssss (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.