Ein (ungewöhnlicher) Taschenrechner. Erstellt als Projekt für das Modul BTE5023 – Elektronische Systeme. Ziel des Projektes ist auf einem GECKO4-Education einen einfachen reverse Polish notation Rechner zu implementieren. Weiteres kann aus der Aufgabenstellung entnommen werden.
- Aufgabenstellung analysieren
- Projekt aufsetzen
- GitLab
- ModelSim
- Quartus
- Module implementieren
- Keypad - (leuen4)
- 7-Seg Ansteuerung (reusa1)
- BIN -> BCD, BCD -> BIN Wandler (reusa1)
- Zahleneingabe (reusa1)
- LIFO Stack (leuen4)
- [~] Stack Anzeige LED (reusa1)
- Addierer (leuen4)
- Subtrahierer (leuen4)
- Multiplizierer (leuen4)
- Dividierer (leuen4)
- [~] Ablaufsteuerung rpn FSM (reusa1, leuen4)
.
├───.vscode # Optionale Supportdateien um VScode als IDE einzurichten.
├───modelsim # ModelSim Arbeitsordner, Projektdateien werden mit modelsim_* - Skripts aus dem scripts-Ordner generiert.
├───quartus # Quartus Arbeitsordner, Projektdateien werden mit quartus_* - Skripts aus dem scripts-Ordner generiert.
├───scripts # Tcl Skripts um Projektdateien zu generieren.
└───vhdl # VHDL Quelldateien, beschreiben die benötigten rpn entities.
Erweiterte Erläuterungen sind in den jeweiligen README.md
Dateien der Unterordner gegeben.
Die Simulation der verschiedenen Entitäten / Modulen und ihren Testbenches lässt sich mit folgenden Befehlen / Skripten ausführen. Die Befehle sind im ./modelsim
Unterordner auszuführen.
- Kompilieren mit ModelSim:
vsim -c -do ../scripts/modelsim_compile.tcl
- Ausführen der Testbenches:
vsim -c -do ../scripts/modelsim_test.tcl
- (optional) Ansicht der Signalverläufe (öffnet ModelSim GUI):
vsim -c -do ../scripts/modelsim_open.tcl <testbench_name>
Um das Projekt mit Quartus zu synthetisieren sind folgende Befehle einzugeben. Die Befehle sind im ./quartus
Unterordner auszuführen.
- Generierung der Projektdateien:
quartus_sh -t ../scripts/quartus_project.tcl
- Synthese:
quartus_sh -t ../scripts/quartus_compile.tcl
- Volatiles Laden auf das GECKO-Board:
quartus_pgm -c USB-Blaster --mode jtag --operation='p;rpn.sof'
- (optional) Permanentes Laden auf das GECKO-Board:
quartus_cpf -c ../../scripts/quartus_flash.cof; quartus_pgm ../../scripts/quartus_flash.cdf
- (optional) Öffnen der Quartus GUI:
quartus rpn.qpf
Wurde das GECKO-Board mit dem Bitfile programmiert und das PmodKYPD ist angeschlossen, so kann er als funktionstüchtiger RPN-Rechner verwendet werden. Die Bedienung erfolgt über die Tasten 0 - F:
- Ziffern 0 - 9: Zahleneingabe
- Taste A: Addieren
- Taste B: Subtrahieren
- Taste C: Multiplizieren
- Taste D: Dividieren
- Taste E: "Enter" oder verschieben einer Zahl in den Stack
- Taste F: Vorzeichenwechsel
Bis zu zehn Zahlen sind im Stack (die LED-Matrix) in binärer Repräsentation sichtbar. Jede Zeile an LEDs steht für eine Zahl:
LED11 | LED10 | LED9:LED0 |
---|---|---|
an wenn belegt | an wenn negativ | Zahl in binärer Repräsentation |
Zum Zurücksetzen des Rechners (Power on Reset) kann die Taste SW6 des GECKOS gedrückt werden.
- Die Haupt FSM die die einzelnen Teile des rpn Rechner zusammensetzen sollte funtioniert (noch) nicht korrekt. Dies konnte leider nicht in eine vernünftigen Zeit behoben werden.