«Случай — это псевдоним Бога, когда Он не хочет подписываться своим собственным именем.» А. Франс

ПЦУСБ/Лабораторная работа 3

Материал из Wiki
< ПЦУСБ
Версия от 19:24, 24 октября 2013; ANA (обсуждение | вклад)

Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск
Лекции ПЦУСБ

Лекции

Практические
Тесты

Лабораторные

Доп. материалы

Содержание

Задание

  1. По заданному табличному описанию автомата:
    • Построить граф переходов (для этого удобно использовать Graphviz и on-line сервис)
    • Определить бинарные значения (коды) для входных состояний, внутренних состояний и выходных состояний. Использовать для этого тип кода, заданный в задании.
    • Описать два варианта VHDL-модели автомата:
      • реализовать внутренние состояния через пользовательский перечислимый тип
      • реализовать внутренние состояния через выбранный бинарный код
    при этом использовать для описания таблицы переходов в модели разные операторы (if, case, when..else).
  2. Реализовать тесбенч, проверяющий эквивалентность работы двух моделей. При этом тестбенч должен проверять все возможные состояния и переходы автомата. Проконтролировать это позволяют средства ModelSim.
  3. Подготовить отчет, включающий:
    1. Титульный лист
    2. Задание
    3. Графическую форму задания автомата (в виде графа)
    4. Таблицы с выбранными кодами для входных состояний, внутренних состояний и выходных состояний
    5. Исходные тексты двух VHDL моделей и тестбенча
    6. Отчет о покрытии кода и автомата
    7. Временные диаграммы, включающие входные воздействия, внутренние состояния обоих автоматов, выходы двух автоматов и сигнал 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"];
}