%%%_img_alt_%%%

CPLD/FPGA programovateľné polia

CPLD/FPGA programovateľné polia Programovateľné logické obvody sú druhom digitálnych integrovaných obvodov, ktorých funkcia je určená užívateľom prostredníctvom predpisu (programu), ktorý predstavuje prepojenie jednotlivých blokov vo vnútri integrovaného obvodu. Pre lepšiu predstavu by sa to dalo zjednodušene popísať ako vytváranie ľubovoľnej kombinačnej logiky spolu so sekvenčnou logikou (klopné obvody) a tým nahradiť veľké množstvo iných integrovaných obvodov (napríklad rady 74xx). Pomocou vytvorenia opisu logiky, je možné vytvoriť systémy, ktoré dokážu pracovať aj samostatne, ale zväčša sú využívané ako rozšírenie funkcionality mikrokontrolérov. Pomocou programovateľných logických obvodov je možné optimalizovať výkon časovo kritických úloh, či už výpočty, alebo implementácia požadovaného interface-u, pri ktorom je potrebné dodržať presné časovanie, čoho procesor nemusí byť schopný, či už z dôvodov prerušení, alebo nízkeho výpočtového výkonu.

Možnosti použitia logických obvodov

Obvody PAL/GAL

Jednoduchšie programovateľné logické obvody typu PAL/GAL sú schopné zastúpiť niekoľko štandardných digitálnych obvodov (napr. z radu 74xx). Je v nich možné implementovať len jednoduchšiu logiku a použiť zopár klopných obvodov.

CPLD (complex programmable logic device)

Zväčšovanie počtu vstupov a výstupov obvodov GAL narazilo na problém príliš veľkej AND/OR matice (ktorá rastie s počtom vstupov približne kvadraticky). Preto sa pre zložitejšie obvody navrhla štruktúra, kde niekoľko pomerne uzavretých blokov podobných GAL je prepojených pomerne jednoduchou prepojovacou sústavou. Takto je možné dosiahnuť obvody s niekoľkými stovkami vstupov a výstupov. Štruktúra GAL zostala v základnej podobe zachovaná, a CPLD sa kategorizujú podľa počtu výstupných makrobuniek - toto číslo je obvykle prítomné aj v označení obvodu, napr. XC95144 je obvod z radu XC95xx a obsahuje 144 makrobuniek.

FPGA

Obvody FPGA majú odlišnú genézu a vznikli ako programovateľná verzia hradlového poľa známeho z ASIC technológií. Prepojenie jednotlivých buniek poľa, ako aj samotná funkcia (pomerne malých) buniek je daná obsahom RAM buniek, ktorý je do obvodu „nahraný“ obvykle po zapnutí napájania. To znamená, že FPGA nie sú pripravené na činnosť hneď po zapnutí, aj keď existujú obvody s integrovanou konfiguračnou pamäťou ako aj obvody založené na technológii ROM (antifuse) aj EEPROM (najmä firma Actel). Niektoré dnešné FPGA majú integrované aj ďalšie funkcie, napríklad generátor niekoľkých hodinových signálov pomocou fázového závesu (PLL), zabudovanú pamäť RAM, zabudované procesorové jadro apod.

Jazyky

Na popis činnosti či štruktúry CPLD/FPGA slúžia popisné jazyky digitálnych obvodov (HDL = hardware description language), ktoré by sa dali prirovnať k programovacím jazykom počítačov. Občas sa používajú aj grafické nástroje, v ktorých sa zadáva funkčná schéma pomocou logických hradiel a klopných obvodov. Tento spôsob v súčasnosti nie je preferovaný z dôvodu udržavatelnosti a prenositeľnosti. Najznámejšie a najčastejšie používané popisné jazyky pre implementáciu a funkčnú verifikáciu sú:

Niektorí významní výrobcovia: