Základy číslicové techniky 2 + 1 z, zk
Doc. Ing. Vlastimil Jáneš, CSc., K620 e-mail: janes@fd.cvut.cz K508, 5. patro, laboratoř, 2 2435 9555 Ing. Vít Fábera, K614 e-mail: fabera@fd.cvut.cz K508, 5. patro, laboratoř, 2 2435 9555 Ing. Tomáš Musil, K620 e-mail: musil@asix.cz K508, 5. patro, laboratoř, 2 2435 9556
Fábera, V. : Úvod do hardware počítačů, skriptum FD ČVUT, Vydavatelství ČVUT, Praha 2005 Douša, J., Jáneš, V. : Logické systémy, skriptum FEL ČVUT, Vydavatelství ČVUT,Praha 1998 Pluháček, A. a kol.: Úvod do počítačových systémů, přednášky slidy, katedra počítačů, FEL ČVUT, Praha 1995-2004 Janeček, J. : Projektování mikropočítačových systémů, skriptum FEL ČVUT, Vydavatelství ČVUT, Praha 1999 Informace a materiály ke stažení na WWW: http://www.fd.cvut.cz/personal/janes
Počítač počítač je matematický stroj, který zpracovává programy a data pracuje na určitém fyzikálním principu mechanické počítače Vinci, Pascal elektronické počítače období 2. světové války zpracovává : programy - systémové a aplikační data původně jen numerická data matematické úlohy numerickéřešení diferenciálních rovnic výpočet dráhy střely pro vojenské účely apod. texty, obrázky, zvuk, multimediální aplikace,
zpracování dat, tj. Počítač transformuje vstupní data na výstupní vstupní data Počítač výstupní data
Počítač a zobrazení dat počítač reprezentuje data (zobrazuje) pomocí určitých fyzikálních veličin možnosti: dva základní principy zobrazení dat: 1. spojité zobrazení (analogové) fyzikální veličina může nabývat libovolných hodnot, zpravidla z určitého intervalu 2. diskrétní zobrazení (číslicové) fyzikální veličina může nabývat diskrétních (izolovaných, oddělených) hodnot, zpravidla z určitého rozsahu mechanické: natočení kolečka elektrické: napětí, proud
Příklady zobrazení dat Jaké je toto zobrazení? Spojité neboli analogové
Příklady zobrazení dat A toto? Diskrétní neboli číslicové
Příklady zobrazení dat říkáme také, že u číslicového zobrazení je hodnota zobrazena určitým stavem; při změně hodnoty dochází ke skokové změně stavu změna musí být dostatečně rychlá odolnost změnám parametrů systému Zajímavost: elektromechanický číslicový počítač -programátor v automatické pračce - typový váleček se zářezy mechanický čísl. systém -hrací strojky
Zobrazení dat v počítači v číslicových počítačích se data zobrazují pomocí dvojkové soustavy, tj. čísel 0,1 číslice 0,1 se také označují jako logické hodnoty (nepravda, pravda, no, yes, false, true), protože se jimi v matematické logice ohodnocuje pravdivost výroků matematický aparát pro práci s 0 a 1 existuje již od 19. století 1848: anglický matematik George Bool: Booleova algebra
Zobrazení dat v počítači Proč dvojková soustava? mechanické systémy již v 19. stol. první číslicový počítač byl reléový, které dokáže rozlišit 2 stavy (rozepnuto, sepnuto 0,1) informace o velikosti 0 nebo 1 se nazývá 1 bit bit = binary digit (dvojková číslice) ale 1 bit (1b) není jednotkou informace, je to shannon, který je pro dvoustavovou logiku totožný s bitem
Zobrazení dat v počítači - jednotky 8 bitů = 1 Byte (bajt), 1B, správněčesky slabika 16 bitů = 1 Word (slovo) 32 bitů = 1 DoubleWord (dvojslovo) Násobky slabiky: 1 KB = 1 KiloByte - 1 KB = 1024 B 1 MB = 1 MegaByte - 1 MB = 1024 KB Proč 1KB = 1024 B? 2 10 = 1024 (nejblíže hodnotě 1000)
Zobrazení dat v počítači - jednotky Poznámka: v některé literatuře (ale výjimečně) se rozumí: 1 kb = 1000 B 1 KB = 1024 B my budeme chápat vždy: 1 kb = 1 KB = 1024 B
Číselné soustavy standardní polyadické soustavy základ soustavy z cifer zápis čísla vyjadřuje hodnotu
Číselné soustavy desítková soustava dvojková soustava
Číselné soustavy osmičková soustava šestnáctková soustava
Hornerovo schéma slouží k vyhodnocení polynomu bez výpočtu mocnin
Převody mezi číselnými soustavami převod do dvojkové soustavy počítáme zbytky po děleníčíslem 2 (%) a celočíselné podíly ( ) převedeme 75 10 do dvojkové soustavy
Převody mezi číselnými soustavami převod do šestnáctkové soustavy počítáme zbytky po děleníčíslem 16 (%) a celočíselné podíly ( ) převedeme 936 10 do šestnáctkové soustavy
Převody mezi příbuznými soustavami dvěčíselné soustavy o základech z 1, z 2 z 1 < z 2 příbuzné soustavy: z 2 = z 1 k příbuzné soustavy jsou dvojková a šestnáctková: 2 4 = 16 dvojková a osmičková: 2 3 = 8 převádíme přímo k-tice bitů
Převod mezi dvojkovou a šestnáctkovou soustavou 1. Doplň zleva dvojkovéčíslo nevýznamnými nulami tak, aby byl celkový počet cifer roven nějakému násobku čísla 4 2. Jednotlivé čtveřice dvojkových cifer přepiš na šestnáctkové cifry dle následující tabulky
Převod mezi dvojkovou a šestnáctkovou soustavou
Převod mezi dvojkovou a šestnáctkovou soustavou Převeďte číslo 1101011 2 z dvojkové soustavy do šestnáctkové 1. doplníme nevýznamnými nulami: 01101011 2. rozdělíme na čtveřice: 0110 1011 3. převedeme: 6 B 1101011 2 = 6B 16
Převod mezi dvojkovou a osmičkovou soustavou 1. Doplň zleva dvojkovéčíslo nevýznamnými nulami tak, aby byl celkový počet cifer roven nějakému násobku čísla 3 2. Jednotlivé trojice dvojkových cifer přepiš na osmičkové cifry dle následující tabulky
Převod mezi dvojkovou a osmičkovou soustavou
Převod mezi dvojkovou a osmičkovou soustavou Převeďte číslo 1101011 2 z dvojkové soustavy do osmičkové 1. doplníme nevýznamnými nulami: 001101011 2. rozdělíme na trojice: 001 101 011 3. převedeme: 1 5 3 1101011 2 = 153 8
LOGICKÉ OBVODY Kombinační logické obvody
Logické obvody digitální obvody dvojková soustava hodnoty 0,1 = logické hodnoty log. 0, log. 1 reprezentace pomocí napětí, např. log. 0-0V - 0,4V, log. 1-2,4V - 5V nebo log. 0-0V - 0,99V, log. 1-2,3V 3,3V 2,5V logika, 1,8V logika
Logické obvody logické obvody zpracovávají diskrétní log. hodnoty 0 a 1 logické systémy matematické modely a popisy těchto obvodů na úrovni logiky
Logické obvody Dělení logických obvodů podle způsobu realizace mechanické, elektrické, pneumatické, použitých prvků (součástek) reléové, elektronkové, obvody s tranzistory, integrovanými obvody technologie výroby zejména u integrovaných obvodů TTL (bipolární), CMOS, HCMOS, BiCMOS
Logické obvody Dělení logických obvodů podle chování kombinační logické obvody hodnoty výstupních proměnných závisejí pouze a aktuálních hodnotách vstupních proměnných sekvenční logické obvody hodnoty výstupních proměnných naopak závisejí na okamžitých hodnotách vstupních proměnných a také na historii jejich hodnot
Kombinační logické obvody vstupní vektor = vstupní písmeno výstupní vektor = výstupní písmeno matematický vztah mezi vstupem a výstupem kombinační zobrazení
Booleova algebra negace NOT log. součin AND log. součet OR
Booleova algebra 1. Komutativní zákon duální forma a + b = b + a a. b = b. a 2. Asociativní zákon (a + b) + c = a + (b + c) (a. b). c = a. (b. c) 3. Zákon idempotence a + a = a a. a = a 4. Zákon absorpce a + (a. b) = a a. (a + b ) = a 5. Zákon agresivnosti nuly a jedničky a. 0 = 0 a + 1 = 1
Booleova algebra 6. Zákon neutrálnosti nuly a jedničky a + 0 = a a. 1 = a 7. Distributivní zákon a. (b + c) = (a. b) + (a. c) a + (b. c)= (a + b). (a + c) 8. Zákon sporu a vyloučeného třetího a.a= 0 a + a= 1 9. Zákon involuce neboli dvojí negace a 10. Zákon absorpce negace a.(a + b) = a.b 11. De Morganovy zákony a + a.b = a + b a + b + c +... + z = a. b. c... z
1. Kombinační logické obvody Booleova algebra a. b. c... z = a + b + c +... + z 12. Shannonův expanzní teorém - rozklad logické funkce a) verze součtová : F(x 1, x 2,, x n ) = x 1. F(1, x 2,, x n ) + x 1. F(0, x 2,, x n ) b) verze součinová : F(x 1, x 2,, x n ) = [x 1 + F(0, x 2,, x n )]. [ x 1 + F(1, x 2,,x n )] Každá logická funkce se dá realizovat v součtové nebo součinové formě. D U A L I T A F U N K C Í F D (x 1, x 2,, x n, 0, 1, +,.) = F(x 1, x 2,, x n, 1, 0,., + ) Poznámka: pořadí operací + a. Je důležité jde o záměnu, totéž platí pro logické konstanty 0 a 1
1. Kombinační logické obvody operace nebo Funkce nebo 1. Uveďme příklad výroku: bude-li číslo dělitelné 2 nebo 3 není to prvočíslo. Tedy : číslo X - je dělitelné 2 číslo Y - je dělitelné 3... pak X nebo Y = pravda, neboli 1 nebo 1 = 1 Hovoříme o tzv. obyčejném nebo zápis X + Y 2. Uveďme jiný příklad: chlapec bude hodný nebo dostane pár facek Tedy : A - bude hodný B - dostane par facek A nebo B : 1 nebo 1 = 0 jedná se o tzv. vylučovací nebo Zapisujeme jako : A B - součet modulo 2 Závěr: nebo nebo
Booleovská funkce booleovská funkce n proměnných y = f (x 1, x 2,,x n ) booleovských funkcí n proměnných je n 2 2
Boooleovské funkce k odvození počtu booleovských funkcí
1. Kombinační logické obvody základní logické funkce Další základní logické funkce: 1. Vylučovací nebo, XOR [exclusive OR], součet modulo 2, nonekvivalence X Y = X. Y + X. Y 2. Funkce ANI, NOR, Pierceova funkce, X Y = X + Y 3. Funkce NAND, Shefferova funkce, X Y = X. Y 4. Ekvivalence X Y = X. Y + X. Y 5. Implikace X Y = X + Y
1. Kombinační logické obvody Základní logické funkce pravdivostní tabulka
Zápis logických funkcí pravdivostní tabulka booleovský výraz seznam vstupních (stavových) indexů mapa jednotková krychle
Pravdivostní tabulka, log. výraz f ( c, b, a) = ab + bc f ( c, b, a) = b( a + c)
Seznam vstupních indexů seznam vstupních kombinací (chápané jako dvojkové číslo), kdy funkce nabývá hodnoty 1 f ( c, b, a) = (0,4,5) seznam vstupních kombinací (chápané jako dvojkové číslo), kdy funkce nabývá hodnoty 0 f ( c, b, a) = Π ( 1,2,3,6,7 )
Jednotková krychle sousední vstupní písmena (liší se v jediném bitu) Hammingova vzdálenost = 1 nabývá log. 1 pro vstup 000
Jednotková krychle
1. Kombinační logické obvody Schematické značky
Výrazy uvažujme n proměnných součinový term x 1, x 2, x 3,, x n výraz obsahující pouze operaci log. součinu termů je 3 n -1 minterm součinový term obsahující všechny uvažované proměnné v přímé nebo negované formě nabývá hodnoty log. 1 pouze pro právě jednu kombinaci vstupních písmen
Výrazy součtový term výraz obsahující pouze operaci log. součtu termů je 3 n -1 maxterm součtový term obsahující všechny uvažované proměnné v přímé nebo negované formě nabývá hodnoty log. 0 právě pro jednu kombinaci vstupních proměnných
Vyjádření booleovské funkce výrazem Podle tvaru výrazu součtová forma (disjuntivní) výraz je ve tvaru součtu součinových termů úplná normální disjunktivní forma výraz je ve tvaru součtu mintermů součinová forma (konjuntivní) výraz je ve tvaru součinu součtových termů úplná normální konjunktivní forma výraz je ve tvaru součinu maxtermů smíšená forma
Příklad 0 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 f a b c maxtermy mintermy a b c a b c a b c a b c a b c a b c a b c a b c a b c + + a b c + + a b c + + a b c + + a b c + + a b c + + a b c + + a b c + +
Vytvoření úplné součtové formy vybereme řádky, kde nabývá funkce hodnoty log. 1 a zapíšeme součet odpovídajících mintermů f( c, b, a)= cba+ cba+ cba
Vytvoření úplné součinové formy vybereme řádky, kde nabývá funkce hodnoty log. 0 a zapíšeme součin odpovídajících maxtermů ) ( ) ( ) ( ) ( ) ( ),, ( a b c a b c a b c a b c a b c c b a f + + + + + + + + + + =
Minimální forma minimalizujeme úplné formy pomocí zákonů Booleovy algebry nepohodlné ( ) ( ) b c a b a a b c a b c c a b c a b c a b c a b c a b c a b c a b c f + = + + + = = + + + = + + = zákon idempotence 1 1
Minimalizace pomocí map mapa grafická, resp. tabulková forma vychází z Vennových diagramů rozdělíme určitou oblast na podoblasti a každé podoblasti přiřadíme určitý bod stavového prostoru Vennův diagram pro tři proměnné
Mapy mapy pro 3 proměnné 8 kombinací mapa má 2 x4 políček
Mapy mapy pro 4 proměnné 16 kombinací mapa má 2 x 8 políček nebo 4 x 4 políček
Grayův kód kód, kde každá dvě po sobě jdoucí dvojkováčísla jsou sousední, tj. liší se v jediném bitu tvoříme jej zrcadlovou metodou z kratšího kódu n bitový Grayův kód vytvoříme z (n-1) bitového zrcadlením jednobitový kód je posloupnost 0, 1
Grayův kód zrcadlení přidám 0 a 1 jednobitový dvoubitový tříbitový
Mapy Karnaughova mapa vstupní proměnné jsou kódovány Grayovým kódem Svobodova mapa vstupní proměnné jsou kódovány binárním kódem
1. Kombinační logické obvody - mapy Zobrazení logických funkcí do mapy :
1. Kombinační logické obvody - mapy Pravidla pro tvorbu smyček při hledání minimální součtové formy hledáme co nejmenší počet co největších smyček obsahujících pouze 1 každá 1 musí být v alespoň jedné smyčce, smyčky se mohou překrývat smyčka musí obsahovat takový počet jedniček, který se rovná určité mocniněčísla 2, tj. musí obsahovat 1 nebo 2 nebo 4 nebo 8 atd. jedniček! smyčka musí obepínat takovou množinu vstupních písmen (podoblast v mapě), která tvoří podkrychli ve stavovém prostoru vstupních písmen
1. Kombinační logické obvody - mapy Mapy pro 3 a 4 logické proměnné a sousední termy :
Mapy
Mapy
Mapy
1. Kombinační logické obvody mapy II Karnaughova mapa pro 5 proměnných podle Grayova cykl. kódu
1. Kombinační logické obvody úplné norm. formy a) Úplná normální disjunktní forma (úndf) - součtová V úplné normální formě je každá jedničková hodnota zadané logické funkce pokrývána jedním termem resp. implikantem. Takový součinový term obsahuje všechny proměnné zadané logické funkce jako přímé nebo negované (minterm). Na příklad u majority ze tří (funkce je dána třemi proměnnými) jsou implikanty délky 3 tj. xyz, xyz, xyz, xyz,atd. Prvotní popis majoritní funkce ze 3 je zapsán úplnou normální formou. b) Úpná normální konjunktní forma (únkf) - součinová Konjunktní forma pokrývá nulové hodnoty zadané logické funkce svými součtovými termy např. (maxtermy obsahuje opět všechny proměnné ).
1. Kombinační logické obvody - mndf c) Minimální normální disjunktní forma (mndf) Minimální normální disjunktní forma (mndf) obsahuje nejmenší možný počet nejkratších implikantů(součinových termů), tj. přímých implikantů. Kriteria minimality tedy jsou: 1) má minimální délku formy (tj. počet přímých implikantů) 2) má minimální délku implikantů(tj. s min.počtem prom.) 3) eventuelně obsahuje minimální počet negací Minializace pomocí mapy: Pokrýváním jedničkových stavů zadané logické funkce vytvoříme nejmenší počet co největších smyček! Řešení nemusí být jediné. Ukázka viz Karnaughova resp. Svobodova mapa pro 4 proměnné v předchozím slajdu (41) řešení jsou dvě : 1. F 1 (a,b,c,d) = 2. F 2 (a.b.c.d) = ac + abc + bcd + abd
1. Kombinační logické obvody Příklad na tabulku pokrytí Je daná následující logická funkce 4 proměnných
1. Kombinační logické obvody tabulka pokrytí Existují dvě nejvýhodnějšířešení: F (a,b,c,d) = a.d+ a.d + c.d + a.b.c F 1 (a,b,c,d) = a.d+ a.d + c.d + b.c.d 2 Obě funkce jsou pro realizaci rovnocenné mají stejný počet termů (implikantů), termy jsou stejně dlouhé a je potřeba všechny proměnné negovat.
1. Kombinační logické obvody - realizace Ekvivalence logických členů NAND AND - NOT
1. Kombinační obvody realizace s členy NAND
1. Kombinační obvody návrh KLO s členy NAND Výchozí podmínky: - minimální forma logické funkce - jsou dané typy logických členů, resp. se volí pro danou technologii - je daná rychlost logického --------------------------------------------------------------------------------------------- - požaduje se snadná diagnostika a oživování - bere se ohled na konstrukčnířešení a další I. OBECNÁ a KLASICKÁ STRUKTURA AND OR Uvažujme realizaci dané logické v minimálním tvaru: F 3 (a,b,c,d) = a.b + a.d + a.b.d + a.c.d + a.b.c Tuto minimální součtové funkci (mndf) můžeme zakreslit ve struktuře AND - OR
1. Kombinační obvody realizace AND - OR
1. Kombinační obvody realizace c členy NAND Úprava minimální logické funkce pro realizaci s členy NAND Použijeme zákona dvojí negace (involuce) a De Morganových pravidel Z této úpravy lze již snadno nakreslit schéma se členy NAND neboť každé závorce odpovídá logický člen NAND a negace celého výrazu odpovídá pětivstupovému NAND výstupnímu
1. Kombinační obvody výsledné schéma Výsledné schéma se členy NAND max. třívstupovými - bylo třeba nahradit výstupní log. člen pětivstupový
1. Kombinační obvody příklad sčítačky