Komponente digitalnih sistema Kombinacione komponente Sekvencijalne komponente Konačni automati Memorijske komponente Staza podataka
Standardne digitalne komponente (moduli) Obavljaju funkcije za koje je uočeno da su korisne za veliki broj različitih primena Dostupne su u vidu integrisanih kola ili bibliotečkih komponenti i kao takve spremne za direktnu ugradnju u sistem koji se projektuje Kombinacione i sekvencijalne komponente Složeni digitalni sistemi projektuju se tako što se najpre ukupna funkcija sistema razloži na više pod-funkcija. Zatim se pod-funkcije realizuju u vidu jednostavnijih digitalnih modula, čijim se povezivanjem konstruiše željeni sistem. Iako je u nekim slučajevima neophodno projektovati module za neke specifične funkcije, ipak, najčešće, u praksi, složeniji digitalni sistemi se mogu realizovati korišćenjem standardnih modula ili komponenti. Standardne komponente obavljaju funkcije za koje je uočeno da su korisne za veliki broj različitih primena, a dostupne su u vidu integrisanih kola ili bibliotečkih komponenti i kao takve spremne za direktnu ugradnju u sistem koji se projektuje. Arhitektura mikrosistema
Standardne digitalne komponente (moduli) Kombinacione komponente izlazne vrednosti zavise isključivo od tekućih (trenutnih) ulaznih vrednosti. Nakon svake promene ulaznih vrednosti, na izlazu se javljaju nove izlazne vrednosti sa kašnjenjem Δt koje je neophodno da bi se izračunao novi rezultat. Ne poseduju osobinu ˝pamćenja˝ Aritmetičke i logičke operacije, kodiranje i dekodiranje podataka, reorganizaciju podataka ... Većina digitalnih sistema, uključujući i računare, projektovana je da obrađuje ili transformiše podatke. Ove transformacije mogu biti različitih tipova, uključujući aritmetičke i logičke operacije, kodiranje i dekodiranje podataka i reorganizaciju podataka. U opštem slučaju, navedene transformacije podataka se obavljaju pomoću kombinacionih komponenti. Osnovna osobina kombinacionih kola jeste činjenica da se njihove izlazne vrednosti izračunavaju isključivo na osnovu tekućih ulaznih vrednosti. Nakon svake promene ulaznih vrednosti, na izlazu se javljaju nove izlazne vrednosti sa kašnjenjem Dt koje je neophodno da bi se izračunao novi rezultat. Kombinaciono kolo nije u stanju da ¨zapamti¨ prethodne rezultate, i da onda tu informaciju, zajedno sa tekućim ulazom, koristi za određivanje novog izlaza. Arhitektura mikrosistema
Standardne digitalne komponente (moduli) Sekvencijalne komponente Sadrže memorijske elemente, kao što su leč kola i flip-flopovi. Izlazne vrednosti zavise ne samo od tekućih već i od prethodnih ulaznih vrednosti Registarske komponente prihvatni, pomerački i brojački registri memorijske strukture (RAM, FIFO, stek) staze podataka i upravljačke jednice Za razliku od kombinacionih, sekvencijalne komponente sadrže memorijske elemente, kao što su leč kola i flip-flopovi. Kao posledica toga, izlazne vrednosti sekvencijalnih komponenti zavise ne samo od tekućih već i od prethodnih ulaznih vrednosti. Spektar sekvencijalne komponenti se proteže od bazičnih memorijskih elemenata, kao što su leč kola i flip-flopovi, preko generičkih (standardnih) registarskih komponti, kao što su prihvatni, pomerački i brojački registri, i složenijih memorijskih struktura, kao što su RAM, FIFO, stek, do staza podataka i upravljačkih jednica koje su u mogućnosti da izvršavaju složene algoritme. Arhitektura mikrosistema
Kombinacione komponente Sabirač sa rednim prenosom Sabirač/oduzimač Logička jedinica. ALU Dekoder Multiplekser Demultiplekser Koder Komparator Pomerač ROM PLA Arhitektura mikrosistema
Sabirač sa rednim prenosom Arhitektura mikrosistema
Arhitektura mikrosistema Sabirač/oduzimač Primer više-funkcionalnog kola Arhitektura mikrosistema
Arhitektura mikrosistema Logička jedinica Primer logičke operacije 01001 OR 10011 11011 Logičke operacije se obavljaju ˝po bitovima˝ - nema prenosa između bitskih pozicija Arhitektura mikrosistema
Arhitektura mikrosistema Logička jedinica Postoji 16 različitih logičkih operacija: Arhitektura mikrosistema
Arhitektura mikrosistema Logička jedinica Arhitektura mikrosistema
Aritmetičko-logička jedinica (ALU) Više-funkcijsko, kombinaciono kolo koje može da obavi bilo koju od više različitih aritmetičkih i logičkih operacija nad parom b-bitnih operanada Broj i složenost operacija podržanih od strane ALU zavise od konkretne realizacije Tipične aritmetičke operacije: sabiranje, oduzimanje, inkrementriranje i dekrementiranje (zasnovane na sabiranju) Tipične logičke operacije: OR, AND, XOR, NOT Aritmetičko-logička jedinica (ili ALU prema engleskom nazivu Arithmetic and Logic Unit) je više-funkcijsko, kombinaciono kolo koje može da obavi bilo koju od više različitih aritmetičkih i logičkih operacija nad parom b-bitnih operanada. Pri tome, jedna od raspoloživih operacija bira se preko skupa selekcionih ulaza. Broj i složenost operacija podržanih od strane ALU modula su pitanje izbora projektanta i mogu značajno da variraju od ALU do ALU modula. Tipične aritmetičke operacije, koje se sreću kod većine ALU modula, obično su zasnovane na sabiranju, kao na primer, sabiranje, oduzimanje, inkrementriranje i dekrementiranje. Inkrementiranje je operacija sabiranja sa 1, a dekrementiranje oduzimanja za 1. Međutim, postoje i ALU moduli koji su u stanju da obavljaju i složenje aritmetičke operacije, kao što su množenje, deljenje, stepenovanje, pomeranje, poređenje i dr. Tipične logičke operacije su AND, OR, komplement, XOR. Arhitektura mikrosistema
Aritmetičko-logička jedinica (ALU) (jedan način realizacije) LE - logički ekspander AE - aritmetički ekspander Logičke operacije: Obavljaju se u LE pri Y = 0 Aritemtičke operacije: X=A, B se modifikuje u AE i sabira sa A. Arhitektura mikrosistema
Aritmetičko-logička jedinica (primer 4-bitne ALU) Aritemetičke operacije Arhitektura mikrosistema
Aritmetičko-logička jedinica (primer 4-bitne ALU) Aritmetički ekspander Arhitektura mikrosistema
Aritmetičko-logička jedinica (primer 4-bitne ALU) Logičke operacije Arhitektura mikrosistema
Aritmetičko-logička jedinica (primer 4-bitne ALU) Arhitektura mikrosistema
Arhitektura mikrosistema Dekoder Dekoder n-u-2n Svaka n-bitna ulazna kombinacija aktivira tačno jedan od 2n izlaz Dekoder 1-u-2 Dekoder 2-u-4 Arhitektura mikrosistema
Arhitektura mikrosistema Dekoder Sa invertovanim izlazima Realizacija prekidačkih funkcija pomoću dekodera ILI Arhitektura mikrosistema
Koincidentno dekodiranje - realizacija velikih dek. mreža - Dekoder 8-u-16 pomoću dekodera 4-u-16 Bira 1 izlaz iz grupe Bira 1 od 16 grupa od po 16 izlaza Arhitektura mikrosistema
Koincidentno dekodiranje Arhitektura mikrosistema
Hijerarhijsko dekodiranje Dekoder 4-u-16 pomoću dekodera 2-u-4 Arhitektura mikrosistema
Hijerarhijsko dekodiranje Dekoder 3-u-8 pomoću dekodera 2-u1 Arhitektura mikrosistema
Arhitektura mikrosistema Multiplekser Digitalni preklopnik Vrednost selekcionih ulaza određuje (tj. bira) jedan od ulaza čija se vrednost, u datom trenutku, prenosi na izlaz Mux 2-u-1 Arhitektura mikrosistema
Arhitektura mikrosistema Multiplekser Mux 4-u-1 Arhitektura mikrosistema
Arhitektura mikrosistema Multiplekser Mux 8-u-1 pomoću mux 2-u-1 Arhitektura mikrosistema
Arhitektura mikrosistema Multiplekser Mux 2xm-u-m Arhitektura mikrosistema
Arhitektura mikrosistema Multiplekser Realizacija pomoću dekodera i logičkih kola Arhitektura mikrosistema
Arhitektura mikrosistema Multiplekser Realizacija pomoću dekodera i tro-statičkih bafera Arhitektura mikrosistema
Arhitektura mikrosistema Demultiplekser Jedinstveni ulaz usmerava na izlaz izabran selekcionim ulazima Realizacija pomoću dekodera Arhitektura mikrosistema
Mux + Dmux = vremenski multipleks Arhitektura mikrosistema
Arhitektura mikrosistema Binarni koder Binarni koder 2n-u-n Na izlazu se generiše se n-bitni binarni broj koji ukazuje na indeks ulaza čija je vrednost 1. Aktivan najviše jedan ulaz Funkcija suprotna funkciji dekodera Binarni koder 2n-u-n (Sl. 3.26) kodira (transformiše) informaciju od 2n bita u n-bitnu kodnu reč. Sa ograničenjem da u bilo kom trenutku samo jedan od 2n ulaza može imati vrednost 1, na izlazu binarnog kodera generiše se n-bitni binarni broj koji ukazuje na indeks ulaza čija je vrednost 1. Na Sl. 3.26(a) je prikazana tabela istinitosti kodera 4-u-2. Tabela istinitosti je nepotpuna, jer sadrži samo one slogove koji su dozvoljeni na ulazu binarnog kodera. Za sve ostale slogove, odziv kodera je nedefinisan. Uočimo da izlaz y0 ima vrednost 1 ako je w1=1 ili w3=1. Slično, izlaz y1 ima vrednost 1, ako je w2=1 ili w3=1. Na osnovu ovog zapažanja možemo konstruisati logičku mrežu binarnog kodera 4-u-2 prikazanu na Sl. 3.26(b). U opštem slučaju, binarni koder 2n-u-n može se realizovati pomoću n (2n-1)-to ulaznih OR kola. Svako OR kolo postavlja jedan izlaz. Ulaz wi je povezan sa j-tim OR kolom ako j-ti bit u binarnoj reprezenaciji indeksa i ima vrednost 1. Arhitektura mikrosistema
Arhitektura mikrosistema Binarni koder Koder 4-u-2 Arhitektura mikrosistema
Arhitektura mikrosistema Binarni koder Primer primene Arhitektura mikrosistema
Prioritetni koder Prevazilazi ograničenje binarnog kodera da najviše jedan ulaz sme biti aktivan Svakom ulazu je dodeljen prioritet, a izlaz kodera, interpretiran kao binarni broj, ukazuje na indeks aktivnog ulaza najvišeg prioriteta. Aktivan je barem jedan ulaz Kod binarnog kodera opisanog u prethodnom odeljku postoji ograničenje da u bilo kom trenutku najviše jedan ulaz sme biti aktivan. Ako se ovo ograničenje ne poštuje, u slučajevim kada je aktivno više od jednog ulaza, izlaz kodera biće pogrešan. Međutim, u mnogim primenama ovo ograničenje se ne može nametnuti. U takvim slučajevima, 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 najvišeg prioriteta. Za sve vreme dok je aktivan ulaz visokog prioriteta, svi ulazi nižeg prioriteta se ignorišu. Na Sl. 3.29 je prikazana tabela istinitosti prioritetnog kodera 4-u-2, pod pretpostavkom da ulaz w3 ima najviši, a w0 najniži prioritet. Izlazi y1 i y0 predstavljaju binarni broj koji identifikuje ulaz navišeg prioriteta koji ima vrednost 1. Pošto je moguće da ni jedan ulaz nema vrednost 1, predviđen je još jedan, dodatni izlaz, z koji treba da ukaže na ovu sitaciju. Naime, ako je barem jedan ulaz jednak 1, tada je z=1; inače, ako ni jedan ulaz nije jednak 1, važi z=0. Najniži prioritet Najviši prioritet Arhitektura mikrosistema
Arhitektura mikrosistema Prioritetni koder Princip realizacije Arhitektura mikrosistema
Arhitektura mikrosistema Prioritetni koder Hijerarhijska realizacija - prioritetni koder 8-u-1 pomoću kodera 2-u-1 i multipleksera Arhitektura mikrosistema
Arhitektura mikrosistema Prioritetni koder Primer primene - izbor signal prekida Arhitektura mikrosistema
Arhitektura mikrosistema Komparator magnitude Univerzalni komparator Poredi dva n-bitna pozitivna cela broja X i Y i generiše tri binarna rezultata: G (X>Y), E (X=Y) L (X<Y) Arhitektura mikrosistema
Arhitektura mikrosistema Komparator magnitude 4-bitni komparator Arhitektura mikrosistema
Arhitektura mikrosistema Komparator magnitude 8-bitni komparator pomoću 4-bitnih komparatora Arhitektura mikrosistema
Arhitektura mikrosistema Komparator magnitude Komparator pomoću sabirača (oduzimača) Arhitektura mikrosistema
Iterativna komparatorska mreža Ako je X=Y, odlučivanje se prepušta narednom (˝višem˝) modulu Arhitektura mikrosistema
Hijerarhijska komparatorska mreža X 1 Y g l Arhitektura mikrosistema
Kombinacioni pomerači i rotatori Izbor operacije Arhitektura mikrosistema
Kombinacioni pomerači i rotatori 8-bitni univerzalni pomerač/rotator Arhitektura mikrosistema
Kombinacioni pomerači i rotatori Barel pomerač Arhitektura mikrosistema
Arhitektura mikrosistema ROM ROM - Read Only Memory Kao univerzalni, programabilni logički element Kao memorija za permanentno čuvanje informacija ROM nxm Kapaciteta n reči od m bita Poseduje k=log2n adresinih linija i m izlaznih linija Može da realizuje m logičkih funkcija k promenljivih ROM memorija (Read Only Memory - ROM) se može razumeti kao univerzalni logički element koji, u isto vreme, može da realizuje veći broj različitih logičkih funkcija definisanih nad istim skupom promenljivih. Uopšteno govoreći, svaka ROM memorija sadrži n reči dužine m bita i označava se kao m x n ROM. ROM memorija, takođe, ima log2n adresnih linija koje se koriste za adresiranje svake od njenih n reči. Znači, mxn ROM je u stanju da realizuje m proizvoljnih logičkih funkcija od log2n promenljivih. Arhitektura mikrosistema
Programabilni simboli Arhitektura mikrosistema
ROM - struktura U svakom preseku ILI matrice nalazi se prekidač koji se programiranjem može otvoriti/zatvoriti Može da realizuje 4 proizvoljne funkcije 4 promenljive Promenljive ILI matrica (sumiranje logičkih proizvoda) Generator minterma (potpunih proizvoda) Arhitektura mikrosistema
Arhitektura mikrosistema ROM - primer Arhitektura mikrosistema
PLA PLA - Programmable Logic Array (programabilno logičko polje) ILI matica Za sumiranje logičkih proizvoda PLA - Programmable Logic Array (programabilno logičko polje) I matrica Za formiranje logičkih proizvoda Za komplementiranje izlazne funkcije Arhitektura mikrosistema
Arhitektura mikrosistema PLA - primer Arhitektura mikrosistema
LUT Logički blok: LUT - univerzalni logički blok sa malim brojem ulaza (n = 4-6) i jednim izlazom. Realizuje se kao RAM 2nx1. Sadržaj RAM-a definiše logičku funkciju. Logički blok FPGA kola tipično ima manji broj ulaza i jedan izlaz. Mada postoje i drugačija rešenja, najčešće korišćeni logički blok je tipa look up tabela (tabela pretraživanja), ili LUT. LUT sadrži memorijske ćelije i može da realizuje samo jednostavne funkcije. Svaka memorijska ćelija sadrži jednu logičku vrednost, 0 ili 1. LUT blokovi se razlikuju po veličini, gde se pod veličinom podrazumeva broj ulaza. Na Sl. 2‑13(a) je prikazana struktura jednostavnog LUT bloka, sa samo dva ulaza x1 i x2 i jednim izlazom f. Ovaj LUT blok može da realizuje bilo koju logičku funkciju dve promenljive. S obzirom da tabela istinitosti za dve promenljive ima četiri vrste, LUT ima četiri memorijske ćelije. Svaka memorijska ćelija odgovara jednoj vrsti tabele istinitosti. Ulazne promenljive x1 i x2 se koriste kao selekcioni ulazi tri multipleksera, koji zavisno od vrednosti x1 i x2 na izlaz f prosleđuju sadržaj jedne od četiri ćelije. Dvoulazni LUT – može da realizuje proizvoljnu funkciju dve promenljive Arhitektura mikrosistema
LUT – realizacija funkcije x1 x2 f1 1 Realizaciju logičkih funkcija u LUT bloku, razmotrićemo na primeru funkcije f1 definisanu tabelom istinitosti sa Sl. 2‑13(b). Funkcija f1 se može ˝zapamtiti˝ LUT bloku na način kao na Sl. 2‑13(c). Kada je x1=x2=0, na izlaz LUT bloka prenosi se sadržaj prve gornje ćelije, koja odgovara prvoj vrsti tabele istinitosti (x1x2=0). Slično, za svaku kombinaciju vrednosti promenljivih x1 i x2, logička vrednost zapaćena u memorijskoj ćeliji koja definiše izlaz LU-a, identična je izlaznoj vrednosti odgovarajuće vrste tabele istinitosti. Arhitektura mikrosistema
LUT – primena kod FPGA kola (logički blok) Logički blok = LUT + flip-flop Osim LUT strukture, logički blok može sardži i dodatne resurse. Na Sl. 2‑15 je prikazano kako se u logički blok može uvrstiti flip-flop. Sa svakim taktnim imulsom, u flip-flop se memoriše trenutni izlaz LUT-a. Multiplekser omogućava da se na izlaz logičkog bloka postavi vrednost sa izlaza LUT-a ili sa izlaza flip-flopa. Arhitektura mikrosistema
FPGA (realizacija složenijih funkcija) Logički blok f = f1 + f2 = x1x2 + x2’x3. Na Sl. 2‑16 je prikazna deo FPGA kola programiran tako da realizuje neku konkretnu funkciju. FPGA sadrži dvo-ulazne logičke blokove i kanale za povezivanje sa po četiri veze u svakom. Slika, takođe prikazuje programirani sadržaj LUT blokova i programirana stanja prekidača. Programabilni prekidači su prikazani znakom X. ˝Crni˝ prekidači su otvoreni, a ˝sivi˝ zatvoreni, tj. čine spoj između vertikalne i horizontalne veze. Tabele istinitosti programirane u LUT blokove iz gornjeg reda odgovaraju funkcijama: f1 = x1x2 i f2 = x2’x3. Logički blok desno u donjoj vrsti, programiran je tako da realizuje funkciju: f = f1 + f2 = x1x2 + x2’x3. Arhitektura mikrosistema