Uploaded by igrovoyakk27

ППЭВС. 4 семестр. Описание курсовой работы

advertisement
Проектирование конечного автомата. (ИКПИ)
Задание на курсовое проектирование.
Синтезировать конечный автомат с произвольной сменой состояний,
каждое из которых отражает некоторое событие. Возможность перехода из
одного состояния в другое зависит от сигнала “x”, который формируется с
помощью счетчика тактов. В некоторых заданиях также предусматривается
формирование дополнительного управления от внешних источников.
В синтез входит:
1.
2.
3.
построение временной диаграммы работы счетчика тактов с
указанием интервалов времени формирования управляющего
сигнала «x»;
программа на Verilog HDL для реализации автомата на макете в
FPGA CycloneV ;
диаграмма переходов автомата.
В задании таблица переходов (Табл.1) отражает ход смены состояний с
учетом времени удержания предшествующего состояния в тактах.
Таблица состояний (Табл.2) отражает событие, соответствующее
полученному состоянию, и отображение состояния на выходной шине.
Состояние выходной шины при реализации выводится на сегментные
индикаторы.
Задание 1. Светофор.
Возможные состояния на выходной шине:
- красный (r);
- желтый (Y);
-красный+желтый (rY);
- зеленый (G);
- желтый +правый поворот (Y-);
-правый поворот ( -I);
-зеленый +правый поворот (G-);
- красный + левый поворот (- r).
Вариант 1.1.
Табл. 1.
S0 (начальное)
Состояния
x
S1
S2
S3
x=0
S1
S3
S3
x=1
S2
S3
S1
3
1
4
Время
удержания (такт)
Табл. 2
состояние
событие
выходная шина
S1
S2
1
r
S3
3
G
2
Y
Вариант 1.2.
Табл. 1
S0(начальное)
x
x=0
x=1
Время
удержания(такт)
Состояния
S1
S1
S2
3
S2
S3
S3
1
S3
S3
S4
2
S4
S4
S1
2
S3
3
G-
S4
4
G
Табл. 2
состояние
событие
выходная
шина
S1
1
r
S2
2
Y
Вариант 1.3
Табл. 1.
Состояния
S0(начальное)
x
x=0
x=1
Время
удержания(такт)
S1
S1
S2
3
S2
S3
S3
1
S3
S3
S4
2
S4
S5
S5
1
S5
S5
S1
3
S3
3
Y-
S4
4
G-
S5
5
G
S3
S4
S4
1
S4
S4
S5
2
S5
S5
S1
2
S3
3
Y
S4
4
Y-
S5
5
G
Табл. 2.
состояние
событие
выходная
шина
S1
1
r
S2
2
Y
Вариант 1.4.
Табл. 1.
Состояния
S0(начальное)
x
x=0
x=1
Время
удержания(такт)
S1
S1
S2
2
S2
S2
S3
2
Табл. 2.
состояние
событие
выходная
шина
S1
1
r
S2
2
- r
Вариант 1.5.
Табл. 1.
S0(начальное)
x
x=0
x=1
Время
удержания(такт)
Состояния
S1
S1
S2
3
S2
S2
S3
2
S3
S4
S4
1
S4
S4
S1
2
Табл. 2.
состояние
событие
выходная
шина
S1
1
r
S2
2
-r
S3
3
rY
S4
4
G
Вариант 1.6.
Табл. 1.
S0(начальное)
x
x=0
x=1
Время
удержания(такт)
Состояния
S1
S1
S2
3
S2
S2
S3
2
S3
S4
S4
2
S4
S4
S5
1
S5
S5
S1
2
Табл. 2.
состояние
событие
выходная
шина
S1
1
r
S2
2
-r
S3
3
r -I
S4
4
rY
S5
5
G
Вариант 1.7. (выполняется рабочей группой из 2 студентов)
Автомат не только регулирует автомобильное движение, но и организует
пешеходный переход перекрестка, где разрешен только правый поворот.
Красный сигнал светофора горит в течение 6 секунд, желтый – в течение 3
секунд, причем через 2 секунды включается разрешение правого поворота.
Зеленый горит также 6 секунд. Для индикации регулировки автомобильного
движения задействовать 2 правых индикатора (цвет + поворот). Для табло
пешеходного перехода – 2 левых индикатора (цвет + счетчик времени).
Задание 2. Стиральная машина.
Автомат реализует три основных режима стиральной машины: «стирка»,
«полоскание» и «отжим». Отображение на индикаторах: С, П, О.
Вариант 2.1. Хлопчатобумажные ткани.
Табл. 1.
S0 (начальное)
Состояния
x
S1
S2
S3
x=0
S1
S2
S3
x=1
S2
S3
S4
4
3
2
Время
удержания (такт)
Табл. 2
состояние
событие
выходная шина
S1
1
С
S2
2
П
S3
3
О
После получения результата желательно приостановить работу устройства.
S4 – режим перехода в останов(ожидание сброса).
Вариант 2.2. Шерстяные ткани.
Табл. 1.
S0 (начальное)
Состояния
x
S1
S2
S3
x=0
S1
S2
S4
x=1
S2
S3
S4
2
3
1
Время
удержания (такт)
Табл. 2
состояние
событие
выходная шина
S1
1
С
S2
2
П
S3
3
О
После получения результата желательно приостановить работу устройства.
S4 – режим перехода в останов(ожидание сброса).
Вариант 2.3. Возможность выбора режима. (выполняется рабочей группой из
2-х студентов).
В состоянии S1 автомат считывает с внешнего устройства управление,
определяющее дальнейший режим работы машины. В зависимости от
режима устанавливается температура, которая высвечивается на крайних
левых индикаторах. Для режима стирки х/б тканей установить 400, для
шерстяных установить 300. Работа в режиме х/б : стирка 4 такта, полоскание
3 такта, отжим 2 такта; работа в режиме шерсть – стирка 3 такта, полоскание
– 4 такта, отжим 1 такт. Из каждого режима автомат переходит в ожидание
отключения.
Вариант 2.4. Возможность выбора режима с проверкой веса белья.
(выполняется рабочей группой из 2-х студентов).
В состоянии S1 автомат считывает с внешнего устройства управление,
определяющее дальнейший режим работы машины. Далее, в каждом режиме
производится проверка веса загруженного белья. В зависимости от режима
допустимый вес может составлять: для х/б – не более 5 кг, для шерсти – не
более 2 кг. При превышении веса автомат выводит машину в ожидание
отключения. Работа в режиме х/б: стирка 4 такта, полоскание 3 такта, отжим
2 такта; работа в режиме шерсть – стирка 3 такта, полоскание – 4 такта,
отжим 1 такт. Из каждого режима автомат переходит в ожидание
отключения.
.
Задание 3.
Работа кассового картридера с банковской картой. Возможно
выполнение рабочей группой из 2 студентов.
В этом задании выделяем 5 этапов:
-включение;
- проверка наличия карты «П»;
- считывание кода «С»;
- обработка кода «О»;
- получение результата «Р».
Табл. 1.
Состояния
S0(начальное)
x
S1
S2
S3
S4
S5
x=0
x=1
Время
удержания
(такт)
S1
S2
2
S2
S3
2
S3
S4
3
S4
S5
4
S5
S6
3
Табл. 2
состояние
событие
выходная
шина
S1
1
--
S2
2
П
S3
3
С
S4
4
О
S5
5
P
Режим включения предусматривает проверку связи картридера с хостом.
После получения результата желательно приостановить работу устройства.
S6 – режим перехода в останов(ожидание сброса).
Задание 4.
Разметка прямоугольной фигуры.
Движение вперед – FO;
Движение вправо - r I;
Движение назад - rE;
Движение влево – LE.
Табл. 1.
S0(начальное)
x
x=0
x=1
Время
удержания(такт)
Состояния
S1
S1
S2
5
S2
S2
S3
2
S3
S3
S4
5
S4
S4
S0
2
Табл. 2
состояние
событие
выходная
шина
S0
0
--
S1
1
FO
S2
2
rI
S3
3
rE
S4
4
LE
Задание 5.1
Последовательный вывод на индикатор многозначного числа.
Число набирается на тумблерах по 4 разряда на каждую цифру и
последовательно выводится на 4 индикатора. Набранный символ
записывается после установки «1» на входе разрешения записи.
1. Состояние S0 – начальное.
2. Состояние S1 – ожидание ввода. Время удержания 4 такта. Состояние
выхода U.
3. Далее, автомат переходит в состояние ввода S2. Состояние выхода In.
Время удержания состояния ввода – 2 такта.
4. Автомат переходит в состояние вывода S3 и выводит «_», если
разрешение не поступит, при поступившем разрешении ввода
выводится введенная цифра. Время удержания состояния вывода – 3
такта. Из состояния вывода автомат снова переходит в ожидание ввода.
Последовательный вывод можно организовать с помощью регистра
сдвига.
Задание 5.2
Последовательный вывод на индикатор многозначного числа.
Число набирается на тумблерах по 4 разряда и последовательно выводится на
6 индикаторов. Набранный символ записывается после установки «1» на
входе разрешения записи.
1. Состояние S0 – начальное.
2. Состояние S1 – ожидание ввода. Время удержания 4 такта. Состояние
выхода U.
3. Далее, автомат переходит в состояние ввода S2. Состояние выхода In.
Время удержания состояния ввода – 2 такта.
4. Автомат переходит в состояние вывода S3 и выводит «_», если
разрешение не поступит, при поступившем разрешении ввода
выводится введенная цифра. Время удержания состояния вывода – 3
такта. Из состояния вывода автомат снова переходит в ожидание ввода.
Последовательный вывод можно организовать с помощью
демультиплексора.
Задание 6.
Включение двигателя автомобиля.
S0 – начальное состояние.
S1 – установка ключа. Ключ включает счетчик тактов. Этот сигнал получаем
с тумблера. После включения счетчика время удержания состояния 3 такта.
Состояние выхода – UP.
S2 – проверка кода. Время удержания 4 такта. Состояние выхода – CH. При
совпадении кода переход на включение двигателя – S3. Сигнал,
имитирующий код, подается с тумблера. При несовпадении переход в S4.
S3 – включение двигателя. Состояние выхода F. Время удержания 2 такта. За
это время необходимо имитировать дальнейший поворот ключа, что
приведет к приостановке счетчика тактов.
S4 – индикация несовпадения кода. На индикаторе горит “A”. Время
удержания 3 такта, переход в S1. Ключ возвращается в исходное положение.
Задание 7.
Автомат для прохода в метро.
S0 – начальное состояние.
S1 – ожидание карты. Индикация « __». Приложенная карта включает
счетчик тактов. Сигнал, имитирующий это действие, получаем с тумблера
Т1. Через 2 такта автомат переходит в состояние S2 – чтение состояния
карты.
S2 – чтение карты. Время удержания 2 такта. Состояние карты имитируется
положением тумблера Т2: 1 – средств достаточно, 0 – недостаточно средств.
Состояние выхода автомата 1 в случае наличия средств. В случае отсутствия
автомат переходит в ожидание.
S3 – индикация состояния карты. Автомат выводит в течение 3 тактов
считанное состояние «1» или «0». После этого автомат переходит в
состояние S4 или S1. Тумблер Т2 выключить. К окончанию состояния
тумблер Т1 можно выключить.
S4 – вход разрешен. Тумблер Т1 выключить. Состояние выхода Р.
Структура автомата может быть представлена следующим образом.
Синхронизация подается на схему от внешнего ввода в FPGA (50MHz,
PIN AF14) через понижающий счетчик с возможностью его приостановки
внешним сигналом с тумблера. Сигнал начальной установки счетчика в «0»
может также подаваться от любого тумблера макета.
Методика выполнения курсовой работы.
Занятие 1.
Рассмотрим пример.
В качестве примера возьмем светофор, в котором переход из красного
цвета в зеленый и из зеленого в красный происходит через короткий
промежуток желтого.
Табл. 1.
S0 (начальное)
Состояния
x
S1
S2
S3
x=0
S1
S1
S3
x=1
Время
удержания (такт)
S2
S3
S2
3
1
3
Табл. 2
состояние
событие
выходная шина
S1
4
r
S2
9
Y
S3
12
G
Граф работы автомата:
1. Порядок работы счетчиков.
Согласно заданию, наш счетчик должен держать автомат в состоянии S1 в
течение 3-х тактов, а затем выводить в состояние S2. Значит, при переходе
счетчика в состояние «3», управляющее КЦУ формирует «1» для входа “x”
автомата. Таким образом, следующий импульс синхронизации позволит
автомату перейти в состояние S2.
Состояние S2 держится 1 такт, но переход из него в S3 происходит по «1» на
входе управления. Следовательно, управляющее КЦУ при состоянии
счетчика «4» продолжает формировать «1». Формирование «0» на КЦУ
происходит при приходе счетчика в состояние «5».
Удержание состояния S3 также происходит в течение 3-х тактов. Нетрудно
определить, что в этом случае КЦУ формирует «1» после прихода счетчика
в состояние «7». Следующее за этим состояние S2 держится 1 такт и
переходит в S1 по управлению уровнем «0». Из состояния счетчика «8»
КЦУ формирует «0», счетчик возвращается в состояние «1» и цикл
повторяется.
Принцип формирования программы конечного автомата
module moore_1
(
input clk, in, reset,
output reg [1:0] out
);
reg [1:0]state;
parameter S0 = 0, S1 = 1, S2 = 2, S3 = 3;
формирование переходов
always @ (posedge clk or posedge reset)
begin
if (reset)
state <= S0;
else
case (state)
S0:
state <= S1;
S1:
if (in)
state <= S2;
else
state <= S1;
S2:
if (in)
state <= S3;
else
state <= S1;
S3:
if (in)
state <= S2;
else
state <= S3;
endcase
end
формирование состояний
always @ (state)
begin
case (state)
S0:
out = 2'b01;
S1:
out = 2'b10;
S2:
out = 2'b11;
S3:
out = 2'b00;
default:
out = 2'b00;
endcase
end
endmodule
Части программы (формирование переходов и состояний) могут меняться
местами, на конечный результат это нисколько не повлияет.
Download