Programovatelný logický obvod

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

Programovatelný logický obvod nebo programovatelné logické zařízení, často také PLD (zkr. programmable logic device), je elektronická součástka (obvod) používaná pro vytváření digitálních obvodů. Na rozdíl od hradel, registrů a jiných digitálních obvodů není funkce zařízení tohoto druhu v době výroby ještě definovaná. Než může být PLD použito, musí být 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 (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.

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.

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ů.

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ů.

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]

Hlavními jazyky pro programování obsahu PLD 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ů.

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

Literatura[editovat | editovat zdroj]