2-PLD Intrgralna Kola

download 2-PLD Intrgralna Kola

of 18

Transcript of 2-PLD Intrgralna Kola

PROGRAMABILNA LOGIKA KOLA

1. DIGITALNA INTEGRISANA KOLA 1.1 Stepen integracije Sloenost integrisanog kola se meri stepenom integracije, koji predstavlja broj osnovnih elemenata (tranzistora, gejtova) realizovanih (integrisanih) u jednom kolu. Po stepenu integracije integrisana kola se mogu podeliti u pet grupa: kola malog stepena integracije SSI (Small-Scale Integration). Sadre do 100 osnovnih elemenata. (logika kola, flip-flopovi) kola srednjeg stepena integracije, MSI (Medium-Scale Integration). Sadre od 100 do 1000 osnovnih elemenata. (registri, brojai, aritmetika kola). kola visokog stepena integracije, LSI (Large-Scale Integration). Sadre od 1000 do 10000 elemenata. (8-bitni mikroprocesori, RAM, ROM) kola vrlo visokog stepena integracije VLSI (Very Large Scale Integration), sa 10000 do 100000 elemenata. (16- i 32-bitni mikroprocesori) kola ultra velikog stepena integracije, ULSI (Ultra Large Scale Integration), sa 100000 do 1.000.000 i vie osnovnih elemenata. (64-bitni mikroprocesori, memorije velikog kapaciteta (>100Mbita)).

1.2. Aplikaciono specifina integrisana kola (ASIC) Prema metodlogiji projektovanja, integrisana kola moemo podeliti na: (a) Standardne komponente (Standard Integrated Circuits - SIC) -u ovu grupu spadaju SSI, MSI, LSI, VLSI i ULSI kola, koja su, u tehnolokom smislu, proizvedena nezavisno od krajnjeg korisnika. Naime, kolo se proizvodi za nepoznatog korisnika, korisnik nema uticaj na krakteristike kola, kolo se proizvodi u velikim serijama po relativno niskoj pojedinanoj ceni. (b) Aplikaciono specifina integrisana kola, ASIC (Application Specific Integrated Circuits) - ova kola su projektovana tako da odgovaraju konkretnoj specifinoj nameni. Za razliku od standardnih komponenata, funkciju ASIC kola definie korisnik. ASIC kola se proizvode po narudbi i u relativno malim serijama to poskupljuje njihovu proizvodnju. Razlikuju se sledee vrste ASIC kola: 1. full-custom (kola potpuno po naurudbi). Kolo se u potpunosti (do nivoa osnovnih elemenata) projektuje za tano definisanu primenu. Ostvaruju se najbolje karakterisike, ali je pojedinana cena visoka. 2. semi-custom (kola po narudbi). Za fabrikaciju naruenog kola, proizvoa koristi pretprojektovane ili prefabrikovane (nedovrene) strukture koje doradom prilagoava korisnikim zahtevima. S obzirom da se na taj nain skrauje vreme pripreme proizvodnje, krajnja pojedinana cena je nia, ali su performanse loije u poreenju sa full custom projektovanjem. standard cell (standardne elije). Proizvoa nudi vei broj standardnih elija (logika kola, flip-flopovi, ali i strukture SSI, MSI sloenosti). Korisnik isporuuje proizvoau emu sainjenu od standardnih elija, na osnovu koje proizvoa izrauje ip. Pri tome proizvoa ne startuje od poetka ve samo uklapa i povezuje pretprojektovane standardne elije. gate arrays (gejtovske matrice). Kolo se izrauje na podlozi sainjenoj od velikog broja prefabrikovanih jednostavnih logikih elemenata ili MOS tranzistora koji nisu meusobno povezani. Korisnik isporuuje proizvoau emu do nivoa osnovnih elemenata na bazi koje proizvoa obavlja doradu, tj. metalizaciju, polaznog ipa.

-

3. PLD (Programmable Logic Devices), programabilna logika kola. To su integrisana kola koja se mogu konfigurisati (tj. programirati) od strane krajnjeg korisnika da bi ispunili zahteve koji se

1

tiu konkretne aplikacije. Strukturu PLD kola ini fiksan skup komponenata kakvi su logiki gejtovi, ili sloeniji logiki blokovi, meusobno spojeni programabilnim vezama. Programiranjem ovih veza, krajnji korisnik definie funkciju kola, a jednom programirana funkcija se moe menjati u potpunosti ili delimino. Sutinska razlika u odnosu na ostale tipove ASIC kola je u tome da PLD kolo programira sam korisnik, ime je on u potpunosti nezavisan od proizvoaa. 2. KLASIFIKACIJA PLD KOLA Danas je na tristu dostupan veliki broj tipova PLD kola, koji se razlikuju po nainu programiranja, sloenosti (tj. logikom kapacitetu, ili implementacionoj moi), unutranjoj strukturi, brzni rada, broju pinova. Broj dostupnih komponenata kod savremenih PLD-ova je veoma veliki tako da se sa aspekta sloenosti ova kola proteu od MSI IC do VLSI IC. Raspoloiv logiki kapacitet se kree od nekoliko stotina do nekoliko stotina hiljada ekvivalentnih gejtova, a taktna uestanost od nekoliko desetina MHz do 200 MHz. PLD kola se pakuju u kuitima sa nekoliko desetina do nekoliko stotina pinova. To znai da su PLD-ovi u stanju da implementiraju irok dijapazon kombinacionih i sekvencijalnih logikih funkcija. PLD kola su veoma pogodna za brzu izradu prototipa, ali i konanih reenja koja e se proizvoditi u malim serijama. Vreme trajanja faze projektovanja kod ovih kola je veoma kratko. U sluaju da je sutinska vrednost proizvoda kratko vreme pojavljivanja na tritu tada izbor PLD-kola predstavlja pravo reenje ak i sa aspekta cene. Prema sloenosti i organizaciji unutranje strukture, savremena PLD se mogu klasifikovati u sledee tri kategorije: 1. SPLD (Simple PLD). PLD kola srednjeg stepena integracije zasnovana na programabilnim AND-OR poljima, koja se koriste za implementaciju logikih funkcija izraenih u formi suma proizvoda (Sl. 1). 2. CPLD (Complex PLD). Sastoji se od veeg broja programabilnih logikih blokova povezanih preko centralizovane programabilne sprene mree (Sl. 2). Po unutranjoj strukturi, logiki blokovi su slini tipinom SPLD kolu. 3. FPGA (Field Programmable Gate Array). PLD kola visokog stepena integracije koje se izvodi kao polje velikog broja programabilnih logikih blokova (elija) jednostavne strukture rasporeenih na infrastrukturi koja ih meusobno povezuje. (Sl. 3).

