Forum: FPGA, VHDL & Co. FPGA Nexys3 Xilinx Schematic 4-Bit-Binärzähler mit Clock zählen lassen


von bernd r. (auch_bernd)


Lesenswert?

Guten Tag!

Danke vorab für Hilfe.
Dieses Wochenende habe ich Zeit zum Ausprobieren gehabt aber nun Fragen.

Ich habe den 4-Bit-Zähler schematisch in ISE Design Suite 14.5 
aufgebaut.

Funktioniert:
----------------------
Eingang: Taktgeber ist ein Button.
Ausgang: 4 LEDs, die "binär" aufläuchten und "durchzählen" per 
Knopfdruck.

Vorhaben:
----------------------
Eingang: Soll ein Takt des on-board-100MHz-fixed-frequency-oscillator 
sein.

Probiert:
----------------------
Ich habe dem Eingang die Clock zugewiesen und jetzt leuchten alle 4 LEDs 
dauerhaft.
Vermutlich werden die LEDs zu schnell (hohe Frequ.) als wahrnehmbar 
"durchgezählt".

Frage:
----------------------
Allgemein: Wie kann ich die LEDs sichbar "durchzählen" lassen?

Kann ich zur Frequenzverringerung (Vermutung) in Schematic etwas vor den 
4-Bit-Zähler bauen, zur evtl. Frequenzteilung?

Oder geht das nur per Verilog/VHDL Code?

Hinweis:
---------------------
Ich habe schon ein Beispiel-Code von hier ausprobiert, "LED-BLinker".
Ich habe es aber nicht geschafft, den Takt für das "Blinken" in meinen 
4-Bit-Zähler zu übertragen.
Mir fehlt noch das Verständnis für Einstellung und Zuweisung des 
Taktgebers/Oscillators auf meinem FPGA-Nexys3-Board.

Einen schönen Wochenstart!

von Michael S. (decimad)


Lesenswert?

Du könntest vor den 4-Bit-Zähler einen weitaus größeren Zähler bauen und 
ein Bit dieses Zählers als einen heruntergeteilten Takt betrachten 
(Schließlich alterniert das unterste Bit eines taktsynchronen Zählers 
immer genau mit der halben Taktfrequenz, mit der der Zähler betrieben 
wird, das nächste wiederum mit der halben davon usw. Übung: Generelle 
Formel angeben), oder eine Flanke dieses Bits als Zeitpunkt, um den 
anderen Zähler hochzuzählen.

Du könntest nach dieser Betrachtung zur Optimierung auch den großen 
Zähler direkt nehmen und nicht die untersten vier Bit auf die LEDs 
legen, sondern einen 4-Bit-Ausschnitt, der im "langsameren Teil" des 
großen Zählers liegt, hier hilft Dir jetzt die Formel, die Du zu 
Übungszwecken oben aufgestellt hast.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

bernd r. schrieb:
> Probiert:
> ----------------------
> Ich habe dem Eingang die Clock zugewiesen und jetzt leuchten alle 4 LEDs
> dauerhaft.
> Vermutlich werden die LEDs zu schnell (hohe Frequ.) als wahrnehmbar
> "durchgezählt".
>
> Frage:
> ----------------------
> Allgemein: Wie kann ich die LEDs sichbar "durchzählen" lassen?
Du musst schneller schauen oder langsamer zählen. Zum langsameren Zählen 
nimmst du einfach einen viel breiteren Zähler (z.B. 30 Bits) und 
schließt nur die obersten 4 Bits an die LEDs an.

> Kann ich zur Frequenzverringerung (Vermutung) in Schematic etwas vor den
> 4-Bit-Zähler bauen, zur evtl. Frequenzteilung?
Die unteren 26 Bits sind dann automatisch der Vorteiler 2^26 = 67108864, 
das ergibt zusammen mit dem Takt von 100MHz eine "LED-Frequenz" von 1,5 
Hz. Du kannst natürlich auch einen definierteren Vorteiler machen und 
die Zählfrequenz so genauer anpassen

> Oder geht das nur per Verilog/VHDL Code?
Damit geht es viel einfacher als mit Schematics...  ;-)

von bernd r. (auch_bernd)


Lesenswert?

Danke Ihnen beiden.

Ich werde die Hilfestellung zeitnah umsetzen und nachvollziehen.

von bernd r. (auch_bernd)


Angehängte Dateien:

Lesenswert?

Hiermit möchte ich noch für alle InteressentIn diesen Beitrag mit meinem 
Ergebnis abschliessen.

Das Forum braucht Problemstellungen und Lösungen.

Im Anhnag meine Lösung:
Jeweils 4 LEDs nach verschiedenen Teilerverhältnissen abgegriffen.
Dadurch blinken die "oberen" 4 LEDs sichtbar schneller.
(Oszillator fix mit 100MHz)

MfG

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