Synteza strukturalna automatów Moore'a i Mealy

Podobne dokumenty
Synteza strukturalna automatu Moore'a i Mealy

Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0

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

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

W ujęciu abstrakcyjnym automat parametryczny <A> można wyrazić następującą "ósemką":

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

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

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

Errata do książki Multisim. Technika cyfrowa w przykładach.

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

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

Asynchroniczne statyczne układy sekwencyjne

Laboratorium przedmiotu Technika Cyfrowa

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

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

Logika układów cyfrowych - laboratorium

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

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

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

xx + 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

Automatyzacja i robotyzacja procesów produkcyjnych

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

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

Ćwiczenie nr 1 Temat: Ćwiczenie wprowadzające w problematykę laboratorium.

Statyczne badanie przerzutników - ćwiczenie 3

Sławomir Kulesza. Projektowanie automatów synchronicznych

Definicja układu kombinacyjnego była stosunkowo prosta -tabela prawdy. Opis układu sekwencyjnego jest zadaniem bardziej złożonym.

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Sławomir Kulesza. Projektowanie automatów asynchronicznych

dwójkę liczącą Licznikiem Podział liczników:

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

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

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

zmiana stanu pamięci następuje bezpośrednio (w dowolnej chwili czasu) pod wpływem zmiany stanu wejść,

Metoda Karnaugh. B A BC A

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

b) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych.

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

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

Układy asynchroniczne

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)

Systemy cyfrowe z podstawami elektroniki i miernictwa Wyższa Szkoła Zarządzania i Bankowości w Krakowie Informatyka II rok studia dzienne

Asynchroniczne statyczne układy sekwencyjne

Podstawy Techniki Cyfrowej Teoria automatów

ćwiczenie 203 Temat: Układy sekwencyjne 1. Cel ćwiczenia

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

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

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.

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

LICZNIKI PODZIAŁ I PARAMETRY

Cyfrowe układy scalone c.d. funkcje

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

x x

Ćw. 7: Układy sekwencyjne

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

Układy asynchroniczne

Statyczne i dynamiczne badanie przerzutników - ćwiczenie 2

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

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

Architektura komputerów Wykład 2

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie LABORATORIUM Teoria Automatów. Grupa ćwiczeniowa: Poniedziałek 8.

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

Wstęp do Techniki Cyfrowej... Teoria automatów

Zapoznanie się z podstawowymi strukturami liczników asynchronicznych szeregowych modulo N, zliczających w przód i w tył oraz zasadą ich działania.

Lekcja na Pracowni Podstaw Techniki Komputerowej z wykorzystaniem komputera

Laboratorium podstaw elektroniki

EUROELEKTRA Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej Rok szkolny 2012/2013 Zadania dla grupy elektronicznej na zawody III stopnia

1. SYNTEZA UKŁADÓW SEKWENCYJNYCH

Podstawowe układy cyfrowe

Projektowanie układów na schemacie

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

Krótkie przypomnienie

Przerzutniki RS i JK-MS lab. 04 Układy sekwencyjne cz. 1

Podstawy techniki cyfrowej. Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014

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

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

UKŁADY CYFROWE. Układ kombinacyjny

Algebra Boole a i jej zastosowania

PoniŜej zamieszczone są rysunki przedstawiane na wykładach z przedmiotu Peryferia Komputerowe. ELEKTRONICZNE UKŁADY CYFROWE

Proste układy sekwencyjne

Definicja 2. Twierdzenie 1. Definicja 3

1.2 Funktory z otwartym kolektorem (O.C)

Wstęp. Przygotowanie teoretyczne

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

Układy logiczne. Wstęp doinformatyki. Funkcje boolowskie (1854) Funkcje boolowskie. Operacje logiczne. Funkcja boolowska (przykład)

Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów.

ZADANIE 1. Rozwiązanie:

LICZNIKI LABORATORIUM. Elektronika AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. Wydział Informatyki, Elektroniki i Telekomunikacji

Magistrale na schematach

Na początek: do firmowych ustawień dodajemy sterowanie wyłącznikiem ściennym.