Sl. 1 SPLD arhitektura.

2

Sl. 2 CPLD arhitektura.

Sl. 3 FPGA arhitektura. 3. TEHNOLOGIJE PROGRAMIRANJA Konfigurabilnost PLD kola omoguena je postojanjem internih programabilnih taka koje, u sutini, predstavljaju prekidake elemente koji se mogu programirati tako da se ponaaju kao kratko-spojeni ili otvoreni prekidai. U fazi programiranja kola, signali koji se dovode na ulaz kola otvaraju i zatvaraju programabilne take (elektronske prekidae) i na taj nain ostvaruju eljene oblike povezivanja internih komponenta. Kod prvih PLD kola za realizaciju programabilnih prekidaa korieni su poluprovodniki osigurai. Inicijalno svi osigurai su "nesagoreni". Pobuivanje kola neto viim naponima od radnih uslovljava da kroz PLD protiu velike struje. Kao posledica, veze koje formiraju osigurai se raskidaju. Treba pri ovome naglasiti da ne postoji metod za rekonstrukciju (obnavljanje) stanja prekidaa, tj. njegovo sagorevanje je trajno ili bespovratno. Tipian predstavnik ovakvih kola je programabilni ROM ili PROM.

3

Danas, kod SPLD i CPLD kola, za realizaciju programabilnih prekidaa, preovladavaju tehnologije zasnovane na tranzistorima sa izolovanim gejtom (floating-gate) EPROM ili EEPROM tipa, dok se kod FPGA uglavnom koriste SRAM (Static RAM) i antifuse tehnologije. 1) SRAM tehnologija programiranja. Kod ove tehnologije, konfigurisanje kola se ostvaruje pomou pass tanzistora i multipleksera koji se upravljaju SRAM elijama. Par SRAM elija - pass tranzistor se koristi kao programabilna veza izmeu dva iana segmenta (Sl. 4a). Kada je u SRAM eliji memorisana jedinica, pass tranzistor se ponaa kao zatvoren prekida male serijske otpornosti. U suprotnom, kada je stanje SRAM elije nula, pass tranzistor je otvoren prekida veoma velike seriske otpornosti. Za upravljanje multiplekserom, SRAM elije su vezane za selekcione ulaze multipleksera (Sl. 4a). Stanje SRAM elija odreuje koji je od ulaza multipleksera povezan sa izlazom. S obzirom da SRAM elije gube memorisan sadraj nakon iskljuenja napajanja, PLD kolo mora biti napunjeno konfiguracionim sadrjem pri svakom ukljuenju napajanja. To zahteva eksternu, premanentnu memoriju (tipa EPROM ili EEPROM) za uvanje konfiguracionih bitova. U fazi punjenja, sve SRAM elije PLD kola su redno povezane u strukturu pomerakog registra, a samo punjenje se vri serijskim upisom konfiguracionih bitova. U zavisnosti od tipa i kapaciteta PLD kola, punjenje traje od nekoliko milisekundi do nekoliko desetina milisekundi. Glavna prednost SPRAM tehnologije, u odnosu na druge tehnologije programiranja, je mogunost brzog reprogramiranja, koje moe biti obavljeno u sistemu. Glavni nedostaci su relativno velika povrina koju na ipu zauzimaju SRAM elije (tipina SRAM elija se realizuje sa pet tranzistora) i neophodnost ugradnje eksterne memorije. SRAM tehnologija programiranja se koristi u FPGA kolima firmi: Xilinix, Plessey, Algotronix, Concurent Logic i Toshiba.

Sl. 4 Tehnologije programiranja PLD kola: (a) SRAM; (b) EEPROM; (c) antifjuz. 2) Floating_Gate tehnologija. Radi se o istoj tehnologiji koja se sree kod EPROM i EEPROM memorija. Programabilni prekida je tranzistor sa izolovanim gejtom (EPROM tranzistor), koji se, programiranjem, moe permanentno zakoiti (Sl. 4b). Ovo se postie injektovanjem naelektrisanja na izolovani gejt tranzistora (gejt 2 na Sl. 4b). Do injektovanja nelektrisanja dolazi kada se izmeu upravljakog gejta (gejt 1 na Sl. 4b) i drejna tranzistora dovede visok napon. Injektovano naelektrisanje poveava napon praga tranzistora, tako da on, u normalnom reimu rada, ostaje stalno zakoen (tj. neprovodan). Injektovano naelektrisanje se odstranjuje izlaganjem izolovanog gejta dejstvu ultraljubiastog svetla. EEPROM tehnologija je slina EPROM tehnologiji, s tom razlikom to se odstranjivnje injektovanog naelektrisanja moe ostvariti elektrinim putem, bez ultraljubiastog svetla.

4

