Úloha 2 – Čtyřbitová sčítačka
1. Zadání
Navrhněte čtyřbitovou sčítačku složenou z jednobitových úplných sčítaček. Obvod realizujte na vývojovém kitu Basys 3 v prostředí Logisim Evolution.
Vstupy pojmenujte a přiřaďte na vývody:
- A0, A1, A2, A3 na SW0, SW1, SW2, SW3
- B0, B1, B2, B3 na SW4, SW5, SW6, SW7
- CIN na BTNR
Výstupy pojmenujte a přiřaďte na vývody:
- S0, S1, S2, S3 na LD0, LD1, LD2, LD3
- COUT na LD4
1.1. Vizualizace
Na webu https://crypto.fit.cvut.cz/bi-sap/#asadder si můžete prohlédnout vizualizaci úlohy na virtuálním vývojovém kitu.
2. Teorie
Nejprve se podíváme na návrh jednobitové úplné sčítačky. Sčítačku si nejdříve představíme jako černou skříňku se vstupy a výstupy:
A a B jsou vstupy, které chceme sečíst, vyjádřeny jako stavy 0 nebo 1. Cin je přenos z nižšího řádu. S je součet, Cout je přenos do vyššího řádu.

Popíšeme-li sčítačku z aritmetického hlediska, pak sčítačka počítá výraz A + B + Cin a dává ho na výstupu v binární soustavě jako (Cout, S), kde Cout má váhu 2 a S má váhu 1. To se dá také napsat jako 2*Cout + S = A + B + Cin.
Jednodušší varianta sčítačky je tzv. poloviční sčítačka (půlsčítačka), která sčítá jen 2 bity. Potom odpadne jeden ze vstupů (např. vstup Cin).
Výsledná tabulka pro půlsčítačku bude vypadat následovně:
| A | B | Cout | S | |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | |
| 0 | 1 | 0 | 1 | |
| 1 | 0 | 0 | 1 | |
| 1 | 1 | 1 | 0 |
Výsledek: S = A xor B, Cout = A and B
Pokud budeme navrhovat úplnou sčítačku, bude výsledná tabulka:
| A | B | Cin | Cout | S | |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | |
| 0 | 0 | 1 | 0 | 1 | |
| 0 | 1 | 0 | 0 | 1 | |
| 0 | 1 | 1 | 1 | 0 | |
| 1 | 0 | 0 | 0 | 1 | |
| 1 | 0 | 1 | 1 | 0 | |
| 1 | 1 | 0 | 1 | 0 | |
| 1 | 1 | 1 | 1 | 1 |
Sčítačka počítá stejně, jako se sčítá pod sebe, ovšem ve dvojkové soustavě. Jednobitová verze se může zdát poněkud triviální, dále ale uvidíme, jak již hotové jednobitové sčítačky skládat dohromady a vytvořit skutečně použitelnou aplikaci.
S doplněním na odečítaní a převodníkem z desítkové a do desítkové soustavy spolu s využitím 7segmentového displeje máme malou kalkulačku. Převodníky do desítkové soustavy sice nejsou součástí tohoto předmětu, ale dekodér na 7segmentový displej si později vyzkoušíte.
3. Realizace
Založení projektu a vytvoření schématu je stejné jako v případě jednoduchých hradel. Jen zvolte jiné jméno projektu (např. adder4) (viz Logická hradla – 2. Realizace).
Vytvořte pomocí základních hradel obvod, který implementuje funkci úplné jednobitové sčítačky. Zapojení odvoďte z pravdivostní tabulky, nebo jej nalezněte v přednáškách (nebo na internetu).
Varování:
Pokud byste chtěli využít vícevstupé hradlo XOR, tak nezapomeňte přepnout jeho chování na chování dle standardní funkce XOR (vyberte hradlo a v levé dolní části nastavte Multiple-Input Behavior na When an odd number are on).
Po vybrání již vloženého prvku se v levé dolní části zobrazí vlastnosti daného prvku, které můžete upravovat (např. název Label, otočení Facing, počet bitů Data bits, velikost hradla Gate Size, počet vstupů hradla Number Of Inputs, …).
3.1. Propojení hradel
Po vložení všech hradel, která tvoří jednobitovou sčítačku, je potřeba některá hradla propojit. Propojit jednotlivé prvky lze pomocí tažení levým tlačítkem myši. Uvolněním myši se vloží propojovací vodič. Uvolněním myši na místě mimo prvky a opakovaným tažením lze nastavit tvar propojení.
Varování:
Pokud propojovací vodič prochází libovolným vstupem/výstupem, bude k němu automaticky připojen. Obdobná situace platí i v případě rohů. Na následujícím obrázku již existuje propojení dvou hradel AND. Nově kreslený vodič z hradla NOT prochází přes rohy již existujícího vodiče.
Po uvolnění myši se tak oba vodiče propojí.
V případě na obrázku došlo propojením vodičů ke zkratu dvou zdrojů signálu - v okně Logisimu se vodič zbarvil dočervena a hlásí chybovou hodnotu E, v reálném případě by takový zkrat způsobil poškození vývojového kitu. Zkrat je tedy nežádoucí, ale poškození vývojového kitu se obávat nemusíte - během překladu jsou případné zkraty několikrát kontrolovány a pokud by v návrhu zkrat byl, tak by překlad skončil chybou.
3.2. Připojení hradel na vstupy/výstupy
Až schéma jednobitové sčítačky dokončíte a jednotlivá hradla propojíte, tak je potřeba připojit nepřipojené vstupy/výstupy hradel na vstupní/výstupní porty schématu. Postup je stejný jako v příkladu na logická hradla, tj. použijte ikony Add Pin (ikony
) v horní liště. Pro rychlejší práci můžete použít klávesové zkratky Ctrl+5 pro vstupní pin a Ctrl+6 pro výstupní.
Porty pojmenujte tak, aby odpovídaly názvům uvedeným v zadání (tj. A, B, Cin, Cout, S). Port pojmenujete pomocí dvojkliku.
3.3. Otestování funkce jednobitové sčítačky
Pro aktivaci módu pro změnu hodnot použijte ikonu
. Vyzkoušejte jednotlivé kombinace dle pravdivostní tabulky uvedené v zadání.
Pro ukončení simulace se nezapomeňte přepnout zpět do módu pro editování schématu (ikona
) - jinak nemůžete pokračovat v editaci.
3.4. Použití jednobitové sčítačky jako kopírovatelného symbolu
Pro vytvoření čtyřbitové sčítačky je potřeba použít čtyři jednobitové sčítačky. Abyste nemuseli sčítačku 4x kopírovat (a případné chyby pak 4x opravovat), tak založte nové schéma (ikona Add circuit
v levé horní části) a pojmenujte ho (např. adder4).
Můžete přejmenovat i existující schéma jednobitové sčítačky. Klikněte v levé horní části na název schématu se sčítačkou a v levé dolní části upravte Circuit Name. Pozor: jméno obvodu nesmí být klíčové slovo používané v Logisim (např. adder je tedy zakázané, protože Logisim obsahuje i bloky s předpřipravenou sčítačkou).
Nyní můžete vložit jednobitovou sčítačku do nového schématu podobně jako základní logická hradla.
Přetáhněte jednobitovou sčítačku do schématu ještě 3x (nebo ji zkopírujte a opakovaně vložte) a propojte jednotlivé bloky dle obrázku.
Porty pojmenujte tak, jak je psáno v tomto návodu (A0, A1, A2, A3, B0, B1, B2, B3, CIN, S0, S1, S2, S3, COUT).
3.5. Otestování funkce celé sčítačky
Před nahráním do vývojového kitu můžete vyzkoušet správnost zapojení celého zapojení. Není nutné zkoušet všech 512 kombinací, ale vyzkoušejte několik hodnot a ověřte, že výsledné zapojení skutečně sčítá dvě čtyřbitová čísla.
Pro ukončení simulace se nezapomeňte přepnou zpět do módu pro editování schématu (ikona
) - jinak nemůžete pokračovat v editaci.
3.6. Syntéza schématu a nahrání návrhu do vývojového kitu
Nyní schéma přeložte stejným postupem jako u příkladu na jednoduchá hradla (viz Logická hradla – 2.4. Syntéza schématu) a nahrajte jej do vývojového kitu.
4. Otestování vytvořeného návrhu
Vstupy a výstupy by měly být přiřazeny dle následujícího seznamu:
- A0, A1, A2, A3 na SW0, SW1, SW2, SW3
- B0, B1, B2, B3 na SW4, SW5, SW6, SW7
- CIN na BTNR
- S0, S1, S2, S3 na LD0, LD1, LD2, LD3
- COUT na LD4
Dvě čtveřice přepínačů tedy určují binární hodnoty vstupů sčítačky, pětice LEDek (výstupy S dohromady s COUT) zobrazí výsledek (také binárně).
5. Jak by to mělo vypadat
6. Odevzdání úlohy na EET
Pokud cvičící neurčí jinak, odevzdejte řešení úlohy na EET dle pokynů na hlavní stránce cvičení.