Wydział Fizyki UW CC=5V 4A 4B 4Y 3A 3B 3Y

Podział układów cyfrowych. rkijanka

Tranzystor JFET i MOSFET zas. działania

Synteza układów kombinacyjnych

A B. 12. Uprość funkcję F(abc) = (a + a'b + c + c')a

W przypadku spostrzeżenia błędu proszę o przesłanie informacji na adres

2019/09/16 07:46 1/2 Laboratorium AITUC

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

Transkrypt:

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), z(t)) Ψ funkcja wyjść automat Moore a y = Ψ(q) automat Mealy y = Ψ(q, z) q 0 stan początkowy Przykład Załóżmy, że mamy następujący graf automatu Moore'a: z 2 q 0 y 0 z 1 z 0 z 0 z 1 y 2 y 1 z 2 q 2 z 0 z 1 q 1 z 2 Celem syntezy strukturalnej jest stworzenie schematu układu elektronicznego odzwierciedlającego działanie automatu. Pokazana zostanie synteza układu synchronicznego, w którym wejścia zegarowe wszystkich przerzutników są połączone. Oznacza to, że zmiany stanu przerzutników następują równocześnie, można więc mówić o umownych chwilach t (przed aktywnym zboczem zegara) oraz t+1 (po zboczu zegara), wspólnych dla wszystkich przerzutników. Układ elektroniczny operuje na sygnałach dwustanowych (bitach) wobec tego symbole (z i, q i, y i ), występujące w opisie automatu, należy odpowiednio przystosować do układu elektronicznego czyli po prostu zakodować.

Logika Układów Cyfrowych Synteza strukturalna automatów 2 1. Kodowanie sygnałów wejściowych W rozpatrywanym automacie mamy trzy sygnały wejściowe z 0, z 1 i z 2. Minimalna liczba bitów potrzebna do ich zakodowania wynosi 2, bity te oznaczymy jako Z 0 i Z 1. Przykładowe kodowanie przedstawiono w tabeli poniżej: Tab. 1 z 0 0 0 z 1 0 1 z 2 1 0 Możliwe są również inne sposoby kodowania, na przykład omówione dalej kodowanie typu H1 (hot one), w którym liczba bitów jest równa liczbie sygnałów. Wybór kodowania może wynikać ze sposobu podawania danych wejściowych. 2. Kodowanie sygnałów wyjściowych Kodowanie to jest analogiczne do kodowania sygnałów wejściowych. Wybór kodowania zależy od sposobu wykorzystania wyjść. Do zakodowania trzech sygnałów wyjściowych wystarczą dwa bity Y 0 i Y 1. W poniższej tabeli pokazane jest przykładowe kodowanie sygnałów wyjściowych: Tab. 2 Y 1 Y 0 y 0 0 0 y 1 0 1 y 2 1 0 3. Kodowanie stanów Elementem pamięciowym umożliwiającym realizację stanów automatu jest przerzutnik. W układzie logicznym stan automatu będzie reprezentowany przez kombinację stanów przerzutników. Dla trzech stanów konieczne będzie użycie dwóch przerzutników oznaczonych jako Q 0 i Q 1. Symbol Q i oznacza jednocześnie i-ty przerzutnik oraz wyjście tego przerzutnika. W tabeli poniżej przedstawiono przykładowy sposób kodowania stanów: Tab. 3 q 0 0 0 q 1 0 1 q 2 1 0 W tym przypadku stany zakodowane zostały jako kolejne liczby binarne ( odpowiada indeksowi stanu q i ). Niekiedy korzystniejsze może być użycie kodu Graya, trudno jednak wskazać ogólną zasadę, zależy to od układu przejść między stanami automatu. Stosowane są również inne sposoby kodowania (np. omówione dalej kodowanie H1).

