Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Automaty stanów

Podobne dokumenty
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 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Systemy Czasu Rzeczywistego FPGA

Automat Moore a. Teoria układów logicznych

Projektowanie automatów z użyciem VHDL

Projekt prostego procesora

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

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

Technika Cyfrowa 1 wykład 12: sekwencyjne układy przełączające

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

Układy sekwencyjne. 1. Czas trwania: 6h

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

Teoria układów logicznych

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci RAM w FPGA.

Programowalne układy logiczne

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Ćw. 7: Układy sekwencyjne

Asynchroniczne statyczne układy sekwencyjne

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne

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

Sławomir Kulesza. Projektowanie automatów synchronicznych

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

Laboratorium przedmiotu Technika Cyfrowa

Systemy Czasu Rzeczywistego FPGA

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

Układy reprogramowalne i SoC Język VHDL (część 4)

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

Synteza strukturalna automatu Moore'a i Mealy

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Automat skończony FSM Finite State Machine

Specyfika projektowania Mariusz Rawski

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Synteza strukturalna automatów Moore'a i Mealy

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

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Podstawy Automatyki. Wykład 13 - Wprowadzenie do układów sekwencyjnych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Technika Cyfrowa 1 wykład 11: liczniki sekwencyjne układy przełączające

Krótkie wprowadzenie do ModelSim i Quartus2

Systemy Czasu Rzeczywistego FPGA

Podstawy Automatyki. Człowiek- najlepsza inwestycja. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Podstawy Automatyki. Wykład 15 - Projektowanie układów asynchronicznych o programach liniowych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

1. SYNTEZA UKŁADÓW SEKWENCYJNYCH

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

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

Język opisu sprzętu VHDL

Ćwiczenie 29 Temat: Układy koderów i dekoderów. Cel ćwiczenia

Instrukcje sekwencyjne

KURS Hexcalcul (2) Implementacja kalkulatora kodu BCD na Hex w układzie programowalnym

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TZ1A

Technika cyfrowa projekt: Sumator 4 bitowy równoległy

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Rok akademicki: 2013/2014 Kod: EEL s Punkty ECTS: 2. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

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

Automatyzacja i robotyzacja procesów produkcyjnych

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

Podstawy Automatyki. Wykład 15 - Projektowanie układów asynchronicznych o programach liniowych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

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

Projektowanie Urządzeń Cyfrowych

Systemy Wbudowane. Założenia i cele przedmiotu: Określenie przedmiotów wprowadzających wraz z wymaganiami wstępnymi: Opis form zajęć

Programowalne układy logiczne

Definicja 2. Twierdzenie 1. Definicja 3

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 212

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO

Projektowanie hierarchiczne Mariusz Rawski

UKŁADY MIKROPROGRAMOWALNE

Cyfrowe układy scalone c.d. funkcje

PUCY Kolos 2: Reloaded

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

LABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Projektowanie w VHDL

INFORMATOR LABORATORYJNY. TECHNIKA CYFROWA (studia niestacjonarne)

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

Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

Systemy Czasu Rzeczywistego FPGA

Podstawy Elektroniki dla Informatyki. Pętla fazowa

INSTYTUT CYBERNETYKI TECHNICZNEJ POLITECHNIKI WROCŁAWSKIEJ ZAKŁAD SZTUCZNEJ INTELIGENCJI I AUTOMATÓW

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

Liczniki, rejestry lab. 07 Układy sekwencyjne cz. 1

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

POLITECHNIKA SZCZECIŃSKA WYDZIAŁ ELEKTRYCZNY

Sławomir Kulesza. Projektowanie automatów asynchronicznych

INSTYTUT INFORMATYKI POLITECHNIKI BIAŁOSTOCKIEJ

Transkrypt:

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 6 (2h) Automaty stanów Instrukcja do zajęć laboratoryjnych z przedmiotu Synteza układów cyfrowych studia niestacjonarne, II stopnia, semestr 2 EZ2B200013 Opracował: dr inż. Łukasz Sajewski Białystok 2012 1

