SČÍTAČKA, LOGICKÉ OBVODY ÚVOD Konzultanti: Peter Žilavý, Jindra Vypracovali: Petr Koupý, Martin Pokorný Datum: 12.7.2006 Naším úkolem bylo sestrojit pomocí logických obvodů (tzv. hradel) jednoduchou 4 bitovou kalkulačku, která by uměla alespoň sčítat. Výsledkem naší práce mělo být ucelené řešení se vstupní a výstupní jednotkou, čtyřmi moduly pro výpočet jednotlivých bitů a napájení. Základní typy logických hradel jsou vyobrazeny v následující tabulce: A B neg A A and B A or B A nand B A nor B A xor B 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 neg negace nand negace konjunkce and konjunkce nor negace disjunkce or disjunkce xor exclusive or = negace ekvivalence Pozn. 1: Více stejných hradel je schopno tvořit jiná hradla (např. ze 3 hradel nand hradlo or). Pozn. 2: Logická nula je v elektrickém obvodu reprezentována napětím v rozmezí 0V až 0,8V. Logická jednička potom napětím 3,2V až 5V. Práce s binární soustavou Převody: TEORIE (14) 10 = (1110) 2 14 mod 2 = 0 (14 div 2) mod 2 = 7 mod 2 = 1 (7 div 2) mod 2 = 3 mod 2 = 1 (3 div 2) mod 2 = 1 mod 2 = 1 Výsledné číslo zapisujeme pozpátku, tedy 1110. (1110) 2 = (14) 10 1 x 2 3 + 1 x 2 2 + 1 x 2 1 + 0 x 2 0 = 14 Sčítání: Sčítání probíhá na principu hradla xor, přičemž pokud se sečtou dvě logické 1, pak dochází k přenosu logické 1 do vyššího řádu. Binárně Desítkově 1011 11 1001 9 10100 20 Odčítání: Je analogické ke sčítání kladného a záporného čísla. Pro zápis záporného čísla se používá tzv. doplňkový kód. Pro záporná čísla platí tato pravidla: 1) Číslo se zapíše stejně, jako kdyby bylo kladné (kromě prvního bitu ten bude 1, což určuje záporné číslo) 2) Všechny bity kromě prvního se invertují (z jedniček se stanou nuly a z nul jedničky) 3) K takto vzniklému číslu se ještě standardně přičte jednička
Tak například pro zápis čísla -5 do 8 bitů vypadá předchozí postup následovně: 1) Zapíšeme číslo 5 (00000101) 2) První bit změníme na 1 (10000101) 3) Invertujeme dané bity (11111010) 4) Přičteme 1 a získáme 11111011 Při sečtení kladného a záporného binárního čísla je nutné ignorovat bit v nejvyšším řádu výsledku. Binárně Desítkově 0101 = 101 5 1101-3 10010 = 0010 = 10 2 Příprava V prvním kroku bylo třeba zjistit, jakým způsobem musíme zapojit jednotlivé obvody za sebe, aby výsledkem byl celkový součet. O součet každého bitu se stará samostatný obvod. K navržení schématu nám pomohla tabulka pravdivostních hodnot. Každý bit pracuje se dvěma vstupy A a B a přenosem z minulého bitu P. První zvýrazněný sloupec vyjadřuje výsledek součtu V. Druhý zvýrazněný sloupec vyjadřuje přenos do vyššího řádu P out. A B P C = (A xor B) C xor P A and B C and P (A and B) or (C and P) 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 0 1 Došli jsme tedy k tomuto zapojení: A B xor xor V P in and and or P out
PRAXE Testovací modul Následně jsme vyrobili první testovací modul, na kterém jsme ověřili správnost zapojení jednotlivých prvků. Pro testovací bit jsme jako podklad zvolili MDF desku ta se ale kvůli své malé tloušťce neosvědčila (nemohli jsme do ní zatlouci hřebíčky dostatečně hluboko a při zatloukání vedlejšího se ten minulý uvolnil). Pro výsledné moduly jsme tedy použili smrkové destičky. Celková konstrukce Celý obvod se skládá ze 4 samostatných modulů pro bity (8x12cm), vstupního modulu klávesnice (7x12cm), výstupního modulu s LED diodami (6x7cm) a základové desky (36x36cm) se zdrojem a vypínačem. Pro názornost jsme upustili od letování na tištěný spoj, na kterém není při pohledu shora vidět propojení jednotlivých prvků. Základem modulů se tedy staly smrkové destičky, na které se v místech pozic jednotlivých součástek natloukly mosazné hřebíčky. Moduly se po dokončení přilepily tavnou pistolí na základovou desku. Bitové moduly Z teoretické části plyne, že pro každý bit jsou nutná hradla and, or a xor. Vzhledem k tomu, že mezi hradly or a xor je rozdíl pouze v jednou případě, ke kterému v našem zapojení nikdy nemůže dojít, mohli jsme místo hradla or (a tedy dalšího integrovaného obvodu) použít již implementované hradlo xor. Tato skutečnost plyne ze zapojení schématu. Registrace přenosu do vyššího řádu probíhá na dvou místech před a po prvním hradle xor. Pokud k registraci přenosu dojde před hradlem, znamená to, že oba vstupy byly 1. Výsledek jejich součtu je ale potom 0, a tedy bez ohledu na přenos z minulého bitu nedojde k registraci za hradlem. Podobně to platí obráceně. Pokud tedy na hradle or nikdy nebudou zároveň dvě logické 1, můžeme místo něj použít hradlo xor. Pro hradlo xor byl použit integrovaný obvod 74HCT86E a pro hradlo and potom MH54ALS08. Každý tento integrovaný obvod obsahuje 2 řady nožiček po 7 kusech, celkem tedy 14, z nichž dvě jsou potřebné pro napájení a zbylých dvanáct je využito pro logické operace. Pro každou operaci, kterou naše kalkulačka používá, jsou potřeba dva vstupy a jeden výstup. - I 1,1 I 1,2 O 1 I 2,1 I 2,2 O 2 14 13 12 11 10 9 8 Integrovaný obvod 1 2 3 4 5 6 7 I 3,1 I 3,2 O 3 I 4,1 I 4,2 O 4 + Každý integrovaný obvod tedy obsahuje 4 hradla, ovšem pro názornost a kvůli rozdělení sčítačky na jednotlivé moduly jsme každý bit osadili samostatnou dvojicí těchto integrovaných obvodů. 3 z 8 hradel jsou tedy nevyužity. Na vstupu každého modulu je dvojice odpovídajících bitů ze sčítaných čísel (A, B) a přenos z minulého bitu (P in ). Výstupem je výsledek součtu (V) a přenos do dalšího řádu (P out ). Jedinou výjimkou je první bit, jehož konstrukce je díky absenci přenosu z minulého řádu mnohem jednodušší. Výstupní prvek
Výsledek sčítání je realizován 5-ti svítivými LED diodami. Vstupem na tuto výstupní jednotku jsou výsledky všech bitů a ještě přenos z posledního bitu. Každá dioda je k napájení připojena přes vlastní 330Ω odpor. Pozn. 3: Celkově lze tedy ze dvou 4 bitových čísel získat sčítáním číslo 5-ti bitové (maximální součet = 15 + 15 = 30 = (1110) 2 ). Všech 5 diod nebude nikdy rozsvíceno, protože hodnota (11111) 2 odpovídá číslu 31, k jejímuž dosažení by byl potřeba alespoň jeden 5-ti bitový vstup. Vstupní prvek Čísla, která chceme sečíst zadáváme na klávesnici, která je tvořena dvěma řádkami čtyř přepínačů. Každý řádek představuje jedno číslo, jeden 4 bitový vstup. Přepínače jsou k desce přilepeny (stejně jako všechny moduly k základní desce) tavnou pistolí. Výstupem celého modulu jsou dvě 4 bitová čísla (A 1 A 2 A 3 A 4 a B 1 B 2 B 3 B 4 ). Základní deska Jednotlivé moduly jsou na připojeny na společné napájení tvořené jednou plochou 4,5V baterií. Ta je k desce přidělána pomocí gumičky, takže je vyměnitelná a přesto drží ve své pozici i při překlopení desky vzhůru nohama (testováno se všemi moduly). Napájecí část obvodu je také vybavena vypínačem (opět přilepeném tavnou pistolí). ZÁVĚR Úkol projektu - vytvořit alespoň 4 bitovou sčítačku - byl úspěšně splněn. Tento projekt jsme si vybrali, protože nás zaujala myšlenka zrealizovat logický obvod názornou, demonstrační formou. Nápady na konečnou podobu jednotlivých modulů přicházely postupně napřed vznikl návrh sčítacích modulů, potom výstupního a nakonec vstupního modulu. Na začátku projektu se např. vůbec nepočítalo s klávesnicí, vypínačem a zdrojem integrovaným na základní desce. Při vymýšlení a sestavování jsme si zopakovali výrokovou logiku a praktickou realizaci složitějšího elektrického obvodu. Naše díky patří konzultantům za jejich rady a vstřícný přístup.
PŘÍLOHA - testovací modul - - celkový pohled -
- výpočetní modul - výstupní modul -
- vstupní modul -