Your browser does not support iframes.
Java Circuit Simulation Workaround ▾

Even after following the above instructions, loading applets may still show warning concerning “unsigned application” and “unknown publisher”. For Teahlab in particular, these warnings are due to the fact that we have opted not to pay a third party such as Verisign to sign our applets. Any warning that comes up when you try to run our applets should emphasize that our applets will always run with “limited access”, which is Oracle’s way of letting you know that teahlab doesn’t do anything on your computer except running the circuits you see: in other words, our applets are safe to run.

Sincerely,

The Teahlab Team

# THE 4-BIT ADDER SUBTRACTOR by Isai Damier (Let's connect on twitter @isaidamier )

Interactive 4 bit adder-subtractor digital logic boolean circuit.

#### Introduction

The main interactive circuit at the top of this page is an arithmetic circuit capable of performing both addition and subtraction on any two 4-bit binary numbers. The circuit has a Mode switch that allows you to choose between adding (M=0) and subtracting (M=1). To understand why this circuit works, let’s review binary addition and binary subtraction. We use 4-bit numbers in the examples because the main interactive circuit is a 4-bit adder–subtractor.

Binary addition is certainly easier than decimal addition. You just add 0s and 1s. For example to add the numbers five (0101) and six (0110) together, we just add the respective bits:

Decimal numerals Binary numerals
6
+5
0110
+0101
11   1011

For binary subtraction, we use 2’s complement to keep things simple. For instance, to perform the operation six (0110) minus five (0101), we first obtain the 2’s complement of five and then add it to six:

Step one: Getting the 2’s complement of 5

1. Flip every bit in five to get 1010.
2. Add one to 1010 to get: 1010 + 1 = 1011.
Step two: Adding the 2’s complement of 5 to 6:
1. Decimal numerals Binary numerals
6
+(-5)
0110
+1011
1   10001.

We show the carry bit in green because normally it does not count towards the result.

#### Design

Now that we have reviewed our binary addition and subtraction skills, let’s look at what the circuit is doing. If you fix your gaze on the full–adders while you play around with the input switches, you will see that no matter what operation you think you are doing, the full–adder’s job never changes: the full–adder adds up the signals that appear at its inputs. This is surely not a strange behavior. In reality, whether you are doing binary addition or binary subtraction, the last thing you always do is add the numbers (e.g. “Step two” above tells you to add).

So how does the circuit know whether you want to add or subtract? The XOR gates and the Mode switch, of course! The circuit assumes that your subtraction will always be in the form A — B. So because one input of each XOR gate is attached to the Mode switch while the other input of each XOR gate is attached to a B bit, when the Mode switch is equal to 1, the output of the XOR is the complement of B. This is because B 0 = B and B 1 = B’. In addition to going into the XOR gates, the Mode signal also goes into the carry input of the least significant full–adder (C0), which basically adds a 1 to B’ when the Mode switch is ON. Hence, when the Mode switch is equal to 1, the XOR gates and the Mode switch take the 2’s complement of B and pass it to the full–adders.

To recap, here is a brief summary of how the circuit works: When M = 0, the full–adders see A + B because B 0 = B. However, when M = 1, the full–adders see A + B’ + 1 because B 1 = B’ and C0 = M. And, yes, (B’ + 1) is the 2’s complement of B.

Although our presentation focuses on a 4–bit adder–subtractor, the circuit can be extended to any arbitrary size by simply incorporating more XOR gates and full–adders.

The following four tables show you how to use the adder-subtractor to perform different type of arithmetic operations. At the time of publication no similar breakdown exists in the literature. Hence, we advice that you pay attention to the distinctions.

Operation Note calculation
 A3 A2 A1 A0 B3 B2 B1 B0 C S3 S2 S1 S0

Operation Note calculation
• The addends A & B and the sum S are all 2’s complements.
• Ignore C & V
 A3 A2 A1 A0 B3 B2 B1 B0 S3 S2 S1 S0

Operation Note calculation
Subtraction without overflow (V=0)
• The minuend A, the subtrahend B, and the difference S are all 2’s complements.
• Ignore C
 A3 A2 A1 A0 B3 B2 B1 B0 S3 S2 S1 S0

Operation Note calculation
Subtraction with overflow (V=1) The minuend A, the subtrahend B, and the difference S are all 2’s complements.
 A3 A2 A1 A0 B3 B2 B1 B0 C S3 S2 S1 S0

### 2’s Complement Table

Binary 2’s complement Binary 2’s complement
01111 +15 10000 -16
01110 +14 10001 -15
01101 +13 10010 -14
01100 +12 10011 -13
01011 +11 10100 -12
01010 +10 10101 -11
01001 +9 10110 -10
01000 +8 10111 -9
00111 +7 11000 -8
00110 +6 11001 -7
00101 +5 11010 -6
00100 +4 11011 -5
00011 +3 11100 -4
00010 +2 11101 -3
00001 +1 11110 -2
00000 +0 11111 -1