Logika Układów Cyfrowych Synteza strukturalna automatów 3 4. Kodowanie tabeli przejść Na podstawie przejść między stanami pokazanych w grafie oraz tabel kodowania dla wejść i stanów można utworzyć zakodowaną tabelę przejść: Tab. 4 t t+1 t t+1 q i z i q i q 0 z 0 q 2 0 0 0 0 1 0 q 0 z 1 q 1 0 0 0 1 0 1 q 0 z 2 q 0 0 0 1 0 0 0 q 1 z 0 q 0 0 1 0 0 0 0 q 1 z 1 q 2 0 1 0 1 1 0 q 1 z 2 q 1 0 1 1 0 0 1 q 2 z 0 q 1 1 0 0 0 0 1 q 2 z 1 q 0 1 0 0 1 0 0 q 2 z 2 q 2 1 0 1 0 1 0 5. Synteza funkcji przejść Synteza funkcji przejść polega na określeniu pobudzeń (funkcji logicznych) dla wejść przerzutników. Sprowadza się to do syntezy układu kombinacyjnego pokazanego na poniższym rysunku. Wejściami układu są sygnały Z i oraz stany przerzutników Q i. Liczba wyjść układu jest równa liczbie przerzutników D lub T, dla przerzutników JK jest dwukrotnie większa. Z 0 Z m... Układ kombinacyjny D 0 Q 0 Przerzutniki... Q 0...... D n Q n Q n Przy syntezie układu kombinacyjnego sterującego wejściami przerzutników niezbędna jest tabela wzbudzeń przerzutnika, która pokazuje jaki powinien być stan logiczny wejścia (wejść) przerzutnika aby uzyskać żądaną zmianę stanu. Poniżej przedstawiono połączone tabele wzbudzeń dla przerzutników D, T i JK. Symbol Ø oznacza dowolną wartość logiczną (stan wejścia przerzutnika nieistotny):

Logika Układów Cyfrowych Synteza strukturalna automatów 4 Tab. 5 Q(t) Q(t+1) D(t) T(t) J(t) K(t) 0 0 0 0 0 Ø 0 1 1 1 1 Ø 1 0 0 1 Ø 1 1 1 1 0 Ø 0 Na przykład drugi wiersz w tabeli 5 pokazuje, że aby uzyskać zmianę stanu Q(t) = 0 Q(t+1) = 1 na wejścia przerzutników D i T należy podać sygnał 1 a na wejścia przerzutnika JK 1Ø. Proces syntezy zostanie pokazany jednocześnie dla trzech typów przerzutników (zazwyczaj wykonywany jest on tylko dla zadanego lub wybranego typu przerzutnika). Korzystając z tabel wzbudzeń przerzutników oraz zakodowanej tabeli przejść można uzyskać tabelę pobudzeń dla wejść przerzutników. Na podstawie pary Q(t) Q(t+1) i tabeli wzbudzeń określany jest stan wejścia przerzutnika. Na przykład pierwszy wiersz tabeli 6 pokazuje, że przerzutnik Q 1 powinien przejść ze stanu 0 w chwili t do stanu 1 w chwili t+1. Wobec tego na podstawie tabeli 5 (drugi wiersz) dla przerzutnika D wpiszemy D 1 = 1, dla przerzutnika T T 1 = 1 a dla przerzutnika JK J 1 = 1 i K 1 = Ø. Tab. 6 t t+1 D 1 D 0 T 1 T 0 J 1 K 1 J 0 K 0 0 0 0 0 1 0 1 0 1 0 1 Ø 0 Ø 0 0 0 1 0 1 0 1 0 1 0 Ø 1 Ø 0 0 1 0 0 0 0 0 0 0 0 Ø 0 Ø 0 1 0 0 0 0 0 0 0 1 0 Ø Ø 1 0 1 0 1 1 0 1 0 1 1 1 Ø Ø 1 0 1 1 0 0 1 0 1 0 0 0 Ø Ø 0 1 0 0 0 0 1 0 1 1 1 Ø 1 1 Ø 1 0 0 1 0 0 0 0 1 0 Ø 1 0 Ø 1 0 1 0 1 0 1 0 0 0 Ø 0 0 Ø Tabela 6 to zwykła tabela prawdy (zmienne wejściowe: Q 1, Q 0 w chwili t oraz Z 1 i Z 0 ). Minimalizacja funkcji dla D 1 i D 0 za pomocą siatek Karnaugha wygląda następująco: Tab. 7 D 1 Tab. 8 D 0 Z 1 Z 0 00 1 Ø 00 1 Ø 01 1 Ø 01 Ø 1 11 Ø Ø Ø Ø 11 Ø Ø Ø Ø 10 Ø 1 10 1 Ø Można zauważyć, że w tabeli przejść (tabela 6) nie występują kombinacje = 11 oraz = 11, dlatego w siatkach dla tych kombinacji można wstawić znak Ø (wartość dowolna) i wykorzystać to przy minimalizacji. Po zaznaczeniu optymalnych obszarów w siatkach

