Martin Řehák
2.1.2005




Actel
www.actel.com


Produkty FPGA:


* technologie Antifuse (řada Axcelerator - 0,15um, až 500MHz, až 2M eq. hradel; nízká spotřeba)

* technologie Flash (řada ProASIC[Plus] - 0,25/0,22um, až 250/240MHz, až 0,5/1M eq. hradel)

* speciální pro armádu, letectví a kosmonautiku (Antifuse i Flash; teplotní odolnost, hermetická pouzdra, několik stupňů odolnosti proti ionizujícímu záření)


Actel ProASIC:

Rodina ProASIC je vyráběna standardní čtyřvrstvou 0,25um Flash/CMOS technologií, kombinuje vysokou hustotu hradel s malou spotřebou (~1/2 oproti SRAM based FPGA) a díky Flash disponuje permanentním a přitom reprogramovatelným uložením konfiguračních dat přímo v čipu (není tedy nutno připojovat externí paměť). Snaží se tak konkurovat konvenčním neprogramovatelným obvodům ASIC. Narozdíl od Antifuse FPGA nemají Silicon Explorer probe (možnost měření libovolných interních uzlů).

přehled rodiny ProASIC:

ProASIC family

Features:
-vnitřní/vnější takt: 250/100MHz
-vestavěná dvouportová SRAM/FIFO do 150MHz
-32bit PCI 2.2 rozhraní
-výstupy 2,5V/3,3V s individuálně nastavitelnou dobou přeběhu
-segmentovaná hierarchická propojovací struktura
-různé rychlosti pro krátké, střední a dlouhé spoje
-malé logické bloky (granularita na úrovni hradlových polí)
-FlashLock (ochrana konfiguračních dat 79-263bit klíčem)
-podpora ISP (programování přímo v zapojení)
-podpora standardních vývojových nástrojů pro FPGA/ASIC
-boundary scan test (IEEE standard pro testování obvodů)

Systém značení:
A500Kwww - XX YYY ZZ
www*2000 - přibližný počet ekvivalentních hradel
XX - typ pouzdra (BG - BGA, PQ - PQFP, FG - FBGA)
YYY - počet nožiček
ZZ - teplotní rozsah (nic: 0 až 70°C, I: -40 až +70°, ES: pouze pokojová teplota)

Vnitřní uspořádání:

inside FPGA-simplified

Obvod je tvořen velkým množstvím logických buněk (Sea-of-Tiles TM) a bloky 2-portové SRAM/FIFO. Vzájemné propojení buněk obstarávají různé typy spojů a programovatelné Flash spínače.

Logická buňka:

logic cell-simplified

je velmi jednoduchá, má 3 vstupy, z nichž každý může být invertovaný a jeden výstup. Lze ji naprogramovat tak, aby prováděla libovolnou logickou funkci tří proměnných s výjimkou 3-vstupového XOR. Též je možno buňku nakonfigurovat jako latch nebo flip-flop.

logic cell-full

Flash spínač:

flash switch

je tvořen dvěma FETy, které sdílí plovoucí hradlo nesoucí informaci o stavu spínače. Jeden FET slouží pro zápis/verifikaci a druhý je vlastní spínač spojující cesty/sítě, který zároveň slouží k mazání.

Propojovací systém:
má 4-úrovňovou hierarchii - ultra rychlé lokální spoje, efektivní dlouhé spoje, rychlé velmi dlouhé spoje a globální síť.
Lokální spoj umožňuje propojení výstupu jakékoliv buňky na libovolný vstup okolních 8-mi buněk.

ultrafast local connection

Efektivní dlouhé spoje umožňují propojení na delší vzdálenost přes 1, 2 nebo 4 sousední buňky. Jsou pouze horizontální nebo vertikální a pokrývají celý čip. Každá buňka může být připojena libovolným vstupem nebo výstupem.

efficient long connection

Rychlé velmi dlouhé spoje jsou tažené přes celý čip, s minimálním zpožděním, horizontálně nebo vertikálně a umožňují propojit několik buněk z každé skupiny podél celé délky spoje.

hi-speed very long connection

Globální síť s minimálním zpožděním ("skew" - různá doba šíření hrany signálu vlivem různé délky spojů) slouží pro propojování důležitých signálů jako jsou hodiny nebo reset. Celkem jsou na čipu 4 tyto sítě, každá může být řízena z logické buňky nebo z vnějšku přes 1 pin. Zpoždění by nemělo v nejhorším případě přesáhnout 0,3ns.

global network connection
"spine" - páteř, "rib" - žebro

I/O blok:

I/O block

Každý uživatelský I/O pin lze individuálně nastavit na 2,5V nebo 3,3V logiku (kompatabilní s PCI), může být vstupem, výstupem, 3-stavovým výstupem nebo obousměrným transferbufferem. Dále lze pro každý vstup zapnout interní pull-up rezistor (~10kohm), nastavit sílu buzení (max. proud v L ~50mA, v H ~20mA) a rychlost přeběhu. Každý I/O pin má ochranu proti ESD. Zde je přehled počtu uživatelských I/O pinů pro jednotlivé typy:

user I/O pins table

Vestavěná paměť SRAM/FIFO:

SRAM/FIFO example

Základem paměti je blok 256x9 bitů (obvykle 8+1 pro paritu). Počet bloků závisí na typu FPGA. Každý blok lze konfigurovat (SRAM/FIFO, synchronní/asynchronní) a používat nezávisle nebo je lze propojit do větších celků (širší slovo/více adres). Paměť byla od začátku navržena a optimalizována jako dvouportová (jeden port pro čtení a jeden pro zápis).

