9
The Designer's Guide to VHDL Second Edition Peter J. Ashenden EDA CONSULTANT, ASHENDEN DESIGNS PTY. VISITING RESEARCH FELLOW, ADELAIDE UNIVERSITY Cl® MORGAN KAUFMANN PUBLISHERS An Imprint of Elsevier SAN FRANCISCO SAN DISCO NEW YORK BOSTON LONDON SYDNEY TOKYO

The Designer's Guide to VHDL Second Edition - CERN · PDF fileThe Designer's Guide to VHDL Second Edition ... Mixed Structural and Behavioral Models 12 ... Standard VHDL Synthesis

  • Upload
    lyduong

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Designer's Guide to VHDL Second Edition - CERN · PDF fileThe Designer's Guide to VHDL Second Edition ... Mixed Structural and Behavioral Models 12 ... Standard VHDL Synthesis

The Designer's Guideto VHDL

Second Edition

Peter J. AshendenEDA CONSULTANT, ASHENDEN DESIGNS PTY.

VISITING RESEARCH FELLOW, ADELAIDE UNIVERSITY

Cl®MORGAN KAUFMANN PUBLISHERS

An Imprint of Elsevier

SAN FRANCISCO SAN DISCO NEW YORK BOSTON

LONDON SYDNEY TOKYO

Page 2: The Designer's Guide to VHDL Second Edition - CERN · PDF fileThe Designer's Guide to VHDL Second Edition ... Mixed Structural and Behavioral Models 12 ... Standard VHDL Synthesis

Contents

Foreword viiby Paul Menchini

Foreword to the First Edition ixby Paul Menchini

Preface xix

Fundamental Concepts 11.1 Modeling Digital Systems 21.2 Domains and Levels of Modeling 41.3 Modeling Languages 71.4 VHDL Modeling Concepts 8

Elements of Behavior 9Elements of Structure 10Mixed Structural and Behavioral Models 12Test Benches 13Analysis, Elaboration and Execution 14

1.5 Learning a New Language: Lexical Elements and Syntax 16Lexical Elements 17Syntax Descriptions 23

Exercises 26

2 Scalar Data Types and Operation 292.1 Constants and Variables 30

Constant and Variable Declarations 30Variable Assignment 32

2.2 Scalar Types 32Type Declarations 33

xi

Page 3: The Designer's Guide to VHDL Second Edition - CERN · PDF fileThe Designer's Guide to VHDL Second Edition ... Mixed Structural and Behavioral Models 12 ... Standard VHDL Synthesis

Contents

Integer Types 33Floating-Point Types 36Physical Types 37Enumeration Types 40

2.3 Type Classification 46Subtypes 46Type Qualification 48Type Conversion. 49

2.4 Attributes of Scalar Types 492.5 Expressions and Operators 52Exercises 54

Sequentiai Statements 57

3.1 If Statements 583.2 Gase Statements 613.3 Null Statements 663.4 Loop Statements 67

Exit Statements 68Next Statements 71While Loops 72For Loops 74Summary of Loop Statements 76

3.5 Assertion and Report Statements 77Exercises 83

4 Composite Data Types and Operations 85

4.1 Arrays 86Multidimensional Arrays 88Array Aggregates 89Array Attributes 92

4.2 Unconstrained Array Types 94Strings 95Bit Vectors 95Standard-Logic Arrays 96String and Bit-String Literals 96Unconstrained Array Ports 97

4.3 Array Operations and Referencing 98Array Slices 100Array Type Conversions 101

4.4 Records 102Record Aggregates 104

Exercises 105

Page 4: The Designer's Guide to VHDL Second Edition - CERN · PDF fileThe Designer's Guide to VHDL Second Edition ... Mixed Structural and Behavioral Models 12 ... Standard VHDL Synthesis

Contents

Basic Modeling Constructs 1075.1 Entity Declarations 1085.2 Architecture Bodies 110

Concurrent Statements 111Signal Declarations 111

5.3 Behavioral Descriptions 113Signal Assignment 113Signal Attributes 115Wait Statements 118Delta Delays 121Transport and Inertial Delay Mechanisms 124Process Statements 130Concurrent Signal Assignment Statements 131Concurrent Assertion Statements 138Entities and Passive Processes 139

