DIGITAL TECHNICS. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute

Similar documents
Chapter 4. Combinational: Circuits with logic gates whose outputs depend on the present combination of the inputs. elements. Dr.

CSE140: Components and Design Techniques for Digital Systems. Decoders, adders, comparators, multipliers and other ALU elements. Tajana Simunic Rosing

Binary addition by hand. Adding two bits

Overview. Arithmetic circuits. Binary half adder. Binary full adder. Last lecture PLDs ROMs Tristates Design examples

Hardware Design I Chap. 4 Representative combinational logic

Combinational Logic Design Arithmetic Functions and Circuits

EECS150. Arithmetic Circuits

Logic. Combinational. inputs. outputs. the result. system can

Systems I: Computer Organization and Architecture

Class Website:

COMBINATIONAL LOGIC FUNCTIONS

Adders, subtractors comparators, multipliers and other ALU elements

Adders, subtractors comparators, multipliers and other ALU elements

CMPUT 329. Circuits for binary addition

Chapter 5 Arithmetic Circuits

Section 3: Combinational Logic Design. Department of Electrical Engineering, University of Waterloo. Combinational Logic

Logic and Computer Design Fundamentals. Chapter 5 Arithmetic Functions and Circuits

UNIT II COMBINATIONAL CIRCUITS:

Combinational Logic. By : Ali Mustafa

IT T35 Digital system desigm y - ii /s - iii

Carry Look Ahead Adders

ARITHMETIC COMBINATIONAL MODULES AND NETWORKS

Combinational Logic. Mantıksal Tasarım BBM231. section instructor: Ufuk Çelikcan

14:332:231 DIGITAL LOGIC DESIGN

CMSC 313 Lecture 18 Midterm Exam returned Assign Homework 3 Circuits for Addition Digital Logic Components Programmable Logic Arrays

Combina-onal Logic Chapter 4. Topics. Combina-on Circuit 10/13/10. EECE 256 Dr. Sidney Fels Steven Oldridge

Combinational Logic. Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C.

CSE140: Components and Design Techniques for Digital Systems. Logic minimization algorithm summary. Instructor: Mohsen Imani UC San Diego

CS 140 Lecture 14 Standard Combinational Modules

Menu. Binary Adder EEL3701 EEL3701. Add, Subtract, Compare, ALU

Review for Test 1 : Ch1 5

Digital System Design Combinational Logic. Assoc. Prof. Pradondet Nilagupta

UNSIGNED BINARY NUMBERS DIGITAL ELECTRONICS SYSTEM DESIGN WHAT ABOUT NEGATIVE NUMBERS? BINARY ADDITION 11/9/2018

PG - TRB UNIT-X- DIGITAL ELECTRONICS. POLYTECHNIC-TRB MATERIALS

Design of Sequential Circuits

Combinational Logic. Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C.

ว ตถ ประสงค ของบทเร ยน

ECE 545 Digital System Design with VHDL Lecture 1. Digital Logic Refresher Part A Combinational Logic Building Blocks

Binary addition (1-bit) P Q Y = P + Q Comments Carry = Carry = Carry = Carry = 1 P Q

211: Computer Architecture Summer 2016

ELEN Electronique numérique

CMPEN 411 VLSI Digital Circuits Spring Lecture 19: Adder Design

Review: Additional Boolean operations

CSEE 3827: Fundamentals of Computer Systems. Combinational Circuits

Sample Test Paper - I

CHAPTER1: Digital Logic Circuits Combination Circuits

Digital Integrated Circuits A Design Perspective. Arithmetic Circuits. Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolic.

Midterm Exam Two is scheduled on April 8 in class. On March 27 I will help you prepare Midterm Exam Two.

We are here. Assembly Language. Processors Arithmetic Logic Units. Finite State Machines. Circuits Gates. Transistors

Chapter 2 (Lect 2) Canonical and Standard Forms. Standard Form. Other Logic Operators Logic Gates. Sum of Minterms Product of Maxterms

ELCT201: DIGITAL LOGIC DESIGN

Chapter 5. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 5 <1>

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Digital Logic

CMSC 313 Lecture 18 Midterm Exam returned Assign Homework 3 Circuits for Addition Digital Logic Components Programmable Logic Arrays

Introduction to Digital Logic Missouri S&T University CPE 2210 Subtractors

Design of Combinational Logic

3. Combinational Circuit Design

Digital Electronics Circuits 2017

