Rendszerspecifikáció 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 BME MIT atórium 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) 1 Tervezés Szintézis Specifikáció finomítása Hierarchikus tervezési módszerek 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 2 Felülről lefelé (top down) Léteznek a kívánt típusú komponensek? 3 Alulról felfelé (bottom up) 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 technológia előnyei Az eszköz hardver szinten programozható AMIT 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 4 5 Technológiai áttekintés Egyszerű PLD eszközök A digitális eszközök típusai Szabvány MSI Egyedi fix funkciók, ASSP Egyszerű PLD Logikai elemek Programozható logikák ASIC Komplex PLD MPU CPU PLA PAL GAL CPLD FPGA FPOA RPU 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 6 7
Egyszerű PLD eszközök Egyszerű PLD eszközök PAL áramkörök felépítése (részlet PAL16xx) Dedikált CLK láb LogicI/O Register Q PAL, PLA: programozható logika GAL: programozható architektúra Kimeneti makrocella Logika Regiszter Ponált/negált Dedikált OEn láb 8 9 Egyszerű PLD eszközök 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 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 10 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) Programozhatóság Komplexitás CPLD/MEGAPAL eszközök Ameglé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 12 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 TimetoMarket 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 ~50I/O 5V, 50MHz toggle rate 14 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 OTP FPGA Egyszer programozható eszközök A konfigurációs elem neve: antifuse Információ: fizikai állapot változtatása Előnyök: Kisméret R OFF,R ON,C Biztonságos Kiolvasás Változás Actel, Quicklogic 16 17 Flash FPGA SRAM 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 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 18 19
FPGA felépítése 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 A valódi komplexitás részben rejtve van Két réteg logika Konfiguráció beléptetése Visszaolvasás Példa: Xilinx SRAM FPGA 20 21 Általános tulajdonságok Felépítés szerinti osztályozás 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ű, seaofgates Csatorna Szimmetrikus / Manhattan Hierarchikus Szimmetrikus Csatorna típusú Hierarchikus 22 23
Logikai cella példák Logikai cella példák 1T finomságú konfigurálás NAND2 logikai cella alapú, finom granularitás Minimális redundancia Lokális kapcsolatok, nincs külön huzalozás Rengeteg kapcsolóelem Nincs globális órajel Kihalt típus, csak példa 24 25 Logikai cella példák Logikai cella példák Közepes granularitású, MUX4 alapú cella Actel ACT1, ACT2, ACT3 Közepes granularitású SRAM LUT cellák LUT = Look Up Table = memória 4vá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 26 27
A CLB erőforrása Logikai cella felépítése 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 Á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 28 29 Dedikált CLB erőforrások A gyors átvitelképzés 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 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 1azadatméret függvénye A beépített egyszerű átvitel lánc feleslegessé tesz bármilyen más CLA, CS módszert 30 31
A gyors átvitel logika A gyors átvitel logika Amű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=A0xorB0 Xout=FoutxorCin Á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 32 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 =(AxorB)?C i :A; 33 I/O funkciók Huzalozás 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 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 IN 34 35
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 Huzalozás fontossága Ö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 36 37