Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR - realizacje

Wielkość: px
Rozpocząć pokaz od strony:

Download "Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR - realizacje"

Transkrypt

1 Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR - realizacje wersja:

2 FPGA zalety i wady Ogromny wzrost wydajności niektórych algorytmów Elastyczność architektury Możliwości znacznego zrównoleglenia algorytmów ostosowanie rozmiaru danych Ponowne wykorzystanie zasobów dla wielu zadań Rekonfigurowalność Proces projektowy nieznany wielu projektantom Niedoskonałość narzędzi projektowych 2

3 Ograniczenia wydajności tradycyjnych układów SP Tradycyjne Układy SP 256 razy Stała nieelastyczna architektura Typowo 1-4 jednostki MAC Stała szerokość danych Przetwarzanie szeregowe ogranicza przepustowość Współdzielone w czasie jednostki MAC uże częstotliwości taktowania stawiają duże wyzwania projektantom systemów Przykład: Filtr FIR 256 rzędu = 256 operacji mnóż i przechowaj (MAC: Multiply- ACcumulate) na pojedynczą próbkę danych Źródło: Xilinx, Voice over IP, Emerging Standards & Protocols 3

4 Zalety układów FPGA Wszystkie 256 operacje MAC w jednym cyklu zegara FPGA Elastyczna architektura Rozproszone zasoby (komórki UT, rejestry, układy mnożące, bloki pamięci) Przetwarzanie równoległe maksymalizuje przepustowość Możliwość zrównoleglenia o dowolnym stopniu Optymalny balans między wydajnością i kosztami Układy FPGA pozwalają także na przetwarzanie szeregowe Przykład : Filtr FIR 256 rzędu = 256 operacji mnóż i przechowaj (MAC: Multiply- ACcumulate) na pojedynczą próbkę danych Źródło: Xilinx, Voice over IP, Emerging Standards & Protocols 4

5 Architektura FPGA a SP Wydajność kosztem powierzchni Żródło: WP116, Xilinx Spartan-II FIR Filter Solution,

6 Realizacja filtrów w FPGA i SP MSPS=Million Samples Per Second Źródło: WP116, Xilinx Spartan-II FIR Filter Solution,

7 Realizacja filtrów w FPGA i SP vs MCU Źródło: 7

8 Filtr cyfrowy FIR Filtr cyfrowy FIR każda próbka odpowiedzi nie zależy od odpowiedzi poprzednich próbek, a jedynie od próbek wymuszenia brak pętli sprzężeń zwrotnych odpowiedź impulsowa ma zawsze skończoną liczbę próbek zazwyczaj odpowiedź jest liniowa w fazie 8

9 Filtr o skończonej odpowiedzi impulsowej FIR -1 y[n] = x[n] * h[n] = Σ x[k]h[n-k] k=0 rząd filtru, h[n] współczynnik, z -1 element opóźniający FIR Finite Impulse Response Realizacja: równoległa Koszt: -1 sumowań, mnożeń 9

10 Filtr FIR o programowalnych współczynnikach Przykład filtru o programowalnych współczynnikach: filtr 4-rzędu, wejście 9-bitowe ze znakiem, wyjście 11-bitowe ze znakiem (podzielone przez 256), współczynniki 9-bitowe ze znakiem (ułamek*256), mnożenie stałopozycyjne ze znakiem Wynik jest podzielony przez 256, ponieważ współczynniki były wymnożone przez 256 (zakładamy że współczynniki są ułamkami) Sumator musi mieć długość 2*X + log2() 1 = 2*9 + log2(4) 1 = 19, gdzie: 2*X wynik mnożenia dwóch słów 9-bitowych log2() bity zabezpieczające przed przepełnieniem 1 dla liczb ze znakiem 10

11 Filtr FIR programowalny realizacja V [ ] BEGIN oad: PROCESS BEGIN WAIT UNTI clk = '1'; IF (oad_x = '0') TEN c(-1) <= x_in; -- oad data or coefficient -- Store coefficient in register FOR I IN -2 OWNTO 0 OOP -- Coefficients shift one c(i) <= c(i+1); EN OOP; ESE x <= x_in; -- Get one data sample at a time EN IF; EN PROCESS oad; moduł mnożenia potok 3 stopnie potok 1 stopień SOP: PROCESS (clk, load_x, a) -- Compute sum-of-products BEGIN IF clk'event AN (clk = '1') TEN FOR I IN 0 TO -2 OOP -- Compute the transposed a(i) <= (p(i)(w2-1) & p(i)) + a(i+1); -- filter adds EN OOP; a(-1) <= p(-1)(w2-1) & p(-1); EN IF; y <= a(0); EN PROCESS SOP; -- Instantiate pipelined multiplier -- only a register MulGen: FOR I IN 0 TO -1 GENERATE -- First TAP has Muls: lpm_mult -- Multiply p(i) = c(i) * x; C FF f [Mz] t_clk [ns] GENERIC MAP ( PM_WITA => W1, PM_WITB => W1, PM_PIPEINE => Mpipe, ,82 24, ,35 31,9 PM_REPRESENTATION => "SIGNE", PM_WITP => W2, PM_WITS => W2) PORT MAP ( clock => clk, dataa => x, datab => c(i), result => p(i)); EN GENERATE; y_out <= y(w3-1 OWNTO W3-W4); EN arch_fir; 11

12 Filtr FIR programowalny realizacja Verilog module fir_prog(clk, load_x, x_in, y_out); parameter w1=9; //Input bit width parameter w2=18; //Multiplier bit width 2*W1 parameter w3=19; //Adder width = W2+log2()-1 parameter w4=11; //Output bit width parameter l=4; //Filter length parameter mpipe=3; //Pipeline steps of multiplier input clk, load_x; input [w1-1:0] x_in; output [w4-1:0] y_out; reg [w1-1:0] x; wire [w3-1:0] y; reg [w1-1:0] c [l-1:0]; //array reg [w2-1:0] p [l-1:0]; //array reg [w3-1:0] a [l-1:0]; //array integer i; always@(posedge clk) //oad data or coefficient begin if(!load_x) begin end end else c[l-1] <= x_in; // Store coefficient in register for (i = 0; i <= l-2 ; i=i+1) begin c[i] <= c[i+1];// Coefficients shift one end x <= x_in; always@(posedge clk) //Compute sum-of-products begin a[l-1] <= {p[l-1][w2-1],p[l-1]}; //First TAP has only a register for (i = 0; i <= l-2 ; i=i+1) begin a[i] <= {p[i][w2-1],p[i]} + a[i+1]; // filter adds end end assign y = a[0]; 12

13 Filtr FIR programowalny realizacja Verilog genvar j; // Instantiate pipelined multiplier generate for (j = 0; j <= l-1; j=j+1)//multiply p(i) = c(i) * x begin : mults lpm_mult mult_j(.clock(clk),.dataa(x),.datab(c[j]),.result(p[j])); // defparam mult_j.lpm_widtha=w1; defparam mult_j.lpm_widthb=w1; defparam mult_j.lpm_pipeline=mpipe; defparam mult_j.lpm_representation="signe"; defparam mult_j.lpm_widthp=w2; defparam mult_j.lpm_widths=w2; end endgenerate endmodule; assign y_out = y[w3-1:w3-w4]; 13

14 Filtr FIR programowalny symulacja Współczynniki: G( z) 0, ,8365z 1 0,2241z 2 0,1294z 3 ( z 1 57z 2 33z 3 ) / z z z 3 14

15 Filtr FIR programowalny symulacja Matlab Plik fir_1.m: [B] = [ ] B in = [zeros(1,2),100*ones(1,5), zeros(1,4)]; out=filter(b,1,in); in out Okno Command: >> run fir_1 B = in = out = Columns 1 through Columns 10 through >> 15

16 Filtr FIR programowalny symulacja Scilab 16

17 Przykład filtru FIR 4-rzędu o stałych współczynnikach Zadanie: Zrealizować filtr 4-rzędu o współczynnikach: h[k] = {-1,0 3,75 3,75 1,0} Współczynniki można zakodować jako 4-bitowe ułamki, np. 3,75 = ½ + ¼ = 11,11 2 ługość akumulatora wyznaczona jest sumą długości próbek wejściowych oraz bitów protekcji G 1 log G h[ k] 2 k0 log (9,5) 3, Założenie: projektowany system ma zaimplementowaną 8-bitową architekturę (ścieżka danych), dlatego próbki wejściowe powinny być ograniczone do wartości -128/9,5 +127/9,5 co daje (dla 4-bitów danych: -8 +7) 17

18 Przykład filtru FIR 4-rzędu realizacja V BEGIN p1: PROCESS BEGIN -- The coefficients are [ ]. WAIT UNTI clk = '1'; y <= 2 * tap(1) + tap(1) + tap(1) / 2 + tap(1) / * tap(2) + tap(2) + tap(2) / 2 + tap(2) / 4 - tap(3) - tap(0); FOR I IN 3 OWNTO 1 OOP tap(i) <= tap(i-1); -- Tapped delay line: shift one EN OOP; tap(0) <= x; EN PROCESS; EN fir; -- Registered input Realizacja: równoległa 18

19 Przykład filtru FIR 4-rzędu realizacja Verilog clk) begin //The coefficients are [ ]. /* y_out <= 2 * tap[1] + tap[1] + tap[1] / 2 + tap[1] / * tap[2] + tap[2] + tap[2] / 2 + tap[2] / 4 - tap[3] - tap[0]; */ /* y_out <= {tap[1][n-2:0],1'b0} + tap[1] + {tap[1][n-1],tap[1][n-1:1]} + {tap[1][n- 1],tap[1][n-1],tap[1][n-1:2]} + {tap[2][n-2:0],1'b0} + tap[2] + {tap[2][n-1],tap[2][n-1:1]} + {tap[2][n-1],tap[2][n-1],tap[2][n-1:2]} - tap[3] - tap[0]; */ y_out <= (tap[1]<<1) + tap[1] + (tap[1]>>>1) + (tap[1]>>>2) + (tap[2]<<1) + tap[2] + (tap[2]>>>1) + (tap[2]>>>2) - tap[3] - tap[0]; for(i=1; i<=3; i=i+1) begin end tap[i] <= tap[i-1]; tap[0] <= x_in; end endmodule Operatory * i / dają gorszą realizację Realizacja: równoległa 19

