Programovatelné hradlové pole

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Programovatelná hradlová pole (FPGA, Field Programmable Gate Array) jsou speciální číslicové integrované obvody obsahující různě složité programovatelné bloky propojené konfigurovatelnou maticí spojů. Field Programmable v názvu je to, čím se FPGA odlišují od zákaznických integrovaných obvodů – obvod je „perzonifikován“ - nakonfigurován – u zákazníka.

FPGA obvody dnes nacházejí uplatnění v široké škále aplikací díky své programovatelnosti, snadnému návrhu, flexibilitě, neustále klesajícím cenám a zvolna se snižující spotřebě energie vlastním čipem. Typické použití je v oblasti menších sérií navrhovaných zařízení, kdy se nevyplatí návrh zákaznického integrovaného obvodu a současně konvenční řešení systému s procesorem už není vhodné. Další aplikace můžeme nalézt například v oblasti prototypování složitějších zákaznických integrovaných obvodů. Velká programovatelná hradlová pole dnes umožňují i implementaci komplikovaných procesorů.

Kromě FPGA obvodů se lze běžně setkat i s tzv. CPLD obvody (Complex Programmable Logic Devices). CPLD použijeme spíše na návrh jednoduché propojovací logiky při integraci složitějších prvků (glue logic).

Historie[editovat | editovat zdroj]

Historické kořeny moderních programovatelných polí jsou v prvních programovatelných pamětech typu PROM (firma Radiation, 1970) a jejich zákaznicky programovatelných verzím EPROM (Intel, 1971) a EEPROM (Intel, 1978). Permanentní paměti jako takové ale neumožňovaly úspornou realizaci logické funkce. Logickým vývojovým krokem proto byl vznik tzv. FPLA obvodů (Field Programmable Logic Array, Signetics/Philips, 1970), ty ale byly drahé a pomalé. Aby bylo možné dosáhnout vyšší rychlosti logiky, byla součtová matice realizována jako fixní – vznikla koncepce PAL obvodů (Programmable Array Logic, Monolithic Memories, 1978) s programovatelnou maticí AND a pevnou maticí OR. S postupně se zlepšujícími technologiemi výroby integrovaných obvodů bylo možné vyrábět programovatelné obvody s vyšší kapacitou a realizující složitější logické funkce. Kvůli rostoucí velikosti obvodů se začalo později místo rozšiřování logických funkcí užívat spíše skládání více matic PLD obvodů do jednoho pouzdra. Vznikly tak obvody, které dnes nazýváme CPLD (Complex Programmable Logic Device, Altera, 1988). Od CPLD byl už pak jen malý krok k prvním FPGA obvodům (Xilinx, 1984). Dnes dostupná FPGA se ovšem od architektur z poloviny osmdesátých let významně odlišují. Trendem je pozvolný příklon k hrubozrnným architekturám; obvodům, které kromě elementárních programovatelných logických bloků obsahují i další komplexní podpůrné bloky.

Technologie FPGA obvodů[editovat | editovat zdroj]

Rozeznáváme dva základní typy FPGA podle uložení konfigurace: FPGA s volatilní a FPGA s nevolatilní konfigurací.

FPGA s volatilní konfigurací ukládají konfigurační informace do paměťových buněk typu SRAM.

Výhody:

  • Snadná konfigurace a rekonfigurovatelnost i za běhu systému.
  • K výrobě FPGA s volatilní konfigurací je používán standardní technologický proces CMOS bez dodatečných kroků a proto jsou SRAM obvody vždy o jednu až dvě technologické generace napřed před ostatními FPGA.

Nevýhody:

  • Programovatelný obvod musí být po startu systému nakonfigurován – k tomu je obvykle potřeba externí paměť a jednoduchý řadič, to znamená větší potřebný prostor na desce s tištěnými spoji a více součástek, dále konfigurace může trvat až stovky milisekund.
  • Je těžší zajistit zabezpečení intelektuálního vlastnictví, protože konfiguraci obvodu lze obvykle jednoduše vyčíst z konfigurační paměti.

FPGA s nevolatilní konfigurací ukládá konfigurační bity typicky ve flash paměti, EEPROM, nebo tzv. antifuses (antipojistky).

  • Nevýhody: obtížnější změna konfigurace
  • Výhody: lepší zabezpečení intelektuálního vlastnictví, vyšší odolnost proti radiaci.

Vlastnosti jednotlivých technologií:

  • antifuse je v nenaprogramovaném stavu rozpojená a programováním se propojí (opak pojistky) – vytvoří se rezistivní spojka. FPGA je konfigurovatelné pouze mimo cílovou aplikaci.
  • EEPROM/flash FPGA umožňují jak programování v aplikaci, tak před vlastním použitím.

Jazyky pro syntézu hradlových polí[editovat | editovat zdroj]

V počátcích programovatelných obvodů se pro návrh používaly proprietární jazyky (např. ABEL) či kreslení schemat.

Hlavními jazyky pro programování obsahu hradlových polí jsou dnes VHDL a Verilog. Někteří výrobci nabízejí i proprietární jazyky a nástroje, jako např. AHDL od firmy Altera. Jednodušší návrhy bývá rovněž možné nakreslit pomocí grafických editorů.

Návrh obvodu popisujeme na RTL úrovni, jako sadu registrů propojených kombinační logikou realizující logické operace. Výhodou použití RTL úrovně je práce na vysokém stupni abstrakce – jeden řádek zdrojového kódu je v hardware reprezentován typicky desítkami/stovkami hradel, což zvyšuje produktivitu práce a zpřehledňuje vlastní návrh. RTL popis systému je posléze konvertován do konfiguračního souboru FPGA obvodu v několika krocích (syntéza, mapování, rozmístění a propojení, generování konfiguračního souboru).

Výrobci hradlových polí[editovat | editovat zdroj]

Literatura[editovat | editovat zdroj]