Logic Synthesis - PowerPoint PPT Presentation

About This Presentation
Title:

Logic Synthesis

Description:

Prime and Irredundant Covers. Example. f = abc bd cd is prime and irredundant. ... matrix notation to represent a cover: Example: F = ac cd = a b c d a b ... – PowerPoint PPT presentation

Number of Views:66
Avg rating:3.0/5.0
Slides: 62
Provided by: andreasku
Category:
Tags: logic | synthesis

less

Transcript and Presenter's Notes

Title: Logic Synthesis


1
Logic Synthesis
  • Sum of Products

2
Representation of Boolean Functions
  • Sum of Products
  • A function can be represented by a sum of cubes
    (products)
  • f ab ac bc
  • Since each cube is a product of literals, this
    is a sum of products (SOP) representation
  • A SOP can be thought of as a set of cubes F
  • F ab, ac, bc
  • A set of cubes that represents f is called a
    cover of f.
  • F1ab, ac, bc and F2abc,abc,abc,abc,bc
  • are covers of
  • f ab ac bc.

3
SOP
ac
bc
onset minterm Note that each onset minterm
is covered by at least one of the cubes! None
of the offset minterms is covered
ab
c
b
a
  • Covers (SOPs) can efficiently represent many
    practical logic functions (i.e. for many, there
    exist small covers).
  • Two-level minimization seeks the minimum size
    cover (least number of cubes)

4
Irredundant Cubes
  • Let F c1, c2, , ck be a cover for f, i.e.
  • f ?ik1 ci
  • A cube ci? F is irredundant if F\ci ? f
  • Example f ab ac bc

ac
bc
bc
Not covered
ab
ac
c
b
F\ab ? f
a
5
Prime Cubes
  • A literal j of cube ci ? F ( f ) is prime if
  • (F \ ci ) ? ci ? f
  • where ci is ci with literal j of ci deleted.
  • A cube of F is prime if all its literals are
    prime.
  • Example
  • f ab ac bc
  • ci ab ci a (literal b deleted)
  • F \ ci ? ci a ac bc

Fac bc a F \ci ? ci
bc
a
ac
c
b
Not equal to f since offset vertex is covered
a
6
Prime and Irredundant Covers
  • Definition 1 A cover is prime (irredundant) if
    all its cubes are prime (irredundant).
  • Definition 2 A prime of f is essential (essential
    prime) if there is a minterm (essential vertex)
    in that prime that is in no other prime.
  • Definition 3 Two cubes are orthogonal if they do
    not have any minterm in common
  • E.g. c1 ab c2 bc are orthogonal
  • c1 ab c2 bc are not orthogonal

7
Prime and Irredundant Covers
  • Example
  • f abc bd cd is prime and irredundant.
  • abc is essential since abcd?abc, but not in bd
    or cd or ad
  • Why is abcd not an essential vertex of abc?
  • What is an essential vertex of abc?
  • What other cube is essential? What prime is not
    essential?

abc
bd
c
b
d
cd
a
8
PLAs - Multiple Output Functions
  • A PLA is a function f Bn ? Bm represented in
    SOP form

n3, m3
Personality Matrix
a
a
b
b
c
c
abc f1f2f3 10- 1 - - -11 1 - - 0-0 - 1 - 111
- 1 1 00- - - 1
f2
f3
f1
9
PLAs (cont.)
  • Each distinct cube appears just once in the
    AND-plane, and can be shared by (multiple)
    outputs in the OR-plane, e.g., cube (abc).
  • Extensions from single output to multiple output
    minimization theory are straightforward.
  • Multi-level logic can be viewed mathematically as
    a connection of single output functions.

10
Shannon (Boole) Cofactors
  • Let f Bn ? B be a Boolean function, and x
    (x1, x2, , xn) the variables in the support of
    f.
  • The cofactor fa of f by a literal axi or axi
    is
  • fxi (x1, x2, , xn) f (x1, , xi-1, 1, xi1,,
    xn)
  • fxi (x1, x2, , xn) f (x1, , xi-1, 0, xi1,,
    xn)
  • The computation of the cofactor is a
    fundamental operation in Boolean reasoning!!!!
  • Example

