<p></p>Preface <p></p> <p></p>1 Digital Design Using VHDL and PLDs 1<p></p> <p>1.1 VHDL/PLD Design Methodology 1</p> <p></p> <p></p>1.2 Requirements Analysis and Specification 5<p></p> <p></p>1.3 VHDL Design Description 6<p></p> <p></p>1.4 Verification Using Simulation 11<p></p> <p></p>1.5 Testbenches 13<p></p> <p></p>1.6 Functional (Behavioral) Simulation 16<p></p> <p></p>1.7 Programmable Logic Devices (PLDs) 18<p></p> <p></p>1.8 SPLDs and the 22V10 21<p></p> <p></p>1.9 Logic Synthesis for the Target PLD 27<p></p> <p></p>1.10 Place-and-Route and Timing Simulation 31<p></p> <p></p>1.11 Programming and Verifying a Target PLD 37<p></p> <p></p>1.12 VHDL/PLD Design Methodology Advantages 38<p></p> <p></p>1.13 VHDL’s Development 39<p></p> <p></p>1.14 VHDL for Synthesis versus VHDL for Simulation 39<p></p> <p></p>1.15 This Book’s Primary Objective 40 <p></p> <p></p> <p></p> <p>2 Entities , Architectures , and Coding Styles 44</p> <p></p> <p></p> 2.1 Design Units, Library Units, and Design Entities 44<p></p> <p></p>2.2 Entity Declaration 45<p></p> <p></p>2.3 VHDL Syntax Definitions 47<p></p> <p></p>2.4 Port Modes 50<p></p> <p></p>2.5 Architecture Body 53<p></p> <p></p>2.6 Coding Styles 55<p></p> <p></p>2.7 Synthesis Results versus Coding Style 66<p></p> <p></p>2.8 Levels of Abstraction and Synthesis 69<p></p> <p></p>2.9 Design Hierarchy and Structural Style 71 <p></p> <p> </p> <p></p> <p></p>3 Signals and Data Types 82<p></p><p></p>3.1 Object Classes and Object Types 82<p></p> <p></p>3.2 Signal Objects 84<p></p> <p></p>3.3 Scalar Types 88<p></p> <p></p>3.4 Type Std_Logic 93<p></p> <p></p>3.5 Scalar Literals and Scalar Constants 99<p></p> <p></p>3.6 Composite Types 100<p></p> <p></p>3.7 Arrays 101<p></p> <p></p>3.8 Types Unsigned and Signed 107<p></p> <p></p>3.9 Composite Literals and Composite Constants 110<p></p> <p></p>3.10 Integer Types 112<p></p> <p></p>3.11 Port Types for Synthesis 116<p></p> <p></p>3.12 Operators and Expressions 118 <p></p> <p> </p> <p></p> <p></p>4 Dataf low Style Combinational Design 123<p></p><p></p>4.1 Logical Operators 123<p></p> <p></p>4.2 Signal Assignments in Dataflow Style Architectures 127<p></p> <p></p>4.3 Selected Signal Assignment 130<p></p> <p></p>4.4 Type Boolean and the Relational Operators 132<p></p> <p></p>4.5 Conditional Signal Assignment 134<p></p> <p></p>4.6 Priority Encoders 139<p></p> <p></p>4.7 Don’t Care Inputs and Outputs 140<p></p> <p></p>4.8 Decoders 144<p></p> <p></p>4.9 Table Lookup 147<p></p> <p></p>4.10 Three-state Buffers 151<p></p> <p></p>4.11 Avoiding Combinational Loops 155<p></p> <p> </p> <p>5 Behavi oral Style Combinational Design 165</p> <p></p> <p></p> 5.1 Behavioral Style Architecture 165<p></p> <p></p>5.2 Process Statement 169<p></p> <p></p>5.3 Sequential Statements 170 <p></p> <p></p>5.4 Case Statement 171<p></p> <p></p>5.5 If Statement 176<p></p> <p></p>5.6 Loop Statement 181<p></p> <p></p>5.7 Variables 185<p></p> <p></p>5.8 Parity Detector Example 188<p></p> <p></p>5.9 Synthesis of Processes Describing Combinational Systems 193 <p></p> <p> </p> <p></p> <p></p>6 Event-Driven Simulation 201<p></p><p></p>6.1 Simulator Approaches 201<p></p> <p></p>6.2 Elaboration 203<p></p> <p></p>6.3