Programozható logikai áramkörök
FPGA eszközök
Előadó: Nagy István (A65) Ajánlott irodalom: Ajtonyi I.: Digitális rendszerek, Miskolci Egyetem, 2002. Ajtonyi I.: Vezérléstechnika II., Tankönyvkiadó, Budapest, 1987 Gál T.: Programozható logikák BME - tankönyvkiadó, 1994. P. Ammon: Kapumátrix-áramkörök, Műszaki könyvkiadó, 1989.
Bevezetés: Az FPGA (Field Programmable Gate Array) – programozható kapu tömbök, abban térnek el a korábbi eszközöktől, hogy ezeknél nem valamilyen programozható ÉS/VAGY mátrixot kell konfigurálnunk, hanem itt az egyes logikai cellák közötti összekötések konfigurálhatóak (programozhatóak – egyébként ezt routing-nak nevezik.). Ezzel, sokkal nagyobb szabadságfokot érünk el az eszközök programozhatósága terén. Felépítésük leginkább a nyomtatott áramköri (NYÁK) technikákhoz hasonlít, amikor az egyes IC –ket a NYÁK –on összehuzalozzuk. Az FPGA –k jellemzői: •Kétdimenziós, mátrix jellegű, programozható logikai blokkok tömbjéből épülnek fel •Programozható összekötő hálózattal rendelkeznek •Felhasználó által programozhatóak •Többszintű logikát valósítanak meg Az FPGA –kat az összekötő huzalozási elrendezés alapján az alábbi kategóriákba sorolhatjuk: •Szimmetrikus huzalozási elrendezés (pl.: XILINX) •Aszimmetrikus huzalozási elrendezés (pl.: ACTEL) •Kaputenger topológiájú elrendezés (pl.: ATMEL) •Hierarchikus architektúrájú elrendezés (pl.: ALTERA)
Egy általános FPGA felépítése: Az FPGA –k felépítésének 3 alapvető eleme: •Programozható logikai blokk (Configurable Logic Block - CLB) •Az FPGA és a környezete közti kapcsolatot biztosító be/ki -meneti blokk (Input-Output Block - IOB). •A CLB –ket egymással és az IOB –kel összekötő programozható huzalozás (routing).
IOB -ok Konfigurálható logikai blokkok (CLB -k) Programozható huzalozás
Az egyes FPGA elemek leírása: 1. Programozható logikai blokkok CLB -k: az eszköz által megvalósítható logikai funkciók létrehozása ezekben a blokkokban jön létre. Az egyes logikai blokkok nagy mértékben eltérhetnek egymástól (pl.: lehet egyik NAND kapu, másik egy ULM modul, …). A CLB –k egyszerűsége, vagy bonyolultsága nagy mértékben befolyásolja a huzalozási kapacitást. (Ha egyszerű blokkokból bonyolult hálózatot szeretnénk felépíteni,
ez sok huzalozást igényel, míg komplexebb blokkok esetében kevesebb huzalozás is elég lehet, nő a logikai blokk kihasználtsága.)
2.
3.
Ez a k ép most nem jeleníthető meg.
Az IOB –k: logikai bementként kimenetként, ill. kétirányú elemként is programozhatóak. A be- kimenetek regiszteres, ill. regiszter nélküli üzemmódban is működtethetőek (programozhatóak). Az összekötési mátrix (routing): vezetékeket és programozható kapcsolókat tartalmaz. A programozás valójában ezen kapcsolók be-/ kikapcsolása, (a bekapcsolás pl. galvanikus összekötést hoz létre két vezeték között). Programozható kapcsolóként használatos elemek: 1.
RAM cellával vezérelt áteresztő tranzisztor
2.
Anti biztosíték
3.
EPROM vagy EEPROM tranzisztorok
XILINX FPGA eszközök: XILINX FPGA családok: XC2000, XC3000, XC4000 az egyes családok közti különbségeket a táblázat mutatja: →
Egy Xilinx XC2000-s CLB funkcionális felépítése (a trapéz alakú elemek a multiplexereket ábrázolják, amik szintén programozhatóak.):
XILINX FPGA eszközök: Egy Xilinx XC3000-s CLB funkcionális felépítése (a trapéz alakú elemek a multiplexereket ábrázolják, amik szintén programozhatóak.):
1db, 5bementű CLB, 2db DFF – regiszter X, Y - kimenetek
XILINX FPGA eszközök: Egy Xilinx XC4000-s CLB funkcionális felépítése (a trapéz alakú elemek a multiplexereket ábrázolják, amik szintén programozhatóak.): 2db 4 bemenetű és 1db 3 bemenetű CLB bármilyen 2db 4változós, vagy 1db 5változós függvény megvalósítható. C1..C4 kiválasztó egység a következő jeleket biztosítja: •EC (órajel engedélyezése) •S/R (aszinkron beírás/törlés) •DIN (adat bemenet) •H1 (a második szintű kombinációs hálózat bemeneti jele) Továbbá a CLB 2db DFF-et tartalmaz, kimenetek X, Y. Az S/R révén a DFF-ek aszinkron módon beírhatók vagy törölhetőek. A CLB-k bementi blokkjai (F, G) RAM-ként illetve aritmetikai modulként is konfigurálhatók.
Az XC4000 6féle módon (üzemmódban) konfigurálható: •Mester soros •Szolga soros •Mester párhuzamos soros •Szolga párhuzamos soros •Szinkron periféria soros •Aszinkron periféria soros
Mester üzemmódban – az FPGA maga állítja elő a cím és vezérlőjeleket, amely alapján (bit vagy bájt vezérlésben) egy ROM-ból az információ betöltődik az FPGA-ba Soros szolga üzemmódban – az FPGA a soros konfigurációs adatot, kívülről jövő órajellel időzítve, egy soros EPROM-ból kapja.
XILINX FPGA eszközök: Huzalozási mátrix:
Az FPGA-k harmadik fő eleme – a chipen belüli összes összeköttetés, a különböző hosszúságú huzalszakaszok, és a programozható kapcsolók alkotják. A vezetékek 3 csoportja: -Általános célú (2 blokknyi távolságot összekötő vezetékek) – hosszabb útvonalak kialakítása a késleltetések miatt ilyen vezetékekkel nem célszerű. A kapcsolómátrixok programozható n csatornás áteresztő tranzisztorokból állnak
-Hosszú vezetékszakaszok – a chip teljes szélességében, hosszában kihasználhatóak.
-Globális vezetékek – az órajelek és időzítések szempontjából fontos jelek szétosztása. -
4db elsődleges vezeték
-
4db másodlagos