Logika Układów Cyfrowych Synteza strukturalna automatów 5 Karnaugha można zapisać następujące funkcje dla wejść przerzutników: D + 1= Q1 Q1Z1 D 0= Q1Z1Z 0+ Q1 + Z1 Funkcje logiczne można również określić z postaci kanonicznej, ale wymaga to dalszych przekształceń a postać końcowa może nie być minimalna (jeśli nie są używane wszystkie kombinacje sygnałów wejściowych). W naszym przypadku funkcja D 1 byłaby następująca: D + 1= Q1 Q1 Z1 Q1 Z1 Analogicznie można przeprowadzić minimalizację z wykorzystaniem siatek Karnaugha dla przerzutników typu T: Tab. 9 T 1 Tab. 10 T 0 Z 1 Z 0 00 1 Ø 00 1 Ø 01 1 Ø 01 1 1 Ø 11 Ø Ø Ø Ø 11 Ø Ø Ø Ø 10 1 1 Ø 10 1 Ø T + 1= Q1Z1 T 0= Q1 Z1+ Q1 W przypadku przerzutników JK siatek Karnaugha będzie oczywiście dwa razy więcej: Tab. 11 J 1 Tab. 12 K 1 Z 1 Z 0 00 1 Ø 00 Ø Ø Ø Ø 01 1 Ø 01 Ø Ø Ø Ø 11 Ø Ø Ø Ø 11 Ø Ø Ø Ø 10 Ø Ø Ø Ø 10 1 1 Ø J + 1= Z1 K 1= Z1 Tab. 13 J 0 Tab. 14 K 0 Z 1 Z 0 00 1 Ø 00 Ø Ø Ø Ø 01 Ø Ø Ø Ø 01 1 1 Ø 11 Ø Ø Ø Ø 11 Ø Ø Ø Ø 10 1 Ø 10 Ø Ø Ø Ø J + 0= Q1Z1 Q1 K 0= Z1+ 6. Synteza sygnałów wyjściowych Z zasady działania automatu Moore'a wynika, że wyjście zależy tylko od stanu automatu (wyjście jest funkcją stanów). Na podstawie kodowania wyjść i stanów (tabele 2 i 3) oraz powiązania wyjść ze stanami (według grafu automatu) można utworzyć następującą tabelę:

Logika Układów Cyfrowych Synteza strukturalna automatów 6 Tab. 15 q y Y 1 Y 0 q 0 y 0 0 0 0 0 q 1 y 1 0 1 0 1 q 2 y 2 1 0 1 0 Po minimalizacji z wykorzystaniem siatek Karnaugha: Tab. 16 Y 1 Tab. 17 Y 0 Q 1 Q 0 0 1 Q 1 Q 0 0 1 0 0 1 1 1 Ø 1 Ø Y 1= Q1 Y 0= Zwróćmy uwagę, że nawet dla tak prostych funkcji nie warto rezygnować z siatek Karnaugha. Funkcje logiczne dla Y 0 i Y 1, zapisane wprost z postaci kanonicznej (sumy iloczynów odpowiadających wierszom tabeli 15 w których Y i = 1), byłyby następujące: Y 1= Q1 Y 0= Q1 Widać, że dla obu funkcji nie udało się uzyskać postaci minimalnej, chociaż w kolumnach Y 1 i Y 0 w tabeli 15 są tylko pojedyncze jedynki (sugerowałoby to brak możliwości minimalizacji). Byłaby to prawda, ale tylko wtedy, gdyby tabela zawierała wszystkie możliwe kombinacje wartości zmiennych Q 1 i Q 0 (w tym przypadku brak kombinacji = 11). Dla porównania, poniżej pokazane są wyniki syntezy automatu Moore'a dla innego kodowania stanów (kod Graya), pokazanego w tabeli 18. Jak widać, nie ma znaczących różnic jeśli chodzi o złożoność funkcji logicznych. Tab. 18 q 0 0 0 q 1 0 1 q 2 1 1 D + 1= Q1 Q1Z1 D 0= Q1Z 0+ Z1+ Z1+ Q1 T + 1= Q1Z1 T 0= Q1 Z1+ Q1 J + 1= Z1 K 1= Z1 J 0= Z1 J 0= Q1 Q1 Y 1= Q1 Y 0=

