Digital Arithmetic and
Arithmetic Circuits
 Signed Binary Number:
◦ A binary number of fixed length whose sign
(+/–) is represented by one bit (usually MSB)
and its magnitude by the remaining bits.
 Unsigned Binary Number:
◦ A binary number of fixed length whose sign is
not specified by a bit. All bits are magnitude
and the sign is assumed +.
2
 Sum:
◦ Result of an Addition Operation of two (or more)
binary numbers (operands).
 Carry:
◦ A digit (or bit) that is carried over to the next
most significant bit during an n-Bit addition
operation.
 The carry bit is a 1 if the result was too
large to be expressed in n bits.
3
One-Bit Unsigned Addition
4
11111
01110
10010
00000
CBAC outin





5
bitoutCarry
10100000111100
001001111010
1010111010010
1111nexttocarry1


bitoutCarry
10100000111100
001001111010
1010111010010
1111nexttocarry1


 Basic Subtraction of x = a – b, with a =
minuend, b = subtrahend, and x = difference
or result.
 Requires a Borrow Bit if a < b.
 There are other forms of subtraction such as
2’s Complement Addition used by
microprocessors (such as in a PC).
6
7
111-11
001-10
100-10
000-00
DiffBorrowin




BAB
8
10101
110101-
LSBtoripplesBorrow0111(10)10000
1010
11001001-
StageBorrow110(10)1110
 Sign Bit:
◦ A bit (usually the MSB) that indicates whether a
number is positive (= 0) or negative (= 1).
 Magnitude Bits:
◦ The bits of a signed binary number that tell how
large it is in value.
9
 True-Magnitude Form:
◦ A form of signed binary whose magnitude bits are
the TRUE binary form (not complements).
10
 1’s Complement:
◦ A form of signed binary in which negative
numbers are created by complementing all bits.
 2’s Complement:
◦ A form of signed binary in which the negative
numbers are created by complementing all the
bits and adding a 1 (1’s Complement + 1).
11
 5-Bit Numbers Negative Sign (S = 1)
 +25 = 011001 (Note sign bit (MSB) Sign =
0)
 –25 = 111001 (Same as +25 with sign = 1)
 +12 = 001100
 –12 = 101100
12
 8-Bit 1’s Complement Negative (S = 1)
 +57 = 00111001
 –57 = 11000110 (All Bits Inverted)
 +72 = 01001000
 –72 = 10110111
13
 Used in MPU (PC) Arithmetic
14
01111011
1
0110110057-
1001001157



10001011
1
0111101172-
1072


 000100
1’s complement
2’s complement
 Signed Addition Positive (S = 0)
 Similar to binary addition with a sign bit.
15
10010101
1011010075
1100000130


 Add the 1’s Complement and then Carry.
 Uses an End around carry addition
