4. ЛАБОРАТОРНАЯ РАБОТА № 4 РАЗРАБОТКА ЦИФРОВЫХ УСТРОЙСТВ НА ОСНОВЕ
КОНЕЧНЫХ АВТОМАТОВ
4.1. Цель работы
Целью данной лабораторной работы является получение навыков разработки и тестирования конечных автоматов.
4.2. Краткие теоретические сведения
Конечные автоматы широко используются при разработке цифровых устройств. Конечный автомат можно представить кортежем A = <A, B, C, δ, λ> , где
Рис. 4.1. Структурная схема автомата
1.{A} –множество значений на входах автомата.
2.{B} – множество значений на выходах автомата.
3.{C} – а множество, которое представляет внутреннее состояние автомата
4.δ = X × Z → Z –функции переходов автомата,
однозначно определяющие состояние St, в которое переходит автомат из состояния St-1.
41
5. λ = X × Z → Y – функции выходов, они определяют, что находится на выходе автомата в зависимости от входов и внутреннего состояния.
Автомат функционирует дискретно по времени, то есть значения входов, выходов и внутреннее состояние автомата изменяются в дискретные моменты времени.
Выделяют 2 типа автоматов:
Автомат Мура — конечный автомат, выходное значение сигнала в котором зависит лишь от текущего состояния данного автомата, и не зависит напрямую от входных значений.
Автомат Мили — конечный автомат, выходная последовательность которого (в отличие от автомата Мура) зависит от состояния автомата и входных сигналов.
1. Автомат Мили (рис. 4.2.). Описывается системой уравнений:
c(t) = δ( a(t), c(t-1) ); b(t) = λ( a(t), c(t-1) ).
2. Автомат Мура (рис. 4.3.). Описывается системой уравнений:
c(t) = δ( a(t), c(t-1) ); b(t) = λ( a(t), c(t) ).
Граф автомата – это ориентированный связный граф, вершины которого символизируют внутренние состояния автомата, а дуги – переходы из одного состояния в другое.
42
Рис. 4.2. Граф автомата Мили
Для графа Мили на дугах указываются входные и выходные буквы. Выходные буквы пишутся над дугами, символизируя то, что выходное состояние зависит от состояния автомата в предыдущий момент времени.
Рис. 4.3. Граф автомата Мура
43
Для графа автомата Мура на дугах записываются только входные буквы, выходные же указываются около вершин.
4.3.Задание на лабораторную работу
1.Разработать модель конечного автомата на языках Verilog HDL и VHDL согласно выбранному варианту.
2.Разработать тестовую оболочку, обеспечивающую исчерпывающее тестирование полученной модели (необходимо смоделировать все возможные переходы из каждого состояния в каждое доступное).
|
Варианты заданий |
|
|
|
Вариант 1 |
Вариант 2 |
|
||
Начальное состояние: S2 |
Начальное состояние: S1 |
|||
S0 |
|
|
S0 |
|
Y[1:0]=1 |
|
|
Y[1:0]=2 |
|
1 |
|
|
0 |
|
S1 |
0 |
|
S1 |
0 |
Y[1:0]=2 |
0 |
1 |
Y[1:0]=1 |
|
0 |
|
|
1 |
|
1 |
|
0 |
1 |
|
S2 |
|
|
S2 |
|
Y[1:0]=3 |
Y[1:0]=3 |
|
|
1 |
|
44
|
Вариант 3 |
|
|
|
Вариант 4 |
|
Начальное состояние: S0 |
Начальное состояние: S1 |
|||||
|
S0 |
1 |
|
|
S0 |
0 |
|
Y=1 |
|
|
Y=1 |
||
|
|
|
|
|
||
|
0 |
|
|
0 |
1 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
S1 |
1 |
|
|
S1 |
|
|
|
|
Y=0 |
|
||
|
Y=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
0 |
|
|
0 |
1 |
|
|
|
|
|
|
|
|
|
S2 |
1 |
|
|
S2 |
1 |
|
|
|
Y=0 |
|
||
|
Y=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Вариант 5 |
|
|
Вариант 6 |
|
|
Начальное состояние: S2 |
Начальное состояние: S0 |
|||||
|
|
|
|
|
0 |
|
|
S0 |
|
|
|
|
|
|
Y=1 |
|
|
|
S0 |
|
|
|
0 |
|
|
Y[2:0]=4 |
|
0 |
|
|
|
|
||
|
|
|
|
|
||
|
1 |
|
|
1 |
|
1 |
|
|
|
|
|
||
|
|
|
|
0 |
|
|
S1 |
1 |
S2 |
|
|
|
|
Y=1 |
Y=0 |
|
|
|
S2 |
|
|
|
S1 |
|
|||
|
|
|
|
|||
|
|
|
|
Y[2:0]=2 |
Y[2:0]=1 |
|
|
|
|
|
|
1 |
|
1 |
|
|
|
|
|
0 |
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
Вариант 7 |
|
|
Вариант 8 |
|
|
Начальное состояние: S1 |
Начальное состояние: S |
|||||
|
|
1 |
|
|
|
|
|
S0 |
|
S2 |
|
S0 |
|
|
|
|
|
|
||
|
Y[1:0]=1 |
1 |
|
|
|
|
|
Y[1:0]=2 |
|
|
1 | 0 |
||
0 |
|
|
0 | 0 |
|
||
|
|
|
|
|||
|
|
|
|
|
||
|
0 |
|
0 |
|
1 | 1 |
|
|
|
|
|
|
||
|
|
S1 |
|
S1 |
|
S2 |
|
|
|
|
1 | 0 |
|
|
|
Y[1:0]=0 |
|
|
|
||
|
|
|
|
|
||
|
1 |
|
|
|
|
|
|
|
|
|
|
|
0 | 0 |
|
|
|
|
0 | 1 |
|
|
|
Вариант 9 |
|
Вариант 10 |
|||
45