f abc abc
fa bc
c
c
b
b
a
a
11
Generalized Cofactor
  • The generalized cofactor fC of f by a cube C is f
    with the fixed values indicated by the literals
    of C, e.g. if Cxi xj, then xi 1, and xj 0.
  • if C x1 x4 x6
  • fC is just the function f restricted to the
    subspace
  • where x1 x6 1 and x4 0.
  • As a function, fC does not depend on x1,x4 or x6
    anymore
  • (However, we still consider fC as a
    function of all n variables, it just happens to
    be independent of x1,x4 and x6).
  • x1f ? fx1
  • Example f ac ac , af ac, fac

12
Fundamental Theorem
  • Theorem Let c be a cube and f a function. Then c
    ? f ? fc ? 1.
  • Proof. We use the fact that xfx xf, and fx is
    independent of x.
  • If Suppose fc ? 1. Then cffccc. Thus, c ? f.

f
c
13
Proof (cont.)
  • Only if. Assume c ? f
  • Then c ? cf cfc. But fc is independent of
    literals i ? c.
  • If fc ?1, then ? m ? Bn, fc(m)0.
  • We will construct a m from m and c in the
    following manner
  • mimi, if xi?c and xi?c,
  • mi1, if xi ? c,
  • mi0, if xi ? c.
  • i.e. we made the literals of m agree with c,
    i.e. m ? c Þ c(m)1
  • Also, fc is independent of literals xi,xi ? c Þ
    fc(m) fc(m) 0
  • Þ fc(m) c(m) 0
  • contradicting c ? cfc.

Cxz
m 000 m 101
m
m
14
Cofactor of Covers
  • Definition The cofactor of a cover F is the sum
    of the cofactors of each of the cubes of F.
  • Note If Fc1, c2,, ck is a cover of f, then
    Fc (c1)c, (c2)c,, (ck)c is a cover of fc.
  • Suppose F(x) is a cover of f(x), i.e.
  • Then for 1?j?n,
  • is a cover of fxj(x)

15
Cofactor of Cubes
  • Definition The cofactor Cxj of a cube C with
    respect to a literal xj is
  • C if xj and xj do not appear in C
  • C\xj if xj appears positively in C, i.e. xj?C
  • ? if xj appears negatively in C, i.e. xj?C
  • Example
  • C x1 x4 x6,
  • Cx2 C (x2 and x2 do not appear in C )
  • Cx1 x4 x6 (x1 appears positively in C)
  • Cx4 ? (x4 appears negatively in C)

16
Cofactor of Cubes (cont.)
  • Example
  • F abc bd cd
  • Fb ac cd
  • (Just drop b everywhere and throw away cubes
    containing literal b)

17
Shannon Expansion
  • f Bn ? B
  • Shannon Expansion
  • Theorem F is a cover of f. Then
  • We say that f (F) is expanded about xi.
  • xi is called the splitting variable.

18
Shannon Expansion (cont.)
  • Example
  • Cube bc got split into two cubes

ac
bc
ab
c
c
b
b
a
a
19
List of Cubes (Cover Matrix)
  • We often use a matrix notation to represent a
    cover
  • Example F ac cd
  • a b c d a b c d
  • ac? 1 2 1 2 or 1 - 1 -
  • cd? 2 2 0 1 - - 0 1
  • Each row represents a cube
  • 1 means that the positive literal appears in the
    cube
  • 0 means that the negative literal appears in the
    cube
  • The 2 (or -) here represents that the variable
    does not appear in the cube. It implicitly
    represents both 0 and 1 values.

20
Operations on Lists of Cubes
  • AND operation
  • take two lists of cubes
  • computes pair-wise AND between individual cubes
    and put result on new list
  • represent cubes as pairs of computer words
  • set operations are implemented as bit-vector
    operations

