главнаяреклама на сайтезаработоксотрудничество Коллекция рефератов Otherreferats
 
 
Сколько стоит заказать работу?   Искать с помощью Google и Яндекса
 





Автомат Мура для деления двоичных чисел, представленных в форме с фиксированной запятой

Порядок перевода чисел из одного формата в другой. Правила вычисления погрешностей, возникающих при переводе чисел из одного представления в другое. Составление содержательной граф-схемы алгоритма, расчет и построение автомата Мура на заданную операцию.

Рубрика: Программирование, компьютеры и кибернетика
Вид: курсовая работа
Язык: русский
Дата добавления: 09.09.2010
Размер файла: 197,9 K

Полная информация о работе Полная информация о работе
Скачать работу можно здесь Скачать работу можно здесь

рекомендуем


Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже.

Название работы:
E-mail (не обязательно):
Ваше имя или ник:
Файл:


Cтуденты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны

Подобные работы


1. Синтез микропрограммных управляющих автоматов
Алгоритм умножения двоичных чисел. Выбор и описание структурной схемы операционного автомата. Реализация содержательной граф-схемы алгоритма. Построение отмеченной граф-схемы и структурной таблицы переходов и выходов. Правила кодирования на D-триггерах.
курсовая работа [273,2 K], добавлена 01.04.2013

2. Проектирование цифрового автомата по выполнению арифметических операций
Изучение принципа работы цифрового автомата для сложения двоичных чисел, представленных в форме с фиксированной запятой, на базисе алгебры Буля. Правила построения операционных и функциональных схем отдельных устройств, логических систем и функций.
курсовая работа [1,2 M], добавлена 24.01.2014

3. Цифровой автомат деления двоичных чисел
Проектирование цифрового автомата для выполнения арифметической операции деления двоичных чисел, алгоритм работы. Числа с плавающей запятой. Типы элементов памяти управляющего автомата JK-триггер, не имеющего запрещенных состояний на основных входах.
курсовая работа [747,4 K], добавлена 25.03.2012

4. Синтез микропрограммного управляющего автомата с жесткой логикой
Разработка функциональной схемы управляющего микропрограммного автомата. Построение графов автомата для модели Мили и Мура. Кодирование состояний для модели Мура на D-триггерах. Алгоритм умножения чисел в дополнительном коде с простой коррекцией.
курсовая работа [764,0 K], добавлена 27.08.2012

5. Разработка спецпроцессора для выполнения операции сложения чисел, представленных в формате с плавающей точкой
Разработка функциональной схемы операционного автомата микросхемы специализированного процессора, выполняющего заданную арифметическую операцию. Закодированная граф-схема машинного алгоритма. Таблица входов мультиплексора выбора осведомительного сигнала.
курсовая работа [669,9 K], добавлена 25.07.2013

6. Выполнение операций умножения и деления в ЭВМ
Выполнение операции деления в ЭВМ. Умножение чисел, представленных в форме с плавающей запятой. Методы ускорения операции умножения. Матричный метод умножения. Деление чисел в машинах с плавающей запятой. Деление чисел с восстановлением остатков.
реферат [49,4 K], добавлена 18.01.2011

7. Блок сложения двоичных чисел
Разработка алгоритма работы блока сложения дробных двоичных чисел в обратном модифицированном коде с фиксированной запятой. Определение состава узлов и управляющих сигналов блока по схеме электрической функциональной, описание его принципа работы.
реферат [415,8 K], добавлена 29.11.2010

8. Построение кодопреобразователя
Понятие и назначение дискретного (цифрового) автомата, сферы и правила его использования. Граф-дерево автомата Мура и мили, их отличительные черты. Таблица переходов с распределением неопределённостей. Представление функции возбуждения и ее минимизация.
курсовая работа [423,7 K], добавлена 11.10.2008