EECS150 - Digital Design Lecture 24 - Arithmetic Blocks, Part 2 + Shifters

LOGIC CIRCUITS. Basic Experiment and Design of Electronics. Ho Kyung Kim, Ph.D.

9. Datapath Design. Jacob Abraham. Department of Electrical and Computer Engineering The University of Texas at Austin VLSI Design Fall 2017

Combinational Logic Design Combinational Functions and Circuits

DIGITAL LOGIC CIRCUITS

Unit II Chapter 4:- Digital Logic Contents 4.1 Introduction... 4

ECE/CS 250 Computer Architecture

Boolean Algebra and Digital Logic 2009, University of Colombo School of Computing

Chapter 7 Logic Circuits

Computer Architecture. ESE 345 Computer Architecture. Design Process. CA: Design process

Numbers and Arithmetic

Chapter 03: Computer Arithmetic. Lesson 03: Arithmetic Operations Adder and Subtractor circuits Design

CprE 281: Digital Logic

Adders allow computers to add numbers 2-bit ripple-carry adder

Adders - Subtractors

ECE 250 / CPS 250 Computer Architecture. Basics of Logic Design Boolean Algebra, Logic Gates

Digital Integrated Circuits A Design Perspective. Arithmetic Circuits. Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolic.

LOGIC CIRCUITS. Basic Experiment and Design of Electronics

ALUs and Data Paths. Subtitle: How to design the data path of a processor. 1/8/ L3 Data Path Design Copyright Joanne DeGroat, ECE, OSU 1

MODULAR CIRCUITS CHAPTER 7

UNIVERSITI TENAGA NASIONAL. College of Information Technology

What s the Deal? MULTIPLICATION. Time to multiply

SAU1A FUNDAMENTALS OF DIGITAL COMPUTERS

Binary addition example worked out

Chapter 5. Digital systems. 5.1 Boolean algebra Negation, conjunction and disjunction

Hakim Weatherspoon CS 3410 Computer Science Cornell University

Numbers and Arithmetic

Lecture A: Logic Design and Gates

SIR C.R.REDDY COLLEGE OF ENGINEERING ELURU DIGITAL INTEGRATED CIRCUITS (DIC) LABORATORY MANUAL III / IV B.E. (ECE) : I - SEMESTER

Number System. Decimal to binary Binary to Decimal Binary to octal Binary to hexadecimal Hexadecimal to binary Octal to binary

BOOLEAN ALGEBRA. Introduction. 1854: Logical algebra was published by George Boole known today as Boolean Algebra

Number representation

Lecture 2 Review on Digital Logic (Part 1)

Department of Electrical & Electronics EE-333 DIGITAL SYSTEMS

CS61C : Machine Structures

DIGITAL LOGIC CIRCUITS

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS6201 DIGITAL PRINCIPLES AND SYSTEM DESIGN

Lecture 22 Chapters 3 Logic Circuits Part 1

Combinational Logic Trainer Lab Manual

Reg. No. Question Paper Code : B.E./B.Tech. DEGREE EXAMINATION, NOVEMBER/DECEMBER Second Semester. Computer Science and Engineering

Digital Techniques. Figure 1: Block diagram of digital computer. Processor or Arithmetic logic unit ALU. Control Unit. Storage or memory unit

Tree and Array Multipliers Ivor Page 1

Transcription:

DIGITAL TECHNICS Dr. Bálint Pődör Óbuda University, Microelectronics and Technology Institute 4. LECTURE: COMBINATIONAL LOGIC DESIGN: ARITHMETICS (THROUGH EXAMPLES) 2016/2017 COMBINATIONAL LOGIC DESIGN: EXAMPLES AND CASE STUDIES General design procedure Examples Functional units (multiplexer, decoder) as building blocks Logical function unit Mux based shifter Arithmetic circuits 1-bit full adder Addition/subtraction Arithmetic/logic units Multipliers 1

SYNTHESIS USING LOGIC GATES The traditional process of logic synthesis is based on the application of logic gates. Its more modern variant makes use of programmable logic devices too. However in many case it is more advantageous to use a logic synthesis procedure based on the application of logic functional blocks. DIGITAL SYNTHESIS: BUILDING BLOCKS Lower level of abstraction: gates Higher hierarchy: functional building blocks Encoders, decoders Multiplexers, demultiplexers Registers, memories Comparators Adders, etc. (binary arithmetic blocks) Programmable logic devices Technological realization: SSI/MSI circuits 2