1. Cel i zakres ćwiczenia Celem ćwiczenia jest projektowanie i implementacja prostych automatów stanu w układach programowalnych z użyciem struktur blokowych i języka VHD. Automaty typu Moore a i Mealy ego są podstawowymi konstrukcjami w tej dziedzinie a ich znajomość pozwala na sprawne rozwiązywanie zadań z wykorzystaniem układów sekwencyjnych. 2. Automaty Moore a i Mealy ego Automatem Moore a nazywamy uporządkowaną piątkę (Q, X, Y, δ, λ) gdzie: Q jest skończonym zbiorem niepustym, nazwanym zbiorem stanów automatu, X jest skończonym zbiorem niepustym, nazwanym alfabetem wejściowym, Y jest skończonym zbiorem niepustym, nazwanym alfabetem wyjściowym, δ : Q X Q jest funkcją przejść a λ : Q Y jest funkcją wyjść. Rys. 1. Przykład automatu Moore a (opis algebraiczny, tablica przejść-wyjść, graf) Na rysunku 1 widnieje przykładowy automat Moore a. Automat ten posiada trzy stany wewnętrzne Q = {q1, q2, q3} dwa wejścia X = {x1, x2} oraz dwa wyjścia Y = {y1, y2}. Opis działania tego automatu dany jest tablicą przejść-wyjść oraz grafem, natomiast opis słowny przykładu jest następujący: Jeżeli automat znajduje się w stanie q1 i na wejściu x1 nastąpi zmiana sygnału, automat przechodzi do stanu q3 (δ(q1, x1) = q3). Jeżeli automat znajduje się w stanie q1 i na wejściu x2 nastąpi zmiana sygnału, automat pozostaje w stanie q1 (δ(q1, x2) = q1). Jeżeli automat znajduje się w stanie q2 i na wejściu x1 nastąpi zmiana sygnału, automat pozostaje w stanie q2 (δ(q2, x1) = q2). Jeżeli automat znajduje się w stanie q2 i na wejściu x2 nastąpi zmiana sygnału, automat przechodzi do stanu q3 (δ(q2, x2) = q3). Jeżeli automat znajduje się w stanie q3 i na wejściu x1 nastąpi zmiana sygnału, automat przechodzi do stanu q2 (δ(q3, x1) = q2). Jeżeli automat znajduje się w stanie q3 i na wejściu x2 nastąpi zmiana sygnału, automat przechodzi do stanu q1 (δ(q3, x2) = q1). Jeżeli automat jest w stanie q1 lub q2 to na wyjściu następuje zmiana sygnału y1. Jeżeli automat jest w stanie q3 to na wyjściu następuje zmiana sygnału y2. W automacie Moore a zmiana stanu następuje na podstawie wartości sygnałów wejściowych X na narastającym zboczu sygnału zegarowego CK, sygnał wyjściowy Y zależy tylko od stanu Q a jego zmiana może nastąpić również tylko na zboczu sygnału zegarowego. 2

Kod VHD realizujący powyższe zadanie ma postać: IBRARY ieee; USE ieee.std_logic_1164.all; ENTITY moorea IS PORT(CK : IN STD_OGIC; X : IN STD_OGIC_VECTOR(1 DOWNTO 0); --X={x1,x2} Y : OUT STD_OGIC_VECTOR(1 DOWNTO 0)); --Y={y1,y2} END ENTITY; ARCHITECTURE rtl OF moorea IS TYPE Q IS (q1, q2, q3); --definicja 3 elementowego typu wyliczeniowego - Q={q1,q2,q3} SIGNA stan : Q; -- sygnał pamiętający stan bieżący PROCESS (CK) -- funkcja przejścia aktywowana zmianą sygnału zegarowego IF rising_edge(ck) THEN -- wykrywanie zbocza narastającego CASE stan IS WHEN q1 => IF X = "10" THEN stan <= q3; ESIF X = "01" THEN stan <= q1; WHEN q2=> IF X = "10" THEN stan <= q2; ESIF X = "01" THEN stan <= q3; WHEN q3=> IF X = "10" THEN stan <= q2; ESIF X = "01" THEN stan <= q1; END CASE; END IF; END PROCESS; PROCESS (stan) -- funkcja wyjścia aktywowana zmianą stanu Q CASE stan IS WHEN q1 => Y <= "10"; WHEN q2 => Y <= "10"; WHEN q3 => Y <= "01"; END CASE; END PROCESS; END rtl; ist. 1. Trzy stanowy automat Moore a dany rysunkiem 1 Automatem Mealy ego nazywamy uporządkowaną piątkę (Q, X, Y, δ, λ) gdzie: Q jest skończonym zbiorem niepustym, nazwanym zbiorem stanów automatu, X jest skończonym zbiorem niepustym, nazwanym alfabetem wejściowym, Y jest skończonym zbiorem niepustym, nazwanym alfabetem wyjściowym, δ : Q X Q jest funkcją przejść a λ : Q X Y jest funkcją wyjść. 3