9. АЛУ суммирования двоичных чисел в дополнительном коде
Разработка устройства обработки и передачи информации для суммирования двоичных чисел в дополнительном коде. Разработка алгоритма выполнения операций и структурной схемы. Составление временной диаграммы управляющих сигналов, расчет быстродействия.
курсовая работа [32,0 K], добавлена 16.08.2012

10. Языки программирования высокого уровня (Ассемблер)
Битовые представления ASCII-кодов для однобитовых символов и чисел. Сложение двоичных чисел, определение двоичных дополнений. Положительные значения для отрицательных двоичных цифр, шестнадцатеричные представления. Типы сегментов, их размеры и адреса.
тест [371,9 K], добавлена 11.10.2012


Другие работы, подобные Автомат Мура для деления двоичных чисел, представленных в форме с фиксированной запятой


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное образовательное учреждение высшего профессионального образования «Чувашский государственный университет им. И.Н. Ульянова»

Факультет информатики и вычислительной техники

Кафедра «Информационно-вычислительных систем»

Дисциплина «Теория автоматов»

Курсовая работа

тема «Автомат Мура для деления двоичных чисел, представленных в форме с фиксированной запятой»

Выполнил: студент: Тимофеев Е.С.

Проверил: Малетин Т.

Чебоксары 2006

Операционные устройства ЭВМ (процессоры, каналы ввода-вывода, контроллеры, устройства управления внешними устройствами и т.п.) представляются в виде композиции операционного (ОА) и управляющего автоматов (УА).

Операционный автомат служит для выполнения действий над операндами. Управляющий автомат вырабатывает управляющие сигналы, определяющие последовательность действий операционного автомата.

Множество микроопераций, реализуемых в ОА - , возбуждаются управляющими сигналами из УА, обозначаемыми также, как и возбуждаемые микрооперации - . Каждому управляющему сигналу соответствует определенная микрооперация.

ОА также вычисляет значения логических условий, которым ставится в соответствие множество осведомительных сигналов , являющихся входными сигналами УА. УА задает порядок выполнения микрокоманд в ОА, вырабатывая последовательность управляющих сигналов в зависимости от микропрограммы и значений логических условий.

Наименование операции, которую необходимо выполнить в операционном устройстве, задается кодом операции.

Структурная схема ОА для выполнения операций над числами с фиксированной запятой - на рисунке 1.

Рис. 1

Обозначение на рисунке:

А и В - регистры операндов А и В;

СЧ - счетчик;

МА, МВ - регистры мантисс операндов А и В;

ПA и ПВ - регистра порядков операндов А В;

СМП - сумматор порядков;

СММ - сумматор мантисс.

Микрооперации, которые необходимо реализовать в каждом из устройств операционного автомата, выбираются исходя из заданного алгоритма реализации арифметической операции на заданном ОА (рисунок 1). Причем считается, что на регистрах помимо хранения информации могут быть реализованы микрооперации приема и выдачи информации с указанного разряда памяти или инверсными значениями, сдвига влево или вправо на заданное число разрядов и стирание ранее хранившейся информации. Сумматоры, кроме выполнения микроопераций, как и регистры, могут выполнять микрооперацию суммирования ранее хранившихся в них информации с содержанием одного из регистров и хранения полученного результата. Обычно в ОА используются сумматоры дополнительного или обратного кода. Тип используемого сумматора в заданном ОА -- алгебраическое сложение. Счетчик может реализовать те же микрооперации, что и регистр (кроме операции сдвига), а также суммирование содержимого счетчика с+1 или с-1.Также задан тип синтезируемого УА (для варианта 3 -- автомат Мура).

Операнды на входе ОА представлены в двоичной системе счисления (операнды: (десятичная система исчисления) А=0,51 и В=-0,16).

Форма представления: с плавающей запятой. Для порядка отводятся (=5) разрядов, а для мантиссы - 9, причем, старшие из них - знаковые (К=9). Разрядность сумматора и счетчика необходимо определить самостоятельно, исходя из алгоритма выполнения арифметической операции.

2.Введение

