You are on page 1of 45

DIGITALNA LOGIKA

Procesori, racunari, uopste, digitalna tehnika su uredjaji paradoksalni, sa mnogo neocekivanih stvari.
Oni su prema nama neuporedivo brzi. Ljudi imaju intuiciju, predrasude, bazirane na sopstvenom
iskustvu, a racunari su brzi pa intuicija vara cesto.
Procesori su najkomplikovaniji uredjaji na izvestan nacin, a sa druge strane su mnogo jednostavni.
Kompleksni uredjaji su oni uredjaji koji imaju mnogo sastavnih delova. Ukupan broj delova u jednom
racunaru moze da bude milijarda (samo procesor ima par stotina miliona delova). Ali sa druge strane,
imamo da iako je taj racunar napravljen od milijardu delova, svi elementi su prakticno jednaki (isti), taj
isti deo se ponavlja milijardu puta (to je paradoks). Takodje imamo i dodatnu cinjenicu kod racunara
imamo pitanje sta je gradivni element (pitanje za sebe, sta je taj element, kako da ga poboljsavamo), a
drugo pitanje je kako sastaviti te gradivne elemente (ne zanima nas sta je taj gradivni element, vec
kako da ih rasporedim). Ova dva pitanja su u potpunosti odvojena. Razvoj racunarske tehnologije
zavisi od razvoja tog gradivnog elementa (ovo je veoma dinamicko, brzo napreduje), a drugo pitanje
(kako da sklopimo) je staticka oblast i taj deo se ne menja (isto je bilo i pre mnogo godina). Samo u
racunarstvu imamo ove dve oblasti koje nisu povezane i potpuno se odvojeno razmatraju.

Gradivni element Dinamicka oblast
Sastavljanje gradivnog elementa Staticka oblast


Znaci, jedno je pitanje gradivnih delova, a drugo je pitanje slaganje tih gradivnih delova, tj arhitektura.
Klasicna digitalna logika se bavi arhitekturom (slaganjem elemenata), medjutim, ona ne ide mnogo
nisko. Mi cemo ovde da uradimo i to nisko, da bismo bolje razumeli.
U tom gradivnom elementu je sadrzan sav napredak tehnologije i sve sto se desava u racunarima. Tu
se uplice eksponencijalni razvoj. Razvoj racunarskog hardvera je eksponencijalan. Mooreov zakon
(podpredsednik i koosnivac Intela) performanse racunarskog hardvera se udvostrucuju
svakih 18 meseci (nije dramaticna izreka, ne zvuci narocito). Mi intuitivno nemamo predstavu
eksponencijalnosti (10 na 100 nam je isto sto i 10 na 105, ali nije tako). Za Mooreov zakon su ljudi
smislili jednu recenicu (da bi pobedili nasu intuiciju). Uzeli su da uporedjuju racunare i automobile.
1945 je pocetna godina nastanka racunara. i uzeli su do 1995 godine (50 godina). Uzeli su ovaj
raspon od 50 godina da bi uporedili automobile i racunare. Uzeli su listu parametra koji se uporedjuju
(automobili cena, brzina, racunari memorija, koliko kostaju). Ispisu se ti svi parametri za
automobile i racunare za 45 godinu i za 1995 godinu. i doslo se do recenice: Da su se automobili
razvijali onom brzinom kojom su se razvijali racunari, isli bi 700km na h, trosili bi pola deci
goriva, kostali bi 2 dolara, a prevozili bi 300 putnika (ovom recenicom se pokazuje kako nasa
intuicija nama ne dozvoljava da shvatimo razvoj racunarstva). Dakle, racunari se strahovito brzo
razvijaju, a ceo razvoj je skoncentrisan u jednom jedinom grdivnom elementu. Stvari se
eksponencijalno unapredjuju samo sa strane tog gradivnog elemnta, a ono kako ih slazemo se
ne poboljsava.
Postoji isto jedan stari primer eksponencijanog. Prica o navodnom izumitelju igre saha. Pre par hiljada
godina, neki covek je izmislio sah, i pokazao je tu igru nekom caru. Ovaj je hteo da ga nagradi, ali taj
izumitelj je rekao da bi hteo jedno zrno psenice na prvom polju, a drugom 2 zrna, pa 4, pa 8, 16, pa
256 zrna Ovde se radi isto sto i u Moorevom zakonu (eksponencijalno, pa to ide u beskonacnost
jako brzo..). Kada su ljudi uzeli to pa preracunavali, isplao bi da je na tu sahovsku tablu stajalo
psenice kolika je 200 godisnja proizvodnja psenica (ovo je primer koji objasnjava koliko mi intuitivno
ne razumemo eksponencijalno).
Isto tako postoji jos jedan primer. Problem putujuceg trgovca. Posmatramo 20 gradova. Neki putujuci
trgovac mora da obidje sve gradove. Za svaki par gradova se zna cena putovanja. Problem je da se
nadje najjeftiniji put, tj da najmanje para potrosi za taj put. (ovaj zadatak deluje veoma razuman).
Mnogi bi se uhvatili da to izracunaju za neku nadoknadu (naivni za 100 evra, manje naizvni za 10000
evra). Za resenje ovog problema bi trebalo 1000 godina, jer je ovaj problem eksponencijalan. Kada
izanaliziramo, iz prvo grada moze da ode u bilo koji od 19 gradova, pa iz drugog u bilo koji od mogucih
18 Broj fiksiranih ruta je 19!. To je veoma neugodan broj. Stilingova formula, n! se prilicno ponasa
kao n na n!!!! Kada napisemo ovo ne deluje strasno, medjutim nevolja je sto nemamo intuitivan osecaj
beskonacnosti. Najbrzi racunar bi radio 1000 godina, pa se tako ovaj problem smatra neresevim.
Ovo su bili razliciti primeri eksponencijalnog, koji pokazuju koliko trebamo da budemo obazrivi sa
ovim. Sa ovim treba isto da povezemo pojam logaritamski (suprotno od eksponencijanog). Sa
eksponencijalnim nema spasa, a kada uspemo nesto da stavimo pod logaritam, onda je mnogo
jednostavnije. Naivne stvari su pod eksponentom neuhvatljive, a strasne stvari su pod logaritmom
resive. Uzme se neki broj do 1000 (postavljaju se pitanja i onaj ko zamislja broj odgovara sa da ili ne, i
onaj koji postavlja pitanja pogodi broj). Ova pitanja ce da naprave logaritamsku pretragu (svakim
pitanje prepolovi interval da li je broj veci od 500, da li je veci od 250, suzavamo hiljadu na interval
jedinice). Na ovaj nacin sa logaritmom se i kontrolisu cipovi. Uzememo procesor od milion ili 100
miliona elemenata, i znacemo uz princip logartma tacno koji je koji i cemu sluzi koji logaritam
(procesor je hijerarhijski sredjen, znamo da se on deli na 5,6 delova, pa se svaki od tih delova deli na
jos nekoliko delova, pa sve tako.. i tamo logaritmom u nekoliko desetina koraka mozemo tacno da
vidimo sta je koji element). Ovde sve posmatramo kao drvo sa korenom i odredjenim faktorom (na
koliko se grana stablo grana), i onda mozemo brzo da dodjemo do detalja (listova, npr naredbi). Ovo
sve pomaze kod velikih sistema. Sve kod velikih sistema dobro funkcionise jer su ti sistemi hijerarhijski
organizovani i lako mozemo da dodjemo do bilo kog elemenata u samo nekoliko koraka.
Kada su razmotrene ove osnovne zakonitosti, idemo ka objasnjavanju tog gradivnog elemnta,
kako radi, itd.

IV PREDAVANJE 21.03.2007. god.

Dakle, poceli smo digitalnu logiku proslog casa, ali ne njen klasicni deo, vec deo koji joj prethodi. Sada
bi trebalo da se prekidac, kao osnovna gradivna jedinica detaljnije pogleda. Osnovni gradivni
element jeste prekidac. To je prekidac specijalnih osobina (nije kao prekidac za svetlo, cesma za
vodu je isto prekidac ili pusta ili ne pusta vodu). Ovde nam treba prekidac, koji se kontrolise onim
sto on sam kontrolise, da bi bila omogucena kontrolna sprega (svaki prekidac nesto kontrolise,
slavina voda, svetlo, struja, ali se oni kontrolisu necim drugim, mehanickom silom,). Sa gledista
arhitekture kazemo, dajte nam 100000 prekidaca, i napravicemo neki procesor. A sa gledista
gradivnog elementa, ljudi naprave prekidac i ne zanima ga gde ce da ide.
Tokom istorije je bilo raznih vrsta prekidaca. Razvojoj je bio ili kvantitativan ili kvalitativan
naizmenicni napredak (bilo kvalitativan, bilo kvantitativan). Kvalitativan razvoj (kada je napavljen
sustinsko drugaciji prekidac), pa kvantitativan
Ovaj prekidac moze da prekida bilo sta najzgodnije bi bilo struju ili napon. Pitanje bi bilo, koji bi bio
najjednostavniji prekidac za struju koji zadovoljava one gore uslove. Ovakvi prekidaci postoje odavno,
i interesantno je da sada ljudi imaju manje kontakta sa tim prekidacem i manje znaju o njemu nego pre
mnogo godina. Prekidac koji zadovoljava ove osobine zove se relej. Danas su ti releji sakriveniji. Relej
je elektromehanicni uredjaj, koji radi po principu releja, gde se magnetom privalci neki kontakt koji
se onda spaja i razdvaja. Relej je naprava koja se koristi za prekidanje ili uspostavljanje strujnog
kola putem elektromagneta koji otvara i zatvara struj ne kontakte.



Princip rada releja. U gornjem dijelu slike, relej je iskljuen. Kontakti dalje od elektromagneta (uti
cilindar) su otvoreni. U donjem dijelu slike relej je ukljuen, kotva pomjera srednji kontakt koji sad
uspostavlja vezu sa desnim. Desni par kontakata je dakle normalno otvoren.

Ranije su se releji prodavali na ekskluzivnim mestima, pa su bili vidljiviji (ima ih na autu, kontrolisu
paljenje svetla). Relej je vrlo jednostavan uredjaj, imamo kalem u kome imamo neko jezgro, pa pleh,
pa metalni pokrivac, pa kontakt. Pitanje kod releja je da li struja moze da tece, kontrolise se
elektromagnetom, a elektromagnet se kontrolise strujom (uslov da kontrolise sam sebe je ispunjen
da li tece struja se kontrolise elektromagnetom, a elektromagnet se kontrolise strujom (samim
sobom)). Dakle, ovo je resenje i potrebno je samo da se on fabricki proizvede. Postoji shematski
simbol za prekidac (struja tece izmedju a i b, a kontrolise se tackom c). Mi sada kazemo sa aspekta
arhitekture da je prekidac dat i sada ih samo slazemo.
Sada moze da se razmatra da li moze da se napravi neki drugi prekidac (imamo a,b,c i to je to, samo
pitamo da li moze da bude brze,jednostavnije, tj pokusavamo da optimizujemo ove parametre). Kroz
istoriju se pokazalo da je tu moglo da se pronadje nesto sustinski drukcije kada se prekidacki
element sustinski menjao, radi se o novoj generaciji racunara (kvalitativni pomak), pa se onda to
sustinski drukcije kvantitativno poboljsava. Ovo sa relejima se koristilo, sada se naravno ne koristi i to
se zove nulta generacija racunara (nisu pravi racunari, ali nisu mogli ni da se zanemare, pa su
zato nazvani nultom generacijom, vreme pre drugog svetskog rata). Ovaj relej funkcionise, ali
iako se on kontrolise i prekida se strujom, ovaj uredjaj radi elektronski, ali radi i mehanicki, a
mehanicki uredjaji ne mogu da budu mnogo kvalitetni. Zato sto ovi uredjaji mehanicki prekidaju, ne
mogu da budu mnogo brzi (zvonce na vratima radi na ovom istom principu). Ovaj uredjaj moze
stotinak puta da prekine u sekundi (dobro je u odnosu na coveka, ali je ograniceno).
Krenulo se na trazenje necega drugog. Pred kraj drugog svetskog rata, do 1945 godine, uzet je drugi
uredjaj elektronka elektronska cev (koristio se u radio elektronici). Isto je jednostavne
konstrukcije, npr trioda. Iz jednog staklenog balona se izvuce vazduh (napravi se vakum, da se e ne bi
sudarali sa vazduhom). Napravi se elektroda koja ce da propusta elektrone. Mora da se podgreje da
bi lakse otpustala elektrone. Ovo je nekakav provodnik (kroz vakum se propustaju elektroni). Na ovaj
nacin smo dobili istu stvar kao kod releja, A,B, i C (isto kontrolise struju i kontrolise se strujom).
Razlika u odnosu na relej je sto je ovaj uredjaj potpuno elektronski. Ovaj uredjaj moze da ide i
milijardama puta u sekundi (sustinska razlika). Ovi uredjaju su npr od releja x2 skuplji, x2 veci, ali je to
zanemarljivo u odnosu na sto sto su milion puta brzi. Ovo je prva generacija racunara (1945,
ENICAC je prvi predstavnik tog racunara, ENIAC je imao 18000 elektronki). Veliki broj tih
elektronki na jednom mestu, mnogo struje trosi i veliki toplotu oslobadja, pa se onda radilo na
smanjenju potrosnje, manjem zagrevanju i to je sve deo tihog razvoja unutar jedne generacije
(kvantitativni skok).
Posle ovoga je doslo do pojave tranzistora. Ideja prekidaca moze da se uradi i na drugim principima.
J os je 1928 godine razmatrana ideja kako bi mogao da se napravi neki novi tip prekidaca (u praksi
tada nije moglo nista da bude od toga). Uzme se plocica od nekog materijala (poluprovodnici, silicijum,
germanijum). Napravi se kanal koji ce da ima visak elektrona. Onda se napravi drugi kanal koji isto
tako ima visak elektrona. Ta mesta koja imaju visak elektrona bi trebala da provode struju (struja je
ustvari prebacivanje elektrona sa jednog mesta na drugi). Stavimo zicu preko koje tecu elektroni.
Dakle, 1928 godine ideja nije mogla da se realizuje (3 kockice od germanijumskih materijala i
pronadjeni su komplikovani zakoni). Ovo 1928 godine se isto zvao tranzistor i Belove lab zbog
komercijalizacije nisu mogle da ga proizvode. i kasnije je moglo da se koristi. Ovo je kvalitativni skok.
Elektronka je bila npr 3x3cm, a tranzistor je bio mnogo manji od elektronke po zapremini. i tranzistor
nema zagrevanje kao elektronka (1000x manja zapremina, manja putrosnja i manje zagrevanje).
Prelazak sa elektronke na tranzistor je poboljsanje od nekoliko miliona. Ovo je potpuno nova
generacija racunara. Druga generacija racunara tranzistori (od sredine 50tih godina, pa
nadalje).

Obicno se prihvata danas, da posle tranzistora postoje jos 3. i 4. generacija. Kod trece generacije se
ne radi o sustinski novom gradivnom elementu. Generacije se baziraju na tipu gradivnog elementa koji
se koristi. Kod 3. generacije imamo drugaciju organizaciju postojeceg prekidackog elementa. Treca
generacija je modularna tehnologija. Nama ne trebaju prekidaci kao pojedinacni delovi (njih cemo u
svakom slucaju sastavljati). Zasto mi da vec u fabrici ne sastavljamo te delove, kada nam u svakom
slucaju trebaju sastavljeni. Ovako dobijamo nekakve ustede, jer tranzistore spajamo vec u fabrikama
(u fabrici ih spojimo na maloj plocici, tranzistori su bili u metalnoj kapici da bi mogli da njima da
manipulisemo 1cm velicine. Bez tih kapica bi bili samo velicine ciode i stavljamo ih u kapice samo
zbog toga da bi mogli sa njima da fizicki manipulisemo). Ako ih spajamo u fabrici, ne trebaju nam
kapice, jer fizicki ne trebamo da manipulisemo, i zato samo te tranzistore (velicine ciode) stavljamo na
male plocice, i onda tim grupama tranzistora na plocicama na manipulisemo. Ovo je pomak jer je opet
1000 puta manje, iako se isto radi o tranzistorima. Ovo je treca generacija (ranih 60tih godina).
Kasnijih 60tih i 70tih godina dolazi cetvrta genracija VLSI. Ovde se vracamo na staru ideju
tranzistora cija je najinteresantnija osobina da je on dvodimanezionalan (planaran). Treca dimenzija je
toliko tanka, pa se zove dvodim (kao boja na zidu koji farbamo). Bitno je sto on moze da se pravi
postupkom koji lici na fotografski postupak (posto je dvodim) kvalitativni postupak. Ovde
raskidamo vezu 1 na prema 1 sa prekidackim elementima (ranije je sve bilo 1 na 1). Ovde ih pravimo
sve odjednom (ne jedan po jedan). Dakle, ovde imamo jedno pravljenje i nas se ne tice koliko imamo
tranzistora u jednom pravljenju (primer sa slikanjem slike i snimanjem fotografije fotografijom). Ovde
je kvalitativna razlika. Cetvrta generacija se bazira na tehnologiji gde se svi prave odjednom.
Ustalilo se da se generacije smenjuju sa periodom od 5-10 godina. Medjutim, posle VLSIja nema pete
generacije. Cetvrta generacija traje od kraja 60tih godina do danas. Mooreov zakon nije zaustvljen, jer
su unustrasnje tihe promene burnije, a sustinske se ne menjaju. Ovde je sada faktor minijaturizacija.
Ovaj faktor se linearno menja, a povrsinski elementi se menjaju kvadratno. Sa minijaturizacijom se
pomocu tihih promena odrzava Mooreov zakon. Ovde je uvodni deo o VLSI, nastavak ce biti u
sledecem kursu.

