210 likes | 335 Views
Pomysł. Wstępne rozwiązanie. S ymulacja. Poprawa rozwiązania. N ie. Wynik zadowala ?. Tak. S ukces. Podstawowa pętla projektowania. Implementa cja. Tworzenie prototypu. Test owanie. Mod yfikacja prototypu. Tak. N ie. Wszystko OK ?. Drobne błędy ?. N ie. Tak. Wersja finalna.
E N D
Pomysł Wstępne rozwiązanie Symulacja Poprawa rozwiązania Nie Wynik zadowala? Tak Sukces Podstawowa pętla projektowania
Implementacja Tworzenie prototypu Testowanie Modyfikacja prototypu Tak Nie Wszystko OK? Drobne błędy ? Nie Tak Wersja finalna Nowy prototyp Zalety układów programowalnych i płytek testowych Tworzenie prototypu
deklaracje bibliotek entity model_name is end model_name;
deklaracje bibliotek entity model_name is port ( list of inputs and outputs ); end model_name;
deklaracje bibliotek entity model_name is port ( list of inputs and outputs ); end model_name; architecture behavior of model_name is end behavior;
deklaracje bibliotek entity model_name is port ( list of inputs and outputs ); end model_name; architecture behavior of model_name is internal signal declarations begin end behavior;
deklaracje bibliotek entity model_name is port ( list of inputs and outputs ); end model_name; architecture behavior of model_name is internal signal declarations begin –– proces state definije elementy pamięciowe state: process ( lista czułości –– clock, reset, wejścia next_state ) begin vhdl statements for state elements end process state; end behavior;
deklaracje bibliotek entity model_name is port ( list of inputs and outputs ); end model_name; architecture behavior of model_name is internal signal declarations begin –– proces state definije elementy pamięciowe state: process ( lista czułości –– clock, reset, wejścia next_state ) begin vhdl statements for state elements end process state; –– proces comb definiuje logikę kombinacyjną comb: process ( lista czułości –– zwykle zawiera wszystkie wejścia) begin vhdl statements which specify combinational logic end process comb; end behavior;
Deklaracje zmiennych pomocniczych architecture zachowanie of automat is type stan is (stan1, stan2, stan3…); -- lista możliwych stanów signal aktualny_stan, nastepny_stan : stan; begin ….
Proces kombinacyjnypolecenie case • case wyrażenie is • when wartość => • przypisania wyjść; • warunkowe przypisania następnych stanów; • ….. • end case;
Proces kombinacyjny Nie zapomnieć o przypisaniu standardowych wartości wyjść na początku procesu!!!
Proces sekwencyjny state: process(clk, reset) begin if (reset = ’0’) then aktualny_stan <= wartość; elsif (clk’event and clk = ’1’) then aktualny_stan <= nastepny_stan; end if; end process state;
Protokół PS/2 Wybrane szczegóły
Wiadomości ogólne • synchroniczna, dwukierunkowa komunikacja szeregowa między hostem a urządzeniem • tylko jedna strona może nadawać w danej chwili • ogólnie standard umożliwia przesyłanie różnorodnych komend w obie strony • nas interesuje tryb "Stream mode”, kiedy urządzenie nadaje spontanicznie pakiety danych do hosta opisujące ruch myszy lub naciskanie przycisków
Schemat połączeń PS/2 wykorzystuje dwie linie sygnałowe, zasilanie +5V i masę. Linie CLK i DATA są dwukierunkowe (standard otwarty kolektor); normalnie podciągnięte do poziomu wysokiego (+5V) przez rezystory 5-10K po stronie hosta. Obie strony mogą wymuszać na liniach stan niski. W stanie „ciszy” obie linie są w stanie wysokim. Host może zablokować transmisję z urządzenia przez wymuszenie na CLK stanu niskiego.
Komunikacja szeregowado hosta Sygnał CLK przy przesyłaniu każdego bitu jest przez 30-50ms (t1) w stanie niskim i przez 30-50ms (t2) w stanie wysokim. Poziom linii DATA ustala się na co najmniej 5ms (t3) przed opadającym zboczem CLK i co najmniej 5ms (t4) po narastającym zboczu zegara.
Transmisja pojedynczego bajtu • Każdy transmitowany bajt zawiera: • bit startu ( logiczne 0), • 8 bitów danych (pierwszy LSB), • bit parzystości (parzystość nieparzysta) • i bit stopu (logiczne 1). • Nieparzysta parzystość oznacza, że w 8 bitach danych i bicie parzystości przy prawidłowej transmisji musi znajdować się nieparzysta liczba jedynek . Podczas transmisji urządzenie generuje sygnał CLK dla wszystkich 11bitów i jednocześnie wymusza na linii DATA stan niski dla przesłania logicznego 0 lub nie robi nic i wtedy linia DATA jest podciągana na logiczne 1.
Stany pomiędzy transmisją danych Idle - CLK i DATA w stanie wysokim, brak aktywności na magistrali. Inhibit - host wymusza na CLK stan niski, urządznienie nie może transmitować danych. Wewnętrzne działanie myszy trwa. Request to send - host wymusza na linii DATA stan niski i stan wysoki na CLK – oznacza to, że jest gotów do przesłania komendy lub bajtu z argumentem do urządzenia.
Domyślny format danychtzw. tryb „Stream mode” Y ovfl: 1 = wartość Y delta jest spoza zakresu -256….255, 0 = brak przepełnienia. Jeśli 1, Y delta ma wartość -256 lub +255. X ovfl: 1 = wartość X delta jest spoza zakresu -256….255, 0 = brak przepełnienia. Jeśli 1, X delta ma wartość -256 lub +255. Y sign: 1 = wartość Y ujemna, 0 = Y delta zero lub dodatnia X sign: 1 = wartość X ujemna, 0 = X delta zero lub dodatnia. Middle: 1= przycisk środkowy naciśnięty, 0 = zwolniony. Right: 1= prawy przycisk naciśnięty, 0 = zwolniony. Left: 1= lewy przycisk środkowy naciśnięty, 0 = zwolniony. X delta : wielkość przesunięcia w kierunku X (poziomym) od ostatniego przesunięcia. Wraz z bitem X sign bajt ten tworzy 9 bitową liczbę ze znakiem w kodzie z uzupełnieniem do 2. Y delta : jak wyżej dla kierunku pionowego. Wartości dodatnie – ruch w górę.