Final Digital Logic Design PPT
Final Digital Logic Design PPT
Final Digital Logic Design PPT
1
• Digital
• Concerned with the interconnection among digital components and modules
» Best Digital System example is General Purpose
Computer
• Logic Design
• Deals with the basic concepts and tools used to design digital hardware
consisting of logic circuits
» Circuits to perform arithmetic operations (+, -, x, ÷)
2
• Digital Signal : Decimal values are difficult to represent in
electrical systems. It is easier to use two voltage values than
ten.
Power switches have labels “1” for on and “0” for off.
3
Motivation
• Microprocessors/Microelectronics have revolutionized our
world
– Cell phones, internet, rapid advances in medicine, etc.
4
Digital Systems and Binary Numbers
Digital age and information age
Digital computers
– General purposes
– Many scientific, industrial and commercial applications
• Digital systems
– Telephone switching exchanges
– Digital camera
– Electronic calculators, PDA's
– Digital TV
• Discrete information-processing systems
– Manipulate discrete elements of information
– For example, {1, 2, 3, …} and {A, B, C, …}…
5
Analog and Digital Signal
• Analog system
– The physical quantities or signals may vary continuously
over a specified range.
• Digital system
– TheX(t)
physical quantities or signals
X(t)
can assume only
discrete values.
– Greater accuracy
t t
6
Analog signal Digital signal
Binary Digital Signal
• An information variable represented by physical quantity.
• For digital systems, the variable takes on discrete values.
– Two level, or binary values are the most prevalent values.
• Binary values are represented abstractly by:
– Digits 0 and 1 V(t)
– Words (symbols) False (F) and True (T)
– Words (symbols) Low (L) and High (H) Logic 1
– And words On and Off
undefine
• Binary values are represented by values
or ranges of values of physical quantities. Logic 0
t
Binary digital signal
7
Natural Numbers
2-8 5
Positional Notation
Continuing with our example…
642 in base 10 positional notation is:
11
Binary Number System
• Base = 2
– 2 digits { 0, 1 }, called binary digits or “bits”
• Weights 4 2 1 1/2 1/4
13
The Power of 2
n 2n n 2n
0 20=1 8 28=256
1 21=2 9 29=512
2 22=4 10 210=1024 Kilo
3 23=8 11 211=2048
4 24=16 12 212=4096
5 25=32 20 220=1M Mega
Evaluate
Magnitude
Decimal Binary
(Base 10) (Base 2)
Hexadecimal
(Base 16)
Evaluate
Magnitude 15
Conversion Between Bases
Method 2
To convert from one base to another:
Chapter 1 16
Example: Convert 46.687510 To Base 2
• Convert 46 to Base 2
18
Additional Issue - Fractional Part
• Note that in this conversion, the fractional part became
0 as a result of the repeated multiplications.
• In general, it may take many bits to get this to happen or
it may never happen.
• Example: Convert 0.6510 to N2
– 0.65 = 0.1010011001001 …
– The fractional part begins repeating every 4 steps yielding
repeating 1001 forever!
• Solution: Specify number of bits to right of radix point
and round or truncate to this number.
Chapter 1 19
Checking the Conversion
•To convert back, sum the digits times their respective
powers of r.
•From the prior conversion of 46.687510
1011102 = 1·32 + 0·16 +1·8 +1·4 + 1·2 +0·1
= 32 + 8 + 4 + 2
= 46
0.10112 = 1/2 + 1/8 + 1/16
= 0.5000 + 0.1250 + 0.0625
= 0.6875
Chapter 1 20
Decimal (Integer) to Binary Conversion
• Divide the number by the ‘Base’ (=2)
• Take the remainder (either 0 or 1) as a coefficient
• Take the quotient and repeat the division
MSB LSB
21
Decimal (Fraction) to Binary Conversion
• Multiply the number by the ‘Base’ (=2)
• Take the integer (either 0 or 1) as a coefficient
• Take the resultant fraction and repeat the division
MSB LSB
22
Decimal to Octal Conversion
Example: (175)10
Quotient Remainder Coefficient
175 / 8 = 21 7 a0 = 7
21 / 8 = 2 5 a1 = 5
2 /8= 0 2 a2 = 2
Answer: (175)10 = (a2 a1 a0)8 = (257)8
Example: (0.3125)10
Integer Fraction Coefficient
0.3125 * 8 = 2 . 5 a-1 = 2
0.5 *8= 4 . 0 a-2 = 4
Answer: (0.3125)10 = (0.a-1 a-2 a-3)8 = (0.24)8
23
Binary − Octal Conversion
Octal Binary
• 8 = 23
0 000
• Each group of 3 bits represents 1 001
an octal digit 2 010
Assume Zeros
Example: 3 011
( 1 0 1 1 0 . 0 1 )2 4 100
5 101
6 110
( 2 6 . 2 )8 7 111
( 0 1 0 1 1 0 . 0 1 0 )2
(1 6 . 4 )16
27
Addition
• Decimal Addition
1 1 Carry
5 5
+ 5 5
1 1 0
= Ten ≥ Base
Subtract a Base
28
Binary Addition
• Column Addition
1 1 1 1 1 1
1 1 1 1 0 1 = 61
+ 1 0 1 1 1 = 23
1 0 1 0 1 0 0 = 84
≥ (2)10
29
Binary Subtraction
• Borrow a “Base” when needed
1 2 = (10)2
0 2 2 0 0 2
1 0 0 1 1 0 1 = 77
− 1 0 1 1 1 = 23
0 1 1 0 1 1 0 = 54
30
Binary Multiplication
• Bit by bit
1 0 1 1 1
x 1 0 1 0
0 0 0 0 0
1 0 1 1 1
0 0 0 0 0
1 0 1 1 1
1 1 1 0 0 1 1 0
31
1.5 Complements
• There are two types of complements for each base-r system: the radix complement and diminished radix
complement.
• Diminished Radix Complement - (r-1)’s Complement
– Given a number N in base r having n digits, the (r–1)’s complement
of N is defined as:
(rn –1) – N
• Example for 6-digit decimal numbers:
– 9’s complement is (rn – 1)–N = (106–1)–N = 999999–N
– 9’s complement of 546700 is 999999–546700 = 453299
• Example for 7-digit binary numbers:
– 1’s complement is (rn – 1) – N = (27–1)–N = 1111111–N
– 1’s complement of 1011000 is 1111111–1011000 = 0100111
• Observation:
– Subtraction from (rn – 1) will never require a borrow
– Diminished radix complement can be computed digit-by-digit
– For binary: 1 – 0 = 1 and 1 – 1 = 0
32
Complements
• 1’s Complement (Diminished Radix Complement)
– All ‘0’s become ‘1’s
– All ‘1’s become ‘0’s
Example (10110000)2
(01001111)2
If you add a number and its 1’s complement …
10110000
+ 01001111
11111111
33
Complements
• Radix Complement
The r's complement of an n-digit number N in base r is defined as
rn – N for N ≠ 0 and as 0 for N = 0. Comparing with the (r 1) 's
complement, we note that the r's complement is obtained by adding 1 to the
(r 1) 's complement, since rn – N = [(rn 1) – N] + 1.
• Example: Base-10
The 10's complement of 012398 is 987602
The 10's complement of 246700 is 753300
• Example: Base-2
The 2's complement of 1101100 is 0010100
The 2's complement of 0110111 is 1001001
34
Complements
• 2’s Complement (Radix Complement)
– Take 1’s complement then add 1
OR
– Toggle all bits to the left of the first ‘1’ from the right
Example:
Number: 10110000 10110000
1’s Comp.: 01001111
+ 1
01010000 01010000
35
Complements
• Subtraction with Complements
– The subtraction of two n-digit unsigned numbers M – N
in base r can be done as follows:
36
Complements
• Example 1.5
– Using 10's complement, subtract 72532 – 3250.
• Example 1.6
– Using 10's complement, subtract 3250 – 72532.
There is no end carry.
38
Complements
• Subtraction of unsigned numbers can also be done by means of the (r 1)'s
complement. Remember that the (r 1) 's complement is one less then the r's
complement.
• Example 1.8
– Repeat Example 1.7, but this time using 1's complement.
41
Signed Binary Numbers
• Arithmetic addition
– The addition of two numbers in the signed-magnitude system follows the rules of
ordinary arithmetic. If the signs are the same, we add the two magnitudes and give
the sum the common sign. If the signs are different, we subtract the smaller
magnitude from the larger and give the difference the sign if the larger magnitude.
– The addition of two signed binary numbers with negative numbers represented in
signed-2's-complement form is obtained from the addition of the two numbers,
including their sign bits.
– A carry out of the sign-bit position is discarded.
• Example:
42
Signed Binary Numbers
• Arithmetic Subtraction
– In
1. 2’s-complement form:
Take the 2’s complement of the subtrahend (including the sign bit) and
add it to the minuend (including sign bit).
2. A carry out of sign-bit position is discarded.
( A) ( B ) ( A) ( B )
( A) ( B ) ( A) ( B )
Weighted codes: In weighted codes, each digit is assigned a specific weight according to its position.
Non-weighted codes: In non-weighted codes are not appositionally weighted.
Reflective codes: A code is reflective when the code is self complementing. In other words, when the code for 9 is
the complement the code for 0, 8 for 1, 7 for 2, 6 for 3 and 5 for 4.
Sequential codes: In sequential codes, each succeeding 'code is one binary number greater than its preceding code.
Alphanumeric codes: Codes used to represent numbers, alphabetic characters, symbols
Error defecting and correcting codes: Codes which allow error defection and correction are called error
detecting and' correcting codes.
44
• BCD Code
– A number with k decimal digits will require
4k bits in BCD.
– Decimal 396 is represented in BCD with
12bits as 0011 1001 0110, with each group
of 4 bits representing one decimal digit.
– A decimal number in BCD is the same as its
equivalent binary number only when the
number is between 0 and 9.
– The binary combinations 1010 through 1111
are not used and have no meaning in BCD.
Example: Consider decimal 185 and its corresponding value in BCD and binary:
BCD addition
45
Binary Codes
• Other Decimal Codes
46
Binary Codes
• Gray Code
– The advantage is that only bit
in the code group changes in
going from one number to the
next.
• Error detection.
• Representation of analog data.
• Low 000
power design. 001
010 011
100 101
110 111 47
1-1 and onto!!
• American Standard Code for Information Interchange (ASCII) Character Code
48
• ASCII Character Code
49
ASCII Character Codes and Properties
• American Standard Code for Information Interchange (Refer to Table 1.7)
• A popular code used to represent information sent as character-based data.
• It uses 7-bits to represent:
– 94 Graphic printing characters.
– 34 Non-printing characters.
• Some non-printing characters are used for text format (e.g. BS = Backspace, CR =
carriage return).
• Other non-printing characters are used for record marking and flow control (e.g.
STX and ETX start and end text areas).
• ASCII has some interesting properties:
– Digits 0 to 9 span Hexadecimal values 3016 to 3916
– Upper case A-Z span 4116 to 5A16
– Lower case a-z span 6116 to 7A16
• Lower to upper case translation (and vice versa) occurs by flipping bit 6.
50
• Error-Detecting Code
– To detect errors in data communication and processing, an
eighth bit is sometimes added to the ASCII character to
indicate its parity.
– A parity bit is an extra bit included with a message to make
the total number of 1's either even or odd.
• Example:
– Consider the following two characters and their even and
odd parity:
51
• Error-Detecting Code
– Redundancy (e.g. extra information), in the form of extra bits, can be
incorporated into binary code words to detect and correct errors.
– A simple form of redundancy is parity, an extra bit appended onto the code
word to make the number of 1’s odd or even. Parity can detect all single-bit
errors and some multiple-bit errors.
– A code word has even parity if the number of 1’s in the code word is even.
– A code word has odd parity if the number of 1’s in the
code word is odd.
– Example:
52
Hamming Codes
• Invented W.B Hamming and Simple 1parity bit can tell us an error occurred
• Multiple parity bits can also tell us where it occurred
• O(lg(n)) bits needed to detect and correct one bit errors.
• In generally we use 7 bits hamming code
– 4 data bits/message bit (m) and 3 parity bits (2 P>= P+m+1)
54
A Digital Computer Example
Memory
Control
CPU unit Datapath
Synchronous or
Asynchronous? 55
Transfer of information
56
Figure 1.1 Transfer of information among register
Transfer of information
• The other major
component of a digital
system
– Circuit elements to
manipulate individual
bits of information
– Load-store machine
LD R1;
LD R2;
ADD R3, R2, R1;
SD R3;
57
Figure 1.2 Example of binary information processing
Binary Logic
• Definition of Binary Logic
– Binary logic consists of binary variables and a set of logical operations.
– The variables are designated by letters of the alphabet, such as A, B, C, x, y, z, etc, with
each variable having two and only two distinct possible values: 1 and 0,
– Three basic logical operations: AND, OR, and NOT.
58
Binary Logic gates
• Truth Tables, Boolean Expressions, and Logic Gates
AND OR NOT
x y z x y z x z
0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 0 1 0 1
1 1 1 1 1 1
z=x•y=xy z=x+y z = x = x’
x x x
y z y z z
Universal Gate
• NAND and NOR Gates are called Universal Gates because AND, OR and
NOT gates can be implemented &created by using these gates.
3
Logic 1
2
Un-define
1
Logic 0
0
62
Figure 1.3 Example of binary signals
Binary Logic
• Logic gates
– Graphic Symbols and Input-Output Signals for Logic
gates:
Fig. 1.4 Symbols for digital logic circuits
63
Fig. 1.5 Input-Output signals for gates
Binary Logic
• Logic gates
– Graphic Symbols and Input-Output Signals for Logic
gates:
64
Boolean Algebra
Boolean Algebra : George Boole(English mathematician), 1854
Invented by George Boole in 1854
An algebraic structure defined by a set B = {0, 1}, together with two binary
operators (+ and ·) and a unary operator ( )
“An Investigation of the Laws of Thought, on Which Are Founded the Mathematical Theories of Logic and
Probabilities”
Boolean Algebra
{(1,0), Var, (NOT, AND, OR), Thms}
65
Basic Functions and Basic Functions
Boolean functions : NOT, AND, OR,
exclusive OR(XOR) : odd function exclusive NOR(XNOR) : even function(equivalence)
Basic functions
• AND Z=X Y or Z=XY
Z=1 if and only if X=1 and Y=1, otherwise Z=0
• OR Z=X + Y
Z=1 if X=1 or if Y=1, or both X=1and Y=1. Z=0 if and only if X=0 and Y=0
• NOT Z=X or
Z=1 if X=0, Z=0 if X=1
66
67
Boolean Operations and Expressions
• Boolean Addition
– Logical OR operation
Ex 4-1) Determine the values of A, B, C, and D that make the sum term
A+B’+C+D’
Sol) all literals must be ‘0’ for the sum term to be ‘0’
A+B’+C+D’=0+1’+0+1’=0 A=0, B=1, C=0, and D=1
• Boolean Multiplication
– Logical AND operation
Ex 4-2) Determine the values of A, B, C, and D for AB’CD’=1
Sol) all literals must be ‘1’ for the product term to be ‘1’
AB’CD’=10’10’=1 A=1, B=0, C=1, and D=0
68
Basic Identities of Boolean Algebra
69
Laws of Boolean Algebra
• Commutative Law: the order of literals does not matter
A+B=B+A AB=BA
70
Rules of Boolean Algebra
A+0=A In math if you add 0 you have changed nothing in Boolean
Algebra ORing with 0 changes nothing
A•0=0 In math if 0 is multiplied with anything
you get 0. If you AND anything with 0 you get 0
A•1 =A ANDing anything with 1 will yield the anything
72
Boolean Analysis of Logic Circuits
• Constructing a Truth Table for a Logic Circuit
– Convert the expression into the min-terms containing all the input literals
– Get the numbers from the min-terms
– Putting ‘1’s in the rows corresponding to the min-terms and ‘0’s in the remains
Ex) A(B+CD)=AB(C+C’) (D+D’) +A(B+B’)CD =ABC(D+D’) +ABC’(D+D’) +ABCD+AB’CD
=ABCD+ABCD’+ABC’D+ABC’D’ +ABCD+AB’CD =ABCD+ABCD’+ABC’D+ABC’D’
+AB’CD =m11+m12+m13+m14+m15=(11,12,13,14,15)
73
Standard Forms of Boolean Expressions
The Sum-of-Products(SOP) Form Ex) AB+ABC, ABC+CDE+B’CD’
The Product-of-Sums(POS) Form Ex) (A+B)(A+B+C), (A+B+C)(C+D+E)(B’+C+D’)
Principle of Duality : SOP POS
Domain of a Boolean Expression : The set of variables contained in the expression
Ex) A’B+AB’C : the domain is {A, B, C}
74
Standard POS Form (Canonical POS Form)
– For all the missing variables, apply (x’x)=0 to the OR terms of the
expression
– List all the max-terms in forms of the complete set of variables in
ascending order
75
Converting Standard SOP to Standard POS
Step 1. Evaluate each product term in the SOP expression. Determine the binary
numbers that represent the product terms
Step 2. Determine all of the binary numbers not included in the evaluation in Step 1
Step 3. Write in equivalent sum term for each binary number Step 2 and expression in
POS form
76
Summary of Minterms and Maxterms
• There are 2n minterms and maxterms for Boolean functions with n variables.
• Minterms and maxterms are indexed from 0 to 2n – 1
• Any Boolean function can be expressed as a logical sum of minterms and as a logical
product of maxterms
• The complement of a function contains those minterms not included in the original
function
• The complement of a sum-of-minterms is a product-of-maxterms with the same indices
Dual of a Boolean Expression
• To changing 0 to 1 and + operator to – vise versa for a given boolean function
Example: F = (A + C) · B + 0
dual F = (A · C + B) · 1 = A · C + B
Example: G = X · Y + (W + Z)
dual G =
Unless it happens to be self-dual, the dual of an expression does not equal the
expression itself
Are any of these functions self-dual? (A+B)(A+C)(B+C)=(A+BC)(B+C)=AB+AC+BC
77
Karnaugh Map
• Simplification methods
– Boolean algebra(algebraic method)
– Karnaugh map(map method))
– Quine-McCluskey(tabular method) XY+XY=X(Y+Y)=X
78
Dr. V. Krishnanaik Ph.D
Karnaugh Map (K- Map) Steps
1. Sketch a Karnaugh map grid for the given problem.in power of 2 N Squares
2. Fill in the 1’s and 0’s from the truth table of sop or pos Boolean function
3. Circle groups of 1’s.
Circle the largest groups of 2, 4, 8, etc. first.
Minimize the number of circles but make sure that every 1 is in a circle.
4. Write an equation using these circles.
79
Four-Variable K-Map : 16 minterms : m0 ~ m15
Rectangle group
– 2-squares(minterms) : 3-literals product term
– 4-squares : 2-literals product term
– 8-squares : 1-literals product term
– 16-squares : logic 1
80
F(W, X,Y,Z)=m(0,2,7,8,9,10,11) = WX’ + X’Z’ + W’XYZ
Sol) B’+A’C
81
Ex Minimize the following expression
B’C’D’+A’BC’D’+ABC’D’+A’B’CD+AB’CD+A’B’CD’+A’BCD’ +ABCD’+AB’CD’
Sol) D’+B’C
82
Ex K- Map for POS (B+C+D)(A+B+C’+D)(A’+B+C+D’)(A+B’+C+D)(A’+B’+C+D)
Sol) (B+C+D)=(A’A+B+C+D)=(A’+B+C+D)(A+B+C+D)
(1+0+0+0)(0+0+0+0)(0+0+1+0)
(1+0+0+1)(0+1+0+0)(1+1+0+0)
F=(C+D)(A’+B+C)(A+B+D)
83
84
Quine-McCluskey - Tabular Method
• Step 1 − Arrange the given min terms in an ascending order and make the groups based on the
number of ones present in their binary representations. - ‘n+1’ groups
• Step 2 − Compare the min terms present in successive groups. If there is a change in only one-bit
position, then take the pair of those two min terms. Place this symbol ‘_’ in the differed bit position
and keep the remaining bits as it is.
• Step 3 − Repeat step2 with newly formed terms till we get all prime implicants.
• Step 4 − Formulate the prime implicant table. It consists of set of rows and columns. Place ‘1’ in
the cells corresponding to the min terms that are covered in each prime implicant.
• Step 5 − Find the essential prime implicates by observing each column. Those essential prime
implicants will be part of the simplified Boolean function.
• Step 6 − Reduce the prime implicant table by removing the row of each essential prime implicant
and the columns corresponding to the min terms that are covered in that essential prime implicant.
Repeat step 5 for Reduced prime implicant table. Stop this process when all min terms of given
Boolean function are over.
85
86
87
Digital Circuits
• Digital circuits are two types
88
Dr. V. Krishnanaik Ph.D
Combinational Logic
Logic circuits for digital systems may be combinational or sequential.
A combinational circuit consists of input variables, logic gates, and output variables.
1. A truth table that lists the output values for each combination of the input variables, or
2. m Boolean functions, one for each output variable.
Design Procedure
Given a problem statement:
Half Adder : A combinational circuit that performs the addition of two bits is called a half adder, We need two input and outputs
xy C S
00 0 0
01 0 1
10 0 1
11 1 0
x yz C S
0 00 0 0
0 01 0 1
0 10 0 1
0 11 1 0
1 00 0 1
1 01 1 0
1 10 1 0
1 11 1 1
1. Ripple carry: carry out of each FA is connected to the carry input of next FA
2. Carry Look ahead: it anticipates the output carry of each stage, and based on the input bits of each stage, produces the output carry
by either carry generation or carry propagation.
Carry generation: output carry is produced internally by the FA.carry is generated only when both input bits are 1s.the generated
carry C is expressed as the AND function of two input bits A and B so C=AB.
Carry propagation: occurs when the i/p carry is rippled to become the o/p carry.an i/p carrymay be propagated by the full
adder when either or both of the i/p bits are 1s.the propagated carry Cp is expressed as the OR function of the i/p bits
ie Cp=A+B
A2A1
+ B 2B1
C0 ∑ ∑
2 1
• The carry output of each adder is connected to the carry input of next adder called as internal carries.
Fig : bit adder
The logic symbol for a 4-bit parallel adder is shown. This 4-bit adder includes a Carry In (labeled C0) and a Carry Out (labeled C4).
Binary Subtraction
•The subtraction A-B can be performed by taking the 2's complement of B and adding to A.
• The 2's complement of B can be obtained by complementing B and adding one to the result.
A-B = A + 2C(B) = A + 1C(B) + 1
= A + B’ + 1
Adder/Substractor
Design requires:
• When S=0, the circuit performs A + B. The carry in is 0, and the XOR gates simply pass B untouched.
• When S=1, the carry into the least significant bit (LSB) is 1, and B is complemented (1’s complement) prior to the addition; hence, the circuit adds to A the 1’s
complement of B plus 1 (from the carry into the LSB).
Magnitude Comparator :
A magnitude comparator is a combinational circuit that compares two numbers, A and B, and then determines their relative magnitudes.
A>B A=B A<B
Problem: Design a magnitude comparator that compares 2 4-bit numbers A and B and determines whether:
A > B, or A = B, or A < B
Inputs
First n-bit number A and Second n-bit number B
Outputs: 3 output signals (GT, EQ, LT), where: GT = 1 IFF A > B EQ = 1 IFF A = B LT = 1 IFF A < B
Exactly One of these 3 outputs equals 1, while the other 2 outputs are 0`s.
Solution:
Inputs: 8-bits (A ⇒ 4-bits, B ⇒ 4-bits).A and B are two 4-bit numbers. Let A = A3A2A1A0, and Let B = B3B2B1B0 .
Design of the EQ
Define Xi = Ai xnor Bi = Ai Bi + Ai’ Bi’
A3= B3 → (X3 = 1), and A2= B2 → (X2 = 1), and A1= B1 → (X1 = 1), and A0= B0 → (X0 = 1).
Thus, EQ=1 IFF X3 X2 X1 X0 = 1. In other words, EQ = X3 X2 X1 X0
Therefore,
Decoder : A decoder is a logic circuit that accepts a set of inputs that represents a binary number and activates only the output that corresponds to the input number.
• Exactly one output will be active for each combination of the inputs.
• Each of these input combinations only one of the M outputs will be active HIGH (1), all the other outputs are LOW (0).
• An AND gate can be used as the basic decoding element because it produces a HIGH output only when all inputs are HIGH.
• If an active-LOW output (74138, one of the output will low and the rest will be high) is required for each decoded number, the entire decoder can be implemented with
NAND gates Inverters
• If an active-HIGH output (74139, one of the output will high and the rest will be low) is required for each decoded number, the entire decoder can be implemented with
AND gates Inverters
• It could also be called a binary-octal decoder or converters because it takes a three bit binary input code and activates the one of the eight outputs corresponding to that
code. It is also referred to as a 1-of-8 decoder, because only 1 of the 8 outputs is activated at one time.
Application example
A simplified computer I/O port system with a port address decoder with only four
address lines shown.
Fig :peripheral decoding in computer
•Computer must communicate with a variety of external devices called peripherals by sending and/or receiving data through what is known as input/output (I/O) ports
•Each I/O port has a number, called an address, which uniquely identifies it. When the computer wants to communicate with a particular device, it issues the appropriate address
code for the I/O port to which that particular device is connected. The binary port address is decoded and appropriate decoder output is activated to enable the I/O port
•Binary data are transferred within the computer on a data bus, which is a set of parallel lines
• The method of implementation is that only ten decoding gates are required because the BCD code represents only the ten decimal digits 0 through 9.
• Each of these decoding functions is implemented with NAND gates to provide active -LOW outputs. If an active HIGH output is required, AND gates are used for
decoding
MODULE 3 MCA-102 DIGITAL SYSTEMS & LOGIC DESIGN ADMN 2014-‘17
Fig : a. logic circuit for BCD to Decimal decoder b. logical symbol of BCD to Decimal decoder IC c. truth table
From the truth table, the outputs can be expressed by following Boolean Function. Y 0 = D1 + D3 + D5 + D7
Y1 = D2 + D3 + D6 + D7
Y2 = D4 + D5 + D6 + D7
Note: Above boolean functions are formed by ORing all the input lines for which output is 1. For instance Y0 is 1 for D1, D3, D5, D7 input lines. The encoder can therefore be
implemented with OR gates whose inputs are determined directly from truth table as shown in the image below:
The decimal to bcd encoder can therefore be implemented with OR gates whose inputs are determined directly from truth table as shown in the image
below.
Multiplexer
A multiplexer or mux is a device that selects one of several analog or digital input signals and forwards the selected input into a single line. A multiplexer of 2 n inputs has n
select lines, which are used to select which input line to send to the output.”
The select lines determine which input is connected to the output.
MUX Types
2-to-1 (1 select line)
4-to-1 (2 select lines)
8-to-1 (3 select lines)
16-to-1 (4 select lines)
Fig : multiplexer block diagram
The Boolean expression for this 4-to-1 Multiplexer above with inputs D0 to D3 and data select lines A, B is given as:
Y = A’B’D0 + A’B D1 + AB’D2 + ABD3
Demultiplexer
• A DEMUX is a digital switch with a single input (source) and a multiple outputs (destinations).
• The select lines determine which output the input is connected to.
• DEMUX Types
1-to-2 (1 select line)
1-to-4 (2 select lines)
1-to-8 (3 select lines)
1-to-16 (4 select lines)
The most common error detection code used is the parity bit.
A parity bit is an extra bit included with a binary message to make the total number of 1's either odd or even.
A parity bit added to n-bit code produces (n+1)-bit code with an odd (or even) count of 1s
Odd Parity bit: count of 1s in (n+1)-bit code is odd
o So use an even function to generate the odd parity bit
Even Parity bit: count of 1s in (n+1)-bit code is even
o So use an odd function to generate the even parity bit
To check for odd parity
o Use an even function to check the (n+1)-bit code
To check for even parity
o Use an odd function to check the (n+1)-bit code
Fig : K-map for the truth table in fig 3.35 From this the minimal output equation is
This function can be implemented using exclusive-or gates, shown in fig 3.37.Similarly the checker circuit can be designed using XOR gates, where
C
Operation: (X,Y,Z) = (0,0,1) gives (X,Y,Z,P) = (0,0,1,1) and E = 0.If Y changes from 0 to 1 between generator and checker, then E = 1 indicates an error.
Odd Parity Generators and Checkers
Similarly, an odd parity bit could be added to n-bit code to produce an n + 1 bit code
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
0 1 1 1 0
1 0 0 0 0
1 0 1 1 0
1 1 0 1 0
1 1 1 0 0
0 1
1 00
01 1
1 11
1
10
Fig : k-map for fig 3.39 From this the minimal output equation is
P=X’Y’Z’+X’YZ’+XYZ’+XY’Z
This function can be implemented using XOR and XNOR gates, shown in fig . Similarly the checker circuit can be designed using XOR and XNOR gates, where
X Y
Z
This layout allows for a large number of logic functions to be synthesized in the sum of products (and sometimes product of sums) canonical forms.
Fig : block diagram of PLA
Example :Design a PLA to realize the following logic functions f0 (A'.B'+ A. C')
f1 (A. C'+ B) f2 (A'.B'+ B. C’) f3 (B+ AC)
Sequential circuits are constructed using combinational logic and a number of memory elements with some
or all of the memory outputs fed back into the combinational logic forming a feedback path or loop.
Sequential circuit = Combinational logic + Memory Elements
Fig 3.45 sequential circuit
A state variable in a sequential circuit represents the single-bit variable Q stored in a memory element in circuit.
– Each memory element may be in state 0 or state 1 depending on the current value stored in the memory element.
•The State of A sequential Circuit:
–The collection of all state variables (memory element stored values) that at any time contain all the information about the past necessary to account
for the circuit’s future behavior.
–A sequential circuit that contains n memory elements could be in one of a maximum of 2n states at any given time depending on the stored values in
the memory elements.
–Sequential Circuit State transition: A change in the stored values in memory elements thus changing the sequential circuit from one state to another.
S-R Latch : An S-R (set-reset) latch can be built using two NOR gates forming a feedback loop.
•The output of the S-R latch depends on current as well as previous inputs or state, and its state (value stored) can change as soon as its inputs change.
When Q is HIGH, the latch is in SET state.
When Q is LOW, the latch is in RESET state.
S Q
R Q'
S Q
EN Q'
S = 0, R = 0; this is the normal resting state of the circuit and it has no effect of the output states. Q and Q’
will remain in whatever state they were in prior to the occurrence of this input condition. It works in HOLD (no change) mode operation. • S = 0, R
= 1; this will reset Q to 0, it works in RESET mode operation.
S = 1, R = 0; this will set Q to 1, it works in SET mode operation.
S = 1, R = 1; this condition tries to set and reset the NOR gate latch at the same time, and it produces Q = ¯ = 0. This is an unexpected condition
and are not used.
Since the two outputs should be inverse of each other. If the inputs are returned to 1 simultaneously, the
output states are unpredictable. This input condition should not be used and when circuits are constructed, the design should make this condition
SET=RESET = 1 never arises.
T Flip Flop : The T flip flop has only the Toggle and Hold Operation. If Toggle mode operation. The output
will toggle from 1 to 0 or vice versa.
Edge-triggered S-R flip-flop : The basic operation is illustrated below, along with the truth table for this type of flip-flop. The
operation and truth table for a negative edge-triggered flip-flop are the same as those for a positive except that the falling edge
of the clock pulse is the triggering edge.
Is designed using two separate flip flops. Out of these, one acts as the master and the other as a slave. The figure of a master-slave J-K flip flop is shown below.
From the above figure you can see that both the J-K flip flops are presented in a series connection. The output of the master J-K flip flop is fed to the
input of the slave J-K flip flop. The output of the slave J-K flip flop is given as a feedback to the input of the master J-K flip flop. The clock pulse
[Clk] is given to the master J-K flip flop and it is sent through a NOT Gate and thus inverted before passing it to the slave J-K flip flop.
When Clk=1, the master J-K flip flop gets disabled. The Clk input of the master input will be the
opposite of the slave input. So the master flip flop output will be recognized by the slave flip flop only when the Clk value becomes 0. Thus, when
the clock pulse males a transition from 1 to 0, the locked outputs of the master flip flop are fed through to the inputs of the slave flip-flop making this
flip flop edge or pulse-triggered.
Programmable Logic: PALs and GALs
• Basic PAL Operation -- Implementing a Sum-of-Product Expression
– Programmable array of AND gates
– Fixed OR gate
120
Ex : Show how a PAL is programmed for the following function : X=AB’C+A’BC’+A’B’+AC
Sol)
121
PAL Output Combinational Logic
X0=X
X1=X’
122
Digital System Application : 7-Segment LED Driver
123
Figure: The minimum logic implementation for segment a of the 7-segment display.
124
Registers
CLK – Clock
CD – Clear/Reset
LD – Load
125
Dr. V. Krishnanaik Ph.D
4-bit Register
126
4-bit Serial-In, Serial-Out Register
Sift Registers
Multiply 5 by 2, 5 by 4, 5 by 8
Divide 48 by 2, by 4, by 8
Can sift bits either to left or right
Basic shift register is same as serial-in, serial-out register
127
Serial-In, Parallel-Out Shift Register
128
Binary Counters
• Register that goes through a predetermined sequence of states is called
a counter
– e.g., 000, 001, 010, …. 110, 111
– e.g., 001, 010, 100, 001, 010, …
– Useful in counting, timing, generating patterns, etc.
Example – 3-bit Binary Counter
• Suppose we want to count from 0 to 7
129
Example – Counter (Cont.)
• Suppose we want to count from 0 to 7
– 000 Alternate
– 011
– 100
– 101
– 110 Build counter using JK Flip Flops
– 111
– 000
–… 130
Excitation Tables
• Truth tables tell us what will be the output for a given combination of inputs
• Sometimes we want to find what inputs to give to achieve a desired output
– Can be achieved via excitation tables JK FLIP FLOT EX-TABLE
J K Qt+1 Qt Qt+ J K
0 0 Qt 1
0 1 0 0 0
1 0 1 0 1
1 1 Q/t 1 0
1 1
Qt Qt+1 J K Qt Qt+1 J K
0 0 0 0/1 0 0 0 X
0 1 1 0/1 0 1 1 X
1 0 0/1 1 1 0 X 1
1 1 0/1 0 1 1 x 0 131
Excitation Table FOR SR,D,T Flip Flops
Qt Qt+1 D
Qt Qt+1 S R
0 0 0
0 0 0 X 0 1 1
0 1 1 0 1 0 0
1 0 0 1 1 1 1
1 1 x 0
Qt Qt+1 T
0 0 0
0 1 1
1 0 1
1 1 0
132
Example – Counter
Qt Qt+1 Q2 Q1 Q0 Qt Qt+1 Q2 Q1 Q0
Q Q Q Q Q Q J2 K J1 K J0 K Q Q Q Q Q Q J2 K J1 K J0 K
2 1 0 2 1 0 2 1 0 2 1 0 2 1 0 2 1 0
0 0 0 0 0 1 0 0 0 0 0 1 0 X 0 X 1 X
0 0 1 0 1 0 0 0 1 0 1 0 0 X 1 X X 1
0 1 0 0 1 1 0 1 0 0 1 1 0 X X 0 1 X
0 1 1 1 0 0 0 1 1 1 0 0 1 X X 1 X 1
1 0 0 1 0 1 1 0 0 1 0 1 X 0 0 X 1 X
1 0 1 1 1 0 1 0 1 1 1 0 X 0 1 X X 1
1 1 0 1 1 1 1 1 0 1 1 1 X 0 X 0 1 X
1 1 1 0 0 0 1 1 1 0 0 0 X 1 X 1 X 1
133
• Now draw K-maps for all 6 inputs
J0 = K 0 = 1
J1 = K1 = Q0
J2 = K2 = Q1 * Q0
134
Exercise – Counter
135
Example – Counter With External Input
• Suppose we want to build a 0 to 3 counter that increments
only when a push button is pressed
! Pressed
00 00
Pressed Pressed
! Pressed
01 11 01 11
! Pressed
Pressed Pressed
10 10
! Pressed
136
Example – Counter With External Input (Cont.)
Qt Qt+1 Q1 Q0
Q Q B Q Q J1 K1 J0 K0
1 0 1 0
0 0 0 0 0 0 X 0 X
0 0 1 0 1 0 X 1 X
0 1 0 0 1 0 X X 0
0 1 1 1 0 1 X X 1
1 0 0 1 0 X 0 0 X
1 0 1 1 1 X 0 1 X Another solution
1 1 0 1 1 X 0 X 0
-- Use a normal 0-3 counter &
connect push button to clock input
1 1 1 0 0 X 1 X 1
J1 = K1 = Q0B
J0 = K 0 = B
137
State Diagrams
• State transition diagram for a washing machine
138
139
Dr. Krishnanaik Vankdoth
B.E(ECE), M.Tech (ECE), Ph.D (ECE)
Professor
Vaagdevi College of Engineering
Electronics and Communications Engineering
Warangal – 506001
krishnanaik.ece@gmail.com
krishnanaik_ece@yahoo.com
Phone : +919441629162
140