Układy cyfrowe projekt.

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

Download "Układy cyfrowe projekt."

Transkrypt

1 Układy cyfrowe projekt. Temat: Implementacja szyfru strumieniowego Rabbit w układach FPGA. Specyfikacja końcowa uwzględnia poprawki i uzupełnienia dodane na etapie implementacji. prowadzący: mgr inż. Tomasz Wojciechowski zespół projektowy: Wojciech Kożuch, g. 4T1 Paweł Król, g. 4T4 Krzysztof Siejkowski, g. 4T1 Opis algorytmu: Algorytm ukryty pod nazwą Rabbit to synchroniczny szyfr strumieniowy zaprezentowany po raz pierwszy w 2003r. Jak dotąd nie wykryto w nim żadnych słabych punktów (z kryptograficznego punktu widzenia). Używając klucza o długości 128 bitów oraz (opcjonalnie) IV (wektora inicjalizacyjnego) o długości 64 bitów generuje on w kolejnych iteracjach wyjściowe bloki 128 pseudolosowych bitów. Są one kombinacją 513 bitów określających stan wewnętrzny. Szyfrowanie/deszyfrowanie polega na XOR-owaniu wygenerowanych pseudolosowych bloków odpowiednio z tekstem szyfrowanym dla zaszyfrowania lub z tekstem zaszyfrowanym dla uzyskania oryginalnej wiadomości. Stan wewnętrzny to 513 bitów podzielonych pomiędzy osiem 32 ch zmiennych stanu (state variables), osiem 32 ch liczników (counters) i jeden bit przeniesienia liczników (counter carry bit). Wszystkie zmienne stanu są aktualizowane przez osiem sprzężonych funkcji nieliniowych Szyfr Rabbit zapewnia możliwość zaszyfrowania do 2 64 bloków tekstu (po 128 bitów każdy). Oznacza to, że odczytanie zaszyfrowanej wiadomości o co najwyżej 2 64 blokach tekstu wymaga co najmniej tyle kroków co poszukiwanie jednego (właściwego) z kluczy. Pierwszy etap działania szyfru Rabbit to pobranie 128-bitowego klucza i podzielenie go na ch rejestrów - 8 zmiennych stanu (x) i 8 liczników (c). Następnie wykonywane są cztery iteracje, w których następuje modyfikacja liczników (zwiększenie o stałą - dodawanie, modyfikacja bitu podtrzymania liczników - dodawanie i dzielenie mod, dzielenie mod), wyliczenie g (potęgowanie, xorowanie, dzielenie mod) i wyliczenie x (dodawanie i przesunięcie bitowe). W wyniku iteracji likwiduje się prostą zależność stanu wewnętrznego od klucza. Na kolejnym odcinku, w celu zapewnienia niemożliwości odwrócenia procesu, następuje reinicjalizacja liczników - zmienne licznikowe xorowane są ze zmiennymi stanu. Potem liczniki modyfikowane (xorowanie) są przez IV (wektor inicjalizujący). Znów wykonywane są 4 iteracje, tak jak po pobraniu klucza. Czterokrotna iteracja zapewnia brak liniowej zależności między kluczem a wektorem. Teraz szyfr jest już prawidłowo zainicjowany. Każda kolejna iteracja zmodyfikuje zmienne x, tak, że będą mogły być traktowane jako pseudolosowe. W wyniku xorowania rejestrów x po kolejnych iteracjach otrzymujemy kolejne 128-bitowe bloki strumienia szyfrującego s, który po kolejnym xorowaniu z tekstem daje zaszyfrowaną wiadomość. Dokładny opis algorytmu:

2 Interfejs układu: Nazwa sygnału Typ portu Szerok ość szyny INPUT Wejście 128 bitów Uwagi dodatkowe Wejście dla danych: klucza, wektora inicjalizującego, tekstu do zaszyfrowania/zdeszyfrowania. Wchodzi bezpośrednio na wejście rejestru. CLOCK Wejście 1 bit Zegar sterujący układem. RESET Wejście 1 bit Reset asynchroniczny. START Wejście 1 bit Wartość 1 sygnalizuje, że układ ma rozpocząć działanie i pobrać tekst z wejścia INPUT. Przy wartości 0 układ jest uśpiony aż do pojawienia się wartości 1. SLEEP Wejście 1 bit Sygnał usypiający układ (wstrzymujący jego pracę). Wartość '0' układ ma pracować. Wartość '1' układ śpi. INIT Wejście 1 bit Informuje układ o tym, że użyty ma być podany na wejście IV wektor inicjalizacyjny. Jeśli na wejściu wartość 1, układ pobierze IV i przejdzie do inicjalizacji, jeśli 0, układ ominie ten krok. OUTPUT Wyjście 128 bitów Zaszyfrowany/odszyfrowany tekst (w zależności od tego, co podano na wejściu). Wyjście z rejestru, w blokach po 128 bitów. DONE Wyjście 1 bit Informuje o tym, czy można pobrać z wyjścia kolejny blok tekstu i podać kolejny na wejście. Wartość 1 można. Dokładny opis poniżej. KEY_OK Wyjście 1 bit Informuje o tym, że trzeba podać klucz na wejście INPUT. Wartość 0 klucz już zbędny, wartość 1 klucz potrzebny. IV_OK Wyjście 1 bit Informuje, że można podać wektor inicjalizacyjny na wejście INPUT. Wartość 0 IV już zbędny, wartość 1 IV potrzebny. SLEEP_OK Wyjście 1 bit Informuje, że układ jest w stanie uśpienia. Wartość '1' układ śpi. Wartość '0' układ pracuje. Wszystkie wyjścia układu prócz SLEEP_OK są buforowane, to znaczy podpięte bezpośrednio do wyjść odpowiednich rejestrów, co pozwala uniknąć szpilek na wyjściu.

3 Sposób startowania układu: Aby układ wystartował, należy podać wartość '1' na wejście START. W momencie pojawienia się wartości '0' na KEY_OK (klucz pobrany, układ rozpoczął pracę) można tę wartość zdjąć. Sposób usypiania układu: Aby układ przeszedł w stan wstrzymania (uśpienia) należy podać wartość '1' na wejście SLEEP. Gdy układ przejdzie w uśpienie, na wyjściu SLEEP_OK pojawi się wartość '1'. Układ będzie wstrzymany tak długo, aż na wejściu SLEEP będzie podane '1'. Gdy na wejściu SLEEP zostanie podane '0', układ zacznie pracę, co zostanie zasygnalizowane wartością '0' na wyjściu SLEEP_OK. Sposób podawania klucza na wejście INPUT: W momencie pojawienia się wartości '1' na KEY_OK (narastające zbocze) należy podać klucz, inaczej układ szyfrować będzie kluczem zerowym. W momencie pojawienia się wartości '0' na KEY_OK (opadające zbocze) klucz można już zdjąć. Sposób nakazania układowi uwzględnienia wektora inicjalizującego: Aby układ pracował z uwzględnieniem wektora inicjalizującego, należy na wejście INIT podać wartość '1'. Wówczas układ pobierze IV i rozpocznie inicjalizację. W tryb pracy z IV przejść można w dowolnym momencie pracy układu, jeśli wraz z pojawieniem się narastającego zbocza na wyjściu IV_OK zapewni się wartość '1' na INIT i utrzyma aż do pobrania IV z wejścia INPUT (patrz niżej).. Wektor inicjalizacyjny może być podawany wielokrotnie; za każdym razem układ powróci wówczas do stanu wewnętrznego sprzed modyfikacji wektorem IV, następnie dokona tej modyfikacji nową wartością wektora, i przejdzie do normalnej pracy. Sposób podawania wektora inicjalizującego na wejścia INPUT: W momencie pojawienia się '1' na IV_OK (narastające zbocze) można podać IV na 64 młodszych bitach. Wektor zostanie pobrany i inicjalizacja przeprowadzona, jeśli na wejściu INIT będzie podana wartość '1'. Jeśli na wejściu INIT będzie wartość '0', układ nie uwzględni wektora inicjalizującego. Gdy na IV_OK pojawi się wartość '0' (opadające zbocze), można zdjąć już wektor IV z INPUT. Sposób podawania tekstu na wejście INPUT: Kolejny blok podać można, gdy na wyjściu DONE pojawi się wartość '1' (czyli wraz z narastającym zboczem sygnału na wyjściu DONE). Blok ten należy utrzymywać na wejściu aż do pojawienia się na wyjściu DONE wartości '0' (opadające zbocze sygnału na wyjściu DONE) bądź też aż do kolejnego narastającego zbocza sygnału. Sugerowana, najprostsza obsługa układu zakłada podawanie bloków tekstu w takt narastającego zbocza sygnału DONE wówczas gwarantowana jest prawidłowa praca układu. Sposób pobierania tekstu z wyjścia OUTPUT: Kolejny blok przetworzonego tekstu pobrać można, gdy na wyjściu DONE pojawi się wartość '1'. Sugerowana, najprostsza obsługa układu zakłada pobieranie bloków tekstu z wyjścia OUTPUT w takt narastającego zbocza sygnału DONE wówczas gwarantowana jest prawidłowa praca układu.

4 Schemat układu: Schemat układu podzielono na schemat ogólny oraz szereg schematów szczegółowych, wyjaśniających budowę bloków spełniających dane funkcje wraz z dokładnym wypisaniem, które sygnały wchodzą do którego bloku. Dla uproszczenia przyjęto jednolitą konwencję graficzną nazw sygnałów: kursywą zapisano sygnały sterujące, wytłuszczono sygnały interfejsu, a sygnały wewnętrzne zapisano bez wyróżnień. Nie przedstawiono bloku automatu sterującego, ale należy rozumieć, że ma on wyjścia odpowiadające wejściom sterującym rejestrów oraz multiplekserów i demultiplekserów. Jeśli sygnały interfejsu nie zostały wyróżnione na schemacie, oznacza to, że za ich obsługę odpowiedzialny jest automat sterujący. Oddzielono kolorami bloki funkcyjne oraz wyraźnie przedstawiono część kombinacyjną. Pominięto dla przejrzystości sygnały resetu oraz zegara przy rejestrach, lecz one oczywiście są tam doprowadzane. W schematach pominięto trzy 1-bitowe rejestry buforujące wyjścia DONE, KEY_OK i IV_OK układu. Są to rejestry przyjmujące wartość bezpośrednio z automatu sterującego (zgodnie z sygnałem sterującym) i podające ją na wyjście. Sygnałami sterującymi są D_R (dla rejestru na wyjściu DONE), K_R (dla rejestru na wyjściu KEY_OK) oraz V_R (dla rejestru na wyjściu IV_OK). Na schemacie pominięto również dla czytelności jeden 1- multiplekser na wejściu rejestru przechowującego wartość FI. Jest on sterowany sygnałem FI_MUX, kieruje do rejestru FI wartość albo z bloku inkrementacji (po kolejnej iteracji), albo z rejestrów kopii zapasowych (przy bloku modyfikacji wektorem IV).

5 Schemat ogólny układu: x 0,i+1... x 7,i+1 (po kolejnej iteracji),i+1... c 7,i+1 (po kolejnej iteracji) KEY [128 bitów] KEY [128 bitów] '... c 7 ' (po reinicjalizacji) '... c 7 ' (po modyfikacji IV) FI_REG [1 bit] Rejestr 1- φ 7 X_MUX [1 bit] C_MUX [2 bity] Modyfikacja... c 7 wektorem IV IV [64 bity] stałe a 0... a 7 [256 b] Inkrementacja wartości... c 7 8 rejestrów 32-ch przechowujących x 0... x 7 X_R [1 bit] X_DMUX [2 bity] 8 rejestrów 32-ch przechowujących... c 7 C_R [1 bit] B_R [1 bit] C_DMUX x 0... x 7 x 0,i... x 7,i (przed kolejną iteracją) [2 bity]... c 7 x 0... x 7... c 7,i... c 7,i (przed kolejną iteracją)... c 7... c 7 16 rejestrów 32-ch przechowujących... c 7 i x 0... x 7 Reinicjalizacja wartości... c 7 G_R [2 bity] φ 7 [1 bit] Wyliczenie wartości x 0... x 7 INPUT Rejestr 128- I_DMUX IV [64 b L] Generowanie strumienia O_R [128 bitów] [2 bity] KEY [128 b] szyfrującego Rejestr 128- x 0... x 7 I_R wejściowy [1 bit] oraz kodowanie/dekodowanie [1 bit] tekstu wyjściowy [128 bitów] OUTPUT [128 bitów]

6 Schemat bloku modyfikacji wartości... c 7 wektorem IV: IV [31..0] ' c 1 c 1 ' IV [63..48, ] c 2 IV [63..32] c 2 ' c 3 IV [47..32, 15..0] c 3 ' c 4 IV [31..0] c 4 ' c 5 IV [63..48, ] c 5 ' c 6 IV [63..32] c 6 ' c 7 IV [47..32, 15..0] c 7 ' Schemat bloku reinicjalizacji wartości... c 7 : x 4 ' c 1 c 1 ' x 5 c 2 c 2 ' x 6 c 3 c 3 ' x 7 c 4 c 4 ' x 0 c 5 c 5 ' x 1 c 6 c 6 ' x 2 c 7 x 3 c 7 '

7 Schemat bloku generowania strumienia oraz szyfrowania/deszyfracji tekstu: x 0 [16L b] x 5 [16H b] INPUT [15..0] INPUT [31..16] Schemat bloku inkrementacji wartości... c 7 : φ a 0 7 z przeniesieniem ' x 0 [16H b] x 3 [16L b] x 2 [16L b] x 7 [16H b] x 2 [16H b] x 5 [16L b] INPUT [47..32] INPUT [63..48] a 1 c 1 φ 0 a 2 c 2 φ 1 z przeniesieniem c 1 ' z przeniesieniem c 2 ' φ 2 x 4 [16L b] x 1 [16H b] Rejestr potokowy 1- INPUT [79..64] a 3 c 3 z przeniesieniem c 3 ' FI_S1_R z przeniesieniem x 4 [16H b] x 7 [16L b] INPUT [95..80] x 6 [16L b] x 3 [16H b] INPUT [ ] a 4 c 4 φ 3 a 5 c 5 c 4 ' φ 4 z przeniesieniem c 5 ' φ 5 Rejestr potokowy 1- a 6 z przeniesieniem INPUT [ ] x 6 [16H b] x 1 [16L b] FI_S2_R c 6 a 7 c 7 φ 6 z przeniesieniem φ 7 ' c 6 ' c 7 '

8 Schemat bloku wyliczania wartości x 0... x 7 : c 1 x 1 c 3 x 3 c 5 x 5 c 7 x 7 x 0 c 2 x 2 c 4 x 4 c 6 x 6 Układ 32- podnoszący do kwadratu Układ 32- podnoszący do kwadratu Układ 32- podnoszący do kwadratu Układ 32- podnoszący do kwadratu Układ 32- podnoszący do kwadratu [32L] [32H] G_R [32L] [32H] G_R Rejestr 32- Układ 32- podnoszący do kwadratu [32L] [32H] G_R [32L] [32H] G_R Rejestr 32- Układ 32- podnoszący do kwadratu [32L] [32H] G_R [32L] [32H] G_R Rejestr 32- Układ 32- podnoszący do kwadratu [32L] [32H] G_R [32L] [32H] G_R Rejestr 32- Rejestr 32- g 1 g 1 16 Rejestr 32- g 3 g 3 16 Rejestr 32- g 5 g 5 16 Rejestr 32- g 7 g 7 16 g 0 g 2 g 4 g 6 g 0 8 g 0 16 g 2 16 g 2 8 g 4 16 g 4 8 g 6 16 g 6 8

9 g 0 g 7 16 g 6 16 g 2 g 1 16 g 0 16 g 4 g 3 16 g 2 16 g 6 g 5 16 g 4 16 x 0 g 1 g 0 8 g 7 x 2 g 3 g 2 8 g 1 x 4 g 5 g 4 8 g 3 x 6 g 7 g 6 8 g 5 x 1 x 3 x 5 x 7

10 Opis działania: Sygnał na wejściu START uruchamia układ. W tym samym cyklu na wejście INPUT podawany jest klucz. Układ używa klucza do zainicjalizowania swego stanu wewnętrznego, następnie oblicza kolejne iteracje zgodnie z algorytmem. Po 4 iteracjach dokonywane jest dodatkowa reinicjalizacja liczników. Sprawdzane jest wejście INPUT jeśli podano na nim wektor inicjalizacyjny (sygnał na wejściu INIT), dokonywana jest modyfikacja liczników, jeśli zaś wejście jest puste (wartość zerowa), układ przechodzi do szyfrowania. Na wejście INPUT podawany jest w blokach po 128 bitów tekst zaszyfrowany lub jawny. Jest on ładowany do pamięci wewnętrznej układu, który następnie XORując pobrany blok z iteracją algorytmu tworzy w nowym miejscu pamięci wewnętrznej blok zaszyfrowany/odszyfrowany. Po przetworzeniu całego bloku jest on podawany na wyjście, a układ pobiera kolejny blok informacji. Cykl powtarza się wielokrotnie. Opis budowy układu: Dane w układzie przechowywane są w rejestrach. Wartości x zajmują 8 32-ch rejestrów, podobnie wartości c. Wartość bitu przeniesienia liczników przechowywana jest w jednom rejestrze. Ponadto użyte są dwa rejestry 128-bitowe (wejściowy i wyjściowy), rejestry kopii zapasowej przy modyfikacji IV (16 32-ch i 1 1-), dwa 1-bitowe rejestry potokowe przy inkrementacji liczników, jeden trzy 1-bitowe rejestry buforujące wyjścia układu, 8 rejestrów 32-ch do wartości g oraz jeden rejestr 48- do przechowywania stanu wewnętrznego automatu (w kodowaniu ONE-HOT, 48 stanów). Wszystkie rejestry (prócz niejawnego rejestru automatu) mają doprowadzone sterowanie sygnałami HOLD, LOAD, CLOCK i RESET. Układ wykorzystuje 1591 bitów rejestrów, 16 multiplekserów 32-ch, jeden multiplekser 1-, 20 demultiplekserów 32-ch, 24 XORy 32-bitowe, 16 XORów 16-ch, 8 sumatorów 32-ch z przeniesieniem, 16 sumatorów 32-ch bez przeniesienia i 8 układów podnoszących do kwadratu liczbę 32-bitową.

11 Automat sterujący: Sterowanie odbywa się poprzez automat sterujący. Zapewnia on obsługę następujących sygnałów (wyjścia automatu): Sterowanie multiplekserów podający 256 sygnał X_MUX, C_MUX, wewnętrzny (zmienne x, liczniki c) z odpowiedniego wejścia FI_MUX (klucz, bloki funkcyjne) na 8 32-ch rejestrów. Sygnały dwubitowe i jednobitowe. I_DMUX X_DMUX, C_DMUX X_R, C_R, G_R, I_R, O_R, B_R, FI_REG, FI_S1_R, FI_S2_R, D_R, V_R, K_R KEY_OK, IV_OK, SLEEP_OK, DONE Sterowanie demultiplekserami na wyjściu rejestru wejściowego. W zależności od potrzeby, sygnał pobrany z wejścia INPUT kierowany jest do szyn KEY, do szyn IV lub wprost do bloku szyfrowania tekstu. Sygnał dwu. Sterowanie demultiplekserów kierunkujących 256 sygnał wewnętrzny (zmienne x, liczniki c) z 8 32-ch rejestrów na odpowiednie wejście bloku funkcyjnego. Sygnały dwubitowe. Sterowanie rejestrów, jednobitowe. We wszystkich przypadkach sygnał 0 oznacza HOLD, sygnał 1 to LOAD. Sygnały należące do interfejsu, opis w opisie interfejsu. Jednobitowe. Na wyjściu automatu znajduje się 27 bitów sterowania. Warto zauważyć, że sygnały rejestrów oraz multiplekserów i demultiplekserów, mimo, iż dostarczane do wielu bloków funkcyjnych naraz, w istocie mogą być opisywane i traktowane wspólnie, gdyż sterowanie odbywa się grupami rejestrów, a nie pojedynczo. Wejścia automatu to START, SLEEP, INIT, CLOCK oraz RESET, wszystkie jednobitowe. Pod wpływem tych wejść stan automatu może się zmieniać. Sygnał RESET zeruje wszystkie rejestry oraz wprowadza automat w stan S 0, niezależnie od aktualnego stanu.

12 Stany automatu: Uwaga! Jeśli nie wypisano zmiany wartości sygnału, oznacza to, że jest na nim wartość jak w stanie poprzednim! lp. nazwa w kodzie VHDL Opis stanu i sygnałów sterujących w danym stanie. S 0 preinit oczekiwanie na sygnał START; wszystkie wyjścia automatu są wyzerowane, prócz KEY_OK, na którym w drugim cyklu zegara pojawia się wartość '1'; D_R, V_R i K_R mają wartość LOAD; S 1 take_key pobranie klucza; I_R ma wartość LOAD; I_DMUX kieruje na szynę KEY, K_R ładuje wartość '0' do rejestru wyjściowego; S 2 initializing inicjalizacja szyfru; X_MUX i D_MUX kierują z szyny KEY do rejestrów, X_R i C_R mają wartość LOAD; I_R ma wartość HOLD; KEY_OK i IV_OK - wartość 0; S 3 c_inc1 inkrementacja liczników część pierwsza (1); X_R, C_R mają wartość HOLD, FI_S1_R ma wartość LOAD; S 4 c_inc1_2 inkrementacja liczników część druga (1); FI_S1_R ma wartość HOLD, FI_S2_R ma wartość LOAD; S 5 c_inc1_3 inkrementacja liczników część trzecia (1); C_DMUX kieruje na inkrementację, FI_REG ma wartość LOAD, C_MUX kieruje z inkrementacji; C_R ma wartość LOAD; FI_S2_R ma wartość HOLD; S 6 g_calc1 wyliczenie wartości g (1); C_R i FI_REG mają wartość HOLD, X_DMUX i C_DMUX kierują na blok wyliczania x, G_R ma wartość LOAD; S 7 x_calc1 wyliczanie wartości x (1); X_R to LOAD, X_MUX kieruje z bloku wyliczania x; FI_S1_R ma wartość LOAD; G_R ma wartość HOLD; S 8 c_inc2 inkrementacja liczników część pierwsza (2); FI_S1_R ma wartość HOLD; FI_S2_R ma wartość LOAD; S 9 c_inc2_2 inkrementacja liczników część druga (2); C_DMUX kieruje na inkrementację, FI_REG ma wartość LOAD, C_MUX kieruje z inkrementacji; C_R ma wartość LOAD; FI_S2_R ma wartość HOLD; S 10 g_calc2 wyliczenie wartości g (2); C_R i FI_REG mają wartość HOLD, X_DMUX i C_DMUX kierują na blok wyliczania x, G_R ma wartość LOAD; S 11 x_calc2 wyliczanie wartości x (2); X_R to LOAD, X_MUX kieruje z bloku wyliczania x; G_R to HOLD; FI_S1_R ma wartość LOAD; S 12 - S 19 c_inc3, c_inc3_2, g_calc3, x_calc3, c_inc4, c_inc4_2, g_calc4, x_calc4, Powielenie stanów S 8 -S 11 (tak, że automat wykonuje jeszcze dwie iteracje składające się z inkrementacji liczników, wyliczenia g oraz wyliczenia x; w ostatnim stanie V_R ma wartość LOAD;

13 S 20 c_reinit reinicjalizacja liczników; V_R ma wartość HOLD, IV_OK to '1'; X_R to HOLD, C_DMUX kieruje na blok reinicjalizacji, C_MUX z inicjalizacji, C_R ma wartość LOAD; V_R to HOLD; S 21 backup zapisanie stanu wewnętrznego; X_DMUX i C_DMUX kierują na blok IV, B_R ma wartość LOAD; C_R ma wartość HOLD; S 22 take_iv pobranie wektora IV; I_R ma wartość LOAD, V_R to LOAD; S 23 iv_mod modyfikacja wektorem IV; C_MUX kieruje z bloku IV, B_R ma wartość HOLD, C_R ma wartość LOAD, FI_REG to LOAD, X_R to LOAD; IV_OK ma wartość 0; V_R to HOLD; I_DMUX kieruje na szynę IV; S 24 - S 40 c_inc5, c_inc5_2, c_inc5_3, g_calc5, x_calc5, c_inc6, c_inc6_2, g_calc6, x_calc6, c_inc7, c_inc7_2, g_calc7, x_calc7, c_inc8, c_inc8_2, g_calc8, x_calc8, Powielenie stanów S 3 -S 19 (tak, że automat wykonuje cztery iteracje składające się z inkrementacji liczników, wyliczenia g oraz wyliczenia x); S 41 sleeping uśpienie; X_R, C_R, O_R, I_R mają wartość HOLD; V_R to LOAD; SLEEP_OK ma wartość 1; ładowane jest '0' na IV_OK; S 42 c_inc_without_iv inkrementacja liczników po raz pierwszy - część pierwsza; FI_S1_R ma wartość LOAD; S 43 c_preinc inkrementacja liczników po raz pierwszy część druga; FI_S2_R ma wartość LOAD; FI_S1_R ma wartość HOLD; S 44 c_inc inkrementacja liczników; X_R, O_R mają wartość HOLD, C_DMUX kieruje na inkrementację, FI_REG ma wartość LOAD, C_MUX kieruje z inkrementacji; V_R ma wartość LOAD; C_R to LOAD; S 45 g_calc wyliczenie wartości g; C_R, V_R i FI_REG mają wartość HOLD, X_DMUX i C_DMUX kierują na blok wyliczania x, G_R ma wartość LOAD; S 46 x_calc_data_take pobranie tekstu i wyliczanie wartości x; X_R to LOAD, X_MUX kieruje z bloku wyliczania x; G_R to HOLD; FI_S1_R, X_R, V_R, I_R, D_R to LOAD; S 47 endecrypting generacja strumienia i kodowanie; FI_S1_R, X_R, V_R, I_R, D_R to HOLD; FI_S2_R, D_R i O_R to LOAD; X_DMUX kieruje na blok generacji strumienia; Stany S 1 S 20 odpowiadają za pobranie klucza i inicjalizację układu, w szczególności uzyskanie odpowiedniego stanu wewnętrznego; stany S 21 S 40 odpowiadają za pobranie i przetworzenie wektora IV; w normalnej pracy (szyfrowanie/deszyfrowanie) automat przyjmuje stany z zakresu S 44 - S 47 oraz stan S 41 uśpienie.

14 Graf stanów z wyszczególnieniem, pod wpływem jakich sygnałów stan się zmienia; jeśli brak wyszczególnienia, rozumieć należy, że stan zmienia się pod wpływem taktu zegara niezależnie od sygnałów na wejściu; sygnał RESET wprowadza automat w stan S 0 niezależnie od aktualnego stanu i wartości na wejściach: START [1] S 0 S 1 S 2 S 3 S 4 S 5 START [0] S 6 S 12 S 11 S 10 S 9 S 8 S 7 S 13 S 14 S S S 18 S 15 S 19 S 38 S 37 S 39 S 40 INIT [0] S S S 21 S 20 S 43 S 44 SLEEP [0] SLEEP [1] SLEEP [0] S 45 S 46 S 41 INIT [1] SLEEP [1] INIT [1] S 26 S 47 S 27 S 36 S 28 S 35 S 33 S 31 S 29 S 34 S 32 S 30

15 Główne zmiany w realizacji względem wersji projektowej: dodano dwa rejestry potokowe przecinające ścieżkę krytyczną w bloku inkrementacji liczników; pozwoliło to zmniejszyć ścieżkę krytyczną o ponad połowę; dzięki wykonywaniu części operacji równolegle nie zwiększono przy tym liczby stanów obsługujących normalną pracę układu; aby obsłużyć rejestry potokowe, dodano 14 nowych stanów; zaimplementowane jest tak, aby wszystkie przypadały na etap przygotowywania układu do pracy, zaś sama praca odbywała się na tej samej liczbie stanów (4 stany); poprawiono sposób obsługi wektora inicjalizującego; teraz wektor inicjalizacyjny można wczytywać wielokrotnie, za każdym razem modyfikując pierwotny stan wewnętrzny układu; ponadto umożliwiono rozpoczęcie korzystania z wektora inicjalizującego w dowolnym momencie pracy układu, a nie jedynie przy ustalaniu stanu wewnętrznego; dodano jedno sygnał wyjścia SLEEP_OK informujący o uśpieniu układu; ujednolicono rolę sygnałów DONE, IV_OK i KEY_OK; ponadto poprzez buforowanie wyjść zlikwidowano szpilki na tych wyjściach; umożliwiło to jednoznacznie zdefiniować sterowanie układu z punktu widzenia interfejsu (dokładne informacje zapisano w dokumentacji pod tabelą interfejsu, strona 4); poprawiono wiele błędów, m.in. błąd podwójnej inkrementacji liczników przy powrocie z uśpienia, błąd zablokowania wyjść rejestrów kopii zapasowej, błąd niezapamiętywania wartości bitu przeniesienia liczników przy zapisywaniu kopii zapasowej;

16 Symulacja dla prostych danych wejściowych (wszystkie liczby zapisane szesnastkowo): wykresy czasowe wygenerowano w Quartusie; widoczne jest następstwo stanów oraz przebieg sygnałów interfejsu; Klucz: brak IV przedstawiono pierwsze 3 iteracje przy ustalonym stanie wewnętrznym Oczekiwano: B15754F036A5D6ECF56B45261C4AF702 88E8D815C59C0C397B696C4789C68AA7 F416A1C3700CD451DA68D D696 dane oczekiwane wygenerowano za pomocą implementacji szyfru w C dostarczonej przez twórców szyfru; są identyczne z otrzymanym; Klucz: IV: ustalony stan wewnętrzny, po modyfikacji IV, pierwsze 3 iteracje Oczekiwano: C6A7275EF85495D87CCD5D376705B7ED 5F29A6AC04F5EFD47B8F293270DC4A8D 2ADE822B29DE6C1EE52BDB8A47BF8F66 dane oczekiwane wygenerowano za pomocą implementacji szyfru w C dostarczonej przez twórców szyfru; są identyczne z otrzymanym;

17 Testowanie: Układ testowy napisany został w języku VHDL. Do jego symulacji użyto programu ModelSim 6.1g formy Altera. Układ testowy pobiera wektor klucza 128-bitowego w formacie heksagonalnym z pliku key.txt, podaje go na wejście układu testowanego (a więc implementacji szyfru strumieniowego Rabbit), zdejmuje wraz z odpowiednią wartością na wyjściu KEY_OK, a gdy wyjście IV_OK zasygnalizuje, podaje 64 wektor IV także z pliku key.txt. Następnie zaś pod wpływem wyjścia DONE układu pobiera z pliku test_vectors_iv.txt 3 pierwsze wartości wyjść, i porównuje je z wartościami na wyjściu badanego układu. Jeśli wartości te są identyczne, w pliku results.txt umieszczony zostaje napis + Test wykonany poprawnie, jeśli zaś są błędne, w tym samym pliku zapisane zostaje - Test wykazal blad. Wartości wyjść w pliku test_vectors_iv.txt generowane są za pomocą wzorcowej implementacji szyfru strumieniowego Rabbit napisanej w C i dostarczonej przez twórców algorytmu. Kod tej implementacji znaleźć można tutaj: Testbench przeprowadzony dla różnych wartości kluczy i wektorów IV wskazywał zawsze na bezbłędną pracę układu. Układ testujący niestety nie zawiera testowania poprawnego działania sygnałów SLEEP i RESET, jednak poprawne działanie tych wejść zaobserwować można na dołączonej do projektu symulacji czasowej w programie Quartus.

18 Wyniki syntezy dla różnych ustawień kompilacji: Syntezę i kompilację przeprowadzono w programie Quartus II wersja 7.2 firmy Altera. Podstawowym układem, dla którego dokonano kompilacji był EP2C35F672C6 z rodziny Cyclone II firmy Altera. Wyniki syntezy przedstawiono poniżej. Kodowanie One-Hot. Synteza Speed: liczba zajętych komórek logicznych: częstotliwość zegara: 48,75 MHz Synteza Balanced: liczba zajętych komórek logicznych: częstotliwość zegara: 49,59 MHz Synteza Area: liczba zajętych komórek logicznych: częstotliwość zegara: 47,16 MHz Kodowanie Minimal Bits: Synteza Balanced: liczba zajętych komórek logicznych: częstotliwość zegara: 45,69 MHz Komentarz: Kod okazał się odporny na zabiegi optymalizacyjne na poziomie typu syntezy, co nie jest w żadnym stopniu zaskoczeniem. Częstotliwość zegara jest w pełni określona przez długość ścieżki krytycznej, której przebycie w naszej implementacji szyfru na układzie EP2C35F672C6 zawsze oscylowało wokół 20 ns (czas ustalenia się wartości w łańcuchu sumatorów w module increment lub czas wykonania podniesienia do kwadratu liczby 32bitowej w module nextstate). Wielkość układu (ilość komórek) w pewnym stopniu określało zapotrzebowanie na rejestry (1591 bitów przy kodowaniu one-hot), zaś największą możliwość optymalizacji zostawiał moduł nextstate, w którym podnoszenie do kwadratu liczby 32bitowej zajmowało bardzo wiele komórek. Zajętość ta najwyraźniej jest w układzie EP2C35F672C6 niezbędna, gdyż nie udało się tego modułu zmniejszyć. Jak pokazały wyniki syntezy, algorytmy zaimplementowane w Quartusie niezbyt skutecznie wykonały swe zadanie synteza typu Area zajęła największą liczbę komórek logicznych, zaś Speed jest wolniejszy niż Balanced. Synteza Balanced okazała się ogólnie najlepszą, zarówno pod względem zajętości układu, jak i szybkości, jednak różnice są niewielkie. Zastosowanie kodowania Minimal Bits również nie wpłynęło znacząco na układ liczba zajętych komórek nieco się zwiększyła (choć zmniejszyła się liczba zajętych komórek rejestrów, z 1591 na 1549, co potwierdza rzeczywiste zmniejszenie liczby bitów kodujących stany automatu), prędkość nieco spadła. Trzeba jednak podkreślić, że wahania prędkości wynikały z zastosowanych w danej syntezie algorytmów rozmieszczania w układzie poszczególnych komórek, które czasem nieco zmieniały długość ścieżki krytycznej, ale nie wpływały na nią szczególnie wykonanie danej operacji (sumowania kaskadowego w module increment) na danej liczbie bitów najwyraźniej w układzie EP2C35F672C6 zajmuje zawsze podobny czas. Drogą do optymalizacji jest więc nie rodzaj syntezy, a cięcie ścieżki krytycznej.

19 Uwagi końcowe, wnioski, przemyślenia własne zespołu projektowego: Kod implementacji szyfru strumieniowego Rabbit napisany przez nasz zespół projektowy jest kodem względnie uniwersalnym, krok po kroku realizującym algorytm szyfrowania. Oznacza to, że zmodyfikowanie kodu tak, by układ pracował w danych warunkach dotyczących np. szerokości szyn w interfejsie albo wymaganej przepływności bitowej szyfrowania, nie powinno nastręczać wielu trudności. Oczywiście za prostotę i uniwersalność kodu płaci się powolnym działaniem. Wąskim gardłem układu są dwa moduły increment z łańcuchem kaskadowym sumatorów 32ch oraz nextstate z wyliczaniem kwadratu liczby 32bitowej. O ile zmniejszenie ścieżki krytycznej na łańcuchu sumatorów oznacza proste przecinanie ścieżek przenoszących bit carry rejestrami potokowymi (co pozwoli ok. 2-3 krotnie przyspieszyć zegar), o tyle mnożenie 32ch liczb wymagać będzie albo zastosowania jakiegoś algorytmu mnożenia, albo wyspecjalizowanych komórek mnożących. Układ EP2C35F672C6 posiada 70 takich komórek, jednak operują one na max. 9 bitach. Jeśli udałoby się zdekomponować mnożenie 32bitów na bloki 9-bitowe, układ znacząco by przyspieszył. Pamiętać jednak należy, że każdy rejestr potokowy oznacza jeden więcej stan automatu w czasie rzeczywistej pracy. Oczywiście na etapie inicjalizacji układu dodanie nawet bardzo znacznej liczby stanów nie powinno mieć większych konsekwencji objawi się to jedynie wolniejszym startowaniem, co dla układów szyfrujących zwykle nie jest najważniejsze, natomiast w czasie normalnej pracy liczba stanów przy określonej częstotliwości zegara determinuje przepustowość bitową, zgodnie ze wzorem: przepustowość bitowa [bit/sec] = 128 [bit] * częstotliwość [Hz] / liczba stanów automatu w pracy Liczba 128 w tym wzorze to wielkość bloku, na jakim operuje szyfr Rabbit i wynika bezpośrednio z algorytmu dostarczonego przez twórców szyfru. W obecnym kodzie przepustowość wynosi ok. 1,6 Gbit/sec. Liczba stanów automatu w czasie pracy to 4, częstotliwość ok. 50MHz. Trzeba jednak zaznaczyć, że wielkość ta oznacza w rzeczywistości wydajność układu, jeśli zapewnimy podawanie na wejście tak dużej liczby danych, i to w porcjach po 128 bitów. Wymagania takie w wielu przypadkach mogą nie pasować do zastosowania, z czego zdajemy sobie sprawę. Szczególnie istotny jest z naszego punktu widzenia problem wielkości szyn w interfejsie; 2x128 bitów to stosunkowo wiele (płytka laboratoryjna zapewnia komunikację przez USB z modułem odczytującym naraz jedynie 16 bitów!). Oczywiście nic nie stoi na przeszkodzie, żeby liczbę tę zmniejszyć; trzeba będzie jednak zwiększyć wówczas liczbę stanów (gdyż obecny kod nie umożliwia zmniejszenia szyny do mniej niż 40 bitów) i dodać wyjście w interfejsie informujące o pobraniu paczki danych. Zwiększenie liczby stanów ze względu na wąską szynę wejściową będzie miało też dobre strony równolegle z pobieraniem danych wykonywać będzie można operacje inkrementujące stan automatu, czyli dokonać wspomnianej wyżej optymalizacji modułów increment i nextstate. Zmniejszenie ścieżki krytycznej złagodzi zmianę liczby stanów i związany z nią spadek przepustowości. Oczywiście może też zdarzyć się tak, że przed układem postawione będą inne warunki pracy, związane ze stałą częstotliwością zegara albo z koniecznością korzystania z jednej szyny w trybie write/read. Trzeba będzie wówczas wprowadzić w kod niezbędne zmiany; ich charakter zależy jednak od konkretnej sytuacji, dlatego trudno podać jest ogólny algorytm optymalizacyjny. Najistotniejsze z naszego punktu widzenia jest zachowanie równowagi między zwiększaniem szybkości a zwiększaniem liczby stanów automatu, oraz wykorzystywanie wszelkich możliwości wykonywania operacji równolegle. Twórcy algorytmu szacują, że dobrze zaprojektowana implementacja powinna działać na układach o stopniu zaawansowania porównywalnym z EP2C35F672C6 z przepływnością sięgającą 9 Gbit/sec. Nasz układ działa przeszło 5 razy wolniej, więc zdecydowanie jest jeszcze nad czym pracować, pamiętając jednak, że to warunki zewnętrzne pracy układu powinny warunkować ostateczną strategię optymalizacji.

Implementacja algorytmu szyfrującego

Implementacja algorytmu szyfrującego Warszawa 25.01.2008 Piotr Bratkowski 4T2 Przemysław Tytro 4T2 Dokumentacja projektu Układy Cyfrowe Implementacja algorytmu szyfrującego serpent w układzie FPGA 1. Cele projektu Celem projektu jest implementacja

Bardziej szczegółowo

Synteza strukturalna automatów Moore'a i Mealy

Synteza strukturalna automatów Moore'a i Mealy Synteza strukturalna automatów Moore'a i Mealy Formalna definicja automatu: A = < Z, Q, Y, Φ, Ψ, q 0 > Z alfabet wejściowy Q zbiór stanów wewnętrznych Y alfabet wyjściowy Φ funkcja przejść q(t+1) = Φ (q(t),

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

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 8

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś  Wykład 8 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 8 Spis treści 13 Szyfrowanie strumieniowe i generatory ciągów pseudolosowych 3 13.1 Synchroniczne

Bardziej szczegółowo

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

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

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 3 (4h) Konwersja i wyświetlania informacji binarnej w VHDL Instrukcja do zajęć laboratoryjnych z przedmiotu Synteza

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 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

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

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy Testowanie układów kombinacyjnych Przykładowy układ Wykrywanie błędów: 1. Sklejenie z 0 2. Sklejenie z 1 Testem danego uszkodzenia nazywa się takie wzbudzenie funkcji (wektor wejściowy), które daje błędną

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

Projektowanie układów na schemacie

Projektowanie układów na schemacie Projektowanie układów na schemacie Przedstawione poniżej wskazówki mogą być pomocne przy projektowaniu układach na poziomie schematu. Stałe wartości logiczne Aby podłączyć wejście do stałej wartości logicznych

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

Układy kombinacyjne 1

Układy kombinacyjne 1 Układy kombinacyjne 1 Układy kombinacyjne są to układy cyfrowe, których stany wyjść są zawsze jednoznacznie określone przez stany wejść. Oznacza to, że doprowadzając na wejścia tych układów określoną kombinację

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

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

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia. Kilka informacji o przerzutnikach Jaki układ elektroniczny nazywa się przerzutnikiem? Przerzutnikiem bistabilnym jest nazywany układ elektroniczny, charakteryzujący się istnieniem dwóch stanów wyróżnionych

Bardziej szczegółowo

Laboratorium przedmiotu Technika Cyfrowa

Laboratorium przedmiotu Technika Cyfrowa Laboratorium przedmiotu Technika Cyfrowa ćw.3 i 4: Asynchroniczne i synchroniczne automaty sekwencyjne 1. Implementacja asynchronicznych i synchronicznych maszyn stanu w języku VERILOG: Maszyny stanu w

Bardziej szczegółowo

Układy cyfrowe - Algorytm Twofish

Układy cyfrowe - Algorytm Twofish Jakub Lutyński 4T2 Paweł Podkalicki 4T2 Andrzej Zaleski 4T2 Michał Wilkowski Warszawa, 27.01.2008 r Układy cyfrowe - Algorytm Twofish 1. Opis projektu Celem naszego projektu będzie zrealizowanie układu

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

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

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5. Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5. Klasa III Opracuj projekt realizacji prac związanych z badaniem działania cyfrowych bloków arytmetycznych realizujących operacje

Bardziej szczegółowo

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

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne Schemat ogólny X Y Układ kombinacyjny S Z Pamięć Zegar Działanie układu Zmiany wartości wektora S możliwe tylko w dyskretnych chwilach czasowych

Bardziej szczegółowo

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

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania). Ćw. 10 Układy sekwencyjne 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną układy rejestrów

Bardziej szczegółowo

W przypadku spostrzeżenia błędu proszę o przesłanie informacji na adres

W przypadku spostrzeżenia błędu proszę o przesłanie informacji na adres PROJEKTOWANIE LICZNIKÓW (skrót wiadomości) Autor: Rafał Walkowiak W przypadku spostrzeżenia błędu proszę o przesłanie informacji na adres rafal.walkowiak@cs.put.poznan.pl 1. Synchroniczne łączenie liczników

Bardziej szczegółowo

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch) DSCH2 to program do edycji i symulacji układów logicznych. DSCH2 jest wykorzystywany do sprawdzenia architektury układu logicznego przed rozpoczęciem projektowania fizycznego. DSCH2 zapewnia ergonomiczne

Bardziej szczegółowo

Funkcja Boolowska a kombinacyjny blok funkcjonalny

Funkcja Boolowska a kombinacyjny blok funkcjonalny SWB - Kombinacyjne bloki funkcjonalne - wykład 3 asz 1 Funkcja Boolowska a kombinacyjny blok funkcjonalny Kombinacyjny blok funkcjonalny w technice cyfrowej jest układem kombinacyjnym złożonym znwejściach

Bardziej szczegółowo

Implementacja algorytmu DES

Implementacja algorytmu DES mplementacja algorytmu DES Mariusz Rawski rawski@tele.pw.edu.pl www.zpt.tele.pw.edu.pl/~rawski/ Z Mariusz Rawski 1 Algorytm DES DES (Data Encryption Standard) - jest szyfrem blokowym, o algorytmie ogólnie

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

Arytmetyka liczb binarnych

Arytmetyka liczb binarnych Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1

Bardziej szczegółowo

PODSTAWY TEORII UKŁADÓW CYFROWYCH

PODSTAWY TEORII UKŁADÓW CYFROWYCH PODSTAWY TEORII UKŁADÓW CYFROWYCH UKŁADY KODUJĄCE Kodery Kodery Kodery służą do przedstawienia informacji z tylko jednego aktywnego wejścia na postać binarną. Ponieważ istnieje fizyczna możliwość jednoczesnej

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

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Układy synchroniczne Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 26 października 2015 Co to jest układ sekwencyjny? W układzie sekwencyjnym,

Bardziej szczegółowo

DOKUMENTACJA KOŃCOWA. Szyfr blokowy Blowfish. Prowadzący: mgr inż. T. Wojciechowski. Warszawa, 5 czerwca 2008

DOKUMENTACJA KOŃCOWA. Szyfr blokowy Blowfish. Prowadzący: mgr inż. T. Wojciechowski. Warszawa, 5 czerwca 2008 Warszawa, 5 czerwca 2008 Monika Rojek Michał Krotewicz Piotr Duda Jan Bystroń gr. 4T1 DOKUMENTACJA KOŃCOWA Szyfr blokowy Blowfish. Prowadzący: mgr inż. T. Wojciechowski 1. Opis algorytmu Blowfish to szyfr

Bardziej szczegółowo

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18 Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18 ZADANIE 1 Komparator szeregowy 2 liczb Specyfikacja wymagań dla układu

Bardziej szczegółowo

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych Michał Leśniewski Tomasz Władziński Układy Cyfrowe projekt Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma Opis głównych modułów sprzętowych Realizacja funkcji gamma entity

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

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

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp:

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp: Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp: Licznik elektroniczny - układ cyfrowy, którego zadaniem jest zliczanie wystąpień sygnału zegarowego. Licznik złożony

Bardziej szczegółowo