FAMILY TREE OF FUNCTIONAL BLOCKS functional blocks combinational exor encoder, decoder mux, demux comparator adder ALU code converters tri state buffer etc. sequential register latch counter shift register serial arithmetics etc. DIGITAL COMPONENTS High level digital circuit designs are normally made using collections of logic gates referred to as components, rather than using individual logic gates. Levels of integration (numbers of gates) in an integrated circuit (IC): Small scale integration (SSI): about 10 gates. Medium scale integration (MSI): 10 to 100 gates. Large scale integration (LSI): 100-1,000 logic gates. Very large scale integration (VLSI): 1,000-upward. Ultra large scale integration (ULSI): 10,000-upward. Giga large scale Integration (GLSI): 100, 000 upward. Ridiculously (?) large scale integration (RLSI): 1,000,000 upward. These levels are approximate, but the distinctions are useful in comparing the relative complexity of circuits. 3

WHAT WE NEED TO KNOW ABOUT AN MSI CIRCUIT? Function: what it does Truth-table: input-output Logic gate diagram: how it does it Packaging (module pin-out): how to build it Dynamic behavior (timing diagram) Applications: where to use it Common MSI circuits: programmable logic devices (PLDs) encoder, decoder, exor, comparator, mux, demux, adder, subtractor, arithmetic circuits (adders, multipliers) Arithmetic and Logic Unit (ALU) DECODER APPLICATION: IMPLEMENTING BOOLEAN FUNCTIONS USING DECODERS Any combinational circuit can be constructed using decoders and OR gates! Example: Implement a full adder circuit with a decoder and two OR gates. Recall full adder equations, and let X, Y, and Z be the inputs: S(X,Y,Z) = X+Y+Z = m(1,2,4,7) C (X,Y,Z) = m(3, 5, 6, 7). Since there are 3 inputs and a total of 8 minterms, we need a 3-to-8 decoder. 4

IMPLEMENTING A BINARY ADDER USING A DECODER S(X,Y,Z) = SUM m(1,2,4,7) C(X,Y,Z) = SUM m(3,5,6,7) MULTIPLEXER AS AN UNIVERSAL COMBINATIONAL CIRCUIT From the point of view of output(s) the multiplexer can be considered as a one level combinational circuit. Its characteristics is the fast response time. For the selected input the time delay corresponds to the unit gate delay. 5

MULTIPLEXER BASED IMPLEMTATION OF XOR FUNCTION USING A 4-1 MUX TO IMPLEMENT THE MAJORITY FUNCTION Principle: Use the A and B inputs to select a pair of minterms. The value applied to the MUX input is selected from {0, 1, C, C } to pick the desired behaviour of the minterm pair. 6

EXAMPLE: USING MULTIPLEXER TO IMPLEMENT AN ADDER A i B i S i C i+1 0 0 C i 0 _ 0 1 C i C i _ 1 0 C i C i Rearrange truth table: 1 0 C i 1 Use A i, B i to select MUX output, connect C i and C i to MUX data inputs. Implement with two 4-to-1 multiplexers and one inverter (to generate C i ) 1-BIT FULL ADDER: MUX IMPLEMENTATION 74153 dual 4-line to 1-line data selector/multiplexer. Two 4/2/1 multiplexers in one package. An inverter is also necessary (e.g. 1/6 7404 hex inverter). 14 7

ANOTHER APPLICATION: MUX BASED SHIFTER Draw a 4-bit shifter circuit for the following operation table using only six 2-to-1 multiplexers. Operation: Shift left fill with 0 A3 A2 A1 A0 A2 A1 A0 0 Shift right fill with 0 A3 A2 A1 A0 0 A3 A2 A1 Rotate left Rotate right A3 A2 A1 A0 A2 A1 A0 A3 A3 A2 A1 A0 A0 A3 A2 A1 15 MUX BASED SHIFTER SHIFT/ROTATE LEFT/RIGHT 16 8

