Jste zde

MachXO - obvody spojující vlastnosti FPGA s CPLD

Firma Lattice v letošním roce uvedla na trh novou řadu obvodů MachXO. Ty jsou zajímavé kombinací vlastností obvodů FPGA i CPLD. Navíc vnitřní FLASH paměť umožňuje změnu programu/nastavení obvodu bez nutnosti resetu. Na český trh obvody distribuuje firma HT-Eurep.

V nabídce firmy Lattice lze od letošního roku najít takový zajímavý "hybrid" nazvaný MachXO. Nejde ani o pokračovatele nebo náhradu řady CPLD obvodů ispMach4000, ani nová FPGA. Tyto obvody spojují právě vlastnosti obvou skupin, tj. obvodů CPLD a FPGA. To znamená velmi flexibilní vnitřní strukturu tvořenou velkým množstvím čtyřvstupých bloků s LUT, bloků generátorů hodinového signálu a paměťových bloků zároveň s velmi rychlým a konstantním přenosem signálu typu Pin - Pin, napěťově nezávislým uložením nastavení a velmi rychlou logikou.

Tab. 1. Vybavení obvodů MachXO v závislosti na typovém označení a počet pinů jednotlivých pouzder

Použití

  • Aplikace zpracování signálů ze senzorů + vizualizace, přenos, zalohování
  • Rozhraní HMI (Human-Machine Interface) - LED a LCD displeje a monitory, klávesnice, myš atd.
  • Routery, Servery, Gateway
  • Bezdrátové (Wireless) aplikace - WiFi, modemy
  • Paměťová rozhraní SRAM, SDRAM, DDR
  • Komunikační rozhraní mezi IrDA, UART, I2C, SPI, LPT, PCI
  • Rozhraní pro paměťové karty, různé mechaniky
  • atd.

Vlastnosti

  • Kombinace parametrů obvodů FPGA i CPLD
  • Křemíková technologie 130 nm
  • Rychlost šíření signálu pin-pin jen 3.5 s
  • Flash paměť na chipu umožňuje udržet nastavení i bez napájení
  • Změna konfigurace obvodu přes JTAG rozhraní za běhu a bez nutnosti resetu
  • Paměťové bloky 9kbitů s duálním přístupem
  • Logické bloky s LUT mohou sloužit i jako distribuovaná RAM nebo ROM
  • Bloky generátorů hodin s PLL se širokým nastavením frekvence i fáze a minimálním jitterem
  • Napájení 1.2 až 3.3 V, sleep mód velmi rychlým přechodem do aktivního stavu (méně než 1 ms)
  • Kvalitní vývojový a řídící software i vývojový kit

Architektura obvodu

Jak již bylo zmíněno v úvodu, obvody MachXO, vyráběné v křemíkové technologii 130 nm, jsou kombinací vlastností klasických obvodů CPLD a FPGA (viz. obrázek 1.). Tedy přesněji z FPGA Lattice řady EC a XP obsahuje vnitřní strukturu bloků, zatímco z CPLD řady ispMach4000 pak rychlý přenos signálu typu Pin - Pin rovný, konstantní zpoždění pro všechny průchozí signály a napěťově nezávislé přepisovatelné nastavení. Poslední vlastnost je zde dotažená k dokonalosti, protože je dokonce možné měnit nastavení během práce obvodu bez nutnosti jakéhokoliv resetu nebo odpojení napájení (viz. obrázek 3.).

Obr. 1. Idea vzniku obvodů MachXO (detail)


 

Tedy z pohledu implementace naprogramované/vytvořené aplikace jsou obvody MachXO vybaveny komunikačním rozhraním JTAG a paralelním umístěním pamětí Flash a SRAM (viz. obrázek 2.), které určují nastavení obvodu (jednotlivých bloků a propojovacích cest). Tato kombinace umožňuje zároveň velmi rychlou logiku a napěťovou nezávislost na napájení. Naprogramované nastavení je totiž trvale ve FLASH paměti a při startu obvodu (připojení napájení/resetu) se její obsah natáhne za méně než 2 ms do vnitřní pracovní SRAM. Během práce obvodu již není FLASH využívána a to umožňuje unikátní změnu nastavení obvodu i za plného běhu bez přerušení aplikace (viz. obrázek 3.)

