WYTYCZNE I ZALECENIA DO PRZYGOTOWANIA PRAC DYPLOMOWYCH INSTYTUTU INFORMATYKI I AUTOMATYKI KIERUNKU INFORMATYKA Opracowanie: Beata Rubin Grzegorz Rubin
Państwowa Wyższa Szkoła Informatyki i Przedsiębiorczości w Łomży Instytut Informatyki i Automatyki Kierunek studiów: Informatyka Specjalność: Systemy oprogramowania/grafika komputerowa i techniki multimedialne Imię i nazwisko studenta Numer albumu TYTUŁ PRACY Praca inżynierska/magisterska napisana pod kierunkiem... Podpis promotora Łomża.
SPIS TREŚCI 1. Wstęp... 5 2. Arytmetyka rozproszona... 6 2.1. Symulacja układu programowalnego... 7 3. Realizacja algorytmu cyfrowego filtrowania... 9 4....... 10 5....... 12 6. Podsumowanie... 13 Literatura... 14 Spis rysunków... 15 Spis tabel... 15 Spis załączników... 15 4
1. Wstęp Tytuł rozdziału głównego czcionka: Times New Roman, 16 pkt, Bold; wyrównanie: obustronne; wcięcie specjalne: 0,76 cm; akapit odstępy: przed i po: 24 pt; interlinia: 1,5 wiersza. W ostatnich latach można zaobserwować gwałtowny wzrost zastosowań algorytmów cyfrowego przetwarzania sygnałów. Spowodowane jest to zwiększeniem wydajności procesorów DSP (ang. Digital Signal Processing). Fakt ten pozwala na implementację coraz to bardziej skomplikowanych algorytmów. Szczególną Określenie rolę w odgrywają obcym tu języku układy skrót używanego języka obcego; czcionka: programowalne typu FPGA i CPLD. Układy programowalne Times New pozwalają Roman, na 12 wielokrotne pkt; kursywa. programowanie i testowanie zanim ostateczna wersja zostanie wdrożona do produkcji. Celem pracy jest implementacja algorytmów cyfrowego przetwarzania sygnałów w strukturach programowalnych z wykorzystaniem arytmetyki rozproszonej. Praca podzielona jest na cztery rozdziały zasadnicze. W rozdziale drugim przedstawiono arytmetykę rozproszoną w strukturach FPGA i CPLD. Rozdział trzeci został w całości poświęcony Akapit - czcionka: Times New Roman, 12 pkt; wyrównanie: obustronne; wcięcie specjalne: pierwszy wiersz 1 cm (stałe w całej pracy); akapity nie dłuższe niż pół strony; interlinia: 1,5 wiersza (stałe w całej pracy). 5
2. Arytmetyka rozproszona Arytmetyka rozproszona [2, 3] jest znana od ponad dwóch dekad i była intensywnie używana do konstruowania urządzeń liczących, w czasach gdy nie było mikroprocesorów, a jedynie układy logiczne średniej skali integracji. Arytmetyka rozproszona to sprzętowa realizacja algorytmu obliczeniowego wykonującego mnożenie za pomocą wstępnie obliczonej tablicy i sumowanie wyników kolejnych mnożeń. Taki typ obliczeń jest podstawowym dla wielu funkcji z zakresu Cyfrowego Przetwarzania Sygnałów (CPS). Sama idea algorytmu jest bardzo prosta lecz Odwołania jej realizacja do wymaga literatury sporego - nakładu w nawiasach kwadratowych układów logicznych [6]. numery pozycji z bibliografii. Obliczenia realizowane za pomocą AR możemy zapisać w postaci równania: y = k K = 1 A k X k (1) gdzie: y wynik, X k k-ta zmienna, A k stały współczynnik dla k-tej zmiennej, K ilość zmiennych. Wzory matematyczne 1 linia odstępu przed i po wzorze, wzór wyśrodkowany, Równanie tego typu, w technice CPS opisuje np., filtr cyfrowy gdy A k to symbole we wzorze Italic. współczynniki filtru, dyskretna lub szybka transformata Numeracja Fouriera wzorów gdy A k to w wartości nawiasie Oznaczenia do wzorów wyrównanie: okrągłym kolejno zgodnie obustronne; bazowych wcięcia: z funkcji lewej sinus/cosinus. -1 cm, Wygodną i często stosowaną formą reprezentacji z umieszczaniem w pracy, wyrównanie: specjalne: wysunięcie zmiennej X k 1cm; jest postać interlinia: znormalizowana tak aby X do k prawej. < 1 w zapisie uzupełnień do 2-ch ( 1,5 wiersza; standardowa czcionka akapitu (Times standard New dla Roman, stałoprzecinkowych 12 pkt), procesorów ). symbole w oznaczeniach wzorów Italic. X k można przedstawić w postaci równania: X k B 1 k 0 + x kb b (2) b = 1 = x 2 gdzie: x k0, x kb zmienne binarne mogące przyjąć tylko jedną z wartości 0 lub 1, B ilość bitów w słowie. 6
. Podstawiając równanie (2) do równania (1) otrzymamy: K B 1 b y = A k x k 0 + x kb 2 (3) k = 1 b = 1 Tak zapisane równanie pozwala na określenie prostego algorytmu jego wyliczenia. Należy zauważyć, że każde wyrażenie w kwadratowym nawiasie ma taki sam skończony zestaw wartości, gdyż zmienne binarne x kb mimo, że należą do różnych słów przyjmują wartość 0 lub 1. Zestaw możliwych wartości to: 0 - gdy wszystkie x kb są zerami (wartość S 0 =00..00 słowa o długości równej ilości zmiennych w równaniu), A 1 - gdy x 1b =1 pozostałe są zerami (kolejna wartość S 1 =00..01 słowa), A 2 - gdy x 2b =1 pozostałe są zerami (kolejna Wyliczenia, wartość S 2 =00..10 wypunktowanie słowa ), A 1 +A 2 - gdy x 1b i x 2b =1 pozostałe są zerami zastosowane ( wartość S 3 =00..11 znaki, słowa ustawienie ), w stosunku do lewej krawędzi, itd., aż do A 1 +A 2...+ A K - gdy wszystkie x kb odstępy =1. muszą być identyczne w całej pracy. Wystarczy wyliczyć wszystkie sumy współczynników (będzie ich 2 B ), wpisać je do pamięci ROM pod adresami takimi jak odpowiadająca danej sumie kombinacja 2.1. Symulacja układu programowalnego Odwołanie do wzoru numer wzoru ujęty w nawiasie okrągłym. Przetestowanie powstałej struktury możliwe jest Tytuł przy podrozdziału użyciu przebiegów czcionka: czasowych. Times New Do tego możemy wykorzystać wbudowane narzędzie Roman, symulacji 14 programu pkt, MAX+PLUSII. Bold; wyrównanie: obustronne; wcięcie specjalne: 1,02 cm; akapit odstępy: przed i po: 12 pt; interlinia: Zawartość pamięci układu pojedynczej kaskady, 1,5 wiersza. które należy wyliczyć przed kompilacją układu przedstawiono w Tabeli 2.1. Odwołanie do tabeli słowo tabela pisane wielką literą. 7
Tabela 2.1. Zawartość pamięci układu pojedynczej kaskady Kod wejściowy Zawartość pamięci Wyliczone wartości Input11 a0 a1 a2 a3 0 0 0 0 0 0 0 0 0 0 0 1 A 4 40h 0 0 0 1 0 A 3 40h 0 0 0 1 1 A 3 + A 4 80h 0 0 1 0 0 A 2 40h 0 0 1 0 1 A 2 + A 4 Zasady numeracji 80h tabel kolejno zgodnie 0 0 1 1 0 A 2 + A 3 z umieszczaniem w 80h rozdziale. 0 0 1 1 1 A 2 + A 3 + A 4 120h 0 1 0 0 0 A 1 Tytuł tabeli nad 40h tabelą, wyśrodkowany, 0 1 0 0 1 A 1 + A 4 standardowa czcionka 80h akapitu (Times New 0 1 0 1 0 A 1 + A 3 Roman, 12 pkt). 80h 0 1 0 1 1 A 1 + A 3 + A 4 120h 0 1 1 0 0 A 1 + A 2 80h 0 1 1 0 1 A 1 + A 2 + A 4 120h 0 1 1 1 0 A 1 + A 2 + A 3 120h 0 1 1 1 1 A 1 + A 2 + A 3 + A 4 160h 1 0 0 0 0 0 0 1 0 0 0 1 - A 4-40h 1 0 0 1 0 - A 3-40h 1 0 0 1 1 - ( A 3 + A 4 ) -80h 1 0 1 0 0 - A 2-40h 1 0 1 0 1 - ( A 2 + A 4 ) -80h 1 0 1 1 0 - ( A 2 + A 3 ) -80h 1 0 1 1 1 - ( A 2 + A 3 + A 4 ) -120h 1 1 0 0 0 - A 1-40h 1 1 0 0 1 - ( A 1 + A 4 ) -80h 1 1 0 1 0 - ( A 1 + A 3 ) -80h 1 1 0 1 1 - ( A 1 + A 3 + A 4 ) -120h 1 1 1 0 0 - ( A 1 + A 2 ) -80h 1 1 1 0 1 - ( A 1 + A 2 + A 4 ) -120h 1 1 1 1 0 - ( A 1 + A 2 + A 3 ) -120h 1 1 1 1 1 - (A 1 + A 2 + A 3 + A 4 ) -160h Źródło: Opracowanie własne na podstawie: Xilinx "The Role of Distributed Arithmetic in FPGA-based Signal Processing", application note 1996. Źródło czcionka: Times New Roman, 12 pkt; kursywa; wyrównanie: obustronne. 8
3. Realizacja algorytmu cyfrowego filtrowania Do realizacji przykładu posłużymy się filtrem 2 rzędu postaci: Odwołanie do rysunku skrót y n) = a x( n) + a x( n 2) b y( n 1) rys. b pisany y( n wielką 2) literą. ( 0 0 1 2 Schemat blokowy filtru IIR działającego z wykorzystaniem arytmetyki rozproszonej ilustruje Rys. 3.1. in[11..0] 12 clk1 w SR clk2 ROM 12x4 clk1 clk1 clk SR control unit SR clk1 clk2 clk3 w 12 2 w clk3-1 add_sub latch ALU 12 12 out[11..0] 12 clk1 w clk1 SR SR Rys. 3.1. Schemat blokowy filtru Źródło: Opracowanie własne. Zasady numeracji rysunków kolejno zgodnie z umieszczaniem w rozdziale. Tytuł rysunku skrót rys., pod rysunkiem, wyrównanie: wyśrodkowanie, standardowa czcionka akapitu (Times New Roman, 12 pkt). Rysunek wyrównanie: wyśrodkowanie, należy zwracać uwagę na odpowiednie zakotwiczenie rysunku. Źródło czcionka: Times New Roman, 12 pkt; kursywa; wyrównanie: wyśrodkowanie. 9
4.... Listing 4.1. Kod programu sortującego całą tablicę po wierszach i kolumnach przedstawia void sortuj2 (Tablica2 t) { int tym[m*n],i,j,k; for (i=0;i<m*n;) { for(j=0;j<n;j++) for(k=0;k<m;k++) tym[i++]=t[j][k]; } for (j=0;j<m*n;j++) for (k=0;k<m*n;k++) if (tym[j]<tym[k]) zamiana(&tym[j],&tym[k]); for (i=0;i<m*n;) { for(j=0;j<n;j++) for(k=0;k<m;k++) } } Przykład kodu źródłowego wyrównanie: obustronne; wcięcia: z lewej -1,75 cm; interlinia: 1 wiersz; standardowa czcionka akapitu (Courier New, 12 pkt). t[j][k]=tym[i++]; Listing 4.1. Sortowanie całej tablicy po wierszach i kolumnach library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity addacc is Port ( wej: in std_logic_vector(7 downto 0); clk: in std_logic; res: in std_logic; wyj: inout std_logic_vector(7 downto 0); przen: out std_logic ); end addacc; architecture akumulator of addacc is begin process (clk,res) begin if res = '1' then 10
wyj <= "00000000"; przen <= '0'; elsif (clk = '1' and clk'event) then wyj <= wyj+wej; if (wyj+wej) > "11111111"then przen <= '1'; else przen <= '0'; end if; end if; end process; end akumulator; Listing 4.2. Moduł 8-bitowego sumatora 11
5.... 12
6. Podsumowanie Celem pracy było... Przeprowadzona w pracy analiza, będąca próbą empirycznej weryfikacji zastosowania arytmetyki rozproszonej do realizacji W badaniach zastosowano nowe podejście do Znaczący wpływ na szybkość pracy wykorzystanych układów programowalnych uzyskano za pomocą.... 13
Literatura Pozycje w literaturze wyrównanie: obustronne; wcięcia: z lewej -0,5cm, specjalne: wysunięcie 0,63 cm; interlinia: 1,5 wiersza; standardowa czcionka akapitu (Times New Roman, 12 pkt). 1. T. Łuba, K. Jasiński, B. Zbierzchowski, Specjalizowane układy cyfrowe w strukturach PLD i FPG, Wydawnictwo WKŁ, Warszawa 1997. 2. S. A. White, Applications of Distributed Arithmetic to Digital Signal Procesing: A Tutorial Review, IEEE ASSP Magazine, July 1989, pp. 4-19. 3. Xilinx, The Role of Distributed Arithmetic in FPGA-based Signal Processing, application note 1996. 4. M. Omieljanowicz, A. A. Piotrowski, Procesor potokowy banku cyfrowych filtrów na bazie arytmetyki rozproszonej, IV Krajowa Konferencja KOWBAN '97, 16-18 październik 1997,Wrocław WNT '97, s. 341-346. 5. L. Mintzer, Large FFT s in Single FPGA, proceedings ICSPAT 98. 6. Altera Corporation. http://www.altera.com, stan z dnia 12.02.2011. 7. Wzory odwołań do literatury - - książki: I. Nazwisko, Tytuł, Wydawca, Miejsce i rok wydania. - opracowania w publikacjach zwartych: I. Nazwisko, Tytuł opracowania, [w:] Tytuł książki, I. Nazwisko (red.), Wydawca, Miejsce i rok wydania. - artykuły w czasopismach: I. Nazwisko, Tytuł, Tytuł Czasopisma, rok, numer. - strony internetowe: I. Nazwisko (jeśli autor nie jest znany podajemy nazwę organizacji prowadzącej serwis). Witryna internetowa. http://..., stan z dnia (data odczytu). 14
Spis rysunków Rys. 3.1. Schemat blokowy filtru...9 Spis tabel Tabela 2.1. Zawartość pamięci układu pojedynczej kaskady... 8 Spis załączników Załącznik 1. Wykaz dostępnych układów programowalnych firmy XILINX (stan na 1 lutego 2011 roku) Załącznik 2. Kody źródłowe funkcji implementowanych w struktury programowalne 15
Oświadczenie kierującego pracą Oświadczam, że niniejsza praca została przygotowana pod moim kierunkiem i stwierdzam, że spełnia ona warunki do przedstawienia jej w postępowaniu o nadanie tytułu zawodowego. Data.. Podpis kierującego pracą 1. Ja, niżej podpisany/a O Ś W I A D C Z E N I E S T U D E N T A / K I Imię (imiona) i nazwisko autora/ki pracy dyplomowej...... 2. Numer albumu:... 3. Student/ka Instytutu/Wydziału... 4. Kierunku/makrokierunku studiów... Oświadczam, że znam Procedurę Antyplagiatową obowiązującą w PWSiIP oraz udzielam nieodpłatnie Państwowej Wyższej Szkole Informatyki i Przedsiębiorczości w Łomży prawa do wprowadzania i przetwarzania w systemie antyplagiatowym pracy dyplomowej mojego autorstwa pt.:...... Praca dyplomowa pisana pod kierunkiem promotora. Jednocześnie świadomy/a odpowiedzialności prawnej oświadczam, że ww. praca dyplomowa: 1. nie narusza praw autorskich w rozumieniu ustawy z dnia 4 lutego 1994 roku o prawie autorskim i prawach pokrewnych (Dz. U. Nr 24, poz. 83 z późn. zm.) oraz dóbr osobistych chronionych prawem cywilnym, 2. nie zawiera danych i informacji, które uzyskałem w sposób niedozwolony, 3. nie była podstawą nadania tytułu zawodowego ani mojej, ani innej osobie. Świadomy/a odpowiedzialności prawnej oświadczam także, że: 1. treść pracy dyplomowej, zapisanej na przekazanym przeze mnie jednocześnie nośniku elektronicznym, jest zgodna z treścią zawartą w wydrukowanej wersji pracy, przedstawionej w procedurze dyplomowania, 2. zezwalam na nieodpłatne i bezterminowe korzystanie z przedmiotowej pracy dyplomowej w zakresie udostępniania do przeglądów, wystaw i katalogów. Łomża, dn... 20.. r. (miesiąc słownie) (czytelny podpis studenta/ki)