Fundamentals of Digital Design -- An Introduction to Top-Down Design



Home | Forum | DAQ Fundamentals | DAQ Hardware | DAQ Software

Input Devices
| Data Loggers + Recorders | Books | Links + Resources





Quick Overview:

In this now-classic guide (ca. late 1980s), the authors emphasize the solution of design problems and introduce microprogramming and microprocessor-based design using the principles or top-down design.

The guide is divided into four parts:

Part I develops the tools for digital design.

Part II explores he art of digital design at the hardwired MSI and LSI level.

Part III bridges be gap between hardware and software, emphasizing microprogrammed control.

Part IV contains material on digital technology.

New and revised material:

• The theory of mixed logic is formalized and extended, and the treatment of positive logic is expanded.

• Digital arithmetic is given more thorough treatment.

• Read-only memo and programmable logic are emphasized.

• ROM-based controller synthesis is discussed.

• New treatment of transistor electronics and bipolar and MOS logic families are presented.

• Metastable behavior of flip-flops is described, and strategies or dealing with the metastability problem are presented.


Contents:

Part I - Tools for Digital Design

1. DESCRIBING LOGIC EQUATIONS (part 1, part 2)

2. REALIZING LOGIC IN HARDWARE

3. BUILDING BLOCKS FOR DIGITAL DESIGN

4. BUILDING BLOCKS WITH MEMORY

Part II - The Art of Digital Design

5. DESIGN METHODS

6. PRACTICING DESIGN

7. DESIGNING A MINICOMPUTER

8. BUILDING THE MINICOMPUTER

9. INTERFACING TO THE MINICOMPUTER

Part III - Bridging the Hardware-Software Gap

10. MICROPROGRAMMED DESIGN

11. MICROCOMPUTERS IN DIGITAL DESIGN

Part IV - Digital Technology

12. MEETING THE REAL WORLD


OVERVIEW:

This guide is an introduction to the art of designing hardware for digital circuits.

The design of computer hardware, once the exclusive province of the electrical engineer, is now of vital interest to the computer scientist, and techniques for the systematic solution of complex problems-the computer scientist's specialty are of increasing importance to the electrical engineer.

Traditional approaches to design, which evolved prior to the integrated circuit, place great emphasis on the devices themselves. In earlier times, this was natural, since the devices were so expensive that the cost of the hardware controlled the design. This led to the development of many complex methods of logic minimization, state assignment, handling asynchronous circuits, and so on, that are now little used because of the smaller cost and greater power and flexibility of digital components. The complexity of traditional design methods can actually interfere with the designer's ability to create a straightforward, understandable, and correct design.

When we first studied digital design, we consulted traditional textbooks and practiced traditional design methods, but we found that these methods did not really help us much to solve complex digital hardware problems. A vast body of vital knowledge of design was missing from the books, and there was a great lack of systematic methodology for dealing with a digital problem as a system. Eventually, we realized that the traditional emphasis was misplaced.

The difficult part of digital design is not choosing or assembling the hardware, but rather is understanding the problem and developing a systematic solution for the system's architecture and its control. For this guide, we have looked closely at each design technique and have been ruthless in eliminating methods that do not contribute substantially to the goal of clear and correct design.

Here is our thesis. We must approach hardware design from the top, remaining aloof from the actual components as long as we can. We must understand the problem thoroughly and must let its requirements guide us to suitable hardware" rather than allow premature selections of hardware to force us to make inappropriate design decisions.

With the realization that the human cost of designing and maintaining a digital system far exceeds the cost of the materials, digital designers are developing a new approach to design. This new approach, which this guide exploits, means that our tools must significantly assist us to understand, solve, and document complex hardware and software problems-if necessary, at the cost of additional hardware. The designer's mind must be uncluttered by unnecessary detail. To one experienced in computer programming, this has a familiar sound. Methods of designing software have improved drastically. Software writers accept as valid and powerful such concepts as structured programming and top-down design.

This guide is a contribution, in the same spirit, to the field of digital hardware design.

COURSE LEVEL

This guide is for self-study and for classroom use. It should benefit the student or the professional unsophisticated about digital hardware, yet it provides an opportunity for old hands to come to grips with some newer trends in basic design. For background, we assume that the reader has an elementary knowledge of computer problem solving in a high-level language and some elementary exposure to the structure of computers and the use of assembly language. The student should be familiar with such number systems as binary, octal, and hexadecimal, and with number representations, particularly two's-complement. We assume no prior knowledge of electronics or hardware other than Ohm's law and simple formulas for series and parallel resistances.

In a college curriculum, this guide is suitable for a first course in digital design. The course may be at the middle or upper undergraduate level in electrical engineering or computer science. The text is a modernization of the traditional first course in digital design, emphasizing the solution of design problems rather than the study of hardware. Students of computer science should feel at home with the structured methods and will be delighted to find that they can understand and design complex hardware. Electrical engineering students will gain insight into modern, systematic design principles and will develop an understanding of the computer scientist's emphasis on structure.

PLAN OF THE GUIDE

This guide first provides a foundation for digital design, emphasizing basic hard wired design. It then introduces microprogramming and microprocessor-based design and prepares the student for further study of these topics. Throughout, we apply the principles of top-down design.

This guide has four parts. Three of the parts form a sequence leading systematically from the fundamentals of logic through digital design with micro computers, with an emphasis on solving digital problems using hardwired structures of the complexity of medium- and large-scale integration (MSI and LSI). The ordering of the topics is from primitive to complex, the natural way. The fourth part is a collection of information on digital technology that the student may read whenever appropriate. Part IV does not depend on the previous parts of the guide.

