Министерство общего и профессионального образования РФ
Вятский государственный технический университет
Факультет автоматики и вычислительной техники
Кафедра электронных вычислительных машин
ДОПУСКАЮ К ЗАЩИТЕ Руководитель работы _______ О.А. ЗалетовСИНТЕЗ МИКРОПРОГРАММНОГО
УПРАВЛЯЮЩЕГО АВТОМАТА
Пояснительная записка
курсовой работы
по теории автоматов
ТПЖА.220100.22.29 ПЗ
Разработал студент гр. ВМ-22 ( _______ ) Р.В. Гонта
Проверил преподаватель кафедры ЭВМ ( _______ ) О.А. Залетов
Нормоконтролер ( _______ ) В.Ю. Мельцов
Председатель комиссии ( _______ ) В.Д. Матвеев
Члены комиссии ( _______ ) В.Ю. Мельцов
Работа защищена с оценкой ( _______ )
1999
Содержание
Введение 1 Постановка задачи 2 Описание используемого алгоритма умножения 2.1 Алгоритм умножения чисел в форме с ПЗ с простой коррекцией 2.2 Алгоритм умножения первым способом 3 Ручной подсчет 4 Выбор и описание структурной схемы ОА 5 Реализация содержательной ГСА 6 Построение отмеченной ГСА 7 Синтез МПА в соответствии с моделью Мили 7.1 Построение графа автомата 7.2 Построение прямой структурной таблицы переходов и выходов 7.3 Кодирование на D-триггерах 7.4 Получение логических выражений для функций возбуждения D-триггеров и функций выходов 7.5 Кодирование на RS-триггерах 7.6 Получение логических выражений для функций возбуждения RS-триггеров 7.7 Кодирование на T-триггерах 7.8 Получение логических выражений для функций возбуждения T-триггеров 7.9 Кодирование на счетчике 7.10 Получение уравнений для счетчика 8 Синтез МПА в соответствии с моделью Мура 8.1 Построение графа автомата 8.2 Построение прямой структурной таблицы переходов и выходов 8.3 Кодирование на D-триггерах 8.4 Получение логических выражений для функций возбуждения D-триггеров и функций выходов 8.5 Кодирование на RS- триггерах 8.6 Получение логических выражений для функций возбуждения RS- триггеров и функций выходов 9 Построение функциональной схемы микропрограммного управляющего автомата Заключение Библиографический список Перечень сокращений |
Реферат
Гонта Р.В. Синтез микропрограммного управляющего автомата. Курсовая работа / ВятГТУ, каф. ЭВМ, рук. О.А. Залетов – Киров, 1999. Гр. ч. 3 л. ф. А2
ОПЕРАЦИОННЫЙ АВТОМАТ, МИКРОПРОГРАММНЫЙ УПРАВЛЯЮЩИЙ АВТОМАТ , ГРАФ-СХЕМА АЛГОРИТМА, ГРАФ, ФУНКЦИОНАЛЬНАЯ СХЕМА, МОДЕЛЬ МИЛИ, МОДЕЛЬ МУРА
Цель работы — синтезировать микропрограммный автомат, управляющий операцией умножения чисел в форме с плавающей запятой и характеристикой в дополнительном коде первым способом с простой коррекцией.
Результатом работы является создание функциональной схемы микропрограммного управляющего автомата.
Введение
Потребность в вычислениях возникла у людей на самых ранних стадиях развития человеческого общества. Причем с самого начала для облегчения счета люди использовали различные приспособления. Многие из них были весьма интересными и остроумными по принципу действия, но все они обязательно требовали, чтобы в процессе вычислений активно участвовал человек-оператор. Качественно новый этап развития вычислительной техники наступил с изобретением и созданием электронных вычислительных машин, которые работают автоматически, без участия человека, в соответствии с заранее заданной программой. Появление таких машин вызвано объективными условиями современного развития науки, техники и народного хозяйства. Во многих областях человеческой деятельности уже в середине ХХ века объем и сложность вычислительных работ настолько возросли, что решение некоторых задач без применения вычислительной техники было бы практически не возможным. В настоящее время электронные вычислительные машины применяются во многих областях науки, техники и народного хозяйства. В основном они используются: для решения сложных математических и инженерных задач, в качестве управляющих машин в промышленности и военной технике, в сфере обработки информации.
1 Постановка задачи
Требуется разработать МПА, управляющий операцией умножения двоичных чисел в форме с плавающей запятой и характеристикой в дополнительном коде первым способом с простой коррекцией.
Функциональную схему устройства построить в основном логическом базисе. Операнды разрядностью 4 байта (тридцать два разряда) поступают по входной шине (ШИВх) в дополнительном коде (ДК), результат также в ДК выводится по выходной шине (ШИВых). В младших 24 разрядах операнда хранится мантисса со знаком, а в следующих 8 разрядах - характеристика.
Процесс умножения состоит из последовательности операций сложения и сдвигов.
2.1 Алгоритм умножения чисел в форме с ПЗ с простой коррекцией
1. Определить знак произведения сложением по модулю два знаковых разрядов сомножителей.
2. Перемножить модули мантисс сомножителей по правилам с ФЗ:
2.1. Выполнить коррекцию, если хотя бы один из сомножителей отрицательный по правилу введения коррекции.
Правила введения коррекции при умножении чисел в ДК:
- Если сомножители положительны, коррекции нет.
- Если один из сомножителей отрицателен, к псевдопроизведению надо прибавить ДК от модуля положительного сомножителя.
- Если оба сомножителя отрицательны, к псевдопроизведению надо прибавить ДК от модулей дополнительных кодов обоих сомножителей, то есть их прямые коды.
2.2. Перемножить модули сомножителей, представленных в ДК, одним из четырех способов получить псевдопроизведение.
3. Определить характеристику произведения алгебраическим сложением характеристик сомножителей.
4. Нормализовать мантиссу результата и выполнить округление если необходимо.
2.2 Алгоритм умножения первым способом
Умножение с младших разрядов множителя со сдвигом частных сумм вправо.
В каждом такте цикла умножения первым способом необходимо:
2.1 Сложить множимое с предыдущей частной суммой, если очередной разряд множителя равен 1, и результат (новую частную сумму) запомнить; в случае если очередной разряд множителя равен 0 суммирование не выполнять;
2.2 Уменьшить вдвое частную сумму, что равносильно сдвигу ее на один разряд вправо.
3 Ручной подсчет
Выполним ручной подсчет в соответствии с выше указанным алгоритмом.
В качестве множителя возьмём число 9, а в качестве множимого 13.
3.1 Сомножители положительные (A>0, B>0)
A = 9 = 10012, Апк = 0,1001, Адк = 0,1001
B = 13= 11012, Впк = 0,1101, Вдк = 0,1101
3.1.1 Определим знак произведения: 0 + 0 = 0
3.1.2 Перемножим модули сомножителей:
Таблица 1
Множимое | Множитель | Сумматор | Пояснения |
0,1101 | 0,1001 | 0,00000000 0,11010000 0,11010000 | Сложение |
0,01101000 | Сдвиг | ||
0,0100 | 0,00110100 | Сдвиг | |
0,0010 | 0,00011010 | Сдвиг | |
0,0001 | 0,00011010 0,11010000 0,11101010 | Сложение | |
0,01110101 | Сдвиг |
Получили псевдопроизведение: 0,01110101
3.1.3 Коррекция не нужна, так как оба множителя положительные.
3.1.4 Присвоение произведению знака:
(A*B)дк=0,01110101
(A*B)пк=0,01110101
A*B = (9)*(13) = 117 = 11101012
3.2 Сомножители разных знаков (А<0, B>0)
A =-9=-10012, Апк = 1,1001, Адк = 1,0111
B =13= 11012, Впк = 0,1101, Вдк = 0,1101
3.2.1 Определим знак произведения: 1 + 0 = 1
3.2.2 Перемножим модули сомножителей:
Таблица 2
Множимое | Множитель | Сумматор | Пояснения |
0,1101 | 0,0111 | 0,00000000 0,11010000 0,11010000 | Сложение |
0,01101000 | Сдвиг | ||
0,0011 | 0,01101000 0,11010000 1,00111000 | Сложение | |
0,10011100 | Сдвиг | ||
0,0001 | 0,10011100 0,11010000 1,01101100 | Сложение | |
0,10110110 | Сдвиг | ||
0,0000 | 0,01011011 | Сдвиг |
Получили псевдопроизведение: 0,01011011
3.2.3 Произведём коррекцию (прибавим к псевдопроизведению Вдк):
0,01011011
Вдк= 0,00110000
0,10001011
3.2.4 Присвоение произведению знака:
(A*B)дк=1,10001011
(A*B)пк=1,01110101
A*B = (-9)*(13) = -117 = -11101012
3.3 Сомножители разных знаков (А>0, B<0)
A = 9 = 10012, Апк = 0,1001, Адк = 0,1001
B =-13= -11012, Впк = 1,1101, Вдк = 1,0011
3.3.1 Определим знак произведения: 0 + 1 = 1
3.3.2 Перемножим модули сомножителей:
Таблица 3
Множимое | Множитель | Сумматор | Пояснения |
0,0011 | 0,1001 | 0,00000000 0,00110000 0,00110000 | Сложение |
0,00011000 | Сдвиг | ||
0,0100 | 0,00001100 | Сдвиг | |
0,0010 | 0,00000110 | Сдвиг | |
0,0001 | 0,00000110 0,00110000 0,00110110 | Сложение | |
0,00011011 | Сдвиг |
Получили псевдопроизведение: 0,00011011
3.3.3 Произведём коррекцию (прибавим к псевдопроизведению Aдк):
0,00011011
Адк= 0,01110000
0,10001011
3.3.4 Присвоение произведению знака:
(A*B)дк=1,10001011
(A*B)пк=1,01110101
A*B = (9)*(-13) = -117 = -11101012
3.4 Сомножители отрицательные (A<0, B<0)
A = -9= -10012, Апк = 1,1001, Адк = 1,0111
B =-13=-11012, Впк = 1,1101, Вдк = 0,0011
3.4.1 Определим знак произведения: 1 + 1 = 0
3.4.2 Перемножим модули сомножителей:
Таблица 4
Множитель | Множитель | Сумматор | Пояснения |
0,0011 | 0,0111 | 0,00000000 0,00110000 0,00110000 | Сложение |
0,00011000 | Сдвиг | ||
0,0011 | 0,00011000 0,00110000 0,01001000 | Сложение | |
0,00100100 | Сдвиг | ||
0,0001 | 0,00100100 0,00110000 0,01010100 | Сложение | |
0,00101010 | Сдвиг | ||
0,0000 | 0,00010101 | Сдвиг |
Получили псевдопроизведение: 0,00010101
3.4.3 Произведём коррекцию (прибавим к псевдопроизведению Bпк, а затем Aпк):
0,00010101
Впк= 0,11010000
0,11100101
Aпк= 0,10010000
0,01110101
3.4.4 Присвоение произведению знака:
(A*B)дк=0,01110101
(A*B)пк=0,01110101
A*B = (-9)*(-13) = 117 = -11101012
4 Выбор и описание структурной схемы операционного автомата (ОА)
ОА должен содержать:
- регистры RG1, RG2 для приема мантисс операндов с ШИВх;
- регистр RG3 и счетчик CT1 для приема характеристик с ШИВх;
- регистр RG4 для записи и хранения результата и частных сумм;
- комбинационные сумматоры SM;
- счетчик CT2 для подсчета тактов умножения;
- три сумматора по модулю 2 для получения обратного кода множимого и определения ПРС;
- триггер T1 для хранения знака результата;
- схему конъюнкции;
- триггер T2 для фиксации ПРС;
- усилитель-формирователь для выдачи результата на ШИВых.
Операнды поступают в операционный автомат по 32-разрядной шине ШИВх. Перед началом умножения необходимо обнулить регистр частных сумм RG4, так как именно с него поступает информация на плечо A в SM, в счетчик CT2 необходимо занести “001001”, а триггер T1 сбросить. Операнды поступают в дополнительном коде. Сначала мантисса множителя записывается в RG1 и RG2, а его характеристика в RG3 и CT1. Мантисса первого операнда преобразуется в ДК с помощью схемы сложения по модулю 2 и сумматора и заносится в RG4. Затем записываются мантисса и характеристика множимого в RG2 и CT1 соответственно. После анализа знаков операндов произведем коррекцию, если это необходимо. Если знаковый разряд множимого (p2) равен 0, то обнуляем RG4. Если знаковый разряд множителя (p1) равен 1, то в RG4 заносим информацию с плеча S сумматора. После проведения коррекции начинается процесс получения псевдопроизведения. В процессе умножения происходят сдвиги регистров RG1 и RG4, а также увеличение счетчика CT2. Кроме того производится анализ младшего разряда RG1 (p4). Если он равен 1 тогда в RG4 заносим информацию с плеча S сумматора. Получение псевдопроизведения происходит до тех пор пока 5-й разряд в счетчике CT2 не окажется равным “1”. Далее производится анализ старшего разряда мантиссы результата. Если он равен “0” – требуется нормализация. Нормализация осуществляется путем сдвига RG4 влево и уменьшеня счетчика CT1. Характеристика произведения получается обычным сложением характеристик операндов, причем старший разряд характеристики у множителя подается инверсным на плечо сумматора A. Перед выдачей результата на ШИВых содержимое RG3, T1 и информация с плеча S сумматора SM2 подается на усилитель-формирователь.
Таким образом, для выполнения операции умножения из управляющего автомата в операционный автомат необходимо подать управляющие сигналы, реализующие следующие микрооперации:
y1 - запись в RG1,
запись в RG3,
сброс T1,
занесение “001001” в CT2;
y2 - запись в RG2,
запись в CT1,
разрешить запись в T1;
y3 - обнуление RG4;
y4 - запись в RG4;
y5 - CT2:=CT2+1,
сдвинуть вправо RG1:=0.R1(RG1),
сдвинуть вправо RG4:=0.R1(RG4);
y6 - SMp=1 – подача “1” на вход переноса сумматора,
управление совокупностью схем сложения по модулю 2;
y7 - CT1:=CT1-1,
сдвиг влево RG4:=L1(RG4).0;
y8 - управление выдачей на ШИВых;
Из операционного автомата в управляющий автомат необходимо передать осведомительные сигналы о состоянии устройств операционного автомата, определяемые списком следующих логических условий.
Х - проверка наличия операндов на ШИВх,
p1 - знак операнда в RG1;
p2 - знак операнда в RG2;
p3 - проверка на наличие нулевого операнда в RG2;
p4 - проверка очередной цифры множителя;
p5 - проверка условия выхода из цикла;
p6 - проверка результата на нормализованность;
p7 - проверка условия ПРС;
Z - проверка возможности выдачи по ШИВых.
Таким образом, управляющий МПА должен вырабатывать 8 управляющих сигналов и посылать их в ОА в нужные такты машинного времени в соответствии с алгоритмом выполнения операции сложения, ориентируясь на 9 осведомительных сигналов, поступающих из ОА, структурная схема которой представлена на рисунке 1.
... покажет уровень полученных нами знаний по курсу «Прикладная теория цифровых автоматов». Задание Выполнить синтез управляющего автомата операции умножения младшими разрядами вперед со сдвигом множимого над числами в форме с фиксированной точкой в формате {1,8}в прямом коде двоичной системы счисления. Разработать микропрограмму и выполнить синтез управляющего автомата используя синхронный ...
... начинается фаза интерпретации команды. В зависимости от команды эта фаза может представлять собой, например, извлечение из памяти константы, необходимой для выполнения команды или извлечение из памяти номера регистра. В конце этой фазы процессор готов к выполнению команды. На этом начинается фаза выполнения. Фаза извлечения данных из памяти присутствует у команды занесения данных в аккумулятор, в ...
... входов для каждого триггера: МДНФ счётчика: ; ; ; . · Синтезируем счётчик. Структурную схему: Принципиальную схему: Временные диаграммы счётчика: Синтез дешифратора Мы должны получить неполный ...
... состоянии am. Рассмотренные выше абстрактные автоматы можно разделить на: 1) полностью определенные и частичные; 2) детерминированные и вероятностные; 3) синхронные и асинхронные; Полностью определенным называется абстрактный цифровой автомат, у которого функция переходов и функция выходов определены для всех пар ( ai, zj). Частичным называется абстрактный автомат, у которого функция ...
0 комментариев