Transcript output

Combinational Logic
Chapter 4
4.1 Introduction


Logic circuits for digital systems may be
combinational or sequential.
A combinational circuit consists of logic gates
whose outputs at any time are determined
from only the present combination of inputs.
Digital Circuits
2
4.2 Combinational Circuits

Logic circuits for digital system

Sequential circuits



contain memory elements
the outputs are a function of the current inputs and the
state of the memory elements
the outputs also depend on past inputs
Digital Circuits
3

A combinational circuits

n
2 possible combinations of input values
n input
variables

Combinational
Logic Circuit
m output
variables
Specific functions


Adders, subtractors, comparators, decoders, encoders,
and multiplexers
MSI circuits or standard cells
Digital Circuits
4
4-3 Analysis Procedure

A combinational circuit

make sure that it is combinational not sequential




No feedback path
derive its Boolean functions (truth table)
design verification
a verbal explanation of its function
Digital Circuits
5

A straight-forward procedure
F2 = AB+AC+BC
T1 = A+B+C
T2 = ABC
T3 = F2'T1
F1 = T3+T2
Digital Circuits
6


F1 = T3+T2 = F2'T1+ABC
= (AB+AC+BC)'(A+B+C)+ABC
= (A'+B')(A'+C')(B'+C')(A+B+C)+ABC
= (A'+B'C')(AB'+AC'+BC'+B'C)+ABC
= A'BC'+A'B'C+AB'C'+ABC
A full-adder


F1: the sum
F2: the carry
Digital Circuits
7

The truth table
Digital Circuits
8
4-4 Design Procedure

The design procedure of combinational circuits






State the problem (system spec.)
determine the inputs and outputs
the input and output variables are assigned symbols
derive the truth table
derive the simplified Boolean functions
draw the logic diagram and verify the correctness
Digital Circuits
9

Functional description


Boolean function
HDL (Hardware description language)




Verilog HDL
VHDL
Schematic entry
Logic minimization





number of gates
number of inputs to a gate
propagation delay
number of interconnection
limitations of the driving capabilities
Digital Circuits
10
Code conversion example

BCD to excess-3 code

The truth table
Digital Circuits
11

The maps
Digital Circuits
12

The simplified functions


z = D'
y = CD +C'D'
x = B'C + B'D+BC'D'
w = A+BC+BD
Another implementation

z = D'
y = CD +C'D' = CD + (C+D)'
x = B'C + B'D+BC'D‘ = B'(C+D) +B(C+D)'
w = A+BC+BD
Digital Circuits
13

The logic diagram
Digital Circuits
14
4-5 Binary Adder-Subtractor

Half adder




0 + 0 = 0 ; 0 + 1 = 1 ; 1 + 0 = 1 ; 1 + 1 = 10
two input variables: x, y
two output variables: C (carry), S (sum)
truth table
Digital Circuits
15






S = x'y+xy'
C = xy
the flexibility for implementation
S=xy
S = (x+y)(x'+y')
S' = xy+x'y'
S = (C+x'y')'
C = xy = (x'+y')'
Digital Circuits
16
Digital Circuits
17

Full-Adder


The arithmetic sum of three input bits
three input bits



x, y: two significant bits
z: the carry bit from the previous lower significant bit
Two output bits: C, S
Digital Circuits
18
Digital Circuits
19


S = x'y'z+x'yz'+ xy'z'+xyz
C = xy + xz + yz
S = z (xy)
= z'(xy'+x'y)+z(xy'+x'y)'
= z'xy'+z'x'y+z((x'+y)(x+y'))
= xy'z'+x'yz'+xyz+x'y'z
C = z(xy'+x'y)+xy
= xy'z+x'yz+ xy
Digital Circuits
20

Binary adder
Digital Circuits
21

Carry propagation




when the correct outputs are available
the critical path counts (the worst case)
(A1,B1,C1) > C2 > C3 > C4 > (C5,S4)
> 8 gate levels
Digital Circuits
22

Reduce the carry propagation delay









employ faster gates
look-ahead carry (more complex mechanism, yet
faster)
carry propagate: Pi = AiBi
carry generate: Gi = AiBi
sum: Si = PiCi
carry: Ci+1 = Gi+PiCi
C1 = G0+P0C0
C2 = G1+P1C1 = G1+P1(G0+P0C0)
= G1+P1G0+P1P0C0
C3 = G2+P2C2 = G2+P2G1+P2P1G0+ P2P1P0C0
Digital Circuits
23

Logic diagram
Digital Circuits
24

4-bit carry-look ahead adder

propagation delay
Digital Circuits
25
Binary subtractor


A-B = A+(2’s complement of B)
4-bit Adder-subtractor

M=0, A+B; M=1, A+B’+1
Digital Circuits
26

Overflow




The storage is limited
Add two positive numbers and obtain a negative
number
Add two negative numbers and obtain a positive
number
V = 0, no overflow; V = 1, overflow
Example:
Digital Circuits
27
4-6 Decimal Adder

Add two BCD's



9 inputs: two BCD's and one carry-in
5 outputs: one BCD and one carry-out
Design approaches


A truth table with 2^9 entries
use binary full Adders


the sum <= 9 + 9 + 1 = 19
binary to BCD
Digital Circuits
28

BCD Adder: The truth table
Digital Circuits
29

Modifications are needed if the sum > 9

C=1




K=1
Z8Z4 = 1
Z8Z2 = 1
modification: (10)d or +6
C = K +Z8Z4 + Z8Z2
Digital Circuits
30

Block diagram
Digital Circuits
31
Binary Multiplier

Partial products
– AND operations
Fig. 4.15
Two-bit by two-bit binary multiplier.
Digital Circuits
32

4-bit by 3-bit binary multiplier
Fig. 4.16
Four-bit by three-bit binary
multiplier.
Digital Circuits
33
4-8 Magnitude Comparator

The comparison of two numbers


outputs: A>B, A=B, A<B
Design Approaches

the truth table
2n


2 entries - too cumbersome for large n
use inherent regularity of the problem


reduce design efforts
reduce human errors
Digital Circuits
34

Algorithm -> logic


A = A3A2A1A0 ; B = B3B2B1B0
A=B if A3=B3, A2=B2, A1=B1and A1=B1





equality: xi= AiBi+Ai'Bi'
(A=B) = x3x2x1x0
(A>B) = A3B3'+x3A2B2'+x3x2A1B1'+x3x2x1 A0B0'
(A>B) = A3'B3+x3A2'B2+x3x2A1'B1+x3x2x1 A0'B0
Implementation

xi = (AiBi'+Ai'Bi)'
Digital Circuits
35
Fig. 4.17
Four-bit magnitude comparator.
Digital Circuits
36
4-9 Decoder

A n-to-m decoder
n



a binary code of n bits = 2 distinct information
n
n input variables; up to 2 output lines
only one output can be active (high) at any time
Digital Circuits
37

An implementation
Fig. 4.18
Three-to-eight-line decoder.
Digital Circuits
38

Combinational logic implementation


each output = a minterm
use a decoder and an external OR gate to
implement any Boolean function of n input
variables
Digital Circuits
39

Demultiplexers


a decoder with an enable input
receive information on a single line and transmits
n
it on one of 2 possible output lines
Fig. 4.19
Two-to-four-line decoder with enable input
Digital Circuits
40

Decoder/demultiplexers
第三版內容,參考用!
Digital Circuits
41

Expansion

two 3-to-8 decoder: a 4-to-16 deocder
Fig. 4.20
4  16 decoder
constructed with two
3  8 decoders

a 5-to-32 decoder?
Digital Circuits
42
Combination Logic Implementation



each output = a minterm
use a decoder and an external OR gate to
implement any Boolean function of n input
variables
A full-adder

S(x,y,x)=S(1,2,4,7)
C(x,y,z)= S(3,5,6,7)
Fig. 4.21
Implementation of a full adder with a decoder
Digital Circuits
43

two possible approaches using decoder

OR(minterms of F): k inputs

NOR(minterms of F'): 2  k inputs
n

In general, it is not a practical implementation
Digital Circuits
44
4-10 Encoders

The inverse function of
a decoder
z  D1  D3  D5  D7
y  D2  D3  D6  D7
x  D4  D5  D6  D7
The encoder can be implemented
with three OR gates.
Digital Circuits
45

An implementation

limitations


illegal input: e.g. D3=D6=1
the output = 111 (¹3 and ¹6)
第三版內容,參考用!
Digital Circuits
46
Priority Encoder






resolve the ambiguity of illegal inputs
only one of the input is encoded
D3 has the highest priority
D0 has the lowest priority
X: don't-care conditions
V: valid output indicator
Digital Circuits
47
■ The maps for simplifying outputs x and y
Fig. 4.22
Maps for a priority encoder
Digital Circuits
48
■ Implementation of priority
Fig. 4.23
Four-input priority encoder
x  D2  D3
y  D3  D1D2
V  D0  D1  D2  D3
Digital Circuits
49
4-11 Multiplexers



select binary information from one of many input
lines and direct it to a single output line
n
2 input lines, n selection lines and one output line
e.g.: 2-to-1-line multiplexer
Fig. 4.24
Two-to-one-line multiplexer
Digital Circuits
50

4-to-1-line multiplexer
Fig. 4.25
Four-to-one-line multiplexer
Digital Circuits
51

Note
n




n-to- 2 decoder
n
add the 2 input lines to each AND gate
OR(all AND gates)
an enable input (an option)
Digital Circuits
52
Fig. 4.26
Quadruple two-to-one-line multiplexer
Digital Circuits
53
Boolean function implementation



MUX: a decoder + an OR gate
n
2 -to-1 MUX can implement any Boolean function
of n input variable
a better solution: implement any Boolean function
of n+1 input variable


n of these variables: the selection lines
the remaining variable: the inputs
Digital Circuits
54

an example: F(A,B,C) = S(1,2,6,7)
Fig. 4.27
Implementing a Boolean function with a multiplexer
Digital Circuits
55

Procedure:






assign an ordering sequence of the input variable
the rightmost variable (D) will be used for the input
lines
assign the remaining n-1 variables to the selection
lines w.r.t. their corresponding sequence
construct the truth table
consider a pair of consecutive minterms starting
from m0
determine the input lines
Digital Circuits
56
Example: F(A, B, C, D) = S(1, 3, 4, 11, 12, 13, 14, 15)
Fig. 4.28
Implementing a four-input function with a multiplexer
Digital Circuits
57
Three-state gates


A multiplexer can be constructed with three-state
gates
Output state: 0, 1, and high-impedance (open ckts)
Fig. 4.29
Graphic symbol for a three-state buffer
Digital Circuits
58
Example: Four-to-one-line multiplexer
Fig. 4.30
Multiplexer with three-state gates
Digital Circuits
59
4-12 HDL Models of Combinational Circuits
▓ Modeling Styles:
Digital Circuits
60
Gate-level Modeling
▓ The four-valued logic truth tables for the and, or, xor, and
not primitives
Digital Circuits
61
Gate-level Modeling
Example:
output [0: 3] D;
wire
[7: 0] SUM;
1. The first statement declares an output vector D with four bits, 0
through 3.
2. The second declares a wire vector SUM with eight bits numbered 7
through 0.
Digital Circuits
62
HDL Example 4-1
■ Two-to-one-line decoder
Digital Circuits
63
HDL Example 4-2
■ Four-bit adder: bottom-up hierarchical description
Digital Circuits
64
HDL Example 4-2 (continued)
Digital Circuits
65
Three-State Gates
■ Statement:
gate name (output, input, control);
Fig. 4.31
Three-state gates
Digital Circuits
66
Three-State Gates
■ Examples of gate instantiation
Digital Circuits
67
Fig. 4.32
Two-to-one-line
multiplexer with
three-state buffers
Digital Circuits
68
Dataflow Modeling
■ Verilog HDL operators
Example:
assign Y = (A & S) | (B & ~S)
Digital Circuits
69
HDL Example 4.3
 Dataflow description of a 2-to-4-line decoder
Digital Circuits
70
HDL Example 4-4
 Dataflow description of 4-bit adder
Digital Circuits
71
HDL Example 4-5
 Dataflow description of 4-bit magnitude comparator
Digital Circuits
72
HDL Example 4-6
 Dataflow description of a 2-to-1-line multiplexer
 Conditional operator (?:)
Condition ? True-expression : false-expression
Example: continuous assignment
assign OUT = select ? A : B
Digital Circuits
73
Behavioral Modeling
 if statement:
if (select) OUT = A;
HDL Example 4-7
 Behavioral description of a 2-to-1-line multiplexer
Digital Circuits
74
HDL Example 4-8
 Behavioral description of a 4-to-1-line multiplexer
Digital Circuits
75
Writing a Simple Test Bench
 initial block
Three-bit truth table
Digital Circuits
76
Writing a Simple Test Bench
 Interaction between stimulus and design modules
Digital Circuits
77
Writing a Simple Test Bench
 Stimulus module
 System tasks for display
Digital Circuits
78
 Syntax for $dispaly, $write, and $monitor:
Example:
Example:
Digital Circuits
79
HDL Example 4-9
 Stimulus module
Digital Circuits
80
HDL Example 4-9 (Continued)
Digital Circuits
81
HDL Example 4-10
 Gate-level description of a full adder
Digital Circuits
82
HDL Example 4-10 (Continued)
Digital Circuits
83