Algorithm AND(List_of_Cubes C1,List_of_Cubes C2)
C Æ foreach c1 Î C1 foreach c2 Î C2
c c1 Ç c2 C C È c
return C
21
Operations on Lists of Cubes
  • OR operation
  • take two lists of cubes
  • computes union of both lists
  • Naive implementation
  • On-the-fly optimizations
  • remove cubes that are completely covered by other
    cubes
  • complexity is O(m2) m is length of list
  • conjoin adjacent cubes
  • remove redundant cubes?
  • complexity is O(2n) n is number of variables
  • too expensive for non-orthogonal lists of cubes

Algorithm OR(List_of_Cubes C1, List_of_Cubes C2)
return C1 È C2
22
Operations on Lists of Cubes
  • Simple trick
  • keep cubes in lists orthogonal
  • check for redundancy becomes O(m2)
  • but lists become significantly larger (worst
    case exponential)

Example
01-0 01-0 0-1-
1-01 1-01 1-11 001-
0111 1-11
OR
23
Operations on Lists of Cubes
  • Adding cubes to orthogonal list
  • How can the above procedure be further improved?
  • What about the AND operation, does it gain from
    orthogonal cube lists?

Algorithm ADD_CUBE(List_of_Cubes C, Cube c)
if(C Æ) return c c TOP(C) Cres c-c
/ chopping off minterms / foreach
cres ÎCres C ADD_CUBE(C\c,cres) È
c return C
24
Operation on Lists of Cubes
  • Naive implementation of COMPLEMENT operation
  • apply DeMorgans law to SOP
  • complement each cube and use AND operation
  • Example
  • Naive implementation of TAUTOLOGY check
  • complement function using the COMPLEMENT operator
    and check for emptiness
  • We will show that we can do better than that!!

Input non-orth.
orthogonal 01-10 gt 1---- gt 1----
-0--- 00--- ---0- 01-0-
----1 01-11
25
A Possible Solution?
  • Let A be an orthogonal cover matrix. Let all
    cubes of A be pair-wise distinguished by at least
    two literals (this can be achieved by an
    on-the-fly resolution of cube pairs that are
    distinguished by only literal).
  • Does the following conjecture hold?
  • A ? 1 Û A has a row of all -s ?
  • This would dramatically simplify the tautology
    check!!!

26
Generic Tautology Check
Algorithm CHECK_TAUTOLOGY(List_of_Cubes C)
if(C Æ) return FALSE if(C
-...-)return TRUE // cube with all - xi
SELECT_VARIABLE(C) C0 COFACTOR(C,Xi)
if(CHECK_TAUTOLOGY(C0) FALSE) print xi
0 return FALSE C1 COFACTOR(C,Xi)
if(CHECK_TAUTOLOGY(C1) FALSE) print xi
1 return FALSE return TRUE
27
Improvements
  • Variable ordering
  • pick variable that minimizes the two sub-cases
    (-s get replicated into both cases)
  • Quick decision at leaf
  • return TRUE if C contains at least one complete
    - cube among others (case 1)
  • return FALSE if number of minterms in onset is lt
    2n (case 2)
  • return FALSE if C contains same literal in every
    cube (case 3)

28

Example
-1-0 --10 1-11 0---
x1
x1
-1-0 --10 ----
tautology(case 1)
-1-0 --10 --11
x2
x2
--10 --11
No tautology(case 3)
---0 --10 --11
x3
No tautology(case 3)
---0
x3
x4
----
tautology(case 1)
---0 ---1
x4
tautology(case 1)
----
x4
29
Some Special Functions
  • Definition A function f Bn ? B is symmetric
    with respect to variables xi and xj iff
  • f(x1,,xi,,xj,,xn) f(x1,,xj,,xi,,xn)
  • Definition A function f Bn ? B is totally
    symmetric iff any permutation of the
    variables in f does not change the function

