COMP541 Combinational Logic - II Montek Singh Jan 16, 2019
Today Digital Circuits (review) Basics of Boolean Algebra (review) Identities and Simplification Basics of Logic Implementation Minterms and maxterms Going from truth table to logic implementation
Digital Circuits Digital Circuit = network that processes binary variables one or more binary inputs one or more binary outputs inputs and outputs are called “terminals” a functional specification relationship between inputs and outputs a timing specification describes delay from inputs changing to outputs responding
Digital Circuits Inside the black box Example: subcircuits or components or elements connected by wires wires and terminals often called “nodes” each node has a binary value each node is an input, an output, or “internal” Example: E1, E2, E3 are elements A, B, C are input nodes Y, Z are output nodes n1 is an internal node
Types of circuits Two types: with memory and without Combinational Circuit output depends only on the current values of the inputs provided enough time is given for output to respond output does not depend on past inputs or outputs called “memory-less” example: AND gate Sequential Circuit anything not combinational is sequential output depends on not only current inputs, but also past behavior previous inputs and/or outputs affect behavior has “memory”, or is “stateful” example: counter
Combinational Circuits: Examples OR Adder Multi-output example Slash notation
Combinational Circuits Theorem: A circuit is combinational if: every element is itself combinational every node is either designated as an input, or connects to exactly one output terminal of an element outputs of two elements are never “shorted together” ensures that each node has a unique/unambiguous value contains no cyclic paths every path through the circuit visits each node at most once no “feedback” Conditions above ensure that output is only a function of inputs Proof: By induction Let’s do it interactively
Combinational Circuits: Examples Which meet the conditions for combinational logic?
Identities in Boolean Algebra Use identities to manipulate functions Often used to simply a Boolean expression e.g., so can be implemented using fewer gates
Table of Identities
Duals Left and right columns are duals Replace ANDs and ORs, 0s and 1s
Single Variable Identities
Commutativity Operation is independent of order of variables
Associativity Independent of order in which we group So can also be simply written as: X+Y+Z, and XYZ
Distributivity
Substitution Can substitute arbitrarily large algebraic expressions for the variables Distribute an operation over the entire expression Example: X + YZ = (X+Y)(X+Z) Substitute ABC for X ABC + YZ = (ABC + Y)(ABC + Z)
DeMorgan’s Theorem Used a lot NOR invert, then AND NAND invert, then OR
Truth Tables for DeMorgan’s
DeMorgan’s Thm.: “Bubble Pushing” imagine the bubble at the output is being pushed towards the inputs it becomes a bubble at every input, and the shape of the gate changes from AND to OR, and vice versa
Algebraic/Boolean Manipulation Apply algebraic and Boolean identities to simplify expression example:
Simplification Example Apply Apply Apply
Fewer Gates
Consensus Theorem The third term is redundant Can just drop third term (consensus term) Proof summary (for first version): For third term to be true, Y & Z both must be 1 Then one of the first two terms is already 1! Exercise: Provide a similar proof for the 2nd version
Next Lecture Next Class: More on combinational logic Commonly-used combinational building blocks