Programovatelné hradlové pole
Polní programovatelné hradlové pole (často zkráceně FPGA) je elektronická součástka používaná k vytváření rekonfigurovatelných digitálních obvodů. To znamená, že FPGA se liší od logického hradla, protože logické hradlo má pevně danou funkci. Naproti tomu FPGA má v okamžiku výroby nedefinovanou funkci. Než lze FPGA použít v obvodu, musí být naprogramován, tj. překonfigurován.
FPGA jsou integrované obvody z kategorie programovatelných logických zařízení neboli PLD. FPGA jsou nejvýkonnější, nejflexibilnější a také nejdražší z typů PLD. Nevýhodou FPGA ve srovnání s ostatními PLD je, že si nepamatují svůj návrh po odpojení napájení. FPGA proto potřebuje samostatný konfigurační paměťový čip, který uchovává návrh FPGA. Když je FPGA znovu připojeno k napájení, pevná část FPGA načte konfiguraci z konfiguračního paměťového čipu. Poté, co je FPGA nakonfigurován, bude schopen vykonávat funkci, která mu byla návrhem zadána.
FPGA se liší od mikroprocesoru nebo mikrokontroléru. FPGA ve své základní podobě není schopen spouštět software. Teprve když je FPGA vybaven konfigurací, která obsahuje procesorovou architekturu, je schopen spouštět software.
Výrobci FPGA poskytují inženýrský software pro Windows a někdy také pro Linux, který slouží k vývoji návrhů pro FPGA. Návrh se běžně zapisuje do čitelných počítačových souborů, které se nazývají jazyk popisu hardwaru (HDL). Nejoblíbenější jsou VHDL a Verilog. Jazyky pro popis hardwaru jsou silně srovnatelné s programovacími jazyky. Záměrem HDL je však navrhovat digitální logické obvody, zatímco programovací jazyky navrhují software.
Inženýrský software FPGA musí přeložit abstraktní kód HDL do logických prvků dostupných ve vybraném FPGA. Tomu se říká logická syntéza. Poté se provede proces umístění a směrování, aby se logické prvky umístily do FPGA. Výsledkem je bitový soubor, který lze naprogramovat do FPGA nebo konfigurační paměti. To se obvykle provádí pomocí USB programátoru připojeného k portu JTAG FPGA.
Protože FPGA je integrovaný obvod, může se výrobce FPGA rozhodnout přidat další běžně používané součástky integrovaných obvodů. Tyto pevné součástky se nazývají jádra. Jedná se například o řadiče Ethernetu nebo dokonce o kompletní procesorovou architekturu. Pro různé segmenty trhu, jako je obrana, lékařství, komunikace a robotika, se výrobce FPGA snaží přidat co nejhodnotnější sadu těchto dodatečných jader.
Vnitřní struktura
FPGA jsou obecně postaveny na programovatelných logických prvcích a programovatelných propojeních. Jedním ze stavebních prvků logických prvků je programovatelná vyhledávací tabulka (LUT). LUT lze naprogramovat tak, aby na výstupu byla jakákoli hodnota daná vstupními hodnotami. Tímto způsobem lze LUT naprogramovat jako libovolný typ logiky se stejným počtem vstupů a výstupů. Například tabulku LUT s 2 vstupy a 1 výstupem lze naprogramovat tak, aby napodobovala logiku dvouvstupového AND, OR, NAND, NOR, XOR atd. Výstup této LUT lze buď uložit pomocí registru, nebo připojit ke vstupu jiné LUT. Pomocí programovatelného muxu lze FPGA naprogramovat tak, aby zvolil registrovaný nebo neregistrovaný výstup. Tato kombinace LUT, registru a muxu představuje obecnou strukturu logického prvku.
K propojení těchto logických prvků se používají propustné tranzistory. Tranzistor lze naprogramovat tak, aby signál buď připojil, nebo nepřipojil, čímž FPGA získá možnost velmi specifického propojení logických prvků. Pokud například výstup jednoho logického prvku bude napájet vstup jiného, lze propustný tranzistor naprogramovat tak, aby tyto dva vodiče spojil dohromady a odpovídal zadané logice. Mezi logickými prvky a propustnými tranzistory může kompilátor vzít hardwarový popis z HDL, vytvořit logiku pro logické prvky a propojit je dohromady pomocí propustných tranzistorů.
Otázky a odpovědi
Otázka: Co je to programovatelné hradlové pole (FPGA)?
Odpověď: Pole programovatelných hradel (FPGA) je elektronická součástka používaná k vytváření rekonfigurovatelných digitálních obvodů. V době výroby má nedefinovanou funkci a před použitím v obvodu musí být naprogramováno nebo překonfigurováno.
Otázka: Jak se FPGA liší od logického hradla?
Odpověď: FPGA se liší od logického hradla tím, že logické hradlo má pevně danou funkci, zatímco FPGA má v okamžiku výroby nedefinovanou funkci.
Otázka: Jaký typ integrovaného obvodu je FPGA?
Odpověď: FPGA je integrovaný obvod z kategorie programovatelných logických zařízení neboli PLD.
Otázka: Jaké jsou nevýhody používání FPGA ve srovnání s jinými PLD?
Odpověď: Jednou z nevýhod použití FPGA ve srovnání s jinými PLD je, že si nepamatují svůj návrh po odpojení napájení, takže potřebují samostatný konfigurační paměťový čip, který návrh uchovává. Jsou také dražší než jiné typy PLD.
Otázka: Jak se programuje FPGA?
Odpověď: K programování FPGA používají inženýři inženýrský software pro Windows nebo Linux, aby vytvořili návrhy napsané v jazycích pro popis hardwaru, jako jsou VHDL a Verilog. Software pak tento kód přeloží do logických prvků dostupných ve vybraných FGPA a umístí je pomocí procesů place and route, čímž vznikne bitový soubor, který lze naprogramovat buď do konfigurační paměti, nebo přímo do samotného FGPA pomocí USB programátoru připojeného k jeho portu JTAG.
Otázka: Jsou mikroprocesory a mikrokontroléry podobné FGPA?
Odpověď: Ne, mikroprocesory a mikrokontroléry se od FGPA liší tím, že ve své základní podobě nemohou spouštět software; tuto schopnost mají pouze tehdy, je-li jim dána konfigurace obsahující architekturu procesoru.