Forum: FPGA, VHDL & Co. externes Rechtecksignal über PLL-IP-Core


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von PLL (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein Analogsystem, wo ich ein Rechtecksignal mit einer Frequenz 
zwischen 3-5 MHz (je nach Anwendungsfall) erhalte. Dieses Signal wird in 
einem Max10 FPGA analysiert und verarbeitet. Systemtakt sind 200MHz.

Nun habe ich eine selbst geschriebene "PLL" im FPGA, die mir das 
Rechtecksignal nach dem eintakten etwas in der Frequenz "glättet", bevor 
es analysiert wird. Leider kommt es hierbei immer wieder zu 
Timing-Problemen im PLL-Modul.
Jetzt wäre die Frage, ob man das eingetaktete Signal nicht durch einen 
professionellen IP-Core (ALTPLL von Altera/Intel) schickt, um die 
Glättung der Frequenz zu realisieren. Macht man sowas üblicherweise oder 
verwendet man die PLL-Cores nur für "saubere" Quarz-Signale? Meine 
Hoffnung wäre eben, dass die Funktion der IP-Cores sauberer und 
schneller ist, und ich somit keine Timing-Probleme mehr erhalte.
Ein erster Versuch scheitert allerdings schon daran, dass  wenn ich im 
MegaWizard beispielsweise 4MHz als inclk0 vorgebe, der Fehler "VCO or 
PFD frequency range exceeded" erscheint. Leider finde ich hierzu nicht 
das passende Datenblatt (im UG-M10CLKPL find ichs nicht), wo diese 
grenzen angegeben sind....

Beste Grüße,
Fabian

von Duke Scarring (Gast)


Lesenswert?

PLL schrieb:
> Macht man sowas üblicherweise oder
> verwendet man die PLL-Cores nur für "saubere" Quarz-Signale?
Kann man schon machen. Mit 4 MHz dürftest Du unter dem zulässigen 
Minimum liegen.

Wie machst Du die Glättung und wie generierst Du Dein Ausgangssignal?

> Leider kommt es hierbei immer wieder zu
> Timing-Problemen im PLL-Modul.
Wo und wie genau äußert sich das Problem?

Duke

von Kommentator (Gast)


Lesenswert?

Dies hier

PLL schrieb:
> Nun habe ich eine selbst geschriebene "PLL" im FPGA, die mir das etwas glättet

widerspricht dem hier:

PLL schrieb:
> durch einen
> professionellen IP-Core (ALTPLL von Altera/Intel) schickt, um die
> Glättung der Frequenz zu realisieren.

denn:

Du möchtest zwischen 3 und 5 MHz verwenden, daher kannst du keine PLL 
nehmen. Diese unterstellen eine weitgehend konstante Frequenz und locken 
sich nur auf die Phase. Daher heisst es ja PLL. Bei derartigen 
Schwankungen würde die Varianz mehrere Phasen ausmachen.

Was du brauchst, ist ein Frequenzsynthesizer, der ausgehend von einer 
runtergeteilten Frequenz, z.B. einem 10tel des Eingangs das 10fache 
macht.

Also:

Die letzten 10 Takte am Eingang messen
Periode träge (=gefiltert) aktualisieren
Ein 10tel der Periode ausrechnen
Impuls erzeugen
Aktualisierung mit jeder Eingangsflanke
daher 10 Schaltungszustände / -Teile nötig.
Impulse verodern
Gesamtimpuls auf PLL geben.
PLL -Setting permanent aktualisieren, damit sie "weiss" was reinkommt.

Eine normale PLL im FPGA kann das alleine nicht. Der machbare Jitter 
beträgt so rund 1/4 Taktperioden für hohe Frequenzen.

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]
  • [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.

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