20 Przykład filtru FIR 4-rzędu symulacja C FF f [Mz] t_clk [ns] ,48 54,1 20

21 Filtr FIR symetryczny Realizacja: równoległa Koszt: -1 sumowań, /2 mnożeń 21

22 Przykład filtru symetrycznego FIR 4- rzędu realizacja V BEGIN t0 <= tap(0) + tap(3); t1 <= tap(1) + tap(2); p1: PROCESS BEGIN WAIT UNTI clk = '1'; y <= 2 * t1 + t1 + t1 / 2 + t1 / 4 - t0; FOR I IN 3 OWNTO 1 OOP tap(i) <= tap(i-1); EN OOP; tap(0) <= x; EN PROCESS; EN fir; Realizacja: równoległa 22

23 Przykład filtru symetrycznego FIR 4- rzędu realizacja Verilog assign t0 = tap[0] + tap[3]; assign t1 = tap[1] + tap[2]; always@(posedge clk) begin //The coefficients are [ ]. y_out <= (t1<<1) + t1 + (t1>>>1) + (t1>>>2) - t0; for(i=1; i<=3; i=i+1) begin tap[i] <= tap[i-1]; end tap[0] <= x_in; // Input in register 0 end endmodule Realizacja: równoległa 23

24 Przykład filtru symetrycznego FIR 4- rzędu o stałych współczynnikach C FF f [Mz] t_clk [ns] ,51 39,2 24

25 Kodowanie CS CS - Canonic Signed igit Algorytm optymalny tworzenia liczby CS złożonej z minimalnej liczby sum i odejmowań: 1) Zaczynając od najmłodszego bitu zamień sekwencję jedynek dłuższą niż dwie na sekwencję Zamień również sekwencję 1011 na ) Zaczynając od najstarszego bitu zamień sekwencję 101 na 011. ziałanie to zamienia odejmowanie na dodawanie, które ma mniejszy koszt. 1 Symbol oznacza odejmowanie. Przykład: = = (2+1).( ) = = (4-0.25) 1 25

26 Przykład filtru symetrycznego FIR 4- rzędu o stałych współczynnikach CS BEGIN t0 <= tap(0) + tap(3); t1 <= tap(1) + tap(2); p1: PROCESS BEGIN WAIT UNTI clk = '1'; y <= 4 * t1 - t1 / 4 - t0; FOR I IN 3 OWNTO 1 OOP tap(i) <= tap(i-1); EN OOP; tap(0) <= x; EN PROCESS; EN fir; always@(posedge clk) begin //The coefficients are [ ]. y_out <= (t1<<2) - (t1>>>2) - t0; for(i=1; i<=3; i=i+1) begin tap[i] <= tap[i-1]; end tap[0] <= x_in; end endmodule Realizacja: równoległa 26

27 Przykład filtru FIR 4-rzędu symulacja C FF f [Mz] t_clk [ns] ,76 33,6 27

28 Przykład filtru FIR 4-rzędu z potokiem V BEGIN p1: PROCESS BEGIN WAIT UNTI clk = '1'; t0 <= tap(0) + tap(3); t1 <= tap(1) + tap(2); t2 <= 4 * t1 - t1 / 4; t3 <= - t0; y <= t2 + t3; FOR I IN 3 OWNTO 1 OOP tap(i) <= tap(i-1); EN OOP; tap(0) <= x; EN PROCESS; EN fir; always@(posedge clk) begin //The coefficients are [ ]. t0 <= tap[0] + tap[3]; t1 <= tap[1] + tap[2]; t2 <= (t1<<2) - (t1>>>2); t3 <= -t0; y_out <= t2 + t3; for(i=1; i<=3; i=i+1) begin tap[i] <= tap[i-1]; end tap[0] <= x_in; end Realizacja: równoległa endmodule; 28

29 Symetryczny filtr FIR symulacja C FF f [Mz] t_clk [ns] ,32 24,2 29

30 Symetryczny filtr FIR porównanie realizacji realizacja FIR komórek przerzutników f [Mz] t_clk [ns] programowalny z potokiem o stałych współczynnikach ,82 24, ,48 54,1 ww. i symetria ,51 39,2 ww. i CS ,76 33,6 ww. i potok ,32 24,2 30

31 Filtr FIR transponowany Aby uzyskać filtr transponowany należy: a) zamienić wejścia i wyjścia b) odwrócić kierunek sygnałów c) zastąpić sumator przez rozgałęzienie, i na odwrót Realizacja: równoległa 31

32 Filtr FIR o stałych współczynnikach i strukturze transponowanej Układy mnożące realizujące wspólne czynniki można zrealizować wykorzystując algorytm zredukowanego grafu sumatorów RAG (Reduced Adder Graph). Przykład realizacji iloczynu 93 w kodzie CS (koszt 3 sumatory) i przez faktoryzację (koszt 2 sumatory). 32

33 Filtr FIR o stałych współczynnikach i strukturze transponowanej W realizacjach filtrów w postaci transponowanej zdarza się, że współczynniki filtru mają wspólne czynniki. Przykład realizacji współczynników 9 i 11 koszt tylko dwa sumatory 33

34 Algorytm RAG Algorytm RAG jest problemem NP-zupełnym. Wykorzystując reguły heurystyczne można algorytm zapisać następująco: 1) Usunąć znak odejmowania odejmowanie jest realizowane na samym końcu w linii bloków opóźniających z -1 2) Usunąć współczynniki i czynniki przy potędze 2 realizacja działania przez przesunięcie bitowe 3) Zrealizować współczynniki o koszcie równym jeden sumator 4) Zrealizować pozostałe współczynniki używając do tego celu współczynników o koszcie jeden Ponieważ złożoność obliczeniowa punktu 4) rośnie wykładniczo, można posłużyć się regułą heurystyczną, czyli zaczynać od czynników o najmniejszym koszcie i najmniejszej wartości 34

35 Algorytm RAG Algorytm RAG jest problemem NP-zupełnym. Wykorzystując reguły heurystyczne można algorytm zapisać następująco: 1) Usunąć znak odejmowania odejmowanie jest realizowane na samym końcu w linii bloków opóźniających z -1 2) Usunąć współczynniki i czynniki przy potędze 2 realizacja działania przez przesunięcie bitowe 3) Zrealizować współczynniki o koszcie równym jeden sumator 4) Zrealizować pozostałe współczynniki używając do tego celu współczynników o koszcie jeden Ponieważ złożoność obliczeniowa punktu 4) rośnie wykładniczo, można posłużyć się regułą heurystyczną, czyli zaczynać od czynników o najmniejszym koszcie i najmniejszej wartości 35

36 Przykład filtru FIR transponowanego z wykorzystaniem RAG Filtr 11-rzędu o współczynnikach h[k]={ } Koszt realizacji filtru z użyciem współczynników w postaci kanonicznej wynosi = 6 (odpowiednio dla współczynników 3 = 11 2, 25 = , 150 = i 256 = ) 36

37 Koszt sumatorów w MAG U.Meyer-Baese: SP with FPGAs 37

38 Realizacja filtru FIR z wykorzystaniem RAG 38

39 Realizacja filtru FIR z wykorzystaniem RAG V ENTITY fir_rag IS PORT (clk : IN ST_OGIC; x : IN ST_OGIC_VECTOR(7 OWNTO 0); y : OUT ST_OGIC_VECTOR(17 OWNTO 0)); EN fir_rag; ARCITECTURE fir OF fir_rag IS SUBTYPE N17BIT IS ST_OGIC_VECTOR(17 OWNTO 0); TYPE ARRAY_N17BIT IS ARRAY (0 TO 10) OF N17BIT; SIGNA tap : ARRAY_N17BIT; SIGNA ta, tb, tc, td : ST_OGIC_VECTOR(17 OWNTO 0); SIGNA x_r : ST_OGIC_VECTOR(7 OWNTO 0); BEGIN -- 3 = ta <= (" " & x_r & '0') + (" " & x_r); -- 5 = tb <= (" " & x_r & "00") + (" " & x_r); tc <= tb + (tb(15 OWNTO 0) & "00"); = 5 + 4*5 td <= (tb(13 OWNTO 0) & "0000") - tb; = 16*5-5 p1: PROCESS BEGIN WAIT UNTI clk = '1'; EN PROCESS; EN fir; x_r <= x; -- registered input tap(0) <= tap(1) + ta; -- 3 tap(1) <= tap(2); tap(2) <= tap(3) - tc; tap(3) <= tap(4); tap(4) <= tap(5) + (td (16 OWNTO 0) & '0'); tap(5) <= tap(6) + (" 00 " & x_r & " "); tap(6) <= tap(7) + (td(16 OWNTO 0) & '0'); tap(7) <= tap(8); tap(8) <= tap(9) - tc; tap(9) <= tap(10); tap(10) <= ta; -- 3 y <= tap(0); Tylko dla liczb dodatnich Realizacja: równoległa 39

40 Program RAG Na stronie: Materiały > Programy > Program i opis programu Wynik dla h[k]={ } 40

41 Realizacja filtru FIR z wykorzystaniem RAG Verilog // RAG algorithm module fir_rag(clk, x_in, y_out); parameter n=11; // filter lenght input clk; input [7:0] x_in; output [17:0] y_out; reg [17:0] x_r; reg [17:0] y_out; reg [17:0] tap [n-1:0]; //tap array wire [17:0] ta, tb, tc, td; assign ta = (x_r<<1) + x_r; // 3 = assign tb = (x_r<<2) + x_r; // 5 = assign tc = tb + (tb<<2); // 25 = 5 + 4*5 assign td = (tb<<4) - tb; // 75 = 16*5-5 always@(posedge clk) begin x_r[7:0] <= x_in; x_r[17:8] <= {10{x_in[7]}}; tap[0] <= tap[1] + ta; // 3 tap[1] <= tap[2]; tap[2] <= tap[3] - tc; // -25 tap[3] <= tap[4]; tap[4] <= tap[5] + (td<<1); // 150 tap[5] <= tap[6] + (x_r<<8); // 256 tap[6] <= tap[7] + (td<<1); // 150 tap[7] <= tap[8]; tap[8] <= tap[9] - tc; // -25 tap[9] <= tap[10]; tap[10] <= ta; // 3 y_out <= tap[0]; end endmodule Realizacja: równoległa 41

