PROGRAMOVATELNÁ LOGICKÁ POLE

Podobné dokumenty
Programovatelná logika

XC3000(A) / XC3100(A)

PROGRAMOVATELNÉ LOGICKÉ OBVODY

FPGA + mikroprocesorové jádro:

6. Programovatelné struktury. PLA, PAL, PROM, GAL struktury

SPARTAN - 3 Xilinx FPGA Device

Zákaznické obvody 1. ASIC 2. PLD 3. FPGA. Ondřej Novák O. Novák: CIE9 1

Prezentace do předmětu Architektury a použití programovatelných obvodů 2

Návrh. číslicových obvodů

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.

Pohled do nitra mikroprocesoru Josef Horálek

PK Design. MB-S2-150-PQ208 v1.4. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 ( )

Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA ELEKTROTECHNICKÁ

Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody

MODERNÍ TRENDY V PROGRAMOVATELNÉ LOGICE, APLIKACE V AUTOMATIZAČNÍ A MĚŘICÍ TECHNICE

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Integrovaná střední škola, Sokolnice 496

Když procesor nestačí, FPGA zaskočí

Logické funkce a obvody, zobrazení výstupů

4. Elektronické logické členy. Elektronické obvody pro logické členy

Architektura Intel Atom

Dělení pamětí Volatilní paměti Nevolatilní paměti. Miroslav Flídr Počítačové systémy LS /11- Západočeská univerzita v Plzni

Paměť počítače. 0 (neprochází proud) 1 (prochází proud)

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Téma 32. Petr Kotál

Profilová část maturitní zkoušky 2014/2015

IRCDEK2 Hradlové pole s implementovaným kvadraturním dekodérem Technická dokumentace

Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody

PK Design. MB-XC3SxxxE-TQ144 v1.1. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (10.10.

Profilová část maturitní zkoušky 2015/2016

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ DIPLOMOVÁ PRÁCE

BDIO - Digitální obvody

SEKVENČNÍ LOGICKÉ OBVODY

Struktura a architektura počítačů (BI-SAP) 10

Návod k obsluze výukové desky CPLD

Metody návrhu systémů na bázi FPGA

Zvyšování kvality výuky technických oborů

Tlačítka. Konektor programování

3. REALIZACE KOMBINAČNÍCH LOGICKÝCH FUNKCÍ

Obvody Xilinx řady XC3000

SYSTÉMY NAČIPU MI-SOC

Informační a komunikační technologie

OVLÁDACÍ OBVODY ELEKTRICKÝCH ZAŘÍZENÍ

1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD

Manuál přípravku FPGA University Board (FUB)

Paměti Josef Horálek

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Sekvenční logické obvody

Obsah DÍL 1. Předmluva 11

Univerzita Tomáše Bati ve Zlíně

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ MEII KOMBINAČNÍ LOGICKÉ OBVODY

uz80 Embedded Board ver. 1.0 uz80 Vestavná Řídící Deska ver. 1.0

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Jak do počítače. aneb. Co je vlastně uvnitř

KOMBINAČNÍ LOGICKÉ OBVODY

Paměťové prvky. ITP Technika personálních počítačů. Zdeněk Kotásek Marcela Šimková Pavel Bartoš

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Základní logická hradla, Booleova algebra, De Morganovy zákony Student

Stanovit nezbytná pravidla pro tvorbu dokumentace vytvářenou ve SITRONICS centru využitelnou firmou SITRONICS TS.

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:

FPGA intimně. Marek Vašut March 6, 2016

PK Design. Modul USB2xxR-MLW20 v1.0. Uživatelský manuál. Přídavný modul modulárního vývojového systému MVS. Verze dokumentu 1.0 (05.04.

Historie počítačů. 0.generace. (prototypy)

PK Design. Uživatelský manuál. Xilinx FPGA, CPLD & Atmel AVR. Verze dokumentu 1.0 ( )

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

Paměti Rambus DRAM (RDRAM) Paměti Flash Paměti SGRAM

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

PK Design. Xilinx FPGA, CPLD & Atmel AVR paralelní programovací kabel v1.0. Verze dokumentu 1.0 ( )

Z{kladní struktura počítače

Inovace a zkvalitnění výuky směřující k rozvoji odborných kompetencí žáků středních škol CZ.1.07/1.5.00/

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ. MEIII Paměti konstant

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Práce v návrhovém prostředí Xilinx ISE WebPack 9.2i

DUM č. 10 v sadě. 31. Inf-7 Technické vybavení počítačů

PŘÍLOHY. PRESTO USB programátor

VINCULUM VNC1L-A. Semestrální práce z 31SCS Josef Kubiš

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

ASYNCHRONNÍ ČÍTAČE Použité zdroje:

Parametry pamětí vybavovací doba (tj. čas přístupu k záznamu v paměti) = 10 ns ms rychlost toku dat (tj. počet přenesených bitů za sekundu)

Compact Matrix System

Témata profilové maturitní zkoušky

Práce v návrhovém prostředí Xilinx ISE WebPack 10.1 BDOM UMEL FEKT Šteffan Pavel

Způsoby realizace paměťových prvků

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností a hlavnímu parametry.

Způsoby realizace této funkce:

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

... sekvenční výstupy. Obr. 1: Obecné schéma stavového automatu

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Procesor. Hardware - komponenty počítačů Procesory

2.7 Základní deska. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Bakalářská práce Realizace jednoduchého uzlu RS485 s protokolem MODBUS

Velmi zjednodušený úvod

PK Design. Uživatelský manuál. Modul USB-FT245BM v2.2. Přídavný modul modulárního vývojového systému MVS. Verze dokumentu 1.0 (7. 11.

Praktické úlohy- 2.oblast zaměření

Miroslav Flídr Počítačové systémy LS /21- Západočeská univerzita v Plzni

Transkript:

PROGRAMOVATELNÁ LOGICKÁ POLE Programovatelné součástky a zejména hradlová pole jsou velmi důležité prvky dnešní elektroniky. Díky nim si každý může vyrobit vlastní zákaznický integrovaný obvod šitý přesně na míru dané aplikaci s minimálními náklady. V současnosti existuje celá řada programovatelných logických obvodů - od pamětí PROM přes součástky typu PAL až po programovatelná hradlová pole (FPGA - Field Programmable Gate Arrays), která jsou nejvyšším stupněm v úsilí o levné zákaznické obvody. Všechny programovatelné součástky se souhrnně (obecně) označují PLD, což znamená Programmable Logic Device. Nejběžnější dělení programovatelných obvodů v současné době je na obvody PLD (Programmable Logic Devices) a FPGA (Field Programmable Gate Arrays). Obvody PLD se dále dělí na obvody SPLD (Simple PLD) dnes to jsou zejména obvody GAL16V8, GAL20V8 a GAL22V10 a jsou charakteristické tím, že obsahují jedno programovatelné pole, a obvody CPLD (Complex PLD mnoho výrobců i různých typů) se strukturou odpovídající několika obvodům SPLD na společném čipu. Programovatelná hradlová pole byla představena v polovině osmdesátých let. FPGA v sobě slučují výhody vysoké integrace VLSI obvodů (velká hustota logiky, rychlost, výkonnost) s výhodami snadného návrhu, levné produkce a rychlého nasazení. Logické funkce, dříve realizované mnoha pouzdry TTL apod., lze integrovat do jediného pouzdra. V současnosti vyrábí různé varianty programovatelných hradlových polí několik výrobců. Mezi nimi od počátku zaujímá vedoucí pozici americká firma XILINX s obvody registrovanými pod obchodní značkou LCA (Logic Cell Array). Základem architektury LCA je matice konfigurovatelných logických bloků realizujících prostřednictvím programovatelného propojení požadovanou logickou funkci. Komunikaci s okolím zajišťují programovatelné vstupně-výstupní bloky. Rozdíly mezi programovatelnými logickými obvody vycházející z architektury PAL a LCA: - Propojení má u LCA aditivní charakter, t.j. propojovací vodiče mohou být připojovány tak, aby vytvořily cestu mezi libovolnými dvěma uzly. - Programovatelné propojení součástek typu PAL, GAL, EPLD apod. je subtraktivní - naprogramování požadovaného propojení spočívá v odstranění předdefinovaných spojů, aby nadbytečná logika byla eliminována. Počet propojovacích cest mezi dvěma uzly je předem definován, a jakmile je nějaký spoj odstraněn, není už odpojená část logiky použitelná. Základní logické bloky jsou u LCA programovatelné a mohou být nakonfigurovány pro použití v širokém spektru kombinačních a sekvenčních funkcí. Naproti tomu u programovatelných logických obvodů vycházejících z architektury PAL bývají funkce makrobuňek konfigurovatelné jen v omezeném rozsahu. K dispozici je velký výběr LCA vzájemně se lišících architekturou (v několika typových řadách), množstvím logiky (s odstupňovanými hustotami od několika stovek až do stovek tisíc ekvivalentních hradel), rychlostí, počtem pinů, pouzdry atd. Uživatel si může zvolit, jaký

typ jeho aplikaci nejlépe vyhovuje. V každém případě už i nejmenší LCA může nahradit až několik desítek SSI/MSI integrovaných obvodů. LCA jsou vyráběna pokročilou technologií CMOS (stejnou jako pro SRAM) s nízkou cenou, velmi nízkou spotřebou, vysokou dosažitelnou rychlostí, hustotou logiky, výtěžností, spolehlivostí a testovatelností. Podobně jako u programovatelných mikroprocesorových periferních obvodů jsou i u LCA uložena konfigurační data ve vnitřní statické paměti RAM. Obvody PLD jsou založeny na vyjadřování kombinačních logických funkcí ve tvaru součtu součinů (Sum Of Products SOP), podobně jako známější paměti PROM. Na rozdíl od těchto pamětí, které mají pevně zapojenou součinovou část a programovatelné součtové pole, je u obvodů PLD programovatelné součinové pole a pevná součtová část (struktura PAL) nebo jsou programovatelné obě části (struktura PLA). V nejjednodušším případě odpovídá každé realizované logické funkci v obvodu PLD jedna makrobuňka, takže počet makrobuněk obsažených v těchto obvodech dává představu o tom, jak složité zapojení se do nich "vejde". Obvody SPLD obsahují 8 až 10 makrobuněk Obvody CPLD jich obsahují až několik stovek. Obvody PLD se v současnosti vyrábějí s rozsahem až do zhruba 10 000 ekvivalentních hradel (pro GAL16V8 se udává ekvivalent 300 hradel). Obvody FPGA obsahují pole malých programovatelných buněk, které se pro vytvoření logické funkce musí vhodně propojit. Úloha najít optimální propojení je zde mnohem složitější => používá se návrhový systém, který toto propojení vytvoří automaticky. Rozsah logiky v obvodech FPGA se pohybuje o dva až o tři řády výše než u obvodů PLD (milióny i více ekvivalentních hradel). Vývojové prostředky Návrhové systémy jsou v současnosti nezbytným nástrojem pro práci s programovatelnými obvody. Vstupní údaje (popis vyvíjené konstrukce) je nutné zapsat ve formě, kterou je systém schopen převést na model této konstrukce. Ten je pak možno zpracovávat simulátorem k ověření jeho správnosti, časových parametrů a podobně, a dále jej syntetizérem a implementačním programem vložit (implementovat) do cílového programovatelného obvodu. Zápis vstupních údajů bývá nejčastěji textový pomocí jazyků HDL (Hardware Description Language) nebo grafický editory schémat, stavových diagramů a podobně. Grafické systémy vstupu bývají obvykle nepřenositelné na jiný systém, než je ten, v němž byl popis vytvořen. Z tohoto hlediska jsou výhodnější systémy textového vstupu, které jsou ve výrazně větší míře standardizovány. K nejznámějším jazykům HDL patří jazyk ABEL a jazyk VHDL. Jazyk ABEL je poměrně jednoduchý, a jeho syntaxe vychází ze struktury obvodů PLD, pro něž je určen. Jazyk VHDL má výrazně vyšší stupeň abstrakce (a také složitosti), což dovoluje i syntézu zaměřenou na obvody FPGA.

Pro vývoj aplikací s FPGA existuje několik návrhových systémů. Pro vývoj je nutné použít minimálně dvou nástrojů. Prvním je nástroj pro syntézu, který převede většinou textový popis návrhu v některém HDL jazyce na netlist využívající obecné logické bloky. Druhý nástroj zajistí konverzi obecného netlistu na netlist využívající prostředky konkrétního FPGA a zajistí jejich "optimální" rozmístění a propojení. Pokud chce člověk začít pracovat s obvody FPGA musí si tedy obstarat základní programové vybavení od výrobce obvodů. Kromě nástrojů pro syntézu je velmi výhodné používat ještě simulátor, čímž se může předejít chybám již v průběhu návrhu. Ceny vývojových prostředků jsou však velmi vysoké (ceny licencí na jeden rok se obvykle pohybují od 1000 do 2000 dolarů). Firma Xilinx nabízí pro FPGA s menší hustotou logiky mnohem levnější alternativu. Vývojový systém ISE WebPACK je totiž zadarmo. Tento vývojový systém pro FPGA firmy Xilinx je omezenou verzí jejich kompletního systému. Kromě vlastního prostředí WebPACK je možné zdarma získat i omezenou verzi HDL simulátoru ModelSim XE, což je verze s předkompilovanými knihovnami primitiv pro FPGA Xilinx. Omezení simulátoru spočívá ve zpomalení jeho funkce pro velké návrhy, Vývojové prostředí ISE WebPACK včetně simulátoru ModelSim XE je možno stáhnout zde. Jedinou podmínkou pro stažení je nutnost zaregistrovat se. Tím si vytvoříte uživatelský účet a získáte přístup ke stáhnutelným souborům. Systém WebPACK umožňuje zadání návrhu v některém z HDL jazyků Verilog nebo VHDL, případně i pomocí schématu. Prostředí podporuje následující obvody Xilinx:

FPGA Spartan-II FPGA Spartan-IIE FPGA Virtex-E (max. XV300E) FPGA Virtex-II (max. X2V250) CPLD CoolRunner2 CPLD XC9500/XL/XV CPLD CoolRunner XPLA3 Součástí systému je i nástroj pro konfiguraci FPGA a CPLD z počítače přes JTAG rozhraní, editor stavových diagramů a FloorPlanner pro manuální úpravy fyzického rozmístění bloků v FPGA. Hardware Pro bližší seznámení s programovatelnými hradlovými poli je výhodné použít již hotovou vývojovou desku. Na trhu jich je několik a jejich ceny se pohybují řádově od $200. FPGA-evb-S2 Jedná se o open-source vývojovou desku pro FPGA Xilinx Spartan-II. Umožňuje použít libovolný obvod z této řady v pouzdru PQFP-208. Díky použitému typu obvodu lze pro vývoj aplikací využít prostředí ISE WebPACK, takže odpadají další finanční náklady na vývojový systém. Plně osazená deska obsahuje: FPGA Xilinx Spartan-II XC2S200-6PQ208 Patici pro konfigurační PROM XC17S200A Programovatelný krystalový oscilátor 20-120 MHz Dva 80-pinové konektory pro rozšíření Rozhraní PS/2 pro klávesnici nebo myš Výstup na VGA monitor Čtyřnásobný DIP přepínač Čtyři tlačítka Osm LED Konfigurační konektor Deska může být napájena stejnosměrným nebo střídavým napětím v rozsahu 7-15 V. Karta byla vyvíjena s ohledem na co nejnižší cenu, takže základem je pouze dvouvrstvá deska plošných spojů. Dalším kritériem při vývoji byla snadná rozšiřitelnost, takže vlastní karta obsahuje pouze základní periferie. Libovolné periferie mohou být připojeny pomocí dvou 80-pinových konektorů.

Zde je fotografie modulu,který budeme používat POPIS PLD

Klasické PLD Obvody této kategorie jsou charakteristické vnitřní strukturou podle následujícího obrázku. Každá vodorovná čára v programovatelné matici AND představuje vždy jedno součinové hradlo. Na vstupy každého hradla lze připojit "libovolnou" kombinaci vstupních signálů, zpětných vazeb a jejich negací. Počet vstupů každého součinového hradla je však omezen. Zapojení jednoho součinového hradla je znázorněno na následujícím obrázku. Vlnovky na tomto obrázku představují programovatelné spínače. Jejich realizace závisí na výrobní technologii obvodu. Například u bipolárních obvodů se jednalo o jakousi pojistku, která se při programování obvodu "přepálila" proudovým impulsem. V technologii CMOS jsou spínače realizovány stejnými principy jako u pamětí PROM, EPROM nebo EEPROM. Složitější obvody z kategorie FPGA mívají často spínače řízeny statickou pamětí RAM. Do kategorie klasických PLD je možné zařadit obvody následujících typů:

PAL PLA Obvody typu PAL (Programmable Array Logic) mají strukturu podle výše uvedených obrázků. Některé starší typy neměly například výstupní registry, takže byly vhodné spíše pro kombinační logiku. Zástupci této kategorie jsou obvody PAL, GAL a PALCE. Obvody typu PLA (Programmable Logic Array) mají obecnější strukturu než PAL na horním obrázku. Mají totiž programovatelnou nejenom matici logických součinů, ale i následující matici logických součtů. Komplexní PLD Klasické obvody PLD mají velmi omezené prostředky, takže umožňují realizovat pouze jednodušší funkce. Proto výrobci začali sdružovat více takovýchto obvodů na jednom čipu spolu s nutnými prostředky pro propojení. Takovéto obvody se většinou označují jako CPLD což znamená Complex Programmable Logic Device. Typická struktura obvodu CPLD je znázorněna na následujícím obrázku. Každý výrobce CPLD používá trochu jinou interní strukturu obvodů, ale většinou vychází z tohoto schématu. CPLD od různých výrobců se obvykle liší v provedení bloků vlastní programovatelné logiky i když většinou vychází z klasické struktury PAL.

Obvody FPGA Obvody typu FPGA (Field Programmable Gate Array) mají z programovatelných obvodů nejobecnější strukturu a obsahují nejvíce logiky. Současné největší obvody FPGA obsahují až 6 milionů ekvivalentních hradel (typické dvouvstupové hradlo NAND). Typickou strukturu obvodu FPGA znázorňuje následující obrázek. Bloky označené IOB (Input/Output Block) představují vstupně-výstupní obvody pro každý v-v pin FPGA. Tyto bloky obvykle obsahují registr, budič, multiplexer a ochranné obvody. Bloky LB (Logic Block) představují vlastní programovatelné logické bloky. Všechny bloky mohou být různě propojeny globální propojovací maticí. Nejpoužívanější struktura konfigurovatelného logického bloku je znázorněna na následujícím obrázku.

FPGA obvykle umožňují propojit některé signály logických bloků přímo se sousedním bez nutnosti využívat globální propojovací matici. Takovéto spoje mají mnohem menší zpoždění a umožňují tak realizovat například rychlé obvody šíření přenosu, což je nezbytné pro sčítačky nebo násobičky. Kromě bloků znázorněných na předchozích obrázcích integrují výrobci do FPGA další prvky. Většina moderních FPGA obsahuje několik bloků rychlé synchronní statické paměti RAM. Velmi často obvody FPGA obsahují PLL (Phase Locked Loop) nebo DLL (Delay Locked Loop) pro obnovení charakteristik hodinového signálu, případně pro násobení nebo dělení jeho frekvence. FPGA Xilinx Jednotlivé typové řady programovatelných hradlových polí Xilinx jsou porovnány v následující tabulce. Tabulka neobsahuje typy, které se již v dnešní době nevyrábí. Typ V ccint [V] V ccio [V] XC4000XL/XLA 3,3 3,3 Počet logických buněk 466-7448 Syst. hradel [tis.] 10-200 Distrib. RAM [kbit] Bloková RAM [kbit] 6-98 - Pouzdra PLCC QFP BGA Podpora v systému WebPACK Pozn. NE - XC4000XV 2,5 3,3 12312-100 - 162 - - QFP NE -

Spartan-XL 3,3 3,3 Spartan-II 2,5 2,5-3,3 Spartan-IIE 1,8 1,8-3,3 Virtex 2,5 2,5-3,3 Virtex-E 1,8 1,8-3,3 Virtex-II 1,5 1,5-3,3 20102 500 265 BGA 238-1862 432-5292 1728-6912 1728-27648 1728-73008 576-104882 5-40 3-25 - 15-200 50-300 6-74 16-56 24-96 32-64 PLCC QFP BGA QFP BGA QFP BGA 50-1000 24-384 32-128 QFP BGA 50-3200 24-1014 64-832 QFP BGA 40-8000 8-1456 72-3024 BGA NE ANO ANO Architektura typu XC4000 Architektura typu Virtex Rychlejší verze Spartan-II NE - Max. 300 tis. hradel Max. 300 tis. hradel Rychlejší verze Virtex Násobičky 18x18 bitů Všechny FPGA Xilinx používají konfiguraci pomocí statické paměti RAM. To znamená, že po připojení napájení je nutné vždy nahrát znovu konfiguraci. Výhodou tohoto řešení je téměř nekonečná reprogramovatelnost FPGA a také rychlost. Konfigurační propojky pracující na principu paměti RAM jsou totiž rychlejší než přepínače na principu např. EEPROM. Při porovnávání údajů z tabulky je třeba vzít v úvahu následující skutečnosti: Počet systémových hradel je zavádějící. Toto číslo vyjadřuje kompletní rozsah interní logiky včetně konfiguračních prostředků, blokových pamětí apod. Mnohem důležitější údaj je počet logických buněk. Interní struktura logické buňky je vždy schématicky znázorněna v katalogu. Distribuovaná paměť RAM je tvořena multiplexery logických buněk. Při jejím použití se připravujeme o využitelné prostředky pro ostatní logiku. Obvykle může být tato paměť využita jako dvouportová nebo klasická jednoportová synchronní RAM nebo jako ROM. Bloková paměť RAM je tvořena skutečnými bloky synchronní statické RAM. Bloky mají dvojnásobné adresové i datové sběrnice, takže je lze využít i jako dvouportovou paměť. Pro využití obvodů FPGA v našich podmínkách je důležitý i údaj o podpoře ve vývojovém systému WebPACK. Firma Xilinx totiž nabízí svůj vývojový systém ISE v několika verzích. Cena roční licence na plný systém se pohybuje v tisících dolarů. Jako alternativu však Xilinx nabízí ISE WebPACK, který lze zdarma stáhnout z webových stránek firmy. Tento systém však samozřejmě nepodporuje všechny typové řady FPGA. Více se budu vývojovému systému věnovat dále. Spartan-II Pro běžné použití se mi v současné době jeví nejvýhodnější programovatelná hradlová pole typu Spartan-II a Spartan-IIE. Tyto typy jsou totiž plně podporovány vývojovým prostředím ISE WebPACK a využívají pokročilou architekturu obvodů řady Virtex. Ve srovnání s obvody Virtex-E a Virtex-II jsou však FPGA Spartan-II mnohem levnější. Počet využitelných hradel je dostatečně velký i pro poměrně rozsáhlé návrhy. Například kompletní řadič VGA v grafickém režimu nezabere ani 1% využitelné logiky největšího obvodu Spartan-II s 200 tisíci systémovými hradly. Interní struktura nejmenšího obvodu Spartan-II XC2S15 je znázorněna na

následujícím obrázku. Ostatní obvody této řady se liší pouze počtem jednotlivých bloků. Obvod obsahuje vstupně-výstupní buňky (I/O CELLs), konfigurovatelné logické bloky (CLBs), blokovou paměť RAM (BLOCK RAM) a bloky DLL (Delay Locked Loop), které slouží pro rekonstrukci a případné násobení či dělení vnějších taktovacích signálů. Vstupně-výstupní buňky Struktura jednotlivých v-v buněk je schématicky znázorněna na následujícím obrázku.

Vstupně-výstupní buňka může pracovat v jednom ze šestnácti režimů jako jsou například LVCMOS, HSTTL, STTL, GTL a další. Všechny tři registry mohou být řízeny hranou (flip-flop) nebo úrovní (latch). Logické buňky Základním stavebním prvkem konfigurovatelného logického bloku (CLB) je logická buňka (Logic Cell - LC). Logická buňka obsahuje čtyřvstupový funkční generátor, rychlou logiku přenosu a paměťový element. Každý konfigurovatelný logický blok (CLB) obvodů řady Spartan-II obsahuje čtyři logické buňky (LC) uspořádané do dvou shodných řezů (slice). Kromě čtyř logických buněk obsahuje CLB ještě logiku, která umožňuje kombinovat funkční generátory a tak bylo možné vytvořit logickou funkci pěti nebo šesti proměnných. Schéma jednoho řezu (dvě logické buňky) je znázorněno na následujícím obrázku.

Funkční generátory jsou tvořeny takzvanými look-up tables (LUT), což jsou vpodstatě konfigurovatelné paměti ROM se čtyřbitovou adresovou a jednobitovou datovou sběrnicí. Tyto bloky mohou být využity nejen pro generování kombinačních logických funkcí, ale i jako synchronní paměť RAM 16x1 bit. LUT může pracovat také jako šestnáctibitový posuvný registr. Bloková RAM Pro paměťově náročnější návrhy obsahují obvody řady Spartan-II blokovou paměť. Ta je rozdělena do bloků po čtyřech kilobitech. Tyto bloky jsou rovnoměrně rozmístěny v ploše čipu. Každý blok může být nakonfigurován do režimu 4Kx1 až 256x16. Paměť může být využita jako dvouportová nebo jednoportová. Obsah paměti je možné definovat již při návrhu, takže je možné využít blokovou RAM i jako paměť typu ROM.