ECE 3060 VLSI and Advanced Digital Design Lecture 12 - - PowerPoint PPT Presentation

ece 3060 vlsi and advanced digital design
SMART_READER_LITE
LIVE PREVIEW

ECE 3060 VLSI and Advanced Digital Design Lecture 12 - - PowerPoint PPT Presentation

ECE 3060 VLSI and Advanced Digital Design Lecture 12 Computer-Aided Heuristic Two-level Logic Minimization Computer-Aided Heuristic Two- level Logic Minimization Heuristic logic minimization Principles Operators on logic covers


slide-1
SLIDE 1

ECE 3060 VLSI and Advanced Digital Design

Lecture 12 Computer-Aided Heuristic Two-level Logic Minimization

slide-2
SLIDE 2

Computer-Aided Heuristic Two- level Logic Minimization

  • Heuristic logic minimization
  • Principles
  • Operators on logic covers
  • Espresso

Disclaimer: lecture notes based on originals by Giovanni De Micheli

slide-3
SLIDE 3

Heuristic minimization

  • Provide irredundant covers with ‘reasonably

small’ cardinality

  • Fast and applicable to many functions
  • Avoid bottlenecks of exact minimization

– Prime generation and storage – Covering

slide-4
SLIDE 4

Heuristic minimization principles

  • Local minimum cover:

– given initial cover – make it prime – make it irredundant

  • Iterative improvement:

– improve on cardinality by ‘modifying’ the implicants

slide-5
SLIDE 5

Heuristic minimization operators

  • Expand:

– make implicants prime – remove covered implicants

  • Reduce:

– reduce size of each implicant while preserving cover

  • Reshape

– modify implicant pairs: enlarge one implicant enabling the reduction of another

  • Irredundant:

– make cover irredundant

slide-6
SLIDE 6

Example

  • n-set : 0000 1 prime implicants : α | 0**0

1 0010 1 β | *0*0 1 0100 1 γ | 01** 1 0110 1 δ | 10** 1 1000 1 ε | 1*01 1 1010 1 ζ | *101 1 0101 1 0111 1 1001 1 1011 1 1101 1

slide-7
SLIDE 7

α β γ ε ζ

slide-8
SLIDE 8

Example Expansion

  • Expand 0000 to α = 0**0

– drop 0100, 0010, 0110 from the cover

  • Expand 1000 to β = *0*0

– drop 1010 from the cover

  • Expand 0101 to γ = 01**

– drop 0111 from the cover

  • Expand 1001 to δ = 10**

– drop 1011 from the cover

  • Expand 1101 to ε = 1*01
  • Cover is {α,β,γ,δ,ε}
slide-9
SLIDE 9
slide-10
SLIDE 10

Example reduction

  • Reduce 0**0 to nothing
  • Reduce β = *0*0 to β = 00*0
  • Reduce ε = 1*01 to ε = 1101
  • Cover is {β,γ,δ,ε}
slide-11
SLIDE 11
slide-12
SLIDE 12

Example reshape

  • Reshape {β,δ} to {β,δ}
  • where δ = 10*1
  • Cover is {β,γ, δ,ε}
slide-13
SLIDE 13
slide-14
SLIDE 14

Example second expansion

  • Expand δ = 10*1 to δ = 10**
  • Expand ε = 1101 to ζ = *101
slide-15
SLIDE 15
slide-16
SLIDE 16

Summary of Example

  • Expansion:

– Cover: {α,β,γ,δ,ε} – prime, redundant, minimal w.r.to single cube containment

  • Reduction:

– α eliminated – β = *0*0 reduced to β = 00*0 – ε = 1*01 reduced to ε = 1101 – Cover: {β,γ,δ,ε}

  • Reshape:

– {β,δ} reshaped to {β,δ} where δ = 10*1

  • Second expansion:

– Cover: {β,γ,δ,ζ} – prime, irredundant (= minimal)

slide-17
SLIDE 17

Expand naive implementation

  • For each implicant

– for each non-* literal (care literal)

8raise it to * (don’t care) if possible

– remove all covered implicants

  • Problems:

– check validity of expansion: 2 ways

8non intersection of expanded implicant with OFF-set

  • requires complementation of ON-set

8expanded implicant covered by union of ON-set and DC-set

  • can be reduced to recursive tautology check

– order of expansions

slide-18
SLIDE 18

Heuristics

  • First expand cubes which are unlikely to be

covered by other cubes

– Selection: choose implicants with least number

  • f literals in common with other implicants

– Example: f = a’b’c’d’ + ab’cd + a’b’c’d choose ab’cd

  • Choose expansions to cover the largest

number of minterms possible (=> prime implicant)

slide-19
SLIDE 19

Reduce Example

  • Expanded cover:

8α **1 8β 00*

  • Select α: cannot be reduced and still cover

the ON-set

  • Select β: reduced to

8β 001

  • Reduced cover:

8α **1 8β 001

slide-20
SLIDE 20

Irredundant Cover

  • Relatively essential set Er

– implicants covering some minterms of the function not covered by other implicants

  • Totally redundant set Rt

– implicants covered by the relatively essentials

  • Partially redundant set Rp

– remaining implicants

slide-21
SLIDE 21

Irredundant cover goal and example

  • Goal: find a subset of Rp that, together with

Er, covers the function

  • Example:

8α 00* 8β *01 8γ 1*1 8δ 11* 8ε *10

  • Er = {α, ε}
  • Rt = {}
  • Rp = {β, γ, δ}
slide-22
SLIDE 22

Example: continued

  • Covering relations:

– β is covered by {α, γ} – γ is covered by {β, δ} – δ is covered by {γ, ε}

  • Minimum cover: γ U Er
slide-23
SLIDE 23

Espresso Algorithm

  • Compute the complement
  • Extract essentials
  • Iterate:

– expand, irredundant, reduce

  • Cost functions:

– cover cardinality Ø1 – weighed sum of cube and literal count Ø2

slide-24
SLIDE 24

Espresso algorithm

Espresso(F,D) { R = complement(F U D); F = expand(F, R); F = irredundant(F, D); E = essentials(F, D); F = F - E; D = D U E; repeat { Ø2 = cost(F); repeat { Ø1 = |F|; F = reduce(F, D); F = expand(F, R); F = irredundant(F, D); } until (|F| z Ø1); F = last_gasp(F, D, R); } until cost(F) z Ø2; F = F U E; D = D - E; F = make_sparse(F, D, R); }

slide-25
SLIDE 25

Summary heuristic minimization

  • Heuristic minimization is iterative
  • Few operators applied to covers
  • Underlying mechanism

– cube operation – recursive paradigm

  • Efficient algorithms
  • Preview: next lecture covers efficient boolean

representations for computer manipulation