Obr. 2. Konfigurační struktura obvodu MachXO s vnitřní FLASH (detail)

Nejdříve se nové nastavení nahraje z PC prostřednictvím programovacího softwaru ispVM System přes JTAG do vnitřní FLASH paměti, zatímco původní program stále běží. Pak se jen provede "zamknutí" I/O pinů obvodu a přehraje nový program do pracovní SRAM. Pak se již I/O piny odblokují a obvod již dále běží podle nového nastavení. Úlohu plynulého náběhu nového programu ze starého obstarává funkce Transparent Field Reconfiguration (TransFR).

Obr. 3. Postup načítání nového nastavení obvodu za běhu (vlevo - nahrání nového nastavení do FLASH, uprostřed - přehrávání obsahu z FLASH do SRAM, vpravo - plynulý náběh na nové nastavení)

Celou strukturu obvodu lze tedy rozdělit do následujících bloků (viz. obrázek 4.):

  • Programmable Function Unit (PFU)
  • sysMEM Embedded Block RAM (EBR)
  • sysCLOCK PLL
  • Programmable I/O Cells (PIC)
  • sysCONFIG port
  • JTAG komunikační port

Obr. 4. Bloková struktura obvodu MachXO

PFU jednotka

Jedná se o logické jednotky složené z osmi bloků, kde každý blok obsahuje LUT (Lookup table) a buffer. Každou PFU jednotku lze konfigurovat jako logický obvod, aritmetickou jednotku, část tzv. rozprostřené RAM nebo ROM paměti (16x2 bitů). Paměť RAM nemohou některé jednotky vytvořit, které jsou interně označovány jako PFF. Pokud by se všechny jednotky PFU použily jako RAM tak lze dosáhnout hodnoty až 7 kbitů paměti.

Obr. 5. Blokové schéma jedné PFU jednotky s LUT - základní stavební kámen obvodu (detail)

Každá LUT (Lookup table) pracuje na principu tabulky logických funkcí a proto může v rámci 4 datových vodičů, 3 řídících signálu a 2 výstupních vodičů generovat libovolnou logickou funkci, případně z nich i aritmetické operace (viz. obrázek 5.). Protože LUT je tvořena RAM nebo ROM pamětí, lze ji tedy využít i jako paměťovou buňku a dohromady s více jednotkami pak tzv. rozprostřenou RAM (16x2 bitů).

sysMEM bloky - EBR jednotky

Jde o bloky RAM paměti, která může být konfigurována jako klasická jednopřístupová paměť (single port RAM) nebo jako paměť s dvojím přístupem v jednom hodinové cyklu (dual port RAM). Každá EBR paměť má velikost 9 kbitů a u nejlépe vybavených obvodů lze tak to použít až 27.6 kbitů dual port RAM. Co se týče nastavení, je možné každou jednotku konfigurovat jako paměť s 1bitovou až 36bitovou šířkou slova nebo jako paměť FIFO. Operační rychlost je až 275 MHz a jednotlivé bloky EBR pamětí lze za sebe skládat a propojovat kaskádně.

Obr. 6. Struktura, typy a konfigurace vnitřních paměťových bloků na chipu

sysCLOCK s PLL (Phase Locked Loops)

Mezi další bloky na chipu patří obvody systémových hodin (sysCLK) obsahující programovatelné fázové závěsy s velkým rozsahem nastavení děličky frekvence a možností volby referenčního signálu z externího pinu obvodu nebo libovolného vnitřního vodiče. Vnitřní zpětnou vazbu PLL lze nahradit externí. Každý tento blok obsahuje 4 výstupy z různých míst PLL a tím lze z jednoho PLL získat více signálů s různými vlastnostmi (frekvence, střída apod.). Hodinová frekvence může být 25 až 375 MHz s jitterem pouze 125 ps. Na chipu je i 20 MHz oscilátor.

