mikrocontroller.net

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


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.
Autor: Thomas P. (wellnestom)
Datum:

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

Autor: Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

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

Youtube-Video "MAX 10 FPGA PLLs and Clocking"

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
Autor: blog (Gast)
Datum:

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

Autor: Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

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

Autor: No Y. (noy)
Datum:

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

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.

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