8. Programirljivi moduli
Programirljivi moduli permanentna memorija programirljivo logičko polje poluprogramirljivo logičko polje složene programirljive naprave programirljivo polje logičkih blokova FER-Digitalna logika 008/09
Programirljivi moduli programirljivi moduli ~ "programirljive naprave", PLD (engl. Programmable Logic Devices): ostvarivanje složenije unkcije koja nije unaprijed određena ~ moduli opće namjene mogućnost naknadnog "programiranja" ~ koniguriranje sklopa u smislu određivanja "izvana opazivog ponašanja": u posebnim uređajima unutar uređaja u kojem se modul koristi FER-Digitalna logika 008/09
Programirljivi moduli struktura složenija (puno "logike"), ali nije iksirana: logički sklopovi ("vrata", engl. gates) ili skupovi logičkih sklopova (~ "logički blokovi") tvornički izvedeni kontakti ili programirljive sklopke: različita povezivanja logičkih sklopova koniguriranje skupova logičkih sklopova unutar modula osnovna struktura ~ dvodimenzijsko polje dekoder-koder: permanentna memorija FER-Digitalna logika 008/09 4
Programirljivi moduli podjela programirljivih modula: jednostavni PLD (engl. Simple PLD, SPLD): programirljivo logičko polje, PLA poluprogramirljivo logičko polje, PAL složeni PLD (engl. omple PLD, PLD) ~ više programirljivo povezanih SPLD u modulu programirljiva polja logičkih blokova (engl. Field Programmable Gate Arrays, FPGA) ~ veliki broj programirljivo povezanih programirljivih logičkih blokova FER-Digitalna logika 008/09 5
Permanentna memorija unkcijski pogled ~ sklop s permanentno upisanim sadržajem: memorija jedan upis (obično pri proizvodnji), ostalo čitanje ~ ispisna memorija: "samo-se-čita", ROM (engl. Read Only Memory) može i više upisa, ali zanemarivo malo u odnosu na broj čitanja izvedba ~ kombinacijski sklop podatak upisan nekom vrstom "ožičenja" mogućnost "programiranja" FER-Digitalna logika 008/09 6
Permanentna memorija karakteristična struktura ~ dva polja: ulazno ili dekodersko polje: generiranje potrebnog broja internih adresnih linija potpuno adresiranje: "-od- n " dekoder ~ I sklopovi na izlazima I polje izlazno ili kodersko polje: generiranje bitova adresirane "riječi" ~ aktiviranje željenih izlaza: "kodiranje" pojedinih simbola koder ~ ILI sklopovi na izlazima ILI polje (izlaz podatak ILI podatak ILI ) FER-Digitalna logika 008/09 7
Permanentna memorija karakteristična struktura: dva polja broj "memorijskih riječi" n broj bitova/riječ b kapacitet: W n b programiranje (kodera!) ~ upis uzorka i 0 memorijsku riječ O 0 O O n FER-Digitalna logika 008/09 8
Permanentna memorija karakteristična struktura s dva polja ~ izvorno diodna matrica osnovni logički sklopovi ostvareni diodnim mrežama struktura tipa unkcije drugog reda (suma minterma) ~ oblik ILI-I električka unkcija dioda ~ onemogućiti povratno djelovanje s drugih "šina" (engl. rails) suvremene strukture ~ poopćenja diodne matrice FER-Digitalna logika 008/09 9
Permanentna memorija izvorna izvedba ~ diodna matrica U U A B R A. B. A B R A. B. U A B AB D E R D. E A. B. D. E R R FER-Digitalna logika 008/09 0
Permanentna memorija temeljeći sa na izvedbi permanentne memorije diodnom mrežom nacrtati: sklop -bitnog potpunog zbrajala sklop -bitnog potpunog odbijala sklop -bitnog potpunog zbrajala/odbijala (uputa:predvidjeti upravljačku varijablu K za odabir zbrajanja (K 0), odnosno oduzimanja (K )) na raspolaganju su varijable i komplementi FER-Digitalna logika 008/09
Permanentna memorija izvedbe ~ tehnologija: bez mogućnosti programiranja, ROM s mogućnošću jednokratnog programiranja, PROM (engl, Programmable ROM) s mogućnošću višekratnog programiranja i brisanja UV svjetlom, EPROM (engl. Erasable PROM) ~ kućište sa staklenim prozorčićem s mogućnošću višekratnog programiranja i brisanja električkim putem, EAROM (engl. Electrically Alterable ROM), EEPROM (engl. Electrically EPROM) FER-Digitalna logika 008/09
Permanentna memorija "klasična" permanentna memorija, ROM: uobičajena tehnologija ~ MOSFET programiranje u proizvodnji: ~ zadnja se maska izrađuje po narudžbi i sadrži potrebne veze t a ~ 00 ns FER-Digitalna logika 008/09
Permanentna memorija temeljeći sa na izvedbi permanentne memorija MOSFET tranzistorima nacrtati: sklop -bitnog potpunog zbrajala sklop -bitnog potpunog oduzimala sklop -bitnog potpunog zbrajala/oduzimala (uputa:predvidjeti upravljačku varijablu K za odabir zbrajanja (K 0), odnosno oduzimanja (K )) FER-Digitalna logika 008/09 4
Permanentna memorija s mogućnošću jednokratnog programiranja, PROM: bipolarna tehnologija, tipično TTL ~ višeemiterski tranzistor za male serije ~ programiranje "na licu mjesta" (engl. in-the-ield) programiranje ~ jačom strujom (U B >>) t a ~ 0 50 ns U topljivi "osigurači" rastale se uz narinutu jaču struju FER-Digitalna logika 008/09 5
Permanentna memorija s mogućnošću višekratnog programiranja i brisanja UV svjetlom, EPROM: tehnologija MOSFET ~ posebna izvedba NMOS tranzistora "s lebdećom elektrodom", FAMOS (engl. Floating-gate Avalanche Injection MOS) programiranje ~ U GD ~ 5 V prodor elektrona u G lavinskim probojem t a ~ 00 ns FER-Digitalna logika 008/09 6
Permanentna memorija s mogućnošću višekratnog programiranja i brisanja električkim putem, EAROM, EEPROM: izbjeći probleme EPROM ~ dugo brisanje cijelog sadržaja u posebnom uređaju smanjen razmak G i D ~ upisivanje i brisanje podatka tuneliranjem (upis: U GD ~ 0 V, brisanje: U GD ~ -0 V) t a ~ 50 ns FER-Digitalna logika 008/09 7
Permanentna memorija Primjer: ROM s 8 4-bitnih riječi (ROM 84) A A A 0 ROM 84 D D D E D 0 riječ A A A 0 D D D D 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 5 0 0 0 6 0 0 0 7 0 0 FER-Digitalna logika 008/09 8
Permanentna memorija polje matrica ~ matrični prikaz FER-Digitalna logika 008/09 9
Permanentna memorija primjena ROM: pohranjivanje značajnih podataka važnih za rad cjelokupnog digitalnog sustava (npr. računalo) pohranjivanje sustavskih programa upravljačka memorija kod mikroprogramiranja ~ posebna izvedba upravljačke jedinice procesora pretvorba koda ~ naročito generatori znakova za rasterske prikaze (zasloni, matrični pisači) aritmetički sklopovi: ~ izvedbe tablica posebnih unkcija (npr. trigonometrijske) problem ~ROM je sporiji, jer ima više razina logike FER-Digitalna logika 008/09 0
Permanentna memorija permantnom memorijom ostvariti pretvornike koda: BD u 4 BD u 7-segmentni koji su parametri (broj riječi broj bitova/riječ) potrebnih permanentnih memorija? FER-Digitalna logika 008/09
Permanentna memorija Primjer: sklop za množenje 8-bitnih brojeva tablica množenja ugrađena u ROM ~ pregledna tablica (engl. Look-Up Table, LUT) eikasnija izvedba: kombinacija izvjesnog broja ROMova značajno manjeg kapaciteta (parcijalni produkti) i zbrajala veća kašnjenja! FER-Digitalna logika 008/09
Permanentna memorija množenje 8-bitnih brojeva ~ potreban kapacitet prevelik: 8 8 4 6 0 ( 8 8) Mbit FER-Digitalna logika 008/09
FER-Digitalna logika 008/09 4 "rastavljanje" multiplikanda i multiplikatora: dovoljan puno manji kapacitet: ( ) ( ) ( ) ( ) n m n m n m n m n n m m N M P n n n n n n n n n n N m m m m m m m m m m M 4 8 4 4 4 0 4 4 5 6 7 4 0 4 4 5 6 7 ) ( ) ( ) ( ) ( ( ) Kbit Kbit ukupni 8 4 ; 4 4 ' 4 4 ' Permanentna memorija
Permanentna memorija sklop zasnovan na kompoziciji manjih ROMova: m n m n m n m n FER-Digitalna logika 008/09 5
Permanentna memorija interpretacija podataka "pohranjenih" u ROM: logičke unkcije (više njih!) svaki izlaz ~ jedna logička unkcija sve unkcije ~ višeizlazna unkcija ROM ~ generator unkcija i ( A A, A ) D 0 i, 0 i 0 FER-Digitalna logika 008/09 6 m(0,,,5) m(,4,6,7) m(0,,4,7) m(,,5,6)
Permanentna memorija zapažanje ~ sklopovski povoljnije koristiti raspodijeljeni dekoder (engl. split decoder) B A A 0 0 A A 0 I I 0 (A, B, ) FER-Digitalna logika 008/09 7
Permanentna memorija razvoj ostvarivanja unkcija raspodijeljenim dekodiranjem ROMa ~ ostvarivanje unkcija multipleksorom! B A A 0 0 A A 0 I I 0 (A, B, ) simulacija permanentne memorije: FER-Digitalna logika 008/09 8
Permanentna memorija ostvarivanja unkcija ROMom i multipleksorom ~ Shannonova ekspanzija: ( A, B, ) ( A, B, ) (0, B, ) A (0,0, ) A B (, B, ) A (0,, ) A B B A A 0 0 (,0, ) A B (,, ) A B A A 0 I I 0 ( A, B, ) (0,0,0) A B (0,0,) A B (A, B, ) (0,,0) A B (0,,) A B (,0,0) A B (,0,) A B (,,0) A B (,,) A B 0/ 0/ A B A A A 0 I 7 I 6 I 5 I 4 I I I I 0 (A, B, ) FER-Digitalna logika 008/09 9
FER-Digitalna logika 008/09 0 parcijalne unkcije kod Shannonova ekspanzije u kojima je neki od literala iksiran (0 ili ) ~koaktori, rezidui (ostaci), rezidualne unkcije npr. Permanentna memorija ) (,, ) ( ) (,0, ) ( ) (0,, ) ( ) (0,0, ) ( ) (,, ) (,0, ) (0,, ) (0,0, ),, ( 0 B A B A B A B A B A ϕ ϕ ϕ ϕ ) ( ), ( ), ( ), ( 0 ϕ ϕ ϕ ϕ
Permanentna memorija Primjer : potpuno zbrajalo/odbijalo izvedba s ROMom 84 i MUXa / K0: zbrajalo, K: odbijalo uočiti: S i D i, simetrija i i Z i A A A 0 D D 0 D D A i B i i- S i i D i Z i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FER-Digitalna logika 008/09
Permanentna memorija izvedba s MUXa 8/ u unkciji ROMova K0: zbrajalo, K: odbijalo FER-Digitalna logika 008/09
Programirljivo logičko polje zapažanje ~ pri generiranju unkcija je spojno polje kodera ROMa "slabo popunjeno" obično se ne koriste sve kombinacije ulaza ~ nepotpuno speciicirane unkcije ostvariti uštedu ~ puno manji broj riječi od onog omogućenog dekoderom (W << n ) relativno mali broj raspoloživih kombinacija ulaza ~ obuhvatiti upravo one potrebne! programiranje i dekodera ~ nepotpuno dekodiranje FER-Digitalna logika 008/09
Programirljivo logičko polje programirljivo logičko polje, PLA (engl. Programmable Logic Array) ~posebna logička struktura s oba programirljiva polja: eikasno i leksibilno rješenje generirane unkcije ~ u obliku sume produkata ograničenje ostvarivosti unkcija ~ veličina I polja (broj P i ): smanjenje broja riječi ~ minimizacija! višeizlazna unkcija: posebni postupak minimizacije što više P i zajedničkih za što veći broj unkcija FER-Digitalna logika 008/09 4
Programirljivo logičko polje izvedba PLA: odvojni sklopovi na ulazu ~ generiranje i, i, i tipični parametri: n k m 6 8 FER-Digitalna logika 008/09 5
Programirljivo logičko polje struktura PLA: izlaz ~ unkcija i komplement (upravljani EX-ILI) y 0 y 0 y 0 y 0 y y y y y b y b y b y b FER-Digitalna logika 008/09 6
FER-Digitalna logika 008/09 7 Primjer: izvedba PLA na razini tranzistora programiranje u tvornici implementacija dvorazinske unkcije tipa NILI-NILI (NILI ~ paralelni NMOSovi) višeizlazna unkcija: {, } ( ) ( ) ( ) ( ) S S S S S S S S Programirljivo logičko polje
Programirljivo logičko polje izvedba FPLA (engl. Field-Programmable Logic Array): (višekratno) programiranje "na licu mjesta" NMOS Tr programirljiva sklopka programirljiva sklopka ~ EEPROM FER-Digitalna logika 008/09 8
FER-Digitalna logika 008/09 9 Primjer:ostvarenje unkcija s FPLA : neprogramirana sklopka : programirana, nema spoja ( ) ( ) ( ) ( ) ( ) ( ) 5 4 5 4 S S S S S S S S S S S S Programirljivo logičko polje
FER-Digitalna logika 008/09 40 FPLA: ostvarenje dvorazinske unkcije tipa ILI-I invertirati ulaze (,, 4) invertirati izlaz (, ) 4 P P P P P Programirljivo logičko polje
Z 0 Programirljivo logičko polje Primjer: ostvarivanje logičkih unkcija s PLA Z 0 Z ( 0,,,6,8,9,0,,4,,4,7, 0) (,,5,7,8,4,5,,7,8, ) DE 000 00 0 00 00 0 0 00 AB Z AB DE 000 00 0 00 00 0 0 00 0 0 0 0 Z 0 AD BDE ABE ABE ABDE ADE BDE ABDE ABDE Z DE ABE ABD ABD ABDE ABDE ABDE FER-Digitalna logika 008/09 4
Programirljivo logičko polje matrični prikaz Z 0 Z ( 0,,,6,8,9,0,,4,,4,7, 0) (,,5,7,8,4,5,,7,8, ) Z Z 0 AD BDE ABE ABE ABDE ADE BDE ABDE ABDE DE ABE ABD ABD ABDE ABDE ABDE FER-Digitalna logika 008/09 4
FER-Digitalna logika 008/09 4 primjerenim sklopom PLA ostvariti: potpuno zbrajalo potpuno zbrajalo/odbijalo BD zbrajalo primjenom K-tablica i metode QuineMcluskey sklopom PLA ostvariti višeizlaznu unkciju: Programirljivo logičko polje (0,,,,8,9) ),,, ( (0,,6,7,4,5) ),,, ( (0,,,,6,7) ),,, ( m D B A m D B A m D B A (0,,,,8,9,6,0,6,8,0) ),,,, ( (0,,6,7,4,5,6,7,9,0,4,7) ),,,, ( (0,,,,6,7,0,,6,7,8) ),,,, ( m E D B A m E D B A m E D B A
Poluprogramirljivo logičko polje problemi s PLA: poteškoće s programirljivim sklopkama: teško ih je ispravno proizvesti redukcija brzine rada sklopa ostvarenog s PLA ograničiti mogućnost programiranja na samo jedno polje: jednostavnije za proizvodnju jetinije bolje perormanse smanjena leksibilnost FER-Digitalna logika 008/09 44
Poluprogramirljivo logičko polje poluprogramirljivo polje, PAL (engl. Programmable Array Logic) ~ jako popularno rješenje: programira se samo I polje komercijalne izvedbe: ~ 000 programirljivih sklopki programiranje AD sustavom kompenziranje reducirane unkcionalnosti ~ proizvodnja u širokom rasponu veličina (broj ulaza i izlaza, broj ulaza u ILI sklopove) FER-Digitalna logika 008/09 45
FER-Digitalna logika 008/09 46 Primjer: ostvarenje unkcije s PAL nema višestrukog korištenja P i (npr. P P 4. ) ~ ne koristi se minimiziranje višeizlaznih unkcija!!! nekorišteni P i programira se da daje 0: npr. 0 6 P Poluprogramirljivo logičko polje 5 4 P P P P P
Poluprogramirljivo logičko polje povećanje leksibilnosti ~ makroćelija (engl. macrocell): dodatno sklopovlje na izlazu ILI sklopa povratna veza na I polje ~ ostvarivanja složenijih (~ višerazinskih) sklopova FER-Digitalna logika 008/09 47
Poluprogramirljivo logičko polje Primjer: potpuno zbrajalo/odbijalo ostvareno makroćelijom K0: zbrajalo, K: odbijalo uočiti: S i D i, simetrija i i Z i primitivna makroćelija m p p p p4 A i B i i- S i i D i Z i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FER-Digitalna logika 008/09 48
Poluprogramirljivo logičko polje Ai B i i- S i i D i Z i 0 0 0 0 0 0 0 potrebne su četiri makroćelije (zašto?) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FER-Digitalna logika 008/09 49
Složeni programirljivi moduli programirljivi moduli: SPLD ( PLA, PAL) ~ skromne dimenzije sklopa složeni PLD, PLD: više blokova sa sklopovljem (~ SPLD) mogućnost internog povezivanja blokova tipične dimenzije: 00 "PALu sličnih blokova " 6 makroćelija u " PALu sličnom bloku " 5 0 ulaza u ILI sklopove EX-ILI za programirljivo komplementiranje izlaza izlaz iz makroćelije ~ sklop s tri stanja FER-Digitalna logika 008/09 50
Složeni programirljivi moduli struktura PLD: FER-Digitalna logika 008/09 5
Složeni programirljivi moduli struktura PLD: PALu slični blokovi (engl. PAL-like blocks) ~ ostvarenje primitivnije unkcije UI blokovi ~ sučelje za svaki PALu slični blok povezno ožičenje (engl. interconnection wires): programirljive sklopke za povezivanje PALu sličnih blokova broj programirljivih sklopki: ~ pažljiva procjena! (leksibilnost-eikasnost) vertikalne linije ~ ulazi u makroćeliju i izlazi iz nje problem: ~ ako je izvod I korišten kao izlaz, pripadna je makroćelija neupotrebljiva FER-Digitalna logika 008/09 5
Složeni programirljivi moduli struktura PALu sličnog bloka: FER-Digitalna logika 008/09 5
Složeni programirljivi moduli programiranje PLD ~ tipično u sustavu u kojem se koriste (engl. In-System Programming, ISP) mehanički razlozi: ~ I s velikim brojem (~00 00) krhkih i savitljivih izvoda podnožja (engl. sockets) su sumjerljivo skupa posebni konektor povezan na sve PLD u sustavu ~ JTAG pristup (engl. JTAG port, Joint Test Action Group), standard IEEE stalno (engl. nonvolatile) programiranje primjena PLD u ~50% slučajeva korištenja PLD FER-Digitalna logika 008/09 54
Programirljivo polje logičkih blokova mjera složenosti digitalnog sklopa ~ broj ekvivalentnih sklopova (engl. equivalent gates): ukupni broj NI sklopova s ulaza koji bi bili potrebni za njegovo ostvarenje SPLD/PLD podržavaju ostvarenja relativno jednostavnijih sklopova makroćelije SPLD/PLD: ~0 npr.pal s 8 makroćelija: ~60 PLD s 000 makroćelija: ~0.000 smanjenje troškova i povećanja perormansi sklop sa što manjim brojem I FER-Digitalna logika 008/09 55
Programirljivo polje logičkih blokova programirljivo polje logičkih blokova (engl. Field Programmable Gate Array, FPGA) PLD za ostvarivanje relativno velikih digitalnih sklopova ( 00.000 ekvivalentnih sklopova) logički blokovi (engl. logic blocks, LB) umjesto I/ILI polja tipična struktura FPGA: LB organizirani u dvodimenzijsko polje UI blokovi za sučelje (s izvodima I) vodovi i programirljive sklopke ~ za međusobno povezivanje LB: horizontalni i vertikalni kanali za usmjeravanje (engl. routing channels) između redaka i stupaca LBova FER-Digitalna logika 008/09 56
Programirljivo polje logičkih blokova općenita struktura FPGA: bijela polja ~ logički blokovi (LBovi) plava polja ~ programirljive sklopke FER-Digitalna logika 008/09 57
Programirljivo polje logičkih blokova općenita struktura logičkog bloka: više ulaza, jedan izlaz ~ ostvaruje jednostavnu Booleovu unkciju više tipova, najuobičajeniji koristi preglednu tablicu (LUT) s memorijskim ćelijama: ostvarivanje unkcije primjerenim MUX ~ izvedba multipleksorskim stablom MUX u unkciji permanentne memorije! tipično: LUT s 4/5 ulaza 6/ ćelija neko dodatno sklopovlje FER-Digitalna logika 008/09 58
FER-Digitalna logika 008/09 59 struktura logičkog bloka s ulaza ulaza -ulazni MUX: (, ) y i : sadržaj memorijskih ćelija ( ) ( ) 0 0 y y y y y y y y 0 0 0 0 0 y y y y Programirljivo polje logičkih blokova
FER-Digitalna logika 008/09 60 Primjer: logički blok s ulaza sadržaj ćelija y <, 0, 0, > 0 0 0 0 0 0 Programirljivo polje logičkih blokova
Programirljivo polje logičkih blokova struktura logičkog bloka s ulaza ~ 8 memorijskih ćelija FER-Digitalna logika 008/09 6
Programirljivo polje logičkih blokova "dodatna logika" u logičkom bloku ~ makroćelije: element za pamćenje (D bistabil: memorira bit) odabir izlaza ~ izlazni MUX Out Select ( In, In, In ) Select n FER-Digitalna logika 008/09 6
Programirljivo polje logičkih blokova programiranje FPGA ~ također ISP: memorijske ćelije LUT: ~ nestalne (engl. volatile): (EA)ROM za pohranjivanje sadržaja LUT automatsko punjenje (engl. loading) prilikom uključivanje uređaja FER-Digitalna logika 008/09 6
FER-Digitalna logika 008/09 64 Primjer : (dio) programiranog FPGA (,, )? Programirljivo polje logičkih blokova
Programirljivo polje logičkih blokova Primjer: ( A, B, ) B B A ostvarenje LUTom s ulaza ~ standardno "programiranje" multipleksora FER-Digitalna logika 008/09 65
FER-Digitalna logika 008/09 66 ostvarenje LUTovima s ulaza ~ kaskadiranje multipleksora Programirljivo polje logičkih blokova ) ( ),, ( A B B A B B B A
Programirljivo polje logičkih blokova Primjer:? ( A, B) A B ( B, ) B (, ) A B B (, ) A B B A B ( B ) A B B FER-Digitalna logika 008/09 67