Układy sekwencyjne o programach rozgałęzionych
W procesie projektowania układów sekwencyjnych można wyróżnić etapy:
formalizacja założeń, czyli sprecyzowanie założeń dotyczących działania układu w postaci umożliwiającej tworzenie jego opisu matematycznego (w etapie tym wyodrębnia się stany wewnętrzne układu, często w ilości większej niż jest to niezbędne i przypisuje im stany wyjść - przyjmuje się zatem model układu Moore’a; najczęściej wyjściową formą zapisu działania automatu jest pierwotna tablica przejść i wyjść, graf lub sieć działań,
minimalizacja liczebności zbioru stanów wewnętrznych (w etapie tym podejmuje się również decyzję o ewentualnej zmianie układu Moore'a na układ Mealy'ego, co prowadzi do dalszego, zmniejszenia liczby stanów wewnętrznych),
kodowanie, czyli przypisanie poszczególnym stanom wewnętrznym stanów sygnałów pamięciowych,
wyznaczanie funkcji wyjść,
wyznaczanie funkcji przejść, albo - w przypadku zastosowania wydzielonego bloku przerzutników – wyznaczanie funkcji
wzbudzeń przerzutników,
podjęcie decyzji dotyczącej techniki realizacji układu
sterującego (np.: przekaźnikowy, bramkowy elektroniczny – pneumatyczny),
sporządzenie schematów strukturalnych i montażowych.
Układy Moore’a
Przykład
Sygnał wejściowy x1 układu jest ciągiem impulsów prostokątnych.
Zadaniem układu jest odtwarzanie na wyjściu y tych impulsów sygnału x1, które rozpoczynają się w stanie gdy drugi sygnał wejściowy x2 ma wartość 1.
Rozwiązanie
1 y x
x2
Przebieg sygnału x2 nie jest określony;
rozważając zachowanie układu należy
przewidzieć możliwe sekwencje jego zmian w stosunku do przebiegu sygnału x1.
Niezdeterminowany przebieg zmian sygnałów wejściowych jest charakterystyczną cechą układów o programach rozgałęzionych.
Projektowanie układów Moore’a bez wydzielonego bloku przerzutników
Tworzymy przykładowy przebieg zmian sygnałów wejściowych i odpowiadający mu przebieg sygnału wyjściowego.
t t
t x1
x2
y
0 1 2 3 4 34 5 4 0 3 3
0 1 0 1 2 1 0 3 4 5 0
Wyróżnia się tzw. pierwotne stany wewnętrzne o różnych zestawach wartości sygnałów.
Układy Moore’a
t t
t x1
x2
y
0 1 2 3 4 34 5 4 0 3 3
0 1 0 1 2 1 0 3 4 5 0
00 01 11 10 y 0 0 3 1 0 1 0 2 1 0
2 3 2 0
3 0 3 4 0 4 3 4 5 1 5 0 4 5 1
Qt+1
2 1x x Qt
Na podstawie przebiegu czasowego tworzy się tzw. pierwotną tablicę przejść i wyjść, wyróżniając stany stabilne układu.
stan stabilny stan niestabilny
00 01 11 10 y 0 0 3 - 1 0 1 0 - 2 1 0 2 - 3 2 0 3 0 3 4 - 0 4 - 3 4 5 1 5 0 - 4 5 1
Qt+1
00 01 11 10 y 0 0 3 - 1 0 1 0 - 2 1 0 2 - 3 2 1 0 3 0 3 4 - 0 4 - 3 4 5 1 5 0 - 4 5 1
Qt+1
(niemożliwym do osiągnięcia – nie jest możliwa jednoczesna zmiana obu sygnałów wejściowych) lub nie uwzględnionym w wymyślonym przebiegu czasowym.
Qt Qt
2 1x
x x1x2
Układy Moore’a
00 01 11 10 y 0 0 3 - 1 0 1 0 - 2 1 0 2 - 3 2 1 0 3 0 3 4 - 0 4 - 3 4 5 1 5 0 - 4 5 1
Qt+1
00 01 11 10 y 0 0 1 0 0 0 1 0 1 2 - 0 2 0 1 2 2 1
Qt+1 Minimalizacja liczebności zbioru stanów wewnętrznych
0
1
2 3
4
t 5
Q
Qt
Posługując się tzw. wykresem skracania poszukuje się możliwości zastąpienia kilku stanów jednym.
) 2 , 1 , 0 (
) 3 (
) 5 , 4 (
Tablica pierwotna Wykres skracania
Tablica minimalna – z minimalną liczbą stanów wewnętrznych
2 1x x
2 1x x
Do zakodowania trzech stanów wewnętrznych niezbędne są dwie zmienne, np. Q1 i Q2..
Do analizy możliwości przypisania poszczególnym stanom
odpowiednich kodów zostanie wykorzystany tzw. wykres przejść.
00 01 11 10 y 0 0 1 0 0 0 1 0 1 2 - 0 2 0 1 2 2 1
Qt+1
2 1Q Q
0
1
2 00
01
11
Przejście ze stanu 2 do 1 wymagałoby jednoczesnej zmiany dwóch sygnałów, co jest niemożliwe (zjawisko wyścigu).
Qt
2 1x x
Układy Moore’a
2 1Q Q
0
1
2 00
01
11
Możliwości modyfikacji tablicy przejść i wyjść w celu uniknięcia wyścigu.
1. Zastosowanie tzw. przejścia cyklicznego poprzez stan 1, co eliminuje konieczność przejścia ze stanu 2 do 0.
00 01 11 10 y 0 0 1 0 0 0 1 0 1 2 - 0 2 1 1 2 2 1
Qt+1 Qt
2 1x x
Możliwości modyfikacji tablicy przejść i wyjść w celu uniknięcia wyścigu.
2. Wprowadzenie dodatkowwego stany wewnętrznego.
00 01 11 10 y 0 0 1 0 0 0 1 0 1 2 - 0 2 3 1 2 2 1 3 0 - - - -
Qt+1
2 1Q Q
0
1
2 00
01
11 10 3
Qt
2 1x x
Układy Moore’a
Przyjmując jedno z rozwiązań uniknięcia wyścigu, np. z dodatkowym stanem wewnętrznym, i przyjęte kody stanów wewnętrznych, tworzy się zakodowaną tablicę przejść.
00 01 11 10 y 0 0 1 0 0 0 1 0 1 2 - 0 2 3 1 2 2 1 3 0 - - - -
Qt+1
2 1x x Qt
00 01 11 10 y
00 00 01 00 00 0 01 00 01 11 - 0 11 10 01 11 11 1 10 00 - - - -
2 1x x
2 1Q Q
' 'Q Q )
0 (
) 1 (
) 2 (
) 3 Tablica nie zakodowana (
Tablica zakodowana z uproszczoną symboliką
'
1 Q
Q
Q Q
t t
wyjść i funkcji przejść.
00 01 11 10 y 00 00 01 00 00 0 01 00 01 11 - 0 11 10 01 11 11 1 10 00 - - - -
2 1Q Q
' 2 ' 1Q Q
2 1x x
1 2 2
2 2
1 '
2
2 2
1 1
2 '
1
x Q
x Q
x x Q
x Q
Q x
Q Q
Q1
y
Q=y
1
x2
x1
Q2
Q x2
x1
y
Schemat układu z elementów NAND
x1
x2
Q2
y Q1
Układy Moore’a
Utwórzmy także zakodowana tablicę przejść i wyjść dla wariant z przejściem cyklicznym.
2 1Q Q
0
1
2 00
01
11
00 01 11 10 y 0 0 1 0 0 0 1 0 1 2 - 0 2 1 1 2 2 1
Qt+1 Qt
2 1x x
00 01 11 10 y 00 00 01 00 00 0 01 00 01 11 - 0 11 01 01 11 11 1
2 1Q Q
' 2 ' 1Q Q
2 1x x
Tablicę tę należy
rozszerzyć do postaci tablicy Karnaugha.
00 01 11 10 y 00 00 01 00 00 0 01 00 01 11 - 0 11 01 01 11 11 1 10 - - - - -
2 1Q Q
' 2 ' 1Q Q
2 1x x
00 01 11 10 y 00 00 01 00 00 0 01 00 01 11 - 0 11 01 01 11 11 1
2 1Q Q
' 2 ' 1Q Q
Tablica nie pełna
Tablica pełna
2 2 2
1 1
' 2
1 2 '
1
x Q x
x Q
Q
x Q Q
Q1
y
Układy Moore’a z blokiem przerzutników
00 01 11 10 y
00 00 01 00 00 0
01 00 01 11 - 0
11 10 01 11 11 1
10 00 - - - -
2 1Q Q
' 2 ' 1Q Q
2 1x x
w1
z1
Q1
Q1
w2
z2
Q2
Q2
W układzie z wydzielonym blokiem przerzutników do wytwarzania sygnałów reprezentujących stan wewnętrzny wykorzystuje się
przerzutniki wz.
y Wykorzystajmy zakodowaną tablicę przejść z ekranu 12.
Funkcja wyjść Q1
y
Należy jeszcze wyznaczyć wzbudzenia w1, z1 i w2, z2 przerzutników.
wzbudzeń poszczególnych przerzutników.
0 1
1 1
1 0
0 0
1
t
t Q
Q
01 0 10
0
wz
00 01 11 10 00 00 01 00 00 01 00 01 11 - 11 10 01 11 11 10 00 - - -
2 1Q Q
' 2 ' 1Q Q
00 01 11 10 00 0- 0- 0- 0- 01 0- 0- 10 - 11 -0 01 -0 -0 10 01 - - -
w1z1
2 1x x
2 1x x
2 1Q Q
1 2
1 Q x
w
2 2 1
1 x x Q
z Zakodowana tablica przejść
Macierz przejść przerzutnika wz
Tablica wzbudzeń przerzutnika Q1
Układy Moore’a z blokiem przerzutników
Podobnie można wyznaczyć wzbudzenia przerzutnika Q2.
Bardziej efektywną metodą jest wykorzystanie tzw. uniwersalnej tablicy przejść – jest to tablica przejść z pogrubionymi stanami następnymi, różniącymi się od stanów aktualnych.
00 01 11 10 00 00 01 00 00 01 00 01 11 - 11 10 01 11 11 10 00 - - -
00 01 11 10 00 00 01 00 00 01 00 01 11 - 11 10 01 11 11 10 00 - - -
' 'Q
Q Q1'Q2'
2 1Q
Q 1 2 Q1Q2
x
x x1x2
Tablica przejść (zwykła) Uniwersalna tablica przejść
uniwersalnej wykorzystując zależności:
w=ΣF1(F1,F-) oraz z=ΣF0(F0,F-)
F1 – pola z grubą jedynką F1 – pola z cienką jedynką gdzie:
F- - pola z nieokreślonym przejściem F0 – pola z grubym zerem
F0 – pola z cienkim zerem
00 01 11 10 00 0 0 0 0 01 0 0 1 - 11 1 0 1 1 10 0 - - -
2 1Q
Q 1 2 x x
'
Q1
Tablica dla Q1'
Układy Moore’a z blokiem przerzutników
00 01 11 10 00 00 01 00 00 01 00 01 11 - 11 10 01 11 11 10 00 - - -
' 2 ' 1Q Q
2 1Q Q
2 1x x
00 01 11 10 00 0 0 0 0 01 0 0 1 - 11 1 0 1 1 10 0 - - -
2 1Q
Q 1 2 x x
'
Q1
w=ΣF1(F1,F-) oraz
z=ΣF0(F0,F-)
00 01 11 10 00 0 1 0 0 01 0 1 1 - 11 0 1 1 1 10 0 - - -
2 1Q Q
2 1x x
Q'
2 1
2 x x
w
2 1
2 x x
z
1 2
1 Q x
w
2 2 1
1 x x Q
z
w1
z1
Q1
Q1
w2
z2
Q2
Q2
y
Funkcja wyjść Q1
y
1 2
1 Q x
w
2 2 1
1 x x Q
z
2 1
2 x x
w
2 1
2 x x
z
Wzbudzenia przerzutników
Układy Moore’a z blokiem przerzutników
Schemat układu zrealizowanego z wykorzystaniem elementów NAND
x2 x1
w z
Q Q w
z
Q Q
Q2 Q =y1
00 01 11 10 y 0 0 3 - 1 0 1 0 - 2 1 0 2 - 3 2 1 0 3 0 3 4 - 0 4 - 3 4 5 1 5 0 - 4 5 1
Qt+1
0
1
2 3
4
t 5
Q
Tablica pierwotna
Wykres skracania
2 1x x
Stany połączone linią kropkowaną są stanami zgodnymi w sensie Mealyego;
mają jednakowe przejścia do stanów następnych ale różne stany wyjść.
Układ Mealy’ego może mieć w tym przypadku tylko dwa stany wewnętrzne, które oznaczymy jako 0 i 1.
nowy stan 0 nowy
stan 1
Układy Mealy’ego
00 01 11 10 0 0 1 0 0 1 0 1 1 1
Qt+1
00 01 11 10 y
0 0 3 - 1 0 1 0 - 2 1 0 2 - 3 2 1 0 3 0 3 4 - 0 4 - 3 4 5 1 5 0 - 4 5 1
Qt+1 Qt
Tablica pierwotna
2 1x x
00 01 11 10 0 0 0 0 0 1 0 0 1 1
2 1x x
2 1x x Qt
Qt
) 2 , 1 , 0 (
) 5 , 4 , 3 (
Tworzenie tablicy przejść i tablicy wyjść układu Mealy’ego Tablica przejść
Tablica wyjść
Funkcja przejść:
2 1
2 1
1 x x Q x Q x
Qt t t
Funkcja wyjść: yt Qt x y
00 01 11 10 0 0 1 0 0 1 0 1 1 1
Qt+1
00 01 11 10 y 0 0 3 - 1 0 1 0 - 2 1 0 2 - 3 2 1 0 3 0 3 4 - 0 4 - 3 4 5 1 5 0 - 4 5 1
Qt+1 Qt
Tablica pierwotna
2 1x x
00 01 11 10 0 0 0 0 0 1 0 0 1 1
2 1x x
2 1x x Qt
Qt
) 2 , 1 , 0 (
) 5 , 4 , 3 ( przejściowego z 0 do1
Tablica przejść
Tablica wyjść
y
Układy Mealy’ego
00 01 11 10 0 0 1 0 0 1 0 1 1 1
Qt+1
00 01 11 10 y 0 0 3 - 1 0 1 0 - 2 1 0 2 - 3 2 1 0 3 0 3 4 - 0 4 - 3 4 5 1 5 0 - 4 5 1
Qt+1 Qt
Tablica pierwotna
2 1x x
00 01 11 10 0 0 0 0 0 1 0 0 1 1
2 1x x
2 1x x Qt
Qt
) 2 , 1 , 0 (
) 5 , 4 , 3 (
Wyjaśnienie sposobu ustalenia stanu wyjść dla stanu przejściowego z 1 do 0
Tablica przejść
Tablica wyjść
y
Funkcja przejść i funkcja wyjść stanowią podstawę do realizacji układu
Funkcja przejść: Qt1 x1 x2 Qt x1 Qt x2 Funkcja wyjść:
x1
Q yt t
Zrealizujmy układ z elementów NAND.
2 1
2 1
2 1
2 1
2 1
2 1 1
x Q x
Q x
x
x Q x
Q x
x
x Q x
Q x
x Q
t t
t t
t t
t
1
1 Q x
x Q
yt t t
Układy Mealy’ego
Schemat układu Mealy’ego z elementów NAND
Q=y1 x2
x1
Q2
Q x2
x1
y
2 1
2 1
1 x x Q x Q x
Qt t t yt Qt x1 Qt x1
00 01 11 10 0 0 1 0 0 1 0 1 1 1
Qt+1
2 1x x Qt
) 2 , 1 , 0 (
) 5 , 4 , 3 (
Tablica przejść zwykła
przerzutników, w tym przypadku z jednym przerzutnikiem Q.
Przekształcamy tablicę przejść do postaci tablicy uniwersalnej.
00 01 11 10 0 0 1 0 0 1 0 1 1 1
Qt+1
2 1x x Qt
) 2 , 1 , 0 (
) 5 , 4 , 3 (
Tablica przejść uniwersalna
2 1 x x
w z x1 x2
Układy Mealy’ego
29w z
Q Q
x1 y x2
W
Z
Schemat układu Mealy’ego przerzutnikiem
2 1 x x w
2 1 x x z
1
1 Q x
x Q
yt t t
2 1 x x w
2 1 x x z
w z
Q Q
x1 y x2
W
Z
x1
x2
y
0 1
0
2 3 2 1 4 1 2 3 0 1 4 3 0 3
Qt
2 1, x x
1
Qt
1 1
Projektowanie
x1
x2
y
0 1
0
2 3 2 1 4 1 2 3 0 1 4 3 0 3
Qt
2 1, x x
1
Qt
1 1 2
2
x1
x2
y
0 1
0
2 3 2 1 4 1 2 3 0 1 4 3 0 3
Qt
2 1, x x
1
Qt
1 1 2
2 3
3
Projektowanie
x1
x2
y
0 1
0
2 3 2 1 4 1 2 3 0 1 4 3 0 3
Qt
2 1, x x
1
Qt
1 1 2
2 3
3 2
x1
x2
y
0 1
0
2 3 2 1 4 1 2 3 0 1 4 3 0 3
Qt
2 1, x x
1
Qt
1 1 2
2 3
3 2
1
Projektowanie
x1
x2
y
0 1
0
2 3 2 1 4 1 2 3 0 1 4 3 0 3
Qt
2 1, x x
1
Qt
1 1 2
2 3
3 2
1 4
4
x1
x2
y
0 1
0
2 3 2 1 4 1 2 3 0 1 4 3 0 3
Qt
2 1, x x
1
Qt
1 1 2
2 3
3 2
1 4
4 1
Projektowanie
x1
x2
y
0 1
0
2 3 2 1 4 1 2 3 0 1 4 3 0 3
Qt
2 1, x x
1
Qt
1 1 2
2 3
3 2
1 4
4 1
0
x1
x2
y
0 1
0
2 3 2 1 4 1 2 3 0 1 4 3 0 3
Qt
2 1, x x
1
Qt
1 1 2
2 3
3 2
1 4
4 1
0
3
Projektowanie
x1
x2
y
0 1
0
2 3 2 1 4 1 2 3 0 1 4 3 0 3
Qt
2 1, x x
1
Qt
1 3 1
2 2 3
3 2
1 4
4 1
0
3
0 Qt
2 1, x x
1
Qt
1 3 1
2 2 3
3 2
1 4
4 1
0
3
0
1
2 3
4