BEGIN
CASE present_st IS WHEN state1 => IF input_signal = '1'
THEN next_st <= state1; ELSE next_st <= state2; END IF;
WHEN state2 => IF input_signal = '1'
THEN next_st <= state2; ELSE next_st <= state3; END IF;
...
END CASE; END PROCESS;
Можно (но нередко это оказывается громоздким) записать логику работы в стиле WHEN-ELSE:
output <= "000" WHEN present_st = state1 ELSE "001" WHEN present_st = state2 ELSE
...
"100" WHEN present_st = state5;
Задания на работу: разработать в виде конечного автомата схему, реагирующую выдачей «1» на выходе на появление на входе заданной последовательности. Следует указать, используется автомат Мили или Мура.
Варианты заданий
Но |
Последовательность |
мер |
|
вар |
|
ианта |
|
|
|
1 |
00110101 |
|
|
2 |
00110100 |
|
|
3 |
00110110 |
|
|
4 |
00110111 |
|
|
5 |
00111000 |
|
|
6 |
00111001 |
|
|
7 |
00111010 |
|
|
8 |
00111011 |
|
|
6
9 |
00111100 |
|
|
10 |
00111101 |
|
|
11 |
00111110 |
|
|
12 |
00111100 |
|
|
13 |
00111101 |
|
|
14 |
10111100 |
|
|
15 |
01011100 |
|
|
16 |
10101100 |
|
|
17 |
10111101 |
|
|
18 |
10110101 |
|
|
19 |
11001100 |
|
|
20 |
11001000 |
|
|
21 |
11001001 |
|
|
22 |
11101001 |
|
|
23 |
10101001 |
|
|
24 |
10111001 |
|
|
25 |
10101101 |
|
|
26 |
11101011 |
|
|
27 |
10101111 |
|
|
28 |
10001001 |
|
|
29 |
10101011 |
|
|
30 |
10101101 |
|
|
31 |
11101011 |
|
|
32 |
10101011 |
|
|
|
|
7
Лабораторная работа 2 Тривиальное кодирование состояний, переход к комбинационной схеме и памяти последовательностного автомата
Цель занятия – научится строить схему последовательностного автомата на D - триггерах.
Пусть нам задан некоторый последовательностный автомат с тремя состояниями.
Рисунок 1 - Исходное задание автомата.
Заметим, что выходные функции y1 и y2 принимают различные комбинации значений для разных состояний. Проведем кодирование состояний, обеспечивающее простоту схемной реализации функций y1 и y2.
к=]log2(3)[=2.
Действительно
Рисунок 2 - Матрица размещения состояний и выходные функции.
Строим кодированную таблицу переходов и выходов.
1z2
0 1
8
|
1 |
1 |
|
|
2 |
0 |
|
|
x |
0 |
|
x |
2 |
1 |
0 |
Рисунок 3 - Кодированная таблица переходов и выходов автомата
Получаем систему двух булевых функций.
Рисунок 4 - Система функций переходов автомата.
z1 = ⌐z1x1Vz2 ⌐x1х2Vz1⌐х1 ⌐x2V⌐z2x1 z2= z2⌐x1⌐x2V⌐z1⌐x1V z1x1V⌐z2x2 y1= z1
y2= z2
Эта система булевых функций определяет логику работы последовательностного автомата. Кроме логики алгоритм работы автомата определяется памятью.
9
Рисунок 5 - Представление схемы автомата в виде комбинационной схемы и памяти.
Рисунок 6 - Представление памяти в виде схемы установки в начальное состояние и собственно памяти
Собственно память автомата реализуем двойным рядом D-триггеров. Один ряд триггеров принимает от комбинационной схемы следующее состояние автомата, другой – сохраняет настоящее. Кроме этого необходимо построить схему установки автомата в начальное состояние. Итого, схема автомата с памятью будет выглядеть следующим образом:
10