rojektowanie złożonych układów cyfrowych Mariusz Rawski rawski@tele.pw.edu.pl www.zpt.tele.pw.edu.pl/~rawski/ Mariusz Rawski 1
Zamek elektroniczny: Elektroniczny zamek kod 4 cyfrowy kod wprowadzony z klawiatury ready sygnalizacja gotowości pracy, rozpoczęcie wprowadzania kodu zmienia ten sygnał na nieaktywny open sygnał otwarcia zamka prowadzenie poprawnego kodu otwiera zamek na określony czas Sterowanie klawiaturą numeryczna 1 2 3 A 4 5 6 B 7 8 9 C * # D open ready Mariusz Rawski 2
Elektroniczny zamek schemat blokowy Kontroler klawiatury: podaje sygnał naciśnięcia klawisza podaje kod naciśniętego klawisza ykrywanie sekwencji: analizuje kody klawiszy i wykrywa sekwencje kodową otwierającą zamek Układ czasowy: odmierza określony czas po otwarciu zamka i wysyła sygnał zamknięcia zamka 1 2 3 A 4 5 6 B 7 8 9 C * # D Kontroler klawiatury kod klawisza naciśnięty zamknij ykrywanie sekwencji Układ czasowy otwarty open ready Mariusz Rawski 3
Kontroler klawiatury: Kontroler klawiatury podanie sygnału aktywnego na linie kolejnych wierszy sprawdzanie linii kolumn w celu wykrycia sygnału aktywnego pochodzącego ze zwarcia styków klawisza col[ ] 1 2 3 A 4 5 6 B 7 8 9 C * # D row[ ] Kontroler klawiatury key key_pulse Mariusz Rawski 4
Kontroler klawiatury schemat blokowy Kontroler klawiatury: licznik generuje liczby 4 bitowe, 2 najstarsze bity sterują dekoderem, wystawiając sygnał aktywny na kolejne linie wierszy klawiatury 2 młodsze bity sterują multiplekserem przeglądając kolejne linie kolumn klawiatury wystąpienie na wyjściu multipleksera sygnału aktywnego sygnalizuje naciśnięcie klawisza zatrzymuje licznik kodem klawisza jest wartość licznika może się okazać konieczne przekodowanie col[ ] 1 2 3 A 4 5 6 B row[ ] q[1..] q[3..] key 7 8 9 C * # D q[3..2] q[3..] Licznik 4-bit stop key_pulse Mariusz Rawski 5
Dekoder Dekoder 2x4 ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized dec_2x4 EF1K1LC84-3 2 4 % 4 % User ins: 2 4 Mariusz Rawski 6
Dekoder umieszczenie w bibliotece modułów Stworzenie nowego elementu bibliotecznego reprezentującego zaprojektowany dekoder Element reprezentowany jest przez symbol o takiej nazwie jak nazwa projektu ykorzystywany w pliku graficznym Mariusz Rawski 7
Dekoder stworzenie pliku nagłówkowego lik nagłówkowy przechowuje informacje o interfejsie modułu Reprezentuje prototyp modułu umożliwiając wykorzystanie go w projektach opisywanych w sposób tekstowy Mariusz Rawski 8
Multiplekser Multiplekser 4x1 ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized mux_4x1 EF1K1LC84-3 6 1 % 3 % User ins: 6 1 Mariusz Rawski 9
Licznik 4 bitowy Licznik 4-bitowy ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized cnt4b EF1K1LC84-3 2 4 % 5 % User ins: 2 4 Mariusz Rawski 1
Licznik parametryzowany Umieszczenie nazwy DH w sekcji ARAMEERS pozwala na ustalenie tej wartości przez użytkownika ielkość licznika zależy od wartości parametru DH artości parametru DH decyduje o budowie licznika Uniezależnienie się od wielkości licznika Mariusz Rawski 11
Zalety parametryzacji modułów Stworzenie modułu parametryzowanego jest równoznaczne ze stworzeniem szablonu, na podstawie którego można tworzyć wiele bloków funkcjonalnych o różnej budowie odróżnieniu od stałych (CONSANS) możliwe jest jednoczesne stworzenie różnych modułów wykorzystywanych w tym samym projekcie Do opisu modułów parametryzowanych wykorzystuje się często struktury języka AHDL pozwalające generować warunkowo kod modułu Mariusz Rawski 12
Licznik parametryzowany modulo n artość modulo jest parametrem Szerokość licznika zależy od parametru artość parametru wykorzystywana jest do prawidłowego opisu modułu Mariusz Rawski 13
Dekoder parametryzowany ykorzystanie struktur warunkowej generacji kodu do prawidłowego opisu działania modułu parametryzowanego Mariusz Rawski 14
Sterownik klawiatury c.d. Mariusz Rawski 15
Sterownik klawiatury c.d. Mariusz Rawski 16
Sterownik klawiatury moduły parametryzowane c.d. Mariusz Rawski 17
Sterownik klawiatury moduły parametryzowane c.d. Mariusz Rawski 18
Sterownik klawiatury opis tekstowy Dołączenie plików z prototypami modułów składowych Deklaracja połączenia lokalnego Zadeklarowanie obiektów reprezentujących moduły składowe Dokonanie połączeń między modułami ak łączymy moduły jako obiekty!!! Mariusz Rawski 19
Sterownik klawiatury moduły parametryzowane Dołączenie plików z prototypami modułów składowych - parametryzowanych Zadeklarowanie obiektów reprezentujących moduły składowe z ewentualnym podaniem wartości parametrów Dokonanie połączeń między modułami Mariusz Rawski 2
Sterownik klawiatury problemy Naciśnięcie dwóch klawiszy jednocześnie może doprowadzić do zwarcia wyjść row[] co może spowodować uszkodzenie układu Naciśnięcie klawisza wywołuje drgania styków, które generują sygnał prostokątny mogący zaburzać pracę układu Mariusz Rawski 21
roblem 1 Naciśnięcie dwóch klawiszy jednocześnie może doprowadzić do zwarcia wyjść row[] co może spowodować uszkodzenie układu Rozwiązanie polega na zastosowaniu buforów izolujących na wyjściach row[] Do tego celu nadają się bramki trójstanowe R umożliwiają one galwaniczną izolacje wyjść nieaktywnych Mariusz Rawski 22
roblem 2 Naciśnięcie klawisza wywołuje drgania styków, które generują sygnał prostokątny mogący zaburzać pracę układu Rozwiązanie polega na zastosowaniu dodatkowego modułu usuwającego niepożądane drgania Mariusz Rawski 23
roblem 2 c.d. Naciśnięto klawisz Stabilność naciśnięcia przez 255 taktów zegara potwierdza naciśnięcie klawisza Mariusz Rawski 24
Sterownik klawiatury opis tekstowy Dołączenie plików z prototypami modułów składowych rototyp modułu składowego Zadeklarowanie obiektów reprezentujących moduły składowe Mariusz Rawski 25
Sterownik klawiatury opis tekstowy ykorzystanie modułu można traktować jako wywołanie funkcji jest to inny sposób n dołączanie modułów do projektu Moduł redukcji drgań dołączony metodą wywołania jako funkcji Dokonanie połączeń między modułami dołączonymi jako obiekty Mariusz Rawski 26
ykrywanie sekwencji ykrywanie sekwencji: analizuje kody klawiszy i wykrywa sekwencje kodową otwierającą zamek sekwencja kodowa oznaczona jako 1 2 3 4! 1! 2! 3! 4 1 2 3 ready S1 S2 S3 open 4 Mariusz Rawski 27
ykrywanie sekwencji c.d.! 1 r e a d y Kody klawiszy stanowiące kod dostępu! 2! 3 1 S 2 S 3 1 2 o p e n 4! 4 S 3 Zmienna reprezentująca automat rozpoznający sekwencję Sygnał close wprowadza automat w stan początkowy zamyka zamek Mariusz Rawski 28
ykrywanie sekwencji c.d. Opis automatu Zmiana stanu następuje tylko wtedy, gdy wejście valid jest aktywne zaznaczając, że kod klawisza podany do automatu jest prawidłowy! 1 r e a d y! 2! 3 1 S 2 S 3 1 2 o p e n 4! 4 S 3 Mariusz Rawski 29
ykrywanie sekwencji c.d. Opis sygnałów wyjściowych w poszczególnych stanach! 1 r e a d y! 2! 3 1 S 2 S 3 1 2 o p e n 4! 4 S 3 ykrywanie sekwencji ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized seqrec EF1K1LC84-3 7 2 % 13 2 % User ins: 7 2 Mariusz Rawski 3
ykrywanie sekwencji problemy Automat ten pozwala na bardzo łatwe złamanie kodu zamka Automat po podaniu cyfry, która nie występuje w kodzie wraca do stanu początkowego ystarczy niewielka liczba prób, aby odgadnąć kod! 1! 2! 3! 4 1 2 3 ready S1 S2 S3 open 4 Mariusz Rawski 31
ykrywanie sekwencji wersja bezpieczniejsza ystarczy wprowadzić niewielkie modyfikacje do grafu automatu, aby znacznie utrudnić złamanie kodu w3 w2 w5! 1 w1! 2 w4! 3 w6! 4 1 2 3 ready S1 S2 S3 open 4 Mariusz Rawski 32
ykrywanie sekwencji wersja bezpieczniejsza c.d. nterfejs automatu się nie zmienia, co pozwoli na łatwą integrację z pozostałą częścią projektu Automat posiada dodatkowe stany wymuszające podanie całej sekwencji zanim podjęta zostanie decyzja o poprawności kodu Mariusz Rawski 33
ykrywanie sekwencji wersja bezpieczniejsza c.d. ykorzystując dodatkowe stany automat wymusza podanie sekwencji 4 cyfr zanim zweryfikuje poprawność kodu Mariusz Rawski 34
ykrywanie sekwencji wersja bezpieczniejsza c.d. Dodatkowe puste stany mają za zadanie wczytać całą sekwencję bez względu na to czy już pierwsza cyfra kody była nieprawidłowa czy inne czy kod jest prawidłowy Mariusz Rawski 35
ykrywanie sekwencji wersja bezpieczniejsza c.d. Mariusz Rawski 36
ykrywanie sekwencji wersja bezpieczniejsza c.d. ykrywanie sekwencji ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized seqrec1 EF1K1LC84-3 7 2 % 19 3 % User ins: 7 2 roject nformation c:\max2work\ucyf\zamek szyfrowy\seqrec1.rpt ** SAE MACHNE ASSGNMENS ** aut: MACHNE OF BS ( aut~11, aut~1, aut~9, aut~8, aut~7, aut~6, aut~5, aut~4, aut~3, aut~2, aut~1 ) H SAES ( ready~ = B"", s1 = B"11", s2 = B"11", s3 = B"11", w1 = B"11", w2 = B"11", w3 = B"11", w4 = B"11", w5 = B"11", w6 = B"11", open~ = B"11" ); Mariusz Rawski 37
ykrywanie sekwencji minimalizacja stanów Automat ten nie jest automatem minimalnym Stany identyczne można zastąpić jednym stanem np. n1 S\key ready s1 s2 s3 open w1 w2 w3 w4 w5 w6 OK. s1 s2 s3 open open w2 w3 ready w5 ready ready RONG w1 w4 w5 ready open w2 w3 ready w5 ready ready READY 1 OEN 1 rea dy w2! 1 w1 w4 w6! 2! 3 1 2 3 S1 S2 S3 op en 4 w3 w5 Jeśli stany w3, w5 i w6 zostaną zastąpione stanem n1 to stany w2 i w4 też będą identyczne można zastąpić jednym stanem np. n2! 4 Mariusz Rawski 38
ykrywanie sekwencji minimalizacja stanów Automat ten jest automatem minimalnym S\key OK. RONG READY OEN ready s1 w1 1 s1 s2 n2 s2 s3 s3 open n1 ready w1 n2 n1 open w1 open w2 open w2 1! 1! 2! 3! 4 n2 n1 n1 ready n1 ready 1 2 3 ready S1 S2 S3 open 4 Mariusz Rawski 39
ykrywanie sekwencji wersja bezpieczniejsza c.d. nterfejs automatu się nie zmienia, co pozwoli na łatwą integrację z pozostałą częścią projektu Automat posiada nowe stany, które w procesie minimalizacji zastąpiły dotychczasowe Mariusz Rawski 4
ykrywanie sekwencji wersja bezpieczniejsza c.d. Automat wykorzystuje nowe stany w1 n2 n1! 1! 2! 3! 4 1 2 3 ready S1 S2 S3 4 open Mariusz Rawski 41
ykrywanie sekwencji wersja bezpieczniejsza c.d. Opis zachowania się urządzenia według nowego grafu automatu u nie jest potrzebna żadna zmiana w1 n2 n1! 1! 2! 3! 4 1 2 3 ready S1 S2 S3 4 open Mariusz Rawski 42
ykrywanie sekwencji ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized seqrec2 EF1K1LC84-3 7 2 % 17 2 % User ins: 7 2 roject nformation c:\max2work\ucyf\zamek szyfrowy\seqrec2.rpt ** SAE MACHNE ASSGNMENS ** aut: MACHNE OF BS ( aut~8, aut~7, aut~6, aut~5, aut~4, aut~3, aut~2, aut~1 ) H SAES ( Dlaczego CAD nie dokonał minimalizacji przecież to prosty algorytm ); ykrywanie sekwencji wersja bezpieczniejsza c.d. ready~ = B"", s1 = B"11", s2 = B"11", s3 = B"11", w1 = B"11", n1 = B"11", n2 = B"11", open~ = B"11" Mniejsza liczba komórek to zrozumiałe, bo automat jest mniejszy (mniej bitów kodujących) Mariusz Rawski 43
ykrywanie sekwencji wersja bezpieczniejsza c.d. Działa tak samo a jest nawet szybszy!!! Mariusz Rawski 44
ykrywanie sekwencji wersja bezpieczniejsza c.d. nterfejs automatu się nie zmienia, co pozwoli na łatwą integrację z pozostałą częścią projektu prowadzenie kodowania zadanego przez projektanta Mariusz Rawski 45
ykrywanie sekwencji wersja bezpieczniejsza c.d. ykrywanie sekwencji ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized seqrec3 EF1K1LC84-3 7 2 % 25 4 % User ins: 7 2 roject nformation ** SAE MACHNE ASSGNMENS ** aut: MACHNE OF BS ( q2, q1, q ) H SAES ( ready~ = B"", s1 = B"1", s2 = B"1", s3 = B"11", w1 = B"1", n1 = B"11", n2 = B"11", open~ = B"111" ); Liczba komórek znacznie się zwiększyła pomimo mniejszej liczby bitów kodujących. Ale to jest naiwne kodowanie, a gdyby zastosować inne c:\max2work\ucyf\zamek szyfrowy\seqrec3.rpt Jakie??? Mariusz Rawski 46
ykrywanie sekwencji wersja bezpieczniejsza c.d. Działa tak samo ale jest bardzo wolne!!! Mariusz Rawski 47