A Xilinx FPGA-k A programozható logikákr król általában A Spartan-3 3 FPGA belső felépítése Az FPGA fejlesztés s menete BMF KVK MAI, Molnár Zsolt, 2008.
A programozható logikák 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 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 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 3 fejlesztőpanel (Digilent( Digilent)
További informáci 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