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
Felhasználói/piaci igények alapján
Digitális rendszerek tervezése FPGA áramkörökkel
Specifikáció (funkciók és más jellemzők) Tervezés Szintézis
HOGYAN
Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás
Megvalósítás (modulok/komponensek rendszere)
BME MIT FPGA laboratórium BME-MIT
MIT
Ellenőrzés Analízis
BME-MIT FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
FPGA áramkörök, 2014.03.28. (v1.0)
Specifikáció finomítása
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
1
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 2
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
3
FPGA labor
Tervezési szintek
FPGA technológia előnyei
• A hierarchikus szintek szétválaszthatók • Gyakran egyedi tervezési megközelítést igényelnek
• 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
BME-MIT
FPGA áramkörök, 2014.03.28. (v1.0)
FPGA labor
4
FPGA áramkörök, 2014.03.28. (v1.0)
Technológiai áttekintés Logikai elemek
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)
FPGA labor
Egyszerű PLD eszközök
A digitális eszközök típusai
Szabvány MSI
5
• • • •
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
6
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
7
FPGA labor
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
Logic I/O
• PAL, PLA: programozható logika • GAL: programozható architektúra – Kimeneti makrocella • Logika • Regiszter • Ponált/negált
Register Q
Dedikált OEn láb BME-MIT
BME-MIT
FPGA áramkörök, 2014.03.28. (v1.0)
8
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
Egyszerű PLD eszközök
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)
9
• 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 10
FPGA labor
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
CPLD
• ~ CPU órajelnövelés
– Komplexitás
→ Programozhatóság FPGA
• ~ Többmagos megoldások (multicore, manycore) BME-MIT
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)
12
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
Komplexitás → Programozhatóság
FPGA labor
FPGA • Field Programmable Gate Array – 1984: Xilinx megalapítása
• Hagyományos technológia – Felhasználói igények figyelembevétele
• Ross Freeman feltaláló • Bernie Vonderschmitt: „fabless company idea” • Jim Barnett csendestárs??
• 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)
13
• 1985: XC2064 – 64 logikai cella – LUT + DFF – ~50 I/O – 5V, 50MHz „toggle rate” BME-MIT
14
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
15
FPGA labor
FPGA technológiák
OTP FPGA
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)
• • • •
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
16
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
Flash FPGA
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
• • • • •
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)
17
BME-MIT 18
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
19
FPGA labor
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 BME-MIT
BME-MIT
FPGA áramkörök, 2014.03.28. (v1.0)
20
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
Általános tulajdonságok
FPGA labor
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ű, „sea of gates” – Csatorna – Szimmetrikus / Manhattan – Hierarchikus BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
21
• Szimmetrikus • Csatorna típusú • Hierarchikus
BME-MIT 22
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
23
FPGA labor
Logikai cella példák • • • •
Logikai cella példák
1T finomságú konfigurálás Minimális redundancia Rengeteg kapcsolóelem Kihalt típus, csak példa
• 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)
BME-MIT 24
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
Logikai cella példák
25
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
• Közepes granularitású, MUX4 alapú cella • Actel ACT1, ACT2, ACT3
• 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)
BME-MIT 26
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
27
FPGA labor
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
BME-MIT
BME-MIT
FPGA áramkörök, 2014.03.28. (v1.0)
28
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
Dedikált CLB erőforrások
FPGA labor
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 BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
29
• 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 30
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
31
FPGA labor
A gyors átvitel logika
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
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;
• 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
BME-MIT
FPGA áramkörök, 2014.03.28. (v1.0)
32
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
I/O funkciók
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
• 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
33
PIN
IN BME-MIT FPGA áramkörök, 2014.03.28. (v1.0)
BME-MIT 34
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
35
FPGA labor
Huzalozás fontossága
Összefoglalás
• 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
• 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)
BME-MIT 36
FPGA labor
FPGA áramkörök, 2014.03.28. (v1.0)
37
FPGA labor