ПЦУСБ/Лабораторная работа 3
- Лабораторная работа 1
- Лабораторная работа 2
- Лабораторная работа 3
Содержание |
Задание
- По заданному табличному описанию автомата:
- Построить граф переходов (для этого удобно использовать Graphviz и on-line сервис)
- Определить бинарные значения (коды) для входных состояний, внутренних состояний и выходных состояний. Использовать для этого тип кода, заданный в задании.
- Описать два варианта VHDL-модели автомата:
- реализовать внутренние состояния через пользовательский перечислимый тип
- реализовать внутренние состояния через выбранный бинарный код
- при этом использовать для описания таблицы переходов в модели разные операторы (if, case, when..else).
- Реализовать тесбенч, проверяющий эквивалентность работы двух моделей. При этом тестбенч должен проверять все возможные состояния и переходы автомата. Проконтролировать это позволяют средства ModelSim.
- Подготовить отчет, включающий:
- Титульный лист
- Задание
- Графическую форму задания автомата (в виде графа)
- Таблицы с выбранными кодами для входных состояний, внутренних состояний и выходных состояний
- Исходные тексты двух VHDL моделей и тестбенча
- Отчет о покрытии кода и автомата
- Временные диаграммы, включающие входные воздействия, внутренние состояния обоих автоматов, выходы двух автоматов и сигнал Ok (результат сравнения выходов двух моделей).
Варианты заданий
Вариант 1
Конечный автомат Мили.
Алфавит внутренних состояний A = {a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z2, z3}. Выходной алфавит W = {w1, w2 ,w3 ,w4, w5}.
Таблица функционирования конечного автомата Мили | ||||
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a4 | |
z1 | a3/w4 | a2/w1 | a1/w2 | a1/w4 |
z2 | a4/w5 | a2/w3 | a4/w3 | a3/w3 |
z3 | a3/w5 | a3/w4 | a1/w4 | a3/w1 |
Вариант 2
Конечный автомат Мура.
Алфавит состояний A = {a11, a2, a3}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z22, z3}. Выходной алфавит W = {w11, w22 ,w33}.
Входные сигналы | Состояния | | ||
a11 | a2 | a3 | ||
z1 | a3 | a2 | a11 | |
z22 | a11 | a2 | a3 | |
z3 | a3 | a11 | a3 | |
|
w33 | w11 | w22 | Выходные сигналы |
Вариант 3
Конечный автомат Мили.
Алфавит внутренних состояний A = {a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z2, z3}. Выходной алфавит W = {w1, w2 ,w3 ,w4, w5}.
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a4 | |
z1 | a4/w4 | a2/w1 | a1/w2 | a4/w4 |
z2 | a4/w5 | a1/w3 | a3/w4 | a3/w3 |
z3 | a1/w2 | a2/w4 | a1/w4 | a4/w1 |
Вариант 4
Конечный автомат Мура.
Алфавит состояний B = {b1, b22, b3}. Начальное состояние автомата b1. Входной алфавит Q = {q1, q22, q3}. Выходной алфавит Y = {y1, y2 ,y3}.
Входные сигналы | Состояния | | ||
b1 | b22 | b3 | ||
q1 | b22 | b1 | b1 | |
q22 | b3 | b22 | b22 | |
q3 | b1 | b3 | b3 | |
|
y2 | y3 | y1 | Выходные сигналы |
Вариант 5
Конечный автомат Мили.
Алфавит внутренних состояний A = {a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z2, z3}. Выходной алфавит W = {w1, w2 ,w3 ,w4, w5}.
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a4 | |
z1 | a1/w4 | a3/w1 | a1/w3 | a1/w4 |
z2 | a2/w5 | a1/w3 | a4/w3 | a3/w3 |
z3 | a3/w5 | a4/w5 | a1/w4 | a4/w1 |
Вариант 6
Конечный автомат Мура.
Алфавит состояний C = {c1, c2, c33}. Начальное состояние автомата c1. Входной алфавит Q = {q1, q2, q3}. Выходной алфавит Y = {y11, y2 ,y3}.
Входные сигналы | Состояния | | ||
c1 | c2 | c33 | ||
q1 | c2 | c2 | c1 | |
q2 | c2 | c1 | c2 | |
q3 | c33 | c33 | c33 | |
|
y11 | y3 | y2 | Выходные сигналы |
Вариант 7
Конечный автомат Мили.
Алфавит внутренних состояний A = {a11, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z2, z3}. Выходной алфавит W = {w1, w2 ,w3 ,w44, w5}.
Таблица функционирования конечного автомата Мили | ||||
Входные сигналы | Состояния | |||
a11 | a2 | a3 | a4 | |
z1 | a3/w5 | a2/w1 | a2/w2 | a11/w5 |
z2 | a4/w44 | a2/w5 | a4/w3 | a3/w3 |
z3 | a3/w5 | a11/w44 | a11/w44 | a11/w5 |
Вариант 8
Конечный автомат Мура.
Алфавит состояний R = {r1, r2, r3}. Начальное состояние автомата r1. Входной алфавит Q = {q1, q2, q3}. Выходной алфавит W = {w1, w2 ,w3}.
Входные сигналы | Состояния | | ||
r1 | r2 | r3 | ||
q1 | r1 | r3 | r1 | |
q2 | r3 | r2 | r3 | |
q3 | r2 | r2 | r2 | |
|
w3 | w1 | w2 | Выходные сигналы |
Вариант 9
Конечный автомат Мили.
Алфавит состояний A = {a1, a22, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1 , z2 , z3}. Выходной алфавит W = {w1, w2 ,w33 ,w4, w5}.
Входные сигналы | Состояния | |||
a1 | a22 | a3 | a4 | |
z1 | a3/w4 | a22/w1 | a1/w2 | a1/w4 |
z2 | a4/w4 | a22/w33 | a4/w33 | a22/w33 |
z3 | a3/w5 | a1/w4 | a1/w4 | a3/w1 |
Вариант 10
Конечный автомат Мура.
Алфавит состояний T = {t1, t22, t3}. Начальное состояние автомата t1. Входной алфавит Q = {q11, q2, q3}. Выходной алфавит Y = {y1, y2 ,y3}.
Входные сигналы | Состояния | | ||
t1 | t22 | t3 | ||
q11 | t3 | t22 | t1 | |
q2 | t22 | t1 | t22 | |
q3 | t1 | t22 | t3 | |
|
y3 | y2 | y1 | Выходные сигналы |
Вариант 11
Конечный автомат Мили.
Алфавит состояний A = {a1, a22, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z2, z33}. Выходной алфавит W = {w1, w22 ,w3 ,w45, w5}.
Входные сигналы | Состояния | |||
a1 | a22 | a3 | a4 | |
z1 | a3/w22 | a22/w1 | a1/w1 | a1/w45 |
z2 | a4/w5 | a4/w3 | a4/w22 | a3/w3 |
z33 | a3/w22 | a3/w45 | a22/w45 | a3/w1 |
Пример описания графа в Graphviz
digraph g { a1 -> a2 [label="X1"] a2 -> a3 [label="X2"] a3 -> a1 [label="X3"] a1 [label="a1",shape=box,fillcolor="palegreen",style="filled,rounded"]; }