Jerzy Kaniewski, Robert Berezowski, Dariusz Gretkowski, Oleg Maslennikow i Przemysław Sołtan

Podobne dokumenty
Politechnika Koszalińska, Wydział Elektroniki

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

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

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

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

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

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

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

Układy kombinacyjne 1

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 04

Technika audio część 2

Wizualizacja struktur macierzy procesorowych w standardzie SVG

Automatyzacja procesu tworzenia sprzętowego narzędzia służącego do rozwiązywania zagadnienia logarytmu dyskretnego na krzywych eliptycznych

Przykładowe pytania DSP 1

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

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Drgania poprzeczne belki numeryczna analiza modalna za pomocą Metody Elementów Skończonych dr inż. Piotr Lichota mgr inż.

Cyfrowe Przetwarzanie Obrazów i Sygnałów

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

Przetwarzanie równoległe Zadanie domowe III

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Szybkie układy mnożące

Projekt zespołowy. Część1: Projekt potokowej jednostki przetwarzającej przeznaczonej do realizacji algorytmu FFT. Rok akademicki 2008/2009

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

Współczesne techniki informacyjne

9. Dyskretna transformata Fouriera algorytm FFT

Arytmetyka liczb binarnych

Matematyczne Podstawy Informatyki

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

Numeryczna algebra liniowa

AiSD zadanie trzecie

Układy równań i nierówności liniowych

Krystalochemia białek 2016/2017

Wykład z Technologii Informacyjnych. Piotr Mika

Układy logiczne układy cyfrowe

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI)

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

Synteza strukturalna automatu Moore'a i Mealy

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Kody splotowe. Zastosowanie

Obraz jako funkcja Przekształcenia geometryczne

Teoria przetwarzania A/C i C/A.

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Szybkie układy mnożące

Rozdział 1 PROGRAMOWANIE LINIOWE

TEORETYCZNE PODSTAWY INFORMATYKI

Architektura komputerów Wykład 2

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Lista 0. Kamil Matuszewski 1 marca 2016

3. FUNKCJA LINIOWA. gdzie ; ół,.

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Filtracja obrazów. w dziedzinie częstotliwości. w dziedzinie przestrzennej

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

Rijndael szyfr blokowy

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Model reprogramowalnego prądowego układu działającego w logice wielowartościowej

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

1 Przestrzeń liniowa. α 1 x α k x k = 0

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

Analiza efektywności przetwarzania współbieżnego

Architektura komputerów, Informatyka, sem.iii. Sumatory

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Mikrooperacje. Mikrooperacje arytmetyczne

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej.

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

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

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

Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne

Piotr Majkowski. Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Energoelektroniki i Maszyn Elektrycznych REJESTRY

Macierzowe algorytmy równoległe

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

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

Laboratorium MATLA. Ćwiczenie 4. Debugowanie. Efektywności kodu. Wektoryzacja.

Podstawy Przetwarzania Sygnałów

Numeryczna algebra liniowa. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

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

Automatyzacja procesu implementacji układów cyfrowych w technologii prądowych układów FPGA

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Przekształcenie Fouriera i splot

Transkrypt:

MODELE VHDL FILTRÓW FIR PRZEZNACZONYCH DO REALIZACJI W UKŁADACH FPGA Jerzy Kaniewski, Robert Berezowski, Dariusz Gretkowski, Oleg Maslennikow i Przemysław Sołtan Politechnika Koszalińska, Wydział Elektroniki, ul. Partyzantów 17, 75-411 Koszalin, POLSKA e-mail: kaniewsk@lew.tu.koszalin.pl Streszczenie W pracy rozpatrywane jest zagadnienie projektowania struktur macierzy procesorów (PA) dla systemów cyfrowego przetwarzania sygnałów (DSP), na przykładzie algorytmów FIR filtracji. Syntezując strukturę PA wykonującą algorytm FIR filtracji przedstawione zostały etapy proponowanej metodologii projektowania. W celu uzyskania struktury PA z pożądanymi cechami wykorzystano modyfikacje podstawowego grafu algorytmu. W rezultacie utworzona została biblioteka modelów FIR filtrów przedstawionych w języku opisu sprzętu VHDL. Porównano parametry szeregu struktur FIR filtrów wraz z różnymi strukturami jednostek mnożących. Wybrano struktury FIR filtrów charakteryzujące się wysoką wydajnością, i efektywnością działania. 1. Wstęp Realizacja licznych zadań DSP sprowadza się do rozwiązania algorytmów algebry liniowej w czasie rzeczywistym[1,3]. Algorytmy DSP, takie jak cyfrowa filtracja, transformacja Fouriera, rozwiązywanie układów liniowych, metoda najmniejszych kwadratów charakteryzują się dużą ilością obliczeń [3,4]. Stwarza to konieczność realizacji tych algorytmów w specjalnych, wysokowydajnych systemach obliczeniowych. Macierze procesorowe (PA) są przykładem tego typu struktur. Wykorzystują one regularność wielu algorytmów w celu osiągnięcia wysokiej wydajności, a dzięki znacznej ilości połączeń lokalnych nie wymagają dużej ilości wymienianej informacji poprzez układy wej/wyj. Struktury macierzy procesorowych VLSI mogą być zaimplementowane [1,2,3,4,5] w układach ASIC lub FPGA. Zastosowanie systemów DSP w FPGA ma szereg korzyści takich jak pełne przystosowanie implementowanych struktur FPGA do algorytmu, wysoka przepustowość, efektywność wykorzystania sprzętu, uzyskanie dużej dokładności obliczeń. W pracy opisane zostały podstawowe etapy proponowanej metodologii projektowania [4] struktur PA. Następnie na przykładzie algorytm filtracji FIR przedstawiono syntezę struktury PA przystosowanej do wykonywania tego algorytmu. W celu uzyskania PA z pożądanymi cechami zastosowano transformację podstawowego grafu algorytmu. Dzięki temu PA jest w znacznym stopniu zależna od parametrów filtracji (na przykład liczby współczynników filtru). Pokazano również w jaki sposób algorytmy mogą być zmodyfikowane w celu ich realizacji na macierzy procesorowej o stałych wymiarach. Modele VHDL wszystkich zaprojektowanych struktur FIR filtrów tworzą bibliotekę. Porównane zostały parametry szeregu struktur filtrów należących do tej biblioteki. W rezultacie wybrano struktury o najlepszych charakterystykach. 2. Metodologia projektowania struktur PA. Algorytmy rozpatrywane w niniejszej pracy zadane są zagnieżdżonymi pętlami z regularnymi zależnościami informacyjnymi. Takie algorytmy mogą być przedstawione [3,4,5] poprzez regularne (lub prawie regularne) grafy zależności informacyjnych lub kompozycję takich grafów. Każdy wierzchołek w grafie odpowiada pewnemu operatorowi (lub iteracji) algorytmu wejściowego i jest związany z pewnym całkowitoliczbowym wektorem K = (k 1,..., k n ), tj. wszystkie wierzchołki grafu są rozmieszczone w węzłach K pewnej całkowitoliczbowej kraty K n Z n. Łuki łączące wierzchołki grafu (lub inaczej zależności informacyjne algorytmu) są wtedy w sposób zwięzły reprezentowane za pomocą macierzy D zależności informacyjnych, gdzie i-ta kolumna przedstawia wektor d i zależności informacyjnych. Jeśli pewien operator odpowiadający węzłowi K 2 zależy ze względu na dane od innego operatora odpowiadającego węzłowi K 1, to wtedy powyższa zależność jest przedstawiana w

