| |
| |
Preface | |
| |
| |
| |
Introduction to Digital Systems | |
| |
| |
| |
Explanation of Terms | |
| |
| |
| |
Design Levels | |
| |
| |
| |
Combinational vs. Sequential Systems | |
| |
| |
| |
Digital Integrated Circuits | |
| |
| |
| |
Diodes | |
| |
| |
| |
Transistors | |
| |
| |
| |
MOS Transistors | |
| |
| |
| |
Integrated Circuits (ICs) | |
| |
| |
| |
Evolution of Computers | |
| |
| |
| |
A Typical Microcomputer-Based Application | |
| |
| |
| |
Trends and Perspectives in Digital Technology | |
| |
| |
| |
Number Systems and Codes | |
| |
| |
| |
Number Systems | |
| |
| |
| |
General Number Representation | |
| |
| |
| |
Converting Numbers from One Base to Another | |
| |
| |
| |
Unsigned and Signed Binary Numbers | |
| |
| |
| |
Codes | |
| |
| |
| |
Binary-Coded-Decimal Code (8421 Code) | |
| |
| |
| |
Alphanumeric Codes | |
| |
| |
| |
Excess-3 Code | |
| |
| |
| |
Gray Code | |
| |
| |
| |
Unicode | |
| |
| |
| |
Fixed-Point and Floating-Point Representations | |
| |
| |
| |
Arithmetic Operations | |
| |
| |
| |
Binary Arithmetic | |
| |
| |
| |
BCD Arithmetic | |
| |
| |
| |
Multiword Binary Addition and Subtraction | |
| |
| |
| |
Error Correction and Detection | |
| |
| |
Questions and Problems | |
| |
| |
| |
Boolean Algebra and Digital Logic Gates | |
| |
| |
| |
Basic Logic Operations | |
| |
| |
| |
NOT Operation | |
| |
| |
| |
OR Operation | |
| |
| |
| |
AND Operation | |
| |
| |
| |
Other Logic Operations | |
| |
| |
| |
NOR Operation | |
| |
| |
| |
NAND Operation | |
| |
| |
| |
Exclusive-OR Operation (XOR) | |
| |
| |
| |
Exclusive-NOR Operation (XNOR) | |
| |
| |
| |
IEEE Symbols for Logic Gates | |
| |
| |
| |
Positive and Negative Logic | |
| |
| |
| |
Boolean Algebra | |
| |
| |
| |
Boolean Identities | |
| |
| |
| |
Simplification Using Boolean Identities | |
| |
| |
| |
Consensus Theorem | |
| |
| |
| |
Complement of a Boolean Function | |
| |
| |
| |
Standard Representations | |
| |
| |
| |
Karnaugh Maps | |
| |
| |
| |
Two-Variable K-Map | |
| |
| |
| |
Three-Variable K-Map | |
| |
| |
| |
Four-Variable K-Map | |
| |
| |
| |
Prime Implicants | |
| |
| |
| |
Expressing a Function in Product-of-Sums Form Using a K-Map | |
| |
| |
| |
Don't Care Conditions | |
| |
| |
| |
Five-Variable K-Map | |
| |
| |
| |
Quine-McCluskey Method | |
| |
| |
| |
Implementation of Digital Circuits with NAND, NOR, and Exclusive-OR/Exclusive-NOR Gates | |
| |
| |
| |
NAND Gate Implementation | |
| |
| |
| |
NOR Gate Implementation | |
| |
| |
| |
XOR/XNOR Implementations | |
| |
| |
Questions and Problems | |
| |
| |
| |
Combinational Logic Design | |
| |
| |
| |
Basic Concepts | |
| |
| |
| |
Analysis of a Combinational Logic Circuit | |
| |
| |
| |
Design of a Combinational Circuit | |
| |
| |
| |
Multiple-Output Combinational Circuits | |
| |
| |
| |
Typical Combinational Circuits | |
| |
| |
| |
Binary / BCD Adders and Binary Subtractors | |
| |
| |
| |
Comparators | |
| |
| |
| |
Decoders | |
| |
| |
| |
Encoders | |
| |
| |
| |
Multiplexers | |
| |
| |
| |
Demultiplexers | |
| |
| |
| |
IEEE Standard Symbols | |
| |
| |
| |
Read-Only Memories (ROMs) | |
| |
| |
| |
Programmable Logic Devices (PLDs) | |
| |
| |
| |
Commercially Available Field Programmable Devices (FPDs) | |
| |
| |
| |
Hardware Description Language (HDL) | |
| |
| |
Questions and Problems | |
| |
| |
| |
Sequential Logic Design | |
| |
| |
| |
Basic Concepts | |
| |
| |
| |
Flip-Flops | |
| |
| |
| |
SR Latch | |
| |
| |
| |
RS Flip-Flop | |
| |
| |
| |
D Flip-Flop | |
| |
| |
| |
JK Flip-Flop | |
| |
| |
| |
T Flip-Flop | |
| |
| |
| |
Master-Slave Flip-Flop | |
| |
| |
| |
Preset and Clear Inputs | |
| |
| |
| |
Summary of Flip-Flops | |
| |
| |
| |
Analysis of Synchronous Sequential Circuits | |
| |
| |
| |
Types of Synchronous Sequential Circuits | |
| |
| |
| |
Minimization of States | |
| |
| |
| |
Design of Synchronous Sequential Circuits | |
| |
| |
| |
Design of Counters | |
| |
| |
| |
Examples of Synchronous Sequential Circuits | |
| |
| |
| |
Registers | |
| |
| |
| |
Modulo-n Counters | |
| |
| |
| |
Random-Access Memory (RAM) | |
| |
| |
| |
Algorithmic State Machines (ASM) Chart | |
| |
| |
| |
Asynchronous Sequential Circuits | |
| |
| |
Questions and Problems | |
| |
| |
| |
Microcomputer Architecture, Programming, and System Design Concepts | |
| |
| |
| |
Basic Blocks of a Microcomputer | |
| |
| |
| |
Typical Microcomputer Architecture | |
| |
| |
| |
The Microcomputer Bus | |
| |
| |
| |
Clock Signals | |
| |
| |
| |
The Single-Chip Microprocessor | |
| |
| |
| |
Register Section | |
| |
| |
| |
Control Unit | |
| |
| |
| |
Arithmetic and Logic Unit (ALU) | |
| |
| |
| |
Functional Representations of a Simple and a Typical Microprocessor | |
| |
| |
| |
Microprogramming the Control Unit (A Simplified Explanation) | |
| |
| |
| |
The Memory | |
| |
| |
| |
Random-Access Memory (RAM) | |
| |
| |
| |
Read-Only Memory (ROM) | |
| |
| |
| |
READ and WRITE Operations | |
| |
| |
| |
Memory Organization | |
| |
| |
| |
Input/Output | |
| |
| |
| |
Microcomputer Programming Concepts | |
| |
| |
| |
Microcomputer Programming Languages | |
| |
| |
| |
Machine Language | |
| |
| |
| |
Assembly Language | |
| |
| |
| |
High-Level Languages | |
| |
| |
| |
Monitors | |
| |
| |
| |
Flowcharts | |
| |
| |
| |
Basic Features of Microcomputer Development Systems | |
| |
| |
| |
System Development Flowchart | |
| |
| |
Questions and Problems | |
| |
| |
| |
Design of Computer Instruction Set and the CPU | |
| |
| |
| |
Design of the Computer Instructions | |
| |
| |
| |
Reduced Instruction Set Computer (RISC) | |
| |
| |
| |
Design of the CPU | |
| |
| |
| |
Register Design | |
| |
| |
| |
Adders | |
| |
| |
| |
Addition, Subtraction, Multiplication and Division of Unsigned and Signed Numbers | |
| |
| |
| |
ALU Design | |
| |
| |
| |
Design of the Control Unit | |
| |
| |
| |
Design of a Microprogrammed CPU | |
| |
| |
Questions and Problems | |
| |
| |
| |
Memory, I/O, and Parallel Processing | |
| |
| |
| |
Memory Organization | |
| |
| |
| |
Introduction | |
| |
| |
| |
Main Memory Array Design | |
| |
| |
| |
Virtual Memory and Memory Management Concepts | |
| |
| |
| |
Cache Memory Organization | |
| |
| |
| |
Input/Output | |
| |
| |
| |
Programmed I/O | |
| |
| |
| |
Interrupt I/O | |
| |
| |
| |
Direct Memory Access (DMA) | |
| |
| |
| |
Summary of I/O | |
| |
| |
| |
Fundamentals of Parallel Processing | |
| |
| |
| |
General Classifications of Computer Architectures | |
| |
| |
| |
Pipeline Processing | |
| |
| |
Questions and Problems | |
| |
| |
| |
INTEL 8086 | |
| |
| |
| |
Introduction | |
| |
| |
| |
8086 Main Memory | |
| |
| |
| |
8086 Registers | |
| |
| |
| |
8086 Addressing Modes | |
| |
| |
| |
Register and Immediate Modes | |
| |
| |
| |
Memory Addressing Modes | |
| |
| |
| |
Port Addressing | |
| |
| |
| |
Relative Addressing Mode | |
| |
| |
| |
Implied Addressing Mode | |
| |
| |
| |
8086 Instruction Set | |
| |
| |
| |
Data Transfer Instructions | |
| |
| |
| |
Arithmetic Instructions | |
| |
| |
| |
Bit Manipulation Instructions | |
| |
| |
| |
String Instructions | |
| |
| |
| |
Unconditional Transfer Instructions | |
| |
| |
| |
Conditional Branch Instructions | |
| |
| |
| |
Iteration Control Instructions | |
| |
| |
| |
Interrupt Instructions | |
| |
| |
| |
Processor Control Instructions | |
| |
| |
| |
8086 Assembler-Dependent Instructions | |
| |
| |
| |
Typical 8086 Assembler Pseudo-Instructions or Directives | |
| |
| |
| |
SEGMENT and ENDS Directives | |
| |
| |
| |
ASSUME Directive | |
| |
| |
| |
DUP, LABEL, and Other Directives | |
| |
| |
| |
8086 Stack | |
| |
| |
| |
8086 Delay Routine | |
| |
| |
| |
System Design Using the 8086 | |
| |
| |
| |
8086 Pins and Signals | |
| |
| |
| |
Basic 8086 System Concepts | |
| |
| |
| |
Interfacing with Memories | |
| |
| |
| |
8086 I/O Ports | |
| |
| |
| |
Important Points To Be Considered for 8086 Interface to Memory and I/O | |
| |
| |
| |
8086-Based Microcomputer | |
| |
| |
| |
8086 Interrupts | |
| |
| |
| |
Predefined Interrupts | |
| |
| |
| |
Internal Interrupts | |
| |
| |
| |
External Maskable Interrupts | |
| |
| |
| |
Interrupt Procedures | |
| |
| |
| |
Interrupt Priorities | |
| |
| |
| |
Interrupt Pointer Table | |
| |
| |
| |
8086 DMA | |
| |
| |
| |
Interfacing an 8086-Based Microcomputer to a Hexadecimal Keyboard and Seven-Segment Displays | |
| |
| |
| |
Basics of Keyboard and Display Interface to a Microcomputer | |
| |
| |
| |
Hex Keyboard Interface to an 8086-Based Microcomputer | |
| |
| |
Questions and Problems | |
| |
| |
| |
Motorola MC68000 | |
| |
| |
| |
Introduction | |
| |
| |
| |
68000 Registers | |
| |
| |
| |
68000 Memory Addressing | |
| |
| |
| |
68000 Addressing Modes | |
| |
| |
| |
Register Direct Addressing | |
| |
| |
| |
Address Register Indirect Addressing | |
| |
| |
| |
Absolute Addressing | |
| |
| |
| |
Program Counter Relative Addressing | |
| |
| |
| |
Immediate Data Addressing | |
| |
| |
| |
Implied Addressing | |
| |
| |
| |
Functional Categories of 68000 Addressing Modes | |
| |
| |
| |
68000 Instruction Set | |
| |
| |
| |
Data Movement Instructions | |
| |
| |
| |
Arithmetic Instructions | |
| |
| |
| |
Logical Instructions | |
| |
| |
| |
Shift and Rotate Instructions | |
| |
| |
| |
Bit Manipulation Instructions | |
| |
| |
| |
Binary-Coded-Decimal Instructions | |
| |
| |
| |
Program Control Instructions | |
| |
| |
| |
System Control Instructions | |
| |
| |
| |
68000 Stack | |
| |
| |
| |
68000 Delay Routine | |
| |
| |
| |
68000 Pins And Signals | |
| |
| |
| |
Synchronous and Asynchronous Control Lines | |
| |
| |
| |
System Control Lines | |
| |
| |
| |
Interrupt Control Lines | |
| |
| |
| |
DMA Control Lines | |
| |
| |
| |
Status Lines | |
| |
| |
| |
68000 Clock and Reset Signals | |
| |
| |
| |
68000 Clock Signals | |
| |
| |
| |
68000 Reset Circuit | |
| |
| |
| |
68000 Read and Write Cycle Timing Diagrams | |
| |
| |
| |
68000 Memory Interface | |
| |
| |
| |
68000 I/O | |
| |
| |
| |
68000 Programmed I/O | |
| |
| |
| |
68000 Interrupt System | |
| |
| |
| |
68000 DMA | |
| |
| |
| |
68000 Exception Handling | |
| |
| |
| |
68000/2732/6116/6821-Based Microcomputer | |
| |
| |
| |
Multiprocessing with the 68000 Using the TAS Instruction and the AS Signal | |
| |
| |
Questions and Problems | |
| |
| |
| |
Intel and Motorola 32- & 64-Bit Microprocessors | |
| |
| |
| |
Typical Features of 32-Bit and 64-Bit Microprocessors | |
| |
| |
| |
Intel 32-Bit and 64-Bit Microprocessors | |
| |
| |
| |
Intel 80386 | |
| |
| |
| |
Internal 80386 Architecture | |
| |
| |
| |
Processing Modes | |
| |
| |
| |
Basic 80386 Programming Model | |
| |
| |
| |
80386 Addressing Modes | |
| |
| |
| |
80386 Instruction Set | |
| |
| |
| |
80386 Pins and Signals | |
| |
| |
| |
80386 Modes | |
| |
| |
| |
80386 System Design | |
| |
| |
| |
80386 I/O | |
| |
| |
| |
Intel 80486 Microprocessor | |
| |
| |
| |
Intel 80486/80386 Comparison | |
| |
| |
| |
Special Features of the 80486 | |
| |
| |
| |
80486 New Instructions Beyond Those of the 80386 | |
| |
| |
| |
Intel Pentium Microprocessor | |
| |
| |
| |
Pentium Registers | |
| |
| |
| |
Pentium Addressing Modes and Instructions | |
| |
| |
| |
Pentium versus 80486: Basic Differences in Registers, Paging, Stack Operations, and Exceptions | |
| |
| |
| |
Pentium Input/Output | |
| |
| |
| |
Applications with the Pentium | |
| |
| |
| |
Pentium versus Pentium Pro | |
| |
| |
| |
Pentium II/Celeron/Pentium II Xeon/Pentium III/Pentium 4 | |
| |
| |
| |
Merced/IA-64 | |
| |
| |
| |
Overview of Motorola 32- and 64-Bit Microprocessors | |
| |
| |
| |
Motorola MC68020 | |
| |
| |
| |
Motorola MC68030 | |
| |
| |
| |
Motorola MC68040/MC68060 | |
| |
| |
| |
PowerPC Microprocessor | |
| |
| |
| |
Motorola's State-of-the-Art Microprocessors | |
| |
| |
Questions and Problems | |
| |
| |
| |
Answers to Selected Problems | |
| |
| |
| |
Glossary | |
| |
| |
| |
Motorola 68000 and Support Chips | |
| |
| |
| |
68000 Execution Times | |
| |
| |
| |
Intel 8086 and Support Chips | |
| |
| |
| |
8086 Instruction Set Reference Data | |
| |
| |
| |
68000 Instruction Set | |
| |
| |
| |
8086 Instruction Set | |
| |
| |
| |
Verilog | |
| |
| |
| |
Introduction to Verilog | |
| |
| |
| |
Structural Modeling | |
| |
| |
| |
Dataflow Modeling | |
| |
| |
| |
Behavioral Modeling | |
| |
| |
| |
Verilog Descriptions of Typical Combinational Logic Circuits | |
| |
| |
| |
Verilog Descriptions of Typical Synchronous Sequential Circuits | |
| |
| |
| |
Status Register Design Using Verilog | |
| |
| |
| |
CPU Design Using Verilog | |
| |
| |
Questions and Problems | |
| |
| |
| |
VHDL | |
| |
| |
| |
Introduction to VHDL | |
| |
| |
| |
Structural Modeling | |
| |
| |
| |
Behavioral Modeling | |
| |
| |
| |
Dataflow Modeling | |
| |
| |
| |
Mixed Modeling | |
| |
| |
| |
VHDL Descriptions of Typical Combinational Logic Circuits | |
| |
| |
| |
VHDL Descriptions of Typical Synchronous Sequential Circuits | |
| |
| |
| |
Status Register Design Using VHDL | |
| |
| |
| |
CPU Design Using VHDL | |
| |
| |
Questions and Problems | |
| |
| |
Bibliography | |
| |
| |
Credits | |
| |
| |
Index | |