Как известно цифровые электронные вычислительные машины, т.е. компьютеры, предназначены для обработки цифровой информации и являются частным, но наиболее распространенным видом цифровых автоматов. Для успешного изучения общих принципов обработки цифровой информации рационально, по возможности максимально, отвлечься от реального аппаратного обеспечения компьютера и рассматривать компьютер как некоторый абстрактный цифровой автомат, предназначенный для обработки информации, представленной в цифровой форме. Знания по прикладной теории таких автоматов необходимы для успешного поиска новых принципов построения компьютеров, совершенствования уже известных алгоритмов обработки цифровой информации, грамотной эксплуатации вычислительной техники и разработки различного программного обеспечения.

Для всего этого необходимы четкие значения арифметических и логических основ цифровых автоматов, принципов анализа и синтеза этих автоматов. Все это является теоретической основой специальных инженерных дисциплин по вычислительной технике.

Определения основных понятий и терминов

Система счисления -- это совокупность приемов и правил для записи чисел цифровыми знаками.

Позиционная система счисления -- это система, в которой значение каждой цифры зависит не только от ее числового эквивалента, но и от ее места (позиции) в числе, т.е., один и тот же символ (цифра) может принимать различные значения.

Основание или базис q позиционной системы счисления -- это количество знаков или символов, используемых для изображения числа в данной системе. В частности, различают десятичную (q=10), двоичную (q=2), восьмеричную (q=8) и шестнадцатеричную (q=16)позиционные системы счисления.

Код числа -- это запись числа в некоторой системе счисления. Например, двоичный код, десятичный, восьмеричный и т.д.

Длина разрядной сетки -- число разрядов (позиций), выделяемых в компьютере для представления числа в позиционной системе счисления (в основном в двоичной системе).

Диапазон представления чисел в заданной системе счисления -- это интервал числовой оси, заключенный между максимальным и минимальным числами, значение которых зависит от длины разрядной сетки, выделенной в машине для представления чисел.

Машинное (автоматное) изображение числа -- это представление числа в разрядной сетке компьютера.

Форма представления двоичных чисел в компьютере. Различают две основные формы представления: с фиксированной запятой (точкой) и с плавающей запятой.

Плавающая запятая (точка) -- машинная форма представления вещественных чисел. Разрядная сетка, выделенная для представления числа в этой форме, разбивается на три части: старший разряд обычно выделяется под знак числа, следующие разрядов под порядок (или характеристику) числа (p), остальная часть разрядной сетки предназначена для представления модуля мантиссы числа (m).

Нормализованное число -- число в форме с плавающей запятой, модуль мантиссы m которого удовлетворяет следующему неравенству:

0.12 ? ?m?<1.

Абсолютная погрешность представления -- это разность между истинным значением входной величины A и ее значением, полученным из машинного изображения Aм, т.е.. ?[A] = ?A - Aм?

Относительная погрешность представления равна: ?[A] = ??[A]/Aм?.

3.Алгоритм выполнения заданной арифметической операции

3.1 Словесное описание алгоритма

Деление двоичных чисел, представленных в форме с фиксированной запятой.

Деление двоичных чисел во многом аналогично делению десятичных чисел.

В универсальных вычислительных машинах, как правило, реализуется "школьный" алгоритм деления чисел. "Школьный" алгоритм деления заключается в том, что делитель на каждом шаге вычитается из делимого столько раз (начиная со старших разрядов), сколько это возможно для получения наименьшего положительного остатка. Тогда в очередной разряд частного записывается цифра, равная числу делителей, содержащихся в делимом на данном шаге. Иначе говоря, при делении операцию вычитания повторяют до тех пор, пока уменьшаемое не станет меньше вычитаемого. Число этих повторений показывает, сколько раз вычитаемое укладывается в уменьшаемом.

Например:

разделим число 35 на 7 :

1) 35 - 7 = 28, 2) 28 - 7 = 21, 3) 21 - 7 = 14, 4) 14 - 7 = 7, 5) 7 - 7 = 0.