Zabezpečení obsahu konfigurační paměti:
Aby se předešlo nežádoucímu kopírování konfigurace FPGA, lze naprogramovat "read-protect" bit (read/verify/erase/write), kterým se znemožní vyčtení obsahu konfigurační paměti. Takto chráněné operace je pak možno provést pouze po zadání správného bezpečnostního klíče, jehož délka závisí na konkrétním typu:

FlashLock key length

Vzhledem k omezené rychlosti JTAG rozhraní na 20MHz by brute-force útok na 55-bitový klíč trval 57let. Též by mělo být znemožněno invazivní přečtení dat z čipu, protože buňky Flash jsou uloženy vevnitř mezi 4-mi kovovými vrstvami, které nelze odstranit aniž by to neovlivnilo náboj hradel FETů a informaci tak nepoškodilo.

Vývojové nástroje a programování:
lze použít standardní VHDL/Verilog software a vygenerovaný netlist pak předat Place&Route programu od Actelu a nebo použít integrované prostředí Libero (demo lze stáhnout na webu), které obsahuje vše v jednom. Bitstream se pak nahraje buď ve speciálním programátoru nebo přímo ve stávajícím zapojení. Během programování jsou všechny piny kromě JTAG rozhraní ve stravu vysoké impedance. Zde je schéma vývojového procesu:

design flow

Energetická náročnost:
Spotřeba je vcelku nízká, u běžných aplikací pár desetin Wattů. Jak je obvyklé u CMOS technologie, spotřeba téměř lineárně roste s frekvencí překlápění hradel. V celku přesný odhad lze získat pomocí XLS kalkulátoru od Actelu.

power consumption

Poznámky:
Obvod má nezávislé napájení jádra Vcore=2,5V a I/O bloků Vio=2,5V/3,3V. Při zapnutí musí být Vcore přítomno dříve nebo max. součastně s Vio, jinak hrozí náhodné nastavení I/O pinů.
Garantovaná životnost konfiguračních dat ve Flash paměti je 20let, při skladování v teplotním rozsahu -55°C až +110°C.







Actel ProASIC Plus:

Rodina ProASIC Plus vychází z předchozí rodiny ProASIC a vylepšuje všechny její funkce. Je vyráběna standardní čtyřvrstvou 0,22um Flash/CMOS technologií. Zvyšuje maximální počet ekvivalentních hradel na 1M.

přehled rodiny ProASIC Plus:

ProASIC Plus family

Features:
-vnitřní/vnější takt: 240/150MHz
-vestavěná dvouportová SRAM/FIFO do 150MHz
-dva integrované PLL s nastavitelnou fází a dělením
-32bit PCI 2.2 rozhraní do 50MHz
-výstupy 2,5V/3,3V s individuálně nastavitelnou dobou přeběhu
-vstupy s volitelným Schmitt-KO
-segmentovaná hierarchická propojovací struktura
-různé rychlosti pro krátké, střední a dlouhé spoje
-malé logické bloky (granularita na úrovni hradlových polí)
-FlashLock (ochrana konfiguračních dat 79-263bit klíčem)
-podpora ISP (programování přímo v zapojení)
-podpora standardních vývojových nástrojů pro FPGA/ASIC
-boundary scan test (IEEE standard pro testování obvodů)

Systém značení:
APAuuuu - WW V WW XXXX YY ZZZ
uuuu*1000 - počet ekvivalentních hradel
V - rychlost (nic: standardní, F: o 20% pomalejší)
WW - typ pouzdra (TQ - TQFP, PQ - PQFP, FG - FBGA, BG - BGA, CQ - CQFP, CG - CCGA)
XXXX - počet nožiček
YY - teplotní rozsah (nic: 0 až 70°C, I: -40 až +70°, MS: -55 až +125°, ES: pouze pokojová teplota)
ZZZ - dodatek k pouzdru (nic: standardní, X79: Lead-free)

Vnitřní uspořádání:

inside FPGA-simplified

Obvod je tvořen velkým množstvím logických buněk, bloky 2-portové SRAM/FIFO a 2-ma programovatelnými PLL. Vzájemné propojení buněk obstarávají různé typy spojů a programovatelné Flash spínače. Logické buňky, paměťové bloky a propojovací systém je stejný jako u ProASICu. U I/O bloku navíc přibyla možnost "Schmitt-trigger" s typickou hysterezí 0,35V. Pokud je tato funkce aktivována, mohou být vstupy o něco pomalejší než ostatní. Nelze použít v režimu obousměrné přenosové hradlo. Také přibyl jeden diferenciální LVPECL vstup:

LVPECL input

Zde je přehled počtu uživatelských I/O pinů pro jednotlivé typy:

user I/Os table

PLL (obvod fázového závěsu):
Obvod pro úpravu hodin má k dispozici 2 PLL jádra, zpožďovací linky, posouvače fáze (o 0°, 90°, 180° a 270°) a hodinové násobičky/děličky a spoje pro obousměrný přístup k PLL. PLL blok obsahuje 4 programovatelné děličky dělící vstupní hodinový signál 1 až 64x. Hodiny lze též zpozdit až o 8ns s krokem po 0,25ns. PLL lze konfigurovat interně i externě během činnosti bez potřeby přeprogramování konfigurační Flash paměti. Rozsah vstupních frekvencí je 1,5 až 180MHz a výstupních 6 až 180MHz.

Clock condition circuit with PLL

Příklad využití PLL pro násobení vstupních hodin 33MHz na 133MHz:

Clock condition circuit with PLL

Typy pouzder:

Actel FPGA Packages




„Nejkrásnější ze všech tajemství je být géniem a vědět to jen sám.“ Mark Twain