Исследование и логическое проектирование конечного частично определенного автомата
Исследование и логическое проектирование конечного частично определенного автомата - дискретного преобразователя информации. Построение графа, кодирование данных. Нахождение системы булевых функций для возбуждения триггеров. Составление логической схемы.
Рубрика | Математика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 09.11.2012 |
Размер файла | 59,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Уфимский государственный авиационный технический университет
филиал в городе Ишимбай
Кафедра физики и математики
Курсовая работа
по математическим основам дискретно-логических систем
«Исследование и логическое проектирование конечного частично определенного автомата»
Выполнил: студен гр. АТП-211
Проверил: к.ф.-м.н., доцент
Мугафаров М.Ф.
Ишимбай 2009
Индивидуальные задания
Выполнить исследование и логическое проектирование конечного частично определенного автомата по данным, приведенным в таблицах 1-4. Для этого по соответствующему варианту:
1) составить таблицу поведения автомата и нарисовать граф;
2) найти систему булевых функций для возбуждения триггеров (JK для четных вариантов и Т - для нечётных), реализующих функции y;
3) определить булеву функцию для реализации функции j;
4) составить логическую схему автомата, используя комбинационные автоматы и триггеры.
Примечание: 1) X={x1;x2;x3;x4}, Y={0;1}, Q={q1,q2,q3,…, q12}.
Содержание
Введение
Постановка задачи
1. Построение таблицы поведения автомата
2. Построение графа
3. Кодирование данных
4. Нахождение системы булевых функций для возбуждения Т-триггеров, реализующих функции ш
5. Определение булевой функции для реализации функции ц
6. Составление логической схемы автомата
Заключение
Введение
Автоматом называется дискретный преобразователь информации, способный принимать различные состояния, переходить под воздействием входных сигналов из одного состояния в другое и выдавать выходные сигналы.
Если множество состояний автомата, а так же множества входных и выходных сигналов конечны, то автомат называется конечным автоматом.
Существуют различные варианты задания конечного автомата. Например, конечный автомат может быть задан с помощью пяти параметров
где:
Q -- конечное множество состояний автомата;
q0 -- начальное состояние автомата ();
F -- множество заключительных (или допускающих) состояний, таких что ;
У -- допустимый входной алфавит (конечное множество допустимых входных символов), из которого формируются строки, считываемые автоматом;
д -- заданное отображение множества во множество подмножеств Q:
(иногда д называют функцией переходов автомата).
Автомат начинает работу в состоянии q0, считывая по одному символу входной строки. Считанный символ переводит автомат в новое состояние из Q в соответствии с функцией переходов. Если по завершении считывания входного слова (цепочки символов) автомат оказывается в одном из допускающих состояний, то слово «принимается» автоматом. В этом случае говорят, что оно принадлежит языку данного автомата. В противном случае слово «отвергается».
Конечные автоматы подразделяются на детерминированные и недетерминированные:
- детерминированным конечным автоматом (ДКА) называется такой автомат, в котором для каждой последовательности входных символов существует лишь одно состояние, в которое автомат может перейти из текущего.
- недетерминированный конечный автомат (НКА) является обобщением детерминированного. Недетерминированность автоматов достигается двумя способами:
1) существуют переходы, помеченные пустой цепочкой е;
2) из одного состояния выходит несколько переходов, помеченных одним и тем же символом.
Одна из областей эффективного использования конечного автомата (КА) - разработка игровых программ. Другая предметная область - системы управления и/или функционирования в реальном времени. В этих областях в полной мере присутствуют элементы, которые сложно реализовать при обычных подходах. Это - параллельный характер работы составных частей системы, их синхронизация в реальном времени. В таких областях обычно применяются специализированные системы проектирования. В их основу положена, примененная и в КА-технологии, концепция микроядра, которое реализует параллельные механизмы среды функционирования.
Конечные автоматы актуальны сейчас и останутся актуальными впредь, так как широко применяются очень во многих областях. Они содержатся, например, в каждом компиляторе. Существует обширная и хорошо разработанная теория автоматов, которая опять же используется каким-либо боком практически во всех областях теоретической информатики.
Идея применения конечных автоматов является чрезвычайно полезной концепцией, плодотворность которой прошла проверку временем. Использование конечных автоматов позволяет разработчикам создавать хорошо организованные приложения с гибкими возможностями. Их применение позволяет создавать ясный, понятный и надежно функционирующий код.
Использование конечных автоматов стало уже обычной практикой при проектировании приложений для настольных компьютеров, серверов и мобильных устройств.
Преимущества, обеспечиваемые применением конечных автоматов, заметнее всего проявляются в случае приложений для мобильных устройств, требующих экономного расходования экранного пространства, памяти, вычислительной мощности и других ресурсов.
Постановка задачи
Для выполнения данной курсовой работы необходимо выполнить несколько следующих этапов:
1. Составить таблицу поведения автомата.
Эта таблица составляется с помощью начальных данных, заданных в форме фрагментов четырех таблиц с соответствующим вариантом.
2. Нарисовать граф.
Граф рисуется по результатам, полученным из таблицы поведения. Но, чтобы не перегружать рисунок графа многочисленными переходами, можно разбить его на фрагменты. Количество фрагментов должно совпадать с количеством состояний. Затем, нужно построить таблицу соединений, с помощью которых сигнал переходит из одного состояния в другое.
3. Произвести кодирование данных.
Необходимо произвести двоичное кодирование всех элементов, т.е. следует закодировать состояния и символы входного алфавита. Учитывая это кодирование, записать таблицу поведения в кодах.
4. Найти систему булевых функций для возбуждения T-триггеров, реализующих функции ш.
Составляем таблицу по данным таблицы поведения в кодах и схемы работы T-триггера. По полученным в ней значениям записываем функции UTi, которые необходимо будет максимально упростить (склеить). Так же следует найти одинаковые элементы (конъюнкты или дизъюнкты) в различных формулах UTi.
5. Определить булеву функцию для реализации функции ц.
Составляется таблица, в которую вносятся символы выходного алфавита из таблицы поведения автомата. По ней записывается формула для функции у, которую так же необходимо упростить (склеить).
6. Составить логическую схему автомата, используя комбинационные автоматы и T-триггеры.
Необходимо составить две схемы: первая формирует функцию ш на T-триггерах, вторая - формирует функцию ц. В них должны использоваться следующие элементы: конъюнкты, дизъюнкты и триггеры. Количество конъюнктов для первой схемы не должно превышать 20 штук.
После их выполнения необходимо будет провести проверку результатов путем частичной трассировки автомата.
логический дискретный автомат преобразователь
1. Построение таблицы поведения
Такая таблица состоит из строк - текущих состояний q1, q2, …, q12 и столбцов - символов входного алфавита x1, x2, x3, x4. В ячейки данной таблице записывают по два значения через дробь: первое значение - это значение очередных состояний автомата , в которые он переходит для каждой пары ; второе значение - это значения символов выходного алфавита , которые генерирует автомат для каждой пары .
Данные в таблицу поведения мы заносим из индивидуального задания по таблицам 1, 2, 3 и 4 в соответствии с нужным вариантом.
Символ (*/*) в ячейках обозначает, что переход из одного состояния в другое и значение символа на выходе из состояния неопределены.
После таблицы поведения записаны значения, которые при переходе из одного состояния могут применяться для любого другого состояния. И в соответствии с ними следует построение графов.
Таблица 1. Таблица поведения
xi q[ф] |
x1 |
x2 |
x3 |
x4 |
|
q1 |
*/0 |
*/0 |
q1/0 |
*/* |
|
q2 |
*/0 |
*/* |
q2/0 |
q5/1 |
|
q3 |
*/0 |
q5/1 |
q3/0 |
q6/1 |
|
q4 |
*/* |
q6/1 |
q4/0 |
q7/1 |
|
q5 |
q5/1 |
q7/1 |
q5/* |
q8/1 |
|
q6 |
q6/1 |
q8/1 |
q6/* |
q9/* |
|
q7 |
q7/1 |
q9/* |
q7/* |
q10/* |
|
q8 |
q8/1 |
q10/* |
q8/1 |
q11/* |
|
q9 |
q9/* |
q11/* |
*/1 |
q12/0 |
|
q10 |
q10/* |
q12/* |
*/1 |
*/0 |
|
q11 |
q11/* |
*/0 |
*/1 |
*/0 |
|
q12 |
q12/0 |
*/0 |
*/* |
*/0 |
*/* - не рассматриваем.
Таблица 2. Таблица свободных переходов
q1 - (x1/0)v(x2/0)v(x3/0) |
|
q2 - (x1/0)v(x3/0) |
|
q3 - (x1/0)v(x3/0) |
|
q4 - (x3/0) |
|
q5 - (x1/1)v(x3/*) |
|
q6 - (x1/1)v(x3/*) |
|
q7 - (x1/1)v(x3/*) |
|
q8 - (x1/1)v(x3/1) |
|
q9 - (x1/*)v(x3/1) |
|
q10 - (x1/*)v(x3/1)v(x4/0) |
|
q11 - (x1/*)v(x2/0)v(x3/1)v(x4/0) |
|
q12 - (x1/0)v(x2/0)v(x4/0) |
2. Построение графа
Выбираем центральное состояние и вокруг него располагаем все остальные. Затем по таблице поведения автомата расставляем переходы (стрелки) из центрального состояния в другие, подписывая их.
Если вместо очередного состояния автомата стоит знак * (например, */1), то данное значение можно использовать для всех недостающих состояний.
По построенным графам составляем таблицу соединений состояний автомата, где строки - это текущее состояние , а столбцы - очередное состояние .
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
Рисунок 1. Фрагмент графа перехода с вершиной-истоком q1
Рисунок 2. Фрагмент графа перехода с вершиной-истоком q2
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
Рисунок 3. Фрагмент графа перехода с вершиной-истоком q3
Рисунок 4. Фрагмент графа перехода с вершиной-истоком q4
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
Рисунок 5. Фрагмент графа перехода с вершиной-истоком q5
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
Рисунок 6. Фрагмент графа перехода с вершиной-истоком q6
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
Рисунок 7. Фрагмент графа перехода с вершиной-истоком q7
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
Рисунок 8. Фрагмент графа перехода с вершиной-истоком q8
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
Рисунок 9. Фрагмент графа перехода с вершиной-истоком q9
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
Рисунок 10. Фрагмент графа перехода с вершиной-истоком q10
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
Рисунок 11. Фрагмент графа перехода с вершиной-истоком q11
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
Рисунок 12. Фрагмент графа перехода с вершиной-истоком q12
Таблица 3. Таблица соединений
q q[ф] |
q1 |
q2 |
q3 |
q4 |
q5 |
q6 |
q7 |
q8 |
q9 |
q10 |
q11 |
q12 |
|
q1 |
x3/0 |
||||||||||||
q2 |
x3/0 |
x4/1 |
|||||||||||
q3 |
x3/0 |
x2/1 |
x4/1 |
||||||||||
q4 |
x3/0 |
x2/1 |
x4/1 |
||||||||||
q5 |
(x1/1)v (x3/*) |
||||||||||||
q6 |
(x1/1)v (x3/*) |
x2/1 |
x4/* |
||||||||||
q7 |
(x1/1)v (x3/*) |
x2/* |
x4/* |
||||||||||
q8 |
(x1/1)v (x3/1) |
x2/* |
x4/* |
||||||||||
q9 |
x1/* |
x2/* |
x4/0 |
||||||||||
q10 |
x1/* |
x2/* |
|||||||||||
q11 |
x1/* |
||||||||||||
q12 |
x1/0 |
3. Кодирование данных
Требуется произвести однозначное двоичное кодирование элементов множеств X, Y, Q. Первоначально для каждого множества требуется определить его мощность, т.е. число элементов. Затем, определить число бит необходимых для однозначного кодирования.
Так как у нас X={x1, x2, x3, x4}, Y={0,1}, Q={ q1, q2, …, q12}, то для Х (т.е. (x1, x2)), для Y (т.е.(у)) и для Q (т.е. (q1, q2, q3, q4)). В соответствии с полученными значениями мы запишем таблицу поведения в кодах. В ячейки данной таблицы вписаны закодированные состояния и значения выходных символов (например, 0110/1), причем символ */* остается неизменным.
Таблица 4
q1 |
q2 |
q3 |
q4 |
q5 |
q6 |
q7 |
q8 |
q9 |
q10 |
q11 |
q12 |
|
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
Таблица 5
x1 |
x2 |
x3 |
x4 |
|
00 |
01 |
10 |
11 |
Таблица 6. Таблица поведения автомата в кодах
x1 |
x2 |
x3 |
x4 |
||
q1 |
*/0 |
*/0 |
0000/0 |
*/* |
|
q2 |
*/0 |
*/* |
0001/0 |
0100/1 |
|
q3 |
*/0 |
0100/1 |
0010/0 |
0101/1 |
|
q4 |
*/* |
0101/1 |
0011/0 |
0110/1 |
|
q5 |
0100/1 |
0110/1 |
0100/* |
0111/1 |
|
q6 |
0101/1 |
0111/1 |
0101/* |
1000/* |
|
q7 |
0110/1 |
1000/* |
0110/* |
1001/* |
|
q8 |
0111/1 |
1001/* |
0111/1 |
1010/* |
|
q9 |
1000/* |
1010/* |
*/1 |
1011/* |
|
q10 |
1001/* |
1011/* |
*/1 |
*/0 |
|
q11 |
1010/* |
*/0 |
*/1 |
*/0 |
|
q12 |
1011/0 |
*/0 |
*/* |
*/0 |
4. Нахождение системы булевых функций для возбуждения T-триггеров, реализующих функции ш
Составляем таблицу, где строки - код состояния, столбцы - код символа входного алфавита. Позициями таблицы являются сигналы на информационном входе соответствующего канала UТi.
При помощи таблицы поведения в кодах и схемы работы Т-триггера заполняем данную таблицу.
Затем, запишем формулы для логических функций. Например, рассмотрим функцию UТ1, которая подается на вход триггера. Она содержит 5 единиц и 27 нулей. Выбираем единицы (т.к. количество единиц в таблице меньше, чем нулей). Если эта единица соответствует кодированному значению (р1, р2, р3, р4) и (у1, у2), то в формулу записываем просто , если же единица не соответствует, то пишем . Данные действия проводим с каждой единицей. В результате получим следующую формулу:
Таблица 7. Таблица возбуждения памяти автомата для T-триггера
00 |
01 |
10 |
11 |
||
0000 |
**** |
**** |
0000 |
**** |
|
0001 |
**** |
**** |
0000 |
0101 |
|
0010 |
**** |
0110 |
0000 |
0111 |
|
0011 |
**** |
0110 |
0000 |
0101 |
|
0100 |
0000 |
0010 |
0000 |
0011 |
|
0101 |
0000 |
0010 |
0000 |
1101 |
|
0110 |
0000 |
1110 |
0000 |
1111 |
|
0111 |
0000 |
1110 |
0000 |
1101 |
|
1000 |
0000 |
0010 |
**** |
0011 |
|
1001 |
0000 |
0010 |
**** |
**** |
|
1010 |
0000 |
**** |
**** |
**** |
|
1011 |
0000 |
**** |
**** |
**** |
5. Определение булевой функции для реализации функции ц
Составляем таблицу из строк - коды состояний автомата и столбцов - код символа входного алфавита. В ячейках таблицы записываются значения символов выходного алфавита.
Данная таблица имеет одинаковое количество единиц и нулей. Здесь были выбраны нули. Сравниваем нуль с кодированными значениями. Записываем полученную формулу и упрощаем её.
Таблица 8. Таблица символов выходного алфавита
xi q[ф] |
x1 |
x2 |
x3 |
x4 |
|
q1 |
0 |
0 |
0 |
* |
|
q2 |
0 |
* |
0 |
1 |
|
q3 |
0 |
1 |
0 |
1 |
|
q4 |
* |
1 |
0 |
1 |
|
q5 |
1 |
1 |
* |
1 |
|
q6 |
1 |
1 |
* |
* |
|
q7 |
1 |
* |
* |
* |
|
q8 |
1 |
* |
1 |
* |
|
q9 |
* |
* |
1 |
* |
|
q10 |
* |
* |
1 |
0 |
|
q11 |
* |
0 |
1 |
0 |
|
q12 |
0 |
0 |
* |
0 |
6. Составление логической схемы автомата
На основании полученных выражений функций возбуждения элементов памяти и функций выходов автомата можно перейти к построению логических схем. Первая схема формирует функцию ш на T-триггерах. Вторая схема формирует функцию ц.
При построении схемы используем такие элементы: конъюнкт, дизъюнкт и триггеры. При совпадении нескольких конъюнктов или дизъюнктов, рисуется только один элемент и из него выходит сигнал в нескольких направлениях.
На схеме, формирующей функцию ш на T-триггерах, введены дополнительные входы триггеров R, S и C. Сигнал, поданный на вход R, обеспечивает принудительный перевод триггеров в состояние «1», на вход S - в состояние «0». Сигнал, поданный на вход С, является синхронизирующим для всего автомата.
Заключение
Для выполнения данной курсовой работы необходимо было выполнить 6 следующих пунктов:
1. Построение таблицы поведения автомата.
2. Построение графа.
3. Кодирование данных.
4. Нахождение системы булевых функций для возбуждения T-триггеров, реализующих функции ш.
5. Определение булевой функции для реализации функции ц.
6. Составление логической схемы автомата.
Отметим каждый из них и покажем, что они полностью выполнены:
1. Построение таблицы поведения автомата.
Первоначально исходные данные представлены в виде фрагментов четырех таблиц. Объединяя эти данные и транспонируя полученную таблицу, получим таблицу поведения автомата (Таблица 1. Таблица поведения) .
После таблицы поведения и по ее данным построена таблица свободных переходов (Таблица 2. Таблица свободных переходов), которые при переходе из одного состояния могут применяться для любого другого состояния.
Данные таблицы полностью заполнены и проверенны, поэтому данный этап можно считать выполненным.
2. Построение графа.
По данным, взятым из первых двух таблиц (Таблице поведения и Таблице свободных переходов), должен быть построен граф. Но, чтобы не загромождать многочисленными переходами рисунок одного графа, было решено разбить его на фрагменты. Так как у нас дано 12 состояний, т.е. q1,q2,q3,…, q12, то и фрагментов графа перехода получилось тоже 12, каждый со своей вершиной-истоком. Затем по данному графу была составлена таблица соединений.
3. Кодирование данных.
Для того чтобы продолжить исследование автомата, необходимо было провести кодирование данных, так состояния q1,q2,q3,…, q12 получили следующие коды: 0000, 0001, …, 1011 (Таблица 4), а символы входного алфавита x1, x2, x3, x4 - 00, 01, 10, 11 (Таблица 5). Учитывая эти коды, была записана таблица поведения в кодах (Таблица 6. Таблица поведения автомата в кодах). На этом этап кодирования завершен.
4. Нахождение системы булевых функций для возбуждения T-триггеров, реализующих функции ш.
По данным таблицы поведения в кодах и схемы работы T-триггера заполняем новую таблицу (Таблица 7. Таблица возбуждения памяти автомата для T-триггера).
Формулы были предельно упрощены до минимального количества конъюнктов (13 штук). Данный пункт исследования автомата можно считать выполненным.
5. Определение булевой функции для реализации функции ц.
В ячейки таблицы возбуждения памяти автомата были записаны символы выходного алфавита из таблицы поведения автомата. Так получили новую таблицу (Таблица 8. Таблица символов выходного алфавита). Затем, как и в пункте 6 записали функцию y, состоящую из 14 дизъюнктов. Но после ее упрощения (склеивания) получили дизъюнктов в количестве 7 штук.
6. Составление логической схемы автомата.
Проведя все исследования и вычисления, приступили к построению логической схемы автомата. Их у нас две. Первая схема формирует функцию ш на T-триггерах. Вторая - формирует функцию ц.
В первую схему вошли, определенные выше, 13 конъюнктов, 4 дизъюнкта и 4 T-триггера. Так же дополнительно были введены входы триггеров R, S и C. Во вторую схему вошли 7 дизъюнктов и 1 конъюнкт.
На этом построение логической схемы автомата завершено.
Закончив перечисленные выше пункты, исследование и логическое проектирование конечного частично определенного автомата можно считать выполненным. Осталось лишь провести проверку результатов путем частичной трассировкой автомата.
Размещено на Allbest.ru
Подобные документы
Построение графа и таблицы поведения автомата. Нахождение системы булевых функций для возбуждения JK-триггеров, реализующих функции y. Определение булевой функции для реализации функции j. Составление логической схемы автомата, кодирование данных.
курсовая работа [200,4 K], добавлен 27.04.2011Построение таблицы поведения автомата и соответствующего графа. Нахождение системы булевых функций для возбуждения T-триггеров, реализующих функции "пси". Определение булевой функции для реализации функции "фи". Составление логической схемы автомата.
курсовая работа [96,7 K], добавлен 27.04.2011Составление таблицы истинности. Получение уравнений функций алгебры логики для заданных выходов. Реализация схемы логического автомата на электромагнитных реле РП-23, на диодной матрице. Реализация структурной схемы логического автомата, на микросхемах.
курсовая работа [862,4 K], добавлен 12.12.2012Задача численного интегрирования функций. Вычисление приближенного значения определенного интеграла. Нахождение определенного интеграла методами прямоугольников, средних прямоугольников, трапеций. Погрешность формул и сравнение методов по точности.
методичка [327,4 K], добавлен 01.07.2009Изучение булевых функций. Алгоритм представления булевых функций в виде полинома Жегалкина. Система функций множества. Алгебраические преобразования, метод неопределенных коэффициентов. Таблица истинности для определенного количества переменных.
курсовая работа [701,9 K], добавлен 27.04.2011Вычисление пределов функций. Нахождение производные заданных функций, решение неопределенных интегралов. Исследование функции и построение ее графика. Особенности вычисления площади фигуры, ограниченной линиями с использованием определенного интеграла.
контрольная работа [283,1 K], добавлен 01.03.2011Необходимое и достаточное условие существования определенного интеграла. Равенство определенного интеграла от алгебраической суммы (разности) двух функций. Теорема о среднем – следствие и доказательство. Геометрический смысл определенного интеграла.
презентация [174,5 K], добавлен 18.09.2013Основные определения конечного автомата Мили, его специальные классы. Группы и полугруппы, определенные обратимым автоматом без ветвлений. Преобразования, определенные обратимым медленным автоматом конечного типа. Функции перехода без предельного цикла.
дипломная работа [781,6 K], добавлен 10.06.2011Синтез схемы, реализующей функцию, заданную кубическим комплексом в универсальном базисе логических элементов ИЛИ-НЕ. Нахождение минимального и построение факторизованного покрытий. Составление логической схемы и ее проверка контролирующим тестом.
курсовая работа [261,7 K], добавлен 16.06.2011Систематизация основных результатов о частично насыщенных формациях, их локальных спутниках и решетках. Исследование внутренних локальных спутников формации, насыщенные формации с ограниченым H-дефектом, у которых решетка содержит дополнения.
дипломная работа [530,5 K], добавлен 13.12.2009