240 likes | 432 Views
BCD sčítačka. Střední odborná škola Otrokovice. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785, financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
E N D
BCD sčítačka Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785, financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze. www.zlinskedumy.cz
BCD sčítačka Obsah tématu BCD čísla – vlastnosti (srovnání se 4 bitovými) Součet BCD čísel – příkladyBlokové schéma BCD sčítačky BCD detektor (odvození a realizace) BCD korekce (korektor) Realizace BCD sčítačky
Sčítání BCD čísel Malé zopakování vlastností BCD čísel: - jde o čtyřbitová čísla s omezeným rozsahem (desítkově 0 až 9, dvojkově 0000 až 1001) (Pozn. plný čtyřbitový rozsah je 0 až 15 desítkově, dvojkově 0000 až 1111) - BCD kód slouží pro jednoduché vyjádření desítkových čísel pomocí dvojkové soustavy - v nejčastějším typu BCD kódu jsou použity váhy (řády) 8-4-2-1 Příklad BCD čísel:
Sčítání BCD čísel Jak sečíst 2 BCD čísla? Nešlo by to jednoduše tak, jak jsme dosud sčítali ostatní čtyřbitová čísla? Šlo, ale ne vždy získáme správný výsledek. Příklad č. 1: (0101 + 0011 = 1000)BCD (0101 + 0011 = 1000)2 ( 5 + 3 = 8)10 Výsledky jsou správné, protože šlo sice o BCD čísla ale zároveň o dvojková čísla Příklad č. 2: (0101 + 0110 = 1011)BCD (0101 + 0110 = 1011)2 ( 5 + 6 = 11)10 Výsledky dvojkový a desítkový jsou správné, BCD ale nikoliv (1011 není BCD číslo, nevyhovuje desítkovému rozsahu 0 až 9).
Sčítání BCD čísel Příklad č. 3: (1100+ 0101 = 10001)BCD (1100 + 0101 = 10001)2 ( 12 + 5 = 17)10 Výsledky dvojkový a desítkový jsou správné, BCD ale nikoliv (chyba je už v prvním čísle: 1100 není BCD číslo, nevyhovuje desítkovému rozsahu 0 až 9). Příklad č. 4: (1001 + 1000 = 10001)BCD = (11)10 (1001 + 1000 = 10001)2 = (16+1 = 17)10 ( 9 + 8 = 17)10 Výsledky dvojkový a desítkový jsou správné, BCD ale nikoliv (sice jsou obě vstupní čísla i výsledek typu BCD, ale nevyšla shoda v desítkovém tvaru:9 + 8 je různé od 11, tedy 11 je různé od 17).
Sčítání BCD čísel Závěr: BCD sčítačka (jednoho řádu – např. jednotek nebo desítek apod.) bude obsahovat: - Testovací obvod – (BCD detektor) – pozná, zda jde o BCD číslo (budou potřeba celkem tři – dva vstupní a jeden po součtu) - Součtový obvod – 4 bitová paralelní sčítačka – např. typ 7483 - Opravný obvod – (BCD korektor) – opraví výsledek, aby měl správnou hodnotu (půjde o druhou čtyřbitovou paralelní sčítačku – např. typ 7483) Obr. 1: Základní blokové schéma BCD sčítačky
Sčítání BCD čísel Obr. 2: Podrobné blokové schéma BCD sčítačky
Sčítání BCD čísel – popis schématu Popis schématu: Máme sečíst 2 BCD čísla: číslo A (bity A3,A2, A1, A0) a číslo B (bity B3, B2, B1, B0) (ve schématu jsou čtyřbitová čísla značena širokou šipkou) TEST: - obě zadaná čísla jsou nejprve v BCD detektoru testována, zda vůbec jsou BCD typu - výstupy BCD obou detektorů X1 a X2 zde mají pouze informativní charakter (neumí tedy sčítání zablokovat v případě, že jedno či dokonce obě čísla nejsou BCD typu) - jak realizovat BCD detektor bude vysvětleno dále (odvození rovnice a schématu) SOUČET: - pak následuje součet obou čísel v první sčítačce (ve schématu označena číslem 1). - jde o čtyřbitovou paralelní sčítačku se sériovým přenosem do vyššího řádu, zde bude použit TTL typ (7483).
Sčítání BCD čísel – popis schématu SOUČET: Výstupy z této sčítačky jsou následující: – součet S1 je testován zda je BCD typu (tedy zda čtyřbitové číslo desítkově není v rozsahu 10 až 15) – výstup BCD detektoru X3 slouží v kombinaci s 5. bitem výsledku (C41) v logickém obvodu k vytvoření čísla B druhé sčítačky (ve schématu je označena jako BK) – je to tzv. opravný = korekční obvod – upraví předchozí součet, aby byl BCD typu nebo aby byl číselně správný – tato druhá sčítačka (ve schématu označena číslem 2) zpracovává tedy jako číslo A (zde AK) předchozí výsledek = součet S1 jako číslo B pomocné = korekční číslo – jak bude dále zdůvodněno, je jím buď číslo 0 (0000)2 nebo 6 (0110)2 - výsledek po opravě je pak označen jako S2 a jeho pátým bitem je pak C42
Sčítání BCD čísel – odvození BCD detektoru BCD detektor Zadání: Navrhněte logický obvod, který pro vstupní čtyřbitové číslo určí, zda je typu BCD. Řešení: a) pomocí tabulky a úvahy b) pomocí tabulky a úpravy rovnic pomocí tabulky vzniklých a) pomocí tabulky a úvahy Nejprve vytvoříme tabulku pro vstupy D, C, B, A – 4 vstupy znamenají 24 kombinací, tedy 16 řádků tabulky. Jak to bude s výstupem? Y = 0 pro čísla v rozmezí desítkově 0 až 9, tedy dvojkově 0000 až 1001 Y = 1 pro čísla větší než 9 – tedy v rozmezí desítkově 10 až 15, tedy dvojkově 1010 až 1111
Sčítání BCD čísel – odvození BCD detektoru Tabulka: Jak je z tabulky vidět, kdyby hranici tvořilo číslo 7, byla by rovnice jednoduchá Y = D (Y = 1, pokud D = 1) Tento výsledek nám „kazí“ čísla 8 a 9, která jsou také BCD typu. Uvažujme další bity: - vylučme bit A, střídá se sice pravidelně, ale nelze to využít - najděme pravidlo platné pro prostřední bity (C a B) - u čísel 10 až 15 je nejsou nikdy oba bity nulové (naopak u čísel 8 a 9 jsou) - jaká logická funkce dává pro dvě nuly nulu a jinak jedničky? - jde o funkci OR – tedy C + B Výsledek: Y = D . (C + B), Y tedy platí ( Y = 1), pokud platí, že D = 1 a současně v C nebo v B je aspoň jedna jednička (tj. mohou být i obě – viz čísla 14 a 15)
Sčítání BCD čísel – odvození BCD detektoru b) pomocí tabulky a úpravy rovnic pomocí tabulky vzniklých Z tabulky napíšeme rovnice a upravíme je:
Sčítání BCD čísel – odvození BCD detektoru Úpravy rovnice spočívají : 1) ve vytýkání stejných členů (v závorce pak zbude X + = 1) 2) v přidání stejného členu DCB (aby ze tří členů vznikly 4, tedy vhodné dvojice) 3) v opakování bodu 1) Pozn. Místo úpravy rovnice by bylo také možné využít metodu Karnaughovy mapy – vedla by ke stejnému výsledku Y = D . (C + B) Obr. 3: Schéma BCD detektoru
Sčítání BCD čísel – princip opravy (korekce) BCD součtu Opravný obvod – (BCD korektor) – opraví výsledek, aby měl správnou hodnotu (ne vždy bude oprava nutná) – kdy nastane potřeba opravy výsledku (součet vytvořený sčítačkou č. 1)? – pokud není výsledek BCD typu – viz Příklad č. 2: (0101 + 0110 = 1011)BCD ( 5 + 6 = 11)10 potřebovali bychom(0101 + 0110 = 10001)BCD – pokud je sice BCD typu, ale není číselně správný – viz Příklad č. 4: (1001 + 1000 = 10001)BCD = (11)10 ( 9 + 8 = 17)10 potřebovali bychom(1001 + 1000 = 10111)BCD = (17)10 – nebo pokud je sice BCD typu, ale není číselně správný – viz Příklad č. 5: (1000 + 1000 = 10000)BCD= (11)10 ( 8 + 8 = 16)10 potřebovali bychom(1001 + 1000 = 10110)BCD = (16)10
Sčítání BCD čísel – princip opravy (korekce) BCD součtu Opravný obvod – (BCD korektor) – z příkladů je vidět, že oprava výsledku spočívá v přičtení čísla 6 (110 dvojkově)
Sčítání BCD čísel – princip opravy (korekce) BCD součtu Opravný obvod – (BCD korektor) Jak realizovat přičtení čísla 6? – pomocí druhé čtyřbitové paralelní sčítačky (ve schématu z obr. 2 je označena jako korekční – č. 2) – jako vstup A (první číslo) slouží předchozí čtyřbitový součet S1 – jako vstup B (druhé číslo= opravné) slouží už zmíněná 6 (0110 dvojkově) Jak řešit situaci, kdy výsledek S1 je v pořádku a číslo 6 nechceme přičíst? – nepřičíst nic můžeme nahradit přičtením nuly (0000 dvojkově) Jak realizovat skutečnost, že někdy potřebujeme 0 a jindy 6? – nějakým řízením = přepínáním = logickým obvodem (viz schéma z obr. 2) – bude k tomu potřeba jeden logický člen OR se vstupy: – X3 (výstup třetího BCD detektoru – za první sčítačkou = č. 1, součet S1) – C41 (pátý = přenosový bit součtu čtyřbitových čísel A a B první sčítačky) – na výstupu členu OR bude buď: – logická nula (součet S1 je menší nebo rovný 9 desítkově) – logická jedna (součet S1 není BCD nebo sice je BCD, ale nemá správnou hodnotu – desítkově jde o součty 10 až 15 nebo 16, 17, 18)
Sčítání BCD čísel – oprava (korekce) BCD součtu Obr. 4: Schéma logického obvodu s korekční sčítačkou (+6)
Sčítání BCD čísel – oprava (korekce) BCD součtu Popis schématu – jak vznikne BK = 0000 Logický člen OR … porovná = zde logicky sečte signál X3 z BCD detektoru č. 3 a signál C41 (jde o přenosový bit první sčítačky – tedy sčítačky č. 1) Y … výstup členu OR – určuje zda korekční sčítačka (č. 2) přičte 0 nebo 6 S1 … první součet = výstupy sčítačky č. 1 … ve schématu také jako AS BK … korekční číslo … stav Desítkově šest je čtyřbitově dvojkově 0110, tedy krajní bity B0 a B3 jsou trvale na nule = tedy uzemněny 0 = 0000 ( při Y = 0 a tedy je předchozí součet S1 v pořádku) 6 = 0110 ( při Y = 1 a tedy při nesprávném předchozím součtu S1) Pozn. červeně jsou označeny prostřední bity, které podle předchozího výsledku součtu S1 vyrábí výstup Y logického členu OR Výsledek S2 … součet dvou BCD čísel A a B po provedené kontrole a případné korekci – k výsledku patří i pátý bit označený ve schématu C42.
Použít jednu paralelní čtyřbitovou sčítačku pro součet dvou BCD čísel je nedostačující z důvodu: Odlišnosti BCD čísel a čtyřbitových čísel Že výsledek nemusí být BCD typu Že výsledek nemusí být BCD typu nebo je chybný svojí hodnotou Kontrolní otázky Účelem BCD detektoru je: Rozpoznat, zda čtyřbitové číslo je typu BCD Opravit výsledek, aby byl BCD typu Opravit výsledek, aby měl správnou hodnotu 3. BCD korektor je tvořen: Logickými členy AND a OR Čtyřbitovou sčítačkou Logickým členem OR
Použít jednu paralelní čtyřbitovou sčítačku pro součet dvou BCD čísel je nedostačující z důvodu: Odlišnosti BCD čísel a čtyřbitových čísel Že výsledek nemusí být BCD typu Že výsledek nemusí být BCD typu nebo je chybný svojí hodnotou Kontrolní otázky – správné odpovědi – červeně Účelem BCD detektoru je: Rozpoznat, zda čtyřbitové číslo je typu BCD Opravit výsledek, aby byl BCD typu Opravit výsledek, aby měl správnou hodnotu 3. BCD korektor je tvořen: Logickými členy AND a OR Čtyřbitovou sčítačkou Logickým členem OR
Seznam obrázků: Obr. 1: vlastní, Základní blokové schéma BCD sčítačky Obr. 2: vlastní, Podrobné blokové schéma BCD sčítačky Obr. 3: vlastní, Schéma BCD detektoru Obr. 4: vlastní, Schéma logického obvodu s korekční sčítačkou (+6)
Seznam použité literatury: [1] Matoušek, D.: Číslicová technika, BEN, Praha, 2001, ISBN 80-7232-206-0 [2] Blatný, J., Krištoufek, K., Pokorný, Z., Kolenička, J.: Číslicové počítače, SNTL, Praha, 1982 [3] Kesl, J.: Elektronika III – Číslicová technika, BEN, Praha, 2003, ISBN 80-7300-075-X [4] Pinker, J.,Poupa, M.: Číslicové systémy a jazyk VHDL, BEN, Praha, 2006, ISBN80-7300-198-5