Цифровой автомат деления двоичных чисел

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

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

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

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

Размещено на http://www.allbest.ru/

СОДЕРЖАНИЕ

  • ВВЕДЕНИЕ
  • 1. ДЕЛЕНИЕ ЧИСЕЛ НА ДСДК
  • 1.1 Выбор формата данных
  • 1.2 Числа с плавающей запятой
  • 1.3 Сумматор дополнительного кода
  • 1.4 Представление чисел в дополнительном коде
  • 2. РАЗРАБОТКА ЦИФРОВОГО АВТОМАТА
  • 2.1 Примеры деления чисел на ДСДК
  • 2.2 Алгоритм работы автомата
  • 2.3 Выбор элементов памяти
  • 3. МИНИМИЗАЦИЯ УРАВНЕНИЙ
  • 3.1 Аналитический метод
  • 3.2 Метод карт Карно
  • 3.3 Метод неопределенных коэффициентов
  • 3.4 Метод кубов
  • ВЫВОДЫ

1. ДЕЛЕНИЕ ЧИСЕЛ НА ДСДК

1.1 Выбор формата данных

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

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

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

Таким образом, простота арифметических и логических действий, минимум используемого оборудования для представления чисел и наиболее удобные условия реализации только двух устойчивых состояний определили применение двоичных систем счисления практически во всех существующих и проектируемых цифровых вычислительных машинах[3].

1.2 Числа с плавающей запятой

До 80-х годов каждый производитель поддерживал собственный формат чисел с плавающей точкой. Все они отличались друг от друга. Более того, в некоторых из них арифметические действия выполнялись неправильно, поскольку арифметика с плавающей точкой имеет некоторые тонкости, которые не очевидны для среднестатистического разработчика аппаратного обеспечения. Чтобы изменить эту ситуацию, в конце 70-х годов институт IEEE учредил комиссию по стандартизации арифметики с плавающей точкой. Целью было не только дать возможность переносить данные с одного компьютера на другой, но и обеспечить разработчиков аппаратного обеспечения заведомо правильной моделью.

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

В настоящее время большинство процессоров (в том числе Intel, SPARC и JVM) содержат команды с плавающей точкой, которые соответствуют этому стандарту. В отличие от многих стандартов, ставших плодом неудачных компромиссом и мало кого устраивавших, этот стандарт неплох, причем в значительной степени благодаря тому, что его изначально разрабатывал один человек, профессор математики университета Беркли Вильям Каган (William Kahan). Старший разряд двоичного представления вещественного числа всегда кодирует знак числа. Остальная часть разбивается на две части: экспоненту и мантиссу. Если 1M<2, то такое число называется нормализованным. При хранении нормализованных чисел сопроцессор отбрасывает целую часть мантиссы (она всегда 1), сохраняя лишь дробную часть. Экспонента кодируется со сдвигом на половину разрядной сетки, таким образом, удается избежать вопроса о кодировании знака экспоненты.

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

Преимущество использования представления чисел в формате с плавающей запятой над представлением в формате с фиксированной запятой (и целыми числами) состоит в том, что можно использовать существенно больший диапазон значений при неизменной относительной точности. Например, в форме с фиксированной запятой число, занимающее 8 разрядов в целой части и 2 разряда после запятой, может быть представлено в виде 123456,78; 8765,43; 123,00 и так далее. В свою очередь, в формате с плавающей запятой (в тех же 8 разрядах) можно записать числа 1,2345678; 1234567,8; 0,000012345678; 12345678000000000 и так далее, но для этого необходимо двухразрядное дополнительное поле для записи показателей степени 10 от 0 до 1610, при этом общее число разрядов составит 8+2=10.

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

Нормальной формой числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) находится на полуинтервале [0; 1) (). Число с плавающей запятой, находящееся не в нормальной форме, теряет точность по сравнению с нормальной формой. Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, 0,0001 можно записать в 4 формах -- 0,0001Ч100, 0,001Ч10?1, 0,01Ч10?2, 0,1Ч10?3), поэтому распространена (особенно в информатике) также другая форма записи -- нормализованная, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10 (не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно) (). В такой форме любое число (кроме 0) записывается единственным образом. Недостаток заключается в том, что в таком виде невозможно представить 0, поэтому представление чисел в информатике предусматривает специальный признак (бит) для числа 0.

