Forum: FPGA, VHDL & Co. Quarze für einen FPGA


von Thomas P. (wellnestom)


Lesenswert?

Hi,
ich beschäftige mich seit kurzem mit FPGA Programmierung in Verilog. 
Nichts geschäftliches, nur als Hobby. ;)
Jetzt hab ich folgende Frage: Quartus II sagt mir das mein 
Code/Schaltung/wieauchimmer mit bis zu 203MHz laufen könnte. Auf meinem 
Bord (Max1000 von Trenz) ist aber "nur" ein 12MHz Quarz.
Was benutzt ihr so wenn ihr z.B. ein 160MHz oder 200MHz Clocksignal 
braucht? Lasst ihr euch eins von Daun oder ähnlichen Herstellern 
anfertigen? Bei R... und C... gibts in dem Bereich ja nichts mehr.
Von MEMS Oszillatoren hab ich bis jetzt nur schlechtes gehört.
Wie wird das z.B. bei einem Teensy umgesetzt? Da kann ich ja auswählen 
mit welcher Taktung er laufen soll.

ich hoffe ich denke da jetzt nicht zu naiv als Anfänger.

Gruß Tom

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

FPGAs werden üblicherweise nicht direkt mit einem Quarz betrieben, 
sondern mit einem externen Oszillator. Im Falle des Trenz MAX1000 
handelt es sich um einen MEMS-Oszillator mit 12 MHz. Dessen 
Ausgangsfrequenz wird aber meistens nicht direkt als zentraler Takt für 
die FPGA-interne Logik verwendet, sondern es werden die FPGA-internen 
Takterzeugungsblöcke mit PLL usw. entsprechend parametrisiert.

Von Intel/Altera gibt es ein entsprechendes Handbuch, dass sich mit der 
Takterzeugung und -verteilung in einem MAX 10 befasst:

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/max-10/ug_m10_clkpll.pdf

Und das offizielle Video dazu:

https://www.youtube.com/watch?v=fZBWphvuOrE

Ich kenne mich leider mit Quartus so gar nicht aus, aber darin wird mit 
Sicherheit auch ein entsprechender Wizard oder IP-Konfigurator enthalten 
sein, dem man die gewünschten Eingangs- und Ausgangsfrequenzen 
hinschmeißt und der daraus die entsprechende Taktkonfiguration erzeugt. 
Bei Xilinx Vivado hieße er "Clocking Wizard".

Natürlich kann man auch per VHDL/Verilog einen entsprechenden Taktblock 
instantiieren und mit den passenden Generics versorgen. Für den Einstieg 
ist es aber sicherlich sinnvoller, den Konfigurator zu verwenden und 
ggf. in die generierten HDL-Quellen zu schauen, um nachzuvollziehen, wie 
die Konfiguration in Generics usw. umgesetzt wurde.

Über die Takterzeugung und -verteilung in FPGAs und ASICs wurden schon 
unzählige Bücher, wissenschaftliche Papers und Applikationsschriften 
verfasst. Als FPGA-Entwickler muss man zwar nicht alles im Detail 
verstanden haben, aber zumindest schon einmal gelesen haben. Hierbei 
kommt es auch darauf an, den Zusammenhang zwischen Taktdomänen, 
Synchronisationsstufen, synchronen und asynchronen Resets, usw. zu 
verstehen. Microcontroller enthalten all diesen Kram natürlich auch, 
aber er ist vor dem Anwender (Firmwareentwickler) verborgen.

: Bearbeitet durch User
von blog (Gast)


Lesenswert?

Genau, informiere dich darüber was PLL bedeutet dann wird's klar. Ein 
Selbstschwingender Oszillator (hat meist 4 Pins, +, -, enable, clock 
out) ist das Mittel der Wahl. 10 Mhz glatt zB

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

blog schrieb:
> Genau, informiere dich darüber was PLL bedeutet dann wird's klar. Ein
> Selbstschwingender Oszillator (hat meist 4 Pins, +, -, enable, clock
> out) ist das Mittel der Wahl. 10 Mhz glatt zB

Da das FPGA-Board vorgegeben ist, sollte man schon den dort verwendeten 
Oszillator verwenden. Es ist wenig sinnvoll, ohne Not auf einen anderen 
Oszillator zu wechseln. Ich kenne das Board und das MAX 10 nicht im 
Detail, aber möglicherweise werden die dortigen 12 MHz an anderer Stelle 
für USB benötigt.

von No Y. (noy)


Lesenswert?

Jap, lass den 12 MHz drauf, das ist so richtig. In Quartus IP Blöcke 
nimmst du die PLL und lässt dir damit deine 100/200MHz generieren und 
nimmst den Ausgang als CLK deiner "Schaltung"

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.