Часть серии статей о | |||||||
Арифметико-логические схемы | |||||||
---|---|---|---|---|---|---|---|
Быстрая навигация | |||||||
Компоненты
| |||||||
See also | |||||||
В электронике вычитатель — цифровая схема , которая выполняет вычитание чисел — может быть спроектирована с использованием того же подхода, что и у сумматора . Процесс двоичного вычитания кратко описан ниже. Как и в случае с сумматором, в общем случае вычислений над многобитными числами в выполнении вычитания для каждого бита разности участвуют три бита : уменьшаемое ( ), вычитаемое ( ) и заем из предыдущей (менее значимой) позиции порядка битов ( ). Выходами являются бит разности ( ) и бит заема . Вычитатель лучше всего понять, учитывая, что вычитаемое и оба заемных бита имеют отрицательные веса, тогда как биты X и D положительные. Операция, выполняемая вычитателем, заключается в перезаписи (которая может принимать значения -2, -1, 0 или 1) в виде суммы .
где ⊕ представляет собой исключающее или .
Вычитатели обычно реализуются в двоичном сумматоре с небольшими затратами при использовании стандартной записи в дополнительном коде , предоставляя селектор сложения/вычитания для переноса и инвертируя второй операнд.
Полувычитатели могут быть спроектированы с помощью комбинационных булевых логических схем [2], как показано на рисунках 1 и 2. Полувычитатель — это комбинационная схема , которая используется для выполнения вычитания двух бит. Он имеет два входа, уменьшаемое и вычитаемое, и два выхода: разность и заимствование . Сигнал заимствования устанавливается, когда вычитателю необходимо заимствовать из следующей цифры в многоразрядном вычитании. То есть, когда . Поскольку и являются битами, тогда и только тогда, когда и . Важный момент, который стоит упомянуть, заключается в том, что схема полувычитателя в стороне реализует и не так как на схеме задано как
Это важное различие, поскольку само вычитание не является коммутативным , но бит разности вычисляется с использованием вентиля XOR , который является коммутативным.
Таблица истинности для половинного вычитателя выглядит следующим образом:
Входы | Выходы | ||
---|---|---|---|
Х | И | Д | Б из |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
Используя таблицу выше и карту Карно , находим следующие логические уравнения для и :
Следовательно, упрощенная схема полувычитания, в частности, позволяющая избежать перекрестных дорожек, а также отрицательного логического элемента, выглядит следующим образом:
X ── XOR ─┬─────── |XY|, 0, если X равен Y, 1 в противном случае ┌──┘ └──┐ Y ─┴─────── И ── заимствовать, равно 1, если Y > X, 0 в противном случае
где линии справа — это выходы, а остальные (сверху, снизу или слева) — входы.
Полный вычитатель — это комбинационная схема , которая используется для выполнения вычитания трех входных битов : уменьшаемого , вычитаемого и заема в . Полный вычитатель генерирует два выходных бита: разность и заем из . устанавливается, когда предыдущая цифра заимствуется из . Таким образом, также вычитается из , а также вычитаемое . Или в символах: . Как и полувычитатель, полный вычитатель генерирует заем из , когда ему нужно заимствовать из следующей цифры. Поскольку мы вычитаем и из , заем из должен быть сгенерирован, когда . Когда генерируется заем из , 2 добавляется к текущей цифре. (Это похоже на алгоритм вычитания в десятичной системе счисления. Вместо добавления 2 мы добавляем 10, когда заимствуем.) Следовательно, .
Таблица истинности для полного вычитателя:
Входы | Выходы | |||
---|---|---|---|---|
Х | И | Б в | Д | Б из |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
Следовательно, уравнение имеет вид: