Základy číslicové techniky 2 + 1 z, zk
Ing. Vít Fábera, K614 e-mail: fabera@fd.cvut.cz K508, 5. patro, laboratoř, 2 2435 9555 Ing. Tomáš Musil, Ph.D., K620 e-mail: musil@asix.cz K508, 5. patro, laboratoř, 2 2435 9556 doc. Ing. Vlastimil Jáneš, CSc., K620 e-mail: janes@fd.cvut.cz K508, 5. patro, laboratoř, 2 2435 9555
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/xfabera
Podmínky zápočtu přiměřená docházka na cvičení povolena 1 absence absolvování laboratorních cvičení odevzdání semestrální práce návrh kombinačního obvodu z 1. laboratorního cvičení
Zkouška písemný test návrh kombinačního obvodu návrh sekvenčního obvodu otázky, příklady (převody, ) doba vypracování cca 90 min.
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, flašinet
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 se rozumí: 1 kb (kilobyte)= 1000 B 1 KB (KiloByte) = 1024 B nově podle IEC: 1KB = 1 KiB (KibiByte) = 1024 B Kibi = kilo binary my budeme chápat vždy "kilo" = 1024 B
Číselné soustavy Používané v běžném lidském životě standardní polyadické soustavy charakteristika: základ soustavy z cifer zápisčísla vyjadřuje hodnotu
Zajímavost dělení číselných soustav polyadické soustavy hodnotu čísla lze vyjádřit polynomem označují se jako poziční hodnota číslice je dána pozicí v čísle standardní: jeden celočíselný základ z nestandardní: více číselných základů, např. soustava časová: 24h 60m 60s
Zajímavost dělení číselných soustav nepolyadické soustavy označují se jako nepoziční hodnota číslice není dána její pozicí v čísle, ale nějakým speciálním postupem Příklad: soustava římských číslic VI x IV =1 =-1
Standardní polyadické číselné soustavy desítková soustava dvojková soustava
Standardní polyadické čí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 dvojkové soustavy jiná metoda: číslo vyjádříme jakou součet mocnin dvou ve dvojkové soustavě napíšeme jedničky do řádů, jejichž mocniny jsou v součtu zastoupeny
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 na aktuálních hodnotách vstupních proměnných sekvenční logické obvody hodnoty výstupních proměnných 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 Booleova algebra je asociativní, distributivní, komutativní a komplementární svaz s binárními operacemi logického součtu, logického součinu a unární operací negace, resp. inverze, s proměnnými a s konstantami 0, 1.
Booleova algebra negace NOT log. součin AND log. součet OR
Booleova algebra - zákony 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 b) a a ( a + b) = a a = 5. Zákon agresivnosti nuly a jedničky a 0 = 0 a + 1 = 1
Booleova algebra - zákony 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 = a 10. Zákon absorpce negace a ( a + b) = a b a + a b = a + b
Booleova algebra - zákony 11. De Morganovy zákony a + b + c + L+ z = a b c L z a b c K z = a + b + c + L+ z 12. Shannonův expanzní teorém - rozklad logické funkce a) verze součtová: F(x1, x2,, xn ) = x1. F( 1, x2,, xn ) + x1. F( 0, x2,, x n ) b) verze součinová: [ x + F( 0, x,, x )] [ x + F(, x,, x )] F(x1, x2,, xn ) = 1 2 n 1 1 2 Každá logická funkce se dá realizovat v součtové nebo součinové formě. n
Booleova algebra - zákony 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
Booleovská funkce booleovská funkce n proměnných y = f (x 1, x 2,,x n ) f { 0,1} n { 0,1} : booleovských funkcí n proměnných je n 2 2
Boooleovské funkce k odvození počtu booleovských funkcí
Booleovská funkce pro n = 2 proměnné dostáváme: 2 2 2 = 2 4 = 16 funkcí kompletní tabulka viz skripta a cvičení
Booleovské funkce některé další důležité (booleovské) logické funkce pravdivostní tabulka
1. Kombinační logické obvody základní logické funkce Některé základní logické funkce (k tabulce): 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 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
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
Schématické značky hradel hradlo (gate) součástka realizující log. funkci
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 (disjunktivní) 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 (konjunktivní) 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 mintermy maxtermy c b a f c b a c + b+ a c b a c + b+ a c b a c + b+ a c b a c + b+ a c b a c + b+ a c b a c + b+ a c b a c + b+ a c b a c + b+ a 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0
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)= c b a+ c b a+ c b a
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
Mapy Zobrazení logických funkcí do mapy :
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
Mapy Mapy pro 3 a 4 logické proměnné a sousední termy :
Mapy
Mapy
Mapy
Mapa vs. krychle smyčka v mapě musí obepínat podkrychli v jednotkové krychli
Mapy II Karnaughova mapa pro 5 proměnných podle Grayova cykl. kódu
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) Úplná 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é ).
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é řešení jsou dvě 1. F 1 (a,b,c,d) = 2. F 2 (a.b.c.d) = ac + abc + bcd + abd
Kombinační logické obvody Příklad na tabulku pokrytí Je daná následující logická funkce 4 proměnných
Kombinační logické obvody pokrytí musím vybrat zelenou a tmavě-modrou smyčku: (nesporné implikanty) pak si mohu vybrat mezi: růžovou a oranžovou smyčkou šedou a světle modrou smyčkou rozhoduji se podle počtu proměnných v termu a počtu negací Existují dvě nejvýhodnější řešení: F (a, b, c, d) F 1 2 (a, b, c, d) = a.d + a.d = a.d + a.d + + c.d c.d + + a.b.c b.c.d 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 KO 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 obvodu --------------------------------------------------------------------------------------------- - 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
Kombinační obvody realizace AND - OR
Kombinační obvody realizace se č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
Kombinační obvody realizace NAND
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ý
Kombinační obvody náhrada pětivstupového hradla: a b c d e = ( ) ( ) ( ) ( ) a b c e f = a b c e f