FTN Novi Sad Merni instrumenti - Digitalna elektronika 1.UVOD dr Zoran Mitrović Merni instrumenti - Digitalna elektronika Uvod Uvod Šta je projektovanje logičkih kola (logičko projektovanje)? Šta je digitalni hardver? Jezik logičkog projektovanja Bulova algebra, minimizacija logičkih funkcija, statička (za kombinaciona kola) i dinamička (za memorijska kola) analiza, kompjutersko projektovanje Kombinaciona kola u digitalnim sistemima Analogna su promenljivama i programabilnim brojačima u softveru Kako da specificiramo/simuliramo/prevedemo naš dizajn Jezici za opis hardvera (Hardware description languages HDL) Alati za simulaciju rada elektronskih kola i sistema Kompajleri koji vrše sintezu hardverskih blokova našeg dizajna Mapiranje u programabilni hardver (generisanje koda) 15-Mar-07 Merni instrumenti - Digitalna elektronika 2
Gde logičko projektovanje nalazi primenu? Standardni razvoj računarskih sistema Procesori, računarske magistrale, periferije Mreže i komunikacije Telefoni, modemi, ruteri Proizvodi za ugradnju u druge sisteme Automobili, igračke, muzičke linije, DVD plejeri, razni kućni aparati Oprema za naučne primene Testiranje, prihvat raznih informacija, izveštavanje Razni računarski sistemi 15-Mar-07 Merni instrumenti - Digitalna elektronika 3 Kratak istorijat 1850: Džordž Bul (George Boole) daje osnove bulove algebre Logičke jednačine predstavljaju se simbolički Omogućena je manipulacija logičkim izrazima korišćenjem matematike 1938: Klod Šenon (Claude Shannon) povezuje bulovu algebru sa prekidačima Njegova magistarska teza 1945: Džon fon Nojman (John von Neumann) razvija prvi računarski program koji je bio memorisan Prekidački elementi su vakuumske cevi (velika prednost u odnosu na relea) 1946: ENIAC prvi elektronski računar 18,000 vakuumskih cevi Nekoliko stotina množenja u minuti 1947: Šokli, Britein i Bardin (Shockley, Brittain, Bardeen) pronalaze tranzistor zamena za vakuumske cevi integracija više tranzistora u jedno pakovanje otvorena vrata ka modernoj elektronici 15-Mar-07 Merni instrumenti - Digitalna elektronika 4
Šta je logičko projektovanje? Šta je projektovanje (dizajn)? Za zadatu specifikaciju (opis) problema dati način da se on reši izborom iz skupa raspoloživih komponenti Zadovoljiti zahteve za veličinom, cenom, snagom, izgledom, itd. Šta je logičko projektovanje? Definisanje skupa digitalnih logičkih komponenti koje će obavljati određenu funkciju upravljanja i/ili obrade podataka i/ili komunikacije; definisati međusobne veze Koje logičke komponente izabrati? postoji mnogo tehnoloških implementacija logičkih funkcija (npr. komponente sa fiksnom funkcijom, programabilne komponente,...) Projekt treba da se optimizuje i/ili transformiše da bi zadovoljila određena zadata ograničenja 15-Mar-07 Merni instrumenti - Digitalna elektronika 5 Šta je digitalni hardver? Skup sklopova koji prihvataju i određuju koja je logička vrednost ( 0 ili 1 ) i/ili veza koje prenose digitalne (logičke) vrednosti npr. digitalna logika gde se napon < 0.8V smatra logičkom nulom ( 0 ), a napon > 2.0V smatra logičkom jedinicom ( 1 ) npr. par provodnika gde se 0 i 1 prepoznaju po tome koji provodnik ima viši potencijal (diferencijalni prenos) ili, npr. da orijentacija magnetizacije označava 0 ili 1 Primitivni sklopovi digitalnog hardvera logički računarski sklopovi (koji prepoznaju logički nivo i daju pobudu za sledeći stepen) oba provodnika na 1 daju pobudu takođe 1 (logičko I) bar jedan provodnik na 1 daje pobudu 1 (logičko ILI) ako je provodnik na 1 daje pobudu 0 (logičko NE) Memorijski sklopovi ulazni nivo pamćenje logičke vrednosti pobuda pozivanje iz memorije prethodno log. I upamćene vrednosti ulazni nivo 15-Mar-07 Merni instrumenti - Digitalna elektronika 6
Računanje: apstraktno i implementacija Računanje kao mentalna razonoda (papir, programi) nasuprot tome implementacija računanja sa fizičkim sklopovima koristeći napone koji predstavljaju logičke vrednosti Osnovne jedinice računanja: predstavljanje: "0", "1" na jednom ili više provodnika (npr. binarni brojevi) dodela vrednosti: x = y računske operacije: x + y 5 upravljanje tokom programa: sekvenca: A; B; C uslovi: if x == 1 then y petlje: for ( i = 1 ; i == 10, i++) procedure: A; proc(...); B; Naučiti kako se navedeno implementira u hardveru i sklapa u računarske strukture 15-Mar-07 Merni instrumenti - Digitalna elektronika 7 Prekidači: osnovni elementi fizičke implementacije Implementacija prostog kola (strelica pokazuje logičko stanje provodnika 1 ): A Z zatvaranje prekidača (ako je A = 1 ) i uključivanje sijalice (Z) A Z otvaranje prekidača (ako je A = 0 ) i isključivanje sijalice (Z) Z A 15-Mar-07 Merni instrumenti - Digitalna elektronika 8
Prekidači (nastavak) Povezivanje prekidača u složenija kola (bulove funkcije): I A B Z A i B ILI A Z A ili B B 15-Mar-07 Merni instrumenti - Digitalna elektronika 9 Prekidačke mreže Postavljanje prekidača Odrediti da li postoji provodni put koji će upaliti sijalicu Izgraditi složenije računske operacije Koristiti sijalicu (izlaz iz jednog dela mreže) da se uključe drugi prekidači (ulazi drugih delova mreže). Povezati prekidačke mreže Konstruisati složenije prekidačke mreže, tj. postoji način da se povežu izlazi jedne mreže sa ulazima druge 15-Mar-07 Merni instrumenti - Digitalna elektronika 10
Relejne mreže Jednostavan način da se poveže provodni put i stanje prekidača je korišćenjem (elektromehaničkih) relea. Šta je rele? provodni put koji se sastoji od jednog ili više uključenih prekidača struja teče kroz namotaj, magnetiše jezgro i prouzokuje da se normalno zatvoreni kontakti (nc) otvore kad nema struje, opruga vraća kontakte u normalni položaj 15-Mar-07 Merni instrumenti - Digitalna elektronika 11 Tranzistorske mreže Relea se sve manje koriste Neki ormani za kontrolu rada semafora su još uvek elektromehanički Moderni digitalni sistemi se rade u CMOS tehnologiji MOS je Metal-Oxide on Semiconductor C je oznaka za komplementarni, jer postoje i normalno zatvoreni i normalno otvoreni prekidači MOS tranzistori se ponašaju kao naponski kontrolisani prekidači Slični releima, ali mnogo lakša manipulacija 15-Mar-07 Merni instrumenti - Digitalna elektronika 12
MOS tranzistori MOS tranzistori imaju tri priključka: drejn, gejt i sors oni se ponašaju kao prekidači: ako je napon na gejtu (zavisno od tipa tranzistora) nešto viši ili niži od napona na sorsu, uspostavlja se provodni put između drejna i sorsa G G S D S D n-kanal otvoren kad je napon na G nizak zatvara se kad je: napon(g) > napon (S) + ε p-kanal zatvoren kad je napon na G nizak otvara se kad je: napon(g) < napon (S) ε 15-Mar-07 Merni instrumenti - Digitalna elektronika 13 MOS mreže 3v X koja relacija definiše vezu x i y? x y Y 0 V 0v 3 V 15-Mar-07 Merni instrumenti - Digitalna elektronika 14
Mreže sa dva ulaza X Y 3V 0V 3V 0V X Y 15-Mar-07 Merni instrumenti - Digitalna elektronika 15 Z Z x y z 0 V 0 V 3 V 3 V koja relacija definiše vezu x, y i z? 0 V 3 V 0 V 3 V Brzina MOS mreža Šta utiče na brzinu CMOS mreža? punjenje i pražnjenje napona na provodnicima i gejtovima tranzistora 15-Mar-07 Merni instrumenti - Digitalna elektronika 16
Predstavljanje logičkog projektovanja Fizički sklopovi (tranzistori, relea) Prekidači Kombinacione tabele bulova algebra Gejtovi (logička kola) Talasni oblici Ponašanje konačnih stanja Ponašanje registar-transfer Konkurentne apstraktne specifikacije obim kursa digitalne elektronike u okviru Elektronike 2 15-Mar-07 Merni instrumenti - Digitalna elektronika 17 Digitalna i analogna kola O digitalnim sistemima obično se razmišlja kao da imaju samo diskretne, digitalne, ulazne i izlazne vrednosti U stvarnosti realne elektronske komponente se ponašaju kao da imaju analogna, kontinualna stanja behavior Zašto pravimo ovakvu apstrakciju? Zašto ona, ipak, funkcioniše? 15-Mar-07 Merni instrumenti - Digitalna elektronika 18
Mapiranje iz fizičkog u binarni svet Tehnologiija Stanje 0 Stanje 1 Relejna logika Otvoreno kolo Zatvoreno kolo CMOS logika 0.0-1.0 V 2.0-3.0 V Tranzistor tranzistor logika (TTL) 0.0-0.8 V 2.0-5.0 V Fiber optika Svetlo isključeno Svetlo uključeno Dynamičke RAM memorije Ispražnjen kondenz. Napunjen kondenzator Električno brisive memorije (EEPROM) Zarobljeni elektroni Nema zarobljenih elektrona Programabilne ROM memorije Osigurač spaljen Osigurač netaknut Memorije sa magnetnim mehurićima Nema magnetnog mehurića Magnetni mehurič postoji Magnetni diskovi Nema obrtanja fluksa Fluks obrnut Kompakt diskovi Nema zareza Zarez 15-Mar-07 Merni instrumenti - Digitalna elektronika 19 Kombinaciona i sekvencijalna digitalna kola Jednostavan model digitalnog sistema je crna kutija sa ulazima i izlazima: ulazi sistem izlazi Kombinaciona znači bez memorije" digitalno kolo je kombinaciono ako njegove izlazne vrednosti zavise samo od ulaznih vrednosti 15-Mar-07 Merni instrumenti - Digitalna elektronika 20
Kombinacioni logički simboli Često korišćena kombinaciona logička kola imaju standardne logičke simbole koji se nazivaju gejtovima Bafer, NE, (Buffer, NOT) A Z I, NI, (AND, NAND) A B ILI, NILI, (OR, NOR) A Z B Z jednostavno se implementiraju pomoću CMOS tranzistora 15-Mar-07 Merni instrumenti - Digitalna elektronika 21 Sekvencijalna logika Sekvencijalni sistemi Ponašanje (izlazne vrednosti) ne zavise samo od trenutnih ulaznih vrednosti, već i od prethodnih ulaznih i izlaznih vrednosti U stvarnosti, sva kola su sekvencijalna Izlazi se ne menjaju trenutno nakon promene ulaznih vrednosti Zašto ne, i zašto je to sekvencijalno ponašanje? Osnovna apstrakcija projektovanja digitalnih kola je da se razmatra samo stabilno stanje (ne i prelazne pojave) Izlazi se posmatraju tek nakon isteka dovoljno dugog vremena u kome se sistem stabilizuje nakon određenih promena stanja 15-Mar-07 Merni instrumenti - Digitalna elektronika 22
Sinhroni sekvencijalni digitalni sistemi Izlazi kombinacionih kola zavise samo od trenutnih stanja ulaza Nakon isteka dovoljnog vremenskog intervala Sekvencijalna kola imaju memoriju Čak i kad se čeka da se završi prelazni režim Usvojena analiza stabilnog stanja je toliko korisna, da je većina projektanata koriste i kad projektuju sekvencijalna kola: Memorija u sistemu je predstavljena kao njegovo stanje Promene stanja sistema dozvoljavaju se samo u određenim trenucima koje diriguje spoljašnji periodični takt Period takta je vreme koje protekne između promena stanja. Mora biti dovoljno dugo da sistem dostigne stabilno stanje pre sledeće promene stanja na kraju perioda 15-Mar-07 Merni instrumenti - Digitalna elektronika 23 Primeri kombinacione i sekvencijalne logike Kombinaciona: ulazi A, B čeka se na ivicu signala takta posmatra se C čeka se na sledeću ivicu takta posmatra se ponovo C: ostaće nepromenjeno Sekvencijalna: ulazi A, B čeka se na ivicu signala takta posmatra se C čeka se na sledeću ivicu takta posmatra se ponovo C: može da se promeni A B Clock C 15-Mar-07 Merni instrumenti - Digitalna elektronika 24
Uopštavanja Neka smo već videli digitalno predstavljanje analognih vrednosti tranzistori kao prekidači prekidači kaologička kola primena signala takta za realizaciju sinhronog sekvencijalnog kola Neka ćemo videti u nastavku Kombinacione tabele i bulova algebra za predstavljanje kombinacionih logičkih kola kodiranje signala sa više od dva logička nivoa u binarnu formu dijagrami stanja za predstavljanje sekvencijalne logike jezici za opis hardvera za predstavljanje digitalne logike talasni oblici za predstavljanje vremenskog ponašanja 15-Mar-07 Merni instrumenti - Digitalna elektronika 25 Primer Podsistem kalendara: broj dana u mesecu (za kontrolu prikaza na elektronskom časovniku) koristi se za kontrolu displeja LCD prikaza na ručnom časovniku ulazi: mesec, znak za prelaznu godinu izlazi: broj dana 15-Mar-07 Merni instrumenti - Digitalna elektronika 26
Implementacija u softveru integer broj_dana ( mesec, prelazna_godina) { switch (mesec) { case 1: return (31); case 2: if (prelazna_godina == 1) then return (29) else return (28); case 3: return (31);... case 12: return (31); default: return (0); } } 15-Mar-07 Merni instrumenti - Digitalna elektronika 27 Implementacija - kombinacioni digitalni sistem Kodiranje: koliko bita za svaki ulaz/izlaz? binarni broj za mesec četiri bita za 28, 29, 30, i 31 ponašanje: kombinaciono specifikacija mesec kombinacione tabele d28 d29 d30 d31 prestupna mesec prest. d28 d29 d30 d31 0000 0001 0 0 0 1 0010 0 1 0 0 0 0010 1 0 1 0 0 0011 0 0 0 1 0100 0 0 1 0 0101 0 0 0 1 0110 0 0 1 0 0111 0 0 0 1 1000 0 0 0 1 1001 0 0 1 0 1010 0 0 0 1 1011 0 0 1 0 1100 0 0 0 1 1101 111 15-Mar-07 Merni instrumenti - Digitalna elektronika 28
Primer kombinaciona mreža (nastavak) Kombinaciona tabela logika prekidači -gejtovi d28 = 1 kad je mesec=0010 and prest=0 d28 = m8' m4' m2 m1' prest' simbol za ili simbol za i d31 = 1 kad je mesec=0001 ili mesec=0011 ili... mesec=1100 d31 = (m8' m4' m2' m1) + (m8' m4' m2 m1) +... (m8 m4 m2' m1') d31 = može li da se uprosti? month leap d28 d29 d30 d31 0001 0 0 0 1 0010 0 1 0 0 0 0010 1 0 1 0 0 0011 0 0 0 1 0100 0 0 1 0... 1100 0 0 0 1 1101 111 0000 simbol za ne 15-Mar-07 Merni instrumenti - Digitalna elektronika 29 Primer kombinaciona mreža (nastavak) d28 = m8' m4' m2 m1' leap d29 = m8' m4' m2 m1' leap d30 = (m8' m4 m2' m1') + (m8' m4 m2 m1') + (m8 m4' m2' m1) + (m8 m4' m2 m1) d31 = (m8' m4' m2' m1) + (m8' m4' m2 m1) + (m8' m4 m2' m1) + (m8' m4 m2 m1) + (m8 m4' m2' m4') + (m8 m4' m2 m1') + (m8 m4 m2' m1') 15-Mar-07 Merni instrumenti - Digitalna elektronika 30
Primer kombinaciona mreža (nastavak) d28 = m8' m4' m2 m1' leap d29 = m8' m4' m2 m1' leap d30 = (m8' m4 m2' m1') + (m8' m4 m2 m1') + (m8 m4' m2' m1) + (m8 m4' m2 m1) d31 = (m8' m4' m2' m1) + (m8' m4' m2 m1) + (m8' m4 m2' m1) + (m8' m4 m2 m1) + (m8 m4' m2' m4') + (m8 m4' m2 m1') + (m8 m4 m2' m1') 15-Mar-07 Merni instrumenti - Digitalna elektronika 31 Drugi primer Kombinacija za otvaranje vrata: ukucajte 3 vrednosti jednu po jednu da bi se otvorila vrata; ako dođe do greške u unosu, brava mora da se resetuje; kad se vrata otvore, brava mora da se resetuje ulazi: sekvenca ulaznih vrednosti, reset izlazi: otvaranje/zatvaranje vrata memorija: mora da se pamti kombinacija ili da uvek bude raspoloživa kao ulaz 15-Mar-07 Merni instrumenti - Digitalna elektronika 32
Implementacija u softveru integer combination_lock ( ) { integer v1, v2, v3; integer error = 0; static integer c[3] = 3, 4, 2; } while (!new_value( )); v1 = read_value( ); if (v1!= c[1]) then error = 1; while (!new_value( )); v2 = read_value( ); if (v2!= c[2]) then error = 1; while (!new_value( )); v3 = read_value( ); if (v2!= c[3]) then error = 1; if (error == 1) then return(0); else return (1); 15-Mar-07 Merni instrumenti - Digitalna elektronika 33 Implementacija - sekvencijalni digitalni sistem Kodiranje: koliko bita po ulaznoj veličini? koliko vrednosti u sekvenci? kako znamo kad se unese sledeća ulazna vrednost? kako predstavljamo stanja sistema? Ponašanje: signal takta je potreban da bismo znali kad možemo da vidimo stanje ulaza (da su se smirili nakon promene) sekvencijalno: sekvenca vrednosti treba da se unese sekvencijalno: pamtiti da li je došlo do greške specifikacija konačnih stanja takt novi unos vrednost stanje reset otvoreno/zatvoreno 15-Mar-07 Merni instrumenti - Digitalna elektronika 34
Implementacija - sekvencijalni digitalni sistem (nastavak) Dijagram konačnih stanja Stanja: 5 stanja predstavljaju tačku izvršenja svako stanje ima izlaze Tranzicija: 6 iz stanja u stanje, 5 sopstvenih tranzicija, 1 globalna promene stanja nastupaju kad takt dozvoli GREŠKA bazirano na vrednostima ulaza zatvoreno Ulazi: reset, novi, resultati poređenja Izlaz: otvoreno/zatvoreno C1!=value C2!=vrednost C3!=vrednost & new & novi & novi S1 S2 S3 OTVORENO reset zatvoreno zatvoreno zatvoreno C1=vrednost & novi C2=vrednost & novi C3=value & new otvoreno nije novi nije novi nije novi 15-Mar-07 Merni instrumenti - Digitalna elektronika 35 Implementacija - sekvencijalni digitalni sistem (nastavak): Interna struktura put podataka memorija za kombinacije komparatori kontrola kontroler konačnih stanja kontrola za put podataka promene stanja na osnovu takta vrednost C1 C2 C3 komparator multiplekser mux kontrola novi jednako kontroler reset takt jednako otvoreno/zatvoreno 15-Mar-07 Merni instrumenti - Digitalna elektronika 36
Implementacija - sekvencijalni digitalni sistem (nastavak): kontroler konačnih stanja Kontroler konačnih stanja prepraviti dijagram stanja da uključi i internu strukturu zatvoreno GREŠKA reset zatvoreno mux=c1 nije jednak nije jednak & novi nije jednak & novi & novi S1 S2 S3 OTVORENO zatvoreno zatvoreno otvoreno mux=c2 mux=c3 jednak & novi jednak & novi jednak & novi nije novi nije novi nije novi 15-Mar-07 Merni instrumenti - Digitalna elektronika 37 Implementacija - sekvencijalni digitalni sistem (nastavak): kontroler konačnih stanja Kontroler konačnih stanja generisati tabelu stanja (nalik kombinacionoj tabeli) reset zatvoreno mux=c1 equal & new zatvoreno nije jednak nije jednak & novi nije jednakl & novi & novi S1 S2 S3 OTVORENO closed mux=c2 equal & new GREŠKA closed mux=c3 equal otvoreno & new nije novi sledeće reset novi jednako stanje stanje mux otvoreno/zatvoreno 1 S1 C1 zatvoreno 0 0 S1 S1 C1 zatvoreno 0 1 0 S1 ERR zatvoreno 0 1 1 S1 S2 C2 zatvoreno 0 0 S2 S2 C2 zatvoreno 0 1 0 S2 ERR zatvoreno 0 1 1 S2 S3 C3 zatvoreno 0 0 S3 S3 C3 zatvoreno 0 1 0 S3 ERR zatvoreno 0 1 1 S3 OTV. otvoreno 0 OTV. OTV. otvoreno 0 ERR ERR zatvoreno 15-Mar-07 Merni instrumenti - Digitalna elektronika 38 nije novii nije novi
Implementacija - sekvencijalni digitalni sistem (nastavak): kodiranje Tabela stanja za kodiranje stanje može biti: S1, S2, S3, OTVORENO, ili GREŠKA porebno je najmanje 3 bita za kodiranje: 000, 001, 010, 011, 100 ili 5: 00001, 00010, 00100, 01000, 10000 biramo 4 bita: 0001, 0010, 0100, 1000, 0000 izlazni mux može da bude: C1, C2, or C3 potrebno je 2 do 3 bita za kodiranje biramo 3 bita: 001, 010, 100 izlazi otvoreno/zatvoreno može da bude: otvoreno ili zatvoreno treba 1 ili 2 bita za kodiranje biramo 1 bit: 1, 0 15-Mar-07 Merni instrumenti - Digitalna elektronika 39 Implementacija - sekvencijalni digitalni sistem (nastavak): kodiranje Tabela stanja za kodiranje stanje može da bude: S1, S2, S3, OTVORENO, ili GREŠKA biramo 4 bita: 0001, 0010, 0100, 1000, 0000 izlazni mux može da bude: C1, C2, ili C3 biramo 3 bita: 001, 010, 100 izlaz otvoreno/zatvoreno moze da bude: otvoreno ili zatvoreno biramo 1 bit: 1, 0 sledeće reset novi jednako stanje stanje mux otvoreno/zatvoreno 1 0001 001 0 0 0 0001 0001 001 0 0 1 0 0001 0000 0 0 1 1 0001 0010 010 0 0 0 0010 0010 010 0 0 1 0 0010 0000 0 0 1 1 0010 0100 100 0 0 0 0100 0100 100 0 0 1 0 0100 0000 0 0 1 1 0100 1000 1 0 1000 1000 1 0 0000 0000 0 15-Mar-07 Merni instrumenti - Digitalna elektronika 40 dobar izbor za kodiranje! mux je identičan sa poslednja 3 bita stanja otvoreno/zatvoreno je identično prvom bitu stanja
Implementacija - sekvencijalni digitalni sistem (nastavak): implementacija kontrolera Implementacija kontrolera mux kontrola novi jednako reset kontroler takt specijalni element kola (zove se registar), za pamćenje ulaza kad takt to odredi otvoreno/zatvoreno mux kontrola novi jednako komb. logika stanje reset takt otvoreno/zatvoreno 15-Mar-07 Merni instrumenti - Digitalna elektronika 41 Hijerarhija projekta sistem putanja podataka kontrola registri koda multiplekser komparator registri stanja kombinaciona logika registri logika prekidačke mreže 15-Mar-07 Merni instrumenti - Digitalna elektronika 42
Pregled Dat je pregled o čemu će se govoriti na kursu Predstavljanje rešenja problema kombinacionim i/ili sekvencijalnim mrežama efektivno organizujući projekat hijerarhijski Korišćenje modernih alata za razvoj koji omogućavaju produktivan rad sa velikim projektima Korišćenje prednosti koje pružaju tehnike optimizacije U nastavku detaljnije... 15-Mar-07 Merni instrumenti - Digitalna elektronika 43