DigitalDesign TV pdf DIGITAL DESIGN AND COMPUTER ORGANIZATION DIGITAL DESIGN AND COMPUTER ORGANIZATION HASSAN A FARHAT CRC PRESS Boca Raton London New York Washington, D C This edition published in th[.]
DIGITAL DESIGN AND COMPUTER ORGANIZATION DIGITAL DESIGN AND COMPUTER ORGANIZATION HASSAN A.FARHAT CRC PRESS Boca Raton London New York Washington, D.C This edition published in the Taylor & Francis e-Library, 2005 “To purchase your own copy of this or any of Taylor & Francis or Routledge’s collection of thousands of eBooks please go to www.eBookstore.tandf.co.uk.” Library of Congress Cataloging-in-Publication Data Farhat, Hassan A Digital design and computer organization/Hassan A.Farhat p cm Includes index ISBN 0-8493-1191-8 (alk paper) Digital electronics Logic circuits—Design and construction Computer organization I Title TK7868.D5F37 2004 004.2 2–dc22 2003055805 This book contains information obtained from authentic and highly regarded sources Reprinted material is quoted with permission, and sources are indicated A wide variety of references are listed Reasonable efforts have been made to publish reliable data and information, but the author and the publisher cannot assume responsibility for the validity of all materials or for the consequences of their use Neither this book nor any part may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, microfilming, and recording, or by any information storage or retrieval system, without prior permission in writing from the publisher The consent of CRC Press LLC does not extend to copying for general distribution, for promotion, for creating new works, or for resale Specific permission must be obtained in writing from CRC Press LLC for such copying Direct all inquiries to CRC Press LLC, 2000 N.W Corporate Blvd., Boca Raton, Florida 33431 Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation, without intent to infringe Visit the CRC Press Web site at www.crcpress.com © 2004 by CRC Press LLC No claim to original U.S Government works ISBN 0-203-48669-2 Master e-book ISBN ISBN 0-203-58540-2 (Adobe eReader Format) International Standard Book Number 0-8493-1191-8 (Print Edition) Library of Congress Card Number 2003055805 Dedication TO MY FATHER Acknowledgment Sincere thanks go to the two acquiring editors from CRC Press: Nora Konopka as the main editor and Gerald Papke for his initial letter of encouragement and early correspondence Nora’s deadline extensions and kindness have made this task a reality Many thanks for all their help go to the textbook’s project editor, Gerry Jaffe, as well as to Jamie Sigal, Dawn Snider, and the other staff members who worked on the textbook Thanks to the staff of Electronics Workbench for supplying the software to be used with the text: in particular, Ian Suttie, vice president of sales, Joan LewisMilne, director of educational marketing, Scott Duncan, and the technical support staff that tested the circuits Thanks go to my students for their various inputs Finally, sincere thanks and love go to my wife, son, and daughter for their encouragement, help, and understanding during the many hours it took to complete the textbook Preface Digital Design and Computer Organization is an introduction to digital design with application to computer organization The tools studied in the text are used in the design of digital systems Many systems today are digital in nature This includes digital cameras and digital computers, for example The book is suitable for students majoring in Computer Science, Electrical Engineering, and Computer Engineering The contributions of the text are as follows: The emphasis of the textbook is on logic design with minimal reference to electrical properties This is an advantage to computer science students that have had no previous training in electrical engineering The text assumes no previous knowledge of electrical components (elementary coverage is included and is optional) Electrical engineering students can also benefit from the textbook since, if needed, the topics can be complemented with lab supplements that consider electrical constraints Outside the use of a schematic capture tool used to simulate designs from primitive gates, the textbook is written to be vendor independent Minimal coverage of actual chips and functionality is considered As a result, the discussion is presented in general terms that emphasize the principles of digital design Topics are covered in the context of computer organization The last two chapters of the text introduce instruction set architecture and present a complete design of a simple AC-based CPU In this context students relate the principles of digital design studied to the topic of computer organization vii To enhance topics coverage, the majority of the circuits presented in the text are found in the accompanying CD These circuits were designed and tested using the Electronics Workbench package Many of the circuits found in the text are screen captures from the package The Electronics Workbench package was chosen due to its friendly graphical-user interface With minimal previous knowledge, the student can start the design process from truth tables, for example, and progress through the textbook to more complex design The included circuits provide students the ability to simulate the functionality of the circuits in a hands-on fashion Topics are introduced in a gradual fashion The coverage starts with simple cases and builds on these cases to introduce general cases Chapter covers numbers representations and arithmetic in different bases The topics covered include positional number systems, data types and ranges, conversion between the different bases, arithmetic in different bases, coding, and floating-point number representation Radix complements and diminished radix complements are introduced Arithmetic using this representation, however, is deferred until Chapter Chapter includes introduction to Boolean algebra and its properties, algebraic simplification of Boolean expressions, gate representations in terms of design and analysis In addition, the chapter includes elementary electrical topics The concepts of voltage, current, and resistance are introduced These are then followed with Kirchhoff’s laws, voltage division, RC circuits, and applications in CMOS gate design Chapter begins with coverage of the canonical forms of Boolean functions and logical completeness The design of circuits from canonical forms is considered; logical completeness is used to introduce additional gates and to introduce different two-level designs Design automation tools and the Electronics Workbench are discussed Chapter covers K-maps and the tabular method of minimizations for completely and incompletely specified functions The chapter also includes multiple-output function minimization Chapter deals with arithmetic and logic circuits Topics covered include binary adders, look-ahead carry generators, magnitude comparators, binary subtractors, and multipliers In addition, the chapter includes discussion of radix arithmetic, and allowable ranges are discussed in detail The discussion includes the design of adders/subtractors based on the operands representation The chapter concludes by designing an arithmetic logic unit in relation to computer organization Bit-wise logic operations and multiplexers, as source selectors, are discussed in the context of the ALU (arithmetic logic unit) design Chapter covers decoders, encoders, multiplexers, and demultiplexers The design of Boolean functions, from decoder and multiplexers, and how to build larger units from smaller ones is covered In addition, the chapter covers viii programmable logic devices (Read Only Memory [ROM], Programmable Logic Array [PLA], and Programmable Array Logic® [PAL®]) The design using diodes as a conceptual realization at lower levels is given in the chapter as well Here students can use the Electronics Workbench to experiment Switches are included to simulate the process of programming the devices Chapter starts the discussion of sequential circuits It covers latches, latches behavioral description (characteristic tables, equations, state diagrams, and timing diagrams), gated latches, master-slave flip-flops, ones catching, edgetriggered flip-flops, and introduces sequential circuit analysis Chapter covers the design of sequential circuits by relating it to analysis as covered in the previous chapter Here, the constraints on the design are relaxed Design based on excitation equations is given, followed by design from characteristic equations and design from word problems The chapter includes discussions of the two machine representations, Mealy and Moore, and how one converts from one machine to the other In addition, state minimization is covered in the chapter Chapter includes the design of registers, counters, and general-purpose registers/counters The chapter introduces memory design by designing larger memory from smaller memory first This is then followed with design of memory cells and the internal design of a static RAM The chapter concludes with a discussion of register files and relates the discussion to CPU organization and the ALU designed in Chapter Chapter 10 is an introduction to instruction set architectures Two different architectures (AC-based and general-purpose register-based) are discussed Instructions formats in relation to both architectures are covered Covered as well are translation of assembly instructions into machine instructions and the different addressing modes Finally, the concept of macros as an alternative to hardware instructions is introduced The homework section of this chapter includes discussion of stack-based instruction set architecture The book concludes with Chapter 11, where the design of a simple AC-based CPU is considered To this, we introduce the concept of a micro-operation and register-transfer languages The design of register-transfer languages using direct connections and bus connections is then covered This is followed with instruction set completeness, the instruction set of the AC-based CPU, the datapath and memory connections, and the control unit organization The design of the CPU is then covered by considering the design of the combinational part of the control unit The instructor resources for the text include a solutions manual to the exercises given at the end of the chapters This is in addition to a detailed set of lecture notes supplied in PowerPoint format The textbook is written to be suitable as 3-credit hour or 4-credit hour course In a traditional 3-credit hour course, the minimal suggested topics coverage is ix Chapter Chapter (Sections 2.6 through 2.11 are optional) Chapter Chapter Chapter Chapter (Section 6.8 is optional) Chapter Chapter (optional) Chapter (Sections 9.8 and 9.9 are optional) The optional sections in Chapters and deal with the introductions to electrical circuits and designs of programmable logic devices using diodes The intention is to give the reader with no electrical engineering background an elementary introduction to the topics Chapter deals with design of sequential circuits Some instructors may cover the topic in a second digital course In a 4-credit hour course, the remaining chapters can be covered This may be suitable in computer science curricula with two courses in the hardware area (digital design and computer architecture) Author Hassan A.Farhat received his Ph.D in Computer Science and Engineering in 1988 from the University of Nebraska at Lincoln His research interests are in very-large-scale integration (VLSI) testing and computer graphics Among the publications in VLSI testing, Dr Farhat received best paper contributor award at the IEEE International Conference in Computer Design (ICCD) in 1988 His teaching interests are in the hardware track (digital design, computer organization, and computer architecture); VLSI testing; and computer graphics Table of Contents Numbers in Different Bases 1.1 Digital and Analog Data 1.2 Coding 1.3 Positional Number System 1.3.1 Numbers without Radix Point 1.3.2 Numbers with Radix Point 1.4 Octal and Hexadecimal Bases 1.5 Operands Types and Their Range 1.5.1 Data Types 10 1.5.2 Finite Range 10 1.6 Conversion of Decimal Numbers to Equivalent Numbers in Arbitrary Bases 12 1.6.1 Conversion of Integer Part 13 1.6.2 Converting the Fractional Part 14 1.7 Binary Arithmetic 16 1.7.1 Addition 16 1.7.2 Subtraction 19 1.7.3 Multiplication 20 1.8 Radix and Diminished Radix Complements 22 1.9 Representation of Negative Numbers 24 1.9.1 The Three Representations 24 1.9.2 Range of the Numbers 26 1.10 Coding and Binary Codes 27 1.10.1 BCD Code 28 xii 1.10.2 The Excess-m Code 28 1.10.3 Gray Code 30 1.10.4 Character Codes 31 1.11 Floating-Point Numbers 32 1.11.1 Binary Representation of Floating-Point 32 1.11.2 Normalized and Biased Floating-Point Representation 34 Chapter 2.1 Exercises 35 Boolean Algebra, and Gate and Transistor Design 37 Boolean or Switching Algebra 38 2.1.1 Definitions 39 2.1.2 Boolean Expressions 39 2.1.3 Truth Tables 41 2.2 Properties of Boolean Algebra 43 2.2.1 Axioms 43 2.2.2 Principle of Duality 44 2.3 Simplification of Boolean Expressions 48 2.4 Boolean Function 50 2.4.1 Definitions 51 2.4.2 Representations (Realization) 52 2.4.3 Complement of Boolean Functions 54 2.5 Circuit Analysis and Gate Design 55 2.5.1 Circuit Analysis and Gate Representation 55 2.5.2 Circuit Design 57 2.5.3 Multiple Input Gates 58 2.6 Electrical Circuits 59 2.6.1 Voltage, Current, and Resistance 59 2.6.2 Ohm’s Law 60 2.7 2.7.1 Kirchhoff’s Laws and Voltage Division Voltage Difference 61 61 xiii 2.7.2 Kirchhoff’s Voltage Law 62 2.7.3 Voltage Division 63 2.8 Kirchhoff’s Current Law 66 2.9 RC Circuits 70 2.10 Transistors and Logic Gates 73 2.11 CMOS Gate Design 76 2.11.1 Chapter 3.1 The AND CMOS Design 78 Exercises 78 Canonical Forms and Logical Completeness 83 Canonical Forms of Boolean Functions 85 3.1.1 Canonical Sum Form 85 3.1.2 Canonical Product Form 90 3.2 Sum of Product and Product of Sum Forms 93 3.2.1 Sum of Product Form 93 3.2.2 Product of Sum Form 94 3.2.3 Verification of Function Equality Using Canonical Forms 95 3.3 Design of Functions in Standard Forms 96 3.3.1 Canonical Sum and Sum of Product Design 96 3.3.2 Canonical Product and Product of Sum Representation 97 3.4 3.4.1 Other Two Variable Functions Number of Boolean Functions over Two Variables 98 99 3.4.1.1 The NAND Function 99 3.4.1.2 The NOR Function 99 3.4.1.3 The Exclusive OR Function 100 3.4.1.4 The Equivalence Function 100 3.5 Logical Completeness 101 3.5.1 Definition and Examples 101 3.5.2 The NAND and NOR Gates as Logically Complete Gates 102 3.6 HAND and NOR Design of Combinational Circuits 104 xiv 3.6.1 NAND Gate Design 105 3.6.2 NOR Gate Design 105 3.6.3 AND-OR-Invert and OR-AND-Invert Design 107 3.7 Design Automation Tools and Levels of Abstraction 108 3.7.1 Levels of Abstraction 109 3.7.2 Computer-Aided Design (CAD) Tools 110 3.7.2.1 Design Entry 111 3.7.2.2 Synthesis 112 3.7.2.3 Simulation 113 3.8 Application to the Electronics Workbench (EW) 114 3.8.1 The Electronics Workbench 114 3.8.2 Design Entry 115 3.8.2.1 Design Entry through Truth Tables 116 3.8.2.2 Design Entry through Equations 117 3.8.2.3 Design Entry Using Schematic Capture 117 3.8.3 Synthesis 120 3.8.3.1 Synthesis from Truth Table 121 3.8.3.2 Synthesis from Equations 122 3.8.3.3 Synthesis from Schematic Capture 122 3.8.4 3.9 Simulation Integrated Circuits 124 126 3.9.1 Small-Scale Integration 127 3.9.2 Medium-Scale Integration 127 3.9.3 Large-Scale Integration 127 3.9.4 Very-Large-Scale Integration 128 Chapter 4.1 4.1.1 Exercises 129 Minimization of Boolean Functions 131 Logical Adjacencies and K-Map Construction 132 Logical Adjacency 132 xv 4.1.2 K-Map Construction 134 4.1.2.1 The Inputs to the Table 135 4.1.2.2 How Is the Table Read? 135 4.2 Subcube Formations 136 4.2.1 Filling the Table Entries 136 4.2.2 Subcubes and Minimization 137 4.3 K-Map Minimization 140 4.3.1 Subcubes and Prime Implicants 140 4.3.2 K-Map Minimization 142 4.3.2.1 Relationship to Subcubes on a K-Map 143 4.3.2.2 The Minimization Process 145 4.3.2.3 Essential Prime Implicants and Examples 146 4.4 Incompletely Specified Functions 149 4.5 Product of Sum Minimization 152 4.6 The Quine-McCluskey or Tabular Method 153 4.6.1 Building Prime Implicants 153 4.6.2 Finding Minimal Cover 155 4.6.3 Algorithmic Procedure of the Tabular Method 156 4.6.3.1 Forming the Prime Implicants 156 4.6.3.2 Minimal Cover Procedure 159 4.6.4 4.7 Chapter 5.1 Decimal Method of Building Prime Implicants 161 Multiple-Output Function Minimization 162 Exercises 167 Arithmetic Logic Circuits and Programmable Logic Devices 170 Binary Adders 171 5.1.1 Iterative Circuits 171 5.1.2 Half and Full Adders 173 5.2 Look-Ahead Carry Generators 176 5.3 Magnitude Comparators 178 xvi 5.3.1 1-Bit Magnitude Comparator 180 5.3.2 Boolean Equations for the Equal Output 180 5.3.3 Design of the A>B Output 181 5.3.4 Boolean Equations for A