Symmetry can be exploited in searching the binary
decision tree because - That
means we can skip one of four sub-cases -
used in automatic variable ordering for BDDs
30
Some Special Functions
  • Definition A function f Bn ? B is positive
    unate in variable xi iff
  • This is equivalent to monotone increasing in xi
  • for all min-term pairs (m-, m) where
  • For example, m-31001, m31011(where i3)

31
Some Special Functions
  • Similarly for negative unate
  • monotone decreasing
  • A function is unate in xi if it is either
    positive unate or negative unate in xi.
  • Definition A function is unate if it is unate in
    each variable.
  • Definition A cover F is positive unate in xi iff
    ?xi ? cj for all cubes cj?F

32
Example
positive unate in a,b negative unate in c
m
c
f(m-)1 ? f(m)0
b
m-
a
33
The Unate Recursive Paradigm
  • Key pruning technique is based on exploiting the
    properties of unate functions
  • based on the fact that unate leaf cases can be
    solved efficiently
  • New case splitting heuristic
  • splitting variable is chosen so that the
    functions at lower nodes of the recursion tree
    become unate

34
The Unate Recursive Paradigm
  • Unate covers F have many extraordinary
    properties
  • If a cover F is minimal with respect to
    single-cube containment, all of its cubes are
    essential primes.
  • In this case F is the unique minimum cube
    representation of its logic function.
  • A unate cover represents the tautology iff it
    contains a cube with no literals, i.e. a single
    tautologous cube.
  • This type of implicit enumeration applies to many
    sub-problems (prime generation, reduction,
    complementation, etc.). Hence, we refer to it as
    the Unate Recursive Paradigm.

35
Unate Recursive Paradigm
  • Create cofactoring tree stopping at unate covers
  • choose, at each node, the most binate variable
    for splitting
  • recure till no binate variable left (unate leaf)
  • Operate on the unate cover at each leaf to
    obtain the result for that leaf. Return the
    result
  • At each non-leaf node, merge (appropriately) the
    results of the two children.
  • Main idea Operation on unate leaf is
    computationally less complex
  • Operations complement, simplify,tautology,generat
    e-primes,...

a
b
merge
c
36
The Binate Select Heuristic
  • Tautology and other programs based on the unate
    recursive paradigm use a heuristic called
    BINATE_SELECT to choose the splitting variable in
    recursive Shannon expansion. The idea is for a
    given cover F, choose the variable which occurs,
    both positively and negatively, most often in the
    cubes of F.

37
The Binate Select Heuristic
  • Example Unate and non-unate covers
  • a b c d
  • G accd 1 - 1 -
  • - - 1 0
  • a b c d
  • F accdbcd 1 - 1 -
  • - - 0 1
  • - 1 1 0
  • gt Choose c for splitting!
  • The binate variables of a cover are those with
    both 1s and 0s in the corresponding column.
  • In the unate recursive paradigm, the
    BINATE_SELECT heuristic chooses a (most) binate
    variable for splitting, which is thus eliminated
    from the sub-covers.

is unate
is not unate
38
Example
c
1
0
1 - 1 - F - - 0 1 - 1 1 0
1--- -1-0 unate
FC
F??C
---1 unate
c
1
0
1 - 1 - 0 F - - 0 1 - - 1 1 0 1
1---0 -1-01
---1- unate
e
0
1
-1-0- unate
1---- unate
39
Two Useful Theorems
  • Theorem
  • Theorem Let A be a unate cover matrix.
  • Then A?1 if and only if A has a row of all
    -s.
  • Proof
  • If. A row of all -s is the tautology cube.
  • Only if. Assume no row of all -s. Without loss
    of generality, suppose function is positive
    unate. Then each row has at least one 1 in it.
    Consider the point (0,0,,0). This is not
    contained in any row of A. Hence A?1.

40
Unate Reduction
  • Let F(x) be a cover. Let (a,x) be a partition of
    the variables x, and let
  • where
  • the columns of A correspond to variables a of x
  • T is a matrix of all -s.
  • Theorem Assume A ?1. Then F?1 ? F?1

