13.



Any change in whatever direction for whatever reason is strongly to be deprecated.
-Anonymous
There is nothing permanent except change.
-Heraclitus


Introduction

Computer hardware has experienced the most dramatic improvement in capabilities and costs ever known to humankind. In just 40 years, we have seen room-sized computers, with little more processing power than today's pocket calculators, evolve into fingernail-sized devices with near supercomputer performance. This miracle has been made possible through advances in digital hardware, which now pervades all aspects of our lives. Just think how the lowly rotary telephone has become the cordless, automated answering machine. It can digitize your greeting, remember your most frequently dialed numbers, and allow you to review, save, and erase your phone messages.

This book will teach you the fundamental techniques for designing and implementing complex systems. A system has inputs and outputs and exhibits explicit behavior, characterized by functions that translate the inputs into new outputs. Design is the process by which incomplete and inexact requirements and specifications, describing the purpose and function of an object, are made precise. Implementation uses this precise description to create a physical product. You can see design and implementation in everything around you-buildings, cars, telephones, furniture, and so on.

This book is about the fundamental techniques used to design and implement what we call synchronous digital hardware systems. What does each of these words mean? A hardware system is one whose physical components are constructed from electronic building blocks, rather than wood, plastic, or steel. A hardware system can be digital or analog. The inputs and outputs of a digital system fall within a discrete, finite set of values. In an analog system, the outputs span a continuous range. In this book, we concentrate on systems in the digital domain. A synchronous system is one whose elements change their values only at certain specified times. An asynchronous system has outputs that can change at any time. It is safer and more foolproof to build our systems using synchronous methods, which is the focus of this book.

To see the difference between synchronous and asynchronous systems, think of a digital alarm clock. Suppose that the alarm is set for 11:59, and the alarm sounds when the time readout exactly matches 11:59. In a synchronous system, the outputs all change at the same time. The clock advances from 10:59 to 11:00 to 11:01, and so on. In an asynchronous system, the hours and minutes are not constrained to change simultaneously. So, looking at the clock, you might see it advance from 10:59 to 11:59 (momentarily) to 11:00. And of course, this would make the alarm sound at the wrong time.

You can best understand complex hardware systems in terms of descriptions of increasing levels of detail. Moving from the abstract to the most detailed, these levels are called system, logic, and circuit. The system level abstractly describes the input, output, and behavior. A -system-level description focuses on timing and sequencing using flowcharts or computer programs. The logic level deals with the composition of building blocks, called logic gates, which form the physical components used by system designers. At the circuit level, the building blocks are electrical elements, such as transistors, resistors, and capacitors, which implement the logic designer's components. Thus, abstract system descriptions are built upon logic descriptions, which in turn depend on detailed circuits.

This book is primarily for logic designers, but to learn logic design you must also know something about system and circuit design. What are the best logic building blocks to support the system designer? How are they constructed from the available electrical elements? What kinds of blocks are needed? How much does it cost to build them? We approach the material from the perspective of computer science rather than electrical engineering: the only prerequisite knowledge we assume is an understanding of binary numbers, basic electronics, and some limited familiarity with a programming language, such as C or PASCAL. You can review binary numbers in Appendix A and basic electronics in Appendix B.

New technology is making this an exciting time for hardware designers. Traditionally, they have had to build their hardware before being able to check for proper behavior. This situation is undergoing radical change because of the new technology of rapid prototyping. Designers use computer programs, called computer-aided design (CAD) tools, to help create implementations and verify their behavior before actually building them.

Even the basic logic components used in hardware implementation are undergoing change. In conventional logic design, the building blocks perform fixed, unchangeable functions. Today, they are being replaced by flexible logic building blocks whose function can be configured for the job at hand. This remarkable technology is called programmable logic, and you will learn how to use it in your designs.

Hardware design is the "art of the possible," creatively finding the balance between the requirements of systems on one side and the opportunities provided by electronic components on the other. But first, you need to understand the basics of the design process, so let's begin there.

1. The Process of Design
2. Digital Hardware Systems
3. Multiple Representations of a Digital Design
4. Rapid Electronic System Prototyping
Chapter Review
Exercises

[Table of Contents] [Next] [Prev]

This file last updated on 05/19/96 at 09:31:39.
randy@cs.Berkeley.edu;


What is Sarbanes-Oxley[q]
What is Sarbanes-Oxley[q]
ISBN: 71437967
EAN: N/A
Year: 2006
Pages: 101

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net