Digital Design : A Systems Approach (IE-Paperback)

William James Dally , R. Curtis Harting




is introductory textbook provides students with a system-level perspective and the tools they need to understand, analyze and design digital systems. Going beyond the design of simple combinational and sequential modules, it shows how such modules are used to build complete systems, reflecting real-world digital design. All the essential topics are covered, including design and analysis of combinational and sequential modules, as well as system timing and synchronization. It also teaches how to write Verilog HDL in a productive and maintainable style that enables CAD tools to do much of the tedious work. A complete introduction to digital design is given through clear explanations, extensive examples and online Verilog files. The teaching package is completed with lecture slides, labs and a solutions manual for instructors. Assuming no previous digital knowledge, this textbook is ideal for undergraduate digital design courses that will prepare students for modern digital practice.


  Takes a system-level approach that better prepares students for modern digital design in the real world

  Includes all the essential topics, from composition of combinational modules to system timing and synchronization

  Teaches students how to write Verilog HDL in a productive and maintainable style that enables modern CAD tools to do much of the tedious work

Part I. Introduction:
1. The digital abstraction
2. The practice of digital system design
Part II. Combinational Logic:
3. Boolean algebra
4. CMOS logic circuits
5. Delay and power of CMOS circuits
6. Combinational logic design
7. Verilog descriptions of combinational logic
8. Combinational building blocks
9. Combinational examples
Part III. Arithmetic Circuits:
10. Arithmetic circuits
11. Fixed- and floating-point numbers
12. Fast arithmetic circuits
13. Arithmetic examples
Part IV. Synchronous Sequential Logic:
14. Sequential logic
15. Timing constraints
16. Datapath sequential logic
17. Factoring finite-state machines
18. Microcode
19. Sequential examples
Part V. Practical Design:
20. Verification and test
Part VI. System Design:
21. System-level design
22. Interface and system-level timing
23. Pipelines
24. Interconnect
25. Memory systems
Part VII. Asynchronous Logic:
26. Asynchronous sequential circuits
27. Flip-flops
28. Metastability and synchronization failure
29. Synchronizer design