Digital Design: Binary Systems & Logic
Digital Design: Binary Systems & Logic
BINARY SYSTEMS #
COMBINATIONAL LOGIC #
SEQUENTIAL CIRCUITS #
LATCHES #
FLIPFLOPS #
STATE MACHINES & STATE DIAGRAMS #
REGISTERS & SHIFT REGISTERS #
COUNTERS #
MEMORIES #
MEMORIES #
PLDS #
PAL’S #
PLA’S #
1|Page
BINARY SYSTEMS
Number System
Definition:
The number system are used to quantify the magnitude of something. One way of
quantifying the magnitude of something is by proportional values. This is called analog
representation. The other way of representation of any quantify is numerical (Digital).
The number systems are called position weighted systems, since the weight of each digit
depends on its relative position with in the number.
Base (or) Radix of system:
The base (or) radix of number system is defined as the number of different symbols
(Digits (or) characters) used in that number system.
Types of Number Systems:
1. Binary number system:
It is very essential to show the suffix to the numbers which indicates the base of
the number system.
2|Page
Example: Find the decimal equivalent of the binary number 11011001.0101.
Solution:
(11011001.0101)2 = 1 × 27 + 1 × 26 + 0 × 25 + 1 × 24 + 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20
+0× 2-1 + 1 × 2-2 + 0 × 2-3+ 1 × 2-4
= 128 + 64 + 0 + 16 + 8 + 0 + 0 + 1 + 0 + 0.25 + 0 + 0.125
= (217.375)10
Example: Do the following conversions:
(i) (1100110111110.1011)2 to octal
(ii) (110011010110111110.101)2 to hexadecimal
Solution: (i) Binary number: 001 100 110 111 110 . 101 100
Octal Equivalent: 1 4 6 7 6 3 4
So (1100110111110.1011)2 = (14676.34)8
3|Page
3. Decimal number system:
So (127)10 = (1111111)2
4|Page
So (1276)10 = (2374)8
Example: Convert the following decimal numbers into hexadecimal.
(i) 8537 (ii) 98765
So (8537)10 = (2159)16
So (98765)10 = (181CD) 16
5|Page
(iii) (6754.05)8 to decimal.
Hexa decimal
The number of different symbols used in Hexa decimal number system are 0 to r-1
(0 to 15) those are 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
(17)16 = 1 × (16)1 + 7 × (16)0
=16 + 7
6|Page
= (23)10
Hexadecimal: 2 A B 6 E 7 . 5 D 4
Binary 0010 1010 1011 0110 1110 0111 . 0101 1101 0100
So (2AB6E7.5D4)16 = (1010101011011011100111.0101110101)2
Solution: The given hexadecimal number is first converted to binary number and then
Converted to octal number.
Hexadecimal: 4 A C 7 . 4 B
Binary: 0100 1010 1100 0111 . 0100 1011
7|Page
BINARY CALCULATIONS
1’s Compliment:
The compliment of each bit in a binary number is 1’s compliment
For example, 100101is the 1’s compliment of 011010
2’s Compliment:
Adding 1 to the 1’s compliment binary number is 2’s compliment.
For example, the 2’s compliment of binary number 100101 is
100101
011010-------- 1’s compliment
+ 1--------- adding 1 to 1’s compliment number
011011--------- 2’s compliment of 100101
The rule for changing a positive 2’s complement number into a negative 2’s
complement number (or vice versa) is: Complement all the bits and add 1.
8|Page
COMBINATIONAL LOGIC GATES AND BOOLEAN ALGEBRA
Logic Gates:
Basic logic circuits with one or more inputs and one output are known as gates.
Gates are used as the building blocks in the design of more complex digital logic circuits.
There are several ways of representing logic functions:
– Symbols to represent the gates
– Truth tables
– Boolean algebra
Logic gates are electronic circuits with a number of inputs and one output. There are three
basic logic gates, namely
1. OR gate,
2. AND gate,
3. NOT gate
Other logic gates that are derived from these basic gates are
1. NAND gate,
2. NOR gate,
3. EXCLUSIVE-OR gate,
4. EXCLUSIVE-NOR gate
9|Page
AND Gate:
An AND gate is a logic circuit with two or more inputs and one output that performs AND
operation. The output of an AND gate is HIGH only when all of its inputs are in the HIGH
state. In all other cases, the output is LOW. For a positive logic systems, it means that the
output of the AND gate is a logic ‘1’ only when all of its inputs are in logic ‘1’ state. In all
other cases, the output is logic ‘0’. The logic symbol and the truth table of a two-input AND
gate are shown
OR Gate:
An OR gate is a logic circuit with two or more inputs and one output that performs OR
operation. The output of an OR gate is LOW only when all of its inputs are LOW. For all
other possible input combinations, the output is HIGH. For a positive logic system, the output
of an OR gate is a logic ‘0’ only when all of its inputs are at logic ‘0’. For all other possible
input combinations, the output is a logic ‘1’. The logic symbol and the truth table of a two-
input OR gate are shown in Figure
10 | P a g e
Truth Table of 2 input OR Gate
NOT Gate:
A NOT gate, also called an inverter is a one-input, one-output logic circuit whose output is
always the complement of the input. That is, a LOW input produces a HIGH output, and vice
versa. It means that for a positive logic system, a logic ‘0’ at the input produces a logic ‘1’ at
the output, while a logic ‘1’ at the input produces a logic ‘0’ output. It is also known as a
complementing circuit or an inverting circuit. The logic symbol and the truth table of an
inverter are shown in Figure
11 | P a g e
NAND Gate:
The term NAND implies NOT-AND. A NAND gate is equivalent to AND gate followed by a
NOT gate. The standard logic symbol for a 2-input NAND gate is shown in Figure. This
symbol is same as AND gate symbol except for a small circle (bubble) on its output. This
circle represents the NOT function.
The truth Table of a NAND gate is obtained from the truth Table of an AND gate by
complementing the output entries. The output of a NAND gate is a logic ‘0’ when all its
inputs are a logic ‘1’. For all other input combinations, the output is a logic ‘1’. NAND gate
operation is logically expressed as Y = A.B
NOR Gate:
The term NOR implies NOT-OR. A NOR gate is equivalent to OR gate followed by a NOT
gate. The standard logic symbol for a 2-input NOR gate is shown in Figure. This symbol is
same as OR gate symbol except for a small circle (bubble) on its output. This circle represents
the not function.
The truth Table 2.10 of a NOR gate is obtained from the truth Table of an OR gate by
complementing the output entries. The output of a NOR gate is a logic ‘1’ when all its inputs
are logic ‘0’. For all other input combinations, the output is a logic ‘0’. The output of a two-
input NOR gate is logically expressed as Y = A + B
12 | P a g e
Truth Table of 2 input NAND Gate:
From the truth table it can be stated that, the output of an EX-OR gate is a logic ‘1’ when the
two inputs are at different logic and a logic ‘0’ when the two inputs are at the same logic
13 | P a g e
EX-NOR Gate (Exclusive-NOR gate):
The Exclusive-NOR gate, commonly known as Ex-NOR, is an Ex-OR gate, followed by an
inverter. It has two inputs and one output. The logic symbol for the Ex-NOR gate is shown in
Figure 2.9, and the truth table for the two-input Ex-NOR operation is given in Table
Universal Gates:
NAND and NOR gates are known as universal gates because any of these two gates is
capable of implementing all other gate functions.
14 | P a g e
The AND Gate using NAND Gate:
To construct an AND gate from NAND gates, an inverter or a NOT gate is required to invert
the output of a NAND gate. This inversion cancels out the first inverted operation of NAND
gate and the final result will be AND function as depicted in Figure. Algebraically,
To construct OR function using only NAND gates, first we transform the OR function as
follows.
Y = A + B = A̅ + B̅ A̅ = A
= A̅ . B̅ (De Morgan’s Theorem)
The above equation is implemented using only NAND gates as shown in the Figure
15 | P a g e
The above equation is implemented using only NAND gates, as shown
16 | P a g e
The EX-NOR Gate using NAND Gate:
Ex-NOR gate can be constructed by taking complement of Ex-OR. Tha is, we need one
more NAND gate to implement the Ex-NOR function Figure shows Ex-NOR
implementation using five NAND gates.
17 | P a g e
The AND Gate using NOR Gate:
AND function can be generated using three NOR gates. We know that Boolean expression
for AND gate is
Y=A.B
= A̅ . B̅ A̅ = A
= A̅ + B̅ (DeMorgan’s Theorem)
18 | P a g e
The EX-OR Gate using NOR Gate:
XOR function may also be implemented by using NOR gates. The Ex-OR operation is given
by
The above expression can be realized using five NOR gates as shown in Figure
19 | P a g e
ALTERNATE LOGIC-GATE REPRESENTATIONS:
We have discussed the five basic logic gates (AND, OR, INVERTER, NAND, and NOR)
and the standard symbols used to represent them in a logic circuit diagram. Most of the logic
networks use standard symbols. But in some networks an alternative set of symbols is used
in addition to the standard symbols. Table shows the alternate set of symbols for the five
basic gates
To convert any normal symbol to its corresponding alternate symbol, the following steps are
used
METHODOLOGY: TO CONVERT STANDARD SYMBOL TO ALTERNATE SYMBOL
Step 1: Add bubbles (indication of inversion) at those input or output points where it is not
present.
Step 2: Remove all pre-existing bubbles of the normal symbol, if there is any at the point
(only NOT, NAND and NOR gates)
Step 3: If the existing normal logic symbol is AND, change it to OR, Similarly, if it is OR,
then change it to AND. There is no change for the triangular symbol of NOT gate
20 | P a g e
Boolean algebra
OR GATE:
A+0 A
A+A A
A+1 1
A + A̅ 1
AND GATE:
Ax0 0
AxA A
Ax1 A
A x A̅ 0
AND takes precedence over OR, e.g. A*B + C*D = (A*B) + (C*D)
Distributive law:
A (B + C + ….) = (A × B) + (B × C) + ….
A + (B × C × ….) = (A + B) (B + C) ….
Absorption law:
A + (A × C ) = A
A (A + C) = A
21 | P a g e
Examples:
Show
a.(a̅ + b) = a.b
a.(a̅ + b) = a.a̅ + a.b = 0 + a.b = a.b
Show
a + (a̅.b) = a + b
a + (a̅.b) = (a + a̅).(a + b) =1.(a + b) = a + b
A useful technique is to expand each term until it includes one instance of each
variable (or its compliment). It may be possible to simplify the expression by cancelling
terms in this expanded form e.g., to prove the absorption rule:
a + (a.b)= a
a.b + a.b̅ + a.b = a.b + a.b̅ = a.(b + b̅ ) = a.1 = a
EXAMPLE:
Simplify
x.y + y̅.z + x.z + x.y.z
x.y.z + x.y.z̅ + x.y̅.z + x̅.y̅.z + x.y.z + x.y̅.z + x.y.z
x.y.z + x.y.z̅ + x.y̅.z + x̅.y̅.z
x.y.(z + z̅) + y̅.z.(x + x̅)
x.y.1+ y̅.z.1
x.y + y̅.z
DE-MORGANS THEOREM:
a + b + c + ….. = a̅ . b̅ . c̅ ….
a . b . c….. = a̅ + b̅ + c̅ + ……
In a simple expression like a +b + c….. (or ) a . b. c. …..simply change all operators from
OR to AND (or vice versa), complement each term (put a bar over it) and then
complement the whole expression, i.e,
a + b + c +….. = a̅ . b̅ . c̅ .….
a . b . c .….. = a̅ + b̅ + c̅ +….
22 | P a g e
EXAMPLE:
Step 1: The expression Y = AB + AC + ABC contains three terms (AB, AC̅ , A̅BC ) which
are OR together. So, draw an OR gate with three inputs as shown below.
23 | P a g e
Step 2: AB must be the output of an AND gate whose inputs are A and B and AC must be
output of an AND gate whose inputs are A and C. Similarly, ABC must be output of
a 3-input AND gate with inputs A, B and C. We introduce these three AND gates as
shown below
Step 3: Now, C must be the output of an inverter whose input is C and similarly, A will be
the output of an inverter whose input is A. So we put two inverters as shown below.
24 | P a g e
Converting Logic to Boolean Expressions:
Any logic circuit, no matter how complex it is, can be described using Boolean expressions.
To derive the Boolean expression for a given logic circuit, start from the left-most input and
work toward the final output, writing output for each gate. As an example, consider the logic
diagram shown in Figure. We go through the following steps to get the Boolean expression
Step 2: The output of left-most AND gate with inputs C and D is CD.
Step 3: The outputs of the OR gate and AND gate are the inputs of right-most AND gate.
Therefore, the expression for this AND gate is (A + B) CD, which is the final output
expression for the entire circuit.
Logic Simplification:
As we have seen previously, Boolean algebra can be used to simplify logical expressions.
This results in easier implementation
Note: The DNF and CNF forms are not simplified.
Karnaugh Maps:
Karnaugh Maps (or K-maps) are a powerful visual tool for carrying out simplification and
manipulation of logical expressions having up to 5 variables
25 | P a g e
K-maps example:
Note that the logical state of the variables follows a Gray code, i.e., only one of them
changes at a time
The exact assignment of variables in terms of their position on the map is not important
Having plotted the minterms, how do we use the map to give a simplified expression?
Group terms
• Having size equal to a power of 2, e.g., 2, 4, 8, etc.
• Large groups best since they contain fewer variables
• Groups can wrap around edges and corners
K-maps – 4 variables
K maps from Boolean expressions
26 | P a g e
Example:
Plot f = b̅ and f = b̅ . d̅
27 | P a g e
COMBINATIONAL LOGICS
Binary Adding Circuits
We will now look at how binary addition may be implemented using combinational logic
circuits. We will consider:
– Half adder
– Full adder
– Ripple carry adder
Half Adder:
Adds together two, single bit binary numbers a and b (note: no carry input)
Has the following truth table:
By inspection:
sum = a̅.b + a.b̅ = a + b
cout = a.b
Full Adder:
Adds together two, single bit binary numbers a and b (note: with a carry input)
Has the following truth table:
28 | P a g e
Alternatively, Which is similar to previous expression except with the OR replaced by
XOR
We have seen how we can implement a logic to add two, one bit binary numbers (inc.
carry-in).
However, in general we need to add together two, n bit binary numbers.
One possible solution is known as the Ripple Carry Adder
This is simply n, full adders cascaded together
Example, 4 bit adder,
29 | P a g e
Design of a half subtractor using NAND gates:
A half subtractor may be designed by the same method as the half adder. The truth table
for the half subtractor is given in table
In this table X0 and Y0 are the minuend and subtrahend respectively; D0 the difference
of the two bits (X0 & Y0) and B0 is the borrow bit from the next bit. The Boolean
expressions for Difference D0 and borrow bit B0 are given as:
The realization of these expressions using NAND gates only may, therefore, be given in
figure
30 | P a g e
The Boolean expression for the borrow B1 to the next bit is obtained from the K –map shown in
figure
The full subtractor circuit may now be shown to be implemented using NAND gates as
illustrated in figure
The full subtractor is the combination of two half subtractors and gates as shown in figure,
31 | P a g e
Comparators:
A digital comparator or magnitude comparator is a hardware electronic device that takes two
numbers as input in binary form and determines whether one number is greater than, less than or
equal to the other number. Comparators are used in central processing unit s (CPUs)
and microcontrollers (MCUs)
Note: An XNOR gate is a basic comparator, because its output is "1" only if its two input bits
are equal.
The analog equivalent of digital comparator is the voltage comparator.
Many microcontrollers have analog comparators on some of their inputs that can be read or
trigger an interrupt.
Inequality
In order to manually determine the greater of two binary numbers, we inspect the relative
magnitudes of pairs of significant digits, starting from the most significant bit, gradually
proceeding towards lower significant bits until an inequality is found. When an inequality is
found, if the corresponding bit of A is 1 and that of B is 0 then we conclude that A>B.
One-bit binary full comparator, equality, inequality, greater than, less than at gate level. Created
using Logisim.
32 | P a g e
Decoders:
A decoder is a logic circuit which has a set of inputs representing a binary number and gives
only one output corresponding to the input number. The decoder activates one output at a time
depending upon the input binary number; all other outputs will be inactive. Figure shows the
functional block diagram of a decoder having N inputs and K outputs. The possible
combinations of N inputs will be 2N = K, so there will be K outputs.
Below figure shows the circuit diagram of 3 – to – 8 line decoder. It will have three input lines
and 23 = 8 output lines. When the three bit binary number is fed to the input of the decoder, as
discussed above one output line corresponding to input binary is activated and all other output
lines will be inactive. It is also called binary to octal decoder or converter because it takes a
binary code as input and activates one of the eight (octal) output lines corresponding to the input
binary code. The 3 – to – 8 can also be referred to as a 1 – of – 8 line decoder, because only one
of the eight outputs is activated at a time. The truth table for 3 – to – 8 line decoder is shown in
table.
It is clear from the above figure that an Enable input line is connected to the fourth input of
each gate. When the Enable input is connected to logic 0, all the gates will be disabled and
force all output to be zero irrespective of the input data (ABC). However, the decoder will
give the required data when the Enable terminal is held at logic 1. The functional block
diagram of 3 to 8 line decoder is shown in below figure
33 | P a g e
Further it is interesting to note that the decoder can function as a demultiplexer. For example a
2:4 line decoder with Enable terminal can be used as a 1:4 DMUX, if the Enable terminal E is
used as the data input line for the DMUX and the two input A & B of the decoder as the select
terminals for the DMUX. It is illustrated in figure
Decoder/Demultiplexer circuits can be expanded to form the larger decoder circuit. For
example two 3:8 line decoders with Enable terminal can be connected to form ba 4:16 line
decoder. Figure shows the construction of a 4:16 line decoder with two 3:8 line decoders.
From this figure it is clear that when the enable terminal E is 0, decoder (1) is enabled and
decoder (2) is disabled. The decoder (1), therefore, gives the outputs as per the value of
ABC. When the enable terminal E is 1, decoder (1) is disabled and decoder (2) is enabled.
The decoder (2) now gives the output as the input values. Here E terminal works as the most
significant bit and C as the least significant bit. So EABC generates the binary input 0000
through 1111.
Encoder:
An encoder a combinational circuit which performs the reverse operation of decoder. The
decoder accepts N bit input code and activates one of the several outlines corresponding to
that code. However, an encoder has a number of input lines, only one of which is activated
at a time. It provides the N bit code at the output corresponding to activated input line. The
decoders studied in the foregoing section were binary to octal, BCD to decimal decoder etc.
The encoders will therefore, be like octal to binary and decimal to BCD encoders. Figure
shows the functional block diagram of an encoder having K inputs and N outputs. In the K
input lines only one line will be high at a time.
34 | P a g e
Decimal – to – BCD Encoder:
The decimal – to – BCD encoder has 10 inputs – one for each decimal digit, and 4
output lines for BCD codes. The logic symbol of this encoder is shown in figure. Table
shows the truth table for decimal to BCD encoder. The expressions for the output variables
with respect to the truth table are given by:
The logic circuit for the decimal – to – BCD encoder with active high inputs is shown in figure
35 | P a g e
Multiplexers:
A multiplexer (MUX) also known as data selector, is a logic circuit which allows the
digital information from multi-inputs to a single output line. The selection of the input data
to be routed to the output line is done by the select terminals.
The number of select terminals depends on the number of input lines to be routed to
output line, given by the general formula as:
2K = N ,
where N is the number of input lines and K is the number of select terminals. In
other words, if there are 4 input lines to be routed to output line, then two select terminals
are needed as 22 = 4 .
The block diagram for 4:1 multiplexer is shown in figure
In which X0, X1 , X2 , X3 are the 4 input lines and S1 , S0 are the select terminals and
X is the output terminal. Normally a strobe terminal or enable terminal (G) is provided in
the MUXs which is normally active-low. The active-low means it performs the operation
when it is low; it also helps to cascade the MUXs. The Boolean function to perform the
multiplexing action is given as:
X X0 S̅1 S̅0 X1 S̅1 S0 X2 S1 S̅0 X3 S1 S0
The output X will follow the input data depending on the select terminals S1 , S0 , as given in the
table
36 | P a g e
Note that only one of the inputs X0, X1, X2, X3 is routed to the output X (one at a time). The
realization of the Boolean function X with NAND gates only is shown in figure
Figure shows the logic block diagram for a 8 – input multiplexer/ data selector IC. It
has 8 data inputs X0 through X7, three data select terminals S2 S1, & S0 and an enable
terminal G. when enable terminal G is high, the multiplexer is disabled and output X is zero
irrespective of the select input terminal. However, when the enable terminal G is low the
input data is routed to the output as per data select terminals S2 S1, & S0 as illustrated in
table
37 | P a g e
Expansion of Multiplexers:
For the expansion of number of input terminals of the multiplexers two MUXs may be
cascaded. Two 4:1 MUXs may be cascaded to form 8:1 MUX. Similarly two 8:1 MUXs
may be cascaded to have a 16:1 multiplexer and so on. Figure 6.6 illustrates how two 4:1
MUXs are cascaded to form 8:1 MUX. The enable terminal G of the MUXs in-conjunction
with a NOT gate provides the third select terminal. When S2 is zero the first MUX will be
enabled and inputs X0 through X3 will be routed to its output; and when S2 is 1, the second
MUX will be enabled, X4 through X7 will be routed to the output of the second MUX. The
outputs of the two MUXs are connected to the inputs of an OR gate which then gives the
final output
Applications of Multiplexers:
Primary aim of the MUXs is the multiplexing operation, that is, the selected input is
routed to the output. In addition to this, Implementation of Boolean function can easily be
done with MUXs, since MUXs are available in the form of integrated circuits. The method
of implementing the Boolean function is that the truth table is first constructed for the given
function to be implemented. Then logic 1 is connected to each data input of the multiplexer
corresponding to each combination of the input variables which has 1 in the output column
of the truth table. The logic 0 is, however, connected to the remaining inputs of the MUX.
The variables are connected to the data select inputs of the multiplexer.
The Boolean functions of N – variables can also be implemented by the Multiplexers
of (N – 1) select lines. A function of 4 variables can be implemented with 8:1 multiplexer
having 3 select lines. Let A, B, C, D are the input variables of the function F, which is to be
implemented with a multiplexer. The variable A is the most significant bit and D is the least
significant bit. Variables B, C, D are assumed to be the select terminals for the multiplexer.
The truth table is drawn for the given function. It is well known that in the truth table
variables BCD progresses twice through the sequence 000, 001…. 111; once with A = 0 and
other with A = 1. The connections to be made to the data inputs of the multiplexer,
following rules are observed.
1. A logical 0 is connected to the data input of MUX, if the 0 occurs at the output in the
truth table, both times when MSB is 0 and 1 (other variables having the same value).
2. A logical 1 is connected to the data input of MUX, if the 1 occurs at the output in the
truth table, both times when MSB is 0 and 1 (other variables having the same value).
38 | P a g e
3. MSB is connected to the data input of MUX, if the output in the truth table is different
both times when MSB is 0 and 1(other variables having the same value); and also output is
the same as the MSB.
4. The complement of the MSB is connected to the data input of MUX, if the output in the
truth table is same both times when MSB is 0 and 1(other variables having the same value);
and also output is the same as the complement of MSB.
De-Multiplexers:
A demultiplexer performs the reverse process of multiplexer; it receives the information on a
single line and steers to several output lines. Demultiplexer can also be called the Data
Distributor as it can transmit the same data to the different lines. It transmits the data to 2N
output lines, for which the select terminals of N bits are required. For example, to transmit
the single data to four output lines (1:4 DMUX), select terminals of two bits are required;
similarly for 1:8 DMUX select terminals of 3 bits are required and so on. The functional
block diagrams of 1:4 DMUX and 1:8 DMUX are shown in figure respectively
In a 1:4 DMUX, let X is the data input which is to be steered to 4 output lines X0,
X1, X2, X3; the select terminals are S1, S0.
If S1S0 = 00 , the input data X will be go to the output X0.
If S1S0 = 01 , the input data X will be go to the output X1.
If S1S0 = 10 , the input data X will be go to the output X2.
If S1S0 = 11 , the input data X will be go to the output X3.
The Boolean expressions for X0, X1, X2, X3 are given by:
X0 = X × S̅1 × S̅0
X1 = X × S̅1× S0
X2 = X × S1 × S̅0
X3 = X × S1 × S0
The implementation of these functions (or 1:4 DMUX) can be done as shown in figure
39 | P a g e
Tristate Buffer:
A tristate buffer has two inputs: a data input x and a control input c. The control input acts like a
valve. When the control input is active, the output is the input. That is, it behaves just like a
normal buffer. The "valve" is open.
When the control input is not active, the output is "Z". The "valve" is open, and no electrical
current flows through. Thus, even if x is 0 or 1, that value does not flow through.
40 | P a g e
SEQUENTIAL CIRCUITS
The logic circuits discussed previously are known as combinational logic circuits, in
that the output depends only on the condition of the latest inputs.
However, we will now introduce a type of logic where the output
depends not only on the latest inputs, but also on the condition of earlier inputs. These
circuits are known as sequential, and implicitly they contain memory elements. Sequential
logic is used to construct finite state machines, a basic building block in all digital circuitry.
Virtually all circuits in practical digital devices are a mixture of combinational and
sequential logic.
Digital sequential logic circuits are divided into synchronous and asynchronous types.
In synchronous sequential circuits, the state of the device changes only at discrete times in
response to a clock signal. In asynchronous circuits the state of the device can change at any
time in response to changing inputs.
Synchronous sequential logic
Asynchronous sequential logic
41 | P a g e
Synchronous sequential logic
Nearly all sequential logic today is clocked or synchronous logic. In a synchronous
circuit, an electronic oscillator called a clock (or clock generator) generates a sequence of
repetitive pulses called the clock signal which is distributed to all the memory elements in
the circuit. The basic memory element in sequential logic is the flip-flop. The output of each
flip-flop only changes when triggered by the clock pulse, so changes to the logic signals
throughout the circuit all begin at the same time, at regular intervals, synchronized by the
clock.
The output of all the storage elements (flip-flops) in the circuit at any given time, the
binary data they contain, is called the state of the circuit. The state of a synchronous circuit
only changes on clock pulses. At each cycle, the next state is determined by the current state
and the value of the input signals when the clock pulse occurs.
The main advantage of synchronous logic is its simplicity. The logic gates which
perform the operations on the data require a finite amount of time to respond to changes to
their inputs. This is called propagation delay. The interval between clock pulses must be
long enough so that all the logic gates have time to respond to the changes and their outputs
"settle" to stable logic values, before the next clock pulse occurs. As long as this condition is
met (ignoring certain other details) the circuit is guaranteed to be stable and reliable. This
determines the maximum operating speed of a synchronous circuit.
Flip-Flops:
In electronics, a flip-flop or latch is a circuit that has two stable states and can be used
to store state information. A flip-flop is a bistable multivibrator. The circuit can be made to
change state by signals applied to one or more control inputs and will have one or two
outputs. It is the basic storage element in sequential logic. Flip-flops and latches are
fundamental building blocks of digital electronics systems used in computers,
communications, and many other types of systems.
Flip-flops and latches are used as data storage elements. A flip-flop stores a
single bit (binary digit) of data; one of its two states represents a "one" and the other
represents a "zero". Such data storage can be used for storage of state, and such a circuit is
described as sequential logic. When used in a finite-state machine, the output and next state
depend not only on its current input, but also on its current state (and hence, previous
inputs). It can also be used for counting of pulses, and for synchronizing variably-timed
input signals to some reference timing signal.
Flip-flops can be either simple (transparent or opaque) or clocked (synchronous or
edge-triggered). Although the term flip-flop has historically referred generically to both
simple and clocked circuits, in modern usage it is common to reserve the term flip-
flop exclusively for discussing clocked circuits; the simple ones are commonly
called latches.
Using this terminology, a latch is level-sensitive, whereas a flip-flop is edge-sensitive.
That is, when a latch is enabled it becomes transparent, while a flip flop's output only
changes on a single type (positive going or negative going) of clock edge.
42 | P a g e
S-R Flip Flop
It is basically S-R latch using NAND gates with an additional enable input. It is also
called as level triggered SR-FF. For this, circuit in output will take place if and only if the
enable input (E) is made active. In short this circuit will operate as an S-R latch if E = 1 but
there is no change in the output if E = 0.
Block Diagram
Circuit Diagram
Truth Table
43 | P a g e
Operation
Circuit Diagram
44 | P a g e
Truth Table
Operation
45 | P a g e
Delay Flip Flop / D Flip Flop
Delay Flip Flop or D Flip Flop is the simple gated S-R latch with a NAND inverter
connected between S and R inputs. It has only one input. The input data is appearing at the
output after some time. Due to this data delay between i/p and o/p, it is called delay flip
flop. S and R will be the complements of each other due to NAND inverter. Hence S = R =
0 or S = R = 1, these input condition will never appear. This problem is avoid by SR = 00
and SR = 1 conditions.
Block Diagram
Circuit Diagram
Truth Table
Operation
46 | P a g e
3 E = 1 and D = 1 If E = 1 and D = 1, then S = 1 and R = 0. This will set
the latch and Qn+1 = 1 and Qn+1 bar = 0 irrespective of the
present state.
Symbol Diagram
Block Diagram:
Truth Table
Operation
47 | P a g e
Registers:
Flip-flop is a 1 bit memory cell which can be used for storing the digital data. To
increase the storage capacity in terms of number of bits, we have to use a group of flip-flop.
Such a group of flip-flop is known as a Register. The n-bit register will consist of n number
of flip-flop and it is capable of storing an n-bit word.
The binary data in a register can be moved within the register from one flip-flop to
another. The registers that allow such data transfers are called as shift registers. There are
four mode of operations of a shift register.
Serial Input Serial Output
Serial Input Parallel Output
Parallel Input Serial Output
Parallel Input Parallel Output
Block Diagram
Operation
Before application of clock signal, let Q3 Q2 Q1 Q0 = 0000 and apply LSB bit of the
number to be entered to Din. So Din = D3 = 1. Apply the clock. On the first falling edge of
clock, the FF-3 is set, and stored word in the register is Q3 Q2 Q1 Q0 = 1000.
Apply the next bit to Din. So Din = 1. As soon as the next negative edge of the clock
hits, FF-2 will set and the stored word change to Q3 Q2 Q1 Q0 = 1100.
48 | P a g e
Apply the next bit to be stored i.e. 1 to Din. Apply the clock pulse. As soon as the third
negative clock edge hits, FF-1 will be set and output will be modified to Q3 Q2 Q1 Q0 =
1110.
Similarly with Din = 1 and with the fourth negative clock edge arriving, the stored
word in the register is Q3 Q2 Q1 Q0 = 1111.
Truth Table
49 | P a g e
Waveforms
In such types of operations, the data is entered serially and taken out in parallel
fashion.
Data is loaded bit by bit. The outputs are disabled as long as the data is loading.
As soon as the data loading gets completed, all the flip-flops contain their required
data, the outputs are enabled so that all the loaded data is made available over all the
output lines at the same time.
4 clock cycles are required to load a four bit word. Hence the speed of operation of
SIPO mode is same as that of SISO mode.
Block Diagram
50 | P a g e
Load mode
When the shift/load bar line is low (0), the AND gate 2, 4 and 6 become active they
will pass B1, B2, B3 bits to the corresponding flip-flops. On the low going edge of clock, the
binary input B0, B1, B2, B3 will get loaded into the corresponding flip-flops. Thus parallel
loading takes place.
Shift mode
When the shift/load bar line is low (1), the AND gate 2, 4 and 6 become inactive.
Hence the parallel loading of the data becomes impossible. But the AND gate 1,3 and 5
become active. Therefore the shifting of data from left to right bit by bit on application of
clock pulses. Thus the parallel in serial out operation takes place.
Block Diagram
Block Diagram
51 | P a g e
Bidirectional Shift Register
If a binary number is shifted left by one position then it is equivalent to multiplying the
original number by 2. Similarly if a binary number is shifted right by one position then it is
equivalent to dividing the original number by 2.
Hence if we want to use the shift register to multiply and divide the given binary number,
then we should be able to move the data in either left or right direction.
Such a register is called bi-directional register. A four bit bi-directional shift register is
shown in fig.
There are two serial inputs namely the serial right shift data input DR, and the serial left
shift data input DL along with a mode select input (M).
Block Diagram
Operation
52 | P a g e
Universal Shift Register
A shift register which can shift the data in only one direction is called a uni-directional
shift register. A shift register which can shift the data in both directions is called a bi-
directional shift register. Applying the same logic, a shift register which can shift the data in
both directions as well as load it parallel, is known as a universal shift register. The shift
register is capable of performing the following operation −
Parallel loading
Lift shifting
Right shifting
The mode control input is connected to logic 1 for parallel loading operation whereas
it is connected to 0 for serial shifting. With mode control pin connected to ground, the
universal shift register acts as a bi-directional register. For serial left operation, the input is
applied to the serial input which goes to AND gate-1 shown in figure. Whereas for the shift
right operation, the serial input is applied to D input.
Block Diagram
53 | P a g e
Counters:
Counter is a sequential circuit. A digital circuit which is used for a counting pulses is
known counter. Counter is the widest application of flip-flops. It is a group of flip-flops with
a clock signal applied. Counters are of two types.
Asynchronous or ripple counters.
Synchronous counters.
Logical Diagram
Operation
2 After 1st negative As soon as the first negative clock edge is applied, FF-
clock edge A will toggle and QA will be equal to 1.
QA is connected to clock input of FF-B. Since QA has
changed from 0 to 1, it is treated as the positive clock edge
by FF-B. There is no change in QB because FF-B is a
negative edge triggered FF.
QBQA = 01 after the first clock pulse.
3 After 2nd negative On the arrival of second negative clock edge, FF-A
clock edge toggles again and QA = 0.
The change in QA acts as a negative clock edge for FF-
B. So it will also toggle, and QB will be 1.
QBQA = 10 after the second clock pulse.
54 | P a g e
4 After 3rd negative On the arrival of 3rd negative clock edge, FF-A
clock edge toggles again and QA become 1 from 0.
Since this is a positive going change, FF-B does not
respond to it and remains inactive. So QB does not change
and continues to be equal to 1.
QBQA = 11 after the third clock pulse.
5 After 4th negative On the arrival of 4th negative clock edge, FF-A
clock edge toggles again and QA becomes 1 from 0.
This negative change in QA acts as clock pulse for FF-
B. Hence it toggles to change QB from 1 to 0.
QBQA = 00 after the fourth clock pulse.
Truth Table
Synchronous counters
If the "clock" pulses are applied to all the flip-flops in a counter simultaneously, then
such a counter is called as synchronous counter.
Logical Diagram
55 | P a g e
Operation
2 After 1st As soon as the first negative clock edge is applied, FF-
negative clock A will toggle and QA will change from 0 to 1.
edge But at the instant of application of negative clock edge,
QA , JB = KB = 0. Hence FF-B will not change its state. So
QB will remain 0.
QBQA = 01 after the first clock pulse.
4 After 3rd On application of the third falling clock edge, FF-A will
negative clock toggle from 0 to 1 but there is no change of state for FF-B.
edge QBQA = 11 after the third clock pulse.
Classification of counters
Depending on the way in which the counting progresses, the synchronous or
asynchronous counters are classified as follows −
Up counters
Down counters
Up/Down counters
UP/DOWN Counter
Up counter and down counter is combined together to obtain an UP/DOWN counter.
A mode control (M) input is also provided to select either up or down mode. A
combinational circuit is required to be designed and used between each pair of flip-flop in
order to achieve the up/down operation.
Type of up/down counters
UP/DOWN ripple counters
UP/DOWN synchronous counter
56 | P a g e
UP/DOWN Ripple Counters
In the UP/DOWN ripple counter all the FFs operate in the toggle mode. So either T
flip-flops or JK flip-flops are to be used. The LSB flip-flop receives clock directly. But the
clock to every other FF is obtained from (Q = Q bar) output of the previous FF.
UP counting mode (M=0) − The Q output of the preceding FF is connected to the
clock of the next stage if up counting is to be achieved. For this mode, the mode
select input M is at logic 0 (M=0).
DOWN counting mode (M=1) − If M = 1, then the Q bar output of the preceding
FF is connected to the next FF. This will operate the counter in the counting mode.
Example
3-bit binary up/down ripple counter.
3-bit − hence three FFs are required.
UP/DOWN − so a mode control input is essential.
For a ripple up counter, the Q output of preceding FF is connected to the clock input
of the next one.
For a ripple up counter, the Q output of preceding FF is connected to the clock input
of the next one.
For a ripple down counter, the Q bar output of preceding FF is connected to the
clock input of the next one.
Let the selection of Q and Q bar output of the preceding FF be controlled by the
mode control input M such that, If M = 0, UP counting. So connect Q to CLK. If M
= 1, DOWN counting. So connect Q bar to CLK.
Block Diagram
Truth Table
57 | P a g e
Operation
Type of modulus
2-bit up or down (MOD-4)
3-bit up or down (MOD-8)
4-bit up or down (MOD-16)
Application of counters
Frequency counters
Digital clock
Time measurement
A to D converter
Frequency divider circuits
Digital triangular wave generator.
58 | P a g e
Synchronous State Machines
• We have seen how we can use FFs (D-types in particular) to design synchronous counters
• We will now investigate how these principles can be extended to the design of
synchronous state machines (of which counters are a subset)
• We will begin with some definitions and then introduce two popular types of machines
Definitions
Finite State Machine (FSM) – a deterministic machine (circuit) that produces outputs
which depend on its internal state and external inputs
States – the set of internal memorized values, shown as circles on the state diagram
Inputs – External stimuli, labelled as arcs on the state diagram
Outputs – Results from the FSM
59 | P a g e
Specifying Outputs for a Mealy Machine
Output is function of state and inputs
Specify output on transition arc between states
Example: sequence detector for 01 or 10
Machine Schematics
60 | P a g e
Moore Machine - Example
We will design a Moore Machine to implementation traffic light controller
In order to visualize the problem it is often helpful to draw the state transition diagram
This is used to generate the state transition table
The state transition table is used to generate
– The next state combinational logic
– The output combinational logic (if required)
61 | P a g e
FSM Problems
Consider what could happen on power-up
The state of the FFs could by chance be in one of the unused states
– This could potentially cause the machine to become stuck in some unanticipated
sequence of states which never goes back to a used state
What can be done?
Check to see if the FSM can eventually enter a known state from any of the unused
states
If not, add additional logic to do this, i.e., include unused states in the state transition
table along with a valid next state
Alternatively use asynchronous Clear and Preset FF inputs to set a known (used) state at
power up
Example 2
We extend Example 1 so that the traffic signals spend extra time for the R and G lights
Essentially, we need 2 additional states, i.e., 6 in total.
In theory, the 3 FF machine gives us the potential for sufficient states
However, to make the machine combinational logic easier, it is more convenient to add
another FF (labelled S), making 4 in total
62 | P a g e
We will now use k-maps to determine the next state combinational logic
For the R FF, we need to determine DR
State Assignment:
As we have mentioned previously, state assignment is not necessarily obvious or
straightforward
– Depends what we are trying to optimize, e.g.,
Complexity (which also depends on the implementation technology, e.g., FPGA, 74
series logic chips).
– FF implementation may take less chip area than you may think given their gate level
representation
– Wiring complexity can be as big an issue as gate complexity
Speed
– Algorithms do exist for selecting the ‘optimizing’ state assignment, but are not
suitable for manual execution
If we have m states, we need at least FFs (or more informally, bits) to encode the states,
e.g., for 8 states we need a min of 3 FFs
We will now present an example giving various potential state assignments, some using
more FFs than the minimum.
63 | P a g e
Sliding State Assignment
By inspection we can see that we can use any of the FF outputs as the wanted output
Plot k-maps to determine the next state logic:
64 | P a g e
One Hot State Encoding
65 | P a g e
MEMORIES
Semiconductor memory is an electronic data storage device, often used as
computer memory, implemented on a semiconductor-based integrated circuit. There are
many different types of implementations using various technologies. Most types of
semiconductor memory have the property of random access, which means that it takes the
same amount of time to access any memory location, so data can be efficiently accessed in
any random order. This contrasts with data storage media such as hard disks and CDs which
read and write data consecutively and therefore the data can only be accessed in the same
sequence it was written. Semiconductor memory also has much faster access times than
other types of data storage; a byte of data can be written to or read from semiconductor
memory within a few nanoseconds, while access time for rotating storage such as hard disks
is in the range of milliseconds. For these reasons it is used for main computer memory
(primary storage), to hold data the computer is currently working on, among other uses.
Shift registers, processor registers, data buffers and other small digital registers that have no
memory address decoding mechanism are not considered as memory although they also
store digital data.
Description:
In a semiconductor memory chip, each bit of binary data is stored in a tiny circuit
called a memory cell consisting of one to several transistors. The memory cells are laid out
in rectangular arrays on the surface of the chip. The 1-bit memory cells are grouped in small
units called words which are accessed together as a single memory address. Memory is
manufactured in word length that is usually a power of two, typically N=1, 2, 4 or 8 bits.
Data is accessed by means of a binary number called a memory address applied to
the chip's address pins, which specifies which word in the chip is to be accessed. If the
memory address consists of M bits, the number of addresses on the chip is 2M, each
containing an N bit word. Consequently, the amount of data stored in each chip is N2M bits.
The memory storage capacity for M number of address lines is given by 2M, which is
usually in power of two: 2, 4, 8, 16, 32, 64, 128, 256 and 512 and measured in kilobits,
megabits, gigabits or terabits, etc. As of 2014 the largest semiconductor memory chips hold
a few gigabits of data, but higher capacity memory is constantly being developed. By
combining several integrated circuits, memory can be arranged into a larger word length
and/or address space than what is offered by each chip, often but not necessarily a power of
two.
The two basic operations performed by a memory chip are "read", in which the data
contents of a memory word is read out (nondestructively), and "write" in which data is
stored in a memory word, replacing any data that was previously stored there. To increase
data rate, in some of the latest types of memory chips such as DDR SDRAM multiple words
are accessed with each read or write operation.
In addition to standalone memory chips, blocks of semiconductor memory are
integral parts of many computer and data processing integrated circuits. For example, the
microprocessor chips that run computers contain cache memory to store instructions
awaiting execution.
66 | P a g e
Types:
RAM (Random-access memory) has become a generic term for any semiconductor
memory that can be written to, as well as read from, in contrast to ROM (below), which can
only be read. All semiconductor memory, not just RAM, has the property of random access.
Volatile memory loses its stored data when the power to the memory chip is turned off.
However it can be faster and less expensive than non-volatile memory. This type is used for
the main memory in most computers, since data is stored on the hard disk while the
computer is off. Major types are
DRAM (Dynamic random-access memory) which uses memory cells consisting of one
capacitor and one transistor to store each bit. This is the cheapest and highest in density, so
it is used for the main memory in computers. However the electric charge that stores the
data in the memory cells slowly leaks out, so the memory cells must be periodically
refreshed (rewritten) which requires additional circuitry. The refresh process is handled
internally by the computer and is transparent to its user
FPM DRAM (Fast page mode DRAM) An older type of asynchronous DRAM that
improved on previous types by allowing repeated accesses to a single "page" of memory to
occur at a faster rate. Used in the mid- 1990s.
EDO DRAM (Extended data out DRAM) An older type of asynchronous DRAM which
had faster access time than earlier types by being able to initiate a new memory access while
data from the previous access was still being transferred. Used in the later part of the 1990s.
VRAM (Video random access memory) An older type of dual-ported memory once used
for the frame buffers of video adapters (video cards).
DDR SDRAM (Double data rate SDRAM) This could transfer twice the data (two
consecutive words) on each clock cycle by double pumping (transferring data on both the
rising and falling edges of the clock pulse). Extensions of this idea are the current (2012)
technique being used to increase memory access rate and throughput. Since it is proving
difficult to further increase the internal clock speed of memory chips, these chips increase
the transfer rate by transferring more data words on each clock cycle
67 | P a g e
RDRAM (Rambus DRAM) an alternate double data rate memory standard that was used
on some Intel systems but ultimately lost out to DDR SDRAM.
SGRAM (Synchronous graphics RAM) a specialized type of SDRAM made for graphics
adaptors (video cards). It can perform graphics-related operations such as bit masking and
block write, and can open two pages of memory at once.
PSRAM (Pseudo static RAM) This is DRAM which has circuitry to perform memory
refresh on the chip, so that it acts like SRAM, allowing the external memory controller to be
shut down to save energy. It is used in a few game consoles such as the Wii.
Nonvolatile memory preserves the data stored in it during periods when the power to
the chip is turned off. Therefore, it is used for the memory in portable devices, which don't have
disks, and for removable memory cards among other uses. Major types are:
ROM (Read-only memory) this is designed to hold permanent data, and in normal
operation is only read from, not written to. Although many types can be written to, the writing
process is slow and usually all the data in the chip must be rewritten at once. It is usually used
to store system software which must be immediately accessible to the computer, such as the
BIOS program which starts the computer, and the software (microcode) for portable devices and
embedded computers such as microcontrollers.
Mask programmed ROM In this type the data is programmed into the chip during
manufacture, so it is only used for large production runs. It cannot be rewritten with new
data.
PROM (Programmable read-only memory) in this type the data is written into the chip
before it is installed in the circuit, but it can only be written once. The data is written by
plugging the chip into a device called a PROM programmer.
EPROM (Erasable programmable read-only memory) in this type the data in it can be
rewritten by removing the chip from the circuit board, exposing it to an ultraviolet light to
erase the existing data, and plugging it into a PROM programmer. The IC package has a
small transparent "window" in the top to admit the UV light. It is often used for prototypes
and small production run devices, where the program in it may have to be changed at the
factory.
68 | P a g e
EEPROM (Electrically erasable programmable read-only memory) in this type the data
can be rewritten electrically, while the chip is on the circuit board, but the writing process is
slow. This type is used to hold firmware, the low level microcode which runs hardware
devices, such as the BIOS program in most computers, so that it can be updated.
NVRAM (Flash memory) in this type the writing process is intermediate in speed between
EEPROMS and RAM memory; it can be written to, but not fast enough to serve as main
memory. It is often used as a semiconductor version of a hard disk, to store files. It is used
in portable devices such as PDAs, USB flash drives, and removable memory cards used in
digital cameras and cellphones.
69 | P a g e
Field Programmable Logic Array (FPLA):
Below Figure demonstrates the basic structure of Field Programmable Logic array
(FPLA). In this logic device, both AND array and OR array are programmable. The circled
cross marks to the input lines of AND and OR gates indicate that these connections are fusible
or programmable. It may be noted from the architecture of the FPLA that when it is not
programmed all the true and complemented variables are connected to the inputs of each AND
gate. The AND gates will give the outputs 0, since X0. X̅0. X1. X̅1 . . . . = 0. The outputs of the
OR gates will also be zero since it is the summation of outputs of all AND gates. So when
FPLA is not programmed all outputs of the device will be zero. Now if the circled cross mark of
some inputs of AND gate are burnt (or programmed to remove fuse), then min-term of the
remaining input variables (or their complements) will be obtained. Similarly by burning the
unused circled cross marks of OR array will give the required outputs in SOP form. So the
programming of the device allows the implementation of arbitrary logic functions in a two level
sum – of – product (SOP) form. The AND array creates the required minterms, while the OR
70 | P a g e
array takes the sum of products to form the outputs. It is very versatile since both AND and OR
arrays are programmable. However, it has some disadvantages; it is more difficult to
manufacture, program or test than other PLD’s
FPLA has a number of input variables, AND gates and OR gates. The actual FPLA
available are specified by p x q x r, where p is the number of input variables, q is the number of
AND gates and r is the number of OR gates (outputs). One FPLA 840 has 14 input variables, 32
AND gates and 6 OR gates.
Example:
Consider a FPLA of 4 input variables, 10 AND gates and 4 OR gates shown in figure How
would it be programmed to implement the logic circuit for 8421 code to cyclic code
converter?
Solution:
Logic circuit for 8421 code to cyclic code has been implemented using AND, OR
and NOT gates. The Boolean expressions for four variables X, Y, Z, and W of cyclic code
given in terms of a, b, c and d variables of 8421 code are reproduced below as:
X=a+b.d+b.c
Y = b . c̅
Z=b+c
W = a̅ . b̅ . c̅ .d + b̅ . c . d̅ + b. c . d + a . d̅
71 | P a g e
Programmable Array Logic (PAL):
Another class of Programmable logic devices is the programmable array logic
(PAL) which is widely used and easily programmable. The PAL has an AND array followed by
OR array similar to FPLA, with the difference that the inputs to AND array are programmable
while the inputs to OR gates are hard wired (fixed OR array). Figure 6.47 shows the architecture
of a PAL device having 16 AND gates and four OR gates. Every AND gate can be programmed
to generate any desired product of 6 input variables and their complements. Each OR gate is
hard wire to only four AND outputs. This limits each output function to four min-terms. If the
function requires more than four product terms then one has to use such a PAL which has more
OR inputs. If on the other hand one needs less than four product terms, the unneeded terms to
the input of OR gate are made 0 by not burning (or programming) the corresponding input lines
of AND gates. The PAL structure is the most generic one for the implementation of arbitrary
logic functions.
Example:
Using the PAL shown in figure 6.47, implement the following SOP functions of 4
variables.
Y0 A̅ B̅ C D̅ A̅ B̅ C̅ D AB C̅ D̅ AB C D
Y1 AB̅ C D̅
Y2 A̅ B̅ D C̅
Y3 B̅ C D̅ A̅ B̅ AB C̅ D̅ B C D
72 | P a g e
Solution:
Below Figure shows the implementation of the given functions using the PAL.
73 | P a g e
Solution:
By making the suitable programming of OR array, the given Boolean functions
are realized using 16 X 4 PROM as shown in figure
74 | P a g e