11.07.2015 Views

Programovateľné logické polia BAKALÁRSKA PRÁCA ... - Utc.sk

Programovateľné logické polia BAKALÁRSKA PRÁCA ... - Utc.sk

Programovateľné logické polia BAKALÁRSKA PRÁCA ... - Utc.sk

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Programovateľné logické <strong>polia</strong>BAKALÁRSKA PRÁCATOMÁŠ MAJERECHŽILINSKÁ UNIVERZITA V ŽILINEElektrotechnická fakultaKatedra základov inžinierstvaŠtudijný odbor: TELEKOMUNIKÁCIEVedúci bakalár<strong>sk</strong>ej práce: Doc. Ing. Zdislav Exnar, CSc.Stupeň kvalifikácie: bakalár (Bc.)Dátum odovzdania bakalár<strong>sk</strong>ej práce: 12.06.2009LIPTOVSKÝ MIKULÁŠ 2009


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaABSTRAKTTáto práca sa zaoberá rozdelením programovateľných súčiastok a bližšie popisujeProgramovateľné Logické Obvody (PLD).Práca obsahuje základné údaje a konštrukciu programovateľných logických polí(PLD), typy PLD, ich popis a blokové schémy. V práci je opísaný proces pri vývoji aprogramovaní PLD.Kľúčové slová: Programovateľné logické obvody, PLD, SPLD, CPLD, FPGA,PROM, PAL, PLA, syntéza, implementácia, programovanie, funkčná simulácia, časovásimulácia.ABSTRAKTThis work deals with the distribution of programmable devices and gives a furtherdescription of Programmable Logic Devices (PLD).The work contains the basic data and construction of programmable logic devices(PLD), PLD types, their descriptions and block diagrams. The work describes a process inthe development and programming of PLD.Keywords: Programmable logic devices, PLD, SPLD, CPLD, FPGA, PROM, PAL,PLA, synthesis, implementation, programming, functional simulation, timing simulation.2


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaANOTAČNÝ ZÁZNAMPráca obsahuje rozdelenie programovateľných súčiastok. Základnú konštrukciuPLD, ich typy, popis, blokové schémy a postup pri vývoji aplikácií týchto obvodov.3


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaOBSAH1. OBVODY PLD ..........................................................................................................101.1 Štruktúra PROM ................................................................................................111.2 Štruktúra PAL ....................................................................................................141.3 Štruktúra PLA ....................................................................................................151.4 Porovnanie najdôležitejších vlastností štruktúr PROM, PAL a PLA ................162. PLD NOVEJ GENERÁCIE .......................................................................................172.1 Klasické PLD (SPLD)........................................................................................172.2 Zložité PLD (CPLD)..........................................................................................182.3 Obvody FPGA ...................................................................................................192.4 Čiastkový záver..................................................................................................203. POSTUP PRI VÝVOJI APLIKÁCIÍ OBVODOV PLD A FPGA.............................223.1. Syntéza, Implementácia a Programovanie.........................................................243.2. Overenie funkcie a zistenie časových parametrov.............................................253.3. Programovanie obvodov PLD a FPGA..............................................................273.4. Prehľad obvodov PLD a FPGA .........................................................................313.5. Čiastkový záver..................................................................................................314. ZÁVER.......................................................................................................................335. ZOZNAM POUŽITEJ LITERATÚRY......................................................................346. VYHLÁSENIE O SAMOSTATNOSTI VYPRACOVANIA BAKALÁRSKEJPRÁCE .......................................................................................................................354


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaZOZNAM OBRÁZKOV A TABULIEKObrázok 1 - Bloková schéma PLD obvodu .......................................................................11Obrázok 2 - Štruktúra PROM ............................................................................................12Obrázok 3 - Štruktúra PAL................................................................................................14Obrázok 4 - Štruktúra PLA................................................................................................15Obrázok 5 - Štruktúra SPLD..............................................................................................17Obrázok 6 - Štruktúra CPLD .............................................................................................18Obrázok 7 - Štruktúra FPGA .............................................................................................19ZOZNAM SKRATIEK A SYMBOLOVLOPLDFPGAASICLogické obvodyProgrammable Logic Devices – Programovateľné logické obvodyon Field Programmable Gate Arrays = na mieste programovateľné LOAplication-specific integrated circuit = Aplikačno-špecifické integrovanéobvodySPLDSimple Programmable Logic Devices = Jednoduché programovateľnéObvodyCPLDPROMComplex Programmable Logic Devices = Zložité programovateľné obvodyProgrammable Read-Only Memory = elektricky jednorázovoprogramovateľná permanentná pamäť typu ROMPALPLAIOBLBPLLProgrammable Array LogicProgrammable Logic ArrayInput/Output Block = vstupno/výstupný blokLogic Block = logický blokPhase Locked Loop5


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaDLLEPROMEEPROMGALSOPPOSFETOTPHDLP&RISPRTLJTAGDSPHMIROMRAMLUTPFUEBRSRAMFIFODelay Locked LoopErasable Programmable Read-Only Memory = mazatelná pamäťElectronically Erasable Programmable Read-Only Memory = elektrickymazatelná pamäťGeneric Array LogicSum of Products – súčet súčinovProduct of Sums – súčin súčtovField-effect transistor = poľom riadený tranzistorOne Time Programmable = raz programovateľnéHardware Description LanguagePlacement & RoutingIn System Programming = programovateľné v systémeRegister Transfer LevelJoint Test Action GroupDigital Signal Procesor = digitálny signálny procesorHuman-Machine InterfaceRead-Only MemoryRandom-access MemoryLook-up TableProgramm Function UnitElectronic Batch RecordStatic Random Access MemoryFirst In, First Out6


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaPOĎAKOVANIENa tomto mieste by som chcel poďakovať predovšetkým svojmu odbornémukonzultantovi pánovi Doc. Ing. Zdislavovi Exnarovi CSc. za jeho hodnotné, odbornérady a pripomienky ktoré mi po<strong>sk</strong>ytoval počas tvorby tejto práce.7


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaÚVODČíslicové subsystémy sa dnes realizujú niekoľkými základnými spôsobmi.Komponenty číslicových subsystémov sa vyrábajú prakticky výhradne vo formeintegrovaných obvodov. Z hľadi<strong>sk</strong>a ekonomickosti tu hrá prvoradú úlohu možnosťvýroby týchto komponentov vo veľkých množstvách. To je podmienené univerzálnosťouich použitia, ktorá však prináša problém využiteľnosti toho, čo je v nich obsiahnuté. Akmá súčiastka byť čo najuniverzálnejšia, musíme zabezpečiť, aby mohla pracovať vrôznych režimoch činnosti tak, aby pre konkrétnu aplikáciu bolo možné vybrať tennajvhodnejší. To ale znamená, že bude obsahovať veľa blokov, ktoré súvisia len snastavením režimu a pre užívateľ<strong>sk</strong>ú funkciu nebudú potrebné.Riešenie tohto rozporu prinieslo približne nasledujúcu štruktúru: Digitálne integrované obvody základných radov, Mikrokontroléry a mikropočítače, Programovateľné logické obvody PLD (Programmable Logic Devices) aobvody FPGA (Field Programmable Gate Arrays). Budeme ichoznačovať názvom programovateľné obvody, Aplikačno-špecifické integrované obvody (ASIC).V bakalár<strong>sk</strong>ej práci sa budem bližšie zaoberať problematikou ProgramovateľnýchLogických polí – PLD.V prvej kapitole sa budem zaoberať obvodmi PLD (Programmable Logic Devices).Uvediem ich delenie podľa štruktúry, blokové schémy a stručné charakteristikyjednotlivých štruktúr. V podkapitole 1.1 je popis štruktúry PROM, v podkapitole 1.2popis štruktúry PAL a v podkapitole 1.3 popis štruktúry PLA.V druhej kapitole uvediem rozdelenie programovateľných obvodov a ich stručnúcharakteristiku. V podkapitole 2.1 rozoberiem problematiku klasických PLD (SPLD),v podkapitole 2.2 problematiku zložitých PLD (CPLD) a v podkapitole 2.3 to budecharakteristika a popis obvodov FPGA.V tretej kapitole som popísal postup pri vývoji aplikácií obvodov PLD a FPGA akoaj metódy a prostriedky pri návrhu aplikácií a konkrétne kroky pri ich navrhovaní.Uviedol som aj niektoré bloky návrhových systémov pre prácu s PLD. V podkapitole 3.1som popísal proces syntézy, implementácie a programovania. V podkapitole 3.2 je8


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultauvedený spôsob overenia funkcie logického poľa ako aj zistenie časových parametrov. Sútu uvedené aj druhy simulácií podľa účelu simulácie a podľa modelu, ktorý sa k nejpoužíva. V podkapitole 3.3 som rozobral spôsob programovania obvodov PLD a FPGA.V podkapitole 3.4 som uviedol najznámejšie firmy, ktoré sa zaoberajú výrobou obvodovPLD a FPGA a uviedol som aj typy obvodov ktoré vyrábajú.Podrobnejší popis firiem a nimi vyrábaných obvodov som uviedol v prílohe.9


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta1. OBVODY PLDProgramovateľné súčiastky a najmä hradlové <strong>polia</strong> sú veľmi dôležité prvky dnešnejelektroniky. Vďaka nim si ktokoľvek môže vytvoriť vlastný zákaznícky integrovanýobvod prispôsobený konkrétnej aplikácii s minimálnymi nákladmi. Často sa domnievame,že najvhodnejšie používané digitálne obvody sú osembitové mikrokontroléry. Pritomvyužitie programovateľných logických obvodov by bolo často oveľa výhodnejšie aefektívnejšie. Z tohto dôvodu by som vás rád oboznámil so základnými vlastnosťami apoužitím týchto súčiastok. Prvé užívateľom programovateľné logické obvody(Programmable Logic Device, PLD) vznikli zo snahy nahradiť pomerne rozsiahle, avšaknekomplikované kombinatorické logické obvody (typicky adresné dekodéry) jednýmobvodom aj tam, kde cena a počet výrobkov vylučovali použitie integrovaných obvodov(ASIC). Takéto obvody sa často realizovali pomocou bipolárnych PROM pamätí, totovšak bolo pomerne nákladné a ťažkopádne riešenie. Keďže väčšina takýchto obvodovpozostáva z niekoľkých mnohovstupových hradiel typu AND s výstupmi spojenýmihradlom OR, boli (firmou MMI) navrhnuté prvé PLD obvody ako matica AND/OR, kdesa prepaľovacími prepojkami (rovnakej technológie ako v PROM) určovali vstupyzapojené do AND matíc. Ne<strong>sk</strong>ôr boli na výstupy OR hradiel pridané klopné obvody, čoumožnilo aj tvorbu jednoduchých sekvenčných obvodov.Tieto jednorázovo programovateľné obvody boli nazvané PAL (ProgrammableArray Logic, programovateľná logika v tvare poľa) a v ich označení sa odzrkadľovalpočet možných vstupov a výstupov (pričom vstupy a výstupy zdieľali jednotlivé fyzicképiny), napr. PAL16L8 bol obvod s max. 16 vstupmi a max. 8 výstupmi, ktorý realizovalčisto logickú funkciu. Ne<strong>sk</strong>ôr boli prepaľovacie prepojky nahradené pamäťovýmibunkami typu EEPROM, čím sa obvody stali preprogramovateľnými. Súčasne samodifikovala ich štruktúra tak, že sa okolo výstupného klopného obvodu pridali ďalšieobvody umožňujúce napr. uvedenie výstupu do tretieho stavu alebo presmerovaniefyzického vstupu na iný vstup AND/OR matice. Tak sa vytvorila tzv. výstupnámakrocela, ktorej presná funkcia je konfigurovaná ďalšími pamäťovými bunkami. Tietoobvody sa označujú GAL (Generic Array Logic), pričom je zachovaná schéma sčíslovaním ako u PAL.Obvody PLD sú založené na dvojstupňovej štruktúre realizácie kombinačnýchlogických funkcií, známej pod označením SOP (Sum of Products – súčet súčinov).Využitím transformácie podľa de Morganovho vzťahu je v tejto štruktúre možno10


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultarealizovať aj funkcie vyjadrené v tvare POS (Produkt of Sums – súčin súčtov), presnejšiepovedané ich inverzia.VstupnýblokProgramovateľný stupeň ANDPrepojovaciepolePole hradielANDProgramovateľný stupeň ORPrepojovaciepolePole hradielORVýstupnýblokProgramovateľná spätná väzbaObrázok 1 - Bloková schéma PLD obvoduV <strong>sk</strong>upine SOP obvodov PLD musia byť niektoré prvky programovateľné. Bývajúto hlavne bloky AND a OR. Podľa toho, ktorý blok je programovateľný rozlišujemeštruktúru: štruktúra PROM – stupeň AND je zapojený pevne, stupeň OR jeprogramovateľný, štruktúra PAL – stupeň OR je zapojený pevne, stupeň AND jeprogramovateľný, štruktúra PLA – oba stupne sú programovateľné.Programovateľný stupeň sa technicky realizuje vo forme matice (poľa)programovateľných spínačov, pevný stupeň môže byť v princípe zapojený ako bežnýlogický člen. Preto sa tieto obvody nazývajú aj programovateľné <strong>polia</strong> [4].1.1 ŠTRUKTÚRA PROMNáčrt štruktúry PROM je na Obrázku 2. Úplný dekodér vytvára všetky mintermy zovstupných signálov x 1 , x 2 , ..., x n . Tie predstavujú vstupné linky programovateľného poľaOR, ktorých počet je N = 2 n pre n vstupov.Z týchto mintermov sa diódovými obvodmi vytvárajú v súčtových linkách ichlogické súčty (typ funkcie, tj. logický súčet, je symbolicky vyznačený na výstupe vspodnej časti poľa). V sérii s každou diódou je zapojená prepojka, ktorá sa pri11


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaprogramovaní môže prerušiť alebo ponechať. Mintermy, ktorých prepojka bola prerušená,sa vo výslednom súčte neobjavia.Môžeme si tak vybrať, ktoré mintermy pri programovaní pamäte do súčtu zaradíme,takže principiálne pre naprogramovanie stačí, ak máme požadovanú funkciu zadanúpravdivostnou tabuľkou. Funkcia sa teda realizuje na základe úplného súčtového tvaruzápisu a nie je ju potrebné minimalizovať. Táto realizácia je však značne neúsporná,pretože značný počet mintermov zostáva vždy nevyužitý. Nemožno tu tiež využiťminimalizáciu logických funkcií.Neúspornosť sa zníži, ak je v puzdre realizovaných viac súčtových liniek, takžemintermy sa môžu využiť vo všetkých z nich pre realizáciu toľkých funkcií, koľkosúčtových liniek je v poli vytvorených (na Obrázku 2 je to m funkcií, najčastejšie to býva8 funkcií).stupeň ANDprogramovatelné pole - stupeň ORN = 2 n k N-1x n k N-2úplnýdekodérsúčtové linkypoľa ORx 2 k 1 symboly log. súčtux 3 k 0 (typu pole)vstupné linkypoľa OR y m - 1(mintermy)výstupnýy mzosilňovačy 2y 1Obrázok 2 - Štruktúra PROMPrincíp prerušiteľných prepojok tu bol použitý len pre vysvetlenie, dnes sa užtakmer nepoužíva. Na funkcii pamäti to však nič nemení. Ďalším vývojovým stupňomboli pamäte mazatelné ultrafialovým svetlom (EPROM), v ktorých programovateľnými12


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaprvkami sú tranzistory FET s plávajúcim hradlom. Tieto pamäte sú charakteristickékremenným okienkom pre možnosť ožiarenia čipu pri mazaní. Pamäte OTP (One TimeProgrammable raz programovateľné) sa vyrábajú s rovnakým čipom v lacnejšom puzdrebez okienka. Dnes sú najpoužívanejšie pamäte mazatelné elektricky (EEPROM, FLASH),ktorých výhodou je okrem iného výrazne kratší čas potrebný na ich vymazanie.Pamäte PROM sú univerzálne v tom zmysle, že v nich možno realizovať akúkoľvekfunkciu ich vstupných premenných, čo je umožnené tým, že stupeň AND predstavujeúplný dekodér vstupných signálov tvoriaci všetky možné mintermy. Pamäte PROM savyrábajú predovšetkým ako prvky pre uchovanie programu v mikropočítači. Vyrábanépamäte sú pre bežné funkcie väčšinou príliš veľké, takže sa zriedka využije viac nežniekoľko percent z ich možností. Veľkosť celej štruktúry, predovšetkýmprogramovateľného poľa, má za následok značné parazitné kapacity, takže bežné pamätePROM sú zhruba o rád pomalšie ako iné kombinačné logické obvody.Nevýhody štruktúry PROM, najmä jej neúspornosť, je možné zmenšiť, ak namiestovšetkých mintermov sa vytvoria v prvom stupni len termy, ktoré sú <strong>sk</strong>utočne prerealizovanú funkciu potrebné. To umožňuje štruktúra PAL, ktorej náčrt pre n vstupov a mvýstupov je na Obrázku 3. Narozdiel od nákresu na Obrázku 2 sú oddeľovacie diódy naObrázku 3 pólované od súčinovej linky k vstupnej linke, takže štruktúra vytvára logickésúčiny. Ku každej výstupnej funkcii prislúcha štruktúra (bunka alebo makro bunka), ktoráobsahuje určitý vopred daný počet súčinových liniek, v ktorých sa vytvárajú termy.13


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta1.2 ŠTRUKTÚRA PALFunkcie sa v štruktúre PAL realizujú na základe minimálneho tvaru zápisu, takžepre bežné funkcie býva veľkosť programovateľného poľa podstatne menšia ako prištruktúre PROM. Táto výhoda je však zaplatená stratou univerzálnosti, pretože vštruktúre PAL možno vytvoriť len funkcie, pri ktorých počet termov nepresahuje početsúčinových liniek prislúchajúcich v štruktúre jednej bunke. Funkcie s väčším počtomtermov je možné realizovať technikou združovania buniek, a v obvodoch CPLD často ajďalšími prostriedkami. V súčasnosti sa obvody PLD so štruktúrou PAL používajúnajčastejšie.V CCx n x 2 x 1vstupné linky poľa ANDsúčinové linky (termy)symboly logického súčinu (typ pole)≥ 1y m≥ 1y mprogramovatelné pole - stupeň ANDpevné súčtové členy- stupeň ORObrázok 3 - Štruktúra PAL14


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta1.3 ŠTRUKTÚRA PLAObvody so štruktúrou PLA, kde sú oba stupne programovateľné (Obrázok 4), môžupredstavovať najúspornejšie riešenie. Súčinové termy môžu byť súčasne využité pre viacvytváraných funkcií (tomu sa hovorí zdieľanie termov makro bunkami) a môžu im byťpriraďované podľa <strong>sk</strong>utočnej potreby (alokácia termov). Nevýhodou tejto štruktúry jevšak veľký počet programovateľných prepojení, a preto v čase vývoja techniky obvodovPLD neboli obvody so štruktúrou PLA príliš úspešné. Dnes už však sú technologicképredpoklady na využívanie výhod lepšie a štruktúra PLA sa znovu objavuje v niektorýchnových typoch obvodov CPLD.Vstupné linky poľa ANDx n x 1 x 2programovatelné pole - stupeň ORV CCsúčtové linkypole ORprogramovatelné pole - stupeň ANDsymboly log. súčtu(typu pole)súčinové linky (termy)y msymboly log. súčinu (typ pole) výstupný y m – 1zosilňovačy 2y 1Obrázok 4 - Štruktúra PLA15


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta1.4 POROVNANIE NAJDÔLEŽITEJŠÍCH VLASTNOSTÍ ŠTRUKTÚRPROM, PAL A PLAVýhodou obvodov so štruktúrou PROM je univerzálnosť. Percento využívaniaštrukturálnych prvkov je však pomerne malé. Sú zhruba o rád pomalšie ako obvody soštruktúrou PAL a PLA. Vyrábané typy pamätí PROM nie sú preto zvyčajne najvhodnejšiepre realizáciu logických funkcií.Obvody so štruktúrou PAL a PLA sú úspornejšie, pretože umožňujú využiťmožnosti zjednodušenia realizovaných funkcií a vytvárajú sa len použité súčinové termy,ale táto úspornosť je na úkor univerzálnosti. Počet využiteľných termov je daný počtomsúčinových liniek vytvorených v obvode. Súčinové linky (termy) sú v štruktúre PALpevne priradené makrobunkám. V štruktúre PLA sú spoločné pre celé pole, možno ichpriraďovať makrobunkám podľa <strong>sk</strong>utočnej potreby a môžu byť zdieľané viacmakrobunkami. Z uvedených poznatkov vyplýva, že programovateľné logické obvody sadelia podľa toho, ktorý stupeň v obvode je programovateľný. Či je to stupeň OR, alebostupeň AND, alebo aj stupeň OR, aj stupeň AND. V nasledujúcej kapitole sa budemzaoberať obvodmi SPLD, CPLD a FPGA16


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta2. PLD NOVEJ GENERÁCIEVšetky digitálne programovateľné súčiastky sa spoločne označujú PLD. Číslicovéprogramovateľné súčiastky je možné podľa vnútornej štruktúry rozdeliť do troch <strong>sk</strong>upín Prvú <strong>sk</strong>upinu budú tvoriť klasické PLD (SPLD), druhú zložité PLD (CPLD) a do tretej <strong>sk</strong>upiny patria obvody typu FPGA.2.1 KLASICKÉ PLD (SPLD)Obvody SPLD sú charakteristické vnútornou štruktúrou, ktorá je znázornená naObrázku 5. Každá vodorovné čiara v programovateľnej matici AND predstavuje vždyjedno súčinové hradlo. Na vstupy každého hradla môžeme pripojiť ľubovoľnúkombináciu vstupných signálov, spätných väzieb a ich negácií. Počet vstupov každéhosúčinového hradla je však obmedzený.VSTUPYprogramovateľnámatica ANDVÝSTUPYObrázok 5 - Štruktúra SPLD17


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta2.2 ZLOŽITÉ PLD (CPLD)Klasické obvody PLD majú veľmi obmedzené prostriedky, takže umožňujúrealizovať iba jednoduchšie funkcie. Preto výrobcovia začali združovať viacej týchtoobvodov na jednom čipe spoločne s potrebnými prostriedkami pre ich prepojenia. Takétoobvody sa väčšinou označujú ako CPLD. Typická štruktúra obvodu CPLD je znázornenána Obrázku 6. Každý výrobca používa trochu inú vnútornú štruktúru obvodov, aleväčšinou vychádza z tejto schémy. CPLD od rôznych výrobcov sa obvykle líšiav realizácií blokov vlastnej programovateľnej logiky, aj keď väčšinou vychádzaz klasickej štruktúry PAL.Lokálne VSTUPY/VÝSTUPYGlobálneVSTUPY/ VÝSTUPYCLKLokálne VSTUPY/VÝSTUPYObrázok 6 - Štruktúra CPLD18


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta2.3 OBVODY FPGAObvody typu FPGA majú z programovateľných obvodov najvšeobecnejšiuštruktúru a obsahujú najviac logiky. Súčasne najväčšie obvody FPGA obsahujú 6-8miliónov ekvivalentných hradiel (dvojvstupové hradlo NAND). Typickú štruktúruobvodu FPGA je znázornená na Obrázku 7.Obrázok 7 - Štruktúra FPGABloky označené IOB (Input/Output Block) predstavujú vstupno-výstupné obvodypre každý v-v pin FPGA. Tieto bloky obvykle obsahujú register, budič, multiplexera ochranné obvody. Bloky LB (Logic Block) predstavujú vlastné programovateľnélogické bloky. Všetky bloky môžu byť rôzne prepojené globálnou maticou prepojení.Najpoužívanejšia štruktúra konfigurovateľného logického bloku je znázornená naobrázku. FPGA obvykle umožňujú prepojiť niektoré signály logických blokov priamo sosusednými bez nutnosti používať globálnu maticu prepojení. Takéto spoje majú oveľamenšie one<strong>sk</strong>orenie a umožňujú tak realizovať napríklad rýchle obvody šírenia prenosu,čo je nevyhnutné pre súčiastky alebo násobičky. Okrem blokov znázornených na obrázkuintegrujú výrobcovia do FPGA aj ďalšie prvky.Väčšina moderných FPGA obsahuje: niekoľko blokov rýchlej synchrónnej statickej pamäti RAM, veľmi často obvody FPGA obsahujú PLL (Phase Locked Loop), alebo19


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaDLL (Delay Locked Loop) pre obnovenie charakteristík hodinovéhosignálu, prípadne pre násobenie alebo delenie jeho frekvencie,tieto hradlové <strong>polia</strong> často obsahujú aj bloky vhodné pre vytváranie zložitýchsystémov pre číslicové spracovanie signálov, ako sú napríklad hardvérovénásobičky alebo mikroprocesory.2.4 ČIASTKOVÝ ZÁVERObvody PLD a FPGA predstavujú riešenie podobné riešeniu s obvodmi základnýchradov, ktoré sú však realizované na jednom čipe. Ich funkcia sa môže zmeniťnaprogramovaním. V porovnaní s procesormi však majú nižšiu univerzálnosť, čo platíhlavne pre malé a stredne veľké obvody PLD. V obvodoch FPGA je dnes možné vytvoriťprocesory softvérovo, u veľkých obvodov FPGA sú často procesory vytvorené akohardwarové jadrá. Tam, kde by požadovaná rýchlosť reakcie vyžadovala pri použitíprocesora pripojenie ďalších podporných obvodov je často výhodné realizovať celok vobvode FPGA.Obvody PLD a FPGA môžu tiež ľahko pokryť náhle požiadavky na zvýšenie výroby.V priebehu vývoja techniky programovateľných obvodov sa ustálili dve základné <strong>sk</strong>upinytýchto obvodov: Obvody s "hrubozrnnou" štruktúrou základných blokov, tzv.makrobuniek (macrocell), v ktorých môžu byť v jednoprechodovomzapojení realizované pomerne zložité logické funkcie, Obvody s "jemnozrnnou" štruktúrou relatívne malých základnýchblokov, kde sa v typických aplikáciách počíta s prepojením viacerých týchtoblokov.Jednoprechodovou realizáciou sa rozumie realizácia funkcie jedinoumakrobunkou, bez nutnosti prepájať väčší počet makrobuniek pre implementáciu tejtofunkcie. Výstupný signál makrobunky môže však byť využitý ako vstup pre ďalšiemakrobunky, takže týmto spôsobom možno vytvoriť aj viacprechodové zapojenie.Obvody prvej <strong>sk</strong>upiny sa označujú názvom obvody PLD - Programmable LogicDevices, programovateľné logické obvody. Základom makrobuniek je známadvojstupňová štruktúra používaná pri realizácii kombinačných logických funkciízapísaných v tvare súčtu násobení, doplnená prídavnými prvkami, ako sú klopné obvody,20


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultazosilňovače a podobne. Každá makrobunka predstavuje štruktúru schopnú v jednomprechode realizovať dosť zložitú funkciu, a ak sa v obvodoch PLD realizujú funkciejednoduchšie, ostáva značná časť týchto štrukturálnych prvkov nevyužitá. Často sa vobvodoch PLD tiež stretneme s prvkami umožňujúcimi znížiť túto nevýhodu napríkladuľahčením vzájomného prepojenia makrobuniek. Pri jednoprechodových realizáciách jevšak menšie meškanie ako pri viacprechodovej štruktúre. Obvody PLD sa používajúpredovšetkým pre aplikácie s menšou až strednou komplexnosťou.Obvody druhej <strong>sk</strong>upiny sa nazývajú FPGA - Field Programmable Gate Arrays.Ich architektúra vychádza z architektúry hradlových polí - Gate Arrays. Najčastejšieobsahujú bloky dvoch typov - vstupno / výstupné bloky a bloky generujúce vlastnélogické funkcie, ktoré sú však menšie ako makrobunky obvodov PLD. Využitelnosťtýchto blokov môže byť preto v princípe väčšia ako je tomu u obvodov PLD, obvodyFPGA však musia navyše obsahovať štruktúry pre vzájomné prepájanie blokov, ktorémusia byť schopné vytvoriť prepojením jednoduchých čiastkových blokov celok spožadovanou funkciou. Obvody FPGA dnes predstavujú najzložitejšie programovateľnéobvody s najvyšším stupňom integrácie.V ďalšej kapitole sa budem zaoberať postupom pri návrhoch aplikácií v obvodochPLD a FPGA a najbežnejšími blokmi návrhových systémov pre prácu s PLD. Definujempojmy syntéza, implementácia a programovanie, uvediem delenie simulácií, ktoré sapoužívajú na overenie správnosti funkcie obvodu a zistenie časových parametrov.V závere kapitoly popíšem proces programovania obvodov PLD a FPGA a prehľadniektorých firiem a nimi vyrábaných obvodov [2].21


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta3. POSTUP PRI VÝVOJI APLIKÁCIÍ OBVODOV PLD A FPGAV histórii programovateľných obvodov bolo vyvinuté veľké množstvo ichtypov. O ich komerčnej úspešnosti rozhodovalo viac faktorov. Pre úspech nestačí vyvinúťvynikajúcu štruktúru obvodu, je potrebné túto štruktúru dotiahnuť do produkčného štádias prijateľnými časovými a inými parametrami a za akceptovateľných výrobnýchnákladov. Kľúčovou zložkou sú potom metódy a prostriedky návrhu aplikácií, dnesu<strong>sk</strong>utočňovaného výlučne pomocou návrhových systémov CAD. Bez dobréhonávrhového systému je akýkoľvek obvod PLD alebo FPGA len kusom kremíka v puzdre,ktorého použiteľnosť je problematická. Táto <strong>sk</strong>utočnosť bola overená na mnohýchpríkladoch a dnes je návrh aplikácií v obvodoch s vysokou zložitosťou iným spôsobomako s pomocou účinných systémov CAD nepredstaviteľný. Platí to však do značnej mieryaj pre jednoduché obvody PLD [1].Typický postup pri návrhu obsahuje nasledujúce kroky: vytvorenie opisu vyvíjanej aplikácie - zostavenie modelu tejto aplikácie, kontrola syntaktickej správnosti opisu, funkčná simulácia - overenie správnej funkcie vytvoreného modelu, niekedysa tomuto druhu simulácie hovorí aj behaviorálna simulácia, syntéza a implementácia do cieľového obvodu, post-fit (post-place-and-route) simulácia - overenie časových parametrov,nazýva sa aj časová simulácia, naprogramovanie cieľového obvodu.Tento zoznam predstavuje hrubý náčrt postupu, pri konkrétnych návrhových systémochmôžu byť menšie alebo väčšie odlišnosti.K najbežnejším blokom návrhových systémov pre prácu s obvodmi PLD patria: parsery vykonávajúce kontrolu syntaktickej správnosti zápisu zdrojovéhotextu v jazyku HDL (Hardware Description Language), kompilátory prevádzajúce popis aplikácie z formy, ktorú si vybral návrhárako najvhodnejšiu pre daný konkrétny prípad do tvaru priraďovacíchpríkazov typu SOP (Sum of Products - súčet súčinov), ktorý sa všeobecnepoužíva ako predvolená forma pre ďalšie spracovanie (tento tvar môžemeprirovnať k asemblerov<strong>sk</strong>ým jazykom u počítačov), optimalizačné (minimalizačné) programy, ktoré majú za úlohu nájsť22


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaformu opisu, ktorá vedie na čo najekonomickejšiu realizáciu (obdobaminimalizácie, ktorú v jednoduchých prípadoch vykonávame ručnepomocou Karnaughových máp),selektory (estimátory) ponúkajúce návrhárovi na základe opisu aplikácie vjazyku HDL predbežne zvoliť cieľový obvod, ktorý pravdepodobne splnízadanie,fittery, s pomocou ktorých sa dokončia detaily návrhu pre predbežnevybraný cieľový obvod PLD, pričom sa definitívne rozhodne, či je tentoobvod vhodný,fuse assemblery, ktoré vytvoria zodpovedajúci súbor dát pre programátor,pri návrhových systémoch pre obvody CPLD k týmto prostriedkom pribúdaešte partitioner vykonávajúci rozdelenie navrhovaného subsystému na častivhodné na realizáciu v blokoch cieľového obvodu, a router generujúci ichprepojenia. V systémoch pre návrh aplikácií obvodov typu FPGA sapodobné časti algoritmu implementácie nazývajú placement a routing(rozmiestnenie a prepojenie), a programový blok je vykonávajúci a často saoznačuje <strong>sk</strong>ratkou P&R,simulátory, ktoré na základe zapísaných vstupných dát, resp. ďalších foriemopisu, ktoré vznikajú počas vývoja ako medziprodukty, vytvoria modelnavrhovaného obvodu. Naň potom aplikujú vstupné signály, ktoré sazadávajú rôznymi spôsobmi. V starších návrhových systémoch sa na topoužívajú tzv. testovacie vektory, ktoré sú súčasťou zdrojového textu.Moderné systémy založené na jazykoch HDL často používajú tzv.testovaciu jednotku (test bench). Prijaté odozvy sa porovnajú s očakávanýmia vytvorí sa hlásenie o takomto porovnaní, popr. sa časové priebehysignálov zobrazia pre kontrolu vykonávanú návrhárom.Názvoslovie a rozdelenie postupu spracovania konštrukcie sa môže pri rôznychsystémoch dosť líšiť. Ako príklad uvediem názvoslovie používané u systémov ISE firmyXilinx. Užívateľ<strong>sk</strong>é rozhranie tohto systému obsahuje niekoľko okien. V jednom z nichnazvanom Sources in Project sa zobrazujú názvy zdrojových položiek (azodpovedajúcich súborov), ktoré sú zaradené do projektu. Užívateľ kliknutím vyberiepoložku, ktorá sa bude spracovávať. K vybranej položke sa v ďalšom okne Processes for23


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaSource zobrazia procesy, ktorými je možné položku spracovávať. Typickými procesmi súsyntéza, implementácia, simulácie a vytvorenie programovacieho súboru. Priblížim terazvýznam týchto pojmov [3].3.1. SYNTÉZA, IMPLEMENTÁCIA A PROGRAMOVANIESyntéza - je to vytvorenie "netlistu", tj. zapojenie obvodových prvkov (logickéčleny, klopné obvody, registre atď.), teda vlastne vytvorenie schémy zapojenia sobvodovými prvkami, ktoré sú obsiahnuté v predpokladaných cieľových obvodoch aktoré vykonávajú požadovanú funkciu. Pri zložitých obvodoch CPLD a FPGA sú okremvyššie uvedených obvodových prvkov do netlistu zaradené zložitejšie prvky, akopamäťové bloky, násobičky a pod., špecifické pre cieľové obvody. Ak tieto špecificképrvky nie sú použité, je netlist prenosný aj na iné cieľové obvody. Ak sú použité, jeprenosnosť obmedzená len na také obvody, ktoré tieto prvky obsahujú. Akákoľvekkonštrukcia je v princípe realizovateľná bez týchto prvkov (s výnimkou veľmišpeciálnych prvkov, ako sú prvky pre úpravu hodinového signálu, na riadenie odberu znapájacieho zdroja a pod.). Ich použitie však môže výsledky syntézy výrazne zlepšiť a vmnohých prípadoch je tento výsledok bez nich tak zložitý, že je prakticky nepoužiteľný.Implementácia - zahŕňa niekoľko postupných krokov, ktoré vyústia do vytvoreniaopisu prepojenia cieľového obvodu, ktorý je podkladom pre jeho "vypálenie" do PLDalebo pre vytvorenie tzv. bitstreamu používaného pre konfiguráciu FPGA. Terminológiaje tu dosť odlišná pri cieľových obvodoch PLD a FPGA. Dôležité sú najmä krokyoznačené Fitting (u PLD) a Mapping a Place-and-Route (u FPGA). Zhruba povedané,mapovanie spočíva v priradení obvodových prvkov použitých vo výsledku syntézykonkrétnym prvkom obsiahnutým v cieľovom obvode - je analógiou výberu konkrétnychsúčiastok pri návrhu do<strong>sk</strong>y plošných spojov. Potom nasleduje rozmiestnenie (placement)týchto prvkov, teda ich priradenie zodpovedajúcim obvodových štruktúram, ktoré sú vnenaprogramovanom cieľovom obvode vytvorené. Vhodná voľba rozmiestnenia máveľký význam pre vykonanie nasledujúceho kroku - prepojenie (routing), opäť jevhodné predstaviť si analógiu s návrhom do<strong>sk</strong>y plošného spoja. Prepojením sa vypracujeplán výslednej štruktúry vrátane potrebného nakonfigurovania programovateľnýchprepojok. Požadovaný stav jednotlivých prepojok je potom obsiahnutý v súbore, ktorý jevýsledkom implementácie (bitstream). Obe posledné operácie sa často spájajú a súhrnneoznačujú symbolom P & R alebo podobnými symbolmi.24


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaMedzi syntézou a implementáciou nie je zreteľná deliaca čiara. Niektoré ichčiastkové kroky sú podobné, a tiež optimalizácia býva rozdelená do oboch týchtoprocesov najmä pri cieľových obvodoch FPGA.Programovanie (u FPGA sa častejšie používa pojem konfigurácia) - v obvodochPLD predstavuje nastavenie programovateľných prepojok. Pri obvodoch FPGAs konfiguračnou informáciou uchovávanou vo voliteľných prvkoch (RAM) je možnépreniesť konfiguračnú informáciu priamo do týchto prvkov z počítača, alebonaprogramovať konfiguračnú pamäť (najčastejšie PROM alebo EEPROM), z ktorej sakonfiguračná informácia natiahne do FPGA po pripojení napájacieho napätia alebo poprijatí signálu pre začatie procesu konfigurácie. Dnes sa prakticky používa takmervýlučne princíp programovania v systéme (ISP - In-System Programming), s výnimkounajjednoduchších obvodov SPLD. Niektoré firmy (napr. Actel) vyrábajú aj obvody FPGAs jednorazovým, ďalej už nemenným nakonfigurovaním, pre ktoré sa samozrejmekonfiguračná pamäť nepoužíva. V poslednej dobe sa objavujú aj varianty obvodov FPGAs možnosťou opakovaného programovania.3.2. OVERENIE FUNKCIE A ZISTENIE ČASOVÝCH PARAMETROVMálokedy sa podarí zostaviť popis aplikácie správne fungujúcej hneď na prvýpokus. Je teda potrebné overiť, či sme sa pri zápise nedopustili logických chýb. K tomuúčelu slúžia simulácie. Simuláciou môžeme tiež predbežne zistiť časové parametre(one<strong>sk</strong>orenie, najvyšší kmitočet a pod.) výsledok implementácie ešte <strong>sk</strong>ôr, ako mámecieľový obvod fyzicky k dispozícii. Rozoznávame niekoľko druhov simulácií podľa účelusimulácie a podľa modelu, ktorý sa k nej používa.Funkčná (behaviorálna) simulácia na úrovni RTL (Register Transfer Level -behaviorálna úroveň) sa typicky vykonáva pre overenie syntaxe zapísaného kódu a naoverenie, či model správne funguje bez toho, aby sa prihliadalo k časovému rozmeru.Používa sa k nej model reprezentovaný zdrojovým textom, t.j. textom, ktorýmkonštruktér popísal svoju predstavu o funkciu vyvíjaného zariadenia, a vykonáva sa predďalším spracovaním tohto textu systémom, preto sa jej niekedy tiež hovorí simulácia predfittingom alebo pred prepojením (pre-fit alebo pre-route simulation). Tento modelneobsahuje údaje o špecifických vlastnostiach cieľového obvodu, ako napríklad údaje omeškaní a je preto pomerne jednoduchý. Funkčná simulácia je preto zvyčajne rýchla.25


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaČasová simulácia používa model generovaný systémom pri implementácii. Vtomto modeli už môžu byť zahrnuté <strong>sk</strong>utočné parametre cieľového obvodu arešpektované výsledné prepojenia jeho štruktúrnych prvkov, takže touto simulácioumôžeme zí<strong>sk</strong>ať podrobné a relatívne presné údaje o časových pomeroch - odtiaľ pochádzanázov tohto druhu simulácie. Podľa použitého modelu sa jej tiež hovorí simulácia pofittingu alebo po prepojení (post-fit alebo post-route simulation). Simuláciapost-fit (post-route) modelu býva časovo oveľa náročnejšie ako funkčná simulácia.Simulátory, ktoré sú schopné všetky tieto druhy simulácie vykonávať, sú veľmi zložité adrahé programové celky a sú spravidla vytvárané špecializovanými firmami.Pri jednoduchých konštrukciách sa zvyčajne časová simulácia robí až nakoniec poprepojení. V zložitejších prípadoch, kedy je vykonanie jednotlivých krokovimplementácie časovo náročnejšie, býva vhodné <strong>sk</strong>ontrolovať aspoň orientačne údajezí<strong>sk</strong>ané statickou časovou analýzou aj po týchto čiastkových krokoch - keď výsledok zčasového hľadi<strong>sk</strong>a zjavne nevyhovuje, nemá zmysel pokračovať v implementácii a jepotrebné sa vrátiť k predchádzajúcim krokom, napríklad použiť inú voľbu nastaveniaoptimalizačnej stratégie pri syntéze alebo priamo použiť iné zapojenie, a potom opakovaťsyntézu a implementáciu s novým zapojením. Post-route simuláciou alebo statickoučasovou analýzou potom zí<strong>sk</strong>ame výsledné časové parametre.Je dôležité uvedomiť si, že funkčná simulácia sa vykonáva s modelom, ktorýpredstavuje popis zapísaný pôvodne konštruktérom v jazyku HDL, čo je jazyk z triedypočítačových jazykov a programovacích jazykov pre formálny popis digitálnej logiky aelektronických obvodov. Simulácia je dnes už natoľko dokonale rozpracovaná, ževýsledky funkčnej simulácie prakticky vždy zodpovedajú definícii príslušnéhojazyka (aspoň u profesionálnych simulátorov, akým je napríklad ModelSim). Na rozdielod toho, syntéza a implementácia odráža vždy štruktúru cieľových obvodov, ktoré savyvíjajú veľmi rýchlo a niekedy sa preto stáva, že programové nástroje pre syntézu aimplementáciu, ktoré tieto zmeny musia sledovať, obsahujú chyby, takže vytvorianesprávnu štruktúru pre cieľový obvod.Časové údaje je možné zí<strong>sk</strong>ať statickou časovou analýzou (static timing analysis),ktorá sa vykonáva na základe syntetizovaného modelu. Z hľadi<strong>sk</strong>a prevedenia je oveľamenej náročná ako časová simulácia, nie je k nej potrebný simulátor a pri dobrespracovaných návrhových systémoch je vcelku dosť presná. Pri statickej časovej analýzesystém vyhodnocuje one<strong>sk</strong>orenia všetkých prvkov, ktoré sú zaradené do cesty signálu aich súčtom zistí celkové one<strong>sk</strong>orenie. Tak sa určí pri kombinačných obvodoch26


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaone<strong>sk</strong>orenie signálu medzi vstupnými a výstupnými vývodmi obvodu. Pri synchrónnychsekvenčných systémoch sa týmto postupom stanovuje najdlhšie one<strong>sk</strong>orenie od výstupuregistrov k dátovým vstupom nasledujúcich registrov. Pripočítaním obdobia reakcieregistra a požadovaného predstihu dát pred aktívnou hranou hodinového signálu sa zí<strong>sk</strong>anajmenšia prípustná perióda (najvyšší kmitočet) hodinového signálu. Výhodou statickejčasovej analýzy okrem menšej náročnosti na počítač je, že nemusíme zostavovaťtestovacie vektory, ako je to nevyhnutné pri simulácii. Táto analýza je veľmi vhodná prezí<strong>sk</strong>anie časových parametrov synchrónnych subsystémov. Nie je však vhodná alebodokonca je nepoužiteľná pre systémy obsahujúce asynchrónne prvky (záchytné registre,kombinačné spätnoväzbové slučky (napríklad známe asynchrónne obvody RS apodobne).Pri obvodoch SPLD, kde všetky signály prechádzajú dráhou od vstupov cezprogramovateľné pole a makrobunku k výstupom, je ich meškanie prakticky určené lenpočtom týchto prechodov a funkčná simulácia doplnená uvedením počtu prechodov jepostačujúca. Pri obvodoch CPLD je toto one<strong>sk</strong>orenie už zložitejším spôsobom závislé nanakonfigurovaní obvodu, a časové parametre konštrukcií implementovaných do obvodovFPGA prakticky nemôžeme zí<strong>sk</strong>ať inak ako systémom CAD (statickou časovou analýzoualebo simuláciou).3.3. PROGRAMOVANIE OBVODOV PLD A FPGAProgramovaním tu máme na mysli proces, pri ktorom sa do cieľového obvodupresúva informácia o požadovanej funkcii (konfiguračné informácie) a zachytáva sa vjeho pamäťových bunkách. Pri obvodoch FPGA sa tento úkon častejšie nazývapersonalizácia alebo konfigurácia obvodu. Programovanie alebo konfigurácia savykonáva buď v zariadení zvanom programátor alebo priamo v systéme.V časoch, keď technika obvodov PLD bola v začiatkoch, si túto operáciu zaisťovaliužívatelia sami podľa návodu výrobcov obvodov PLD. Štruktúry týchto obvodov boli vtejto dobe robustné a neboli príliš citlivé na presné dodržanie časových a napäťovýchparametrov programovacích impulzov. Postupne však dochádzalo k zjemňovaní štruktúrobvodov PLD, ktoré bolo sprevádzané zvýšením ich citlivosti na uvedené parametresignálov pri programovaní. To malo za následok, že sa znižovala spoľahlivosť obvodovnaprogramovaných nie úplne optimálnym spôsobom. Začali sa objavovať reklamácieužívateľov spôsobené nie výrobnými chybami obvodov, ale nesprávnymnaprogramovaním. Preto výrobcovia obvodov PLD prestali uverejňovať programovacie27


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultapredpisy a odporúčajú teraz používať certifikované programátory vyrábané firmami, ktorésvoju technologickou úrovňou zabezpečujú dodržiavanie prísnych programovacíchpredpisov. Prirodzene sú tieto certifikované programátory drahšie ako programátoryneosvedčené, zabezpečujú však spoľahlivosť funkcie programovateľných obvodov. Ichparametre sa však časom môžu meniť, takže vzniká potreba ich pravidelnej kontroly.Okrem toho sa tiež menia programovacie algoritmy, takže ak sa naprogramoval napríkladobvod jednej firmy v súlade s algoritmom inej firmy alebo algoritmom pre inú <strong>sk</strong>upinuobvodov PLD s rovnakým typovým označením, ale iným programovacím predpisom,môže dôjsť k nespoľahlivej funkcii programovaného obvodu. Tá sa nemusí prejaviťhneď, ale až po čase, čo je oveľa horšie, pretože medzitým môže byť vyrobené značnémnožstvo výrobkov, ktorých funkcia nie je spoľahlivá a firma používajúca takýprogramátor môže mať značné problémy s údržbou svojich výrobkov alebomôže úplne stratiť u zákazníkov kredit, čo pre ňu môže mať fatálne následky.Ide o programovanie sériových výrobkov, je preto ri<strong>sk</strong>antné používanie lacnéprogramátory.Ponúkajú sa potom tri cesty, ako zabezpečiť spoľahlivosť výrobkov: zakúpiť certifikovaný programátor a zabezpečiť pravidelnúaktualizáciu programovacích predpisov a kontrolu jeho funkcie, využiť služby firiem, ktoré takéto programátory majú a ponúkajú ichpoužitie, používať obvody programovateľné v systéme (in-systemprogrammable).Posledná možnosť sa javí z mnohých hľadí<strong>sk</strong> najperspektívnejšie. Obvodyumožňujúce tento typ programovania sa označujú <strong>sk</strong>ratkou ISP. Obsahujú malýjednoúčelový programátor integrovaný na čipe, ktorého správna funkcia je zaručenávýrobcom obvodu. Programátor je riadený z počítača cez štyri až päť vodičové rozhranie,ktoré sa pripája k štandardnej bráne počítača pomocou programovacieho kábla (downloadcable). Tieto káble nebývajú príliš drahé a výrobcovia obvodov PLD často uverejňujúnávody na ich výrobu. Programovacie algoritmy bývajú dostupné na internete vo formefreeware. Okrem spoľahlivosti naprogramovania majú obvody typu ISP ďalšie výhody.Dnes sa vyrábajú programovateľné obvody s počtom vývodov i cez tisíc. Mechanicképrevedenie objímok, do ktorých by sa obvody vsadzovali, je značne náročné a predstavuje28


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultapotenciálny zdroj porúch. Manipulácia s obvodmi s jemnými vývodmi tiež môže priniesťproblémy s ich ohnutím alebo odlomením. Takéto ohnutie môže byť veľmi nepríjemné, amôže sa to ľahko stať pri každej manipulácii s obvodmi. Preto možnosť zapájať obvodybez zbytočnej manipulácie a naprogramovať ich pospájkované v cieľovom zariadenípredstavuje veľkú výhodu. Programovanie sa často spája s moderným spôsobomtestovania metódou hraničného testu (boundary scan) - používa sa k tomu tzv.rozhrania JTAG. Odpadajú tak mechanické operácie spojené s programovaním privýrobe. Navyše je možné meniť naprogramovanie obvodu dodatočne podľa potrebyzmenenit funkcie zariadenia (update), podobne, ako je to dnes bežné pri aktualizáciípočítačových programov prostredníctvom internetu. Všetky tieto výhody spôsobili, že svýnimkou najjednoduchších obvodov SPLD sú dnes takmer všetky obvody PLD a FPGAvyrábané v prevedení ISP [7].Konfiguračné informácie môžu byť v obvodoch PLD a FPGA uložené niekoľkýmispôsobmi: v plávajúcich hradlom tranzistorov typu FET, v bunkách SRAM (RWM) - statickej RAM pamäte, v analógií prerušiteľných prepojok – v angličtine nazývaných fuse (dnesje častejší princíp, ktorý má opačné vlastnosti, tj. vnenaprogramovanom stave je prvok rozpojený a programovacímpostupom sa prepojí – tzv. antifuse).Obvody CPLD dnes používajú najčastejšie pamäťové prvky typu FLASH -elektricky programovateľné aj mazatené, s mazaním celej pamäte naraz. Často majúsamotné prvky štruktúry obvodu PLD charakter SRAM a konfiguračnú pamäť typuFLASH, ktorá je integrovaná na čipe, čo nemusí byť užívateľovi na prvý pohľad vôbeczrejmé. Pri pripojení napájacieho napätia sa automaticky rozbehne konfiguračný proces,ktorý obvod naprogramuje v čase, ktorý je pre užívateľa takmer nepostrehnuteľný. Abykonfigurácia prebehla správne, je potrebné, aby napájacie napätie nabiehalo monotónne.To je pri bežnom prevedení dosiek plošných spojov zvyčajne splnené. Je však potrebné,aby napájací zdroj mal dostatočnú rezervu v prúdovej zaťažiteľnosti. Pri nedodržanítohto odporúčania sa môže stať, že prenos konfiguračnej informácie z pamäte FLASH dobuniek SRAM prebehne nesprávne a obvod potom nevykonáva požadovanú funkciu - tosa niekedy (zriedka) stáva napríklad pri pripájaní laboratórneho prípravku k napájaciemu29


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultazdroju, ak pri tom dochádza k od<strong>sk</strong>akovaniu pripojeného vodiča. Počet programovacích amazacích cyklov pamäťou FLASH sa zaručuje zvyčajne v rozmedzí 100 až 10 000cyklov.Väčšina obvodov FPGA používa konfiguračné pamäťové prvky typu SRAM. Pritakýchto obvodoch je pri pripojení napájacieho napätia potrebné konfiguračnúinformáciu do pamäťových prvkov vždy znova nasunúť. K jej uchovaniu slúži zvyčajnepamäť PROM alebo FLASH, ktorá sa s obvodom FPGA prepája niekoľkými vývodmi -programovacím rozhraním. Toto rozhranie býva najčastejšie sériové, niekedy sa všakpoužíva aj paralelné osembitové, čím sa prenos konfiguračnej informácie zrýchli. Dobapotrebná na prenos konfiguračnej informácie do obvodu FPGA býva v zlomkochsekundy. Konfiguračná informácia sa do FPGA môže nahrať i z počítača alebo zprocesora, čo môže byť výhodné z cenových dôvodov. Konfiguračné informácie sanásledne uložia v pamäti programu procesora, ktorá býva lacnejšia ako špeciálnakonfiguračná pamäť. Dnes však nie je cena konfiguračných pamätí vysoká a totohľadi<strong>sk</strong>o nebýva často významné. Avšak v spotrebnej elektronike sa dnes obvody FPGAzačínajú v dôsledku znižovania ceny presadzovať namiesto predtým používanýchobvodov ASIC, a tu môže byť aj malá cenová výhoda lacných pamätí dôležitá. Okremprogramovacieho rozhrania majú obvody FPGA obvykle tiež rozhranie JTAG, ktoré sapoužíva na iné účely, ako pre testovanie a podobne. Konfiguračné pamäte sa obvykle ajprogramujú rozhraním JTAG. Programové vybavenie pre programovanie konfiguračnýchpamätí, obvodov CPLD i FPGA je zvyčajne integrované do návrhových systémov, môževšak byť v počítači inštalované aj samostatne. Vyrábajú sa však aj obvody FPGA suchovaním konfiguračnej informácie v prvkoch typu antifuse - takéto obvody FPGAvyrába napríklad firma Actel. Ich nevýhodou je, že raz konfigurovaný obvod FPGA nie jemožné nakonfigurovať inak.V poslednej dobe sa začínajú objavovať obvody FPGA s konfiguračnými prvkamitypu SRAM, ktoré majú priamo v puzdre integrovanú konfiguračné pamäť. Pri pripojenínapájacieho napätia sa konfiguračná informácia automaticky prepíše z konfiguračnejpamäte do konfiguračných prvkov podobne ako je to u obvodov CPLD. Užívateľ taknemusí strácať čas s návrhom zapojenia konfiguračného obvodu a s jeho realizáciou nado<strong>sk</strong>e plošného spoja, odpadá riziko chyby v tomto zapojení a znižuje sa rizikoneoprávneného kopírovania. Nevýhodou je zatiaľ vyššia cena takýchto obvodov FPGA.Cenové pomery sú však rýchlo menlivé [5].30


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta3.4. PREHĽAD OBVODOV PLD A FPGANajvýznamnejší výrobcovia programovateľných logických obvodov obvyklevyrábajú niekoľko radov FPGA aj CPLD a ponúkajú (niekedy v spolupráci s ďalšímifirmami) aj príslušné vývojové prostriedky [8].Niektorí významní výrobcovia : Altera, Xilinx, Lattice Semiconductor, Actel, Atmel, QuickLogic.Podrobnejší popis firiem a obvodov ktoré vyrábajú, som uviedol v prílohe. Ďalšiučasť prílohy tvorí tabuľka, ktorá zobrazuje vývoj PLD a FPGA v časovom slede ako boliuvádzané na trh jednotlivými firmami [6].3.5. ČIASTKOVÝ ZÁVERZ poznatkov uvedených v tejto kapitole vyplýva, že návrh logického obvoduobsahuje nasledujúce kroky:Prvý krok je vytvorenie opisu vyvíjanej aplikácie - zostavenie modelu tejtoaplikácie.Druhý krok pozostáva z kontroly syntaktickej správnosti opisu.V treťom kroku sa vykonáva Funkčná (behaviorálna) simulácia, ktorá slúži naoverenie syntaxe zapísaného kódu a na overenie, či model správne funguje bezprihliadania na časový rozmer. Niekedy sa jej tiež hovorí simulácia pred fittingom alebopred prepojením (pre-fit alebo pre-route simulation).Štvrtý krok pozostáva zo syntézy a implementácie do cieľového obvodu. Toznamená, že sa vytvorí "netlist", čo je vlastne vytvorenie schémy zapojenia s obvodovýmiprvkami, ktoré sú obsiahnuté v predpokladaných cieľových obvodoch. Ďalej savykonávajú kroky, ktoré vyústia do vytvorenia opisu prepojenia cieľového obvodu, ktorýje podkladom pre jeho "vypálenie". Nastáva výber konkrétnych súčiastok pri návrhudo<strong>sk</strong>y plošných spojov. Potom nasleduje rozmiestnenie (placement) týchto prvkov čo máveľký význam pre vykonanie nasledujúceho kroku - prepojenie (routing). Vypracuje sa31


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaplán výslednej štruktúry vrátane potrebného nakonfigurovania programovateľnýchprepojok. Požadovaný stav jednotlivých prepojok je potom obsiahnutý v súbore, ktorý jevýsledkom implementácie (bitstream).Piatym krokom je časová (post-fit) simulácia, ktorou môžeme zí<strong>sk</strong>ať podrobné arelatívne presné údaje o časových pomeroch. Časové údaje je možné zí<strong>sk</strong>ať aj statickoučasovou analýzou (static timing analysis), ktorá je oveľa menej náročná ako časovásimulácia a nie je k nej potrebný simulátor, je vcelku dosť presná.Posledným krokom je samotné naprogramovanie cieľového obvodu, čo je proces,pri ktorom sa do cieľového obvodu presúva informácia o požadovanej funkcii(konfiguračné informácie) a zachytáva sa v jeho pamäťových bunkách.Najperspektívnejšia možnosť ako zabezpečiť spoľahlivosť výrobkov je použiť obvodyprogramovateľné v systéme, ISP. Obsahujú malý jednoúčelový programátor integrovanýna čipe, ktorého správna funkcia je zaručená výrobcom obvodu. Navyše naprogramovanieobvodu je možné meniť dodatočne podľa potreby zmenenit funkcie zariadenia (update)prostredníctvom internetu. Všetky tieto výhody spôsobili, že takmer všetky obvody PLDa FPGA sú dnes vyrábané v prevedení ISP.32


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta4. ZÁVEROdhaduje sa, že v súčasných programovateľných obvodoch (CPLD, FPGA) sa presamotnú funkciu implementovaných systémov využíva menej ako jedna desatina zovšetkých štrukturálnych prvkov, ktoré sú umiestnené na čipe. Zvyšných deväť desatínpredstavuje "réžia", t.j. štruktúry zabezpečujúce programovateľnosť danej súčiastky,testovacie a ďalšie podobné pomocné funkcie. Programovateľnosť prináša veľké výhodyv rýchlosti vývoja aplikácií a v možnosti "dolaďovania" funkcie obvodov až dozáverečných fáz vývoja, prípadne dokonca aj počas ich využitia v aplikácii.V súčasnej dobe nie je možná efektívna práca s programovateľnou logikou bezpoužitia počítačových návrhových (vývojových) systémov. Tieto systémy zabezpečujúcelý rad rôznych činností - od vytvorenia (editácia) vstupných súborov predstavujúcichopis vyvíjanej aplikácie cez syntézu zodpovedajúceho elektrického zapojenia a jehoimplementáciu do cieľového obvodu, overenie správnej funkcie vyvíjanej aplikáciesimuláciou, zistenie výsledných parametrov, ako sú časové parametre alebo odber znapájacieho zdroja, až po naprogramovanie (nakonfigurovaní) cieľového obvodu apodpory ďalších vývojových a oživovacích prác.Výrobcovia obvodov PLD a FPGA venujú podporenému programovému vybaveniuveľkú pozornosť. Väčšinou sami vyvíjajú potrebné programové prostriedky k návrhu, atiež kooperujú so špecializovanými firmami na vývoji špičkových verzií návrhovýchsystémov.Pri rozoberaní a <strong>sk</strong>úmaní problematiky Programovateľných logických obvodov somdospel k záveru, že programovateľné súčiastky a najmä hradlové <strong>polia</strong> sú veľmi dôležitéprvky dnešnej elektroniky. Vďaka nim si ktokoľvek môže vytvoriť vlastný zákazníckyintegrovaný obvod prispôsobený konkrétnej aplikácii s minimálnymi nákladmi.33


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta5. ZOZNAM POUŽITEJ LITERATÚRY[1] KOLOUCH, Jaromír. Programovatelné logické obvody a návrh jejich aplikací vjazycích ABEL a VHDL - počítačové cvičení. Skriptum FEKT VUT v Brne. Brno,2002[2] KOLOUCH, Jaromír. Programovatelné logické obvody. Doplnky ku <strong>sk</strong>riptámvydaným v roku 2002[3] MUSIL, V. a kolektív. Navrhování digitálních integrovaných obvodů. Jazyk VHDL.Skriptum FEKT VUT v Brně. Brno, 2000[4] KOLOUCH, Jaromír. Programovatelné logické obvody – prednášky. Skriptá FEKTVUT v Brne. Brno, MJ Servis, 2002, 62 stránDostupné na internete [5] KOLOUCH, Jaromír. Programovatelné logické obvody – cvičenia.Dostupné na internete [6] http://noel.feld.cvut.cz/vyu/ap2/[7] KOLOUCH, Jaromír. Programovatelné logické obvody a jazyk ABEL pro popis jejichaplikací - přednášky. Skriptá FEKT VUT v Brne. Brno, UREL FEI VUT v Brne1999, 36 strán[8] http://www.wikipedia.org/34


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta6. VYHLÁSENIE O SAMOSTATNOSTI VYPRACOVANIABAKALÁRSKEJ PRÁCEČESTNÉ VYHLÁSENIEVyhlasujem, že som zadanú diplomovú prácu vypracoval samostatne, pododborným vedením vedúceho bakalár<strong>sk</strong>ej práce Doc. Ing. Zdislava Exnara CSc. apoužíval som len literatúru uvedenú v práci.Súhlasím so zapožičiavaním bakalár<strong>sk</strong>ej práce.V Žiline dňa .............................. .................................................podpis diplomanta35


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaŽilin<strong>sk</strong>á univerzita v ŽilineElektrotechnická fakultaKatedra experimentálnej elektrotechnikyPROGRAMOVATEĽNÉ LOGICKÉ POLIAPrílohová časťTomáš MAJERECH200936


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaZOZNAM PRÍLOH1) Príloha A: Časový prehľad vývoja niektorých typov LO a ich výrobcov.2) Príloha B: Popis niektorých firiem a obvodov, ktoré vyrábajú.37


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaPríloha AČasový prehľad vývoja niektorých typov logických obvodov a ich výrobcovROKOSTATNÍVÝROBC.KONŠTRUK.RIEŠENIE1983 založenie1984 založenie198519861987198819891990199119921993199419951996199719981999XC2000(1)XC3000(1),(2)XC4000(1),(2),(3),(11)Xilinx kupuje firmuAlgotronixXC7000(1),(6)XC6200(1),(9)XC5200(1),(2)XC9500(1),(7),(8)SPARTAN(1),(2)XC9500XL(2),(8)VIRTEX(3),(5),(9),(11),(12),(13)XC9500XV(3),(8)Xilinx kupuje devíza POfirmy PhilipsXCR30xxXV(1),(2),(4),(8)EP300(1)EP300(1)MAX(1)FLEX6000(1),(2),(3)FLEX8000FLEX10K(1),(2),(3)APEX(3),(5),(11),(14)EPM7032V(2)založenieACT1(1),(2),(10)ACT2(1),(2),(10)ACT3(1),(2),(10)Actel kupujedevíza firmyTexasInstrumentsMX(1),(2),(10),(15)SX(1),(2),(10),(15)Actel kupujefirmu GatefieldproASIC(1), (2)založeniePAL(1)GAL(1),(2)LSI1000(1),(8)LSI2000(1),(2),(8)LSI3000(1),(2),(8)LSI5000(1),(2),(8)LSI8000(1),(8)Patrice kupujefirmu VantisPAL(1)GAL(1),(2)založenýQuickLoginzaloženýAlgotronixCAL1024(1),(8),(9)pASIC1(1)AT40K(1),(2)pASIC2(1),(2)VF1(1),(16)VF1(1),(16)AT6000(2)pASIC3(1),(2)Gatefield saodštepuje odZyCADproASIC(1), (2)programovanieSRAMantipoistkyrozptýlenéRAM maléhierarchickáštruktúranapájacienapätie 3,3V až2,5Vnapájacienapätie 1,8VVysvetl.:Obvody typu CPLDObvody typu FPGAObvody s vlastnosť.CPLD aj FPGA(1)nap. napätie 5V (6)technológia EPROM (11)rozptýlená RAM na čipe(2)nap. napätie 3,3V (7)technológia EEPROM (12)bloková RAM na čipe(3)nap. napätie 2,5V (8)in-systém programable (13)DLL(4)nízky príkon (9)čiastočná rekonfigurovateľnosť (14)PLL(5)kapacita >1mil. (10) technológia OTP prevedenie (15)zvýš. radiačnáhradielodolnosť38


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaPríloha BPopis niektorých firiem a obvodov, ktoré vyrábajú.XILINXFirma Xilinx je najväčším svetovým výrobcom programovateľných logickýchobvodov (PLD) v technológii CMOS. Ako prvá na svete vyvinula programovateľnéhradlové pole. V súčasnosti vyrába viac ako polovicu svetovej produkcie týchtosúčiastok. Xilinx má bezkonkurenčne najširší sortiment PLD - od jednoduchých obvodovs niekoľkými desiatkami makrobuniek až po hradlové pole s miliónmi ekvivalentnýchhradiel, v širokom spektre puzdier, pracovných podmienok, rýchlostí, ...Súčiastky firmy Xilinx majú široké uplatnenie: počítače a ich periférie,telekomunikácie, prístrojová technika, priemyselné aplikácie, vojen<strong>sk</strong>é aplikácie. Vďakaspolupráci s poprednými inovátormi v oblasti polovodičových technológií (napr. IBM)využívajú obvody Xilinx špičkové technológie, ktoré umožňujú dosiahnuť vynikajúcietechnické parametre a súčasne aj veľmi nízke ceny.Programovateľné hradlové <strong>polia</strong> - FPGA :Séria XC2000 bola historicky prvá FPGA (rok 1984), v súčasnosti sa už nedodáva.Princípy použité pri jej konštrukcii boli natoľko geniálne, že sú na nich postavené(samozrejme s radom zásadných inovácií) i najnovšie FPGA.Séria XC3000 (A) / XC3100 (A) sa stala začiatkom 90. rokov praktickypriemyselným štandardom.Séria XC4000 (A / D / E / EX / XL / XLA / XV / XLT), priniesla zásadné novinkyv architektúre FPGA (užívateľ<strong>sk</strong>á SRAM, rýchla logika prenosu pre sčítačky,odčítačky,...). Výsledkom je vysoká flexibilita a hustota integrácie. Jej priamyminásledníkmi, sú nové uprednostňované rady Spartan a Virtex.Séria XC5200 bola optimalizovaná na nízku cenu pri zachovaní všetkýchdôležitých vymožeností.Séria Spartan/SpartanXL/Spartan2/Spartan2E - odporúčané pre novékonštrukcie. Ponúka veľmi nízku cenu pri hustote logiky do 600 tisíc ekvivalentnýchhradiel.39


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaSéria Virtex/VirtexE/Virtex2 - v súčasnosti najdokonalejšou FPGA na svete.Ponúkajú obrov<strong>sk</strong>ú hustotu logiky - až milióny ekvivalentných hradiel pri zachovanímimoriadne vysokého výkonu.Obvody CPLD:Série XC7000 - historicky prvé programovateľné logické obvody EPLD v ponukefirmy Xilinx. Technológia EPROM, v súčasnosti sa už nedodávajú. Vynikajúce parametrez hľadi<strong>sk</strong>a rýchlosti, prepojiteľnosti a systémových vlastností.Séria XC9500/9500XL/9500XV - ako prvá na svete použitá technológia FLASH5V pre PLD, čím bolo umožnené jednoduché programovanie už montovaných súčiastok vsystéme. Architektúra je založená na architektúre série XC7000 s množstvom vylepšení.Séria CoolRunner - zaradená do sortimentu Xilinx po akvizícii divízie PLD firmyPhilips. Obvody CoolRunner sa vyznačujú výnimočne nízkou spotrebou vďaka unikátnejarchitektúre. Sú to prvé CPLD vhodné pre batériové aplikácie - bez predchádzajúcichkompromisov s časovaním a vysokú dynamickú spotrebu.ALTERAHradlové <strong>polia</strong> firmy ALTERA patria do <strong>sk</strong>upiny výkonných obvodov CPLD. Prevývoj aplikácií na báze hradlových polí ALTERA je možné využiť návrhové systémyMAX+PLUS II resp. novší systém QUARTUS, ktoré dodáva firma ALTERA. SystémQUARTUS II, je dostupný aj vo voľne šírenej obmedzenej verzii (tzv. Web edition).Firma Altera patrí medzi najväčších výrobcov hradlových polí a vyrába niekoľkorôznych typov programovateľných obvodov, ktoré sa líšia zložitosťou, architektúrou apoužitou technológiou:CLASIC – EPROM technológia, náhrada za jednoduché PAL a GAL obvodyMAX5000 – EPROM technológia, náhrada za niekoľko PAL, GAL obvodovMAX7000, MAX9000 – EPROM ako aj novšia EEPROM technológia, veľmirýchle obvody, architektúra red square.MAX3000 – EEPROM, optimalizované pre nízku cenu.40


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaFLEX10K – SRAM technológia, terasovitá, obsahuje aj bloky RAM (vhodné napr.na realizáciu one<strong>sk</strong>orovacích liniek, tabuliek a pod.). Zložitosť do 250 000 použiteľnýchhradiel, vhodné aj pre zložitejšie systémy.FLEX6000 – SRAM technológia, optimalizované pre nízku cenu.APEX a APEX II – SRAM technológia, terasovitá, obsahuje aj bloky RAM(vhodné napr. na realizáciu one<strong>sk</strong>orovacích liniek, tabuliek a pod.). Zložitosť do2 000 000 použiteľných hradiel, vhodné aj pre zložité systémy.ACEX – SRAM technológia, cenovo optimalizovaný rad obvodov vychádzajúci zobvodov APEX a FLEX10K.MERCURY - SRAM technológia, optimalizovaný pre rýchle telekomunikačnéaplikácie.STRATIX - SRAM technológia, obvody obsahujúce veľké bloky dát ašpecializované bloky pre ČSS (rekonfigurovateľné hardvérové násobičky). V súčasnostinajvýkonnejšie hradlové <strong>polia</strong> od firmy Altera.CYCLONE – SRAM technológia, najnovšie obvody optimalizované predosiahnutie najlepšieho pomeru cena/výkon.V súčasnosti sú dostupné obvody pre napájacie napätia 5V , 3,3V, 2,5V a 1,8V.Nižšie napájacie napätia sú charakteristické pre zložitejšie obvody. Rozhranie JTAG,ktoré je v novších obvodoch samozrejmosťou je možné využiť aj na konfiguráciuobvodov.ACTELObvody firmy ACTEL sú známe predovšetkým pre úsporu peňazí. Na rozdiel odštandardných FPGA ostatných firiem totiž nepotrebujú vonkajšiu pamäť, takže namiestozakúpenia klasického FPGA a vonkajšie pamäte stačí si zaobstarať FPGA Actel.Firma Actel vyrába hradlové poleia v technológii Antifuse a v technológiiFLASH. Polia vyrobené technológiou Antifuse sú raz programovateľné, nemožno ichteda preprogramovať. Prinášajú však so sebou výhody v relatívne vysokej kapacite(až 2 000 000 hradiel), rýchlosti (jednotlivé bunky môžu pracovať s frekvenciou až500MHz), 100% prepojiteľnosťou pri 100% využití kapacity. Môžu obsahovať niekoľkoPLL, SRAM pamäť s možnosťou jej konfigurácie ako FIFO.41


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaPolia vyrobená technológiou FLASH je možné preprogramovať priamo v aplikácii,navyše firma Actel ich ponúka ako alternatívne riešenia k plne zákazníckym obvodom(ASIC). Ich kapacita je do 3 000 000 hradiel, tiež ponúka možnosť PLL, SRAM aleboFIFO. Bunky môžu pracovať s frekvenciou až 240 MHz. V porovnaní s technológiouAntifuse majú logické bunky menej vstupov, všeobecne je ich teda potrebných viac prerealizáciu rovnaké funkcie, ako v Antifuse technológiu.V oboch prípadoch sú <strong>polia</strong> schopné činnosti ihneď po pripojení napájania, nie jepreto potrebné čakať, ako v prípade SRAM polí, na ich konfiguráciu a taktiež nie jepotrebná žiadna prídavná konfiguračná pamäť. Obe technológie sa navyše vyznačujúpomerne malou prúdovou spotrebou. Jej hodnota samozrejme závisí od použitejfrekvencie, však pre frekvencie do 1MHz je jej hodnota v rádoch jednotiek mA.Firma Actel ponúka nasledujúce rady s Antifuse technológiou:Actel SX – vysoká rýchlosť a veľká kapacita rady SX je daná totálne odlišnouarchitektúrou od štandardných FPGA.Séria SX je postavená na architektúre "see of modules". Celý čip je pokrytý sieťoulogických modulov. Séria Actel SX je v 0,35 mm technológii CMOS s využitímtrojvrstvovového metalizovania.Celá SX rada má oddelené napájanie:1. pre vnútornú maticu buniek a vstupno výstupné bunky (3,3 V)2. určujúce vstupnú úroveň signálu. Ak je toto napätie 5V, potom vstupno výstupnénapäťové úrovne sú kompatibilné s technológiou TTL.Séria MX je tvorená mnohými A40MX ... a A42MX ... a je postavená na 0,45 mmtechnológii CMOS, ktorá umožňuje pri napájaní 5V dosiahnúť plný výstupný rozkmit.Actel FPGA rady MX pracujú s napájaním 3,3 V, 5V a s kombináciou 5V / 3,3V a to bezďalších externých súčiastok. Štruktúrou a technológiou prepojok sú v podstate zhodné sradom Actel FPGA SX.42


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaLATTICEOd roku 1984 sa firma Lattice zaoberá návrhom a výrobou programovateľnýchobvodov či už to sú legendárny obvody GAL, CPLD alebo FPGA. Najznámejšie obvodyFPGA sú:LatticeEC (Economy)LatticeECP (Economy Plus)Zatiaľ čo prvý z nich, séria EC, ponúka dnes už klasické bloky a jednotky s cieľompo<strong>sk</strong>ytnúť čo najväčší výkon pre jednoduchšie aplikácie za čo najnižšiu cenu, séria ECPponúka jadro rady EC plus niečo navyše. Momentálne sú v ponuke FPGA ECP-SAD,ktoré teda pridávajú SAD bloky pre rýchle digitálne spracovanie signálov potrebnénapríklad pri filtrácií, kompresií, odšumení... Táto kombinácia sa potom vďakaparalelnému spracovaniu a veľkému množstvo násobiček vyrovná aj tým najvýkonnejšímDSP (Digital Signal Procesor) . Jednoduchšie rady EC potom možno využiť vo všetkýchaplikáciách, kde nie je potrebná operácia násobenie. Stratégia firmy Lattice je v tom, že kobom radom ponúka aj široký rozptyl veľkostí obvodov čo sa týka počtu obsiahnutýchblokov a jednotiek .Použitie:LatticeEC• Aplikácia spracovania signálov zo senzorov + vizualizácia, prenos, zálohovanie• Riadenie motorov (krokovej, servomechanizmu) a iných akčných členov• HMI (Human-Machine Interface) - LED a LCD displeje a monitory, klávesnice, myš...• Routery, Servery, Gateway• Bezdrôtové (Wireless) aplikácie - WiFi, modemy• Pamäťová rozhranie SRAM, SDRAM, DDR• Komunikačné rozhranie medzi IrDA, UART, I2C, SPI, LPT, PCI• Rozhranie pre pamäťové karty, rôzne mechaniky43


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaLatticeECP-SAD• Lacná náhrada za signálový procesor (DSP)• Meracie zariadenia - paralelné spracovanie dát z desiatok kanálov súčasne + vizualizáciaa zálohovanie dát• Spracovanie obrazu - MPEG-2, MPEG-4, detekcia pohybu, redukcia šumu• Spracovanie zvuku - MP3, odšumovanie, zvýraznenie, filtrácia, digitálne ekvalizér,...• Spracovanie reči - odšumenie, rozpoznanie reči, prevod reč text• Zdravotníctvo - spracovanie EEG, EKG, zobrazenie, riadenie• Kompresia dát - stratová / bezstratová• Navigačné systémy - GPSCelú štruktúru obvodu FPGA rady EC možno rozdeliť do nasledujúcichblokov:• Programmable Function Unit (PFU)• sysMEM Embedded Block RAM (EBR)• sysCLOCK PLL• Programmable I / O Cells (PIC)• sysCONFIG port• JTAG komunikačný portBloková štruktúra obvodu FPGA Lattice EC44


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaPFU jednotkaJedná sa o logické jednotky zložené z LUT (Lookup table) a bufferu. V každej PFUjednotke sa vy<strong>sk</strong>ytujú štyri identické bloky umiestnené nad sebou v štyroch vrstvách(slice) - viď. obrázok. Každú PFU jednotku možno konfigurovať ako logický obvod,aritmetickú jednotku, časť tzv. rozprestreté RAM alebo ROM pamäte. Pamäť RAMnemôžu niektoré jednotky vytvoriť, ktoré sú interne označované ako PFF. Ak by savšetky jednotky PFU použili ako RAM tak možno dosiahnuť hodnoty až 16KB.Bloková schéma PFU jednotkyKaždá LUT (Lookup table) pracuje na princípe tabuľky logických funkcií a pretomôže v rámci 4 dátových vodičov, 3 riadiacich signálov a 2 výstupných vodičovgenerovať ľubovoľnú logickú funkciu, prípadne z nich i aritmetické operácie. PretožeLUT je tvorená RAM alebo ROM pamäťou, možno ju teda využiť aj ako pamäťovúbunku.EBR jednotkaIde o bloky RAM pamäte, ktorá môže byť nakonfigurovaná ako klasickájednoprístupová pamäť (single port RAM) alebo ako pamäť s dvojitým prístupom vjednom hodinovom cykle (dual port RAM). Každá EBR pamäť má veľkosť 9KB a unajlepšie vybavených obvodoch možno takto použiť až 645Kb dual port RAM. Čo satýka nastavenia, je možné každú jednotku konfigurovať ako pamäť s 1-bitovou až 36-bitovou šírkou slova. Operačná rýchlosť je až 275MHz a jednotlivé bloky s EBRpamäťou možno za seba <strong>sk</strong>ladať a prepájať ka<strong>sk</strong>ádne.45


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakultaFPGA od Lattice dopĺňajú ponuku od firmy Xillinx, pričom mnohé EC súštruktúrou jednoduchšie ako FPGA Xillinx a tým lepšie použiteľné pre jednoduchšieaplikácie. Séria ECP-SAD zase triumfuje veľkým počtom násobičiek a samotnouštruktúrou podobnou štruktúram hardvérových násobičiek signálových procesorov. Toumožňuje jednoduchšiu úpravu algoritmov pôvodne určených pre signálový procesor.46

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!