5.4 Structural Descriptions 140Component Instantiation and Port Maps 141

5.5 Design Processing 149Analysis 149Design Libraries, Library Clauses and Use Clauses 151Elaboration 153Execution 156

Exercises 157

Case Study: A Pipelined Multiplier Accumulator

1676.1 Algorithm Outline 168

MAC Entity Declaration 1706.2 A Behavioral Model 171

Testing the Behavioral Model 1766.3 A Register-Transfer-Level Model 179

Modules in the Register-Transfer-Level Model 181The Register-Transfer-Level .Architecture Body 188Testing the Register-Transfer-Level Model 191

Exercises 193

Subprograms

1957.1 Procedures 196

Return Statement in a Procedure 2017.2 Procedure Parameters 202

Signal Parameters 206Default Values 209Unconstrained Array Parameters 210Summary of Procedure Parameters 212

7.3 Concurrent Procedure Call Statements 213

Page 5: The Designer's Guide to VHDL Second Edition - CERN · PDF fileThe Designer's Guide to VHDL Second Edition ... Mixed Structural and Behavioral Models 12 ... Standard VHDL Synthesis

XIV Contents

7.4 Functions 215Functional Modeling 218Pure and Impure Functions 218The Function Now 219

7.5 Overloading 220Overloading Operator Symbols 222

7.6 Visibility of Declarations 223Exercises 227

Packages and Use Clauses 2318.1 Package Declarations 232

Subprograms in Package Declarations 236Constants in Package Declarations 237

8.2 Package Bodies 2398.3 Use Clauses 2418.4 The Predefined Package Standard 2438.5 IEEE Standard Packages 244

Std_Logic_1164 Multivalue Logic System 245Standard VHDL Synthesis Packages 246Standard VHDL Mathematical Packages 250

Exercises 255

9 Aliases 2579.1 Aliases for Data Objects 2589.2 Aliases for Non-Data Items 261Exercises 264

10 Case Study: A Bit-Vector Arithmetic Package 267

10.1 The Package Interface 26810.2 The Package Body 27110.3 An ALU Using the Arithmetic Package 280Exercises 282

Resolved Signals 28511.1 Basic Resolved Signals 286

Composite Resolved Subtypes 290Summary of Resolved Subtypes 294

11.2 IEEE Std_Logic_1164 Resolved Subtypes 29411.3 Resolved Signals and Ports 297

Resolved Ports 298Driving Value Attribute 300

11.4 Resolved Signal Parameters 300Exercises 302

Page 6: The Designer's Guide to VHDL Second Edition - CERN · PDF fileThe Designer's Guide to VHDL Second Edition ... Mixed Structural and Behavioral Models 12 ... Standard VHDL Synthesis

Contents

12 Generic Constants 30912.1 Parameterizing Behavior 31012.2 Parameterizing Structure 313Exercises 315

13 Components and Configurations 31713.1 Components 318

Component Declarations 318Component Instantiation 319Packaging Components 321

13.2 Configuring Component Instances 322Basic Configuration Declarations 323Configuring Multiple Levels of Hierarchy 325Direct Instantiation of Configured Entities 328Generic and Port Maps in Configurations 329Deferred Component Binding 335

13.3 Configuration Specifications 337Incremental Binding 338

Exercises 344

14 Generate Statements 34914.1 Generating Iterative Structures 35014.2 Conditionally Generating Structures 355

Recursive Structures 35914.3 Configuration of Generate Statements 362Exercises 367

15 Case Study: The DLX Computer System

37315.1 Overview of the DLX CPU 374

DLX Registers 374DLX Instruction Set 375DIX External Interface 379

15.2 A Behavioral Model 382'The DLX Types Package 382The DLX Entity Declaration 383The DLX Instruction Set Package 384The DLX Behavioral Architecture Body 392

15.3 Testing the Behavioral Model 407The Test-Bench Clock Generator 408The Test-Bench Memory 408The Test-Bench Architecture Body and Configuration 413

15.4 A Register-Transfer-Level Model 416The Arithmetic and Logic Unit 417The Registers 421

Page 7: The Designer's Guide to VHDL Second Edition - CERN · PDF fileThe Designer's Guide to VHDL Second Edition ... Mixed Structural and Behavioral Models 12 ... Standard VHDL Synthesis

