Цифровой автомат деления двоичных чисел
Проектирование цифрового автомата для выполнения арифметической операции деления двоичных чисел, алгоритм работы. Числа с плавающей запятой. Типы элементов памяти управляющего автомата 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b1 |
1 |
0001 |
|
|
|
|
|
|
|
|
|
01 |
|
|
001 |
001 |
0001 |
|
b2 |
0 |
0010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b3 |
0 |
0011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b4 |
0 |
0100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b5 |
1 |
0101 |
|
|
|
|
|
|
|
|
|
01 |
|
|
001 |
101 |
0101 |
|
b6 |
0 |
0110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b7 |
0 |
0111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b8 |
0 |
1000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b9 |
1 |
1001 |
|
|
|
|
|
|
11 |
|
|
01 |
|
101 |
101 |
001 |
1001 |
|
b10 |
0 |
1010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b11 |
1 |
1011 |
|
|
|
|
|
|
11 |
|
|
|
|
101 |
111 |
|
1011 |
|
b12 |
0 |
1100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b13 |
1 |
1101 |
|
|
|
|
|
|
11 |
|
|
01 |
|
111 |
101 |
101 |
1101 |
|
b14 |
0 |
1110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b15 |
1 |
1111 |
|
|
|
|
|
|
11 |
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b1 |
1 |
0001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b2 |
0 |
0010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b3 |
0 |
0011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b4 |
0 |
0100 |
|
|
|
|
|
|
|
|
|
|
010 |
010 |
|
|
0100 |
|
b5 |
1 |
0101 |
|
|
|
|
|
|
|
|
|
|
010 |
|
|
|
0101 |
|
b6 |
0 |
0110 |
|
|
|
|
|
|
|
|
|
|
|
010 |
|
|
0110 |
|
b7 |
0 |
0111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b8 |
0 |
1000 |
|
|
|
|
|
|
|
|
|
|
|
100 |
|
|
1000 |
|
b9 |
1 |
1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b10 |
0 |
1010 |
|
|
|
|
|
|
|
|
|
|
101 |
100 |
|
|
1010 |
|
b11 |
1 |
1011 |
|
|
|
|
|
|
|
|
|
|
101 |
|
|
|
1011 |
|
b12 |
0 |
1100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b13 |
1 |
1101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b14 |
0 |
1110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b15 |
1 |
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 |
|
|
|
|
|
|
|
|
00 |
|
000 |
000 |
|
000 |
0000 |
|
b1 |
1 |
0001 |
|
|
|
|
|
|
|
|
|
|
000 |
|
|
|
0001 |
|
b2 |
0 |
0010 |
|
|
|
|
|
|
|
|
00 |
|
|
000 |
|
010 |
0010 |
|
b3 |
0 |
0011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b4 |
0 |
0100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b5 |
1 |
0101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b6 |
0 |
0110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b7 |
0 |
0111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b8 |
0 |
1000 |
|
|
|
|
|
|
10 |
|
00 |
|
|
100 |
100 |
000 |
1000 |
|
b9 |
1 |
1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b10 |
0 |
1010 |
|
|
|
|
|
|
10 |
|
00 |
|
|
100 |
110 |
010 |
1010 |
|
b11 |
1 |
1011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b12 |
0 |
1100 |
|
|
|
|
|
|
10 |
|
|
|
110 |
110 |
100 |
|
1100 |
|
b13 |
1 |
1101 |
|
|
|
|
|
|
|
|
|
|
110 |
|
|
|
1101 |
|
b14 |
0 |
1110 |
|
|
|
|
|
|
10 |
|
|
|
|
110 |
110 |
|
1110 |
|
b15 |
1 |
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Разработка функциональной схемы управляющего микропрограммного автомата. Построение графов автомата для модели Мили и Мура. Кодирование состояний для модели Мура на D-триггерах. Алгоритм умножения чисел в дополнительном коде с простой коррекцией.
курсовая работа [764,0 K], добавлен 27.08.2012Микропрограммный автомат, управляющий выполнением умножения чисел в двоичной системе счисления с плавающей запятой с характеристикой вторым способом в дополнительном коде с автоматической коррекцией, в основном логическом базисе; разрядность операндов.
курсовая работа [136,9 K], добавлен 25.03.2012Построим содержательные графы выполнения трёх команд языка Ассемблера. Команда умножения двоичных чисел без знака mul. Команда преобразования типов cwde. Логическая команда xor. Синтез канонического автомата. Синтез М-автомата. Управляющие сигналы.
реферат [35,7 K], добавлен 18.11.2004