Сумматор–вычитатель

В цифровых схемах сумматор -вычитатель — это схема, способная складывать или вычитать числа (в частности, двоичные ). Ниже представлена ​​схема, которая складывает или вычитает в зависимости от управляющего сигнала. Также возможно построить схему, которая выполняет и сложение, и вычитание одновременно. [1]

Строительство

4-битный сумматор-вычитатель с последовательным переносом, основанный на 4-битном сумматоре, который выполняет дополнение до двух для A, когда D = 1 , получая S = BA.

Имея n- битный сумматор для A и B , тогда S = A + B. Затем предположим, что числа находятся в дополнительном коде . Тогда для выполнения BA теория дополнительного кода гласит, что нужно инвертировать каждый бит A с помощью вентиля НЕ, а затем добавить единицу. Это дает S = B + A + 1 , что легко сделать с помощью слегка модифицированного сумматора.

Предваряя каждый входной бит A на сумматоре мультиплексором 2 к 1 , где:

  • Вход 0 ( I 0 ) — это A
  • Вход 1 ( I 1 ) — это A

который имеет управляющий вход D , который также подключен к начальному переносу, то модифицированный сумматор выполняет

  • сложение, когда D = 0 , или
  • вычитание при D = 1 .

Это работает, потому что когда D = 1, вход A в сумматор на самом деле равен A , а перенос равен 1. Добавление B к A и 1 дает желаемое вычитание BA.

Один из способов обозначить число A как положительное или отрицательное без использования мультиплексора для каждого бита — использовать вентиль XOR перед каждым битом.

  • Первый вход вентиля XOR — это фактический входной бит
  • Вторым входом для каждого вентиля XOR является управляющий вход D.

Это создает ту же таблицу истинности для бита, поступающего на сумматор, что и решение мультиплексора, поскольку выходной сигнал вентиля 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 , что даст следующие выходные функции:

  • 0 (при этом входы A i и B i установлены на ноль, а D = 0 )
  • 1 (при этом входы A i и B i установлены на ноль, а D = 1 )
  • A (при входе B i, установленном на ноль)
  • B (при входе A i, установленном на ноль)
  • A + 1 (при этом вход B i установлен на ноль, а D = 1 )
  • B + 1 (при этом вход A i установлен на ноль, а D = 1 )
  • А + Б
  • АБ
  • БА
  • A (где A i установлен на инвертирование; B i установлен на ноль; и D = 0 )
  • A (при этом A i установлен на инвертирование; B i установлен на ноль; и D = 1 )
  • B (при этом B i установлен на инвертирование; A i установлен на ноль; и D = 0 )
  • B (при этом B i установлен на инвертирование; A i установлен на ноль; и D = 1 )

Добавив больше логики перед сумматором, можно превратить один сумматор в нечто большее, чем просто сумматор — в АЛУ .

Смотрите также

Ссылки

  1. ^ Teja, Ravi (2021-04-21). "Двоичный сумматор и вычитатель". Electronics Hub . Получено 2022-06-01 .
Взято с "https://en.wikipedia.org/w/index.php?title=Сложение–вычитание&oldid=1226089977"