Rys. 2. Przykład automatu Mealy ego (opis algebraiczny, tablica przejść-wyjść, graf) Na rysunku 2 widnieje przykładowy automat Mealy ego. Automat ten posiada trzy stany wewnętrzne Q = {q1, q2, q3} dwa wejścia X = {x1, x2} oraz trzy wyjścia Y = {y1, y2, y3}. Opis działania tego automatu dany jest tablicą przejść-wyjść oraz grafem, natomiast opis słowny przykładu jest następujący: Jeżeli automat znajduje się w stanie q1 i na wejściu x1 nastąpi zmiana sygnału, automat przechodzi do stanu q3 (δ(q1, x1) = q3). Jeżeli automat znajduje się w stanie q1 i na wejściu x2 nastąpi zmiana sygnału, automat pozostaje w stanie q1 (δ(q1, x2) = q1). Jeżeli automat znajduje się w stanie q2 i na wejściu x1 nastąpi zmiana sygnału, automat pozostaje w stanie q2 (δ(q2, x1) = q2). Jeżeli automat znajduje się w stanie q2 i na wejściu x2 nastąpi zmiana sygnału, automat przechodzi do stanu q3 (δ(q2, x2) = q3). Jeżeli automat znajduje się w stanie q3 i na wejściu x1 nastąpi zmiana sygnału, automat przechodzi do stanu q2 (δ(q3, x1) = q2). Jeżeli automat znajduje się w stanie q3 i na wejściu x2 nastąpi zmiana sygnału, automat przechodzi do stanu q1 (δ(q3, x2) = q1). Jeżeli automat znajduje się w stanie q1 i na wejściu x1 nastąpi zmiana sygnału, to na wyjściu następuje zmiana stanu wyjścia y3 (λ(q1, x1) = y3). Jeżeli automat znajduje się w stanie q1 i na wejściu x2 nastąpi zmiana sygnału, to na wyjściu następuje zmiana stanu wyjścia y1 (λ(q1, x2) = y1). Jeżeli automat znajduje się w stanie q2 i na wejściu x1 nastąpi zmiana sygnału, to na wyjściu następuje zmiana stanu wyjścia y2 (λ(q2, x1) = y2). Jeżeli automat znajduje się w stanie q2 i na wejściu x2 nastąpi zmiana sygnału, to na wyjściu następuje zmiana stanu wyjścia y3 (λ(q2, x2) = y3). Jeżeli automat znajduje się w stanie q3 i na wejściu x1 nastąpi zmiana sygnału, to na wyjściu następuje zmiana stanu wyjścia y1 (λ(q3, x1) = y1). Jeżeli automat znajduje się w stanie q3 i na wejściu x2 nastąpi zmiana sygnału, to na wyjściu następuje zmiana stanu wyjścia y2 (λ(q3, x2) = y2). W automacie Mealy ego sygnał wyjściowy Y zależy od sygnału wejściowego X i aktualnego stanu Q, oznacza to możliwość wielokrotnej zmiany wyjścia Y w trakcie jednego okresu sygnału zegarowego CK. Jest to zatem rozwiązanie wrażliwe na zakłócenia sygnału wejściowego. Kod VHD realizujący powyższe zadanie ma postać: IBRARY ieee; USE ieee.std_logic_1164.all; ENTITY mealyego IS PORT (CK : IN STD_OGIC; X : IN STD_OGIC_VECTOR(1 DOWNTO 0);-- X={x1,x2} 4

Y : OUT STD_OGIC_VECTOR(2 DOWNTO 0));-- Y={y1,y2,y3} END ENTITY; ARCHITECTURE rtl OF mealyego IS TYPE Q IS (q1, q2, q3); -- definicja 3 elementowego typu wyliczeniowego - Q={q1,q2,q3} SIGNA stan : Q; -- sygnał pamiętający stan bieżący PROCESS (CK) -- funkcja przejścia aktywowana zmianą sygnału zegarowego IF (rising_edge(ck)) THEN -- wykrywanie zbocza narastającego CASE stan IS WHEN q1 => IF X = "10" THEN stan <= q3; ESIF X = "01" THEN stan <= q1; WHEN q2 => IF X = "10" THEN stan <= q2; ESIF X = "01" THEN stan <= q3; WHEN q3 => IF X = "10" THEN stan <= q2; ESIF X = "01" THEN stan <= q1; END CASE; END IF; END PROCESS; PROCESS (stan, X) -- funkcja wyjścia aktywowana zmianą stanu Q lub wejścia X CASE stan IS WHEN q1 => IF X = "10" THEN Y <= "001"; ESIF X = "01" THEN Y <= "100"; WHEN q2 => IF X = "10" THEN Y <= "010"; ESIF X = "01" THEN Y <= "001"; WHEN q3 => IF X = "10" THEN Y <= "100"; ESIF X = "01" THEN Y <= "010"; END CASE; END PROCESS; END rtl; ist. 2. Trzy stanowy automat Mealy ego dany rysunkiem 2 Po włączeniu układu, jeżeli nie został użyty sygnał reset, automat stanu powinien rozpocząć pracę od pierwszego stanu opisanego w procesie przejścia (pierwszy warunek instrukcji case). Czasami w skutek zakłóceń i niewłaściwego kodowania układ może znaleźć się w przypadkowym, nieokreślonym w procesie przejść stanie, oznacza to jego niekontrolowaną pracę. Niewłaściwe kodowanie wiąże się z potencjalną liczbą stanów w 5

