Karnaughova mapa je prostředek pro minimalizaci logických obvodů. Pro pochopení Karnaughovy mapy musíme první pochopit Grayův kód.
Grayův kód je binární číselná soustava, ve které se každé dvě po sobě jdoucí hodnoty liší v jedné bitové pozici.
Příkladná tabulka pro 3 bity (tučně zvýrazněný změněný bit):
A | B | C |
---|---|---|
0 | 0 | 0 |
0 | 0 | 1 |
0 | 1 | 1 |
0 | 1 | 0 |
1 | 1 | 0 |
1 | 1 | 1 |
1 | 0 | 1 |
1 | 0 | 0 |
Máme pravdivostní tabulku se vstupy
A | B | C | D | Q | index bitu |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 1 | 1 |
0 | 0 | 1 | 0 | 1 | 2 |
0 | 0 | 1 | 1 | 1 | 3 |
0 | 1 | 0 | 0 | 0 | 4 |
0 | 1 | 0 | 1 | 0 | 5 |
0 | 1 | 1 | 0 | 0 | 6 |
0 | 1 | 1 | 1 | 0 | 7 |
1 | 0 | 0 | 0 | 1 | 8 |
1 | 0 | 0 | 1 | 1 | 9 |
1 | 0 | 1 | 0 | 1 | 10 |
1 | 0 | 1 | 1 | 1 | 11 |
1 | 1 | 0 | 0 | 1 | 12 |
1 | 1 | 0 | 1 | 1 | 13 |
1 | 1 | 1 | 0 | 0 | 14 |
1 | 1 | 1 | 1 | 0 | 15 |
- Vytvoříme tabulku pomocí indexů v pravdivostní tabulce (odvíjí se od Grayova kódu). Neboli doplníme do obrázku
Vznikne nám následující tabulka
- Zakroužkujeme sousedy
Musíme zakroužkovat všechny
- Vytvoříme výrazy
- Růžová -
$A \cdot \overline{C}$ - Zelená -
$A \cdot \overline{B}$ - Modrá -
$\overline{B} \cdot C$ - Oranžová -
$\overline{A} \cdot \overline{B} \cdot \overline{C} \cdot D$
- Sečteme výrazy
- Upravíme výraz
- Výsledný výraz si můžeme postavit v logisimu viz. obrázek
- Zkontrolujeme pravdivostní tabulku.
- Klikneme pravým tlačítkem na circuit v nabídce (základní je main)
- Klikneme na tlačítko Build Circuit
- Potvrdíme tlačítkem OK, popřípadě Yes
- Vybereme v nabídce Table
- Dostaneme tabulku viz. obrázek
Máme pravdivostní tabulku se vstupy
A | B | C | Q |
---|---|---|---|
0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 0 |
- Vytvoříme si Karnaughovu mapu (tam kde jsou písmena, tak je hodnota nastavená na 1)
- Doplníme do tabulky
- Zakroužkujeme největší obdelníky a vyjádříme je
Vidíme, že je blok nezávislý na tom, jestli je
-
$B$ musí být$0$ -
$C$ musí být$0$
Součin jsme použili, protože je &&
)
Jelikož se jedná o torus (viz. gif), můžeme označit i hodnoty, které se nacházejí "vedle sebe" (na začátku a na konci)
Vidíme, že je výraz
-
$A$ musí být$0$ -
$C$ musí být$0$
- Sjednotíme výrazy
Výsledné výrazy sečteme
- Výsledný výraz si můžeme postavit v logisimu viz. obrázek
- Zkontrolujeme pravdivostní tabulku.
- Klikneme pravým tlačítkem na circuit v nabídce (základní je main)
- Klikneme na tlačítko Build Circuit
- Potvrdíme tlačítkem OK, popřípadě Yes
- Vybereme v nabídce Table
- Dostaneme tabulku viz. obrázek
Další kapitola - Příprava na test