Ответ равен 5, т.к. процедура вычитания была повторена 5 раз.

Рассмотрим еще один пример:

разделим 204(10) на 12(10), т.е. 11001100(2):1100(2):

делимое 11001100 | 1100 - делитель

делитель 1100 | 10001

остаток 00001

- 0

11

- 0

110

- 0

1100

- 1100

0000

Двоичное, как и десятичное деление, начинается с анализа делимого (11001100) и делителя (1100). Сразу же обнаруживается, что делитель укладывается в 1100, а поэтому записывается 1 в старший разряд поля частного. Умножается делитель на 1 и вычитается из 1100, разность равна 0. Объединяется 0 остатка со значением следующего разряда делимого, равным 1. Поскольку делитель (1100) 0 раз укладывается в 1, записываем 0 в следующий по старшинству разряд поля частного, а число 1 объединяется со следующим разрядом делимого и т.д. до тех пор, пока делимое не оказывается исчерпанным.

Конечно компьютер не может строить догадок относительно того, сколько раз делитель укладывается в том или ином числе, поэтому весь процесс деления сводится к операциям вычитания и сдвига. Продемонстрируем на том же примере, но сначала делитель (1100) представим в дополнительном коде, что позволит ограничиться сложением во всех случаях, когда нужно выполнять сложение или вычитание: 1100пр = 1. 0100д. Частное формируется в некотором регистре С, незаполненные разряды которого будем обозначать через Х.

Начинаем вычитать делитель из делимого. Если остаток получается положительным, то в разряд частного записывается 1, в противном случае - 0.

0. 11001100 делимое 204

+ 1. 01000000 делитель 12

0. 00001100 первый остаток

Первый (старший) бит частного равен 1, т.к. остаток получился положительным: С = 1ХХХХ. Далее сдвигается первый остаток на один разряд влево и из него вычитывается делитель:

0. 00011000

+ 1. 01000000

1. 01011000 второй остаток

Остаток отрицательный, поэтому в следующий разряд частного записывается 0, С = 10ХХХ. Кроме того необходимо биты делителя вернуть обратно первому остатку, т.е. сложить делитель (в прямом коде) и второй остаток:

1. 01011000

+ 0. 11000000

0. 00011000 сдвинутый первый остаток.

Далее еще раз сдвигается сдвинутый первый остаток на один разряд влево и вычитается из него делитель:

0. 00110000

+ 1. 01000000

1. 01110000 третий остаток

Третий остаток отрицательный, значит следующий (третий) разряд частного равен 0, С = 100ХХ. Поэтому возвращаем делитель третьему остатку,

1. 01110000

+ 0. 11000000

0. 00110000 дважды сдвинутый первый остаток

Сдвигаем дважды сдвинутый первый остаток на один разряд влево и вычитаем делитель:

0. 01100000

1. 01000000

1. 10100000 четвертый остаток

Четвертый остаток опять отрицательный, поэтому С = 1000Х. Прибавляем делитель к четвертому остатку, результат сдвигаем на один разряд влево, а затем вновь вычитаем делитель:

0. 1100000 первый остаток после четвертого сдвига

+ 1. 0100000

0. 0000000 пятый остаток

Остаток положительный, значит С = 10001 = 17(10) - это и есть ответ.

Такой метод деления называется делением с восстановлением остатка.

Деление чисел, представленных в форме с фиксированной запятой можно также осуществить на двоичных сумматорах обратного и дополнительного кода.

Перед выполнением самой процедуры деления чисел в формате с фиксированной запятой определяется и запоминается знак частного. Далее оба операнда представляются в прямом коде, а делитель еще и в дополнительном для того, чтобы вычитание делителя заменить сложением, и выполняется сама процедура деления по описанному выше методу с обязательным контролем переполнения разрядной сетки. Если знак частного отрицательный, то ответ, при необходимости, представляется в дополнительном коде.

Например: разделим 35 на 5. 3510 = 0.1000112, 510 = 1012, 5д = 1.011д
(в регистре С, как и в предыдущем примере, формируется частное):

