This isn’t an attempt to thoroughly educate you in the theory or practice of digital circuit design. Instead, it’s designed to be a backgrounder that allows you to do certain projects with a proper frame of reference, and an understanding of key concepts. I’ll try pretty hard to assume no previous knowledge of digital circuits.

## Digital circuits defined

For purposes of this discussion, a digital circuit will be one in which voltages take on discrete values, rather than continuously varying quantities. The discrete values are assigned logic states (TRUE and FALSE). By operating on these logic states using Boolean algebra, outputs can be controlled on the basis of inputs, and that process can be analyzed.

## Some first concepts

Although the assignment of TRUE and FALSE to voltages is arbitrary, for our purposes, we will be assigning +5V to TRUE, and 0V to FALSE. The symbols 1 and 0, and H and L are sometimes used equivalently, so keep that in mind as you look at data sheets. The voltage +5 is a nominal value–values within a certain threshold will suffice to represent the TRUE state. Boolean operators (very much like the ones you may be familiar with in programming languages) allow the combination of inputs into expressions. Typically an output is defined as an expression of inputs. A pulse is a transition between logic states. A clock signal, or pulse train, is a sequence of transitions between logic states.

## Combinational and sequential logic

A circuit or expression that defines outputs in terms of inputs at the present time only. Sequential circuits, in contrast, define the current state in terms of the previous state(s). Combinational logic is built from gates. Gates correspond to Boolean algebraic operations. Sequential circuits involve “memory,” even at the level of a single bit. The flip-flop is a device that has defined values at its outputs based on the inputs and a clock pulse. When the outputs of flip-flops are fed back to the inputs, a form of memory is implemented. In this case, the next state of the circuit is dependent on the present state.

## Boolean operations

In Boolean algebra, only two values are possible; 1 and 0. All combinations of any number of Boolean quantities will yield a 1 or 0. Another way to say that is that all Boolean expressions will evaluate to 1 or 0. A boolean operator can be defined in terms of a truth table. A truth table expresses the value of a Boolean function for all possible combinations of its operands (inputs in our context). The Boolean operators we will describe are: AND, OR, NOT, NAND, NOR, and XOR.

## Boolean notation

AND is expressed in the notation for multiplication. AND returns TRUE only if both operands are TRUE.

A AND B is written as AB

OR is expressed in the notation for addition. OR returns TRUE if either of the operands are TRUE.

A OR B is written as A + B

NOT is expressed in several ways. An overbar, a prime, and a preceding or trailing slash are used. NOT returns TRUE if the operand is FALSE. NOT is unary, since it take a single argument, but that argument can be an expression.

NOT A is written (in this document) as A’

NAND and NOR are the negation of AND and OR respectively. Using parentheses, the negation is applied to the basic expression.

A NAND B is written (AB)’ (in this document)

A NOR B is written as (A + B)’

XOR (exclusive OR) evaluates to true if one and only one of the operands is true.

A XOR B is written as A&B (in this document)

Page: 1 2

[prev: will vinyl dye work on my painted case parts?]

[next: Linux wristwatch from IBM]