bme-mit fpga labor
TRANSCRIPT
![Page 1: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/1.jpg)
BME-MIT
FPGA labor
Digitális rendszerek tervezése FPGA áramkörökkel
SRAM FPGA Architektúrák
BUDAPESTI MŐSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEMVILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR
MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK
Fehér BélaSzántó Péter, Lazányi János, Raikovich Tamás
BME MITFPGA laboratórium
![Page 2: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/2.jpg)
BME-MIT
FPGA labor
FPGA áramkörök felépítése
• Az alapvetı erıforrások
– Logikai blokkok
– I/O blokkok
– Huzalozás
• Felhasználói szinten közvetlenül csak az elsı kettıjelenik meg
• A huzalozás nem direkt erıforrás, de kritikus esetekben az eszköz használati értékének igen fontos eleme
![Page 3: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/3.jpg)
BME-MIT
FPGA labor
FPGA felépítés
• Egyszerősített általános kép
![Page 4: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/4.jpg)
BME-MIT
FPGA labor
Technológia és piac
• Az FPGA flexibilis eszköz, ez költségekkel jár
• Költség/szolgáltatás optimalizálása fontos
• Technológiai lehetıségek/elfogadható ár
• A VLSI félvezetı technológia szempontjából az SRAM FPGA kedvezı eszköztípus
– Sok egyszerő, azonos modul
– Szabályos ismétlıdés, szimmetrikus struktúra
– Az I/O meghajtók és néhány PLL kivételével „egyszerő, közönséges” CMOS logika
![Page 5: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/5.jpg)
BME-MIT
FPGA labor
Technológiai háttér
• Az SRAM FPGA-k jellemzıen a technológiai élvonalban vannak
– Altera Stratix4 40 nm
– Xilinx Virtex5 65 nm
– Lattice SC/M 90nm
• Ezek a technológiák költségesek
– Ezt nem minden alkalmazás viseli el
• Egyszerősített, a fontos tulajdonságokat megırzı, megjelenítı eszközök
– Altera Cyclone, Xilinx Spartan, Lattice EC
– Fıképp általános célú, fogyasztói alkalmazásokhoz
![Page 6: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/6.jpg)
BME-MIT
FPGA labor
Gyors összehasonlítás• Altera Stratix3
– 11.168 USD
• Xilinx Virtex4
– 10.558 USD
• Lattice SC/M
– 2.275 USD
![Page 7: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/7.jpg)
BME-MIT
FPGA labor
Gyors összehasonlítás
• Altera Stratix4
– Nincs ár
• Xilinx Virtex5 ( Slice = 4LE) 8.818 USD T13.178
![Page 8: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/8.jpg)
BME-MIT
FPGA labor
Gyors összehasonlítás
• Altera CycloneIII– 13 - 502 USD
• Xilinx Spartan3– 12 – 442 USD
• Lattice ECM– 11 - 273 USD
• Actel IGLO– 13 – 295 USD
![Page 9: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/9.jpg)
BME-MIT
FPGA labor
FPGA belsı felépítés
• SRAM FPGA mindig LUT alapú (kivétel MOT †)
• A LUT egy 1 bit széles memória
• Mélysége (címvonalak száma ) változó
– Korai elemzések alapján a 4 bit tőnt optimálisnak • Kompromisszum a huzalozás és granularitás között
– Egy logikai egység 2 – 4 LUT „közelségére” épít• Lokális belsı kapcsolatok a késleltetést csökkentik
– Legújabb irányzat a drágább termékvonalban• alapelem mérete x4, azaz LUT6
![Page 10: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/10.jpg)
BME-MIT
FPGA labor
Példa eszköz: Xilinx Spartan3E
• Általános felépítés egyszerő
• Homogén logikai struktúra
– Egyenletes CLB réteg
– Funkcionális blokkok• BRAM
• MULT
• DCM
– I/O győrő
![Page 11: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/11.jpg)
BME-MIT
FPGA labor
A logikai elemek
• Enyhe aszimmetria a CLB felépítésben
• 1 CLB = 2 x 2 Szelet
• Bal és jobb szelet eltérı
– Extra LUT módok
• Független függıleges
kapcsolatok
– speciális logika
– aritmetika
![Page 12: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/12.jpg)
BME-MIT
FPGA labor
A CLB struktúra
• Megosztott elrendezés• „Független” belsı blokkok• Szempontok nem ismertek
– 4 bit számláló/aritmetika– Kedvezıbb huzalozás?
• Az extra memória funkciók hasznosak– A konfigurációs memória
részletei felhasználói memóriaként is elérhetık
![Page 13: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/13.jpg)
BME-MIT
FPGA labor
A CLB erıforrása
• Az eredeti koncepció nem változott • Az alap erıforrás az Logic Cell LC = 1 LUT + 1 FF• LUT4
– tetszıleges 4 változós fgv.– 1 változóra hazárdmentes– Mőködési idı bemenet és
logikai komplexitás invariáns• DFF
– Élvezérelt, ↑↓, órajel eng.– Szink/Aszink. SET/RESET
• Független kombinációs és regiszteres kimenet
![Page 14: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/14.jpg)
BME-MIT
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) és összeadás a részszorzatokhoz
![Page 15: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/15.jpg)
BME-MIT
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
![Page 16: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/16.jpg)
BME-MIT
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 logikamegvalósítására is használhatók
![Page 17: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/17.jpg)
BME-MIT
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;
![Page 18: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/18.jpg)
BME-MIT
FPGA labor
Szorzás logikával• A szorzás erıforrás igényes
• Bitszorzás AND2
• Összegzés FA
• Kezdıszinten
egyszerősítés
lehetséges,
egybıl 2 szint
összegezhetı
![Page 19: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/19.jpg)
BME-MIT
FPGA labor
Szorzás CLB logikával
• Aritmetika MUL mővelet
– Bitszintő szorzat és összegzés
– PPij=PPij-1 + Aik*Bkj
– XOR kapu felsı ága általában PPij-1
– Az ábra az elsı szintet mutatja, itt 2 bitszorzat összegezhetı
![Page 20: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/20.jpg)
BME-MIT
FPGA labor
Belsı multiplexerek
• Szélesebb logikai kifejezésekhez
• A „független” szeletek
kombinálhatók
• MUX4, MUX8, MUX16 egy CLB-ben
![Page 21: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/21.jpg)
BME-MIT
FPGA labor
MUX használat logikához
• Más lehetıségek
– LUT5 generálása
– Tetszıleges 5 vált. fv.
– Egyedi 6 – 9 változós függvények• Pl. MUX4 6 bemenettel
![Page 22: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/22.jpg)
BME-MIT
FPGA labor
CYMUX használat logikához
• A MUX általános elem, lehet AND vagy OR kapu
• Ennek megfelelıen a LUT4
részlet logikák összevonhatók
szélesebb függvényekké
![Page 23: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/23.jpg)
BME-MIT
FPGA labor
A részletes struktúra• Egyszerősített SliceM felsı és alsó logikai cellája
![Page 24: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/24.jpg)
BME-MIT
FPGA labor
Memória funkciók a CLB-ben
• Elosztott memóriának hívják• LUT mérető blokkokból építhetı a szükséges méret
– Lehet természetesen ROM (alapvetıen mindig az)– RAM-nál szétválasztott adat be és kimeneti vonal– Lehet szinkron beírású RAM– Lehet szinkron beírású dual-port RAM
• 2x erıforrásigény
– Szinkron olvasás a CLB FF használatával– Kezdıérték minden esetben megadható– Sebesség illeszkedik a rendszerhez– Kiváló elem regiszter készletek
megvalósítására
![Page 25: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/25.jpg)
BME-MIT
FPGA labor
Elızmények• Ez a funkció a 4000-es családban jelent meg elıször
– A memória hagyományos aszinkron SRAM volt
– Ez nem kezelhetı megbízhatóan az idızítések miatt
• Ezután lett az írás szinkron
– Ennek megfelelıen az írás a WCLK jel élére történik
– Az olvasás azonos idejő, aszinkron
![Page 26: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/26.jpg)
BME-MIT
FPGA labor
LUT RAM
• LUT RAM csak a SliceM oldalon realizálható
• 1 Slice 1db RAM16x1D vagy 1db RAM32x1S
![Page 27: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/27.jpg)
BME-MIT
FPGA labor
LUT RAM
• Nagyobb méret relatív lokális elhelyezéssel
• A rendszer a RAM32x8S
elemet 8 szeletben helyez el
• Használat
– HDL forrásnyelvi szintrıl
– Beépítés könyvtári
primitívként
![Page 28: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/28.jpg)
BME-MIT
FPGA labor
LUT shift regiszter
• Érdekes elem, igen flexibilisen használható• Származtatható a konfigurációs mechanizus
ismeretében– A konfigurációs bitek bekapcsoláskor egy nagy
shiftregiszterbe léptetıdnek be– Minden konfigurációs elem egy-egy poziciója a
konfigurációs tárnak– 1 LUT 16 bitet foglal el– Az SRL16 módban ezt a 16 bitet „átemeljük” a
felhasználói logikába
![Page 29: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/29.jpg)
BME-MIT
FPGA labor
LUT shift regiszter
• A megvalósítás
• Tulajdonságok– Dinamikusan változtatható hosszúságú soros
késleltetı (1 – 16) Kaszkádosítható CLB-ken át– Nincs SET/RESET, párhuzamos D/Q, van CE
![Page 30: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/30.jpg)
BME-MIT
FPGA labor
LUT SRL használat
• Alapvetıen mint késleltı, aszinkron dinamikus címzéssel
• Szinkron címzés FF használattal
![Page 31: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/31.jpg)
BME-MIT
FPGA labor
LUT SRL használat
• Mőveleti láncok belsı pontjaiban pipe-linekésleltetések kiegyenlítése
• Adatméretnek megfelelı számú LUT kell
• Kis mérető FIFO – Adatok SRL-ben– Kiegészítı logika, címszámláló, státusz jelzık
![Page 32: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/32.jpg)
BME-MIT
FPGA labor
LUT SRL használat
• Véletlensorozat generátor LFSR használatával
• XAPP211, LFSR visszacsatoló
polinomok n=3 és n=168 között
• Pl. Gold Code Generator for
![Page 33: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/33.jpg)
BME-MIT
FPGA labor
LUT SRL használat
• Számlálók
• Győrős számláló max. 16 modulusig
– Konfigurációs inicializálás a 100..000 értékre
– Modulus választható a LUT címbemeneten keresztül
– Szabadon futó, nincs RESET, de van CE
![Page 34: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/34.jpg)
BME-MIT
FPGA labor
LUT SRL számláló
• Nagyobb modulus
– SRL16-ok sorba kötve
– Relatív prím hosszú SRL16-ok
kimenetei AND kapcsolatban
• Példa: 3465 modulusú osztó
– Legyen az SRL16-ok egyedi
modulusa a 3465 faktorizációja
alapján 11, 9, 7 és 5.
– A TC csak minden 5x7x9x11=
385. ciklusban lesz aktív
5
7
9
11
![Page 35: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/35.jpg)
BME-MIT
FPGA labor
LUT FF
• A szekvenciális logika alaperıforrása
– Megjegyzés: Néhány FPGA-ban nincs dedikált regiszter erıforrás, azt az általános logikai cellából alakítják ki
– Az SRAM FPGA-ak mindig tartalmaznak FF-ot
– Élvezérelt DFF órajel engedélyezéssel
– Alaphelyzet beállítás• SET/RESET, szinkron/aszinkron
• Inicializálás: INIT0/INIT1
![Page 36: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/36.jpg)
BME-MIT
FPGA labor
További erıforrások
• Huzalozás
– Bıven túlméretezett huzalozási erıforrások
– Történelmi okokból
![Page 37: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/37.jpg)
BME-MIT
FPGA labor
Huzalozás• Különbözı huzalozási erıforrások• Hosszú vonalak az IC
teljes felületén– Minden 6. CLB-hez
• A hatos csoportok között egyszintő átugrás
• Kapcsolat a második szomszédokhoz• Alapvetı szomszédos, direkt kapcsolatok• Speciális globális hálózatok (Nem CLK!)
– GSR Globális SET/RESET vonal– GTS Globális Hiz az I/O kimenetekre
• Az órajel hálózat más!
![Page 38: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/38.jpg)
BME-MIT
FPGA labor
Órajel erıforrások
• Az FPGA tervek legfontosabb szempontja az órajelezés
• Alapvetı a szinkron tervezés
– Egy modulon/blokkon belül egy órajelet használunk
– Lassabb ütemezést órajel engedélyezésen keresztül valósítunk meg.
• Természetesen egy teljes terven belül lehet több órajel tartomány
– Ezek között a kommunikációt igen gondosan kell megtervezni
![Page 39: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/39.jpg)
BME-MIT
FPGA labor
Globális órajel hálózatok
• A teljes felület negyedekre osztva
– Negyedenként 8-8 globális órajel hálózat
– Ezek „globalizálhatók” vagy függetlenül használhatók (fogyasztás!)
– Meghajtás csak globális órajel bufferekrıl• MUX funciója is van, az órajel forrás átkapcsolható
– Órajel forrás lehet • Közvetlenül külsı dedikált GCLK láb
• Órajel kezelı modul kimenet
• Belsı jel
![Page 40: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/40.jpg)
BME-MIT
FPGA labor
Órajel hálózatok tulajdonságai
• A teljes felületen minimális késleltetés
– Globális szinkron paradigma
• Csak FF, RAM, vagy más elem órajel bemenetére csatlakoztatható
– nem használható, mint általános logikai jel
– A FF órajel bemenet meghajtható általános jelekrıl, de ez egy nem ajánlott tervezési stílus
• BUFGMUX átkapcsolás glitch mentesen két tetszıleges frekvenciájú aszinkron órajel
között
– S vált, CKa ciklus végét megvárja, kimenet 0,
ezután vár CKb alacsony értékére és átkapcsol rá
![Page 41: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/41.jpg)
BME-MIT
FPGA labor
Órajel kezelı modul• Általános célú órajel kezelı
– Szinkronizáló,
– Frekvencia osztó
– 2x szorzó
– Fázistoló / fázis hasító
– DLL frekvencia szintézer
• Tipikus alkalmazás
![Page 42: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/42.jpg)
BME-MIT
FPGA labor
Órajel kezelı modul
• Fázis toló egység
– Beállítható késleltetés, 20 – 40 ps lépésben
– Belsı felépítés: Visszacsatolt szabályozó kör,
ami kompenzálja a késleltetést
![Page 43: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/43.jpg)
BME-MIT
FPGA labor
Órajel kezelı egység
• Belsı / külsı késleltetés kompenzáció
• Azonos késleltetéső komponensek beépítésével az egyes késleltetések kompenzálhatók
• A külsı és belsı órajel események szinkronizálhatóak
![Page 44: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/44.jpg)
BME-MIT
FPGA labor
Órajel kezelı egység
• Órajel kondicionálás
– Szinkronizáció
– Frekvencia kétszerezés
– 4 fázisú órajelezés
– Különbözı leosztott
késleltetés kompenzált
CLKDIV frekvenciák:
1.5, 2, 2.5, 3, …..8, 9, ..
10, … 16
(CLK2x/K, ahol K = 3 …32)
![Page 45: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/45.jpg)
BME-MIT
FPGA labor
Órajel kezelı egység
• Frekvencia szintézer
– Lényegében egy frekvencia szorzó egység
– Fout = F_CKin * FX_Mult/FX_Div, ahol• FX_Mult 2…32
• FX_Div 1…32
– A kimeneti CK_FX lehet fáziszárt vagy független a referenciától (CLK_FB használata)
• Frekvencia szintézis lehetséges független és fáziszárt üzemmódban
• A használható frekvencia tartomány eltérı
• Spartan 3E 5MHz – 250MHz, ha szinkronizált (DLL is kell)
• Spartan 3E 200kHz – 333MHz, ha nem kell szinkronizáció
![Page 46: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/46.jpg)
BME-MIT
FPGA labor
Egyéb erıforrások
• Az alacsony árfekvéső elemekben
– Nagyobb mérető memória blokkok
– Dedikált szorzó modulok
• Prémium kategóriában
– Többféle memória modul
– DSP blokk teljes MAC struktúrával
– Beépített CPU mag/magok
– Nagysebességő soros interfészek
![Page 47: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/47.jpg)
BME-MIT
FPGA labor
Speciális blokkok az FPGA-ban
• Blokk RAM elhelyezése
![Page 48: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/48.jpg)
BME-MIT
FPGA labor
Blokk RAM
• 2 – 4 kbyte dual port szinkron RAM
• Mérettıl függı számban 4 – 36 db
• Adatméret rugalmasan választható
– 16kx1, 8kx2, 4kx4, nincs paritás
– 2kx(8+1), 1kx(16+2), 512x(32+4)
![Page 49: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/49.jpg)
BME-MIT
FPGA labor
Blokk RAM • Használati módok
– Igazi dual port, teljesen független CLKA és CLKB
• Kiváló elem független órajeltartományok közötti szinkronizációra, adatcserére
• Teljesen szinkron mőködés
– Írás: cím, adat és WE aktív, mővelet CLK élére
– Olvasás: cím, RE aktív, CLK élére az adat a kimeneti regiszterbe kerül
![Page 50: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/50.jpg)
BME-MIT
FPGA labor
Blokk RAM
• Beállítások
– NO_CHANGE a kimeneten az írást követıen
![Page 51: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/51.jpg)
BME-MIT
FPGA labor
Blokk RAM
• Beállítások
– READ_FIRST
![Page 52: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/52.jpg)
BME-MIT
FPGA labor
Blokk RAM
• Beállítások
– WRITE_FIRST
![Page 53: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/53.jpg)
BME-MIT
FPGA labor
Blokk RAM konfliktusok
• Természetesen, a dual portos mőködés miatt, egy cella írásakor, ugyanahhoz a cellához fordulva problémák adódnak
• Dual port módban egyidıben azonos címre írás eltérıadatokkal, az adat bizonytalan lesz (nincs prioritás)
• Aszinkron órajeleknél, írás és azonos idejő olvasás hozzáférés esetén az olvasás eredménye bizonytalan
– Az új belsı adat még nem stabil az olvasás idején
• WRITE_FIRST vagy NO_CHANGE esetén egyik port írásakor a másik kimeneti latch tartalma módosul
![Page 54: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/54.jpg)
BME-MIT
FPGA labor
BlokkRAM használat
• Tetszıleges memória funkció
• Adatméret átalakítás átvitel elıtt
– PAR → SER soros átvitel SER→PAR,
– 32 bit → 2 bit, 2 bit → 32 bit
• A tartalom fele függetlenül használható, mint 2 db egy portos memória
• Ugyanígy fele akkora 72 bit széles memória is kialakítható
• Bufferek, késleltetı vonalak, videó sor tároló
![Page 55: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/55.jpg)
BME-MIT
FPGA labor
Blokk RAM használat
• Általános logika, mint egy „nagyobb LUT”
– n bemenet, m kimenet REGISZTERES!
– Függvénytáblázat sin/cos, stb.
• Mikroprogramozott vezérlı programtár és következı utasítás logika
• Tulajdonságok:
– Inicializálható felkonfiguráláskor
– RESET csak a kimeneti regisztert befolyásolja
![Page 56: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/56.jpg)
BME-MIT
FPGA labor
Blokk RAM használat
• Virtex eszközökben további tulajdonságok
– Széles adatformátum esetén bájtonkénti írás engedélyezés
• Beágyazott rendszerek megvalósítása során fontos lehet
• CPU buszrendszere kínálja / igényli
• Operációs rendszer meglévı forrása használ rövid változókat (újrafordítható, ….)
![Page 57: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/57.jpg)
BME-MIT
FPGA labor
BlokkRAM használat
• FIFO használat támogatása– Közvetlen HW kiegészítı logika– Rendszer elem sebessége nem csökken– Üzemmódok:
• Normál• FWFT az elsı adat
átesik a kimenetre
– Jelzések:• Full, AlmostFull• Empty, AlmostEmpty
![Page 58: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/58.jpg)
BME-MIT
FPGA labor
Szorzó
• A felhasználók régi vágya
• Teljes párhuzamos tömbszorzó 18x18 bites
• Illeszkedik a BlokkRAM 18 bites konfigurációjához
• A fizikai beépítés is támogatja az együttes használatot, pl. FIR szőrı
• 2’s komplemens, elıjeles mővelet
• 36 bites teljes eredmény
– P[35] redundáns bit
![Page 59: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/59.jpg)
BME-MIT
FPGA labor
Szorzó
• Mőködési sebessége a nagy, illeszkedik a RAM-hoz
• Megırizhetı az opcionális pipe-line regiszterekkel
• Használható
– Önállóan
– Kaszkádosítva
![Page 60: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/60.jpg)
BME-MIT
FPGA labor
Szorzó
• Kibıvítés nagyobb pontosságra, pl. 35 x 35 bit
• 4 db keresztszorzat,
• MSW x MSW
• LSW x LSW
• MSW x LSW
• LSW x MSW
• Elıjel kiterjesztés!
![Page 61: BME-MIT FPGA labor](https://reader035.vdocuments.pub/reader035/viewer/2022062600/589854c21a28ab09488b7c16/html5/thumbnails/61.jpg)
BME-MIT
FPGA labor
Összefoglalás
• FPGA belsı erıforrások– Logikai blokk sokféle lehet
• SRAM-nál tipikus a LUT4 + DFF• Kiegészítı tulajdonságok:
– Átvitelgyorsító– Elosztott memória– SRL16
– Speciális modulok• Órajel kezelı• Szorzó• BlokkRAM