modele vhdl filtrw fir - kik

Transkrypt

modele vhdl filtrw fir - kik
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: [email protected]
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 = (k1,...,kn)’, tj. wszystkie wierzchołki grafu są
rozmieszczone w węzłach K pewnej całkowitoliczbowej kraty Kn ⊂ Zn. Ł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 di zależności
informacyjnych. Jeśli pewien operator odpowiadający węzłowi K2 zależy ze względu na dane od
innego operatora odpowiadającego węzłowi K1 , to wtedy powyższa zależność jest przedstawiana w
formie różnicy di = K2 - K1 . 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 ∈ Kn .
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 Kn , zaś łuki zadawane są za pomocą macierzy D, w
m-wymiarową macierz procesorową zgodnie z następującymi wyrażeniami:F :
Kn → KFm+1 , F(K)= F⋅K, ∀K∈ Kn
,
(2)
gdzie
⎡ FS ⎤
F = ⎢ ⎥ ∈ Z ( m +1) × n
⎣ FT ⎦
jest macierzą ST-odwzorowania, FS ∈ Zmxn jest macierzą odwzorowania przestrzennego
(odwzorowanie przydzielające operację do elementu przetwarzającego PE), zaś FT ∈ Z1xn jest
wektorem odwzorowania szeregującego. Dowolny wierzchołek o współrzędnych K∈ Kn będzie
wykonywany w momencie czasu FT⋅K ∈ KT1 w elemencie przetwarzającym Fs⋅K ∈ KSm 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 = FS⋅d ∈ Θm ,∀d∈ D* ,
gdzie Θm jest zbiorem dopuszczalnych połączeń między elementami przetwarzającymi sieci;
2. δT = FT⋅d >0 ,∀d∈ D ;
3. ∀ K1, K2 ∈ Kn (K1≠ K2 ⇒ F⋅K1 ≠ F⋅K2);
4. rank(F) = m+1.
(4)
Według metodologii projektowania [4] w pierwszej kolejności są ustalane wszystkie możliwe
nieekwiwalentne odwzorowania przestrzenne FS(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 FT(K). Odwzorowanie FT (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 (LRGS).
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 LRGS 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 d1, d2 i d3 które
tworzą macierz D zależności informacyjnych algorytmu.
⎡1 0 1⎤ n
D = d1 , d 2 , d 3 = ⎢
⎥
⎣1 1 0⎦ k
[
]
,
gdzie wektory d1 = [1,1], d2 = [0,1] i d3 = [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.
yK
n
y2
y1
x1
y(K+2)
...
yN
y(N+1)
y(N+2)
a3
y3 .
......................................
Y
. . . y3
PE3
a2
x2
y(N+K-1)
PEK
aK
k
a1
y(K+1)
PE2
x3
x4
x5
x6 . . . xN
PE1
y2
y1
X
Rys.1. Zależności informacyjne grafu FIR filtru i jednowymiarowa struktura filtru.
Jedną z możliwych struktur jednowymiarowych jest struktura S1 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 S1 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 d3 = [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*
a7, a8
a5,a6
n
a3,a4
PE2
a1,a2
x1
y1
x2
y2
x3
y3
x4
x5
y4
y5
x6
PE1
... xN
y6 ...
yN
X
F
I
F
O
Y
Rys.2. Zmodyfikowany graf G* jednowymiarowego algorytmu filtracji ( K=8) i struktura PA o stałej
liczbie PE.
Struktura PA FIR filtru S2 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 RG oznacza rejestr, SM
sumator, a MUL układ mnożący zbudowany na układach pamięci ROM.
Yout
Yin
RG
SM
SM
ai
Xin
MUL
MUL
RG
ai+1
Xout
Rys. 3. Wewnętrzna struktura PE filtru S2.
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 S3 i S4
przedstawione na rys.4 i 5, gdzie FIFO (q) określa blok pamięci zawierający q komórek.
coefficients
a(k)
Input
X(n)
RG
Coefficients FIFO
a(k) (K)
FIFO
(K )
MUL
FIFO
(K-1)
Output
RG
Y
SM
MX
MUL
Input
X RG
FIFO
(K-1)
Rys. 4. Struktura S3 jednoprocesorowego filtru PA.
SM
RG
Output
Y
RG
Rys. 5. Struktura S4 jednoprocesorowego
filtru PA.
Przewagą struktury filtru S3 jest minimalny czas opóźnienia, który jest równy jednemu taktowi,
podczas gdy przewagą struktury S4 jest mniejszy rozmiar. (mniejsza liczba komórek bloku FIFO (K1)). 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
Yin
Xdelay
Ddelay
Ddelay … Ddelay
SM
D
D
D
Cout
Xout
Yout
Out
MU
MU …
MU
MU
Ydelay
Rys. 6. Struktura S5 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, SM - 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 RG 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 MUL 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
15
(k=1,...,K)
RG
8 7
12 11
4 3
k
0
ROM1
ROM2
ROM3
ROM4
SM
SM
RG
RG
SM
RG
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 SM 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
SM
SM
MUL
SM
SM
SM
SM
SM
DATA_IN
MUL
RG
MUL
RG
MUL
MUL
RG
Rys.11. Struktura filtru NSPDA
Rys. 10. Przykład drzewa sumatorów dla K=8.
Podobne bloki zawiera struktura filtru symetrycznego przedstawiona na rys. 12. Dochodzi tutaj
dodatkowy jednopoziomowy blok sumatorów pomiędzy blokiem rejestrów RG a układami
mnożącymi MUL. Są to dodatkowe sumatory, które wykorzystują symetrię współczynników filtru.
Układy mnożące MUL i drzewo sumatorów SM posiadają taką samą budowę.
DATA_OUT
DRZEWO SUMATORÓW
DATA_IN
MUL
MUL
MUL
SM
SM
SM
RG
RG
RG
MUL
SM
RG
RG
Rys.12. Struktura filtru SPDA (symetrycznego).
Filtry SPDA i NSPDA zbudowane z wykorzystaniem drzewa sumatorów w porównaniu ze strukturą
S2 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.
Struktury
S2
S4
S5
S6
NSSDA
SSDA
NSPDA
SPDA
CLB
513
130
1687
44
70
62
530
334
MHz
68,76
38,6
111,9
72,8
69,35
71,44
86,81
82,1
5. Podsumowanie.
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.

Podobne dokumenty