ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS



Podobne dokumenty
Współczesne techniki informacyjne

PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE

FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak pok. 107, tel

Projektowanie układów FPGA. Żródło*6+.

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

Ukªady Kombinacyjne - cz ± I

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

Układy FPGA. Programowalne Układy Cyfrowe dr inż. Paweł Russek

Systemy na Chipie. Robert Czerwiński

Katedra Mikroelektroniki i Technik Informatycznych

Krótkie przypomnienie

Elektronika i techniki mikroprocesorowe

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

FPGA IMPLEMENTATION OF FAST FOURIER TRANSFORM ALGORITHM IMPLEMENTACJA ALGORYTMU SZYBKIEJ TRANSFORMATY FOURIERA W UKŁADZIE PROGRAMOWALNYM FPGA

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

Język opisu sprzętu VHDL

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

MODEL KOMÓRKI UKŁADU FPGA ZBUDOWANEGO W OPARCIU O BRAMKI PRĄDOWE

Architektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski

Kierunek Inżynieria Akustyczna, V rok Programowalne Układy Cyfrowe. Platforma sprzętowa. Rajda & Kasperek 2014 Katedra Elektroniki AGH 1

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.

Programowalne Układy Logiczne Konfiguracja/Rekonfiguracja

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

Układy programowalne. Wykład z ptc część 5

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

Cyfrowe układy scalone

Cyfrowe układy scalone

PRZEWODNIK PO PRZEDMIOCIE

Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA. Autor: Daniel Słowik

Metody optymalizacji soft-procesorów NIOS

Opracował: Jan Front

System mikroprocesorowy i peryferia. Dariusz Chaberski

Wygląd okna aplikacji Project Navigator.

PROJEKTOWANIE UKŁADÓW MIKROPROGRAMOWANYCH Z WYKORZYSTANIEM WBUDOWANYCH BLOKÓW PAMIĘCI W MATRYCACH PROGRAMOWALNYCH

Budowa komputera Komputer computer computare

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Wstęp Pojęcia podstawowe

Systemy wbudowane. Układy programowalne

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Opis przedmiotu zamówienia CZĘŚĆ 1

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

Programowalne Układy Cyfrowe Laboratorium

Projektowanie systemów za pomocą języków wysokiego poziomu ESL

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji.

Sterowniki PLC. Elektrotechnika II stopień Ogólno akademicki. przedmiot kierunkowy. Obieralny. Polski. semestr 1

METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH

Projektowanie układów cyfrowych w strukturach FPGA

Układy programowalne. Wykład z ptc część 5

Układy programowalne

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

MIKROKONTROLERY I MIKROPROCESORY

Sterowniki Programowalne (SP)

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych

Temat: Pamięci. Programowalne struktury logiczne.

Elementy cyfrowe i układy logiczne

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

Opis przedmiotu zamówienia

PROGRAMOWALNE STEROWNIKI LOGICZNE

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL

Szyfry strumieniowe w układach programowalnych FPGA. Marcin Rogawski

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

PROJEKTOWANIE UKŁADÓW VLSI

Programowanie Układów Logicznych kod kursu: ETD6203. Specjalizowane architektury do obliczeń DSP

Cyfrowe układy scalone

Analiza i Synteza Układów Cyfrowych

Specyfika projektowania Mariusz Rawski

Zaawansowane technologie w nowoczesnych układach sterowania

napięcie-częstotliwość

Projektowanie. Projektowanie mikroprocesorów

Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego

E-E-A-1008-s6. Sterowniki PLC. Elektrotechnika I stopień Ogólno akademicki. kierunkowy (podstawowy / kierunkowy / inny HES)

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Systemy Czasu Rzeczywistego FPGA

Systemy wbudowane. Paweł Pełczyński

Implementacja Gigabitowego Ethernetu na układach FPGA dla eksperymentów fizycznych

Rok akademicki: 2030/2031 Kod: EIT s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Wielokontekstowy sterownik programowalny przyszłości wykorzystujący układy programowalne psoc

Budowa i zasada działania komputera. dr Artur Bartoszewski

LEKCJA TEMAT: Zasada działania komputera.

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Logiczny model komputera i działanie procesora. Część 1.

Układy FPGA w przykładach, część 2

Układy reprogramowalne i SoC Wprowadzenie

Programowalne układy logiczne Wydziałowy Zakład Nanometrologii SEMESTR LETNI

Elektrotechnika I stopień Ogólno akademicki. kierunkowy (podstawowy / kierunkowy / inny HES)

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

WPROWADZENIE Mikrosterownik mikrokontrolery

Przykładowe pytania DSP 1

Bezpieczeństwo informacji oparte o kryptografię kwantową

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Rodzaje układów programowalnych

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

REALIZACJA KONTROLERÓW