Так как старший разряд (целая часть числа) мантиссы двоичного числа (кроме 0) в нормализованном виде равен «1», то при записи мантиссы числа в эвм старший разряд можно не записывать, что и используется в стандарте IEEE 754. В позиционных системах счисления с основанием большим, чем 2 (в троичной, четверичной и др.), этого свойства нет.

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

- разрядность поля мантисс - 10 бит(7:16);

- разрядность поля порядка (Экспонента) - 6 бит(1:6);

- признак знака несет в себе 0-й бит числа - это поле будет необходимо в дальнейшем для определения знака результата[5].

1.3 Сумматор дополнительного кода

Сумматор -- устройство, преобразующее информационные сигналы (аналоговые или цифровые) в сигнал, эквивалентный сумме этих сигналов.

В своей простейшей форме сумматор имеет 4 сигнальных линии: пара входов для сигналов, представляющих одноразрядные двоичные числа "А" и "В", выход "S" (сумма "А" и "В") и сигнал переноса "M". Эта схема, которая обеспечивает складывание однобитных чисел "А" и "В", при этом "S" наименее значимый бит, "M" наиболее значимый бит, называется "полусумматор".

Задействовав дополнительную схему "ИЛИ", можно подключить две этих "половинки" вместе и создать новую схему с дополнительным входом, "m", который принимает сигнал переноса старшего бита из предыдущей схемы. Такое составление двух "полусумматоров" даёт полный сумматор.

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

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

Двоичный одноразрядный полный сумматор является полной тринарной (трёхоперандной) двоичной логической функцией с бинарным (двухразрядным) выходом. Все три операнда и оба выходных разряда однобитные.

Может быть построена как тринарная (трёхоперандная) двоичная функция с бинарным выходом, но, для уменьшения аппаратных затрат, обычно строится трёхступенчатым, состоящим из трёх узлов: двух полусумматоров, которые являются полными бинарными (двухоперандными) двоичными логическими функциями с унарным выходом и логического элемента «2ИЛИ»[2].

1.4 Представление чисел в дополнительном коде

Дополнительный код -- наиболее распространённый способ представления отрицательных целых чисел в компьютерах. Он позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и беззнаковых чисел, чем упрощает архитектуру ЭВМ. Дополнительный код отрицательного числа можно получить инвертированием модуля двоичного числа (первое дополнение) и прибавлением к инверсии единицы (второе дополнение). Либо вычитанием числа из нуля. Дополнительный код (дополнение до 2) двоичного числа получается добавлением 1 к младшему значащему разряду его дополнения до 1.

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

Преобразование числа из прямого кода в дополнительный осуществляется по следующему алгоритму.

Если число, записанное в прямом коде, положительное, то к нему дописывается старший (знаковый) разряд, равный 0, и на этом преобразование заканчивается;

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

Пример. Преобразуем отрицательное число ?7, записанное в прямом коде, в дополнительный. Прямой код числа ?7, взятого по модулю:111

Инвертируем все разряды числа, получая таким образом обратный код: 000

Добавим к результату 1:001

Допишем слева знаковый единичный разряд 1001

Для обратного преобразования используется тот же алгоритм. А именно:1001

Инвертируем все разряды числа, получая таким образом обратный код: 0110

Добавим к результату 1 и проверим, сложив с дополнительным кодом

0111 + 1001 = 10000, пятый разряд выбрасывается[1].

2. РАЗРАБОТКА ЦИФРОВОГО АВТОМАТА

2.1 Примеры деления чисел на ДСДК

Пример 1.

A = 65; B = -13

A= 1000001 Am=00.1000001000.00.0111

B = 1101, Bm=11.1101000000.00.0100, B доп = 11.0011000000.00.0100

Знак:

SC = SA SB = 0 1 = 1

Экпонента:

00.111

+11.100

100.011

Мантисса:

00.1000001000

+11.0011000000

11.1011001000 > 0, восстановление остатка

+00.1101000000

100.1000001000

>01.0000010000

+11.1101000000

00.1101010000 > 1

>01.1010100000

+11.0011000000

100.1101100000> 0, восстановление остатка

>01.1011000000

+00.1101000000

00.0000000000> 1

MC = 0101000000

Ответ: С = 11.1010000000.00.0011(=5)

Пример 2:

A = -39; B = 13