EPROM tehnologija, kao i SPRAM, omoguava reprogramiranje. Prednost EPROM tehnologije je to ona ne zahteva eksternu memoriju za uvanje konfiguracionih bitova, ali je zato proces reprogramiranja dui i moe se obaviti samo izvan sistema. Pored toga, serijska otpornost provodnog EPROM tranzistora je vea (oko dva puta) od seriske otpornosti pass tranzistora koji se koristi kod SRAM tehnologije. Takoe, statika potronja kola koje koristi EPROM tranzistore je zbog pull_up otpornika (vidi sliku ) vea od potronje kola koje koristi SRAM elije. EPROM tehnologija programiranja se koristi kod veine CPLD kola i kod FPGA kola firmi Altera i Plus Logic. Kod FPGA kola firmi AMD i Lattice koristi se EEPROM tehnologija. 3) Antifuse tehnologija programiranja. Antifuse je komponenta sa dva kraja koja u neprogramiranom stanju poseduje veoma veliku serijsku otpornost (tj. predstavlja otvoren prekida). Antifuse se sastoji od tri sloja. Krajnji slojevi su provodni, a sloj u sredini je dialektrik. Anifuse se postavlja izmeu dva iana segmenta, kao to je to prikazano na Sl. 4c. Neprogramiran, dalektrik izoluje provodne slojeve; programiran, on postaje permanentni spoj male otpornosti. Programiranje se vri dovoenjem visokog napona (od 11 do 20V, to zavisi od tipa antifusa) na krajeve antifuse-a. Dovoenje napona za programiranje se vri preko dodatnih pass tranzistora, koji moraju da imaju irok kanal, kao bi propustili relativno veliku struju programiranja (oko 5mA). Glavna prednost anifuse-a su njegove male dimenzije. Ova prednost je donekle redukovana neizbenim pass tranzistorima za programiranje. U poreenju sa drugim tehnologijama, antifuse u programiranom stanju ima relativno malu serijsku otpornost i parazitnu kapacitivnostu. Antifuse je normalno otvoren prekida, pa se prilikom konfigurisanja kola programiraju samo oni antifuse-ovi koje treba zatvoriti. S obzirom da je kod tipinih aplikacija broj zatvorenih prekidaa mnogo manji od broja otvorenih (tipino broj zatvorenih prekidaa ne prelazi 2% od ukupnog broja prekidaa u kolu), to programiranje kola koje koristi antifuse tehnologiju traje krae od programiranja kola koje koristi EPROM tehnologiju. Glavni nedostatak antifuse tehnologije je nemogunost reprogramiranja. Antifuse tehnologiju se sree kod FPGA kola firmi: Actel, Quck Logic i Crosspoint. 4. PLD ARHITEKTURE 4.1. SPLD kola Na Sl. 5 je prikazan opti model SPLD arhitekture. Glavni deo ove arhitekture ine dve programabilne logike matrice: (a) AND matrica za formiranje logikih proizvoda i (b) OR matrica za sumiranje logikih proizvoda. Pored AND-OR polja pojedine PLD arhitekture ovog tipa poseduju izlazni stepen koji tipino obezbeuje: (1) povratne veze sa izlaza na ulaz, (2) mogunost promene polariteta izlaznog signala, (3) mogunost da se pojedini eksterni prikljuci koriste bilo kao ulazi bilo kao izlazi i (4) memorijske elemente za memorisanje stanja izlazih signala, to omoguuje sintezu sekvencijalnih digitalnih kola.

Sl. 5 Model SPLD kola

5

Uobiajeni naziv za SPLD kolo kod koga se obe logike matrice mogu programirati je PLA (Programmable Logic Array). Pored PLA strukture u upotrebi su i AND-OR polja kod kojih je jedna od logikih matrica fiksna, a druga programabilna. Konfiguracija fiksne matrice je permanentna, izvedena u toku fabrikacije kola i ne moe se menjati od strane krajnjeg korisnika. AND-OR polje kod koga je AND matrica programabilna, a OR matrica fiksna se zove PAL (Programmable Array Logic). AND-OR polje sa fiksnom AND matricom i programabilnom OR matricom se zove ROM (Read Only Memory). U poreenju sa ostalim tipovima PLD kola (CPLD i FPGA), SPLD kola se odlikuju relativno niskim logikim kapacitetom (do nekoliko stotina ekvivalentnih gejtova). Glavna namena SPLD kola je zamena standardnih digitalnih kola niskog i srednjeg stepena integracije (Sl. 6) ime se postie uteda prostora na tampanoj ploi, pojeftinjuje proizvodnja i poveava pouzdanost u radu. Brzina rada SPLD kola je velika. Propagaciono kanjenje od pina do pina je fiksno (ne zavisi od implementirane funkcije i iznosi do nekoliko nanosekundi.

Sl. 6 Primena SPLD kola. 4.1.1 PLA Struktura PLA kola prikazana je na Sl. 7. Programiranjem odgovarajuih prekidaa (predstavljenih simbolom X na Sl. 7), svako AND kolo iz AND matrice se moe povezati sa bilo kojim podskupom primarnih ulaza i njihovih komplenata formirajui tako jedan logiki produkta. Slino, svako OR kolo iz programabilne OR matrice se moe povezati sa bilo kojim podskupom izlaza AND matrice, formirajui tako jednu logiku funkciju. U optem sluaju, PLA sa n ulaza, m izlaza i p produktnih lanova (AND kola u AND matrici) moe da realizuje proizvoljan sistem od m logikih funkcija od n promenljivih kod koga je ukupan broj razliitih produkata manji ili jednak p. Na Sl. 8, prikazan je primer realizacje sistema od 4 logike funkcije od 4 promenljive pomou PLA kola sa 4 ulaza, 4 izlaza i 7 logikih produkta. Na Sl. 8, PLA struktura je predstavljenja u pojednostavljenoj ematskoj formi. Nain predstavljanja AND i OR logikih kola u PLD strukturi prikazan je na Sl. 9.

6

Sl. 7 PLA

Sl. 8 Realizacija logikih funkcija pomou PLA

Sl. 9 a) standardni simboli; b) i c) PLD simboli. 4.1.2. PAL PAL kola su dvonivovske AND-OR kombinacione mree kod kojih je AND matrica programabilan, a OR matrica fiksna. Svaki produkt realizovan u AND matrici u permanentnom je spoju sa tano jednim izlaznim OR kolom. Na Sl. 10 je prikazana struktura PAL kola sa 4 ulaza i 4 izlaza kod koga AND matrica moe da realizuje 12 logikih produkta. Na istoj slici prikazan je naina reazlizacije jednog konkretnog sistema logikih funkcija. Produkti su podeljeni na grupe od po 3 produkta, gde se svaka grupa sumira uz pomo jednog izlaznog OR kola. U poreenju sa PLA strukturom, fiksna struktura OR matrice PAL kola namee dodatna ogranienja u pogledu mogunosti realizacije logikih funkcija. Naime PAL kolo sa m ulaza i n izlaza i homogenom raspodelom produkata sa p produkta po grupi moze da realizuje sistem od n logikih funkcija od m promenljivih pri emu svaka logika funkcija poseduje najvie p produkta.

7

