30-06-2012, 04:27 PM
Digital Logic and Microprocessor Design With VHDL
Digital.Logic.And.Microprocessor.Design.With.VHDL.pdf (Size: 5.11 MB / Downloads: 47)
Our world is an analog world. Measurements that we make of the physical objects around us are never in
discrete units, but rather in a continuous range. We talk about physical constants such as 2.718281828… or
3.141592…. To build analog devices that can process these values accurately is next to impossible. Even building a
simple analog radio requires very accurate adjustments of frequencies, voltages, and currents at each part of the
circuit. If we were to use voltages to represent the constant 3.14, we would have to build a component that will give
us exactly 3.14 volts every time. This is again impossible; due to the imperfect manufacturing process, each
component produced is slightly different from the others. Even if the manufacturing process can be made as perfect
as perfect can get, we still would not be able to get 3.14 volts from this component every time we use it. The reason
being that the physical elements used in producing the component behave differently in different environments, such
as temperature, pressure, and gravitational force, just to name a few. Therefore, even if the manufacturing process is
perfect, using this component in different environments will not give us exactly 3.14 volts every time.
Binary Numbers
Since digital circuits deal with binary values, we will begin with a quick introduction to binary numbers. A bit,
having either the value of 0 or 1, can represent only two things or two pieces of information. It is, therefore,
necessary to group many bits together to represent more pieces of information. A string of n bits can represent 2n
different pieces of information. For example, a string of two bits results in the four combinations 00, 01, 10, and 11.
By using different encoding techniques, a group of bits can be used to represent different information, such as a
number, a letter of the alphabet, a character symbol, or a command for the microprocessor to execute.
The use of decimal numbers is quite familiar to us. However, since the binary digit is used to represent
information within the computer, we also need to be familiar with binary numbers. Note that the use of binary
numbers is just a form of representation for a string of bits. We can just as well use octal, decimal, or hexadecimal
numbers to represent the string of bits. In fact, you will find that hexadecimal numbers are often used as a shorthand
notation for binary numbers.
Binary Switch
Besides the fact that we are working only with binary values, digital circuits are easy to understand because
they are based on one simple idea of turning a switch on or off to obtain either one of the two binary values. Since
the switch can be in either one of two states (on or off), we call it a binary switch, or just a switch for short. The
switch has three connections: an input, an output, and a control for turning the switch on or off as shown in Figure
2.2. When the switch is opened as in (a), it is turned off and nothing gets through from the input to the output. When
the switch is closed as in (b), it is turned on, and whatever is presented at the input is allowed to pass through to the
output.
Boolean Function and the Inverse
As we have seen, any digital circuit can be described by a logical expression, also known as a Boolean function.
Any Boolean functions can be formed from binary variables and the Boolean operators •, +, and ' (for AND, OR, and
NOT respectively). For example, the following Boolean function uses the three variables or literals x, y, and z. It has
three AND terms (also referred to as product terms), and these AND terms are ORed (summed) together. The first
two AND terms contain all three variables each, while the last AND term contains only two variables. By definition,
an AND (or product) term is either a single variable, or two or more variables ANDed together. Quite often, we refer
to functions that are in this format as a sum-of-products or or-of-ands.