xvi Contents

The Register File 425The Multiplexer 426The Extenders 427The Architecture Body 428The Controller 434The Configuration Declaration 450

15.5 Testing the Register-Transfer-Level Model 452

Exercises 456

16 Guards and. Blocks 45916.1 Guarded Signals and Disconnection 460

The Driving Attribute 464Guarded Ports 465Guarded Signal Parameters 467

16.2 Blocks and Guarded Signal Assignment 469Explicit Guard Signals 472Disconnection Specifications 474

16.3 Using Blocks for Structural Modularity 475Generics and Ports in Blocks 478Configuring Designs with Blocks 479

Exercises 482

17 Access Types and Abstract Data Types

48717.1 Access Types 488

Access Type Declarations and Allocators 488Assignment and Equality of Access Values 490Access Types for Records and Arrays 492

17.2 Linked Data Structures 494Deallocation and Storage Management 498

17.3 Abstract Data Types Using Packages 499Container ADTs 504

Exercises 512

1 Files and Input/Output 51518.1 Files 516

File Declarations 516Reading from Files 517Writing to Files 520Files Declared in Subprograms 523Explicit Open and Close Operations 524File Parameters in Subprograms 527Portability of Files 529

18.2 The Package Textio 529Textio Read Operations 531Textio Write Operations 541

Page 8: The Designer's Guide to VHDL Second Edition - CERN · PDF fileThe Designer's Guide to VHDL Second Edition ... Mixed Structural and Behavioral Models 12 ... Standard VHDL Synthesis

Contents xvii

Reading and Writing User-Defined Types 543Exercises 544

19 Case Study: Queuing Networks 54919.1 Queuing Network Concepts 55019.2 Queuing Network Modules 551

Random Nurnber Generator 551A Package for Token and Arc Types 555The Token Source Module 557The Token Sink Module 561The Queue Module 563The Token Server Module 569The Fork Module 571The Join Module 575

19.3 A Queuing Network for a Disk System 578Exercises 584

20 Attributes and. Groups 58520.1 Predefined Attributes 586

Attributes of Scalar Types 586Attributes of Array Types and Objects 587Attributes of Signals 587Attributes of Named Items 588

20.2 User-Defined Attributes 595Attribute Declarations 596Attribute Specifications 596The Attribute Foreign 606

20.3 Groups 608Exercises 611

21 Miscellaneous Topics

61521.1 Buffer and Linkage Ports 61621.2 Conversion Functions in Association Lists 61821.3 Postponed Processes 62321.4 Shared Variables 626Exercises 636

A Synthesis

639A.1 Use of Data Types 640A.2 Interpretation of Standard Logic Values 642A.3 Modeling Combinatorial Logic 643A.4 Modeling Sequential Logic 644A.5 VHDL Modeling Restrictions 650

Page 9: The Designer's Guide to VHDL Second Edition - CERN · PDF fileThe Designer's Guide to VHDL Second Edition ... Mixed Structural and Behavioral Models 12 ... Standard VHDL Synthesis

Contentsxviii

The Predefined Package Standard

655

IEEE Standard Packages

659

C.1 Std_Logic_1164 Multivalue Logic System 659

C.2 Standard 1076.3 VHDL Synthesis Packages 662

C.3 Standard 1076.2 VHDL Mathematical Packages 665

Related Standards

671

D.1 IEEE VHDL Standards 671

D.2 Other Design Automation Standards 677

VHDL Syntax 683

E.1 Design File 685

E.2 Library Unit Declarations 6eE.3 Declarations and Specifications 686

E.4 Type Definitions 689

E.5 Concurrent Statements 690

E.6 Sequential Statements 692

E.7 Interfaces and Associations 693

E.8 Expressions 694

Differences among VHDL-87, VHDL-93 and VHDL-2001

697F.1 Lexical Differences 697

F.2 Syntactic Differences 698

F.3 Semantic Differences 699F.4 Differences in the Standard Environment 700

F.5 VHDL-93 Facilities Not in VHDL-87 701

F.6 VHDL-2001 Facilities Not in VHDL-87 or VHDL-93 701

F.7 Features under Consideration for Removal 701

(&:15 Answers to Exercises 703

References 723

Index 725