Professional Documents
Culture Documents
Sloeni digitalni sistemi projektuju se tako to se najpre ukupna funkcija sistema razloi na vie pod-funkcija. Zatim se pod-funkcije realizuju u vidu jednostavnijih digitalnih modula, ijim se povezivanjem konstruie eljeni sistem. Iako je u nekim sluajevima neophodno projektovati module za neke specifine funkcije, ipak, najee, u praksi, sloeniji digitalni sistemi se mogu realizovati korienjem standardnih modula ili komponenti. Standardne komponente obavljaju funkcije za koje je uoeno da su korisne za veliki broj razliitih primena, a dostupne su u vidu integrisanih kola ili bibliotekih komponenti i kao takve spremne za direktnu ugradnju u sistem koji se projektuje. Veina digitalnih sistema, ukljuujui i raunare, projektovana je da obrauje ili transformie podatke. Ove transformacije mogu biti razliitih tipova, ukljuujui aritmetike i logike operacije, kodiranje i dekodiranje podataka i reorganizaciju podataka. U optem sluaju, navedene transformacije podataka se obavljaju pomou kombinacionih komponenti. Osnovna osobina kombinacionih kola jeste injenica da se njihove izlazne vrednosti izraunavaju iskljuivo na osnovu tekuih ulaznih vrednosti. Nakon svake promene ulaznih vrednosti, na izlazu se javljaju nove izlazne vrednosti sa kanjenjem koje je neophodno da bi se izraunao novi rezultat. Kombinaciono kolo nije u stanju da zapamti prethodne rezultate, i da onda tu informaciju, zajedno sa tekuim ulazom, koristi za odreivanje novog izlaza. Za razliku od kombinacionih, sekvencijalne komponente sadre memorijske elemente, kao to su le kola i flip-flopovi. Kao posledica toga, izlazne vrednosti sekvencijalnih komponenti zavise ne samo od tekuih ve i od prethodnih ulaznih vrednosti. Spektar sekvencijalne komponenti se protee od bazinih memorijskih elemenata, kao to su le kola i flip-flopovi, preko registarskih komponenti, kao to su prihvatni, pomeraki i brojaki registri, i sloenijih memorijskih struktura, kao to su RAM, FIFO, stek, do upravljakih jedinica koje su u mogunosti da izvravaju sloene algoritme.
4.1
Kombinacione komponente
Kombinacione komponente se koriste za: transformaciju podataka, povezivanje, konverziju podataka i upravljanje. Konkretno, kombinacione komponente za transformaciju podataka obavljaju: (1) aritmetike operacije (sabiranje, oduzimanje, mnoenje i deljenje), (2) logike operacije (AND, OR, XOR i komplement), (3) operacije poreenja (vee ili jednako, manje) i (4) operacije za manipulaciju nad bitovima (pomeranje, rotiranje, izdvajanje i umetanje bitova). Kombinacione komponente za povezivanje su multiplekseri i magistrale, a koriste se za povezivanje aritmetikih i memorijskih komponenti. Komponente za konverziju podataka, kao to su koderi i dekoderi, se koriste za konverziju podatka iz jednog u neki drugi kd.
4.1.1 Dekoderi
Dekoderi su digitalna kola koja se koriste za dekodiranje kodiranih informacija. Binarni dekoder, predstavljen na Sl. 4-1, je digitalno kolo sa n ulaza za binarno kodirani podatak i 2n binarnih izlaza, pri emu svakom izlazu odgovara jedna kombinacija n logikih vrednosti na ulazu. Dodatni ulaz za dozvolu rada, E, upravlja izlazom dekodera na sledei nain: ako je E=0, tada ni jedan izlaz dekodera nije aktivan; ako je E=1, aktivan je samo izlaz yi, gde je i ceo broj jednak binarnoj vrednosti ulaza wn-1, ..., w1, w0. (Ime ulaza E potie od engleske rei Enable koja znai dozvola). Ovo kolo se zove binarni dekoder n-u-2 n ili n-to ulazni binarni dekoder.
Sl. 4-1 Binarni dekoder n-u-2n. Na Sl. 4-2 je prikazan binarni dekoder 1-u-2. Grafiki simbol ovog dekodera se moe videti na Sl. 4-2(a), a tabela istinitosti na Sl. 4-2(b). Dekoder 1-u-2 ima jedan ulaza za podatak w0, ulaz za dozvolu rada E i dva izlaza y1 i y0. Sve dok je E=1, vai: y0=1 za w0=0 ili y1=1 za w0=1. Logike jednaine koje definiu dekoder 1-u-2 su oblika: y0 = Ew0` y1 = Ew0 Logika ema dekodera 1-u-2 prikazana je Sl. 4-2(c).
149
(a)
(b)
(c)
Sl. 4-2 Dekoder 1-u-2: (a) grafiki simbol; (b) tabela istinitosti; (c) logika mrea.
Dekoder 2-u-4 je predstavljen na Sl. 4-3(a). Uoimo da dekoder 2-u-4 ima dva ulaza za podatak, w1 i w0, ulaz za dozvolu rada, E, i etiri izlaza, y0, ..., y3. Kao to je ve objanjeno, funkcija ovog dekodera je da dekodira binarni broj postavljen na ulazima w1 i w0 i postavi 1 na izlaz iji je indeks jednak tom broju. Funkcija dekodera 2-u-4 definisana je sledeim sistemom logikih jednaina: y0 = Ew1`w0` y1 = E w1`w0 y2 = E w1w0` y3 = E w1w0
(a)
(b)
(c)
Sl. 4-3 Dekoder 2-u-4: (a) grafiki simbol; (b) tabela istinitosti; (c) logika mrea. U optem sluaju, dekoder n-u-2n moe se konstruisati na osnovu sistema logikih jednaina: yi = Emi, i = 0, ..., 2n-1, gde je mi i-ti minterm n ulaznih promenljivih wn-1, ...., w0. (4.1)
Na izlazu dekodera, pod uslovom da je njegov rad dozvoljen, postoji samo jedna jedinica. Za izlaz na kome je prisutna jedinica kaemo da je aktivan. Ovo vai za dekodere sa aktivnim visokim naponskim nivoom na izlazu. Meutim, u upotrebi su i dekoderska kola sa aktivnim niskim naponskim nivoom na izlazu. Kod takvih dekodera, nula je prisutna na jednom izlazu, koji je izabran binarnom kombinacijom na ulazu, dok su na svim ostalim izlazima prisutne jedince. Grafiki simbol dekodera 2-u-4 sa aktivnim niskim naponskim nivoom na izlazu prikazan je na Sl. 4-4(a). Uoimo da je aktivan nizak naponski nivo naznaen kruiima na izlaznim prikljucima dekodera. Tabela istinitosti ovog dekodera je prikazana na Sl. 4-4(b), a logika mrea na Sl. 4-4(c). Uoimo da je logika mrea, po strukturi, identina onoj sa Sl. 4-3(c), s tom razlikom to se sada umesto I koriste NI kola.
(a)
(b)
(c)
Pr. 4-1 Sinteza prekidakih funkcija na bazi dekodera. Shodno jednaini (4.1), dekoder n-u-2n se ponaa kao generator minterma od n promenljivih. Kada je rad dekodera dozvoljen, svaki izlaz dekodera se aktivira tano jednom vrstom tabele istinitosti od n promenljivih. Ako je logika funkcija zadata u obliku tabele istinitosti ili skupom decimalnih indeksa, tada se ona moe direktno realizovati pomou dekodera u vidu kanonike sume-proizvoda.
150
prikazana je na Sl. 4-5(a), a realizacija ove funkcije u obliku minimalne sume-proizvoda na Sl. 4-5(b). Ista funkcija se moe realizovati pomou dekodera 3-u-8, koji generie sve mogue minterme od tri promenljive, i jednog OR kola, koje sumira minterme funkcije f, kao to je prikazano na Sl. 4-5(c). Na ovaj nain, korienjem dekodera odgovarajue veliine, mogue je realizovati proizvoljnu prekidaku funkciju.
(a)
(b)
(c)
(0,2,3,5) : (a) Karnoova mapa; (b) logika mrea; (c) realizacija pomou dekodera 3-u-8.
Iako je opisana tehnika sinteze gotovo trivijalna, ona postaje izrazito neefikasna u sluajevima kada je broj promenljivih vei od nekoliko. Broj minterma, a time i sloenost dekodera, raste eksponencijalno sa poveanjem broja promenljivih, tako da e za tipinu funkciju veeg broj promenljivih, od svih generisani minterma biti iskorien tek mali deo. Danas se dekoderi retko koriste za sintezu prekidakih funkcija na nain koji je opisan u ovom primeru. Meutim, izloeni koncept, sinteze zasnovan na sumiranju generisanih minterma, ili u optem sluaju, sumiranju generisanih produktnih lanova, predstavlja osnovu programabilnih logikih kola, kao to su ROM, PLA i PAL strukture (sekcija Error! Reference source not found.). Shodno jednaini (4.1) binarni dekoder n-u-2n se moe realizovati pomou 2n n-to ulaznih I logikih kola. Meutim, sa poveanjem n ukupan broj logikih kola i broj ulaza u logika kola postaju ograniavajui faktor, tako da se dekoderi sa veim brojem ulaza obino realizuju u vidu dekoderskih mrea sainjenih od vie manjih dekodera. Razmotriemo dve tehnike konstrukcije dekoderskih mrea: koincidentno dekodiranje i hijerarhijsko dekodiranje. Koincidentno dekodiranje U cilju ilustracije koncepta koincidentnog dekodiranja, razmotrimo realizaciju 8-ulaznog binarnog dekodera pomou 4-ulaznih binarnih dekodera (Sl. 4-6). Neka su W=w7w6...w0 osam ulaz, a Y= y255y254...y0 256 izlazi dekoderske mree 8-u-256. Najpre, podelimo ulaze u dve grupe: WH=w7w6w5w4 i WL=w3w2w1w0. Za realizaciju dekoderske mree koristimo dva dekodera 4-u-16, kao na Sl. 4-6. Grupa ulaza WH se dekodira pomou jednog, a grupa ulaza WL pomou drugog 4-ulaznog dekodera. Neka su H=h15h14...h0 i L=l15l14...l0 16-to bitni izlazi ovih dekodera. Izlazi dekoderske mree 8-u-256 formiraju se pomou 256 2-ulaznih I kola, tako to se svako I kolo povezuje sa jednim parom signala (hi, lj). Izlazu yk odgovara izlaz I kola iji su ulazi hi i lj, pri emu vai: k = 24 i + j. Na primer, izlaz y36 odgovara I kolu iji su ulazi h2 i l4, s obzirom da vai: 36 = 2 4 2 + 4. Uoimo da je ulaz za dozvolu rada dekoderske mree, E, povezan sa odgovarajuim ulazom jednog od dekodera 4-u-16, dok je ulaz za dozvolu rada drugog dekodera postavljen na 1. Ako je E=0, tada su svi izlazi iz jednog dekodera jednaki 0, to uslovljava yi=0 za svako i. U optem sluaju, n-to ulazni koincidentni dekoder se realizuje pomou dva n/2 ulazna binarna dekodera i 2n 2-ulaznih I kola, na nain kako je to prikazano na Sl. 4-7.
151
Hijerarhijsko dekodiranje Druga tehnika za konstrukciju veih dekodera je hijerarhijsko dekodiranje. Radi ilustracije ove tehnike razmotrimo realizaciju binarnog dekodera 4-u-16 pomou dekodera 2-u-4. Kao i kod koincidentnog dekodiranja, ulazi dekoderske mree, W=w3w2w1w0, se dele u dve grupe: WH=w3w2 i WL=w1w0. Na osnovu ove podele, moemo realizovati dvonivovsku mreu koja se sastoji iz jednog dekodera 2-u-4 u prvom i etiri dekodera 2-u-4 u drugom nivou, kao to je prikazano na Sl. 4-8. Grupa ulaza WH se dekodira u prvom, a grupa ulaza WL u drugom nivou. esnaest izlaza dekoderske mree su rasporeeni u 4 grupe od po 4 izlaza, gde se svaka grupa generie na izlazima jednog dekodera sa drugog nivoa. Princip rada je sledei: Dekodiranjem ulaza WH, dekodera sa prvog nivoa dozvoljava rad jednog dekodera sa drugog nivoa, koji dekodiranjem ulaza WL aktivira jedan od svojih izlaza. Na primer, ako je W=0110, tada je WH=01, a WL=10. To znai da e dekoder DEC dozvoliti rad dekoderu DEC1 koji s obzirom na WL=10 aktivira svoj izlaz sa indeksom 2, to odgovara izlazu dekoderske mree y4x1+2=y6. Uoimo da je ulaz za dozvolu rada dekoderske mree, E, povezan sa odgovarajuim ulazom dekodera sa prvog nivoa. Ako je E=0, tada su svi izlazi dekodera DEC postavljeni na 0. To znai da je rad svih dekodera sa drugog nivoa zabranjen i da su na svim izlazima dekoderske mree prisutne nule.
152
U optem sluaju, n-to ulazni dekoder se moe realizovati u vidu dvo-nivolske dekoderske mree sa jednim (n/2)-ulaznim dekoderom u prvom i 2n/2 (n/2)-ulaznih dekodera u drugom nivou. Hijerarhijska dekoderska mrea moe imati vie od dva nivoa. Na primer, ako za projektovanje koristimo dekodere 1-u-2, dekoder n-u-2n, imae 2n-1 dekodera 2-u-1, rasporeenih u n nivoa tako da se na svakom nivo dekodira jedan ulazni bit. Drugim reima, ulaz najvee teine dekodira se jednim dekoderom 1-u-2, sledei ulaz manje teine dekodira se sa dva dekodera 1-u-2, i tako dalje, sve do ulaza najmanje teine koji se dekodira sa n/2 dekodera 1-u-2. Izlazi dekodera sa odreenog nivoa se koriste kao signali dozvole jednog od dekodera sa sledeeg nivoa. Znai, na svakom sledeem nivou, broj dekodera e biti dva puta vei u odnosu na prethodni nivo. Kao primer opisanog postupka konstrukcije dekodera n-u-2n, na Sl. 4-9 je prikazan dekoder 3-u-8 realizovan na bazi dekodera 1-u-2.
U optem sluaju, n-to ulazni dekoder se moe realizovati u obliku hijerarhijske mree k-ulaznih dekodera rasporeenih u r nivoa, pri emu vai n=rk. n ulaza dekoderske mree se deli na r grupa od po k ulaza, pri emu se svaka takva grupa dekodira u jednom nivou. Prvi novo sadri jedan dekoder, a broj dekodera u svakom sledeem nivou je 2k puta vei od broj dekodera u prethodnom nivou. Ukupan broj k-ulaznih dekodera potrebnih za realizaciju n-to ulazne dekoderske mree iznosi: 1 + 2k + 22k + ... + 2(r-1)k = (2n 1)/(2k 1) Na primer, za n=12 i k=4, broj nivoa je r=3, a broj 4-ulaznih dekodera (2 12 1)/(24 1) = 273.
153
4.1.2 Multiplekseri
Multiplekser, esto u oznaci MUX, je digitalni preklopnik tj. kolo koje omoguava da se jedan od n izvora podataka logiki povee na zajedniko odredite. Multiplekser ima vei broj ulaza za podatke, jedan ili vie selekcionih ulaza i jedan izlaz. Vrednost selekcionih ulaza odreuje (tj. bira) jedan od ulaza za podatke ija se vrednost, u datom trenutku, prenosi na izlaz. Na Sl. 4-10(a) je prikazan grafiki simbol multipleksera 2-u-1. Ako je s=0, izlaz multipleksera bie f=w0; ako je s=1, izlaz multipleksera je f=w1. Multiplekser 2-u-1 je po funkciji analogan elektro-mehanikom dvo-poloajnom prekidau sa Sl. 4-10(b), kod koga signal s upravlja poloajem preklopnika. Ponaanje multipleksera 2-u-1 opisano je tabelom istinitosti sa Sl. 4-10(c), na osnovu koje lako moemo izvesti logiki izraz oblika suma-proizvoda: f=s`w0 + sw1. Ovom izrazu odgovara logika mrea sa Sl. 4-10(d). Na Sl. 4-10(e) je prikazano kako se multiplekser 2-u-1 moe realizovati pomou transmisionih gejtova.
(a)
(b)
w0 s
(c)
s w0 w1 f w1 f
(d)
(e)
Sl. 4-10 Multiplekser 2-u-1: (a) grafiki simbol; (b) analogija sa elektromehanikim preklopnikom; (c) tabela
istinitosti; (d) logika mrea; (e) realizacija pomou transmisionih gejtova.
Na Sl. 4-11(a) je prikazan jedan vei multiplekser, sa etiri ulaza za podatke, w0, , w3 i dva selekciona ulaza s1 i s0. Kao to se moe videti iz tabele istinitosti sa Sl. 4-11(b), kombinacija selekcionih ulaza (s1, s0), interpretirana kao binarna celobrojna vrednost i, za prosleivanje na izlaz f bira ulaz wi. Multiplekseru 4-u-1 odgovara sledei logiki izraz oblika suma-proizvoda: f = s1`s0`w0 + s1`s0w1 + s1s0`w2 + s1s0w3 Ovom izrazu odgovara logika mrea sa Sl. 4-11(c)
(a)
(b)
(c)
Sl. 4-11 Multiplekser 4-u-1: (a) grafiki simbol; (b) tabela istinitosti; (c) logika mrea.
Korienjem istog principa, mogue je realizovati i vee multipleksere. Obino, broj ulaza za podatke, n, je stepen broja 2. Multiplekser n-u-1 zahteva log 2 n selekcionih ulaza. Vei multiplekseri se takoe mogu realizovati pomou manjih multipleksera. Na primer, multiplekser n-u-1, gde je n stepen broja 2, moe se konstruisati pomou n-1 multipleksera 2-u-1 rasporeenih u log 2 n nivoa. Svaki od n/2 multiplekser sa prvog nivoa bira izmeu dva izvora podataka, dok svaki od n/4 multiplekser sa drugog nivoa bira izmeu dva multiplekserska izlaza sa prvog nivoa. Drugim reima, na svakom nivou, nakon prvog, svaki multiplekser se koristi za izbor izmeu dva izlaza generisana od strane multipleksera sa prethodnog nivoa. Konkretno, za realizaciju multipleksera 8-u-1 potrebna su 8-1=7 multipleksera 2-u-1, a broj nivoa je 3. Na Sl. 4-12(a) je prikazana tabela istinitosti, a na Sl. 4-12(b) realizacija multipleksera 8-u-1 pomou multipleksera 2-u1.
154
Na Sl. 4-13(a) prikazan je grafiki simbol multipleksera 2xm-u-m. Ovaj simbol na kompaktan nain predstavlja strukturu od m paralelno povezanih multipleksera sa Sl. 4-13(b). Pomou multipleksera 2xm-u-m omoguen je izbor jednog od dva m-bitna operanda. U optem sluaju, multiplekser kxm-u-m sastoji se iz m multipleksera ku-1 sa zajednikim selekcionim ulazima.
Multiplekser 8-u-1 se moe realizovati i na nain koji je prikazan na Sl. 4-14. U ovom sluaju, za dekodovanje selekcionih signal koristi se dekoder 3-u-8. Iako ovo reenje izgleda jednostavno, ono, meutim, nije lako proirljivo. Drugim reima, broj i veliina logikih kola u dekoderu, kao i veliina izlaznog ILI kola raste sa poveanjem broja ulaza u multiplekser. S obzirom da se logika kola sa velikim brojem ulaza realizuju u vidu stabla logikih kola sa manjim brojem, cena i kanjenje se znaajno poveavaju. Iz tog razloga, reenje sa Sl. 4-14 se koriste samo za male vrednosti n, dok se multiplekseri za vee vrednosti n konstruiu ranije opisanom metodom, korienjem vie nivoa multipleksera 2-u-1 ili 4-u-1.
mux 2xm-u-m
155
(a)
(b)
Sl. 4-14 Realizacija multipleksera pomou dekodera: (a) tabela istinitosti multipleksera 8-u-1; (b) realizacija na bazi dekodera.
Na Sl. 4-15 je prikazana jo jedna realizacija multipleksera pomou dekodera kod koje se umesto dvo-nivovske I-ILI mree koristi niz trostatikih bafera sa kratkospojenim izlazima. Dekoder obezbeuje da e uvek biti aktivan samo jedan trostatiki bafer, koji prosleuje vrednost sa svog ulaza na zajedniki izlaz. Izlazi trostatikih bafera ne moraju fiziki biti spojeni u jednu taku, ve mogu biti povezani vezom (magistralom) koja kontaktira svaki izlaz, to je pogodno u sluajevima kada su izvori podatak (moduli koji generiu signale D0-D3) prostorno razueni.
Pr. 4-2 Krozbar prekida Na Sl. 4-16(a) prikazano je kolo sa dva ulaza, x1 i x2, i dva izlaza, y1 i y2. Kao to je naznaeno isprekidanim linijama, kolo obezbeuje kontrolisanu vezu izmeu ulaznih i izlaznih prikljuaka, tj. omoguava da bilo koji ulaz moe biti povezan na bilo koji izlaz. U optem sluaju, kolo ovog tipa, sa n ulaza i k izlaza, ija je jedina funkcija da obezbedi spregu bilo koji ulaz sa bilo kojim izlazom, zove se krozbar prekida nxk. Ako postoje dva ulaza i dva izlaza, radi se o krozbar prekidau 2x2. Na Sl. 4-16(b) je prikazana realizacija krozbar prekidaa 2x2 pomou multipleksera 2-u-1. Selekcioni ulazi oba multipleksera povezana su na ulazni signal s. Ako je s=0, krozbar povezuje x1 na y1 i x2 na y2; za s=1, veze su ukrtene, tako da se podatak sa ulaza x1 sprovodi na izlaz y2, a podatak sa ulaza x2 na izlaz y1. Krozbar prekidai su korisna kola koja nalaze primenu svuda tamo gde je neophodno povezati dva skupa veza, pri emu se nain sprege menja s vremena na vreme.
156
(a)
(b)
Sl. 4-16 Krozbar prekida: (a) korzbar 2x2; (b) realizacija pomou multipleksera
4.1.3 Demultiplekseri
Kao to je reeno u odeljku 4.1.2, multiplekser je digitalno kolo sa jednim izlazom, n ulaza za podatke i log 2 n selekcionih ulaza. Namena multipleksera je da multipleksira n ulaza za podatke preko jedinstvenog izlaza za podatak, pod kontrolom selekcionih ulaza. Kolo koje obavlja suprotnu funkciju vrednost sa jedinstvenog ulaza za podatak prosleuje na jedan od vie izlaza za podatke, zove se demultiplekser. Na Sl. 4-17(a) je prikazan grafiki simbol demultipleksera 4-u-1. Kao to se vidi iz tabele istinitosti sa Sl. 4-17(b), binarna kombinacija vrednosti selekcionih ulaza s1 i s2 bira jedan od etiri izlaza, y0, ..., y3, na koji se prenosi vrednost jedinstvenog ulaza za podatak, d. Demultiplekser 1-u-4 se moe realizovati pomou dekodera 2-u-4, kao to je prikazano na Sl. 4-17(c). U ovom sluaju, ulaz E dekodera se koristi kao ulaz za podatak demultipleksera, dok su izlazi dekodera izlazi za podatke demultipleksera. Binarna kombinacija w1w0 odreuje izlaz koji e biti postavljen na vrednost E. Ako je E=0, tada e svi izlazi dekodera biti 0, ukljuujui i izlaz koji je izabran kombinacijom w1w0; ako je E=1, tada kombinacija w1w0 postavlja 1 na odgovarajui izlaz. Dakle, uvek vai y(w1w0) = E.
(a)
(b)
(c)
Sl. 4-17 Demultiplekser 1-u-4: (a) grafiki simbol; (b) tabela istinitosti; (c) dekoder 2-u-4 kao demultiplekser 1-u-4. Pr. 4-3 Vremenski multipleks Par multiplekser-demultiplekser se moe koristiti za prenos informacije od n izvora do n odredita preko jedinstvene komunikacione linije, kao to je to za sluaj n=8, prikazano na Sl. 4-18. Multiplekser bira jedan od n izvora i prenosi podatak tog izvora na komunikacionu liniju. Na drugom kraju linije, demultiplekser usmerava primljeni podatak ka jednom od n odredita. Izbor para izvor-odredite obavlja se preko selekcionih ulaza multipleksera i demultipleksera. Ovakav nain prenosa informacija zove se vremenski multipleks. Uz ogranienje da u bilo kom trenutku moe postojati direktna sprega samo jednog para izvor-odredite, vremenski multipleks omoguava znaajno smanjenje broja potrebnih prenosnih linija, to moe predstavljati znaajnu utedu, naroito ako je rastojanje izmeu izvori i odredita podataka veliko.
157
4.1.4 Koderi
Binarni koder 2n-u-n (Sl. 4-19) kodira (transformie) informaciju od 2 n bita u n-bitnu kodnu re. Sa ogranienjem da u bilo kom trenutku samo jedan od 2n ulaza moe imati vrednost 1, na izlazu binarnog kodera generie se nbitni binarni broj koji ukazuje na indeks ulaza ija je vrednost 1. Na Sl. 4-20(a) je prikazana tabela istinitosti kodera 4-u-2. Tabela istinitosti je nepotpuna, jer sadri samo one slogove koji su dozvoljeni na ulazu binarnog kodera. Za sve ostale slogove, odziv kodera je nedefinisan. Uoimo da izlaz y0 ima vrednost 1 ako je w1=1 ili w3=1. Slino, izlaz y1 ima vrednost 1, ako je w2=1 ili w3=1. Na osnovu ovog zapaanja moemo konstruisati logiku mreu binarnog kodera 4-u-2 prikazanu na Sl. 4-20(b). U optem sluaju, binarni koder 2n-u-n moe se realizovati pomou n (2n-1)-to ulaznih OR kola. Svako OR kolo postavlja jedan izlaz. Ulaz wi je povezan sa jtim OR kolom ako j-ti bit u binarnoj reprezentaciji indeksa i ima vrednost 1.
(a)
(b)
Sl. 4-20 Binarni koder 4-u-2: (a) tabela istinitosti; (b) kolo.
Pr. 4-4 Jedna primena binarnog kodera Na Sl. 4-21 je prikazan osmo-poloajni mehaniki preklopnik. Preklopnik ima 8 izlaza koji u kodu 1-od-8 kodiraju poloaj klizaa. U ovoj primeni, binarni koder 8-u-3 se koristi za kodiranje poloaj kliza a u oblik trobitnog celog broja.
Prioritetni koder Kod binarnog kodera opisanog u prethodnom odeljku postoji ogranienje da u bilo kom trenutku najvie jedan ulaz sme biti aktivan. Ako se ovo ogranienje ne potuje, u sluajevim kada je aktivno vie od jednog ulaza, izlaz kodera bie pogrean. Meutim, u mnogim primenama ovo ogranienje se ne moe nametnuti. U takvim sluajevima, umesto kodera treba koristiti prioritetni koder. Kod prioritetnog kodera, svakom ulazu je dodeljen prioritet, a izlaz kodera, interpretiran kao binarni broj, ukazuje na indeks aktivnog ulaza najvieg prioriteta. Za sve vreme dok je aktivan ulaz visokog prioriteta, svi ulazi nieg prioriteta se ignoriu. Na Sl. 4-22 je prikazana tabela istinitosti prioritetnog kodera 4-u-2, pod pretpostavkom da ulaz w3 ima najvii, a w0 najnii prioritet. Izlazi y1 i y0 predstavljaju binarni broj koji identifikuje ulaz najvieg prioriteta koji ima vrednost 1. Poto je mogue da ni jedan ulaz nema vrednost 1, predvien je jo jedan, dodatni izlaz, z koji treba da ukae na ovu situaciju. Naime, ako je barem jedan ulaz jednak 1, tada je z=1; inae, ako ni jedan ulaz nije jednak 1, vai z=0.
158
Rad prioritetnog kodera se najlake moe razumeti ako najpre razmotrimo poslednju vrstu u tabeli istinitosti. Ova vrsta kazuje da ako je w3=1, izlaz se postavlja na y1y0=11. Poto ulaz w3 ima najvii prioritet, vrednosti ulaza w2, w1 i w0 nisu od znaaja. Da bi se ukazalo na injenicu da su njihove vrednosti irelevantne, promenljive w2, w1 i w0 su oznaene simbolom X. Pretposlednja vrsta u tabeli istinitosti kazuje da se za w2=1 izlazi postavljaju na y1y0=10, ali samo ako je pri tome w3=0. Slino, ulaz w1 uslovljava da izlaz bude postavljen na y1y0=01, ali samo pod uslovom da vai w3=w2=0. Konano, ulaz w0 se kodira na izlazu binarnom kombinacijom y1y0=00, ali samo pod uslovom da je w0 jedini aktivan ulaz.
Prioritetni koder 2 -u-n se moe realizovati kombinovanjem dva modula kao na Sl. 4-23. Prvi modul je kolo za razreavanje prioriteta koje menja na 0 sve ulaze ija je vrednost 1, osim onog iji je prioritet najvii. Drugi modul je standardni binarni koder. Modul za razreavanje prioriteta definisan je sledeim skupom logikih jednaina:
' ' xi = w2n 1w2n 2 K wi'1wi , i=0, 1, ..., 2n-1
Prethodni izraz kae da aktivan ulaz xi zadrava vrednost 1 samo ako su svi ulazi vieg prioriteta jednaki 0.
(a) (b) Sl. 4-24 Modul za razreavanje prioriteta: (a) paralelna realizacija; (b) iterativna realizacija.
Modul za razreavanje prioriteta se moe realizovati u obliku logike mree sa Sl. 4-24(a). Kod ove realizacije, izlaz i se generie pomou AND kola sa 2n-i ulaza. Ovakvo reenje je adekvatno za module sa malim brojem ulaza, ali je nepraktino za vee module, s obzirom da zahteva AND kola sa velikim brojem ulaza. Na Sl. 4-24(b) je prikazana iterativna realizacija istog kola, koja je pogodna za vei broj ulaza, mada ispoljava vee kanjenje. Ovo reenje je zasnovano na umnoavanju elija definisanih logikim jednainama: ci-1 = ci + xi zi = ci`xi Prosto, xi=1 postavlja ci-1 na 1, to iskljuuje sve ulaze nieg prioriteta.
159
Hijerarhijska realizacija prioritetnog kodera Na Sl. 4-25(a) je prikazana realizacija prioritetnog kodera 4-u-2 pomou prioritetnih kodera 2-u-1. Ulazi su podeljeni u dve dvobitne grupe i nezavisno kodirani prioritetnim koderima H i L. Drugi nivo strukture sa Sl. 4-25(a), koji se sastoji iz dodatnog prioritetnog kodera 2-u-1, G, i multipleksera 2-u-1, formiran je shodno tabeli istinitosti prioritetnog kodera 4-u-2 sa Sl. 4-22 iz koje sledi da izlaz y1 ukazuje na grupu, H ili L, koja sadri aktivan ulaz najvieg prioriteta, a izlaz y0 na poziciju aktivnog ulaza najvieg prioriteta u okviru grupe na koju ukazuje y1. Na osnovu slinog rezonovanja, na Sl. 4-25(b) je nacrtana struktura prioritetnog kodera 8-u-3. U optem sluaju, prioritetni koder 2n-u-n u prvom nivou sadrae dva prioritetna kodera 2n-1-u-(n-1), a u drugom jedan prioritetni koder 2-u-1, za generisanje izlaza z i yn-1 i multiplekser 2x(n-1)-u-(n-1) za prosleivanje kodnih izlaza jednog od kodera H ili L na izlaze yn-2, .., y0 (Sl. 4-25(c)). Koliko je prioritetnih kodera 2-u-1 i multipleksera 2-u-1 potrebno za realizaciju prioritetnog kodera 2 n-u-n ?
(a)
(c)
Logika mrea komparatora se moe sintetizovati na osnovu tabele istinitosti u kojoj bi za svaku kombinaciju nbitnih operanada X i Y bile navedene vrednosti izlaza G, E i L. Meutim, takva tabela bi bila previe velika, ak i za relativno malo n. Zato je bolji pristup da se u cilju realizacije kompartora razmatraju pojedinani parovi odgovarajuih bitova dva operanda. Razmotrimo konstrukciju 4-bitnog komparatora. Neka su X=x3x2x1x0 i Y=y3y2y1y0. Definiimo skup internih signala i3, i2, i1 i i0. Signal ik je jednak 1 ako su bitovi sa indeksom k operanada X i Y meusobno jednaki, tj. ik = (xk yk). Dva binarna broja su jednaka ako imaju iste bitove. Dakle, E = i3i2i1i0 Izraz za izlaz G se moe izvesti tako to e se bitovi operanada X i Y ispitivati u redosledu poev od bita najvee do bita najmanje teine. Prva bitska pozicija k na kojoj se bitovi xk i yk razlikuju odredie da li je X vee ili
160
manje od Y. Pri tome, ako je xk=0 i yk=1, vai X<Y; ako je xk=1 i yk=0, vai X<Y. Dakle, izlaz G definisan je sledeim logikim izrazom: G = x3y3` + i3x2y2` + i3i2x1y1` + i3i2i1x0y0` Izlaz L se moe odrediti na osnovu druga dva izlaza. Naime, X je manje od Y ako X i Y nisu ni jednaki niti je X vea od Y, tj. L = (E + G) Logika mrea koja realizuje etvorobitni univerzalni komparator prikazana je na Sl. 4-27. Opisana procedura se moe primeniti za konstrukcije univerzalnog komparatora za proizvoljno n.
Pr. 4-5 8-bitni univerzalni komparator Na Sl. 4-28 je prikazano kako se pomou dva 4-bitna univerzalna komparatora i dodatnih logikih kola moe realizovati 8-bitni univerzalni komparator. Operande X i Y moemo napisati u obliku: X = XH 2 4 + XL Y = YH 24 + YL gde su XH= x7x6x5x4, XL= x3x2x1x0, YH= y7y6y5y4 i YL= y3y2y1y0 vie i nie tetrade brojeva X i Y. Najpre, dva 4-bitna komparatora nezavisno porede vie i nie tetrade brojeva X i Y, a zatim se na osnovu njihovih izlaza odreuje konani rezultat. Dva broja su jednaka ako vai XH=YH i XL=YL. X je vee od Y ako je XH>YH ili ako su ako su XH i YH jednaki i pri tome XL>YL. Konano, X je manje od Y ako je via tetrada broja X manja od vie tetrade broja Y ili ako su vie tetrade dva broja jednake i pri tome nia tetrada broja X manja od nie tetrade broja Y.
Pr. 4-6 Realizacija komparatora pomou binarnog sabiraa Na Sl. 4-29 je prikazano kako se 4-bitni univerzalni komparator moe realizovati pomou 4-bitnog sabiraa. Odnos izmeu dva broja X i Y moe se odrediti ako se brojevi najpre oduzmu, a zatim ispita rezultat. Oduzimanje X-Y se realizuje kao sabiranje broja X i dvojinog komplementa broja Y. Kod oduzimanja neoznaenih binarnih brojeva vai pravilo da je izlazni prenos iz sabiraa, c4, jednak 0 ako je razlika negativna, odnosno 1 ako je razlika nula ili pozitivna. Drugim reima, c4=0 ukazuje na X<Y, a c4=1 na XY. Ovo pravilo se lako moe proveriti na sledeim konkretnim primerima:
161
Uslov XY se moe razloiti na dva uslova X>Y i X=Y ako se dodatno detektuje kada je rezultat 0. Za detekciju uslova sve nule moe se iskoristiti 4-ulazno NOR kolo, kao to je prikazano na Sl. 4-29. Dakle, ako je razlika 0, brojevi su jednaki; ako je c4=0, tada je X manje od Y, a ako razlika nije jednaka nuli i c4=1, tada je X vee od Y.
x3 x2 x1 x0 y3 y2 y1 y0
c4
n-bitni sabira
c0
(X=Y)
L G
(X<Y) (X>Y)
Sl. 4-29 Realizacija univerzalnog komparatora pomou binarnog sabiraa. Iterativne komparatorske mree Razmotrimo konstrukciju 16-bitnog komparatora na osnovu 4-bitnih komparatorskih modula. Za ovu namenu, ulazni 16-bitni operandi X=x15x14...x0 i Y=y15y14...y0 se razlau na po etiri 4-bitna vektora: X(i) = xi*4+3xi*4+2xi*4+1xi*4, i=0,..., 3 Y(i) = yi*4+3yi*4+2yi*4+1yi*4, i=0,..., 3 koji se koriste kao ulazi u pojedinane 4-bitne komparatorske module. Poreenje se obavlja sukcesivno (tj. iterativno), poev od bit-vektora najmanje teine, X(0) i Y(0), a rezultat poreenja, izraen promenljivama G, E i L se prenosi u naredni stepen. Ako su bit-vektori X(i) i Y(i) jednaki, preuzima se rezultat iz prethodnog stepena; ako se X(i) i Y(i) razlikuju, rezultat prethodnog stepena se zanemaruje, a stepen i dalje prosleuje rezultat svog poreenja. Izlazi G, E i L su u isto vreme i izrazi celokupne komparatorske mree. Da bi se omoguila sprega komparatorskih modula, neophodno je strukturu 4-bitnog komparatora sa Sl. 4-26 proiriti sa tri ulazna signala prenosa, kao na Sl. 4-30. Na Sl. 4-31 je prikazana struktura 16-bitnog iterativnog komparatora magnitude, realizovanog pomou 4-bitnih komparatora sa Sl. 4-31.
162
Opisani postupak se moe primeniti za konstrukciju iterativnog komparatora sa proizvoljno velikim brojem bitova. Meutim, kao i kod sabiraa sa rednim prenosom, sa poveanjem broj spregnutih bazinih modula propagaciono kanjenje komparatorske mree linearno raste. Hijerarhijske komparatorske mree Bra struktura za poreenje veih brojeva se moe realizovati ako se umesto iterativne koristi hijerarhijska mrea komparatora. Razmotrimo ponovo konstrukciju 16-bitnog komparatora na osnovu 4-bitnih komparatorskih modula, ali sada tako da komparatorski moduli budu povezani u hijerarhijsku strukturu, kao to je ona sa Sl. 4-32. Svaki od etiri modula sa prvog nivoa, K0 do K3 poredi dva bit-vektora od etiri bita. Izlazi iz prvog nivoa se koriste kao ulazi u jedinstveni komparatorski modul sa drugog nivoa, K4, na sledei nain: Svi izlazi G iz komparatorskih modula sa prvog nivoa ine bit-vektor g koji je povezan na grupu ulaza x komparatora K4. Slino, bit-vektor l, koga ine svi izlazi L iz prvog nivoa, povezan je na grupu ulaza y komparatora K4. Da mrea sa Sl. 4-32 zaista realizuje funkciju 16-bitnog komparatora, moe se pokazati sledeom analizom. Na osnovu definicije komparatorskog modula, izlazi hijerarhijske mree komparatora su:
1 ako je g > l G= 0 inace 1 E= 0 1 L= 0 ako je g = l inace
gde su g i l celi brojevi predstavljeni istoimenim bit-vektorima. S obzirom da su g i l izlazi iz prvog nivoa komparatorskih modula, nije mogue da oba bita gi i li u isto vreme imaju vrednost 1. Shodno tome, g>l znai da je 1-ca najvee teine u vektoru g tea od 1-ce najvee teine u vektoru l, to odgovara sluajevima kada je X>Y. Slino, g<l sledi iz X<Y. Sluaj g=l se javlja samo ako vai g=l=0, to znai da vai X=Y. Dakle, mrea sa slike realizuje funkciju poreenja brojeva X i Y.
X(3) 4 Y(3) 4 X(2) 4 Y(2) 4 X(1) 4 Y(1) 4 X(0) 4 Y(0) 4
K3 G g3 E L l3 G
K2 E L l2 4 x K4 4 y G
K1 E L l1
K0 G g0 E L l0
g2
g1
E L
163
bitnog univerzalnog pomeraa/rotatora, koji moe da obavlja logiko pomeranje ili rotiranje za jednu bitsku poziciju na levo ili na desno. Kolo ima 8-bitni ulaz za podatak D=d7...d0, 8-bitni izlaz za podatak Y=y7...y0, i tri selekcione linije, S2, S1 i S0, preko kojih se vri izbor eljene operacije. Ulaz dl definiu bitsku vrednost koja se prilikom pomeranja na desno postavlja na krajni levi izlaz, y7, dok ulaz dl definie vrednost koja se postavlja na krajnji desni izlaz, y0, prilikom pomeranja na levo. Shodno funkcionalnoj tabeli sa Sl. 4-33(b), kada je S2=0, ulazni podatak se, bez ikakve promene, prenosi na izlaz. Ako je S2=1, nad ulaznim podatkom se obavlja operacija pomeranja ili rotiranja. Smer pomeranja, odnosno rotiranja, zavisi od vrednosti S1: za S1=0 bitski sadraj podatka se pokree na levo, a za S0=1 na desno. Konano, S0 slui za izbor izmeu pomeranja i rotiranja, tako da pri S0=0 pomera/rotator radi kao pomera, a pri S0=1 kao rotator. Na Sl. 4-33(c) su ilustrovani razliiti reimi rada univerzalnog pomeraa/rotatora.
(a)
(b)
(c)
Sl. 4-33 Univerzalni pomera/rotator: (a) grafiki simbol; (b) funkcionalna tabela; (c) reimi rada. Na Sl. 4-34 je prikazana realizacija 8-bitnog univerzalnog pomeraa/rotatora. Kao to se moe videti, pomera/rotator je realizovan tako to je za svaku bitsku poziciju iskorien jedan multipleksera 4-u-1. Ulazi multipleksera su tako rasporeeni da multiplekser koji zauzima poziciju i, moe da bira izmeu ulazih bita i-1, i i i+1. Dodatno, pomera/rotator ima dva multipleksera 2-u-1, koji slue za izbor krajnjeg levog ili krajnjeg desnog bita.
Sl. 4-34 Realizacija 8-bitnog univerzalnog pomeraa/rotatora sa Sl. 4-33 pomou multipleksera.
164
Barel pomera Prethodno opisani pomera/rotator ima mogunost pomeranja ili rotiranja za jednu bitsku poziciju ulevo ili udesno. To znai da ako je potrebno obaviti pomeranje ili rotiranje za vie od jedne bitske pozicije, podatak bi morao biti proputen kroz pomera/rotator vei broj puta. Drugim reima, na ovakvom tipu pomeraa, operacija pomeranja za proizvoljan broj pozicija se izvrava sporo. Da bi se izbeglo ovo veliko kanjenje, kod sistema gde se zahtevaju visoke performanse, koristi se barel pomera, koji je tako projektovan da moe obaviti pomeranje za proizvoljan broj pozicija. n-bitni pomera ovog tipa, gde je n=2m, sadri m=log2n nivoa multipleksera rasporeenih tako da i-ti nivo multipleksera (0im-1) obavlja pomeranje za 2i pozicija, ako je selekciona linija ovog nivoa Si=1. Ako je Si=0, podatak prolazi kroz i-ti nivo nepromenjen. Drugim reima, ako elimo da pomerimo podatak za B pozicija, gde je B binarni broj bm-1...b0, tada je potrebno postaviti Si=bi, za 0im-1. Na Sl. 4-35 je prikazano jedno mogue reenje barel pomeraa, kod koga je, u cilju pojednostavljenja, broj funkcija sveden samo na jednu, rotiranje na desno. Kao to se moe videti, ovaj 8-bitni barel rotator realizovan je sa tri nivoa multipleksera 2-u-1, koji se kontroliu sa tri selekcione linije, S0, S1 i S0, na sledei nain: kada je S0=1, prvi nivo obavlja rotiranje za jednu bitsku poziciju; kada je S1=1 drugi nivo obavlja rotiranje za dve, a kada je S2=1 trei nivo obavlja rotiranje za etiri bitske pozicije. Za konstrukciju sloenijih pomeraa/rotatora, koji mogu obavljati vei broj razliitih operacija, koristi se u sutini isti postupak, s tim da je neophodan vei broj multipleksera sa veim brojem ulaza za podatke.
(a)
(b)
Sl. 4-35 8-bitni barel rotator na desno: (a) tabela istinitosti; (b) struktura.
165
4.2
Aritmetika kola
Ovo poglavlje je posveeno digitalnim kolima koja obavljaju aritmetike operacije. Bie razmatrana digitalna kola za sabiranje, oduzimanje i mnoenje.
x
0 0 1 1
y
0 1 0 1
Suma sx20
0 1 1 0
(a)
(b)
(c)
(d)
Sl. 4-36 Polu-sabira: (a) sabiranje dva bita; (b) tabela istinitosti; (c) kolo; (d) grafiki simbol.
Polu-sabira, razmatran kao izolovano kolo, nema neki vei praktini znaaj. Od mnogo veeg interesa su kola koja obavljaju sabiranje vie-bitnih brojeva. Prilikom sabiranja vie-bitnih brojeva, kao i kod sabiranja viecifarskih decimalnih brojeva, potrebno je sabrati svaki par bitova (cifara), ali za svaku bitsku poziciju i dodatno je potrebno uraunati i prenos koji potie iz prethodne pozicije, i-1. Na Sl. 4-37 je dat primer sabiranja dva 5bitna broja X=(01111)2=(15)10 i Y=(01010) 2=(10)10. Sa pet bita mogue je predstaviti cele brojeve iz opsega 0 do 31. Poto u konkretnom sluaju vai S=X+Y=(25)10, pet bita bie dovoljna i za predstavljanje zbira. Uoimo da su na Sl. 4-37, sabirci simboliki oznaeni sa X=x4x3x2x1x0 i Y=y4y3y2y1y0. Na ovoj slici su takoe prikazani prenosi koji se generiu u toku sabiranja. Na primer, prilikom sabiranja bitova x0=1 i y0=0 dobija se suma s0=1 i prenos c0=0; prilikom sabiranja bitova x1=1 i y1=1 dobija se suma s1=0 i prenos c1=1 i tako dalje. Za ci kaemo da predstavlja izlazni prenos (carry-out) iz pozicije i, odnosno ulazni prenos (carry-in) na poziciju i+1.
Standardni nain za projektovanje digitalnih kola polazi od tabele istinitosti. Meutim, ovakav pristup nije praktian za projektovanje sabiraa koji treba da sabira dva 5-bitna broja. 5-bitni sabira ima 10 ulaza, pa bi za opis njegovog ponaanja bilo potrebno formirati tabelu istinitosti od 2 10=1024 vrsta! S toga, bolji pristup je nezavisno razmatrati sabiranje svakog para bita xi i yi. Za poziciju i=0 ne postoji ulazni prenos i s toga se sabiranje obavlja na isti nain kao na Sl. 4-36(a). Na svakoj od preostalih poziciju i=1,..., n-1, i-ti bitovi sabiraka, xi i yi, se sabiraju zajedno sa ulaznim prenosom ci. Tako, sada sabiranje na nivou svake bitske pozicije obuhvata tri bita, xi, yi i ci. Kako najvei zbir tri bita iznosi (11) 2, to su za njegovo predstavljanje, kao i kod sabiranja dva jednobitna broja, potrebna dva bita: suma si, kao bit manje teine, i izlazni prenos ci+1, kao bit vee teine. Bit sume si predstavlja i-ti bit konanog rezultata, dok se bit prenosa ci+1 pridodaje poziciji i+1 kao ulazni prenos. Funkcije sume i izlaznog prenosa definisane su tabelom istinitosti sa Sl. 4-38(a). Bit sume si je zbir po modulu 2 bitova xi, yi i ci. Drugim reima, bit sume je jednak 1 ako neparan broj sabiraka ima vrednost 1, odnosno, 0 ako paran broj sabiraka ima vrednost 1. Izlazni prenos ci+1
166
jednak je 1 ako je zbir bitova xi, yi i ci vei od 1. Karnoove mape za funkcije si i ci+1 prikazane su na Sl. 4-38(a). Na osnovu Karnoovih mapa u mogunosti smo da izvedemo optimalne izraze oblika zbir-proizvoda za funkcije ci+1 i si: ci+1 = xiyi + xici + yici si = xiyici+xiyici+xiyici+xiyici Efikasnija realizacija funkcija si i ci+1 moe se postii korienjem XOR kola. XOR funkcija dve promenljive definisana je izrazom x1 x2 = x1x2 + x1x2. Primenom algebarskih manipulacija, izraz za bit sume moe se svesti na formu koja sadri samo XOR kola, na sledei nain: si = (xiyi+xiyi)ci+( xiyi+xiyi)ci = (xiyi+xiyi)ci+( xiyi+xiyi)ci = (xi yi)ci+(xi yi)ci = (xi yi) ci U sutini, si predstavlja XOR funkcija tri promenljive. Napomenimo, da je za XOR funkciju karakteristian naizmenian raspored jedinica u Karnoovoj mapi, koji je takav da onemoguava saimanje minterma (Sl. 4-38(b)). Izraz za funkciju ci+1, takoe, moemo preurediti na nain da koristi XOR funkciju. Pri tome, treba poi od izraza oblika zbir-minterma: ci+1 = cixiyi + cixiyi + cixiyi + cixiyi = (ci +ci)xiyi + ci(xiyi + cixiyi) = xiyi + ci(xi yi) Uoimo da se lan (xi yi) javlja u izrazima za obe funkcije si i ci+1. Ova injenica omoguava da se prilikom realizacije funkcija si i ci+1 za izraunavanje lana (xi yi) koristi jedinstveno XOR kolo. Kombinaciona mrea koja realizuje funkcije si i ci+1 prikazana je na Sl. 4-38(c). Ovo kolo se zove potpuni-sabira (full-adder - FA). Grafiki simbol potpunog sabiraa prikazan je na Sl. 4-38(d).
(a) (b) (c) (d) Sl. 4-38 Potpuni sabira: (a) tabela istinitosti; (b) Karnoove mape; (c) kolo; (d) grafiki simbol.
Imajui u vidu imena kola, polu- i potpuni-sabira, mogli bi smo naslutiti da je potpuni-sabira mogue konstruisati pomou dva polu-sabiraa. Zaista, ako paljivo pogledamo kombinacionu mreu potpunog sabiraa sa Sl. 4-38(c), moemo uiti da se u njoj kriju dva polu-sabiraa, uz dodatak jednog OR kola preko kojeg se formira izlaz ci+1, kao to je to naznaeno na Sl. 4-72(a). Na Sl. 4-72(b) je prikazana blok ema potpunog sabiraa realizovanog pomou polu-sabiraa.
167
(a) (b) Sl. 4-39 Realizacija potpunog sabiraa na bazi polu-sabiraa: (a) identifikacija polu-sabiraa; (b) blok dijagram
Sabira sa rednim prenosom Kao to dobro znamo, runo sabiranje se obavlja tako to se krene od cifre najmanje teine i redom sabiraju parovi cifara, sve do cifre najvee teine. Ako se na poziciji i javi prenos, tada se on dodaje ciframa na poziciji i+1. Identian postupak se moe primeniti i za konstrukciju digitalnog kola koje e obavljati sabiranje binarnih brojeva. Binarni sabira se formira rednim povezivanjem potpunih sabiraa, tako to izlazni prenos svakog potpunog sabiraa slui kao ulazni prenos za potpuni sabira koji zauzima prvu narednu bitsku poziciju vee teine. Ovakva vrsta sabiraa se zove sabira sa rednim prenosom ili RCA, prema engleskom nazivu RippleCarry Adder. Struktura n-to bitnog sabiraa sa rednim prenosom prikazana je na Sl. 4-40(a). Ova struktura se predstavlja grafikim simbolom sa Sl. 4-40(b). U optem sluaju, zbir dva neoznaena n-to bitna broja ima n+1 bita. Kod binarnog sabiraa, ovaj dodatni (n+1)-vi bit je predstavljen bitom izlaznog prenosa iz pozicije najvee teine, cn, tako da vai: (cnsn-1s1s0) = (xn-1x1x0) + (yn-1y1y0) + c0.
(a) (b) Sl. 4-40 n-bitni sabira sa rednim prenosom: (a) unutranja struktura; (b) grafiki simbol.
U strukturi sa Sl. 4-40(a), proces izraunavanja poinje onog trenutka kada se na ulaze sabiraa postavi novi par operanada X i Y. Meutim, s obzirom da svako logiko kolo u svakom potpunom sabirau unosi izvesno kanjenje, korektna vrednost izlazne sume S se ne generie istog tog trenutka, ve tek nakon nekog vremena. Da bi se u stepenu n-1 odredio bit sume sn-1 neophodna je informacija o prenosu iz stepena n-2, tj. cn-1; da bi se u stepenu n-2 odredio izlazni prenos cn-1 potrebno je imati informaciju o vrednosti cn-2, i td. Neka kanjenje potpunog sabiraa iznosi t vreme od postavljanja ulaza xi, yi, ci do generisanja korektnih izlaza ci+1 i si. Izlazni prenos iz prvog stepena, c1, stie do drugog stepena posle vremena t nakon to su postavljeni x0 i y0. Izlazni prenos iz drugog stepena, c2, stie do ulaza treeg sa kanjenjem od 2t, i td. Signal cn-1 je vaei posle kanjenja od (n-1)t, a celokupna izlaza suma posle kanjenja od nt. Napomenimo da vreme sabiranja zavisi i od vrednosti operanada. Kanjenje od nt odgovara sluaju kada je jedan operand 11...11, a drugi 00...01. U ovom sluaju, prenos koji se javlja na poziciji 0, prenosi se kroz sve potpune sabirae postavljajui bitove sume na 0. Za bilo koji drugi par vrednosti operanada, kanjenje e biti krae. Na primer, sabiranje brojeva 00...00 i 00...01 traje samo t. U optem sluaju, vreme sabiranja odreeno je najveim brojem uzastopnih pozicija na kojima oba operanda imaju vrednost 1. Meutim, kao se sabirai koriste za sabiranje operanada proizvoljnih vrednosti, u radu sa sabiraem moramo raunati sa maksimalnim kanjenjem, nt, kako bi smo bili sigurni da emo sa izlaza sabiraa uvek oitati ispravan rezultat.
168
Znai, brzina rada sabiraa sa rednim prenosom odreena je vremenom prostiranja signala prenosa kroz potpune sabirae. to je broj bita koji se sabira vei, to je brzina rada manja. Ako se radi sa brojevima velike duine, 32 ili 64 bita, vreme sabiranja moe biti neprihvatljivo dugo. Napomenimo da je sabira sa rednim prenosom samo jednu od veeg broja razliitih konstrukcija sabirakih kola, koje se razlikuju po sloenosti (ukupan broj gejtova) i brzini rada. Sabira sa rednim prenosom je najjednostavnija, ali ujedno i najsporija varijanta. Konstrukcija brzih sabirakih kola bie tema odeljka X. Binarni sabirai sa rednim prenosom se lako spreu kako bi se formirale sabirake mree za vei broj bitova. Na
Sl. 4-41 je pokazano kako se sa dva n-bitna sabiraa formira 2n-bitni sabira.
Pr. 4-7 Projektovati kolo za mnoenje neozna enog 8-bitnog broja konstantom 3. Neka je A=a7a6a1a0 i P=3A. Za predstavljanje broja P potrebna su 10 bita: P=p9p8p1p0. Poto vai 3A=A+A+A, za realizaciju kola moemo upotrebiti binarne sabirae. Na Sl. 4-42(a) je prikazano reenje koje koristi dva sabiraa. Pri sabira generie A+A=2A. Njegov rezultat je predstavljen sa 9 bita: 8 bita sume i izlazni prenos sa pozicije najvee teine. Drugi sabira rauna 2A+A=3A. Ovaj sabira je 9-to bitni, iz razlog to jedan od njegovih operanada, 2A, ima 9 bita. Uoimo da je ulaz x8 drugog sabiraa povezan je na konstantu 0, s obzirom da A ima 8-bita. Na Sl. 4-42(b) je prikazano efikasnije reenje, koje koristi samo jedan 9-bitni sabira. Uoimo da je 8-bitni sabira u reenju sa Sl. 4-42(a) nepotreban, s obzirom da se 2A moe dobiti prostim pomeranjem bitova broja A za jednu poziciju ulevo, to daje: 2A=a7a6a1a00. Za obavljanje ovog pomeranja nije potrebno nikakvo kolo, ve je dovoljno dopisati jednu nulu sa desne strane broja, to upravo odgovara nainu na koji je operand A povezan sa Y ulazom sabiraa. Uoimo, sada, da je u reenju sa Sl. 4-42(b), ulaz najmanje teine sabiraa x0 fiksno postavljen na x0=0. To znai da e bit sume s0 uvek imati vrednost s0=a0. Ovo zapaanje nam omoguava da dodatno pojednostavimo reenje, tako to emo 9-bitni sabira zameniti 8-bitnim, kao na Sl. 4-42(c).
(a) (b) (c) Sl. 4-42 Kolo koje mnoi 8-bitni neoznaeni broj sa 3: (a) polazno reenje; (b) poboljano reenje; (c) konano reenje.
Predstavljanje oznaenih brojeva (*) U decimalnom brojnom sistemu, znak broja se oznaava simbolom + ili levo od cifre najvee teine. U binarnom brojnom sistemu, znak broja se oznaava dodatnim bitom koji u zapisu broja zauzima krajnju levu poziciju. Za pozitivne brojeve, ovaj bit jednak je 0, a za negativne 1. Znai, kod oznaenih brojeva, krajnji levi
169
bit ukazuje na znak broja, dok se preostalih n-1 bita predstavlja maginitudu ili apsolutnu vrednost broja, kao to je prikazano na Sl. 4-43. Vano je zapaziti poziciju bita najvee teine (MSB). Kod neoznaenih brojeva svih n bita predstavljaju magnitudu broja kae se da su svi bitvi znaajni, a MSB se nalazi poziciji n-1. Kod oznaenih brojeva, znaajni su n-1 bita, MSB bit se nalazi na poziciji n-2, dok bit na poziciji n-1 ukazuje na znak broja.
(a) (b) Sl. 4-43 Formati predstavljana celih brojeva: (a) neoznaeni broj; (b) oznaeni broj.
Za razliku od pozitivnih brojeva koji se predstavljaju uvek na isti nain, korienjem pozicionog brojnog sistema, za predstavljanje negativnih brojeva u upotrebi su tri reprezentacije: znak-magnituda, jedinini komplement i dvojini komplement. Znak magnituda Kod decimalnog brojnog sistema, magnituda pozitivnih i negativnih brojeva predstavlja se na isti nain, a znak je taj koji ukazuje da li se radi o pozitivnom ili negativnom broju. Ovakav nain predstavljanja oznaenih brojeva zove se znak-magnituda, ili znak-apsolutna vrednost. Ista reprezentacija se moe primeniti i na binarne brojeve, a razlika je samo u nainu kodiranja znaka: umesto + i koristimo 0 i 1, respektivno. Na primer, +5 = 0101, a -5=1101. Brojni sistem koji koristi reprezentaciju znak-magnituda sadri isti broj pozitivnih i negativnih brojeva, a nula ima dvojnu reprezentaciju. Najvei pozitivni broj koji se u ovom sistemu moe iskazati sa n bita je +(2n-1) = 01111; najmanji negativni broj je (2 n-1) = 11111, dok se nula predstavlja sa 00000 ili 10000. Jedinini komplement U formatu jedininog komplementa, n-bitna reprezentacija negativnog broja K se dobija oduzimanjem njemu odgovarajueg pozitivnog broja P od 2n-1, tj. K=(2n-1)-P. Na primer, ako je n=4, tada je K = (24-1)-P = (15)10-P = (1111)2-P. Ako +5 konvertujemo u negativan broj, dobiemo -5 = 1111 0101 = 1010. Slino, +3=0011, a -3 = 1111 0011 = 1100. Jasno se uoava da se jedinini komplement datog binarnog broja dobija komplementiranjem svakog pojedinanog bita, ukljuujui i bit znaka. Najvei pozitivni broj koji se moe predstaviti u jedininom komplementu sa n bita je 01111 = 2 n-1, najmanji negativni broj je 10000 = -(01111) 2 = -(2n-1), dok nula ima dvojnu reprezentaciju: 00000 ili 11111. Jedinini komplement se lako izvodi, ali ispoljava izvesne nedostatke kada se koristi u aritmetikim operacijama. Dvojini komplement U formatu dvojinog komplementa, n-bitna reprezentacija negativnog broja K se dobija oduzimanjem njemu odgovarajueg pozitivnog broja P od 2n, tj. K = 2n - P. Na primer, ako je n = 4, tada je K = 24 - P = (16)10 - P = (10000)2 - P. Da bi smo odredili dvojini komplement broja 5, treba obaviti oduzimanje 10000 0101, to daje 5 = 1011. Ili -3 = 10000 0011 = 1101. Nalaenje dvoji nog komplementa na ovaj nain je naporno jer zahteva da se obavi operacija oduzimanja. Meutim, ako je K1 jedinini, a K2 dvojini komplement broja P tada vai: K1 = (2n-1) P K2 = 2n P Odakle sledi K2 = K1 + 1. Dakle, jednostavniji nain za nalaenje dvojinog komplementa sastoji se u tome da se na jedinini komplement doda jedinica. Ovo je upravo nain na koji se u digitalnoj tehnici dobija dvojini komplement. Za runo izvoenje postoji jo jedan laki nain za nalaenje dvojinog komplementa. Neka je dat broj B=bn-1bn2 ... b1b0. Dvojini komplement broja B, K=kn-1kn-2 ... k1k0, moe se odrediti na sledei nain: kreemo od bita najmanje teine ulevo i prepisujemo bitove broja B sve dok ne naiemo na prvu jedinicu, zatim prepisujemo i ovu jedinicu, a preostale bitove komplementiramo. Na primer, ako je B=0110, tada prepisujemo k0=b0=0 i k1=b1=1, i komplementiramo preostale bitove, k2=b2`=0 i k3=b3`=1. Znai, K=1010. Ili, na sloenijem primeru, ako je B=101101000, tada je K= 010011000.
170
U brojnom sistemu koji koristi dvojini komplement, nula se tretira kao pozitivan broj, i predstavlja na jedinstveni nain: 000...00. Iz tog razloga broj pozitivnih brojeva je za jedan manji od broja negativnih. Naime, najvei pozitivni broj koji se moe predstaviti sa n bita u formatu dvojinog komplementa je 011...11 = 2 n-1, dok je najmanji negativan broj 10000000 = -(011...11 + 1) 2 = -(100...00)2 = -2n. Sabiranje i oduzimanje oznaenih brojeva (*) U prethodnom odeljku opisana su tri standardna naina za binarnu reprezentaciju brojeva. Meutim, nisu svi ovi naini podjednako pogodni za primenu u digitalnim sistemima. Osnovni kriterijum za izbor reprezentacije brojeva je lakoa sa kojom se nad brojevima u konkretnoj reprezentaciji obavljaju osnovne raunske operacije, kao to su sabiranje i oduzimanje. U ovom odeljku, na konkretnim primerima, ukazaemo na dobre i loe strane svake od tri reprezentacije. Sabiranje pozitivnih brojeva se obavlja na isti nain u sve tri reprezentacije, tj. na isti nain kao sabiranje neoznaenih brojeva. Meutim, kada se u raunicu uvedu i negativni brojevi, izmeu razliitih reprezentacija ispoljavaju se znaajne razlike. Sabiranje brojeva u formatu znak-magnituda Ako oba sabirka imaju isti znak, sabiranje brojeva u formatu znak-magnituda je jednostavno. Magnitude se saberu, a zbiru se dodeli znak sabiraka. Meutim, ako su sabirci razliitog znaka, sabiranje postaje sloenije. U tom sluaju, operacija sabiranja se svodi na oduzimanje manjeg broja od veeg. To znai da je za obavljanje operacije sabiranja neophodno digitalno kolo koje e ispitati znake sabiraka, uporediti njihove magnitude i biti u mogunosti da u zavisnosti od ishoda poreenja obavi sabiranje ili oduzimanje. Sloenost takvog kola je znaajno vea od odgovarajuih kola koja barataju brojevima u komplementarnim reprezentacijama. Iz tog razloga reprezentacija znak-magnituda se ne koristi kod digitalnih sistema. Sabiranje brojeva u jedininom komplementu Oigledna prednost jedininog u odnosu na dvojini komplement je u tome to se negativni broj lako odreuje prostim komplementiranjem svih bitova odgovarajueg pozitivnog broja. Na Sl. 4-44 je prikazano ta se deava prilikom sabiranja dva broja predstavljena u jedininom komplementu. Navedena su etiri sluaja, pri emu svaki sluaj odgovara jednoj konkretnoj kombinaciji znakova sabiraka. Kao to se moe videti na gornjoj polovini slike, izraunavanja 5 + 2 = 7 i (-5) + 2 = (-3) su trivijalna; prostim binarnim sabiranjem operanada, ukljuujui pri tome i bit znaka, dobija se ispravan rezultat. Meutim, to nije sluaj kod preostala dva primera. Izraunavanje 5 + (-2) = 3 daje bit vektor 10010. Prvo, rezultat ima pet, a ne etiri bita. Dodatni peti bit je posledica izlaznog prenosa iz pozicije znaka. Drugo, preostala etiri bita predstavljaju broj 2, a ne 3, to je oigledno pogrean rezultat. Meutim, ako uzmemo izlazni prenos sa pozicije znaka i dodamo ga rezultatu na poziciji najmanje teine, novi rezultat bie ispravna suma, tj. 3. Slina situacija se javlja kod sabiranja (-5) + (-2) = (-7). Nakon inicijalnog sabiranja, rezultat je pogrean, zato to su etiri bita sume 0111, to predstavlja +7, a ne -7. Ali, ponovo, tu je izlazni prenos iz pozicije bita znaka koji moe biti iskorien za korekciju rezultata, na nain kako je prikazano na Sl. 4-44.
Zakljuak koji se namee na osnovu razmatranih primera je da sabiranje brojeva u jedininom komplementu u nekim sluajevima jednostavno, a u nekima nije. Ako je potrebna korekcija, neophodno je dodatno vreme kako bi se obavilo sabiranje inicijalnog rezultata i izlaznog prenosa. Tako, ukupno vreme sabiranja moe biti i dvostruko due od vremena sabiranja dva neoznaena broja. Sabiranje brojeva u dvojinom komplementu Razmotrimo istu kombinaciju brojeva koju smo koristili u primerima za jedinini komplement. Na Sl. 4-45 je ilustrovano kako se obavlja sabiranje brojeva predstavljenih u dvojinom komplementu. Sabiranja 5 + 2 = 7 i (5) + 2 = (-3) su trivijalna. Izraunavanje 5 + (-2) = 3 daje ispravna etiri bita rezultata, 0011. Pri tome, izlazni prenos iz pozicije bita znaka, koji u ovom sluaju postoji, moemo, prosto, ignorisati. etvrti sluaj je (-5) + (-2) = (-7). Ponovo, etiri bita rezultata, 1001, odgovaraju ispravnoj sumi (-7). I u ovom sluaju, izlazni prenos iz pozicije bita znaka se moe ignorisati.
171
Prethodni primeri pokazuju da je sabiranje brojeva u dvojinom komplementu veoma jednostavno. Brojevi se sabiranju zajedno sa bitom znaka, a rezultat je uvek ispravan. Eventualni izlazni prenos iz pozicije bita znaka se jednostavno ignorie. Znai, procedura sabiranja je uvek ista, nezavisno od znaka operanada, i moe se obaviti binarnim sabiraem, kao to je onaj sa Sl. 4-40. Zbog svega toga, reprezentacija brojeva u dvojinom komplementu je veoma pogodna za primenu u digitalnim sistemima. Oduzimanje u dvojinom komplementu Najlaki nain da se obavi oduzimanje je da se najpre umanjiocu promeni znak, a da se onda dobijena vrednost sabere sa umanjenikom. Promeni znaka umanjioca odgovara nalaenje njegovog dvojinog komplementa. Na Sl. 4-46 je na nekoliko karakteristinih primera ilustrovan ovaj postupak. Operacija 5 (+2) = 3 ukljuuje nalaenje dvojinog komplementa broja +2, to daje 1110. Kada se ovaj broj sabere sa 0101 = (+5), dobija se rezultat 0011 = (+3) uz generisanje prenosa iz pozicije bita znaka. Ako ignoriemo prenos, rezultat je taan. Slina situacija postoji za (-5) + (+2) = (-7). U preostala dva sluaja, izlazni prenos ne postoji i rezultat je taan.
Sl. 4-46 Primeri oduzimanja u dvojinom komplementu. Sl. 4-47 predstavlja jednu vizuelnu ilustraciju procesa sabiranja i oduzimanja 4-bitnih brojeva u dvojinom
komplementu. Slika prikazuje brojanik po ijem obodu su rasporeene svih 16 4-bitnih kombinacija. Ako bi smo ove binarne kombinacije interpretirali kao neoznaene cele brojeve, tada bi one predstavljale brojeve od 0 do 15. Ako ih tretiramo kao brojeve u dvojinom komplementu, tada njima odgovara opseg celih oznaenih brojeva od -8 do 7, kao to je naznaeno po unutranjem obodu brojanika. Kazaljku brojanika moemo podesiti na bilo koji broj, a zatim na taj broj moemo dodati broj +n tako to emo odbrojati n puta unapred, tj. okrenuti kazaljku za n koraka u smeru kretanja kazaljke na asovniku. Jasno je da okretanjem kazaljke za n koraka u suprotnom smeru, od polaznog broja oduzimamo broj n. Naravno, rezultat ovog postupka e biti taan samo ako je n dovoljno malo da kazaljka prilikom okretanje ne pree granicu izmeu +7 i -8.
Interesantno je uoiti jo i sledee. Krajnja pozicija kazaljke bie ista bilo da se ona okrene za n koraka u jednom smeru ili za 16-n koraka u suprotnom smeru. Dakle, umesto da radimo sa brojanikom ija kazaljka moe da se okree u oba smera, moemo koristiti brojanik sa kazaljkom koja se okree samo u smeru kretanja kazaljke na asovniku (odgovara sabiranju), a da u sluajevima kada elimo da obavimo oduzimanje, prethodno preraunamo broj koraka po formuli 16-n. Uoimo da 16-n predstavlja upravo dvojini komplement broja n, a
172
da ova grafika interpretacija potvruje nae ranije tvrenje da se oduzimanje brojeva u dvojinom komplementu moe obaviti sabiranjem umanjenika i dvojinog komplementa umanjioca. Sabira/oduzima Jedina razlika izmeu sabiranja i oduzimanja je u tome to je kod oduzimanja potrebno koristiti dvojini komplement jednog od operanada. Neka su X i Y dva broja, koja treba sabrati ili oduzeti i neka je Y broj koji prilikom oduzimanja slui kao umanjilac, tj. neka je S=XY. Kao to znamo, dvojini komplement operanda Y se moe dobiti dodavanjem jedinice na njegov jedinini komplement. Dodavanje jedinice na poziciju najmanje teine moe se postii postavljanjem bita ulaznog prenosa c0 na 1. Jedinini komplement datog broja se dobija komplementiranjem svih njegovih bitova. Komplementiranje broja se moe obaviti pomou NOT gejtova. Meutim, za ovu namenu bie nam potrebno fleksibilnije kolo, kako bi smo mogli da u zavisnosti od eljene operacije koristimo pravu ili komplementiranu vrednost operanda Y. Takvo kolo je XOR gejt. Interesantna osobina XOR kola je da jedan od njegovih ulaza moemo koristiti kao upravljaku promenljivu pomou koje emo birati da li e se na izlazu kola generisati prava ili komplementarna vrednost drugog ulaza. Ovo je jasno na osnovu definicije XOR operacije: z=x y = xy + xy Neka je x upravljaki ulaz. Za x=0, izlaz e biti identian ulazu y, tj. z= 0y + 0y=1y+0 y= y. Ali, ako je x=1, izlaz e biti jednak komplementu ulaza y, tj. z= 1y + 1y=0y+1 y= y. Drugim reima, za x=1 XOR gejt funkcionie kao invertor, dok za x=0, jednostavno prenosi vrednost sa ulaza y na izlaz. Kolo za sabiranje/oduzimanje moemo konstruisati na sledei nain. Pretpostavimo da postoji upravljaki signal koji odreuje da li treba obaviti sabiranje ili oduzimanje. Neka se ovaj signal zove Add / Sub (prema engleskim nazivima za sabiranje i oduzimanje: addition i subtraction). Takoe, neka vrednost 0 ovog signala bira sabiranje, a 1 oduzimanje. Crta iznad Add upravo ukazuje na ovu injenicu. Napomenimo da je ovo esto koriena konvencija, tj. da crta iznad imena upravljakog signala ukazuje da se akcija specificirana tim imenom obavlja kada signal ima vrednost 0. Neka je svaki bit operanda Y povezan na jedan ulaz jednog od XOR gejtova, a da su drugi ulazi svih XOR gejtova povezani na signal Add / Sub . Izlazi XOR gejtova predstavljaju Y, ako je Add / Sub =0, odnosno Y, ako je Add / Sub =1. Tako dolazimo do kola sa Sl. 4-48. Glavni deo ovog kola je n-to bitni sabira, koji moe biti realizovan korienjem strukture sabiraa sa rednim prenosom sa Sl. 4-40(a). Uoimo da je upravljaki ulaz Add / Sub povezan i na ulaz c0 sabiraa. Na ovaj nain, bie c0=1 kada se obavlja oduzimanje, to dodaje jedinicu koja je neophodna da bi se formirao dvojini komplement operanda Y. Kada se obavlja operacija sabiranja, c0 e biti 0 i nee uticati na rezultat.
Kombinovano kolo za sabiranje i oduzimanje je dobar primer jednog vanog koncepta koji se primenjuje u projektovanju digitalnih sistema. Korisno je projektovati kola koja e biti to je mogue vie fleksibilna i na taj nain iskoristiti zajednike delove kola za to vie razliitih zadataka. Ovakvim pristupom minimizuje se broj gejtova potrebnih za realizaciju sistema. Takoe, znaajno se smanjuje sloenost povezivanja komponenti sistema. Aritmetiko prekoraenje Ako operacija sabiranja ili oduzimanja generie rezultat koji premauje opseg brojnog sistema kaemo da je dolo do aritmetikog prekoraenja. Drugim reima, aritmetiko prekoraenje se javlja u situacijama kada je rezultat pozitivan i suvie veliki ili negativan i suvie mali tako da ga nije mogue predstaviti raspoloivim znaajnim bitovima. Ako za predstavljanje oznaenih brojeva koristimo n bita, tada rezultat mora biti u opsegu od -2n-1 do (2n-1-1). Kada su sabirci razliitog znaka, do aritmetikog prekoraenja nikada nee doi, zato to e rezultat uvek biti manji od pozitivnog i vei od negativnog sabirka. Meutim, ako su sabirci istog znaka, moe
173
se desiti da rezultat bude vei od 2n-1-1, ako su oba sabirka pozitivna, odnosno, manji od -2 n-1, ako su sabirci negativni. Da bi se osigurao ispravan rad aritmetikog kola, neophodno je biti u mogunosti detektovati pojavu aritmetikog prekoraenja.
Na Sl. 4-49 su prikazana etiri sluaja sabiranja brojeva u dvojinom komplementu ije su magnitude 7 i 2. S obzirom da u ovom primeru za predstavljanje brojeva koristimo 4 bita, broj znaajnih bitova je tri, b0-2. Kao to se vidi sa Sl. 4-49, kada su sabirci razliitog znaka rezultat je taan, tj. nema prekoraenja. Meutim, ako oba broja imaju isti znak, magnituda rezultata je 9 i ne moe biti predstavljena sa samo tri znaajna bita, tj. dolazi do prekoraenja. Klju za detekciju pojave prekoraenja su dva prenosa: c3 izlazni prenos iz pozicije najvee teine i c4 izlazni prenos iz pozicije znaka. Na osnovu primera sa Sl. 4-49, moe se zakljuiti da se prekoraenje javlja kada ova dva bita imaju razliite vrednosti, a da je rezultat ispravan ako su njihove vrednosti iste. Izraen u obliku logikog izraza, uslov prekoraenja glasi: Prekoraenje = c3c4 + c3c4 = c3 c4 Ili, u optem sluaju, za n bitne brojeve, imamo: Prekoraenje = cn-1 cn Na Sl. 4-50(a) je prikazana struktura sabiraa/oduzimaa sa kolom za detekciju prekoraenja koje ispituje izlazne prenose. Drugi nain za detekciju aritmetikog prekoraenja uporeuje bitove znaka sabiraka i rezultata. Neka su X=xn1xn-2x0 i Y=yn-1yn-2y0 binarni brojevi u dvojinom komplementu, i S=sn-1sn-2s0 rezultat njihovog sabiranja. Bitovi xn-1, yn-1 i sn-1 su bitovi znaka ova tri broja. Aritmetiko prekoraenje postoji ako smo sabiranjem pozitivnih brojeva dobili negativan rezultat ili ako smo sabiranjem negativnih brojeva dobili pozitivan rezultat, tj.: Prekoraenje = xn-1yn-1sn-1 + xn-1yn-1sn-1 Isto tvrenje, kazano drugim reima, glasi: do prekoraenja je dolo ako se rezultat razlikuje po znaku od oba sabirka, tj.: Prekoraenje = (xn-1 sn-1) (yn-1 sn-1) Kolo sabiraa/oduzimaa kod koga je detekcija prekoraenja realizovana shodno gornjem izrazu prikazano je na
Sl. 4-50(b). Uoimo da je prvi nain za detekciju prekoraenja, Sl. 4-50(a), jednostavniji, jer zahteva sam jo
jedno dodatno XOR kolo, za razliku od drugog kod koga je potrebno ugraditi dodatna tri gejta. Meutim, prvo reenje podrazumeva da je signal izlaznog prenosa cn-1 dostupan, to ne mora biti sluaj ako raspolaemo sabiraem koji se realizovan kao monolitna komponenta. U tom smislu, drugo reenja je pogodnije jer koristi samo spoljanje signale sabiraa/oduzimaa.
174
yn-1
yn-2
y1
y0 Add/Sub
xn-1
xn-2
x1
x0
Prekoraenje
cn FA
cn-1 FA
cn-2
...
c2 FA
c1 FA c0
s1
s0 LSB pozicija
(a)
(b) Sl. 4-50 Dva naina za detekciju aritmetikog prekoraenja: (a) na osnovu izlaznih prenosa; (b) na osnovu znaka sabiraka i rezultata.
Napomenimo da su dva pravila za detekciju aritmetikog prekoraenja, u sutini, ekvivalentna. Potpuni sabira na poziciji bita znaka obavlja sledee izraunavanje: (cn, sn-1) = (xn-1 + yn-1 + cn-1). Ako su oba sabirka pozitivna, xn-1=yn-1=0, izlazni prenos iz pozicije znaka bie cn=0, bez obzira na vrednost cn-1. Za cn-1=0, bit znaka rezultata bie sn-1=0, to ukazuje da je rezultat pozitivan i da zbog toga prekoraenja nema. Meutim, ako je cn-1=1, bit znaka dobija vrednost sn-1=1, to ukazuje na negativan rezultat, tj. na pojavu prekoraenja. Slino, ako su oba sabirka negativna, xn-1=yn-1=1, izlazni prenos iz pozicije znaka bie cn=1, bez obzira na vrednost cn-1. Meutim, za cn-1=0, bit znaka dobija vrednost sn-1=0, to ukazuje na pozitivan rezultat, odnosno na prekoraenje. Dakle, u oba sluaja vai da prekoraenje postoji ako je cncn-1. Performanse sabiraa sa rednim prenosom Sabiranje i oduzimanje brojeva su bazine operacije koje se esto obavljaju u raunarskim sistemima. Brzina izvrenja ovih operacija ima veliki uticaj na ukupne performanse raunara. Iz tog razloga, razmotrimo brzinu rada kola za sabiranje i oduzimanje. Brzina rada ovog kola odreena je kanjenjem od trenutka kada se na ulaze kola postave operandi X i Y do trenutka kada se na izlazu kola generiu korektne vrednosti svih bitova sume S i izlaznog prenosa cn. Najvei deo ovog kanjenja potie od n-bitnog sabiraa. Pretpostavimo da je sabira realizovan korienjem strukture sa rednim prenosom (Sl. 4-40), kod koje su potpuni sabirai realizovani kao na Sl. 4-38. Kao to se lako moe zakljuiti sa Sl. 4-38, kod ove realizacije potpunog sabiraa, kanjenje izlaznog prenosa, t, jednako je kanjenju kroz dva gejta, tj. t=2tg, gde je tg kanjenje kroz jedan gejt. Ukupno kanjenje sabiraa sa rednim prenosom iznosi nt, to je ekvivalentno kanjenju kroz 2n gejta. Pored kanjenja koje je posledica prostiranja signala prenosa kroz sabira, na ukupno kanjenje kola za sabiranje i oduzimanje dodatno utiu i ulazna XOR kola. Ako pretpostavimo da je kanjenje kroz XOR kolo jednako tg, dolazimo do zakljuka da kolo za sabiranje i oduzimanje unosi kanjenje ekvivalentno kanjenju kroz 2n+1 gejt. Za vee n, npr. n=32 ili n=64, iznos kanjenja moe biti toliko veliki da znaajno degradira performanse celog sistema. Zato je bitno ispitati mogunost alternativne realizacije binarnog sabiraa, koja e se odlikovati veom brzinom rada. Brzina rada bilo kog digitalnog kola ograniena je najveim kanjenje du neke od putanja kroz kolo. U sluaju kola sa Sl. 4-48, najdue kanjenje se javlja du putanje koja kree od ulaza yi, prolazi kroz XOR gejt, a zatim kroz kola za generisanje prenosa svih potpunih sabiraa. Najdue kanjenje se zove kanjenje kritinog puta, a putanja koja uslovljava ovo kanjenje kritina putanja.
175
Dobijeni izraz se moe realizovati u vidu tronivovske AND-OR mree. U prvom nivou raunaju se funkcije generisanog i propagiranog prenosa, gi i pi. U drugom nivou, izraunavaju se produktni lanovi, koji se, potom, sumiraju u treem nivou. S obzirom na mali broj nivoa, ci+1 se izraunava veoma brzo. ta vie, kanjenje u izraunavanju izlaznih prenosa ci+1 je fiksno i ne zavisi od i, to znai da ni ukupno kanjenje sabiraa ne zavisi od obima operanada, tj. n. Binarni sabira zasnovan na izrazu (4.2) zove se sabira sa ubrzanim prenosom ili CLA sabira, prema engleskom nazivu Carry-Lookahead Adder. Da bi smo bolje razumeli fiziko znaenje izraza (4.2) uporediemo konstrukcije sabiraa sa ubrzanim i sabiraa sa rednim prenosom. U tom cilju, analizaemo detaljnu strukturu dva stepena najmanje teine oba sabiraa.
Sl. 4-51 prikazuje prva dva stepena sabiraa sa rednim prenosom kod koga su funkcije izlaznog prenosa
realizovane shodno izrazu (4.1). Mala brzina rada sabiraa sa rednim prenosom posledica je dugake putanje du koje se prostire signal prenosa. Kao to je posebno naznaeno na Sl. 4-51, kritini put polazi od ulaza x0 i y0 i protee se do izlaza c2, prolazei kroz 5 gejta: 3 gejta u stepenu 0 i 2 u stepenu 1. Za sabira sa n stepena, kritini put se nastavlja dalje sve do izlaza cn, prolazei kroz svaki sledei stepen na isti nain kao kroz stepen 1. Dakle, kanjenje kritinog puta sabiraa sa rednim prenosom iznosi 2n+1.
176
Na Sl. 4-52 je prikazana detaljna struktura prva dva stepena sabiraa sa ubrzanim prenosom. Sada su funkcije izlaznog prenosa realizovane shodno izrazu (4.2), tj.: c1 = g0 + p0c0 c2 = g1 + p1g0 + p1p0c0 Kao to se moe uoiti sa Sl. 4-52, u svakom stepenu sabiraa sa rednim prenosom generiu se funkcije generisanog i propagiranog prenosa. Lokalno, ove funkcije se koriste, zajedno sa funkcijama g i p svih prethodnih stepena, za generisanje izlaznog prenosa tog stepene, ali i prosleuju dalje ka svim narednim stepenima gde se koriste za odreivanje njihovih izlaznih prenosa. Kritini put za odreivanje izlaznog prenosa c2 naznaen je na Sl. 4-52. U ovom kolu, c2 se odreuje jednako brzo kao i c1, tj. nakon vremena koje je jednako kanjenju kroz tri gejta, tj. 3tg. ak iako ovu strukturu proirimo na n bita, konani izlazni prenos cn generisae se sa kanjenjem od 3tg. Naravno, to je i vee, tj. kako se kreemo ka pozicijama vee teine, to izrazi za funkcije ci+1 postaju sve sloeniji, to zahteva sve vei broj gejetova za njihovu realizaciju. Meutim, bez obzira na sloenost, broj nivoa logike za izraunavanje ci+1 ostaje isti, tj. tri. Ukupno kanjenje n-to bitnog sabiraa sa ubrzanim prenosom isnosi 4tg. Vrednosti svih funkcija gi i pi odreuju se nakon vremena tg. Dodatno kanjenje od 2tg potrebno je za odreivanje svih signala prenosa. Konano, treba saekati jo dodatno vreme tg da bi se na izlazima svih XOR kola generisali bitovi sume.
177
Izraz (4.2) se moe realizovati pomou brze, tri-nivolske AND-OR mree. Meutim, za veliko i broj ulaza u pojedine gejtove, koji su potrebni za realizaciju ove funkcije, postaje isuvie veliki. Kao to je poznato iz poglavlja X, kod veine implementacionih tehnologija broj ulaza u gejtove, tj. fan-in faktor, ogranien je na relativno mali broj. Zato je neophodno prilikom projektovanja sabiraa sa ubrzanim prenosom uzeti u obzir i ovu injenicu. Da bi smo blie ukazali na ovaj problem, razmotrimo izraze za prvih osam izlaznih prenosa: c1 = g0 + p0c0 c2 = g1 + p1g0 + p1p0c0 ... c8 = g7 + p7g6 + p7p6g5 + p7p6p5g4 + p7p6p5p4g3 + p7p6p5p4p3g2 + p7p6p5p4p3p2g1 + p7p6p5p4p3p2p1g0 + p7p6p5p4p3p2p1p0c0 Pretpostavimo da je fan-in raspoloivih gejtova ogranien na etiri ulaza. Oigledno, pomou takvih gejtova nije mogue realizovati sve prethodne izraze u obliku tri-nivolske AND-OR mree. Nejvei problem je c8, gde se ak zahteva jedno AND kolo sa 9 ulaza. Takoi, i za sumiranje produktnih lanova potrebno je OR kolo sa 9 ulaza. Potreba za logikim kolima sa velikim brojem ulaza potie od produktnih i zbirnih lanova sa velikim brojem literala. Meutim, pravilnom faktorizacijom, mogue je smanjiti maksimalnu veliinu lanova u logikom izrazu. Jedno mogue reenje je sledee: c8 = (g7 + p7g6 + p7p6g5 + p7p6p5g4)+ [(p7p6p5p4)(g3 + p3g2 + p3p2g1 +p3p2p1g0)] + (p7p6p5p4)(p3p2p1p0)c0 Za realizaciju ovog izraza potrebna su 11 AND i tri OR gejta. Meutim, sada propagaciono kanjenje iznosi ne vie 3tg ve 5tg: jedno tg za odreivanje gi i pi; 2tg za sumiranje produktnih lanova u zagradama; jedno tg za produktni lan u velikim zagradama i jo jedno tg za konano sumiranje. Dakle, ogranienje u pogledu maksimalnog broja ulaza u gejtove manifestuje se u poveanju broja nivoa AND-OR mree, to neminovno poveava propagaciono kanjenje. Ovaj zakljuak nije ogranien samo na konkretno kolo, ve vei generalno za bilo koju logiku mreu. Hijerarhijski sabira sa ubrzanim prenosom Projektovanje digitalnih sistema po pravilu zahteva nalaenje optimalnog kompromisa izmeu brzine rada sistema i njegove cene (sloenosti). Tenja da se to vie povea brzina rada, obino ima za posledicu poveanje cene sistema. Isto tako, sloenost sistema obino nije mogue smanjiti, a da to nema za posledicu smanjenje brzine rada. U kontekstu binarnog sabiraa, struktura sa rednim prenosom predstavlja najjednostavnije, ali u isto vreme i najsporije reenje. Sa druge strane, sabira sa ubrzanim prenosom predstavlja najbre reenje, ali zato za neke primene, njegova sloenost moe biti isuvie velika. Meutim, mogu postojati primene kada ni jedna od ove dve varijante sabiraa ne zadovoljava postavljene zahteve sabira sa rednim prenosom moe biti previe spor, a sabira sa ubrzanim prenosom previe sloen. Zato je bitno raspolagati nekom fleksibilnom sabirakom strukturom koja e omoguiti lako nalaenje kompromisa izmeu sloenosti i brzine rada. Jedna takva struktura je hijerarhijski sabira sa ubrzanim prenosom. Pretpostavimo da elimo da projektujemo 32-sabira. Sabira moemo podeliti na etiri 8-bitna bloka, tako da bitovi b0-7 pripadaju bloku 0, bitovi b8-15 bloku 1, bitovi b16-23 bloku 2 i bitovi b24-32 bloku 3. Svaki blok moemo realizovati kao 8-bitni sabira sa ubrzanim prenosom. Signali izlaznog prenosa iz ovih blokova su c8, c16, c24 i c32. Postoje dva naina kako 8-bitne blokove moemo povezati u jedinstveni 32-bitni sabira. Jedno reenje je da blokove poveemo na isti nain kao to bi smo povezali etiri stepena sabiraa sa rednim prenosom (Sl. 4-53). Znai, kod ovog reenja unutar blokova koristimo tehniku ubrzanog prenosa, dok se izmeu blokva prenos prenosi redno.
Bre kolo se moe realizovati ako se i za generisanje prenosa izmeu blokova, umesto rednog prenosa, koristi tehnika ubrzanog prenosa. Na Sl. 4-66 je prikazana struktura hijerarhijskog sabiraa sa ubrzanim prenosom kod koga je iskoriena ova tehnika. Svaki blok na gornjem delu Sl. 4-66 predstavlja jedan 8-bitni sabira sa ubrzanim prenosom. Unutar bloka, u svakom njegovom unutranjem stepenu generiu se signali generisanog i
178
propagiranog prenosa, gi i pi. Meutim, umesto da svaki blok generie signal izlaznog prenosa iz svoje pozicije navee teine, kao u reenju sa Sl. 4-53, sada svaki blok generie signale generisanog i propagiranog prenosa za celokupan blok. Neka su ovi signali oznaeni sa Gj i Pj. Signali Gj i Pj se koriste kao ulazi u kola za ubrzanje prenosa drugog nivoa, prikazana u doljem delu Sl. 4-66, koja odreuju prenose izmeu blokova. Izraze za funkcije Gj i Pj moemo odrediti na osnovu poznatog izraza za c8: c8 = g7 + p7g6 + p7p6g5 + p7p6p5g4 + p7p6p5p4g3 + p7p6p5p4p3g2 + p7p6p5p4p3p2g1 + p7p6p5p4p3p2p1g0 + p7p6p5p4p3p2p1p0c0 Poslednji lan u ovom izrazu kazuje da ako su sve interne funkcije propagiranog prenosa, pi, i=1,..,7, jednake 1, tada se signal ulaznog prenosa, c0, prenosi kroz celokupan blok. Dakle, P0 = p7p6p5p4p3p2p1p0 Preostali lanovi u izrazu za c8 ukazuju na sve ostale sluajeve kada blok generie izlazni prenos. Dakle, G0 = g7 + p7g6 + p7p6g5 + ... + p7p6p5p4p3p2g1 + p7p6p5p4p3p2p1g0 Konano, izraz za c8 hijerarhijskog sabiraa oblika je: c8 = G0 + P0c0 Za blok 1, izrazi za G1 i P1 imaju istu formu, osim to indeks i treba zameniti indeksom i+8. Izrazi za G2, P2, G3 i P3, odreuju se na isti nain. Ako znamo funkcije generisanog i propagiranog prenosa na nivou blokova, tada moemo odrediti i izraze za ulazne prenose u svaki pojedinani blok: c16 = G1 + P1c8 = G1 + P1G0 +P1P0 c0 Slino, izrazi za c24 i c32 su oblika: c24 = G2 + P2G1 +P2P1G0 + P2P1P0c0 c32 = G3 + P3G2 +P3P2G1 + P3P2P1G0 + P3P2P1P0c0 Izraunavanje signala prenosa c8, c16, c24 i c32 na osnovu poznatih vrednosti Gj i Pj unosi dva dodatna nivoa logike. Znai, pod pretpostavkom da je fan-in ogranien na 4 ulaza, vreme potrebno da se obavi sabiranje dva 32-bitna broja iznosi: 5tg za odreivanje Gj i Pj (na osnovu prethodno sprovedene analize za c8), plus 3tg za ubrzanje prenosa na drugom nivou (zato to dva gejta u izrazu za c32 zahtevaju 5 ulaza i zbog toga moraju biti faktorizovani), plus jedno tg (XOR) za odreivanje bitova sume, to u zbiru daje 9tg. Tanije, konana suma se generie posle 8tg zato to c32 ne utie na bitove sume. Meutim, c32 se koristi za detekciju aritmetikog prekoraenja (Prekoraenje = c32 c31). Dakle, trajanje operacije sabiranja, ukljuujui detekciju prekoraenja, ekvivalentno je kanjenju kroz 9 gejtova.
Ranije smo utvrdili da sabiranje dva n-to bitna broja pomou sabiraa sa rednim prenosom traje (2n+1)tg, to za n=32 iznosi 65tg. Oigledno, isti zadatak sabira sa ubrzanim prenosom obavi za oko 7 puta bre. Ovo znaajno poboljanje performansi ostvareno je na raun znaajno vee sloenosti sabiraa sa ubrzanim prenosom.
179
Sabirai sa izborom prenosa Na Sl. 4-55(a) je prikazan n-bitni sabira formiran serijskim povezivanjem dva manja sabiraa. Sabira SL obavlja sabiranje na niim pozicijama (k-1, ..., 0), a SH na viim pozicijama (n-1, ..., k). Ukupno kanjenje nbitnog sabiraa iznosi tp=tL + tH, gde je tL kanjenje kroz sabira SL, a tH kanjenje kroz sabira SH. Iako se sabirci istovremeno dovode na oba manja sabiraa, sabira SH nije u mogunosti da odredi korektan zbir sve dok od sabiraa SL ne dobije informaciju od vrednosti prenosa ck. Meutim, uoimo da iako nepoznate vrednosti, ck moe biti samo 0 ili 1. Odnosno, zbir koji daje SH moe biti Xn-1, ..., k + Yn-1, ..., k (za ck=0) ili Xn-1, ..., k + Yn-1, ..., k + 1 (za ck=1). Ovo zapaanje nas dovodi do osnovne ideje sabiraa sa izabranim prenosom (ili CSA Carry Select Adder). (Sl. 4-55(b)). Umesto jednog koriste se dva sabiraa za vie pozicije, SH0 i SH1, koji rade paralelno nad istim operandima, s tim da SH0 kao ulazni prenos ima konstantu 0, a SH1 konstantu 1. Na taj nain, SH0 generie Xn-1, ..., k + Yn-1, ..., k, a SH1 Xn-1, ..., k + Yn-1, ..., k + 1. Onog momenta kada tana vrednost ulaznog prenosa ck postane poznata, kroz multiplekser se na izlaz proputa jedan od dva alternativna rezultata.
Xn-1...k Yn-1...k Xn-1...k Yn-1...k Xk-1...0 Yk-1...0
Xn-1...k
Yn-1...k
Xk-1...0
Yk-1...0
SH1
SH0
0 ck
SL
SH
ck
1 SL MUX
0 S
Sn-1...k
Sk-1...0
Sn-1...k
Sk-1...0
(a)
(b)
Sl. 4-55 (a) redna sprega sabiraa (b) sabira sa izborom prenosa.
Zanemarujui kanjenje kroz multiplekser, kanjenje n-bitnog sabiraa je smanjeno na tp=max{tL,tH}. Vea brzina rada postignuta je zahvaljujui obimnijem hardveru.
180
segmenata, koji konkurentno obavljaju istu funkciju nad parovima odgovarajuih bitova dva n-bitna operanda. Na Sl. 4-56(d) prikazan je primer 8-bitne logike jedinice.
Sl. 4-56 Logika jedinica: (a) funkcije od dve promenljive; (b) realizacije logike jedinice; (c) grafiki simbol; (d) 8bitna logika jedinica.
181
a3
b3
a2
b2
a1
b1
a0
b0
LE
AE
LE
AE
LE
AE
LE
AE
x3 c4
y3 c3 FA
x2
y2 c2 FA
x1
y1 c1 FA
x0
y0 c0
FA
f3
f2
f1
f0
Sl. 4-57 4-bitni sabira u spoju sa aritmetikim (AE) i logikim (LE) ekspanderima.
Najpre, neophodan je ulaz za izbor reima rada, M, koji e birati aritmetike ili logike operacije, tako da pri M=1, ALU obavlja aritmetike, a pri M=0 logike operacije. Takoe, potrebne su dve promenljive za izbor operacije, S1 i S0, koje e, u zavisnosti od vrednosti ulaza M, birati jednu od etiri aritmetikih ili etiri logikih operacija, na nain kako je to definisano funcijskom tabelom sa Sl. 4-58(a), za aritmetike, i tabelom sa Sl. 4-59(a), za logike operacije.
M 1 1 1 1 1 1 1 1 0 S1 0 0 0 0 1 1 1 1 X S0 0 0 1 1 0 0 1 1 X (b) bi 0 1 0 1 0 1 0 1 X yi 1 1 0 1 1 0 0 0 0
M 1 1 1 1
S1 0 0 1 1
S0 0 1 0 1
X A A A A
c0 0 0 1 1
(c)
(d)
Sl. 4-58 Aritmetiki ekspander: (a) funkcionalna tabela; (b) tabela istinitosti; (c) Karnoova mapa; (d) struktura.
U funkcionalnnoj tabeli sa Sl. 4-58(a), za svaku aritmetiku operaciju, navedene su vrednost izlaza ALU jedinice, F, kao i vrednosti ulaza sabiraa, X i Y, i ulaznog prenosa c0 koje su neophodne da bi se dobila odgovarajua vrednost F. Shodno ovoj tabeli, na ulaz X sabiraa uvek se dovodi operand A, dok su na ulazu Y u zavisnosti od izabrane operacije prisutne: sve jedinice, operand B, komplement operanda B, ili sve nule. Vrednosti ulaza Y se generiu uz pomo AE ekspandera, ija je tabela istinitosti prikazan na Sl. 4-58(b). Ova tabela je dobijena na osnovu funkcionalne tabele sa Sl. 4-58(a) tako to je kolona Y zamenjena kolonama bi i yi. Na Sl. 4-58(c) prikazana je Karnoova mapa AE ekspandera, na osnovu koje sledi izlaz: yi=MS1bi+MS0bi'. Konano, struktura AE ekspandera prikazana je na Sl. 4-58(a). Projektovanje logikog ekspandera, takoe, zapoinje funkcionalnom tabelom koja definie logike operacije, a koja je prikazana na Sl. 4-59(a). Kao to se moe zakljuiti analizom ove tabele, za bilo koju logiku operaciju, ulazi Y i c0 sabiraa su uvek postavljeni na vrednost 0, dok se na ulaz X postavlja rezultat logike jednaine koja
182
odgovara izabranoj logikoj operaciji. Na osnovu funkcionalne tabele sa Sl. 4-59(a), u mogunosti smo da formiramo tabelu istinitosti logikog ekspandera, koja je prikazana na Sl. 4-59(b). Na osnovu odgovarajue Karnoove mape Sl. 4-59(c), sledi logiki izraz za jednu bitsku poziciju logikog ekspandera: xi=MS1S0ai` +MS1S0bi+S0aibi+S1ai+Mai Kombinaciona mrea logikog ekspandera koja sledi na osnovu dobijenog izraza prikazana je na Sl. 4-59(d).
M 0 0 0 0 S1 0 0 1 1 S0 0 1 0 1 Ime funkcije Komplement AND Identitet OR F A' A AND B A A OR B (a) X A' A AND B A A OR B Y 0 0 0 0 c0 0 0 0 0 M 0 0 0 0 1 S1 0 0 1 1 X S0 0 1 0 1 X (b) xi a i' a ibi ai a i+bi ai
(c)
(d)
Sl. 4-59 Logiki ekspander: (a) funkcionalna tabela; (b) tabela istinitosti; (c) Karnoova mapa; (d) struktura.
Nakon obavljenog projektovanja aritmetikog i logikog ekspandera, ALU jedinica formira se povezivanjem AE i LE ekspandera sa binarnim sabiraem, na nain kao to je prikazano na Sl. 4-60(a). Uoimo da se kod ALU jedinice, logike operacije obavljaju u logikim ekspanderima, a da potpuni sabirai (FA) proputaju na izlaz F rezultat LE ekspandera bez ikakve promene. Drugim reima, prilikom obavljanja logikih operacija potpuni sabirai se koriste kao veze sa fiksnim propagacionim kanjenjem. Uoimo, takoe, da prlikom izvrenja aritmetikih operacija nad neozneenim brojnim vrednostima, signal izlaznog prenosa iz pozicije najvee teine ukazuje na prekoraenje. Za sluaj aritmetikih operacija nad oznaenim brojevima (predstavljenim u obliku dvojinog komplementa), uslov prekoraenja je drugaiji i formira se kao XOR operacija izlaznih prenosa iz dve bitske pozicije najvee teine. Ako je neophodno, 4-bitna ALU jedinica sa slikaa se moe proiriti na n-bitnu ALU jedinicu, korienjem n-bitnog sabiraa u spoju sa n aritmetikih i n logikih ekspandera. Grafiki simbol ovakve ALU jedinice prikazan je na Sl. 4-60(b). Veina ALU jedinica, koje se koriste u praksi, konstruiu se na opisani nain, osim to se razlikuju po tipu i broju aritmetikih i logikih operacija koje podravaju.
183
(a)
(b) Sl. 4-60 ALU modul: (a) 4-bitna ALU; (b) grafiki simbol.
i=k
b 2
i
n 1
Prevoenje razlomljenog binarnog broja u decimalni ekvivalent je trivijalno i obavlja se primenom prethodne jednaine, pri emu se sve operacije obavljaju u decimalnom brojnom sistemu. Na primer, decimalni ekvivalent broja (1101.101)2 iznosi: (1101.101)2 = (1 23 + 1 22 + 0 21 + 1 20 + 1 2-1 + 0 2-2 + 1 2-3)10 = (8 + 4 + 1 + 1/2 + 1/8) 10 = (13 + 0.5 + 0.125) 10 = (13.562)10
184
Prevoenje decimilanog broja sa takom u binarni broj obuhvata nezavnisno prevoenje celog i razlomljenog dela. Celi deo se prevodi na poznati nain, tj. uzastopnim deljenjem sa 2 i izdvajanjem ostatka. Slino, razlomljeni deo se prevodi u binarni ekvivalent uzastopnim mnoenjem sa 2 i izdvajanjem celobrojnog dela iz dobijenog proizvoda. Neka razlomljeni decimalni broj D=0.d-1d-2 ... d-m, vrednosti V, treba konvertovati u binarni broj B=0.b-1b-2 ... b-k. Znai, treba odrediti bitove b-1, b-2, ..., b-k, tako da vai: V = b-1 2-1 + b-2 2-2 + ... + b-k 2-k Ako V pomnoimo sa 2, dobiemo: 2 V= b-1 20 + b-2 2-1 ... + b-k 2-(k-1) Celobrojni deo ovog mnoenja je b-1, a razlomljeni b-2 21 ... + b-k 2-(k-1), tj. 0.b-2b-3...b-k. Znai, ako mnoenjem polaznog decimalnog broja dobijemo kao celobrojni deo 0, vai b-1=0, a ako dobijemo 1, vai b-1=1. Mnoenjem dobijenog razlomljenog broja sa 2, kao celobrojni deo dobiemo b-2, a novi razlomljeni broj bie je: 0.b-3b-4...b-k. Ako nastavimo da mnoimo novi razlomljeni broj sa 2 i odreujemo po jedan bit u svakom koraku, dobiemo sve bitove binarnog broja. Ovaj postupak se nastavlja sve dok razlomljeni broj ne postane jednak 0. Pr. 4-8 Odrediti binarni ekvivalent decimalnog broja 14.703125. Celobrojni deo zadatog decimalnog broja je (14) 10, a razlomljeni (0.703125) 10. Na poznati nain nalazimo binarni ekvivalent celog dela: (14)10 = (1110)2 Da bi smo nali binarni broj koji odgovara razlomljenom delu, primenjujemo prethodno opisanu proceduru konverzije: 0.703125 2 = 1.40625 b-1=1 0.40625 2 = 0.8125 b-2=0 0.8125 2 = 1.625 b-3=1 0.625 2 = 1.25 b-4=1 0.25 2 = 0.5 b-5=0 0.5 2 = 1.0 b-6=1 Dakle, (14.703125) 10 = (1110.101101) 2 Kao to znamo iz elementrane matematike, racionalan broj je onaj koji iza take ima konaan broj cifara. Broj sa beskonanim brojem cifara iza take je iracionalan. Prevoenjem racionalnog binarnog broja u decimalni brojni sistem uvek se dobija racionalni decimalni broj. Meutim, prilikom obrunute konverzije, neki brojevi koji su u decimalnom sistemu racionalni u binarnom sistemu postaju iracionalni. Pr. 4-9 Odrediti binarni ekvivalent decimalnog broja 0.55. 0.55 2 = 1.1 b-1=1 0.1 2 = 0.2 b-2=0 0.2 2 = 0.4 b-3=0 0.4 2 = 0.8 b-4=0 0.8 2 = 1.6 b-5=1 0.6 2 = 1.2 b-6=1 0.2 2 = 0.4 b-7=0 0.4 2 = 0.8 b-8=0 ... Proces konverzije moemo nastaviti u nedgled, ali uslov kraja (razlomljeni deo jednak nuli), nikada nee biti ispunjen. Paljivim analizom procesa konverzije moemo uoiti da e se u nastavku konverzije neprekidno ponavljati sekvenca razlomnjenih brojeva 0.2, 0.4, 0.8, 0.6. Dakle, (0.55) 10 = (0.10<0011>)2, gde uglaste zagrade obuhvataju binarnu sekvencu koja se neprekidno ponavlja, do u beskonanost. Poto digitalni sistemi mogu baratati samo brojevima ograniene duine, konverzija mora biti prekinuta kada se prekorai raspoloivi broj bitova, to naravno unosi greku. Na primer, ako je u primeru Pr. 4-9 broj bitova za predstavljanje razlomljenog dela ogranien na osam, decimalni broj 0.55 u digitalnom sistemu koji radi sa brojevima u fiksnom zarezu, e biti predstavljen sa: (0.10001100) 2, to ustvari odgovara decimalnom broju (0.546875)10. Digitalna kola koja barataju brojevima u fiksnom zarezu su u sutini ista kao i ona koja se koriste za celobrojne binarne brojeve, pa ih iz tog razloga neem posebno razmatrati.
185
Brojevi u pokretnom zarezu Opseg brojeva u fiksnom zarezu ogranien je brojem znaajnih cifara koje se koriste za predstavljanje broja. Na primer, ako za predstavljanje celih decimalnih brojeva koristimo 8 cifara i znak, opseg vrednosti koje se mogu predstaviti je 0 do 999999999. Ako osam cifara koristimo za predstavljanje razlomljenog dela, tada je opseg, obuhvaen ovakvom reprezentacijom, od 0.0000001 do 0.99999999. Me utim, kod mnogih tehnikih i naunih primena, esto je neophodno baratati brojevima koji su ili veoma veliki ili veoma mali. Umesto da koristimo reprezentaciju u fiksnom zarezu sa velikim brojem znaajnih cifara, bolje reenje je koristiti reprezentaciju u pokretnom zarezu. Broj u pokretnom zarezu je predstavljen manitsom (M), koja sadri znaajne cifre, i eksponentom (M) osnove R. Format ovog zapisa je sledei: M RE (5.6)
Brojevi se obino normalizuju, tako da je taka u mantisi uvek postavljena desno od prve nenulte cifre, kao na primer, 5.341 1042 ili 3.982 10-31. Dakle, broj u formatu pokretnog zareza se predstavlja parom (matnisa, eksponent), a pri tome se vrednost broja izraunava shodno izrazu (5.6). Binarna reprezentacija brojeva u formatu pokretnog zareza standardizovana je od strane organizacije IEEE. Ovaj standard definie dva formata: obina (ili jednostruka) preciznost i dvostruka preciznost. Na Sl. 4-61 su prikazani oblici oba formata.
(a)
(b)
Sl. 4-61 IEEE formati brojeva u pokretnom zarezu: (a) jednostruka preciznost; (b) dvostruka preciznost.
Jednostruka preciznost Format jednostruke preciznosti prikazan je na Sl. 4-61(a). Krajnji levi bit je bit znaka; 0 ukazuje na pozitivan, a 1 na negativan broj. 8-bitno polje E sadri vrednost eksponenta, a 23-bitno polje M vrednost mantise. Osnova je R=2. Uoimo da se osnova ne zapisuje, ve se podrazumeva. Eksponent moe biti kako pozitivan tako i negativan. Umesto da se eksponent kodira kao 8-bitni oznaeni broj, to bi omoguilo predstavljanje vrednosti eksponenta u opsegu -127 do +127, za kodiranje eksponenta, kod IEEE standarda se koristi format viak-127. U ovom formatu, sadraj polja E predstavlja zbir vrednosti stvarnog eksponenta i broja 127, tj. vai: eksponent = E 127. Vrednost 127 se naziva uveanjem, a E polarizovanim eksponentom. Kodiranje eksponenta u formatu viak127 omoguava da se eksponenti mogu lako porediti. S obzirom da je E uvek pozitivan broj, poreenje dva eksponenta se svodi na poreenje dva 8-bitni neoznaena cela brojeva. Dakle, opseg vrednosti polarizovanog eksponenta je 0E255. Pri tome, krajne vrednosti 0 i 255 imaju posebno znaenje. E=0 ukazuju na broj ija je vrednost 0 (ista nula); dok E=255 ukazuje na beskonano veliku vrednost. Izuzimajui ova dva specijalna suaja, normalni opseg eksponenta brojeva u jednostrukoj preciznosti je -126 do +127, to odgovara opsegu vrednosti u polju E od 1 do 254. Mantisa se predstavlja sa 23 bita. IEEE standard podrazumera normalizovanu mantisu, to znai da je bit najvee teine mantise uvek jednak 1. Zbog toga, ovaj bit moe biti izostavljen iz zapisa mantise. Na taj nain se efektivni broj bitava mantise poveava za jedan. Naime, ako je M binarna sekvenca u polju mantise, tada je stvarna vrednost mantise |M| = 1.M, to odgovara 24-bitnoj mantisi. Shodno tome, u formatu sa Sl. 4-61(a) mogue je predstaviti brojeve: Vrednost = 1.M 2E-127 Duina polja mantise od 23 bita omoguava predstavljanje brojeva sa preciznou koja odgovara preciznosti od oko 7 decimalnih cifara. Opseg eksponenta, 2 -126 do 2127, priblino odgovara opsegu 10 38. Dvostruka preciznost Format za predstavljanje brojeva u pokretnom zarezu dvostruke preciznosti prikazan je na Sl. 4-61(b). Kao to se moe videti, format dvostuke preciznosti koristi 64 bita, a u odnosu na jednostruku tanost proireni su i eksponent i mantisa. Time je pokriven daleko vei opseg i ostvarena vea preciznost brojeva. Polje za eksponent ima 11 bita i sadri vrednost eksponenta izraenu u formatu viak-1023, tako da vai: eksponent = E 1023
186
Opseg polarizovanog eksponent je 0E2047, pri emu se, slino kao i kod jednostruke tanosti, E=0 i E=2047 koriste za predstavljanje vrednosti nula i beskonano, respektivno. Time je opseg eksponenta ogranien na od 11023 = -1022 do 2046 1023 = 1023. Mantisa ima 52 bita. Poto se podrazumeva normalizovana mantisa, sadraj ovog polja ukazuje na mantisu oblika 1.M. Dakle, vrednost broja u pokretnom zarezu koje je predstavljen u formatu dvostruke tanosti iznosi: Vrednost = 1.M 2E-1023 Format dvostruke preciznosti omoguava predstavljanje brojeva koji imaju preciznost od oko 16 decimalnih cifara i opseg od oko 10 308. Sabiranje/oduzimanje brojeva u pokretnom zarezu Mogu se sabirati/oduzimati samo brojevi u pokretnom zarezu koji imaju isti eksponent. Ako se eksponenti razlikuju, njihova razlika se kompenzuje pomeranjem mantisa. Na primer, neka je potrebno sabrati brojeve 9.95 101 i 5 10-1. Najpre je potrebno izjednaiti eksponente. To se moe uraditi tako to e se manji od dva broja, 5 10-1, napisati u obliku 0.05 101, odnosno tako to e se mantisa ovog broja pomeriti za dve pozicije udesno, a eksponent sabrati sa 2. Nakon sabiranja mantisa dobijamo rezultat 10 101. Konano, rezultat se normalizuje na oblik 1 102. U optem sluaju vai sledee. Neka su X1=(M1, E1) i X2=(M2, E2) dva broja u pokertnom zarezu, gde su Mi=Si|Mi| vrednosti mantisa, a Xi=(-1)Si |Mi|REi-uveanje vrednosti brojeva Xi, i=1,2 i neka je: X=X1X2 = (M, E). Tada: E = max{E1, E2}, M M 2 R 1 2 , ako je E1 > E2 M = 1 E E M 1 R 2 1 M 2 , ako je E1 E2
E E
Operandi se svode na jednake eksponente tako to se manji od dva operanda pomera udesno. Broj pozicija za pomeranje jednak je razlici dva eksponenta. Vei eksponent je ujedno i eksponent rezultata. Sabiranje/oduzimanje mantisa (po pravilu za sabiranje/oduzimanje celih brojeva u formatu znak i apsolutna vrednost). Ako je neophodno, mantisa rezultata se normalizuje uz odgovarajuu korekciju eksponenta.
Pr. 4-10 Sabiranje/oduzimanje brojeva u pokretnom zarezu Neka je R=2 i X1=(M1, E1) = (1001, 10), X2=(M2, E2) = (1100, 00). Odrediti X = X1 - X2. X = (1001, 10) - (1100, 00) 1. X = (1001, 10) - (0011, 10) 2. X = (0110, 10) 3. X = (1100, 01) Opisani postupak sabiranja/oduzimanja brojeva u pokretnom zarezu moe se predstaviti dijagramom sa Sl. 4-62, koji ukazuje na hardversku strukturu odgovarajueg digitalnog kola.
187
Mnoenje brojeva u pokretnom zarezu Mnoenje brojeva predstavljenih u pokretnom zarezu se obavlja tako to se njihove mantise pomnoe, a eksponenti saberu. U optem sluaju vai sledee. Neka su X1=(M1, E1) i X2=(M2, E2) dva broja u pokertnom zarezu, gde su Mi=Si|Mi| vrednosti mantisa, a Xi=(-1)Si |Mi|REi-uveanje vrednosti brojeva Xi, i=1,2 i neka je: X=X1 X2 = (M, E). Tada: M = M1 M2 E =E1 + E2 - uvecanje Oduzimanje uveanja (127 kod IEEE formata) od zbira eksponenta je neophodno zato to su E1 i E2 polarizovani eksponenti, jednaki zbiru vrednosti pravog eksponenta (ei) i uveanja, pa njihov zbir daje E1 + E2 = e1 + e2 + 2 uvecanje. Dakle, osnovni koraci postupka za mnoenje u pokretnom zarezu su: 1. 2. 3. 4. Saberu se eksponenti i od dobijenog zbira oduzme uveanje. Pomnoe se mantise brojeva (po pravilu za mnoenje celih brojeva u formatu znak i apsolutna vrednost). Dobijeni rezultat se normalizuje slinim postupkom kao kod sabiranja. Broj (binarnih) cifara proizvodu je dvostruko vei od broja cifara vrednost koje su mnoene; cifre koje su viak se odbacuju u procesu zaokruivanja.
Pr. 4-11 Mnoenje brojeva u pokretnom zarezu Neka je R=2 i X1=(M1, E1) = (1010, 01), X2=(M2, E2) = (1010, 10). Odrediti X = X1 S obzirom da se eksponent predstavlja sa 2 bita, vrednost uve anja je 22-1-1 = 1. X = (1010 1010, (01 + 10 - 1)) = (01100110, 10) = (1100, 01) -- zaokruivanje + normalizacija Opisani postupak sabiranja/oduzimanja brojeva u pokretnom zarezu moe se predstaviti dijagramom sa Sl. 4-63, koji ukazuje na hardversku strukturu odgovarajueg digitalnog kola.
X2.
188
Deljenje brojeva u pokretnom zarezu Deljenje brojeva predstavljenih u pokretnom zarezu se obavlja tako to se njihove mantise podele, a eksponenti oduzmu. Neka su X1=(M1, E1) i X2=(M2, E2) dva broja u pokertnom zarezu, gde su Mi=Si|Mi| vrednosti mantisa, a Xi=(-1)Si |Mi|REi-uveanje vrednosti brojeva Xi, i=1,2 i neka je: X=X1 X2 = (M, E). Tada: M = M1 / M2 E =E1 - E2 + uvecanje Dodavanje uveanja na razliku eksponenata je neophodno jer su E1 i E2 polarizovani eksponenti, pa njihova razlika daje E1 - E2 = e1 + uveanje - (e2 + uveanje) = e1 - e2, gde su ei prave vrednosti eksponenata. Dakle, osnovni koraci postupka za deljenje u pokretnom zarezu su: 1. 2. 3. 4. Oduzmu se vrednosti eksponenata i na dobijenu razliku doda uveanje. Podele se mantise brojeva (deljenje se vri prema pravilima za deljenje celih brojeva u formatu znak i apsolutne vrednosti). Dobijeni rezultat se normalizuje slinim postupkom kao kod sabiranja. Dobijeni kolinik se zaokruuje prema pravilima za zaokruivanje.
Pr. 4-12 Deljenje u pokretnom zarezu Neka je R=2 i X1=(M1, E1) = (1010, 01), X2=(M2, E2) = (1010, 00). Odrediti X = X1 / X2. S obzirom da se eksponent predstavlja sa 2 bita, vrednost uve anja je 22-1-1 = 1. X = (1010 / 1010, (01 - 00 + 1)) = (1 0000, 10) = (1000, 11) -- zaokruivanje + normalizacija
Opisani postupak sabiranja/oduzimanja brojeva u pokretnom zarezu moe se predstaviti dijagramom sa Sl. 4-64, koji ukazuje na hardversku strukturu odgovarajueg digitalnog kola.
M1 E1 M2 E2
Oduzimanje eksponenta i deljenje mantisa prekoracenje potkoracenje Detekcija vodeih nula i pomera
Postnormalizacija
189
4.3
Sekvencijalne komponente
Kombinaciona kola, koja su razmatrana u prethodnoj sekciji, imaju osobinu da vrednost svakog njihovog izlaza zavisi iskljuivo od vrednosti signala prisutnih na njihovim ulazima. Osim kombinacionih, postoji jo jedna iroka klasa digitalnih kola, kod kojih vrednosti izlaza zavise ne samo od trenutnih vrednosti ulaza, ve i od ranijeg ponaanja kola. Ovakva kola sadre memorijske elemente koji zadravaju, pamte odnosno memoriu vrednosti logikih signala. Kae se da ukupni sadraj svih memorijskih elemenata u jednom kolu predstavlja stanje tog kola. Kada se promene vrednosti ulaza, kolo ili ostane u istom (tj. tekuem) stanju, ili promeni svoje stanje. Vremenom, kao posledica promena ulaza, kolo prolazi kroz sekvencu stanja. Kolo koja se ponaaju na ovaj nain zovu se sekvencijalna kola. Sekvencijalna kola mogu biti sinhrona ili asinhrona. Asinhrona sekvencijalna kola menjaju svoje stanje uvek kada se desi promena ulaznih vrednosti, dok sinhrona sekvencijalna kola menjaju svoje stanje i izlazne vrednosti samo u fiksnim vremenskim trenucima, koji su odreeni rastuom ili opadajuom ivicom taktnog signala. Leevi su primer asinhronih kola, a flip-flopovi, registarske komponente i konani automati sinhronih sekvencijalnih kola. U ovoj sekciji bie razmatrana sinhrona sekvencijalna kola. Najpre e biti opisani razliiti tipovi flip-flopova, a zatim i tipine registarske komponente koje se konstruiu pomou flip-flopova i kombinacionih struktura.
Tabela prelaza
S R Q(next)
Prenosna funkcija
Tabela pobude
Q Q(next) S 0 1 0 X J 0 1 X X R X 0 1 0 K X X 1 0
SR
R Q
0 0 1 1
0 1 0 1
Q Q(next)
JK
K Q
Q(next) = JQ + KQ
0 0 1 1
0 1 0 1
D 0 1
Q(next) 0 1
D
Q
Q(next) = D
T 0 1
Q(next) Q Q
T
Q
Q(next) = TQ + TQ
190
Svaki flip-flop ima jedan ili dva ulaza podataka. SR flip-flop ima dva ulaza, S (Set) i R (Reset) koji, kada su aktivni, setuju, odnosno resetuju flip-flop. Drugim reima, pri S=1 i R=0, izlaz flip-flopa Q se postavlja na 1, a pri S=0 i R=1 na 0. Slino SR flip-flopu, JK flip-flop, takoe, ima dva ulaza, J i K, koji, kada su aktivni, setuju ili resetuju flip-flop. Dodatno, kada su oba ulaza J i K aktivna u isto vreme, JK flip-flop menja (tj. komplementira) svoje stanje. D flip-flop ima jedan ulaz, D (Data), koji setuje flip-flop ako je 1, odnosno resetuje flip-flop ako je 0. T flip-flop ima jedan ulaz T, koji, kada je aktivan, menja (tj. komplementira) stanje flip-flopa. U drugoj koloni tabele sa Sl. 4-65 date su tabele prelaza, koje predstavljaju skraenu formu tabele istinitosti. U tabeli prelaza, za svaku kombinaciju ulaznih vrednosti i svako tekue stanje flip-flopa, tj. stanje pre rastue ivice taktnog signala, navedeno je sledee stanje flip-flopa, tj. stanje u koje flip-flop prelazi nakon rastue ivice taktnog signala. Tekue stanje flip-flopa oznaeno je sa Q, a sledee sa Q(next). Tabela prelaza se koristi prilikom analize sekvencijalnog kola, kada su vrednosni ulaza u flip-flop poznate, a mi elimo da odredimo stanje flip-flopa nakon rastue ivice taktnog signala. Na bazi tabele prelaza mogu se izvesti prenosne funkcije flip-flopova, koje su prikazane u treoj koloni tabele sa Sl. 4-65. U etvrtoj koloni tabele sa Sl. 4-65 prikazane su tabele pobude koje se koriste prilikom sinteze sekvencijalnih kola. Tabela pobude je inverzna tabeli prelaza i definie ulaze flip-flopa koji su potrebni da bi flip-flop iz datog tekueg stanja, nakon rastue ivice taktnog signala, preao u eljeno sledee stanje.
Tip flip-flopa Dijagram stanja
SR
JK
Pored grafikih simbola, tabela i funkcija, flip-flopovi se mogu jednoznano opisati i dijagramom prelaza ili grafom stanja, kod koga je svako stanje prikazano krugom, a prelaz izmeu stanja linijom (tj. granom) koja ima strelicu na strani odredinog stanja. Ovakav nain opisa fili-flopova prikazan je u tabeli sa Sl. 4-66. Uoimo da su svakoj grani u grafu stanja pridruene vrednosti ulaznih signala koji uslovljavaju prelaz iz jednog u drugo stanje. Takoe, treba uoiti da isto stanje moe biti i izvor i odredite prelaza. Poto se prelazi deavaju u trenutku delovanja ivice taktnog signala, svako stanje moe se tretirati kao vremenski interval izmeu dve rastue ivice taktnog signala. Iz tabele sa Sl. 4-66 vidimo da dijagrami stanja svih flip-flopova imaju isti broj stanja i isti broj prelaza. Flip-flop je u stanju set kada je Q=1, odnosno, u stanju reset kada je Q=0. Uz to, svaki flip-flop moe da pree iz jednog u drugo stanje ili da ostane u istom stanju. Jedina razlika izmeu etiri tipa flip-flopova je u vrednostima ulaznih signala koji iniciraju prelaze. Dijagrami stanja se veoma esto koriste za vizuelni prikaz rada flip-flopova, kao i drugih, mnogo sloenijih sekvencijalnih kola. Svaki flip-flop je obino dostupan u dve varijante: sa ili bez ulaza za direktno, ili asinhrono postavljanje, koji se koriste za setovanje (ulaz SET) i resetovanje (ulaz CLR) flip-flopa nezavisno od ostalih ulaza. Ovi ulazi se koriste za postavljanje flip-flopa u poznato poetno (ili inicijalno) stanje. Na primer, stanje u koje e se flip-flop spontano postaviti nakon to je ukljueno napajanje ne moe se predvideti. Zato je neophodno da se pre poetka normalnog, sinhronog rada, flip-flop, posredstvom asinhronih ulaza, postaviti u odgovarajue poetno stanje. Ulazi SET i CLR se zovu asinhroni zato to ne zavise od taktnog signala i zbog toga imaju prioritet nad svim
191
ostalim sinhronim ulazima. Drugim reima, dok je asinhroni ulaz aktivan, vrednosti ostalih ulaza flip-flopa se ignoriu. Dejstvo asinhronog ulaza poinje onog trenutka kada se na ulaz dovede aktivan naponski nivo (0 ili 1), i traje sve dok se ulaz ne deaktivira. Ako flip-flop poseduje oba asinhrona ulaza, SET i CLR, njihovo istovremeno dejstvo nije dozvoljeno. Na Sl. 4-67 su prikazani grafiki simboli flip-flopova sa ulazima za direktno postavljanje sa aktivnim niskom naponskim nivoom, to je naznaeno kruiima na odgovarajuim ulazima. Kod asinhronih ulaza sa aktivnim visokim naponskim nivoom, kruii su izostavljeni.
D3
Q3
D2
Q2
D1
Q1
D0
Q0
I3
I2
I1
I0 Clk
Registar Q3 Q2 Q1 Q0
Q3
Q2
Q1
Q0
(a)
(b)
Sl. 4-68 4-bitni registar: (a) grafiki simbol; (b) unutranja struktura.
Funkcionalnost osnovne varijante registra, prikazane na Sl. 4-68, moe se proiriti dodavanjem razliitih upravljakih signala. Na primer, ako registar treba biti resetovan ili setovan nezavisno od taktnog signala, bilo pri ukljuenju napajanja, bilo pri pojavi nekih specifinih dogaaja, mogu se dodati signali za asinhrono resetovanje i setovanje. Takvo jedno proirenje se postie zamenom jednostavnih flip-flopova sa Sl. 4-68(b), flip-flopovima sa ulazima za direktno postavljanje, kao to je prikazano na Sl. 4-69. Kao to se vidi na Sl. 4-69, kratkotrajnim aktiviranjem signala Clear sadraj registra se brie ili resetuje, tj. postavlja na sve nule. Slino, registar se setuje, tj. njegov sadraj postaviti na sve jedinice, kratkotrajnim aktiviranjem signala Set. (S obzirom da je aktivni nivo signala Clear i Set nizak, aktiviranje jednog od ova dva signala znai postavljanje 0 na odgovarajui ulaz). Ulazi Clear i Set su nezavisni od taktnog signala i imaju prioritet nad njim. To znai da ako je u trenutku pojave rastue ivice taktnog signala, Set ili Clear jednak 0, ulaz I se ignorie, a registar se setuje, odnosno resetuje.
192
(a) (b) Sl. 4-69 4-bitni registar sa asinhronim resetovanjem i setovanjem: (a) grafiki simbol; (b) unutranja struktura.
Kod obe varijante registra, prikazane na Sl. 4-68 i Sl. 4-69, novi podatak se automatski upisuje u registar sa svakom rastuom ivicom takta. Meutim, kod mnogih digitalnih sistema, podatak koji je upisan u registar ostaje u registru nekoliko taktnih ciklusa pre nego to se upie novi podatak. Iz tog razloga, mogunost kontrole upisa predstavlja korisnu funkciju registra. Kontrola upisa se postie korienjem upravljakog signala Load (ili Enable) koji kada je 1 dozvoljava upis novog podatka u registar. Ovakav tip registra se zove registar sa dozvolom. Na Sl. 4-70 su prikazani grafiki simbol, tabela operacija i unutranja struktura registar sa dozvolom. Registar sadri multipleksere 2-u-1 koji omoguavaju izbor izmeu ulaznog podatka ili podatka koje je ve u registru. Signal Load upravlja multiplekserima na takav nain da kada je Load=1, u registar se upisuje novi, tj. ulazni podatak. Sa druge strane, ako je Load=0, podatak koji je prethodno upisan u registar se vraa na ulaze flipflopova i sa sledeom rastuom ivicom takta ponovo upisuje u registar.
(a)
(b)
(c) Sl. 4-70 Registar sa dozvolom: (a) grafiki simbol; (b) tabela operacija; (c) unutranja struktura.
193
Iz tog razloga, ovakav registar se zove i pomeraki registar sa serijskim ulazom i paralelnim izlazom (SIPO Serial-In, Parallel-Out).
(a)
(b)
(c) Sl. 4-71 etvorobitni pomeraki registar sa serijskim ulazom i paralelnim izlazom: (a) grafiki simbol; (b) tabela operacija; (c) unutranja struktura.
Korienjem multpleksera 4-u-1, umesto multipleksera 2-u-1, mogue je kombinovati funkcije pomeranja i paralelnog upisa. Na primer, pomeraki registar sa Sl. 4-72 ima mogunost kako pomeranja memorisanog sadraja tako i upisa novog podatka. Takoe, registar sa Sl. 4-72 moe da obavlja pomeranje u oba smera. Pri pomeranju na levo 1-bitni podatak sa ulaza IR (serijski ulaz sa desne strane) se upisuje na krajnju desnu poziciju, dok se pri pomeranju na desno, na krajnju levu poziciju se upisuje 1-bitni podatak sa ulaza IL (serijski ulaz sa leve strane). Na Sl. 4-72 (a) i (b) su prikazani grafiki simbol i tabela operacija, dok se na Sl. 4-72 (c) moe videti unutranja struktura ovog multi-funkcijskog registra. Registar sa Sl. 4-72 ine etiri razreda, gde svaki razred odgovara jednoj bitskoj poziciji i sastoji se od jednog flip-flopa i multipleksera 4-u-1. Postoje tri tipa razreda, koji se neznatno razlikuju u strukturi: krajnji levi, krajnji desni i srednji. Srednji razredi se obino projektuju prvi, poto je njihova funkcija najoiglednija. Na primer, jednaine ulaza flip-flopova za svaki od tri tipa razreda, dobijene na osnovu tabele operacija sa Sl. 4-72(c) imaju sledei oblik: D0=S1S0Q0+S1S0I0+S1S0IR+S1S0Q1 D1=S1SiQ0+S1S0Ii+S1S0Qi-1+S1S0Qi+1, 1i2 D2=S1S0Q3+S1S0I3+S1S0Q2+S1S0IL Pomeraki registar sa paralelnim upisom moe se koristiti za konverziju informacija iz serijskog u paralelni oblik i obrnuto, sa opcijom da prilikom paralelno-serijske konverzije prvo generie bit najmanje ili bit najvee teine. Registri ovog tipa, esto se koriste za konverziju raunarskih podataka u serijski oblik pogodan za komunikaciju i rekonstrukciju serijski prenetih podataka u cilju obrade unutar raunara.
Sledee stanje Operacija S0 IL I3 I2 I1 I0 IR S1 Pomeraki registar Q 3 Q2 Q1 Q0 S1 S0 0 0 0 1 1 0 1 1 Bez promene Par. upis Pomeranje na levo Pomeranje na desno Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 I3 IL I2 I1 I0 Q2 Q1 Q0 IR Q 3 Q2 Q1
(a)
(b)
194
(c) Sl. 4-72 4-bitni pomeraki registar sa paralelnim upisom: (a) grafiki simbol; (b) tabela operacija; (c) unutranja struktura.
4.3.2.3 Broja
Broja je posebna vrsta registara koji sadri inkrementer, to omoguava brojanja navie ili nanie. Na primer, na Sl. 4-73 je prikazan broja navie koji ima dva upravljaka signala: signal dozvole (E), koji kada je 1 omoguava brojanje i signal Clear koji resetuje broja, tj. postavlja ga u stanje 0. Grafiki simbol 4-bitnog binarnog brojaa navie prikazan je na Sl. 4-73(a), a tabela operacija na Sl. 4-73(b). Shodno Sl. 4-73(d) inkrementer se sastoji od niza polu-sabiraa (half-adder HA) rasporeenih tako da su dva ulaza polu-sabiraa na bitskoj poziciji i povezani na izlaz i-tog flip-flopa Qi i izlazni prenos polu-sabiraa sa pozicije i-1, Ci. Uoimo da e nova vrednost flip-flopa Di biti 1 ako je bilo Qi bilo Ci, ali ne oba, jednako 1. Suprotno tome, izlaz Ci+1 bie jednak 1 samo ako su Qi i Ci oba jednaki 1. Tabela istinitosti polu-sabiraa data je na Sl. 4-73(c). Polazei od ove tabele dolazimo do sledeih jednaine za Di i Ci+1: Di = Qi Ci Ci+1= QiCi Sve dok je signal E jednak 1, broja e brojati navie po modulu 16, dodajui 1 na svoj tekui sadraj sa svakom rastuom ivicom taktnog signala.
(a)
(b)
(c)
(c) Sl. 4-73 4-bitni binarni broja: (a) grafiki simbol; (b) tabela operacija; (c) tabela istinitosti polu-sabiraa; (d) unutranja struktura.
195
Obostrani broja, tj. broja koji moe brojati i navie i nanie, konstruie se tako to se u brojau navie polusabirai zamene polu-sabiraima/oduzimaima (half-adder/substractor HAS). HAS moduli, pod kontrolom signala za izbor smera brojanja, obavljaju inkrementiranje ili dekrementiranje. Na primer, na Sl. 4-74 prikazan je obostrani broja koji u najveem delu nalikuje brojau navie sa Sl. 4-73 s tom razlikom to poseduje dodatni upravljaki ulaz, D. Kao to je ukazano tabelom operacija sa Sl. 4-74(b), svrha ovog dodatnog ulaza je postavljanje brojaa u reim brojanja navie, kada je njegova vrednost 0, odnosno u reim brojanja nanie, kada je njegova vrednost 1. Na osnovu tabela istinitosti polu-sabiraima/oduzimaima sa Sl. 4-74(c) moemo izvesti sledee jednaine za Di i Ci+1: Di = Qi Ci Ci+1= DQiCi+ DQiCi Kao to vidimo na Sl. 4-74(d), svaki polu-sabira/oduzima se sastoji od jednog XOR kola povezanog na ulaz flip-flopa, kao i dva AND i jednog OR kola koja se koriste za propagaciju izlaznog prenosa. Vano je uoiti da obostrani broja sa Sl. 4-74 uvek poinje brojanje od 0. Meutim, u mnogim primenama korisno je imati mogunost postavljanja brojaa na vrednost razliitu od nule, a zatim nastaviti sa brojanjem, navie ili nanie. Ovakav tip brojaa se zove broja sa paralelnim upisom, a konstruie se kombinovanjem inkrementera/dekrementera i registra sa dozvolom. Kao to je prikazano na Sl. 4-75, broja sa paralelnim upisom ima tri upravljaka signala: E, D i Load. Signal E omoguava brojanje u smeru koji je odreen signalom D, dok signal Load, uvek kada je 1, zabranjuje brojanje i upisuje u registar podatak sa ulaza I. Sa druge strana, ako je Load=0, broja se ponaa na identian nain kao obostrani broja sa Sl. 4-75. Tabela operacija i unutranja struktura brojaa sa paralelnim upisom prikazani su na Sl. 4-75(b) i (c).
E D Qi Ci Ci+1 Di 1 1 1 D E Obostrani broja 1 E 0 1 1 D X 0 1 Operacija Bez promene Brojanje navie Brojanje nanie 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0
Clear Q3 Q2 Q1 Q0
(a)
(b)
(c)
(c) Sl. 4-74 4-bitni obostrani broja: (a) grafiki simbol; (b) tabela operacija; (c) tabela istinitosti polusabiraa/oduzimaa; (d) unutranja struktura.
D E Load E Obostrani broja 0 0 Load Q3 Q2 Q1 Q0 0 1 0 1 1 X D X 0 1 X Operacija Bez promene Brojanje navie Brojanje nanie Paralelni upis
(a)
(b)
196
I3
I2
I1
I0
1 mux Load
1 mux
1 mux
1 mux
D3
Q3 Q3'
D2
Q2 Q 2'
D1
Q1 Q1'
D0
Q0 Q0'
Q3
Q0
(c) Sl. 4-75 4-bitni obostrani broja sa pralelenim upisom: (a) grafiki simbol; (b) tabela operacija; (c) unutranja struktura.
197
(a)
(b)
(c) Sl. 4-76 Registarski fajl sa jednim portom za upis i jednim portom za itanje: (a) elija registarskog fajla; (b) grafiki simbol; (c) unutranja struktura.
Glavno ogranienje registarskog fajla sastoj se u injenici da on omoguava ogranien pristup registrima iz fajla tj. uvek se moe upisivati samo u jedan registar (vrstu) i itati iz samo jednog registara (vrste). Ovakva situacija moe se donekle popraviti konstrukcijom registarskog fajla sa vie od jednog porta za itanje ili upis. Naalost, cena registarskog fajla raste srazmerno broju portova. Iz tog razloga, veina popularnih tipova registarskih fajlova ima jedan ili dva porta za upis i dva porta za itanje. Glavno opravdanje za dva porta za itanje jeste da su veina aritmetikih i logikih operacija binarne i da stoga, u isto vreme, zahtevaju dva operanda. Sa dva porta za itanje i jednim za upis, mogue je, u toku istog taktnog ciklusa, iz registaraskog fajla pribaviti dva operanda i smestiti rezultat nazad u registarski fajl. Sa druge strane, opravdanje za korienje dva porta za upis lei u brzini konzumiranja operanada: U svakom taktnom ciklusu koristimo dva operanda da bi smo dobili jedan rezultat. Shodno tome, ako nam je cilj da obavljamo jednu operaciju po taktnom ciklusu, mora postojati mogunost da se u svakom taktnog ciklusu, pored rezultata koji se vraa u registarski fajl u registarski fajl unese i jedan novi podatak.
(a)
(b)
198
WA1 WA0 WE
I3
I2
I1
I0
0 1
RFC
RFC
RFC
RFC
RFC
RFC
RFC
RFC
2 3
RFC
RFC
RFC
B3 A3
B2 A2
B1 A1
B0 A0
(c) Sl. 4-77 Registarski fajl sa jednim upisnim portom i dva porta itanje: (a) elija registarskog fajla; (b) grafiki simbol; (c) unutranja struktura.
Na Sl. 4-77 prikazan je primer registarskog fajla sa jednim portom za upis i dva porta za itanje. Kao to se vidi na Sl. 4-77(a), elija registarskog fajla je modifikovana u odnosu na Sl. 4-77(a) kako bi se obezbedila podrka za dva porta za itanje. Grafiki simbol registarskog fajla prikazan je na Sl. 4-77(b). Na Sl. 4-77(c) prikazana je unutranja struktura registarskog fajla kapaciteta 4x4. Uoimo da je dijagram sa Sl. 4-77(c) slian strukturi registarskog fajla sa Sl. 4-77(c), osim to nova verzija ima dodatni dekoder za itanje, koji, sa svoje strane, unosi po jednu dodatnu vezu ka svakoj vrsti i koloni. Uz pomo ovih veza omoguen je prenos sadraja do drugog porta za itanje. Registarski fajlovi spadaju u brze memorijske komponente, zahvaljujui injenici da su memorijske elije realizovane na bazi flip-flopova ili le kola. Meutim, s obzirom da svaki flip-flop sadri barem 6 tranzistora, registarski fajl je skupa memorija. Iz tog razloga, registarski fajlovi se tipino koriste kao privremena memorija malog kapaciteta kod aplikacija koje zahtevaju veliku brzinu obrade podataka.
4.3.2.5 FIFO
FIFO red je struktura koja se esto koristi kada treba uravnoteiti zahteve za nekom obradom. Zamislimo, na primer, ljude kako stoje ispred altera u banci ili kako ulaze u autobus, koji moraju ekati u redu dok ne stignu na red da budu opslueni. Slina situacija se javlja kod razliitih procesora, ASIC kola ili bilo kog ureaja koji alje podatke nekom drugom ureaju radi dalje obrade, u smislu da onda kada u jednom trenutku brzina generisanja podataka nadmai brzinu kojom se podaci obrauju, neophodno je izmeu proizvoaa i potroaa umetnuti red ekanja, tj. FIFO red. Naravno, u takvim situacijama, brzina kojom proizvoa generie podatke ne moe u nedogled biti vea od brzine kojom potroa moe da prihvata podatke, jer bi to zahtevalo red ekanja beskonane duine. U svakom sluaju, u proseku, obe brzine moraju biti iste, a veliina reda ekanja odreuje koliko dugo se moe tolerisati neujednaenost izmeu zahteva za obradom i brzine obrade. Svrha FIFO reda je da sauva podatke upuene potroau, koje on trenutno nije u stanju da prihvati, ali koje e u dogledno vreme preuzeti i to u redosledu u kome su oni poslati. Znai, podatak koji je prvi upisan u FIFO, prvi se i ita, i td., kao to je ilustrovano na Sl. 4-78. Na Sl. 4-78(a) je prikazan red ekanja nakon to su brojevi 23 i 34 upisani, ali pre nego to je stigao broj 45. Na Sl. 4-78(b) moemo videti sadraj FIFO reda nakon upisa broja 45. Uoimo da je nakon itanja FIFO reda, broj 23 odbaene i da je sadraj reda pomeren za jednu poziciju na dole. Sadraj reda ekanja nakon pomeranja prikazan je na Sl. 4-78(c).
199
(a)
(b)
(c)
Sl. 4-78 Princip rada FIFO reda: (a) sadraj reda pre upisa broja 45; (b) sadraj reda posle upis broja 45; (c) sadraj reda nakon itanja broja 23.
Na Sl. 4-79 je prikazan blok dijagram FIFO reda. U optem sluaju, FIFO red ima m ulaznih linija INi i m izlaznih linija OUTi, gde je 0im-1. Na izlazu OUT prisutan je podatak sa poetka reda, tj. podatak koji je najdue u redu ekanja. Na ulaz IN postavlja se podatak koji treba upisati u red. Takoe, FIFO red ima tri upravljaka signala: R/W, Enable i Reset. Signal R/W slui za izbor operacije, upis ili itanje. Za R/W=0, a pod dejstvom taktnog signala clk, u FIFO se upisuje podatak prisutan na ulazu IN i smeta na kraj reda ekanja. Za R/W=1, takoe pod dejstvom taktnog signala clk, iz FIFO reda se uklanja podatak sa poetka reda (tj. podatak koji je najdue u redu ekanja). Signal Enable se koristi kao dozvola upisa/itanja. Upis/itanje je dozvoljeno ako je Enable=1. U suprotnom, Enable=0 onemoguava dejstvo taktni signal (sadraj FIFO reda ostaje neizmenjen). Signal Reset slui za resetovanje (pranjenje) FIFO reda. Tipina realizacija FIFO reda ima jo dva statusna signala, Full i Empty, koji se koriste za kontrolu proizvoaa i potroaa. Kada je red pun, signal Full ima vrednost 1, to predstavlja upozorenje proizvoau da e svaki naredni poslati podatak biti odbaen. Kada se red isprazan, signal Empty postaje 1, to predstavlja upozorenje potroau da novi podaci jo uvek nisu stigli.
Imajui u vidu da je unutar reda ekanja redosled pristizanja podataka ouvan, FIFO red moemo konstruisati uz pomo pomerakih registara u kombinaciji sa brojaem koji e brojati vaee podatke u redu. Takva jedna realizacija FIFO reda prikazana je na Sl. 4-80(c), a tabela operacija na Sl. 4-80(a). Reenje koristi m 4-bitnih pomerakih registara, to znai da je kapacitet reda etiri m bitnih rei. Svaki bit ulaznog m-bitnog podatka se upisuje u odgovarajui pomeraki registar. Kraj reda je uvek na poziciji Q0 pomerakih registara, dok se poetak reda pomera za jednu poziciju udesno, pri svakom upisu novog podatka. Pri upisu, pomeraki registri pomeraju svoj sadraj za jednu poziciju udesno (upravljaki ulaz pomerakog registra S ima vrednost S=1), podatak se upisuje na poziciju Q0, a broja se inkrementira (D=0) tako da njegov sadraj ponovo ukazuje na prvi upisani podatak. Sa druge strane, pri svakom itanju podatka iz reda, uz pomo multipleksera se bira podatak sa poetka reda i prenosi na izlaz, a broja se dekrementira (D=1). Uoimo da se proitani podatak ne unitava, ve samo postaje nevaei, time to je broja dekrementiran. Na Sl. 4-80(b) prikazana je tabela upravljanja koja sadri vrednosti internih upravljakih signala u zavisnosti od izabrane operacije. U toku operacije itanja, sadraj pomerakih registara se ne menja, a broja broji za 1 unazad. Meutim, u toku operacije upisa, pomeraki registri e obaviti pomeranje za jednu poziciju udesno, a broja e odbrojati za 1 unapred. Broja, takoe, upravlja izborom podatka prilikom operacije itanja. U toku inicijalizacije, broja se postavlja na 1111, tako da njegovo stanje pri upisu prvog podatka u red postaje 0000. Ovakva inicijalizacija brojaa je neophodna kako bi se ostvarila pravilno upravljanje multiplekserima, koji zahtevaju vrednosti 00, 01, 10 i 11 na svojim selekcionim ulazima da bi izabrali jedan od izlaza pomerakih registara. Na osnovu tabele upravljanja moemo odrediti jednaine preostalih upravljakih signala: S = (R/W)Enable D = (R/W)Enable E = Enable
200
Svrha izlazne logike je generisanje signala Full i Empty. Red ekanja je prazan (Empty=1) ako je stanje brojaa 111, a pun (Full=1) ako je stanje brojaa 011. U svim ostalim stanjima brojaa, oba signala, Full i Empty, imaju vrednost 0. Dakle: Full = Q2Q1Q0 Empty = Q2Q1Q0 Na Sl. 4-80 (c) dat je ematski prikaz FIFO reda duine 4.
Read/ write X 0 1 Enable 0 1 1 Operacija Bez promene itanje Upis R/W X 0 1 Enable 0 1 1 S 0 0 1 D X 1 0 E 0 1 1
(a)
(b)
(c) Sl. 4-80 FIFO red duine 4 rei: (a) tabela operacija; (b) tabela upravljanja; (c) ematski prikaz.
Redovi ekanja vee duine, obino, umesto pomerakih registara, za smetanje podataka koriste RAM memoriju i sadre dva brojaa koji ukazuju na poetak i kraj reda. Takva jedna struktura poznata je pod nazivom kruni bafer. Simbolika predstava krunog bafera prikazana je na Sl. 4-81(a). Uoimo da struktura sa Sl. 4-81(a) koristi RAM memoriju kapaciteta 1K rei i dva brojaa, oznaena kao Poetak i Kraj. Broja Poetak sadri adresu najranije upisanog podatka. Uvek kada se zahteva operacija itanja, podatak se ita sa adrese na koju ukazuje broja Poetak i postavlja na U/I magistralu, a broja Poetak se inkrementira. Broja Kraj sadri adresu prve prazne lokacije u redu. Prilikom operacije upisa, podatak se upisuje na lokaciju na koju ukazuje broja Kraj, a broja Kraj se inkrementira. Ukoliko se podaci iz reda ee itaju nego upisuju, desie se situacija da baja Poetak ukazuje na istu lokaciju kao i broja Kraj, to znai da je red prazan. Sa druge strane, ako se u rad podaci ee upisuju nego to se itaju, broja Kraj koji se inkrementira po modulu 1024, u jednom trenutku ukazivae na istu lokaciju kao i broja Poetak, to, meutim, sada znai da je red pun. Da bi se izbegla dvosmislenost u znaenju uslova Poetak=Kraj, umesto 10-bitnih moemo koristiti 11-bitne (po modulu 2048) brojae. Kod ovakve realizacije, red ekanja je prazan ako su sadraji oba brojaa identini, dok je red pun ako se sadraji brojaa razlikuju samo na bitu najvee teine.
201
Na Sl. 4-81 prikazana je realizacija FIFO reda koja koristi 1K RAM i dva brojaa. Takoe, FIFO sadri multiplekser preko koga se bira jedan od brojaa kao izvor adrese za RAM i komparator koji poredi sadraje brojaa. Tabela operacija je prikazana na Sl. 4-81(b), tabela upravljanja na Sl. 4-81 (c), dok je na Sl. 4-81(d) dat konani ematski izgled FIFO reda zasnovanog na RAM memoriji.
0 1 2 prazno podatak podatak ... 1021 1022 1023 podatak prazno prazno Kraj Poetak
Read/ write X 0 1
Enable 0 1 1
Read/ write X 0 1
Enable 0 1 1
S X 1 0
CS 0 1 1
RWS X 0 1
E (Poetak) 0 1 0
E (Kraj) 0 0 1
(a)
(b)
(c)
(d) Sl. 4-81 FIFO red realizovan na bazi 1K RAM memorije: (a) princip rada; (b) Tabela operacija; (c) Tabela upravljanja; (d) ematski prikaz.
4.3.2.6 Stek
Stek (stack) je memorijska struktura koja se esto koristi kako u softveru tako i u hardveru. Po definiciji, stek je memorija sa ogranienim pristupom. Za razliku od RAM memorije gde se bilo kom zapamenom podatku moe pristupati u bilo kom vremenu, podacima zapamenim u steku pristupa se samo preko jedne lokacije: vrh steka. Drugim reima, kada se podatak upisuje u stek, ili stavlja na stek (operacije push), on se smeta na vrh steka i pri tome se svi prethodno upisani podaci sputaju za jednu poziciju niz stek. Suprotno tome, kada se podatak ita iz steka ili uzima sa steka (operacija pop), on se sklanja sa vrha steka i pri tome se svi ostali podaci podiu za jednu poziciju navie uz stek. Na Sl. 4-82(a) je prikazan stek dubine 4 (tj. kapaciteta 4 rei) koji inicijalno sadri dva broja: 34 na lokaciji Top i 23 na lokaciji Top-1. Na Sl. 4-82(b) moe se videti da stavljanje broja 45 na stek zahteva da brojevi 34 i 23 budu premeteni na lokacije Top-1 i Top-2. Sa druge strane, kada se broj 45 uzima sa steka, brojevi 34 i 23 se pomeraju navie tako da ponovo zauzimaju lokacije Top i Top-1 (Sl. 4-82(c)). U ovom konkretnom sluaju, na stek se moe staviti najvie etiri broja, pre nego to se stek napuni. Nakon toga, svaki novi upis u stek znai gubitak podatka sa dna steka.
202
(a) (b) (c) Sl. 4-82 Princip rada steka: (a) sadraj steka pre upisa broja 45; (b) sadraj steka nakon upisa broj 45; (c) sadraj steka nakon itanja broja 45.
Prilikom projektovanja steka, vano je uoiti da se prilikom operacija upisa i itanja, zapameni podaci pomeraju za jednu poziciju nanie, odnosno navie. Na osnovu ovog zapaanja zakljuujemo da za realizaciju steka treba koristiti pomerake registre u kombinaciji sa obostranim brojaem za detekciju praznog, odnosno punog steka. Ove komponente su koriene za realizaciju m-bitnog steka dubine 4 koji je prikazan na Sl. 4-83. Uoimo da ovaj stek ima m ulaznih linija INi i m izlaznih linija OUTi, gde je 0im-1. Takoe, stek ima tri upravljaka signala, Push/pop, Enable i Reset. Signal Push/pop upravlja upisom i itanjem iz steka. Kada je Push/pop=0, podatak se upisuje u stek; kada je Push/pop=1, podatak se ita iz steka. Signal Enable omoguava (dozvoljava) rad steka, dok signal Reset, uvek kada je 0, brie sadraj pomerakih registara i resetuje obostrani broja. Rad steka je opisan tabelom operacija sa Sl. 4-83(a). Uoimo da stek ima dva izlazna signala, Empty i Full, koji ukazuju na status steka, na sledei nain: kada Empty ima vrednost 1, stek je prazan; sa druge strane, kada Full ima vrednost 1, stek je pun.
Push/ pop X 0 1 Enable 0 1 1 (a) Operacija Bez promene Upis (push) itanje (pop) Push/ pop X 0 1 Enable 0 1 1 Kontrola pom. registra S1 S0 0 0 1 1 1 0 (b) Izlazi brojaa Q2 Q1 Q0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 (c)
Kontrola brojaa D X 0 1 E 0 1 1
Empty 1 0 0 0 0
Full 0 0 0 0 1
(d) Sl. 4-83 Stek dubine 4. (a) tabela operacija; (b) tabela izlaza; (c) tabela upravljanja; (d) struktura steka.
203
Na Sl. 4-83(d) se moe videti da se stek sastoji od m 4-bitnih pomerakih registara sa paralelnim upisom tako da svakom ulazu odgovara jedan pomeraki registar. Pri svakom upisu u stek, svi pomeraki registri obavljaju operaciju pomeranja na desno. Slino, pri svakom itanju iz steka, svi pomeraki registri obavljaju operaciju pomeranja na levo. Svaki novi podatak koji se stavlja na stek preko ulaza IL pomerakog registra i upisuje se na poziciju Q3, koja predstavlja vrh steka. Stanje brojaa ukazuje na broj podataka u steku. Sinhronizovano sa svakom rastuom ivicom taktnog signala, pomeraki registri obavljaju pomeranje na desno, a broja broji unapred za 1 (Push/pop=0 i Enable=1), odnosno pomeranje na levo i brojanje unazad (Push/pop=1 i Enable=1). Vrednosti upravljakih signala pomerakih registara i brojaa mogu se izvesti na osnovu tabele upravljanja koja je prikazana na Sl. 4-83(b). Na osnovu ove tabele moemo izvesti sledee jednaine: S1 = Enable S0 = (Push/pop)Enable D = (Push/pop)Enable E = Enable Realizacija ovih jednaina predstavlja upravljaku logiku steka. Na osnovu tabele izlaza sa Sl. 4-83(c), vidi se da izlazna logika dekoduje stanja brojaa 000 i 100. Uvek kada je stanje brojaa 000, signal Empty bie 1; u bilo kom drugom stanju Empty je 0. Suprotno, uvek kada je stanje brojaa 100, signal Full bie 1; u bilo kom drugom stanju Full je 0. Na osnovu toga, moemo izvesti sledee Bulove jednaine za izlaznu logiku: Empty = Q2Q1Q0 Full = Q2Q1Q0 Radi preglednosti, na Sl. 4-83(d) je izostavljen taktni signal koji pobuuje pomerake registre i broja. Glavna slabost reenja steka sa Sl. 4-83 ogleda se u injenici da je za realizaciju steka vee dubine potreban veliki broj skupih pomerakih registara. Iz tog razloga, za realizaciju steka veeg kapaciteta koristi se RAM memorija. Sa druge strane, poto RAM memorija nema mogunost pomeranja memorisanog sadraja, push i pop operacije moraju biti realizovane na neto drugaiji nain promenom tekue lokacije vrha steka. Drugim reima, kada se podaci stavljaju na stek, adresa vrha steka bie uveana za jedan pri svakom upisu novog podatka. Suprotno, kada se podaci uzimaju sa steka, adresa vrha steka bie smanjena za jedan pri svakom itanju podatka. Neka je, na primer, stek prazan: vrh steka je na adresi 0. Pri svakom upisu podatka, podatak se upisuje na vrh steka, a adresa vrha se uveava za jedan, tako da vrh steka uvek ukazuje na praznu lokaciju u koju e biti upisan sledei podatak. Sa druge strane, pri svakom itanju podatka, podatak se uzima iz lokacije koja se nalazi odmah ispod vrha steka, na adresi za jedan manje od adrese vrha steka. Sledei ovu logiku, znamo da je za RAM memoriju kapaciteta 2n rei stek prazan ako je vrh steka na adresi 0, a pun ako je vrh na adresi 2n1. Uoimo da se lokacija sa adresom 2n-1 nikada ne koristi za smetanje podatka, ve samo za odreivanje da li je stek prazan. Iako se na ovaj nain gubi jedna od 2n raspoloivih rei RAM memorije, opisani pristup znaajno pojednostavljuje izlaznu logiku. Na Sl. 4-84 je prikazana realizacija steka koja koristi RAM memoriju kapaciteta 1K (2 10) i dva brojaa koji ukazuju na vrh steka i prvu lokaciju ispod vrha. Uoimo da su ulazi i izlazi i operacije steka identine kao na Sl. 4-83. Kao to se vidi sa Sl. 4-84(d), stek ine: dva 10-bitna brojaa, jedan 10-bitni multiplekser 2-u-1, 1K RAM, upravljaka i izlazna logika. Dva brojaa, nazvana Top i Top-1, razlikuju se za 1, i oba se uveavaju za jedan pri svakoj push operaciji, a umanjuju za jedan pri pop operaciji. Pri operaciji push, adresa RAM-a je sadraj brojaa Top, dok pri operaciji pop, adresa RAM-a je sadraj brojaa Top-1. Polazei od prethodnog razmatranja, u mogunosti smo da konstruiemo tabelu upravljanja koja je prikazana na
Sl. 4-84(c) koja sadri vrednosti svih internih signala koji upravljaju brojaima, multiplekserom i RAM
memorijom kako pri push i tako i pri pop operaciji. Na osnovu ove tabele, moemo izvesti sledee Bulove jednaine za upravljaku logiku: E = CS = Enable S = RWS = (Push/pop)Enable D = (Push/pop)Enable Izlaznu logiku ine dva gejta koja ukazuju kada je stek pun, odnosno prazan. Poto je stek prazan uvek kada je sadraj brojaa Top jedak 0, da bi se detektovao uslov Empty koristi se 10-ulazno NOR kolo iji ulazi su povezani na izlaze brojaa Top. Slino, stek je pun uvek kada broja Top sadri sve jedinice, to se detektuje 10ulaznim AND. ematski prikaz strukture steka zasnovanog na RAM memoriji prikazan je na Sl. 4-84(d).
204
Push/ pop X 0 1
Enable 0 1 1
Push/ pop X 0 1
Enable 0 1 1
Kontrola mux-a S X 1 0
Kontrola broj. D E X 0 0 1 1 1
(a)
(b)
(c)
(d) Sl. 4-84 Realizacija steka na bazi RAM memorije: (a) Simboliko reenje; (b) Tabela operacija; (c) Tabela upravljanja; (d) ematski prikaz.
205