Wstęp do FPGA Krzysztof Pisaniec Temat pracy: „Analiza błędów w układach FPGA z wykorzystaniem JTAG” Kierownik pracy: dr inż. Piotr Gawkowski
Agenda Co to jest FPGA? Jakie są podstawowe zalety FPGA? Jak to działa? Jak tego używać? Kto to produkuje? Gdzie o tym poczytać? ...to naprawdę proste!
Podział układów scalonych (1) Full-custom/VLSI (Very Large-Scale Integration) Wszystkie warstwy optymalizowane dla konkretnego systemu Semi-custom/ASIC (Application-Specific IC) Rozwiązanie pośrednie – dolne wartstwy preprojektowane, projektant decyduje o połączeniach między nimi PLD (Programmable Logic Device) np. FPGA Wszystkie warstwy istnieją a połączenia są tworzone lub niszczone przez projektanta.
FPGA = Field Programmable Gate Array Technologia układów scalonych reprogramowalnych przez projektanta przy wykorzystaniu specjalizowanych narzędzi oraz języków opisu sprzętu (HDL), przypominających klasyczne języki programowania. Zastosowania: prototypowanie wielkoseryjnych układów ASIC urządzenia produkowane w krótkich seriach testowanie nowych technologii, algorytmów praca w systemach podlegających sprzętowej rekonfiguracji wszędzie tam, gdzie opłaca się zrównoleglenie operacji wszędzie tam, gdzie nie radzi sobie mikrokontroler ... i nie tylko (implementacje procesorów, np. 8051, ARM, NIOS II)
Jak to działa? (1) Architektura układów FPGA
Jak to działa? (2) Komórka logiczna układów FLEX firmy Altera
Jak to działa? (3) FLEX 8000 firmy Altera Architektura układu Struktura LAB FLEX 8000 firmy Altera
Języki opisu sprzętu HDL (1) VHDL Multiplexer 4x1. Źródło: PUCY, M.Pawłowski, materiały do wykładu
Języki opisu sprzętu HDL (2) Verilog ... przykład implementacji pod koniec prezentacji
Producenci Altera → www.altera.com Xilinx → www.xilinx.com rodzina Stratix (high-end apps) Stratix III (11/06): do 338.000 LE, zegar do 600MHz, >1000 I/O pins rodzina Cyclone (low-cost apps) Cyclone II: do 68.000 LE, >600 I/O pins Xilinx → www.xilinx.com rodzina Spartan (low-cost apps) Spartan 3: 5M bramek, do 74.880 LE, >750 I/O pins rodzina Virtex (high-end apps) Virtex-5: do 331.000 LE, zegar do 550Mhz, >1200 I/O pins ...oraz układy firm Actel, Atmel, Quicklogic i innych...
Narzędzia sprzętowe (1) Zestaw z układem Cyclone firmy Kamami (ZL7PLD+ZL11PRG-M) układ Altera Cyclone EP1C3 gniazdo do wyświetlacza LCD 2x16 znaków 4-cyfrowy, multipleksowany wyświetlacz LED 8 diod LED 4 przyciski do dowolnych zastosowań generator kwarcowy 3,6864 MHz w podstawce generator RC o regulowanej częstotliwości (5...400Hz) głośnik piezoelektryczny interfejs RS232 z konwerterem napięciowym złącze do dołączenia konwertera UART<->USB złącze JTAG (konfiguracja FPGA) złącze CNF (programowanie ISP) programator (emulacja m.in. ByteBlaster II) Cena: ok. 600 PLN www.kamami.pl
Narzędzia sprzętowe (2) Moduł 301_FPGA_EP1K30 do systemu SML w pracowni 315 Instytutu Informatyki z układem ACEX firmy Altera układ Altera ACEX EP1K30TC144-30 1.728 LE możliwość łączenia z innymi modułami SML
Narzędzia programistyczne Atera Quartus II 6.1 dostępny za darmo Xilinx ISE 8.2i, dostępny w wersji darmowej (WebPACK) Cechy: kompletne środowisko programistyczne dla Windows kompilator VHDL, Verilog zaawansowany symulator Cechy: środowisko programistyczne dla Windows i Linux kompilator VHDL, Verilog zaawansowany symulator
Przykładowy projekt (1) Zadanie Zaprojektuj urządzenie, wyszukujące wzorzec ‘abba’ w strumieniu danych wejściowych. Wzorce nie muszą być rozłączne ( w strumieniu ‘abbabba’ liczba wystąpień wzorca to 2 ). Założenia: automat synchroniczny, ‘a’ = 0, ‘b’ = 1 ...aababaababbaabbbabb....
Przykładowy projekt (2) Automat stanów a a 00010 Start a - 00001 a ! abba 10000 b b a b a b abb 01000 ab 00100 b
Przykładowy projekt (3) Wynik symulacji w programie Quartus II
Narzędzia programistyczne Atera Quartus II 6.1 dostępny za darmo Xilinx ISE 8.2i, dostępny w wersji darmowej (WebPACK) Cechy: kompletne środowisko programistyczne dla Windows kompilator VHDL, Verilog zaawansowany symulator Cechy: środowisko programistyczne dla Windows i Linux kompilator VHDL, Verilog zaawansowany symulator
Literatura www.altera.com www.xilinx.com „Synteza układów cyfrowych” pod red. Prof. T. Łuby WKŁ, 2003 (1) „Projektowanie układów cyfrowych z wykorzystaniem języka VHDL” Mark Zwoliński WKŁ „Synthesis of Arithmetic Circuits” J.P. Deschamps, G. Bioul, G. Stutter Wiley – Interscience, 2006 ...oraz przedmioty: PUCY, SOUC, ...
... Dziękuję za uwagę. Pytania?