0.100011

+ 1.011000

1.111011 С = 0 восстанавливаем остаток до делимого.

+ 0.101000

0.100011 сдвигаем влево остаток.

1.00011

+ 1.01100

0.01111 С = 01, сдвигаем влево остаток.

0.1111

+ 1.0110

0.0101 С = 011, сдвигаем остаток.

0.101

+ 1.011

0.000 С = 0111 = 710

Вычитание делимого продолжают столько раз, сколько разрядов отведено для частного.

3.2 Реализация алгоритма на примере

Заданы операнды А и В, в десятичной системе счисления(А=0,51 и В=-0,16), представим их в двоичной системе счисления в форме с плавающей запятой.

А=0,51 В=-0,16

Разделим целые и дробные части чисел

0 и 0,51 -0 и 0,16

010=02 -010=02

Теперь переведем из десятичной формы счисления в двоичную дробные части чисел:

1 разряда занят, 1 разряд занят,

Заполним оставшиеся 8 заполним оставшиеся 8

0,51*2=1,02 1 0,16*2=0,32 0

0,02*2=0,04 0 0,32*2=0,64 0

0,08*2=0,16 0 0,64*2=1,28 1

0,32*2=0,64 0 0,28*2=0,56 0

0,64*2=1,28 1 0,56*2=1,12 1

0,28*2=0,56 0 0,12*2=0,24 0

0,56*2=1,12 1 0,24*2=0,48 0

0,12*2=0,24 0 0,48*2=0,96 0

0,5110=100010102 0,1610=010101112

0,5110=0|1,00010102 -0,1610=1|0,001010002

Выравнивание порядков операндов не требуется.

На примере полученных машинных изображений операндов А=0|1,0001010 и В=1|0010,1000 продемонстрируем все этапы реализации алгоритма заданной операции: операции деления с восстановлением остатка.

В результате операции получим: 1|110 ( -3 в десятичной) и остаток 0|0,0000011 ( 0,03 в десятичной)

3.3 Определение погрешностей представления операндов в разрядной сетке ОА и погрешности выполнения заданной организации

Как уже отмечалось, представление числовой информации в цифровом автомате, как правило, влечет за собой появление погрешностей (ошибок), величина которых зависит как от формы представления чисел, так и от длины разрядной сетки цифровой автомата, т.е. компьютера. Следовательно, при переводе чисел из одной системы счисления в другую неизбежно возникают погрешности.

На основе заданных операндов А=0|1,0001010 и В=1|0,0101000 определим погрешности выполнения операции, реализуемой на выбранном ОА по разработанному алгоритму.

Необходимо определить следующие виды погрешностей:

абсолютную и относительную погрешности представления данных в разрядной сетке по формулам:

, ,

где [A] - машинное изображение числа;

[A]=1000,1010 =1*2-1+1*2-5+1*2-7=0,5390625

[B]= 00101000 =1*2-3+1*2-5=0,1562

А=А-[A]=0,0290625

B=B-[B]=0,0038

A=А/[A]= 0,0290625/0,51=0,056

B=B/[B]= 0,0038/0,16=0,02375

абсолютную и относительную погрешности выполнения самой операции. Для операции сложения абсолютная погрешность

(A/B)= 0,0328625

а относительная -

= (A+B)=0,043+0,0056=0,0486

4. Построение микропрограммы реализации заданной арифметической операции на заданном ОА

В соответствии с алгоритмом выполнения заданной операции разрабатывается микропрограмма, которая представляется в виде содержательной граф-схемы.

ГСА строится с использованием вершины четырёх типов:

ѕ начальная вершина обозначает начало алгоритма;

ѕ конечная вершина обозначает конец микропрограммы;

ѕ операторная вершина обозначает одну микропрограмму, то есть совокупность микроопераций, выполняемых параллельно в одном такте машинного времени;

ѕ условная вершина используется для разветвления вычислительного процесса в одном из двух направлений, выбор которого определяется значением логического уровня, указанного в вершине.