EXAMPE: MULTI PURPOSE FUNCTION BLOCK Multi-purpose Function Block 3 control inputs to specify operation to perform on operands 2 data inputs for operands 1 output of the same bit-width as operands C0 C1 C2 Function Comments 0 0 0 1 always 1 0 0 1 A + B logical OR 0 1 0 (A B)' logical NAND 0 1 1 A XOR B logical XOR 1 0 0 A XNOR B logical XNOR 1 0 1 A B logical AND 1 1 0 (A + B)' logical NOR 1 1 1 0 always 0 3 control inputs: C0, C1, C2 2 data inputs: A, B 1 output: F IMPLEMENTATION WITH LOGIC GATES C0 C1 C2 A B F 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 2 3 5 6 7 8 9 10 13 14 16 19 23 24 F = 5 (0-3,5-10,13,14,16,19,23,24) Minimization on 5 variable Karnaugh map: four 4-cubes 9

C0 C1 C2 A B F 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 FORMALIZE THE PROBLEM choose implementation technology 5-variable K-map to discrete gates multiplexer implementation the target operations are pair wise inverse of each other A B A B A B 1 0 0 1 2 3 8:1 MUX 4 5 6 7 S2 S1 S0 C0 C1 C2 F MSI EXAMPLE: 74381/382 ALU Eight-operation functional block ( limited ALU) handling two 4-bit words. Three logic operations, three arithmetic operations, clear and preset operations. 10

11

ARITHMETIC CIRCUITS Excellent Examples of Combinational Logic Design Time vs. Space Trade-offs Doing things fast may require more logic and thus more space Example: carry lookahead logic Arithmetic and Logic Units General-purpose building blocks Critical components of processor datapaths Used within most computer instructions ARITHMETIC CIRCUITS: BASIC BUILDING BLOCKS Below I will discuss those combinational logic building blocks that can be used to perform addition and subtraction operations on binary numbers. Addition and subtraction are the two most commonly used arithmetic operations, as the other two, namely multiplication and division, are respectively the processes of repeated addition and repeated subtraction. We will begin with the basic building blocks that form the basis of all hardware used to perform the aforesaid arithmetic operations on binary numbers. These include half-adder, full adder, half-subtractor, full subtractor and controlled inverter. 12

CCIRCUITS FOR BINARY ADDITION Half adder (add two 1-bit numbers) Sum = Ai' Bi + Ai Bi' = Ai xor Bi Cout = Ai Bi Full adder (carry-in to cascade for multi-bit adders) Sum = Ci xor A xor B Cout = B Ci + A Ci + A B = Ci (A + B) + A B Ai Bi Sum Cout 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 Ai Bi Cin Sum Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 FULL ADDER IMPLEMENTATIONS Standard approach 6 gates 2 XORs, 2 ANDs, 2 ORs Alternative implementation 5 gates half adder is an XOR gate and AND gate 2 XORs, 2 ANDs, 1 OR A B Cin A B A B Cin Cout = A B + Cin (A xor B) = A B + B Cin + A Cin S Cout A B Cin Half Adder Cout A xor B A B Sum Half Adder Cout A xor B xor Cin Cin (A xor B) Sum Sum Cout 13

HALF- AND FULL SUBTRACTOR The subtraction of two given binary numbers can be carried out by adding 2 s complement of the subtrahend to the minuend. This allows us to do a subtraction operation with adder circuits. However, we will also briefly look at the counterparts of half-adder and full adder circuits in the half-subtractor and full subtractor for direct implementation of subtraction operations using logic gates. HALF-SUBTRACTOR A half-subtractor is a combinational circuit that can be used to subtract one binary digit from another to produce a DIFFERENCE output and a BORROW output. The BORROW output here specifies whether a 1 has been borrowed to perform the subtraction. 14

FULL SUBTRACTOR A full subtractor performs subtraction operation on two bits, a minuend and a subtrahend, and also takes into consideration whether a 1 has already been borrowed by the previous adjacent lower minuend bit or not. As a result, there are three bits to be handled at the input of a full subtractor, namely the two bits to be subtracted and a borrow bit designated as Bin. There are two outputs, namely the DIFFERENCE output D and the BORROW output Bo. The BORROW output bit tells whether the minuend bit needs to borrow a 1 from the next possible higher minuend bit. FULL SUBTRACTOR Truth table of a full subtractor 15

FULL SUBTRACTOR Logic implementation of a full subtractor with half-subtractors. CONTROLLED INVERTER A controlled inverter is needed when an adder is to be used as a subtractor. Subtraction is addition of the 2 s complement of the subtrahend to the minuend. Thus, the first step towards implementation of a subtractor is to determine the 2 s complement of the subtrahend. And for this, one needs firstly to find 1 s complement. A controlled inverter is used to find 1 s complement. A one-bit controlled inverter is a two-input EX-OR gate with one of its inputs treated as a control input. Eight-bit controlled inverter 16