formie różnicy d i = K 2 - K 1. Dla w pełni regularnych grafów zbiór otrzymanych w ten sposób wektorów będzie stały, tj. nie będzie zależeć od współrzędnych K K n. Schematem strukturalnym C macierzy procesorowej realizującej zadany algorytm, który charakteryzuje się grafem G zależności informacyjnych, jest trójka C = <S, T, Φ>, (1) gdzie S jest zorientowanym grafem struktury (topologii) sieci, T jest funkcją synchronizacji specyfikującą momenty wykonania poszczególnych wierzchołków grafu, Φ jest zbiorem algorytmów funkcjonowania elementów przetwarzających (PE). Do odwzorowania rekursywnych algorytmów z regularnymi grafami zależności informacyjnych wykorzystuje się model liniowy. Liniowe przestrzenno-czasowe odwzorowanie F (lub po prostu ST-odwzorowanie) przekształca n-wymiarowy graf zależności informacyjnych, którego wierzchołki rozmieszczone są w węzłach K kraty K n, zaś łuki zadawane są za pomocą macierzy D, w m-wymiarową macierz procesorową zgodnie z następującymi wyrażeniami:f : K n K m+1 F, F(K)= F K, K K n, (2) FS m n gdzie F = Z ( + 1) F T jest macierzą ST-odwzorowania, F S Z mxn jest macierzą odwzorowania przestrzennego (odwzorowanie przydzielające operację do elementu przetwarzającego PE), zaś F T Z 1xn jest wektorem odwzorowania szeregującego. Dowolny wierzchołek o współrzędnych K K n będzie wykonywany w momencie czasu F T K K 1 T w elemencie przetwarzającym F s K K m S sieci, przy czym dowolny wektor d zależności informacyjnych grafu w rezultacie ST-odwzorowania przybiera następującą postać: S FS d F d = = δ T = δ FT d, (3) δ gdzie δ S i δ T zadają odpowiednio współrzędne przestrzenne zorientowanego połączenia informacyjnego w sieci i dyskretne opóźnienie w przekazywaniu danych za pośrednictwem tego połączenia. Odwzorowanie F musi spełniać następujące warunki: 1. δ S = F S d Θ m, d D *, gdzie Θ m jest zbiorem dopuszczalnych połączeń między elementami przetwarzającymi sieci; 2. δ T = F T d >0, d D ; 3. K 1, K 2 K n (K 1 K 2 F K 1 F K 2 ); (4) 4. rank(f) = m+1. Według metodologii projektowania [4] w pierwszej kolejności są ustalane wszystkie możliwe nieekwiwalentne odwzorowania przestrzenne F S (K) spełniające w/w warunki. Dla każdej uzyskanej w ten sposób topologii sieci S znajdowane jest optymalne pod względem parametrów czasowych odwzorowanie szeregujące F T (K). Odwzorowanie F T (K) jest funkcją liniową z n współczynnikami. Duże znaczenie praktyczne posiada możliwość przetwarzania regularnych algorytmów przedstawionych grafami o dużych rozmiarach na PA ze stałą liczbą PE. Dla zapewnienia takiej możliwości używane są dwie metody: lokalnie szeregowa globalnie równoległa (LSGR) i lokalnie równoległa globalnie szeregowa (LS). Obie metody bazują na dekompozycji grafu algorytmu informacyjnych zależności na regularne podgrafy, ale różnią się sposobem uzyskania rezultatu. W metodzie LSGR, każdemu podgrafowi odpowiada inny PE i każdy PE kolejno wykonuje węzły swojego podgrafu. W tym przypadku potrzebna jest dodatkowa wewnętrzna pamięć dla każdego PE. By uniknąć tej niedogodności, w metodzie LS każdy podgraf został skojarzony z całą macierzą procesorów PA. Wszystkie węzły wewnątrz podgrafu są wykonywane jednocześnie, podczas gdy wszystkie podgrafy są wykonywane