Sl. 10 PAL sa 4 ulaza i 4 izlaza 4.1.3. ROM ROM je programabilno AND-OR polje kod koga je AND matrica fiksna, a OR matrica programabilna. Realizacija logikih funkcija pomou ROM-a zasnovana je na poznatom stavu iz Boolove da se svaka logika funkcija moe predstaviti u vidu sume potpunih produkta (tj. minterma). Kod ROM-a sa n ulaza, fiksna AND matrica generie sve mogue minterme od n promenljivih, dok se u OR matrici, programiranjem prekidaa, sumiraju samo oni mintermi koji ulaze u izraz za sumu minterma konkretne logike funkcije. Na taj nain, ROM sa n ulaza i m izlaza moe da realizuje bilo koji sistem od m logikih funkcija od n promenljivih. Struktura ROM-a sa 3 ulaza i 2 izlaza prikazana je na Sl. 11. Fiksni spojevi u AND matrici naznaeni su takama. U optem sluaju, kod ROM-a sa n ulaza i m izlaza fiksna AND matrica se n n sastoji od 2 n-ulaznih AND kola, a OR matrica od m 2 -ulaznih OR kola. Svako AND kolo u AND matrici je u fiksnom spoju sa jednom kombinacijom ulaza i njihovih komplemenata, formirajui tako jedan minterm. Drugim reima, AND matrica ima funkciju n/2n dekodera.

Sl. 11 Realizacija logikih funkcija pomou ROM-a

8

4.1.4. Poreenje PLA, PAL i ROM Za razliku od PLA i PAL, ROM ne postavlja ogranienja u pogledu mogunosti realizacije logikih funkcija. U tom smislu ROM se moe smatrati univerzalnim kombinacionim blokom. Meutim, kako je kapacitet ROM-a (tj. broj programabilnih prekidaa) eksponencijalna funkcija broja ulaza, ROM postaje izrazito neekonomino reenje kada je broj ulaza veliki (tipino, vei od 16). Takoe, glomazne AND i OR matrice kod ROM-a sa velikim brojem ulaz poveavaju propagaciono kanjenje signala to smanjuje brzinu rada kola. Iz tog razloga ROM se koristi za realizaciju kombinacionih kola u primenama gde se sistem logikih funkcija karakterie neregularnom strukturom u smislu da se ne moe predstaviti kompaktnom analitikom prezentacijom. Tipian primer ovakvih kola su konvertori kodova. S druge strane, PLA i PAL su pogodni za realizaciju kombinacionih mrea regularne strukture koje se mogu opisati jednostavnim logikim funkcijama u obliku sume logikih produkta, kako to su multiplekseri, dekoderi, komparatori i sl. Takoe, PLD kola PLA i PAL sturkture tipino poseduju memorijske elemente tipa flipflop koji omoguavaju direktnu realizaciju sekvencijalnih kola (tipa broja, pomeraki registar, konani automat). PLA i PAL kola se koriste iskljuivo kao PLD komonente, dok je glavna primena ROM-a smetanje programa u mikroprocesorskim sistemima.

4.2. CPLD ARHITEKTURE 4.2.1. Struktura logikog bloka Kao to je ve reeno, CPLD kola se sastoje od vie logikih blokova SPLD strukture povezanih globalnom programabilnom sprenom mreom (Sl. 2). Meutim, ak i na nivou logikih blokova, CPLD kola su obino znaajno sloenija od tipinih SPLD kola. U veini sluajeva, logiki blokovi koji se koristne kod CPLD kola se mogu smatrati nekom fomom proirenog PAL-a, tj. PAL sa elementima PLA arhitekture. Proirenje PAL se vri u cilju ekonominijeg korienja logikih proizvoda programabilne AND matrice. Kod klasinih PAL-ova, raspodela logikih proizvoda je fiksna u smislu da je svaki logiki proizvod privatan za jedno izlazno AND kolo (tj. makroeliju). Privatni logiki proizvodi koji ostaju neiskorieni ne mogu se pridruiti nekoj drugoj makroeliji. Takoe, makroelije ne mogu da imaju zajednike logike proizvode, pa u sluajevima kada se isti proizvod koristi za formiranje logikih funkcija u vie makroelija, taj proizvod mora da se formira u svakoj makroelji u kojoj se koristi. Kod savremenih CPLD kola, korienjem razliitih tehnika, ovi nedostaci su u velikoj meri otklonjeni. 4.2.2. Altera Max Firma Altera je razvila tri serije CPLD kola: Max 5000, 7000 i 9000. Sve tri serije imaju klasinu CPLD arhitekturu () koja se sastoji od skupa logikih blokova, tj LAB blokova (Logic Array Block LAB) meusobno povezanih globalnom programabilnom prekidakom matricom, tj. PIA matricom (Programmable Interconnect Matrix - PIA). U nastavku e biti opisana arhitektura kola iz serije Max 7000.

9

Sl. 12 Arhitektura CPLD kola Altera Max 7000. Arhitektura serije Max 7000 je prikazana na Sl. 12. Broj LAB blokova se kree od 2 do 16, to zavisi od tipa kola. LAB blokovi imaju strukturu proirenog PAL-a i sadre po 16 makroelija svrstanih u dve grupe od po 8 makroelija. Kolo poseduje etiri pina posebne namene (globalni takt - GCLK, globalni reset - GCLR, dozvola izlaza OE1 i OE2). Preostali pinovi su bidirekcioni (U/I) i po potrebi se mogu konfigurisati bilo kao ulazi bilo kao izlazi. Svaki U/I pin je preko U/I bloka povezana sa jednom makroelijom, kao to je to prikazano na Sl. 13. Kada se pin koristi kao izlaz, kontrola izlaznog trostatikog bafera se ostvaruje pomou jednog od dva globalna signala OE1 ili OE2. Kada se U/I pin koristi kao ulaz, izlaz tro-statikog bafera je permanento postavljen u stanje visoke impedanse, a signal doveden na pin se vodi u PIA matricu, preko koje se moe proslediti bilo kom LAB bloku. S obzirom da se izlaz svake makroelije direktno vraa u PIA matricu, u sluajevima kada se U/I pin koristi kao ulaz odgovarajua makroelija ne ostaje neiskoriene ve se moe upotrebiti za formiranje neke interne funkcije.

Sl. 13 U/I blok serije Max 7000

10

LOGIKO POLJE

Paralelni ekspanderi (iz drugih makroelija) GLOBALNIRESET

GLOBALNI TAKT

PROGRAMABILNI FLIPFLOP

PRN D QLOGICKI ALOKATOR MUX 1

MUX 2

ka U/I Bloku

ENA

CLRN

VCCMUX 2

ka PIA-i

PIA

