BI-SAP.21 Struktura a architektura počítačů
Jdi na navigaci předmětu

Ú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.

Jednobitová sčítačka

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ě:

ABCoutS
0000
0101
1001
1110

Výsledek: S = A xor B, Cout = A and B

Pokud budeme navrhovat úplnou sčítačku, bude výsledná tabulka:

ABCinCoutS
00000
00101
01001
01110
10001
10110
11010
11111

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.

Zkrat vodičů 1

Po uvolnění myši se tak oba vodiče propojí.

Zkrat vodičů 2

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 Ikony - IO) 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 Ikona - Change. 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 Ikona - Edit) - 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 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.

Vytvoření čtyřbitové sčítačky - Blok

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.

Vytvoření čtyřbitové sčítačky - 4 bity

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 Ikona - Edit) - 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

Basys 3 online

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í.