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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.