Hallo zusammen! Ich bin gerade dabei mich in das Thema "PLL Rekonfiguration" einzuarbeiten. Es geht darum einen Prozess mit unterschiedlichen Geschwindigkeiten zu taken. Es ist zwar nicht wichtig, dass dies zur Laufzeit passiert, da ich aber immer wieder gelesen hab, dass Clock-Multiplexing eine Philosophie für sich ist und viele Probleme birgt, habe ich mich für diesen Weg entschieden. Da im Datenblatt dazu aber immer nur die Rede von externen RAMs ist, wollte ich mich hier mal umhören, ob schon jemand das gleich mit einem externen Controller gemacht hat, der die Daten in die Scan Chain des FPGAs geschrieben hat. Ich verwende einen Cyclone III.
Hallo Andre, ich hatte mal, allerdings sehr rudimentär, die PLL Rekonfiguration durch einen Nios2 gesteuert. Zwischen PLL und Nios2 saß ein ALTPLL_RECONFIG Block: www.altera.com/literature/ug/ug_altpll_reconfig.pdf Die Ansteuerung dieses Blocks gestaltet sich relativ übersichtlich. Gruß Björn
So sieht das bei mir in Quartus aus. Hier ein kurzer Ausschnitt vom Nios2 Code:
1 | IOWR_8DIRECT(PIO_PLL_DYN_ADC_RESET_BASE, 0x0, 1); // Reset |
2 | IOWR_8DIRECT(PIO_PLL_DYN_ADC_RESET_BASE, 0x0, 0); |
3 | |
4 | IOWR_8DIRECT(PIO_PLL_DYN_ADC_COUNTER_TYPE_BASE, 0x0, 4); // Adresse fuer c0 |
5 | IOWR_8DIRECT(PIO_PLL_DYN_ADC_COUNTER_PARAM_BASE, 0x0, 0); // Adresse fuer High Counter |
6 | IOWR_8DIRECT(PIO_PLL_DYN_ADC_DATA_BASE, 0x0, val); // Setze Low Counter auf val |
7 | |
8 | IOWR_8DIRECT(PIO_PLL_DYN_ADC_WRITE_PARAM_BASE, 0x0, 1); // strobe write param |
9 | IOWR_8DIRECT(PIO_PLL_DYN_ADC_WRITE_PARAM_BASE, 0x0, 0); // strobe write param |
10 | while(IORD_8DIRECT(PIO_PLL_DYN_ADC_BUSY_BASE,0)); // wait for transmission finish |
Hey Björn! Danke für deine Antwort! Da ich bislang noch nichts mit Nios2 gemacht hab (liege ich richtig damit, dass das ein Controller auf SW-Basis ist?) kann ich nicht soo viel mit dem Code anfangen. Aber wenn der sequentiell abgearbeitet wird versteh ich schon was gemacht wird. Also könnte man doch, wenn man die Eingänge der altpll_reconfig0 auf die HW-Pins des FPGAs legt, von außen in gleicher Weise einen µC anschließen, der dann die Config-Signale bereitstellt bzw. sendet, oder?
Andre K. schrieb: > Da ich bislang noch nichts mit Nios2 gemacht hab (liege ich richtig > damit, dass das ein Controller auf SW-Basis ist?) Genau. Das ist der Softcore von Altera. > Also könnte man doch, wenn man die Eingänge der altpll_reconfig0 auf die > HW-Pins des FPGAs legt, von außen in gleicher Weise einen µC > anschließen, der dann die Config-Signale bereitstellt bzw. sendet, oder? Richtig ;-)
Wunderbar, dann wird das auch so gemacht :) Bzw. versuche ich erst mal das Ganze zu simulieren. Denn da hängt's immer noch. Da hab ich noch keine Ahnung wieso ich dem c0 keinen Takt entlocken kann.. Ich hab das "pll_reconfig und pll - Konstrukt" nach Datenblatt - relativ ähnlich wie bei dir - aufgebaut und versuche das jetzt mit MultiSim zu testen. Du weißt nicht noch zufällig wo sich da mögliche Tretminen verstecken könnten?
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.