Кінцеві автомати
Іванець С.А., Кафедра БРАС, ЧНТУ. 2021.
Sergey.Ivanets@gmail.com
Література
2023-02-03
2
Визначення
2023-02-03
3
Типи кінцевих автоматів
2023-02-03
4
Модель Хаффмана
2023-02-03
5
Кінцевий автомат Мура
2023-02-03
6
Кінцевий автомат Мілі
2023-02-03
7
Граф кінцевого автомата
2023-02-03
8
Граф кінцевого автомата Мура
2023-02-03
9
Граф кінцевого автомата Мілі
2023-02-03
10
Таблиця переходів
2023-02-03
11
Поточний стан | Наступний стан | Умови переходу |
S0 | S0 | a=0 АБО c=0 |
S0 | S1 | a=1 |
S1 | S1 | a=1 АБО b=1 |
S1 | S0 | a=0 І b=0 |
S0 | S2 | c=1 |
S2 | S2 | c=1 АБО b=1 |
S2 | S0 | c=0 І b=0 |
Таблиця виходів
2023-02-03
12
Поточний стан | Вихід |
S0 | 00 |
S1 | 01 |
S2 | 10 |
Реалізація кінцевого автомата. Комбінаційні виходи
2023-02-03
13
Реалізація кінцевого автомата. �Синхроннні виходи
2023-02-03
14
Приклади
2023-02-03
15
Кінцевий автомат керування мікросхемою динамічної пам'яті IS42S32800J
2023-02-03
16
PCI Express
PCIe Link Training State Machine
PCIe Specification 5.0, Figure 4-24
2023-02-03
17
FSM Example
Chapter 3 <18>
SEQUENTIAL LOGIC DESIGN
FSM Example
Chapter 3 <19>
SEQUENTIAL LOGIC DESIGN
FSM Black Box
Chapter 3 <20>
SEQUENTIAL LOGIC DESIGN
FSM State Transition Diagram
Chapter 3 <21>
SEQUENTIAL LOGIC DESIGN
Current State | Inputs | Next State | |
S | TA | TB | S' |
S0 | 0 | X | |
S0 | 1 | X | |
S1 | X | X | |
S2 | X | 0 | |
S2 | X | 1 | |
S3 | X | X | |
FSM State Transition Table
Chapter 3 <22>
SEQUENTIAL LOGIC DESIGN
Current State | Inputs | Next State | |
S | TA | TB | S' |
S0 | 0 | X | S1 |
S0 | 1 | X | S0 |
S1 | X | X | S2 |
S2 | X | 0 | S3 |
S2 | X | 1 | S2 |
S3 | X | X | S0 |
FSM State Transition Table
Chapter 3 <23>
SEQUENTIAL LOGIC DESIGN
Current State | Inputs | Next State | |||
S1 | S0 | TA | TB | S'1 | S'0 |
0 | 0 | 0 | X | | |
0 | 0 | 1 | X | | |
0 | 1 | X | X | | |
1 | 0 | X | 0 | | |
1 | 0 | X | 1 | | |
1 | 1 | X | X | | |
State | Encoding |
S0 | 00 |
S1 | 01 |
S2 | 10 |
S3 | 11 |
FSM Encoded State Transition Table
Chapter 3 <24>
SEQUENTIAL LOGIC DESIGN
Current State | Inputs | Next State | |||
S1 | S0 | TA | TB | S'1 | S'0 |
0 | 0 | 0 | X | 0 | 1 |
0 | 0 | 1 | X | 0 | 0 |
0 | 1 | X | X | 1 | 0 |
1 | 0 | X | 0 | 1 | 1 |
1 | 0 | X | 1 | 1 | 0 |
1 | 1 | X | X | 0 | 0 |
State | Encoding |
S0 | 00 |
S1 | 01 |
S2 | 10 |
S3 | 11 |
S'1 = S1 ⊕ S0
S'0 = S1S0TA + S1S0TB
FSM Encoded State Transition Table
Chapter 3 <25>
SEQUENTIAL LOGIC DESIGN
Current State | Outputs | ||||
S1 | S0 | LA1 | LA0 | LB1 | LB0 |
0 | 0 | | | | |
0 | 1 | | | | |
1 | 0 | | | | |
1 | 1 | | | | |
Output | Encoding |
green | 00 |
yellow | 01 |
red | 10 |
FSM Output Table
Chapter 3 <26>
SEQUENTIAL LOGIC DESIGN
Current State | Outputs | ||||
S1 | S0 | LA1 | LA0 | LB1 | LB0 |
0 | 0 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 | 1 |
Output | Encoding |
green | 00 |
yellow | 01 |
red | 10 |
LA1 = S1
LA0 = S1S0
LB1 = S1
LB0 = S1S0
FSM Output Table
Chapter 3 <27>
SEQUENTIAL LOGIC DESIGN
FSM Schematic: State Register
Chapter 3 <28>
SEQUENTIAL LOGIC DESIGN
FSM Schematic: Next State Logic
Chapter 3 <29>
SEQUENTIAL LOGIC DESIGN
FSM Schematic: Output Logic
Chapter 3 <30>
SEQUENTIAL LOGIC DESIGN
FSM Timing Diagram
Chapter 3 <31>
SEQUENTIAL LOGIC DESIGN
Кодування станів. �Двійкове кодування (binary)
2023-02-03
32
Кодування станів. �Пряме кодування (one-hot)
2023-02-03
33
Кодування станів. Код Грея (Grey)
2023-02-03
34
Кодування станів. Код Джонсона (Johnson)
2023-02-03
35
Кодування станів автомата – порівняння методів
2023-02-03
36
Двійковий код | Код Грея | Код Джонсона | Код «one-hot» |
000 | 000 | 00000 | 0000 0001 |
001 | 001 | 00001 | 0000 0010 |
010 | 011 | 00011 | 0000 0100 |
011 | 010 | 00111 | 0000 1000 |
100 | 110 | 01111 | 0001 0000 |
101 | 111 | 11111 | 0010 0000 |
110 | 101 | 11110 | 0100 0000 |
111 | 100 | 11100 | 1000 0000 |
Кодування станів у Quartus
2023-02-03
37
FSM Timing Diagram
Chapter 3 <38>
SEQUENTIAL LOGIC DESIGN
FSM State Encoding
Chapter 3 <39>
SEQUENTIAL LOGIC DESIGN
Moore vs. Mealy FSM
Chapter 3 <40>
SEQUENTIAL LOGIC DESIGN
Mealy FSM: arcs indicate input/output
State Transition Diagrams
Chapter 3 <41>
SEQUENTIAL LOGIC DESIGN
Current State | Inputs | Next State | ||
S1 | S0 | A | S'1 | S'0 |
0 | 0 | 0 | | |
0 | 0 | 1 | | |
0 | 1 | 0 | | |
0 | 1 | 1 | | |
1 | 0 | 0 | | |
1 | 0 | 1 | | |
State | Encoding |
S0 | 00 |
S1 | 01 |
S2 | 10 |
Moore FSM State Transition Table
Chapter 3 <42>
SEQUENTIAL LOGIC DESIGN
Current State | Inputs | Next State | ||
S1 | S0 | A | S'1 | S'0 |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 0 |
State | Encoding |
S0 | 00 |
S1 | 01 |
S2 | 10 |
Moore FSM State Transition Table
S1’ = S0A
S0’ = A
Chapter 3 <43>
SEQUENTIAL LOGIC DESIGN
Current State | Output | |
S1 | S0 | Y |
0 | 0 | |
0 | 1 | |
1 | 0 | |
Moore FSM Output Table
Chapter 3 <44>
SEQUENTIAL LOGIC DESIGN
Current State | Output | |
S1 | S0 | Y |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 1 |
Y = S1
Moore FSM Output Table
Chapter 3 <45>
SEQUENTIAL LOGIC DESIGN
Current State | Input | Next State | Output |
S0 | A | S'0 | Y |
0 | 0 | | |
0 | 1 | | |
1 | 0 | | |
1 | 1 | | |
State | Encoding |
S0 | 00 |
S1 | 01 |
Mealy FSM State Transition & Output Table
Chapter 3 <46>
SEQUENTIAL LOGIC DESIGN
Current State | Input | Next State | Output |
S0 | A | S'0 | Y |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
State | Encoding |
S0 | 00 |
S1 | 01 |
Mealy FSM State Transition & Output Table
Chapter 3 <47>
SEQUENTIAL LOGIC DESIGN
Moore FSM Schematic
Chapter 3 <48>
SEQUENTIAL LOGIC DESIGN
Mealy FSM Schematic
Chapter 3 <49>
SEQUENTIAL LOGIC DESIGN
Moore & Mealy Timing Diagram
Chapter 3 <50>
SEQUENTIAL LOGIC DESIGN
FSM Design Procedure
Chapter 3 <51>
SEQUENTIAL LOGIC DESIGN
Робота у пакеті Quartus
2023-02-03
52
State Machine Viewer
2023-02-03
53
State Machine Wizard
2023-02-03
54
2023-02-03
55
2023-02-03
56
Вкладки вікна редагування цифрового автомата
2023-02-03
57
Назва закладки | Призначення таблиці |
General | Вказується тип сигналу скидання (reset) – синхронний або асинхронний та його активний рівень – високий або низький. |
States | Перераховуються стани ЦА |
Inputs | Перераховуються вхідні порти та їх сигнали керування |
Outputs | Перераховуються вихідні порти |
Transitions | Перераховуються попередні стани та результуючі стани, а також умови переходів |
Actions | Перераховуються вихідні порти, їх значення та стани ЦА, які відповідають цим вихідним значенням. Також тут можуть перераховуватись додаткові умови. |
Інструменти редактора цифрових автоматів
2023-02-03
58
Іконка інструменту | Назва інструменту | Призначення інструменту |
| State Tool | Інструмент для рисування станів ЦА |
| Transition Tool | Інструмент для рисування переходів ЦА |
| Input Port Tool | Додавання вхідних портів |
| Output Port Tool | Додавання вихідних портів |
| Rubberbanding Tool | Перемикання гнучкості ліній зв’язку |
Світлофор з кнопкою
2023-02-03
59
Умови роботи
2023-02-03
60
Кнопка
2023-02-03
61
2023-02-03
62
Таблиця переходів
2023-02-03
63
rst | Кнопка but | cnt | Поточний стан | Майбутній стан |
1 | X | X | X | Init |
0 | X | !cnt | Init | Init |
0 | X | cnt | Init | R |
0 | X | !cnt | R | R |
0 | X | cnt | R | RG |
0 | X | !cnt | RG | RG |
0 | X | cnt | RG | G |
0 | X | !cnt | G | G |
0 | !but | cnt | G | G |
0 | but | Cnt | G | GR |
0 | X | !cnt | GR | GR |
0 | X | cnt | GR | R |
Таблиця виходів
2023-02-03
64
Стан | R | Y | G | R_ped | G_ped | but_rst | count_value |
Init | 1 | 0 | 0 | 1 | 0 | 0 | Init_val |
R | 1 | 0 | 0 | 0 | 1 | 0 | R_val |
RG | 0 | 1 | 0 | 1 | 0 | 0 | RG_val |
G | 0 | 0 | 1 | 1 | 0 | 0 | G_val |
GR | 0 | 1 | 0 | 1 | 0 | 1 | GR_val |
Кодування станів
2023-02-03
65
Стан | Код |
Init | 0000 |
R | 0001 |
RG | 0010 |
G | 0100 |
GR | 1000 |