Часть серии статей о | |||||||
Арифметико-логические схемы | |||||||
---|---|---|---|---|---|---|---|
Быстрая навигация | |||||||
Компоненты
| |||||||
Смотрите также | |||||||
В цифровых схемах сумматор -вычитатель — это схема, способная складывать или вычитать числа (в частности, двоичные ). Ниже представлена схема, которая складывает или вычитает в зависимости от управляющего сигнала. Также возможно построить схему, которая выполняет и сложение, и вычитание одновременно. [1]
Имея n- битный сумматор для A и B , тогда S = A + B. Затем предположим, что числа находятся в дополнительном коде . Тогда для выполнения B − A теория дополнительного кода гласит, что нужно инвертировать каждый бит A с помощью вентиля НЕ, а затем добавить единицу. Это дает S = B + A + 1 , что легко сделать с помощью слегка модифицированного сумматора.
Предваряя каждый входной бит A на сумматоре мультиплексором 2 к 1 , где:
который имеет управляющий вход D , который также подключен к начальному переносу, то модифицированный сумматор выполняет
Это работает, потому что когда D = 1, вход A в сумматор на самом деле равен A , а перенос равен 1. Добавление B к A и 1 дает желаемое вычитание B − A.
Один из способов обозначить число A как положительное или отрицательное без использования мультиплексора для каждого бита — использовать вентиль XOR перед каждым битом.
Это создает ту же таблицу истинности для бита, поступающего на сумматор, что и решение мультиплексора, поскольку выходной сигнал вентиля XOR будет тем же, что и входной бит, когда D = 0 , и инвертированным входным битом, когда D = 1 .
Сумматоры являются частью ядра арифметико-логического устройства (АЛУ). Блок управления решает, какие операции должно выполнять АЛУ (на основе выполняемого кода операции ) и задает операцию АЛУ. Вход D в сумматор-вычитатель выше будет одной из таких линий управления от блока управления.
Сумматор-вычитатель выше можно легко расширить, включив больше функций. Например, можно ввести мультиплексор 2-в-1 на каждом B i , который будет переключаться между нулем и B i ; это можно использовать (в сочетании с D = 1 ) для получения дополнения до двух для A , поскольку − A = A + 1 .
Следующим шагом будет изменение мультиплекса 2-к-1 на A на 4-к-1 с третьим входом, равным нулю, а затем повторение этого на B i , что даст следующие выходные функции:
Добавив больше логики перед сумматором, можно превратить один сумматор в нечто большее, чем просто сумматор — в АЛУ .