1 combinational logic logic and digital system design - cs 303 erkay savaş sabancı university
TRANSCRIPT
![Page 1: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/1.jpg)
1
Combinational Logic
Logic and Digital System Design - CS 303Erkay Savaş
Sabancı University
![Page 2: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/2.jpg)
2
Classification1. Combinational
– no memory– outputs depends on only the present inputs– expressed by Boolean functions
2. Sequential– storage elements + logic gates– the content of the storage elements define the
state of the circuit– outputs are functions of both input and current
state – state is a function of previous inputs– outputs not only depend the present inputs but
also the past inputs
![Page 3: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/3.jpg)
3
Combinational Circuits
– n input bits 2n possible binary input combinations
– For each possible input combination, there is one possible output value
• truth table
• Boolean functions (with n input variables)
– Examples: adders, subtractors, comparators, decoders, encoders, and multiplexers.
Combinationalcircuit
(logic gates)
n binaryinputs
m binaryoutputs
![Page 4: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/4.jpg)
4
Analysis & Design of Combinational Logic
• Analysis: to find out the function that a given circuit implements– We are given a logic circuit and– we are expected to find out
1. Boolean function(s)2. truth table3. A possible explanation of the circuit operation
(i.e. what it does)
• Firstly, make sure that the given circuit is, indeed, combinational.
![Page 5: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/5.jpg)
5
Analysis of Combinational Logic
– Verifying the circuit is combinational• No memory elements• No feedback paths (connections)
• Secondly, obtain a Boolean function for each output or the truth table
• Lastly, interpret the operation of the circuit from the derived Boolean functions or truth table– What is it the circuit doing? – Addition, subtraction, multiplication, etc.
![Page 6: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/6.jpg)
6
Obtaining Boolean Function
abc
abc
ab
ac
bc
F1
F2
T1
T2
T3
T4
Example
![Page 7: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/7.jpg)
7
Example: Obtaining Boolean Function
• Boolean expressions for named wires– T1 = abc– T2 = a + b + c– F2 = ab + ac + bc– T3 = F2’ = (ab + ac + bc)’– T4 = T3T2 = (ab + ac + bc)’ (a + b + c)– F1 = T1 + T4
= abc + (ab + ac + bc)’ (a + b + c)= abc + ((a’ + b’)(a’ + c’)(b’ + c’)) (a + b + c)= abc + ((a’ + a’c’ + a’b’ + b’c’)(b’ + c’)) (a + b + c)= abc + (a’b’ + a’c’ + a’b’c’ + b’c’) (a + b + c)
![Page 8: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/8.jpg)
8
Example: Obtaining Boolean Function
• Boolean expressions for outputs– F2 = ab + ac + bc
– F1 = abc + (a’b’ + a’c’ + b’c’) (a + b + c)
– F1 = abc + a’b’c + a’bc’ + ab’c’
– F1 = a(bc + b’c’) + a’(b’c + bc’)
– F1 = a(b c)’ + a’(b c)
– F1 =
![Page 9: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/9.jpg)
9
Example: Obtaining Truth Table
a b c T1 T2 T3 T4 F2 F1
0 0 0 0 0 1 0 0
0 0 1 0 1 1 1 1
0 1 0 0 1 1 1 1
0 1 1 0 1 0 0 0
1 0 0 0 1 1 1 1
1 0 1 0 1 0 0 0
1 1 0 0 1 0 0 0
1 1 1 1 1 0 0 1
sumcarry
This is what we call full-adder (FA)
F1 =
F2 = ab + ac + bc
![Page 10: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/10.jpg)
10
Design of Combinational Logic
• Design Procedure:– We start with the verbal specification about what
the resulting circuit will do for us (i.e. which function it will implement)• Specifications are often verbal, and very likely
incomplete and ambiguous (if not faulty)• Wrong interpretations can result in incorrect
circuit– We are expected to find
1. firstly, Boolean function(s) (or truth table) to realize the desired functionality
2. Logic circuit implementing the Boolean function(s) (or the truth table)
![Page 11: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/11.jpg)
11
Possible Design Steps
1. Find out the number of inputs and outputs2. Derive the truth table that defines the
required relationship between inputs and outputs
3. Obtain a simplified Boolean function for each output
4. Draw the logic diagram (enter your design into CAD)
5. Verify the correctness of the design
![Page 12: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/12.jpg)
12
Design Constraints
• From the truth table, we can obtain a variety of simplified expressions
• Question: which one to choose?• The design constraints may help in the
selection process• Constraints:
– number of gates– propagation time of the signal all the way from the
inputs to the outputs– number of inputs to a gate– number of interconnections– power consumption– driving capability of each gate
![Page 13: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/13.jpg)
13
Example: Design Process
• BCD-to-2421 Converter• Verbal specification:
– Given a BCD digit (i.e. {0, 1, …, 9}), the circuit computes 2421 code equivalent of the decimal number
• Step 1: how many inputs and how many outputs?– four inputs and four outputs
• Step 2:– Obtain the truth table– 0000 0000– 1001 1111– etc.
![Page 14: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/14.jpg)
14
BCD-to-2421 Converter• Truth Table
Inputs Outputs
A B C D x y z t
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1
0 0 1 0 0 0 1 0
0 0 1 1 0 0 1 1
0 1 0 0 0 1 0 0
0 1 0 1 1 0 1 1
0 1 1 0 1 1 0 0
0 1 1 1 1 1 0 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 1 1
![Page 15: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/15.jpg)
15
BCD-to-2421 Converter
11
1110
0000
10
11
01
00
10110100CD
AB
• Step 3: Obtain simplified Boolean expression for each output
• Output x:
x = BD + BC + A
A B C D x
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 1
1 0 0 0 1
The rest X
![Page 16: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/16.jpg)
16
Boolean Expressions for OutputsCD
AB 00 01 11 10
00 0 0 0 001 1 0 1 111 X X X X10 1 1 X X
CDAB 00 01 11 10
00 0 0 1 101 0 1 0 011 X X X X10 1 1 X X
• Output y:
• Output z:
A B C D y z
0 0 0 0 0 0
0 0 0 1 0 0
0 0 1 0 0 1
0 0 1 1 0 1
0 1 0 0 1 0
0 1 0 1 0 1
0 1 1 0 1 0
0 1 1 1 1 0
1 0 0 0 1 1
1 0 0 0 1 1
The rest X X
![Page 17: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/17.jpg)
17
Boolean Expressions for Outputs
• Step 4: Draw the logic diagram
CDAB 00 01 11 10
00 0 1 1 001 0 1 1 011 X X X X10 0 1 X X
t = D
x = BC + BD + A
y = A + BD’ + BC
z = A + B’C + BC’D
• Output t:A B C D T
0 0 0 0 0
0 0 0 1 1
0 0 1 0 0
0 0 1 1 1
0 1 0 0 0
0 1 0 1 1
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0
1 0 0 0 1
The rest X
![Page 18: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/18.jpg)
18
Example: Logic DiagramAB
CD
x = BC + BD + A
y = A + BD’ + BC
z = A + B’C + BC’D
t = D
![Page 19: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/19.jpg)
19
Example: Verification
• Step 5: Check the functional correctness of the logic circuit
• Apply all possible input combinations
• And check if the circuit generates the correct outputs for each input combinations
• For large circuits with many input combinations, this may not be feasible.
• Statistical techniques may be used to verify the correctness of large circuits with many input combinations
![Page 20: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/20.jpg)
20
Binary Adder/Subtractor• (Arithmetic) Addition of two binary digits
– 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, and 1 + 1 = 10– The result has two components
• the sum (S)• the carry (C)
• (Arithmetic) Addition of three binary digits
0 + 0 + 0 = 0 0
0 + 0 + 1 = 0 1
0 + 1 + 0 = 0 1
0 + 1 + 1 = 1 0
1 + 0 + 0 = 0 1
1 + 0 + 1 = 1 0
1 + 1 + 0 = 1 0
1 + 1 + 1 = 1 1
![Page 21: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/21.jpg)
21
Half Adder
• Truth table
x y C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
S = x’y + xy’ = x y
C = xy
x
yS
CHAHA
![Page 22: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/22.jpg)
22
Full Adder 1/2• A circuit that performs the arithmetic sum of
three bits– Three inputs– the range of output is [0, 3]– Two binary outputs
x y z C S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
![Page 23: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/23.jpg)
23
Full Adder 2/2
• Karnaugh Maps
yzx 00 01 11 10
0 0 1 0 1
1 1 0 1 0
S = xy’z’ + x’y’z + xyz + x’yz’
= ...
= ...
= x y z
yzx 00 01 11 10
0 0 0 1 0
1 0 1 1 1
C = xy + xz + yz
Two level implementation1st level: three AND gates2nd level: One OR gate
![Page 24: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/24.jpg)
24
Full Adder: Hierarchical Realization
• Sum– S = x y z
• Carry – C = xy + xz + yz
= (x + y) z + xy = (x y) z + xy
• This allows us to implement a full-adder using two half adders.
x y z = S
HA
z
S
C
HAx
y
S
C C
![Page 25: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/25.jpg)
25
Full Adder Using Half Adders
x
y
C
S
z
HA HA
![Page 26: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/26.jpg)
26
Integer Addition 1/2• Binary adder:
– A digital circuit that produces the arithmetic sum of two binary numbers
– A = (an-1, an-2, …, a1, a0) – B = (bn-1, bn-2, …, b1, b0)
• A simple case: 4-bit binary adder
HAx y
C
S
a0 b0
S0
C1FA
x y
zC
S
a1 b1
S1
C2FAx y
zC
S
a2 b2
S2
C3FAx y
zC
S
a3 b3
S3
C4
![Page 27: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/27.jpg)
27
Integer Addition 2/2
FAx y
zC
S
a0 b0
C0=0
S0
C1FA
x y
zC
S
a1 b1
S1
C2FAx y
zC
S
a2 b2
S2
C3FAx y
zC
S
a3 b3
S3
C4
Ripple-carry adder
![Page 28: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/28.jpg)
28
Hierarchical Design Methodology
• The design methodology we used to build carry-ripple adder is what is referred as hierarchical design.
• In classical design, we have:– 9 inputs including C0.– 5 outputs– Truth tables with 29 = 512 entries– We have to optimize five Boolean functions with 9
variables each.
• Hierarchical design– we divide our design into smaller functional blocks – connect functional units to produce the big
functionality
![Page 29: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/29.jpg)
Full Adder in Xilinx
29
![Page 30: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/30.jpg)
Two-bit Adder in Xilinx
30
![Page 31: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/31.jpg)
31
Subtractor• Recall how we do subtraction (2’s complement)
– X – Y = X + (2n – Y) = X + ~Y + 1
4-bit adder circuit
a3 b3 a2 b2 a1 b1 a0 b0
C4 C0
S3 S2 S1 S0
x3 x2 x1 x0 logic-1y3 y2 y1 y0
S3 S2 S1 S0C4
![Page 32: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/32.jpg)
32
Overflow
• How to detect overflows:– two n-bit numbers– we add them, and result may be an (n+1)-bit
number overflow.– Unsigned numbers:
• easy• check the carryout.
– Signed numbers • more complicated• overflow occurs in addition, when the operands
are of the same sign
![Page 33: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/33.jpg)
33
Examples: Overflows
• Example 1: 8-bit signed numbers
15911111001…00
91
68
…00
…00
11011010
00100010
• Example 2: 8-bit signed numbers
-15910000110…11
-91
-68
…11
…11
10100101
00111101
![Page 34: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/34.jpg)
34
How to Detect Overflows:• First Method
1. If both operands are positive and the MSB of the result is 1.
2. If both operands are negative and the MSB of the result is 0.
an-1 bn-1 Sn-1 V
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
![Page 35: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/35.jpg)
35
Detecting Overflows: First Method
• V = an-1’ bn-1’ Sn-1 + an-1 bn-1 Sn-1’
• Can we do it better?
bn-1Sn-1
an-100 01 11 10
0 0 1 0 01 0 0 0 1
an-1 bn-1 Sn-1 V
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
![Page 36: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/36.jpg)
36
Detecting Overflows
• Second method:– Remember we have other variables when adding:
• Carries
S11111001…00
C0
B11011010…00
A00100010…00
S10000110…11
C0
B10100101…11
A00111101…11
Look at C7 and C8 in both cases
![Page 37: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/37.jpg)
37
Detecting Overflows: Second Method
• Observations – Case 1: V = 1 when C7 = 1 and C8 = 0
– Case 2: V = 1 when C7 = 0 and C8 = 1
– V = C7 C8 = 1
– Think about whether this could happen when the operands have different signs.
• C7 = C8
• Overflow detection logic– Which one is simpler?
– V = C7 C8
– V = a7’ b7’ S7 + a7 b7 S7’
![Page 38: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/38.jpg)
38
Faster Adders
FAx y
zC
S
a0 b0
C0=0
S0
C1FA
x y
zC
S
a1 b1
S1
C2FAx y
zC
S
a2 b2
S2
C3FAx y
zC
S
a3 b3
S3
C4
Ripple-carry adder
• What is the total propagation time of 4-bit ripple-carry adder? FA: propagation time of a single full adder.– We have four full adders connected in cascaded
fashion– Total propagation time: ??
![Page 39: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/39.jpg)
39
Carry Propagation
ai
bi
Ci+1
Pi
Gi
Si
Ci
• Propation time of a full adder XOR 2AND = 2OR
FA 2XOR
![Page 40: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/40.jpg)
Carry Propagation
40
S0
a0 b0 C0
C1S1
a1 b1
C2S2
a2 b2
C3S3
a3 b3
C4
• Delays• P0, P1, P2, P3: XOR 2AND• C1(S0): 2AND + 2AND 4AND • C2(S1): 4AND + 2AND 6AND• C3(S2): 6AND + 2AND 8AND • C4(S3): 8AND + 2AND 10AND
P0P1P2P3C1C2C3
![Page 41: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/41.jpg)
41
Faster Adders• The carry propagation technique is a limiting
factor in the speed with which two numbers are added.
• Two alternatives1. use faster gates with reduced delays
2. Increase the circuit complexity (i.e. put more gates) in such a way that the carry delay time is reduced.
• An example for the latter type of solution is carry lookahead adders– Two binary variables:
1. Pi = ai bi – carry propagate
2. Gi = aibi – carry generate
![Page 42: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/42.jpg)
42
Carry Lookahead Adders
• Sum and carry can be expressed in terms of Pi
and Gi:
– Pi = ai bi; Gi = aibi
– Si = Pi Ci
– Ci+1 = Gi + PiCi
• Why the names (carry propagate and generate)?– If Gi = 1 (both ai = bi = 1), then a “new” carry is
generated
– If Pi = 1 (either ai = 1 or bi = 1), then a carry coming
from the previous lower bit position is propagated to the next higher bit position
![Page 43: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/43.jpg)
Generating Pi and Gi Signals
• Example: 4-bit operands
a3
b3
a2
b2
a1
b1
a0
b0
P3
G3
P2
G2
P1
G1
P0
G0
43
![Page 44: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/44.jpg)
44
4-bit Carry Lookahead Adder• We can use the carry propagate and carry
generate signals to compute carry bits used in addition operation
– C0 = input
– C1 = G0 + P0C0
– C2 = G1 + P1C1
= G1 + P1(G0 + P0C0) = G1 + P1G0 + P1P0C0
– C3 = G2 + P2C2 = G2 + P2(G1 + P1G0 + P1P0C0)
= G2 + P2G1 + P2P1G0 + P2P1P0C0
– C4 =
![Page 45: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/45.jpg)
45
4-bit Carry Lookahead Circuit 1/3
C1
G0
P0
C0
P1
G1
C2
P2
G2
C3
C1 = G0 + P0C0
C2 = G1 + P1G0 + P1P0C0
C3 = G2 + P2G1 + P2P1G0 + P2P1P0C0
![Page 46: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/46.jpg)
46
4-bit Carry Lookahead Circuit 2/3
• All three carries (C1, C2, C3) can be realized as two-level implementation (i.e. AND-OR)
• C3 does not have to wait for C2 and C1 to propagate
• C3 has its own circuit
• The propagations happen concurrently• Certain parts are repeated.
![Page 47: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/47.jpg)
47
4-bit Carry Lookahead Circuit 3/3
• Two levels of logic
![Page 48: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/48.jpg)
48
4-bit Carry Lookahead Addera3
b3
a2
b2
a1
b1
a0
b0
C0
C4
P3
P2
S3
S2
P1 S1
P0 S0
Carry Lookahead
circuit
P3
G3
P2
G2
P0
G0
P1
G2
C0
C4
C3
C2
C1
C0
![Page 49: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/49.jpg)
49
Propagation Time of Carry Lookahead Adders
G2
C3
P2P1P0C0
P2P1G0
P2
G1 XOR = 2AND = 2OR
C3
G2
P2
P1
P0
C0
P2
P1
G0P2
G1
P3
S3
a1
b1
![Page 50: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/50.jpg)
Generating C4C0
P0
P1
P2
P3
G0
P1
P2
P3
P2
P3
G1
P3
G2
G3
C4
Delay 3.5 XOR Area: 14 gates
50
![Page 51: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/51.jpg)
51
Summary
• Half adder HA• Full adder FA
– critical path delay
– time complexity: 2XOR (assume XOR = 2AND = 2OR)
• 4-bit carry-ripple adder– 4 FAs in serial
• carry propagation
– time complexity: 10AND
• Faster Adder– Separate carry generation circuits (more complex)
– time complexity: 4XOR 8AND
![Page 52: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/52.jpg)
Summary
• General formulae• n-bit carry-ripple adder
– time complexity: (2 + 2n)AND
• n-bit CLA– Separate carry generation circuits (more complex)
– time complexity: (4 + 2log2n)AND
– n = 8
• C7 = G6 + P6G5 + P6P5G4 + P6P5P4G3 + P6P5P4P3G2
+ P6P5P4P3P2G1 + P6P5P4P3P2P1G0 + P6P5P4P3P2P1P0C0
52
![Page 53: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/53.jpg)
53
Hybrid Approach for 16-bit Adder
4-bit CLA
…b3 b0
…a3 a0
…s3 s0
c44-bit CLA
…b7 b4
…a7 a4
…s7 s4
c84-bit CLA
…b11 b8
…a11 a8
…
c12
s11 s8
4-bit CLA
…b15b12
…a15a12
…s15s12
c16
![Page 54: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/54.jpg)
54
Binary Multipliers• Two-bit multiplier
y1 y0 Y
× x1 x0 X
x0 y1 x0 y0
+ x1 y1 x1 y0
z3 z2 z1 z0 Zy0y1
x0
y0y1
x1
z0
HA
z1
HA
z2z3
![Page 55: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/55.jpg)
55
(3x4)-bit Multiplier: Method
y3 y2 y1 y0 Y
× x2 x1 x0 X
x0 y3 x0 y2 x0 y1 x0 y0
x1 y3 x1 y2 x1 y1 x1 y0
+ x2 y3 x2 y2 x2 y1 x2 y0
z6 z5 z4 z3 z2 z1 z0
![Page 56: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/56.jpg)
56
(3x4)-bit Multiplier: Method
y3 y2 y1 y0 Y
× x2 x1 x0 X
x0 y3 x0 y2 x0 y1 x0 y0
x1 y3 x1 y2 x1 y1 x1 y0
t4 t3 t2 t1 t0
+ x2 y3 x2 y2 x2 y1 x2 y0
z6 z5 z4 z3 z2 z1 z0
![Page 57: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/57.jpg)
57
4-bit Multiplier: Circuity0y1x0
y2y3
y0y1x1y2y3
y0y1x2y2y3
4-bit Adder
4-bit Adder
z0z1z2z3z4z5z6
0
![Page 58: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/58.jpg)
58
mxn-bit Multipliers
• Generalization:• multiplier: m-bit integer• multiplicand: n-bit integers• mn AND gates• (m-1) adders
– each adder is n-bit
![Page 59: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/59.jpg)
59
Magnitude Comparator
• Comparison of two integers: A and B.– A > B (1, 0, 0) = (x, y, z)
– A = B (0, 1, 0) = (x, y, z)
– A < B (0, 0, 1) = (x, y, z)
• Example: 4-bit magnitude comparator– A = (a3, a2, a1, a0) and B = (b3, b2, b1, b0)
1. (A = B) case
• they are equal if and only if ai = bi 0 i 3
• ti = (ai bi)’ 0 i 3
• y = (A=B) = t3 t2 t1 t0
![Page 60: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/60.jpg)
60
4-bit Magnitude Comparator 2. (A > B) and (A < B) cases
– We compare the most significant bits of A and B first.
• if (a3 = 1 and b3 = 0) A > B
• else if (a3 = 0 and b3 = 1) A < B
• else (i.e. a3 = b3) compare a2 and b2.
y = (A=B) = t3 t2 t1 t0
x = (A>B) = + t3t2t1 a0 b0’a3 b3’+ t3 a2 b2’+ t3t2 a1 b1’
z = (A<B) =
![Page 61: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/61.jpg)
61
4-bit Magnitude Comparator: Circuit
t3
t2
t1
t0
![Page 62: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/62.jpg)
62
Decoders• A binary code of n bits
– capable of representing 2n distinct elements of coded information
– A decoder is a combinational circuit that converts binary information from n binary inputs to a maximum of 2n unique output lines
2x4 decoder
x
y
d0
d1
d2
d3
x y d0 d1 d2 d3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
• d0 = • d1 =
• d2 = • d3 =
![Page 63: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/63.jpg)
Decoder with Enable Input
2x4 decoder
x
y
d0
d1
d2
d3
e
e x y d0 d1 d2 d3
0 X X 0 0 0 0
1 0 0 1 0 0 0
1 0 1 0 1 0 0
1 1 0 0 0 1 0
1 1 1 0 0 0 163
![Page 64: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/64.jpg)
66
Demultiplexer
• A demultiplexer is a combinational circuit – it receives information from a single input line and
directs it one of 2n output lines– It has n selection lines as to which output will get
the input
2x4 decoder
x
y
d0
d1
d2
d3
e
d0
d1
d2
d3
e
x, y
d0 = e when x = 0 and y = 0d1 = e when x = 0 and y = 1d2 = e when x = 1 and y = 0d3 = e when x = 1 and y = 1
![Page 65: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/65.jpg)
67
Combining Decoders
2x4 decoder
y
z
d0d1
d2
d3e
2x4 decoder
d4d5
d6
d7e
x
x y z active output
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
![Page 66: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/66.jpg)
68
Decoder as a Building Block
• A decoder provides the 2n minterms of n input variable
2x4 decoder
x
y
d0 = x’y’d1 = x’yd2 = xy’d3 = xy
• We can use a decoder and OR gates to realize any Boolean function expressed as sum of minterms– Any circuit with n inputs and m outputs can be
realized using an n-to-2n decoder and m OR gates.
![Page 67: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/67.jpg)
69
Example: Decoder as a Building Block
• Full adder– C = xy + xz + yz – S = x y z
3x8 decoder
x
y
z
0
1
2
34
5
6
7
S
C
![Page 68: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/68.jpg)
70
Encoders• An encoder is a combinational circuit that
performs the inverse operation of a decoder– number of inputs: 2n
– number of outputs: n– the output lines generate the binary code
corresponding to the input value
• Example: n = 2
d0 d1 d2 d3x y
1 0 0 0 0 0
0 1 0 0 0 1
0 0 1 0 1 0
0 0 0 1 1 1
![Page 69: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/69.jpg)
71
Priority Encoder• Problem with a regular encoder:
– only one input can be active at any given time– the output is undefined for the case when more
than one input is active simultaneously.
• Priority encoder:– there is a priority among the inputs
1111XXX
10101XX
110001X
1000001
0XX0000
Vyxd3d2d1d0
![Page 70: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/70.jpg)
72
4-bit Priority Encoder• In the truth table
– X for input variables represents both 0 and 1. – Good for condensing the truth table– Example: X100 (0100, 1100)
• This means d1 has priority over d0
• d3 has the highest priority
• d2 has the next
• d0 has the lowest priority
– V = ?
![Page 71: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/71.jpg)
73
Maps for 4-bit Priority Encoderd2d3
d0d100 01 11 10
00 X 1 1 101 0 1 1 111 0 1 1 110 0 1 1 1 – x =
d2d3
d0d100 01 11 10
00 X 1 1 001 1 1 1 011 1 1 1 010 0 1 1 0
– y =
![Page 72: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/72.jpg)
74
4-bit Priority Encoder: Circuit
d0
d1
d2
d3 y
x
V
– x = d2 + d3
– y = d1d2’ + d3
– V = d0 + d1 + d2 + d3
![Page 73: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/73.jpg)
75
Multiplexers• A combinational circuit
– It selects binary information from one of the many input lines and directs it to a single output line.
– Many inputs – m– One output line– n selection lines n = ?
• Example: 2-to-1-line multiplexer– 2 input lines I0, I1– 1 output line Y– 1 select line S
S Y
0 I0
1 I1Y = ? Function Table
![Page 74: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/74.jpg)
76
2-to-1-Line Multiplexer
• Special Symbol
S
I0
Y
I1
Y = S’I0 + SI1
I0
I1
MUX Y
S
0
1
![Page 75: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/75.jpg)
77
4-to-1-Line Multiplexer
• 4 input lines: I0, I1, I2, I3• 1 output line: Y• 2 select lines: S1, S0.
11
01
10
00
YS0S1 Y = ?
Interpretation:
• In case S1 = 0 and S0 = 0, Y selects
I0
• In case S1 = 0 and S0 = 1, Y selects
I1
• In case S1 = 1 and S0 = 0, Y selects
I2
• In case S1 = 1 and S0 = 1, Y selects
I3
![Page 76: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/76.jpg)
78
4-to-1-Line Multiplexer: Circuit
S0
I0
Y
I1
I2
I3
S1
I0
I1MUX Y
S1
0
1
I2
I3
2
3
S0
Y = S1’S0’I0 + S1’S0I1 + S1S0’I2 + S1S0I3
![Page 77: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/77.jpg)
79
Multiplexer with Enable Input
• To select a certain building block we use enable inputs
A
BMUX Y
S1
0
1
C
D
2
3
S0
E
E S Y
1 XX
0 00
0 01
0 10
0 11
![Page 78: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/78.jpg)
80
Multiple-Bit Selection Logic 1/2
• A multiplexer is also referred as a “data selector”
• A multiple-bit selection logic selects a group of bits
A =
B =
Y =
A
B
MUX Y
S
0
1
2
2
2
1
E
![Page 79: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/79.jpg)
Multiple-bit Selection Logic 2/2
A
B
MUX Y
S
0
1
2
2
2
1
E
E S Y
1 X all 0’s
0 0 A
0 1 B
MUX
0
1
y0
a0
b0
E
S
MUX
0
1
y1
a1
b1
E
S
81
![Page 80: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/80.jpg)
82
Design with Multiplexers 1/2
• Reminder: design with decoders
• Half adder– C = xy = (3)– S = x y = x’y + xy’ = (1, 2)
2x4 decoder
x
y
0
1
2
3
S
C
• A closer look will reveal that a multiplexer is nothing but a decoder with OR gates
![Page 81: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/81.jpg)
83
Design with Multiplexers 2/2
• 4-to-1-line multiplexer
I0
I1MUX Y
S1
0
1
I2
I3
2
3
S0
• Y = S1’S0’ I0 + S1’S0 I1 + S1S0’ I2 + S1S0 I3.
• Y = x’y’ I0 + x’y I1 + xy’ I2 + xyI3• Y =
• S1 x
• S0 y
• S1’S0’ = x’y’,
• S1’S0 = x’y,
• S1S0’ = xy’,
• S1S0 = xy
![Page 82: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/82.jpg)
84
Example: Design with Multiplexers
• Example: S = (1, 2)
I0
I1MUX Y
S1
0
1
I2
I3
2
3
S0
=
=
=
=
x y
![Page 83: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/83.jpg)
85
Design with Multiplexers Efficiently
• More efficient way to implement an n-variable Boolean function1. Use a multiplexer with n-1 selection inputs2. First (n-1) variables are connected to the
selection inputs3. The remaining variable is connected to data
inputs
• Example: Y = (1, 2)
? = I0
? = I1
Y = S’ I0 + S I1MUX
0
1
x
Y = x’I0 + x I1
![Page 84: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/84.jpg)
86
Example: Design with Multiplexers
• F(x, y, z) = (1, 2, 6, 7)– F = x’y’z + x’yz’ + xyz’ + xyz
– Y = S1’S0’ I0 + S1’S0 I1 + S1S0’ I2 + S1S0 I3
– I0 = , I1 = , I2 = , I3 =
1111
1011
0101
0001
0110
1010
1100
0000
Fzyx
F =
F =
F =
F =
![Page 85: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/85.jpg)
87
Example: Design with Multiplexers
MUX
0
1
2
3
x y
F = x’y’z + x’yz’ + xy
F = x’y’z + x’yz’ + xyz’ + xyz
F = z when x = 0 and y = 0F = z’ when x = 0 and y = 1F = 0 when x = 1 and y = 0F = 1 when x = 1 and y = 1
![Page 86: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/86.jpg)
88
Design with Multiplexers• General procedure for n-variable Boolean
function– F(x1, x2, ..., xn)
1.The Boolean function is expressed in a truth table2.The first (n-1) variables are applied to the
selection inputs of the multiplexer (x1, x2, ..., xn-1)
3.For each combination of these (n-1) variables, evaluate the value of the output as a function of the last variable, xn.
• 0, 1, xn, xn’
4.These values are applied to the data inputs in the proper order.
![Page 87: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/87.jpg)
89
Combining Multiplexers
MUX
0
1
2
3
MUX
0
1
2
3
S2 S1
MUX
0
1
S2 S1
S0
![Page 88: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/88.jpg)
90
Three-State Buffers
• A different type of logic element– Instead of two states (i.e. 0, 1), it exhibits three
states (0, 1, Z)– Z (Hi-Z) is called high-impedance– When in Hi-Z state the circuit behaves like an open
circuit (the output appears to be disconnected, and the circuit has no logic significance)
A
C
Y = A if C = 1Y = Hi-Z if C = 0
input
controlinput
![Page 89: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/89.jpg)
91
3-State Buffers• Remember that we cannot connect the outputs
of other logic gates.• We can connect the outputs of three-state
buffers– provided that no two three-state buffers drive the
same wire to opposite 0 and 1 values at the same time.
C A Y
0 X Hi-Z
1 0 0
1 1 1
![Page 90: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/90.jpg)
92
Multiplexing with 3-State Buffers
A
S
B
TA
TB
Y
11Z1X1
00Z0X1
1Z1X10
0Z0X00
YTBTABAS
It is, in fact, a 2-to-1-line MUX
![Page 91: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/91.jpg)
93
Two Active Outputs - 1
A
C1
B
TA
TB
Y
C0
What will happen if C1 = C0 = 1?
11111
00011
1011
0111
YBAC0C1 ZXX00
11X01
00X01
1X110
0X010
![Page 92: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/92.jpg)
94
Design Principle with 3-State Buffers
• Designer must be sure that only one control input must be active at a time.– Otherwise the circuit may be destroyed by the
large amount of current flowing from the buffer output at logic-1 to the buffer output at logic-0.
2x4 decoder
S1
S0
E
x
y
w
z
t
![Page 93: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/93.jpg)
95
Busses with 3-State Buffers• There are important uses of three-state buffers
CPU Memory
I/O Device
![Page 94: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/94.jpg)
Design with Verilog
• Gate Level Design
96
module decoder_2x4_gates(D, A, B, e);
output [0:3] D;input A, B, e;
wire A_n, B_n;
not G1(A_n, A);
not G2 (B_n, B);
and G3(D[0], e, A_n, B_n);
and G4(D[1], e, A_n, B);
and G5(D[2], e, A, B_n);
and G6(D[3], e, A, B);
endmodule;
G1
G2
G3
G4
G5
G6
A
B
e
D0
D1
D2
D3
D0 = eA’B’ D1 = eA’BD2 = eAB’D3 = eAB
A_nB_n
![Page 95: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/95.jpg)
Dataflow Modeling
97
G1
G2
G3
G4
G5
G6
A
B
e
D0
D1
D2
D3
D0 = eA’B’ D1 = eA’BD2 = eAB’D3 = eABmodule decoder_2x4_dataflow(
output [0:3] D,
input A, B,
e);
assign D[0] = e & ~A & ~B;
assign D[1] = e & ~A & B;
assign D[2] = e & A & ~B;
assign D[3] = e & A & B;
endmodule;
• Dataflow modeling uses a number of operators that act on operands– About 30 different operators
![Page 96: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/96.jpg)
Dataflow Modeling
• Data type “net”– Represents a physical connection between circuit
elements– e.g., “wire”, “output”, “input”.
• Continuous assignment “assign”– A statement that assigns a value to a net– e.g., assign D[0] = e & ~A & ~B;– e.g., assign A_lt_B = A < B;
• Bus type– wire [0:3] T;– T[0], T[3], T[1..2];
98
![Page 97: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/97.jpg)
Behavioral Modeling
• Represents digital circuits at a functional and algorithmic level– Mostly used to describe sequential circuits– Can also be used to describe combinational circuits
99
module mux_2x1_beh(m, A, B, S);
output m;
input A, B, S;
reg m;
always @(A or B or S);
if(S == 1) m = A;
else m = B;
endmodule;
![Page 98: 1 Combinational Logic Logic and Digital System Design - CS 303 Erkay Savaş Sabancı University](https://reader033.vdocuments.mx/reader033/viewer/2022061522/56649eab5503460f94bb064e/html5/thumbnails/98.jpg)
Behavioral Modeling• Output must be declared as “reg” data type• “always” block
– Procedural assignment statements are executed every time there is a change in any of the variables listed after the “@” symbol (i.e., sensitivity list).
100
module mux_4x1_beh(output reg m,
input I0, I1, I2, I3;
input [1:0] S);
always @(I0 or I1 or I2 or I3 or S);
case (S)
2’b00: m = I0;
2’b01: m = I1;
2’b10: m = I2;
2’b11: m = I3;
encase
endmodule;