Computer Architecture: The Essentials -- Fundamentals of Digital Logic (part 2)



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

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


AMAZON multi-meters discounts AMAZON oscilloscope discounts


<<PREV.

16. Binary Counters

A single flip-flop only offers two possible output values: 0 or 1. However, a set of flip-flops can be connected in series to form a binary counter that accumulates a numeric total. Like a flip-flop, a counter has a single input. Unlike a flip-flop, however, a counter has multiple outputs. The outputs count how many input pulses have been detected by giving a numerical total in binary†. We think of the outputs as starting at zero and adding one each time the input transitions from 0 to 1. Thus, a counter that has three output lines can accumulate a total between 0 and 7. FIG. 19 illustrates a counter, and shows how the outputs change when the input changes.


FIG. 19 Illustration of (a) a binary counter, and (b) a sequence of input values and the corresponding outputs. The column labeled decimal gives the decimal equivalent of the outputs.

†Section 3 considers data representation in more detail. For now, it is sufficient to understand that the outputs represent a number.

In practice, an electronic part that implements a binary counter has several additional features. For example, a counter has an additional input used to reset the count to zero, and may also have an input that temporarily stops the counter (i.e., ignores the in put and freezes the output). More important, because it has a fixed number of output pins, each counter has a maximum value it can represent. When the accumulated count exceeds the maximum value, the counter resets the output to zero and uses an additional output to indicate that an overflow occurred.

17. Clocks And Sequences

Although we have seen the basic building blocks of digital logic, one additional feature is absolutely essential for a digital computer: automatic operation. That is, a computer must be able to execute a sequence of instructions without any inputs changing. The digital logic circuits discussed previously all use the property that they respond to changes in one or more of their inputs; they do not perform any function until an input changes. How can a digital logic circuit perform a series of steps? The answer is a mechanism known as a clock that allows hardware to take action without requiring the input to change. In fact, most digital logic circuits are said to be clocked, which means that the clock signal, rather than changes in the inputs, controls and synchronizes the operation of individual components and subassemblies to ensure that they work together as intended (e.g., to guarantee that later stages of a circuit wait for the propagation delay of previous stages).

What is a clock? Unlike the common definition of the term, hardware engineers use the term clock to refer to an electronic circuit that oscillates at a regular rate; the oscillations are converted to a sequence of alternating ones and zeros. Although a clock can be created from an inverter†, most clock circuits use a quartz crystal, which oscillates naturally, to provide a signal at a precise frequency. The clock circuit amplifies the signal and changes it from a sine wave to a square wave. Thus, we think of a clock as emitting an alternating sequence of 0 and 1 values at a regular rate. The speed of a clock is measured in Hertz (Hz), the number of times per second the clock cycles through a 1 followed by a 0. Most clocks in high-speed digital computers operate at speeds ranging from one hundred megahertz (100 MHz) to several gigahertz (GHz).

For example, at present, the clock used by a typical processor operates at approximately 3 GHz.

It is difficult for a human to imagine circuits changing at such high rates. To make the concept clear, let's consider a clock is available that operates at an extremely slow rate of 1 Hz. Such a clock might be used to control an interface for a human. For ex ample, if a computer contains an LED that flashes on and off to indicate that the computer is active, a slow clock is needed to control the LED. Note that a clock rate of 1 Hz means the clock completes an entire cycle in one second. That is, the clock emits a logical 1 for one-half cycle followed by a logical zero for one-half cycle. If a circuit arranges to turn on an LED whenever the clock emits a logical 1, the LED will remain on for one-half second, and then will be off for one-half second.

How does an alternating sequence of 0 and 1 values make digital circuits more powerful? To understand, we will consider a simple clocked circuit. Suppose that during startup, a computer must perform the following sequence of steps:

-- Test the battery

-- Power on and test the memory

-- Start the disk spinning

-- Power up the screen

-- Read the boot sector from disk into memory

-- Start the CPU