A=100111 An=11.1001110000.00.0110

B=1101 Bn=00.1101000000.00.0100 Bдоп=00.0011000000.00.0100

Знак:

SC = SA SB = 1 0 = 1

Экпонента:

00.1101

+11.0110

100.0101

Мантисса:

Мантисса:

00.101010000

+11.010000000

11.111010000 > 0, восстановление остатка

+00.110000000

100.101010000

>01.010100000

+ 11.010000000

100.100100000> 1

>01.001000000

+11.010000000

100.011000000> 1

>00.110000000

+11.010000000

100.000000000> 1

MC = 0111000000

Ответ: С =11.1110000000.00.0011(=7)

2.2 Алгоритм работы автомата

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

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

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

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

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

1) определение знака результата деления. Определяется взятием суммы по mod2 знаков делимого и делителя Зн(C) = Зн(A) Зн(B). Таблица истинности функции mod2 () представлена в таблице 2.1;

Таблица 2.1 - Таблица истинности функции mod2

A

0

0

1

1

B

0

1

0

1

C

0

1

1

0

2) представить делимое в прямом коде со знаком «+», делитель в прямом и дополнительном коде со знаком «-»;

3) Начиная со старших разрядов, к делимому прибавляется делитель в дополнительном коде, что равнозначно вычитанию из делимого делителя и анализируется знак промежуточного результата

4) проверить знак промежуточного результата: если знак положительный, то записать в результат 1, иначе 0 и произвести возобновление остатка -сложить промежуточный результат с делителем в прямом коде со знаком «+»;

5) если промежуточный результат равен 0, то алгоритм заканчивается, иначе продолжается с пункта №6;

6) сдвинуть делитель влево и снести следующий разряд делимого, перейти в пункт 3.

Проанализировав вышесказанное, мы можем установить алгоритм работы разрабатываемого цифрового автомата и изобразить его в виде блок-схемы (рисунок 2.1):

Рисунок 2.1 - Блок-схема алгоритма деления

Рисунок 2.2- Закодированная блок-схема

Рисунок 2.3- Граф ЦА

Таблица 2.2- Таблица переходов

Zi

Q4,Q3,Q2,Q1

Zj

Q4,Q3,Q2,Q1

X

Y

J

K

Z0

0000

Z1

0001

1

Y1,Y2,Y3, Y4,Y5,Y6

J1

-

Z1

0001

Z0

0000

X1,X2

Y7,Y8

-

K1

Z1

0001

Z2

0010

Y9

J2

K1

Z2

0010

Z3

0011

1

Y10,Y11

J1

-

Z3

0011

Z4

0100

1

Y12,Y13

J3

K2,K1

Z4

0100

Z5

0101

1

Y14

J1

-

Z5

0101

Z6

0110

X3

Y15

J2

K1

Z5

0101

Z6

0110

Y16,Y17,Y18

J2

K1

Z6

0110

Z7

0111

1

Y19,Y20

J1

-

Z7

0111

Z4

0100

-

-

K2,K1

Z7

0111

Z8

1000

X4

Y21,Y22

J4

K3,K2,K1

Z8

1000

Z9

1001

X5

-

J1

-

Z8

1000

Z9

1001

Y23

J1

-

Z9

1001

Z10

1010

X6

-

J2

K1

Z9

1001

Z10

1010

Y24

J2

K1

Z10

1010

Z11

1011

1

Y25

J1

-

Z11

1011

Z11

1011

X7

Y26,Y27

-

-

Z11

1011

Z0

0000

Y28,Y29

-

K4,K2,K1

По таблице составляем уравнения для J,K и Y.

J1=

J2=

J3= J4=

K1=

K2=

K3=

K4=

Y1=

Y2=

Y3=

Y4=

Y5=

Y6=

Y7=

Y8=

Y9=

Y10=

Y11=

Y12=

Y13=

Y14=

Y15=

Y16=

Y17=

Y18=

Y19=

Y20=

Y21=

Y22=

Y23=

Y24=

Y25=

Y26=

Y27=

Y28=

Y29=

2.3 Выбор элементов памяти

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

Триггерные схемы классифицируют по следующим признакам:

- числу целочисленных устойчивых состояний;

- принципу построения;

- функциональным возможностям;

- способу приёма логических сигналов.