Logika Układów Cyfrowych Synteza strukturalna automatów 7 7. Synteza automatu Mealy Synteza funkcji przejść automatu Mealy jest identyczna jak dla automatu Moore'a, różnica występuje tylko dla sygnałów wyjściowych. W automacie Moore y = f(q) co oznacza, że wyjścia uzależnione są tylko od stanów. W automacie Mealy y = f(q, z) a więc wyjścia zależą zarówno od stanów jak i wejść. Przykład Rozpatrzmy automat Mealy o identycznej funkcji przejść jak poprzednio i zmodyfikowanej funkcji wyjść: z 2 /y 0 q 0 z 1 /y 0 z 0 /y 2 z 1 /y 1 z 0 /y 0 z 2 /y 2 q 2 z 0 /y 1 z 2 /y 1 z 1 /y 2 q 1 Przyjmując takie samo kodowanie wszystkich sygnałów jak dla automatu Moore'a otrzymujemy następującą tabelę dla funkcji wyjść: Tab. 19 q i z i y i Y 1 Y 0 q 0 z 0 y 2 0 0 0 0 1 0 q 0 z 1 y 1 0 0 0 1 0 1 q 0 z 2 y 0 0 0 1 0 0 0 q 1 z 0 y 0 0 1 0 0 0 0 q 1 z 1 y 2 0 1 0 1 1 0 q 1 z 2 y 1 0 1 1 0 0 1 q 2 z 0 y 1 1 0 0 0 0 1 q 2 z 1 y 0 1 0 0 1 0 0 q 2 z 2 y 2 1 0 1 0 1 0 Podobnie jak w przypadku funkcji przejść dla kombinacji = 11 oraz = 11 używany jest znak Ø (wartość dowolna). Minimalizacja funkcji wyjść przy użyciu siatek Karnaugha wygląda następująco:

Logika Układów Cyfrowych Synteza strukturalna automatów 8 Tab. 20 Y 1 Tab. 21 Y 0 Z 1 Z 0 00 1 Ø 00 1 Ø 01 1 Ø 01 Ø 1 11 Ø Ø Ø Ø 11 Ø Ø Ø Ø 10 Ø 1 10 1 Ø Y + 1= Q1 Q1Z1 Y 0= Q1 Q1 + Z1 Warto zwrócić uwagę, że w automacie Mealy wyjścia mogą zmieniać się asynchronicznie, to znaczy bez impulsu zegarowego, wynika to wprost z definicji funkcji wyjść. W automacie Moore wyjścia zmieniają się zawsze synchronicznie ponieważ y = f(q) a zmiana stanów q jest synchroniczna. W automacie Mealy y = f(q, z) a więc nawet przy ustalonym stanie q możliwa jest zmiana wyjść, będąca rezultatem zmiany na wejściach. Ilustrują to pokazane niżej wykresy czasowe: q t t+1 q 0 CLK q 1 t z z 0 z 1 z 2 z 0 z 1 z 2 t y y 2 y 1 y 0 y 1 y 0 y 2 y 1 t Większość zmian wyjść pokazanych na wykresach odbywa się asynchronicznie i jest efektem zmiany wejść, przy ustalonym stanie automatu (zaznaczone na czerwono). Można zaobserwować również jedną zmianę wyjścia y 0 y 1 (zaznaczoną na niebiesko) przy ustalonym wejściu z 2, wynikającą ze zmiany stanu automatu q 0 q 1 pod wpływem impulsu zegarowego. 8. Metoda kodowania H1 Metoda H1 (hot one) polega na takim zakodowaniu stanów na przerzutnikach, że każdy stan reprezentowany jest przez kombinację, w której aktywny jest tylko jeden przerzutnik. Tabela kodowania stanów zgodnie z tą ideą wygląda następująco: Tab. 22 Q 2 q 0 0 0 1 q 1 0 1 0 q 2 1 0 0 Do syntezy automatu przy takim kodowaniu można użyć przedstawionej wcześniej ogólnej metody. Jednak w przypadku użycia przerzutników D można skorzystać z metody