42 Realizacja filtru FIR z wykorzystaniem RAG C FF f [Mz] t_clk [ns] ,25 70,2 42

43 Algorytm cub Na stronie: Parallel multiple constant multiplication (MCM) - Multiplier Block Generator Inne on-line generatory 43

44 Algorytm cub min. sumatorów Algorithm: cub Auxiliary distance estimate: CS-Cost(z) epth bound: unlimited Secondary optimization: none, randomize (reload the webpage to see different random graphs) Bitwidth: 8 mantissa + 0 fractional = 8 total Integer constants: /synth/acm1 -expensive -b 8 '3' '-25' '150' '256' - dotcode./dags/dot >&1 >./dags/mcm cat./dags/dot /dot.sh./dags/dag /usr/bin/convert -resize 539x539./dags/dag large.png./dags/dag png // Cost: 3 adds/subtracts 5 shifts 1 negations // epth: 3 44

45 Algorytm cub min. poziomów Algorithm: cub Auxiliary distance estimate: CS-Cost(z) epth bound: 0 Secondary optimization: none, randomize (reload the webpage to see different random graphs) Bitwidth: 8 mantissa + 0 fractional = 8 total Integer constants: /synth/acm1 -maxdepth 0 -expensive -aux -b 8 '3' '-25' '150' '256' -dotcode./dags/dot >&1 >./dags/mcm Solution infeasible with MAX_EPT=0. Increasing MAX_EPT=2. cat./dags/dot /dot.sh./dags/dag /usr/bin/convert -resize 411x411./dags/dag large.png./dags/dag png // Cost: 4 adds/subtracts 6 shifts 1 negations // epth: 2 45

46 Operacje mnożenia i dodawania MAC y c, x 1 n0 c[ n] x[ n] Rejestr przesuwny c[0] x[0] c[1] x[1] c[ 1] x[ 1] Układ mnożący Sumator Akumulator X[-1] X[1] X[0] C[-1] C[1] C[0] + R Realizacja: szeregowa 46

47 Arytmetyka rozproszona istributed Arithmetic Arytmetyka rozproszona (istributed Arithmetic A): rozproszenie operacji mnożenia na poszczególne bity skalarów Jednym z częściej spotykanych w przetwarzaniu sygnałów jest realizacja sumy iloczynów. Iloczyn skalarów można znaleźć w procesie filtracji cyfrowej, dlatego przekształcenie to spełnia bardzo ważną rolę w procesie obliczeniowym i ma wpływ na wydajność systemu cyfrowego. Pierwsze wzmianki z roku A można najczęściej znaleźć w realizacji filtrów cyfrowych o stałych współczynnikach, ale także w realizacjach filtrów adaptacyjnych o zmiennych w czasie współczynnikach, transformacji FFT, CT i innych. W operacji A przekształcany jest jeden bit z wszystkich skalarów w jednym kroku. Jeżeli skalar ma długość B, to potrzebnych jest B kroków na otrzymanie wyniku przekształcenia. Przekształcenie to nie zależy od złożoności operacji, na przykład w operacji splotu nie zależy od długości filtru cyfrowego. 47

