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 FPGA laboratórium BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
FPGA labor
Rendszerspecifikáció Felhasználói/piaci igények alapján Specifikáció (funkciók és más jellemzők)
MIT
Ellenőrzés Analízis
Tervezés Szintézis
HOGYAN Megvalósítás (modulok/komponensek rendszere) BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
1
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
2
FPGA labor
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?
Megfelel a rendszer a specifikációnak?
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
3
FPGA labor
Tervezési szintek • A hierarchikus szintek szétválaszthatók • Gyakran egyedi tervezési megközelítést igényelnek
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
4
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
5
FPGA labor
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
Egyszerű PLD
PLA
PAL
ASIC
MPU CPU
Komplex PLD
GAL
CPLD
FPGA
FPOA
RPU
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
6
FPGA labor
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) Fk = Σ mi • Például 4 változóra egy egyszerű kifejezés F4 = AB + ACD + BC • Minimális szemantikus távolság – Specifikáció → megvalósítás • • • •
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
7
FPGA labor
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
Dedikált OEn láb BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
8
FPGA labor
Egyszerű PLD eszközök • PAL, PLA: programozható logika • GAL: programozható architektúra – Kimeneti makrocella • Logika • Regiszter • Ponált/negált
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
9
FPGA labor
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
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
10
FPGA labor
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
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
11
FPGA labor
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 • ~ CPU órajelnövelés
– Komplexitás
CPLD
→ Programozhatóság FPGA
• ~ Többmagos megoldások (multicore, manycore)
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
12
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
13
FPGA labor
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” BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
14
FPGA labor
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” BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
15
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
16
FPGA labor
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 – ROFF, RON, C – Biztonságos • Kiolvasás • Változás
• Actel, Quicklogic BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
17
FPGA labor
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 • • • • •
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
18
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
19
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
20
FPGA labor
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
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
21
FPGA labor
Á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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
22
FPGA labor
Felépítés szerinti osztályozás • Szimmetrikus • Csatorna típusú • Hierarchikus
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
23
FPGA labor
Logikai cella példák • • • •
1T finomságú konfigurálás Minimális redundancia Rengeteg kapcsolóelem Kihalt típus, csak példa
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
24
FPGA labor
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
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
25
FPGA labor
Logikai cella példák • Közepes granularitású, MUX4 alapú cella • Actel ACT1, ACT2, ACT3
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
26
FPGA labor
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
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
27
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
28
FPGA labor
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
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
29
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
30
FPGA labor
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: – Sj = Aj xor Bj xor Cij – Coj = AjBj + AjCij + BjCij • A teljes művelet végrehajtási ideje a Ci0 → Con-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
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
31
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
32
FPGA labor
A gyors átvitel logika Aritmetika ADD/SUB/INC/DEC művelet • SUM=A xor B xor Ci • Átvitel terjesztés és/vagy generálás • Co = AB + ACi + BCi • Co = (A xor B) ? Ci : A;
BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
33
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
34
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
35
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
36
FPGA labor
Ö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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
37
FPGA labor