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