ADDER/SUBTRACTOR Use an adder to do subtraction thanks to 2s complement representation A B = A + ( B) = A + B' + 1 Control signal selects B or 2s complement of B A3 B3 B3' A2 B2 B2' A1 B1 B1' A0 B0 B0' 0 1 Sel 0 1 Sel 0 1 Sel 0 1 Sel A B Cout Cin Sum A B Cout Cin Sum A B Cout Cin Sum A B Cout Cin Sum Add' Subtract S3 S2 S1 S0 Overflow TWO S COMPLEMENT ADDER/SUBTRACTOR Q = (q 3 q 2 q 1 q 0 ) 2 P = (p 3 p 2 p 1 p 0 ) 2 4A3A2A 1A 4B 3B 2B MUX (74157) 4Y 3Y 2Y 1Y 1B S G Select A4 A3 A2 A1 B4 B3 B2 B1 C4 ADDER (7483) S4 S3 S2 S1 C0 Select 0 1 Function R = P + Q R = P + Q + 1 R = (r 4 r 3 r 2 r 1 ) 2 17

RIPPLE CARRY ADDER The full adder is for adding two operands that are only one bit wide. To add two operands that are, say four bits wide, we connect four full adders together in series. The resulting circuit is called a ripple carry adder for adding two 4-bit operands. The ripple-carry adder is slow because the carry-in for each full adder is dependent on the carry-out signal from the previous FA. So before FA i can output valid data, it must wait for FA i 1 to have valid data. CARRY-LOOKAHEAD ADDER The layout of a ripple carry adder is simple, which allows for fast design time, however, the ripple carry adder is relatively slow, since each full adder must wait for the carry bit from the previous full adder. From C in to C out 2 gates should be passed through. Ergo a 32-bit adder requires 31 carry computations and the final sum calculation for a total of 31x2 + 1 = 63 gate delays. In the carry-lookahead adder, each bit slice eliminates this dependency on the previous carry-out signal and instead uses the values of the two input operands, directly to deduce the needed signals. This is possible from the following observations regarding the carry-out signal. 18

FULL ADDER: GENERATION AND PROPAGATION OF CARRY A B Cin Full adder Sum Cout C o = A B + (A B)C i or C o = A B + (A + B)C i C o = G + P C i Define G and P auxiliary functions RIPPLE-CARRY ADDERS Critical Delay The propagation of carry from low to high order stages Cin @0 A @0 B @N Cin @0 @0 A B late arriving signal @1 @N+1 @1 two gate delays to compute Cout Cout @N+2 A0 B0 A1 B1 A2 B2 S0 @2 C1 @2 S1 @3 C2 @4 4 stage adder S2 @5 C3 @6 A B Cin S A3 B3 S3 @7 Cout @8 19

CRITICAL PATH TROUGH A RIPPLE CARRY ADDER CARRY LOOK-AHEAD ADDER Carry look-ahead adders reduce the computation time. They work creating propagate and generate signals (P and G) for each bit position, and using them the carries for each position are created. Some multi-bit adder architectures break the adder into blocks. It is possible to vary the length of these blocks based on the propagation delay of the circuits to optimize computation time. These block based adders include the carry bypass adder which will determine P and G for each block rather than each bit, and the carry select adder which pre-generates sum and carry values for either possible carry input to the block. 20

Operands FASTER ADDITION: CARRY LOOKAHEAD LOGIC Carry Logic Sum Principal layout of carry lookahead adder. CARRY-LOOKAHEAD LOGIC Carry generate: Gi = Ai Bi Must generate carry when A = B = 1 Carry propagate: Pi = Ai xor Bi Carry-in will equal carry-out here Sum and Cout can be re-expressed in terms of generate/propagate: Si = Ai xor Bi xor Ci = Pi xor Ci Ci+1= Ai Bi + Ai Ci + Bi Ci = Ai Bi + Ci (Ai + Bi) = Ai Bi + Ci (Ai xor Bi) = Gi + Ci Pi 21