41
Example
We pick for the partitioning unate variables
because it is easy to decide that A¹1
42
Unate Reduction
A1
B1
  • Result Only have to look at D1 to test if this
    is a tautology.
  • Note A1, A2 has no row of all -s.
  • Hence is a unate cover.
  • Hence (A1, A2)?1

C2
C1
D1
B2
A2
43
Proof
A?1 T-s
  • Theorem Assume A ?1. Then F?1?F?1
  • Proof
  • if Assume F?1. Then we can replace F by all
    -s. Then last row of F becomes a row of all
    -s, so tautology.

44
Proof (contd)
  • Only if
  • Assume F ?1. Then there is a minterm m2 such
    that F(m2)0, i.e. m2?cube of F. Similarly, m1
    exists where A(m1)0, i.e. m1?cube of A. Now the
    minterm (m1,m2) in the full space satisfies
    F(m1,m2)0 since m1m2 ?AX and m1m2?TF.
  • (a, x) is any row of first part
  • a(m1) x(m2)0 x(m2)0
  • (t,f) is any row of the last part
  • t(m1) f(m2)t(m1) 0 0
  • So m1m2 is not in any cube of F.

45
Improved Tautology Check
Algorithm CHECK_TAUTOLOGY(List_of_Cubes C)
if(C Æ) return FALSE if(C
-...-)return TRUE // cube with all - C
UNATE_REDUCTION(C) xi BINATE_SELECT(C) C0
COFACTOR(C,xi) if(CHECK_TAUTOLOGY(C0)
FALSE) return FALSE C1
COFACTOR(C,xi) if(CHECK_TAUTOLOGY(C1) FALSE)
return FALSE return TRUE
46

Previous Example
Unate reduction
-1-0 --10 1-11 0---
0---
No tautology(case 2)
x1
-1-0 --10 ----
x1
tautology(case 1)
-1-0 --10 --11
x2
--10 --11
x2
No tautology(case 3)
---0 --10 --11
x3
No tautology(case 3)
---0
x3
----
x4
tautology(case 1)
---0 ---1
x4
tautology(case 1)
----
x4
47
Recursive Complement Operation
  • We have shown how tautology check (SAT check) can
    be implemented recursively using the Binary
    Decision Tree
  • Similarly, we can implement Boolean operations
    recursively
  • Example COMPLEMENT operation

Theorem
Proof
48
COMPLEMENT Operation
Algorithm COMPLEMENT(List_of_Cubes C) if(C
contains single cube c) Cres
complement_cube(c) // generate one cube per
return Cres // literal l in c with
l else xi SELECT_VARIABLE(C)
C0 COMPLEMENT(COFACTOR(C,xi)) Ù xi C1
COMPLEMENT(COFACTOR(C,xi)) Ù xi return
OR(C0,C1)
49
Complement of a Unate Cover
  • Complement of a unate cover can be computed more
    efficiently
  • Idea
  • variables appear only in one polarity on the
    original cover
  • (ab bc ac) (ab)(bc)(ac)
  • when multiplied out, a number of products are
    redundant
  • aba abc aca acc bba bbc bca bcc
  • ab ac bc
  • we just need to look at the combinations for
    which the variables cover all original cubes
  • this works independent of the polarity of the
    variables because of symmetry to the (1,1,1,,1)
    case

50
Complement on a Unate Cover
  • Map cube matrix F into Boolean matrix B
  • convert 0,1 to 1 (literal is present)
  • - to 0 (literal is not
    present)

51
Complement of a Unate Cover
  • Find all minimal column covers of B.
  • A column cover is a set of columns J such that
    for each row i, ?j?J such that Bij 1
  • Example 1,4 is a minimal column cover for
  • All rows covered by at least one 1.

52
Complement of a Unate Cover
  • For each minimal column cover create a cube with
    opposite column literal from F.
  • Example 1,4 ad is a cube of f

53
Complement of a Unate Cover
  • The set of all minimal column covers cover of
    ?f.
  • Example
  • (1,4), (2,3), (2,5), (4,5) is the set of all
    minimal covers. This translates into