Deljivi ekspanderi

Sl. 14 Makroelija serije Max 7000 Struktura jedne makroelije LAB bloka je prikazana na Sl. 14. Logiko polje je programabilna AND matrica, globalna na nivou LAB bloka, koja se koristi za formiranje logikih proizvoda. Za svaku makroeliju, u logikom polju se formira pet privatnih logikih proizvoda. Mada se u praktinim primenama veina potrebnih kombinacionih funkcija moe realizovati sa pet logikih proizvoda, neke kombinacione funkcije su sloenije i zahtevaju vei broj logikih proizvoda. Da bi se u takvim sluajevima obezbedilo ekonomino korienje raspoloivog logikog kapaciteta LAB bloka, koriste se paralelni ekspanderi (parallel expanders) i deljivi ekspanderi (shared expanders). Paralelni ekspanderi predstavljaju varijantu koncepta preusmeravanja logikih proizvoda kod koje makroelija i moe da pozajmi svoje logike proizvode makroeliji i+1 (ali ne i makroeliji i-1). Dodatno ogranienje je da se logiki proizvodi mogu preusmeravati samo unutar grupe od 8 makroelija, ali ne i izmeu ovih grupa ili izmeu LAB blokova. Deljivi ekspanderi se formiraju tako to se po jedan privatni logiki proizvod iz svake makroelije invertuje i vraa u logiko polje, tako da se moe pridodati bilo kom logikim proizvodu koji se formira u LAB bloku. Takoe, unakrsnim povezivanjem deljivih ekspandera mogu se formirati dodatni leevi i flipflopovi. Makroelija se sastoji od: logikog alokoatora, OR kola za sumiranje logikih proizvoda i programabilnog flipflopa. Posredstovom logikog alokatora, na ulaze OR kola je mogue prikljuiti bilo koji podskup ulaznih logikih proizvoda. Takoe, bilo koji od ulaznih logikih proizvoda se moe koristiti za upravljanje flipflopom (taktovanje, asinhrono resetovani i setovanje) i kontrolu polariteta kombinacione funkcije formirane na izlazu OR kola. Flipflop se moe konfigurisati tako da funkcionie kao D, T, JK ili SR flipflop. Za taktovanje i resetovanje flipflopa je mogue koristiti i globalne signale za takt i reset, to se regulie multiplekserima 1 i 2. Makroelija se moe konfigurisati i da obavlja samo kombinacionu funkciju, tako to se multiplekserom 3 na U/I blok direktno prikljuuje izlaz EXOR kola.

4.2.3. Primena CPLD kola Zahvaljujui relativno velikoj brzini rada i irokom asortimanu, CPLD kola nalaze iroku primenu, poev od implementacije jednostavne sprene logike, do realizacije prototipova jednostavnijih ASIC kola. Vaan razlog za sve veu primenu CPLD kola je redizajn postojeih sistema baziranih na SPLD kolima, gde se vei broj SPLD kola zamenjuje manjim brojem CPLD kola. Sistemi koji se sastoje od vie meusobno povezanih funkcionalnih modula mogu se efikasno realizovati pomou CPLD kola, tako to se svaki modul realizuje jedim logikim blokom. Opte pravilo je da su za realizaciju u CPLD tehnologiji pogodni sistemi koji zahtevaju sloenu logiku sa malim brojem flipflopova. Dobar primer takve klase kola su konani automati. Sva komercijalna CPLD kola su reprogramabilna, to omoguava jednostavnu i brzu izmenu dizajna. CPLD kola koja su reprogramabilna u sistemu omoguavaju rekonfiguraciju hardvera (npr. izmena protokola kod kola za komunikaciju) bez iskljuenja napajanja. Zahvaljujui strukturi sprene mree, tajming se moe predvideti pre nego to je sistem realizovan, to predstavlja veoma bitnu prednost CPLD kola u odnosu na FPGA kola.

11