По способу работы с сигналами различают асинхронные, синхронные и смешанные триггерные схемы, а также статические и динамические.

Асинхронный триггер изменяет своё состояние непосредственно в момент появления соответствующего информационного сигнала.

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

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

Динамические триггеры воспринимают информационные сигналы при изменении (перепаде) сигнала на входе С от 0 к 1 (прямой динамический С-вход) или от 1 к 0 (инверсный динамический С-вход).

Статические триггеры в свою очередь подразделяют на одноступенчатые (однотактные) и двухступенчатые (двухтактные).

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

По структурному построению -- однотактные (триггеры защёлки), двухтактные и триггеры с динамическим управлением. По способу реакции на помехи -- прозрачные и непрозрачные. Непрозрачные, в свою очередь, делятся на проницаемые и непроницаемые. По функциональному назначению -- RS, D, JK, T, RR, SS, EE, DV.

При изготовлении триггеров применяются преимущественно полупроводниковые приборы (обычно полевые транзисторы), в прошлом -- электромагнитные реле, электронные лампы. В настоящее время логические схемы, в том числе с использованием триггеров, создают в интегрированных средах разработки под различные программируемые логические интегральные схемы (ПЛИС).

Используются в основном в вычислительной технике для организации компонентов вычислительных систем: регистров, счётчиков, процессоров, ОЗУ.

По функциональным возможностям триггеры разделяют на следующие классы:

- с раздельной установкой состояния 0 и 1 (RS-триггеры). Если триггер является синхронным -- добавляется вход синхронизации C.;

- универсальные (JK-триггеры);

- с приёмом информации по одному входу D (D-триггеры, или триггеры задержки);

- со счётным входом Т (Т-триггеры).

Каждый тип триггера имеет собственную таблицу истинности. Выходное состояние триггера обычно обозначают буквой Q. Индекс возле буквы означает состояние до подачи сигнала (t) или после подачи сигнала (t+1).

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

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

JK-триггер

JK-триггер работает так же как RS-триггер, с одним лишь исключением: при подаче логической единицы на оба входа J и K состояние выхода триггера изменяется на противоположное. Вход J (от англ. Jump -- прыжок) аналогичен входу S у RS-триггера. Вход K (от англ. Kill -- убить) аналогичен входу R у RS-триггера. При подаче единицы на вход J и нуля на вход K выходное состояние триггера становится равным логической единице. А при подаче единицы на вход K и нуля на вход J выходное состояние триггера становится равным логическому нулю. JK-триггер в отличие от RS-триггера не имеет запрещённых состояний на основных входах, однако это никак не помогает при нарушении правил разработки логических схем. На практике применяются только синхронные JK-триггеры, то есть состояния основных входов J и K учитываются только в момент тактирования, например по положительному фронту импульса на входе синхронизации.

На базе JK-триггера возможно построить D-триггер или Т-триггер. Как можно видеть в таблице истинности JK-триггера, он переходит в инверсное состояние каждый раз при одновременной подаче на входы J и K логической 1. Это свойство позволяет создать на базе JK-триггера Т-триггер, объединив входы J и К[4].

J

K

Q(t)

Q(t+1)

0

0

0

0

0

0

1

1

0

1

0

0

0

1

1

0

1

0

0

1

1

0

1

1

1

1

0

1

1

1

1

0

Рисунок 2.4 - Таблица истинности JK-триггера

Рисунок 2.5 - JK-триггер

3. МИНИМИЗАЦИЯ УРАВНЕНИЙ

цифровой арифметический триггер двоичный

Y1=V(1,5,9,11,13,15)

Y2=V(4,5,6,8,10,11)

Y3=V(0,1,2,8,10,12,13,14)

3.1 Аналитический метод

Y1=

Y2=

Y3=

3.2 Метод карт Карно

3.3 Метод неопределенных коэффициентов

Y1=

Таблица 3.1-Коэффициенты функции Y1

ф-ии

Зн-е

Наборы

Невизначені коефіцієнти

x1x2x3x4

k1

k2

k3

k4

k12

k13

k14

k23

k24

k34

k123

k124

k134

k234

k1234

b0

0

0000

0

0

0

0

00

00

00

00

00

00

000

000

000

000

0000

b1

1

0001

0

0

0

1

00

00

01

00

01

01

000

001

001

001

0001

b2

0

0010

0