Technika audio część 2

E-4EZA1-10-s7. Sterowniki PLC

Transkrypt:

inż. Michał HALEŃSKI Wojskowy Instytut Techniczny Uzbrojenia ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH Streszczenie: W artykule przedstawiono budowę oraz zasadę działania układów FPGA oraz porównanie do mikrokontrolerów na przykładzie wykonywania algorytmu filtracji FIR. Zostały opisane podstawowe bloki przetwarzania sygnałów dostępne w oprogramowaniu ilinx ISE. Słowa kluczowe: układy programowalne, przetwarzanie sygnałów. APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS Abstract: The paper presents the structure and the operation principles of FPGAs and microcontrollers to compare the algorithms performance on the FIR filter example. The paper describes the basic signal processing blocks available in the ilinx ISE software. Keywords: programmable circuits, signal processing. 1. Wstęp Field Programmable Gate Array (FPGA, z ang. bezpośrednio programowalna macierz bramek) to rodzaj programowalnego układu logicznego. Dla projektanta układy FPGA mają funkcjonalność taką samą, jak układy typu ASIC [1], jednak mogą być wielokrotnie przeprogramowane po tym, jak już zostały wytworzone, zakupione i zamontowane w urządzeniu docelowym. Największymi dostawcami tego typu układów są firmy Altera Corp. i ilinx, a także Actel, Atmel, Cypress, Lattice Semiconductor i QuickLogic. Rys. 1. Typowy element logiczny struktury FPGA Na ogół układy FPGA zawierają rozmieszczone matrycowo bloki logiczne CLB (ang. Configurable Logic Block) [Rys. 1]. Poszczególne bloki są łączone ze sobą za pośrednictwem linii traktów połączeniowych (routing channels) oraz programowalnych matryc kluczy 49

połączeniowych umieszczonych w miejscu krzyżowania się traktów poziomych i pionowych. Na obrzeżach matrycy bloków logicznych znajdują się programowalne bloki IOB (wejściowo-wyjściowe). Struktury FPGA zawierają od 64 do dziesiątków tysięcy bloków logicznych o bardzo zróżnicowanej budowie. Bloki logiczne mogą być bardzo złożone, jest ich wówczas mniej w układzie lub względnie proste i jest ich wówczas więcej. Zazwyczaj złożone bloki logiczne zawierają dwie lub więcej pamięci RAM umożliwiających tworzenie tablic wartości funkcji LUT (Look-up Table) i dwa lub więcej przerzutników. W większości układów są to tablice czterowejściowe (pamięć RAM o pojemności 16 bitów). W układach o prostszej budowie, bloki logiczne zawierają zwykle dwuwejściowe układy generacji funkcji kombinacyjnych lub multipleksery czterowejściowe i ewentualnie przerzutniki. Nowoczesne układy FPGA mają możliwość przeprogramowania w locie poprzez zastosowanie mechanizmu częściowej rekonfiguracji, co prowadzi do pomysłu rekonfigurowalnego komputera czy rekonfigurowalnego systemu - czyli układów, które mogą dostosować swoją strukturę tak, by lepiej sprostać zadaniom, przed którymi stoją w danym momencie. Układy FPGA używane są w cyfrowym przetwarzaniu sygnałów, lotnictwie i wojsku, w fazie prototypowej układów ASIC i w wielu innych dziedzinach. Na przykład układy FPGA firmy ilinx z powodzeniem sprawdziły się w misji na Marsa zakończonej lądowaniem łazików Spirit i Opportunity. Rys. 2. Układ z rodziny Virtex firmy ilinx Aby zdefiniować zachowanie układu FPGA używa się języka opisu sprzętu takiego jak Verilog czy VHDL. Następnie przy pomocy narzędzi syntezy generuje się listę połączeń, która następnie w procesie implementacji jest odwzorowywana w konkretnym układzie. Należy zwrócić uwagę, że proces syntezy dopuszcza tworzenie układów logicznych dowolnych rozmiarów, podczas gdy proces implementacji jest próbą wpisania go do konkretnego układu FPGA, gdzie może zabraknąć zasobów do realizacji zadanej logiki. Do zaprogramowania układu FPGA służy plik binarny, który zawiera informacje o konfiguracji układu. Układy FPGA to jedna z dwóch rodzin programowalnych cyfrowych układów logicznych o dużym stopniu scalenia - drugą grupę stanowią układy CPLD (Complex Programmable Logic Device) o nieco innej architekturze. [1] 2. Mikrokontroler kontra układ programowalny Na rys. 3 zostało przedstawione porównanie algorytmu filtru FIR wykonywanego przez 50