To simplify the explanation, we will assume that each step requires at most one second to complete before the next step can be started. Thus, we desire a circuit that, once it has been started, will perform the six steps in sequence, at one-second intervals with no further changes in input.

For now, we will focus on the essence of the circuit, and consider how it can be started later. A circuit to handle the task of performing six steps in sequence can be built from three building blocks: a clock, a binary counter, and a device known as a decoder/demultiplexer†, which is often abbreviated demux. We have already considered a counter, and will assume that a clock is available that generates digital output at a rate of exactly one cycle per second. The last component, a decoder/demultiplexer, is a single integrated circuit that uses a binary value to map an input to a set of outputs.

We will use the decoding function to select an output. That is, a decoder takes a binary value as input, and uses the value to choose an output. Only one output of a decoder is on at any time; all others are off -- when the input lines represent the value i in binary, the decoder selects the i th output. FIG. 20 illustrates the concept.


FIG. 20 Illustration of a decoder with three input lines and eight output lines. When inputs x, y, and z have the values 0, 1, and 1, the fourth output from the top is selected.

†An alternate spelling of demultiplexer is also used.

When used as a decoder, the device merely selects one of its outputs; when used as a demultiplexer, the device takes an extra input which it passes to the selected output.

Both the decoder function and the more complex demultiplexer function can be constructed from Boolean gates.

A decoder provides the last piece needed for our simplistic sequencing mechanism -- when we combine a clock, counter, and decoder, the resulting circuit can execute a series of steps. For example, FIG. 21 shows the interconnection in which the output of a clock is used as input to a binary counter, and the output of a binary counter is used as input to a decoder.


FIG. 21 An illustration of how a clock can be used to create a circuit that performs a sequence of six steps. Output lines from the counter connect directly to input lines of the decoder.

To understand how the circuit operates, assume that the counter has been reset to zero. Because the counter output is 000, the decoder selects the topmost output, which is not used (i.e., not connected). Operation starts when the clock changes from logical 0 to logical 1. The counter accumulates the count, which changes its output to 001.

When its input changes, the decoder selects the second output, which is labeled test battery. Presumably, the second output wire connects to a circuit that performs the necessary test. The second output remains selected for one second. During the second, the clock output remains at logical 1 for one-half second, and then reverts to logical 0 for one-half second. When the clock output changes back to logical 1, the counter output lines change to 010, and the decoder selects the third output, which is connected to circuitry that tests memory.

Of course, details are important. For example, some decoder chips make a selected output 0 and other outputs 1. Electrical details also matter. To be compatible with other devices, the clock must use five volts for logical 1, and zero volts for logical 0.

Furthermore, to be directly connected, the output lines of the binary counter must use the same binary representation as the input lines of the decoder. Section 3 discusses data representation in more detail; for now, we assume the output and input values are compatible.

18. The Important Concept Of Feedback

The simplistic circuit in FIG. 21 lacks an important feature: there is no way to control operation (i.e., to start or stop the sequence). Because a clock runs forever, the counter in the figure counts from zero through its maximum value, and then starts again at zero. As a result, the decoder will repeatedly cycle through its outputs, with each output being held for one second before moving on to the next.

Few digital circuits perform the same series of steps repeatedly. How can we arrange to stop the sequence after the six steps have been executed? The solution lies in a fundamental concept: feedback. Feedback lies at the heart of complex digital circuits because it allows the results of processing to affect the way a circuit behaves. In the computer startup sequence, feedback is needed for each of the steps. If the disk cannot be started, for example, the boot sector cannot be read from the disk.

We have already seen feedback used to maintain a data value in the latch circuit of FIG. 14 because the output from each of the right-most nand gates feeds back as an input to the other gate. For another example of feedback, consider how we might use the final output of the decoder, call it F, to stop the sequence. An easy solution consists of using the value of F to prevent clock pulses from reaching the counter. That is, in stead of connecting the clock output directly to the counter input, we insert logic gates that only allow the counter input to continue when F has the value 0. In terms of Boolean algebra, the counter input should be:

CLOCK and (not F)