0

1

0

00

01

00

01

00

10

001

000

010

010

0010

b3

0

0011

0

0

1

1

00

01

01

01

01

11

001

001

011

011

0011

b4

0

0100

0

1

0

0

01

00

00

10

10

00

010

010

000

100

0100

b5

1

0101

0

1

0

1

01

00

01

10

11

01

010

011

001

101

0101

b6

0

0110

0

1

1

0

01

01

00

11

10

10

011

010

010

110

0110

b7

0

0111

0

1

1

1

01

01

01

11

11

11

011

011

011

111

0111

b8

0

1000

1

0

0

0

10

10

10

00

00

00

100

100

100

000

1000

b9

1

1001

1

0

0

1

10

10

11

00

01

01

100

101

101

001

1001

b10

0

1010

1

0

1

0

10

11

10

01

00

10

101

100

110

010

1010

b11

1

1011

1

0

1

1

10

11

11

01

01

11

101

101

111

011

1011

b12

0

1100

1

1

0

0

11

10

10

10

10

00

110

110

100

100

1100

b13

1

1101

1

1

0

1

11

10

11

10

11

01

110

111

101

101

1101

b14

0

1110

1

1

1

0

11

11

10

11

10

10

111

110

110

110

1110

b15

1

1111

1

1

1

1

11

11

11

11

11

11

111

111

111

111

1111

Y1=

Y2=

Таблица 3.2-Коэффициенты функции Y2

ф-ии

Зн-е

Наборы

Невизначені коефіцієнти

x1x2x3x4

k1

k2

k3

k4

k12

k13

k14

k23

k24

k34

k123

k124

k134

k234

k1234

b0

0

0000

0

0

0

0

00

00

00

00

00

00

000

000

000

000

0000

b1

1

0001

0

0

0

1

00

00

01

00

01

01

000

001

001

001

0001

b2

0

0010

0

0

1

0

00

01

00

01

00

10

001

000

010

010

0010

b3

0

0011

0

0

1

1

00

01

01

01

01

11

001

001

011

011

0011

b4

0

0100

0

1

0

0

01

00

00

10

10

00

010

010

000

100

0100

b5

1

0101

0

1

0

1

01

00

01

10

11

01

010

011

001

101

0101

b6

0

0110

0

1

1

0

01

01

00

11

10

10

011

010

010

110

0110

b7

0

0111

0

1

1

1

01

01

01

11

11

11

011

011

011

111

0111

b8

0

1000

1

0

0

0

10

10

10

00

00

00

100

100

100

000

1000

b9

1

1001

1

0

0

1

10

10

11

00

01

01

100

101

101

001

1001

b10

0

1010

1

0

1

0

10

11

10

01

00

10

101

100

110

010

1010

b11

1

1011

1

0

1

1

10

11

11

01

01

11

101

101

111

011

1011

b12

0

1100

1

1

0

0

11

10

10

10

10

00

110

110

100

100

1100

b13

1

1101

1

1

0

1

11

10

11

10

11

01

110

111

101

101

1101

b14

0

1110

1

1

1

0

11

11

10

11

10

10

111

110

110

110

1110

b15

1

1111

1

1

1

1

11

11

11

11

11

11

111

111

111

111

1111

Y2=

Y3=

Таблица 3.3-Коэффициенты функции Y3

ф-ии

Зн-е

Наборы

Невизначені коефіцієнти

x1x2x3x4

k1

k2

k3

k4

k12

k13

k14

k23

k24

k34

k123

k124

k134

k234

k1234

b0

0

0000

0

0

0

0

00

00

00

00

00

00

000

000

000

000

0000

b1

1

0001

0

0

0

1

00

00

01

00

01

01

000

001

001

001

0001

b2

0

0010

0

0

1

0

00

01

00

01

00

10

001

000

010

010

0010

b3

0

0011

0

0

1

1

00

01

01

01

01

11

001

001

011

011

0011

b4

0

0100

0

1

0

0

01

00

00

10

10

00

010

010

000

100

0100

b5

1

0101

0

1

0

1

01

00

01

10

11

01

010

011

001

101

0101

b6

0

0110

0

1

1

0

01

01

00

11

10

10

011

010

010

110

0110

b7

0

0111

0

1

1

1

01

01

01

11

11

11

011

011

011

111

0111

b8

0