Generacija Vreme Gradivni elemnt Objasnjenje Skok
0 Pre II s.r relej Elektro mehanicki
uredjaj

1 do 45 elektronka Potpuno elektronski Kvalitativan
2 od 50 tranzistor poluprovodnici, jos
od 1928
Kvalitativan

3 rane 60 tranzistor
modularno
Ukidaju se kapice,
spajanje u fabrici
Kvantitativan
4 kasne 60, rane
70
VLSI
sve odjednom
Dvodimenzionalna
tehnologija
Kvalitativan


Ovo je zvanicna podela na cetiri generacije. Generacije racunara se definisu na osnovu prirode
prekidackog elementa. Mnogi su pokusali da menjaju ovu definiciju i da smisljaju nove generacije
koje ne postoje (neki kazu pojavile se mreze, pojavila se multimedija). Po literaturi se spominje peta
generacija (ova generacija ne postoji, 80tih godina, kada je bilo vreme da se smene generacije, a
smene nije bilo,ovo treba samo informativno da se zna), kaze se da je to bila softverska revolucija.
Trebala je da bude bazirana na vestackoj inteligenciji i PROLOG jeziku (pokretac J apanska vlada).
Bilo je dosta diskusija o ovome i zato je potrebno da se spomene. Bila je masa glupih clanaka o
ovome (srecna buducnost, bice racunari svuda, bice prozori sa racunarom i PROLOGOM., OVDE
PLJ UJ E SVE TO). Ovde su bile kolateralne stete PROLOG je bio ta steta (solidan jezik koji je
propao zbog ovih prica). Isto se tako pokazalo da je finansiranje J apnske vlade ustvari samo malo (2
miliona dolara).
Ovo sto smo ispricali do sada se desavalo. Moze da se uradi i ekstrapolacija na drugu stranu
(unazad, ono sto se nije desilo, a moglo je da se desi). Elektronke su izmiljene 1910 godine, i
moglo je teoretski vec 1925 godine da se uradi sve sa elektronkama sto se uradilo 1945 godine. Ta
ekstrapolacija moze da ide do 1910 godine, ne ranije. Nije morala da bude struja u pitanju, vec je
mogla da bude voda. Mogla je da se uzme cesma npr (prekidac koji se kontrolise onim sto sam
kontrolise - vodom). U skladu sa celom pricom, ova tehnologija cesme je dovoljna da se napravi
prekidac. Mogli smo racunare ekvivalentne ovim racunarima da pravimo u Starom Egiptu (tehnologija
prekidaca je postojala, ali je nedostajala arhitektura znanje, znanje je jedno (arhitektura), a
tehnologija prekidaca je drugo). Dakle, tehnologija nije bila potrebna da bude na visokom nivou (prica
o polju i cesmama kako bi egipcani mogli da naprave racunar na polju velikom uz pomoc cesmi,
memorijski elementi su kofe, kada se zavrsi, pregledamo kofe, napunjena je 1, prazna je 0). Ova
ekstrapolacija izgleda kao sala, ali je skroz moguca.

Ovde je zavrsen deo o prekidacima. Sada se prelazi na klasicnu digitalnu logiku.

Sada gledamo uvod u slaganje prekidaca. Ima jedna zakonitost, sve sto budemo pravili, bice ustvari
logicke funkcije. Ne treba logicke funkcije (booleanske funkcije) posmatrati kako smo navikli. Funckije,
preslikavanje iz jednog u drugi skup (specijalan slucaj kada je slucaj dvoclan, i domen i kodomen su
dvoclani skupovi ovo je definicija booleanske funkcije). Booleanska funckija funkcija sa 2
elementa, nad dva elementa i kao rezultat dobijamo 2 elementa. Zato su racunari binarni uredjaji
(uredjaji koji samo detektuju da li ima ili nema su jednostavni, a uredjaji koji mere nivoe su
komplikovani). Racunari su po prirodi booleanski uredjaji, jer barataju samo sa dve velicine. 10 nije
jubilaran broj, 10 je nasa izmisljotina (prica sa 3 hrpe kamencica). 10 je jubilaran (10 prstiju).
Bavljenjem racunarima, treba da se razbijaju predrasude. Pitanje bi bilo: Koliko ima logickih
funkcija jedne varijable, a koliko logickih funkcija 2 varijable? Kod racunara, stvari treba gledati
objektivno. Nije vazno ime, vec je vazno sta booleanska funkcija radi. Ako imamo funkciju od k
varijabli, argument moze da bude samo 2 (0 ili 1), onda za k varijabli imamo, ako imamo k ulaznih
varijabli (one su booleanske), broj mogucih ulaza je broj varijacija sa ponavljanjem, a to je 2 na k
(pogledati varijacije sa ponavljanjem), ako imamo dve varijable x i y (4 kombinacije 00,01,10,11). Sa
x,y,z, imamo 8 komada. Booleanska funkcija sa 2 varijable jeste kada ulazima dodelimo vrednosti (npr
0101). Kada pravimo funkciju, mi ispisujemo 0 i 1 na sve moguce nacine. Koliko smo imali mogucih
ulaza, toliko imamo mogucih mesta (ponovo varijacije sa ponavljanjem), ali na duzinu koju smo
malopre izracunali 2 na k je broj razlicitih ulaza, a 2 na 2 na k je broj mogucih nacina
popunjavanja tablice sa ulazima. Od k ulaznih argumenata ima 2 na 2 na k mogucih
booleanskih funkcija (k=1 je 4, a k=2 je 16). U praksi znaci ovako: za jedan arugment x, moguci
ulazi su 0 i 1, a moguce funkcije su (na 2 mesta treba da rasporedim jedinice na razlicite nacine),
00,10,01,11, to su cetiri moguce funkcije jedne varijable. F0(00), f1(10),f2(01),f3(11) cetiri moguce
funkcije jedne varijable, jer na 2 mesta popunjavamo 0 i 1 na sve moguce nacine. F0(x) ==0 (ne zavisi
od x), f1(x)=x (ovo je prihvatljiva funkcija, jedna od mogucih), f2(x)=x nadvuceno (negacija) i f3(x)==1.
(greska ljudi da je jedina funkcija jedne varijable samo negacija, x, !x).
Sa dve varijable (x i y), moguce ulazne vrednosti su: 00,01,10,11, a moguce funkcije su:
0000,0001,0010,0011,0100,0101,0110,0111,1000,1111 16 funkcija (dobija se tabela). Mogu da
se daju imena f0,f1,f2,f3,f4,f5,f6,f7.f15. Ovo je 15 logickih funcija dve varijable, koje su u fizickom
svetu sve vredne i valjane. Mi smo sada neke od njih proglasile za lepse, pa kazemo, da je f1 =
konjukcija, f7=disjunkcija (or), f9=ekvivalencija F6=eksluzivno ili. Neke od njih smo izdvojili i dali im
imena (ovo je nasa proizvoljnost, fizicki je sve to isto).
Sve se sastoji od jednog gradivnog elementa. Kada treba prakticno da pravimo nesto od tih prekidaca,
moramo malo da odstupimo. Svi bi se slozili da je to dozvoljeno odstupanje (ne podvala).
Imamo dva oblika (modifikacije) jednog prekidaca. Kada nema struje na kontroli, prekidac ne provodi,
a kada ima struje on provodi (definiciji bi odgovoaralo i suprotno, kada ima struje ne provodi, kada
nema struje, on provodi). Moze i ovako i onako. Ovo je ta modifikacija prekidaca. Fizicka modifikacija
je minimalna. Kod modifikacije neutralno provodi, a kada ima struje ne provodi.
Vrste prekidaca :
1. pri neutralnom stanju kontrole ne provodi (aktivno stanje provodi)
2. pri neutralnom stanju kontrole provodi (neaktivno stanje provodi, aktivno stanje ne provodi)
Simbol malog kruzica znaci inverzija (obrtanje signala).

Realizacija logickih funkcija. Prve bi bile one sa jednom varijablom. Najinteresantnija je
negacija.Kada dodje do fizicke realizacije funkcija i kola, moramo da dodamo i neke fizicke velicine
(najveci deo razvoja, bilo je stanje kada smo imali +5v je jedanko logickoj jedinici, a 0 volti je jednako
0, ovo je jako dugo vremena vazilo). Ako imamo x, a treba nam f(x). Ako hocemo funkciju f0, imamo x,
f(x), f(x)(x), f(x) ne zavisi od x, smao povezemo na masu i dobijemo masu (zicu povezemo na 0), i
dobili smo f(0), ako hocemo da dobijemo f1(x),to je funkcija koja je jednaka xu, samo jednu zicu sa
ulaza vodimo na izlaz i dobili smo funkciju f1(x). Ako nam treba f3(x), odvedemo zicu na plus 5 volti.
Ove tri funkcije su u pogledu implementacije trivijalne, samo povezemo zice, ne trebaju nam prekidaci.
OVO BI SVE OTPRILIKE TREBALO DA BUDE SADRZANO U PREDMETU OSNOVE
RACUNARSKE TEHNIKE (ORT), KOJI SE RADI NA ETFU. SKINUO SAM TO SA NETA
rti.et.bg.ac.yu
Kada se prakticno primenjuju prekidaci, mora se malo odstupiti od onog osnovnog oblika prekidaca
(idemo na dozvoljeno odstupanje). Dva oblika prekidaca (dve modifikacije prekidaca). C je kontrola i
ona odredjuje da li ce od A do B da tece struja ili ne. Kada nema struje na kontroli nece da provodi, a
kada ima struje na kontroli, provodice ce (moze i obrnuto). Uvede se simbol kruizic, sto znaci da pri
neutralnom stanju kontrole provodi. Ova slika sa kruzicem znaci da taj prekidac pri neutralnom stanju
signala (nema struje) provodi. Ovaj kruzic nije slucajno uvden, taj kruzic znaci inverzija. Dakle, prvom
kada damu 0 on NE PROVODI, a drugom kada damo 0, ON PROVODI. Ovaj simbol je uveden da bi
mi podsvesno tako radili.

