Układy kombunacyjne i arytmetyczne
Projekty z użyciem bramek NOR, OR, AND, NAND,
XOR, INV (zamiast negacji na wejściu można stosować bramki np. NOR2B1)
Nie wolno posługiwać się żadnymi pomocami
naukowymi (jedynie opisem skryptu), nie wolno rozmawiać pomiędzy osobami w
różnych zespołach, dozwolone jest tylko posiadanie kartki i długopisu (kartka
z projektem należy pokazać prowadzącemu), w razie jakichkolwiek wątpliwości
należy zwracać się do prowadzącego (a
nie do kolegi). Aby pozytywnie zaliczyć projekt na podaną ocenę należy pokazać
projekt *.sch oraz go odpowiednio zasymulować. Student może wybrać ocenę
(a nie projekt), którą chce uzyskać, na podstawie tej oceny prowadzący wybiera
przypadkowy projekt (np. dla oceny 4.0 projekty dla oceny 3.0 oraz
4.0)
Ocena 3.0
- Zaprojektować układ inkrementujący o stałą
wartość 1.
- Zaprojektować układ dekrementujący o
stałą wartość 1.
- Zaprojektować układ konwersji liczby
ujemnej zapisanej w kodzie binarnym do kodu uzupełnień do 2.
- Zaprojektować układ dodający dwie liczby.
- Zaprojektować układ odejmujący dwie liczby.
- Zaprojektować układ porównujący z wartością
stałą.
- Zaprojektować dekoder z kodu BCD (cyfry
0-9) na kod siedmiosegmentowy dla wybranego przez prowadzącego segmentu wyświetlacza
(z zastosowaniem optymalnego kodowania stanów dowolnych!)
- Zaprojektować dekoder z kodu hex na kod
siedmosegmentowy tylko dla wybrany przez prowadzącego segment (dla kodów
BCD: A-F kodowanie następujące: A-A, B-b, C-C, D-d, E-E, F-F, z zastosowaniem
optymalnego kodowania!)
- Zaprojektować układ sprawdzający czy
dana liczba z zakresu 0-15 jest podzielna przez n (np. liczba jest podzielna
przez 3 lub 5) z optymalną logiką.
- Zaprojektować układ obliczający pierwiastek
kwadratowy / sześcienny danej liczby 0-15. Jeżeli liczba nie ma pierwiastka
naturalnego wskazuje a) dowolną wartość b) same zera c) same jedynki, d) liczbę
naturalną z zaokrągleniem w dół.
- Zaprojektować układ obliczający czy dana
liczba binarna np. 0-255 ma parzystą/ nieparzystą liczbę jedynek
- Zaprojektować dekoder kodu BCD na 1 z
10
Ocena 4.0 - Zaprojektować układ
inkrementujący lub dekrementujący o stałą wartość w zależności od wejściowego
sygnału kontrolnego.
- Zaprojektować układ dodający lub odejmujący
dwie liczby w zależności od wejściowego sygnału kontrolnego.
- Zaprojektować układ porównujący dwie
liczby.
- Zaprojektować układ dodający z wskaźnikiem
przepełnienia pracujący w kodzie U2.
- Zaprojektować układ dodający i odejmujący
w kodzie U2 ze wskażnikiem przepełnieniem.
- Zaprojektować układ inkrementatora równoległego
(tzn. przeniesienia nie propagują)
- Zaprojektować układ konwersji z kodu
znak moduł na kod a) uzupełnień do dwóch (U2) b) uzupełnień do jednego (U1).
- Zaprojektować układ dający moduł z liczby
zapisanej w kodzie a) U2 b)U1
Ocena 5.0 - Zaprojektować układ
inkrementujący i dekrementujący o 1 (w zależnoci od sygnału kontrolnego)
typu Ripple-Block Carry-Look Ahead (p. 47 [2]) z użyciem n-bitowych (n=2-4)
bloków inkrementatora równoległego.
- Zaprojektować układ dodający typu Ripple
Carry z użyciem (2-3)-bitowych bloków typu Carry Look Ahead.
Literatura:
[1] Madisetti V. K. VLSI Digital Signal Processors, II 209484
[2] Omondi A.R. Computer Arithmetic Systems, II 209227.
Układy kombinacyjne: kombin.zip
Układy dodające: dodaj.zip