Содержательная граф-схема алгоритма должна удовлетворять всем условиям, предъявляемым к ГСА.

Структуру типичного арифметического устройства, выполняющего операции над числами с фиксированной запятой, можно представить следующим образом:

Регистр SR

Накапливающий сумматор АС

В устройство входят:

ѕ накапливающий сумматор АС, включающий:

ѕ накапливающий регистр АС и параллельный сумматор ?;

ѕ запоминающий регистр SR;

ѕ регистр множителя-частного MQ;

ѕ n-разрядный вспомогательный регистр сдвига LR;

ѕ 6-разрядный регистр RG;

ѕ счетчик сдвигов SC;

ѕ двухбитовый регистр кода процедуры OPCODE;

ѕ однобитовые регистры: SI, Т, ADOV, DVOV.

Все однобитовые регистры, т.е. триггера, чаще всего объединяются в один статусный регистр.

На рис. узел управления арифметическим устройством не показан. Этот узел управляет передачей содержимого из одного регистра в другой, управляет всеми арифметическими и логическими процедурами над содержимым этих регистров, анализирует всю статусную информацию. Он может быть реализован чисто аппаратно, или же функционировать под управлением соответствующих микропрограмм.

В n-разрядных регистрах AC, SR, MQ старший, n-ый, разряд S выделен под знак числа. Остальные n - 1 разряды этих регистров отведены для представления значения числа и обозначаются как AC(M), SR(M), MQ(M). Разряд AC(Q) используется в одном из алгоритмов деления.

В зависимости от структуры регистров АС и MQ можно прямой код содержимого этих регистров преобразовывать в дополнительный или же в обратный код и выполнять также соответствующую обратную процедуру. При вычитании содержимого регистра SR из содержимого регистра АС вычитаемое может представляться в дополнительном коде непосредственно на входах параллельного сумматора ?. В младшем разряде сумматора на SM вместо сигнала Pi-1 поступает сигнал "Вычитание", если алгебраическое сложение выполняется в дополнительном коде. Таким образм, параллельный сумматор такой конфигурации позволяет выполнять не только процедуру сложения, но и процедуру вычитания из содержимого регистра АС содержимое регистра SR без предварительного представления последнего в дополнительном коде.

Регистры АС и MQ объединены в один так называемый "касрегистр" для процедуры совместного сдвига их содержимого вправо или влево. Сдвигается содержимое всех разрядов, кроме знакового, т.е. разряды AC(M) и MQ(M). Причем, таким образом, чтобы при каждом таком сдвиге содержимое очередного младшего, 0-го, разряда АС(М) попадало в старший, (n -1)-ый разряд MQ(M) и наоборот. Процедуры сдвига используются при умножении и делении.

Регистры ADOV и DVOV сигнализируют о состоянии переполнения при выполнении операций сложения или умножения и деления соответственно. В регистр OPCODE заносится код, по которому определяется какую процедуру необходимо выполнить: сложение, вычитание, умножение или деление.

Деление.

При делении делимое находится в регистре AC, а делитель в SR. Результат деления получается в регистре MQ. Процедура деления состоит из следующих частей:

ѕ инициализации;

ѕ вычитания порядков, т.е. характеристик;

ѕ деления мантисс;

ѕ нормализации результата.

Во время инициализации выполняются следующие процедуры.

1. 0 ? MQ.

2. Если AC(S) = SR(S), то 0? MQ(S), иначе 1 ? MQ(S).

3. Если SR(FR) = 0= то 1 ? DVOV и конец процедуры деления, иначе переход к следующему пункту.

4. Если AC(FR) = 0= то 0 ? MQ, 0 ? FC и конец процедуры деления, иначе переход к вычитанию характеристик и делению мантисс.

Процедура вычитания характеристик заключается в следующем.

1. AC(QCH, CH) = [AC(QCH, CH)] _ [SR(CH)] + l, т.е. к результату добавляется смещение, если оперируют характеристиками, а не порядками.

