1. Исходные данные 3 2. Разработка алгоритма умножения 5 3. Разработка структурной схемы сумматора-умножителя 1 типа 2 4. Разработка функциональных схем основных узлов 4 4.1. Логический синтез одноразрядного четверичного умножителя 4 4.2 Логический синтез одноразрядного четверичного сумматора 8 5. Синтез ОЧС на мультиплексорах 16 6. Логический синтез преобразователя множителя (ПМ) 18 Приложение 20 Схема 1 20 Схема 2 21 Схема 3 22 Схема 4 23 Литература 24
1. Исходные данные исходные сомножители: Мн = 56,59; Мт = 18,27; алгоритм умножения: А; метод умножения: умножение закодированного двоично-четверичного множимого на 2 разряда двоичного множителя одновременно в прямых кодах; коды четверичных цифр множимого для перехода к двоично-четверичной системе кодирования: 04 10, 14 00, 24 11, 34 01; (Мн) 04 00, 14 01, 24 10, 34 11; (Мт) тип синтезируемого умножителя: структурные схемы приведены для умножителя 1-го типа (ОЧУ, ОЧС, аккумулятор). Способ минимизации и логический базис для аппаратной реализации ОЧУ (Карты Карно-Вейча) и ОЧС (метод Квайна-Мак-Ласки), ОЧС реализуется на мультиплексорах. Функционально полный логический базис для схемы ОЧУ: X1X2 X1 X2 Логический базис для реализации ОЧУ:
Функционально полный логический базис для схемы ОЧС: X1 X2 Логический базис для реализации ОЧС:
Арифметические операции сложения двоично-четверичных чисел с разными знаками в дополнительных кодах и умножения на 2 разряда множителя в прямых кодах должны выполняться одним цифровым устройством, именуемым сумматор-умножитель. Учитывая то, что суммирующие узлы обязательно входят в состав умножителя, начнем синтез с разработки алгоритма умножения.
2. Разработка алгоритма умножения
Перевод сомножителей из десятичной системы счисления в четверичную: Множимое: 56| 4 Мн4 =320,211 56|14| 4 Мн2/4 = 011110,110000 0 12 3 в соответствии с заданной кодировкой множимого 2
0, 59 4 2, 36 4 1, 44 4 1, 76
Множитель:
18| 4 Мт4 =102,101 16| 4| 4 Мт2/4 = 010010,010001 2 4 1 в соответствии с заданной кодировкой множителя 0
0, 27 4 1, 08 4 0, 32 4 1, 28
Запишем сомножители в форме с плавающей запятой в прямом коде: Мн = 0, 011110110000 Рмн = 0.0001 (закодирован по заданию) +0310 Мт = 0, 010010010001 Рмт = 0.0011 (закодирован традиционно) +0310
Умножение двух чисел с плавающей запятой на 2 разряда множителя одновременно в прямых кодах сводится к сложению порядков, формированию знака произведения, преобразованию разрядов множителя согласно алгоритму и перемножению мантисс сомножителей. Порядок произведения будет равен: Рмн = 0.0001 03 Рмт = 0.0011 03 Р = 0.0011 12 Результат закодирован в соответствии с заданием на кодировку множимого. Знак произведения определяется суммой по модулю два знаков сомножителей: зн Мн зн Мт = 0 0 = 0 Для умножения мантисс необходимо предварительно преобразовать множитель. При умножении чисел в прямых кодах диада 11 (34) заменяется на триаду 101 ̅. Преобразованный множитель имеет вид: Мтп4 = 00010010010001 или Мтп2 = 0102101. Перемножение мантисс по алгоритму А приведено в таблице 1. После окончания умножения необходимо оценить погрешность вычислений. Для этого полученное произведение (Мн*Мт)4=0,100021123311 РМн*Мт = 6) приводится к нулевому порядку, а затем переводится в десятичную систему счисления: (Мн*Мт)4 = 100021,123311 (Мн*Мт)10 = 1033,4348 Результат прямого перемножения операндов дает следующее значение: Мн10 · Мт10 = 56,59 * 18,27 = 1033,8993 Абсолютная погрешность: = 1033,8993 – 1033,4348 = 0,4645 Относительная погрешность: δ=∆/(Мн∙Мт)=0,4645/1033,8993=0,00045 (δ=0,045 Эта погрешность получена за счет приближенного перевода из десятичной системы счисления в четверичную обоих сомножителей, а также за счет округления полученного результата произведения.
3. Разработка структурной схемы сумматора-умножителя 1 типа
Данное устройство состоит из семи блоков: регистр множителя — хранит множитель в дополнительном коде (комбинации 11 не исключены); преобразователь множителя (ПМ)— исключает комбинации 11 поступающие из регистра множителя на вход ОЧУ; формирователь дополнительного кода (ФДК) — формирует дополнительный код множимого, при поступлении на один из управляющих входов ФДК единичного сигнала с преобразователя множителя. Например формирование [-Мн]д , если с преобразователя множителя поступила комбинация 01; регистр множимого — хранит множимое; блок схем ОЧУ — предназначен для получения частичных произведений Мн*Мт; блок схем ОЧС — предназначен для суммирования частичного произведения и частичной суммы результата; регистр результата — хранит результат операций вычисления. Если устройство работает как сумматор, то оба слагаемых последовательно (за 2 такта) заносятся в регистр множимого, а на управляющий вход ФДК F2 и на вход h ОЧУ поступает «1». При поступлении «1» на вход h, ОЧУ не выполняет операцию умножения, а передает без изменения на выход поступившее слагаемое. На выходах ФДК формируется дополнительный код первого операнда с учетом знака. Сумма хранится в регистре результата. Если устройство работает как сумматор, никаких сдвигов содержимого регистров не производится. Если устройство работает как умножитель, то множимое и множитель помещаются в соответствующие регистры, а на управляющий вход ФДК F2 и вход h ОЧУ поступает «0». Диада множителя поступает на входы ПМ. ПМ исключает из множителя диады 11, заменив их на триады 10 . В случае образования единицы переноса в старшую диаду множителя. Если текущая диада 11, то она преобразуется в 0 на выход 1 ПМ поступает единица, которая впоследствии будет добавлена в старшую диаду множителя при ее преобразовании. Выход 2 ПМ переходит в единичное состояние. Далее этот единичный сигнал поступает на вход F1 ФДК и на выходах ФДК формируется дополнительный код множимого с обратным знаком (умножение на -1). Принцип работы ФДК в зависимости от управляющих сигналов приведен ниже. Сигналы на входах ФДК Результат на выходах ФДК F1 F2 0 0 Дополнительный код множимого 0 1 Дополнительный код слагаемого 1 0 Меняется знак Мн 1 1 Меняется знак слагаемого
На выходах 3,4 ПМ формируются диады преобразованного множителя, которые поступают на входы ОЧУ вместе с диадами множимого. На выходах ОЧУ формируется результат умножения диад Мн * Мт Максимальной цифрой в диаде преобразованного множителя является двойка, поэтому перенос, формируемый ОЧУ, может быть только двоичным: 3*2=12.Затем в ОЧС складываются сигналы с выходов ОЧУ с сигналами переноса из младшего разряда. С ОЧС сигналы поступают в регистр аккумулятор. В регистре множителя в конце каждого такта умножения содержимое сдвигается на два двоичных разряда, и в последнем такте умножения регистр обнуляется.
4. Разработка функциональных схем основных узлов
4.1. Логический синтез одноразрядного четверичного умножителя ОЧУ - это комбинационное устройство, имеющее 5 входов и 3 выхода: 2 разряда из регистра Мн, преобразованные в ФДК; 2 разряда из регистра Мт, преобразованные в ПМ; управляющий вход h. Разряды множителя закодированы в обыкновенной двоичной с/с: 0 - 00; 1 - 01; 2 - 10; 3 - 11. Разряды множимого закодированы в соответствии с заданием: 0 - 10; 1 - 01; 2 - 00; 3 - 11. Управляющий вход h определяет тип операции: 0 - умножение закодированных цифр, поступивших на информационные входы ОЧУ. 1 - вывод на выходы без изменения значения разрядов, поступивших из регистра множимого. Принцип работы ОЧУ описывается с помощью таблицы истинности (таблица №2). В таблице выделено 8 безразличных набора, т.к. на входы ОЧУ из разрядов множителя не может поступить код 11. Проведём минимизацию переключательных функций картами Карно-Вейча. Для проведения минимизации переключательных функций необходимо выделить те наборы переменных, где функция принимает единичное значение. Также необходимо включить и все безразличные наборы, то есть наборы, которые не могут прийти на вход схемы ОЧУ.
Y1 1 1 1 0 0 1 1 1 Х Х Х Х Х Х Х Х Y2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
X2 h h
Минимизировав функцию, получим:
Р1 = (X_2 ) ̅+(Y_1 ) ̅+h Эффективность минимизации можно оценить отношением числа входов схем, реализующих переключательную функцию до и после минимизации: К=(5+2*5+2)/12=1,42
Минимизация функции P3 картами Карно: Y1 Y2 h X1X2 000 001 011 010 110 111 101 100 00 1 0 0 0 X X 0 1 01 1 0 0 0 X X 0 1 11 1 1 1 1 X X 1 1
10 1 1 1 1 X X 1 1
P3 = X ̅_(1 ) Y ̅_(2 ) h ̅+X_1 Эффективность минимизации: К=(5+16*5+16)/12=8,42
Минимизация функции P4 картами Карно: Y1 Y2 h X1X2 000 001 011 010 110 111 101 100 00 X 1 01 1 1 1 X X 1 1 11 1 1 1 X X 1 1 10 X X
P4= X_2 h+X_2 Y_2 h ̅+X_2 Y_1 (Y_2 ) ̅h ̅+X ̅_1 X ̅_2 Y_1 Y ̅_2 h ̅ Эффективность минимизации: К=(5+10*5+10)/32=2,03
Термы, на которых функция не определена и которые склеились между собой, обозначены серым. Функция на этих наборах переменных должна быть доопределена как имеющая нулевые значения и, следовательно, из дальнейшего рассмотрения должны быть исключены эти импликанты. Далее формируем новые группы кубов в зависимости от положения свободной координаты и сравниваем их внутри каждой группы. К11 К12 К13 К14 К15 *1001 01*01 010*0 0100* 010*1 011*1 110*1
*1001 01*01 010** 0100* 01**1 *10*1
К21 = {*1001, 01*01, 010**, 01**1, *10*1, 0100*} Строим импликантную таблицу. Формирование минимального покрытия сводится к выявлению обязательных простых импликант и построению на их основе тупиковых форм.
Fmin = {010**, 01**1, *10*1} Fmin = (А_1 ) ̅А_2 (В_1 ) ̅+(А_1 ) ̅А_2 р+А_2 (В_1 ) ̅р Эффективность минимизации: К=(5+4*5+4)/14=2,07 Минимизация выхода S1. Заменим все конституенты единицы их двоичными номерами (в скобках термы, на которых функция не определена): K = {00000, (00011), 00101, (00111), 01000, (01010), 01101, (01111), 10001, (10011), 10100, (10110), (11010), (11011), 11100, (11110)} Выполним разбиение комплекса К на группы. Признаком образования i - й группы является количество единиц в двоичном номере конституенты единицы.
Номер группы Двоичные номера конституент единицы 0 00000 1 01000 2 (00011), 00101, (01010), 10001, 10100 3 (00111), 01101, (10011), (10110), (11010), 11100 4 (01111), (11011), (11110) Попарно сравним соседние по номеру группы.
Термы, на которых функция не определена и которые склеились между собой, обозначены серым. Функция на этих наборах переменных должна быть доопределена как имеющая нулевые значения и, следовательно, из дальнейшего рассмотрения должны быть исключены эти импликанты. Далее формируем новые группы кубов в зависимости от положения свободной координаты и сравниваем их внутри каждой группы.
Термы, на которых функция не определена и которые склеились между собой, обозначены серым. Функция на этих наборах переменных должна быть доопределена как имеющая нулевые значения и, следовательно, из дальнейшего рассмотрения должны быть исключены эти импликанты. Далее формируем новые группы кубов в зависимости от положения свободной координаты и сравниваем их внутри каждой группы. К11 К13 К15 *0001 00*01 0000* *1100 11*00 1110*
Все первичные импликанты являются существенными. Fmin = {*0001, *1100, 00*01, 11*00, 0000*, 1110*} Fmin = А ̅_2 В ̅_1 В ̅_2 р+А_2 В_1 В ̅_2 р ̅+А ̅_1 А ̅_2 В ̅_2 р+ А_1 А_2 В ̅_2 р ̅+ А ̅_1 А ̅_2 В ̅_1 В ̅_2+ А_1 А_2 В_1 (В_2 ) ̅ Эффективность минимизации: К=(5+8*5+8)/35=1,51 Преобразуем П, S1, S2 к заданному логическому базису: П = (((А_1 ) ̅А_2 (В_1 ) ̅ ) ̅* ((А_1 ) ̅А_2 р) ̅* (А_2 (В_1 ) ̅р) ̅ ) ̅ S1 = ((А ̅_1 В ̅_1 В ̅_2 р ̅ ) ̅*((А_1 ) ̅В_1 р) ̅*(А_1 В_1 р ̅ ) ̅*(А_1 (А_2 ) ̅ (В_1 ) ̅р) ̅ ) ̅ S2 = ((А ̅_2 В ̅_1 В ̅_2 р) ̅*(А_2 В_1 В ̅_2 р ̅ ) ̅*(А ̅_1 А ̅_2 В ̅_2 р) ̅* (А_1 А_2 В ̅_2 р ̅ ) ̅* (А ̅_1 А ̅_2 В ̅_1 В ̅_2 ) ̅* (А_1 А_2 В_1 (В_2 ) ̅ ) ̅ ) ̅ Построение функциональной схемы ОЧУ состоит из объединения функциональных схем для каждого выхода. Построенная схема – схема 2.
5. Синтез ОЧС на мультиплексорах Для получения и минимизации переключательных функций, которые формируют сигналы, подаваемые на информационные входы мультиплексора, используется следующая таблица:
Мультиплексор для переключательной функции пяти переменных представлен на схеме 3. 6. Логический синтез преобразователя множителя (ПМ) Преобразователь множителя служит для исключения из множителя диады 11, заменяя ее на триаду 101 ̅.
A2p A1 00 01 11 10 0 1 1 1 М = А_1 (А_2 ) ̅р+ А_1 А_2 р ̅
Запишем функции в заданном базисе: П = A_1 p+A_1 A_2 p ̅=(A_1 p+A_1 A_2 p ̅ ) ̅ ̅=((A_1 p) ̅*(A_1 A_2 p ̅ ) ̅ ) ̅ S1 = (А_1 ) ̅А_2 р+А_1 (А_2 р) ̅=((А_1 ) ̅А_2 р+А_1 (А_2 р) ̅ ) ̅ ̅=(((А_1 ) ̅А_2 р) ̅*(А_1 (А_2 р) ̅ ) ̅ ) ̅ S2 = (А_2 ) ̅р+А_2 р ̅=((А_2 ) ̅р+А_2 р ̅ ) ̅ ̅=(((А_2 ) ̅р) ̅*(А_2 р ̅ ) ̅ ) ̅ М = А_1 (А_2 ) ̅р+ А_1 А_2 р ̅=(А_1 (А_2 ) ̅р+ А_1 А_2 р ̅ ) ̅ ̅=((А_1 (А_2 ) ̅р) ̅* (А_1 А_2 р ̅ ) ̅ ) ̅ Реализация ПМ представлена на схеме 4.
Приложение Схема 1 Функциональная схема ОЧУ
Схема 2 Функциональная схема ОЧС
Схема 3 Мультиплексор
Схема 4 Переключатель множителя
Литература
Савельев А.Я. Арифметические и логические основы цифровых автоматов. – М.: Высшая школа, 1980. Цифровые интегральные микросхемы: Справ./М. И. Богданович, И. Н. Грель, В. А. Прохоренко, В. В. Шалимо. – Мн.: Беларусь, 1991. Методические указания к курсовой работе по курсу “Прикладная теория цифровых автоматов” для специальности “Электронные вычислительные ситемы”. /Соcт: И. И. Обросов, А. А. Шостак, А. П. Синявский. – Мн.: МРТИ, 1986. Методические указания к курсовому проекту по курсу “Арифметические и логические основы вычислительной техники” для студентов специальности ”Вычислительные машины, системы и сети”. /Сост.: Лукъянова И.В. и др. - Мн.: БГУИР, 2001.