Hallo, Im Anhang ist der Code als txt.Datei und ein Bild dazu ein internes Signal WiretoTC welches mit dem Wert 1 deklariert ist, sollte mit dem Ausgang TC verbunden werden, wenn PRE kleiner gleich MAXVAL und LOAD = '1' ist.. TC sollte vom Wert 0 zur 1 übergehen. Verstanden habe ich, dass laden von PRE mit einer großen Zahl, TC einen höheren Takt bekommt aber ich meine ich habe irgendwas missverstanden. Danke für die Hilfe
Was ist die Frage? Unabhängig davon: 1. Formatiere mal deinen Code lesbar, ich blicke direkt nichts 2. Was soll das Bild denn? Soll man da ernsthaft was erkennen? 3. Ist heute schon Freitag?
Hier ist ein Modulo 24 Zähler zusehen LOAD ist high wenn eine Zahl 0-24 vorgeladen ist sonst auf LOW PRE ist für geladene Zahl welche 5bit sind jedoch ist die MAXVALUE := in Dezimal = 24 DIR ist für die Zählrichtung 1 = inkrementieten 0 dekrementieren Meine Frage ist wie realisiert man diesen Zähler damit die Frequenzen teilen kann Die Zeichnung ist von unserem Prof er meinte eine Lösung wäre wenn man den Pfad umleitet auf TC wie beim mealyautomat.. Ich habe den Code an txt. Datei weil bin neu hier und weiß nicht ob man das auch so direkt einfügen kann. Danke
Das ist alles reichlich wirr. Wie wäre es mal sauber zu erklären was der Zähler machen soll und was die einzelnen Signale bedeuten? Auch dieses hingeschmierte Bild könntest du mal sauber neu zeichnen oder ordentlich erklären. Ja, es gibt Zähler, die kann man laden und hoch- bzw. runterzählen lassen. Das hier ist einer https://assets.nexperia.com/documents/data-sheet/74HC_HCT193.pdf eben nur 4 Bits. Kann man aber kaskadieren. Wie der aufgebaut ist sieht man auch, den kann man wunderbar in HDL nachschreiben. Aber vermutlich ist dein Problem, irgendwas mit Taktteilung, deutlich einfacher zu lösen. Erkläre doch mal genau was du erreichen möchtest. Zur Taktteilung muss man nicht hoch- und runterzählen können, also sage am besten nur was du wirklich brauchst.
yasin schrieb: > Meine Frage ist wie realisiert man diesen Zähler damit die Frequenzen > teilen kann Ich würde da einfach einen 5 Bit breiten Zähler realisieren, der bei einem bestimmten Vergleichswert zurückgesetzt wird. Ein besserer Dreizeiler ist das. Warum bei dem Ding die Zählrichtung umgeschaltet werden muss, kann ich aber nicht nachvollziehen... In deinem Code ist noch ein üblicher Anfängerfehler:
1 | :
|
2 | :
|
3 | -- state register for the count value
|
4 | P_REG : process (CLK,ARESETN) ---- Sensitivliste unvollständig!!! |
5 | begin
|
6 | |
7 | --- böse Sache, das hier: alle 3 Signale LOAD, PRE und TC fehlen in der Sensitivliste
|
8 | if ((LOAD = '1') and (PRE <= "11000")) then WiretoTC <= TC ; |
9 | end if; |
10 | -- zudem schreibt man in einen synchronen Prozess nicht irgendwelche nebenläufige Zuweisungen
|
11 | |
12 | |
13 | if ARESETN ='0' then |
14 | Q <= (others => '0') after 5 ns; |
15 | elsif CLK'event and CLK='1' then |
16 | Q <= Q_NEXT after 5 ns; |
17 | end if; |
18 | end process P_REG; |
19 | :
|
20 | :
|
Sieh dir an, wie synchrone, getaktete Prozesse geschrieben werden. Da kommt kein asynchroner Code drin vor. yasin schrieb: > Ich habe den Code an txt. Datei weil bin neu hier und weiß nicht ob man > das auch so direkt einfügen kann. Du kannst einfach eine *.vdh oder *.vdhl Datei anhängen oder wie über jeder Texteingabebox hier bei "Antwort schreiben Wichtige Regeln- erst lesen, dann posten!" beschrieben den Quellcode einfach einfügen und dann mit den [vhdl] Tags umrahmen. Gustl B. schrieb: > Auch dieses hingeschmierte Bild könntest du mal sauber neu zeichnen oder > ordentlich erklären. Allein das könnte den nötigen Anstoß geben, denn dann muss man sich mal mit der Struktur des Problems beschäftigen. BTW: Ich bekomme Augenkrätze, wenn ich sowas wie "after 5 ns" in einem synthetisierbaren Modul sehe. Wer das hinter Zuweisungen schreibt, der zeigt, dass er das Prinzip eines synchronen Designs grundlegend nicht verstanden hat.
:
Bearbeitet durch Moderator
Bei der Schaltung, Terminal-Count-Ausgang mit einem Load-Eingang verbunden, fällt mir der 8-Bit-Zähler 74HC40103 ein. Der kann allerdings nur abwärts zählen. In Fig. 15 ist diese Rückführung TC-LD gezeigt. Ohne Zusatzlogik kann man so einen einstellbaren Teiler bauen: https://assets.nexperia.com/documents/data-sheet/74HC40103.pdf
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.