Ćwiczenia laboratoryjne z logiki układów cyfrowych...

of 12/12
KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 208a Temat: Komputerowa realizacja automatów skończonych 1. Cel ćwiczenia Celem ćwiczenia jest praktyczne zapoznanie się ze sposobem programowej realizacji na komputerze automatów skończonych (na przykładzie automatów typu Moore'a). 2. Program ćwiczenia 1. Zapoznanie się z metodą transformacji formalnego modelu automatu skończonego na model odpowiedni do realizacji programowej. 2. Zapoznanie się z programem działającym na elementach modelu formalnego automatu. 3. Wprowadzenie danych reprezentujących w pamięci komputera model formalny automatu. 4. Testowanie programowego wariantu automatu skończonego. 5. Opracowanie wyników testowania automatu. 3. Wiadomości podstawowe Automat skończony jest modelem formalnym (matematycznym) systemu lub procesu przebiegającego w dyskretnych chwilach czasu [2]. Jest on więc pewną abstrakcją, którą można jednak urealnić budując odpowiedni układ funkcjonalny o zachowaniu zgodnym z reprezentującym go modelem matematycznym. Automat skończony można zrealizować jako układ elektroniczny (hardware) lub jako program komputerowy (software). Na przykład każdy układ sekwencyjny w strukturze fizycznej komputera jak też każdy program składowy systemu operacyjnego komputera można rozpatrywać jako pewien automat skończony. Odzwierciedla to dualizm między strukturą fizyczną komputera (hardware) i jego oprogramowaniem (software). Działanie automatu skończonego jest jednoznacznie określone przez funkcję przejść, która może być reprezentowana w postaci grafu (ang. transition diagram). Dla prostych problemów graf może być stworzony intuicyjnie, na podstawie słownego opisu zadania, które powinno być realizowane przez automat. Zastosowanie języka wyrażeń regularnych umożliwia przeprowadzenie tego procesu w sposób formalny. Przy programowej realizacji automatu jego graf musi być reprezentowany w pamięci komputera, powinien więc zostać przekształcony na odpowiednią postać symboliczną. 3.1. Reprezentacja grafów za pomocą wyrażeń symbolicznych Jednym z wielu sposobów opisu grafów są wyrażenia symboliczne. Elementami składowymi wyrażenia symbolicznego są oznaczenia wierzchołków i łuków grafu oraz specjalne symbole organizujące wyrażenie, czyli indeksowane pary nawiasów w postaci n ( ... ) n oraz przecinek jako symbol rozdzielający. Idea zapisu grafu w postaci wyrażenia

Post on 15-Jul-2021

3 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

Microsoft Word - 208awiczenie 208a
1. Cel wiczenia
komputerze automatów skoczonych (na przykadzie automatów typu Moore'a).
2. Program wiczenia
1. Zapoznanie si z metod transformacji formalnego modelu automatu skoczonego na
model odpowiedni do realizacji programowej.
2. Zapoznanie si z programem dziaajcym na elementach modelu formalnego automatu.
3. Wprowadzenie danych reprezentujcych w pamici komputera model formalny automatu.
4. Testowanie programowego wariantu automatu skoczonego.
5. Opracowanie wyników testowania automatu.
3. Wiadomoci podstawowe
Automat skoczony jest modelem formalnym (matematycznym) systemu lub procesu
przebiegajcego w dyskretnych chwilach czasu [2]. Jest on wic pewn abstrakcj, któr
mona jednak urealni budujc odpowiedni ukad funkcjonalny o zachowaniu zgodnym z
reprezentujcym go modelem matematycznym. Automat skoczony mona zrealizowa jako
ukad elektroniczny (hardware) lub jako program komputerowy (software). Na przykad
kady ukad sekwencyjny w strukturze fizycznej komputera jak te kady program skadowy
systemu operacyjnego komputera mona rozpatrywa jako pewien automat skoczony.
Odzwierciedla to dualizm midzy struktur fizyczn komputera (hardware) i jego
oprogramowaniem (software).
Dziaanie automatu skoczonego jest jednoznacznie okrelone przez funkcj przej,
która moe by reprezentowana w postaci grafu (ang. transition diagram). Dla prostych
problemów graf moe by stworzony intuicyjnie, na podstawie sownego opisu zadania, które
powinno by realizowane przez automat. Zastosowanie jzyka wyrae regularnych
umoliwia przeprowadzenie tego procesu w sposób formalny. Przy programowej realizacji
automatu jego graf musi by reprezentowany w pamici komputera, powinien wic zosta
przeksztacony na odpowiedni posta symboliczn.
3.1. Reprezentacja grafów za pomoc wyrae symbolicznych
Jednym z wielu sposobów opisu grafów s wyraenia symboliczne. Elementami
skadowymi wyraenia symbolicznego s oznaczenia wierzchoków i uków grafu oraz
specjalne symbole organizujce wyraenie, czyli indeksowane pary nawiasów w postaci n ( ... )
n oraz przecinek jako symbol rozdzielajcy. Idea zapisu grafu w postaci wyraenia
Logika Ukadów Cyfrowych – Komputerowa realizacja automatów 2
symbolicznego zostanie zilustrowana na przykadzie prostego grafu. Powizanie elementów
grafu i wyraenia symbolicznego pokazane jest na rys. 1.
Rys. 1. Transformacja grafu na wyraenie symboliczne
Efektem kocowym transformacji grafu jest nastpujce wyraenie:
012 2211
2 2211
1 1
- cae wyraenie zamknite jest w parze nawiasów 0 ( ... )
0 ,
- wszystkie elementy wyraenia zawarte s w parach nawiasów typu n ( ... )
n , mog by
n+1 ( ... )
n+1 ... )
n
- przed kadym nawiasem otwierajcym, z wyjtkiem 0 (, stoi symbol qi bdcy
oznaczeniem wierzchoka grafu,
- term postaci qi n (zm qj reprezentuje uk zm, prowadzcy od wierzchoka pocztkowego qi
do wierzchoka kocowego qj, uki prowadzce z qi do innych wierzchoków
zapisywane s po przecinku, na przykad qi n (zm qj, zn qk dla uku zn prowadzcego do
qk,
- wszystkie uki wychodzce z wierzchoka qi musz by opisane wewntrz jednej pary
nawiasów qi n ( ... )
n , oznacza to, e kady symbol qi moe pojawi si przed nawiasem
otwierajcym tylko raz,
- wierzchoek kocowy w termie postaci zm qj moe otwiera kolejny poziom
zagniedenia nawiasów czyli qi n ( ... zm qj
n+1 (zn qk pod warunkiem, e symbol qj nie
wystpi ju wczeniej przed nawiasem otwierajcym.
Wyraenie symboliczne dla danego grafu moe by zapisane na wiele sposobów. Poniej
pokazana jest alternatywna posta wyraenia dla przykadowego grafu. Ma ona mniejszy
stopie zagniedenia ale jest mniej optymalna, jeli chodzi o liczb uytych symboli:
01 2211
1 2
1 2211
1 1
0 )),(,),(( qzqzqqzqzqG = + (2)
Zwykle przyjmuje si zasad, e przejcia z wierzchoków pojawiajcych si w kolejnych
termach zm qj s rozwijane w gb dopóki jest to moliwe, to znaczy symbol qj nie pojawi si
ju wczeniej przed nawiasem otwierajcym.
Warto zwróci uwag, e aby odnale wszystkie uki wychodzce z wierzchoka qi
wystarczy ustali miejsce wystpienia symbolu qi przed nawiasem otwierajcym n ( a
nastpnie wypisa wszystkie termy zm qj zawarte wewntrz pary nawiasów n ( ... )
n , pomijajc
q1 q2
Logika Ukadów Cyfrowych – Komputerowa realizacja automatów 3
3.2. Zapis symboliczny grafu automatu
Punktem wyjcia do programowej realizacji automatu Moore'a jest transformacja grafu
automatu na wyraenie symboliczne. Zaómy, e zadany jest automat Moore'a
reprezentowany "szóstk":
Y - alfabet wyjciowy Y = { y1, y2, y3 }
Q - zbiór stanów wewntrznych Q = { q1, q2, q3, q4 }
Φ - funkcja przej q(t+1) = Φ (q(t), z(t))
Ψ - funkcja wyj y(t) = Ψ (q(t))
qs - stan pocztkowy automatu. qs = q2
Przyjmujemy, e dziaanie tego automatu okrelone jest przez graf przedstawiony na
rys. 2. Graf ten, oznaczony symbolem Gi, jest transformowany na wyraenie symboliczne +
iG
Wyraenie +
012 4112
2 42
2 32
3 3122
3 11
2 31
1 2
W przedstawionym wyraeniu symbol qr stojcy przed nawiasem otwierajcym k (
oznacza wierzchoek grafu, natomiast term typu qr k (zj qs reprezentuje krawd wychodzc z
wierzchoka qr i prowadzc do wierzchoka qs.
Wyraenie +
iG (1) nie reprezentuje w peni grafu Gi, poniewa nie uwzgldnia
przyporzdkowania wierzchokom qr sygnaów wyjciowych yi. Std te, aby uzyska
z1
kompletn reprezentacj grafu Gi, wyraeniu +
iG naley przyporzdkowa tabel iQ (qr ↔ yj)
o nastpujcej postaci:
W celu zapisania symbolicznej reprezentacji grafu Gi w pamici komputera, wyraenie +
iG jest przeksztacane tak, aby za dowolnym termem typu qr k ( w wyraeniu +
iG znalazy si
termy typu zj qs reprezentujce wszystkie krawdzie wychodzce z danego wierzchoka qr.
Produktem tego przeksztacenia jest wyraenie symboliczne ++
iG o postaci:
iG w tabeli iQ dodana zostanie kolumna
zawierajca adresy termów qr k ( w wyraeniu ++
iG . Interpretacja tych adresów zaley od
szczegóów implementacji. Tabela iQ po rozszerzeniu otrzymuje nazw iQ ~
i jest
przedstawiona poniej:
Tabela iQ ~
q1 x3 y2
q2 x1 y3
q3 x2 y1
q4 x4 y3
s gównymi elementami programowego
Automat Moore'a reprezentowany jest w pamici przez wyraenie symboliczne ++
iG (4) i
tabel iQ ~
. S to elementy statyczne, na których operuje odpowiedni program. Do pamitania
biecych wartoci sygnaów wejciowych, wyjciowych oraz stanu automatu su
nastpujce elementy:
Konfiguracja elementów programowego wariantu automatu Moore'a i podstawowe
operacje wykonywane na tych elementach przedstawione s na rys. 3.
Zaómy, e w sowie "q" ustawiony jest stan pocztkowy automatu q2. Podany na
Logika Ukadów Cyfrowych – Komputerowa realizacja automatów 5
.
znajduje si adres xl wierzchoka q2 w wyraeniu ++
iG . Na podstawie
iG odszukany zostanie wierzchoek q2, stojcy przed
nawiasem otwierajcym q2 1 (. W operacji przeszukiwana jest zawarto pary nawiasów
1 ( ... )
1 aby odnale term zawierajcy symbol z2. Wynikiem operacji jest term z2 q4, w
którym symbol q4 oznacza nowy stan automatu, dla którego powinien by wygenerowany
odpowiedni sygna wyjciowy. Std te w operacji w tabeli iQ ~
szukany jest wiersz
oznaczony symbolem q4. Znaleziony wiersz zawiera symbol y3, który w operacji
zapisywany jest w sowie "y". W operacji uaktualniany jest stan biecy automatu przez
zapisanie q4 w sowie "q".
Po wykonaniu opisanych powyej operacji dla jednego przejcia nastpuje aktualizacja
danych przekazywanych przez interfejs wyjciowy programu. Operacje dla kolejnych przej
wykonywane s w analogiczny sposób.
Rys. 3. Elementy programowego wariantu automatu Moore'a
4. Opis programu umoliwiajcego realizacj automatu skoczonego
4.1. Ogólna koncepcja programu
skoczonych. Obecnie zostanie omówiony sposób implementacji programowego wariantu
automatu typu Moore'a na komputerze PC.
Z wczeniejszych rozwaa wynika, e program reprezentujcy swoim dziaaniem
automat skoczony powinien realizowa trzy podstawowe funkcje:
- wprowadzanie danych okrelajcych struktur automatu i wstpne sprawdzenie ich
poprawnoci,
- graficzn prezentacj dziaania automatu na ekranie komputera.
Poniej zostanie przedstawiony sposób realizacji tych funkcji z zaznaczeniem rónic w
stosunku do wczeniej omówionych zaoe.
... ... ...
Struktura automatu skoczonego reprezentowana jest w pamici komputera w postaci
wyraenia symbolicznego. W omawianej implementacji wyraenie symboliczne moe by
wprowadzane zarówno w wersji +
iG (3) lub wersji ++
indeksów nawiasów (s one automatycznie doczane przez procedur czytajc dane
wejciowe). Oprócz wyraenia symbolicznego podaje si take funkcj wyj reprezentowan
przez tabel iQ (qr ↔ yj).
Po wprowadzeniu wyraenia symbolicznego poddawane jest ono analizie (sprawdzana
jest poprawno jego skadni). W tym celu wykorzystywane s diagramy skadni wyraenia
symbolicznego przedstawione na rys. 4. Zastosowany algorytm analizy skadniowej
charakteryzuj dwie cechy:
- okrelenie kolejnego kroku analizy zaley tylko od obecnego stanu oraz od
pojedynczego, aktualnie wczytywanego symbolu,
- adnego z kolejnych kroków analizy nie mona cofn. Jest to tzw. analiza bez
powrotów z wyprzedzeniem o jeden symbol (ang. one-symbol-lookahead without
backtracking) [5].
W przypadku stwierdzenia poprawnoci wyraenia symbolicznego umieszczane jest ono
w pamici, w przeciwnym przypadku sygnalizowany jest bd. Ostatecznie w pamici
zapisane jest wyraenie symboliczne ++
iG oraz tabela iQ ~
.
Wraz z analiz skadni wyraenia symbolicznego tworzona jest lista uków grafu
automatu. Jest ona wykorzystywana do graficznej prezentacji grafu automatu na ekranie
komputera i dokadniej zostanie opisana póniej.
4.1.2. Symulacja dziaania automatu
przedstawionym w punkcie 3.3. Zostaa ona rozszerzona o podprogram umoliwiajcy
wprowadzanie z klawiatury sekwencji symboli wejciowych. Po wczytaniu symbolu
ID ID uk:
ID: litera cyfra
wejciowego wykonywane s kolejne operacje zgodnie ze schematem przedstawionym na
rys. 3. W ich wyniku otrzymujemy nowy stan automatu qr oraz odpowiadajcy mu symbol
wyjciowy yj. W trakcie symulacji dziaania automatu na ekranie wywietlany jest graf
automatu. Wierzchoek grafu odpowiadajcy aktualnemu stanowi automatu jest odpowiednio
oznaczony. Wraz z analiz kolejnych symboli wejciowych nastpuje uaktualnienie obrazu
grafu na ekranie komputera. Sposób uzyskania grafu automatu na ekranie komputera zostanie
przedstawiony w nastpnym punkcie.
4.1.3. Graficzne przedstawienie grafu automatu na ekranie komputera
Jednym ze sposobów opisu dziaania automatu skoczonego jest podanie jego grafu
przej. Graf automatu reprezentowany jest wówczas przez zbiór wierzchoków V
odpowiadajcy stanom wewntrznym automatu oraz przez zbiór krawdzi E okrelajcy
moliwe przejcia midzy stanami automatu. W celu uzyskania na ekranie odpowiadajcego
badanemu automatowi grafu przej naley okreli, na podstawie wyraenia symbolicznego,
zbiór krawdzi tego grafu. Krawd opisywana jest nastpujcymi parametrami:
k = (qp, qk, zj, rk)
gdzie:
qp - stan pocztkowy (aktualny),
qk - stan kocowy (nastpny),
zj - sygna wejciowy powodujcy przejcie automatu ze qp do stanu qk,
rk - rodzaj krawdzi.
Lista krawdzi tworzona jest równolegle podczas analizy wyraenia symbolicznego (patrz
punkt 4.1.1). Otrzymujemy wówczas zbiór krawdzi, dla których okrelone s qp, qk oraz zj.
Nastpnie zostaje okrelony rodzaj kadej krawdzi zgodnie z oznaczeniami przedstawionymi
na rys. 5.
Dysponujc opisanym zbiorem krawdzi mona narysowa graf automatu. Odpowiednia
procedura skada si z trzech czci:
- rysowanie wierzchoków (stan aktualny jest wyróniony),
- rysowanie uków (krawdzi) odpowiadajcych przejciom midzy stanami,
- opisanie krawdzi grafu odpowiednimi symbolami wejciowymi zj.
4.2. Opis dziaania programu
Dane - definiowanie automatu,
qp qk
4.2.1. Zakadka Dane
Zakadka ta suy do definiowania automatu w postaci wyraenia symbolicznego lub
wczytania opisu automatu z pliku. Widok ekranu po otwarciu tej zakadki mona podzieli na 4
gówne pola, pokazane poniej, osobno dla automatów w wersji Moore'a i Mealy:
Rys. 6. Zakadka Dane dla automatu Moore'a
Rys. 7. Zakadka Dane dla automatu Mealy
Logika Ukadów Cyfrowych – Komputerowa realizacja automatów 9
1. Definiowanie automatu.
- okrelenie znaków stosowanych dla sygnaów wejciowych (domylnie z), stanów (q) i
sygnaów wyjciowych (y),
- okno wpisu wyraenia symbolicznego w postaci zalenej od typu automatu,
- przycisk Rysuj graf pozwala (po wprowadzeniu opisu) uzyska graf automatu,
- przycisk Resetuj automat suy do kasowania opisu automatu.
2. Rysunek grafu automatu.
- stany w postaci kóek z wpisan nazw stanu (w wersji Moore’a dodatkowo obok stanu
pokazywany jest sygna wyjciowy),
- przejcia w formie strzaek opisanych sygnaami wejciowymi (w wersji Mealy
dodatkowo sygnaami wyjciowymi),
- trackbar sucy do skalowania rysunku.
3. Definiowanie automatu za pomoc tabeli.
Tabela przej
- liczba stanów oraz sygnaów wejciowych,
- indeks pocztkowy dla powyszych alfabetów (wikszy lub równy zero),
- tabela przej utworzona na podstawie powyszych danych pojawi si po wciniciu
przycisku Stwórz.
W obecnej wersji programu wprowadzanie danych w postaci tabeli pozwala tylko na
podanie opisu symboli, liczby stanów i wej oraz indeksu pocztkowego. Jednak po
zdefiniowaniu przej w postaci wyraenia symbolicznego dane te i tak zostan
zaktualizowane. Dlatego tabela ta praktycznie pozwala tylko na prezentacj informacji o
automacie.
- pozwala przyporzdkowa stanom odpowiednie wyjcia,
- po wypenieniu tabeli trzeba nacisn przycisk Rysuj graf (przy tabeli wyj), na grafie
pojawi si wówczas oznaczenia wyj.
4. Sekcja odczytu/zapisu automatów.
- zapis automatów w formie zaszyfrowanej (AES).
Wprowadzanie opisu automatu
Symbole z, q oraz y zwykle indeksujemy od 0 (indeks pocztkowy musi by jednakowy
dla wej, stanów i wyj). Trzeba koniecznie pamita o podaniu kompletu przej.
Aby wprowadzi opis automatu w postaci wyraenia symbolicznego naley:
- wybra typ automatu (Moore'a lub Mealy),
- zdefiniowa znaki dla sygnaów wejciowych, stanów i sygnaów wyjciowych lub
pozostawi domylne,
Logika Ukadów Cyfrowych – Komputerowa realizacja automatów 10
• dla automatu Moore'a wyraenie ma klasyczn posta, omówion w punkcie 3.1, typu
(q0(z0q2(z0q0,z1q0),z1q1(z0q2,z1q3(z0q3,z1q0))),
• dla automatu Mealy w rodku cigu zi qj dochodzi symbol wyjcia, na przykad
(q0(z0y3q2(z0y0q0,z1y3q2),z1y2q1(z0y3q2,z1y1q3(z0y1q3,z1y0q0)))).
- nacisn przycisk Rysuj graf obok pola tekstowego wyraenia,
- dla automatu Moore'a naley dodatkowo wypeni tabel wyj i nacisn przycisk
Rysuj graf przy tabeli wyj.
Po wprowadzeniu opisu automatu mona zapisa graf w pliku i przej do symulacji.
4.2.2. Zakadka Symulacja
Zakadka ta suy do symulacji dziaania automatu zdefiniowanego lub wczytanego w
zakadce Dane. W ekranie zakadki Symulacja mona wyróni pokazane poniej 4 pola:
Rys. 7. Zakadka Symulacja
1. Rysunek grafu automatu.
Rysunek grafu jest podobny jak w zakadce Dane, dodatkowo wyrónione s w nim
niektóre elementy:
- stan kocowy symulacji (na zielono),
- ostatnio uyte przejcie - uk grafu, uyty sygna wejciowy a w przypadku wersji
Mealy równie sygna wyjciowy (na pomaraczowo).
2. Log symulacji.
Log jest zapisem kolejnych kroków symulacji zawierajcym podawane sygnay wejciowe,
stan wyjciowy Q(t) i kocowy Q(t+1) oraz wyjcie automatu Y(t+1).
Logika Ukadów Cyfrowych – Komputerowa realizacja automatów 11
3. Opis i uruchamianie symulacji.
Sekcja ta suy do wprowadzenia cigu sygnaów wejciowych i uruchamiania symulacji.
Kady symbol opisujcy cig powinien by wprowadzony w osobnej linii, na przykad:
z0
z1
z1
Po wprowadzeniu cigu naley wcisn przycisk Zatwierd. Nastpnie mona wybra jeden z
dwóch trybów symulacji:
Symulacja rozpoczyna si standardowo od pierwszego wierzchoka automatu (czyli stanu o
najniszym indeksie). Mona jednak na pocztku lub w dowolnym momencie pracy krokowej
zmieni stan, klikajc na jego symbol na rysunku. Po zakoczeniu symulacji opis cigu
wejciowego znika z okna.
4. Konfiguracja kolorów rysunku.
- to rysunku,
Dla problemów zadanych przez prowadzcego, w postaci opisu sownego, przygotowa i
przetestowa automaty Moore'a:
zawiera on stanów równowanych),
iG i tabeli wyj iQ ,
- wprowadzi dane do programu i przetestowa komputerowy model automatu podajc
odpowiednie cigi symboli wejciowych,
- zaprojektowa cig testowy o jak najmniejszej dugoci, który umoliwiby pene
przetestowanie automatu (sprawdzenie wszystkich przej). W przypadku niektórych
automatów moe by potrzebny wicej ni jeden taki cig.
6. Sprawozdanie z wiczenia
- umieci grafy automatów dla problemów podanych przez prowadzcego wiczenie,
- przedstawi wyraenia symboliczne reprezentujce grafy automatów,
- umieci wyniki testowania programowych wariantów automatów,
- poda krótkie wnioski z wiczenia.
Logika Ukadów Cyfrowych – Komputerowa realizacja automatów 12
7. Literatura
[1]. Bromirski J.: Teoria automatów, WNT, Warszawa 1972
[2]. Hopcroft J. E., Ullman J.D.: Introduction to Automata Theory, Languages and
Computation, Addison-Wesley Publishing Company, Reading, Massachusets 1979
[3]. Kazimierczak J.: System Cybernetyczny, Wyd. Wiedza Powszechna (seria "Omega"),
Warszawa 1978
[4]. Kazimierczak J., Kluska J., Kaczmarek A., Podstawy teorii automatów - Laboratorium,
Wyd. Politechniki Rzeszowskiej, Rzeszów 1984