BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális rendszerek tervezése FPGA áramkörökkel Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás FPGA áramkörök, 2014.03.28. (v1.0) BME MIT atórium
Rendszerspecifikáció Felhasználói/piaci igények alapján Ellenőrzés Analízis Specifikáció (funkciók és más jellemzők) MIT HOGYAN Megvalósítás (modulok/komponensek rendszere) Tervezés Szintézis FPGA áramkörök, 2014.03.28. (v1.0) 1
Specifikáció finomítása Felhasználói specifikáció Általában szöveges formában Jellemzően nem műszaki paraméterek Előzetes rendszerterv Követelmények lefordítása Főbb paraméterek meghatározása Funkcionális rendszerterv Globális döntések a megvalósításról Modul funkciók specifikálása Logikai tervezés FPGA áramkörök, 2014.03.28. (v1.0) 2
Hierarchikus tervezési módszerek Felülről lefelé (top-down) Alulról felfelé (bottom-up) Léteznek a kívánt típusú komponensek? FPGA áramkörök, 2014.03.28. (v1.0) 3 Megfelel a rendszer a specifikációnak?
Tervezési szintek A hierarchikus szintek szétválaszthatók Gyakran egyedi tervezési megközelítést igényelnek FPGA áramkörök, 2014.03.28. (v1.0) 4
FPGA technológia előnyei Az eszköz hardver szinten programozható A MIT HOGYAN több iterációban is elemezhető Általában a felülről lefelé haladó tervezési módszertant választjuk DE vetünk egy pillantást az eszköz adatlapjára, tudjuk milyen elemi és összetett komponenseket kínál A modulszintű, funkcionális leírásra koncentrálunk, a részletek kidolgozását a tervezőrendszerre hagyjuk DE ellenőrizzük a megvalósítás fontos paramétereit FPGA áramkörök, 2014.03.28. (v1.0) 5
Technológiai áttekintés A digitális eszközök típusai Logikai elemek Szabvány MSI Egyedi fix funkciók, ASSP Programozható logikák ASIC MPU CPU Egyszerű PLD Komplex PLD PLA PAL GAL CPLD FPGA FPOA RPU FPGA áramkörök, 2014.03.28. (v1.0) 6
Egyszerű PLD eszközök Egyszerű struktúra, egyszerű használat Kétszintű kombinációs logika + regiszter Domináns elrendezés: mintermek összege Általános formában INV-AND-OR-(INV) F k = Σ m i Például 4 változóra egy egyszerű kifejezés F 4 = AB + ACD + BC Minimális szemantikus távolság Specifikáció megvalósítás FPGA áramkörök, 2014.03.28. (v1.0) 7
Egyszerű PLD eszközök PAL áramkörök felépítése (részlet PAL16xx) Dedikált CLK láb Logic I/O Register Q FPGA áramkörök, 2014.03.28. (v1.0) 8 Dedikált OEn láb
Egyszerű PLD eszközök PAL, PLA: programozható logika GAL: programozható architektúra Kimeneti makrocella Logika Regiszter Ponált/negált FPGA áramkörök, 2014.03.28. (v1.0) 9
Egyszerű PLD eszközök Altera EP sorozat: valóban univerzális PLD Szimmetrikus felépítés, minden láb I/O, kivéve Egyszerű makrocella, az összes opcióval FPGA áramkörök, 2014.03.28. (v1.0) 10
Egyszerű PLD eszközök Altera EP sorozat: valóban univerzális PLD Szimmetrikus felépítés, minden láb I/O, kivéve Egyszerű makrocella, az összes opcióval FPGA áramkörök, 2014.03.28. (v1.0) 11
Komplex programozható eszközök 80-as évek közepén Felhasználói igények nagyobb logikai és interfész kapacitás Technológiai lehetőségek Integráltság növelhető Két megközelítés Programozhatóság Komplexitás CPLD ~ CPU órajelnövelés Komplexitás Programozhatóság FPGA ~ Többmagos megoldások (multicore, manycore) FPGA áramkörök, 2014.03.28. (v1.0) 12
Programozhatóság Komplexitás CPLD/MEGAPAL eszközök A meglévő struktúra skálázása Egyszerű megoldás Blokkos felépítés Egyszintű/kétszintű huzalozás Determinisztikus időzítés FPGA áramkörök, 2014.03.28. (v1.0) 13
Komplexitás Programozhatóság Hagyományos technológia Felhasználói igények figyelembevétele MPGA Maszk Programozott áramkör Moore törvény hatása a PLD piacon Tranzisztor/logikai elem ára csökken Redundancia, áramköri költség növelhető Piacra jutási idő jelentősége nő (termék életciklus) Prototípus, kis sorozat, induló termék Time to Market FPGA áramkörök, 2014.03.28. (v1.0) 14
FPGA Field Programmable Gate Array 1984: Xilinx megalapítása Ross Freeman feltaláló Bernie Vonderschmitt: fabless company idea Jim Barnett csendestárs?? 1985: XC2064 64 logikai cella LUT + DFF ~50 I/O 5V, 50MHz toggle rate FPGA áramkörök, 2014.03.28. (v1.0) 15
FPGA technológiák Felhasználó általi programozhatóság Egyszer, nem javíthatóan (max. inkrementális jav.) Többször, de csak törlés után Minden induláskor Automatikusan master módban, vagy Külső vezérlés alatt, slave módban Működés közben Teljes konfiguráció átkapcsolása (indulási + egyéb) Részleges, dinamikus átkonfigurálás FPGA áramkörök, 2014.03.28. (v1.0) 16
OTP FPGA Egyszer programozható eszközök A konfigurációs elem neve: antifuse Információ: fizikai állapot változtatása Előnyök: Kis méret R OFF, R ON, C Biztonságos Kiolvasás Változás Actel, Quicklogic FPGA áramkörök, 2014.03.28. (v1.0) 17
Flash FPGA Sokszor programozható, törlés után Programozás, törlés beépítve is lehetséges Flash cella felépítése (Actel ProASIC) Információ: töltés Előny: Állandó Módosítható Biztonságos Actel FPGA áramkörök, 2014.03.28. (v1.0) 18
SRAM FPGA A hagyományos FPGA megvalósítási elv A legáltalánosabb CMOS technológia Minden információ memória cellákban Beolvasandó, betöltendő Előny: Bármikor átprogramozható Olcsó technológia Mindig a legjobb felbontás Konfiguráció módosulhat Kozmikus sugárzás SEU, egyedi változás FPGA áramkörök, 2014.03.28. (v1.0) 19
FPGA felépítése Egyszerű felépítés (felhasználói oldalról nézve) Általános célú logikai elemek Programozható huzalozás Kivezetések Példa: Xilinx SRAM FPGA FPGA áramkörök, 2014.03.28. (v1.0) 20
FPGA felépítése A valódi komplexitás részben rejtve van Két réteg logika Konfiguráció beléptetése Visszaolvasás FPGA áramkörök, 2014.03.28. (v1.0) 21
Általános tulajdonságok Logikai cella alapkövetelménye: univerzális elem Granularitás szerint széles skála Finom Durva 1T NAND2 MUX4 LUT4 ½GAL Típusok felépítés szerint Egyszintű, sea of gates Csatorna Szimmetrikus / Manhattan Hierarchikus FPGA áramkörök, 2014.03.28. (v1.0) 22
Felépítés szerinti osztályozás Szimmetrikus Csatorna típusú Hierarchikus FPGA áramkörök, 2014.03.28. (v1.0) 23
Logikai cella példák 1T finomságú konfigurálás Minimális redundancia Rengeteg kapcsolóelem Kihalt típus, csak példa FPGA áramkörök, 2014.03.28. (v1.0) 24
Logikai cella példák NAND2 logikai cella alapú, finom granularitás Lokális kapcsolatok, nincs külön huzalozás Nincs globális órajel FPGA áramkörök, 2014.03.28. (v1.0) 25
Logikai cella példák Közepes granularitású, MUX4 alapú cella Actel ACT1, ACT2, ACT3 FPGA áramkörök, 2014.03.28. (v1.0) 26
Logikai cella példák Közepes granularitású SRAM LUT cellák LUT = Look Up Table = memória 4 változó tetszőleges függvénye, táblázat a konfigurációból A LUT4 tekinthető egy MUX16-nak is, a konfigurációs program által rögzített adatbemenetekkel FPGA áramkörök, 2014.03.28. (v1.0) 27
A CLB erőforrása Az alap erőforrás a Logic Cell LC = 1 LUT + 1 FF LUT4 Tetszőleges 4 változós függvény 1 változóra hazárdmentes Működési idő bemenetszám és logikai komplexitás invariáns DFF Élvezérelt,, órajel eng. Szinkron/aszinkron SET/RESET Független kombinációs és regiszteres kimenet FPGA áramkörök, 2014.03.28. (v1.0) 28
Logikai cella felépítése Általános jellemzők A cella felépítés alapjaiban egyszerű Tartalmaz persze sok kiegészítést Belső kapuk, erőforrások Lokális kapcsolatokhoz Független LUT / FF használathoz Speciális logikákhoz Sok bemenetű dekóder Sok bemenetű multiplexer Aritmetikai kiegészítés FPGA áramkörök, 2014.03.28. (v1.0) 29
Dedikált CLB erőforrások Az egységes alapkoncepció finomítása A LUT4 természetesen mindenre jó, de A sokváltozós logikai függvények, a legegyszerűbbek is túl sok szintet igényelnek lassú Az aritmetikai műveletekben kell átvitel jel. Ez egy fontos, de csak belül szükséges, időkritikus jel. LUT4 alapon 100% redundancia lép fel (3 bemeneti jel 2 függvénye) Hagyományos tömbszorzónál egy-egy szinten kell lokális bitszorzat (AND2), valamint összeadás a részszorzatokhoz FPGA áramkörök, 2014.03.28. (v1.0) 30
A gyors átvitelképzés Az aritmetikai műveletek hatékonysága alapvető Sebességük a használhatóságot egyértelműen jellemzi Az elemei művelet: S j = A j xor B j xor C ij C oj = A j B j + A j C ij + B j C ij A teljes művelet végrehajtási ideje a C i0 C on-1 út terjedési ideje, n-1 az adatméret függvénye A beépített egyszerű átvitel lánc feleslegessé tesz bármilyen más CLA, CS módszert FPGA áramkörök, 2014.03.28. (v1.0) 31
A gyors átvitel logika A műveletet 1 bites fél összeadókra bontja A szelet Cin bejövő bitje BX input vagy alsó CLB Cout vagy fix 0 / 1 Összeg bit Fout= A0 xor B0 Xout = Fout xor Cin Átvitel Bit helyiértékenként átvitelterjesztés vagy átvitel generálás A CYMUXF vezérlése az Fout jellel Tehát ha Fout=1, terjeszt, ezért CoutF=Cin, egyébként CoutF=AB, vagyis generál, ha AB=1 Az erőforrások más logika megvalósítására is használhatók FPGA áramkörök, 2014.03.28. (v1.0) 32
A gyors átvitel logika Aritmetika ADD/SUB/INC/DEC művelet SUM=A xor B xor C i Átvitel terjesztés és/vagy generálás C o = AB + AC i + BC i C o = (A xor B)? C i : A; FPGA áramkörök, 2014.03.28. (v1.0) 33
I/O funkciók Alapvetően minden felhasználói láb I/O, tehát lehet kimenet, bemenet Nem használt lábak fix értéken Gyakran többfunkciós lábak Konfiguráció Normál használat A valódi I/O blokkok sokkal bonyolultabbak Beleszámítanak az ekvivalens kapu/rendszer kapu leltárba OE OUT PIN IN FPGA áramkörök, 2014.03.28. (v1.0) 34
Huzalozás Többnyire hierarchikus Mindig van szomszédos kapcsolat Esetleg 2 vagy 4 sugarú Lehetnek ún. hosszú vonalak Teljes áramköri szelet felületén Vagy régiónként Vannak globális hálózatok Elengedhetetlen az órajel terjesztéshez Vagy a globális RESET kialakításához FPGA áramkörök, 2014.03.28. (v1.0) 35
Huzalozás fontossága A terv minőségét döntően befolyásolja Időzítések a huzalozási szintek számán buknak el A LUT késleltetés elfogadható, de komplex funkció több LUT összekapcsolását igényli Elérhető rendszer sebesség lecsökken Speciális elrendezések a minőség javítására FPGA áramkörök, 2014.03.28. (v1.0) 36
Összefoglalás Komplex rendszerek tervezéséhez különböző eszközeink vannak, ezek egyike az FPGA Közepes, vagy kis sorozatoknál nem gazdaságos egyedi ASIC fejlesztése (idő, pénz, munka) FPGA-k rugalmasan alkalmazhatók, gyors tervezés, megvalósítás, módosíthatóság Egyedi előnyök, alkalmazásfüggő specialitások Nagy komplexitás Nagy sebesség NEM EGYSZERRE! Kis fogyasztás FPGA áramkörök, 2014.03.28. (v1.0) 37