Układy programowalne GA PA FPGA FEX EP 1
Układy programowalne przez uŝytkownika FP P FPGA PA PA OOK-UP TABE GA XPA Classic EP XC 3000 XC 4000 MAX, APEX Spartan ispsi Virtex MAC Cyclone XC9500 Stratix MUX (ACTE) 2
ogika programowalna P FPGA Programmable ogic evices Field Programmable Gate Arrays 3
Układy programowalne przez uŝytkownika CP kilka lub kilkanaście makrokomórek (sea-of-gates), mała liczba przerzutników, mniejsza pojemność logiczna, mniejszy i przewidywalny czas propagacji (szybsze), nieulotna konfiguracja po włączeniu zasilania układ gotowy do pracy, moŝliwe przeprogramowanie (reprogramming) FPGA - od kilkudziesięciu do setek tyś. komórek, duŝa pojemność logiczna, duŝy czas propagacji w połączeniach, ulotna konfiguracja po włączeniu zasilania trzeba zaprogramować układ (reconfiguring), stąd problem z bezpieczeństwem projektu, w nowych układach wbudowane pamięci i bloki arytmetyczne SP 4
Układy programowalne przez uŝytkownika Technologie w układach reprogramowalnych: SRAM - static memory, wymaga reprogramowania in-system programmable, re-programmable, CMOS. Antifuse jednokrotne programowanie, CMOS. EPROM - Erasable Programmable Read-Only Memory technology. Jednokrotne programowanie, moŝliwość wykasowania zawartości promieniami UV przez okno, CMOS. EEPROM - Electrically Erasable Programmable Read-Only Memory, moŝliwość kasowania, moŝliwość programowania w systemie (in-system programming), CMOS. Flash - Flash-erase EPROM, moŝliwość kasowania, moŝliwość programowania w systemie (in-system programming), komórka flash jest mniejsza od komórki EEPROM (tańsza), CMOS. Fuse - jednokrotne programowanie, bipolar. 5
Układy programowalne przez uŝytkownika FPGA vs ASIC: FPGA (początkowo) wolniejsze, większe zapotrzebowanie na energię, mniejsza funkcjonalność w porównaniu do specjalizowanych ASIC, (obecnie) dzięki postępowi technologicznemu szybsze, oszczędniejsze w zapotrzebowanie na energię (układy mobilne), większe pojemności logiczne, moŝliwość częściowej rekonfiguracji układu przy pracującej pozostałej części (dynamiczna rekonfiguracja) Krótszy czas produkcji (time to market), moŝliwość zmiany funkcjonalności lub usuwanie błędów (reprogramming) zmniejsza koszty jednorazowe NRE (non-recurring engineering costs) 6
Struktura PA C B A MATRYCA OR (PROGRAMOWANA) MATRYCA AN (PROGRAMOWANA) Q 3 Q 2 Q 1 Q 0 7
Struktura PA C B A MATRYCA OR (STA A) MATRYCA AN (PROGRAMOWANA) Q 3 Q 2 Q 1 Q 0 8
Realizacja PA y = abc+ ac+ bc 1 y = ac+ bc+ a 2 ad a b c d b c y 1 y 1 d y 2 y 2 9
Realizacja PA y 1= abc+ ac+ bc y = ac+ bc+ ad 2 a b c d y 1 y 2 10
Układy PA 1 2 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 28293031 19 1 2 clk 0 1 2 3 4 5 6 7 0 1 2 3 28 2930 31 Q Q 3 8 9 10 11 12 13 14 15 18 56 57 58 59 60 61 62 63 Q Q 56 57 58 59 60 61 62 63 9 11 12 9 sekwencyjny kombinacyjny przerzutnik 11
Układy programowalne FPGA CP charakteryzują się ziarnistą budową 12
ZłoŜone układy P (CP) AN Array 8 macro Macrocell Macrocell cell Macrocell Macrocell 8 macro cell Programmable Interconnect Array 8 macro cell Macrocell Macrocell P COMPEX P 13
Struktury programowalne MAX I/O OUTPUT ENABE SYSTEM COCK PRESET P Q ARRAY COCK CEAR C TO I/O CONTR O BOCK From inputs From PIA Expander Product Terms I/O and Macrocell Feedback AN Array 8 8 macro cell macro cell 8 P macro cell 14
Makrokomórka układów MAX7000 ogic Array Up to 15 Parallel ogic Expander (from other macrocells) Global Clear Global Clock Product- Term Select Matrix Preset Clock Clear Clear Select Clock/En able Selec t Vcc Regist er Bypas PRN ENA CRN to I/O Block Programmable Interconnect Signals Up to 16 Expander Product Terms Shared ogic Expander to PIA 15
Ekspander (serii MAX) A B E F C G (A + B + C +...)(E + F + G +...) = (AE + AF +...) 16
Układy FEX8000 IOE IOE IOE IOE I/O Element IOE IOE IOE IOE ogic Array Block (AB) Fast Track Interconnect IOE IOE IOE IOE ocal Interconnect Row Interconnect ogic Element (E) Cascade & Carry Chain Column Interconnect IOE IOE IOE IOE 17
Komórka układu FEX8000 Komórka logiczna E ogic Element Cascade Out ATA1 ATA2 ATA3 ATA4 Cascade In Carry IN ook-up Table (UT) Carry Chain Cascade Chain PR CR Q Programmable Register E Out Carry Out Preset Clear Clock 18
Układ FEX10K 19
FEX10K - Blok komórek AB ocal Array Block 20
FEX10K Komórka E 21
Szybkie sygnały przeniesienia Carry chain 22
Pamięć wbudowana Flex10K 23
Pamięć wbudowana Flex10K Przykład konfiguracji bloku pamięci Przykład konfiguracji kilku bloków pamięci 24
Struktura FPGA firmy XIINX I / O BOCK CON FIGURAB E OGIC BOCK INTERCONNECTE AREA 25
Układy FPGA firmy Xilinx Configurable ogic blocks (CBs) ATA IN OGI C VARIABES.di.a.b.c.d.e QX F CO MBINATIONA FUNCTION G QY F IN G F IN G 0 MUX 1 0 MUX 1 Q R Q QX F G QY.X CB OUTPUTS.Y ENABE clk clk RESET.ec "1" (ENABE).k.rd "0" (I N IBIT) R (GOBA RESET) 26
Komórka FPGA (XIINX) ATA IN.di OGI C VARIABES.a.b.c.d.e QX F CO MBINATIONA FUNCTION G QY F 0MUX IN 1 G F IN G 0 MUX 1 Q R Q QX F G QY.X CB OUTPUTS.Y ENABE clk clk RESET.ec.k.rd "1" (ENABE) "0" (I N IBIT) R (GOBA RESET) 27
Połączenia ciągłe i segmentowe A) CP B) FPGA A B A B C C STAŁE/PRZEWIYWANE OPÓŹNIENIA ZMIENNE/NIEPRZEWIYWANE OPÓŹNIENIA 28
Struktury najnowsze ROM FIFO SP RAM 29
MAX II: Najtańsze CP Nowa Architektura ogiczna 1/2 kosztu 1/10 poboru mocy 2 x osiągi 4 x pojemność Nieulotne, Instant-On Zasilanie: 3.3-, 2.5- & 1.8-V 30
Zalety MAX II 1/2 ceny Produkty konsumenckie Urządzenia komunikacyjne 4x złoŝoność 1/10 mocy Urządzenia z zasilaniem bateryjnym 2 x osiągi Urządzenia komputerowe 31
MAX II = CP + FPGA Potrzeby uŝytkownika CP: Potrzeby uŝytkownika FPGA: Stała gotowość Niski koszt Łatwość uŝycia Trwałość Pojedynczy układ uŝe upakowanie Wysoka fmax Wbudowana SRAM Pętla fazowa Ps Intellectual Property (IP) CP FPGA 32
Architektura MAX II komórki (E) końcówki I/O Flash (pamięć konfiguracyjna 50-300kbit) JTAG & logika sterująca Flash (pamięć uŝytkownika 8kbit) 33
MAX II - komórka E 34
Łańcuchy UT i rejestrów Łańcuch UT Szybsze realizacje funkcji z licznymi wejściami Łańcuch Rejestrów UT nie jest potrzebny do utworzenia rejestru przesuwającego Oba łańcuchy tworzy się z E znajdujących się jeden pod drugim, do granicy ABu E1 E2 UT UT Reg Reg To E3 To E3 E Chain Register Chain 35
Tani układ FPGA: Cyclone Niska cena/uŝa pojemność logiczna Komórki logiczne: do 20 060, 10 E w jednym AB Pamięć: do 288kbitów 36
Wbudowana pamięć EAB Cyclone Pamięć EAB o pojemności 4kbit (M4K): 4096 1, 2048 2, 1024 4, 512 8 (lub 512 9 bitów), 256 16 (lub 256 18bitów), 128 32 (lub 128 36 bitów) Wydajność 250Mz Tryby pracy RAM: dwu portowa, jedno portowa Bit parzystości Zapis bajtowy (byte enable) Konfiguracje: ROM, FIFO, rejestr przesuwny 37
Konfiguracja pamięci: rejestr przesuwny Tryb wykorzystywany w aplikacjach SP (filtry, generatory) w m n < 4kbity w n < 36 (maks. szerokość słowa) 38
Zapis bajtowy ( Zapis bajtowy (byte enables) la pamięci o długości słowa 16, 18, 32 lub 36 bitów zapis maskowany 39
Jeszcze większy FPGA: Cyclone II Większa pojemność logiczna Mniejszy pobór mocy Komórki logiczne: do 68416 E Wbudowana pamięć: do 1,1Mbitów MnoŜarki 18 18: do 150 sztuk 40
MnoŜarki Cyclone II MnoŜarki wykorzystywane w aplikacjach SP: filtr FIR, transformata FFT, transformata CT MnoŜarka 18 18 moŝe pracować jako dwie mnoŝarki 9 9 41
MnoŜarki Cyclone II JeŜeli signa, signb = 1 to czynnik jest traktowany jako liczba ze znakiem (signed) 42
MnoŜarki Cyclone II Sygnał signa kontroluje trybem pracy obydwa wejścia A, i signb obydwa wejścia B. 43
Szybsze układy FPGA: Stratix Szybkość zegara do 420Mz Komórki logiczne: do 79 040 E (po 10 w jednym AB) Pamięć: do 7,5Mbitów Bloki SP: do 22 szt. MnoŜarki 9 9: do 176 szt. 44
Wbudowana pamięć Stratix 45
Blok SP Stratix Blok SP moŝe być skonfigurowany jako: osiem mnoŝarek 9 9 cztery mnoŝarki 18 18 dwie mnoŝarki 36 36 Blok SP moŝe takŝe realizować funkcję dodawania lub akumulacji. 46
Blok SP Stratix: blok sumatora i akumulatora Wyjścia z mnoŝarek 47
Blok SP Stratix: tryby pracy 48
Przykład: MnoŜenie liczb zespolonych Tryb pracy: Two- Multiplier Adder Mode (a + jb) (c + jd) = (a c b d) + j (a d + b c) 49
Elastyczne układy FPGA: Stratix II Nowy rodzaj komórki logicznej AM (Adaptative ogic Module) jeden AB zawiera 8 AM, jeden AM zawiera 2 AUT Pamięć: do 9 383 040 bitów Bloki SP: do 96 szt., do 384 mnoŝarek 18 18 Szyfrowanie danych konfiguracyjnych algorytmem AES 50
Moduł AM Moduł AM: do 8 wejść do 2 wyjść 51
AM przykład: funkcja 5-wejściowa Wąski UT Szeroki UT Input 1 Input 2 Input 3 Input 4 Input 5 ŚcieŜka krytyczna UT UT UT UT Output Input 1 Input 2 Input 3 Input 4 Input 5 ŚcieŜka krytyczna UT Utracony obszar Wyjście Wolny, efektywnie wykorzystany Szybki, nieefektywnie wykorzystany 52
Efektywność wykorzystania archite chitektur tury Architektura 4-wejściowa uŝyte 4 z 4 wejść 100% UT wykorzystane (0 z 16 stracone) Pierwotna funkcja: 4-wejściowa Architektura 5-wejściowa uŝyte 4 z 5 wejść 50% UT wykorzystane (16 z 32 stracone) Architektura 6-wejściowa 4 z 6 wejść uŝyte 25% UT wykorzystane (48 z 64 stracone) 53
Efektywność wykorzystania archite chitektur tury Elastyczne dostosowanie do wymagań: UT UT ƒ 1 ƒ 1 ƒ 2 Szeroki UT Szybki Wąski UT Efektywny 54
AM: wie funkcje 6-wejściowe S X [1..0] Przykład - przełącznik krzyŝowy 4 x 2 Ta sama funkcja jako 4-wejściowy multiplekser z 2 sygnałami adresu A B C S Y [1..0] X Y 55
Przykład realizacji: przełącznik krzyŝowy Implementacja w Stratix Implementacja w Stratix II A B S X [0] S X [1] C 4- UT 4- UT E E X S X [0] S X [1] A B C 6- UT X S Y [0] S Y [1] 4- UT 4- UT E E Y S Y [0] S Y [1] 6- UT Y AM Wykorzystuje cztery E Wykorzystuje dwa AM 56
Przykład funkcji box - 6x1 (szyfr ES) Implementacja w Stratix Implementacja w Stratix II A B C 4- UT 4- UT E E 4- UT E 4- E B UT C 6- UT 4- E E E 4- UT X F UT A AM X E F ZuŜywa 6 E (3-poziomy) ZuŜywa 1 AM (1-poziom) 57
Adaptacyjny UT (AUT) 1 2 3 4 5 Comb. ogic Adder Reg 6 7 8 Adder Reg Jeden AM zawiera dwa AUT 58
AM w trybie normalnej konfiguracji AM AM 5-UT 5-UT AM 7- UT (1) 3-UT AM AM 4-UT 4-UT 4-UT AM 5-UT AM 6- UT (2) 6- UT (2) 6-UT 5-UT (1) AM mogą realizować podzbiory wszystkich funkcji 7-wejściowych (2) Muszą reprezentować tą samą funkcje logiczną 59
AM tryb arytmetyczny wa dedykowane sumatory na AM e0 f0 c b a 4-UT 4-UT carry_in + Reg0 d e1 f1 4-UT 4-UT + carry_out Reg1 60
Realizacje drzewa sumatorów Implementacja drzewa sumatorów w Stratix Suma 2 bitów w E Implementacja drzewa sumatorów w Stratix II Suma 3 bitów w AM 128 wejścia 64 sumatory 32 sumatory 16 sumatorów 8 sumatorów + + + + + + + + + + + + + 128 wejścia 42 sumatory 14 sumatorów 5 sumatorów + + + + + + + + + + 4 sumatory + + + + 1 sumator + 2 sumatory + + 1 sumator + 2 sumatory 127 sumatorów, 7 poziomów (~8,600 E) 64 sumatory, 5 poziomów (~2,500 AM) 61
rzewo sumatorów w AM 1-szy poziom (UTy) 2-gi poziom (sumatory) Przykład: + + 1 1 0 1 0 1 0 1 0 X 2 X 1 X 0 Y 2 Y 1 Y 0 + Z 2 Z 1 Z 0 S 2 S 1 S 0 C 2 C 1 C 0 R 3 R 2 R 1 R 0 + 6 5 2 X 0 Y 0 Z 0 X 0 Y 0 Z 0 X 1 Y 1 Z 1 X 1 Y 1 Z 1 X 2 Y 2 Z 2 S 0 R 3 UT + 0 Carry Chain 3 UT 3 UT 3 UT C 0 Shared Arith Chain S 1 + C 1 S 2 3 UT + R 1 R 2 AM + 0 0 1 1 1 0 1 1 0 1 1 + 2 * 6 13 X 2 Y 2 Z 2 3 UT 3 UT C 2 0 + R 3 62
Zabezpieczenie projektu w STRATIX II Pierwszy układ z wbudowanym zabezpieczeniem projektu Oparty na 128-bitowym algorytmie kryptograficznym (AES) Klucz przechowywany w trwałej pamięci w układzie Układ jest reprogramowalny z ostatnio kluczem wpisanym Intellectual Property Zapobiega kradzieŝy własności intelektualnej 63
Zabezpieczenie konfiguracji Krok 1: Zapis klucza do układu Stratix II 128-bitowy klucz AES Non-Volatile Key Storage Krok 2: Szyfrowanie pliku POF i zapis do pamięci Pamięć lub układ konfigurowany Plik do programowania (POF) Szyfrowanie w systemie Quartus II Zaszyfrowany POF 64
Zabezpieczenie konfiguracji Non-Volatile Nieulotna Pamięć Key Storage klucza Krok 3: Odbiór i deszyfracja zaszyfrowanego POF AES deszyfrator Pamięć Memory lub or Configuration układ konfigurowany evice 65
Programowanie układów Wektory testowe Moduł programujący Kompilator MAX+PUS II.pof.jed.sof.scf.vec Programator.plf.jed.pof BitBlaster Raport.hex.ttf.sbf.rbf 66
Programowanie w systemie (ISP) In-System Programming System szeregowej komunikacji z układem mikrokontrolera. MoŜliwy bez wyjmowania układu z podstawki / bez wylutowywania 67
Redundancja pozwala naprawić defekt Patent ATERY dla technologii P Znaczne zwiększenie uzysku Element I/O (IOE) IOE IOE IOE IOE IOE IOE IOE ogic Array Block IOE Sekcja z defektem IOE IOE IOE IOE Uaktywniona sekcja nadmiarowa 68
Analizator ogiczny SignalTap UŜytkownik definiuje sygnały, punkty do kontroli i zbierania danych testowych ane są zapamiętywane w blokach EAB ane testowe są przekazywane do analizy w systemie QUARTUS UŜycie megafunkcji SignalTap pozwala wyeliminować tradycyjny analizator logiczny System Quartus FPGA SignalTap Megafunction Kabel interfejsu 69
Wyzwania dla projektanta systemu Szybsze wejście na rynek Krótszy okres Ŝycia produktu NiŜszy koszt Większe wymagania 70
Wyzwania dla projektanta systemu Skala problemów Mikro Ultra-high speed design Interconnect Noise, Crosstalk Reliability, Manufacturability Power issipation Clock distribution. Ma Makro ro Time-to to-market Millions of Gates igh-evel Abstractions Reuse & IP: Portability Predictability Productivity etc.? 71
Czynniki sukcesu rynkowego Niski koszt i krótki cykl (time-to to-market) Czynniki wpływające na sukces rynkowy ObniŜenie kosztu Wzrost funkcjonalności Skrócenie cyklu (time to market) Wzrost szybkości systemu Wzrost jakości/niezawodności Łatwiejsze wykorzystanie Redukcja wymiarów Redukcja poboru mocy 0 10 20 30 40 50 60 70 Source: ataquest Ocena w % 72
Porównanie kosztów realizacji ASIC = koszt układu + koszt opracowania + koszty kryte FPGA minimalizuje koszty ukryte Brak kosztów NRE Brak strat ( utraconej szansy ) ost Brak kosztów powtarzania cyklu Opportunity Niski koszt rezerw NREs Koszty ukryte Całkowity koszt ($) evelopment Cost evelopment Cost evice Unit Cost FPGA evice Unit Cost ASICs 73
Przykłady zastosowań - kryptografia Implementacje algorytmów kryptograficznych Algorytmy kryptograficzne realizacje sprzętowe realizacje programowe stałe Rekonfigurowalne ASIC FPGA Intel, RISC uprocesory wbudowane (SP, smart card,...) 74
Przykłady zastosowań - telekomunikacja Modulator Outer Coding ayer Inner Coding ayer FIR Compiler Input ata Scrambler inear Feedback Shift Register FEC Reed Solomon Encoder Interleaver Convolutional Symbol Mapper ROM UT Convolutional Encoder I Q N PF Numerically Controlled Oscillator N PF AC PM Altera MegaCore Function AMPP MegaFunction FPGA FIR Compiler To Analog Circuitry Output ata 75
Przykłady zastosowań - telekomunikacja emodulator PF N EQ EQ AC NCO EQ Symbol +Clock Recovery Symbol emapper +Error Term AGC Automatic Gain Control PF N EQ EQ PM Viterbi ecoder e-interleaver FEC escrambler Altera MegaCore Function AMPP MegaFunction Inner Coding ayer Outer Coding ayer 76