
- •Расчетная часть
- •1. Разработка алгоритма работы управляющего автомата
- •1.1. Алгоритм работы
- •1.2 Представление на языке Assembler
- •3.3. Формирование ску ца Мура
- •3.4. Синтез функции возбуждения и выхода
- •3.4. Построение схемы на заданной элементарной базе
- •3.5. Тестирование работоспособности схемы
- •3.6. Расчет максимально допустимой тактовой частоты генератора
- •4. Проектирование уа с программируемой логикой
- •4.1. Определение формата микрокоманд
- •4.2. Разработка функциональной схемы
- •4.3. Составление таблицы прошивки пзу
- •Перечень элементов
- •Приложения
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
кафедра вычислительной техники
пояснительная записка
к курсовой работе
по дисциплине «Теория автоматов»
Выполнила:
студентка группы 10ВВ2
Чепанова А.Г.
Принял:
Калиниченко Е.И.
Пенза 2012
Содержание
Введение 4
Расчетная часть 5
1. Разработка алгоритма работы управляющего автомата 5
1.1. Алгоритм работы 5
1.2 Представление на языке Assembler 6
2. Тестирование алгоритма 7
2.1. Тестирование и отладка алгоритма работы 7
2.2. Переход к графической схеме алгоритма 9
9
3. Проектирование управляющего автомата с жесткой логикой 10
3.1. Переход к стандартному языку задания автомата 10
10
3.2. Построение прямой таблицы переходов ЦА Мура. 11
3.3. Формирование СКУ ЦА Мура 11
3.4. Синтез функции возбуждения и выхода 14
3.4. Построение схемы на заданной элементарной базе 15
3.5. Тестирование работоспособности схемы 16
3.6. Расчет максимально допустимой тактовой частоты генератора 17
4. Проектирование УА с программируемой логикой 18
4.1. Определение формата микрокоманд 18
4.2. Разработка функциональной схемы 19
4.3. Составление таблицы прошивки ПЗУ 19
Перечень элементов 20
Приложения 21
Введение
В современном мире все быстрее и быстрее возрастает роль вычислительной техники в жизни каждого человека. Еще совсем недавно никто даже бы не смог предположить, что дом каждой семьи будет наводнен техникой, управляемой микропроцессорами. А задачу реализации корректной работы микропроцессоров и их взаимодействия с окружающей средой решают управляющие автоматы. И в данной курсовой работе моей задачей является спроектировать управляющий автомат, выполняющий определенную функцию.
Согласно заданию к курсовой работе, мне
необходимо разработать управляющий
цифровой автомат с жесткой и программируемой
логикой для выполнения операции
.
Разрядность обрабатываемых операндов – 32 бит. Формат операндов – целые числа со знаком, крайний левый разряд – знаковый. Данные в оперативной памяти представляются в дополнительном коде. Тип автомата – Мура. Элемент памяти – JK-триггер. Адресация управляющего автомата с программируемой логикой – принудительная.
Расчетная часть
1. Разработка алгоритма работы управляющего автомата
1.1. Алгоритм работы
Составим алгоритм работы для выполнения операции .
Алгоритм:
Помещаем в регистр ebx значение b.
Помещаем в регистр eax значение a.
Обнуляем переменную err,которая отвечает за наличие ошибки.
Совершаем операцию конъюнкции ebx и eax.
Помещаем в регистр ebx значение c.
Совершаем операцию дизъюнкции регистров eax и ebx.
Заносим значение eax в регистры edx и ebx.
Заносим в ecx количество тактов (32).
Если младший бит ebx равен 0, то переходим к пункту 7.
Если младший бит ebx равен 0, то прибавляем ebx к eax.
Циклически сдвигаем регистры eax и edx вправо на один разряд.
Обнуляем флаг CF.
Уменьшаем ecx на один.
Если ecx!=0, то переходим к пункту 5.
Помещаем в регист ebx значение d.
Прибавляем ebx к edx.
Совершаем операцию сложения с учетом флага CF регистра eax с 0.
Проверяем на переполнение. Если флаг OF установлен в 1, то переходим к пункту 19, если флаг установлен в 0, то переходим к пункту 20
Увеличиваем переменную err на 1.
Заносим значение нашего выражения в 64-разрядную переменную.
1.2 Представление на языке Assembler
Реализованный мною алгоритм на языке программирования низкого уровня – Assembler:
mov ebx, b
mov eax, a
mov err,0
and eax, ebx
mov ebx,c
or eax, ebx
mov edx, eax
mov ebx, eax
mov ecx, 32
mult:
test edx, 1
jz shift
add eax, ebx
shift:
rcr eax, 1
rcr edx, 1
clc
dec ecx
cmp ecx, 0
jg mult
mov ebx,d
add edx, ebx
adc eax, 0
jno noerr
inc err
noerr:
mov dword ptr [result], edx
mov dword ptr [result+4], eax
}
2. Тестирование алгоритма
2.1. Тестирование и отладка алгоритма работы
Для проверки правильности работы алгоритма, проверим некоторые наборы входных данных.
Например, а=1, b=1, c=1, d=1.
Например, а=5, b=4, c=3, d=2.
Результаты вычислений верны.
Переполнения в данном выражении возникнуть не может, поэтому потребности в лишних проверках не вознакает.
2.2. Переход к графической схеме алгоритма
3. Проектирование управляющего автомата с жесткой логикой
3.1. Переход к стандартному языку задания автомата
Согласно выделенному преподавателем фрагменту, изображенному ниже, необходимо перейти к разработке управляющего автомата.
3.2. Построение прямой таблицы переходов ЦА Мура.
Si(t)(yi) |
xi,j(t) |
Sj(t+1) |
yj |
S0(y0) |
1 |
S1 |
y1 |
S1(y1) |
X0 |
S2 |
y2 |
!X0 |
S3 |
y3 |
|
S2(y2) |
1 |
S3 |
y3 |
S3(y3) |
1 |
S4 |
y4 |
S4(y4) |
1 |
S5 |
y5 |
S5(y5) |
1 |
S6 |
y6 |
S6(y6) |
X0 |
S7 |
y7 |
!X0 |
S2 |
y2 |
|
S7(y7) |
1 |
S8 |
y8 |
S8(y8) |
1 |
S9 |
y9 |
S9(y9) |
X1 |
S10 |
y10 |
!X1 |
S12 |
y12 |
|
S10(y10) |
1 |
S11 |
y11 |
S11(y11) |
1 |
S13 |
yk |
S12(y8) |
1 |
S13 |
yk |
S13(yk) |
|
|
|