Hallo. Ich muss meine Taktfrequenz=50MHz mit einem Teiler auf 9600 teilen. Der Teiler entspricht ca. 5208. Dafür würde ich folgende Teiler verwenden: 1x 13er 2x 10er 1x 4er Wie kann ich das nun in VHDL realisieren?
wenn ich 50.000.000 Hz durch 9600 teile, bringt mir mein Taschenrechner die Zahl 5.208,3333333 1/3. Anders gesagt, wenn ich 50.000.000 Hz durch 13 teile bekomme ich 3.846.153,846. Diese Zahl durch 10 und das Ergebniss nochmal durch 10 teile, habe ich am Taschenrechner 38.461.5385. Vorige Zahl durch 4, zeigt mein Rechner 9.615,3846. Oder soooooooooooooooooooo Ich glaube ich weis was Sie als nächstes fragen.
zähl doch einfach die Takte und wenn du 4800 Zähler hast toggelst du macht dann 9600Hz.
ja, die Berechnung habe ich genauso. Aber wie kann ich das in vhdl programmieren? Kann man das in einer schleife realisieren? wenn ja, kann ich die einzelnen Teiler weglassen und nur 50MHz/5208 rechnen? War das die Frage?
@ Ali Alile (rifay) >ja, die Berechnung habe ich genauso. Aber wie kann ich das in vhdl >programmieren? Mit einem Zähler. >Kann man das in einer schleife realisieren? Gar nicht. Das ist VHDL, kein C. >wenn ja, kann ich die einzelnen Teiler weglassen und nur 50MHz/5208 >rechnen? Rechnen nicht, aber zählen.
1 | process(clk) |
2 | begin
|
3 | if rising_edge(clk) then |
4 | cnt <= cnt +1; |
5 | clk_9k6 <= '0'; |
6 | if cnt = 5207 then |
7 | cnt <= 0; |
8 | clk_9k6 <= '1'; |
9 | end if; |
10 | end if; |
11 | end process; |
Siehe auch Taktung FPGA/CPLD. MfG Falk
@ Falk: danke, sieht meinen wünschen entsprechend aus. Nur, wie kann ich mir das vorstellen, wandelt der mir die 50MHz kontinuierlich auf 9600(clk_9k6) um? gruß
Ali Alile schrieb: > Nur, wie kann ich mir das > vorstellen, Da gibt es eine Lampe die blinkt vor sich hin. Und es gibt einen Typen auf einem Berg, der die Lampe beobachtet. Er befolgt buchstabengetreu seine Vorgaben: Jedesmal, wenn die Lampe von aus auf ein umschaltet (rising_edge) zählt der in Gedanken zu einer Zahl die er sich merkt 1 dazu (cnt <= cnt +1). Ist er damit fertig, dann überprüft er noch schnell ob er zufällig schon bis 5207 gezählt hat. Wenn er drauf kommt, dass er das hat, dann hält er eine Fahne in die Höhe und fängt wieder bei 0 zu zählen an (und senkt dann auch gleich wieder die Fahne). Wenn nun die Lampe 50 Millionen mal in der Sekunde aufblitzt, und man den Typen vom Tal aus beobachtet, wie oft in der Sekunde hebt er dann die Fahne? So kannst du dir das vorstellen.
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.