Проект блока АЛУ для умножения двух положительных двоичных чисел

Автор работы: Пользователь скрыл имя, 02 Декабря 2015 в 19:39, курсовая работа

Краткое описание

Фон Нейман-создатель Арифметико-логического устройства отмечал, что АЛУ необходимо для компьютера, поскольку оно гарантирует, что компьютер будет способен выполнять базовые математические операции включая сложение, вычитание, умножение и деление.

Целью данной работы является спроектировать блок АЛУ для умножения двух положительных двоичных чисел.

Прикрепленные файлы: 1 файл

Арифме́тико2.docx

— 273.41 Кб (Скачать документ)

ОГЛАВЛЕНИЕ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

 

Фон Нейман-создатель Арифметико-логического устройства отмечал, что АЛУ необходимо для компьютера, поскольку оно гарантирует, что компьютер будет способен выполнять базовые математические операции включая сложение, вычитание, умножение и деление.

 

Целью данной работы является спроектировать блок АЛУ для умножения двух положительных двоичных чисел.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.1Описание алгоритма вычисления.

 

Арифметико-логические устройства (АЛУ) служат для выполнения арифметических и логических преобразований над словами называемыми в этом случае операндами. Операндами могут быть двоичные числа с фиксированной запятой (дробные и целые) двоичные (или шестнадцатеричные) числа с плавающей запятой десятичные целые числа команды или отдельные их поля логические коды алфавитно-цифровые поля. Операнды могут иметь постоянную или переменную длину.

Выполняемые в АЛУ операции можно разделить на группы:

- операции двоичной арифметики  для чисел с фиксированной  запятой;

- операции двоичной арифметики  для чисел с плавающей запятой;

- операции десятичной  арифметики;

- операции индексной арифметики;

- операции специальной  арифметики;

- операции над логическими  кодами (логические операции);

- операции над алфавитно-цифровыми  полями.

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

Можно привести следующую классификацию АЛУ.

По способу действия над операндами АЛУ делятся на последовательные и параллельные. В последовательных АЛУ операнды представляются в последовательном коде а операции производятся последовательно во времени над их отдельными разрядами. В параллельных АЛУ операнды представляются параллельным кодом и операции совершаются параллельно во времени над всеми разрядами операндов.

По способу представления чисел различают АЛУ:

- для чисел с фиксированной  запятой;

- для чисел с плавающей  запятой;

- для десятичных чисел.

АЛУ для чисел с фиксированной запятой в свою очередь делятся на АЛУ с дробными и АЛУ с целыми числами.

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

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

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

Проектирование АЛУ включает выбор кодов для представления данных определение алгоритмов выполнения отдельных операций структур операционных блоков и реализуемых в них наборов микроопераций. Затем производят объединение отдельных операционных блоков и соответствующих наборов микроопераций в один многофункциональный операционный блок или несколько блоков для отдельных групп операций. Стремление обеспечить возможность эффективного объединения операционных блоков отдельных операций влияет на выбор их структур.

 

1.2Разработка структурной схемы

 

Заданный алгоритм целочисленного умножения двоичных чисел начиная с младших разрядов при неподвижном множимом и сдвиге суммы частичных произведений вправо представлен на рис.1. В начале происходит проверка младшего разряда множителя Y если он равен 1 то к старшей половине RgY прибавляется множитель X а затем происходит сдвиг содержимого регистра RgY вправо на один разряд.

 

Рисунок 1.Алгоритм умножения с неподвижным множимым и сдвигом суммы частичных произведений вправо.

 
При нулевом младшем разряде суммирование не производится а происходит лишь сдвиг. Далее счетчик разрядов уменьшается на единицу. Описанная последовательность действий повторяется до тех пор пока счетчик разрядов не станет равным нулю. После этого переменная Z (сумма частичных произведений) становится результатом вычисления - произведением.

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

Пусть X = 10011101 Y = 00111001 X´Y = Z

N такта

Y H

Y L

J

1

0 0 0 0 0 0 0 0

0 0 1 1 1 0 0 1

0

2

1 0 0 1 1 1 0 1

0 0 1 1 1 0 0 1

0

3

0 1 0 0 1 1 1 0

1 0 0 1 1 1 0 0

1

4

0 1 0 0 1 1 1 0

1 0 0 1 1 1 0 0

1

5

0 0 1 0 0 1 1 1

0 1 0 0 1 1 1 0

2

6

0 0 1 0 0 1 1 1

0 1 0 0 1 1 1 0

2

7

0 0 0 1 0 0 1 1

1 0 1 0 0 1 1 1

3

8

1 0 1 1 0 0 0 0

1 0 1 0 0 1 1 1

3

9

0 1 0 1 1 0 0 0

0 1 0 1 0 0 1 1

4

10

1 1 1 1 0 1 0 1

0 1 0 1 0 0 1 1

4

11

0 1 1 1 1 0 1 0

1 0 1 0 1 0 0 1

5

12

0 0 0 1 0 1 1 1

1 0 1 0 1 0 0 1