których może znaleźć się układ, przyjętym sposobem kodowania oraz strukturą instrukcji case decydującej o zmianie stanu. W poprzednich przykładach nie narzucano sposobu kodowania stanów, zatem kompilator zastosował kodowanie minimalną liczbą bitów. Ten rodzaj kodowania oznacza użycie najmniejszej niezbędnej liczby n bitów słowa kodującego, z której wynika potencjalna liczba stanów do zakodowania równa 2 n. Jeżeli jest ona większa niż faktyczna liczba stanów w układzie oznacza to, że wystąpią stany nadmiarowe - czyli nieokreślone. W celu zmniejszenia ryzyka związanego z wejściem układu w taki stan stosuje się: - "bezpieczne automaty stanu", - klauzulę when others w instrukcji case zmieniającej stan, - specjalne narzucone przez użytkownika formy kodowania - np. "gorącą jedynką". 3. Kodowanie automatów Jedną z możliwości zakodowania automatu typu Moore a jest użycie licznika w połączeniu z układem kombinacyjnym. Zadanie 1: Przygotować układ który posiada jedno wejście zegarowe clk i siedmiobitowe wyjście. Wejście wyznacza tempo zmian wyświetlanych znaków na wyświetlaczu siedmiosegmentowym. Porządek (kolejność) wyświetlanych znaków jest narzucony. Znaki i ich kolejność przewidziane są następująca tablicą. Tabl. 1. ista znaków konwertera Stan licznika 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Znak Jedno z rozwiązań tego zadania wskazuje poniższy rysunek H E O Rys. 3. Schemat blokowy układu Zadanie to opiera się na dekoderze z instrukcji nr 2 wzbogaconym o licznik modulo (z ćwiczenia nr 5). W ramach zadania należy przygotować dekoder 7-segmentowy zgodnie z tabelą 1 oraz licznik modulo 5 (tyle stanów licznika ile liter do wyświetlenia). Podłączyć do układu wyświetlacz HEX oraz przycisk KEY i przetestować układ. Następnie wzbogacić układ o dzielnik 6

