Week10 Module10
Week10 Module10
Week10 Module10
COURSE INTENDED On the completion of the course, student is expected to be able to do the
LEARNING OUTCOMES: following:
II. OBJECTIVES: By the end of this module you should be able to:
III. INTRODUCTION:
Combinational logic circuits implement logical functions. Used for
control, arithmetic, and data steering, combinational circuits are the heart
of digital systems. In this module we introduce combinational logic
circuits and describe a procedure to design these circuits given a
specification.
Lesson Coverage:
- Combinational Circuit
INTRODUCTION
Combinational logic circuit generates a set of outputs whose state depends only on the current state of the inputs.
Of course, when an input changes state, sometime is required for an output to reflect this change. However, except
for this delay the outputs do not reflect the history of the circuit.
With a combinational circuit, a given input state will always produce the same output state regardless of the
sequence of previous input states. A circuit where the output depends on previous input states is called a sequential
circuit
Combinational logic circuits are important because their static nature makes them easy to design and analyze. As
we shall see, general sequential circuits are quite complex in comparison. In fact, to make sequential circuits
tractable we usually restrict ourselves to synchronous sequential circuits which use combinational logic to
generate a next state function.
Logic circuits that depend only on their inputs are combinational and not combinatorial. While these two words
sound similar, they mean different things. The word combinatorial refers to the mathematics of counting, not to
logic circuits. To keep them straight, remember that combinational logic circuits combine their inputs to generate
an output.
A valuable property of combinational logic circuits is that they are closed under acyclic composition. That is, if
we connect together a number of combinational logic circuits — connecting the outputs of one to the inputs of
another — and avoid creating any loops — that would be cyclic — the result will be a combinational logic circuit.
Thus we can create large combinational logic circuits by connecting together small combinational logic circuits.
Often we start with a truth table that shows the output value for each input combination.
A minterm is a product term that includes each input of a circuit or its complement. The name minterm derives
from the fact that these four input product terms represent a minimal number of input states (rows of the truth
table), just one.
Expressing a logic function as a sum of minterms is a normal form that is unique for each logic function. While
this form is unique, its not particularly efficient. We can do much better by combining minterms into simpler
product terms that each represent multiple lines of our truth table.
Test Bench
To verify that a Verilog module is correct, we write a test bench. A test bench is a piece of Verilog code that is
used during simulation to instantiate the module to be tested, generate input stimulus, and check the module’s
outputs.
While modules must be coded in a strict synthesizable subset of Verilog, test benches, which are not synthesized,
can use the full Verilog language, including looping constructs. In a typical modern digital design project at least
as much effort goes into design verification (writing test benches) as goes into doing the design itself
Decoder
In general, a decoder converts symbols from one code to another. When used by itself, however, the term decoder
means a binary to one-hot decoder. That converts a symbol from a binary code (each bit pattern represents a
symbol) to a one-hot code (at most one bit can be high at a time and each bit represents a symbol).
A read-only memory or ROM is a module that implements a look-up table. It accepts an address as input and
outputs the value stored in the table at that address. The ROM is read-only because the values stored in the table
are
predetermined - hard-wired at the time the ROM is manufactured and cannot be changed. A ROM can implement
an arbitrary logic function by storing the truth table of that function in the ROM.
A read-write memory or RWM is like a ROM but also allows the contents of the table to be changed or written.
For historical reasons read-write memories are commonly called RAMs. The use of the term RAM to refer to a
RWM
is almost universal, so we will adopt it as well. Strictly speaking, a RAM is a sequential logic device — it has
state and hence its outputs depend on its input history.
The column “multiplexing” for writes is a bit more involved and will not be discussed further here. Most practical
RAMs also use a much more efficient bit cell than the latch plus tri-state buffer shown here. Most static RAMs
(SRAMs) use a six-transistor storage cell while modern dynamic RAMs (DRAMSs) use a cell composed of a
single transistor and a storage capacitor.
Data Sheets
We often will use a building block, or an entire subsystem, in a larger design without understanding its
implementation. When we use a building block in this manner we rely on the specification of the block. This
specification, often called a data sheet gives enough information to use the block, but omits internal details of
how the block is constructed. A data sheet typically contains:
1. A functional description of the block - what the block does. This should be in sufficient detail as to
completely specify the block’s behavior. For a combinational block, a truth table or equation is often used to
specify the block’s function.
2. A detailed description of the inputs and outputs of the block. A signal by signal description that gives the
signal name, width, direction, and a brief description of the signal.
4. A description of all of the visible state and registers in the block (for sequential blocks).
5. The synchronous timing of the block. The cycle-level timing of the block.
6. The detailed timing. The timing of input and output signals within a single cycle.
7. Electrical properties of the block: power requirements, power consumed, input and output signal levels,
input loads and output drive levels.
Combinational Circuits (CC) are circuits made up of different types of logic gates. A logic gate is a basic building
block of any electronic circuit. The output of the combinational circuit depends on the values at the input at any
given time. The circuits do not make use of any memory or storage device.
A combinational logic circuit as the name itself indicates that it is the combination of various kinds of logic gates.
The combinational circuit goes with the characteristics of:
• At any instant of time, the output is based only on the levels of current input terminals and not on the past
state inputs.
• These circuits do not need any kind of memory states or clock, so the past inputs show no influence on
the current state of the circuit.
• A combinational circuit can intake ‘n’ number of inputs and delivers only one output.
Either the complicated or simple combinational logic, these can be represented through ‘NAND’, ‘NOT’ or ‘NOR
gates’.
Logic gates – These are the basic building blocks in the development of combinational logic circuits. NAND,
NR, NOT, NOR, OR, AND are all logic gates.
Boolean algebra – This representation stipulates the association that is between Boolean variables and is used to
design digital circuitry through logic gates. Every digital system is basically designed with logic gates and so
Boolean algebra is the one foremost approach to represent a combinational logic circuit.
Truth table – This method computes the operational values of logical expressions for every combination of
values taken by their logical variables. For every single-bit output in the logic block, a truth table is necessary to
represent the logic. In general, all the output columns are represented in a single table.
For example, an expression that can be represented in the above three approaches as follows:
The foremost implementation of the combinational logic circuit is Multiplexer and de-multiplexer. In these, many
numbers of inputs or outputs are on a single line and the logic gates are employed to decode corresponding output
for the specified input.
Combinational logic circuits are the basic building blocks of digital systems. They have an extensive variety of
applications. They are used in
• Comparators
• Programmable logic devices
• Adders & Subtractors
The below steps clearly explain the design procedure of how a combinational logic system is developed
To minimize Boolean expressions, various approaches are followed. K-map and Quinne-McCluskey are the most
followed techniques. The above-stated procedure is a streamlined and effective technique. Through this, the
design of circuits seems to be completely reliable.
V. REFERENCES: Roth, C.H. Jr. And John, L. K. (2018). Digital Systems Design Using VHDL (3rd
ed.). Texas, USA: Cengage Unlimited