Zadanie 1: Mini-kalkulator¶
Data ogłoszenia: 17.10.2018
Termin oddania: 14.11.2018
Napisać prosty kalkulator operujący na liczbach 4-bitowych. Wejściami do
kalkulatora będą ustawiane na sw[7:4]
(nazwijmy je a
) oraz
sw[3:0]
(nazwijmy je b
). Wejścia będą traktowane jako liczby bez
znaku. Przyciskami będziemy wybierać tryb pracy kalkulatora:
btn[0]
naciśnięty: dodawanie i odejmowanie. Naled[7:4]
pokazujemya+b
, a naled[3:0]
pokazujemya-b
.btn[1]
naciśnięty: minimum i maksimum. Naled[7:4]
pokazujemymin(a, b)
, a naled[3:0]
pokazujemymax(a, b)
.btn[2]
: mnożenie. Naled[7:0]
pokazujemy 8-bitowy wynik mnożeniaa * b
.btn[3]
: dzielenie. Naled[7:4]
pokazujemya / b
, a naled[3:0]
pokazujemya % b
. Jeślib == 0
, możemy pokazać cokolwiek.brak naciśniętych przycisków: diody wyłączone.
więcej niż jeden naciśnięty przycisk: dowolnie.
Jako część rozwiązania należy napisać układ kombinacyjny dzielący dwie liczby, zrealizowany jako moduł parametryzowany długością liczb w bitach. Najprościej jest to zrobić, generując wynik dzielenia od góry bit po bicie i odejmując za każdym razem odpowiednio przesunięty dzielnik, jeśli wynikowym bitem jest 1 (ale istnieją bardziej zaawansowane algorytmy).