5

13

1 0 0 0 1 0 1 1

1 1 0 1 0 1 0 0

6

14

1 0 0 0 1 0 1 1

1 1 0 1 0 1 0 0

6

15

0 1 0 0 0 1 0 1

1 1 1 0 1 0 1 0

7

16

0 1 0 0 0 1 0 1

1 1 1 0 1 0 1 0

7

17

0 0 1 0 0 0 1 0

1 1 1 1 0 1 0 1

0

       

18

0 0 1 0 0 0 1 0

1 1 1 1 0 1 0 1

0

       

 

 

 

Результат произведения Z = 0010001011110101 . Полученный результат нетрудно проверить. В десятичной системе будем иметь Х = 157 Y = 57. Тогда результат в десятичной системе будет равен Z = 8949. Таким образом чтобы умножить два восьмиразрядных числа необходимо произвести восемь раз сложение и восемь раз сдвиг.

Разрабатываемое АЛУ будет иметь восьмиразрядный вход данных X восьмиразрядный вход данных Y шестнадцатиразрядный выход результата Z вход начала вычисления START выход готовности результата READY вход принудительного сброса R и тактовый вход C (рис.2.1).

 

Рисунок 1.2 Условное графическое изображение АЛУ.

 

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

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

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

В этой схеме множитель Y и результат Z хранятся в одном сдвиговом 16-ти разрядном регистре RgY. Регистры RgХ и RgY имеют как прямые так и инверсные выходы что позволяет уменьшить количество элементов в сумматоре.

Рисунок 1.2 Структурная схема АЛУ для умножения двоичных чисел.

 

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

Синтез сумматора.

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

Таблица истинности полного двоичного сумматора приведена в табл.3.1 где а и b - слагаемые S - сумма P - перенос из предыдущего разряда. Рn – перенос в следующий разряд.

Таблица 3.1

а

B

P

S

Рn

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

1

1

1

1

1

1


 

 

Полученные выражения приводим к заданной элементной базе:

По полученным выражениям строим схему полного сумматора.

 

Рисунок 1.3 Принципиальная схема полного сумматора.

 

Нулевой разряд сумматора для экономии элементов построим по схеме полусумматора. Таблица истинности полусумматора представлена в табл.3.2.

Таблица 3.2

А

B

S

Ро

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1


 

По таблице истинности получаем логические выражения:

(3.5)

(3.6)

По полученным выражениям строим принципиальную схему (рис.1.3).

 

Рисунок 1.4 Принципиальная схема полусумматора.

 

Потребляемую схемой мощность найдем по формуле:

. (3.7)

где N – количество логических элементов в схеме;

– мощность потребляемая одним элементом.

Количество элементов в схеме равно 83 а мощность элемента –  . Подставляя данные в формулу (3.7) получим:

.

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

(3.8)

где  – время срабатывания одного логического элемента;

– максимальный путь (количество последовательно пройденных элементов) формирования переноса в i-ом разряде;

– максимальный путь формирования результата в старшем разряде (3 элемента).

Время срабатывания равно 4 . Пути   для сумматора (разряды 1 – 7) и для полусумматора (разряд 0) равны трём. Тогда по формуле (3.8) получим:

.

Синтез регистров

Для хранения и сдвига множителя Y и суммы S необходим шестнадцатиразрядный регистр сдвига. Для хранения множимого понадобится один восьмиразрядный регистр RgX.

Структурная схема регистра сдвига показана на рис.3.4 из которого видно что необходимо синтезировать одну комбинационную схему. Таблица истинности для этой схемы представлена в табл. 3.3 где значение управляющего сигнала W/Sравное нулю соответствует режиму записи а равное единице - режиму сдвига на один бит вправо за такт.

 

Рисунок 1.3 Структурная схема регистра сдвига.

 

Таблица 3.3

D

Q

S

J

X

0

0

0

X

1

0

1

0

X

1

0

1

X

1

1


 

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

Рисунок 1.5 Схема управления сдвигом.

 
Принципиальная схема построенная по выражению (3.9) приведена на рис.3.5.

Восьмиразрядный регистр для хранения Х будет представлять собой восемь JK – триггеров с объединенными тактовыми входами.

Мощность потребляемую регистрами определим по формуле

(3.10)

где    – количество триггеров в регистрах RgX и RgY соответственно;

– мощность потребляемая триггером (12 мВт).

- мощность потребляемая схемой управления сдвигом (8 мВт).

Подставив численные значения в формулу (3.10) получим:

.

Время предустановки регистра равно времени предустановки триггера   а время задержки – времени задержки триггера  .

 

Синтез счётчика.

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

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

Таблица 3.4

N

Q2

Q1

Q0

D2

D1

D0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

2

0

1

0

0

1

1

3

0

1

1

1

0

0

4

1

0

0

1

0

1

5

1

0

1

1

1

0

6

1

1

0

1

1

1

7

1

1

1

0

0

0

             

Информация о работе Проект блока АЛУ для умножения двух положительных двоичных чисел