CARRY-LOOKAHEAD LOGIC Re-express the carry logic as follows: C1 = G0 + P0 C0 C2 = G1 + P1 C1 = G1 + P1 G0 + P1 P0 C0 C3 = G2 + P2 C2 = G2 + P2 G1 + P2 P1 G0 + P2 P1 P0 C0 C4 = G3 + P3 C3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 C0 Each of the carry equations can be implemented with two-level logic All inputs are now directly derived from data inputs and not from intermediate carries this allows computation of all sum outputs to proceed in parallel CARRY-LOOKAHEAD IMPLEMENTATION Adder with propagate and generate outputs Ai Bi Ci Pi @ 1 gate delay Si @ 2 gate delays Gi @ 1 gate delay increasingly complex logic for carries C0 P0 G0 C0 P0 P1 G0 P1 G1 C1 C2 C0 P0 P1 P2 G0 P1 P2 G1 P2 G2 C0 P0 P1 P2 P3 G0 P1 P2 C3 P3 G1 P2 P3 G2 P3 G3 C4 22

CARRY LOOKAHEAD CIRCUITRY (a) Circuit for generating the carry-lookahead signals, c1 to c4; (b) One bit slice of the carry-lookahead adder. CARRY-LOOKAHEAD IMPLEMENTATION Carry-lookahead logic generates individual carries Sums computed much more quickly in parallel However, cost of carry logic increases with more stages Cin Cin A0 B0 S0 @2 C1 @2 A0 B0 C1 @3 S0 @2 A1 B1 A2 B2 A3 B3 S1 @3 C2 @4 S2 @5 C3 @6 S3 @7 Cout @8 A1 B1 C2 @3 A2 B2 C3 @3 A3 B3 S1 @4 S2 @4 S3 @4 C4 @3 C4 @3 23

4-BIT CARRY LOOKAHEAD ADDER CIRCUIT carry-out, not c-zero Total 26 gates, c.f. 4 standard full adders 4x6 = 24 gates 74HC/HCT181 4-BIT ALU LOGIC DIAGRAM 24

CARRY LOOKAHEAD ADDERS: FEATURES By adding more hardware, we reduced the number of levels in the circuit and sped things up. We can cascade carry lookahead adders, just like ripple carry adders. (We d have to do carry lookahead between the adders too.) How much faster is this? For a 4-bit adder, not much. There are 4 gates in the longest path of a carry lookahead adder, versus 9 gates for a ripple carry adder. But if we do the cascading properly, a 16-bit carry lookahead adder could have only 8 gates in the longest path, as opposed to 33 for a ripple carry adder. Newer CPUs these days use 64-bit adders. That s 12 vs. 129 gates! The delay of a carry lookahead adder grows logarithmically with the size of the adder, while a ripple carry adder s delay grows linearly. The thing to remember about this is the trade-off between complexity and performance. Ripple carry adders are simpler, but slower. Carry lookahead adders are faster but more complex. CARRYLOOKAHEAD ADDERS WITH CASCDED CARRY-LOOKAHEAD LOGIC Carry-lookahead adder 4 four-bit adders with internal carry lookahead Second level carry lookahead unit extends lookahead to 16 bits 4 4 4 4 4 4 4 4 A[15-12] B[15-12] 4-bit Adder C12 P G 4 A[11-8] B[11-8] 4-bit Adder C8 P G 4 A[7-4] B[7-4] 4-bit Adder C4 P G 4 A[3-0] B[3-0] 4-bit Adder C0 @0 P G 4 S[15-12] @8 @2 @3 S[11-8] @8 @5 @2 @3 S[7-4] @7 @5 @2 @3 S[3-0] @4 @4 @2 @3 C16 C4 @4 P3 G3 C3 P2 G2 C2 P1 G1 C1 Lookahead Carry Unit P3-0 G3-0 @3 @5 P0 G0 C0 C0 @0 25

CARRY-SELECT ADDER Redundant hardware to make carry calculation go faster Compute two high-order sums in parallel while waiting for carry-in One assuming carry-in is 0 and another assuming carry-in is 1 Select correct result once carry-in is finally computed C8 4-bit adder [7:4] 1 adder high C8 4-bit adder [7:4] 0 adder low five 2:1 mux 1 0 1 0 1 0 1 0 1 0 C4 4-Bit Adder [3:0] C0 C8 S7 S6 S5 S4 S3 S2 S1 S0 CARRY-SELECT ADDERS 26

