Wydział Informatyki Katedra Systemów Komputerowych Laboratorium Systemów Logicznych i Mikroprogramowalnych |
Data: 27.10.2007 |
Ćwiczenie nr 1 Temat: Układy kombinacyjne Zespół nr 5: Grupa nr 5
|
Prowadzący: mgr inż. Wiktor Jakowluk Ocena: |
Zadanie nr 2
Znaleźć funkcję przełączającą, która będzie prezentować wyniki referendum wśród uczestników 5-osobowego zebrania. Głos przewodniczącego ma wartość 3 głosów pozostałych uczestników zebrania.
Przyjąć konwencję: 0 - głos „przeciw”, 1 - głos „za”.
Tablica prawdy utworzona na podstawie powyższego opisu słownego:
# |
A |
B |
C |
D |
E |
f |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
2 |
0 |
0 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
0 |
1 |
1 |
0 |
4 |
0 |
0 |
1 |
0 |
0 |
0 |
5 |
0 |
0 |
1 |
0 |
1 |
0 |
6 |
0 |
0 |
1 |
1 |
0 |
0 |
7 |
0 |
0 |
1 |
1 |
1 |
0 |
8 |
0 |
1 |
0 |
0 |
0 |
0 |
9 |
0 |
1 |
0 |
0 |
1 |
0 |
10 |
0 |
1 |
0 |
1 |
0 |
0 |
11 |
0 |
1 |
0 |
1 |
1 |
0 |
12 |
0 |
1 |
1 |
0 |
0 |
0 |
13 |
0 |
1 |
1 |
0 |
1 |
0 |
14 |
0 |
1 |
1 |
1 |
0 |
0 |
15 |
0 |
1 |
1 |
1 |
1 |
1 |
16 |
1 |
0 |
0 |
0 |
0 |
0 |
17 |
1 |
0 |
0 |
0 |
1 |
1 |
18 |
1 |
0 |
0 |
1 |
0 |
1 |
19 |
1 |
0 |
0 |
1 |
1 |
1 |
20 |
1 |
0 |
1 |
0 |
0 |
1 |
21 |
1 |
0 |
1 |
0 |
1 |
1 |
22 |
1 |
0 |
1 |
1 |
0 |
1 |
23 |
1 |
0 |
1 |
1 |
1 |
1 |
24 |
1 |
1 |
0 |
0 |
0 |
1 |
25 |
1 |
1 |
0 |
0 |
1 |
1 |
26 |
1 |
1 |
0 |
1 |
0 |
1 |
27 |
1 |
1 |
0 |
1 |
1 |
1 |
28 |
1 |
1 |
1 |
0 |
0 |
1 |
29 |
1 |
1 |
1 |
0 |
1 |
1 |
30 |
1 |
1 |
1 |
1 |
0 |
1 |
31 |
1 |
1 |
1 |
1 |
1 |
1 |
Funkcja wygenerowana za pomocą programu Multisim 7:
F=bcde+ab+ac+ad+ae
Projekt układu z elementów AND i OR powstały w programie Multisim 7:
Narysowana przez zespół wersja uproszczona:
Sprawdzenie otrzymanej postaci funkcji przy pomocy tablicy Karnaugha:
F=bcde+ab+ac+ad+ae
Minimalizacja funkcji metodą Quine'a-McCluskeya:
Zbiór argumentów, dla których funkcja przyjmuje wartość logiczną 1:
F1={15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}
Dla każdego z argumentów sprawdzamy w tablicy prawdy jego postać binarną - wektor. Grupujemy wektory o tej samej liczbie jedynek, szeregując je rosnąco (tabela A). Porównujemy każdą kombinację z danej grupy z każdą kombinacją należącą do grupy następnej i łączymy te, które różnią się tylko jednym bitem (tabela B). Wykorzystane wektory oznaczamy symbolem +. Z otrzymaną tabelą postępujemy tak, jak z poprzednią aż do wyczerpania się możliwych połączeń (tabele C i D). Każdą kombinację nie podlegającą dalszemu łączeniu uznajemy za implikant prosty.
tabela A tabela B
17 |
10001 |
+ |
|||
18 |
10010 |
+ |
|||
20 |
10100 |
+ |
|||
24 |
11000 |
+ |
|||
|
|||||
19 |
10011 |
+ |
|||
21 |
10101 |
+ |
|||
22 |
10110 |
+ |
|||
25 |
11001 |
+ |
|||
26 |
11010 |
+ |
|||
28 |
11100 |
+ |
|||
|
|||||
15 |
01111 |
+ |
|||
23 |
10111 |
+ |
|||
27 |
11011 |
+ |
|||
29 |
11101 |
+ |
|||
30 |
11110 |
+ |
|||
|
|||||
31 |
11111 |
+ |
|||
17 i 19 |
100*1 |
+ |
|||
17 i 21 |
10*01 |
+ |
|||
17 i 25 |
1*001 |
+ |
|||
18 i 19 |
1001* |
+ |
|||
18 i 22 |
10*10 |
+ |
|||
18 i 26 |
1*010 |
+ |
|||
20 i 21 |
1010* |
+ |
|||
20 i 22 |
101*0 |
+ |
|||
20 i 28 |
1*100 |
+ |
|||
24 i 25 |
1100* |
+ |
|||
24 i 26 |
110*0 |
+ |
|||
24 i 28 |
11*00 |
+ |
|||
19 i 23 |
10*11 |
+ |
|||
19 i 27 |
1*011 |
+ |
|||
21 i 23 |
101*1 |
+ |
|||
21 i 29 |
1*101 |
+ |
|||
22 i 23 |
1011* |
+ |
|||
25 i 27 |
110*1 |
+ |
|||
25 i 29 |
11*01 |
+ |
|||
26 i 27 |
1101* |
+ |
|||
26 i 30 |
11*10 |
+ |
|||
28 i 29 |
1110* |
+ |
|||
28 i 30 |
111*0 |
+ |
|||
15 i 31 |
*1111 |
bcde |
|||
23 i 31 |
1*111 |
+ |
|||
27 i 31 |
11*11 |
+ |
|||
29 i 31 |
111*1 |
+ |
|||
30 i 31 |
1111* |
+ |
tabela C
(17 i 19) i (21 i 23) |
10**1 |
+ |
(17 i 21) i (19 i 23) |
|
|
(17 i 19) i (25 i 27) |
1*0*1 |
+ |
(17 i 25) i (19 i 27) |
|
|
(17 i 21) i (25 i 29) |
1**01 |
+ |
(17 i 25) i (21 i 29) |
|
|
(18 i 19) i (22 i 23) |
10*1* |
+ |
(18 i 22) i (19 i 23) |
|
|
(18 i 19) i (26 i 27) |
1*01* |
+ |
(18 i 26) i (19 i 27) |
|
|
(18 i 22) i (26 i 30) |
1**10 |
+ |
(20 i 21) i (22 i 23) |
101** |
+ |
(20 i 22) i (21 i 23) |
|
|
(20 i 21) i (28 i 29) |
1*10* |
+ |
(20 i 28) i (21 i 29) |
|
|
(20 i 22) i (28 i 30) |
1*1*0 |
+ |
(24 i 25) i (26 i 27) |
110** |
+ |
(24 i 26) i (25 i 27) |
|
|
(24 i 25) i (28 i 29) |
11*0* |
+ |
(24 i 28) i (25 i 29) |
|
|
(24 i 26) i (28 i 30) |
11**0 |
+ |
(24 i 28) i (26 i 30) |
|
|
(19 i 23) i (27 i 31) |
1**11 |
+ |
(19 i 27) i (23 i 31) |
|
|
(21 i 23) i (29 i 31) |
1*1*1 |
+ |
(21 i 29) i (23 i 31) |
|
|
(22 i 23) i (30 i 31) |
1*11* |
+ |
(25 i 27) i (29 i 31) |
11**1 |
+ |
(25 i 29) i (27 i 31) |
|
|
(26 i 27) i (30 i 31) |
11*1* |
+ |
(26 i 30) i (27 i 31) |
|
|
(28 i 29) i (30 i 31) |
111** |
+ |
(28 i 30) i (29 i 31) |
|
|
tabela D
((17 i 19) i (21 i 23)) i ((25 i 27) i (29 i 31)) |
1***1 |
ae |
((17 i 19) i (25 i 27)) i ((21 i 23) i (29 i 31)) |
|
|
((17 i 21) i (25 i 29)) i ((19 i 23) i (27 i 31)) |
|
|
((18 i 19) i (22 i 23)) i ((26 i 27) i (30 i 31)) |
1**1* |
ad |
((20 i 21) i (22 i 23)) i ((28 i 29) i (30 i 31)) |
|
|
((20 i 21) i (28 i 29)) i ((22 i 23) i (30 i 31)) |
|
|
((20 i 21) i (22 i 23)) i ((28 i 29) i (30 i 31)) |
1*1** |
ac |
((20 i 21) i (28 i 29)) i ((22 i 23) i (30 i 31)) |
|
|
((20 i 22) i (28 i 30)) i ((21 i 23) i (29 i 31)) |
|
|
((24 i 25) i (26 i 27)) i ((28 i 29) i (30 i 31)) |
11*** |
ab |
((24 i 25) i (28 i 29)) i ((26 i 27) i (30 i 31)) |
|
|
((24 i 26) i (28 i 30)) i ((25 i 27) i (29 i 31)) |
|
|
Tworzymy tablicę, w której wiersze odpowiadają otrzymanym implikantom prostym, a kolumny - argumentom zbioru F1:
Oznaczamy wszystkie kolumny z jednym znakiem +, odpowiadające im implikanty uznajemy za niezbędne, postacią minimalną naszej funkcji jest więc suma następujących implikantów: F=bcde+ab+ac+ad+ae
Wnioski:
Zespół rozwiązał zadanie trzema sposobami: posługując się programem Multisim 7, korzystając z tablicy Karnaugha oraz metodą Quine'a-McCluskeya. W każdym przypadku otrzymany wynik był identyczny.
3