Najinteresantnija je funkcija negacije. Dodali smo fizicke velicine (0v znaci 0, 5v znaci 1).
Da bismo dobili funkciju f0(x), vrednost te funkcije je uvek 0 (imam x i f(x), treba nam f(x) od x. Ovu
funkciju realizujemo tako sto zicu koja je izlaz povezemo na 0. Ova funkcija ne zavisi od x.
Da bismo dobili f1(x), vrednost ove funkcije ima vrednost x, samo spojimo ulaz i izlaz, ulaz je x, f(x) je
izlaz.
Ako nam treba f3(x) sto je vrednost 1, izlaz odvedemo na plus 5v (to je uvek 1). Ovde vrednost izlaza
ne zavisi od ulaza. Implementacija je jednostavna uz pomoc zica.
Kako da napravimo funkciju inverzije (negacije), uz pomoc 2 varijante prekidaca.
Ako povezemo prekidace na ovaj nacin (slika). Povezemo 2 prekidaca (jedan jednog tipa, drugi
drugog tipa na donji nacin). Ako stavimo da je x jedanko 1, jedan ce da propusti struju, a drugi kada
mu se dovede napon, nece da propusti struju. Ovde imamo dve varijante.
Ako stavimo da je x jedanko jedan, jedan propusta, a drugi ne propusta. imamo izlaznu tacku f(x)
koja je kroz prekidac vezana za 0, a prekinut joj je put do plus 5v, pa ce da bude f odx je jedanko 0.
Ako stavimo da je x jednako 0, onda ovaj inverzni propusta (prema 0 imamo sasecen put, prema 1
imamo prohodan put) i bice jedinica sa izlazom.
Kada dva slucaja saberemo, imamo da kada je u jednom slucaju bilo 1, izlaz je bio 0, a kada je bilo 0,
izlaz je bio 1,pa imamo f(x) je x nadvuceno (inverzno).Ovo je funkcija negacije inverter se naziva.


Na ovaj nacin smo uspeli da dobijemo prvu funkciju koja ima smilsa. Prethodne tri su bile trivijalne. To
je logicka funkcija negacije inverter. Moze da se zove not kao logicka funkcija, ali se cesce
zove inverter. Za inverter se uzima simbol takodje (pojavljuje se kruzic). Simbol je prikazan na
gornjoj slici.
Ovde vec mozemo da vidimo hijerarhiju. Videli smo kako radi inverter i njega smo analizirali, i sada
samo mozemo simbol da nacrtamo.
FUNKCIJA NOT AND - NAND
Sledeca funkcija je funkcija NAND (NOT AND) Ako pomocu prekidaca napravimo funkcije
konjukcije i disjunkcije, logicno je da je konjukcija povezana sa serijskom vezom prekidaca. Ako nema
nicega drugoga, sama serijska veza prekidaca je konjukcija. Od tacke x,do tacke y mozemo da
prodjemo samo ako nas svi puste. Konjukcija je funkcija koja je jednaka 1 samo ako su joj svi
argumenti jednaki 1. Kada svi propuste, moze da se prodje, ako jedan presece, ne moze da se prodje.
Disjunkcija bi u skladu sa tim imala veze sa paralelnom vezom prekidaca. Kod disjunkcije necemo da
prodjemo samo ako svi preseku. Kod konjukcije je tesko proci, a kod disjunkcije je tesko ne proci.
Discjunkcija je netacna samo ako su joj svi argumenti netacni.
Konjukcija. Stavimo dva serijski vezana prekidaca i neka to budu x i y, a gore ce da budu drugi
prekidaci. Ovakvo kolo ne radi. Ovo je krenulo od zdrave ideje, ali je ispalo da ne radi. Sada moraju da
se sprovedu modifikacije. Ako se stave obadve jedinice, jedan propusta onamo, a ako obadve nule,
jedan propusta ovamo, a ako se stavi jedna 0 i jedna 1, onda nigde necemo moci da idemo. Resenje
je ovo dole, tj. Da ovo gore treba povezati paralelno. i sada Tuba crta sliku, kaze ovo spojimo ovako,
ovo spajamo onako. Postoje dva nacina standardizacije dijagrama: Ako zice nisu spojene nista, ako
su spojene stavimo crni kruzic. Drugi nacin je da ako idu jedna preko druge zice to znaci da su
spojene, a ako nisu spojene, onda jedna preskace drugu. Znaci imamo dva standarda ovde. Koristimo
i jedan i drugi standard. U praksi zavisi od slucaja do slucaja koji cemo standard koristiti. U
jednostavnim crtezima Tuba kombinuje oba standarda (kada tacka, onda su spojene, kada
jednostavno prelaze zice jedna preko druge, onda su spojene).
Ovo kolo bi trebalo da se analizira i da se vidi sta to kolo radi. Da bismo proverili kolo sta radi, moramo
da ispitamo sve moguce slucaje. Ako imamo 2 ulaza, imamo 4 moguce kombinacije. Da bi smo skratili
proceduru, necemo sva 4 slucaja da posmatramo, vec izdvojimo jedan karakteristicni slucaj i ostala 3
slucaja grupisemo.
Sada crta onu dole tabelu. Ovde je karakteristican slucaj da ce tesko da se prodje. Dakle, ovde se
izdvaja slucaj na ulazu 1 1. Kada je na ulazu 1 1, za funkciju imamo 0, a ako je neki drugi slucaj, neki
ce da bude presecen i necemo moci da odemo do 0. Dokazali smo samo da je u karakteristicnom
slucaju 0, ne da je u ostalim 1. Radimo analiyu gornje grane. Imamo paralelne grane i tu je
karakteristicna slucaj da necemo da prodjemo. Ovde su prekidaci tipa koji neutralno pustaju, vec
pustaju gde je signal DA (1). Kada imamo na ulazu 1 1, necemo moci da prodjemo. Dakle, u jednom
slucjau necemo moci do 1 da dodjemo, a u tri slucaja cemo moci da dodjemo u 1. Sve zajedno
gledamo i dodjemo do donje tabele. Kada gledamo pulldown i pullup grane, kada govorimo o serijskim
i paralelnim vezama, mislimo da li su serijski ili paralelni prekidaci.





Simbol za NAND je:

V PREDAVANJE 04.04.2007. god.
F1
FUNKCIJA NOR (NOT OR)
Sada nekako postavlja prekidace. Kaze da je sve simetricno slozeno. Sada proverava da li su
zadovoljeni uslovi da pulldown i pushup grana rade u protivfazi. Ako imamo negativisana stanja ili
dvostruko definisana stanja, nece moci. Opet sada analizira karakteristican slucaj. Sada crta tabelu i
uzima karakteristican slucaj. Gleda prvo pulldown granu i u njoj su paralelni prekidaci i tamo je
istaknut slucaj ne proci. Ovde ne moze da prodje ako ga ni levi ni desni ne pusti. Dakle, nece da ga ni
levi ni desni puste kada su i levo i desno 0. Istaknut slucaj je 0,0. Ovo znaci da jedino u ovom
slucaju nece da ga puste. Ovo znaci da nema 0, ne znaci da ima 1. U svim drugim slucajevima
ce da ga puste dole, i onda ima 0.
Sada radi simetricnu analizu gore. Gore su serijski prekidaci. Tamo je tezi slucaj da moze da prodje,
jedino ako ga svi puste. Istaknut slucaj je gore ponovo 0,0 i jedino u tom slucaju ce moci da prodje, i
kada prodje imamo 1, a kada ne prodjemo nemamo 1.
Sada spajamo ova dva i gledamo da li su ispunjeni uslovi protivrecnosti.
Dakle, analizom je utvrdjeno da je ovo prava funkcija, tj. Da za jednoznacni ulaz ima
jednoznacni izlaz.
Funkcija f7(x,y) je OR, a funkcija f8(x,y) je NOR x,y nadvuceno.
Dakle, do sad smo obradili TRI funkcije. Krenuli smo od aksioma 1. Inverter 2. NAND 3. NOR
OVO SMO OBRADILI DO SADA
Simbol za NOR je:
Ovo do sada obradjeno su tri osnovna elementa. Pomocu jednog prekidaca, implementiraju se
najjednostavnije funkcije jedne varijable i dve varijable, i sa tim se krece. Iz ove tri se dobija cetvrta
funkcija AND, koja se implementira kao NAND sa inverterom. Ovo je sada komplikovanija
funkcija (dobija se iz 2 i 1). A funkcija OR je peta funkcija i ona se dobija iz 3 i 1. NI i NILI su
osnovne funkcije, AND i OR su izvedene funkcije u fizickoj implementaciji. Sada imamo 5
pocetnih elemenata i dosli smo do pravog pocetka.

FUNKCIJA AND


FUNKCIJA OR



Sada imamo 5 pocetnih elemenata i ovo je prava tacka pocetka. Klasicna digitalna logika uzme 3
elementa i progralasi pocetak, uzme inverter i i i ili i onda se dalje izgradjuje. Digitalna logika uzima
onih 3 elementa kao aksiome. Sada se izgradjuju novi elementi koristeci samo ono sto imamo. Sada
smo od funkcije 2 varijable booleanske napravili 4, a ima ih 16. Sada moramo jos njih da objasnimo.
XOR EKSLUZIVNO ILI
Ova funkcija moze da se napravi tako sto eksperimentise sa onim sto imamo. i na kraju, uz dosta
truda dolazimo do ovoga ispod. Imamo 4 NANDa povezanih na nacin kao sto je na slici. Sada treba
da pokazemo sta radi ova funkcija ili drugacije receno da dokazemo da radi XOR. Naravno, moramo
da proverimo sve moguce slucajeve. Ispitamo sve mogucnosti i vidimo sta cemo da dobijemo. Sada
crta onu tabelu.




Mislim da je crtao donju sliku. F6 funkciju smo dobili, to je eksluzivno ili i dobili smo je pomocu
4 NANDA.
Sada dokazuje da je gore slika tacna. Proveravamo se moguce slucajeve. Sada crta tabelu. Sada
recimo uzmemo da x i y budu 0. 0 i 0 daju 0, pa zbog negacije daju 1. 0 i 1 daju 0, pa zbog negacije
daju 1, 1 i 0 daju 0, pa zbog negacije daju 1, 1 i 1 daju 1, pa zbog negacije daju 0. Kada je 0 i 0,
dobicemo na izlazu 0.
Sada menjamo y na 1. Srednji deo nece da se promeni, ali se menja 1 i 1 bice 1, pa zbog negacije
bice 0. Pa smo imali 1 i 1 bilo 1, pa je 1 i 1 0, pa zbog negacije postaje 1,dakle ovde dodje 1.
Ovo kolo je ocito simetricno, tako da ovo sto smo radili na donjoj grani (y promenili u 1), da smo x
menjali, sve bi se ponovilo i na gornjoj gradni, pa sledi da ce i 1 i 0 da bude 1.
I konacno, recimo da oba stavimo na 1. U sredini se menja stvar 1 i 1 daju 1, pa zbog negacije 0. U
ovom slucaju dobijamo 0.
DAKLE, POSMATRAMO OVU SLIKU GORE SA CETIRI NANDA, i KRECEMO OD PRVOG
SLUCAJA KADA SU i X i Y JEDNAKI NULI i GLEDAMO IZLAZ, PA ONDA KADA JE Y JEDNAKO
1, A X JEDNAKO 0, PA .. KADA SU i X i Y JEDNAKI 1 GLEDAMO IZLAZ.
Ispitali smo sve slucajeve i pogledali smo sve moguce izlaze na osnovu svih mogucih ulaza. Pomocu
4 NANDa smo dobili funkciju F6 eksluzivno ili.
Simbol je:
Sada se vec vidi kako se pravi jedno preko drugoga. Ovde vec imamo 16 prekidaca i napravili smo
kolo sa 16 prekidaca. 4 NANDA svaki sa 4 prekidaca, to je 16 prekidaca kod XORa.
Sada hoce da pokaze kako radi ovo kolo preko formula. Sada gledamo gore sliku (uvodi oznake a,b i
c). Sada tvrdi da je f(x,y)=NAND (a,b), a to je negirana konjukcija, to je a,b negirano. To je prva tvrdnja
Druga tvrdnja: a je x,c negirano
Treca tvrdnja: b je y,c negirano
Cetvrta tvrdnja: c je x,y negirano
Peta tvrdnja:Sada uvrstavamo jedno u drugo. 2 i 3 se uvrsti u 1 f=xc nadvuceno,yc nadvuceno.
Sesta tvrtdja: 4 u 5 uvrstavamo, pa je
f=

Sve u svemu, ona gore formula koja ide uz sliku!!! Formula 6 opisuje povezivanje fizickih
komponenti, crtez i formula 6 su ekvifalenti.
Kako mozemo formulom da do kazemo da je neka formula jednaka funkciji
Funkcija moze da se predstavi na razlicite nacine. J edan od nacina je preko normalnih formi. Postoji
normalna konjuktivna forma i normalna disjunktivna forma (suma proizvoda -NDF i proizvod suma-
NKF).
Uzmemo sva mesta gde funkcija ima 1, pa napravimo da i nasa formula bude jednaka 1 na razne
nacine. Pravimo sabirke. Kada su ulazi 0 i 1, pa ako obrnemo nula u jedinici, uzememo x nadvuceno
y (jedini slucaj kada su oba jednaka jedinici), ili x y nadvuceno u ova dva slucaja je rezultat 1.
OVO JE NDF i UZIMA SE KAO DEFINICIJA XORA.
OVO POGLEDATI JOS MALO!!!! POMINJE DEMORGANOVE FORME!!!
POGLEDATI OVO DOKAZIVANJE PREKO DEMORGANOVIH FORMULA!!!
IZVODJENJEM JE DOBIO ONO GORE F (NDF funkcije XOR)
I SADA XOR IMAMO KAO DODATNI GRADIVNI ELEMENT.
NJEGA SMO IZABRALI JER JE BAS TAJ GRADIVNI ELEMENT POGODAN, JER U MALOM
BROJU KORAKA DOBIJAMA ZANIMLJIVE ELEMENTE. VEC U SLEDECEM KORAKU OVAJ XOR
VODI DO NECEGA STO IMA VEZE SA PROCESOROM - UREDJAJI ZA SABIRANJE.
UREDJAJI ZA SABIRANJE
POLUSABIRAC
Uredjaji za sabiranje su sastavni delovi svakog procesora (osnovne funkcije procesora su da moze da
sabira i da uporedjuje sa 0). Pre nego sto se predje na uredjaje za sabiranje potreban je neki uvod.
Ovde moramo da razbijemo neke nase predrasude. Predrasuda sa dekadnim sistemom (10 prstiju).
(primer sa 3 hrpe kamencica od 9,10 i 11 kamencica). Dekadni sistem je za nas jako zgodan,
ljubilaran, ali objektivna stvarnost to ne podrzava. Slicno je isa ovim. Imamo razne grane matematike
(osnovne rac operacije, sab, oduz, mno,delj), pa imamo mat logiku. Kako stvari objektivno
izgledaju? Sve sto mi mozemo da uradimo u racunarima, bilo gde, sve je to matematicka logika.
Ostalo su sve drugaciji nacini prikazivanja toga. Sabiranje brojeva ima i te kako veze sa logickim
funkcijama (stavljamo posrednike i zaboravimo da se radi o logickim funkcijama). Sabiranje velikih
brojeva sastoji se iz sabiranja cifara. Sabiranje cifara se svodi na tablicu. Sve sto mozemo da uradimo
dekadno, mozemo i binarno. Bilo koja dva brojna sistema su ekvivalentni (u razlicitim brojnim
sistemima se pise na drugi nacin). Cela matematika je dekadnom sistemu, zato sto je nama tako
zgodnije. Prvo operaciju sabiranja svedemo na sabiranje cifara, pa sairanje cifara svedemo na binarni
sistem, pa se onda binarni sistem svede na tablicu, pokaze se da se sve to radi o booleanskom
sistemu. Kada ovako gledamo, na najnizem nivou se svodi sabiranje. Kada imamo x i y, imamo
dve logicke funkcije. Kada ih saberemo, dobijemo sumu i prenos. Sabiranjem binarni h cifara,
mogu da sabiram dugacke binarne brojeve, a oni su ekvivalentni dekadnom sistemu. Sabiranje
znaci da imamo dve logicke funkcije. Xor je funkcija koja ce da nas odvede na nove stvari. Da
bismo radili to sto mi zovemo sabiranje, dovoljne su nam samo booleanske funkcije (to su dve
funkcije xor i and). Sabiranje je XOR i AND. Da bi smo dobili taj sabirac, te dve funkcije treba
zajedno da implementiramo.



Ovo kolo sluzi sa sabiranje sastoji se iz XOR i AND (22 prekidaca ima, 16+6)
Imamo i sumu i prenos. Ovde je do najsitnijih delova jasno sta je (znamo sta je XOR i AND, pa
znamo sta su prekidaci). Pitanje je kako ovo da nazovemo. Ovo bi moglo da se nazove sabirac.
Sabiramo cifru po cifru, uzimamo lokalne cifre, pa uzmemo prethodni prenos i dobijemo rezultat i
moguci prenos za dalje, i sve takoZa stvarno sabiranje proizvoljnih brojeva, nama treba
uredjaj koji sabira 3 cifre (uzimamo i prenos). Kolo za sabiranje bi trebalo da ima 3 ulaza zbog
ovog prenosa. Ovaj uredjaj na slici gore to nema. Sabiranje 3 cifre sastoji se na 2 puta
sabiranje po 2 cifre. A + b+ c= x +c (a+b=x) Ko zna da sabere 2 cifre, dvostrukim ponavljamem
sabira i 3 cifre. OVO SE ZBOG SVEGA NAVEDENOG ZOVE POLUSABIRAC.
Simobl: HA HalfAdder polusabirac
Ovo je sedmi elemenat.
F2
SABIRAC
32bit SABIRAC
Posle polusabiraca ide prirodno puni sabirac. Samo treba da se vidi na koji nacin da se sastavi puni
sabirac. Ovde moze da pomogne intuicija (ko zna da sabere 2 cifre, zna i trecu, na rezultat od 2, doda
trecu cifru). Imamo prethodni prenos i dodamo x i y i te tri stvari treba da saberemo. Prvo treba da
uzmemo x i y i uvedemo jedan polusabirac HA1 i on nam daje neku sumu s1 i prenos p1. Sada na
ovaj zbir treba da dodamo onu trecu. HA2 dodajemo i kada se to sabere, izadje suma S2 i prenos P2.
Na kraju su nam ostala dva prenosa P1 i P2, a kao rezultat treba da dobijemo sumu S i prenos P.
Puni sabirac bi trebalo spolja da izgleda kao na slici.



Osnovna razlika izmedju polusabiraca i sabiraca. Polusabirac je kombinatorno kolo koje sabira 2
binarne cifre, vodi razliku o prenosu. A sabirac je isto to, samo sto sabira 3 binarne cifre. Ovo je
booleanska funkcija koja moze da se predstavi tablicom. PP- Prethdni prenos. Nije bitno kako
nazivamo, vec je bitno da imamo 3 ulazne varijable (prethodni prenos, i nove cifre koje sabiramo). Kao
rezultat treba da dobijemo sumu i prenos. Logickih funkcija 2 varijable ima 16. Booleanskih funkcija 3
varijable ima 256 funkcija. Od 256 funkcija, malo od njih ce da imaju imena, a velika vecina nece. Ovo
nam se desilo ovde.Sabiranje 3 binarne cifre (puni sabirac) jeste implementacija sistema ove dve
funkcije (funkcije sa 3 varijable, mi smo izabrali 2 od njih). J edino je pitanje kako da implementiramo
ove funkcije.
Sada proveravamo sta je ovde dobro. Ako bismo povezali dva HA, dobili smo signale S1, P1, S2, P2
(prosirujemo tablicu). S1 i P1 su rezultat sabiranja x i y. Dodamo jos dve kolone i pisemo S1 i P1
(X+Y). (0 i 0 je 0 pisem, nula pamptim, 0 i 1 je 1 pisem, 0 pamptim.)
Sada isto mozemo da vidimo sta su S2 i P2 (dobijaju se sabiranjem S1 +PP). Dodamo jos dve kolone
(S2 i P2).
Sada gledamo tabelu. Mi sumljamo da bi S2 trebalo da bude S. Sada gledamo S2 i Gledamo S i
uporedjujemo. Dokazali smo da je S2 identicki jednako S. Dokazali smo da je ono sto smo intuitivno
radili dobro. Sada imamo P1 i P2, a nama treba P. Kada gledamo ovo, pokaze se da P nije jednako
P1, i da P nije jednako P2. J asno je da ce P da bude kombinacija P1 i P2 (prenos mora da ima veze
sa prenosom). Ispadne da kada imamo 0 i 0, onda ovja treba da bude 0, pa ponovo kada su dva 0,
onda treba da bude 0, pa onda 0 i 1 treba da bude 1, kada su 1 i 0 treba da bude 1, pa kada su 1 i 0
treba 1,pa sve takoIspada da ove zakonitosti moraju da budu zadovoljene (0 i 0 treba da daju 0, 1 i
0 treba da daju 1, a 1 i 1 se ne pojavljuje kao ulazna kombinacija!!!). Ispada da su ove funkcije
poznate to su funkcija OR i XOR. Ovako je razreseno pitanje prenosa. Ovako smo dobili puni
sabirac (full adder). Imamo 3 ulaza, dva izlaza. Puni sabirac u njemu se javljaju 2
polusabiraca, po jedno ovo kolo (Ima 50 prekidaca 26 + 34 i sabira 3 binarne cifre).
Kada smo ovo napravili, mozemo da napravimo i proizvoljan sabirac npr 32bit sabirac.


Na slici imamo FA1, FA2, FA3 FA31 i tako redomZ0,Z1,Z32 su sume. Prenos iz prethodnih idu u
sledeci. Izbaci prenos na kraju koja se zove Carry(C) ako ima ovaj prenos, broj je veci nego sto
moze da stane u registar. Ovo je da se proglasi devetim kolom SAB32 (32bit sabirac). Simbol -

Ovo bi bio 32bit sabirac (64bit sabirac imamo 2x32bit).
SADA DOLAZIMO DO ZANIMLJIVE SITUACIJE. Imamo kolo koje sabira 32bit brojeve, ono sto
ima u danasljim procesorima (1600 prekidaca). Sada mozemo da idemo u detalje (sa svim vezama
izmedju, od prekidaca, preko nanda, pa xora, pa do 1600 komada prekidaca, dobijemo cudnu
sumu, zastrasujucu sliku dobijemo). Preko celog zida uvecamo tu sliku (1600 prekidaca na sve strane
rasporedimo). Ovo je jedan aspekat, do je izuzetno kompleksno. Kazu da je to mnogo pametno.
(primer sa pogadjanjem, za svaki prekidac znamo sta je tacno, a celi zid je napunjen sumom,
najkomplikovanija shema). Znaci, s jedne strane je kompleksno, ali s druge strane je hijerarhijski
organizovano u celine (logaritamskom pretragom ide veoma lako utvrdjivanje sta je sta). Ovo je sve
sa sabiracem.
DEKODER (sledece kolo)
Kombinatorno kolo (pullup i pulldown granu, logicke funkcije, ova kola rade izracunavanja). Kod
kombinatornog kola, ulazi jednozncno uticu na izaze. A kod memorijskih kola, zavisi i od proslosti.
Kombinatorna kola i memorijska daju sekvencijalna kola, i to je kako se prave procesori.
Ovo je jako cesto koristeno kolo. Cesta funkcija je dekodiranje memorijske adrese. Adresni
mehanizam kod memorije je upravo ovaj dekoder (dobije binarni broj i nadje odredjeni
registar). Dekoder je kombinatorno kolo koje ima n ulaza i 2 na n izlaza, gde je aktivan tacno
jedan izlaz i to onaj ciji redni broj odgovara binarnom broju na ulazu. N ulaza, 2 na n izlaza, ova
veza mora da se ispostuje. Na ulazu dajemo binarni broj, i aktivan je tacno jedan izlaz. Aktivan
je samo jedan izlaz i to onaj ciji redni broj odgovara binarnom broju na ulazu. Postoje dekoderi 1 na 2,
2 na 4, 3 na 8, 4 na 16.
Crta sliku dekodera 3 na 8 (3 ulaza, a 8 izlaza). Sada crta i onu tabelu. Kada redne brojeve izlaza
od 0 do 7 zapisemo binarno. Na ulaz mu damo sifru kao trocifreni binarni broj, a na osnovu
toga ce da izabere jedan izlaz. Ovo sluzi za adresiranje memorije. Memorija ima niz od 2 na n
registara, damo mu nbitnu adresu i mehanizam izabere tacno odgovarajuci registar. Dekorder
sluzi za dekoriranje memorije, ali moze i za druge stvrhe.
Sada se postavlja pitanje kako bismo to kolo implementirali. Ovde ide malo drugaciji nacin
razmisljanja. Sve sto radimo su booleanske funkcije (ovo je sistem od vise buleanskih funkcija, 3 na 8,
ima 3 ulaza, a 8 izlaza i sistem od 8 funkcija predstavlja taj dekoder). Sada crta donju tabelu. Pise 3
ulaza i 8 izlaza.


U prvom redu imamo 0, pa je to I0, u drugom redu imamo 1, pa je to I1.. Na kraju dobijemo
jedinicnu matricu. I0 do I7 su neke od 256 booleanskih funkcija (to su 8 od 256 funckija). Ovde imamo
neke poznate funkcije. Uocimo konjukciju sa 3 ulaza nju bismo mogli direktno da implementiramo (I7
je konjukcija sa 3 ulaza). Sada se postavlje pitanje sta cemo sa ostalim funkcijama. Sve ostale
funkcije jako lice na I7 zato sto imaju po 7 nula i jednu 1. i kolo moze da se modifikuje tako da ne bude
prepoznavac samo funkcije tri 111 (samo ce u ovom slucaju da se postavi na 1). Kod i kola, gde
dodamo inverter, postaje univerzalno kolo (nece da prepoznaje samo kada su zapisana tri
keca). Jednostavna implementacija ovoga nece da zahteva duboko razmisljanje, nego
zahtevace 8 i kola, svako sa 3 ulaza, gde nekada direktno ulaze, a nekada komplementirano. To
je pravilni dizajn. Pravil ni dizajn je dizajn za kola proizvoljne velicine koje mozemo da
prosirujeo. Ovaj dizajn ide pravilno i po horizontali i po vertikali. Pravilni dizajn se radi tako sto
ulazi ulaze sa leve strane, a izlazi izlaze sa desne strane, a kontrole sa komplementima idu po
vertikali. Sve jednostavno prosirjemo. Prvo povucemo liniju U0 i napravimo njegov
komplement, pa drugu U1, pa njen komplement vertikalno, pa U2 i komplementIsto tako smo
videli da je potrebno 8 kola sa tri ulaza (OVO SVE PRICA DA BI NACRTAO OVU SLIKU). SADA
CRTA SLIKU i PRICA.
Prepoznao je na slici da se ovde radi o binarnom brojanju.
Sada je dodao jos jednu zicu KONTROLA, koju je stavio kao 4ti ulaz na sva ova kola. Ako je kontrola
1, ponasace se kao da je nema (mnozenje sa 1 ne menja stvar). Kada je c=1 NE MENJ A STVAR.
Medjutim, kada je C=0, celo kolo se gasi, cini ga neaktivnim. C ulaz se moze koristiti kao kontrola da li
ce to kolo da radi ili nece da radi. Ovo ce nam koristiti. Znaci, 10to kolo bi bio dekoder (2 na 4, 3
na 8)


Ovo bi se zvao klasicni dekoder (kodira binarni broj u redni broj). Dekoder moze da bude bilo sta,
neku sifru dekodira u nesto drugo. Dekoder iz jednog brojevnog sistema u drugi sistem.Bilo sta sto
je zapisano na jedan nacin, a moze i na drugi, imamo dekoder kao translator.
J edna stvar koja se cesto koristi su numeri cki displeji. Sedmosegmentni displeji ima ih puno.
Sada ovo objasnjava. Bcd 7 segment. Sa 4 binarna broja mozemo da predstavimo brojeve od 1
do 15.



VI PREDAVANJE 11.04.2007. god.
F1
Ovo do sada su bila kombinatorna kola, a postoje i memorijska kola. Kombinacija memorijskih i
kombinacionih kola su sekvencijalna kola.
Memorijska kola
Osnovno m.kolo bi bila jednobitna memorija. Ona se zove data (1 bit), ima ulaz koji se zove npr P, ima
izlaz koji se zove npr Q. Kod m.kola mora da postoji kontrola C, koja ce da kaze sada zapamti (uz
pomoc ove C kontrole se pampti, to je sustina memorijskih kola). Kod m.kola, izlaz ne zavisi direktno
od ulaza. Na izlazu moze da bude bilo sta, a na ulazu moze da bude bilo sta. Sta ce da bude na
izlazu, zavisi od proslosti i ulaza, a ne samo ulaza (zato sto kontrola C kaze sada zapampti). Ovo na
slici je min memorijsko kolo od 1bita, pa se udruzuju i dobiju se bajtovi, pa registri 32bitni, pa 64bitni.
M.kolo se cesto pravi malo komplikovanije od ovog na slici, jer sa memorijom imamo operacije read i
write. 1 kontrola moze da regulise 2 stanja, a 2 kontrole regulisu 4 stanja (mi imamo 3 stanja, pa
trebaju 2 kontrole). J edna se zove enable, a druga se zove read write (kontrola). Enable kontrola
omogucava da se bilo sta radi (ako je 0 ne moze nista da se radi, a ako je 1, onda radi, ako je 1 onda
moze da cita i da pise). Signalima dajemo imena po pocetnim slovima ono sto on radi. Ako samo
napisemo ime signalu, onda se ponasa da taj signal radi kada mu damo 1 (ako je read 1, onda taj
signal cita, ako je write 0, onda taj signal pise). Ako samo napisemo ime signalu bez icega, onda se
podrazumeva da je on aktivan kada mu damo 1. Medjutim, postoji i obrnuto, signali mogu da budu
aktivni kada su 0,i takvi signali se oznacavaju crticom iznad signala (slika). Kada imamo 2 signala na
jednoj zici, onda se oni razdvajaju kosom crtom (slika r/w nadvuceno).
Sve se uvek radi u odnosu na procesor koji je centar sveta racunara. Dakle, kada se kaze in, misli se
u procesor, kada se kaze out, iz procesora, kada se kaze read, cita procesor memoriju, kada se kaze
write, onda procesor pise u memoriju. Kada se gleda dakle memorija, onda je kod nje write na ulazu, a
read je na izlazu.


Flip-Flop
Pitanje je kako da se napravi memorija? Memorija moze da se napravi jednim jednostavnim sklopom,
koje je sluzilo za nesto drugo ranije.Kolo koje nas vodi do jednobitne memorije je kolo flip flop, i to se
kolo zove bistabilni element. Bistabilni element kaze da ima dva stabilna stanja (to isto znaci i flip flop).
1bit memorijaje u jednom u 2 stanja (ili je zapamtila 0 ili je zapamtila 1). Dakle, bistabilni element, flip
flop i 1bit memorija su tri ekvivalentne stvari, s time sto se ovi termini koriste i od ranije pre nego sto su
se u racunare ugradjivali (50 tih, 60tih i 70tih kodina su racunari imali periftne memorije, a flip flopovi
su se ugradjivali u nesto drugo sto nije memorija).

Flip flop je 2 nand-a unakrsno povezanih povratnom spregom (slika). P.sprega je sto ide od izlaza
prema ulazu, a unakrsna je kada ide od prvog ka drugom i od drugog ka prvom. To je unakrsno
povratna sprega. Kako se ovo ponasa? Treba da se ponasa na kvalitativno drugaciji nacin. Ovde bi
trebalo da postoji sustinski razlicito ponasanje zbog unakrsno povezane sprege. On sada
pretpostavlja gde su jedinice i nule na ovom kolu!!! Sve u svemu kaze, ako jedan parametar
promenimo (0 na 1 npr), izazvali smo lancane reakcije (primer kada je jedan otvorio vrata i zaglavio
cipelu, otisao, a vrata su ostala otvorena).
Ovo kolo je promenilo stanje, ali je samo sebe zablokiralo u tom stanju. Onaj ko je promenio stanje,
moze da ode, vise nije bitan, a kolo ce da ostane isto. Izlazi ovog kola ne zavise jednoznacno od
ulaza, a sta ce da bude na izlazu, zavisi i od proslosti. Izlaz pampti sta se desilo u proslosti. Ovo kolo
ocigledno ima memorijsku funkciju, izlaz ne zavisi jednoznacno od ulaza, vec zavisi od ulaza u
proslosti koji je on zapamtio.

Izlazi se zovu q i q nadvuceno zato sto su u protiv fazi, a q je po tradiciji. Iz ovog kola besplatno
dobijamo komplement. Ulazni signali se zovu S i R nadvuceno, jer rade nesto kada ih odvucemo na 0
(normalno stoje na 1), a S i R se zovu iz stare tradicije, jer se ovo kolo pravilo za druge svrhe (S-set,
R-reset,inicijalizacija). Kolo koje ima ovakva svojstva zove se RS Flip flop. Ovaj SR flip flop je
elementarna memorijska jedinica, najjednostavnije kolo koje ima memorijsku funkciju, iako
ono nije u potpunosti memorija. Mi od memorije ocekujemo da posaljemo signal i kazemo zapamti
ovo, a ovde moramo da kada vucemo jednu zicu kazemo zapampti 1, a kada vucemo drugu zicu
kazemo zapamti 0.

Ova slika prikazuje kako za iste ulaze dobijamo razlicite izlaze.
Ovo sve gore bi moglo da se uradi i simetricno, da uradimo sa NORovima.Sve ce da bude isto kao i
gore (samo ce R i S da obrne mesta i samo kada je 0 oni nece da rade, a kada je 1, oni ce da rade).

Kako sada od ovoga gore da napravimo memoriju? Neko bi rekao da mu je nezgodno da ide sa 2
zice, pa proba nesto drugo, da se resi problem sa 2 zice. Sada crta sliku ovu dole i kaze da dodaje
inverter. Na jednu zicu treba da vucem na 0 da bi se postavila 0 (to je u redu), a na drugu zicu treba
da vucem na 0 da bi se postavila 1. Kako bi bilo da povezem jedan inverter i da tu zicu zovem data
zica. Kada na tu zicu posaljem 0, on ce da ide na reset i resetovace kolo i bice 0, a kada posaljem 1,
preko invertera ce da 1 postane 0, tako da ce 1 na data zici da izazove 0 na set liniji, a set linja ce da
postavi kolo na 1 kao i sto treba. Ovako smo resili problem sa 2 zice. Na ovu jednu zicu stavljam i 0 i
1, i bice ono sto treba. Ali, resavajuci ovaj problem, stvorili smo veci problem ukinuli smo memorijsku
funkciju ovog kola. Ovako je postalo kombinatorno kolo (sto je na ulazu, bice i na izlazu, nema
pamcenja).
Kaze da je ovo sa inverterom dobra ideja, ali smeta sto se izgubila mem funkcija. Ovo se resava tako
sto se uvede 2 nand-a (sada dopunjuje ovu sliku dole, i slika bi trebala da izgleda kao ova dole). Uvodi
2nand-a napred. Kako se ovo ponasa? Kada je C=1, u i koli, kao da ga nema. Ako je C=1, jedno
zavisi samo od S-a, a drugo od R-a samo (ako je S=1, izlaz ce biti 1, pa zbog nanda da bude 0). S
treba drzati na 0,kada ga povucemo na 1, onda ce S nadvuceno da ode na 0 i izvrsice se funkcija
setovanja. Isto tako treba r drzati na 0, kada se povuce na 1, onda ce 1 i 1 da da 1, pa zbog negacije
0, i uradice se reset. Isto ce biti RS FlipFlop, samo ce signali biti bez bara, vec su ispravljeni. Dok je C
1, ovo se ponasa kao normalan SR flip flop, samo sa izmenom kvaliteta.
Medjutim, ako C stavimo da je 0, onda ovo kolo prekine da prima spoljne ulaze, jer jedna nula na i
kolu je izlaz 0, dakle, ova nula garantuje da je izlaz iz konjukcije 0, pa negacija dobijamo 1. Tako dugo
dok drzimo c na 0, garantujemo da na 2 mesta imaju 1, a to znaci ono stanje da se ne menja, dok oba
drzimo na 1, pamptimo ono poslednje sto smo videli, memorijska funkcija. Sa C-om drzimo
memorijsku funkciju. Sada jos dopunjuje sliku ovu dole.
Crta sada desnu sliku. Kada je na D 1 deluje kao set, kada je D 0, zbog invertera, deluje kao reset.
Ovo radi tako dugo dok drzimo C na 1. Kako menjamo D, menjamo i ulaz. Ali, jednog momenta kada
hocemo da zapamptimo, stavimo C na 0 i onda kaze, zamamptio ono sto si poslednje vide (kada je C
otislo na 0). Ovakav prosireni flipflop je potpuni memorijski elemenat (i memorija i jedna zica).
Dopunjuje jos dole sliku. Ovo je data flip flop, stvarna jednobitna memorija. Iako RS ima
mogucnost memorijsanja, ovo je sada klasicna memorija, koja se dobija RS flipFlip sa inverterom i
dobija se DATA Flip Flop (ovo je element koji nam treba).




J edan problem sa ovim flip flopom jeste sto je to kolo sa 2 ulaza. Ima 4 moguce ulazne kombinacije.
4ta kombinacija je nedozvoljena. Ovaj osnovni flip flop ima stabilno i osnovno stanje 1,1 (nista se ne
desava),a kada jedan povucemo na 0, imamo promenu. Kada oba dva povucemo na 0, obadva izlaza
ce otici na 1, a to je nedozvoljeno stanje. Na kraju ce jedan od njih da popusti i otici ce na 1 (jedan
pre,jedan malo kasnije). Taj koji ode na 1 malo kasnije je pobedio i on ce da izazove reakciju. U
medjuvremenu, bice trenutak, kada su oba na 0, a to je Q i Q komplement (nadvuceno), iako tada nisu
komplementi. Ovo je opasno stanje, jer je to logicki protivrecno stanje (Q i Q nadvuceno su jednaki).
Kada ovako povezemo sa drugim kolima (racunamo da su 2 strane razlicite), dodje do borbe i kratkih
spojeva (spaljivanja). Dakle, ovo 4to stanje je logicki i prakticno nedozvoljeno. Ne bi smeli da su na
oba dva jednaki.
Ovde moze da se spreci nedozvoljeno stanje.Mora flip flop jos malo da se doradi. Uzmemo dva takva
flip flopa (sada crta sliku dole), i kontrolu im povezemo ovako. Ova dva zajedno posmatramo kao
jedan flip flop. Flip flopovi su serijski povezani i zatvoreni u kutiju, spolja izgleda kao da je to jedan flip
flop. Ovakav flip flop ima dobra svojstva. Ovakva konstrukcija se zove Master slave, gde jedan
kontrolise drugoga. Ovaj flip flop radi u 2 faze. Imamo signal C koji je na 0, pa ga prevucemo na 1.
Ovde ce ulazni signal da prihvati sa zadrskom (dam podatak i kazem zapamti bilo, sada dam podatak,
pa zapamti do pola, pa kasnije zapamti ceo). U momentu kada signal C povucem na 1, D flip flop ce
da proradi, ali ovaj drugi koji je preko invertera ce da se iskljuci. U prvoj fazi, jedan radi, drugi ne radi,
ono sto mu dajemo na ulaz, bice zapamceno, ali je nevidljivo spolja (interno), a spolja se nista ne
menja, isto stoji kao i ranije. Nakon toga se ulaz presece i prestane prvi da prima nove podatke, ali
tada drugi flip flop proradi, i ono sto je bilo dato da zapampti, se pokaze napolju, ali tek onda kada je
prekinut ulaz. Ovde se pravi povratna sprega koja ne pravi problem, jer kada se pokaze novi signal,
prvi ce da bude vec ugasen (nema trke i konflikata). Kada posaljem drugi signal, prvi je vec zavrsen.
Ovo je dvostepeni tajming koji je jako zgodan. Flip flopovi se najcesce prave u master slave varjanti,
pa se izlaz pojavljuje u silaznom rubu kontrolnog signala.

Kada imamo ovaj master slave flip flop, sada moze da se resava ono 4to stanje (pominjao je gore).
Ljudi su pronasli da bi 4ta funkcija koja bi bila korisna je obrtanje signala (togliranje - toggle). Sada
imamo 4 funkcije: Ne radi nista, postavi na 0, postavi na 1, promeni se. 4to stanje radi togliranje,
menjanje u odnosu na prethodno. Sada crta onu tabelu ispod. Ovo se zove JK flip flop koji
zamenjuje SR flip flop (SR ne sme istovremeno da budu aktivni, a JK moze). Sada crta sliku onu
dole. Uzima D flip flop koji je tipa master slave, pa objasnjava kako crta sliku.
Ovaj D flip flop mora da je tipa master slave, jer ima povratnu spregu (ako ne bi imao doslo bi do
jurnjave). Sada pravi tablicu i analizira kolo. Registri se prave kao ovi flip flopovi. Ovo sto sada radimo,
stvarno obavlja posao (sabirac nije mogao da radi bez registara).
Imamo J i K ulaze, ali se i Q i Q nadvuceno vracaju nazad (uzecemo 3 ulaza, jer ako znamo Q, znamo
i Q nadvuceno)
Q J K Q+(zanima nas ovo novo Q)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
Analizirao je sve slucajeve i popunio tablicu (Q i Q nadvuceno su suprotni).

Znaci, sada smo izgradili nekoliko flip flopova. i konacno mozemo da napravimo flip flop kome kada
god damo signal, on toglira. To je vise teoretski, nego prakticni flip flop. Ovaj ima samo jednu funkciju
togliranja. Ovo se ne isplati u praksi da se pravi. Ovu su razne vrste flip flopova koji se koriste. D
je klasicni memorijski elemenat.


F2
Kada smo dosli vec do sekvencijalnih kola,ona mogu da budu asinhrona i sinhrona. Asinhrona su
retka u praksi, gde bi kombinatorna kola radila kako rade i ti rezultati se smestali u mem kola i samo bi
se sve regulisalo. Uz pomoc ovoga moze nesto jednostavno da se napravi, a da bi se napravilo nesto
komplikovanije, mora da se ide po nekim fazama, a tu je potreban neki spoljni davac takta. Sa fazama
je nesto kao hardversko programiranje (izracunamo nesto, pa medjurezultate sacuvamo i sve tako).
Treba da imamo neki tajming koji regulise kada se nesto desava (mora da se desava u odredjenom
redosledu) i to mora da ima spoljni podsticaj i dirigent spolja treba da bude neki pravilan signal koji se
zove signal sata (clock signal). Takav najjednostavniji signal sata bi bio pravilan cetvrtasti digitalni
signal (slika dole). Kod ovog signala mozemo da uocimo neke karakteristike. Amplituda je neka
karakteristika (ona se ne razmatra, jer je standardna 0 i 5v). Sa ovog idealnog signala, bitna je
frekvencija (reciprocna vrednost periode). J os jedna bitna karakteristika je odnos dve polovine u jednoj
periodi. Faza kada je signal visok se zove aktivna faza, a druga se zove pasivna faza. Pitanje
procentualnog odnosa aktivne i pasivne faze (kod idealnog signala je 50%). U svakom clock signalu
mi tezimo ovom idealnom odnosu, jer remecenje tog odnosa nuzno usporava kolo, jer necemo moci
da ostanemo na istoj frekvenciji. Kako odredjujemo kolika ta aktivna faza treba da bude? Imamo
kombinatorna kola i da signal prodje kroz ta kola (gateove) treba odredjeno vreme. Za odredjenu
tehnologiju zna se koliki je taj delay (vreme). Izracunali smo to vreme (npr 1mikro sekunda). Ako
imamo odnos 50 50, i pasivan deo napravimo da bude 2 mikro sekunde, odnosno frekvenciju 500khz.
S druge strane, ako nemamo odnos aktivne i pasivne faze 50 prema 50 vec npr 10 na prema 90,
aktivna deo moramo da drzimo na 1 mikro sekundu,jer toliko vremena treba da se stabilizuju signali, a
ako je signal sata deformisan (odnos 10:90), imamo na jednom delu 1msekundu, a na drugom
9msekundi, to je ukupno 10msekundi cela perioda (frekvencija 100khz) Znaci, celo kolo smo 5 puta
usporili tako sto smo signal sata poremetili. Moramo da drzimo fiksnu aktivnu faza, a odnos aktivne i
pasivne faze resava na racun toga sto se ukupna Frekvencija smanji, tj kolo uspori.
U praksi mora se uzme u obzir da signal ne moze da bude idealan (kao ovaj dole na slici). Praktican
signal ne moze da ima ostre coskove, kao ni nulto vreme rasta, ni nulto vreme padanja (sada crta
praktican signal desno). Sada ima i vreme uspona i pada i nije cisto aktivna ili pasivna, vec ima
medjufazu.


Ovakav jednostavan signal sata moze da posluzi za neka kola, ali je najcesce nedovoljan (monoton,
samo broji 1-2-1-2). Mozemo da uvedemo vise takvih signala, pa dobijemo kompleksnije
dirigovanje. Praksa je pokazala da je dvofazni sat najbolji kompromis (3fazni i 4fazni daju
unapredjenja, ali ne tolik). 2fazni sat najbolje sluzi za organizaciju sekvencijalnih kola.
Kada se kaze 2fazni sat, podrazumeva se da ima 2 faze, isto tako se misli da te dve faze rade
generalno u protivfazi (jedan je komplement drugoga). Ovo u protivfazi ne moze savrseno da se
definise, jer se ne radi o idealnim signalima (cetvrtastim) zato kaze ono generalno. Crta sliku (ovu
dole).
S obzirom na nesavrsenosti (vreme uspona,padova), ne mozemo da ih napravimo da radi savrseno u
protiv fazi (preklapaju se, jedan radi, pa drugi isto radi, pa prvi ne radi, a treba jedan radi, pa kraj, pa
drugi radi pa kraj, pa prvi radi). U praksi mora drugacije. Ako ne mozemo protivfazu da
dobijemo,moramo nesto drugo. Ovi signali imaju aktivne i pasivne faze, i mora biti preklapanja, ali
moramo negde da se ogradimo, pa da kazemo da nema bar preklapanja u aktivnim fazama. Pravimo
realni dvofazni sat sa zahtevom da se aktivne faze ne preklapaju (pasivne hoce,ovde kada ne
mozemo ovo da izbegnemo, bar mozemo da kontrolisemo). Ovo je sada puna definicija dvofazni ne
preklapajucih aktivnih faza sat (misli se isto i da su u protiv fazi).
Ako hocemo da imamo taj sat gde se aktivne faze ne preklapaju, pravimo karikiran slucaj, gde su
aktivne faze smanjene (jer je tako manja verovatnoca da se te faze preklapaju). to je isto slika dole.
Imamo zonu sigurnosti, kada je jedan definitivno zavrsio, tek malo kasnije drugi pocinje. Sada imamo
brojanje na 2 takta, gde mogu da radim poslove na pojedinim faza, bez bojazni da cu da radim dok
prethodno nije zavrsili ili da sledece nije pocelo dok jos radim. Da bi imali ovu sigurnost, platili smo
cenu pasivne faze se preklapaju i jos kako, pa zato samo radim na aktivnim fazama (bolje
ovako,nego da se igramo i rizikujemo). Naravno, ovo je samo ideja, jer cena ne sme da bude ovoliko
visoka, da se toliko deformise signal.
Bilo koji sat, se uglavnom dobija iz jednog analognog kola koje se zove oscilator analogni oscilator
(ovo nije digitalna logika). Imamo raznih oscilatora (klasicni se dobija preko kondenzatora i kalema,
prazni se preko kalema,ovaj nije precizan). Precizni oscilatori se prave preko kvarcnog signala.
Otkriveno je kada se kristali kvarca iseku na odredjeni nacin, mogu da se ugrade na el kola i oni
kontrolisu oscilovanje i to vrlo precizno i nezavisno od promene spoljnih faktora (temperatura),
greske su samo nekoliko sekundi na godinu dana. Sada crta sliku.
Objasnjava ovu sliku sa fi1 i fi2. Propustanje kroz jedan gate, izaziva kasnjenje. F2 ce da bude
invertovani zakasneli f1,f2 ce da bude komplementaran, ali ce da kasni (imamo zonu preklapanja
aktivne i pasivne faze kada jedan kasni za drugim, imamo sigurno preklapanje). Nepreklapanje je
uslov koji moramo da zadovoljimo, pa ovo sa f1 i f2 ne radi.
Nepreklapajuci sat moze da se napravi pomoci flip flopa (crta ovaj flip flop sa norovima). Crta sliku
dole. Flip flop sa povezanim inverterom izmedju ulaza daje garanciju da ce sve da bude dobro. Sada
analizira. Kaze da slika izgleda u redu.
Sada kaze da posmatramo 3 signala. Kaze f je 0 i otici ce jednog trenutka na 1. F1 je za sada 1 i f2 je
za sada 0. Ovo imamo do nekog trenutka (nacrtano stanje).
Prolazenje signala kroz bilo koji gate je konstantno (zavisi od tehnologije, ali je slicno kroz sve gateove
prolaska). Neka se uzme da je taj delay (prolazak kroz gate) neko vreme delta,kroz 2 gatea
2deltaSada pravi analizu da se vidi sta biva sa timeingom (slika dole desno). Sada prica analizu
ne vidim. Pogledati ovu analizu! Na kraju smo dobili da je aktivna faza kompletno sadrzna u
pasivnoj, f2 aktivno je sadrzano u f1 pasivno, i obrnuto. Upravo samo dobili da se aktivne faze ne
preklapaju. Dobili smo garanciju da to tako radi, nezavisno od tehnologije, od brzine kola. J ednog
momenta se pojavi f2 kao nova vrednost i to je ulazni parametar za f. Promena f1 je posledica
promene f2. Nevazno je ko je i koliko brzi (nand ili inverter),jer je to uzrocno posledicna veza. J edan
signal se menja nakon apsolutno fiksiranog vremena nakon promene prvog. Ovako smo dobili
dvofazni nepreklapajuci sat koji se uglavnom u sekvencijalnim kolima koristi.


F3 i F4 prica o kolokvijumima
Sada prica sta bi sve moglo da bude na kolokvijumu. Sada prelazi svaki deo sta bi moglo da bude na
kolokvijumu.

Kako se od jk flip flopa dobija t flip flop.
Spajanjem j i k ulaza i dobijanjem t ulaza

VII PREDAVANJE 09.05.2007. god.
F1
Sada analizira kolokvijum. Daje primere koji su bili na kolokvijumu.
Zasto se izucavaju oblasti digitalna logika, arhitektura i VLSI i zasto tim redom?
Cilj nam je da shvatimo kako radi racunar. Arhitektura objasnjava kako radi racunar, kako se delovi
spajaju i rade zajedno, a da bismo to mogli da razumemo, moramo da znamo komponente racunara.
Komponente se rade u digitalnoj logici u kojoj se komponente objasnjavaju shematizovano,
matematizovano. Digitalna logika ne odgovara realnosti, ali je matematicki tacno (kazemo imamo kolo
sa 10 ulaza, to je matematicki u redu, medjutim, fizicki, necemo moci da napravimo kolo sa 15 ulaza).
Digitalna logika sluzi da bi stvari resili na apstraktnom,logickom nivou i to nam je dovoljna osnova za
dalje. A kako to stvarno izgleda zavisi i od mnogih kvantitativnih parametara (fizike, zakona i
ostaloga).
Dakle, prvo uzmemo kratak uvod koji je shematizovan i koji nam dovoljno znanja daje da uradimo
ostalo. Digitalna logika radi shematizovano a VLSI prikazuje u praksi, dakle 1 i 3 su ekvivalentni samo
sto je 1 shematizovano, a 3 radi prakticno (decenijama je praksa da se ovako radi).
Prednosti i mane topdown i downtop pristupa
Prednosti jednoga su mane drugoga i obrnuto. Kod topdown pristupa idemo od celine prema delovima
i zgodno je sto razumemo sta radimo i razumemo strategiju, a nevolja je sto stalno baratamo sa
nepoznatim delovima (primer sa automobilom).
Kod downtop pristupa je obrnuta situacija. Pocinjemo od najsitnijih komponenti, i stalno baratamo sa
poznatim stvarima, ali ne razumemo strategiju, ne razumemo zasto to tako radimo.
Topdown pristup je pogodniji za krace kurseve i preglednije. Downtop je bolji za dugacke i temeljnije
kurseve (primer sa automobilom). U praksi je uvek neophodna kombinacija ova dva pristupa kratak
topdown uvod, pa onda down-top.
Sta je VonNeumanova arhitektura i sta je alternativa?
Sustina ove arhitekture jeste da ima jednu memoriju. Ova arhitektura ima jednu zajednicku memoriju
za podatke i instrukcije. Organizacija racunara sa jednom zajednickom memorijom za podatke i
instrukcije, a alternativa je Hardvardska arhitektura koja ima odvojene memorije za podatke i
instrukcije. Hardvarska je skuplja, VonNeumanova je jeftinija, a Hardvarska postoji i koristi se u
aplikacijama gde je brzina bitna, za aplikacije u realnom vremenu (mobilne telefone, video signali).
Format i grupe masinskih instrukcija
Trebalo je povezati dve stvari ovde. Format instrukcija znaci da kada zapisujemo u bajtove instrukciju
koja su to polja, kojim redom. Mora da ima operacioni kod koji kaze sta ta instrukcija treba da uradi.
Insrukcija pored operacionog koda treba da ima i adresni deo (sa cime treba da se uradi). Ovde kod
formata nije bitno koliko adresa treba da ima. Format insturkcije uvek obavezno ukljucuje i
odredjivanje adresnog nacina (adresnog moda), tj koji nacin adresacije se primenjuje u instrukcije.
Format: operacioni kod, operacioni mod i adresni deo.
Grupe instrukcija su aritmeticko logicke, transfer podataka, kontrola toka i specijalne instrukcije.
Broj adresa masinske instrukcije
Svaka masinska instrukcija na neki nacin mora da ima 4 adrese, ali taj broj adresa najcesce nisu
eksplicitno navedene, a zato moraju biti implicitno navedene. NE SME SE RECI NEKE ADRESE
MOGU DA SE UKINU!!! NEMA TOGA, VEC SAMO ZAMENOM EKSPLICITNIM SA IMPLICITNIM.
Kako se prelazi sa 4oro adresnog na 3adresni racunar?
Eksplicitno se sklanja 4ta adresa i ne navodi se eksplictno adresa naredne instruckije, vec se
instrukcije pisu sekvencijalno i zbog toga je uveden program counter koji se automatski povecava i
ukazuje na sledecu adresu. Ne navodjenje eksplictno, vec zamena dogovora o program counterom.
Koji su uobicajeni nacini modova adresiranje?
Direktno, neposredno (baratanje konstantama), indirektno (nizovi), relativno (baratanje sa
realokatabilnim programima u memoriji), indexno (adresni deo sabran sa indexnim registrom, sa
nizovima)
F2
Po cemu se razlikuju po unutrasnoj strukturi asembler bez simbolickih adresa i sa njima
Razlika je sto bez simbolickih adresa ima samo staticku tabelu proizvodjacku tabelu binarnih
instrukcija. Ovaj drugi sa simbolickim adresama ima jos jednu tabelu koja se dinamicki generise koja
sadrzi varijable sa svojim adresama. U praksi ne mora da bude da su asembleri sa simbolickim
adresama dvoprolazni, mogu, ali i ne moraju da budu (prvo prodje pokupi varijable i memoriju, pa
onda ono sto i jednoprolazni).

Odnos prekidackog elementa i arhitekture procesora
Nezavisni, paradoksalan. Gradivni element je samo jedan sto se tice njega, a sto se tice arhitekture,
gradivni elemenat se primenjuje tamo milion puta. Prekidac je dinamicki i poboljsavaju se perfomanse
racunara preko njega. Arhitektura jeste kako povezujemo prekidace (ne zavisi od prekidaca) i to je
staticki. Ovde ne zavisi od materijala sta cemo da napravimo, arhitektura je matematicka logika
(primer sa gradjevinarstvom).
Po cemu se prepoznaju generacije racunara i koje su?
Poznaju se po prekidackom elementu. Ima 4 generacije. Prva cevi, druga tranzistora, treca modularna
i cetvrta VLSI dizajn. Releji su radjeni za vreme 2. Svetskog rata. Elektronke ENIAC 1945 godine.
Nulta generacija sa relejima pre 2. Svetskog rata. Peta generacija uz cvrstu ogradu.
Zajednicka struktura svih kombinatornih kola
Pullup grana, pulldown grana i protivfaza. Kombinatorna kola implementiraju logicke funkcije, svako
izracunava neke log funkcije. Izlaz jednoznacno zavisi od ulaza. Dok su definisani ulazi, pojavljuje se
jednoznacno definisan izlaz. Izlaz je u svakom momentu ili 0 ili 1. Pullup i pulldown grana rade u
protivfazi. Ako rade u protivfazi, imamo sigurno funkciju. Ako su obe otvorene odjednom, imamo
kratak spoj. Ako ni jedna nije otvorena, onda ne radi.
XOR od NANDova dokaz formulama
Cemu sluzi polusabirac i kako se moze napraviti
Polusabirac sabira dve binarne cifre. Nije dovoljno, treba da sabira tri binarne cifre i zato dolazimo do
sabiraca. Kada se crtaju kola, moraju da se stave oznake. Ovde je to jako vazno.
Dekoder 2 na 4 crtez
Od RS flip flopa napraviti jk i t flip flip
t se dobija spajanjem jk ulaza.
F3
Sada nastavlja dalje sa predavanjima.
Demultiplexer
Ima jedan ulaz i 2 na n izlaza i n kontrola kod kojeg se ulaz prosledjuje na Onaj izlaz kod koga se ulaz
pros ledjuje na onaj izlaz ciji redni broj odgovara binarnom broju na kontroli. To je prakticno skretnice.
Demultiplexer 1 na 4 izlgleda ovako, pa crta sliku, 1 ulaz i 4 izlaza.Na koji izlaz ce da ide, odredjuje
kontrola (c1 i c0).
Ovo je novo kolo koje ima svoj smisao. Dekoder i demultiplekser su po definiciji razliciti, medjutim,
fizicki su jedno te isto kolo. Ako uzmemo dekoder sa kontrolnim signalom, pa sada crta dekoder
ponovo.I uvede se treci signal koji se zvao enable ili sta vec. To bi bio dekoder sa enable signalom
(dam mu adresu, izaberem jedan registar). Demultiplexer je sasvim drugo, ne deluje da su dekoder i
demulti ista stvar.
Kaze, ovde ima 1 ulaz, n kontrola i 2 na 2 izlaza, a drugde ima n ulaza, 2 na n izlaza i neki poseban
signal. Ocito je da je to 1 na 1, n na n, 2 na n na 2 na n. Izlazi odgovaraju izlsazima, kontrole
kontrolama. Cudna stvar je da bi ulaz morao da odgovara enable kontroli. Ovo ide aritmeticki
ovako.Ako imamo 2 kola sa 1 3 i 8, onda 1 na 1, 3 na 3, 8 na 8, mora tako ako ima nekakve
ekvivalencije, a onda kada vidimo sta smo uradili, kazemo moglo bi, ali se dobije da je ulazna linija
jednaka enable liniji (na 1 radi sve, na 0 ne radi). Ova funkcija enable je jako jednostavna. U mislima
nije jasno kako bi takva enable linija mogla da bude ulazna linija preko koje mi saljemo podatke koji se
prosledjuju. OVO J E NEOBICNO, ALI J E TO TAKO!!! Mi to tesko prihvatamo,jer mi u glavi pravimo
primere koji se odnose na analogni svet. Demultiplexer razmisljamo sa analogne tacke (voz i koloseci,
muzicki uredjaj). Analogni primeri su jedno, a digitalno su drugi. Ako gledamo analogno, enable linija
je besmislena (voz i koloseci). Predrasude su nam pogresne. Morao da shvatimo da su digitalni
uredjaji. Oni barataju samo sa 0 ili 1. Oni se ispituju takos to proveravamo da li su oni u odgovarajuce
vreme na odgovarajucem mestu jednaki 0 ili 1. Ovo je sve sto je potrebno za digitalni uredjaj. Kod
digitalnog kola sve drugacije utvrdjujemo ( da li je 0 ili je 1, a kod voza pitamo da li se pomerila
skretnica za drugi kolosek, ovo je analogno i nema veze sa digitalnom, sto je u analognom lose, u
digitalnom je dobro).
Ako je ovo ulaz (multiplexeru) i kazemo ako ovde pustimo 0, onda 0 treba da se pojavi na izlazu koji
smo izabrali i obrnuto za 1. Aako napravimo tabelu, videcemo da je to u redu, a kada objasnimo kako
se to desilo, videcemo da je objasnjenje neobicno, ali je u redu.
Kada kazemo, ajde da propustimo odavde propustimo 1 na ovo mesto ovde. Mi selektujemo taj izlaz
gde ulaz hoce da se pojavi (odaberemo skretnicom). Stavimo na kontrole 00 mi time izaberemo izlaz.
Na tako selektovani izlaz, mi hocemo da nasu 1 da propustimo tamo. Ako je ovde 1, ovde 0, ovde 0,
bice 1. Mi smo selekcijom kod obicnog dekodera obezbedili da je tacno jedan izlaz jednak 1 i to je
onaj nas, mi smo selekcijom ovde napravili 1 na ovom izlazu,a enable signalu ga nismo ubili, mi nismo
nasu 1 propustili tamo, vec smo nasom 1 obezbedili da tudja 1 ne bude ubijena. Nije kako mi tu
intuitivno zamisljamo da je nasa 1 prosla tamo, vec smo time obezbedli da tudja 1 ne bude
ubijena,ovo je ispravno digitalno, ali je intuitivno tesko da se shvati.
J os je cudnija situacija sa 0. Ajde da propustimo 0 na isti taj izlaz. Ova nasa 0 da se pojavi na izlazu.
Mi bismo hteli da aktiviramo izlaz i0 i zato smo selektovali adresu 0 i napravili smo da i0 bude 1, za
razliku od ostalih izlaza koji su 0 (to je posao dekodera). Onda kazemo puj pike ne vazi i stavimo
enable na 0 i ovo kolo ne radi nista i bude svuda 0. Ukinuli smo kolo. Izgleda cudno,ali je rezultat da je
ovde 0. Po definiciji demultiplexera smo trebali da prosledimo 0 tamo i da bude 0. Rezultat je ispravan,
ali je objasnjenje cudno, ali je tako. 0 se pojavila na izabranom mestu, ali i na svim ostalim mestima.
Nismo mi nasu 0 propustili, vec smo ga nagovorili da napravi 1, pa onda sve ponistimo i pojavi se
svuda 0.
Kada stavimo ovde 1 i ovde i ovde 0, pojavice se 1 na izlazu.
Kada stavimo 0, a ovde 0 i ovde 0, pojavice se ovde 0 i svuda drugde.
Ako stvimo 0, 1 odnosilo bi se na prethodno i sve radi.
Radi, ali ne kako zamisljamo demultiplexer da nasa 0 ili nasa 1 prodju na drugo mesto, vec smo sa 1
obezbedili da se neka tudja 1 ne ubije, a nasa 0 ubija sve, pa i to mesto koje je trebalo. Ovo
funkcionise.
Dekoder i demultiplexer je jedno isto kolo. Navodi se u katalozima kao dekoder/demultiplexer. Sta ce
da bude, zavisi kako cemo mi da ga koristimo.


Multiplexer
Multiplexer bi bio suprotan demultiplexeru. Imamo multiplexer 4 na 1. Sada imamo 4 ulzna kanala i
izabira se 1 izlaz. Multiplexer bi bio kombinatorno kolo sa 2 na n ulaza, jednim izlazom i n kontrola,
gde se na izlaz prosledjuje onaj ulaz ciji redni broj odgovara binarnom broju na kontroli.
Od vise ulaza, bira se jedan koji ce moci da prodje na izlaza. Ovo ima primenu (koji se memorijski cip
prikljucuje na procesor).
Multiplexer se pravi slicno kao i demultiplexer kao i dekoder. Crta sliku. Kaze, brisemo enable liniju, jer
nam ne treba, ali nam treba nesto drugo. i kolo koje je osteljivo na sve 1, ili je osetljivo na sve 0, i
cesto se koriste teoreme 1*1*1*1*x je jedanko x, kod i kola koliko god da imamo ulaza 1, zavise od x.
kod ili kola imamo 0+0+0+x, x daje rezultat. Ovo se koristi ovde.









Koriste se one gore teoreme ovde. J a bih hteo da prosledim jedan signal. Kako da obezbedim da
jedan signal prodje ili ne prodje. Ovo je kolo selektovano kada je na ulazu 00, onda ovde imamo
11,damo treci signal i sve ce da zavisi od treceg signala. Selektovanje mi obezbedjuje da je ovo bitan i
elemenat, a kako ce da bude zavisi od treceg signala.Taj signal koji dodajemo je u0. I0 BICE J ednak
u0, ali kada je selektovan, tj kada je na kontroli 00, kada je na kontroli 00, dva dela su ispunjena, a
treci deo prolazi (kada je 1, bice 0), ako nije selektovan, onda se ovde garantovano pojavljuje 0. Sada
doradjuje slike i dodaje U0. Na izlazui z svakog anda ce odgovarajuci signal da prodje,ako je
selektovan, u zavisnosti sta stavim na c1 i c0, izabracu jedan od 4 anda. Ovako smo obezbedili da mi
svaki od ulaznih signala prodje onda kada treba da prodje. Ovo je ta skretnica,koja obezbedjuje da
jedan prodje. Taj sada koji je prosao ce da se pojavi na izlazu, jer za 3 od njih garantujemo da su
jednaki 0, a 4ti je 0 ili 1 u zavisnosti kakav je signal, jer smo taj signal propsutili. Sada sva 4 spojimo
paralelno u ili kolo i pojavice se odgovarajuci na izlazu. Sve ce da zavisi od 4tog, ako je 0 bice 0, ako
je 1, bice 1, garantovano se pojavljuje onaj koji ce trebati da se pojavi.
Multiplexer je opet modifikacija dekodera, dekoder mu je sustinski deo, a onda ga modifikujemo. Sada
crta donju kucicu i simbolicki predstavlja multiplexer.




SHIFT Registar
Sekvencijalno kolo jer je registar koje imam memorijsko kolo i jos neke elemente. Ovo kolo je
primenljivo za razne stvari. Ovo se koristi za mnozenje. Shiftovanje je pomeranje svih bitova za jedno
mesto na jednu ili drugu stranu (k-1,k.k+1). Za mnozenje je neophodno, slanje bajtova kroz telefonsku
liniju (bit po bit), kada generisemo sliku na ekranu (bit po bit koji se pretvara u napon i na ekranu se
ispisuje slika).
Shift registar se sastoji od D flip flopova jer su oni najpogodniji za registre. D0,D1,D2 tri d registra. Oni
imaju izlaze I0,I1,I2 i ulaze imaju. Imaju i kontrolni signal, on se podrazumeva (on ne crta njih da ne
komplikuje). Treba da se dogvoorimo kako shift registar treba da shiftuje, levo ili desno. Mi hocemo da
imamo kontrolu, da ide levo,da ide desno i da drzi , i da spolja mozemo da napunimo neki sadrzaj. 4
varjante: zadrzi, idi levo, idi desno i napuni. Ima raznih shiftovanja. Kada se sve pomeri levo ili desno,
pitanje pocetka i kraja. Ima tu raznih varijanti, da se sacuva, izgubi, da se puni 0, puni 1, da se napravi
krug (shift postaje rotacija onda). Ovo nas ne zanima trenutno.
Kako da mu zadamo te operacije, moramo binarno. Dogovorimo se oko coda. 00 je hold, 01 shiftr, 10,
shiftl, 11 load, to je neki nas dogovor. Onda napravimo dekoder 2 na 4, sa kontrolama c0 i c1 koje ce
da odrede sta se radi (crta sliku), a mi cemo da imamo 4 zice koje odgovaraju komandama. Ovde smo
resili komandi deo, sta hoce da radi, kako da mu zadajemo komande i kako da ih primi. Mi mu dajemo
kao 2bitni broj, a dekoder raslanjava na 2 razlicita signala.
Na ulazu treba nesto da mu se da. Ako treba da zadrzi stari sadrzaj, treba da reciklira, ako treba
shiftl,sadrzaj dobija od desnog suseda, ako treba shiftr, treba od levog suseda, ako treba load, treba
mu sadrzaj spolaj. Ulaz u flip flop treba da zapampti jednu od 4 stvari (levi,desni,stari,spolja signal). To
je fakticki multiplexer, gde mu se uvek nude 4 moguca signala, a u zavisnosti sta hocemo, izaberemo
1 od 4 signala. Ovde nsita novo ne radimo, samo implementiramo multiplexer. J edan je nacrtan, pa
docrtavamo drugi deo (ili kolo). U ili kolo ide cetiri i kola, moze da dodje ovaj s desna, moze ovaj s
leva, moze jedan sam da se vrti, a moze i da dodje neki signal spolja. U svaki bit, u svakom momentu
na jedan signal sata mogu da dodju jedna od 4 stvari. A sa 4 signala izaberemo koji hoce da se desi.
Sada pokazuje ako hocemo hold,ovaj signal, ako hocemo shiftr, shiftl.
Ovde je vazno da se razume sta se radi, jer je crtez jako neugodan. Shiftregistar funcionise na
principu multiplexera, za svaku celuiju se odredjuje jedna od 4 stvari koja treba da udje u nju (mi
biramo koja od 4 stvari treba da se desi). Ovo lici vec na jedan mali procesor, kao da smo pravili
procesor. Ovo je u stvari dekoder instrukcije, zadajemo mu spolja masinsku instrukciju, pa on
odredjuje sta ce da uradi.












VIII PREDAVANJE 16.05.2007. god.
F1
Brojacki registar
Radi se o sekvencijalnim kolima, jer kada se kaze registar znaci da ima sekvencijalna kola. Prvo bi
trebalo teoretski da se razmilsi. tj da se slome neke predrasude. Prva predrasuda je ta sto brojanje
vezujemo za matematiku. Ovakav pogled ovde ne valja (u zivotu ima dosta primera koji navode na
drugi pogled). U zivotu imamo brojac na automobilu, za potrosenu struju, brojimo korake za hodanje,
trcanjeSat na automobilu (klasicni, mehanicki) nema veze sa matematikom (sajla je povezana na
tockove). Ovde je nasa predrasuda da je taj brojac na automobilu matematika (na automobilu se
radi po principu zupcanika, razlicitih velicina i to je cista mehanika). Brojanje bi trebalo posmatrati kao
funkciju koja je cisto mehanicke prirode. Sada pise neke binarne brojeve (pise binarno 16 prvih
dekadnih brojeva i kaze da posmatramo mehanicki).
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

U ova 4bita gore smo postavili 2 na 4, a to je 16 mogucih vrednosti (0-15)
Mi posmatramo ove brojeve. Najnizi bit stalno alternira 0-1,0-1(klackalica)
A ovaj drugi to isto radi, samo 2x sporije, 00 11, 00 11, 00 11.
A ovaj treci jos 2x sporije, 0000 1111
Ako hocemo da napravimo sekvencu brojanja, mi ne moramo da znamo da brojimo, vec kazemo ovaj
menjajte stalno, ovaj svaki drugi put, ovaj cetvrti TO JE BROJANJE.
0 menjamo na 1 kada smo sve pre njega doterali na 1 (neka cifra se menja kada smo prethoidne
doterali do maximuma, u dekadnom sistemu su sve 9, a u binarnom su sve 1). Ovo je kao kmh na
automobilu.
Dakle, treba zaboraviti da brojanje ima veze sa matematikom i postaviti novu definiciju u skladu sa
ovim mehanickim nizov. Binarno brojanje je funkcija nad binarnim nizoM od n clanova, gde se kti
clan menja, kada su svi prethdni k-1 jednaki jedinici.
Ovo je mehanicki funkcija opisana. Ovo je definicija binarnog brojanja i ovakva definicija je pogodno
za fizicku implementaciju komponenti ne vodimo racuna o matematici. Sve sto radimo su logicke
funkcije, svaka log funkcija se zadaje tabelom i ta tabela moze fizikom da se implementira.
To je niz bitova koji radi odredjenu funkciju da se u jednom trenutku menjaju. Moramo zbog niza
bitova da imamo flip flopove, tj memorijska funkcija osnovni gradivni element je t flip flop. Crta sliku i
pravi 4 t flip flopa (oni prave 4bit registar).Crta sliku, i1,i2,i3izlazi i to su izlazi iz flip flopa. A svaki flip
flop ima ulaz za togliranje (zamena mesta), koji ce na komandu da se promeni. Definicija kaze da
najnizi bit treba stalno da toglira (tj kada dodje komanda,spoljni signal kaze promeni), a ostale pod
nekim uslovima. Znaci,najniza ciftra direktno ce da bude vezana za taj signal za brojanje C(count).
Pretpostavlja se da je signal sata uvek implementiran i da je sat uvek zajednicki signal koji je resen na
odgovarajuci nacin (ne crta se zbog komplikovanosti crteza). Count je signal za brojanje i kada on
dodje, ovaj najnizi treba da se menja.
Sada kaze definicija da se kti bit menja kada su svi prethodni jednaki 1. Kako cemo da znamo da su
svi jednaki jedinici prethodni?Postoji kolo koje je osetljivo na sve 1 i to je i kolo. J edan treba da se
promeni, kada su svi prethodni jednaki jedinici. Sada crta i kolo i dotera sve ostale u i kolo.
Kaze da bi ovo ovako moglo da radi. Ali kaze da je problem sto i kolo ovde ima mnogo ulaza.
Koristimo osobinu, ako imamo a*b*c*d*e i iskoristimo asocijativnost mnozenja, pa kazemo da je to
((a*b*( c))*d )*e ovde ga postepeno izracunavamo, i sada prilagodjava sliku tome (da nemamo jedno i
kolo, vec mnogo i kola tj da ne bi u to jedno i kolo islo vise ulaza). Svako to i kolo predstavlja jedno
parcijalno mnozenje. Ovo je mnogo zgodno, jer ako imamo i kolo sa 2 ulaza, prakticno mozemo, a ako
bi imali i kolo sa ulaza koliko prethodno ima bitova, to je prakticno nemoguce (64bit).
Simbol:
Ovo bi bila oznaka za binarni brojac 4ro bitni, koji ima izlaze i0,i1,i2,i3 i koji ima ulaz c za count kada
treba da broji, i izlaz p(prenos) koji moze dalje da se iskoristi.



Ovo prethodno kolo mozemo vrlo lako da prosirujemo, jer ako uzmemo jos jedan brojac BB4 i spojimo
prenos sa sledecim BB4 brojacem, dobijemo 8bitni,16bitni,itd,jednostavno se vezu.
Medjutim, ovakvo kolo ima jednu manu, kao i oni sabiraci koje smo spominjali radnije. Ovakvo kolo je
sporo, jer signal mora da propagira od pocetka do kraja. Ovaj ce da zna da li treba da toglira kada
prima signal odavde, a ovaj ce da zna kada prima signal odande, ovaj krece s desna na levo i
izgradjuje signal, pa ako je dugacak, potrajace dok se onaj najstariji bit stabilizuje. Kako da se
obezbedi da ne treba da ceka od pocetka do kraja, a to su vec detalji prakticne implementacije.
Ovakvo brojacko kolo ima i drugi naziv po katalozima delitelj frekvencije. Prvi se menja stalno, drugi
svaka 2x puta, treci svaka 4x puta. Mozemo da zaboravimo na brojanje, vec dovedemo neki signal
ovde i dobicemo signal dalje duplo manje frekvencije, pa opet manje,itd, tj svaki sledeci deli sa 2. Ako
imamo potrebe za delenje frekvencije, mozemo da koristimo to kolo.
U praksi se mnogo vise koristi brojac unazad.
Brojac unazad
Visi jezici rade brojanje unapred. Kada se spustimo vec na C, nizovi idu od 0 do n-1, a kada se
spustimo na masinski jezik, ide se od n do 0 u hardveru, jer je na kraju izlazni kriterijum uvek da li smo
doterali do 0. Hardverski su uvek counteri count down.
Sada posmatramo definiciju brojanja. Posmatramo u drugom smeru. Kada gledamo unazad , kada ce
1000 da se smanji, pa kada smo doterali na 999. Brojanje unazad je funkcija kod koje se kti bit
menja kada su svi prethdni jednaki 0.
Uz pomoc gore navedene definicije mozemo da implementiramo brojac. Isto ce biti T flip flopovi. Ovde
sata imamo kolo, ILI, jer to kolo reaguje na sve nule. Sada treba da detektujemo kada su svi prethodni
jednaki 0, pa tada da reagujem. Treba da prepoznamo kada su sve 0, pa ce kolo da bude NILI (NOR).
NORovi ce da nam daju 1 jedino u slucaju kada su svi prethodni jednaki 0. Sada AND gate gore
zamenjujemo sa NOR gateom i dobijamo brojac unazad. Ggde god ima and gate, zamenimo ga sa
NOR gateom i dobijamo brojac unazad.
Medjutim , u praksi bi se to pravilo dosta drugacije. Mozemo da iskoristimo istu mastu sa i kolima i
kazemo. Treba da prepoynam kada su sve prethodne 0, kada su sve prethodne 0, njihovi
komplementi su jednaki 1, ako su svi jednaki 0, njihovi komplementi su jednaki 1. Kao prethodni
slucaj, ostavimo sada i kola, samo ne uzimamo odavde, nego odande. Znamo da iz konstrukcije flip
flopa, on automatski daje i izlaz i komplementirani izlaz (besplatno). Sada cemo da koristimo
komplementirani izlaz (indirektan izlaz iz T flip flopa) jer je besplatan. Hocemo da prepoznamo kada
su svi direktni izlazi jednaki 0, to je kada su svi komplementirani jednaki 1, a to se prepoznaje kada se
oni prepuste kroz and kola.
Umesto da zamenjujem nor kolima, razlika izmedju brojaca unapred i unazad je, ako sve ove
povezem na q, dobijem brojac unapred, a ako ih sve povezem na q nadvuceno, dobijamo brojac
unazad.
U praksi se radi, jer je to sve slicno da kada napravimo kolo, ono moze da bude i brojac unapred i
unazad, samo se pitamo odakle uzimamo nesto. Imamo q i q nadvuceno i treba da izaberemo da li ce
ovaj ili onaj da ode na zajednicki izlaz ovo je upravo definicija multiplexera (bira neki od ulaza i njega
propusta). Ovde se radi o multiplexeru 2 na 1. A on ce da izabere koga ce da propusti na osnovu
kontrolnog signala (njega zovem u/d nadvuceno updown, jedinica je up, nula je down). Imamo taj
spoljni signal koji selektuje up down, u zavisnosti od toga da li je na 0 ili 1 stavljen. i ovu istu stvar
ponovimo svuda.
Sada se podseca sta je taj selektor (multiplexer 2 na 1) Crta sliku dole desno.Na ovaj nacin sa ovim
jednim kolom resavamo pitanje i brojanja gore i brojanja dole.


Mozemo isto tako da napravimo i dekadne brojace. Binarni bi bili korisceni interno u samom racunaru,
a ako trebaju brojaci nesto spolja da pokazuju (kmh), trebaju nam dekadni brojaci. Najejdnostavnija
veza izmedju ova dva brojaca je preko BCD koda,gde se po 4 binarne cifre koriste za kodiranje jedne
dekadne cifre. Uredjaji su po prirodi binarni, a ako hocemo da brzo predjemo na dekadni sistem, jedan
4ro bitni binarni brojac se pretvara u jednocifreni dekadni brojac. BB ide od 0 do 15 pa nazad, pa treba
da ga ogranicimo da ne koristi 10,11,12,13,14 i 15. 4bit BB postaje jednocifreni dekadni brojac, tako
sto mu ugradimo mehanizam koji ce da radi kao obican binarni, samo kada prepozna 9, da mu ne
dozvolimo da idemo napred na 10 i sasecemo ga i vratimo ga na 0, pa ponovo krene do 9 i tako dalje.
Na 0 cemo da ga vratimo tako sto ga nasilno postavljamo na nulu except (tako nesto) signal koji
postavlja na 0 bez obzira na sve ostalo. RS flipflopovi su imali r liniju da se kolo resetuje na 0. T flip
flop je nastao od jk flip flop, a jk je sr flip flop sa nekim modifikacijama. T flip flop se cesto fizicki ne
radi, jer nema svrhe interno vezivati. T ff je jk ff ciji su ulazi povezani. Ovde nam treba i ovo. T flip flop
je jk ff sa povezanim ulazima, pa ovde kazemo necemo bas da ih povezemo, nego nekako da ih
doteramo, pa sada crta.



Imamo jk i osim signala c, imamo i signal RST,koji treba da ako je on jednak 1, treba ovo da postavi
na 0, a ako nije jednak 1, onda treba ovo da se ponasa kao sto se ponasalo. Ovo k , kod njega
stavimo jedno ILI kolo. Pa kazemo ako je RST =1, 1 sigurno prolazi ono sigurno prolazi kroz ili kolo.
Kada je RST jednak 1, k je aktivirano i flip flop ce da bud postavljen na 0 (to je ustvari reset signal).
Ako rst nije jednak 1, onda C signal treba da se pusti i na J i na K (isto sto i ranije),pa sada kaze da
treba negde da se stavi inverter i ovde da stavi signal c. Pa kada je ovaj 0, ovaj je 1,i kada je ovaj 1,
kada njih dvojca treba zajedno da daju 1 koja ce da ode i ovamo i onamo (objasnjava sliku). Prema
tome, j i k zajedno su 1, kada je ovde 1 i ovde 1, drugim recima kada je ovde 1 i ovde 0, kada necu da
resetujem i hocu da brojim. A ako je rst 1, prolazi ovde i resetuje. Uvek moze da se izmisli, treba mi od
ovoga i onoga i to se radi.
Ovde imamo ideju, kada se rst jednak 1, treba da se povuce na 0, nije jednak 1, treba da radi kao i
ranije, kao t ff (sa ova 3 gatea je ostvareno)
Sada imamo binarni 4bitni brojac koji ima rst signal. Sada samo treba da ugradimo prepoznavac 9tke i
kada je prepoznamo, odradimo reset i dobili smo dekadni brojac. Sada crta, pa kaze uzmemo ovo sto
smo radili, pa mu ugradimo prepoznavac 9tke. Lako je prepoznati bilo koji sadrzaj. i je prepoznavalac
svih 1, a ILI svih 0, sve sto nije tako,moze da se svede na to. Ako hocu da prepoznam sadrzaj
01101001, trebamo da ovo sto su 0 da propustim kroz inverter, a ono sto su 1 da propustim direktno.
Ovo propustim sve kroz jedno i kolo i 1 ce na izlazu da se pojavi tacno kada se na ulazu pojavi ovo sto
smo napisali. Na ulazu i kola cu dobiti sve 1, tacno kada je na ulazu sadrzaj ono gore. i kolo se koristi
za prepoznavanje bilo kog sadrzaja (mozemo ovo isto da uradimo i sa NOR kolom). i gore i dole
imamo prepoznavalac sadrzaja. Ovo bi bilo generalno prepoznavalacko kolo.
Ovde treba da prepoznamo 9 a to je 1001, ovde treba samo da ugradim inverter, pa ovde inverter, pa i
kolo i povezemo na reset (crta sada). Ovo sada postaje dekadni brojac POGLEDATI DRUGU
SLIKU.
U ovoj prici je pitanje sata nedoreceno, finija tehnicka pitanja su izozostavljena (da li je master slave,
da li je jednofazni sat ili nije.). Ako bismo ovo hteli prakticno da napravimo, trebali bi da se bavimo
tehnickim detaljima. To se ovde ne razmatra. Postoje i druge optimizacije, kaze da bi ovde dovoljno
ovako nesto, umesto ovog relativno komplikovanog prepoznavalaca, mozemo da uzmemo samo
jedno i kolo. Ako treba da prepoznamo bilo koju 9tku, treba da prepoznamo 1001, a ovde treba da
prepoznamo 9 odredjenom kontekstu kada se pojavila, tj kada dolazi samo posle 8. Do 0 je ovaj signal
sve 0, pa je tek od 9tke signal prvi put 1,onog momenta kada se ovde pojavi 1, ovde se pojave tri 0 i
kada se pojavi 9tka, pojavi se taj 1. Ovo je jednostavan prepoznavalac devetke u brojacu (gledamo
samo ova 2 i oni se aktiviraju).
Nama ponekada treba dekadni brojac koji nece da ide do 10, to se odnosi na obicne satove. Ako
brojimo sekunde i minute idu do 59, a sati do 12. Ovi slucajevi se isto regulisu na ovaj nacin. Brojac
za sekunde ce biti dvocifren (jedan je normalan od 0 do 9, a drugi ce da prepoznaje 5 i onda ode na 0
(od 0 do 5), kada imamo oba rst, dajemo sledeci na minute i ostalo).Ovde jedan signal ostaje signal
za prenost, prenosimo ga na sledeci. Sati idu od 0 do 24, jedan treba da ide od 0 do 9 i od 10 do 19,
pa posebno da ugradimo kada se pojavi 24, odnosno 23, onda se generise rst nazad na 0. Kada
znamo sta je prepoznavac i kada imamo rst liniju, mozemo da napravimo bilo sta.


F4
ROM kolo
U stara vremena, racunari su imali feritne memorije, tj memorije su radile na magnetnom principu.
Svaki bit se pravio kao jedan mali feritni konus oko kojeg se namotavala zica i propustanjem struje
kroz zicu se taj konus magnetisao i razmagnetiosao i pamptio 0 ili 1, kao sto danas radi hdd. Tada su
memorije bile jako skupe. Ovo je imalo jednu prednost osobinu da ta memorija nije gubila sadrzaj sa
nestankom struje. Ovo je ovako bilo decenijama. Onda je doslo vreme 60tih kasno i 70tih, kada su
pocele da se prave elektronske memorije ff, koje su po svim parametrima bile bolje, osim jedne stvari
te memorije gube sadrzaj kada nestane struja. Memorija nije vise trajna, i ovde se javio novi
problem, kako sada da startujemo racunar.
Sa pojavom elektronskih memorija pojavio se problem startovanja racunara. On se resava tako sto u
racunar moramo da ugradimo jednu trajnu memoriju i u koju ce da bude upisan za startovanje
racunara. Procesor kaze kada dodje struja, tj reset signal, idem na adresu, donosim prvu instrukciju,
izvrsavam, procesor je jako ogranicen. Obaveza je konstruktora sistrema da zna gde ce procesor da
ode kada dodje struja i da tamo smesti program koji ce da startuje racunar. Moramo tamo gde ide
procesor da ugradimo neku trajnu memoriju, koja ne gubi sadrzaj i sa dolaskom struje procesor ode
tamo.
Sa pojavom el memorije, sa procesorom moramo da imamo 2 memorije trajnu sa programom za
startovanje i drugu normalnu gde mozemo da radimo ono sto trebamo.
Pokazalo se da ta memorija koja ne gubi sadrzaj ima jednu dodatnu osobinu, nus pojavu, to je da po
njoj ne moze da se pise. Nama treba trajna memorija koja nece da izgubi sadrzaj pri gubitku struje, a
ona je tada imala osobinu da po njoj ne moze da se pise. Tada nije moglo zbog toga da ta trajna
memorija bude ukupna memorija, vec samo ona za startovanje racunara. Tako dolazimo do te
situacije (ovo je jedan evolutivni proces).
Danas se kaze da racunari imaju 2 memorije ROM i RAM (to je zbrkana situacije).Ovo nista ne znaci.
Read only memory je malo nakarodno, ne treba nam da ne mozemo da pisemo po njoj, vec nam treba
da ona ne gubi sadrzaj (primer sa prevozom tresac kostiju). Dakle, ime ROM je jako glupo, jer je to
samo nus pojava ove memorije koja ne gubi sadrzaj kada nema struje. ROM bi se bolje nazivao trajna
memorija i onda bi bilo to to.
Sa druge strane imamo RAM Random Access Memory. Ovo je isto pogresno, jer nas ne zanima
slucajan pristup, vec nas zanima ciljani pristup. Bolje ime bi bilo memorija sa adresnim mehanizmom,
memorija sa ciljanim pristupom. Alternativa memoriji sa ciljanim pristupom su alternative memorija sa
sekvencijalnim pristupom, LIFO, FIFO Sekvencijalnim memorijama (magnetne trake), ne mozemo
podacima da dodjemo kako hocemo, da bismo dosli do 100tog, moramo da prodjemo kroz 99. RAM je
altrnativa onom ciljanom, pa je to skroz pogresan naziv.
Kako pristupamo ROM-u? Svaki rom je nuzno ram (jer oba imaju adresni mehanizam). Smesno je reci
imamo ROM i RAM. RAM moze da bude ROM ili ne mora. ROM je jedan deo RAMa. Ovo je
kompletna zbrka pri pisanju. Obe memorije su memorije sa adresnim mehanizmom, jedino je razlika
da li gubi sadrzaj ili ne gubi sadrzaj.
ROM je potreban za startovanje racunara kao trajna memorija. Svaka memorija ima ad mehanizam,
klasicni ad mehanizam je dekoder (prima adresu i selektuje jedan od registara). Svaka memorija
pocinje od dekodera.
Svaka memorija se karakterise sa 2 broja, 2k puta 4, ili 256 puta 8. Prvi broj oznacava adresni prostor
(koliko registara memorija ima), a drugi broj oznacava sirinu registra (koliko ima bitova u svakoj
memoriji).
Sada crta memoriju 4 (broj registra) puta 3 (sirina) (neobican slucaj, u praksi neprimenljiv). Prvo treba
da se odredi sadrzaj te memorije, npr 011, 101, 100, 010. Ovo je sadrzaj te trajne memorije i kada
nestane struja to ce da stoji sacuvano i procesor ce moci to da procita.
Prvo nam treba dekoder 2 na 4, on prima adrese a0 i a1, a selektuje jednu od 4 linije, r0,r1,r2,r3. i
sada uzimamo za svaku data liniju po jedno ili kolo i dobijamo d0,d1 i d2. Onda cemo ili kolo da
povucemo liniju od svake od ovih (crta). Za sada ovo nece nisa da uradi pametno (daje sve 1 u
svakom slucaju). Dovedemo na ulaz neke adrese i kada dovedemo neku adresu, dekoder selektuje
tacno jednu od izlaznih linija. J edna je 1, o ostale su 0. Od nje imamo zicu na sva 3 ilija. Kada na ili
kolu imamo jednu 1, nije vazno sta je ostalo. Ovde se garantuje da ce uvek biti na 3 mesta 1. Sada
gledamo, gde se nama ne svidja gde je 1 (gleda sliku), kaze mogu da uzmem i mogu obrnuto da
uradim, da presecm ovu zicu ovde i pita sta sada biva. Kaze kada bude adresa 00, bice selektovana
ova zica, a ostale ce biti 0, i objasnjava na osnovu slike (ne vidim). Secenjem zica na odgovarajucim
mestima otpisujemo 0.
Prica sada primer kada hocu da upisem 101 na adresi 10. Sada kaze za 100, pa opet preseca, ne
vidim, treba da se analizira slika. Secenje odgovarajuce zice obezbedjuje upisivanje nule. Sada kaze
da ovakva gotova slika upravo predstavlja ovu trajnu memoriju.
Ovde treba da se primeti da je ovo krajnja nerealisticna implementacija. Medjutim, u praksi ovo ne
bismo mogli da radimo. Ovde se trazi ili kolo sa onoliko ulaza koliko ima registara (ranije je bilo bar
1000 , 1 kilo), i ovako je jako testo da se izvede za veliki broj registara.
Kako bi se u praksi ovi uredjaji koristili. Ovakav slucaj podrazumeva da mi komuniciramo sa fabrikom,
moramo unapred da smislimo sta ce da pise u memoriji i posaljemo u fabriku i onda oni presecaju
zice. Ako nam treba 10000 komada, fabrika ce da uradi specijalne slucajeve sa ovako presecanim
zicama, a ako nam treba manje, ne moze. U praksi se radi tako sto postoji varijanta koja se zove
PROM (Programmable ROM). Ovde se misli na programabilnost na terenu, a ne u fabrici. Fabrika
kaze da razni ljudi trebaju razne stvari. Kaze, mi cemo u fabrici da pravimo samo jednu stvar koja
moze da se prilagodi i bude dobra svakome. Ona pravi jednu stvar koja je jednostavana i jeftina (gde
ima svuda 1, tj koja ima sve zice), ali ima dodatak, dodatni mehanizam kome cemo moci da spolja
dovedemo napon od npr 12 v (obican radi na 5v), i jos dodatni adresni mehanizam kojim cemo moci
da selektujemo neku od 12 zica i da dovedemo napon od 12v i da spalimo koju hocemo. Imamo sada
jeftin cip koji generise sve 1 i kod kuce mi palimo zice. Dobili smo isto sto je moglo i u fabrici da se
napravi. Za ovo postoji uredjaj koji se zove programator (cip utaknemo u njega i kablom na usb).
Imamo softver koji ima tabelu gde hocemo sta da pisemo i pokrenemo softver i onda se spaljuju
odredjene zice i ovo je u praksi odlicno promenljivo.
Mi smo pricali o vise memorija i opet ima ljudskih predrasuda. Spominjali smo do sada
kombinatorna,mem i sekvencijalna kola i znamo definicije. U skladu sa tim definicijama, ovo nije
nikakva memorija. Sustinsko svojstvo mem je da zapampti ono sto smo mu mi dali. Kombinatorna kola
damo ulaz i dobijemo izlaz,izracunavanje log funkcija.Dekoder je kombinatorno kolo. Mi u RoM
stavimo ulaz i dobijemo izlaz, i ljudi veruju da je to memorija, ali u skladu sa definicijom ovo nije
memorija. To je tacno, to nije memorija, vec kombinatorno kolo. A zovemo ga memorija, jer sami sebe
lazemo. Mozemo mem i drugacije da posmatramo, kazemo memorija je nesto sto koristimo kao
memoriju, a to je ako imamo adrese, pa adresni mehanizam, pa procitamo sadrzaj i ovo zadovoljava
ovu definiciju. U ovu definiciju bi rom mogao da se uklopi. Pa se onda kaze ako rom prihvatimo kako
memoriju, zasto and po ovoj definiciji ne prihvatamo kao memoriju. Ovo je sve mutno. Ovo je nasa
proizvoljnost i zbog toga sto rom ima mnogo funkcija i adresa kazemo da je to memorija (onda ista
argumentacija vazi za svaki nand i nor). Ovo ROM je klasicno kombinatorno kolo, ali moze da se
koristi kao memorija, i zato se zove ROM.
Kombinatorna kola izracunavaju logicke funkcije, to isto radi i ROM. ROM izracunava te funkcije na
najtrivijalniji nacin, on izracunava logicku funkciju koja je tablicno upisana u njega. Sa ROMom se log
funkcije implementiraju trivijalno. Upisemo tablicu u ROM i izracunava se. Napisemo samo tablicu (za
xor, sabirac, sve) i upisemo u rom i imamo rezultat. Ne zanima nas nista drugo, ni da je xor 4nanda, ni
sve ostalo. ROM na trivijalan nacin implementira funkciju. Samo se upise u ROM. Rom 8x2 je puni
sabirac. Ima 3 ulaza i 2 izlaza, 8 registara. 3bitna adresa ulaz. To su nam 3 ulazi p,x,y, koji daju
odgovaraju s i p koji mogu da se procitaju. Sa jednim takvim 8x2 ROMom dobijamo puni sabirac. Isto
tako uzimamo npr dekoder (velika jedinicna matrica), prepisemo jedinicnu matricu u rom i radimo. Ovo
upisivanje u ROM se negde vise isplati, a negde ne. Sve sto radimo su log funkicje, svaka log funkcija
se zadaje tablicom i tablica se upisuje u ROM. ROM je univerzalni hardverski uredjaj, sve moze da se
upise u ROM. U praksi ne biva tako, jer je nesto malo skupo,malo sporo. (primer sa kritpografijom
najbolji sistem, kljuc dugacak koliko i poruka i ne ponavlja se, ali je nama nezgodno). Isto je i ovde,
sve se lako resava preko ROMa, samo nece da bude preterano brzi i bice skuplje (potrosice mnogo
prekidaca). Moze tako, ali da lupamo glavu, kako da napravimo sabirac, sa dva polusabiraca i to sve
radimo da bi bilo brze i jeftinije, sa manje prekidaca.
Pomocu ROMa implementirati bilo sta. Napraviti dvobitni mnozitelj. Imamo ulaze xox1 i y0y1



000
001
010
011
100
101
110
111
Izlaz 2bit mnozenja ce da bude 4bita. Izlaz je p0,p1,p2,p3. J ednostavno popunjavamo tu tabelu. (ne
vidim ovo dobro sto pise).NACRTAO J E TABLICU 2BITNOG MNOZITELJ A (NE VIDIM).Najtrivijalnija
implementacija je pomocu ROMa i sve stavimo u ROM 16x4 koji ima 4 adresne linije i sadrzaj roma, i
kada stavimo odgovarajuce ulaze, dobijemo odgovarajuci 4bit broj. Prepisemo tablicu i gotova stvar.
Ovo nije optimalno, jer kada gledamo 4ti it, svuda je 0, samo na jednom mestu 1. Nije najekonomicnije
to da se uradi, ali je jednostavno. ROM je univerzalni uredjaj za implementaciju funkcije.
Kod ROMa imamo dobre i lose osobine. Dobro je sto je ROM univerzalni, a nevolja je sto je ROM
neracionalan, mnogo trosi. Mi bismo hteli negde izmedju. i pokazalo se da moze da bude
ekonomicnije, a to ce se zasnivati na NDF, gde je veza izmedju NDF i tablice trivijalno, iz svake tablice
se vidi NDF. Kod NDF uzimamo sam one elemente gde se javlja 1. Npr, NDF t3 je jednako y1y0x1x0,
to je ndf funkcije t3 iz primera koji nisam video. Slicno moze i za druge funkcije. Pisuci NDF, mozemo
dosta da ustedimo. i napravice se metod na NDF koji ce da ima svojstva resenja sa ROMom , a sa
druge strane ce da bude racionalniji. To je PLA (Programmable logic array).
F3
PLA (Programmable Logic Array)
Proizovd cu da napravim sa i kolima, a sumu cu da napravim sa ili kolima. Sada crta sliku, pa kaze
pravi ulaze u0uk, pa ulaze provede kroz mrezu i kola i sve zajedno zove AND Play (i ravan), to je
ova ravan koja pravi proizvode, pa kaze onda zarotira za 90 stepeni, pa su ti proizvodi ulaz za OR
Plain (or ravan) koja pravi sume, pa onda izlaze izlazi i0ip.To se i fizicki implementira tako, a zgodno
je da se zarotira od 90. Ako u osnovnoj formi, pla izracunava funkcije, uz pomoc PLA se
implementiraju konacni automati, to su jednostavni racunari koji vrse fiksan program, ali bez toga da
imaju procesor i memoriju, pa je sve sabijeno u nesto sto se zove unutrasnje stanje. Uz pomoc njih
pravimo liftove, ves masini, automati za placanjeOvi automati se trivijalno implementiraju pomocu
PLA. Unutrasnja stanja imamo kao linije ovoga ovde, imamo ulazne linije, pa od njih i unutrasnjeg
stanja izracunavamo izlaze i novo unutrasnje stanje, pa je novo unutrasnje stanje postaje staro
unutrasnje stanje i tako Ovo ce biti sledeceg casa.
Ulaza imamo 4 komada. Ulazi uvek idu sa svojim komplementima (uobicajeno gde imamo pravilnu
strukturu). Sada crta, kaze napravimo 8 linija.Pa kaze stavimo invertere, i kaze x0x1,y0y1 sa svojim
inverterima. Prvo sto treba da uradimo jeste da formiramo proizvode, ali samo one koji nam trebaju.
Sada prica sta nam treba, a sta nam ne trebaKaze da imamo 9 komada koji nam trebaju, pa kaze
da treba da napravimo 9 i kola. Crta sliku.9 i kola od kojih ce svako da odgovara jednom od ovih
proizvoda i to samo onih koji nam trebaju. Opet objasnjava, ali ne vidim nista, jbg!Kaze nesto mu
treba, nesto mu ne treba ISTO J E KAO i PRIMER OVAJ DOLE, SAMO STO IMA 16 ULAZNIH
KOMBINACIJ A. Sada je napravio pla koji implementira dvobitni mnozitelj.
Kaze da je ovo isto unvierzalna primena (radi se iz tablice), ali je dosta racionalnije, bacili smo silne
nule (ustedeli smo na prekidacima i povecali brzinu). PLA se zove zato sto je programmable logic
array. U fabrici se pravi samo jedna vrsta cipova (cip sa svim mogucim zicama), isto kao i prethodno
imamo programator koji se prikljuci na racunar, pa napon od 12v, pa softver kojim selektujemo zice
koje ne trebaju, pa ih spalimo. Ovo je interesantno za implementaciju funkcije, kao i za konacne
automate (to su kompletni uredjaji, racunari koji rade nesto primitivno, sve je sazeto u unutrasnja
stanja).









IX PREDAVANJE 23.05.2007. god.
F1
Ostala je jos jedna stvar iz digitalne logike. To su konacni automati. PLA uglavnom implementira
logicke funkcije, ali sa nekim malim modifikacijama moze da implementira konacne automate koji su
interesantni. Za semafore, za ves masine, za razne druge uredjaje. Ovde je interesantnije da se vidi
generalniji pojam racunara. Opet sklanjamo predrasude, da ne bi usko gledali stvari. Automati su neki
mali racunari. Svaki racunar je automat. Mi smo jako dugo sa racunarima, pa koristimo pojmove
programiranja, fon neumannove arhitekture, pa smo blizi njemu.
Ovde cemo da vidimo racunar koji radi ise funkcije kao i racunar, samo na drugi nacin. Konacni
automati imaju unutrasnje stanje i tamo su sabijeni i program i podaci. Da li mozemo 2 varijable da
pamptimo u jednoj varijabli. Onda koristimo razne nacine kodiranja, to su trikovi, najjednostavnije
kodiranje je da ih pomerimo decimalnim zarezom jednom od druge,pa ako su varijable manje od
hiljade, jednu pisemo kao jedinice, drugu kao hiljade. Onda varijable 135 i 52,zapisacemo ih kao
135050, pa ostatak pri jednom deljenju sa 1000 je jedna varijabla, a druga varijabla je celobrojno
deljneje sa 1000. Spolja imamo 1 varijablu, a za nas logicki imamo 2 varijable. Ovde smo videli da 1
varijabla moze da vrsi funkciju 2 i 3 varijable. Isto kod ovakvih automata ce u potpunosti i program i
varijable da budu sabijeni u unutrasnje stanje koje onda diriguju ponasanje tog automata. Kvantni
automati nema programe i podatke, ima spoljne ulazne podatke, izlazne podatke i unutrasnje stanje.
Na ovaj nacin obavlja neku funkciju koja je mogla na klasicnom programskom jeziku da se
isporgramira.
Dakle, kod konacnog automata, imamo vektor ulaza i vektor stanja, a na ostnovu njih se generisu
vektor izlaza i vektor novih stanja S` (nova stanja u sledecem ciklusu postaju stara stanja). Ui i Si
generisu Ii i Si+1 i to se vrti u krug. Sada uzmemo nove ui plus 1 i si plus 1 i generisemo Ii plus 1 i si
plus 2. Ovo bi bio opis funkcionisanja konacnog automata.
E sada kako to u praksi izgleda. Implementacija ce da bude preko PLA. PLA izracunava logicku
funkciju (kako sada od ovog sto izracunava log funkciju da napravimo konacni automat). Mi cemo ono
sto je za nas logicki (ulazi i stanja) da smatramo sve zajedno ulazima, a ono sto su izlaz i nova stanja,
smatracemo to izlazima. Ovo je kada se posmatra zajedno logicka funkcija koja ima ovliko ulaza i
ovoliko izlaza. Sada crta sliku.
Ulazi se dele na grupe Ui, Si, a opet izlaze, neke cemo da zovemo Ii, a neke Si plus 1. Fizicki su dve
grupe: ulazi i izlazi. Logicki zamisljamo da su neki ulazi pravi, a neki unutrasnja stanja, a izlazi, neki su
pravi izlazi, a neki nova unutrasnja stanja. Buduci da postoji povratna veza, stara unutrasnja stanja
postaju nova unutrasnja stanja,sve sto treba da uradimo jeste da napravimo povratnu vezu, tj da se
ovi si plus 1 vrate na si.
Prema tome, konacni automat po teoretskim definicijama je jedno, a fizicka implementacija je samo
PLA sa povratnim spregama i te povratne sprege su u stvari unutrasnja stanja. Ovde je onda naveci
posao da se razume realni problem iz fizickog realnog sveta.
Sada krece primer. Uzima primer automata za kupovinu, tj prodaju (za kafu, za kolace). Recimo da
postoje novcanice od 1din,2din i 5din, a da se roba prodaje (kafa) kosta 5din. Automat ima mesto gde
prima novac, gde vraca kusur i da izda robu. Prima novac, izda robu i vrati kusur. Treba da shvatimo
problem i da definisemo sta je tu sta. Sta ce da budu ulazi? Spolja se desava ljudi ubacuju pare.
Ulazni podaci su: 0din,, 1din,2din i 5din. Spolja imamo 4 razlicita dogadjaja i zato imamo 4 stanja
(numericke vrednosti nisu bitne, bitna su samo stanja). 4 stanja se siftruju sa 2 bita. Sada crta donju
tabelu.On stavlja uo i u1 kao ulaze (oni znace da je ubaceno nista, da je ubacen 1,2 ili 5din). Ovde je
unutrasnje stanje koliko je do sada automat uzeo para. Ovde ce biti 5 unutrasnjih stanja (ubaceno
0,1,2,3,4 dinara). Sada kaze imacu s0,s1,s2. 5 stanja moram da sifrujem sa 3bit, ali cu da koristim
samo 000,001,010,011. Ne treba mi kada ubacim 5 dinara, jer tada racunam da sam izdao kafu. Kada
je pisao ulaze u0 i u1, koristio je ispisivanje 4 binarna broja (0,1,2,3).
Sta ce da budu izlazi? Izlazno stanje moze da bude nikome nista, dajem kafu, dajem kafu i vracam
kusur (maximalno moze da bude 4+5 a to je 9 dinara), pa ce max kusur da bude 4 (kusur moze da
bude 1,2,3 ili 4). Ovde ima 6 mogucih slucajeva. Sifrujem ih sa 3 bita, I0,I1,I2 (sada pise tabelu). Sada
ih numerise, pa kaze jedan je dajem kafu plus 0,1,2,3,4 dinara, pa je onaj jedan ne dam nista (ovde je
isto pisao za ulaze binarne brojeve). Moze se rasporedjivati kako hocemo, najjednostavnijeje je npr
ako imam kusur 1 din da bude izlaz binarni broj 1, pa 2din da bude izlaz binarni broj 2Sada kaze
tablica da ce ulazi da budu U i S, a izlazi ce da budu izlaz i nova stanja, znaci ulaz i staro stanje
definisu izlaz i novo stanje. Sada pise U0,U1,S0,S1,S2 i sada, generalno 5bitni kompozitni ulaz bi
imao 32 slucajeva, i od 32 ne koristimo sve ulaze. Ako ispisem i slucajeve koji nam ne trebaju, nije
nista. On sada stedi prostor i kaze (da bi stalo na tablu ako ima 20 slucajea moze na tablu, ako imam
32 ne moze). Kaze ovo su moguci ulaci, a un stanja ima 5 a ne 8, pa ne dreba 8 puta 4 je 32 vec 5
puta 4 je 20. Sada u skladu sa tim popunjava tablicu. Sada gleda koja se kombinacija koliko puta
javlja i stedi prostor (kaze 11 javice mu se 5 puta.pa tako dalje). Sada je zavrsio i kaze da bi to
mogle biti moguce kombinacije.
Sada treba da vidimo sta treba da se desi. Kako se prave izlazi i nova stanja. Sada ce da dopunjuje
tabelu S2`,S1`,S0` - Ovo su oznake za novo stanje, a izlazi su I2,I1 i I0. Sada gleda gde su zajednicke
stvari i objedinjuje da bi islo brze. Uzima prvih 5 slucajemo U1 U2 je 00, to znaci da ovaj ne daje pare
na ulazu i da se nista ne desava, pa onda celokupno stanje ne prepisuje (ne da nista na ulazu, izlaz
ne da nista ni kafu ni kusur), pa prepisuje na I2,I1 i I0. Sada gleda drugu petorku. Na ulazu kaze,
ovaj daje dinar, i tada uglavnom pamptimo da je on dao dinar (pamptim povecani sadrzaj, ako sam
imao 2, pamptim 3, pa td) i u tom jednom slucaju ako sam imao pre 4 dinara, a on dao dinar,
isporucujem robu onda. Ako on da dinar, ja pamptim da sada imam 1, pa povecava(ako sam imao
1, sada imam 2, a ako sam imao 2, sada imam 3, pa 4,pa 5 i kada dodjem do poslednjeg slucaja, ja
dajem robu, ali nema kusura). Znaci i ovde ostaje kao i u prethodnoj petorki, i ovaj je slucaj daje dinar,
povecavam kredit, a u petom slucaju dajem kafu, ali nema kusura.
Prva petorka on de da nista, automat ne da nista
Druga petorka, on daje dinar, stanje se povecava i u petom stanju tek daje kafu, ali nema
kusura, jer kafa kosta 5din
Treca petorka. On daje 2 dinara, pa se sada isto kao i u prethodnom svuda stanje povecava za
2kada dodjemo do slucaja da je bilo pre 3din i on daje 2din,onda se sistem vraca na 0, a njemu se
daje kafa bez kusura. i psolednji slucaj ako je bilo 4 a on je dao 2, sistem se vraca na nulto stanje
ponovo i njemu se daje kafa i dinar kusura.
Poslednji slucaj. Kada se daje 5 dinara, Ako je bilo 0 din i dala 5din, sistem ide na 0 i daje kafu, ali
nema kusura. Ako nicega nije ni bilo, izdaje se kafa, a ako je bio dinar, onda se izdaje kafa i 1din
kusura,ako je bilo 3,daje se kafa i 3din, ako je bilo 4din,daje se kafa i 4din, a sistem se u svakom
slucaju vraca u pocetno stanje. Sada je zavrsio crtanje cele tabele.
Kaze da je prvi deo da se smisli problem najtezi, pa drugi tabela je laksi, a treci je jos laksi (damo
tabelu softveru, i on ce da uradi automat). Ako bismo radili peske, treba da napravimo PLA. PLA se
radi po NDF.
Mi bismo trebali da napravimo 5 ulaza sa njihovim invertima (crta sliku) i dobija i ravan. Sada treba da
napravimo proizvode. Kada se pogleda tabela za NDF treba tamo gde su jednake 1, a to su 6 funkcija.
Imamo iz tabele 3 slucaja gde su sve tri 0, tu necemo morati nikakav proizvoda da pravimo (od onih
20 jos 3 otpadaju,pa ostaje 17). Sada pravimo 17i kola i napravimo sve proizvode koji trebaju. Sada je
napravio svih 17i. Sada pocinje da pravi OR. Izlaznih funkcija ima 6 komada. Sada jos crta i povezuje
sta treba sa cime. Dobio je na kraju 2 ulaza, 3 izlaza i 3 linije koje predstavljaju unutrasnje stanje,
staro i novo. i sada jednostavno moze da uzme i da napravi povratne sprege. Da li ce moci direktno
povratna sprega ili nesto drugo? Kaze da se presece sa clock linijom f1 i f2 (clock satovi). Onda kaze
da je moguce da se stavi i neki registar koji ce privremeno da pampti, a moze i da ne bude registar.
Novo izracunato stanje ce u jednom ciklusu da se zapise u registar, a u sledecem f1 na f1 ce da se
procita i bice to staro stanje, pa ce da se izracuna novo stanje i zapamti na f2, pa ce opet novo i na f1
da se zapise staro,pa sve takoOvo pokrece taj automat. Logicka funkcija je pasiva (damo ulaze i
dobijemo izlaze).Ova programska sprega je ono sto programu daje program counter, daje mu zivot,
sam se pokrece, ali ovde je vise od pca,vec i pampti neko unutrasnje stanje.
Sada je ostalo da napravimo dekodere. Ugradimo dekoder 3 na 8. Dobijemo 8 zica (ako imamo
kombinacij od 0 do 4 dajemo kafu, a ako ne ne dajemo kafu). To od 0 do 4 stavimo u ILI kolo (el motor
koji otvara vrata i daje kafu), a ako je ovo 5,6 nista se ne desava, a ako je npr 1, imamo jednu dodatnu
zicu koja vodi na mesto koja ispusta na vratanca 1din,pa sve tako (to su sve mehanicki delovi).
Poslednjih godina cemo da cujemo i za mehatronika. Ovo je ono sto smo radili do sada. To je nova
vrsta masinstva,gde se sa klasicnog masinstva preorjentisu na novije elektroniku i to je kombinacija
elektrotehnike i racunarstva. Ovo bi bio klasican problem ovoga tipa.
Treba da se razmisli da je ovo sto smo napravili racunar, ali ne klasicnoga tipa.

You might also like