Automat skończony FSM Finite State Machine

Podobne dokumenty
Wykład 4. Języki Opisu Sprzętu

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

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

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

Układy asynchroniczne

Synteza strukturalna automatów Moore'a i Mealy

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

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

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

Laboratorium przedmiotu Technika Cyfrowa

Układy asynchroniczne

Sławomir Kulesza. Projektowanie automatów asynchronicznych

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

Sławomir Kulesza. Projektowanie automatów synchronicznych

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

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

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

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

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

Asynchroniczne statyczne układy sekwencyjne

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

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

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

Synteza strukturalna automatu Moore'a i Mealy

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

Układy kombinacyjne - przypomnienie

Podstawy Techniki Cyfrowej Teoria automatów

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

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

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

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

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

Proste układy sekwencyjne

Układy sekwencyjne - wiadomości podstawowe - wykład 4

Automat Moore a. Teoria układów logicznych

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

Projektowanie Scalonych Systemów Wbudowanych VERILOG

LICZNIKI PODZIAŁ I PARAMETRY

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

Teoria układów logicznych

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

Programowalne układy logiczne

Projektowanie automatów z użyciem VHDL

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

Układy kombinacyjne i sekwencyjne. Podczas ćwiczenia poruszane będą następujące zagadnienia:

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

2.1. Metoda minimalizacji Quine a-mccluskey a dla funkcji niezupełnych.

Podstawy układów mikroelektronicznych

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

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

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

Programowalne układy logiczne kod kursu: ETD Układy sekwencyjne W

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

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

Architektura komputerów Wykład 2

UKŁADY MIKROPROGRAMOWALNE

Krótkie przypomnienie

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

Programowany układ czasowy

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

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

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

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

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1

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

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

Podział układów cyfrowych. rkijanka

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

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