kolejno. W rezultacie wszystkie pośrednie dane, które odpowiadają zależnościom danych pomiędzy podgrafami powinny być zapamiętane w buforach na zewnątrz PA. Prezentowana metodologia projektowania jest szczegółowo opisana w [4] i będzie użyta w następnym punkcie do zaprojektowania struktury FIR filtru. 3. Budowa i algorytm filtru FIR. Filtry o skończonej odpowiedzi impulsowej (FIR) są jednymi z podstawowych układów DSP. Dla danej częstotliwości odpowiedzi impulsowej FIR filtru jego rząd jest wyższy niż analogicznego IIR filtru. W ten sposób funkcjonowanie FIR filtru wymaga większej ilości obliczeń. Natomiast FIR filtry mogą być użyte w systemach wymagających liniowej fazy i charakteryzują się stabilnością. Funkcjonowanie jednowymiarowego (1-D) FIR filtru opisuje matematyczne równanie: K y[ n] = a[ k] x[ n k + 1], k = 1 gdzie x[n-k+1] jest próbką wejściową, a[k] są współczynnikami filtru i y[n] jest próbką wyjściową, K liczbą współczynników (k=1,...,k;) a N liczbą próbek (n=1,..., N+K-1). Zależności informacyjne grafu G (rys.1 (po lewej)) algorytmu FIR filtracji przedstawione zostały w pracy [6]. Węzły grafu G są rozmieszczone w dwuwymiarowej tablicy Q1={K=(n,k): 1 k K, k n N+k }. Zauważ, że każdy węzeł odpowiada wykonywanej operacji mnożenia z dodawaniem. W ten sposób graf G przedstawia realizację algorytmu FIR filtru na poziomie słów. Zależności informacyjne danych (łuki) pomiędzy węzłami grafu są reprezentowane przez trzy różne wektory d 1, d 2 i d 3 które tworzą macierz D zależności informacyjnych algorytmu. n D = [ d d d ] = 1 0 1 1, 2, 3 1 1 0, k gdzie wektory d 1 = [1,1], d 2 = [0,1] i d 3 = [1,0] odpowiadają wektorom informacyjnych zależności zmiennych x[n-k+1], a[k] i y[n] pomiędzy węzłami grafu. Wymiar algorytmu grafu na poziomie słów jest równy n=2. Metodologia projektowania [4] pozwala na syntezę struktur PA FIR filtrów o wymiarze m=0,1 lub 2. y K y (K+1) y (K+2)... y N y (N+1) y (N+2) y (N+K-1) Y k a K y 2 PE 3 y 3.......................................... y 3 n a 3 y 2 PE K a 2 PE 2 y 1 a1 y 1 PE 1 x 1 x 2 x 3 x 4 x 5 x 6... x N X Rys.1. Zależności informacyjne grafu FIR filtru i jednowymiarowa struktura filtru. Jedną z możliwych struktur jednowymiarowych jest struktura S 1 pokazana na rysunku rys.1 (po prawej). Struktura odpowiada rzutowi wzdłuż osi n i składa się z K PE, jednego wejściowego i jednego wyjściowy kanału wymiany informacji. Czas filtracji przy dużej liczbie próbek w przybliżeniu wynosi T=N taktów. Każdy PE zawiera układ mnożący, sumator i cztery rejestry. Wadami struktury S 1 jest względnie wysoka liczba rejestrów w PE.

