Preface |
|
xi | |
|
Chapter 1 Introduction to Logic Design Using Verilog HDL |
|
|
1 | (144) |
|
|
2 | (15) |
|
|
2 | (1) |
|
|
2 | (3) |
|
1.1.3 Logic Macro Functions |
|
|
5 | (9) |
|
1.1.4 Procedural Flow Control |
|
|
14 | (2) |
|
|
16 | (1) |
|
1.1.6 Register Data Types |
|
|
16 | (1) |
|
|
17 | (11) |
|
|
18 | (1) |
|
|
19 | (9) |
|
|
28 | (3) |
|
1.3.1 Designing a Test Bench for Simulation |
|
|
29 | (2) |
|
|
31 | (20) |
|
1.4.1 Built-In Primitives Design Examples |
|
|
35 | (16) |
|
1.5 User-Defined Primitives |
|
|
51 | (18) |
|
1.5.1 Defining a User-Defined Primitive |
|
|
52 | (1) |
|
1.5.2 Combinational User-Defined Primitives |
|
|
52 | (11) |
|
1.5.3 Sequential User-Defined Primitives |
|
|
63 | (6) |
|
|
69 | (18) |
|
1.6.1 Continuous Assignment |
|
|
69 | (2) |
|
1.6.2 Reduction Operators |
|
|
71 | (3) |
|
1.6.3 Conditional Operators |
|
|
74 | (3) |
|
1.6.4 Relational Operators |
|
|
77 | (2) |
|
|
79 | (2) |
|
|
81 | (3) |
|
|
84 | (3) |
|
|
87 | (21) |
|
|
87 | (1) |
|
|
88 | (2) |
|
1.7.3 Intrastatement Delay |
|
|
90 | (1) |
|
1.7.4 Interstatement Delay |
|
|
91 | (1) |
|
1.7.5 Blocking Assignments |
|
|
91 | (1) |
|
1.7.6 Nonblocking Assignments |
|
|
91 | (1) |
|
1.7.7 Conditional Statements |
|
|
92 | (3) |
|
|
95 | (3) |
|
|
98 | (6) |
|
1.7.10 Logical, Algebraic, and Rotate Shift Operations |
|
|
104 | (4) |
|
|
108 | (21) |
|
1.8.1 Module Instantiation |
|
|
109 | (1) |
|
|
109 | (2) |
|
|
111 | (18) |
|
|
129 | (11) |
|
|
129 | (1) |
|
|
130 | (4) |
|
1.9.3 Function Declaration |
|
|
134 | (1) |
|
1.9.4 Function Invocation |
|
|
135 | (5) |
|
|
140 | (5) |
|
Chapter 2 Combinational Logic Design Using Verilog HDL |
|
|
145 | (100) |
|
|
146 | (2) |
|
2.1.1 Binary Number System |
|
|
146 | (1) |
|
2.1.2 Octal Number System |
|
|
147 | (1) |
|
2.1.3 Decimal Number System |
|
|
147 | (1) |
|
2.1.4 Hexadecimal Number System |
|
|
148 | (1) |
|
|
148 | (6) |
|
|
149 | (1) |
|
|
150 | (2) |
|
2.2.3 Other Terms for Boolean Algebra |
|
|
152 | (2) |
|
|
154 | (11) |
|
|
165 | (11) |
|
|
176 | (9) |
|
2.6 Programmable Logic Devices |
|
|
185 | (29) |
|
2.6.1 Programmable Read-Only Memories |
|
|
185 | (6) |
|
2.6.2 Programmable Array Logic |
|
|
191 | (11) |
|
2.6.3 Programmable Logic Array |
|
|
202 | (12) |
|
2.7 Additional Design Examples |
|
|
214 | (24) |
|
|
238 | (7) |
|
Chapter 3 Sequential Logic Design Using Verilog HDL |
|
|
245 | (162) |
|
|
245 | (2) |
|
3.1.1 Definition of a Sequential Machine |
|
|
245 | (2) |
|
3.2 Synchronous Sequential Machines |
|
|
247 | (74) |
|
3.2.1 Synthesis Procedure |
|
|
247 | (1) |
|
|
248 | (1) |
|
|
248 | (25) |
|
|
273 | (26) |
|
3.2.5 Synchronous Registers |
|
|
299 | (12) |
|
3.2.6 Synchronous Counters |
|
|
311 | (10) |
|
3.3 Asynchronous Sequential Machines |
|
|
321 | (33) |
|
3.3.1 Synthesis Procedure |
|
|
323 | (1) |
|
|
324 | (2) |
|
|
326 | (2) |
|
|
328 | (2) |
|
3.3.5 Design Examples of Asynchronous Sequential Machines |
|
|
330 | (24) |
|
3.4 Pulse-Mode Asynchronous Sequential Machines |
|
|
354 | (41) |
|
3.4.1 Synthesis Procedure |
|
|
356 | (1) |
|
3.4.2 SR Latches with D Flip-Flops as Storage Elements |
|
|
356 | (16) |
|
3.4.3 T Flip-Flops as Storage Elements |
|
|
372 | (23) |
|
|
395 | (12) |
|
Chapter 4 Computer Arithmetic Design Using Verilog HDL |
|
|
407 | (144) |
|
|
407 | (1) |
|
|
407 | (16) |
|
|
408 | (3) |
|
|
411 | (4) |
|
4.2.3 Four-Bit Ripple-Carry Adder |
|
|
415 | (3) |
|
4.2.4 Carry Lookahead Adder |
|
|
418 | (5) |
|
4.3 Fixed-Point Subtraction |
|
|
423 | (16) |
|
4.3.1 Four-Bit Ripple Subtractor |
|
|
425 | (3) |
|
4.3.2 Eight-Bit Subtractor |
|
|
428 | (2) |
|
4.3.3 Four-Bit Dataflow Adder/Subtractor |
|
|
430 | (5) |
|
4.3.4 Eight-Bit Behavioral Adder/Subtractor |
|
|
435 | (4) |
|
4.4 Fixed-Point Multiplication |
|
|
439 | (11) |
|
4.4.1 Behavioral Four-Bit Multiplier |
|
|
441 | (3) |
|
4.4.2 Three-Bit Array Multiplier |
|
|
444 | (4) |
|
4.4.3 Four-Bit Dataflow Multiplication Using the Multiply Operator |
|
|
448 | (2) |
|
|
450 | (5) |
|
4.6 Arithmetic and Logic Unit |
|
|
455 | (4) |
|
|
459 | (13) |
|
4.7.1 Decimal Addition with Sum Correction |
|
|
462 | (4) |
|
4.7.2 Decimal Addition Using Multiplexers for Sum Correction |
|
|
466 | (6) |
|
|
472 | (19) |
|
4.8.1 Decimal Subtraction Using Full Adders and Built-In Primitives for Four Bits |
|
|
475 | (3) |
|
4.8.2 Decimal/Binary Subtraction Using Full Adders and Built-In Primitives for Eight Bits |
|
|
478 | (4) |
|
4.8.3 Eight-Bit Decimal Subtraction Unit with Built-in Primitives and Full Adders Designed Using Behavioral Modeling |
|
|
482 | (9) |
|
4.9 Decimal Multiplication |
|
|
491 | (4) |
|
|
495 | (8) |
|
4.11 Floating-Point Addition |
|
|
503 | (9) |
|
4.12 Floating-Point Subtraction |
|
|
512 | (15) |
|
4.12.1 True Addition and True Subtraction |
|
|
516 | (11) |
|
4.13 Floating-Point Multiplication |
|
|
527 | (8) |
|
4.14 Floating-Point Division |
|
|
535 | (7) |
|
|
542 | (9) |
Appendix A Event Queue |
|
551 | (16) |
Appendix B Verilog Project Procedure |
|
567 | (2) |
Appendix C Answers to Select Problems |
|
569 | (74) |
Index |
|
643 | |