4.3. FGPA ARHITEKTURE FPGA se izvodi kao polje velikog broja logikih blokova (elija) jednostavne strukture zasnovanih na multiplekserima ili look-up tabelama sa malim brojem ulaza, koji kao takvi mogu da ralizuju samo relativno jednostavne logike funkcije, dok se sloenije funkcije realizuju povezivanjem vie logikih blokova (Sl. 3). Logiki blok se programira upisom konfiguracionih podataka (niza bitova). Najvei broj logikih blokova sadri i registre. FPGA se moe programirati na tri razliita nivoa: (1) na nivou funkcije logikih elija; (2) na nivou sprege izmeu elija; i (3) na nivou ulaza i izlaza. Sva tri nivoa se konfiguriu preko niza bitova koji se preko eksternog izvora pune u kolo. U zavisnosti od naina konfiguracije, razlikujemo etiri tipa FPGA kola. Konfigurabilna kola (prvi tip) se mogu konfigurisati od strane korisnika samo jedanput nakon ega dodatne promene konfiguracije nisu izvodljive. (Iz ovog razloga ova kola se nazivaju one-time programmable, ili OTP). Rekonfigurabilna kola se mogu konfigurisati nekoliko puta i dele se na dve klase: statika i dinamika. Kod statikih kola (drugi tip) konfiguracioni niz se puni jedanput, na poetku rada, i dok je kolo operativno ne menja se. Nakon reseta sistema u FPGA je mogue napuniti novi niz. Kod dinamiki rekonfigurabilnih kola mogue je vriti promene u konfiguraciji u bilo kom trenutku rada kola. Dinamiki rekonfigurabilna kola se dalje mogu podeliti na potpuno rekonfigurabilna (trei tip), pri svakom novom punjenju rekonfigurie se celo kolo, i parcijalno rekonfigurabilna (etvrti tip) mogue je rekonfiguracija samo jednog dela kola. 4.3.1. Logiki blokovi FPGA kola Logiki blokovi savremenih, komercijalnih FPGA kola se znaajno meusobno razlikuju po veliini i implementacionoj moi. Dvo-tranzistorski logiki blok FPGA kola firme Crosspoint moe da realizuje samo jedan invertor, ali je zato veoma malih dimenzija. Sa druge strane, logiki blok FPGA kola iz serije 4000 firme Xilinx sadre tri tabele pretraivanja (Look Up Table - LUT) i moe da realizuje bilo koju funkciju od pet promeljivih, ali je zato znatno sloeniji. Da bi se istakle razlike u veliini i sloenosti logikih blokova, uvodi se pojam granularnost logikog bloka, a sve savremene FPGA arhitekture se neformalno klasifikuju samo u dve iroke grupe: logiki blokovi fine granularnosti i logiki blokovi grube granularnosti. Logiki blokovi fine granularnosti su veoma slini elijama gejtovskih matrica i tipino se sastoje od nekoliko tranzistora ili jednostavnih logikih elemenata. Takvi blokovi poseduju malo interno propagaciono kanjenje i s obzirom da zauzimaju malu povrinu njihov broj na jednom ipu moe biti veoma veliki. Jednostavna struktura logikih blokova obezbeuje fleksibilnost prilikom implementacije logikih funkcija. Obino se data logika funkcija moe realizovati na vie razliitih naina, to omoguava ostvarivanje eljenog kompromisa izmeu ukupne zauzete povrine (tj. broja upotrebljenih logikih blokova) i brzine rada. Meutim, to su logiki blokovi jednostavniji to je neophodno obezbediti vei broj programabilnih veza u sprenoj mrei. Prenos signala preko programabilnih veza je sporiji u poreenju sa prenosom unutar logikog bloka. Tako, sa poveanjem finoe FPGA arhitekture, sprena mrea zauzima proporcijalno sve vei deo ukupne povrine ipa, a rad kola postaje sporiji. Logiki blokovi grube granularnosti su najee zasnovani na LUT tabelama i tipino sadre dodatne logike elemente, kao to su multiplekseri i flipflopovi. Takvi logiki blokovi mogu da realizuju sloenije kombinacione i sekvencijalne logike funkcije, pa su potrebe za povezivanje logikih blokova programabilnim vezama manje. Sloeni logiki blokovi esto, pored programabilnih struktura za realizaciju logike opte namene (npr. LUT tabele), sadre i logike elemente za posebne namene, kao to su flipflopovi, generatori prenosa, SRAM blokovi. Kod nekih serija FPGA kola postoji mogunost da se svaki logiki blok nezavisno, po potrebi, postavi u jedan od nekoliko raspoloivih reima rada. U svakom od reima rada resursi logikog bloka se koriste na drugaiji nain. Kombinacija logikih elemenata posebne namene i reima rada omoguava kompaktnu realizaciju logikih struktura kao to su sabirai, komparatori, brojai. Meutim, sloeni logiki blokovi esto su nepotpuno iskorieni, a ekonominost implementacije zavisi od nivoa usklaenosti strukture sistema koji se projektuje i FPGA arhitekture. To ima za posledicu da je logika gustina sistema realizovanih u FPGA arhitekturi grube granularnosti obino manja od one koja je deklarisana za konkretno FPGA kolo. Granularnost logikih blokova i tehnologija programiranja su u bliskoj vezi. Sprene mree realizovane na bazi antifuse tehnologije poseduju veu gustinu (broj programabilnih veza po jednici povrine) i manje propagaciono kanjenje od sprenih mrea kod kojih se koristi EPROM ili SRAM tehnogija programiranja. Zbog toga kod FPGA arhitektura fine granularnosti po pravilu se koristi antifuse tehnologija programiranja. Meutim, rekonfigurabilnost, koju nije mogue ostvariti pomou antifuse tehnogije, je poeljna karakteristika FPGA arhitekture. Da bi smanjena gustina i poveano

12

propagaciono kanjenje sprenih mrea realizovnih na bazi EPROM ili SRAM tehnologije programiranja mogli da se toleriu, logiki blokovi trebaju biti sloeniji. Zbog toga rekonfigurabilne FPGA arhitekture koriste logike blokove grube granularnosti. 4.3.2. Sprena mrea FPGA kola Sprena mrea je bitna komponenta FPGA arhitekture. Na Sl. 15 je prikazan opti model sprene mree jedne tipine FPGA arhitekture. Bazini elementi sprene mree su: iani segmenti i programabilni prekidai. Programabilni prekidai su grupisani u blokove za povezivanje (Connection Blocks - C) i prekidake blokovi (Switching Blocks - S). Logiki blok (oznaeni na Sl. 15 sa L) ima odreeni broj prikljuaka sa svake strane i povezuje se sa sprenom mreom pomou C bloka. iani segmenti prolaze neprekinuti kroz C blok, a svaki pin L bloka se moe povezati sa fiksnim brojem ianih segmenata koji prolaze kroz C blok. S blokovi omoguavaju spajanje horizonalnih i vertikalnih ianih segmenata. Svaki iani segment koji utie u S blok moe se povezati sa ogranienim brojem drugih ianih segmenata koji sa drugih strana utii u isti S blok.

Sl. 15 Opti model FPGA arhitekture. 4.3.3. Actel FPGA Firma Actel u svom prizvodnom programu ima tri serije FPGA kola: Act 1, Act 2 i Act 3. Sve tri serije imaju istu bazinu arhitekturu koja se sastoji od vie nizova logikih blokova razdvojenih horizontalnim kanalima za povezivanje (Sl. 16). Kanali za povezivanje su ispunjeni ianim segmentima razliitih duina. U ovoj arhitektrui postoje i vertikalni iani segmenti, ali je njihov broj daleko manji od horizontalnih. (Vertikalni iani segmenti nisu prikazani na Sl. 16) Za realizaciju programabilnih prekidaa koristi se antifuse tehnologija. Na Sl. 17 je prikazan logiki blok iz serije Act 2. Logiki blok je baziran na multiplekserima i ima osam ulaza i jedan izlaz. Mada logiki blok ima relativno jednostavnu strukturu, dovoenjem na ulaze razliitih kombinacija logikih konstanti i promenljivih, samo pomou jednog logikog bloka mogue je realizovati 766 razliitih logikih funkcija. Upravo ovaj visok nivo funkcionalnosti ostvaren sa relativno malim brojem tranzistora predstavlja glavnu prednost logikih blokova baziranih na multiplekserima. Meutim, funkcionalnost se postie po cenu poveanja broja ulaza, zbog ega je neophodno da sprena mrea bude sloena.

13

Sl. 16 Actel FPGA