Obr. 7. Blokové schéma bloků sysCLK (detail)

sysIOBuffers

Každá jednotka obsahuje třístavové registry, výstupní a vstupní registry. Protože výstup, resp. vstup z každého registru je pouze jeden, je v jednotce i multiplexer pro přepínání více vstupů. Nejblíže fyzickému pinu je pak budič, který umožňuje nastavit napěťové hladiny velké množství rozhraní a standardů. Například LVCMOS (3.3, 2.5, 1.8, 1.2 V), LVTTL, SSTL, HSTL, PCI (MachXO 1200 & MachXO 2280) , LVDS, LVPECL. Nastavovat lze i použití pull-up, pull-down rezistorů nebo výstup s otevřeným kolektorem a řídit rychlost přeběhu SR (Slew Rate) výstupního signálu. Tím lze ovlivňovat jak vliv rušení na samotný datová signál tak i rušení ostatních obvodů a bloků vlastním přenosem.

Napájení obvodu

Napájení obvodu může být napětími 1.8, 2.5 a 3.3 V v případě jednoho typu obvodu nebo 1.2 V v případě druhého typu obvodu. Spotřeba obvodu je v plné režimu méně než 10 mA, zatímco v úsporném režimu, tzv. sleep módu, je spotřeba jen 1 μA. Sleep mode se spouští i vypíná externím vstupem SLEEPN (viz. obrázek 8.). Přičemž zapnutí trvá méně než 100 ns a zpětný přechod do plně funkčního stavu méně než 1ms.

Obr. 8. Přechod obvodu do stavu se sníženou spotřebou (Sleep mode) a zpět na plnou funkčnost (detail)

Vývojové prostředky & Evaluation Board

Obě řady FPGA mají k dispozici vývojový software ispLever Design Tool (viz. obrázek 9.), který je shodný pro všechny typy FPGA i další programovatelné obvody Lattice. Software poskytuje vše potřebné pro rychlý a úspěšný návrh (syntézu, verifikaci a simulaci, Fitting, Place & Route ) i implementaci a testování aplikace přímo v obvodu přes JTAG rozhraní. Pro zrychlení vývoje dané aplikace je k dispozici tzv. ispLeverCore Intelectual Property, kdy je možné vkládat celé předpřipravené a firmou Lattice otestované bloky do právě programované aplikace.

Samotný ispVM System software je pak určen pro nahrávání/programování Lattice ISP obvodů a ostatních obvodů s rozhraním kompatibilním se standardem IEEE 1149.1. Software generuje VME soubory podporující ispJTAG and ostatní JTAG soubory včetně formátů dat IEEE 1532 ISC pro Lattice ispJTAGTM obvody.

Obr. 9. Okno vývojového programu ispLever Design Tool

Pro testování nových aplikací je možné využít i vývojové desky (Evaluation Board - obrázek 10.) pro MachXO, které mimo samotný obvod (LCMXO640C) obsahuje i další periferie jako například několik kontaktních polí, oscilátor 33 MHz, generátor hodin (Lattice ispClock5610), rozhraní pro LCD, diody LED, přepínače switch apod.

Obr. 10. Vývojová deska obsahující obvod MachXO a mimo periferií i konstaktní pole (detail)

Závěr

Cílem tohoto článku bylo upozornit na nové obvody v oblasti CPLD a FPGA, která se dnes velmi často využívají jako rozhraní různých zařízení nebo pomocné obvody složitějších systémů s CPU nebo DSP, kde se dobře uplatní možnost velmi rychlého paralelního zpracování dat a signálů podle pevné "šablony". Obvody Lattice MachXO distribuuje do České republiky pražská firma HT-Eurep Electronic s.r.o. Bližší podrobnější informace lze nalézt v datasheetu, který je volně ke stažení v sekci DOWLOAD & Odkazy.

Antonín Vojáček
vojacek@ hwg.cz

DOWNLOAD & Odkazy

Hodnocení článku: