Układy cyfrowe projekt.
|
|
- Kamil Rudnicki
- 6 lat temu
- Przeglądów:
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
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ółowoSynteza 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ółowoPodstawowe 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ółowoKryptografia. 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ółowoPodstawowe 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ółowoAby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.
Generowanie sygnałów testowych VHDL Wariant współbieżny (bez procesu): sygnał
Bardziej szczegółowoPolitechnika 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ółowoModelowanie 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ółowoSł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ółowoxx + 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ółowoProjekt 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ółowoProjektowanie 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ółowoKró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ółowoUkł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ółowof 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ółowoPrzerzutnik 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ółowoLaboratorium 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ółowoUkł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ółowoPAMIĘĆ 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ółowoPolitechnika 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ółowoPracownia 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ółowoWstę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ółowoUkł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ółowoW 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ółowoInwerter 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ółowoFunkcja 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ółowoImplementacja 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ółowoArchitektury 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ółowoArytmetyka 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ółowoPODSTAWY 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ółowoPodział 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ółowoProgramowalne 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ółowoDOKUMENTACJA 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ółowoMateriał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ółowoUkł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ółowoKró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ółowoTechnika 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ółowoTemat: 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ółowoStruktury 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ółowoUkł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ółowodr 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ółowoElektronika 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ółowoStruktura 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ółowoWFiIS 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ółowoPodstawowe 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ółowoCzęść 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ółowoLiteratura. 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ółowoSpis 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ółowoProjekt 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ółowoLaboratorium 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ółowoProjektowanie 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ółowoElementy 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ółowoProgramator 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ółowoBramki 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ółowoCZ1. 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ółowoLABORATORIUM 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ółowoLEKCJA. 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ółowoPlan 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ółowoWprowadzenie 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ółowoAutomatyka. 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ółowoCyfrowe 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ółowoPrzykł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ółowoTemat: 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ółowoProgramowany 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ółowoTab. 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ółowoUkł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ółowoLaboratorium. 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ółowoSWB - 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ółowoAutomat 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ółowo1. 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ółowoLista 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ółowoWydział 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ółowoAuthenticated 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ółowoAlgorytm 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ółowoSł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ółowoSterowniki 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ółowoUKŁ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ółowoZadanie 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). Cel ćwiczenia Poznanie własności analogowych multiplekserów demultiplekserów. Zmierzenie
Bardziej szczegółowoProgramowany 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ółowoPAMIĘ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ółowo1. 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ółowoLABORATORIUM 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ółowoPrzetworniki 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ółowoWSTĘ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ółowoPolitechnika 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ółowoUKŁ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ółowoMagistrale 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ółowoUkł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ółowoArchitektura 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ółowoKombinacyjne 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ółowoInstrukcja 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ółowoBezpieczeń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ółowoMetody 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ółowoArchitektura 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ółowoWykł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ółowoAltera 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ółowoUKŁ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ółowoSzkoł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