Do uzyskania jednowymiarowej struktury filtru z minimalną liczbą kanałów wej/wyj, rejestrów PE oraz stałą ich liczbą p < K/2 PE, należy dokonać transformacji grafu, a następnie jego dekompozycji na podgrafy. Transformacja polega na zmianie kierunku wektora d 3 = [1,0] na przeciwny i połączeniu w pary sąsiednich węzłów grafu (patrz rys.1). W wyniku uzyskano zmodyfikowany graf G*( rys.2 po lewej stronie) podzielony na grupę s=]k/2p [ podgrafów mających tę samą topologię, gdzie ]q[ oznacza najbliższą liczbę całkowitą równą lub większą od q. Linie równoległe do osi n dekomponują graf G* na s regularnych podgrafów. k* a 7, a 8 a 5,a 6 n a 3,a 4 PE 2 F I a 1,a 2 F PE 1 O x 1 x 2 x 3 x 4 x 5 x 6... x N y 1 y 2 y 3 y 4 y 5 y 6... y N X Y Rys.2. Zmodyfikowany graf G* jednowymiarowego algorytmu filtracji ( K=8) i struktura PA o stałej liczbie PE. Struktura PA FIR filtru S 2 przedstawiona została na rys.2 po stronie prawej, gdzie FIFO oznacza zewnętrzny blok pamięci FIFO. Całkowity czas T przetwarzania algorytmu FIR filtracji jest równy T = s N + K 1 ( ) taktów przy maksymalnej wydajności PA. Wewnętrzną strukturę dla k*-tego PE przedstawiono na Rys. 3, gdzie oznacza rejestr, sumator, a układ mnożący zbudowany na układach pamięci ROM. Yout Yin a i a i+1 Xin Xout Rys. 3. Wewnętrzna struktura PE filtru S 2. Metodologia projektowania [4] pozwala na syntezę struktur PA o zerowym wymiarze (m=0) (tj. zawierających tylko jeden PE). Przykładami takich struktur są struktury S 3 i S 4 przedstawione na rys.4 i 5, gdzie FIFO (q) określa blok pamięci zawierający q komórek.

coefficients FIFO a(k) (K ) Input Output X(n) Y FIFO (K-1) FIFO (K-1) Coefficients FIFO a(k) (K) Output MX Y Input X Rys. 4. Struktura S 3 jednoprocesorowego filtru PA. Rys. 5. Struktura S 4 jednoprocesorowego filtru PA. Przewagą struktury filtru S 3 jest minimalny czas opóźnienia, który jest równy jednemu taktowi, podczas gdy przewagą struktury S 4 jest mniejszy rozmiar. (mniejsza liczba komórek bloku FIFO (K- 1)). Częstotliwość na wejściu X i wyjściu Y przetwarzania próbek jest równa f/k, gdzie f jest wewnętrzną częstotliwością taktowania. Struktura FIR filtru realizującego algorytm na poziomie bitów została przedstawiona na rys. 6. Składa się ona z K układów mnożąco-sumujących MU oraz bloków FIFO (Xdelay, Ddelay, Ydelay). Pojedynczy blok MU zawiera jednorodną matrycę komórek przedstawionych na rys.7, Cin Xin & Ain IN Xdelay Ddelay Ddelay Ddelay MU MU MU MU Ydelay Out Yin D Yout D D Cout Xout Rys. 6. Struktura S 5 PA realizującego FIR filtrację na poziomie bitów. Rys. 7. Wewnętrzna struktura pojedynczej komórki zawartej w matrycy tych komórek w bloku MU. gdzie & określa blok wykonujący operację AND, - jednobitowy sumator, a D - przerzutniki. 4. Biblioteka parametryzowanych struktur FIR filtrów. Wykorzystując zaproponowaną w [4] metodę uzyskano różne struktury FIR filtrów. Biblioteka zawiera parametryzowane, syntezowalne w układach FPGA struktury FIR filtrów napisane w języku VHDL. Struktury są parametryzowane w zakresie: - liczba współczynników K= 2,3,...,32; - liczba bitów próbek wejściowych Lx=4,6,...,16;

- liczba bitów współczynnika La=4,6,...,32. Wszystkie modele struktur filtrów zostały testowane przy pomocy pakietu Xilinx Foundation 2.1i. Struktura filtru NSSDA (niesymetrycznego) zbudowana jest z czterech bloków (rys.8): - Bloku rejestrów przesuwnych - rejestry przesuwne na wejściu układu składają się z K rejestrów po Lx bitów każdy. Próbka wejściowa ładowana do pierwszego rejestru jest następnie co takt przesuwana w stronę mniej znaczących bitów, a bity opuszczające rejestr są zapisywane jako najbardziej znaczące kolejnego rejestru. Najmniej znaczące bity co takt przekazywane są do kolejnego bloku - ROMu; - Bloku układów ROM zawiera tablice (wykorzystujące look-up tables (LUTs) w układach FPGA), gdzie są zgrupowane wszystkie możliwe sumy współczynników. Ze względu na logarytmiczny wzrost wielkości takiej tablicy w miarę wzrostu liczby współczynników, tworzy się więcej tablic zawierających kombinacje sum maksymalnie 4 współczynników. Wyjście poprzedniego bloku tworzy charakterystyczny adres, który pozwala wybrać odpowiednie komórki z poszczególnych tablic do dalszych obliczeń. - Bloku sumatorów Blok ten dodany został ze względu na duże rozmiary tablic znajdujących się w poprzednim bloku. Jeżeli tablice te zawierają kombinacje maksymalnie 4 współczynników to blok sumatorów dodaje poszczególne wartości z różnych tablic. - Bloku sumatora z przesuwem bitów Blok ten sumuje poszczególne próbki ustalając również wagę danej próbki (bity z wyjścia są przesyłane na wejście z mnożnikiem 0.5). Rys. 8. Struktura filtru SDA niesymetrycznego dla K=Lx=Lk=8 (NSSDA) Podobne bloki zawiera struktura filtru symetrycznego. Dochodzi tutaj dodatkowy blok pomiędzy blokiem rejestrów przesuwnych a ROM em. Są to dodatkowe sumatory, które wykorzystują symetrie współczynników filtru. Struktura filtru NSPDA (niesymetrycznego) przedstawiona jest na rys.11: Filtr się składa z: - Bloku rejestrów rejestry w liczbie K-1 tworzą kolejkę FIFO. Próbka wejściowa ładowana do rejestru jest następnie co takt przekazywana do kolejnego rejestru; - Bloku układów mnożących układy mnożące zawierają tablice (wykorzystujące look-up tables (LUTs) w układach FPGA), gdzie są zgrupowane wszystkie możliwe sumy współczynników. Wyjście poprzedniego bloku tworzy charakterystyczny adres, który pozwala wybrać odpowiednie komórki z poszczególnych tablic do dalszych obliczeń.

In (k=1,...,k) k 15 12 11 8 7 4 3 0 ROM1 ROM2 ROM3 ROM4 Out Rys.9. Struktura wewnętrzna układu mnożącego zbudowana na bazie tablic ROM. - Bloku sumatorów (rys.10) Blok ten zbudowany w postaci drzewa sumatorów dokonuje sumowania poszczególnych próbek. Drzewo posiada kilka poziomów sumatorów zależnych od liczby współczynników, która wynosi ]Log n[, gdzie n określa liczbę wejść drzewa (dla filtru niesymetrycznego n=k). DATA_OUT DRZEWO SUMATORÓW DATA_IN Rys. 10. Przykład drzewa sumatorów dla K=8. Rys.11. Struktura filtru NSPDA Podobne bloki zawiera struktura filtru symetrycznego przedstawiona na rys. 12. Dochodzi tutaj dodatkowy jednopoziomowy blok sumatorów pomiędzy blokiem rejestrów a układami mnożącymi. Są to dodatkowe sumatory, które wykorzystują symetrię współczynników filtru. Układy mnożące i drzewo sumatorów posiadają taką samą budowę. DATA_OUT DRZEWO SUMATORÓW DATA_IN Rys.12. Struktura filtru SPDA (symetrycznego).

Filtry SPDA i NSPDA zbudowane z wykorzystaniem drzewa sumatorów w porównaniu ze strukturą S 2 charakteryzują się na mniejszą liczbą poziomów sumatorów.. Uzyskane wyniki modeli dla parametrów Lx=La=16 i K=8 umieszczono w Tablicy 1. W odpowiednich kolumnach tablicy 1 podano liczbę użytych bloków logicznych CLB (configurable logical block) układu FPGA oraz maksymalnej częstotliwości. Tablica.1. Porównanie wyników modeli FIR filtrów zrealizowanych w układach FPGA. 5. Podsumowanie. Struktury CLB MHz S 2 513 68,76 S 4 130 38,6 S 5 1687 111,9 S 6 44 72,8 NSSDA 70 69,35 SSDA 62 71,44 NSPDA 530 86,81 SPDA 334 82,1 Realizacja FIR filtrów w układach FPGA posiada szereg zalet. Zapewnia pełną adaptację struktury filtru do realizowanego algorytmu co gwarantuje wysoką wydajność, częstotliwość funkcjonowania i dużą dokładność obliczeń. Z tych powodów autorzy na przykładzie FIR filtrów zaproponowali metodę projektowania wysokowydajnych układów realizowanych następnie w układach reprogramowalnych. W rezultacie utworzona została biblioteka modeli parametryzowanych struktur FIR filtrów opisanych w języku VHDL i przeznaczonych do systemów DSP zbudowanych na bazie układów FPGA. Porównane zostały parametry modeli wszystkich zaprojektowanych filtrów i wybrane optymalne do realizacji w układach FPGA. Literatura [1]. J. Isoaho, J. Pasawn, O. Vaino, H. Terhunen. DSP System Integration and Prototyping With FPGAs. J. VLSI Signal Processing, 1993, ą 6, p. 155-172. [2]. The Synthesis Approach to Digital System Design / Ed.: P. Michel, U. Lauther, P. Duzy. Kluwer Academic Pub. 1992. [3]. Kung S.Y. VLSI processor arrays. Prentice Hall, Englewood Cliffs, 1988. [4]. Wyrzykowski R., Kanevski J.S., Maslennikov O. Mapping recursive algorithms into processor arrays. Proc. Int. Workshop Parallel Numerics'94, M.Vajtersic and P.Zinterhof eds., Smolenice, (Slovakia), 1994, pp.169-191. [5]. Moreno J.H., Lang T. Matrix computations on systolic-type arrays. Kluwer Acad.Publ., Boston, 1992. [6]. Wyrzykowski R., Kanevski Ju.S., Maslennikov O.V., Maslennikova N.N. A Method for Deriving Dependence Graphs of Recursive Algorithms for Processor Array Design, Proc. Int.Workshop "Parallel Numerics'95" Sorrento, Italy, 1995, p.263-280.