Struktury specjalizowane wykorzystywane w mikrokontrolerach

Struktury specjalizowane wykorzystywane w mikrokontrolerach Struktury specjalizowane wykorzystywane w mikrokontrolerach Przetworniki analogowo-cyfrowe i cyfrowoanalogowe Interfejsy komunikacyjne Zegary czasu rzeczywistego Układy nadzorujące Układy generacji sygnałów

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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

Elektronika i techniki mikroprocesorowe

Elektronika i techniki mikroprocesorowe Elektronika i techniki mikroprocesorowe Technika cyfrowa ZłoŜone one układy cyfrowe Katedra Energoelektroniki, Napędu Elektrycznego i Robotyki Wydział Elektryczny, ul. Krzywoustego 2 PLAN WYKŁADU idea

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

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY WFiIS LABORATORIUM Z ELEKTRONIKI Imię i nazwisko: 1. 2. TEMAT: ROK GRUPA ZESPÓŁ NR ĆWICZENIA Data wykonania: Data oddania: Zwrot do poprawy: Data oddania: Data zliczenia: OCENA CEL ĆWICZENIA Ćwiczenie

Bardziej szczegółowo

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015 Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów synchronicznych Rafał Walkowiak Wersja.2 24/25 UK Funkcje wzbudzeń UK Funkcje wzbudzeń Pamieć Pamieć UK Funkcje wyjściowe

Bardziej szczegółowo

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

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1 Część 3 Układy sekwencyjne Układy sekwencyjne i układy iteracyjne - grafy stanów 18.11.2017 TCiM Wydział EAIiIB Katedra EiASPE 1 Układ cyfrowy - przypomnienie Podstawowe informacje x 1 x 2 Układ cyfrowy

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

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

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM Spis treści 1. Wstęp... 9 2. Ćwiczenia laboratoryjne... 12 2.1. Środowisko projektowania Quartus II dla układów FPGA Altera... 12 2.1.1. Cel ćwiczenia... 12 2.1.2. Wprowadzenie... 12 2.1.3. Przebieg ćwiczenia...

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

Laboratorium Komputerowe Systemy Pomiarowe

Laboratorium Komputerowe Systemy Pomiarowe Jarosław Gliwiński, Łukasz Rogacz Laboratorium Komputerowe Systemy Pomiarowe ćw. Programowanie wielofunkcyjnej karty pomiarowej w VEE Data wykonania: 15.05.08 Data oddania: 29.05.08 Celem ćwiczenia była

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

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

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych. Elementy struktur cyfrowych Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych. Magistrale W układzie bank rejestrów do przechowywania danych. Wybór źródła danych

Bardziej szczegółowo

Programator Kart Master - klient

Programator Kart Master - klient Programator Kart Master - klient Kraków 2002.11.27 SPIS TREŚCI 1 WSTĘP... 2 2 ROZPOCZĘCIE PRACY Z PROGRAMEM... 3 3 ZMIANA KLUCZA DOSTĘPU.... 4 4 GENEROWANIE KART UŻYTKOWNIKÓW... 5 1 1 Wstęp Programator

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

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

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

LEKCJA. TEMAT: Funktory logiczne.

LEKCJA. TEMAT: Funktory logiczne. TEMAT: Funktory logiczne. LEKCJA 1. Bramką logiczną (funktorem) nazywa się układ elektroniczny realizujący funkcje logiczne jednej lub wielu zmiennych. Sygnały wejściowe i wyjściowe bramki przyjmują wartość

Bardziej szczegółowo

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek Architektura systemów komputerowych Poziom układów logicznych. Układy sekwencyjne Cezary Bolek Katedra Informatyki Plan wykładu Układy sekwencyjne Synchroniczność, asynchroniczność Zatrzaski Przerzutniki

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

Automatyka. Treść wykładów: Multiplekser. Układ kombinacyjny. Demultiplekser. Koder

Automatyka. Treść wykładów: Multiplekser. Układ kombinacyjny. Demultiplekser. Koder Treść wykładów: utomatyka dr inż. Szymon Surma szymon.surma@polsl.pl http://zawt.polsl.pl/studia pok., tel. +48 6 46. Podstawy automatyki. Układy kombinacyjne,. Charakterystyka,. Multiplekser, demultiplekser,.

Bardziej szczegółowo

Cyfrowe układy scalone c.d. funkcje

Cyfrowe układy scalone c.d. funkcje Cyfrowe układy scalone c.d. funkcje Ryszard J. Barczyński, 206 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Kombinacyjne układy cyfrowe

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

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

Programowany układ czasowy

Programowany układ czasowy Programowany układ czasowy Zbuduj na płycie testowej ze Spartanem-3A prosty ośmiobitowy układ czasowy pracujący w trzech trybach. Zademonstruj jego działanie na ekranie oscyloskopu. Projekt z Języków Opisu

Bardziej szczegółowo

Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0

Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0 Synteza liczników synchronicznych Załóżmy, że chcemy zaprojektować licznik synchroniczny o następującej sekwencji: 0 1 2 3 6 5 4 [0 sekwencja jest powtarzana] Ponieważ licznik ma 7 stanów, więc do ich

Bardziej szczegółowo

Układy kombinacyjne. cz.2

Układy kombinacyjne. cz.2 Układy kombinacyjne cz.2 Układy kombinacyjne 2/26 Kombinacyjne bloki funkcjonalne Kombinacyjne bloki funkcjonalne - dekodery 3/26 Dekodery Są to układy zamieniające wybrany kod binarny (najczęściej NB)

