.. _z1: ========================== 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. Na ``led[7:4]`` pokazujemy ``a+b``, a na ``led[3:0]`` pokazujemy ``a-b``. - ``btn[1]`` naciĹniÄty: minimum i maksimum. Na ``led[7:4]`` pokazujemy ``min(a, b)``, a na ``led[3:0]`` pokazujemy ``max(a, b)``. - ``btn[2]``: mnoĹźenie. Na ``led[7:0]`` pokazujemy 8-bitowy wynik mnoĹźenia ``a * b``. - ``btn[3]``: dzielenie. Na ``led[7:4]`` pokazujemy ``a / b``, a na ``led[3:0]`` pokazujemy ``a % b``. JeĹli ``b == 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).