Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe Architektura układów FPGA 1 Program wykładu ASIC vs ASSP vs FPGA Układy FPGA cechy użytkowe rynek układów Architektura układów FPGA Oferta układów FPGA firmy Xilinx Spartan 3 Spartan 6 Virtex 6 Seria 7 EasyPath Kity FPGA 1
Układy FPGA literatura Strony WWW producentów układów FPGA Wielcy ( alfabetycznie) www.actel.com (Microsemi) www.altera.com www.atmel.com www.latticesemi.com www.quicklogic.com www.xilinx.com (wykład) Nowe podmioty na rynku FPGA http://www.achronix.com http://www.siliconbluetech.com http://www.tabula.com Plus ciekawostki http://www.easic.com i strony inne np. http://www.soccentral.com www.eetimes.com/design/programmable-logic ASIC? ASSP? czy FPGA 2
ASIC? ASSP? czy FPGA ASIC? ASSP? czy FPGA 3
ASIC? ASSP? czy FPGA ASIC? ASSP? czy FPGA 4
ASIC? ASSP? czy FPGA Firmy branży PLD 5
Układy FPGA The new Xilinx FPGA is built using 6.8 billion transistors to give customers access to two million logic cells, equivalent to 20 million ASIC gates, for system integration, ASIC replacement, and ASIC prototyping and emulation. This capacity is made possible by Xilinx's stacked silicon interconnect technology, the first application of 2.5D IC stacking that gives customers twice the capacity of competing devices and leaping ahead of what Moore's Law could otherwise offer in a monolithic 28nm FPGA, the company said. Cechy użytkowe układów FPGA Idealna technologia dla aplikacji dedykowanych Fast Time-to-Market Zalety integracji niski koszt, mały pobór mocy, małe wymiary, System on Chip Niższe koszty i mniejsze ryzyko niż układy ASIC no NRE, minimum order size nor inventory risk, no long delay in design and testing Bardzo szybkie przetwarzanie danych massively parallel operation much faster than DSP engines Reprogramowalne w każdym z etapów produkcji i użytkowania in design, in manufacturing, after installation allows unlimited product differentiation 6
Internet Recofigurable Logic Rynek układów FPGA Źródło: http://www.fpgadeveloper.com/2011/07/li st-and-comparison-of-fpgacompanies.html 7
Architektura FPGA Bloki we/wy (Input Output Block) Bloki logiki (Configurable Logic Block) Zasoby połączeniowe Architektura FPGA 8
Oferta układów FPGA XILINX XC 2000 1985 0,8...1,5 tys. LGEs XCS /XL (Spartan) XC 3000 & 3100 /A/L 1997 5...40 tys. LGEs 1987 1,5...7,5 tys. LGEs XCV E/EM (Virtex) XC 4000 : 1998 58... 4.074 tys. LGEs A/H/D/E/L/EX/XL/XLT/XLA/XV XCS-2 (Spartan-2) 1990 2...250tys. LGEs 2000 15...200 tys. LGEs XC 5200 XCV-2 (Virtex-2) 1994 3...23 tys. LGEs 2001 40...10.000 tys. LGEs XC 6200 XCS-3 (Spartan-3) 1996 13...100 tys. LGEs 2004 XCV-4 (Virtex-4) 2004 XCV-5 (Virtex-5) 2007 XCS-6 (Spartan-6) 2009 3,8...147 tys. Logic Cells XCV-6 (Virtex-6) 2009 75...567 tys. Logic Cells XCV-7 (Virtex-7,Artix- 7,Kintex-7) 2010-2011 8...1955 tys. Logic Cells Xilinx Spartan3 technologia 90nm struktura gruboziarnista 50k 5.000k system gates 725 MHz max toggle frequency clock DCMs: 2...4 18-bitowe mnożarki: 4...104 pamięć użytkowa Select RAM+ rozproszona: do 520 Kb blokowa (18Kb): do 1872 Kb zewnętrzna pamięć konfiguracji SRAM (4 tryby + ReadBack) port JTAG (testowanie + konfiguracja) zasilanie: V CCINT : 1,2V V CCAUX : 2,5V V CCO : 1,2...3,3V 9
Xilinx Spartan3 CLB = 2 x LS = 4 x LC przerzutnik / zatrzask Clock Enable AP / AC / SS / SR LUT (Look-Up-Table) carry logic Spartan3 CLB LUT LUT: 4-wejściowy generator funkcji SinglePort / DualPort RAM 16-stopniowy rejestr przesuwny 10
Spartan3 CLB multipleksery brak BUFT/BUFE funkcje magistral realizowane przez multiplexery inne multipleksery: CYMUX, BUFGMUX Spartan3 Carry & Arithmetic logic sumator licznik mnożarka 11
Spartan3 Carry & Arithmetic logic Equality Comparator Magnitude Comparator Wide-AND Spartan3 - IOB DDR: pary przerzutników DDR mux każdy sygnał z core może być w inwersji Programowalne: pull-up pull-down weak-keeper DCI Digital Controlled Impedance delay 12
Spartan3 - IOB Interfejs z logiką 5V przy użyciu buforów LVTTL: wejścia (IBUF) I IK <100mA, <100wejść jednocześnie wyjścia (OBUF, OBUFT) ew. dodatkowy driver we/wy (IOBUF) nie: dwukierunkowy we. zegar. (IBUFG) konieczny dzielnik Spartan3 LUT as Distributed RAM RAM32X1S RAM16X1D 13
Spartan3 LUT as Shift Register Zastosowania: długie linie opóźniające długie liczniki (także LFSR) synchroniczne FIFO generatory pseudolosowe Spartan3 Block RAM 14
Spartan3 Block RAM Zastosowania: duże pamięci (łączenie) pamięci ROM rejestry FIFO pamięć programu dla µp bufory kołowe linie opóźniające złożone automaty złożone funkcje logiczne szybkie, długie liczniki pamięci CAM pamięci 4-portowe tablice funkcji (DDS) Spartan3 mnożarki 18-bitowe czynniki 36-bitowy iloczyn mnożenie w kodzie U2 opcjonalne rejestry łączenie w większe podział na mniejsze Zastosowania: mnożenie przesuwanie obliczanie modułu generowanie wartości U2 mnożenie zespolone mnożenie macierzy (z podziałem czasu) mnożenie zmiennoprzecinkowe 15
Spartan3 Clock Resources 16 wejść zegarów globalnych GCLK po 8 wejść zegarów lokalnych LH/RHCLK 2...8 układów DCM (Digital Clock Manager) dystrybucja kwadrantowa Spartan3 DCM Bloki DCM: DLL (Delay Locked Loop) DFS (Digital Frequency Synthesizer) PS (Phase Shifter) Status Logic Fukcje DCM: eliminacja różnic fazy przesuwanie fazy mnożenie / dzielenie częstotliwości zegara korekcja współczynnika wypełnienia DLL: F in 2 DLL: F in / 1.5, 2, 2.5... 7.5, 8... 16 DLL: F in >> 0 / 90 / 180 / 270 DFS: F in M/D; M=2...32, D=1..32 16
Spartan3 Zasoby połączeniowe Interconnect Tile: Switch Matrix podłaczona do elementu funkcyjnego (CLB, IOB, DCM, BRAM,MULT) Połączenia: long lines hex lines double lines direct lines Spartan3 Zasoby połączeniowe 24 linie pionowe i poziome na każdy wiersz i kolumnę, rozciągnięte przez cały układ podłączone co 6 Switch Matrix 8 linii hex w 4 kierunkach sterowanie tylko na początku odbiór w połowie i na końcu podłączone co 3 Switch Matrix 8 linii double w 4 kierunkach sterowanie tylko na początku odbiór w połowie i na końcu podłączone co 3 Switch Matrix linie direct w 8 kierunkach przekazują sygnały z/do w/w zasobów 17
Spartan3 konfiguracja Tryby konfiguracji: Slave Serial Master Serial Slave Parallel (SelectMAP) Boundary Scan (JTAG) ReadBack: weryfikacja pamięci konfiguracji oraz stanów przerzutników i zawartości pamięci (debug) Virtex6 Spartan6 18
Virtex6 Spartan6 Virtex6 Spartan6 19
Virtex6 Spartan6 Spartan6 20
Virtex6 Virtex6 21
Virtex6 Virtex6 22
Virtex6 Virtex6 23
Virtex6 Virtex6 24
Virtex6 Virtex6 25
Spartan6 Spartan6 26
Spartan6 Spartan6 27
Seria 7 Seria 7 28
Seria 7 Seria 7 29
EasyPath FPGA EasyPath FPGA 30..70 % cost FPGA Digilent Spartan3 Starter Kit Board Układ XC3S200-FT256: macierz CLB 24 x 20 (480 CLBs, 4,320 LCs) 173 sygnały dla użytkownika max. 76 sygnałów różnicowych 30Kb pamięci rozproszonej 216Kb pamięci blokowej (12 bloków) 12 mnożarek 4 bloki DCM 30
Digilent Spartan3 Starter Kit Board układ XC3S200-FT256 pamięć FLASH konfiguracji 2Mb 2 układy pamięci statycznej 10ns 256K 16bitów złącze portu VGA (8 kolorów) złącze portu RS-232 driver portu RS-232 złącze dodatkowego portu RS-232 złącze portu PS/2 4-znakowy, multipleksowany wyświetlacz 7- segmentowy LED 8 przełączników 8 diod LED 4 przyciski oscylator 50MHz gniazdo dodatkowego oscylatora jumpery trybu konfiguracji przycisk PROGRAM dioda LED DONE złącze B1 rozszerzenia złącza A1 A2 rozszerzenia złącze sondy JTAG Centronics sonda JTAG Centronics (w zestawie) złącze sondy JTAG MultiPro zasilacz sieciowy 5V/2A (w zestawie) dioda LED POWER stabilizatory napięć zasilania Digilent Nexys3 Starter Kit Board Xilinx Spartan6 XC6LX16-CS324 16Mbyte Micron Cellular RAM, 16Mbyte Micron Parallel PCM 16Mbyte Micron Quad-mode SPI PCM 10/100 SMSC LAN8710 PHY Digilent Adept USB port for power, programming & data transfers USB-UART Type-A USB host for mouse, keyboard or memory stick 8-bit VGA 100MHz fixed-frequency oscillator 8 slide switches, 4 push buttons, 4-digit 7seg display, 8 LEDs Four double-wide Pmod connectors, one VHDC connector 31
Digilent Altys Starter Kit Board The Spartan-6 LX45 is optimized for high-performance logic and offers: 6,822 slices each containing four 6-input LUTs and eight flip-flops 2.1Mbits of fast block RAM 4 clock tiles (8 DCMs & 4 PLLs) 6 phased-locked loops 58 DSP slices 500MHz+ clock speeds Xilinx Spartan-6 LX45 FPGA, 324-pin BGA package 128Mbyte DDR2 16-bit wide data 10/100/1000 Ethernet PHY On-board USB2 ports for programming & data transfer USB-UART and USB-HID port (for mouse/keyboard) Two HDMI video input ports & two HDMI output ports AC-97 Codec with line-in, line-out, mic, & headphone Real time power monitors on all power rails 16Mbyte x4 SPI Flash for configuration & data storage 100MHz CMOS oscillator 48 I/O s routed to expansion connectors GPIO includes 8 LEDs, 6 buttons, & 8 slide switches Dziękuję za uwagę! Rajda & Kasperek 2012 Katedra Elektroniki AGH 64 32