That is, as long as F is false, the counter input should be equal to the clock; when F is true, however, the counter input changes to (and remains) zero. FIG. 22 shows how two inverters and a nand gate can be used to implement the necessary function.


FIG. 22 A modification of the circuit in FIG. 21 that includes feed back to stop processing after one pass through each output.

The feedback in FIG. 22 is fairly obvious because there is an explicit physical connection between the last output and the combinatorial circuit on the input side. The figure also makes it easy to see why feedback mechanisms are sometimes called feed back loops†.

19. Starting a Sequence

FIG. 22 shows that it is possible to use feedback to terminate a process. How ever, the circuit is still incomplete because it does not contain a mechanism that allows the sequence to start. Fortunately, adding a starting mechanism is trivial. To under stand why, recall that a counter contains a separate input line that resets the count to zero. All that is needed to make our circuit start is another input (e.g., from a button that a user pushes) connected to the counter reset.

When a user pushes the button, the counter resets to zero, which causes the counter's output to become 000. When it receives an input of all zeros, the decoder turns on the first output, and turns off the last output. When the last output turns off, the nand gate allows the clock pulses through, and the counter begins to run.

Although it does indeed start the sequence, allowing a user to reset the counter can cause problems. For example, consider what happens if a user becomes impatient during the startup sequence and presses the button a second time. Once the counter resets, the sequence starts again from the beginning. In some cases, performing an operation twice simply wastes time. In other cases, however, repeating an operation causes problems (e.g., some disk drives require that only one command be issued at a time). Thus, a production system uses complex combinatorial logic to prevent a sequence from being interrupted or restarted before it completes.

Although it only contains a few components, the example demonstrates an important concept: a set of Boolean logic gates and a clock are sufficient to allow the execution of a sequence of logical steps. The point is:

The example circuit shows that Boolean logic gates and a clock make it possible to build a circuit which, when started, performs a logical sequence of steps and then halts.

Only one additional concept is needed before we can create a general-purpose computer: programmability. Section 6 extends our discussion of hardware by showing how the basic components described here can be used to build a programmable processor that uses a program in memory to determine the sequence of operations.

†A feedback loop is also present among the gates used to construct a flip-flop.

20. Iteration In Software Vs. Replication

In Hardware As we think about hardware, it will be important to remember a significant difference between the way software and hardware handle operations that must be applied to a set of items. In software, a fundamental paradigm for handling multiple items consists of iteration -- a programmer writes code that repeatedly finds the next item in a set and applies the operation to the item. Because the underlying system only applies the operation to one item at a time, a programmer must specify the number of items.

Iteration is so essential to programming that most programming languages provide statements (e.g., a for loop) that allow the programmer to express the iteration clearly.

Although hardware can be built to perform iteration, doing so is difficult and the resulting hardware is clumsy. Instead, the fundamental hardware paradigm for handling multiple items consists of replication -- a hardware engineer creates multiple copies of a circuit, and allows each copy to act on one item. All copies perform at the same time.

For example, to compute a Boolean operation on a pair of thirty-two bit values, a hardware engineer designs a circuit for a pair of bits, and then replicates the circuit thirty-two times. Thus, to compute the Boolean exclusive or of two thirty-two bit integers, a hardware designer can use thirty-two xor gates.

Replication is difficult for programmers to appreciate because replication is antithetical to good programming -- a programmer is taught to avoid duplicating code. In the hardware world, however, replication has three distinct advantages: elegance, speed, and correctness. Elegance arises because replication avoids the extra hardware needed to select an individual item, move it into place, and move the result back. In addition to avoiding the delay involved in moving values and results, replication increases performance by allowing multiple operations to be performed simultaneously. For example, thirty-two inverters working at the same time can invert thirty-two bits in exactly the same amount of time that it takes one inverter to invert a single bit. Such speedup is especially significant if a computer can operate on sixty-four bits at the same time. The notion of parallel operation appears throughout the text; a later section explains how parallelism applies on a larger scale.

The third advantage of replication focuses on high reliability. Reliability is in creased because replication makes hardware easier to validate. For example, to validate that a thirty-two bit operation works correctly, a hardware engineer only needs to validate the circuit for a single bit -- the remaining bits will work the same because the same circuit is replicated. As a result, hardware is much more reliable than software.

Even the legal system holds product liability standards higher for hardware than for software -- unlike software that is often sold "as is" without a warranty, hardware (e.g., an integrated circuit) is sold within a legal framework that requires fitness for the in tended purpose. We can summarize:

Unlike software, which uses iteration, hardware uses replication. The advantages of replication are increased elegance, higher speed, and increased reliability.

21. Gate And Chip Minimization

We have glossed over many of the underlying engineering details. For example, once they choose a general design and the amount of replication that will be used, engineers seek ways to minimize the amount of hardware needed. There are two issues:

minimizing gates and minimizing integrated circuits. The first issue involves general rules of Boolean algebra. For example, consider the Boolean expression:

not (not z)

A circuit to implement the expression consists of two inverters connected together. Of course, we know that two not operations are the identity function, so the expression can be replaced by z. That is, a pair of directly connected inverters can be removed from a circuit without affecting the result.

As another example of Boolean expression optimization, consider the expression:

x nor (not x)

Either x will have the value 1, or not x will have the value 1, which means the nor function will always produce the same value, a logical 0. Therefore, the entire expression can be replaced by the value 0. In terms of a circuit, it would be foolish to use a nor gate and an inverter to compute the expression because the circuit resulting from the two gates will always be logical zero. Thus, once an engineer writes a Boolean expression formula, the formula can be analyzed to look for instances of sub-expressions that can be reduced or eliminated without changing the result.

Fortunately, sophisticated design tools exist that help engineers minimize gates.

Such tools take a Boolean expression as an input. The design tool analyzes the expression and produces a circuit that implements the expression with a minimum number of gates. The tools do not merely use Boolean and, or, and not. Instead, they understand the gates that are available (e.g., nand), and define the circuit in terms of available electronic parts.

Although Boolean formulas can be optimized mathematically, further optimization is needed because the overall goal is minimization of integrated circuits. To understand the situation, recall that many integrated circuits contain multiple copies of a given type of gate. Thus, minimizing the number of Boolean operations may not optimize a circuit if the optimization increases the types of gates required. For example, suppose a Boole an expression requires four nand gates, and consider an optimization that reduces the requirements to three gates: two nand gates and a nor gate. Unfortunately, although the total number of gates is lower, the optimization increases the number of integrated circuits required because a single 7400 integrated circuit contains four nand gates, but two integrated circuits are required if an optimization includes both nand and nor gates.

22. Using Spare Gates

Consider the circuit in FIG. 22 carefully†. Assuming the clock, counter, and decoder each require one integrated circuit, how many additional integrated circuits are required? The obvious answer is two: one is needed for the nand gate (e.g., a 7400) and another for the two inverters (e.g., a 7404). Surprisingly, it is possible to implement the circuit with only one additional integrated circuit. To see how, observe that although the 7400 contains four nand gates, only one is needed. How can the spare gates be used? The trick lies in observing that nand of 1 and 0 is 1, and nand of 1 and

1 is 0. That is,

1 nand x

is equivalent to:

not x

To use a nand gate as an inverter, an engineer simply connects one of the two inputs to logical one (i.e., five volts). A spare nand gate can be used as an inverter.

23. Power Distribution And Heat Dissipation

In addition to planning digital circuits that correctly perform the intended function and minimizing the number of components used, engineers must contend with the underlying power and cooling requirements†. For example, although the diagrams in this section only depict the logical inputs and outputs of gates, every gate consumes power. The amount of power used by a single integrated circuit is insignificant. How ever, because hardware designers tend to use replication instead of iteration, complex digital systems contain many circuits. An engineer must calculate the total power required, construct the appropriate power supplies, and plan additional wiring to carry power to each chip.