mikrokontroler oraz układ programowalny FPGA. Procesor pobiera próbki sygnału i kolejno każdą przemnaża przez odpowiedni współczynnik oraz sumuje wynik z pozostałymi. W przypadku gdy należy wykonać mnożenia dla dwóch lub więcej kanałów, mikrokontroler musi wykonać obliczenia jedno po drugim, co dodatkowo wydłuża czas potrzebny na przetworzenie sygnału. Mikrokontroler FPGA Dana wejściowa Dana wejściowa Współczynniki C0 C4 Mnożenie Współczynniki C0 C1 C2 C3 C4 + Akumulacja + Dana wyjściowa Dana wyjściowa Rys. 3. Porównanie algorytmu FIR pomiędzy procesorem a układem FPGA Rys. 3 przedstawia porównanie wykonywania operacji MAC (ang. Multiply ACcumulate mnóż i akumuluj), na przykładzie filtracji FIR[3], przez procesor oraz układ FPGA. Mikrokontroler wykonuje tyle operacji mnożenia i akumulacji, ile współczynników posiada filtr zaimplementowany w oprogramowaniu. Przy założeniu, że każda operacja zajmuje jeden cykl zegarowy (podczas pracy potokowej), to przy filtrze o długości 128 współczynników oraz zegarze 100MHz czas potrzebny na wykonanie algorytmu będzie wynosił 128*10ns=1280ns. Ograniczeniem dla procesora jest tutaj czas upływający pomiędzy kolejnymi próbkami. Często oznacza to konieczność kompromisu pomiędzy próbkowaniem a długością filtru. W przypadku układu programowalnego czas potrzebny na wykonanie tych samych obliczeń będzie wynosił 10ns, przy tym samym zegarze taktującym, i jest on niezależny od ilości współczynników. Dla dłuższego filtru różnica w czasach będzie odpowiednio większa ponieważ procesor musi wykonać więcej działań, natomiast układ FPGA wykonuje algorytm w sposób równoległy. 3. Bloki przetwarzania sygnałów DSP Układy FPGA posiadają również wyspecjalizowane bloki DSP wykorzystujące operacje mnożenia i akumulacji. Na przykład w oprogramowaniu firmy ilinx są gotowe moduły realizujące algorytmy obliczeniowe takie jak FFT, filtracje. Rys. 4 przedstawia blok DSP48A1 realizujący różne działania na liczbach wejściowych. Blok ten posiada również wejścia oraz wyjścia umożliwiające łączenie kaskadowe modułów. Schemat blokowy modułu przedstawia Rys. 5. 51

Rys. 4. Blok DSP dostępny w układach firmy ilinx Dostępny jest również blok realizujący filtrację FIR [Rys. 6]. Dużym ułatwieniem jest to, że można sobie zaprojektować filtr którego rzeczywista charakterystyka jest przedstawiana w oknie. Po ustaleniu parametrów jest generowany moduł, który można wielokrotnie dołączać do projektu. W oprogramowaniu są również takie bloki jak DDS (Direct Digital Synthesis) czy realizujące szybką tranformatę fouriera (FFT). Rys. 5. Schemat blokowy modułu DSP48A1 52

Układy programowalne umożliwiają również implementacje procesorów softwarowych, które można zaprojektować według potrzeb projektowych. Część układów posiada również wbudowany rdzeń sprzętowy procesora który obudowuje się peryferiami. Umożliwia to zaprojektowanie mikrokontrolera, który następnie można programować w języku C/C++ oraz podłączać do niego moduły obróbki sygnałów - wszystko w ramach jednego układu scalonego. Takie rozwiązanie wykorzystuje zaletę procesora jaką jest łatwość programowania oraz szybkość wykonywania obliczeń przez układy logiczne. Rys. 6. Ustawienia kompilatora filtracji FIR 4. Podsumowanie W artykule zostały przedstawione tylko podstawowe możliwości obliczeniowe układów programowalnych FPGA. Istnieje możliwość projektowania modułów wykonujących kompresję obrazu w czasie rzeczywistym, czy wykorzystywanych w różnych rodzajach komunikacji przewodowej oraz bezprzewodowej, np. GSM. Układy te zwiększają również elastyczność płytek drukowanych, przy zastosowaniu tych samych elementów można uzyskać różne funkcjonalności urządzenia po przez wgranie odpowiedniego oprogramowania. Układy FPGA są również często stosowane w urządzeniach prototypowych, w których istnieje konieczność nanoszenia poprawek. Ostateczną wersję programu przekazuje się do firmy, która produkuje gotowe układy scalone bez możliwości przeprogramowania, ale za to pobierające mniej energii. Takie rozwiązanie stosuje się przy produkcji masowej. 53

Literatura [1] http://pl.wikipedia.org, 03.12.2012 r. [2] http://www.xilinx.com, 03.12.2012 r. [3] http://www.agh.edu.pl, 03.12.2012 r. 54