Sl. 17 ACT 2 logiki blok. Svaki ulaz logikog bloka je u vezi sa posebnim vertikalnim ianim segmentom, koji preseca sve horizontalne iane segmente iz susednog horizontalnog kanala. Izlaz logikog bloka je spojen sa vertikalim ianim segmentom koji preseca dva kanala iznad i dva kanala ispod logikog bloka. Pored ovih, postoji i odreeni broj nerasporeenih vertikalnih ianih segmenti razliitih duina, koji se koriste za ostvarivanje globalnih veza. U svaki presek vertikalnog i horizontalnog ianog segmenta ugraen je programabilni prekida. Horizontalni kanal se sastoji od 22 paralelne metalne veze koje su podeljene na odreeni broj ianih segmenata razliitih duina meusobno izlolovanih antifuse-om (najkrai iani segmenti su duine dva logika bloka, a najdui duine kanala). Programiranjem antifuse-ova mogu se formirati horizontalne veze eljene duine. Tajming Actel-ovih kola nije u potpunosti predvidljiv jer zavisi od toga na koji nain e softver za povezivanje dodeliti iane segmente u toku implementacije kola. Meutim, bogat izbor ianih segmenata razliitih duina omoguava da se koristi algoritam koji e garantovati striktna ogranienja u broju antifuse-va koji se mogu koristiti za formiranje svake point-to-point veze. 4.3.4. Xilinx FPGA Prva FPGA kola firme Xilinx, serija XC2000, su se pojavila na tritu 1985. godine. Do danas Xilinix je razvio vie novih serija od kojih su najznaajnije: XC3000, XC4000, XC5000, Spartan, Vertix. Sva Xilinix-ova FPGA kola u osnovi imaju istu arhitekturu, identinu onoj prikazanoj na slici 4. Arhitekturu ine tri osnovna tipa gradivnih elementata: (1) logiki blokovi (Configuration Logic Blocks CLB); (2) ulazno-izlazni blokovi (Input/Output Blocks- IOB) i (3) sprena mrea. CLB blokovi obezbeuju funkcionalne elemente za realizaciju korisnikih funkcija, IOB blokovi ostvaruju interfejs

14

izmeu pinova ipa i sprene mree, dok sprena mrea obezbeuje programabilnu vezu izmeu CLB i IOB blokova. U nastavku e sa vie detalja biti opisana arhitektura serije XC4000.

Sl. 18 XC4000 logiki blok Struktura CLB blokova iz serije XC4000 je prikazana na Sl. 18. CLB blok ima 9 ulaza i 4 izlaz i moe da realizuje kako kombinacione tako i sekvencijalne funkcije. Za realizaciju kombinacioni funkcija koriste se tabele pretraivanja (Look-Up Table - LUT). LUT tabele se realizuju kao SRAM memorije kapaciteta 2Kx1. Promenljive se dovode na adresne ulaze memorije, a na izlazu memorije se generie vrednost funkcije za datu kombinaciju ulaznih promenljivih. Direktnim upisom tabele istinitosti u memoriju, korisik moe da realizuje bilo koju kombinacionu funkciju od K promenljivih, dok se sloenije funkcije mogu realizovati povezivanjem vie LUT tabela. CLB blokovi iz serije XC4000 sadre tri LUT tabele, dve etvoroulazne (F i G) i jednu troulaznu (H). Promenljive za LUT tabele F i G se dovode sa odgovarajuih ulaza CLB bloka, a njihovi izlazi se direktno povezuju sa ulazima LUT tabele H, kako je to prikazano na Sl. 18. Takva organizacija omoguava da se u CLB bloku moe formirati irok spektar kombinacionih funcija. Neke od varijanti su: bilo koje dve funkcije od 4 promenljve, jedna bilo koja funkcija od 5 promenljivih, jedna bilo koja funkcija od 4 promenljive zajedno sa jo jednom funkcijom od 5 promenljivih, neke od funkcija od 9 promenljivih, i td. Mogunost realizacije kombinacionih funkcija sa veim brojem promenljivih u jednom CLB bloku je znaajna, jer se tako smanjuje broj iskorienih CLB blokova i ukupno propagaciono kanjenje. LUT tabelama F i G je pridruena logika za brzo generisane prenosa i pozajemice (Carry Logic), to bitno poboljava performanse aritmetikih kola kao to su: sabrai, odzimai i komparatori. Carry Logic (nije prikazana na Sl. 18) se aktivira odgovarajuom konfiguracijom CLB bloka. U takvoj konfiguraciji, LUT tabele F i G funkcioniu kao 2-bitni sabirai sa ugraenim generatorom paralelnog prenosa. Povezivajem vie CLB blokova mogue je formrati sabirae sa veim brojem bitova, bez znaajnog poveanja propagacionog kanjenja. Takoe, svaki CLB blok se moe konfigurisati kao SRAM blok kapaciteta 16x2 ili 32x1. Dostupnost RAM memorije u samom FPGA kolu omoguava ekonominu realizaciju memorijskih struktura kao to su registarska polja, FIFO baferi, LIFO stekovi i sl.. Za realizaciju sekvencijalnih funkcija, CLB blok sadri dva D flipflopa sa zajednikim signalom takta, K, i signalom za dozvolu taktovanja, EC. Trei zajedniki signal je S/R koji moe biti programiran nezavisno za svaki flipflop, kao signal za asinhrono setovanje ili resetovanje. Ulazni podaci flipflopova se formiraju preko multipleksera i to mogu biti ili podaci sa ulaza CLB bloka ili izlazne vrednosti LUT tabela.

15

