Title: COMP541 Combinational Logic - I
1COMP541Combinational Logic - I
- Montek Singh
- Jan 14, 2010
2Today
- Basics of digital logic (review)
- Basic functions
- Boolean algebra
- Gates to implement Boolean functions
3Binary Logic
- Binary variables
- Can be 0 or 1 (T or F, low or high)
- Variables named with single letters in examples
- Really use words when designing circuits
4Logic Gates
- Perform logic functions
- inversion (NOT), AND, OR, NAND, NOR, etc.
- Single-input
- NOT gate, buffer
- Two-input
- AND, OR, XOR, NAND, NOR, XNOR
- Multiple-input
5Single-Input Logic Gates
6Two-Input Logic Gates
7More Two-Input Logic Gates
8Multiple-Input Logic Gates
9NAND is Universal
- Can express any Boolean Function
- Equivalents below
10Using NAND as Invert-OR
- Also reverse inverter diagram for clarity
11NOR Also Universal
12Representation Schematic
13Representation Boolean Algebra
14Representation Truth Table
- 2n rows where n of variables
15Schematic 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
text (code)
16Hardware 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 hdw - Think about C from assembly level description
to very abstract HLL
17Design w/ HDL
- Two leading HDLs
- Verilog
- developed in 1984 by Gateway Design Automation
- became an IEEE standard (1364) in 1995
- VHDL
- Developed in 1981 by the Department of Defense
- Became an IEEE standard (1076) in 1987
- Most (all?) commercial designs built using HDLs
- Well use Verilog
18Uses of HDL
- Simulation
- Defines input values are applied to the circuit
- Outputs checked for correctness
- Millions of dollars saved by debugging in
simulation instead of hardware - Synthesis
- Transforms HDL code into a netlist describing the
hardware (i.e., a list of gates and the wires
connecting them) - IMPORTANT
- When describing circuits using an HDL, its
critical to think of the hardware the code should
produce.
19Verilog Module
- Code always organized in modules
- Represent a logic box
- With inputs and outputs
20Example
- module example(input a, b, c,
- output y)
- HDL CODE HERE
- endmodule
21Levels of Verilog
- Several different levels (or views)
- Structural
- Dataflow
- Conditional
- Behavioral
- Look at first three today
22Example 1
- Output is 1 when input lt 011
23Structural Verilog
- Explicit description of gates and connections
- Textual form of schematic
- Specifying netlist
24Example 1 in Structural Verilog
- module 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)
- nand
- g3(f1, X_n, Y_n),
- g4(f2, X_n, Z_n),
- g5(F, f1, f2)
- endmodule
Can also be input X, Y, Z
25Slight Variation Gates not named
- 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
26Explanation
- 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)
- Later see why naming can be useful
27Gates
- Standard set of gates available
- and, or, not
- nand, nor
- xor, xnor
- buf
28Dataflow Description
module example_1_b(X,Y,Z,F) input X
input Y input Z output F assign F
(X Y) (X Z) endmodule
- Basically a logical expression
- No explicit gates
29Conditional Description
Notice alternate specification
- module example_1_c(input 20 A,
- output F)
- assign F (A gt 3b011) ? 0 1
- endmodule
30Abstraction
- Using the digital abstraction weve been thinking
of the inputs and outputs as - True or False
- 1 or 0
- What are they really?
31Logic Levels
- Define discrete voltages to represent 1 and 0
- For example, we could define
- 0 to be ground or 0 volts
- 1 to be VDD or 5 volts
- What about 4.99 volts? Is that a 0 or a 1?
- What about 3.2 volts?
32Logic 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?
33What 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
34The 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
35Logic Levels
36Noise Margins
NMH VOH VIH NML VIL VOL
37DC Transfer Characteristics
Ideal Buffer
Real Buffer
NMH , NML lt VDD/2
NMH NML VDD/2
38VDD Scaling
- Chips in the 1970s and 1980s were designed
using VDD 5 V - As technology improved, VDD dropped
- Avoid frying tiny transistors
- Save power
- 3.3 V, 2.5 V, 1.8 V, 1.5 V, 1.2 V, 1.0 V,
39Logic 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
40Reading