Nachádzate sa tu
7. Programovateľné logické obvody
Programovateľné obvody boli vyvinuté s cieľom poskytnúť návrhárovi číslicových obvodov a systémov prostriedky pre realizáciu stredne náročných obvodov. Boli tak vytvorené medzistupne medzi možnosťami návrhu a realizácie systémov z obvodov SSI a MSI na jednej strane a zákazníckymi obvodmi na strane druhej. Každá z týchto krajných medzí má svoje výhody a nevýhody, pre každú existuje oblasť ideálneho použitia. Obecne môžeme povedať, že zákaznícke obvody (ASIC - Application Specific Integrated Circuits - zákaznícke integrované obvody) sú vhodné pre veľké série, kde sa neuplatní vysoká cena jeho návrhu i dlhá doba vývoja. Na druhej strane získame výrazné zmenšenie rozmerov, nižšiu cenu systému, vyšší výkon a spoľahlivosť. Oproti tomu štandardné obvody SSI a MSI nájdu uplatnenie u jednoduchších realizácií a realizácií s obvodmi LSI ako univerzálne a pomocné obvody s nízkou cenou, ľahšou dostupnosťou a krátkou dobou implementácie. Programovateľné obvody prinášajú nižšie náklady na vývoj zariadení ako u zákazníckych obvodov, vyššiu hustotu integrácie oproti obvodom SSI a MSI, ale hlavne krátku dobu vývoja, ľahšiu reprodukovateľnosť a dobrú prispôsobivosť k prípadným zmenám návrhu. Práve ľahšie zmeny v návrhu ich výrazne stavia do protikladu k obom krajným riešeniam. Možno najväčšou výhodou obvodov PLD (Programmable Logic Device - programovateľné logické obvody) je veľké množstvo výkonných a dostupných návrhových systémov.
V súčasnej dobe môžeme rozdeliť programovateľné obvody do zhruba desať skupín zobrazených na obr. 69 , ktorý predstavuje rozširujúcu sa škálu týchto obvodov rôzneho stupňa zložitosti i vnútornej štruktúry. Uvedené obvody možno rozdeliť podľa vnútornej štruktúry na obvody založené na makrobunkách (macrocell) a obvody tvorené programovateľnými logickými blokmi, ktoré sú prepojované medzi sebou programovateľným polom spojok ( PGA - Programmable Gate Array). V každej z týchto skupín mažeme previesť rozdelenie do ďalších troch podskupín, charakterizujúcich bližšie ich vnútornú štruktúru.
Obr. 69 Typy programovateľných obvodov
Architektúra programovateľných polí patriacich do skupiny obvodov založených na makrobunkách vychádza z faktu obr. 70, že akúkoľvek logickú funkciu možno vyjadriť súčtovou formou (disjunktnou formou - súčtom súčinov), ktorú možno implementovať vhodným spojením hradiel AND a OR. Programovateľnosť prepojenia vstupov a výstupov k hradlám AND a OR umožňuje konštruovať súčiny, ktoré sa následne spočítajú. Počet vstupov, výstupov a programovateľnosť prepojovacieho poľa medzi nimi a poľom hradiel AND a OR potom rozlišujú jednotlivé typy programovateľných logických polí patriacich do vyššie spomínanej skupiny.
Obr. 70 Architektúra programovateľných polí
Vstupný blok môže obsahovať vyrovnávaciu pamäť, vstupné budiče realizujúce i inverzie vstupných premenných, logiku pre programovateľné povolenie vstupu atď. Prepojenie medzi vstupmi, výstupmi a jednotlivými hradlami je zabezpečené programovateľnými spínačmi realizovanými na báze rôznych technológií. Spínačom môže byť pevné vodivé prepojenie (FUSE) programovateľné jeho prepálením (PROM) alebo spínač typu EPROM alebo EEPROM. Vlastní prepojovacie pole je buď programovateľné alebo je realizované pevným spojením. Výstupní blok môže obsahovať invertor, trojstavový budič, register (pamäťový člen) alebo i pomerne zložitú a ďalej programovateľnú výstupnú logiku tzv. výstupnú makrobunku (Output macrocell). Výstup z tohto bloku býva privedený spätnou väzbou do prepojovacieho poľa.
Obvody tejto skupiny môžeme podľa vlastností prepojovacieho poľa ďalej deliť do týchto skupín:
a) PAL, GAL, EPLD - majú programovateľnú maticu AND a pevnú prepojovaciu maticu OR, v ktorej sa obvykle prevádza súčet 8 súčinov. Architektúra obvodov je pevná s malou možnosťou zmien.
b) PLA, PLS / PSG - majú programovateľnú maticu AND i OR a preto je možné prevádzať veľký počet súčtu súčinov. U obvodov PLS a PSG je navyše rada registrov s vnútornou spätnou väzbou, ktorá nie je užívateľovi prístupná. Obvody sa používajú pre realizáciu radičov, binárnych generátorov (programmable sequencer) atď.
c) MAX, MACH, Plus LOGIC - jedná sa o obvody s mnoho úrovňovou programovateľnou prepojovacou maticou, rozširujúcou poľom hradiel a poľom programovateľných makrobuniek. Obvody sa vyznačujú schopnosťou emulovať obvody PAL a PLA.
7.1 Zákaznícke integrované obvody – ASIC
Obr. 71 Rozdelenie zákazníckych obvodov
Polozákaznícke - pri týchto metódach sa požiadavkám zákazníka prispôsobuje iba málo masiek.
Zákaznícke - tieto metódy vyžadujú prispôsobenie všetkých masiek potrebných pri výrobe IO.
Programovateľné logické obvody (PLD) - Sú monolitické IO s logickými bunkami, ktoré môžu byť programované a v niektorých prípadoch i preprogramované užívateľom. Programovanie obvodu sa uskutočňuje vytváraním, alebo prerušovaním programovateľných prepojení, alebo zápisom do pamäťových buniek.
Hradlové polia (GA) - Sú monolitické IO, v ktorých sú tranzistory umiestnené v riadkoch alebo stĺpcoch. Programovanie sa uskutočňuje pomocou jednej, dvoch, alebo až troch masiek v procese výroby. Väčšia časť masiek je spoločná pre viacerých zákazníkov, preto môžu byť čipy až do určitej úrovne technologicky vyrábané v predstihu.
Štandardné bunky - Sú monolitické IO, ktoré sú navrhované prostredníctvom existujúcej knižnice buniek, ktorá obsahuje vopred definované obvodové štruktúry. Obvod je programovaný v procese výroby prostredníctvom všetkých masiek.
Plne zákaznícke obvody - Sú tiež monolitické IO, charakteristické tým, že sú plne navrhnuté užívateľom. Obvod sa predáva jedinému zákazníkovi.
Obvody ASIC sú najlepším riešením pre väčšinu log. funkcií. Rozhodnutie, ktorá alternatíva je na trhu ASIC najvýhodnejšia, závisí od požadovanej hustoty integrácie a tiež od sériovosti zariadenia v ktorom použijeme obvod ASIC.
Obr. 72 Použitie obvodov ASIC v závislosti od počtu hradiel
7.2 Typy programovateľných logických obvodov
Programovateľné súčiastky a hlavne hradlové polia sú veľmi dôležité prvky dnešnej elektroniky. Vďaka ním si ktokoľvek môže vytvoriť vlastný zákaznícky IO prispôsobený konkrétnej aplikácií s minimálnymi nákladmi.
Všetky číslicové programovateľné súčiastky sa spoločne označujú PLD. Programovateľné logické obvody tvoria pomerne rozvetvenú rodinu obvodov, ktoré sa vzájomne líšia technológiou výroby a svojou vnútornou štruktúrou.
7.2.1 Obvody PROM
Mnoho rokov neboli obvody PROM (Programmable Read Only Memory) zaraďované do skupiny programovateľných logických polí, aj keď rada najmenších pamätí PROM bývala často používaná ako adresové dekodéry, prevodníky kódov apod. Väčšie pamäte už bývali používané pri návrhu bipolárnych mikroprocesorov pre uloženie mikroinštrukcií. Z pohľadu architektúry obvodov PLD môžeme PROM chápať ako obvody s pevným prepojovacím poľom AND a programovateľným poľom OR obr. 73. Táto architektúra, ktorá realizuje úplnú súčtovú formu logickej funkcie, umožňuje, aby ľubovoľná výstupná kombinácia hodnôt bola programovateľne priradená ľubovoľnej kombinácií vstupných hodnôt.
Na obr. 74 je uvedení príklad obvodu PROM s dvoma vstupmi a štyrmi výstupmi v symbolike obvyklej pre obvody PLD. Každé zo štyroch štvorbitových slov môžeme individuálne naprogramovať a preto sa obvody PROM používajú k realizácií prevodníkov kódov, generátorov znakov a logických kombinačných obvodov v sekvenčných obvodoch.
Hlavná nevýhoda týchto obvodov spočíva v tom, že pridaním ďalšej vstupnej premennej sa vždy zdvojnásobí veľkosť programovacej matice, čo vedie k obmedzeniu počtu vstupných premenných. Na obr. 74 je zobrazená realizácia jednoduchého obvodu o štyroch logických funkciách v architektúre PROM z pohľadu PLD.
Obr. 73 Štruktúra programovateľného logického obvodu PROM
Obr. 74 Realizácia jednoduchého obvodu o štyroch logických funkciách v architektúre PROM
7.2.2 Obvody PAL
Obvody PAL ( Programmable Array Logic) vychádza z myšlienky, že úplná súčtová forma nie je najvhodnejšou formou k realizácií logických funkcií a možno ju redukovať niektorou minimalizačnou metódou. Získanú redukovanú formu (napr. v súčtovom tvare) môžeme realizovať v štruktúre AND a OR tak, že príslušné premenné alebo ich negácie privedieme na vstupy hradiel AND a potom je následne sčítame pomocou hradiel OR. Tak sa dostávame ku štruktúre obvodov PAL obr. 72, u ktorých je programovateľné pole hradiel AND a pevné pole hradiel OR. K jednému hradlu OR je pripojení iba obmedzený počet súčinových členov s tým, že jeden súčin nemožno pripojiť k niekoľkým hradlám OR naraz. Výhodou oproti obvodom PROM je malé zväčšenie programovateľného poľa s pridaním ďalšej vstupnej premennej.
Obvody PAL sa od sebe odlišujú nie len počtom vstupov a výstupov, ale i konfiguráciou (štruktúrou) svojho výstupu. Výstup obvodu môže byť pevný, invertovaný alebo s trojstavovým budičom. Niektoré obvody majú na svojom výstupe register alebo preklápací obvod. Tieto výstupy sú potom prostredníctvom spätnej väzby privedené späť do poľa AND a umožňujú tak realizáciu logických sekvenčných obvodov. V histórii obvodov PAL existuje rada konfigurácií (štruktúr) výstupného obvodu.
Hlavnými výhodami obvodov PAL je vcelku jednoduchá architektúra, ktorá umožnila skrátiť dobu prenosu signálu cez obvod (typicky vstup / kombinačný výstup 7 ns, vstup / registrový výstup 20 ns) a možnosť programovania klasickými programátormi obvodov PROM.
Nevýhodami obvodov PAL je ich pevná nemenná architektúra, ktorá spôsobuje, že priemerne býva využité iba 30% integrovaného obvodu a musí byť prepálené cca 70% prepojok.
Obr. 75 Štruktúra programovateľného logického obvodu PAL
7.2.3 Obvody GAL
Obvody typu GAL (Genetic Array Logic) patria do skupiny reprogramovateľných obvodov PLD (EEPLD - Electrical Erasable Programmable Logic Device). V štruktúre obvodov GAL nedochádza oproti obvodom PAL k výraznému posunu, jedná sa stále o obvod z programovateľným poľom AND a pevnou maticou OR. Významná odlišnosť spočíva v možnosti elektrického preprogramovania a zavedenia pojmu makrobunka na výstupe obvodu.
Programovateľná konfigurácia výstupnej makrobunky (Output Logic Macrocell) prináša väčšiu flexibilitu obvodov GAL, ich výsledkom je možnosť realizovať funkcie (emulovať) celé rady klasických obvodov PAL. Ak pripočítame možnosť elektrického vymazania prepojovacieho poľa s jeho následným preprogramovaním a zhruba polovičnú až štvrtinovú spotrebu oproti obvodom PAL, sme u základov ich úspechu na trhu.
Najznámejšími obvodmi z tejto skupiny sú GAL16V8, GAL20V8,GAL18V10 a GAL22V10, kde písmeno V označuje konfigurovateľnú makrobunku a maximálne počty vstupných a výstupných vodičov majú rovnaký význam ako u obvodov PAL.
7.2.4 Obvody EPLD
Obvody EPLD (Erasable Programmable Logic Device) sú obvody s programovateľnou AND a OR štruktúrou, ktorú je možné vymazať ultrafialovými lúčmi a preprogramovať podobne ako je tomu u pamätí typu EPROM. Technológia EPROM umožnila dosiahnuť oproti obvodom PAL v bipolárnej technológii s prepálitelnými spojkami vyššej hustoty integrácie na čipe a tak bolo možné do obvodov integrovať nové funkcie. Základná štruktúra však zostává principiálne rovnaká. Obvody sa vyznačujú strednou dobou spomalenia signálu pohybujúcou sa od 20 do 40 ns a odberom zo zdroja cca 45 mA. Hlavnými predstaviteľmi tejto skupiny obvodov sú EP330, EP610, EP630, EP910 a EP1810.
Novým prvkom, ktorý bol u týchto obvodov použití a rozšíril sa do ďalších obvodov, je bezpečnostný bit. Po jeho naprogramovaní už nemožno obsah obvodu (bitovú mapu) prečítať a je tak zabezpečený proti kopírovaniu. Chovanie a prípadne i obsah uložený v obvode je možné analyzovať iba na základe stavov vstupných a výstupných premenných, ak sa jedná o obvod sekvenčný tak i na ich predchádzajúcich kombináciách.
7.2.5 Obvody PLA
Obvody PLA (Programmable Logic Array) sú obvody, ktoré majú programovateľnú maticu AND i maticu OR. Typickými predstaviteľmi sú obvody TIFPLA839 a TIFPLA840, ktoré majú maticu AND 14x32 (14 premenných x 32 súčinov) a maticu OR 32x6 (32 súčinov x 6 výstupov) s programovateľnou polaritou výstupov. I keď štruktúra umožňuje realizovať funkcie s väčším počtom súčinov než 8, obvody PLA sa už nedoporučujú pre realizácie nových zariadení.
7.2.6 Obvody PLS a PSG
Obvody PLS (Programmable Logic Sequencer) a PSG (Programmable Sequencer Generator), ktoré majú programovateľnú maticu AND i OR, majú skoro rovnakú vnútornú štruktúru obr. 73. Rozdiel je v tom, že u obvodov PSG je v štruktúre navyše integrovaný binárny čítač. Z väčšiny pamäťových členov je výstup privedený späť do matice AND, kde sa kombinuje so vstupnými premennými. Výstupy obvodu sú tvorené multiplexormi, ktorými môže byť konfigurovaní výstup ako kombinačný alebo registrový. Na výstupoch sú umiestené trojstavové budiče ovládané spoločným signálom OE, ktorý je vyvedený z IO. Všetky pamäťové registre majú spoločný hodinový signál, ktorý je cez obvod EX-OR (nie je v obrázku nakreslený) vyvedený z IO. Tým je umožnené zmeniť výkonnú hranu hodinového signálu zo vzostupnej na zostupnú.
Obr. 76 Štruktúra programovateľného logického obvodu PLS a PSG
7.2.7 Obvody FPGA
Obvody FPGA (Field Programmable Gate Array) sú zástupcom obvodov založených na princípe prepojovania logických blokov. Tieto obvody sa svojimi niekoľkými charakteristickými vlastnosťami, ako sú antispojky, logické moduly, rozvedenie hodinového signálu, spojovacie kanále a diagnostické obvody, odlišujú od ostatných predstaviteľov programovateľných obvodov. V porovnaní s klasickým hradlovým poľom je síce obvod FPGA drahší, ale zato poskytuje užívateľovi ekvivalentnú hustotu, ktorá je 10 až 100-krát väčšia ako umožňujú obvody PAL.
Na obr. 77 je zobrazená celková a na obr. 78 detailná architektúra obvodov FPGA firmy Texas Instruments, ktoré sa skladajú z kanálového usporiadania logických modulov (kombinačných alebo sekvenčných) ako stavebných blokov, medzi ktorými sú uložené prepojovacie kanály zabezpečujúce spojenie medzi jednotlivými blokmi. Po obvode sú potom umiestené vstupno - výstupné obvody, ktoré zabezpečujú styk s okolím.
Spínacím prvkom je u týchto obvodov antispojka (antifuse). Antispojka je normálne rozpojená (prerušená) súčiastka, ktorá sa stáva vodivou po napäťovom pulze (21V) na ňu privedenom po dobu 5 ms. Antispojka sa skladá z dvoch vodivých vrstiev od sebe oddelených tenkou dielektrickou vrstvou, ktorá v nepriepustnom stave má odpor väčší ako 100 MΩ. Po naprogramovaní (prerazení) je jej odpor približne 500 Ω. Medzi hlavné výhody antispojok patria malé rozmery, ktoré sú 20-krát menšie ako u spínača tvoreného statickou pamäťou RAM a 10-krát menšou ako u spínača typu EPROM. Pretože pracuje na opačnom princípe ako prepáli teľné spojky v obvodoch PAL, ktorých muselo byť prepálených 70 až 80 %, je pri programovaní programovaných iba 20 až 30 % všetkých spínačov.
Obr. 77 Celková štruktúra programovateľného logického obvodu FPGA
Obr. 78 Detailná architektúra obvodov FPGA
Ku kanálovým spojeniam, ktoré sú rozvedené horizontálne sú vertikálne pripojené vstupy a výstupy jednotlivých logických modulov obr. 79. Počet spojení na spojovací kanál závisí na počtu spojovacích ciest a na ich segmentácií, ktorá odpovedá počtu logických modulov i realizácii jednotlivých spojení medzi modulmi. Na obr. 79 sú zobrazené prepojenia medzi dvoma blokmi. Prepojenie označené a využíva jeden segment a dve antispojky, prepojenie označené b využíva dva segmenty a tri antispojky. Prepojenie oboch segmentov zaistíme naprogramovaním antispojky, ktorá zaistí skratovanie prechodového tranzistora. Horizontálne a vertikálne prechodové tranzistory napomáhajú pri realizácii cesty k naprogramovaniu ktorejkoľvek antispojky. Spolu s dekódujícími obvodmi založenými na posuvných registroch umožňujú adresovať ktorýkoľvek vnútorný uzol programovateľného obvodu. Pre synchrónne riadenie obvodu je v každom spojovacom kanále rozvedený posilnený hodinový signál. Vstupno - výstupné obvody môžu byť naprogramované ako vstupné, výstupné, trojstavové alebo obojsmerné.
Hlavná výhoda architektúry obvodov FPGA spočíva vo vysokej využiteľnosti 85 až 90 % logických blokov na čipe, rýchlym a plne automatickom rozložení a prepojení logických celkov návrhovým systémom pre navrhnuté zapojenie logického obvodu.
Obr. 79 Zobrazené prepojenia medzi dvoma blokmi v FPGA
7.2.8 Obvody LCA
Obvody LCA (Logic Cell Array) sú ďalšou skupinou obvodov založených na princípe prepojovania logických blokov označovaných v literatúre skratkou FPGA. Firma Xiling, ktorá produkuje väčšinu týchto obvodov, však začala svoje obvody označovať skratkou LCA. I keď princíp zostává s obvodmi predchádzajúcej skupiny rovnaký, svojimi charakteristickými vlastnosti sa LCA od nich výrazne odlišujú. Architektúra obvodov LCA sa skladá opäť z troch stavebných prvkov - programovateľných stavebných blokov CLB,
- programovateľných vstupných a výstupných blokov IOB,
- programovateľných spojovacích tras.
Základom obvodu LCA je matica identických konfigurovateľných logických blokov CLB, z ktorých každý obsahuje programovateľnú logiku a pamäťové registre. Kombinačná časť bloku realizuje Booleovské funkcie, registre môžu byť budené z výstupu kombinačnej časti alebo priamo zo svojich vstupov CLB. Výstupy registrov môžu vstupovať do kombinačnej časti priamo internou spätnou väzbou. Vstupy a výstupy sprostredkúvajú programovateľné IOB. Každý blok môže byť naprogramovaný nezávisle ako vstupný, výstupný s trojstavovým výstupom alebo obojsmerný. Vstupy môžu byť naprogramované pre prahové úrovne log.0 a log.1 TTL alebo CMOS. Každý IOB taktiež obsahuje preklápací obvod, ktorý môže byť použití ako vstupný alebo výstupný register. Spojovacie vedenie je v LCA položené horizontálne i vertikálne v stĺpcoch a riadkoch CLB. Programovateľné spínače, ktoré ležia v miestach prekríženia spojovacích vodičov, zabezpečujú spojenie medzi vstupmi a výstupmi IOB a CLB. Mimo to sú položené dlhé cesty, ktoré slúžia k rozvedeniu kritických signálov s minimálnym oneskorením. V porovnaní s obvodmi z predchádzajúcej časti je veľkou výhodou obvodov LCA možnosť neobmedzeného preprogramovania obvodu, ktoré však vedie minimálne na dvojobvodové riešenie problému. V obvodoch tretej generácie XC4000 je časť pamäti RAM užívateľsky prístupná a môže byť využívaná ako vyrovnávacia alebo zásobníková pamäť príslušnej aplikácie. Obvody LCA majú výrazne vyšší pracovný hodinový kmitočet, ktorý dosahuje hodnoty až 255 MHz. I keď sa zdá, že prepojovacia sieť bude umožňovať lepší variabilitu v spojení jednotlivých blokov, nebýva v priemere využívaných viac než 60% konfigurovateľných blokov. Pri snahe o dobré využitie počtu konfigurovateľných blokov stáva sa problematické vyhľadávanie spojovacích ciest na konci prepojovacieho algoritmu.
Kontrolné otázky 7
1. Definujte pojem programovateľný logický obvod!
2. Vymenujte aspoň 4 typy programovateľných logických obvodov!
3. Na čo slúžia programovateľné logické obvody?
4. Popíšte činnosť obvodov typu PAL!
5. Popíšte činnosť obvodov typu FPGA!