A Xilinx FPGA-k
A programozható logikákról általában A Spartan-3 FPGA belső felépítése Az FPGA fejlesztés menete
BMF KVK MAI, Molnár Zsolt, 2008.
A programozható logikák I.
Logikai eszközök:
- Fix logikai eszközök - A gyártósoron eldől a végleges funkciójuk - Komplex feladatnál gond a korlátozott kínálat - Hosszú tervezési idő - A készülék módosítása, továbbfejlesztése drága - Egyedi feladatra ASIC/BOÁK - drága
- Programozható logikai eszközök (PLD) - „Tetszőleges” funkció megvalósítható bennük - A készülék fejlesztésekor csak át kell programozni - A lábak funkciója tervezhető, alakítható - A tervezési idő lecsökken - A prototípus sokszor megegyezik a végleges gyártmánnyal
A programozható logikák II.
Programozható logikák:
- FPGA (Field Programmable Gate Array) - Nagy „kapuszám” (tipikusan több százezer kapu) - Nagy variálhatóság - Nagysebességű kommunikáció az eszközök között - Viszonylag nagy integrált memória - SRAM tartalmazza a konfigurációt
- CPLD (Complex Programmable Logic Device) - AND-OR felépítés - Kisebb kapuszám (tipikusan néhány ezer kapu) - Jól meghatározható késleltetés - Nagy órajel-frekvencia (több száz MHz) - Kis fogyasztás, alacsony ár - Mérésen nem témánk
A Spartan-3 FPGA-k belső felépítése I.
Legfontosabb jellemzők: - Legfeljebb 74880 logikai cella, 5 millió kapu - Legfeljebb 633 I/O láb - Max. 280 MHz órajel - Korlátlan számú programozás - Számos logikai szabványhoz való illeszthetőség - IEEE 1149.1/1532 szabványú peremfigyelés (Boundary Scan)
A Spartan-3 FPGA-k belső felépítése II. CLB: Configurable Logic Block Konfigurálható logikai blokk
IOB: Input/Output Block Bemeneti/Kimeneti blokk
DCM: Digital Clock Manager Órajel menedzselő blokk
Block RAM: 18 kbites dual-portos RAM blokkok
Multiplier: 18x18 bites szorzó (36 bites eredmény)
A Spartan-3 FPGA-k belső felépítése III. A konfigurálható logikai blokk (CLB)
- Kombinációs vagy szekvenciális hálózatok megvalósítására - 4 szelet (SLICE) minden CLB-ben
A Spartan-3 FPGA-k belső felépítése IV. A konfigurálható logikai blokk (CLB) (SLICEM)
LUT: Look-Up Table 4 bites RAM alapú logikai függvénygenerátor, amely konfigurálható RAM-nak, vagy shift-regiszternek is
FFX/FFY: Flip-flop X/Y Tárolóelem, konfigurálható D-FF-nak, vagy latch-nek, fő feladata a szinkronizálás
MUX: Multiplexer A belső kapcsolatok kialakítására
WSGEN: Write Signal Generator
A Spartan-3 FPGA-k belső felépítése V. A bemeneti/kimeneti blokk (IOB) - Programozható kétirányú interfész egy be/kimeneti láb, és az FPGA belső logikája között - Számos választható logikai szabvány (18 aszimmetrikus és 8 szimmetrikus) - DCI: digitálisan vezérelhető impedancia az illesztéshez - Kapcsolható le- és felhúzó ellenállások - Programozható SR és kimeneti áramkorlát (2…24 mA) - ESD védelem
A Spartan-3 FPGA-k belső felépítése VI. Az egységek kapcsolódása (Spartan)
PSM: Programmable Switch Matrix Programozható kapcsoló mátrix
A Spartan-3 FPGA-k belső felépítése VII. Az egységek kapcsolódása
Különféle kapcsolódási típusok
A Spartan-3 FPGA-k belső felépítése VIII. Az egységek kapcsolódása
A kapcsolódó egységek mátrixa
A Spartan-3 FPGA-k belső felépítése IX. A kapcsolódási lehetőségek
Long Line: - 24 darabos kötegek, horizontálisan és vertikálisan - 6-6 egységet (példában CLB-t) tartalmazó csoport közül egy kapcsolódhat rá - Egy egységhez max. 4 Long Line kapcsolódhat - Alacsony kapacitás → magas frekvenciás jelekhez - Skew (elcsúszás) kicsi - A dedikált órajel-vonalak (8 db) helyett is használható
A Spartan-3 FPGA-k belső felépítése X. A kapcsolódási lehetőségek
Hex Line: - 8 darabos kötegek, horizontálisan és vertikálisan - 3-3 CLB-t tartalmazó csoport közül egy kapcsolódhat rá - Egyetlen meghajtója lehet - Kissé magasabb kapacitás, mint a Long Line esetében, de még alkalmazható nagyfrekvenciás jelekhez
A Spartan-3 FPGA-k belső felépítése XI. A kapcsolódási lehetőségek
Double Line: - 8 darabos kötegek - Az összes szomszédos egységhez csatlakozhat, de keresztirányban nem - Nagyobb flexibilitás - Nagyobb kapacitás miatt lassabb
Direct Line: - Bármelyik két szomszédos egységet összekötheti, diagonálisan is - Leggyakrabban az előző vonalakra (long, hex, double) való bekötéshez használt
A Spartan-3 FPGA-k belső felépítése XII. A RAM blokk
Double Line: - Single/Dual port módban is működhet - 18 kbit kapacitás - XC3S200: 12 blokk, 216 kbit - XC3S5000: 104 blokk, 1,87 Mbit
A Spartan-3 FPGA-k belső felépítése XIII. Az órajel menedzselő áramkör
DLL
DLL: Delay-Locked Loop - Órajel-elcsúszás (skew) kiküszöbölésére (visszacsatolás)
DFS: Digital Frequency Syntethizer - Az órajel frekvenciáját szorozza meg egy beállítható konstanssal (felszorzás/leosztás)
Phase Shifter: Fázisban eltolt órajeleket képes létrehozni (pl. 90º, 180º, 270º)
A Spartan FPGA-k belső felépítése XIV. A peremfigyelés kialakítása (Spartan)
Az FPGA fejlesztés folyamata Design Entry/Synthesis: - Terv létrehozása - Kapcsolási rajz alapon - HDL alapon (hardverleíró nyelv) - Egyéb forrásból (FSM,…) - Kitételek/korlátozások megadása
Design Implementation: - A terv (logikai leírás) konvertálása fizikai információvá (konfiguráló bitfolyammá) - Mapping (MAP): a terv adaptálása az adott eszközreben, kitételek feldolgozása, tervezési szabályok ellenőrzése - Placement/Routing (PAR): elemek elhelyezése, összekötések megvalósítása, optimalizálás
Design Verification: - Az elkészült áramkör funkcionális és minőségi vizsgálata (szimuláció/in-circuit ellenőrzés)
A Spartan-3 FPGA-k felkonfigurálása
Legfontosabb tulajdonságok: - Konfigurálás = RAM jellegű (felejtő) konfiguráló cellák konfigurációs bitmintával való feltöltése - Konfigurálható: - Soros/párhuzamos memóriából (boot) - Soros interfészen keresztül (JTAG) - Programozás
A Spartan-3 fejlesztőpanel (Digilent)
További információk
- www.xilinx.com - mai-mszglab.tar.hu/mai-mszglab.uw.hu - Mérési útmutató - Varga László előadásának kivonata