częstotliwości podłączony w miejsce przycisku KEY. Na wejście dzielnika podłączyć takt zegarowy 50MHz (COCK_50) i dostroić dzielnik by generował przebieg o częstotliwości 1Hz. Przeprowadzić test układu. Zadanie 2: Przebudować układ z zadania 1 w taki sposób by można było sterować kierunkiem zmian wyświetlanych znaków (rewersja). Oznacza to, że globalnie układ posiadać będzie dwa wejścia: zegarowe clk i sterujące dir określające kierunek przesuwania znaków (przód/tył) ponadto jedno wyjście siedmiobitowe do wyświetlacza HEX. Zadanie to można zrealizować na podstawie listingu 1 (automatu typu Moore a). W takim wypadku konieczne będzie zwiększenie liczby stanów Q (z 3 do 5) oraz potraktowanie wejścia X jako jedno bitowe wejście sterujące dir. Wyjście Y zgodnie z zadaniem ma być siedmiobitowe a funkcja wyjścia automatu λ powinna zawierać instrukcje (w wersji sekwencyjnej) wcześniej umiejscowione w bloku dekodera. Przygotować symbol tak napisanego kodu, uzupełnić układ o dzielnik i dokonać kompilacji. Przetestować działanie układu. Zadanie 3: Na bazie automatu Moore a lub Mealy ego zaprojektować układ sterujący przejazdem kolejowym. Należy przyjąć założenia: Przejazd dotyczy linii jednotorowej, Opuszczenie rogatki powinno się odbyć z pewnym wyprzedzeniem, Podniesienie rogatki powinno się odbyć z pewnym opóźnieniem, Wykluczamy jednoczesny przejazd pociągu przez oba punkty kontroli, Wykluczamy przejazd więcej niż jednego pociągu, Pociąg w danej chwili może jechać tylko w jednym kierunku, inia kolejowa jest dwukierunkowa, Pociąg, który dotarł do punktu A lub B nie może się cofać. rogatka Y czujniki, np.: fotokomórka linia kolejowa (jeden tor) A B Rys. 4. Uproszczony schemat przejazdu kolejowego gdzie: A, B punkty kontrolne, Y Rogatka Punkty kontrolne A i B przyjmują wartość 1 (H) podczas przejazdu pociągu (przez te punkty) lub wartość 0 () gdy brak pociągu. Rogatka Y przyjmuje wartość 1 (H) gdy jest opuszczona lub wartość 0 () gdy jest podniesiona. Poniżej przedstawiony jest przebieg czasowy z wyszczególnieniem stanów automatu. 7

A B Y H H H 0 1 2 3 0 4 5 6 0 Rys. 5. Przebiegi czasowe dla wejść (A, B) i wyjść (Y) przejazdu kolejowego Cyframi od 0 do 6 ponumerowano stany w jakich może znajdować się układ. Stan 0 odpowiada takiej chwili czasowej, podczas której pociąg jeszcze nie dojechał do punktów A lub B. Zakładając, że pociąg jedzie od lewej, to najpierw dojedzie do punktu A. W tym momencie (zgodnie z założeniami) wartość wejścia A = H oraz rogatka zostaje opuszczona (Y = 1 ). Pociąg opuszcza punkt A (A = 0 ), ale jeszcze nie dojechał do punktu B. Taka sytuacja odpowiada na wykresie stanowi 2. Pociąg dojeżdża do punktu B. W tym momencie (zgodnie z założeniami) wartość wejścia B = H (stan 3). Gdy pociąg opuszcza punkt B (B = 0 ) rogatka powinna zostać podniesiona Y = 0. Analogiczna sytuacja wystąpi gdy pociąg będzie jechać od prawej do lewej. Układ powinien posiadać dwa wejścia sterujące A oraz B dołączone do przełączników SW oraz jedno wyjście sygnalizacyjne Y dołączone do diody czerwonej EDR. 4. Sprawozdanie Sprawozdanie z zajęć laboratoryjnych powiano zawierać: 1. Opis słowny zadania do realizacji. 2. Założenia realizowanego zadania. 3. Procedurę projektową. 4. istingi gotowych programów. 5. Weryfikację działania układu. 6. Uwagi i wnioski. iteratura: 1. Barski M., Jędruch W.: Układy cyfrowe, podstawy projektowania i opisu w języku VHD, Wydawnictwo Politechniki Gdańskiej, 2007. 2. Łuba T.: Synteza układów cyfrowych, WKiŁ, Warszawa, 2004. 3. Mano M.M., Kime Ch.R.: Podstawy projektowania układów logicznych i komputerów, NT, Warszawa 2007. 4. Skahill K.: Język VHD Projektowanie programowalnych układów logicznych, WNT, Warszawa, 2001. Zamieszczone w instrukcji zrzuty ekranowe oraz zdjęcia pochodzą z materiałów firmowych dostarczonych przez firmę Altera. 8