This book provides a foundation in digital design for students in computer
engineering, electrical engineering and computer science courses. It deals
with digital design as an activity in a larger systems design context. Instead
of focusing on gate-level design and aspects of digital design that have
diminishing relevance in a real-world design context, the book concentrates
on modern and evolving knowledge and design skills.
Most modern digital design practice involves design of embedded
systems, using small microcontrollers, larger CPUs/DSPs, or hard or soft
processor cores. Designs involve interfacing the processor or processors
to memory, I/O devices and communications interfaces, and developing
accelerators for operations that are too computationally intensive for processors.
Target technologies include ASICs, FPGAs, PLDs and PCBs. This
is a significant change from earlier design styles, which involved use of
small-scale integrated (SSI) and medium-scale integrated (MSI) circuits.
In such systems, the primary design goal was to minimize gate count or
IC package count. Since processors had lower performance and memories
had limited capacity, a greater proportion of system functionality was
implemented in hardware.
While design practices and the design context have evolved, many textbooks
have not kept track. They continue to promote practices that are
largely obsolete or that have been subsumed into computer-aided design
(CAD) tools. They neglect many of the important considerations for modern
designers. This book addresses the shortfall by taking an approach that
embodies modern design practice. The book presents the view that digital
logic is a basic abstraction over analog electronic circuits. Like any abstraction,
the digital abstraction relies on assumptions being met and constraints
being satisfied. Thus, the book includes discussion of the electrical and timing
properties of circuits, leading to an understanding of how they influence
design at higher levels of abstraction. Also, the book teaches a methodology
based on using abstraction to manage complexity, along with principles
and methods for making design trade-offs. These intellectual tools allow
students to track evolving design practice after they graduate.