The laws of physics dictate that any device that consumes power will generate heat. The amount of heat generated is proportional to the amount of power consumed, so an integrated circuit generates a minimal amount of heat. Because a digital system uses hundreds of circuits that operate in a small, enclosed space, the total heat generated can be significant. Unless engineers plan a mechanism to dissipate heat, high temperatures will cause the circuits to fail. For small systems, engineers add holes to the chassis that allow hot air to escape and be replaced by cooler air from the surrounding room. For intermediate systems, such as personal computers, fans are added to move air from the surrounding room through the system more quickly. For the largest digital systems, cool air is insufficient -- a refrigeration system with liquid coolant must be used (e.g., circuits in the Cray 2 supercomputer were directly immersed in a liquid coolant).

24. Timing And Clock Zones

Our quick tour of digital logic omits another important aspect that engineers must consider: timing. A gate does not act instantly. Instead, a gate takes time to settle (i.e., to change the output once the input changes). In our examples, timing is irrelevant because the clock runs at the incredibly slow rate of 1 Hz and all gates settle in less than a microsecond. Thus, the gates settle long before the clock pulses.

In practice, timing is an essential aspect of engineering because digital circuits are designed to operate at high speed. To ensure that a circuit will operate correctly, an engineer must calculate the time required for all gates to settle.

Engineers must also calculate the time required to propagate signals throughout an entire system, and must ensure that the system does not fail because of clock skew. To understand clock skew, consider FIG. 23 that illustrates a circuit board with a clock that controls three of the integrated circuits in the system.


FIG. 23 Illustration of three integrated circuits in a digital system that are controlled by a single clock. The length of wire between the clock and an integrated circuit determines when a clock signal arrives.

In the figure, the three integrated circuits are physically distributed (presumably, other integrated circuits occupy the remaining space). Unfortunately, a finite time is required for a signal from the clock to reach each of the circuits, and the time is proportional to the length of wire between the clock and a given circuit. As a result, the clock signal will arrive at some of the integrated circuits sooner than it arrives at others. As a rule of thumb, a signal requires one nanosecond to propagate across one foot of wire.

Thus, for a system that measures eighteen inches across, the clock signal can reach locations near the clock a nanosecond before the signal reaches the farthest location. Obviously, clock skew can cause a problem if parts of the system must operate before other parts. An engineer needs to calculate the length of each path and design a layout that avoids the problem of clock skew.

As a consequence of clock skew, engineers seldom use a single global clock to control a system. Instead, multiple clocks are used, with each clock controlling one part of the system. Often, clocks that run at the highest rates are used in the smallest physical areas. We use the term clock zone to refer to the region that a given clock controls.

The idea is not limited to physically large systems -- integrated circuits, such as CPUs, have become so large and complex that multiple clock zones are used on a chip.

Although using multiple clock zones avoids the problems of clock skew, multiple clocks introduce another problem, clock synchronization: digital logic at the boundary between two clock zones must be engineered to accommodate both zones. Usually, such accommodation means the circuit slows down and takes multiple clock cycles to move data.

25. Clockless Logic

As chips increase in size and complexity, the problem of clock skew and the division of a system into clock zones has become increasingly important. In many systems, the boundary between clock zones forms a bottleneck because logic circuits at the boundary must wait multiple clock cycles before the output from one clock zone can be for warded to another clock zone. The problem of zone synchronization has become so important that researchers have devised an alternative approach: clockless logic. In essence, a clockless system uses two wires instead of one to represent a Boolean value.

The use of two wires means that an output can indicate the end of a bit unambiguously without depending on a clock. FIG. 24 lists the four possible combinations of values on two wires and their meanings.


FIG. 24 Meaning of signals on two wires when clockless logic is used to transfer bits from one chip to another.

The idea is that the sender sets both wires to zero volts between each bit to reset the receiver. After the reset, the sender transfers a logical 0 or a logical 1. A receiver knows when a bit arrives because exactly one of the two wires is high (e.g., 5 volts).

