Obvody Xilinx řady XC3000 Z řady XC3000 vychází čtyři nové rodiny obvodů XC3000A XC3000L XC3100A XC3100L Mají stejnou architekturu, vývojový program, návrhové a programové metodiky i stejné vlastnosti výstupních pinů. XC3000A - Je vyžší verzí XC3000 s dalšími přídavnými prostředky pro vnitřní propojení, dalšími přídavnými funkcemi a vyšší rychlostí. XC3000L - Stejná jako XC3000A, ale pracující s napětím 3,3V. XC3100A - Tato řada je více výkonnostně optimalizovaná od řady XC3000A. Vyšší frekvence systémových hodin (>85Mhz).Menší zpoždění log. bloků.obsahuje přídavné pole 22x22 CLB označované jako XC3195A. XC3100L - Také jako XC3100A, ale pracující s napětím 3,3V. Obr.1 Vztah mezi jednotlivými obvody řady XC3000
Detailní popis funkce Okruh konfigurovatelných I/O bloků (IOBs) zajišťuje programovatelné rozhraní mezi vnitřním logickým polem a piny pouzdra. Pole konfigurovatelných bloků (CLBs) zajišťuje uživatelskou logickou funkci. Vnitřní propojení jsou programována do tvaru sítí nesoucí signál mezi bloky. Nastavení logické funkce bloku je implementováno v tabulkách.funkční nastavení je provedeno pomocí programově řízených multiplexerů.vnitřní propojení mezi bloky je provedeno pomocí kovových segmentů propojených programově řízenými průchozími tranzistory. Funkce pro konfigurování log. bloků a pro vnitřní propojení jsou uloženy, v podobě konfiguračního programu, ve vnitřních konfiguračních paměťových buňkách. Tento konfigurační program je nahrán, po zapnutí napájení, do zařízení. Muze být také příkazem znovu přehrán.programová data mohou být sériová, nebo paralelní. Vývojový systém generuje sled bitů konfiguračního programu který konfiguruje zařízení. Nahrávání programu z paměti je nezávislé od uživatelských log. funkcí.
Konfigurační paměť Statická paměť používaná jako konfigurační paměť v FPGA je konstruována pro vysokou spolehlivost a šumovou odolnost. Zapojení statické paměťové buňky je na obr.3. Tato buňka obsahuje dva CMOS invertory a průchozí tranzistor určený ke čtení a zápisu. V běžném provozu poskytuje buňka nepřetržité řízení a tranzistor je vypnut, aby neovlivňoval stabilitu buňky. Toto řízení je odlišné od běžných paměťových zařízení, ve kterých jsou buňky nepřetržitě čteny a přepisovány. Výstupy buňky Q a nonq pracují s úrovněmi Vcc a GND. I/O blok I/O blok na obr.4 obstarává rozhraní mezi výstupními piny pouzdra zařízení a vnitřní uživatelskou logikou. Každý IOB má registrový vstup a přímý vstup. Každý IOB obsahuje programovatelné třístavové výstupní zesilovače, které mohou být řízeny přímým signálem, nebo signálem z registru. Konfigurační nastavení umožňuje každému obvodu invertování výstupních hodnot, řízení rychlosti přeběhu a řízení vysokoimpedačních PULL-UP rezistorů. Každý vstup obvodu obsahuje diodu k elektrostatické ochraně. Vstupní zesilovače každého IOB umožňují nastavování prahových úrovní, k převodu vnějšího signálu na úrovně vnitřní logiky. Tyto prahové úrovně mohou být u vstupních zesilovačů naprogramovány například na logiku TTL nebo CMOS. Zesílené vstupní signály jsou vedeny do paměťového elementu, který může být nakonfigurován jako Flip-flop (hranou řízený klopný obvod), nebo Latch (hladinou řízený klopný obvod). U obou vstupních hodin jde naprogramovat náběžná/spádová hrana,horní/dolní hladina pro řízení flip-flop,nebo latch. Pin O je zdrojem dat pro výstupní zesilovač, buď jako přímý, nebo jako registrový. U každého IOB lze vkládat vysokoimpedanční Pull-Up rezistory, které mohou být programem určeny k přivedení log.1 na neřízené piny pouzdra.
I/O paměťové elementy jsou resetovány během konfigurování, nebo mohou být resetovány signálem RESET. Vstupy DIRECT IN a REGISTERED IN jsou dostupné pro vnitřní propojení. Konfigurační program pro každý IOB obsahuje výběr výstupního registru, inverzi logického signálu, třístavové řízení výstupu a řízení rychlosti přeběhu. Programově řízené paměťové buňky na obr.4 řídí následující nastavení. Logická inverze výstupu, která je řízena bitem konfiguračního programu. Řízení výstupního zesilovače v závislosti na log. hodnotách OUTPUT ENABLE. Zesilovač je buď aktivní, nebo blokován. Přímý, nebo registrový výstup lze nastavit pro každý IOB. Registrový používá hranou řízený KO (flip-flop). Zdroj hodin může být dodáván z obou kovových linek. Umožňuje nastavení rychlosti přeběhu výstupního zesilovače. Vnitřní vysokoimpedanční Pull-up rezistory braní nezapojené vstupy před tím, aby nebyly plovoucí. Výstupní IOB zesilovače jsou schopny dát proud 4mA (8mA v řadě XC3100A). Pro spolehlivou činnost by vstupy měli mít přechodové časy menší než 100ns a neměly by být plovoucí.(u CMOS možnost vzniku oscilací).
Konfigurovatelný logický blok Pole konfigurovatelných logických bloků (CLBs) obsahuje funkční členy, ze kterých je konstruována uživatelská logika. CLBs jsou uspořádány do matic, např. XC3020A má 64 takových bloků. (8x8). Vývojový systém je používán k překladu konfiguračních dat, které jsou nahrány ve vnitřní konfigurační paměti, k definování operací a vnitřního propojení každého bloku. Konfigurování bloků a propojení je možno také realizovat přeložením nakresleného log. zapojení ve schématiku. Každý CLB má kombinatorické log. sekce, 2 klopné obvody a vnitřní řídící sekci. Obr.5. Zde je 5 logických vstupů (A,B,C,D a E), hodiny (K), asynchronní přímý reset (RD) a Enable clock (EA). Každý CLB má dva výstupy (X a Y), které mohou být zavedeny do sitě vnitřního propojení. Vstupní data pro každý KO v CLB jsou dodávána z výstupu funkce F nebo G kombinační logiky, nebo ze vstupu bloku DI. Oba KO v každém CLB sdílejí asynchronní reset RD, který je nezávislý na CLK. KO také sdílejí ENABLE CLOCK (EA), který povoluje, nebo zabraňuje průchodu vstupních dat, nebo kombinační funkci na KO.
Programovatelné vnitřní propojení V FPGA jsou to spojové cesty k propojení vstupů a výstupů IOBs a CLBs do logické sítě. Propojky mezi bloky jsou složeny z kovových segmentů. Speciálně konstruované průchozí tranzistory, každý řízený konfiguračním bitem, spojují tyto kovové segmenty v místě kde se nachází PIPs (obdoba uzlu). Na obr.8 je uveden příklad spojové síťě. Vývojový systém umožňuje automatické spojení těchto vnitřních propojení. Vstupy CLBs a IOBs jsou multiplexovány tudíž jejich vstupy mohou být vedeny i od dalších spojových segmentů. Na obr.9 je ukázán spojový přistup logické proměnné do vstupního bloku, řídícího vstupu a výstupu bloku.
U těchto obvodů jsou tři typy prostředků kovového propojení k vytvoření různých spojovacích cest: Hlavní propojení Přímé propojení LONGLINES (multiplexované sběrnice a rozsáhlá AND pole)
Hlavní propojení Je ukázáno na obr.10. Skládá se z pěti horizontálních a pěti vertikálních kovových linek umístěny mezi řádky a sloupce logických a IOB bloků. Místo, kde dochází ke křížení je označeno jako přepínací matice. Pomocí přepínací matice je možné naprogramovat různé propojení mezi kovovými linkami sousedních řádků a sloupců. Propojení skrz přepínací matici se může udělat automatickým propojením, nebo vybráním požadované dvojice pinů matice k propojení, nebo rozpojení. Kombinace propojení pro každý bit je na obr.11. U přepínacích matic, vpravo a nad, se také nachází zesilovače, které slouží k zesílení signálů u dlouhých propojení. Obr.8.
Přímé propojení Přímé propojení na obr.12 poskytuje mnohem efektivnější propojení mezi sousedními CLBs nebo IOBs. Signál vedený z bloku do bloku využívající přímé propojení obsahuje minimum propojení. Výstup X jednoho CLB může být přímo propojen se vstupem CLB po jeho levé, nebo pravé straně. Výstup Y může být veden do CLB pod ním, nebo nad ním. Toto propojení umožňuje vysoké rychlosti přenosu. To samé se používá i v případě, kdy CLB sousedí s IOB. viz obr.13
Longlines Jsou překlenuty přes přepínací matice a jsou hlavně určeny pro přenos signálu na dlouhou vzdálenost. LONGLINES ukázané na obr.14 jsou vertikální a horizontální. Vertikální jsou tři a horizontální dvě. U obvodů větších než XC3020A a XC3120A jsou dvě vertikální Longlines v každém sloupci v polovině přerušeny a je možno je
propojit (dvě za sebou). U XC3020A a XC3120 jsou pouze postraní Longlines v polovině přerušeny. Longlines mohou být zavedeny do CLB, nebo do IOB. Tří stavové budiče jsou u každého vstupu do longline a jsou automaticky aktivovány, když propojení je uděláno. Zesilovač v horním levém rohu FPGA čipu, řídí globální sít, která je dostupná pro všechny K vstupy (hodiny) logických bloků. Použitím Globálního zesilovače pro hodinový signál obstarává synchronizované hodiny pro některé, nebo pro všechny IOBs a CLBs. Konfigurační bity pro K vstupy každého logického bloku může vybírat buď globální prostředek, nebo jiný spojový prostředek jako zdroj hodinového signálu pro klopné obvody. Vnitřní sběrnice Dvojice třístavových zesilovačů nacházející se v blízkosti každého CLB, na obr.14, povoluje logice řízení horizontálních Longlines. Logickým řízením tří stavového zesilovače lze řídit implementaci rozsáhlých multiplexních funkcí. Každý vstup tohoto zesilovače může být zaveden do horizontální Longline přivedením log.0 na řídící vstup. obr.16. Přivedením stejného signálu jak na vstup, tak na řídící vstup vytváří "drátovou" AND funkci. přivedením log.1 na vstupy obou zesilovačů, vytváří na jeho výstupu vysokou impedanci a tudíž je zesilovač od Longline odpojen. Přivedením log.0 na vstupy, vytvoří log.0 na jeho výstupu. Pull-up rezistory na obou koncích Longline slouží k vytvoření log.1 na Lognline v případě, že výstupy všech zesilovačů jsou ve stavu
vysoké impedance. Pokud jsou vstupy zesilovače odděleny od řídících vstupů, lze zesilovače použít jako multiplexery. obr.17. Každá horizontální Longline obsahuje WEAK KEEPER obvod zabraňující nedefinovaným plovoucím úrovním vznikající držením předchozí logické úrovně, když Longline není řízena aktivním zesilovačem nebo Pull-up rezistorem. Obr.18 ukazuje tři stavové zesilovače, Longlines a Pull-up rezistory.
Krystalový oscilátor Na obr.18 je ukázano umístění vysokorychlostního invertujícího zesilovače, který může být implementován jako on-chip krystalový oscilátor. Když je oscilátor nakonfigurován a připojený jako signálový zdroj, jsou dva speciální IOB nakonfigurovány k propojení oscilátoru s komponenty vnějšího krystalového oscilátoru. Obr.19. Invertující zesilovač společně s R-C členem vytváří Piercův oscilátor s fázovým posuvem 360 stupňu. Rezistor R2 se přidává k výstupní impedanci zesilovače, pokud chceme řídit fázi, nastavování odporu krystalu a omezování rozkmitu vstupu zesilovače. Zesilovač je konstruován do 1MHz., do 1,5 násobku specifické frekvence CLB. Konfigurace Inicializační etapa Po připojení napájecího napětí je spuštěn vnitřní reset. Než Ucc dosáhne napětí, při kterém FPGA začínají pracovat (2,5-3V), programovatelné I/O výstupní zesilovače jsou ve stavu vysoké impedance. Doba po kterou se stabilizuje napětí, je
označována, jako inicializační doba. Tato doba (11-33ms) je uložena ve 14-bitovém čítači, který je řízen interními hodinami (samogenerované). V tabulce č.1 je ukázáno pět konfiguračních módů, které se nastavují pomocí "mód" pinů M0,M1,M2. V Hlavním konfiguračním módu se zařízení stává zdrojem Konfiguračních Hodin (CCLK). Začátek konfigurace zařízení se používá Periferní (vnější), nebo Slave mód, které musí být hotovy před koncem inicializace. Při Hlavním konfiguračním módu se inicializační doba zvyšuje (43 až 130ms), aby se zajistilo, že všechna zřetězená slave zařízení, které mají být řízeny, se stačila nakonfigurovat. Na obr.20 jsou ukázány jednotlivé kroky konfiguračního procesu. Na konci inicializace zařízení vloží mazací proceduru, která vymaže konfigurační paměť. INIT indikuje ukončení inicializace a mazací procedury (log.0). Pokud konfigurace začala a objeví-li se RESET v log.0 během tří (minimum) časovacích cyklů, dojde k přerušení konfigurace. Přejde se k mazací proceduře, která vymaže z části nahrané slova v konfigurační paměti. FPGA znovu přečte stav RESETU a "mód" linek před znovuspuštěním konfigurační procedury. Během konfigurace XC3000A, XC3000L, XC3100A a XC3100L testují přítomnost stop bitů na příslušných pozicích. Každá chyba ukončí konfiguraci a nastavi INIT do log.0.
Konfigurační data Konfigurační data k definování funkce a propojek jsou nahrávána po připojení napětí a po příchodu signálu re-program z vnější paměti. Je dostupné několik metod automatického, nebo řízeného nahrávání dat. Logické úrovně, které se nachází v době startu konfigurace na "mód" pinech určují konfigurační mód. Viz tab. 1. Data mohou být jak sériová, tak paralelní, což závisí na zvoleném konfiguračním módu. Různá FPGAs mají různé velikosti počtu datových rámců. K udržení kompatibility mezi různými typy zařízení, tak produkty XILING používají kompatibilní konfigurační formáty. Pro konfiguraci XC3020A je potřeba 14779 bitů, pro každé zařízení, uspořádaných do 197 datových rámců. Dalších 40 bitů se používá pro záhlaví. Obr.22. Formát dat pro každé zařízení je vytvářeno vývojovým systémem. Konfigurační sled bitů začíná úvodními osmi bity v log.1, pak čtyřmi bity úvodního kódů (0010). Následuje 24 bit kód určující délku dat. Když je konfigurace spuštěna, "počítadlo" v FPGA je nastaveno na nulu a začínají konfigurační cykly konfigurující zařízení. Každý konfigurační datový rámec je nahrán do zařízení, kde je převeden na datové slovo, které je pak nahráváno do vnitřní konfigurační paměti. Konfigurační proces končí nahráním v ech datových rámců do zařízení. Konfigurační módy Master Mód V tomto módu FPGA automaticky nahrává konfigurační data z vnější paměti. K dispozici jsou tři typy Master módů, které používají vnitřní hodiny CCLK k časování přicházejících dat. Master sériový mód používá sériová data dodávána do DATA-IN (DIN) ze synchronního sériového zdroje, jako je XILING sériová konfigurační PROM na obr.23.
Master paralelní LOW a HIGN mód automaticky dodává data z paměti na D0-D7 určené 16-bitovou adresou. Obr.25. Startovací hex adresa je 0000 pro inkrementující Master LOW mód a a FFFF pro dekrementující Master HIGH mód.
Periferní mód Vytváří jednoduché rozhraní skrz něj může zařízení nahrávat data paralelně. Obr.27.Aby mohly být z datové sběrnice načítána data, musí být CS0, CS1, CS2 a WS v aktivních úrovních. FPGA generuje hodiny z vnitřního generátoru a data jsou načítána do vstupního "bafru" a převáděna z paralelní podoby na sériově řazené rámce a vkládána do vnitřního sériového registru. Tyto data jsou pak přiváděna na DOUT. Signál READY/BUSY přechází do log.0, kdy paralelní slovo je načteno a do log.1, kdy "bafr" poslal svou informaci do sériového registru a je tedy připraven přijmout nová data. Stejně jako Master mód, tak i Periferní mód lze pou ít pro zařízení, které je hlavním zařízením pro zřetězené slave zařízení (Daisy- Chain). Viz obr.25.
Slave sériový mód Vytváří jednoduché rozhraní k nahrávání nastavení FPGA. Obr.29. Sériová data jsou nahrávána synchronně řízené signálem CCLK. Zařízení pak vlo í před data záhlaví a data putují na DOUT. Slave mód lze také vyu ít pro zřetězení (Daisychain), kdy jsou vstupní data dodávána z předchozího FPGA datového výstupu, zatímco hodiny jsou dodávána se zařízení, které je v Hlavním, nebo Periferním módu.
Řada XC4000 má proti řade XC3000 jisté změny.za nejpodstatnejší lze považovat změnu konfigurančního logického bloku. XC4000 CLB obsahuje tři funkční bloky a dva flip-flopy.funkční bloky F a G nemají společné vstupy, což jim umožňuje pracovat nezávisle.funkčni blok H kombinuje konbinačni fce F a G s pridavným vstupem H1.Dva flip-flopy ukládaji bud vystupní funkce nebo hodnotu danou vstupem DIN.Pokud se funkčni generátor H nepoužíva, pak hodnota na vstupu H1 přímo přes něj prochází a máme k dispozici další přímý vstup. Obr.1 Konfigurační log. Blok (CLB)
CLB obsahují také dedikacni hardware umožňující rychlý přenos pro použití v násobičkach nebo sčítačkách a také využití CLB jako RAM.Tato schopnost zvyšuje rychlost, efektivitu a snižuje množství použitých CLB pro dané užití.makra umožňující použití těchto možností jsou obsazena v XILINX knihovně. Obr. 2 CLB Rychlá logika Obr.3 CLB RAM mód