1 COMP541 Combinational Logic - II Montek Singh Aug 27, 2014.
COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.
-
Upload
beryl-cobb -
Category
Documents
-
view
217 -
download
0
Transcript of COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.
![Page 1: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/1.jpg)
COMP541
Combinational Logic - I
Montek Singh
Mon, Jan 12, 2015
![Page 2: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/2.jpg)
2
Today Basics of digital logic (review)
Basic gatesCombinational logicVarious representations
Boolean algebraTruth tablesKarnaugh Maps (“K-Maps”)Circuit schematic diagramsHardware Description Languages (HDL)
![Page 3: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/3.jpg)
3
Binary Logic Binary variables
Can be 0 or 1 (True or False, low or high)Variables named with single letters in examples
Really use words when designing circuits
![Page 4: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/4.jpg)
Logic Gates Perform logic functions:
inversion (NOT), AND, OR, NAND, NOR, etc. Single-input:
NOT gatebuffer (non-inverting)
Two-input: AND, OR, XOR, NAND, NOR, XNOR
Multiple-inputMost 2-input gates also have multi-input flavors
4
![Page 5: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/5.jpg)
Single-Input Logic Gates
NOT
Y = A
A Y0 11 0
A Y
BUF
Y = A
A Y0 01 1
A Y
5
![Page 6: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/6.jpg)
Two-Input Logic Gates
AND
Y = AB
A B Y0 0 00 1 01 0 01 1 1
AB
Y
OR
Y = A + B
A B Y0 0 00 1 11 0 11 1 1
AB
Y
6
![Page 7: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/7.jpg)
More Two-Input Logic Gates
XNOR
Y = A + B
A B Y0 00 11 01 1
AB
Y
XOR NAND NOR
Y = A + B Y = AB Y = A + B
A B Y0 0 00 1 11 0 11 1 0
A B Y0 0 10 1 11 0 11 1 0
A B Y0 0 10 1 01 0 01 1 0
AB
Y AB
Y AB
Y
1001
7
![Page 8: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/8.jpg)
More Two-Input Logic Gates
XNOR
Y = A + B
A B Y0 00 11 01 1
AB
Y
XOR NAND NOR
Y = A + B Y = AB Y = A + B
A B Y0 0 00 1 11 0 11 1 0
A B Y0 0 10 1 11 0 11 1 0
A B Y0 0 10 1 01 0 01 1 0
AB
Y AB
Y AB
Y
1001
8
![Page 9: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/9.jpg)
Multiple-Input Logic Gates
NOR3
Y = A+B+C
B C Y0 00 11 01 1
AB YC
A0000
0 00 11 01 1
1111
10000000
9
![Page 10: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/10.jpg)
Multiple-Input Logic Gates
NOR3
Y = A+B+C
B C Y0 00 11 01 1
AB YC
A0000
0 00 11 01 1
1111
10000000
10
![Page 11: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/11.jpg)
NAND is Universal Can express any Boolean Function
11
![Page 12: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/12.jpg)
Using NAND as Invert-OR
Also reverse inverter diagram for clarity
12
DeMorgan’s Law:
![Page 13: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/13.jpg)
NOR Also Universal Dual of NAND: also can express any Boolean
func
13
![Page 14: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/14.jpg)
Representation: Schematic “Schematic” is short for “schematic diagram”
Simply means a drawing showing gates (or more complex modules) and wire connections
More complex modules are usually shown as black boxes
14
![Page 15: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/15.jpg)
Representation: Boolean Algebra More on this next class
15
ZY X F
![Page 16: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/16.jpg)
Representation: Truth Table 2n rows: where n is # of variables
16
![Page 17: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/17.jpg)
17
Schematic Diagrams Can you design a Pentium or a graphics chip
that way?Well, yes, but diagrams are overly complex and hard
to enter These days people represent the same thing
with textYou can call it “code,” but it is not software!More precisely, it is a textual “description”
![Page 18: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/18.jpg)
Hardware Description Languages Main ones are Verilog and VHDL
Others: Abel, SystemC, Handel Origins as testing languages
To generate sets of input values Levels of use from very detailed to more
abstract descriptions of hardware
18
![Page 19: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/19.jpg)
Design w/ HDL Two leading HDLs:
Verilogdeveloped in 1984 by Gateway Design Automationbecame an IEEE standard (1364) in 1995
VHDLDeveloped in 1981 by the Department of DefenseBecame an IEEE standard (1076) in 1987
Most (all?) commercial designs built using HDLs
We will use Verilog
19
![Page 20: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/20.jpg)
Uses of HDL Simulation
Defines input values applied to the circuitOutputs checked for correctnessMillions of dollars saved by debugging in simulation
instead of hardware Synthesis
Transforms HDL code into a circuit-level implementationHDL is transformed into a “netlist”“Netlist” = a list of gates and the wires connecting them
– Just a textual description instead of drawing
IMPORTANT:When describing circuits using an HDL, it is critical to
think of the hardware the code should produce.20
![Page 21: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/21.jpg)
Verilog Module Code always organized in modules Represent a logic “box”
With inputs and outputs
21
ab yc
VerilogModule
![Page 22: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/22.jpg)
Examplemodule example(input a, b, c, output y); *** HDL DESCRIPTION HERE ***endmodule
22
ab yc
VerilogModule
![Page 23: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/23.jpg)
23
Levels of VerilogSeveral different levels (or “views”)
Mainly two types: Structural or BehavioralStructural: Describe the physical structure of the
hardwareTypically, gates/modules and wires that connect them
Behavioral: Describes the algorithmic behavior of the hardwareE.g., Output X = Y + Z
![Page 24: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/24.jpg)
24
Example 1 Output is 1 when input < 011
Figure (b) is called a “Karnaugh Map” (or “K-Map”)graphical representation of truth table: n-dimensional
“cube”Figure (c) is a “sum-of-products” implementation
AND-OR, implemented as NAND-NAND
![Page 25: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/25.jpg)
25
Structural Verilog Explicit description of gates and connections
Textual form of schematicSpecifying netlist
netlist = gates/modules and their wire connections
![Page 26: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/26.jpg)
26
Example 1 in Structural Verilogmodule example_1(X,Y,Z,F); input X; input Y; input Z; output F;
//wire X_n, Y_n, Z_n, f1, f2;not
g0(X_n, X),g1(Y_n, Y),g2(Z_n, Z);
nandg3(f1, X_n, Y_n),g4(f2, X_n, Z_n),g5(F, f1, f2);
endmodule
Can also be: input X, Y, Z; output F;
Newer syntax: module example_1( input X, input Y, input Z, output F );
![Page 27: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/27.jpg)
Slight Variation – Gates not named
27
module example_1_c(X,Y,Z,F); input X; input Y; input Z; output F;
not(X_n, X);not(Y_n, Y);not(Z_n, Z);
nand(f1, X_n, Y_n);nand(f2, X_n, Z_n);nand(F, f1, f2);
endmodule
Observe:• each gate is declared using a separate
“not” or “nand” declaration• gate instances are not named
![Page 28: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/28.jpg)
28
Explanation Each of these gates is an instance
Like object vs class In first example, they had names
not g0(X_n, X), In second example, no name
not(X_n, X); Why can naming an instance be useful?
![Page 29: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/29.jpg)
29
Gates Standard set of gates available
and, or, notnand, norxor, xnorbuf
![Page 30: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/30.jpg)
30
Dataflow Description (Behavioral)
Basically a logical expression
No explicit gates
module example_1_b(X,Y,Z,F); input X; input Y; input Z; output F;
assign F = (~X & ~Y) | (~X & ~Z);
endmodule
![Page 31: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/31.jpg)
Conditional Expressions Useful for:
describing multiplexerscombinational logic in an if-then-else style
module example_1_c(input [2:0] A,output F);
assign F = (A > 3’b011) ? 0 : 1;
endmodule
31
Noticealternatespecification
![Page 32: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/32.jpg)
Abstraction Using the digital abstraction we have been
thinking of the inputs and outputs asTrue or False1 or 0
What are they really?
32
![Page 33: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/33.jpg)
Logic Levels Define discrete voltages to represent 1 and 0 For example, we could define:
0 to be ground or 0 volts1 to be VDD or 5 volts
What about 4.99 volts? Is that a 0 or a 1? What about 3.2 volts?
33
![Page 34: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/34.jpg)
Logic Levels Define a range of voltages to represent 1 and
0 Define different ranges for outputs and inputs
to allow for noise in the system What is noise?
34
![Page 35: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/35.jpg)
What is Noise? Anything that degrades the signal
E.g., resistance, power supply noise, coupling to neighboring wires, etc.
Example: a gate (driver) could output a 5 volt signal but, because of resistance in a long wire, the signal could arrive at the receiver with a degraded value, for example, 4.5 volts
35
Driver ReceiverNoise
5 V 4.5 V
![Page 36: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/36.jpg)
The Static Discipline Given logically valid inputs, every circuit
element must produce logically valid outputs
Discipline ourselves to use limited ranges of voltages to represent discrete values
36
![Page 37: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/37.jpg)
Logic Levels
37
NMH = VOH – VIH
NML = VIL – VOL
![Page 38: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/38.jpg)
DC Transfer Characteristics
VDD
V(A)
V(Y)
VOH VDD
VOL
VIL, VIH
0
A Y
VDD
V(A)
V(Y)
VOH
VDD
VOL
VIL VIH
Unity GainPoints
Slope = 1
0VDD / 2
Ideal Buffer: Real Buffer:
NMH = NML = VDD/2 NMH , NML < VDD/2
38
(See textbook for characteristics of an inverter)
![Page 39: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/39.jpg)
VDD Scaling Chips in the 1970s and 1980s were designed
using VDD = 5 V As technology improved, VDD dropped
Avoid frying tiny transistorsSave power
3.3 V, 2.5 V, 1.8 V, 1.5 V, 1.2 V, 1.0 V, …
39
![Page 40: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/40.jpg)
Logic Family Examples
Logic Family VDD VIL VIH VOL VOH
TTL 5 (4.75 - 5.25) 0.8 2.0 0.4 2.4
CMOS 5 (4.5 - 6) 1.35 3.15 0.33 3.84
LVTTL 3.3 (3 - 3.6) 0.8 2.0 0.4 2.4
LVCMOS 3.3 (3 - 3.6) 0.9 1.8 0.36 2.7
40
![Page 41: COMP541 Combinational Logic - I Montek Singh Mon, Jan 12, 2015.](https://reader038.fdocuments.net/reader038/viewer/2022110209/56649e145503460f94afe7b2/html5/thumbnails/41.jpg)
Next Class Boolean Algebra Synthesis of combinational logic
41