Programovatelný logický obvod

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání

Programovatelný logický obvod (programovatelné logické zařízení, PLD, anglicky programmable logic device) je elektronická součástka, která je používána pro vytváření uživatelsky nastavitelných číslicových obvodů. Na rozdíl od hradel, registrů a jiných číslicových obvodů (které mají z výroby pevně danou funkci) musí být PLD před použitím nejprve naprogramováno.

Historie[editovat | editovat zdroj]

Historické kořeny moderních programovatelných polí jsou v prvních programovatelných pamětech typu PROM, které vyrobila firma Radiation v roce 1970 a jejich modernějších verzích 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 FPLA obvodů (Field Programmable Logic Array of firmy Signetics/Philips z roku 1970), ale 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 od firmy Monolithic Memories v roce 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 od firmy Altera v roce 1988). Od CPLD byl už pak jen malý krok k prvním programovatelným hradlovým polím (FPGA), které uvedla firma Xilinx v roce 1984. Dnes dostupná FPGA se ovšem od architektur z poloviny osmdesátých let 20. století významně odlišují. Trendem je příklon k hrubozrnným architekturám, kde obvody kromě elementárních programovatelných logických bloků obsahují i další komplexní podpůrné bloky. Nejnovější architektury kombinují v roce 2010 FPGA a mikroprocesor, například FPOA obvody (Foeld Programmable Object Array) od firmy MathStar.[1]

ROM ve funkci programovatelného logického obvodu[editovat | editovat zdroj]

Před vynálezem PLD se pro volně programovatelnou kombinační logiku používaly nevolatilní paměti typu ROM (tj. PROM, EPROM, EEPROM, …), což však sebou neslo několik nevýhod:

  • nižší rychlost
  • nedefinovatelný přechod mezi dvěma stavy (tzv. hazardy)
  • vyšší spotřeba
  • vyšší zabudovaný prostor

Typy programovatelných logických obvodů[editovat | editovat zdroj]

Nejjednodušší obvody GAL a PAL dovolují především úsporu místa, větší pružnost a zjednodušení návrhu plošných spojů náhradou několika klasických obvodů. Často se programují v patici pomocí speciálního zařízení (programátoru).

PLA[editovat | editovat zdroj]

(Programmable Logic Array)

V roce 1970, firma Texas Instruments vyvinula integrovaný obvod, založený na čtecí asociativní paměti, také známé jako ROAM od IBM. Toto zařízení, TMS 2000, bylo naprogramováno úpravou kovové vrstvy, během produkce integrovaného obvodu. TMS 2000 mělo až 17 vstupů a až 18 výstupů, s osmi JK flip flop pro paměť. Texas Instruments vytvořila termín „Programmable Logic Array“ právě pro toto zařízení.

PLA má programovatelné AND pole, vedoucí k programovatelnému OR poli, které může být případně doplněno za účelem vytvoření výstupu.

GAL[editovat | editovat zdroj]

(Generic Array Logic)

Vylepšená verze PAL, má i stejně vlastnosti a parametry, ale může být přeprogramováno. Zařízení je velice užitečné v prototypní fázi designu, kdy každý problém může být opraven pomocí jednoduchého přeprogramování. GAL jsou programovány a reprogramovány pomocí PAL programmeru nebo in-curcuit programmingu, pokud je podporován čipem.

CPLD[editovat | editovat zdroj]

Na obvody CPLD (komplexní programovatelné logické obvody) se můžeme dívat jako na spojení více obvodů GAL nebo PAL, které jsou vzájemně propojeny programovatelnými propojovacími poli. Současné obvody CPLD již mohou nahradit několik tisíc nebo i několik set tisíc logických hradel. Protože programování obvodů s několika sty vývody vkládáním do speciálního programátoru by bylo krajně nepraktické, CPLD se většinou programují pomocí vyhrazeného rozhraní (např. JTAG) až poté, co jsou zapájeny do desky plošných spojů.

FPGA[editovat | editovat zdroj]

Jinou alternativou jsou obvody FPGA (on Field Programmable Gate Arrays – programovatelná hradlová pole). Od CPLD se liší tím, že po zapnutí napájení musí být jejich konfigurace vždy znovu nahrána např. z paměti EEPROM nebo FLASH. Pokud je tato paměť jejich součástí, programují se po zapájení podobně jako složitější CPLD. Větší FPGA většinou neobsahují paměť EEPROM/FLASH a po zapnutí napájení je nutné je vždy znovu nakonfigurovat (takže jejich funkce na rozdíl od CPLD není okamžitě dostupná).

Velké programovatelné logické obvody dnes umožňují i implementaci komplikovaných procesorů.

Ostatní varianty[editovat | editovat zdroj]

V dnešní době, již není takový zájem o rekonfigurovatelné systémy. Jsou to microprocesorové obvody, které obsahují určitě fixní funkce a další funkce, které mouhou být změněny pomocí kódu. Designování nových, samopřepisovaných se systému vyžaduje, aby se inženýři učili nové metody a s tím i nový software.

Jak si PLD zachovávají svojí konfiguraci[editovat | editovat zdroj]

PLD je kombinace logického a paměťového zařízení. Paměť slouží k uložení vzoru, který byl udán během programování. Většina metod pro ukládání dat byla adaptována pro využití v PLD. Ty zahrnují:

- SRAM

- EPROM nebo EEPROM

- Flash paměť

SRAM (statická paměť, anglicky Static Random Access Memory) - označuje volatilní paměť (po odpojení napájení zapomene svůj obsah). Paměť SRAM má v klidovém stavu velmi nízkou spotřebu, takže pokud potřebujeme nevolatilní RAM, lze toho dosáhnout malou pomocnou baterií, která napájí RAM po odpojení počítače od zdroje. Nevýhodou je, že baterii bývá nutné po několika letech vyměnit, zatímco životnost SRAM je mnohem delší.

Flash paměť je nejužitečnější, zachovává svojí konfiguraci, i když se zařízení vypne. A může být a smazaná, či reprogramována.

Alternativy programovatelných logických obvodů[editovat | editovat zdroj]

Pro zařízení vyráběná ve velkých sériích, kde hraje velkou roli cena a spotřeba a nepředpokládá se dodatečná změna funkce, se PLD často nahrazují zákaznickými obvody ASIC – což mohou být např. logické obvody s propojkami napevno napařenými již od výroby.

Jazyky pro syntézu PLD[editovat | editovat zdroj]

Mnoho PAL zařízení přijme vstup v standardním souborovém formátu „JEDEC soubory“. Jsou podobné k softwarovým kompilerům.. Jazyky používáné jako zdrojový kód pro logické kompilery se nazývají „Hardware description languages“ - HDLs.

PALASM, ABEL (Advanced Boolean Expression Language) a CUPL (Cornell University Programming Language ) jsou často používány pro jednoduché zařízení, načež Verilog a VHDL (VHSIC Hardware Description Language) jsou používány pro komplexnější zařízení.

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

Reference[editovat | editovat zdroj]

  1. ŠŤASTNÝ, Jakub. FPGA prakticky. 1. vyd. Praha: BEN – technická literatura, 2010. 200 s. ISBN 978-80-7300-261-9. S. 35. 

Literatura[editovat | editovat zdroj]