МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра БІТ
Звіт
до лабораторної роботи № 2
«Розроблення VHDL – моделей цифрових автоматів»
з курсу : «Комп`ютерні методи високорівневого проектування пристроїв захисту»
Львів – 2015
Мета роботи: Ознайомитись із типами даних, об’єктами та базовими конструкціями мови VHDL, отримати навики моделювання синхронних кінцевих автоматів в VHDL.
Основні теоретичні відомості
Основні поняття теорії автоматів. Автомати Мілі та Мура
Автомат представляється як «чорна скринька», яка має скінчену кількість входів і виходів і деяку множину внутрішніх станів
,
в які він під дією вхідних сигналів переходить стрибкоподібно, оминаючи проміжний стан. Звичайно, ця умова не виконується в реальності, оскільки будь-який перехідний процес триває певний час.
Автомат називається скінченним, якщо множина його внутрішніх станів та множина значень вхідних сигналів є скінченними множинами.
Автомати, призначені для перетворення дискретної інформації, називають дискретними автоматами. До складу дискретних автоматів обов’язково входять запам’ятовуючі елементи, які зберігають їхній стан. Вихідні сигнали в таких автоматах формуються в залежності від вхідних сигналів і станів, в яких знаходяться елементи пам’яті. Тому дискретні автомати прийнято називати також цифровими автоматами.
- інтервал дискретності автомата
При побудові автоматів із дискретним автоматним часом розрізняють синхронні та асинхронні автомати.
У синхронних автоматах моменти часу, в яких можлива зміна стану автомата, визначаються спеціальним пристроєм – генератором синхронізуючих імпульсів. Сусідні моменти часу зазвичай розподілені рівними часовими проміжками.
В асинхронних автоматах моменти переходів із одного стану в інший не керуються сигналом синхронізації.
Зміни станів цифрового автомата ініціюються зміною значень вхідних сигналів, які виникають поза автоматом. Для будь-якого цифрового автомата кількість різних вхідних сигналів обов’язково є скінченною.
Результатом роботи цифрового автомата є видача вихідних сигналів. Щодо моменту часу переходу автомата зі стану в стан , то сигнал може фактично з’явитись або раніше, або пізніше цього моменту.
У першому випадку приймається, що вихідний сигнал однозначно визначається вхідним сигналом і станом автомата в попередній момент часу, у другому випадку сигнал однозначно визначається парою .
Цифрові автомати, в яких вихідний сигнал визначається парою , називають автоматами першого роду (автоматами Мілі), а автомати, в яких сигнал визначається парою , - автоматами другого роду (автоматами Мура).
Загальна теорія автоматів при зроблених вище припущеннях ділиться на дві великі частини: абстрактна теорія автоматів і структурна теорія автоматів. В абстрактній теорії не враховуються структура ані самого автомата, ані його вхідних і вихідних сигналів. Вхідні і вихідні сигнали розглядаються при цьому просто як букви двох фіксованих для данного автомата алфавітів: вхідного і вихідного. Не цікавлячись способом побудови автомата, абстрактна теорія розглядає лише переходи, які виконує автомат під впливом вхідних сигналів, і вихідних сигналів, які він при цьому видає.
На противагу абстрактній теорії, структурна теорія автоматів враховує структури автомата і його вхідних і вихідних сигналів. У структурній теорії вивчаються способи побудови автоматів із декількох елементарних автоматів, способів кодування вхідних і вихідних сигналів елементарними сигналами, що передаються реальними вхідними і вихідними каналами. Таким чином, структурна теорія є продовженням і подальшим розвитком абстрактної теорії. Зокрема, задача синтезу ідеалізованого (без урахування перехідних процесів) цифрового автомата природнім чином поділяється на етапи абстрактного і структурного синтезу.
Створення моделі синхронного скінченного автомата мовою VHDL
Абстрактний синтез автомата
Граф-схема алгоритму (ГСА) – це граф, в якому використовуються наступні вершини: початок, кінець, вихідна вихідного стану, логічна умова над вхідним сигналом .
Графічно автомат задається у вигляді орієнтованого графа, вершини якого відповідають станам, а дуги – переходам між ними. Дуга, направлена із вершини у вершину , задає перехід автомата із стану у стан . На початку дуги записується вхідний сигнал , що викликає перехід . Для графа автомата Мілі вихідний сигнал , який формується на переході, записується в кінці дуги, а для автомата Мура – поряд із вершиною , в якій він формується.
Перехід від ГСА до графу автомата виконується у два етапи: визначення кількості станів шляхом нанесення розмітки на граф-схему; визначення графа автомата.
Правила нанесення розмітки для автомата Мілі:
символом позначаємо вхід вершини, що іде наступною за початковим оператором ГСА і вхід кінцевої вершини;
символами – входи вершин, що йдуть за операторними вершинами;
якщо в результаті нанесення розмітки вияснилось, що в одну і ту ж вершину граф-схеми входить декілька розмічених стрілок, то їм присвоюється один і той самий символ.
Правила нанесення розмітки для автомата Мура:
символом позначаємо вхід початкову і кінцеву вершини;
символами позначаємо операторні вершини;
різні вершини ГСА повинні бути помічені різними мітками.
Під час побудови графа автомата Мура, вихідний сигнал записується всередині вершин, оскільки в автоматі Мура він залежить від стану і не залежить від вхідного сигналу.
Структура скінченного автомата
СА Мілі має виходи, які є функцією поточного стану і входів. СА Мура має виходи, які є функцією тільки поточного стану.
Структура СА (Finite State Machine, FSM)
СА складається із трьох частин:
Регістра поточного стану для послідовних переходів.
Блоку комбінаційної логіки визначення наступного стану.
Блоку комбінаційної логіки визначення виходів.
Виконання лабораторної роботи
Ознайомитись із теоретичними відомостями.
З наведених варіантів ГСА вибрати варіант за формулою:
,
де - номер ГСА (від 1 до 5);
- порядковий номер у списку групи.
Згідно із варіантом завдання здійснити перехід від схеми ГСА до графа автомата Мілі (для студентів із парними порядковими номерами) або Мура (з непарними номерами).
Написати і відкомпілювати в середовищі проектування Aldec Active HDL 8.3 програмну модель цифрового автомата на мові VHDL.
Виконати функціональну симуляцію програмної моделі автомата і навести отримані часові діаграми.
Лістинг програми мовою VHDL
library ieee;
use ieee.std_logic_1164.all;
entity Mealy is
port (x:in bit_vector(3 downto 0); clk, rst: in bit;
y: out bit_vector (4 downto 1));
end Mealy;
architecture lab2 of Mealy is
type T_state is (s0, s1, s2);
signal NEXT_state, state: T_state;
begin
NS: process(state, x)
begin
case state is
when s0 =>
if((not x(0) and x(1) and x(2) and not x(3)) = '1')
then NEXT_state <=s0; y<="0100";
elsif (x(0) = '1')
then NEXT_state <=s0; y<="0000";
elsif ((not x(0) and not x(1)) = '1')
then NEXT_state <=s1; y<="0001";
elsif ((not x(0) and x(1) and not x(2)) = '1')
then NEXT_state <=s2; y<="0010";
end if;
when s1 =>
if(not x(1) = '1')
then NEXT_state <=s1; y<="0001";
elsif ((x(1)and x(2)and x(3)) = '1')
then NEXT_state <=s1; y<="1000";
elsif ((x(1) and x(2) and not x(3)) = '1')
then NEXT_state <=s0; y<="0100";
elsif ((x(1) and not x(2)) = '1')
then NEXT_state <=s2; y<="0010";
end if;
when s2 =>
if(not x(2) = '1')
then NEXT_state <=s2; y<="0010";
elsif ((x(2)and not x(3)) = '1')
then NEXT_state <=s0; y<="0100";
elsif ((x(2) and x(3)) = '1')
then NEXT_state <=s1; y<="1000";
end if;
end case;
end process NS;
state <= s0 when rst ='1'
else NEXT_state when clk'event and clk = '1' else state;
end lab2;
Часові діаграми роботи схеми
Висновок
Під час виконання даної лабораторної роботи ми ознайомилися з типами даних, об’єктами та базовими конструкціями мови VHDL, отримали навики моделювання синхронних кінцевих автоматів в VHDL та реалізували цифровий автомат Мілі згідно з поставленим завданням.