Министерство образования Республики Беларусь Учреждение образования Белорусский государственный университет информатики и радиоэлектроники Кафедра электронных вычислительных машин
Пояснительная записка к курсовой работе по дисциплине «Арифметические и логические основы вычислительной техники» Тема: Разработка сумматора-умножителя
Выполнил: Студент гр. 400541 Горностай Н.Ю.
Проверила: Лукьянова И.В.
Минск 2016 Исходные данные: Исходные сомножители: = 28,69; = 21,59; Алгоритм умножения: Г; Метод умножения: умножение закодированного двоично-четверичного множимого на 2 разряда двоичного множителя одновременно в дополнительных кодах; Варианты кодирования четверичных цифр двоичными кодами: 0= 01; 1= 10; 2= 00; 3= 11; Тип синтезируемого умножителя: структурные схемы приведены для умножителя 2-го типа. Метод минимизации ОЧУ: метод Квайна-Мак-Класки Метод минимизации ОЧС: карты Карно-Вейча Логический базис для реализации ОЧУ: А4 Логический базис для реализации ОЧС: А1
Арифметические операции сложения двоично-четверичных чисел с разными знаками в дополнительных кодах и умножения на 2 разряда множителя в дополнительных кодах должны выполняться одним цифровым устройством, именуемым сумматор-умножитель. Учитывая то, что суммирующие узлы обязательно входят в состав умножителя, начнем синтез с разработки алгоритма умножения.
Разработка алгоритма умножения Перевод сомножителей из десятичной системы счисления в четверичную: Множимое: 28| 4 28|7| 4 0 4 1 3
* 2,88 4 3,52 =111,2113 =010101,10010111 Запишем сомножители в форме с плавающей запятой: Мн = 0,101101001101 Р = 0.0111 (закодирован по заданию) Мт = 0,010101100101 = 0.0011 (закодирован традиционно) Умножение двух чисел с плавающей запятой на 2 разряда множителя одновременно сводится к сложению порядков, формированию знака произведения, преобразованию разрядов множителя согласно алгоритму и перемножению мантисс сомножителей. = 0.0111 +3 = 0.0011 +3 P = 0.1010 +6 Результат закодирован в соответствии с заданием на кодировку множимого. Знак произведения определяется суммой по модулю два знаков сомножителей: зн Мн зн Мт = 0 + 0 = 0 Для умножения мантисс необходимо предварительно преобразовать множитель, чтобы исключить диаду 11 (34), заменив ее на триаду 101 и диаду 10 (24). Преобразованный множитель имеет вид: =0,112211 2Мн = 0,321120 -2Мн=3,012220 Умножение по алгоритму Г 0,000000000000 01,000000000000 0,013023000000 01,01101101001101 =Мн* 0,013023000000 01,01101101001101 0,001302300000 01,0101101101001101 = Мн* 0,020331300000 01,010001111110110101 0,000321120000 01,010101110010100001 =2Мн 0,021313020000 01,010010111011011001 3,333301222000 11,11111111011000000001 =-2Мн 0,021220302000 01,01001000000111010001 0,000001302300 01,0101010101101101001101 =Мн 0,021222210300 01,0100100000000010011101 0,000000130230 01,010101010101101101001101 = Мн 0,021223001130 01,010010000011010110101101
После окончания умножения необходимо оценить погрешность вычислений. Для этого полученное произведение = 0,021223001130, ( * 6) приводится к нулевому порядку, а затем переводится в десятичную систему счисления: = 21003,001130 = 619,4171 Результат прямого перемножения операндов дает следующее значение: = 619,0224 Абсолютная погрешность: Δ =619,4171 - 619,0224 = 0,3947 δ = 0,3947/619,0224=0,0006(0,06%) Эта погрешность получена за счет приближенного перевода из десятичной системы счисления в четверичную обоих сомножителей, а также за счет округления полученного результата произведения. Разработка структурной схемы сумматора-умножителя Структурная схема сумматора-умножителя 2-го типа для алгоритма умножения “Г” приведена на схеме 1. Если устройство работает как сумматор (на входе mul/sum – “1”), то оба слагаемых последовательно (за 2 такта) заносятся в регистр множимого, а на управляющий вход формирователя дополнительного кода (ФДК) F2 поступает «1». Следует учесть, что числа представлены в форме с плавающей запятой. Поэтому, прежде чем складывать мантиссы, необходимо выровнять порядки. В блоке порядков необходимо обеспечить сравнение порядков, используя сумматор порядков. Первое слагаемое переписывается в регистр результата под действием управляющих сигналов, поступающих на входы «h» всех ОЧУС. Если на вход «h» поступает «0», то ОЧУС перемножает разряды Мн и Мт и добавляет к полученному результату перенос из предыдущего ОЧУС. В ОЧС первое слагаемое складывается с нулем, записанным в регистре результата, и переписывается без изменений в регистр результата. На втором такте второе слагаемое из регистра множимого через цепочку ОЧУС попадает на входы ОЧС и складывается с первым слагаемым, хранящимся в регистре результата. Разрядность регистра результата должна быть на единицу больше, чем разрядность исходных слагаемых, чтобы предусмотреть возможность возникновения при суммировании переноса. Если устройство работает как умножитель (на входе mul/sum – “0”), то множимое и множитель помещаются в соответствующие регистры, а на управляющий вход ФДК F2 поступает «0». Диада множителя поступает на входы преобразователя множителя (ПМ). Задачей ПМ является преобразование диады множителя в соответствии с алгоритмом преобразования. При этом в случае образования единицы переноса в старшую диаду множителя она должна быть учтена при преобразовании этой старшей диады (выход 1 ПМ). В регистре множителя в конце каждого такта умножения содержимое сдвигается на 2 двоичных разряда, и в последнем такте умножения регистр обнуляется. Выход 2 ПМ переходит в единичное состояние, если текущая диада содержит отрицание (01). В этом случае инициализируется управляющий вход F1 формирователя дополнительного кода (ФДК), и на выходах ФДК формируется дополнительный код множимого с обратным знаком (умножение на -1). Принцип работы ФДК в зависимости от управляющих сигналов приведен в табл.1. Табл.1 Режимы работы формирователя дополнительного кода. Сигналы на входах ФДК Результат на выходах ФДК F1 F2 0 0 Дополнительный код множимого 0 1 Дополнительный код слагаемого 1 0 Меняется знак Мн 1 1 Меняется знак слагаемого
На выходах 3,4 ПМ формируются диады преобразованного множителя, которые поступают на входы ОЧУ вместе с диадами множимого. На трех выходах ОЧУС формируется результат умножения диад Мн·Мт+перенос из предыдущего ОЧУС. Максимальной цифрой в диаде преобразованного множителя является двойка, поэтому перенос, формируемый ОЧУС, может быть только двоичным: 3 · 2 = 1 2. max maх Мн Мт Это означает, что на младшие входы ОЧС никогда не поступят диады цифр, соответствующие кодам «3», следовательно, в таблице истинности работы ОЧС будут содержаться 16 безразличных входных наборов. Частичные произведения, получаемые на входах ОЧУС, складываются с накапливаемой частичной суммой из регистра результата с помощью цепочки ОЧС. Частичные суммы хранятся в регистре результата и регистре множителя. Количество тактов умножения определяется разрядностью Мт.
Разработка функциональных схем основных узлов Синтез одноразрядного четверичного умножителя ОЧУ - это комбинационное устройство, имеющее 5 входов и 3 выхода: • 2 разряда из регистра Мн, преобразованные в ФДК; • 2 разряда из регистра Мт, преобразованные в ПМ; • управляющий вход h. Разряды множителя закодированы в обыкновенной двоичной с/с: 0 - 00; 1 - 01; 2 - 10; 3 - 11.
Разряды множимого закодированы в соответствии с заданием: 0 - 01; 1 - 10; 2 - 00; 3 - 11.
Управляющий вход h определяет тип операции: 0 - умножение закодированных цифр, поступивших на информационные входы ОЧУ. 1 - вывод на выходы без изменения значения разрядов, поступивших из регистра множимого. Принцип работы ОЧУ описывается с помощью таблицы истинности
Таблица истинности ОЧУ Мн Мт Упр. Ст. разряд Мл. разряд Пример h 0 0 0 0 0 1 1 1 1 1·0=00 0 0 0 0 1 1 1 0 0 Выход - код «01» 0 0 0 1 0 1 1 0 0 1·1=01 0 0 0 1 1 1 1 0 0 Выход - код «01» 0 0 1 0 0 1 1 0 1 1·2=02 0 0 1 0 1 1 1 0 0 Выход - код «01» 0 0 1 1 0 x x x x 1·3=03 0 0 1 1 1 x x x x Выход - код «01» 0 1 0 0 0 1 1 1 1 2·0=00 0 1 0 0 1 1 1 0 1 Выход - код «02» 0 1 0 1 0 1 1 0 1 2·1=02 0 1 0 1 1 1 1 0 1 Выход - код «02» 0 1 1 0 0 0 0 1 1 2·2=10 0 1 1 0 1 1 1 0 1 Выход - код «02» 0 1 1 1 0 x x x x 2·3=12 0 1 1 1 1 x x x x Выход - код «02» 1 0 0 0 0 1 1 1 1 3·0=00 1 0 0 0 1 1 1 1 0 Выход - код «03» 1 0 0 1 0 1 1 1 0 3·1=03 1 0 0 1 1 1 1 1 0 Выход - код «03» 1 0 1 0 0 0 0 0 1 3·2=12 1 0 1 0 1 1 1 1 0 Выход - код «03» 1 0 1 1 0 x x x x 3·3=21 1 0 1 1 1 x x x x Выход - код «03» 1 1 0 0 0 1 1 1 1 0·0=00 1 1 0 0 1 1 1 1 1 Выход - код «00» 1 1 0 1 0 1 1 1 1 0·1=00 1 1 0 1 1 1 1 1 1 Выход - код «00» 1 1 1 0 0 1 1 1 1 0·2=00 1 1 1 0 1 1 1 1 1 Выход - код «00» 1 1 1 1 0 x x x x 0·3=00 1 1 1 1 1 x x x x Выход - код «00»
В таблице выделено 8 безразличных набора, т.к. на входы ОЧУ из разрядов множителя не может поступить код 11. Проведём минимизацию переключательных функций картами Карно-Вейча. Для проведения минимизации переключательных функций необходимо выделить те наборы переменных, где функция принимает единичное значение. Также необходимо включить и все безразличные наборы, то есть наборы, которые не могут прийти на вход схемы ОЧУ. Минимизация функции картами Карно:
Оценка эффективности минимизации переключательных функций Для проведения оценки эффективности минимизации переключательных функций необходимо посчитать цену схемы до минимизации и цену схемы после минимизации. Эффективность минимизации k определяется как:
Все рассчитанные данные сведены в таблицу 3 и 4 Табл 3 Эффективность минимизации ОЧС
Синтез ОЧС на основе мультиплексора Мультиплексор – это логическая схема, имеющая n входов,m управляющих входов и один выход. При этом должно выполняться равенство .На выход мультиплексора может быть пропущен без изменений любой (один) логический сигнал, поступающий на информационные входы. Порядковый номер информационного входа, значение с которого в данный момент должно быть передано на выход, должно быть передано на выход, определяется двоичным кодам на управляющих входах. Для синтеза ОЧС будем использовать мультиплексор “один из восьми” (1 из 8-ми). Входы – это информационные входы мультиплексора. Входы – управляющие входы
Мультиплексор “один из восьми” Используя таблицу истинности ОЧС, составим таблицу истинности для построения ОЧС на мультиплексорах
p П П 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 x x x 1 1 1 0 1 x x x 1 1 0 0 0 0 0 0 p 1 1 0 0 1 0 0 1 1 1 0 1 0 x x x 1 1 0 1 1 x x x 0 0 1 1 0 0 0 0 p 0 0 1 1 1 0 0 1 0 0 1 0 0 x x x 0 0 1 0 1 x x x 0 0 0 0 0 0 0 p 1 0 0 0 0 1 0 1 0 0 0 0 1 0 x x x 0 0 0 1 1 x x x 0 1 1 1 0 0 0 p 1 0 1 1 1 1 0 1 0 0 1 1 0 0 x x x 0 1 1 0 1 x x x 0 1 0 0 0 0 p 1 0 p 0 1 0 0 1 1 1 1 0 1 0 1 0 x x x 0 1 0 1 1 x x x 1 0 1 1 0 0 p 1 0 p 1 0 1 1 1 1 1 1 1 0 1 0 0 x x x 1 0 1 0 1 x x x 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 0 x x x 1 0 0 1 1 x x x Управление мультиплексором осуществляется тремя переменными: , а вход соответствующих значений функций на информационные входы обеспечивается реализацией этих функций на дополнительных логических элементах.
Минимизируем выходные функции картами Карно Минимизация функции P
00 01 11 10 0 1 1 1 1 1
Минимизация функции
00 01 11 10 0 1 1 1
Минимизация функции
00 01 11 10 0 1 1 1 1 1
Временные затраты на умножение Временные затраты на умножение сомножителей определяются в основном затратами на образование частичных произведений, получаемых на выходах ОЧС. Tу = 7*(Тсдв + Точу + 12*Точс + TФДК + Тпр. мт.), где Точс - время формирования еденицы переноса в ОЧС Точу - время умножения на одном ОЧУ Тсдв - время сдвига частичной суммы TФДК - время формирования доп. кода множимого Тпр. мн – время преобразования множителя.
Литература 1. Савельев А.Я. Прикладная теория цифровых автоматов. М.: Высшая школа, 1985. 2. Лысиков Б.Г. Арифметические и логические основы цифровых автома- тов. Мн.: Вышейшая школа, 1980. 3. Лысиков Б.Г. Цифровая вычислительная техника. Мн.: , 2003 г. 4. Луцик Ю.А., Лукьянова И.В., Ожигина М.П. – Учебное пособие по курсу "Арифметические и логические основы вычислительной техники". -Мн.: ротапринт МРТИ ,2001 г. 5. Луцик Ю.А., Лукьянова И.В.– Учебное пособие по курсу "Арифметические и логические основы вычислительной техники". -Мн.:ротапринт МРТИ ,2004 г.