54
Unate Complement Theorem
  • Theorem
  • Let F be a unate cover of f. The set of cubes
    associated with the minimal column covers of BF
    is a cube cover of?f.
  • Proof
  • We first show that any such cube c generated is
    in the offset of f, by showing that the cube c is
    orthogonal with any cube of F.
  • Note, the literals of c are the complemented
    literals of F.
  • Since F is a unate cover, the literals of F are
    just the union of the literals of each cube of
    F).
  • For each cube mi?F, ?j?J such that Bij1.
  • J is the column cover associated with c.
  • Thus, (mi)jxj? cj ?xj and (mi)j ?xj ? cjxj.
    Thus mic ?. Thus c ? ?f .

55
Unate Complement Theorem
  • Proof (cont.)
  • We now show that any minterm m??f is contained
    in some cube c generated
  • First m must be orthogonal to each cube of F.
  • For each row of F, there is at least one literal
    of m that conflicts with that row.
  • The union of all columns (literals) where this
    happens is a column cover of BF
  • Hence this union contains at least one minimal
    cover and the associated cube contains m.

56
Unate Covering Problem
  • Definition
  • The problem, given a Boolean matrix B, find a
    minimum column cover, is called a unate covering
    problem.
  • The unate complementation is one application that
    is based on the unate covering problem.
  • Unate Covering Problem
  • Given B, Bij?0,1 find x, xi?0,1 such that
  • Bx?1 and ?j xj is minimum.
  • Sometimes we want to minimize
  • ?j cjxj
  • where cj is a cost associated with column j.

57
Incompletely Specified Functions
  • F (f, d, r) Bn ? 0, 1,
  • where represents dont care.
  • f onset function - f(x)1 ? F(x)1
  • r offset function - r(x)1 ? F(x)0
  • d dont care function - d(x)1 ? F(x)
  • (f,d,r) forms a partition of Bn. i.e.
  • f d r Bn
  • fd fr dr ? (pairwise disjoint)

58
Incompletely Specified Functions
  • A completely specified function g is a cover for
    F(f,d,r) if
  • f? g ? fd
  • (Thus gr ?). Thus, if x?d (i.e. d(x)1), then
    g(x) can be 0 or 1, but if x?f, then g(x)1 and
    if x?r, then g(x)0.
  • (We dont care which value g has at x?d)

59
Primes of Incompl. Spec. Functions
  • Definition A cube c is prime of F(f,d,r) if
    c?fd (an implicant of fd), and no other
    implicant (of fd) contains c, i.e.
  • (i.e. it is simply a prime of fd)
  • Definition Cube cj of cover Fci is redundant
    if f? F\cj.
  • Otherwise it is irredundant.
  • Note that c?fd ? cr ?

60
ExampleLogic Minimization
  • Consider F(a,b,c)(f,d,r), where fabc, abc,
    abc and d abc, abc, and the sequence of
    covers illustrated below

F1 abc abc abc
Expand abc?a
on
off
F2 aabc abc
Dont care
abc is redundant a is prime F3 aabc Expand
abc ? bc
F4 abc
61
Checking for Prime and Irredundant
  • Let Gci be a cover of F(f,d,r). Let D be a
    cover for d.
  • ci?G is redundant iff
  • ci ?(G\ci)?D ? Gi (1)
  • (Since ci? Gi and f?G?fd then ci ? cifcid
  • and cif? G\ci. Thus f? G\ci.)
  • A literal l ? ci is prime if (ci\ l ) ( (ci)l
    ) is not an implicant of F.
  • A cube ci is a prime of F iff all literals l ? ci
    are prime.
  • Literal l ? ci is not prime ? (ci)l ? fd (2)
  • Note Both tests (1) and (2) can be checked by
    tautology
  • (Gi)ci ? 1 (implies ci redundant)
  • (F?D)(ci)l ? 1 (implies l not prime)
Write a Comment
User Comments (0)
About PowerShow.com