Сперва выполняется процедура AC(QCH, CH) = [AC(QCH, CH)]_[SR(CH)], потом [L] ? SR(CH) далее AC(QCH, CH) := [AC(QCH, CH)] + [SR(CH)].

Содержимое SR(CH) переводится в дополнительный код прямо на входе накапливающего сумматора AC.

2. Если [AC(QCH, CH)] < 0, то 1 ? CHUN и процедура деления заканчивается, иначе переход к делению мантисс.

Деление мантисс выполняется по одному из алгоритмов деления чисел с фикированной запятой, только с той разницей, что в этом случае исключается процедура выравнивания левых краев и поэтому в счетчик SC загружается число, равное числу разрядов, выделенных под мантиссу операндов. В процедуре деления мантисс используются субрегистры SR(FR), MQ(FR) и касрегистр {AC(QFR, FR) - MQ(FR)}. Результат деления мантисс получается в субрегистре MQ(FR), а остаток - в субрегистре AC(QFR, FR).

Граф-схема процедуры деления приведена на рис. 3а.

После деления мантисс выполняется процедура нормализации частного по следующему алгоритму (рис. 3б).

1. Выполняется процедура [AC(CH)] ? MQ(CH).

2. Если старший разряд (m) субрегистра MQ(FR) не содержит единицы, то выполняется сдвиг влево на один разряд содержимого касрегистра по линии связи 2 и одновременно процедура MQ(CH):=[MQ(CH)]_1. Если [m] = 1=, то конец нормализации.

Эти процедуры выполняются до тех пор пока не выполнятся условия [m] = 1 или [MQ(CH)] = -1. В последнем случае засылается единица в CHUN и процедура деления прекращается.

Таким образом результат деления и в этом случае формируется в регистре MQ.[AC] / [SR] ? MQ

C:= A / B или MQ := {AC-MQ} / [SR], остаток в АС

Алгоритм деления операндов с фиксированной запятой с восстановлением остатка.

5. Построение граф-схемы алгоритма (ГСА)

Граф-схема алгоритма строится по содержательной ГСА следующим образом:

ѕ в каждой условной вершине записывается один из множества осведомительных сигналов , то есть из множества логических условий. В различных условных вершинах можно записывать одинаковые элементы хi. сигнал «Пуск» в отличие от сигналов Х, поступающих с ОА на УА, обозначается буквой В;

ѕ в каждой операторной вершине записываются операторы из - множества микроопераций. Можно записывать в различных операторных вершинах одинаковые элементы множества Y.

Рис. 6 Граф-схема алгоритма операции деления

6. Синтез микропрограммного автомата по ГСА

На основе ГСА синтезируется микропрограммный автомат Мура .

При использовании графов для заданий автомата с большим числом состояний и переходов теряется наглядность, поэтому при выполнении курсовой работы удобнее пользоваться структурной таблицей автомата.

6.1 Определение числа элементов памяти и кодирование состояний автомата

В получившейся граф-схеме присутствует 22 элемента (18 исходных состояний). Произведем кодирование состояний:

6.2 Построение графа или структурной таблицы микропрограммного автомата

Структурная таблица автомата является расширением таблицы переходов за счет появления трех новых столбцов: коды исходного состояния am коды состояний перехода (as) и функции возбуждения, вырабатываемые на переходе (am, as).

Кодировать состояния автомата можно двоичными кодами минимальной длины:

где N - длина кода состояния (число триггеров);

M - число состояний автомата.

Каждому состоянию автомата ставится в соответствие код, отличный от кодов всех других состояний.

Для упрощения комбинационной схемы автомата кодирование состояний при синтезе на D-триггере целесообразно выполнять по следующему алгоритму:

ѕ каждому состоянию автомата am ставится в соответствие число am, равное числу переходов в состояние am;

ѕ числа KI,…,Km упорядочиваются по убыванию;

ѕ состояние ai с наибольшим Ki кодируется набором 00…0;