1000

1

0

0

0

10

10

10

00

00

00

100

100

100

000

1000

b9

1

1001

1

0

0

1

10

10

11

00

01

01

100

101

101

001

1001

b10

0

1010

1

0

1

0

10

11

10

01

00

10

101

100

110

010

1010

b11

1

1011

1

0

1

1

10

11

11

01

01

11

101

101

111

011

1011

b12

0

1100

1

1

0

0

11

10

10

10

10

00

110

110

100

100

1100

b13

1

1101

1

1

0

1

11

10

11

10

11

01

110

111

101

101

1101

b14

0

1110

1

1

1

0

11

11

10

11

10

10

111

110

110

110

1110

b15

1

1111

1

1

1

1

11

11

11

11

11

11

111

111

111

111

1111

Y3=

3.4 Метод кубов

K0=

0001

K10=

0001

*

K20=

0101

*

K30=

1011

*

K40=

1111

*

0101

1001

*

1101

*

1001

1011

1101

1111

K11=

0Х01

K21=

Х101

*

K31=

1Х11

Х001

*

10Х1

*

11Х1

*

K12=

ХХ01

K22=

1ХХ1

Z=

XX01

1XX1

0001

0101

1001

1011

1101

1111

XX01

*

*

*

*

1XX1

*

*

*

*

Y1=

Y2

K0=

0100

K10=

0100

*

K20=

0101

*

K30=

1011

*

1000

1000

*

0110

*

0101

1010

*

0110

1010

1011

K11=

010X

K21=

101X

01X0

10X0

Z=

010X

01X0

10X0

101X

0100

0101

0110

1000

1010

1011

010X

*

*

01X0

*

*

10X0

*

*

101X

*

*

Y2=

Y3

K0=

0000

K00=

0000

*

K10=

0001

*

K20=

1010

*

K30=

1101

*

0001

0010

*

1100

*

1110

*

0010

1000

*

1000

1010

1100

1101

1110

K01=

000X

K11=

Х010

*

K21=

1Х10

*

00X0

*

10Х0

*

11Х0

*

X000

*

1X00

*

110X

K02=

Х0X0

K22=

1ХХ0

Z=

000X

110X

X0X0

1XX0

0000

0001

0010

1000

1010

1100

1101

1110

000X

*

*

110X

*

*

X0X0

*

*

*

*

1XX0

*

*

*

*

Y3=

Рисунок 3.1-Схемы минимизированных функций

ВЫВОДЫ

В ходе выполнения курсовой работы был спроектированный цифровой автомат, предназначенный для выполнения арифметической операции деления двоичных чисел, представленных в виде с плавающей запятой, так как преимущество использования представления чисел в формате с плавающей запятой над представлением в формате с фиксированной запятой (и целыми числами) состоит в том, что можно использовать существенно больший диапазон значений при неизменной относительной точности, на сумматоре дополнительного модифицированного кода методом восстановления остатка. Выбран тип элементов памяти управляющего автомата JK- триггер, так как JK-триггер в отличие от RS-триггера не имеет запрещённых состояний на основных входах и на базе JK-триггера возможно построить D-триггер или Т-триггер.

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [1,2 M], добавлен 24.01.2014

  • Общая характеристика и преимущество использования двоично-десятичных чисел с плавающей точкой. Разработка цифрового автомата. Функциональное назначение выводов корпуса МК51, арифметико-логического устройства, портов. Примеры деления данных чисел.

    курсовая работа [719,3 K], добавлен 12.09.2015

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

    курсовая работа [506,9 K], добавлен 26.12.2012

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

    методичка [258,6 K], добавлен 28.04.2009

  • Выполнение операции деления в ЭВМ. Умножение чисел, представленных в форме с плавающей запятой. Методы ускорения операции умножения. Матричный метод умножения. Деление чисел в машинах с плавающей запятой. Деление чисел с восстановлением остатков.

    реферат [49,4 K], добавлен 18.01.2011

  • Определение функций выходных сигналов и сигналов возбуждения. Построение функциональной схемы управляющего автомата. Способы выполнения операции умножения с фиксированной и с плавающей запятой. Получение функциональной ГСА. Кодирование состояния автомата.

    курсовая работа [60,9 K], добавлен 15.02.2011

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

    курсовая работа [119,1 K], добавлен 24.06.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.