Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010070330 | TK7885.7 P32 2004 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
A comprehensive resource on Verilog HDL for beginners and experts
Large and complicated digital circuits can be incorporated into hardware by using Verilog, a hardware description language (HDL). A designer aspiring to master this versatile language must first become familiar with its constructs, practice their use in real applications, and apply them in combinations in order to be successful. Design Through Verilog HDL affords novices the opportunity to perform all of these tasks, while also offering seasoned professionals a comprehensive resource on this dynamic tool.
Describing a design using Verilog is only half the story: writing test-benches, testing a design for all its desired functions, and how identifying and removing the faults remain significant challenges. Design Through Verilog HDL addresses each of these issues concisely and effectively. The authors discuss constructs through illustrative examples that are tested with popular simulation packages, ensuring the subject matter remains practically relevant.
Other important topics covered include:
Primitives Gate and Net delays Buffers CMOS switches State machine design Further, the authors focus on illuminating the differences between gate level, data flow, and behavioral styles of Verilog, a critical distinction for designers. The book's final chapters deal with advanced topics such as timescales, parameters and related constructs, queues, and switch level design.Each chapter concludes with exercises that both ensure readers have mastered the present material and stimulate readers to explore avenues of their own choosing. Written and assembled in a paced, logical manner, Design Through Verilog HDL provides professionals, graduate students, and advanced undergraduates with a one-of-a-kind resource.
Author Notes
B. Bala Tripura Sundari is a Senior Lecturer in the ECE Department of the Amrita Institute of Technology.
Reviews 1
Choice Review
Padmanabhan and Sundari (both, Amrita Institute of Technology, India) offer a book ideally suited for teaching digital hardware design techniques using a low-level programming language. They clearly demonstrate how Verilog HDL (hardware description language) allows one to create electronic circuit designs at various levels of abstraction (architectural, behavioral, gate and switch) and the subsequent stages in the design process of very large scale integration (VLSI) integrated circuit layouts. Topics include the syntax and semantics of Verilog HDL, gate and switch level logic simulation, system functionality modeling, and programmable logic devices. These topics are thoroughly and robustly presented with the help of a multitude of examples and diagrams. The authors consistently display the rare ability to simplify complex design topics, making the book a delight for those with minimal programming and digital logic experience, although a quick refresher in digital logic and a few pages devoted to the primitives of Boolean algebra would be appropriate. Nonetheless, it accurately describes the digital hardware design process. ^BSumming Up: Highly recommended. Upper-division undergraduates through professionals. M. Connell SUNY College at Cortland
Table of Contents
Preface | p. xi |
Acknowledgements | p. xiii |
1 Introduction to Vlsi Design | p. 1 |
1.1 Introduction | p. 1 |
1.2 Conventional Approach to Digital Design | p. 1 |
1.3 Vlsi Design | p. 3 |
1.4 Asic Design Flow | p. 4 |
1.5 Role of Hdl | p. 9 |
2 Introduction to Verilog | p. 11 |
2.1 Verilog as an Hdl | p. 11 |
2.2 Levels of Design Description | p. 11 |
2.3 Concurrency | p. 13 |
2.4 Simulation and Synthesis | p. 14 |
2.5 Functional Verification | p. 14 |
2.6 System Tasks | p. 16 |
2.7 Programming Language Interface (PLI) | p. 16 |
2.8 Module | p. 16 |
2.9 Simulation and Synthesis Tools | p. 22 |
2.10 Test Benches | p. 27 |
3 Language Constructs and Conventions in Verilog | p. 31 |
3.1 Introduction | p. 31 |
3.2 Keywords | p. 31 |
3.3 Identifiers | p. 32 |
3.4 White Space Characters | p. 33 |
3.5 Comments | p. 33 |
3.6 Numbers | p. 34 |
3.7 Strings | p. 36 |
3.8 Logic Values | p. 38 |
3.9 Strengths | p. 39 |
3.10 Data Types | p. 40 |
3.11 Scalars and Vectors | p. 41 |
3.12 Parameters | p. 42 |
3.13 Memory | p. 43 |
3.14 Operators | p. 43 |
3.15 System Tasks | p. 44 |
3.16 Exercises | p. 46 |
4 Gate Level Modeling-1 | p. 47 |
4.1 Introduction | p. 47 |
4.2 And Gate Primitive | p. 47 |
4.3 Module Structure | p. 50 |
4.4 Other Gate Primitives | p. 51 |
4.5 Illustrative Examples | p. 51 |
4.6 Tri-State Gates | p. 64 |
4.7 Array of Instances of Primitives | p. 66 |
4.8 Additional Examples | p. 69 |
4.9 Exercises | p. 79 |
5 Gate Level Modeling-2 | p. 81 |
5.1 Introduction | p. 81 |
5.2 Design of Flip-Flops with Gate Primitives | p. 81 |
5.3 Delays | p. 91 |
5.4 Strengths and Contention Resolution | p. 102 |
5.5 Net Types | p. 109 |
5.6 Design of Basic Circuits | p. 115 |
5.7 Exercises | p. 124 |
6 Modeling at Data Flow Level | p. 127 |
6.1 Introduction | p. 127 |
6.2 Continuous Assignment Structures | p. 127 |
6.3 Delays and Continuous Assignments | p. 133 |
6.4 Assignment to vectors | p. 135 |
6.5 Operators | p. 136 |
6.6 Additional Examples | p. 150 |
6.7 Exercises | p. 157 |
7 Behavioral Modeling | p. 159 |
7.1 Introduction | p. 159 |
7.2 Operations and Assignments | p. 160 |
7.3 Functional Bifurcation | p. 161 |
7.4 Initial Construct | p. 164 |
7.5 Always Construct | p. 168 |
7.6 Examples | p. 170 |
7.7 Assignments with Delays | p. 184 |
7.8 Wait Construct | p. 192 |
7.9 Multiple Always Blocks | p. 195 |
7.10 Designs at Behavioral Level | p. 197 |
7.11 Blocking and Nonblocking Assignments | p. 201 |
7.12 The case Statement | p. 205 |
7.13 Simulation Flow | p. 214 |
7.14 Exercises | p. 217 |
8 Behavioral Modeling II | p. 219 |
8.1 Introduction | p. 219 |
8.2 If and if-else Constructs | p. 219 |
8.3 Assign-deassign Construct | p. 225 |
8.4 Repeat Construct | p. 236 |
8.5 For Loop | p. 238 |
8.6 The disable Construct | p. 244 |
8.7 While Loop | p. 249 |
8.8 Forever Loop | p. 254 |
8.9 Parallel Blocks | p. 258 |
8.10 Force-release Construct | p. 261 |
8.11 Event | p. 266 |
8.12 Exercises | p. 268 |
9 Functions, Tasks, and User-Defined Primitives | p. 273 |
9.1 Introductiuon | p. 273 |
9.2 Function | p. 273 |
9.3 Tasks | p. 286 |
9.4 User-Defined Primitives (UDP) | p. 292 |
9.5 Exercises | p. 302 |
10 Switch Level Modeling | p. 305 |
10.1 Introduction | p. 305 |
10.2 Basic Transistor Switches | p. 305 |
10.3 Cmos Switch | p. 318 |
10.4 Bidirectional Gates | p. 328 |
10.5 Time Delays with Switch Primitives | p. 333 |
10.6 Instantiations with Strengths and Delays | p. 334 |
10.7 Strength Contention with Trireg Nets | p. 334 |
10.8 Exercises | p. 337 |
11 System Tasks, Functions, and Compiler Directives | p. 339 |
11.1 Introduction | p. 339 |
11.2 Parameters | p. 339 |
11.3 Path Delays | p. 348 |
11.4 Module Parameters | p. 371 |
11.5 System Tasks and Functions | p. 373 |
11.6 File-Based Tasks and Functions | p. 383 |
11.7 Compiler Directives | p. 385 |
11.8 Hierarchical Access | p. 393 |
11.9 General Observations | p. 404 |
11.10 Exercises | p. 405 |
12 Queues, Plas, and Fsms | p. 407 |
12.1 Introduction | p. 407 |
12.2 Queues | p. 407 |
12.3 Programmable Logic Devices (PLDs) | p. 414 |
12.4 Design of Finite State Machines | p. 418 |
12.5 Exercises | p. 433 |
Appendix A Keywords and Their Significance | p. 443 |
Appendix B Truth Tables of Gates and Switches | p. 447 |
References | p. 449 |
Index | p. 451 |