Pomysł
description
Transcript of Pomysł
Pomysł
Sukces
Wstępne rozwiązanie
Symulacja
Wynik zadowala?
Poprawa rozwiązania
Nie
Tak
Podstawowa pętla projektowania
Tworzenie prototypu
Implementacja
Wersja finalna
Tworzenie prototypu
Testowanie
Wszystko OK?
Modyfikacja prototypu
Nie
Tak
Drobne błędy ?
Tak
Nowy prototypZalety układów programowalnych i płytek testowych
Nie
Automat o skończonej liczbie stanów w VHDL-u
deklaracje bibliotek
deklaracje bibliotekentity model_name is
end model_name;
deklaracje bibliotekentity model_name isport(list of inputs and outputs);end model_name;
deklaracje bibliotekentity model_name isport(list of inputs and outputs);end model_name;architecture behavior of model_name is
end behavior;
deklaracje bibliotekentity model_name isport(list of inputs and outputs);end model_name;architecture behavior of model_name isinternal signal declarationsbegin
end behavior;
deklaracje bibliotekentity model_name isport(list of inputs and outputs);end model_name;architecture behavior of model_name isinternal signal declarationsbegin–– proces state definije elementy pamięciowestate: process ( lista czułości –– clock, reset, wejścia next_state )beginvhdl statements for state elementsend process state;
end behavior;
deklaracje bibliotekentity model_name isport(list of inputs and outputs);end model_name;architecture behavior of model_name isinternal signal declarationsbegin–– proces state definije elementy pamięciowestate: process ( lista czułości –– clock, reset, wejścia next_state )beginvhdl statements for state elementsend process state;–– proces comb definiuje logikę kombinacyjnącomb: process ( lista czułości –– zwykle zawiera wszystkie wejścia)beginvhdl statements which specify combinational logicend 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 iswhen 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)beginif (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 dodatniaX 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ę.