48 48 Jeżeli założymy, że filtr ma stałe współczynniki c n a x n jest zmienną próbką wejściową bez znaku o długości B: ] [ B b b b n n x x gdzie x b [n][0,1] i oznacza bit b w wektorze x n Podstawiając powyższą sumę do równania y, otrzymamy: ] [ B b b b n n n x c y Przekształcając równanie: ) 2 1] [ 2 1] [ 2 1] [ ( 1] [ ) 2 [1] 2 [1] 2 [1] ( [1] ) 2 [0] 2 [0] 2 [0] ( [0] 1] [ 1] [ [1] [1] [0] [0] x x x c x x x c x x x c x c x c x c y B B B B B B B B B B B B Arytmetyka rozproszona istributed Arithmetic - teoria 1 0 n c n x n y Filtr typu FIR o długości :

49 49 Kontynuując przekształcenie ]) [ 1] [ [1] [1] [0] [0] ( 2 1]) [ 1] [ [1] [1] [0] [0] ( 2 1]) [ 1] [ [1] [1] [0] [0] ( x c x c x c x c x c x c x c x c x c y B B B B B B B B Powyższy wzór można zapisać: Arytmetyka rozproszona Teoria ]) [ ], [ ( 2 ] [ ] [ 2 n b B b b n b B b b n x n c f n x n c y

50 Arytmetyka rozproszona w filtrze cyfrowym y 1 n0 c[ n] x[ n] Rejestr przesuwny Ukł. mnożący Akumulator X[-1] X[1] X[0] C[-1] C[1] C[0] + R Realizacja: szeregowa 50

51 Arytmetyka rozproszona w filtrze cyfrowym y B1 b0 2 b 1 n0 f ( c[ n], x b [ n]) Rejestr przesuwny X B-1 [0] X 1 [0] X 0 [0] ogika A Akumulator X B-1 [1] X 1 [1] X 0 [1] X B-1 [-1] X 1 [-1] X 0 [-1] UT + R shift (b) Realizacja: szeregowa 51

52 Arytmetyka rozproszona Wielkość pamięci UT ogika A UT Pamięć UT: -bitów wejściowych ( rząd filtru), czyli na raz przetwarzamy próbek wejściowych iczba bitów wyjściowych zależy od sumy współczynników c n Wartość próbki y jest wyliczona po B cyklach zegara (B - długość próbki). 52

53 Arytmetyka rozproszona Zawartość pamięci UT ogika A UT Na wejściu pojawią się 3-bitowe próbki: x[0]=7, x[1]=2, x[2]=1, Sprawdzenie: y = c[0]x[0] + c[1]x[1] + c[2]x[2] = = 33. Przykład: Filtr 3-rzędu o 3-bitowych współczynnikach c[0]=4, c[1]=1, c[2]=3. x b [2] x b [1] x b [0] f(c[n], x[n]) = = = = = = = = 8 Pojemność pamięci UT w bitach: 2 3 (max{0,4,1,5,3,7,4,8}) Krok b x b [2] x b [1] x b [0] f[b] 2 b + ACC(t 1) ACC(t)

54 Arytmetyka rozproszona Zastąpienie akumulatora przesuwającego Zamiast przesuwać w akumulatorze kolejne próbki x b o b-bitów (programowalny układ przesuwający barrel shifter), to można każdy bit przesunąć o B-pozycji (pomnożyć przez 2 B-1 ) i zawsze przesuwać akumulator w prawo o jeden bit. W efekcie dużo prostsza realizacja. Realizując filtr z użyciem akumulatora przesuwającego otrzymamy dla poprzedniego przykładu następujące wyliczenia: Krok b x b [2] x b [1] x b [0] f[b] 2 B-1 + ACC(t 1)>>1 ACC(t)

55 55 Arytmetyka rozproszona dla liczb ze znakiem la liczb ze znakiem wektor w kodzie U2: b B b b B B n n x n x x 2 ] [ 2 ] [ Podstawiając do wzoru na sumę iloczynów: ]) [ ], [ ( 2 2 ]) [ ], [ ( n b B b b B B n x n c f n x n c f y

56 Arytmetyka rozproszona dla liczb ze znakiem ogika A UT Na wejściu pojawią się 4-bitowe próbki: x[0]= 5, x[1]=2, x[2]= 1, Sprawdzenie: y = c[0]x[0] + c[1]x[1] + c[2]x[2] = ( 3) ( 5)+1 2 +( 1) ( 1) = 18. Przykład: Filtr 3-rzędu o 3-bitowych współczynnikach c[0]= 3, c[1]=1, c[2]= 1. x b [2] x b [1] x b [0] f(c[n],x[n]) = = = = = = = = 3 Krok b x b [2] x b [1] x b [0] f[b] 2 b + ACC(t 1) ACC(t) f[b] 2 b + ACC(t 1) ( )

57 Arytmetyka rozproszona Zysk w szybkości obliczeń Założenie: koszt użycia układów mnożących ogólnego przeznaczenia oraz pamięci UT jest jednakowy i bloki te wprowadzają takie samo opóźnienie = (UT) = (MUT) Porównanie realizacji wykorzystujących bloki UT i MUT: Obliczenie iloczynu skalarów zajmuje B (UT) cykli dla arytmetyki rozproszonej Obliczenie iloczynu skalarów zajmuje (UT) cykli dla układu z blokami mnożącymi. Jeżeli długość słów wejściowych (próbek) B będzie mniejsza od długości filtru, to uzyskamy znaczne przyspieszenie w obliczeniach wykorzystując arytmetykę rozproszoną. 57

58 Modyfikacje A Pojemność pamięci Jeżeli liczba współczynników jest zbyt duża, aby zrealizować funkcję f w pamięci ROM (liczba współczynników jest liczbą linii adresowych pamięci), to należy podzielić tablicę UT na mniejsze części ze względu na wejścia. Wyniki pojawiające się na wyjściach mniejszych bloków pamięci należy sumować. rzewo sumatorów jest dodatkowym kosztem, który nie wpływa na przepustowość układu, ponieważ można wprowadzić rejestry pomiędzy stopnie drzewa sumatorów tworząc strukturę potokową. Podział pamięci UT wpływa w sposób wykładniczy na wielkość potrzebnej pamięci do realizacji tablicy A. 58

59 Modyfikacje A Pojemność pamięci la filtru trzeciego rzędu =3 o skończonej odpowiedzi impulsowej FIR dane są współczynniki: c[0]=4, c[1]=1, c[2]=3. Podzielmy współczynniki na dwie grupy: c[2] oraz c[1], c[0] otrzymując dwie tablice UT M i UT x b [2] f(c[2],x[2]) = = 3 x b [1] x b [0] f(c[1,0],x[1,0]) = = = = 5 Pojemność pamięci UT w bitach (2x mniej niż przed podzieleniem): 2 1 (max{0,3}) 2 2 (max{0,4,1,5}) la próbek wejściowych: x[0]=7, x[1]=2, x[2]=1 Krok b x b [2] x b [1] x b [0] f[2][b] + f[1,0][b] + ACC(t 1) ACC(t)

60 Arytmetyka rozproszona Przetwarzanie równoległe Zwiększenie przepustowości układu realizującego sumę iloczynów przez przetwarzanie w jednym kroku większej liczby bitów w ten sposób zwiększamy szybkość przetwarzania słów wejściowych. Maksymalną szybkość obliczeń osiąga się przez zastosowanie w pełni zrównoleglonej architektury A. Kosztem jest dodatkowa liczba pamięci ROM o wejściach i jednakowej zawartości oraz drzewo sumatorów. Ścieżkę krytyczną można skrócić włączając rejestry pomiędzy stopnie w drzewie sumatorów. Realizacja przewyższa szybkością obliczeń wszystkie komercyjne programowalne procesory sygnałowe. 60

61 Arytmetyka rozproszona Przetwarzanie równoległe Pojemność pamięci UT w bitach wzrośnie 3-krotnie (B-krotnie): (max{0,4,1,5,3,7,4,8}) la próbek wejściowych: x[0]=7, x[1]=2, x[2]=1 otrzymamy y= =33 Wynik w jednym cyklu, czyli Wzrost szybkości 3-krotny! 61

62 Arytmetyka rozproszona Przetwarzanie równoległe Przykład: filtr 7-rzędu, próbki wejściowe 8-bitowe 62

63 Generator tablic A Na stronie: Materiały > Programy > Program i opis programu Generator tablic UT 63

64 Przykład: filtr 7-rzędu Realizacja filtru F4 7-rzędu o współczynnikach c[n] ={-3, 0, 19, 32, 19, 0,-3} i próbkach wejściowych 8-bitowych ze znakiem. 64

65 IBRARY ieee; USE ieee.std_logic_1164.a; USE ieee.std_logic_arith.a; ENTITY case7s IS PORT ( table_in : IN ST_OGIC_VECTOR(6 OWNTO 0); EN case7s; table_out : OUT INTEGER RANGE -6 TO 70); ARCITECTURE Cs OF case7s IS BEGIN PROCESS (table_in) BEGIN... CASE table_in IS WEN " " => table_out <= 0; WEN " " => table_out <= -3; WEN " " => table_out <= 0; WEN " " => table_out <= -3; WEN " " => table_out <= 19; WEN " " => table_out <= 16; WEN " " => table_out <= 67; WEN " " => table_out <= 64; WEN OTERS => table_out <= 0; EN CASE; EN PROCESS; EN Cs; Realizacja filtru F4 w A V Tablica A 65

66 module case7s (table_in, table_out); input [6:0] table_in; output [7:0] table_out; reg [7:0] table_out; begin end case (table_in) endcase endmodule 7'd0 7'd1 7'd2 7'd3 7'd4 7'd5.. 7'd126 7'd127 default : ; : table_out = 8'd0; : table_out = -8'd3; : table_out = 8'd0; : table_out = -8'd3; : table_out = 8'd19; : table_out = 8'd16; : table_out = 8'd67; : table_out = 8'd64; Realizacja filtru F4 w A Verilog Tablica A 66

67 Realizacja filtru F4 w A ARCITECTURE flex OF dapara IS [..] BEGIN PROCESS BEGIN WAIT UNTI clk = '1'; tap0 <= x_in; tap1 <= tap0; tap2 <= tap1; tap3 <= tap2; tap4 <= tap3; tap5 <= tap4; tap6 <= tap5; y <= s0 + 16*s1; -- adder tree p0 <= y0; p1 <= y1; p2 <= y2; p3 <= y3; --1st pipeline register p4 <= y4; p5 <= y5; p6 <= y6; p7 <= y7; r0 <= p0 + 2*p1; r1 <= p2 + 2*p3; -- 2nd pipeline register r2 <= p4 + 2*p5; r3 <= p6-2*p7; s0 <= r0 + 4*r1; s1 <= r2 + 4*r3; EN PROCESS; ENTITY dapara IS GENERIC ( : INTEGER := 7; -- filter lenght PORT (clk : IN ST_OGIC; EN dapara; --3rd pipeline register N : INTEGER := 8 -- input bit width ); x_in : IN ST_OGIC_VECTOR(N-1 OWNTO 0); y : OUT INTEGER RANGE TO 9658); 67

68 C FF f [Mz] t_clk [ns] ,91 18,9 x0 <= (tap6(0) & tap5(0) & tap4(0) & tap3(0) & tap2(0) & tap1(0) & tap0(0)); x1 <= (tap6(1) & tap5(1) & tap4(1) & tap3(1) & tap2(1) & tap1(1) & tap0(1)); x2 <= (tap6(2) & tap5(2) & tap4(2) & tap3(2) & tap2(2) & tap1(2) & tap0(2)); x3 <= (tap6(3) & tap5(3) & tap4(3) & tap3(3) & tap2(3) & tap1(3) & tap0(3)); x4 <= (tap6(4) & tap5(4) & tap4(4) & tap3(4) & tap2(4) & tap1(4) & tap0(4)); x5 <= (tap6(5) & tap5(5) & tap4(5) & tap3(5) & tap2(5) & tap1(5) & tap0(5)); x6 <= (tap6(6) & tap5(6) & tap4(6) & tap3(6) & tap2(6) & tap1(6) & tap0(6)); x7 <= (tap6(7) & tap5(7) & tap4(7) & tap3(7) & tap2(7) & tap1(7) & tap0(7)); C_Table0: case7s C_Table1: case7s C_Table2: case7s C_Table3: case7s C_Table4: case7s C_Table5: case7s C_Table6: case7s C_Table7: case7s EN flex; PORT MAP(table_in => x0, table_out => y0); PORT MAP(table_in => x1, table_out => y1); PORT MAP(table_in => x2, table_out => y2); PORT MAP(table_in => x3, table_out => y3); PORT MAP(table_in => x4, table_out => y4); PORT MAP(table_in => x5, table_out => y5); PORT MAP(table_in => x6, table_out => y6); PORT MAP(table_in => x7, table_out => y7); 68

69 Realizacja filtru F4 w A Verilog module dapara(clk, x_in, y_out); parameter l=7; // filter lenght parameter n=8; // input bit width input clk; input [n-1:0] x_in; output reg [14:0] y_out; // always@(posedge clk) begin tap0 <= x_in; tap1 <= tap0; tap2 <= tap1; tap3 <= tap2; tap4 <= tap3; tap5 <= tap4; tap6 <= tap5; // adder tree p0 <= {{7{y0[7]}},y0}; p1 <= {{7{y1[7]}},y1}; //1st pipeline register p2 <= {{7{y2[7]}},y2}; p3 <= {{7{y3[7]}},y3}; p4 <= {{7{y4[7]}},y4}; p5 <= {{7{y5[7]}},y5}; p6 <= {{7{y6[7]}},y6}; p7 <= {{7{y7[7]}},y7}; r0 <= p0 + (p1<<1); // 2nd pipeline register r1 <= p2 + (p3<<1); r2 <= p4 + (p5<<1); r3 <= p6 - (p7<<1); s0 <= r0 + (r1<<2);//3rd pipeline register s1 <= r2 + (r3<<2); y_out <= s0 + (s1<<4); //4th pipeline register end 69

70 Realizacja filtru F4 w A Verilog assign x0 = {tap6[0],tap5[0],tap4[0],tap3[0],tap2[0],tap1[0],tap0[0]}; assign x1 = {tap6[1],tap5[1],tap4[1],tap3[1],tap2[1],tap1[1],tap0[1]}; assign x2 = {tap6[2],tap5[2],tap4[2],tap3[2],tap2[2],tap1[2],tap0[2]}; assign x3 = {tap6[3],tap5[3],tap4[3],tap3[3],tap2[3],tap1[3],tap0[3]}; assign x4 = {tap6[4],tap5[4],tap4[4],tap3[4],tap2[4],tap1[4],tap0[4]}; assign x5 = {tap6[5],tap5[5],tap4[5],tap3[5],tap2[5],tap1[5],tap0[5]}; assign x6 = {tap6[6],tap5[6],tap4[6],tap3[6],tap2[6],tap1[6],tap0[6]}; assign x7 = {tap6[7],tap5[7],tap4[7],tap3[7],tap2[7],tap1[7],tap0[7]}; endmodule case7s C_Table0 (.table_in(x0),.table_out(y0)); case7s C_Table1 (.table_in(x1),.table_out(y1)); case7s C_Table2 (.table_in(x2),.table_out(y2)); case7s C_Table3 (.table_in(x3),.table_out(y3)); case7s C_Table4 (.table_in(x4),.table_out(y4)); case7s C_Table5 (.table_in(x5),.table_out(y5)); case7s C_Table6 (.table_in(x6),.table_out(y6)); case7s C_Table7 (.table_in(x7),.table_out(y7)); 70

71 Realizacja filtru F4 w postaci direct z symetrią i potokiem V BEGIN p1: PROCESS BEGIN WAIT UNTI clk = '1'; t0 <= tap(0) + tap(6); t1 <= tap(2) + tap(4); t2 <= tap(3); t3 <= 3 * t1; t4 <= 19 * t1; t5 <= 32 * t2; t6 <= -t3; t7 <= t4 + t5; y <= t6 + t7; FOR I IN 6 OWNTO 1 OOP tap(i) <= tap(i-1); EN OOP; tap(0) <= x; EN PROCESS; EN fir; C FF f [Mz] t_clk [ns] ,51 40,8 71

72 Realizacja filtru F4 w postaci direct z symetrią i potokiem Verilog // FIR c[n] ={-3, 0, 19, 32, 19, 0,-3} module fir_direct(clk, x_in, y_out); parameter l=7; // filter lenght input clk; input [7:0] x_in; output [14:0] y_out; reg [14:0] y_out; reg [7:0] tap [l-1:0]; reg [14:0] t0,t1,t2,t3,t4,t5,t6,t7; integer i; C FF f [Mz] t_clk [ns] ,68 always@(posedge clk) begin t0 <= {{7{tap[0][7]}},tap[0]} + {{7{tap[6][7]}},tap[6]}; t1 <= {{7{tap[2][7]}},tap[2]} + {{7{tap[4][7]}},tap[4]}; t2 <= {{7{tap[3][7]}},tap[3]}; t3 <= 3 * t0; t4 <= 19 * t1; t5 <= 32 * t2; t6 <= -t3; t7 <= t4 + t5; y_out <= t6 + t7; end endmodule for(i=1; i<=6; i=i+1) begin end tap[i] <= tap[i-1]; tap[0] <= x_in; 72

73 Realizacja filtru F4 Symulacja 73

74 Realizacja filtru F4 w A współczynniki symetryczne C FF f [Mz] t_clk [ns] ,63 19,0 odatkowe sumatory w linii rejestrów z-1. odatkowa tablica A, ale mniej wejść /2 74

75 Realizacja filtru F4 w A współczynniki symetryczne Porównanie realizacji filtru F4 7-rzędu () i próbek 8-bitowych (k) dla A bez uwzględnienia (a) i z uwzględnieniem (b) symetryczności współczynników: tablice A (a) 8 tablic (k) o 7 wejściach () (b) 9 tablic (k+1) o 4 wejściach (/2) sumatory (b) dodatkowe sumatory w linii rejestrów z -1 (b) drzewo sumatorów ma dodatkową gałąź dla k+1 bitu 75

76 Realizacja filtru F8 w FPGA Zrealizować filtr F8 o współczynnikach: -6, 0, 33, 0, -116, 0, 490, 802, 490, 0, -116, 0, 33, 0, -6 W strukturze filtru szeregowego W strukturze filtru równoległego Z wykorzystaniem arytmetyki rozproszonej Z wykorzystaniem dekompozycji funkcjonalnej Filtr zrealizować w strukturach z wykorzystaniem bloków SP: Stratix EP1S10F484C5 CycloneII EP2C5T144C6 (mnożarki) Cyclone EP1C3T100C6 (brak bloków SP) Realizacja z wykorzystaniem systemu Quartus

77 Mnożarki Cyclone II Mnożarki wykorzystywane w aplikacjach SP: filtr FIR, transformata FFT, transformata CT Mnożarka może pracować jako dwie mnożarki

78 Mnożarki Cyclone II Jeżeli signa, signb = 1 to czynnik jest traktowany jako liczba ze znakiem (signed) 78

79 Mnożarki Cyclone II Sygnał signa kontroluje trybem pracy obydwa wejścia A, i signb obydwa wejścia B. 79

80 Blok SP Stratix Blok SP może być skonfigurowany jako: osiem mnożarek 9 9 cztery mnożarki dwie mnożarki Blok SP może także realizować funkcję dodawania lub akumulacji. 80

81 Blok SP Stratix: blok sumatora i akumulatora Wyjścia z mnożarek 81

82 Blok SP Stratix: tryby pracy 82

83 Przykład: Mnożenie liczb zespolonych Tryb pracy: Two- Multiplier Adder Mode (a + jb) (c + jd) = (a c b d) + j (a d + b c) 83

84 Realizacja filtru F8 szeregowego - Verilog Funkcja MAC z biblioteki systemu, parametry ustawione za pomocą Wizard Plug-In Manager // funkcja MAC mac f_mac(.aclr0(acc_clr),.clock0(clk),.dataa(dataa),.datab(datab),.result(acc)); begin dataa = tap[count]; datab = c[count]; end 84

85 Realizacja filtru F8 szeregowego Verilog // glowny automat clk) begin : States parameter s0=0, s1=1, s2=2, s3=3; reg [3:0] state; integer i; case (state) s0 : begin // inicjacja state <= s1; c[0] <= -12'd6; c[1] <= 12'd0; c[2] <= 12'd33; c[3] <= 12'd0; c[4] <= -12'd116; c[5] <= 12'd0; c[6] <= 12'd490; c[7] <= 12'd802; c[8] <= 12'd490; c[9] <= 12'd0; c[10] <= -12'd116; c[11] <= 12'd0; c[12] <= 12'd33; c[13] <= 12'd0; c[14] <= -12'd6; for (i = 0; i <= l-1 ; i=i+1) tap[i] <= 8'd0; acc_clr = 1'b1; // zerowanie ACC end s1 : begin state <= s2; count <= 4'd0; tap[0] <= x_in; for (i = 1; i <= l-1 ; i=i+1) tap[i] <= tap[i-1]; acc_clr = 1'b0; end s2 : begin if (count == 14) state <= s3; else begin state <= s2; count <= count + 1'd1; end end s3 : begin acc_clr = 1'b1; //zerowanie akumulatora state <= s1; y <= acc; end default: ; endcase end 85

86 Funkcja MAC 86

87 Realizacja w układach fpga Realizacja funkcji MAC: A tylko w komórkach B z wykorzystaniem mnożarek C z wykorzystaniem bloków SP (mnożarki z funkcją sumowania i akumulacji) C A B 87

88 Realizacja w układach fpga Chip Zajętość A B C S CII C C SP f maks [Mz] 80,44 86,01 105,34 C SP f maks [Mz] 89,92 102,43 102,43 C SP f maks [Mz] 77,03 77,03 77,03 88

89 Realizacja filtru F8 równoległego Verilog module fir_par (clk, x_in, y); parameter l=15; //Filter length input clk; input [7:0] x_in; output [19:0] y; reg [19:0] y; Funkcje lpm_mult i padd są funkcjami bibliotecznymi wire [19:0] mult_c [l-1:0]; wire [7:0] dataa [l-1:0]; wire [10:0] datab [l-1:0]; wire [19:0] acc; wire [19:0] temp [2:0]; reg [7:0] tap [l-1:0]; reg [10:0] c [l-1:0]; genvar j; // mnozenie wspolczynnikow przez probki generate for (j = 0; j <= l-1; j=j+1) begin : mults assign dataa[j] = tap[j]; assign datab[j] = c[j]; lpm_mult mult_j(.dataa(dataa[j]),.datab(datab[j]),.result(mult_c[j])); defparam mult_j.lpm_widtha=8; defparam mult_j.lpm_widthb=11; defparam mult_j.lpm_representation="signe"; defparam mult_j.lpm_widthp=20; defparam mult_j.lpm_widths=1; end endgenerate // sumator rownolegly padd adder(.data0x(mult_c[0]),.data1x(mult_c[1]),.data2x(mult_c[2]),.data3x(mult_c[3]),.data4x(mult_c[4]),.data5x(mult_c[5]),.data6x(mult_c[6]),.data7x(mult_c[7]),.data8x(mult_c[8]),.data9x(mult_c[9]),.data10x(mult_c[10]),.data11x(mult_c[11]),.data12x(mult_c[12]),.data13x(mult_c[13]),.data14x(mult_c[14]),.result(acc) ); 89

90 Realizacja filtru F8 równoległego Verilog // glowny automat clk) begin : States parameter s0=0, s1=1; reg [3:0] state; integer i; case (state) s0 : begin //inicjacja state <= s1; c[0] <= -11'd6; c[1] <= 11'd0; c[2] <= 11'd33; c[3] <= 11'd0; c[4] <= -11'd116; c[5] <= 11'd0; c[6] <= 11'd490; c[7] <= 11'd802; c[8] <= 11'd490; c[9] <= 11'd0; c[10] <= -11'd116; c[11] <= 11'd0; c[12] <= 11'd33; c[13] <= 11'd0; c[14] <= -11'd6; for (i = 0; i <= l-1 ; i=i+1) tap[i] <= 8'd0; end s1 : begin state <= s1; tap[0] <= x_in; for (i = 1; i <= l-1 ; i=i+1) tap[i] <= tap[i-1]; y <= acc; end default: ; endcase end endmodule 90

91 Realizacja filtru F8 równoległego z Arytmetyką Rozproszoną Verilog module dapara(clk, x_in, y); parameter l=15; //Filter length input clk; input [7:0] x_in; output [19:0] y; reg [19:0] y; wire [l-1:0] t_in [7:0]; wire [11:0] t_out [7:0]; reg [11:0] p [7:0]; reg [13:0] r0, r1, r2; reg [12:0] r3; reg [15:0] s0, s1; reg [19:0] s; reg [7:0] tap [l-1:0]; integer i; clk) begin tap[0] <= x_in; for (i = 1; i <= l-1 ; i=i+1) tap[i] <= tap[i-1]; y <= {{4{s0[15]}},s0} + {s1,4'b0000}; end begin for (i = 0; i <= 7; i=i+1) p[i] = t_out[i]; r0 = ({{2{p[0][11]}},p[0]}) + ({p[1][11],p[1],1'b0}); r1 = {{2{p[2][11]}},p[2]} + {p[3][11],p[3],1'b0}; r2 = {{2{p[4][11]}},p[4]} + {p[5][11],p[5],1'b0}; r3 = {p[6][11],p[6]} - {p[7],1'b0}; s0 = {{2{r0[13]}},r0} + {r1,2'b00}; s1 = {{2{r2[13]}},r2} + {r3[12],r3,2'b00}; end assign r0 = {p[0][11],p[0][11],p[0]} + {p[1][11],p[1],1'b0}; assign r1 = {p[2][11],p[2][11],p[2]} + {p[3][11],p[3],1'b0}; assign r2 = {p[4][11],p[4][11],p[4]} + {p[5][11],p[5],1'b0}; assign r3 = {p[6][11],p[6]} - {p[7],1'b0}; assign s0 = {r0[13],r0[13],r0} + {r1,2'b00}; assign s1 = {r2[13],r2[13],r2} + {r3[12],r3,2'b00}; genvar j; generate for (j = 0; j <= 7; j=j+1) begin: Aj assign t_in[j] = {tap[14][j],tap[13][j],tap[12][j],tap[11][j],tap[10][j],tap[9][j],tap[8][j],tap[ 7][j],tap[6][j],tap[5][j],tap[4][j],tap[3][j],tap[2][j],tap[1][j],tap[0][j]}; case15s Aj(.table_in(t_in[j]),.table_out(t_out[j])); end endgenerate endmodule 91

92 Realizacja filtru F8 równoległego z Arytmetyką Rozproszoną wer.2 Verilog module dapara(clk, x_in, y); parameter l=15; //Filter length input clk; input [7:0] x_in; output [19:0] y; reg [19:0] y; wire [l-1:0] t_in [7:0]; wire [11:0] t_out [7:0]; reg [11:0] p [7:0]; reg [13:0] r0, r1, r2; reg [12:0] r3; reg [15:0] s0, s1; reg [19:0] s; reg [7:0] tap [l-1:0]; integer i; clk) begin tap[0] <= x_in; for (i = 1; i <= l-1 ; i=i+1) tap[i] <= tap[i-1]; y <= s; end begin for (i = 0; i <= 7; i=i+1) p[i] = t_out[i]; end Użycie funkcji bibliotecznej sumatora // sumator rownolegly padd adder(.data0x(p[0]),.data1x(p[1]),.data2x(p[2]),.data3x(p[3]),.data4x(p[4]),.data5x(p[5]),.data6x(p[6]),.data7x(p[7]),.result(s) ); genvar j; generate for (j = 0; j <= 7; j=j+1) begin: Aj assign t_in[j] = {tap[14][j],tap[13][j],tap[12][j],tap[11][j],tap[10][j],tap[9][j],tap[8][j],tap[ 7][j],tap[6][j],tap[5][j],tap[4][j],tap[3][j],tap[2][j],tap[1][j],tap[0][j]}; case15s Aj(.table_in(t_in[j]),.table_out(t_out[j])); end endgenerate endmodule 92

93 Realizacja filtru F8 równoległego z Arytmetyką Rozproszoną - tablica Tablica A bez dekompozycji module case15s(table_in, table_out); input [14:0] table_in; output [11:0] table_out; reg [11:0] table_out; always@(table_in) case (table_in) 15'b : table_out = 12'd0; 15'b : table_out = -12'd6; 15'b : table_out = 12'd0; 15'b : table_out = 12'd1610; 15'b : table_out = 12'd1604; default : table_out = 12'bx; endcase endmodule Tablica A z dekompozycją module case15s(table_in, table_out); input [14:0] table_in; output [11:0] table_out; //reg [11:0] table_out; f8 b(.table_in(table_in),.table_out(table_out)); endmodule W pliku f8 znajduje się zdekomponowana tablica w postaci sieci tablic o wielkościach odpowiadających komórce logicznej fpga 93

94 Realizacja w układach fpga Chip Zajętość C E F S CII C C SP f maks [Mz] 105,34 58,97 87,6 84,86 C SP f maks [Mz] 102,43 76,49 84,11 82,61 C SP f maks [Mz] 77,03 61,0 80,4 78,37 Realizacja: C szeregowa z wykorzystaniem bloków SP, równoległa z wykorzystaniem SP, E równoległa z arytmetyką rozproszoną, F równoległa ze zdekomponowaną tablicą A 94

95 Filtry w strukturach mieszanych Filtry można realizować także z wykorzystaniem wbudowanych bloków pamięci Realizacja tablicy A za pomocą dekompozycji funkcjonalnej dekompozycja na małe (komórki logiczne) i duże (pamięci) bloki 95

96 Filtry w strukturach mieszanych 96

97 Filtry w strukturach mieszanych Realizacja filtru ahp z dekompozycją: 2 pamięci ROM + 14C 97

98 Filtry w strukturach mieszanych ASIP - esign & Architectures for Signal and Image Processing Grenoble, France - November 27-29,

99 Filtr IP core Realizacja filtru F8 z użyciem FIR Compiler: 99

100 Filtr IP core Realizacja filtru F8 z użyciem FIR Compiler: filtr F8 o współczynnikach: -6, 0, 33, 0, -116, 0, 490, 802, 490, 0, -116, 0, 33, 0,

101 Filtr testbench Realizacja filtru z użyciem testbench w środowisku ModelSim wady: długi czas symulacji 101

Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR

Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR 1 FPGA zalety i wady Ogromny wzrost wydajności niektórych algorytmów Elastyczność architektury MoŜliwości znacznego zrównoleglenia algorytmów ostosowanie

Bardziej szczegółowo

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska Sumatory 1 Sumator 1-bitowy full adder Równanie boolowskie sumy: s k = a k XOR b k XOR c k = a k b k c k Równanie boolowskie przeniesienia: c k+1 = (a k AN b k ) OR (a k AN c k ) OR (b k AN c k ) = (a

Bardziej szczegółowo

Układy mnoŝące H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Układy mnoŝące H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska Układy mnoŝące 1 MnoŜenie w układzie sekwencyjnym P = A X = N 1 k = 0 k a k 2 X MnoŜenie szeregowo-równoległe równoległe Czynnik X jest przesuwany o k pozycji: jeŝeli a k 0 to X*2 k jest dodawane i zapisywane

Bardziej szczegółowo

Układy kryptograficzne z uŝyciem rejestrów LFSR

Układy kryptograficzne z uŝyciem rejestrów LFSR Układy kryptograficzne z uŝyciem rejestrów FSR Algorytmy kryptograficzne uŝywane w systemach telekomunikacyjnych własność modulo 2 funkcji XOR P K K = P = P 2 Rejestr z liniowym sprzęŝeniem zwrotnym FSR

Bardziej szczegółowo

Współczesne techniki informacyjne

Współczesne techniki informacyjne Współczesne techniki informacyjne są multimedialne, można oczekiwać, że po cywilizacji pisma (i druku) nastąpi etap cywilizacji obrazowej czyli coraz większa jest potrzeba gromadzenia i przysyłania wielkiej

Bardziej szczegółowo

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG Projektowanie Scalonych Systemów Wbudowanych VERILOG OPIS BEHAWIORALNY proces Proces wątek sterowania lub przetwarzania danych, niezależny w sensie czasu wykonania, ale komunikujący się z innymi procesami.

Bardziej szczegółowo

Szybkie układy mnożące

Szybkie układy mnożące Szybkie układy mnożące Operacja mnożenia Operacje dodawania i mnożenia są podstawą algorytmów obliczania wartości innych złożonych funkcji matematycznych oraz przetwarzania sygnałów Implementacje bitowo-szeregowe

Bardziej szczegółowo

Szybkie układy mnożące

Szybkie układy mnożące Szybkie układy mnożące Operacja mnożenia Operacje dodawania i mnożenia są podstawą algorytmów obliczania wartości innych złożonych funkcji matematycznych oraz przetwarzania sygnałów Implementacje bitowo-szeregowe

Bardziej szczegółowo

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS Język HDL - VERLOG Hardware Description Language (Syntetyzowalna warstwa języka) RUS RUS VERLOG rzegląd zagadnień RUS RUS prowadzenie do języka Reprezentacja układu cyfrowego w Verilogu opis strukturalny

Bardziej szczegółowo

Projektowanie Urządzeń Cyfrowych

Projektowanie Urządzeń Cyfrowych Projektowanie Urządzeń Cyfrowych Laboratorium 2 Przykład prostego ALU Opracował: mgr inż. Leszek Ciopiński Wstęp: Magistrale: Program MAX+plus II umożliwia tworzenie magistral. Magistrale są to grupy przewodów

Bardziej szczegółowo

Specyfika projektowania Mariusz Rawski

Specyfika projektowania Mariusz Rawski CAD Specyfika projektowania Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ System cyfrowy pierwsze skojarzenie Urządzenia wprowadzania danych: klawiatury czytniki urządzenia przetwarzania

Bardziej szczegółowo

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3 Układy cyfrowe w Verilog Elementy języka z przykładami wersja: 10.2009 cz.3 1 Układy sekwencyjne Układy sekwencyjne mają pamięć Układy synchroniczne najczęściej spotykane wszystkie elementy są kontrolowane

Bardziej szczegółowo

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

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące Podział sumatorów Równoległe: Z przeniesieniem szeregowym Z przeniesieniem równoległym Szeregowe (układy sekwencyjne) Zwykłe Akumulujące 1 Sumator z przeniesieniami równoległymi G i - Warunek generacji

Bardziej szczegółowo

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS Język HDL - VERLOG Hardware Description Language (Syntetyzowalna warstwa języka) RUS RUS Język VERLOG w praktyce RUS RUS VERLOG Specyfikacja układów kombinacyjnych RUS RUS Operator warunkowy Conditional_expression?

Bardziej szczegółowo

Przykładowe pytania DSP 1

Przykładowe pytania DSP 1 Przykładowe pytania SP Przykładowe pytania Systemy liczbowe. Przedstawić liczby; -, - w kodzie binarnym i hexadecymalnym uzupełnionym do dwóch (liczba 6 bitowa).. odać dwie liczby binarne w kodzie U +..

Bardziej szczegółowo

Projekt prostego procesora

Projekt prostego procesora Projekt prostego procesora Opracowany przez Rafała Walkowiaka dla zajęć z PTC 2012/2013 w oparciu o Laboratory Exercise 9 Altera Corporation Rysunek 1 przedstawia schemat układu cyfrowego stanowiącego

Bardziej szczegółowo

Krótkie wprowadzenie do ModelSim i Quartus2

Krótkie wprowadzenie do ModelSim i Quartus2 Krótkie wprowadzenie do ModelSim i Quartus2 wersja 04.2011 1 Plan Oprogramowanie Pliki źródłowe Scenariusze użycia 2 Programy Programy w wersji darmowej do pobrania ze strony www.altera.com ModelSim-Altera

Bardziej szczegółowo

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA 01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 05 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2

Bardziej szczegółowo

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

Programowanie Układów Logicznych kod kursu: ETD6203. Specjalizowane architektury do obliczeń DSP Programowanie Układów Logicznych kod kursu: ETD6203 Specjalizowane architektury do obliczeń DSP W10 8.05.2019 mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec Plan wykładu Cyfrowe przetwarzanie sygnałów

Bardziej szczegółowo

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35 LABORATORIUM TECHNIKA CYFROWA Pamięci Rev.1.35 1. Cel ćwiczenia Praktyczna weryfikacja wiedzy teoretycznej z projektowania modułów sterowania oraz kontroli pamięci 2. Kolokwium Kolokwium wstępne sprawdzające

Bardziej szczegółowo

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

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone

Bardziej szczegółowo

Sposoby projektowania systemów w cyfrowych

Sposoby projektowania systemów w cyfrowych Sposoby projektowania systemów w cyfrowych Top-down Idea całości projektu Dekompozycja na mniejsze bloki Projekt i rafinacja podbloków Łączenie bloków w całość PRZYKŁAD (sumator kaskadowy) zdefiniowanie

Bardziej szczegółowo

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

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011 Układy arytmetyczne Joanna Ledzińska III rok EiT AGH 2011 Plan prezentacji Metody zapisu liczb ze znakiem Układy arytmetyczne: Układy dodające Półsumator Pełny sumator Półsubtraktor Pełny subtraktor Układy

Bardziej szczegółowo

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

FPGA IMPLEMENTATION OF FAST FOURIER TRANSFORM ALGORITHM IMPLEMENTACJA ALGORYTMU SZYBKIEJ TRANSFORMATY FOURIERA W UKŁADZIE PROGRAMOWALNYM FPGA Inż. Arkadiusz Pantoł IV rok Koło Naukowe Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy FPGA IMPLEMENTATION OF FAST FOURIER TRANSFORM ALGORITHM IMPLEMENTACJA ALGORYTMU SZYBKIEJ TRANSFORMATY

Bardziej szczegółowo

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

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż. Adam Korzeniewski - adamkorz@sound.eti.pg.gda.pl, p. 732 dr inż. Grzegorz Szwoch - greg@sound.eti.pg.gda.pl, p. 732 dr inż. Piotr Odya - piotrod@sound.eti.pg.gda.pl, p. 730 Plan przedmiotu ZPS Cele nauczania

Bardziej szczegółowo

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński Altera Quartus II Opis niektórych komponentów dostarczanych razem ze środowiskiem Opracował: mgr inż. Leszek Ciopiński Spis treści Opis wybranych zagadnień obsługi środowiska Altera Quartus II:...1 Magistrale:...

Bardziej szczegółowo

(przykład uogólniony)

(przykład uogólniony) Serial Peripheral Interface (przykład uogólniony) Brak standardu. Inne stosowane nazwy: Synchronous Serial Port (SSP), 4 wire SSI (Synchronous Serial Interface, Texas Instrument), Microwire (National Semiconductor).

Bardziej szczegółowo

Układy reprogramowalne i SoC Język VHDL (część 4)

Układy reprogramowalne i SoC Język VHDL (część 4) Język VHDL (część 4) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki

Bardziej szczegółowo

Mikrooperacje. Mikrooperacje arytmetyczne

Mikrooperacje. Mikrooperacje arytmetyczne Przygotowanie: Przemysław Sołtan e-mail: kerk@moskit.ie.tu.koszalin.pl Mikrooperacje Mikrooperacja to elementarna operacja wykonywana podczas jednego taktu zegara mikroprocesora na informacji przechowywanej

Bardziej szczegółowo

Układy logiczne układy cyfrowe

Układy logiczne układy cyfrowe Układy logiczne układy cyfrowe Jak projektować układy cyfrowe (systemy cyfrowe) Układy arytmetyki rozproszonej filtrów cyfrowych Układy kryptograficzne X Selektor ROM ROM AND Specjalizowane układy cyfrowe

Bardziej szczegółowo

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

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci PAMIĘĆ RAM Pamięć służy do przechowania bitów. Do pamięci musi istnieć możliwość wpisania i odczytania danych. Bity, które są przechowywane pamięci pogrupowane są na komórki, z których każda przechowuje

Bardziej szczegółowo

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File 1. ISE WebPack i VHDL Celem ćwiczenia jest szybkie zaznajomienie się ze środowiskiem projektowym Xilinx ISE Design Suite 10.1 oraz językiem opisu sprzętu VHDL. Tworzenie projektu Uruchom program Project

Bardziej szczegółowo

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

Architektura komputerów, Informatyka, sem.iii. Sumatory Sumatory Architektury sumatorów (zarys) Sumatory 1-bitowe Sumatory z propagacją Przeniesień CPA (Carry Propagate Adders) Sumatory wieloargumentowe 3-argumentowe Half Adder HA Macierz sumatorów RCA Full

Bardziej szczegółowo

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA 01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 06 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2

Bardziej szczegółowo

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

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych Programowanie Układów Logicznych kod kursu: ETD623 Pamięć w układach programowalnych W6 6.4.26 dr inż. Daniel Kopiec Plan wykładu Pamięć w układach programowalnych Zasada działania, podział pamięci Miara

Bardziej szczegółowo

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Operacja na dwóch funkcjach dająca w wyniku modyfikację oryginalnych funkcji (wynikiem jest iloczyn splotowy). Jest

Bardziej szczegółowo

Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska,

Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska, Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska, 2015. 1 Układy Cyfrowe laboratorium Przykład realizacji ćwiczenia nr 8 (wersja 2015) 1. Wstęp Komputer PC jest użyty do syntezy

Bardziej szczegółowo

Teoria przetwarzania A/C i C/A.

Teoria przetwarzania A/C i C/A. Teoria przetwarzania A/C i C/A. Autor: Bartłomiej Gorczyński Cyfrowe metody przetwarzania sygnałów polegają na przetworzeniu badanego sygnału analogowego w sygnał cyfrowy reprezentowany ciągiem słów binarnych

Bardziej szczegółowo

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Bramki logiczne Podstawowe składniki wszystkich układów logicznych Układy logiczne Bramki logiczne A B A B AND NAND A B A B OR NOR A NOT A B A B XOR NXOR A NOT A B AND NAND A B OR NOR A B XOR NXOR Podstawowe składniki wszystkich układów logicznych 2 Podstawowe tożsamości

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Worek różności jak dobrać się do gotowców w Spartanach? Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 12 kwietnia 2011 Spis treści Wbudowane

Bardziej szczegółowo

Programowalne układy logiczne kod kursu: ETD Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W

Programowalne układy logiczne kod kursu: ETD Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W Programowalne układy logiczne kod kursu: ETD008270 Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W4 23.03.2018 mgr inż. Maciej Rudek UKŁADY KOMBINACYJNE Układy kombinacyjne Układ kombinacyjny

Bardziej szczegółowo

Układy reprogramowalne i SoC Implementacja w układach FPGA

Układy reprogramowalne i SoC Implementacja w układach FPGA Układy reprogramowalne i SoC Implementacja w układach FPGA Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez

Bardziej szczegółowo

Tranzystor JFET i MOSFET zas. działania

Tranzystor JFET i MOSFET zas. działania Tranzystor JFET i MOSFET zas. działania brak kanału v GS =v t (cutoff ) kanał otwarty brak kanału kanał otwarty kanał zamknięty w.2, p. kanał zamknięty Co było na ostatnim wykładzie? Układy cyfrowe Najczęściej

Bardziej szczegółowo

Jednostka mnożąco-sumującą EMAC (Enhanced Multiply-ACcumulate unit)

Jednostka mnożąco-sumującą EMAC (Enhanced Multiply-ACcumulate unit) Jednostka mnożąco-sumującą EMAC (Enhanced Multiply-ACcumulate unit) 1 Moduł MAC (1) Jednostka arytmetyczna przeznaczona do operacji wykorzystywanych podczas cyfrowej obróbki sygnałów DSP (Digital Signal

Bardziej szczegółowo

Układ sterowania 4-cyfrowym wyświetlaczem 7-segmentowym LED

Układ sterowania 4-cyfrowym wyświetlaczem 7-segmentowym LED Język Verilog w przykładach (2) Dodatkowe materiały na CD Układ sterowania 4-cyfrowym wyświetlaczem 7-segmentowym LED W tej części kursu opiszemy bloki funkcjonalne układu sterowania 4-cyfrowym wyświetlaczem

Bardziej szczegółowo

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

Architektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski Architektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski rogawskim@prokom.pl Plan referatu: Budowa akceleratora kryptograficznego; Struktura programowalna element fizyczny;

Bardziej szczegółowo

CZ1. Optymalizacja funkcji przełączających

CZ1. Optymalizacja funkcji przełączających CZ1. Optymalizacja funkcji przełączających 1. Proszę opisać słownie metodę i dokonać optymalizacji łącznej następujących funkcji (najmłodszy bit wejścia proszę oznaczyć A) : F1=SUM m(1,3,5,7,9,13,15) F2=SUM

Bardziej szczegółowo

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA 01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 04 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2

Bardziej szczegółowo

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje. Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje. 1. W języku VHDL zdefiniowano mechanizm odczytywania i zapisywania danych z i do plików. Pliki te mogą być wykorzystywane

Bardziej szczegółowo

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

Układy reprogramowalne i SoC Specjalizowane moduły FPGA Specjalizowane moduły FPGA Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój

Bardziej szczegółowo

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Sławomir Kulesza. Projektowanie automatów asynchronicznych Sławomir Kulesza Technika cyfrowa Projektowanie automatów asynchronicznych Wykład dla studentów III roku Informatyki Wersja 3.0, 03/01/2013 Automaty skończone Automat skończony (Finite State Machine FSM)

Bardziej szczegółowo

SPIS TREŚCI. 2. Arytmetyka rozproszona Symulacja układu programowalnego Realizacja algorytmu cyfrowego filtrowania

SPIS TREŚCI. 2. Arytmetyka rozproszona Symulacja układu programowalnego Realizacja algorytmu cyfrowego filtrowania 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...

Bardziej szczegółowo

Maciej Piotr Jankowski

Maciej Piotr Jankowski Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji

Bardziej szczegółowo

Technika cyfrowa Układy arytmetyczne

Technika cyfrowa Układy arytmetyczne Sławomir Kulesza Technika cyfrowa Układy arytmetyczne Wykład dla studentów III roku Informatyki Wersja 1.0, 05/10/2010 Układy arytmetyczne UKŁADY ARYTMETYCZNE UKŁADY SUMUJĄCE i ODEJMUJĄCE UKŁADY MNOŻĄCE

Bardziej szczegółowo

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA Licznik binarny Licznik binarny jest najprostszym i najpojemniejszym licznikiem. Kod 4 bitowego synchronicznego licznika binarnego

Bardziej szczegółowo

Sławomir Kulesza. Projektowanie automatów synchronicznych

Sławomir Kulesza. Projektowanie automatów synchronicznych Sławomir Kulesza Technika cyfrowa Projektowanie automatów synchronicznych Wykład dla studentów III roku Informatyki Wersja 2.0, 20/12/2012 Automaty skończone Automat Mealy'ego Funkcja wyjść: Yt = f(st,

Bardziej szczegółowo

Układy logiczne układy cyfrowe

Układy logiczne układy cyfrowe Układy logiczne układy cyfrowe Jak projektować układy cyfrowe (systemy cyfrowe) Układy arytmetyki rozproszonej filtrów cyfrowych Układy kryptograficzne Evatronix KontrolerEthernet MAC (Media Access Control)

Bardziej szczegółowo

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA Instrukcja pomocnicza do laboratorium z przedmiotu Programowalne Struktury

Bardziej szczegółowo

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

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki. Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów

Bardziej szczegółowo

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3.

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3. Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3. Jak umieszcza się komentarze w pliku symulacyjnym PSPICE? 4.

Bardziej szczegółowo

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

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS 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

Bardziej szczegółowo

b n y k n T s Filtr cyfrowy opisuje się również za pomocą splotu dyskretnego przedstawionego poniżej:

b n y k n T s Filtr cyfrowy opisuje się również za pomocą splotu dyskretnego przedstawionego poniżej: 1. FILTRY CYFROWE 1.1 DEFIICJA FILTRU W sytuacji, kiedy chcemy przekształcić dany sygnał, w inny sygnał niezawierający pewnych składowych np.: szumów mówi się wtedy o filtracji sygnału. Ogólnie Filtracją

Bardziej szczegółowo

Język AHDL. Synteza strukturalna. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska H D L

Język AHDL. Synteza strukturalna. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska H D L Język A Synteza strukturalna 1 Synteza strukturalna icznik Rejestr B l o k i F u n k c j o n a l n e 1. Składamy układ z bloków funkcjonalnych 2. Odwzorowanie technologiczne 2 Komponent Wyboru odpowiedniej

Bardziej szczegółowo

Bezpieczeństwo informacji oparte o kryptografię kwantową

Bezpieczeństwo informacji oparte o kryptografię kwantową WYŻSZA SZKOŁA BIZNESU W DĄBROWIE GÓRNICZEJ WYDZIAŁ ZARZĄDZANIA INFORMATYKI I NAUK SPOŁECZNYCH Instrukcja do laboratorium z przedmiotu: Bezpieczeństwo informacji oparte o kryptografię kwantową Instrukcja

Bardziej szczegółowo

Wykład 4. Języki Opisu Sprzętu

Wykład 4. Języki Opisu Sprzętu Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D-10 222, tel. w. 28-72, e-mail: skoczen@fis.agh.edu.pl Wprowadzenie do Veriloga Przypisania proceduralne (c. d.) Wykład 4 2017 8 listopad

Bardziej szczegółowo

Krótkie przypomnienie

Krótkie przypomnienie Krótkie przypomnienie Prawa de Morgana: Kod Gray'a A+ B= Ā B AB= Ā + B Układ kombinacyjne: Tablicy prawdy Symbolu graficznego Równania Boole a NOR Negative-AND w.11, p.1 XOR Układy arytmetyczne Cyfrowe

Bardziej szczegółowo

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite. Plan wykładu rchitektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka sekwencyjna

Bardziej szczegółowo

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005 Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005 Ćwiczenie Nr 8 Implementacja prostego

Bardziej szczegółowo

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące Architektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Plan wykładu Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka

Bardziej szczegółowo

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

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej. Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Konstrukcje i Technologie w Aparaturze Elektronicznej Ćwiczenie nr 5 Temat: Przetwarzanie A/C. Implementacja

Bardziej szczegółowo

FFT i dyskretny splot. Aplikacje w DSP

FFT i dyskretny splot. Aplikacje w DSP i dyskretny splot. Aplikacje w DSP Marcin Jenczmyk m.jenczmyk@knm.katowice.pl Wydział Matematyki, Fizyki i Chemii 10 maja 2014 M. Jenczmyk Sesja wiosenna KNM 2014 i dyskretny splot 1 / 17 Transformata

Bardziej szczegółowo

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia. ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb

Bardziej szczegółowo

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne 1. Bit Pozycja rejestru lub komórki pamięci służąca do przedstawiania (pamiętania) cyfry w systemie (liczbowym)

Bardziej szczegółowo

9. Dyskretna transformata Fouriera algorytm FFT

9. Dyskretna transformata Fouriera algorytm FFT Transformata Fouriera ma szerokie zastosowanie w analizie i syntezie układów i systemów elektronicznych, gdyż pozwala na połączenie dwóch sposobów przedstawiania sygnałów reprezentacji w dziedzinie czasu

Bardziej szczegółowo

Technika audio część 2

Technika audio część 2 Technika audio część 2 Wykład 12 Projektowanie cyfrowych układów elektronicznych Mgr inż. Łukasz Kirchner lukasz.kirchner@cs.put.poznan.pl http://www.cs.put.poznan.pl/lkirchner Wprowadzenie do filtracji

Bardziej szczegółowo

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza Projektowanie układów VLSI-ASIC za pomocą techniki komórek standardowych przy użyciu pakietu Cadence Programowanie,

Bardziej szczegółowo

Programowalne układy logiczne kod kursu: ETD Podstawy języka Verilog W

Programowalne układy logiczne kod kursu: ETD Podstawy języka Verilog W Programowalne układy logiczne kod kursu: ETD008270 Podstawy języka Verilog W2 2.03.2018 mgr inż. Maciej Rudek 2 Tematyka kursu wykład Poziom abstrakcji systemów opisu sprzętu Historia Verilog został stworzony

Bardziej szczegółowo

Temat: Pamięci. Programowalne struktury logiczne.

Temat: Pamięci. Programowalne struktury logiczne. Temat: Pamięci. Programowalne struktury logiczne. 1. Pamięci są układami służącymi do przechowywania informacji w postaci ciągu słów bitowych. Wykonuje się jako układy o bardzo dużym stopniu scalenia w

Bardziej szczegółowo

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

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH SPRAWOZDANIE Temat: Projekt notesu elektronicznego w języku VHDL przy użyciu układów firmy

Bardziej szczegółowo

Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia

Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia Poznanie zasad budowy działania komparatorów cyfrowych. Konstruowanie komparatorów

Bardziej szczegółowo

Przekształcenie Fouriera i splot

Przekształcenie Fouriera i splot Zastosowania Procesorów Sygnałowych dr inż. Grzegorz Szwoch greg@multimed.org p. 732 - Katedra Systemów Multimedialnych Przekształcenie Fouriera i splot Wstęp Na tym wykładzie: przekształcenie Fouriera

Bardziej szczegółowo

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

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL Arkadiusz Bukowiec 1 Radosław Gąsiorek 2 Agnieszka Węgrzyn 3 Prezentowany referat przedstawia ogólną koncepcję

Bardziej szczegółowo

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

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

1. Operacje logiczne A B A OR B

1. Operacje logiczne A B A OR B 1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Instrukcja pomocnicza do laboratorium z przedmiotu Synteza układów

Bardziej szczegółowo

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI 1 ĆWICZENIE VI SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI (00) Celem pracy jest poznanie sposobu fizycznej realizacji filtrów cyfrowych na procesorze sygnałowym firmy Texas Instruments TMS320C6711

Bardziej szczegółowo

Technologie Informacyjne

Technologie Informacyjne System binarny Szkoła Główna Służby Pożarniczej Zakład Informatyki i Łączności October 7, 26 Pojęcie bitu 2 Systemy liczbowe 3 Potęgi dwójki 4 System szesnastkowy 5 Kodowanie informacji 6 Liczby ujemne

Bardziej szczegółowo

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ KDEMI MORSK KTEDR NWIGCJI TECHNICZEJ ELEMETY ELEKTRONIKI LORTORIUM Kierunek NWIGCJ Specjalność Transport morski Semestr II Ćw. 4 Podstawy techniki cyfrowej Wersja opracowania Marzec 5 Opracowanie: mgr

Bardziej szczegółowo

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu f wy f P Podzielnik częstotliwości: układ, który na każde p impulsów na wejściu daje

Bardziej szczegółowo

Ćw. 7: Układy sekwencyjne

Ćw. 7: Układy sekwencyjne Ćw. 7: Układy sekwencyjne Wstęp Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną następujące układy

Bardziej szczegółowo

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

Projekt zespołowy. Część1: Projekt potokowej jednostki przetwarzającej przeznaczonej do realizacji algorytmu FFT. Rok akademicki 2008/2009 Projekt zespołowy Rok akademicki 2008/2009 Część1: Projekt potokowej jednostki przetwarzającej przeznaczonej do realizacji algorytmu FFT Kierunek studiów: Semestr: Grupa: Informatyka VII PKiSI 2 Wykonawca:

Bardziej szczegółowo

ZADANIE 1. Rozwiązanie:

ZADANIE 1. Rozwiązanie: EUROELEKTR Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej Rok szkolny 200/20 Rozwiązania zadań dla grupy teleinformatycznej na zawody II. stopnia ZNIE ramka logiczna w technologii MOS składa

Bardziej szczegółowo

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

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2018/19 Problem: znajdowanie

Bardziej szczegółowo

Budowa komputera Komputer computer computare

Budowa komputera Komputer computer computare 11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 7 (2h) Obsługa urządzenia peryferyjnego z użyciem pamięci w VHDL. Instrukcja do zajęć laboratoryjnych z przedmiotu

Bardziej szczegółowo

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja 0.1 29.10.2013 Przypomnienie - podział układów cyfrowych Układy kombinacyjne pozbawione właściwości pamiętania stanów, realizujące

Bardziej szczegółowo