MULTILEVEL CARRY-SELECT ADDERS ARITHMETICAL OPERATIONS IN BCD Many digital systems (processors, computers) can perform the arithmetical operations or a part of them directly on BCD numbers. E.g. the microprocessors can perform BCD addition, several of them subtraction too. Certain special processors can perform BCD multiplication and division too. The BCD addition is reduced to binary addition. The tetrades of the operands are added as binary numbers, and if necessary (illegal codewords or decimal carry is generated during the addition), a systematic correction is performed. 54 27

ADDITION IN NORMAL BCD (8421) CODE If the sum of two tetrades is not larger than 9, the result is valid, no correction is necessary. If the sum of two tetrades is larger than 9, (decimal carry and illegal codeword or pseudotetrade is generated) the result is valid only in binary system and not in BCD. The necessary correction is to add decimal 6 or i.e. binary 0110 to the actual tetrade. The correction should be performed beginning form the least significant tetrade and going upwards step-by-step. 55 FUNCTIONAL DIAGRAM OF A BCD ADDER (1 DIGIT) C4 B3 B2 B1 B0 B3 B2 B1 B0 C4 Binary adder & 1 & 0 0 B3 B2 B1 B0 Binary adder A3 A2 A1 A0 A3 A2 A1 A0 C0 S3 S2 S1 S0 A3 A2 A1 A0 C0 S3 S2 S1 S0 S3 S2 S1 S0 0 0 The first adder adds the two codes corresponding to the k-th decimal place, the second adds 6 if necessary. 56 28

SUBTRACTION IN BCD (8421) CODE In BCD as in binary, the subtraction is performed by complementing (the subtrahend) and addition. Generally 9 s complement is used. The circuit generating the 9 s complement can be constructed from common gates or form more complex functional elements. 57 GENERATING 9 S COMPLEMENT IN BCD A 3 A 2 A 1 A 0 =1 =1 =1 =1 V 0 0 If V = 0 then X k = A k 4-BIT ADDER If V = 1 then 8X 3 +4X 2 +2X 1 +X 0 = = 9 (8A 3 +4A 2 +2A 1 +A 0 ) X 3 X 2 X 1 X 0 29

SSI MODULAR LOGIC: 4-BIT BCD ADDER 59 SSI MODULAR LOGIC: 4-BIT BCD ADDER The 74F583 4-bit coded (BCD) full adder performs the addition of two decimal numbers (A0 A3, B0 B3). The look-ahead generates BCD carry terms internally, allowing the 74F583 to do BCD addition correctly. For BCD numbers 0 through 9 at A and B inputs, the BCD sum forms at the output. In addition of two BCD numbers totalling a number greater than 9, a valid BCD number and carry will result. 60 30

4-BIT BCD ADDER LOGIC DIAGRAM 74F583 Gate count 75 (incl. inverters) 61 MULTIPLIERS A binary multiplier is an electronic circuit used in digital electronics, such as a computer, to multiply two binary numbers. A variety of computer arithmetic techniques can be used to implement a digital multiplier. Most techniques involve computing a set of partial products, and then summing the partial products together. This process is similar to the method taught to primary school children for conducting long multiplication on base-10 integers, but has been modified here for application to a base-2 (binary) numeral system. The first stage of most multipliers involves generating the partial products which is nothing but an array of AND gates. An n-bit by n-nit multiplier requires n 2 AND gates for partial product generation. The partial products are then added to give the final results. 31

THEORY OF MULTIPLICATION Basic Concept multiplicand multiplier * 1101 (13) 1011 (11) 1101 Partial products 1101 0000 1101 10001111 (143) product of two 4-bit numbers is an 8-bit number COMBINATIONAL MULTIPLIER Partial Product Accumulation A3 A2 A1 A0 B3 B2 B1 B0 A2 B0 A2B0 A1 B0 A0 B0 A3 B1 A2 B1 A1 B1 A0 B1 A3 B2 A2 B2 A1 B2 A0 B2 A3 B3 A2 B3 A1 B3 A0 B3 S7 S6 S5 S4 S3 S2 S1 S0 32

THE ARRAY MULTIPLIER (4x4 BIT) PARTIAL PRODUCT ACCUMULATION A 3 B 3 A 3 B 2 A 2 B 3 A 3 B 1 A 2 B 2 A 1 B 3 A 3 B 0 A 2 B 1 A 1 B 2 A 0 B 3 A 2 B 0 A 1 B 1 A 0 B 2 A 0 B 1 A 1 B 0 A 0 B 0 F A HA HA HA F A F A F A F A F A F A HA F A S 7 S 6 S 5 S 4 S 3 S 2 S 1 S 0 Note use of parallel carry-outs to form higher order sums 12 Adders, if full adders, this is 6 gates each = 72 gates 16 gates form the partial products total = 88 gates! 33