Why use clockless logic? In addition to eliminating the problem of clock zone coordination and allowing higher speed data transfer among chips, the clockless approach can use less power. Clocked circuits need to propagate the clock signal continuously, even when parts of the circuit are inactive. Clockless logic can avoid the over head of propagating clock signals.

Does the clockless approach work in practice? Yes. By designing an entire processor that uses clockless logic, ARM, Inc. has demonstrated that the approach scales to large, complex circuits. Thus, the clockless approach has potential. Currently, most chip designers still use the clocked approach.

26. Circuit Size And Moore's Law

Most digital circuits are built from Integrated Circuits (ICs), a technology that permits many transistors to be placed on a single silicon chip along with wiring that inter connects them. The idea is that the components on an IC form a useful circuit.

ICs are often created by using Complementary Metal Oxide Semiconductor (CMOS) technology. Silicon is doped with impurities to give it negative or positive ionization. The resulting substances are known as N-type silicon or P-type silicon.

When arranged in layers, N-type and P-type silicon form transistors.

IC manufacturers do not create a single IC at a time. Instead, a manufacturer creates a round wafer that is between twelve and eighteen inches in diameter and contains many copies of a given IC design. Once the wafer has been created, the vendor cuts out the individual chips, and packages each chip in a plastic case along with pins that connect to the chip.

ICs come in a variety of shapes and sizes; some have only eight external connections (i.e., pins), and others have hundreds of pins†. Some ICs contain dozens of transistors, others contain millions.

Depending on the number of transistors on the chip, ICs can be divided into four broad categories that FIG. 25 lists.

Name | Example | Use

Small Scale Integration (SSI) Basic Boolean gates Medium Scale Integration (MSI) Intermediate logic, such as counters Large Scale Integration (LSI) Small, embedded processors Very Large Scale Integration (VLSI) Complex processors


FIG. 25 A classification scheme used for integrated circuits.

For example, integrated 7400, 7402, and 7404 circuits described in this section are classified as SSI. A binary counter, flip-flop, or demultiplexer is classified as MSI.

The definition of VLSI keeps changing as manufacturers devise new ways to in crease the density of transistors per square area. Gordon Moore, a cofounder of Intel Corporation, is attributed with having observed that the density of silicon circuits, measured in the number of transistors per square inch, would double every year. The observation, known as Moore's Law, was revised in the 1970s, when the rate slowed to doubling every eighteen months.

†Engineers use the term pinout to describe the purpose of each pin on a chip.

As the number of transistors on a single chip increased, vendors took advantage of the capability to add more and more functionality. Some vendors created multicore CPU chips by placing multiple copies of their CPU (called a core) on a single chip, and then providing interconnections among the cores. Other vendors took a System on Chip (SoC) approach in which a single chip contains processors, memories, and interfaces for I/O devices, all interconnected to form a complete system. Finally, memory manufacturers have created chips with larger and larger amounts of main memory called Dynamic Ram (DRAM).

In addition to general-purpose ICs that are designed and sold by vendors, it has be come possible to build special-purpose ICs. Known as Application Specific Integrated Circuits (ASICs), the ICs are designed by a private company, and then the designs are sent to a vendor to be manufactured. Although designing an ASIC is expensive and time-consuming -- approximately two million dollars and nearly two years -- once the design is completed, copies of the ASIC are inexpensive to produce. Thus, companies choose ASIC designs for products where standard chips do not meet the requirements and the company expects a large volume of the product to be produced.

27. Circuit Boards And Layers

Most digital systems are built using a Printed Circuit Board (PCB) that consists of a fiberglass board with thin metal strips attached to the surface and holes for mounting integrated circuits and other components. In essence, the metal strips on the circuit board form the wiring that interconnects components.

Can a circuit board be used for complex interconnections that require wires to cross? Interestingly, engineers have developed multilayer circuit boards that solve the problem. In essence, a multilayer circuit board allows wiring in three dimensions -- when a wire must cross another, the designer can arrange to pass the wire up to a higher layer, make the crossing, and then pass the wire back down.

