Anforderungen: 1. Die Taktteilung soll in einem getakteten Prozess laufen. 2. Der Prozess soll mit 50 MHz getaktet werden. 3. Die 50 MHz sollen auf 10 Hz runtergeteilt werden. 4. Dieser Takt soll an einen GPIO gelegt werden, zum Anschauen mittels Oszilloskop. ich soll dazu einen VHDL Code schreiben, ich weiß das 50 MHz mein Input ist und die 10 Hz mein Output. In meine Sensivitätsliste die clock also die 50 MHz kommt. Jetzt muss ich interne Signale legen ich hab aber keine Ahnung wie ich den code schreiben soll, die intere Signale kommen zwischen architecture ... und process (clk) aber mehr geht da auch nicht. Der Rest ist auch unklar.
Weißt du, wie ein Taktteiler funktioniert und wie er aufgebaut ist? Das wäre nämlich mal ein Anfang.
> nein der Prof der ist einfach behindert
Leider liest man oft, dass der Lehrer Schuld ist, wenn der Schüler nicht
versteht. Doch oft ist das nur eine faule Ausrede.
Deine Fragestellung ist derart offen, dass sie von meinem kleinen Sohn
hätte kommen können. Überlege Dir, welche Informationen ein potentieller
Helfer benötigt, um Dir zu helfen.
Ali C. schrieb: > Der Rest ist auch unklar. Sieh dir dein Vorlesungsmaterial an und das da: http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html Zusammen mit der breiigen Masse zwischen deinen Ohren bringt dich das wahrscheinlich weiter. Ali C. schrieb: > nein der Prof der ist einfach behindert Ich habe VHDL erstmal ganz ohne Prof gelernt. Und das zu Zeiten als es ungleich schwerer war, ein brauchbares Buch oder Informationen im Internet zu finden. Der "behinderte" Prof ist nur ein Spiegelbild deiner Faulheit. Oder siehst du das grundlegend anders? Hast du noch mehr solcher "behinderten" Profs?
:
Bearbeitet durch Moderator
Zeige doch mal was du schon hast. Also konkret code... Dann können wir helfen.
Also soweit bin ich im Moment: use library.ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity of teiler is port ( clk : in std_logic; counter : in unsigned (22 downto 0); x : out std_logic); architecture verhalten of teiler is signal counter_int, x_int; process (clk) begin if (clk'event and clk = '1') then nur bin ich mit mit den counter nicht sicher ob es in den Port gehört. Bei dem Ansatz da schwanke ich auch.
Ali C. schrieb: > nur bin ich mit mit den counter nicht sicher ob es in den Port gehört. In den Port gehört der Eingang und der Ausgang: clk50mhz und clk10hz. Mehr nicht. Und dann brauchst du noch einen Integer-Zähler, der von 0 bis ((50000000/10)/2)-1 zählt und dann den clk10hz toggelt. Das wäre alles.
:
Bearbeitet durch Moderator
Also ich habe meine Zähler schon der ist 50000000 und mir ist auch klar das ich den /2 teilen muss aber warum die minus 1? Nur mein Problem liegt darin das in VHDL umzusetzen.
:
Bearbeitet durch User
Ali C. schrieb: > aber warum die minus ein? Weil z.B. ein Zähler mit den Zählerwerten 0, 1, 2 und 3 auch schon 4 Schritte lang zählt. > Nur mein Problem liegt darin das in VHDL umzusetzen. Im Ernst: es gibt zigtausendundein Beispiele für Taktteiler im Netz. Eines davon habe ich dir direkt auf die Nase gedrückt. Du musst nur statt der LED deinen clk10hz da einfügen. Und den Zähler passend zurücksetzen. Das schaffst du. Ich drücke dir die Daumen.
:
Bearbeitet durch Moderator
Ali C. schrieb: > nein der Prof der ist einfach behindert Du offensichtlich auch, google nach "VHDL clock divider", zweiter hit von oben: http://allaboutfpga.com/vhdl-code-for-clock-divider/
C. A. Rotwang schrieb: > zweiter hit von oben:
1 | if (count = 25000) then |
2 | tmp <= NOT tmp; |
3 | count <= 1; |
4 | end if; |
Tolles Beispiel... :-/ Um den obligatorischen OffByOne-Fehler zu umgehen wird der Zähler auf 1 zurückgesetzt. Applaus für diese unsinnige Anfängeridee. Denn das macht denn der lernwillige Schüler künftig auch bei einem Zähler, der z.B. 16 Schritte zählen soll (wie in der Digitaltechnik nicht unüblich). Der Zähler braucht dann wegen dieses tollen "Tricks" ein Bit mehr, weil 0..15 super in 4 Bit passen, 1..16 aber 5 Bits brauchen.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Denn das macht denn der lernwillige Schüler künftig auch bei einem > Zähler, der z.B. 16 Schritte zählen soll (wie in der Digitaltechnik > nicht unüblich). Der Zähler braucht dann wegen dieses tollen "Tricks" > ein Bit mehr, weil 0..15 super in 4 Bit passen, 1..16 aber 5 Bits > brauchen. Bei dem Zähler mit synchronen und asynchronen Reset macht das eine bit mehr den Fehler auch nicht "fett", die Resourcen werden schon durch den bei einem Taktteiler unnötigen Reset verbrannt. Und damit ein "lernwilliger" Schüler was lernt, muss es auch was zu lernen geben. Manche lernen ja am meisten von schlechten Beispielen, weil es sie anspornt besser zu sein als andere. Das Auswendiglernen perfekter Beispiele dagegen ist IMHO weniger effizient.
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.