1 ECE 667 - Synthesis & Verification - L ecture 9a ECE 697B (667) ECE 697B (667) Spring 2006 Spring 2006 Synthesis and Verification of Digital Circuits Boolean Functions and their Representations Slides adopted (with permission) from A. Kuehlmann, UC Berkeley 2003
22
Embed
ECE 667 - Synthesis & Verification - Lecture 9a 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Circuits.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Cofactor and QuantificationCofactor and Quantification
Given a Boolean function:
f : Bn B, with the input variables (x1,x2,…,xi,…,xn)
• Positive Cofactor of function f w.r.t variable xi
fxi = {x | f(x1,x2,…,1,…,xn)=1}
• Negative Cofactor of f w.r.t variable xi
fxi’ = {x | f(x1,x2,…,0,…,xn)=1}
• Existential Quantification of function f w.r.t variable xi,
xi f = {x | f(x1,x2,…,0,…,xn)=1 f(x1,x2,…,1,…,xn)=1}
• Universal Quantification of function f w.r.t variable xi,
xi f = {x | f(x1,x2,…,0,…,xn)=1 f(x1,x2,…,1,…,xn)=1}
ECE 667 - Synthesis & Verification - Lecture 9a 8
Representations of Boolean FunctionsRepresentations of Boolean Functions
• We need representations for Boolean Functions for two reasons:– to represent and manipulate the actual circuit we are “synthesizing”– as mechanism to do efficient Boolean reasoning
• Forms to represent Boolean Functions– Truth table– List of cubes: Sum of Products, Disjunctive Normal Form (DNF) – List of conjuncts: Product of Sums, Conjunctive Normal Form (CNF)– Boolean formula– Binary Decision Tree, Binary Decision Diagram– Circuit (network of Boolean primitives)
• Canonicity – which forms are canonical?
ECE 667 - Synthesis & Verification - Lecture 9a 9
Truth TableTruth Table
• Truth table (Function Table):The truth table of a function f : Bn B is a tabulation of
its values at each of the 2n vertices of Bn. (all mintems)
• Vertices can have arbitrary number of inputs and outputs– typically single-output functions are used
• Vertices can represent any Boolean function stored in different
ways, such as:– other circuits (hierarchical representation)– truth tables or cube representation – Boolean expressions read from a library description– BDDs, AIGs, etc.
• Data structure allow very general mechanisms for insertion and
deletion of vertices, pins (connections to vertices), and nets
• Base data structure uses two-input AND function for vertices and INVERTER attributes at the edges (individual bit)– use De’Morgan’s law to convert OR operation etc.
• Hash table to identify and reuse structurally isomorphic circuits