Nachádzate sa tu

Domov » Práce študentov

7. Programovateľné logické obvody

Programovateľné obvody boli vyvinuté s cieľom poskytnúť návrhárovi číslicových obvo­dov a systémov prostriedky pre realizáciu stredne náročných obvodov. Boli tak vytvorené me­dzistupne 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  dostup­nosť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 De­vice - programovateľné logické obvody) je veľké množstvo výkonných a dostupných návrho­vých systémov.

V súčasnej dobe môžeme rozdeliť programovateľné obvody do zhruba desať skupín zobra­zených na obr. 69 , ktorý predstavuje rozširujúcu sa škálu týchto obvodov rôzneho stupňa zloži­tosti 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, cha­rakterizujú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 mak­robunká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 programo­vateľnosť prepojovacieho poľa medzi nimi a poľom hradiel AND a OR potom rozlišujú jednot­livé 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 reali­zovaný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ár­nych generátorov (programmable sequencer) atď.

c) MAX, MACH, Plus LOGIC - jedná sa o obvody s mnoho úrovňovou programovateľnou pre­pojovacou maticou, rozširujúcou poľom hradiel a poľom programovateľných makrobuniek. Ob­vody 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 ob­vodu sa uskutočňuje vytváraním, alebo prerušovaním programovateľných prepojení, alebo zápi­som 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á alterna­tí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 elek­troniky. 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 prog­ramovateľným poľom OR obr. 73. Táto architektúra, ktorá realizuje úplnú súčtovú formu logic­kej funkcie, umožňuje, aby ľubovoľná výstupná kombinácia hodnôt bola programovateľne prira­dená ľ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, gene­rá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 pre­menných. Na obr. 74 je zobrazená realizácia jednoduchého obvodu o štyroch logických funk­ciá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 funk­ciá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 mi­nimalizač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 hra­diel AND a potom je následne sčítame pomocou hradiel OR. Tak sa dostávame ku štruktúre ob­vodov 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 / regis­trový 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 prie­merne 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 obvo­dov 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 ob­vodom 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 vstup­ný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 sek­venč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ú ma­ticu 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 Genera­tor), 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ť konfigu­rovaní 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 obvo­dov. 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 roz­pojená (prerušená) súčiastka, ktorá sa stáva vodivou po napäťovom pulze (21V) na ňu privede­nom 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 naprogra­movaní (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í prog­ramovaný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 precho­dové 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 pre­pojovania logických blokov označovaných v literatúre skratkou FPGA. Firma Xiling, ktorá pro­dukuje väčšinu týchto obvodov, však začala svoje obvody označovať skratkou LCA. I keď prin­cí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ýstu­pom  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 spojo­vací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ť neob­medzené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!