Вычитатель

Схема, выполняющая вычитание

В электронике вычитатель — цифровая схема , которая выполняет вычитание чисел — может быть спроектирована с использованием того же подхода, что и у сумматора . Процесс двоичного вычитания кратко описан ниже. Как и в случае с сумматором, в общем случае вычислений над многобитными числами в выполнении вычитания для каждого бита разности участвуют три бита : уменьшаемое ( ), вычитаемое ( ) и заем из предыдущей (менее значимой) позиции порядка битов ( ). Выходами являются бит разности ( ) и бит заема . Вычитатель лучше всего понять, учитывая, что вычитаемое и оба заемных бита имеют отрицательные веса, тогда как биты X и D положительные. Операция, выполняемая вычитателем, заключается в перезаписи (которая может принимать значения -2, -1, 0 или 1) в виде суммы . X i {\displaystyle X_{i}} Y i {\displaystyle Y_{i}} B i {\displaystyle B_{i}} D i {\displaystyle D_{i}} B i + 1 {\displaystyle B_{i+1}} X i Y i B i {\displaystyle X_{i}-Y_{i}-B_{i}} 2 B i + 1 + D i {\displaystyle -2B_{i+1}+D_{i}}

D i = X Y i B i {\displaystyle D_{i}=X_{}\oplus Y_{i}\oplus B_{i}}
B i + 1 = X i < ( Y i + B i ) {\displaystyle B_{i+1}=X_{i}<(Y_{i}+B_{i})} ,

где ⊕ представляет собой исключающее или .

Вычитатели обычно реализуются в двоичном сумматоре с небольшими затратами при использовании стандартной записи в дополнительном коде , предоставляя селектор сложения/вычитания для переноса и инвертируя второй операнд.

B = B ¯ + 1 {\displaystyle -B={\bar {B}}+1} (определение дополнительного кода)
A B = A + ( B ) = A + B ¯ + 1 {\displaystyle {\begin{alignedat}{2}A-B&=A+(-B)\\&=A+{\bar {B}}+1\\\end{alignedat}}}

Вычитатель половины

Рисунок 1: Логическая схема полувычитателя

Полувычитатели могут быть спроектированы с помощью комбинационных булевых логических схем [2], как показано на рисунках 1 и 2. Полувычитатель — это комбинационная схема , которая используется для выполнения вычитания двух бит. Он имеет два входа, уменьшаемое и вычитаемое, и два выхода: разность и заимствование . Сигнал заимствования устанавливается, когда вычитателю необходимо заимствовать из следующей цифры в многоразрядном вычитании. То есть, когда . Поскольку и являются битами, тогда и только тогда, когда и . Важный момент, который стоит упомянуть, заключается в том, что схема полувычитателя в стороне реализует и не так как на схеме задано как X {\displaystyle X} Y {\displaystyle Y} D {\displaystyle D} B out {\displaystyle B_{\text{out}}} B out = 1 {\displaystyle B_{\text{out}}=1} X < Y {\displaystyle X<Y} X {\displaystyle X} Y {\displaystyle Y} B out = 1 {\displaystyle B_{\text{out}}=1} X = 0 {\displaystyle X=0} Y = 1 {\displaystyle Y=1} X Y {\displaystyle X-Y} Y X {\displaystyle Y-X} B out {\displaystyle B_{\text{out}}}

B out = X ¯ Y {\displaystyle B_{\text{out}}={\overline {X}}\cdot Y} .

Это важное различие, поскольку само вычитание не является коммутативным , но бит разности вычисляется с использованием вентиля XOR , который является коммутативным. D {\displaystyle D}

Полувычитатель, использующий только вентиль NAND.
Рисунок 2: Полувычитатель, использующий только вентиль NAND.

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

ВходыВыходы
ХИДБ из
0000
0111
1010
1100

Используя таблицу выше и карту Карно , находим следующие логические уравнения для и : D {\displaystyle D} B out {\displaystyle B_{\text{out}}}

D = X Y {\displaystyle D=X\oplus Y}
B out = X ¯ Y {\displaystyle B_{\text{out}}={\overline {X}}\cdot Y} .

Следовательно, упрощенная схема полувычитания, в частности, позволяющая избежать перекрестных дорожек, а также отрицательного логического элемента, выглядит следующим образом:

 X ── XOR ─┬─────── |XY|, 0, если X равен Y, 1 в противном случае ┌──┘ └──┐  Y ─┴─────── И ── заимствовать, равно 1, если Y > X, 0 в противном случае

где линии справа — это выходы, а остальные (сверху, снизу или слева) — входы.

Полный вычитатель

Полный вычитатель — это комбинационная схема , которая используется для выполнения вычитания трех входных битов : уменьшаемого , вычитаемого и заема в . Полный вычитатель генерирует два выходных бита: разность и заем из . устанавливается, когда предыдущая цифра заимствуется из . Таким образом, также вычитается из , а также вычитаемое . Или в символах: . Как и полувычитатель, полный вычитатель генерирует заем из , когда ему нужно заимствовать из следующей цифры. Поскольку мы вычитаем и из , заем из должен быть сгенерирован, когда . Когда генерируется заем из , 2 добавляется к текущей цифре. (Это похоже на алгоритм вычитания в десятичной системе счисления. Вместо добавления 2 мы добавляем 10, когда заимствуем.) Следовательно, . X {\displaystyle X} Y {\displaystyle Y} B in {\displaystyle B_{\text{in}}} D {\displaystyle D} B out {\displaystyle B_{\text{out}}} B in {\displaystyle B_{\text{in}}} X {\displaystyle X} B in {\displaystyle B_{\text{in}}} X {\displaystyle X} Y {\displaystyle Y} X Y B in {\displaystyle X-Y-B_{\text{in}}} Y {\displaystyle Y} B in {\displaystyle B_{\text{in}}} X {\displaystyle X} X < Y + B in {\displaystyle X<Y+B_{\text{in}}} D = X Y B in + 2 B out {\displaystyle D=X-Y-B_{\text{in}}+2B_{\text{out}}}

Таблица истинности для полного вычитателя:

ВходыВыходы
ХИБ вДБ из
00000
00111
01011
01101
10010
10100
11000
11111

Следовательно, уравнение имеет вид:

D = X Y B i n {\displaystyle D=X\oplus Y\oplus B_{in}}

B o u t = X ¯ B i n + X ¯ Y + Y B i n {\displaystyle B_{out}={\bar {X}}B_{in}+{\bar {X}}Y+YB_{in}}

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

Ссылки

  1. Основы цифровой электроники Элайджи Мванги
  2. Белтран, А.А., Нонес, К., Салангуит, Р.Л., Сантос, Дж.Б., Сантос, Дж.М. и Дизон, К.Дж. (2021). Маломощный полусумматор/вычитатель на основе затвора NAND с использованием технологии КМОП.
  • Двоичное сложение или вычитание N-бит с использованием одной схемы.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Subtractor&oldid=1190932818"