Układy sekwencyjne przerzutniki 2/18. Przerzutnikiem nazywamy elementarny układ sekwencyjny, wyposaŝony w n wejść informacyjnych (x 1.

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

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

Podstawowe układy cyfrowe

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

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

Badanie właściwości skramblera samosynchronizującego

Wstęp do Techniki Cyfrowej... Układy kombinacyjne

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

UKŁADY CYFROWE. Układ kombinacyjny

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

Programowany układ czasowy APSC

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

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

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

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.

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

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

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

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

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

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

Asynchroniczne statyczne układy sekwencyjne

1. SYNTEZA UKŁADÓW SEKWENCYJNYCH

Technika Cyfrowa 1 wykład 1: kody. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej

(przykład uogólniony)

Implementacja algorytmu szyfrującego

Projekt sekwencyjnego układu przełączającego z wykorzystaniem sterownika programowalnego Podstawy automatyki i automatyzacji - Ćwiczenia Laboratoryjne

LABORATORIUM PODSTAWY ELEKTRONIKI REJESTRY

UKŁADY SEKWENCYJNE. Wprowadzenie. Napełnianie i opróżnianie. Programowanie. Zbiornik z trzema zaworami. Układ Start Stop. Podnośnik góra dół.

Transkrypt:

Automat skończony FSM Finite State Machine Projektowanie detektora sekwencji Laboratorium z Elektroniki Współczesnej A. Skoczeń, KOiDC, WFiIS, AGH, 2019 AGH, WFiIS, Elektronika Współczesna 1

Deterministyczny automat skończony Definicja formalna: Ψ X, Ψ S, Ψ Z, δ, λ, S 0 Ψ X zbiór wektorów wejściowych Ψ S zbiór wektorów stanu wewnętrznego Ψ Z zbiór wektorów wyjściowych X=[X 1, X 2,... X m ] wektor wejść Z=[Z 1, Z 2,... Z n ] wektor wyjść S n =[Q 1, Q 2,... Q k ] wektor stanu S n+1 =[Q 1+, Q 2+,... Q k+ ] wektor stanu następnego Z = λ(s n, X) funkcja wyjść S n+1 = δ(s n, X) funkcja stanu AGH, WFiIS, Elektronika Współczesna 2

Deterministyczny automat skończony Zbudowany jest z: Logika stanu następnego (wejścia: X, S n ; wyjście: S n+1 ) Rejestr stanu Logika wyjściowa (wejścia: X, S n ; wyjście: Z) Sprzężenie zwrotne X Logika stanu następnego S n+1 Rejestr stanu S n Logika wyjściowa Z clk rst Sprzężenie zwrotne AGH, WFiIS, Elektronika Współczesna 3

X 1 X 2 X m Z 1 Z 2 Z n Model automatu Mealy ego Q 1 + Q 1 Q 1 Układ kombinacyjny Q 2 + Q 2 X=[X 1, X 2,... X m ] wektor wejść Z=[Z 1, Z 2,... Z n ] wektor wyjść S=[Q 1, Q 2,... Q k ] wektor stanu S + =[Q 1+, Q 2+,... Q k+ ] wektor stanu następnego Q 2 Q k Q k + Q k Z = λ(s,x) S + = δ(s,x) funkcja wyjść funkcja stanu clk AGH, WFiIS, Elektronika Współczesna 4

Model automatumoore a Z = λ(s) Q 1 + Q 1 S + = δ(s,x) funkcja wyjść funkcja stanu X 1 X 2 X m Q 1 Układ Kombinacyjny stanu następnego Q (wejścia rejestru stanu) 2 Q 2 + Q 2 Układ kombinacyjny wyjść Z 1 Z 2 Z n Q k Q k + Q k clk AGH, WFiIS, Elektronika Współczesna 5

Projekt detektora sekwencji 101. Jest to układ, który analizuje ciąg zer i jedynek przychodzący na wejście X i generujący wyjście Z=1, gdy wykryta zostanie określona sekwencja. X clk rst US Specyfikacja: Sygnał wejściowy X może się zmieniać tylko pomiędzy aktywnymi zboczami zegara, Każda sekwencja 101 pojawiająca się w strumieniu bitowym X powoduje pojawienie się 1 na wyjściu Z w momencie ostatniej jedynki, Układ nie jest resetowany w momencie pojawienia się 1 na wyjściu. Przykładowwe działanie układu: X= 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 Z= 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 time 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Z 1 AGH, WFiIS, Elektronika Współczesna 6

Przykład ten zostanie zaprojektowany na dwa sposoby: 1. Jako automat Moore a (synchroniczny) slajdy od 6 do 13, 2. Jako automat Mealy ego (asynchroniczny) slajdy od 14 do 20. AGH, WFiIS, Elektronika Współczesna 7

Konstrukcja grafu stanów dla automatu Moore a. Zaczynamy od stanu resetu układu oznaczonego przez S 0. Jeśli w tym stanie strumień wejściowy X podaje: 0 to układ pozostaje w tym stanie gdyż nie rozpoczęła się poszukiwana sekwencja, 1 to stan układu musi ulec zmianie do S 1 aby zapamiętać, że pierwszy element poszukiwanej sekwencji został wykryty. X=0 S 0 X=1 S 1 AGH, WFiIS, Elektronika Współczesna 8

Analizujemy zachowanie układu w stanie S 1. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ pozostaje w tym stanie gdyż nowo otrzymana jedynka ponownie rozpoczyna poszukiwaną sekwencję, 0 to stan układu musi ulec zmianie do S 2 aby zapamiętać, że pierwsze dwa elementy poszukiwanej sekwencji zostały wykryte. 0 1 S 0 1 S 1 0 S 2 AGH, WFiIS, Elektronika Współczesna 9

Analizujemy zachowanie układu w stanie S 2. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ musi przejść do nowego stanu S 3 (nie może powrócić do S 1 ) gdyż nowo otrzymana jedynka kończy poszukiwaną sekwencję i sygnał wyjściowy musi ulec zmianie, 0 to układu wymaga wykasowania gdyż sekwencja 100 jest błędna. 0 1 S 0 1 S 1 0 0 S 3 Z=1 1 S 2 AGH, WFiIS, Elektronika Współczesna 10

Analizujemy zachowanie układu w stanie S 3. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ musi powrócić do S 1 gdyż nowo otrzymana jedynka rozpoczyna ponownie poszukiwaną sekwencję, 0 to układ powinien wrócić do S 2 gdyż sekwencja 1010 powinna znów dać Z=1 po kolejnej jedynce na wejściu. 0 1 S 0 1 S 1 1 0 S 3 Z=1 0 1 0 S 2 AGH, WFiIS, Elektronika Współczesna 11

0 1 S 0 1 S 1 1 0 Tabela stanów: Stan obecny S 3 Z=1 S 2 Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=1 Start S 0 S 0 S 1 0 Kończące 1 S 1 S 2 S 1 0 Kończące 10 S 2 S 0 S 3 0 Kończące 101 S 3 S 2 S 1 1 0 1 0 AGH, WFiIS, Elektronika Współczesna 12

Tabela stanów: Stan obecny Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=1 Start S 0 S 0 S 1 0 Kończące 1 S 1 S 2 S 1 0 Kończące 10 S 2 S 0 S 3 0 Kończące 101 S 3 S 2 S 1 1 Tabela przejść: Stan obecny Stany kodujemy za pomocą dwóch przerzutników A i B. Stan następny A n+1 B n+1 Obecne wyjście Z Nazwa A n B n X=0 X=1 X=1 Start 00 00 01 0 Kończące 1 01 10 01 0 Kończące 10 10 00 11 0 Kończące 101 11 10 01 1 AGH, WFiIS, Elektronika Współczesna 13

Stan następny Obecne Stan obecny A n+1 B n+1 wyjście Z Nazwa A n B n X=0 X=1 X=1 Start 00 00 01 0 Kończące 1 01 10 01 0 Kończące 10 10 00 11 0 Kończące 101 11 10 01 1 AB X 0 1 00 0 0 AB X 0 1 00 0 1 A B 0 1 0 0 0 01 1 0 01 0 1 1 0 1 11 1 0 10 0 1 11 0 1 10 0 1 Z = AB A n+1 = ഥXB + XAഥB B n+1 = X AGH, WFiIS, Elektronika Współczesna 14

Na podstawie tabel Karnaugha - ręcznie Układ Moore a i przebiegi czasowe w nim Incisive, Cadence clk rst X Z state Wyjście zmienia się synchronicznie względem sygnału zegarowego AGH, WFiIS, Elektronika Współczesna 15

Konstrukcja grafu stanów dla automatu Mealy ego. Zaczynamy od stanu resetu układu oznaczonego przez S 0. Jeśli w tym stanie strumień wejściowy X podaje: 0 to układ pozostaje w tym stanie gdyż nie rozpoczęła się poszukiwana sekwencja, 1 to stan układu musi ulec zmianie do S 1 aby zapamiętać, że pierwszy element poszukiwanej sekwencji został wykryty. X=0/ S 0 X=1/ S 1 AGH, WFiIS, Elektronika Współczesna 16

Analizujemy zachowanie układu w stanie S 1. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ pozostaje w tym stanie gdyż nowo otrzymana jedynka ponownie rozpoczyna poszukiwaną sekwencja, 0 to stan układu musi ulec zmianie do S 2 aby zapamiętać, że pierwsze dwa elementy poszukiwanej sekwencji zostały wykryte. 0/0 S 0 1/0 S 1 1/0 S 2 0/0 AGH, WFiIS, Elektronika Współczesna 17

Analizujemy zachowanie układu w stanie S 2. Jeśli w tym stanie strumień wejściowy X podaje: 1 to poszukiwana sekwencja została ukończona i wyjściowa jedynka ma być wygenerowana. Jaki jednak jest stan następny? Nowy stan czy S 1 czy S 0? S 0 jest wykluczone, gdyż układ nie podlega resetowaniu po rozpoznaniu sekwencji. Oznacza to, że ostatnia jedynka w sekwencji jest równocześnie pierwszą w kolejnej sekwencji. Dlatego stanem następnym musi być S 1. 0 to stan układu powinien być wykasowany do S 0 gdyż jest to drugie zero i sekwencja 00 nie należy do poszukiwanej sekwencji. 0/0 S 0 1/0 0/0 1/1 S 1 1/0 S 2 0/0 AGH, WFiIS, Elektronika Współczesna 18

0/0 S 0 1/0 0/0 1/1 S 1 1/0 S 2 0/0 Tabela stanów: Stan obecny Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=0 X=1 Start S 0 S 0 S 1 0 0 Kończące 1 S 1 S 2 S 1 0 0 Kończące 10 S 2 S 0 S 1 0 1 AGH, WFiIS, Elektronika Współczesna 19

Tabela stanów: Stan obecny Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=0 X=1 Start S 0 S 0 S 1 0 0 Kończące 1 S 1 S 2 S 1 0 0 Kończące 10 S 2 S 0 S 1 0 1 Stany kodujemy za pomocą dwóch przerzutników A i B. Tabela przejść: Stan obecny Stan następny A n+1 B n+1 Obecne wyjście Z Nazwa A n B n X=0 X=1 X=0 X=1 Start 00 00 01 0 0 Kończące 1 01 10 01 0 0 Kończące 10 10 00 01 0 1 AGH, WFiIS, Elektronika Współczesna 20

Tabelę przejść rozpisujemy na tabele Karnougha: Stan obecny Stan następny A n+1 B n+1 Obecne wyjście Z Nazwa A n B n X=0 X=1 X=0 X=1 Start 00 00 01 0 0 Kończące 1 01 10 01 0 0 Kończące 10 10 00 01 0 1 Nie potrzebny 11 xx xx x x AB X 0 1 00 0 0 01 1 0 11 x x 10 0 0 AB X 0 1 00 0 1 01 0 1 11 x x 10 0 1 AB X 0 1 00 0 0 01 0 0 11 x x 10 0 1 A n+1 = ഥXB B n+1 = X Z = XB AGH, WFiIS, Elektronika Współczesna 21

Na podstawie tabel Karnaugha - ręcznie Układ Mealy ego i przebiegi czasowe w nim Incisive, Cadence clk rst X Z state Wyjście zmienia się asynchronicznie w stosunku do sygnału zegarowego AGH, WFiIS, Elektronika Współczesna 22

Układ Mealy ego Porównanie przebiegów czasowych Incisive, Cadence clk rst X Z state Układ Moore a clk rst X Z state Wyjście zmienia się asynchronicznie w stosunku do sygnału zegarowego Incisive, Cadence Wyjście zmienia sie synchronicznie względem sygnału zegarowego AGH, WFiIS, Elektronika Współczesna 23

Układ Mealy ego Porównanie wyników automatycznej syntezy za pomocą programu RTL Compiler Encounter RTL Compiler, Cadence Układ Moore a Encounter RTL Compiler, Cadence AGH, WFiIS, Elektronika Współczesna 24

Chociaż nie ma jednej konkretnej procedury, która mogłaby zostać wykorzystana do uzyskania grafów przejść lub tabel stanów automatu skończonego dla każdego problemu, pomocne powinny być następujące wytyczne: 1. Najpierw skonstruuj przykładowe sekwencje wejściowe i wyjściowe, aby upewnić się, że rozumiesz opis problemu. 2. Określ, w jakich warunkach obwód powinien zresetować się do stanu początkowego. 3. Jeśli tylko jedna lub dwie sekwencje prowadzą do niezerowego wyjścia, dobrym sposobem na rozpoczęcie jest skonstruowanie wykresu częściowego stanu dla tych sekwencji. 4. Innym sposobem rozpoczęcia jest określenie, które sekwencje lub grupy sekwencji muszą zostać zapamiętane przez obwód i odpowiednio skonfigurowane stany. 5. Za każdym razem, gdy dodajesz strzałkę do wykresu stanu, określ, czy może przejść do jednego z wcześniej zdefiniowanych stanów lub czy należy dodać nowy stan. 6. Sprawdź swój wykres, aby upewnić się, że istnieje jedna i tylko jedna ścieżka opuszczająca każdy stan dla każdej kombinacji wartości zmiennych wejściowych. 7. Po zakończeniu wykresu przetestuj go, stosując sekwencje wejściowe sformułowane w części 1 i upewniając się, że sekwencje wyjściowe są poprawne. AGH, WFiIS, Elektronika Współczesna 25