Bardziej szczegółowo

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie Laboratorium Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie programowalnym FPGA. 1. Zasada działania algorytmów Algorytm Vernam a wykorzystuje funkcję

Bardziej szczegółowo

SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie

SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1 Układy kombinacyjne i sekwencyjne - przypomnienie SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 2 Stan

Bardziej szczegółowo

Automat skończony FSM Finite State Machine

Automat skończony FSM Finite State Machine Automat skończony FSM Finite State Machine Projektowanie detektora sekwencji Laboratorium z Elektroniki Współczesnej A. Skoczeń, KOiDC, WFiIS, AGH, 2019 AGH, WFiIS, Elektronika Współczesna 1 Deterministyczny

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

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Temat 1. Algebra Boole a i bramki 1). Podać przykład dowolnego prawa lub tożsamości, które jest spełnione w algebrze Boole

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 9 Procesor złożony Opracował:

Bardziej szczegółowo

Authenticated Encryption

Authenticated Encryption Authenticated Inż. Kamil Zarychta Opiekun: dr Ryszard Kossowski 1 Plan prezentacji Wprowadzenie Wymagania Opis wybranych algorytmów Porównanie mechanizmów Implementacja systemu Plany na przyszłość 2 Plan

Bardziej szczegółowo

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu danych

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

Sterowniki programowalne

Sterowniki programowalne Wykład w ramach przedmiotu Sterowniki programowalne Sterowniki programowalne GE Fanuc serii 90-30 Zasady działania systemu (część II) Na podstawie dokumentacji GE Fanuc przygotował dr inż. Jarosław Tarnawski

Bardziej szczegółowo

UKŁADY MIKROPROGRAMOWALNE

UKŁADY MIKROPROGRAMOWALNE UKŁAD MIKROPROGRAMOWALNE Układy sterujące mogą pracować samodzielnie, jednakże w przypadku bardziej złożonych układów (zwanych zespołami funkcjonalnymi) układ sterujący jest tylko jednym z układów drugim

Bardziej szczegółowo

Zadanie nr 3: Sprawdzanie testu z arytmetyki

Zadanie nr 3: Sprawdzanie testu z arytmetyki Zadanie nr 3: Sprawdzanie testu z arytmetyki 1 Cel zadania Zadanie wymusza praktyczne przećwiczenia dostosowania formatu i formy wyświetlania informacji dla własnych typów danych. Ma ono pokazać potencjalne

Bardziej szczegółowo

Ćwiczenie 31 Temat: Analogowe układy multiplekserów i demultiplekserów. Układ jednostki arytmetyczno-logicznej (ALU).

Ćwiczenie 31 Temat: Analogowe układy multiplekserów i demultiplekserów. Układ jednostki arytmetyczno-logicznej (ALU). Ćwiczenie 31 Temat: Analogowe układy multiplekserów i demultiplekserów. Układ jednostki arytmetyczno-logicznej (ALU). Cel ćwiczenia Poznanie własności analogowych multiplekserów demultiplekserów. Zmierzenie

Bardziej szczegółowo

Programowany układ czasowy APSC

Programowany układ czasowy APSC Programowany układ czasowy APSC Ośmiobitowy układ czasowy pracujący w trzech trybach. Wybór trybu realizowany jest przez wartość ładowaną do wewnętrznego rejestru zwanego słowem sterującym. Rejestr ten

Bardziej szczegółowo

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka PAMIĘCI Część 1 Przygotował: Ryszard Kijanka WSTĘP Pamięci półprzewodnikowe są jednym z kluczowych elementów systemów cyfrowych. Służą do przechowywania informacji w postaci cyfrowej. Liczba informacji,

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

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW POLITECHNIKA POZNAŃSKA FILIA W PILE LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW numer ćwiczenia: data wykonania ćwiczenia: data oddania sprawozdania: OCENA: 6 21.11.2002 28.11.2002 tytuł ćwiczenia: wykonawcy:

Bardziej szczegółowo

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo / analogowe W cyfrowych systemach pomiarowych często zachodzi konieczność zmiany sygnału cyfrowego na analogowy, np. w celu

Bardziej szczegółowo

WSTĘP DO ELEKTRONIKI

WSTĘP DO ELEKTRONIKI WSTĘP DO ELEKTRONIKI Część VII Układy cyfrowe Janusz Brzychczyk IF UJ Układy cyfrowe W układach cyfrowych sygnały napięciowe (lub prądowe) przyjmują tylko określoną liczbę poziomów, którym przyporządkowywane

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 10 (3h) Implementacja interfejsu SPI w strukturze programowalnej Instrukcja pomocnicza do laboratorium z przedmiotu

Bardziej szczegółowo

UKŁADY SEKWENCYJNE Opracował: Andrzej Nowak

UKŁADY SEKWENCYJNE Opracował: Andrzej Nowak PODSTAWY TEORII UKŁADÓW CYFROWYCH UKŁADY SEKWENCYJNE Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ Układem sekwencyjnym nazywamy układ

Bardziej szczegółowo

Magistrale na schematach

Magistrale na schematach Magistrale na schematach Jeśli w projektowanym układzie występują sygnały składające się z kilku powiązanych ze sobą logicznie linii (na przykład liczby wielobitowe) wskazane jest używanie magistrali (Bus).

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

Architektura komputerów Wykład 2

Architektura komputerów Wykład 2 Architektura komputerów Wykład 2 Jan Kazimirski 1 Elementy techniki cyfrowej 2 Plan wykładu Algebra Boole'a Podstawowe układy cyfrowe bramki Układy kombinacyjne Układy sekwencyjne 3 Algebra Boole'a Stosowana

Bardziej szczegółowo

Kombinacyjne bloki funkcjonalne - wykład 3

Kombinacyjne bloki funkcjonalne - wykład 3 SWB - Kombinacyjne bloki funkcjonalne - wykład 3 asz 1 Kombinacyjne bloki funkcjonalne - wykład 3 Adam Szmigielski aszmigie@pjwstk.edu.pl Laboratorium robotyki s09 SWB - Kombinacyjne bloki funkcjonalne

Bardziej szczegółowo

Instrukcja do ćwiczenia : Matryca komutacyjna

Instrukcja do ćwiczenia : Matryca komutacyjna Instrukcja do ćwiczenia : Matryca komutacyjna 1. Wstęp Każdy kanał w systemach ze zwielokrotnieniem czasowym jest jednocześnie określany przez swoją współrzędną czasową T i współrzędną przestrzenną S.

Bardziej szczegółowo

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003 Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne (1) mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Algorytmy kryptograficzne Przestawieniowe zmieniają porządek znaków

Bardziej szczegółowo

Metody optymalizacji soft-procesorów NIOS

Metody optymalizacji soft-procesorów NIOS POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011

Bardziej szczegółowo

Architektura typu Single-Cycle

Architektura typu Single-Cycle Architektura typu Single-Cycle...czyli budujemy pierwszą maszynę parową Przepływ danych W układach sekwencyjnych przepływ danych synchronizowany jest sygnałem zegara Elementy procesora - założenia Pamięć

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

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

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania.

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania. UKŁDAY CYFROWE Układy cyfrowe są w praktyce realizowane różnymi technikami. W prostych urządzeniach automatyki powszechnie stosowane są układy elektryczne, wykorzystujące przekaźniki jako podstawowe elementy

Bardziej szczegółowo

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop. 2017 Spis treści O autorze 9 Wprowadzenie 11 Rozdział 1. Sterownik przemysłowy 15 Sterownik S7-1200 15 Budowa zewnętrzna

Bardziej szczegółowo