Bauen Sie einen Modulo 13 Zähler und einen Ringzähler, die im Sekundentakt hochzählen und einen PWM Generator, bei dem das An/Aus Verhältnis über die Schalter eingestellt werden kann. Beide Schaltungen werden mit dem Logikanalysator vermessen.
Aktualisieren Sie das dtlab Projekt mit
cd ~/projects/dtlab git pull
Die Datei top_count.vhd beschreibt das Modul “top_count”. “top_count” stellt den toplevel auf dem FPGA dar.
Der Ringzähler aus ringcnt.vhd soll die roten LEDs ansteuern. Bei der letzten Aufgabe Ringzähler haben Sie den Ringzähler schon gebaut und an die roten LEDs angeschlossen. Der Ringzähler wurde dort entweder permanent oder mit dem Flankendetektor enabled. Jetzt soll der Ringzähler autark im Sekundentakt zählen. Das Enablesignal dazu kommt aus dem Zähler cnt1sec.vhd.
Der Zähler cnt1sec soll jede Sekunde ein Enablesignal liefern, damit der Ringzähler einmal pro Sekunde weiterzählt. Doch zunächst soll die Funktion im Simulator getestet werden. Eine Sekunde Echtzeit zu simulieren dauert in der Simulation sehr lange.
Prüfen Sie jetzt im Simulator die Funktion
Testen Sie die Schaltung auf dem FPGA
Jetzt soll zusätzlich der Modulo 13 Zähler eingebaut werden, der an der Siebensegmentanzeige HEX0 angezeigt wird. Der Zähler hat den Eingang “up_i”. Wenn “up_i” = 1 ist, dann soll der Zähler hochzählen und sonst runterzählen.
Prüfen Sie die Funktion im Simulator
Der PWM Generator soll ein PWM Signal produzieren, dass abhängig von den Schaltern SW[3..0] gesteuert wird.
Stellen Sie im Labor Ihre Ergebnisse vor. Bringen Sie die Zeichnungen und die Screenshots der Simulationen mit.
Konfigurieren Sie cnt1sec so, dass alle 5 Takte ein Enablesignal produziert wird. Zeigen Sie die Funktion des Modulo 13 Zählers am Expansionsport.
Zeigen Sie die Funktion des PWM Generators am Expansionport.