ѕ следующие N состояний (N - число элементов памяти), упорядоченные в п. б), кодируются наборами 00…0I, 00…I0,…,I0…00;

ѕ для кодирования следующих N из (M-N-I) состояний используются все коды, содержащие 2 единицы, затем 3 и т.д., пока все состояния не будут закодированы.

При использовании в качестве элемента памяти D-триггера построение функций возбуждения выполняется достаточно просто, поскольку таблица функций возбуждения полностью совпадает с таблицей переходов автомата. Код состояния, в которое осуществляется переход, совпадает с сигналами, поступившими на входы элементов памяти. Поэтому единичное значение функции возбуждения Di триггера Ti ставится в той строке структурной таблицы, которая соответствует переходу этого триггера в единичное состояние.

Кодирование состояний для других типов триггеров можно производить произвольным образом, так как алгоритмы оптимального кодирования для них довольно сложны.

По структурной таблице записываются аналитические выражения для функций выходов и возбуждения.

Структурная таблица микропрограммного автомата Мура для операции алгебраического деления чисел с фиксированной запятой выглядит так:

Таблица 1

Исходное состояние

Код

Состояние перехода

Код

Входной сигнал на переходе

Выходной сигнал

Функции возбуждения

аm

am

as

as

X(am, as)

Y(am)

F(am, as)

a1

00000

a2

00001

Y1Y2

D1

a3

00010

Y1Y3

D2

a3

00010

a4

00011

Y3Y4

D1

a5

00100

Y3Y4

D2

a5

00100

a6

00101

Y5Y6

D1

a8

00111

Y5Y8

D2

a9

01000

Y5Y9

D3

a6

00101

a11

01010

Y6Y7Y11

D1

a7

00110

a7

00110

__

D1

a9

01000

a9

01000

__

D1

a10

01001

Y9Y10

D2

a11

01010

a12

01011

Y11Y12

D1

a13

01100

Y11Y13

D2

a14

01101

Y11Y14

D3

a14

01101

a15

01110

Y14Y15

D1

a16

01111

Y14Y16

D2

a18

10001

Y14Y18

D3

a16

01111

a17

10000

Y16Y17

D1

a19

10010

a20

10011

Y19Y20

D1

a20

10011

a19

10010

Y20Y19

D1

a21

10100

Y20Y21

D2

D1=Y1Y2+Y3Y4+Y5Y6+Y6Y7Y11+Y11Y12+Y14Y15+Y16Y17+Y19Y20+Y20Y19=Y1Y2+Y3Y4+Y5Y6+Y6Y7Y11+Y11Y12+Y14Y15+Y16Y17+Y19Y20; D2=Y1Y3+Y3Y4+Y5Y8+Y9Y10+Y11Y13+Y14Y16+Y20Y21;

D3=Y5Y9+Y11Y14+Y14Y18;

7. Заключение

По окончании курсовой работы, мною были приобретены дополнительные знания по переводу чисел из одного формата в другой. Были изучены правила вычисления погрешностей возникающих при переводе чисел из одного представления в другое. Были получены новые знания по построению содержательной граф-схемы алгоритма, а так же просто граф-схемы. Было подробно изучено построение автомата Мура на заданную операцию.

8. Литература

1. Майоров С.А., Новиков Г.И. Принципы организации цифровых машин. -- Л.: Машиностроение, 1974. -- 432с.

2. Григорьев В.А. Программное обеспечение микропроцессорных систем. -- М.: Энерогоатом / издат., 1983 --208с.

3. Балашов Е.П., Пузанков Д.В. Микропроцессоры и микропроцессорные системы. -- М.: Радио и связь, 1891 -- 326с.

4. (ОСНОВНАЯ) Методические указания предоставленные преподавателем.


Скачать работу можно здесь Скачать работу "Автомат Мура для деления двоичных чисел, представленных в форме с фиксированной запятой" можно здесь
Сколько стоит?

Рекомендуем!

база знанийглобальная сеть рефератов