It may seem that a few layers will suffice for any circuit. However, large complex circuits with thousands of interconnections may need additional layers. It is not uncommon for engineers to design circuit boards that have eighteen layers; the most advanced boards can have twenty-four layers.

28. Levels Of Abstraction

As this section illustrates, it is possible to view digital logic at various levels of abstraction. At the lowest level, a transistor is created from silicon. At the next level, multiple transistors are used along with components, such as resistors and diodes, to form gates. At the next level, multiple gates are combined to form intermediate scale units, such as flip flops. In later sections, we will discuss more complex mechanisms, such as processors, memory systems, and I/O devices, that are each constructed from multiple intermediate scale units. FIG. 26 summarizes the levels of abstraction.

The important point is that moving up the levels of abstraction allows us to hide more details and talk about larger and larger building blocks without giving internal de tails. When we describe processors, for example, we can consider how a processor works without examining the internal structure at the level of gates or transistors.

Abstraction Implemented With

Computer Circuit board(s) Circuit board Processor, memory, and bus adapter chips Processor VLSI chip VLSI chip Many gates Gate Many transistors Transistor Semiconductor implemented in silicon


FIG. 26 An example of levels of abstraction in digital logic. An item at one level is implemented using items at the next lower level.

An important consequence of abstraction arises in the diagrams architects and engineers use to describe digital systems. As we have seen, schematic diagrams can represent the interconnection of transistors, resistors, and diodes. Diagrams can also be used to represent an interconnection among gates. In later sections, we will use high level diagrams that represent the interconnection of processors and memory systems. In such diagrams, a small rectangular box will represent a processor or a memory without showing the interconnection of gates. When looking at an architectural diagram, it will be important to understand the level of abstraction and to remember that a single item in a high-level diagram can correspond to an arbitrarily large number of items at a lower-level abstraction.

29. Summary

Digital logic refers to the pieces of hardware used to construct digital systems such as computers. As we have seen, Boolean algebra is an important tool in digital circuit design -- there is a direct relationship between Boolean functions and the gates used to implement combinatorial digital circuits. We have also seen that Boolean logic values can be described using truth tables.

A clock is a mechanism that emits pulses at regular intervals to form a signal of alternating ones and zeros. A clock allows a digital circuit output to be a function of time as well as of its logic inputs. A clock can also be used to provide synchronization among multiple parts of a circuit.

Although we think of digital logic from a mathematical point of view, building practical circuits involves understanding the underlying hardware details. In particular, besides basic correctness, engineers must contend with problems of power distribution, heat dissipation, and clock skew.

QUIZ

1. Use the Web to find the number of transistors on a VLSI chip and the physical size of the chip. If the entire die was used, how large would an individual transistor be?

2. Digital logic circuits used in smart phones and other battery-powered devices do not run on five volts. Look at the battery in your smart phone or search the Web to find out what voltage is being used.

3. Design a circuit that uses nand, nor and inverter gates to provide the exclusive or function.

4. Write a truth table for the full adder circuit in FIG. 12.

5. Use the Web to read about flip-flops. List the major types and their characteristics.

6. Create the circuit for a decoder from nand, nor, and inverter gates.

7. Look at Web sources, such as Wikipedia, to answer the following question: when a chip manufacturer boasts that it uses a seven nanometer chip technology, what does the manufacturer mean?

8. What is the maximum number of output bits a counter chip can have if the chip has sixteen pins? (Hint: the chip needs power and ground connections.)

9. If a decoder chip has five input pins (not counting power and ground), how many output pins will it have?

10. Design a circuit that takes three inputs, A, B, and C, and generates three outputs. The circuit would be trivial, except that you may only use two inverters. You may use arbitrary other chips (e.g., nand, nor, and exclusive or).

11. Assume a circuit has a spare nor gate. Can any useful functions be created by connecting one of the inputs to logical one? To logical zero? Explain.

12 Read about clockless logic. Where is it being used?

PREV. | NEXT

Related Articles -- Top of Page -- Home

Updated: Monday, March 27, 2017 7:44 PST