Logika Układów Cyfrowych Synteza strukturalna automatów 9 uproszczonej, przedstawionej poniżej. Rozpatrzmy raz jeszcze nasz automat Moore'a: z 2 q 0 y 0 z 1 z 0 z 0 z 1 y 2 y 1 z 2 q 2 z 0 z 1 q 1 z 2 Z grafu automatu wynika, że przejście do stanu q 0 w chwili t+1 nastąpi wtedy, gdy w chwili t będzie spełniony jeden z następujących warunków: - automat jest w stanie q 0 i zostanie podany sygnał z 2, - automat jest w stanie q 1 i zostanie podany sygnał z 0, - automat jest w stanie q 2 i zostanie podany sygnał z 1. Inaczej mówiąc, warunki przejścia do stanu q 0 są odzwierciedlone w grafie przez wszystkie łuki dochodzące do stanu q 0. Można to zapisać następująco: q 0 (t+1) = q 0 (t) z 2 (t) + q 1 (t) z 0 (t) + q 2 (t) z 1 (t) (1) W równaniu (1) można zastąpić symbole q i stanami przerzutników Q i (pamiętając, że w syntezie używany jest przerzutnik D) wykorzystując następujące zależności: - ponieważ w każdym stanie tylko jeden przerzutnik jest aktywny więc na przykład dla stanu q 0, zapis po zakodowaniu czyli Q 2Q1, można uprościć do jednego symbolu Q 0, podobnie dla pozostałych stanów, - z zasady działania przerzutnika D wynika, że Q(t+1) = D(t). Uwzględniając powyższe zależności równanie (1) można zapisać jako: D 0 = Q 0 z 2 + Q 1 z 0 + Q 2 z 1 (2) W wyrażeniu (2) sygnały wejściowe z i nie są jeszcze zakodowane. Zgodnie z tabelą kodowania wejść (tabela 1) możemy zapisać: Tab. 23 z 0 0 0 z 0= Z1 z 1 0 1 z 1= Z1 z 2 1 0 z 2= Z1