SSI REALIZATION OF 4x4 BIT MULTIPLIER 67 COMBIATIONAL MULTIPLIER Sum In X Cin Another Representation of the Circuit Building block: FULL ADDER + AND Y F A A CO S B CI Cout Sum Out A3 A2 A1 A0 B0 C A3 B0 S C A2 B0 S C A1 B0 S C A0 B0 S B1 A3 B1 A2 B1 A1 B1 A0 B1 C C C C S S S S B2 C A3 B2 S C A2 B2 S C A1 B2 S C A0 B2 S B3 A3 B3 A2 B3 A1 B3 A0 B3 C S S S S P7 P6 P5 P4 P3 P2 P1 P0 4 x 4 array of building blocks 34

MAKING A 2n-BIT MULTIPLIER USING n-bit MULTIPLIERS E.g. in the case of a 8-bit multiplier, it is possible to partition the problem by splitting both the multiplier and multiplicand into two 4-bit words. N1 = (2 4 H1 + L1) N2 = (2 4 H2 + L2) Multiplying out N1N2 = 2 8 H1H2 + 2 4 (H1L2 + H2L1) + L1L2 MAKING A 2n-BIT MULTIPLIER USING n-bit MULTIPLIERS Given n-bit multipliers: Synthesize 2n-bit multipliers: 35

MAKING A 2n-BIT MULTIPLIER USING n-bit MULTIPLIERS 2n-bit by 2n-bit multiplication: 1. Divide multiplicands into n-bit pieces 2. Form 2n-bit partial products, using n-bit by n-bit multipliers. 3. Align appropriately 4. Add. REGROUP partial products 2 additions rather than 3! Induction: we can use the same structuring principle to build a 4n-bit multiplier from our newly-constructed 2n-bit ones... MULTIPLIER: MODULAR STRUCTURE 8 x 8 bit multiplier built from 4 x 4 bit modules 72 36

MULTIPLIER: MODULAR STRUCTURE 8 x 8 bit multiplier built from 4 x 4 bit modules Product MSB : 0, LSB: 15) 73 ROM IMPLEMENTED MULTIPLIER Binary multiplication can be achieved by using a ROM as a look-up table. E.g., multiplication of two 4-bit numbers requires a ROM having eight address lines, four of them X4XRX2X1 being allocated to the multiplier, and the remaining four, Y4Y3Y2Y1 to the multiplicand. Since the multiplication of two 4-bit numbers can result in a doublelength product, the ROM should have eight output lines, and a room with capacity of 256 bytes is required. For two 8-bit numbers 2 16 = 65336 memory locations and 16 output lines for the double-length products are required. This requires a ROM of 128 kbytes. For 16-bit multiplication the required ROM capacity is formidable (16 Gbytes!). 37

8x8 BIT COMBINATIONAL MULTIPLIER 4x4 bit partial products are generated by four 256x8 bit ROMs MULTIPLICATION: NEGATIVE NUMBERS The basic school method of multiplication handles the sign with a separate rule ("+ with + yields +", "+ with - yields -", etc.). Modern computers embed the sign of the number in the number itself, usually in the two s complement representation. That forces the multiplication process to be adapted to handle two's complement numbers, and that complicates the process a bit more. Similarly, processors that use one s complement sign-and-magnitude, IEEE-754 or other binary representations require specific adjustments to the multiplication process. 38

MULTIPLICATION: SPEEDIN UP Older multiplier architectures employed a shifter and accumulator to sum each partial product, often one partial product per cycle, trading off speed for die area. Modern multiplier architectures use the Baugh-Wooley algorithm, Wallace tree or Dadda to add the partial products together in a single cycle. The performance of the Wallace tree implementation is sometimes improved by modified Booth encoding one of the two multiplicands, which reduces the number of partial products that must be summed. BOOTH ENCODING MULTIPLIER System layout of Booth encoding 8-bit multiplier 39

BOOTH ENCODING MULTIPLIER The multiplier takes in 2 8-bits operands: the multiplier(mr) and the multiplicand (MD), then produces 16-bit multiplication result of the two as its output. The architecture comprises four parts: Complement Generator, Booth Encoder, Partial Product and Carry Lookahead Adder. BOOTH ENCODING DEMO 40