In Part I, we develop the tools of digital design. In these four sections, we present the theory and formalism required for systematic digital design. In Section 1 we cover the theory of logical expressions-Boolean algebra, truth tables, and useful techniques of simplification. In Section 2 we present the realization of logic in hardware, using small-scale integration circuits. In this section the crucial distinction between voltage and logic is introduced and the mixed-logic method of drafting physical circuits from logic expressions is developed.

In Section 3, we develop a collection of basic design tools: useful combinational building blocks such as the multiplexer, decoder, and the arithmetic logic unit.

The treatment emphasizes the systematic uses of the building blocks. In Section 4 we introduce the theory of circuits with memory-the sequential circuits.

After establishing the theory and use of basic sequential elements such as flip flops, we describe standard sequential building blocks such as registers, bit slices, random-access and read-only memories, and programmable logic. In Section 4, the student is introduced to the real-world pitfalls awaiting the unwary designer; these topics are elaborated in Section 12.

Part II is an exploration of the art of digital design at the hard wired MSI and LSI levels. The theme of these five sections is that a designer must understand the problem before becoming committed to specific chips and wires-top-down design. In Section 5 we introduce the structure of the solution to a digital hardware problem: the architecture and the control. We present the ASM method of expressing control algorithms. Section 6 consists of a series of digital design examples that illustrate the systematic solutions of common design problems at the MSI level. In Section 7, we execute a large-scale design-a complete minicomputer-using top-down style-and in Section 8 we translate that design into hardware, using the principle of deferring the decisions about hardware.

Section 9 is an introduction to asynchronous design through the design of a terminal interface for the minicomputer.

Part III is a bridge between hardware and software. Here we consider the control of hardware using microprogramming and microprocessors. In Section 10 we discuss microprogramming and its impact on computer design. As an illustration, we develop a micro-programmed version of the minicomputer designed in Part II. Section 11 is an introduction to the use of conventional microprocessors and microcomputers in digital control.

In its single section, Part IV contains material on digital technology. The topics in Section 12 are independent of the previous material; students may explore these topics whenever they need the information. Representative topics are transistor technology, reading integrated-circuit data sheets, handling pull up resistors, clocks, power systems and power distribution, noise problems, line driving, and metastability.

SUGGESTIONS FOR COURSE CONTENT

This guide provides abundant material for a one-semester or two-quarter course at the undergraduate level, and adequate material for a year's study. Unless the student will study microprogramming in a subsequent course, we feel that Section 10 should be included. In a compressed schedule, an instructor might use Sections 1-5, several of the Design Examples in Section 6, Sections 7 and 8 (possibly excluding the treatment of the OPERATE instruction), and Section 10.

Section 12 (Part IV) is a buffer in that the instructor can adjust the degree of coverage of hardware technology without disturbing the main theme of the course.

LABORATORY

Laboratory experience is a vital part of any study of digital design. In our courses, taught for over a decade at Indiana University, the students construct, study, debug, and extend the complete minicomputer designed in Sections 7, 8, and 9. This is a major project, occupying about a semester of laboratory work. The students experience a great sense of achievement when their mini computer-a fully operational PDP-8 built with MSI technology-actually runs sophisticated PDP-8 software.

We have found that lengthy experiments with individual gates, flip-flops, and registers are unnecessary; the laboratory time is better spent working on the design and construction of more complex systems. Students master individual components in a natural way while studying the structure of larger systems. In any event, we encourage instructors to provide a digital laboratory to accompany the course for, after all, no design works until it is built, and executing designs on paper is only a part of the art of digital design.

With the installation in 1984 of our Logic Engine Development Systems as the basis for supporting the laboratory work, our students have been able to build a microprogrammed version of the large minicomputer lab project. They are able to compare firsthand and in detail the characteristics of hard wired control and microprogrammed control. Such lab experience is impossible without sophisticated microprogramming support. A laboratory manual for the mini computer project, including both hard wired and microprogrammed versions of the control, is available from Franklin Prosser.

THE SECOND EDITION (1987)

In the time since our first edition appeared, we have observed increased acceptance of the principles of structured design. ASM charts now appear in many textbooks.

Mixed logic, although not yet as extensively used as ASMs, has gained a proper central place in several new texts and manufacturers' handbooks.

For our second edition, we have extensively revised many sections while retaining the first edition's basic format. We feel that the following enhancements are of particular importance: In Section 2, the theory of mixed logic is formalized and extended, and the treatment of positive logic is enlarged.

In Section 3, digital arithmetic is given more thorough treatment.

In Section 4, read-only memory and programmable logic are substantially emphasized, and the problem of metastability is addressed.

In Section 5, ROM-based controller synthesis, omitted in the first edition, is given its proper treatment.

Section 10 has been rewritten, and examples of top-down microprogramming based on our Logic Engine microassembly language LEASMB are included.

A microprogrammed version of the minicomputer project of Sections 7, 8, and 9 is fully expounded, and serves as an important vehicle to display top-down microprogramming techniques.

Section 12 contains new treatments of transistor electronics and bipolar and unipolar logic families, and several additional topics. Metastability, widely recognized in the design community at last, is thoroughly discussed, and guidelines for dealing with the problem are presented.

In all sections, exercises have been revised and new exercises added. Each section ends with suggested additional readings and sources.

PREV. | NEXT

Related Articles -- Top of Page -- Home

Updated: Sunday, April 23, 2017 0:57 PST