Logika Układów Cyfrowych Synteza strukturalna automatów 10 Po wstawieniu zakodowanych sygnałów wejściowych z i do wyrażenia (2) otrzymamy: D 0= Q1 Q2 Z1 (3) Po przeprowadzeniu podobnych operacji dla stanów q 1 i q 2 uzyskujemy następujące wyrażenia: q 1 (t+1) = q 0 (t) z 1 (t) + q 1 (t) z 2 (t) + q 2 (t) z 0 (t) (4) q 2 (t+1) = q 0 (t) z 0 (t) + q 1 (t) z 1 (t) + q 2 (t) z 2 (t) (5) Po zakodowaniu: D 1= Q1Z1Z 0+ Q2 Z1 (6) D 2= Q1 Q2 Z1 (7) Uzyskane zostały w ten sposób wyrażenia potrzebne do stworzenia schematu logicznego funkcji przejść automatu. Należy pamiętać, że po resecie automat powinien znaleźć się w stanie początkowym q 0, co oznacza, że układ resetujący musi ustawić przerzutnik Q 0 na 1 a pozostałe przerzutniki na 0. Kodowanie typu H1 może być użyte również dla wejść i wyjść automatu. Dla omawianego przykładu kodowanie wejść wyglądałoby następująco: Tab. 24 Z 2 z 0 0 0 1 z 1 0 1 0 z 2 1 0 0 Uzasadnieniem dla takiego kodowania może być sposób podawania danych wejściowych. Na przykład trzy różne sygnały wejściowe mogą pochodzić bezpośrednio z przełącznika trzypozycyjnego. Przy kodowaniu wejść na dwóch bitach potrzebny byłby dodatkowy układ enkodera, służący do zakodowania numeru wyróżnionego wejścia jako liczby dwubitowej. Wadą kodowania H1 dla wejść jest zwiększenie liczby zmiennych w syntezie funkcji przejść (dla automatu Mealy również wyjść). Dla funkcji wyjść kodowanie H1 dałoby następującą tabelę: Tab. 25 Y 2 Y 1 Y 0 y 0 0 0 1 y 1 0 1 0 y 2 1 0 0 Kodowanie H1 dla wyjść daje możliwość wykrycia uszkodzenia elementu sygnalizacyjnego (np. diody LED) lub wykonawczego (np. przekaźnika) podłączonego do linii wyjściowej. Ponieważ kombinacja Y 2 Y 1 Y 0 = 000 nie jest używana, jej pojawienie się na wyjściach sygnalizuje problem. Takiej możliwości nie ma w przypadku kodowania wyjść na dwóch bitach. Wtedy kombinacja Y 1 Y 0 = 00 może oznaczać zarówno prawidłowe wyjście y 0 jak też wyjście y 1 przy uszkodzeniu na linii Y 1 (lub y 2 przy uszkodzonej linii Y 2 ).

Logika Układów Cyfrowych Synteza strukturalna automatów 11 9. Testowanie automatu W docelowym zastosowaniu automat jest "czarną skrzynką", której zachowanie odzwierciedlają zmiany na wyjściach. Nie należy jednak rozpoczynać testowania automatu od sprawdzenia funkcji wyjść (lub ograniczać tylko do funkcji wyjść). Po pierwsze, pełny test automatu, zawężony do obserwacji wyjść, wymagałby zaprojektowania takich ciągów testowych sygnałów wejściowych, które zagwarantowałyby sprawdzenie wszystkich przejść między stanami co w ogólnym przypadku nie jest proste. Po drugie, funkcja wyjść dla automatów Mealy i Moore'a jest uzależniona od stanów. Oznacza to, że nieprawidłowe zmiany na wyjściach mogą wynikać zarówno z problemu w samej funkcji wyjść jak też z błędów w funkcji przejść (nieprawidłowe zmiany stanów dają w konsekwencji błędne zmiany wyjść), nie można tego rozstrzygnąć bez obserwacji stanów. Poprawne podejście do testowania automatu wymaga sprawdzenia w pierwszej kolejności funkcji przejść (i usunięcia ewentualnych problemów). Należy zadawać odpowiednie wejścia i obserwować stany wszystkich przerzutników (na podstawie tabeli kodowania stanów można określić w jakim stanie q i znajduje się automat). Trzeba zweryfikować wszystkie przejścia według grafu lub tabeli przejść. Dla naszego automatu Moore'a (ze względu na jego regularną strukturę) sekwencja testowa jest wyjątkowo prosta: z 0 z 2 z 0 z 2 z 0 z 2 z 1 z 1 z 1 Startując ze stanu q 0 można w tym przypadku wykonać pełny test, przechodząc każde przejście tylko raz. W większości przypadków konieczne będą wielokrotne przejścia lub kolejne sekwencje testowe po sprowadzenie automatu do stanu początkowego. Po wykryciu pierwszego błędnego przejścia należy przeprowadzić analizę układu logicznego i usunąć problem. Testowanie dalszych przejść jest stratą czasu (usunięcie problemu z jednym przejściem może wpłynąć na inne przejścia - zlikwidować lub przeciwnie, ujawnić kolejne błędy). Po ewentualnych zmianach w układzie logicznym zawsze i tak trzeba sprawdzić wszystkie przejścia. Dopiero przy prawidłowo działającej funkcji przejść można wykonać sprawdzenie funkcji wyjść. Poszukiwanie przyczyn ewentualnych błędów można wtedy zawęzić do układu logicznego bezpośrednio związanego z funkcją wyjść. Przykład Rozpoczynamy test naszego automatu Moore'a sprowadzając go do stanu początkowego q 0 i podając sygnał wejściowy z 0. Załóżmy, że już pierwsze przejście jest nieprawidłowe (zamiast przejść do q 2 automat pozostaje w stanie q 0 ): t t+1 t t+1 1 0 q 0 z 0 q 2 0 0 0 0 0 0 q 0 z 0 q 0 Przejście oczekiwane Przejście obserwowane Porównując obserwowany stan = 00 ze stanem oczekiwanym = 10 można stwierdzić nieprawidłowe zachowanie przerzutnika Q 1 (przerzutnik Q 0 pozostając w stanie 0 zachowuje się poprawnie, nie wymaga więc interwencji). Aby ustalić przyczynę problemu, trzeba sprawdzić poziom logiczny na wejściu D 1 przerzutnika. Podczas sprawdzania automat musi być w stanie bezpośrednio poprzedzającym błędne przejście (w tym przypadku = 00). Możliwe są tutaj dwie sytuacje:

Logika Układów Cyfrowych Synteza strukturalna automatów 12 - D 1 = 1 czyli prawidłowy poziom logiczny na wejściu. Oznacza to problem z samym przerzutnikiem (brak zasilania, źle podłączony sygnał zegarowy, aktywny sygnał Reset lub uszkodzony przerzutnik), - D 1 = 0 oznacza problem w układzie logicznym sterującym wejściem przerzutnika. W drugim (częściej występującym) przypadku należy ustalić, czy problem tkwi w połączonym układzie czy też wynika z błędów popełnionych podczas syntezy funkcji przejść. W pierwszym kroku trzeba zweryfikować fragment schematu odpowiadający za sterowanie wejściem D 1 (analiza zerojedynkowa dla kombinacji sygnałów = 00 i = 00): - jeśli ze schematu wynika prawidłowa wartość D 1 = 1 to znaczy, że testowany układ nie jest zgodny ze schematem. Przyczyną może być błędne połączenie lub problem techniczny (brak zasilania, uszkodzona bramka), - jeśli analiza daje wartość D 1 = 0 to oznacza, że schemat jest błędny i nie zapewnia spodziewanego przejścia między stanami. W drugim przypadku należy sprawdzić jaką wartość daje funkcja logiczna dla kombinacji = 00 i = 00, w naszym przypadku: D = 0000+ 00+ 00= 1111+ 0+ 0 1 = Q1 + Q1Z1 = Jeśli wartość wynikająca z funkcji jest prawidłowa, to błąd został popełniony przy przekształceniach funkcji do schematu. W przeciwnym razie juz funkcja logiczna nie zapewnia odpowiedniego sterowania wejściem D 1 i trzeba wyjaśnić, czy wynika to z błędu w syntezie funkcji czy też z nieprawidłowej tabeli prawdy. W siatce Karnaugha należy sprawdzić zawartość komórki odpowiadającej kombinacji = 00 i = 00: - jeśli D 1 = 1 to błąd wystąpił na etapie minimalizacji lub przekształceń funkcji (nie jest ona zgodna z tabelą prawdy), - jeśli D 1 = 0 to tabela prawdy dla D 1 jest niepoprawna a błąd musiał zostać popełniony przy tworzeniu funkcji przejść (na podstawie tabeli przejść i funkcji wzbudzeń przerzutnika). Możliwe również, że sama tabela przejść jest niepoprawna (błąd przy jej tworzeniu na podstawie grafu lub opisu słownego albo błąd przy kodowaniu stanów). W przypadku, gdy błędne przejście między stanami wynika z nieprawidłowych zmian więcej niż jednego przerzutnika, trzeba powtórzyć opisane wyżej kroki dla kolejnych przerzutników. 1