5. PROJEKTOVANJE POMOU PLD Na dananjem nivou tehnologije PLD-ovi su postali kompleksna kola koja su u stanju da implementiraju veoma sloene logike funkcije. U fazi projektovanja sloenih digitalnih kola i sistema koriste se brojne tehnike i sredstva za automatsko projektovanje. CAD alati, jezici za opis hardvera (HDL), kao i specijalizovani softveri za logiku sintezu, logiku simulaciju, strukturnu analizu i projektovanje su od kljune vanosti za efikasno projektovanje digitalnih sistema. Faze projektovanja pomou PLD kola prikazane su na Sl. 19. U poetnoj fazi, projektant opisuje dizajn (tj. unosi dizajn) korinjenjem neke od standardnih metoda (ematski opis, HDL,..). Nakon izvrenog unosa dizajna, a u cilju verifikacije logike ispravnosti dizajna obavlja se funkcionalna (ili logika) simulacija. U sledeoj fazi vri se implementacija dizajna, tako to se opis dizajna na visokom nivou preslikava na strukturu ciljnog PLD kola. Ovo preslikavanje obuhvata: (1) logiku sintezu (konvertovanje opisa dizajna u logike jednaine i njihovu minimizaciju), (2) prilagoenje ciljnoj PLD arhitekturi (tehnology mapping) realizacija logikih jednaina uz pomo raspoloivih makro-elija (programabilne struktura kao to su look-up tabele, multiplekseri, CPLD logiki blokovi); (3) razmetaj (placement) - dodela makro-elija fizikim logikim blokovima PLD kola; (4) povezivanje (routing). Rezultat svih ovih aktivnosti je implemenatcioni opis dizajna koji sadre sve detalji vezane za internu implementaciju dizajna. Korienjem implementacionog opisa, mogue izvriti veoma preciznu simulaciju kako u pogledu funkcionalnosti tako i u pogledu tajminga. U poslednjoj fazi, na bazi implementacionog opisa dizajna generie se konfiguracioni niz koji se programira u PLD kolo.Unos dizajna Funkcionalna simulacija

Implementacija

Simulacija

Programiranje PLD kola

Sl. 19 Faze projektovanja pomou PLD kola. 5.1. UNOS DIZAJNA Za unos dizajna PLD kola (vidi sliku 1.9) koriste se etiri metode od kojh su tri tekstualno zasnovane metode (sagorljivi osigura, HDL i VHDL) i jedna grafika (unos eme kola - schematic capture). Neka od razvojnih okruenja kombinuje dva ili tri razliita metoda projektovanja, pri emu se za unos odgovarajueg gradivnog bloka njaee bira onaj metod koji je najadekvatniji. Programiranje zasnovano na sagorevanju osiguraa Svako kolo tipa SPLD, CPLD i FPGA ima odreeni broj programabilnih taaka pomou kojih se moe implementirati pojedina logika funkcija. Sve metode unoenja dizajna u ovom sluaju, rezultiraju u opis pomou koga se ukazuje koje od taaka ostvaruju vezu, a koje ne. Opis mape prekidaa kod SPLD-ova je standardizovan i naziva se JEDEC standard; to je tekstualni metod za opis programabilnih taaka koji naznaava da li su one izvedene kao kratki spojevi ili pregoreli osigurai. Ovaj postupak je dugotrajan i podloan velikom broju greaka, a primenljiv je samo kod SPLD kola. CPLD/FPGA kola se odlikuju sloenom arhitekturom i poseduju veoma veliki broj internoprogramabilnih taaka (tipino, od nekoliko desetina hiljada do nekoliko miliona). Iz tog razloga unos dizajna na nivou direktne specifikacije stanja programabilnih taaka nije praktino izvodljiv. Unos dizajna pomou HDL-a HDL (Hardware Description Language - jezik za opis hardvera) omoguava projektantu da dizajn opie na simboliki nain, u vidu sistema logikih funkicija, potujui pri tome sintaksu konkretnog HDL jezika. Nakon toga, HDL obavljao automatsku konverziju simbolikog opisa u oblik mape pregorljivih osiguraa za dato PLD kolo. Prve verzije HDL jezika su bile jako jednostavne, a osnovno to su obezbeivali bila je konverzija Bool-ovih jednaina koje su opisivale implementaciju logikog

16

sistema, u korektnu mapu osiguraa. Savremeni HDL jezici obezbeuju vii nivo apstraktnosti opsa, mada treba naglasiti da svaki proizvoa PLD kola ima svoj HDL kompilator. Primer HDL opisa 4bitnog binarnog brojaa:brojac _0 brojac _1 brojac _2 brojac _3 = / brojac _0 ; = / brojac_1 % brojac_0 ;

= / brojac_2 % (brojac_1 * brojac_0); = / brojac_3 % (brojac_2 * brojac_1 * brojac_0);

gde / predstavlja logiku NOT operaciju, % predstavlja logiku XOR, a * logiku AND operaciju. Bitske promenljive brojac_0 do brojac_3 odgovaraju filip-flopovima brojaa, dok etiri jednaine opisuju logike funkcije koje definiu nova stanja flip-flopova u zavisnosti od tekueg stanja brojaa. ematski unos dizajna Napredak PLD tehnologije, a posebno fabrikacije FPGA kola, uslovio je da se na tritu pojave softverska sredstva za ematski unos dizajna koja se najee koriste kod projektovanja ASIC kola. ematski unos ima odreene prednosti koje se ogledaju u sledeem: Efikasno podravaju hijerarhijske strukture to znai da se top-down projektovanje moe uspeno primeniti (koriste se eme na nivou podsistema). Korienje makroa, u obliku standardnih logikih funkcija kakvi su brojai, flip-flopovi, multiplekseri, itd. ini da ematski unos bude zaista moan pristup. Unos dizajna na nivou VHDL-a VHDL je HDL visokog-nivoa koji je namenjen za opis i simulaciju hardverskih sistema. Kao IEEE standard postao je iroko prihvaen od strane projektanata logikih sistema jer je nezavisan od proizvoaa PLD kola. Ova mogunost obezbeuje preusmeravanje dizajna na razliite CPLD/FPGA proizvoae (preusmeravanje nije uvek direktno (automatsko) jer za svako FPGA kolo koriste se specifina biblioteka kola). Glavna novina VHDL-a u odnosu na HDL je mogunost behavioral (algoritamskog) opisa dizajna. Behavioral opis 4-bitnog brojaa je oblika:if(brojac = 15) brojac = 0 ; else brojac = brojac + 1;

gde se '+' odnosi na aritmetiku operaciju sabiranja. U ovom sluaju, logike funkcije nisu eksplicitno navedene, ve sam HDL kompajler ima sposobnost da prepozna operaciju sabiranja i automatski generie odgovarajuu logiku. VHDL omoguava da se na lak nain, opiu digitalna kola sloenog ponaanja. Ispod je prikazana pogramska sekvenca u VHDL-u koja opisuje sinhroni bidirekcioni broja sa asinhronim resetom i sinronim paralelnim upisom. COUNT je izlaz brojaa, a je DIN paralelni ulaz. Smer brojanja se regulie signalom DIR, RESET je signal za resetovanje, a LOAD za paralelni upis.process (CLK, RESET) begin if RESET='1' then COUNT