method.
16
11110000
1
111000001
65)Comps(1'1110101165)(0001010065-
0000010180)(0000010180



 Add 2’s Complement to Minuend.
ResultfromBitCarryDiscard
11110000111110101165
111110110001010065
000001010000010180




17
 If the True-Magnitude Form is used for
subtraction, the results are incorrect.
 If the result is from 1’s or 2’s Complement
and the result is negative (S = 1), the
magnitude is found by taking the
complement of the result.
18
 2’s Complement Negative Result
(65 – 80)
19
11110000)15(ResultFinal
11Add
11100000Invert
00011111
00000111C.)s(2'0000101180-
000101000001010065
10



 Range of Positive Numbers is 0 to 2n – 1 for
a number with n magnitude bits.
 Range of Negative Numbers is –1 to –2n for
a number with n magnitude bits.
 8-Bit Example:
8-Bit Number Range is –2n  x  +2n – 1
or –128 to +127
20
 Overflow:
◦ An erroneous carry into the sign bit of a signed
binary number
◦ Results from a sum or difference that is larger
than can be represented by the magnitude bits.
 Results in a False Positive or False Negative
Number.
21
 Addition of two 8-Bit Positive Numbers:
 Two positive numbers added with a result
greater than the range of +127 for 8-bit
numbers causes an overflow.
22
(False)NegativeisResult10111010
0000011096
1011010075


 Addition of two 8-Bit Negative Numbers:
 Two Negative numbers were added to
produce a False Positive Result due to
overflowing the negative range of 8-bit
numbers (0 to –127).
23
(False)PositiveisResult11110110
1111101165
0000101180


 Similar to decimal addition with a range of
digits of 0 to 9 and A to F.
 Examples:
F + 1 = 10
F + F = 1E
F + F + 1 = 1F
24
 For sums greater than 15, subtract 16 and carry 1
to the next position.
25
414FHHex
4)(15)(1)4)((
9)(12)1)(10)((
(11)(3)6)2)((
11Carry
5)(16)(20)(1(3)
9)(12)1)(10)((1A9CH
3)(11)(6)2)((26B3H
EquivalentDecimalHex



26
C17HHex
7)((1)0)(12)(
(12)(9)(10)(1)-
3)(10)(166)(1)(16
11Borrow
position.previousthefrom
)(1610Hborrowdigit,tsignificanleastthesubtractTo
(12)(1)(10)(9)1A9CH
(3)(2)(6)(11)26B3H
EquivalentDecimalHex
10




 BCD Code (Binary-Coded Decimal): A code
used to represent each decimal digit of a
number by a 4-Bit Binary Value.
 Valid Digits for 0 to 9 are 0000 to 1001.
◦ The binary codes 1010 to 1111 are invalid
 Called an 8421 Code due to the decimal
weight of each bit position.
27
 Each digit is a 4-Bit Binary group:
(84)10 = 1000 0100
(4987)10 = 0100 1001 1000 0111BCD
28
 A BCD Code formed by adding 3 (0011) to
its true 4-bit binary value.
 Excess-3 is a self-complementing code:
◦ A negative code equivalent can be found by
inverting the binary bits of the positive code
 Inverting the bits of the Excess-3 digit
yields 9’s Complement of the decimal
equivalent.
29
 3 = 0011 + 0011 = 0110 = 6 in E3.
 1 = 0001 + 0011 = 0100 = 4 in E3.
 If we complement 1 = 1011 in E3, this is the
code for an 8.
◦ 9’s Complement of 1 = (9 – 1) = 8 (Self-
Complement)
30
 A binary code that progresses so that only
one bit changes between two successive
codes.
31
 Binary: b3b2b1b0
 Gray: g3g2g1g0
 Gray code bits can be defined as follows:
g3 = b3
g2 = b3  b2
g1 = b2  b1
g0 = b1  b0
32
 American Standard Code for Information
Interchange.
 A seven-bit alphanumeric code used to
represent text letters, numerals, punctuation,
and special controls.
 An expanded 8-bit form is becoming more
widespread.
33
 Half Adder (HA): A circuit that will add two
bits and produce a sum bit and a carry bit.
 Full Adder (FA): A circuit that will add a carry
bit from another HA or FA and two operand
bits to produce a sum bit and a carry bit.
34
 Binary Two-Bit Addition Rules:
0 + 0 = 00
0 + 1 = 01
1 + 1 = 10
35
 Basic Equations: S = A XOR B, C = A and
B where S = Sum and C = Carry.
 Truth Table for HA Block:
36
1011
0101
0110
0000
OUTCBA Σ
OUT ABC
BABABA


37
 Adds a CIN input to the HA block.
 Equations are modified as follows:
 A FA can be made from two HA blocks and an
OR Gate.
38
IN
INOUT
)(
)(
CBA
A BCBAC



39
40
41
 A circuit, consisting of n full adders, that will
add n-bit binary numbers.
 The output consists of n sum bits and a carry
bit.
 COUT of one full adder is connected to CIN of
the next full adder.
42
43
 In the n-Bit Parallel Adder (FA Stages) the
Carryout is generated by the last stage (FAN).
 This is called a Ripple Carry Adder because
the final carryout (Last Stage) is based on a
ripple through each stage by CIN at the LSB
Stage.
44
 Each Stage will have a propagation delay on
the CIN to COUT of one AND Gate and one OR
Gate.
 A 4-Bit Ripple Carry Adder will then have a
propagation delay on the final COUT of 4  2 =
8 Gates.
 A 32-Bit adder such as in an MPU in a PC
could have a delay of 64 Gates.
45
46
 Fast Carry or Look-Ahead Carry:
◦ A combinational network that generates the final
COUT directly from the operand bits (A1 to An, B1 to
Bn).
◦ It is independent of the operations of each FA Stage
(as the ripple carry is).
47
 Fast Carry has a small propagation delay
compared to the ripple carry.
 The fast carry delay is 3 Gates for a 4-Bit
Adder compared to 8 for the Ripple Carry.
48
 Created in VHDL by using multiple instances
of a full adder component in the top-level file
of a VHDL design hierarchy.
49
50
ENTITY full_add IS
PORT(
a, b, c_in : IN STD_LOGIC;
c_out, sum : OUT STD_LOGIC;
END full_add;
ARCHITECTURE adder OF full_add IS
BEGIN
c_out <= ((a xor b) and c_in) or (a and b);
sum <= (a xor b) xor c_ini;
END adder;
51
 Requires a separate component file for a full
adder, saved in a folder where the compiler
can find it.
 A component declaration statement in the
top-level file of the design hierarchy.
 A component instantiation statement for each
instance of the full adder component.
52
ENTITY add4par IS
PORT(
c0 : IN STD_LOGIC;
a,b : IN STD_LOGIC_VECTOR (4 downto 1);
c4 : OUT STD_LOGIC;
sum : OUT STD_LOGIC_VECTOR (4 downto 1);
END add4par;
53
ARCHITECTURE adder OF add4par IS
-- Component declaration.
COMPONENT full_add
PORT(
a, b, c_in : IN STD_LOGIC;
c_out, sum : OUT STD_LOGIC;
END COMPONENT;
-- Define a signal for the internal carry bits
SIGNAL c : STD_LOGIC_VECTOR (3 downto 1);
54
BEGIN
-- four component instantiation statements.
adder1 : full_add
PORT MAP (a => a(1),
b => b(1),
c_in => c0,
c_out => c(1) -- connects to c_in of adder 2.
sum => sum(1));
• • •
• • •
END adder;
55
ENTITY add4gen IS
PORT(
c0 : IN STD_LOGIC;
a,b : IN STD_LOGIC_VECTOR (4 downto 1);
c4 : OUT STD_LOGIC;
sum : OUT STD_LOGIC_VECTOR (4 downto 1));
END add4gen;
56
ARCHITECTURE adder OF add4gen IS
-- Component declaration
COMPONENT full_add
PORT(
a, b, c_in :IN STD_LOGIC;
c_out, sum : OUT STD_LOGIC;
END COMPONENT;
- - Defining a signal for internal carry bits.
SIGNAL c : STD_LOGIC_VECTOR (4 downto 0);
57
BEGIN
c(0) <= c0; -- Input port c0 mapped to internal
signal (c0)
adders:
FOR i IN 1 to 4 GENERATE
-- Implicit port mapping.
adder : full_add PORT MAP (a(i), b(i), c(i-1), c(i), sum (i));
END GENERATE;
c4 <= c(4); -- Output port c4 mapped to internal
signal c(4)
END adder;
58
 The concept of Subtraction using 2’s
Complement addition allows a Parallel FA to
be used.
 This could be used in a MPU ALU (Arithmetic
Logic Unit) for Subtraction.
 The subtract operation involves adding the
inverse of the subtrahend to the minuend and
then adding a 1.
59
 This operation can be done in a parallel n-
Bit FA by inverting (B1 to Bn) and connecting
CIN at the LSB Stage to +5 V.
 The circuit can be modified to allow either
the ADD or SUBTRACT operation to be
performed.
60
1Difference  BABA
61
 XOR gates are used as programmable
inverters to pass binary numbers (e.g.,
B1B2B3B4) to the parallel adder in true or
complemented form.

62
form.trueitsinis0,/SUBADDWhen
ed.complementis1,/SUBADDWhen
B
B


63
64
ENTITY addsub4g IS
PORT(
sub : IN BIT;
a,b : IN BIT_VECTOR (4 downto 1);
c4 : OUT BIT;
sum : OUT BIT_VECTOR (4 downto 1));
END addsub4g;
65
ARCHITECTURE adder OF addsub4g IS
COMPONENT full_add
PORT(
a, b, c_in : IN BIT;
c_out : OUT BIT);
END COMPONENT;
- - Define a signal for internal carry bits
SIGNAL c : BIT_VECTOR (4 downto 0);
SIGNAL b_comp : BIT_VECTOR (4 downto 1);
BEGIN
66
- - add/subtract select to carry input (sub = 1 for subtract)
c(0) <= sub;
adders:
FOR i IN 1 to 4 GENERATE
--invert b for subtract function (b(i) xor 1,)
--do not invert b for add function (b(i) xor 0)
b_comp(i) <= b(i) xor sub;
adder: full_add PORT MAP (a(i), b_comp(i), c(I -1), c(i), sum (i));
END GENERATE;
C4 <= C(4);
END adder;
67
 If the sign bits of both operands are the same
and the sign bit of the sum is different from
the operand sign bits, an overflow has
occurred.
 Overflow is not possible if the sign bits of the
operands are different from each other.
68
 Adding two 8-bit negative numbers:
 Adding two 8-bit positive numbers:
)1overflow;bit(Sign000010000
00001000
H100
H80
00001000H80


V
)1overflow;bit(Sign00001000
00010000
H80
H01
11110111FH7


V
69
70
sum)ofbitSign(SSS
)ofbitSign(BBS
)ofbitSign(AAS
1234567
B1234567B
A1234567A



 SSSSSS
BSBBBBB
ASAAAAA
  SSSSSSV BABA
71
SA SB S V
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
72
AS BS S
  SSSSSSV BABA
 A Parallel Adder whose output sum is in
groups of 4 bits, each representing a BCD
(8421) Digit.
 Basic design is a 4-Bit Binary Parallel Adder to
generate a 4-Bit Sum of A + B.
 Sum is input to the four-bit input of a Binary-
to-BCD Code Converter.
73
74

Chapter 07 Digital Alrithmetic and Arithmetic Circuits

  • 1.
  • 2.
     Signed BinaryNumber: ◦ A binary number of fixed length whose sign (+/–) is represented by one bit (usually MSB) and its magnitude by the remaining bits.  Unsigned Binary Number: ◦ A binary number of fixed length whose sign is not specified by a bit. All bits are magnitude and the sign is assumed +. 2
  • 3.
     Sum: ◦ Resultof an Addition Operation of two (or more) binary numbers (operands).  Carry: ◦ A digit (or bit) that is carried over to the next most significant bit during an n-Bit addition operation.  The carry bit is a 1 if the result was too large to be expressed in n bits. 3
  • 4.
    One-Bit Unsigned Addition 4 11111 01110 10010 00000 CBACoutin     
  • 5.
  • 6.
     Basic Subtractionof x = a – b, with a = minuend, b = subtrahend, and x = difference or result.  Requires a Borrow Bit if a < b.  There are other forms of subtraction such as 2’s Complement Addition used by microprocessors (such as in a PC). 6
  • 7.
  • 8.
  • 9.
     Sign Bit: ◦A bit (usually the MSB) that indicates whether a number is positive (= 0) or negative (= 1).  Magnitude Bits: ◦ The bits of a signed binary number that tell how large it is in value. 9
  • 10.
     True-Magnitude Form: ◦A form of signed binary whose magnitude bits are the TRUE binary form (not complements). 10
  • 11.
     1’s Complement: ◦A form of signed binary in which negative numbers are created by complementing all bits.  2’s Complement: ◦ A form of signed binary in which the negative numbers are created by complementing all the bits and adding a 1 (1’s Complement + 1). 11
  • 12.
     5-Bit NumbersNegative Sign (S = 1)  +25 = 011001 (Note sign bit (MSB) Sign = 0)  –25 = 111001 (Same as +25 with sign = 1)  +12 = 001100  –12 = 101100 12
  • 13.
     8-Bit 1’sComplement Negative (S = 1)  +57 = 00111001  –57 = 11000110 (All Bits Inverted)  +72 = 01001000  –72 = 10110111 13
  • 14.
     Used inMPU (PC) Arithmetic 14 01111011 1 0110110057- 1001001157    10001011 1 0111101172- 1072    000100 1’s complement 2’s complement
  • 15.
     Signed AdditionPositive (S = 0)  Similar to binary addition with a sign bit. 15 10010101 1011010075 1100000130  
  • 16.
     Add the1’s Complement and then Carry.  Uses an End around carry addition method. 16 11110000 1 111000001 65)Comps(1'1110101165)(0001010065- 0000010180)(0000010180   
  • 17.
     Add 2’sComplement to Minuend. ResultfromBitCarryDiscard 11110000111110101165 111110110001010065 000001010000010180     17
  • 18.
     If theTrue-Magnitude Form is used for subtraction, the results are incorrect.  If the result is from 1’s or 2’s Complement and the result is negative (S = 1), the magnitude is found by taking the complement of the result. 18
  • 19.
     2’s ComplementNegative Result (65 – 80) 19 11110000)15(ResultFinal 11Add 11100000Invert 00011111 00000111C.)s(2'0000101180- 000101000001010065 10   
  • 20.
     Range ofPositive Numbers is 0 to 2n – 1 for a number with n magnitude bits.  Range of Negative Numbers is –1 to –2n for a number with n magnitude bits.  8-Bit Example: 8-Bit Number Range is –2n  x  +2n – 1 or –128 to +127 20
  • 21.
     Overflow: ◦ Anerroneous carry into the sign bit of a signed binary number ◦ Results from a sum or difference that is larger than can be represented by the magnitude bits.  Results in a False Positive or False Negative Number. 21
  • 22.
     Addition oftwo 8-Bit Positive Numbers:  Two positive numbers added with a result greater than the range of +127 for 8-bit numbers causes an overflow. 22 (False)NegativeisResult10111010 0000011096 1011010075  
  • 23.
     Addition oftwo 8-Bit Negative Numbers:  Two Negative numbers were added to produce a False Positive Result due to overflowing the negative range of 8-bit numbers (0 to –127). 23 (False)PositiveisResult11110110 1111101165 0000101180  
  • 24.
     Similar todecimal addition with a range of digits of 0 to 9 and A to F.  Examples: F + 1 = 10 F + F = 1E F + F + 1 = 1F 24
  • 25.
     For sumsgreater than 15, subtract 16 and carry 1 to the next position. 25 414FHHex 4)(15)(1)4)(( 9)(12)1)(10)(( (11)(3)6)2)(( 11Carry 5)(16)(20)(1(3) 9)(12)1)(10)((1A9CH 3)(11)(6)2)((26B3H EquivalentDecimalHex   
  • 26.
  • 27.
     BCD Code(Binary-Coded Decimal): A code used to represent each decimal digit of a number by a 4-Bit Binary Value.  Valid Digits for 0 to 9 are 0000 to 1001. ◦ The binary codes 1010 to 1111 are invalid  Called an 8421 Code due to the decimal weight of each bit position. 27
  • 28.
     Each digitis a 4-Bit Binary group: (84)10 = 1000 0100 (4987)10 = 0100 1001 1000 0111BCD 28
  • 29.
     A BCDCode formed by adding 3 (0011) to its true 4-bit binary value.  Excess-3 is a self-complementing code: ◦ A negative code equivalent can be found by inverting the binary bits of the positive code  Inverting the bits of the Excess-3 digit yields 9’s Complement of the decimal equivalent. 29
  • 30.
     3 =0011 + 0011 = 0110 = 6 in E3.  1 = 0001 + 0011 = 0100 = 4 in E3.  If we complement 1 = 1011 in E3, this is the code for an 8. ◦ 9’s Complement of 1 = (9 – 1) = 8 (Self- Complement) 30
  • 31.
     A binarycode that progresses so that only one bit changes between two successive codes. 31
  • 32.
     Binary: b3b2b1b0 Gray: g3g2g1g0  Gray code bits can be defined as follows: g3 = b3 g2 = b3  b2 g1 = b2  b1 g0 = b1  b0 32
  • 33.
     American StandardCode for Information Interchange.  A seven-bit alphanumeric code used to represent text letters, numerals, punctuation, and special controls.  An expanded 8-bit form is becoming more widespread. 33
  • 34.
     Half Adder(HA): A circuit that will add two bits and produce a sum bit and a carry bit.  Full Adder (FA): A circuit that will add a carry bit from another HA or FA and two operand bits to produce a sum bit and a carry bit. 34
  • 35.
     Binary Two-BitAddition Rules: 0 + 0 = 00 0 + 1 = 01 1 + 1 = 10 35
  • 36.
     Basic Equations:S = A XOR B, C = A and B where S = Sum and C = Carry.  Truth Table for HA Block: 36 1011 0101 0110 0000 OUTCBA Σ OUT ABC BABABA  
  • 37.
  • 38.
     Adds aCIN input to the HA block.  Equations are modified as follows:  A FA can be made from two HA blocks and an OR Gate. 38 IN INOUT )( )( CBA A BCBAC   
  • 39.
  • 40.
  • 41.
  • 42.
     A circuit,consisting of n full adders, that will add n-bit binary numbers.  The output consists of n sum bits and a carry bit.  COUT of one full adder is connected to CIN of the next full adder. 42
  • 43.
  • 44.
     In then-Bit Parallel Adder (FA Stages) the Carryout is generated by the last stage (FAN).  This is called a Ripple Carry Adder because the final carryout (Last Stage) is based on a ripple through each stage by CIN at the LSB Stage. 44
  • 45.
     Each Stagewill have a propagation delay on the CIN to COUT of one AND Gate and one OR Gate.  A 4-Bit Ripple Carry Adder will then have a propagation delay on the final COUT of 4  2 = 8 Gates.  A 32-Bit adder such as in an MPU in a PC could have a delay of 64 Gates. 45
  • 46.
  • 47.
     Fast Carryor Look-Ahead Carry: ◦ A combinational network that generates the final COUT directly from the operand bits (A1 to An, B1 to Bn). ◦ It is independent of the operations of each FA Stage (as the ripple carry is). 47
  • 48.
     Fast Carryhas a small propagation delay compared to the ripple carry.  The fast carry delay is 3 Gates for a 4-Bit Adder compared to 8 for the Ripple Carry. 48
  • 49.
     Created inVHDL by using multiple instances of a full adder component in the top-level file of a VHDL design hierarchy. 49
  • 50.
  • 51.
    ENTITY full_add IS PORT( a,b, c_in : IN STD_LOGIC; c_out, sum : OUT STD_LOGIC; END full_add; ARCHITECTURE adder OF full_add IS BEGIN c_out <= ((a xor b) and c_in) or (a and b); sum <= (a xor b) xor c_ini; END adder; 51
  • 52.
     Requires aseparate component file for a full adder, saved in a folder where the compiler can find it.  A component declaration statement in the top-level file of the design hierarchy.  A component instantiation statement for each instance of the full adder component. 52
  • 53.
    ENTITY add4par IS PORT( c0: IN STD_LOGIC; a,b : IN STD_LOGIC_VECTOR (4 downto 1); c4 : OUT STD_LOGIC; sum : OUT STD_LOGIC_VECTOR (4 downto 1); END add4par; 53
  • 54.
    ARCHITECTURE adder OFadd4par IS -- Component declaration. COMPONENT full_add PORT( a, b, c_in : IN STD_LOGIC; c_out, sum : OUT STD_LOGIC; END COMPONENT; -- Define a signal for the internal carry bits SIGNAL c : STD_LOGIC_VECTOR (3 downto 1); 54
  • 55.
    BEGIN -- four componentinstantiation statements. adder1 : full_add PORT MAP (a => a(1), b => b(1), c_in => c0, c_out => c(1) -- connects to c_in of adder 2. sum => sum(1)); • • • • • • END adder; 55
  • 56.
    ENTITY add4gen IS PORT( c0: IN STD_LOGIC; a,b : IN STD_LOGIC_VECTOR (4 downto 1); c4 : OUT STD_LOGIC; sum : OUT STD_LOGIC_VECTOR (4 downto 1)); END add4gen; 56
  • 57.
    ARCHITECTURE adder OFadd4gen IS -- Component declaration COMPONENT full_add PORT( a, b, c_in :IN STD_LOGIC; c_out, sum : OUT STD_LOGIC; END COMPONENT; - - Defining a signal for internal carry bits. SIGNAL c : STD_LOGIC_VECTOR (4 downto 0); 57
  • 58.
    BEGIN c(0) <= c0;-- Input port c0 mapped to internal signal (c0) adders: FOR i IN 1 to 4 GENERATE -- Implicit port mapping. adder : full_add PORT MAP (a(i), b(i), c(i-1), c(i), sum (i)); END GENERATE; c4 <= c(4); -- Output port c4 mapped to internal signal c(4) END adder; 58
  • 59.
     The conceptof Subtraction using 2’s Complement addition allows a Parallel FA to be used.  This could be used in a MPU ALU (Arithmetic Logic Unit) for Subtraction.  The subtract operation involves adding the inverse of the subtrahend to the minuend and then adding a 1. 59
  • 60.
     This operationcan be done in a parallel n- Bit FA by inverting (B1 to Bn) and connecting CIN at the LSB Stage to +5 V.  The circuit can be modified to allow either the ADD or SUBTRACT operation to be performed. 60 1Difference  BABA
  • 61.
  • 62.
     XOR gatesare used as programmable inverters to pass binary numbers (e.g., B1B2B3B4) to the parallel adder in true or complemented form.  62 form.trueitsinis0,/SUBADDWhen ed.complementis1,/SUBADDWhen B B  
  • 63.
  • 64.
  • 65.
    ENTITY addsub4g IS PORT( sub: IN BIT; a,b : IN BIT_VECTOR (4 downto 1); c4 : OUT BIT; sum : OUT BIT_VECTOR (4 downto 1)); END addsub4g; 65
  • 66.
    ARCHITECTURE adder OFaddsub4g IS COMPONENT full_add PORT( a, b, c_in : IN BIT; c_out : OUT BIT); END COMPONENT; - - Define a signal for internal carry bits SIGNAL c : BIT_VECTOR (4 downto 0); SIGNAL b_comp : BIT_VECTOR (4 downto 1); BEGIN 66
  • 67.
    - - add/subtractselect to carry input (sub = 1 for subtract) c(0) <= sub; adders: FOR i IN 1 to 4 GENERATE --invert b for subtract function (b(i) xor 1,) --do not invert b for add function (b(i) xor 0) b_comp(i) <= b(i) xor sub; adder: full_add PORT MAP (a(i), b_comp(i), c(I -1), c(i), sum (i)); END GENERATE; C4 <= C(4); END adder; 67
  • 68.
     If thesign bits of both operands are the same and the sign bit of the sum is different from the operand sign bits, an overflow has occurred.  Overflow is not possible if the sign bits of the operands are different from each other. 68
  • 69.
     Adding two8-bit negative numbers:  Adding two 8-bit positive numbers: )1overflow;bit(Sign000010000 00001000 H100 H80 00001000H80   V )1overflow;bit(Sign00001000 00010000 H80 H01 11110111FH7   V 69
  • 70.
  • 71.
      SSSSSSVBABA 71 SA SB S V 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0
  • 72.
    72 AS BS S  SSSSSSV BABA
  • 73.
     A ParallelAdder whose output sum is in groups of 4 bits, each representing a BCD (8421) Digit.  Basic design is a 4-Bit Binary Parallel Adder to generate a 4-Bit Sum of A + B.  Sum is input to the four-bit input of a Binary- to-BCD Code Converter. 73
  • 74.