ESE535: Electronic Design Automation

Slides:



Advertisements
Similar presentations
FUNCTION OPTIMIZATION Switching Function Representations can be Classified in Terms of Levels Number of Levels, k, is Number of Unique Boolean (binary)
Advertisements

Glitches & Hazards.
CSEE 4823 Advanced Logic Design Handout: Lecture #2 1/22/15
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 14: March 19, 2014 Compute 2: Cascades, ALUs, PLAs.
ECE C03 Lecture 31 Lecture 3 Two-Level Logic Minimization Algorithms Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
Logic Synthesis 2 Outline –Two-Level Logic Optimization –ESPRESSO Goal –Understand two-level optimization –Understand ESPRESSO operation.
EDA (CS286.5b) Day 15 Logic Synthesis: Two-Level.
Logic Synthesis Outline –Logic Synthesis Problem –Logic Specification –Two-Level Logic Optimization Goal –Understand logic synthesis problem –Understand.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 4: February 25, 2009 Two-Level Logic-Synthesis.
Gate Logic: Two Level Canonical Forms
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 12: March 2, 2009 Sequential Optimization (FSM Encoding)
Contemporary Logic Design Two-Level Logic © R.H. Katz Transparency No. 4-1 Chapter #2: Two-Level Combinational Logic Section 2.3, Switches and Tools.
ECE Synthesis & Verification 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Exact Two-level Minimization Quine-McCluskey Procedure.
ECE 667 Synthesis and Verification of Digital Systems
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Two-Level Minimization I.
Two Level Logic Optimization. Two-Level Logic Minimization PLA Implementation Ex: F 0 = A + B’C’ F 1 = AC’ + AB F 2 = B’C’ + AB product term AB, AC’,
2-Level Minimization Classic Problem in Switching Theory
Quine-McCluskey (Tabular) Minimization Two step process utilizing tabular listings to: Identify prime implicants (implicant tables) Identify minimal PI.
2-Level Minimization Classic Problem in Switching Theory Tabulation Method Transformed to “Set Covering Problem” “Set Covering Problem” is Intractable.
Two-Level Simplification Approaches Algebraic Simplification: - algorithm/systematic procedure is not always possible - No method for knowing when the.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 19: April 6, 2015 Two-Level Logic-Synthesis.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 24: April 18, 2011 Covering and Retiming.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 10: February 18, 2015 Architecture Synthesis (Provisioning, Allocation)
UM EECS 270 Spring 2011 – Taken from Dr.Karem Sakallah Logic Synthesis: From Specs to Circuits Implementation Styles –Random –Regular Optimization Criteria.
Two Level Networks. Two-Level Networks Slide 2 SOPs A function has, in general many SOPs Functions can be simplified using Boolean algebra Compare the.
2-1 Introduction Gate Logic: Two-Level Simplification Design Example: Two Bit Comparator Block Diagram and Truth Table A 4-Variable K-map for each of the.
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 4: October 5, 2005 Two-Level Logic-Synthesis.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 20: April 8, 2015 Sequential Optimization (FSM Encoding)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 23: April 20, 2015 Static Timing Analysis and Multi-Level Speedup.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 15: March 4, 2002 Two-Level Logic-Synthesis.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 2: January 18, 2012 Universality, Gates, Logic Work Preclass Exercise.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 6: January 26, 2004 Sequential Optimization (FSM Encoding)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 18: March 25, 2013 Two-Level Logic-Synthesis.
ECE 301 – Digital Electronics Minimizing Boolean Expressions using K-maps, The Minimal Cover, and Incompletely Specified Boolean Functions (Lecture #6)
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 17: March 11, 2002 Sequential Optimization (FSM Encoding)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 20: April 4, 2011 Static Timing Analysis and Multi-Level Speedup.
CBSSS 2002: DeHon Universal Programming Organization André DeHon Tuesday, June 18, 2002.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 15: March 13, 2013 High Level Synthesis II Dataflow Graph Sharing.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 25: April 17, 2013 Covering and Retiming.
CS137: Electronic Design Automation
1 Programmable Logic There are other ways to implement a logic function than to hook together discrete 74XX packages or create a custom Integrated Circuit.
CHAPTER 6 Quine-McCluskey Method
ESE534: Computer Organization
Lecture #6 EGR 277 – Digital Logic
CS184a: Computer Architecture (Structure and Organization)
Plotting functions not in canonical form
CS 352 Introduction to Logic Design
CS137: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
Synthesis of Two Level Circuits
ESE535: Electronic Design Automation
ESE534: Computer Organization
EE4271 VLSI Design Logic Synthesis EE 4271 VLSI Design.
ECE 331 – Digital System Design
Digital Logic & Design Dr. Waseem Ikram Lecture 12.
Digital Logic & Design Dr. Waseem Ikram Lecture 13.
ESE535: Electronic Design Automation
CSE 370 – Winter 2002 – Logic minimization - 1
Combinatorial Logic Circuit
Function Minimization Algorithms
ESE535: Electronic Design Automation
Lecture 11 Logistics Last lecture Today HW3 due now
ECB2212-Digital Electronics
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
VLSI CAD Flow: Logic Synthesis, Placement and Routing Lecture 5
ECE 331 – Digital System Design
CS137: Electronic Design Automation
Presentation transcript:

ESE535: Electronic Design Automation Day 17: March 23, 2011 Two-Level Logic-Synthesis Penn ESE535 Spring 2011 -- DeHon

Today Two-Level Logic Optimization Problem Definitions Behavioral (C, MATLAB, …) RTL Gate Netlist Layout Masks Arch. Select Schedule FSM assign Two-level Multilevel opt. Covering Retiming Placement Routing Today Two-Level Logic Optimization Problem Definitions Basic Algorithm: Quine-McCluskey Improvements Penn ESE535 Spring 2011 -- DeHon

Problem Given: Expression in combinational logic Find: Minimum (cost) sum-of-products expression Ex. Y=a*b*c + a*b*/c + a*/b*c Y=a*b + a*c Penn ESE535 Spring 2011 -- DeHon

EDA Use Minimum size PLA, PAL, … Programmable Logic Array Programmable Array Logic Minimum number of gates for two-level implementation Starting point for multi-level optimization Penn ESE535 Spring 2011 -- DeHon

Programmable Logic Arrays (PLAs) Penn ESE535 Spring 2011 -- DeHon

PLA Directly implement flat (two-level) logic O=a*b*c*d + !a*b*!d + b*!c*d Exploit substrate properties allow wired-OR Penn ESE535 Spring 2011 -- DeHon

Wired-or Connect series of inputs to wire Any of the inputs can drive the wire high Penn ESE535 Spring 2011 -- DeHon

Wired-or Obvious Implementation with Transistors Penn ESE535 Spring 2011 -- DeHon

Programmable Wired-or Use some memory function to programmable connect (disconnect) wires to OR Fuse: Penn ESE535 Spring 2011 -- DeHon

Programmable Wired-or Memory configurable PLA model Penn ESE535 Spring 2011 -- DeHon

Diagram Wired-or Penn ESE535 Spring 2011 -- DeHon

Wired-or array Build into array Compute many different or functions from set of inputs Penn ESE535 Spring 2011 -- DeHon

Combined or-arrays to PLA Combine two or (nor) arrays to produce PLA (or-and / and-or array) Penn ESE535 Spring 2011 -- DeHon

PLA Can implement each and on single line in first array Can implement each or on single line in second array Strictly speaking: or in first term and in second, but with both polarities of inputs, can invert so is and-or. Penn ESE535 Spring 2011 -- DeHon

Nanowire PLA Penn ESE535 Spring 2011 -- DeHon

PLA and PAL PAL = Programmable Array Logic PAL has fixed OR plane. Penn ESE535 Spring 2011 -- DeHon

…back to optimization… Penn ESE535 Spring 2011 -- DeHon

EDA Use for 2-level Logic Min. Minimum size PAL, PLA, … Programmable Logic Array Programmable Array Logic Minimum number of gates for two-level implementation Starting point for multi-level optimization Penn ESE535 Spring 2011 -- DeHon

Complexity Set covering problem NP-hard Penn ESE535 Spring 2011 -- DeHon

Terminology (1) Literals -- a, /a, b, /b, …. Minterms -- Qualified, single inputs Minterms -- full set of literals covering one input case in y=a*b+a*c a*b*c a*/b*c Penn ESE535 Spring 2011 -- DeHon

Cost PLA/PAL – to first order costs is: Abstract (mis, sis) number of product terms Abstract (mis, sis) {multilevel,sequential} interactive synthesis number of literals cost(y=a*b+a*/c )=4 General (simple, multi-level) cost(product-term) e.g. nand2=4, nand3=5,nand4=6… Penn ESE535 Spring 2011 -- DeHon

Terminology (2) Cube: product covering one or more minterms Y=a*b+a*c cubes: a*b*c abc a*b ab a*c ac Penn ESE535 Spring 2011 -- DeHon

Terminology (3) Cover: set of cubes sum products {abc, a/bc, ab/c} {ab,ac} Penn ESE535 Spring 2011 -- DeHon

Truth Table Also represent function Specify on-set only a b c y 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 a b c y 1 0 1 1 1 1 0 1 1 1 1 1 Penn ESE535 Spring 2011 -- DeHon

Cube/Logic Specification Canonical order for variables Use {0,1,-} to indicate input appearance in cube 0  inverted abc 111 1  not inverted a/bc 101 -  not present ac 1-1 a b c y 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 - 1 1 1 1 - 1 1 - 1 1 1 - Penn ESE535 Spring 2011 -- DeHon

In General Three sets: Don’t Cares on-set (must be set to one by cover) off-set (must be set to zero by cover) don’t care set (can be zero or one) Don’t Cares allow freedom in covering (reduce cost) arise from cases where value doesn’t matter e.g. outputs in non-existent FSM state data bus value when not driving bus Penn ESE535 Spring 2011 -- DeHon

Multiple Outputs Truth Table: Convert to single-output problem On-set for result a b y x 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 a b y x o 0 0 1 - 1 0 0 - 1 1 0 1 0 - 1 0 1 - 0 1 1 0 0 - 1 1 0 - 0 1 1 1 0 - 1 1 1 - 1 1 001- 00-1 010 - 01- 0 100 - 10- 0 110 - 11- 1 Penn ESE535 Spring 2011 -- DeHon

Multiple Outputs Can reduce to single output case write equations on inputs and each output with onset for relation being true after cover remove literals associated with outputs Penn ESE535 Spring 2011 -- DeHon

Multiple Outputs Could Optimize separately By optimizing together Maximize sharing of cubes/product-terms Penn ESE535 Spring 2011 -- DeHon

Multiple Outputs Consider: Trivial solution has 4 product terms 000 10 001 11 010 00 011 00 100 00 101 11 110 10 111 10 000 10 -01 11 01- 00 100 00 11- 10 Consider: X=/a/b+ab+ac Y=/bc Trivial solution has 4 product terms Penn ESE535 Spring 2011 -- DeHon

Multiple Outputs Consider: Now read off cover: X=/a/b+ab+ac Y=/bc 000 10 001 11 010 00 011 00 100 00 101 11 110 10 111 10 000 10 -01 11 01- 00 100 00 11- 10 Consider: X=/a/b+ab+ac Y=/bc Now read off cover: A=/a/b/c+/bc+ab =/a/b+/bc+ab Only need 3 product terms (versus 4 w/ no sharing) Penn ESE535 Spring 2011 -- DeHon

Prime Implicants Implicant -- cube in on-set (not entirely in don’t-care set) Prime Implicant -- implicant, not contained in any other cube for y=a*b+a*c a*b is a prime implicant a*b*c is not a prime implicant (contained in ab, ac) I.e. largest cube still in on-set (on+dc-sets) Penn ESE535 Spring 2011 -- DeHon

Prime Implicants Minimum cover will be made up of primes fewer products if cover more fewer literals in prime than contained cubes Necessary but not sufficient that minimum cover contain only primes y=ab+ac+b/c y=ac+b/c Number of PI’s can be exponential in input size more than minterms, even! Not all PI’s will be in optimum cover Penn ESE535 Spring 2011 -- DeHon

Restate Goal Goal in terms of PIs Find minimum size set of PIs that cover the on-set. Penn ESE535 Spring 2011 -- DeHon

Essential Prime Implicants Prime Implicant which contains a minterm not covered by any other PI Essential PI must occur in any cover y=ab+ac+b/c ab 11- 110 111 ac 1-1 101 111 b/c -10 110 010 * essential (only 101) * essential (only 010) Penn ESE535 Spring 2011 -- DeHon

Computing Primes Start with minterms merge pairs (distance one apart) for on-set and dc-set merge pairs (distance one apart) for each pair merged, mark source cubes as covered repeat merging for resulting cube set until no more merging possible retain all unmarked cubes which aren’t entirely in dc-set Penn ESE535 Spring 2011 -- DeHon

Compute Prime Example 0 0000 Note this is preclass 3. 5 0101 7 0111 0 0000 5 0101 7 0111 8 1000 9 1001 10 1010 11 1011 14 1110 15 1111 Note this is preclass 3. (in-class assignments, back of preclass sheet; record solutions on board.) Penn ESE535 Spring 2011 -- DeHon

Compute Prime Example 0, 8 -000 0 0000 5, 7 01-1 5 0101 7,15 -111 0, 8 -000 5, 7 01-1 7,15 -111 8, 9 100- 8,10 10-0 9,11 10-1 10,11 101- 10,14 1-10 11,15 1-11 14,15 111- 0 0000 5 0101 7 0111 8 1000 9 1001 10 1010 11 1011 14 1110 15 1111 Penn ESE535 Spring 2011 -- DeHon

Compute Prime Example /b/c/d /abd bcd a/b ac 0 0000 5 0101 7 0111 0 0000 5 0101 7 0111 8 1000 9 1001 10 1010 11 1011 14 1110 15 1111 0, 8 -000 5, 7 01-1 7,15 -111 8, 9 100- 8,10 10-0 9,11 10-1 10,11 101- 10,14 1-10 11,15 1-11 14,15 111- 0, 8 -000 5, 7 01-1 7,15 -111 8, 9 100- 8,10 10-0 9,11 10-1 10,11 101- 10,14 1-10 11,15 1-11 14,15 111- 8, 9,10,11 10-- 10,11,14,15 1-1- Penn ESE535 Spring 2011 -- DeHon

Covering Matrix Minterms  Prime Implicants Goal: minimum cover /b/c/d /abd bcd a/b ac 0000 X 0101 X 0111 X X 1000 X X 1001 X 1010 X X 1011 X X 1110 X 1111 X X Penn ESE535 Spring 2011 -- DeHon

Essential Reduction Must pick essential PI pick and eliminate row and column Which essential? /b/c/d /abd bcd a/b ac 0000 X 0101 X 0111 X X 1000 X X 1001 X 1010 X X 1011 X X 1110 X 1111 X X Penn ESE535 Spring 2011 -- DeHon

Essential Reduction This case: General case: Cover determined by essentials Preclass 3: ac+a/b+/abd+/b/c/d General case: Reduces size of problem Penn ESE535 Spring 2011 -- DeHon

Dominators: Column If a column (PI) covers the same or strictly more than another column can remove dominated column C dominates B B C D E F G H 0101 X X 0111 X X 1000 X X 1010 X X 1110 X X 1111 X X Any others? G dominates H Penn ESE535 Spring 2011 -- DeHon

Dominators: Column If a column (PI) covers the same or strictly more than another column can remove dominated column B C D E F G H 0101 X X 0111 X X 1000 X X 1010 X X 1110 X X 1111 X X C D E F G 0101 X 0111 X X 1000 X 1010 X X 1110 X X 1111 X X Penn ESE535 Spring 2011 -- DeHon

New Essentials Dominance reduction may yield new Essential PIs What’s essential? C,G now essential C D E F G 0101 X 0111 X X 1000 X 1010 X X 1110 X X 1111 X X C D E F G 1110 X X 1111 X X What now? E dominates D and F Cover = {C,E,G} Penn ESE535 Spring 2011 -- DeHon

Dominators: Row If a row has the same (or strictly more) PIs than another row, the larger row dominantes we can remove the dominating row (NOTE OPPOSITE OF COLUMN CASE) C D E F G 0101 X 0111 X X 1000 X 1010 X X 1110 X X 1111 X X 0111 dominates 0101 remove 0111 Others? 1010 dominates 1000 remove 1010 Penn ESE535 Spring 2011 -- DeHon

Cyclic Core After applying reductions essential column dominators row dominators May still have a non-trivial covering matrix How do we move forward from here? Penn ESE535 Spring 2011 -- DeHon

Example A B C D E F G H 0000 X X 0001 X X 0101 X X 0111 X X 1000 X X Penn ESE535 Spring 2011 -- DeHon

Cyclic Core Cannot select (e.g. essential) or exclude (e.g. dominated) a PI definitively. Make a guess A in cover A not in cover Proceed from there Penn ESE535 Spring 2011 -- DeHon

Example A in Cover: What now? A B C D E F G H 0000 X X 0001 X X Penn ESE535 Spring 2011 -- DeHon

Example A in Cover: A B C D E F G H 0000 X X 0001 X X 0101 X X C dominates B G dominates H Penn ESE535 Spring 2011 -- DeHon

Example A not in Cover: A B C D E F G H What now? 0000 X X 0001 X X Penn ESE535 Spring 2011 -- DeHon

Basic Two-Level Minimization (espresso-exact) Generate Prime Implicants Reduce (essential, dominators) If not done, pick a cube branch (back to reduce) on selected/not i.e. search tree … branch and bound Save smallest Penn ESE535 Spring 2011 -- DeHon

Branching Search A not in cover A in cover A and B not in cover {A,/B} {/A,/B,/C} {A,B,C} Penn ESE535 Spring 2011 -- DeHon

Branching Search w/ Implications A in cover A not in cover /B B {A,/B, C} {/A,B,/C} Implications Prune Tree (like BCP in SAT) Only exponential in decision where must branch Penn ESE535 Spring 2011 -- DeHon

Optimization Summarize Minterms (signature cubes) rows represent collection of minterms with same primes Avoid generating full set of PIs pre-combining dominators during generation Branch-and-bound pruning get lower bound on remaining cost of a cover by computing independent set of primes (not necessarily maximal, that would be NP-hard) Penn ESE535 Spring 2011 -- DeHon

Heuristic Don’t backtrack when select prime for inclusion/exclusion pick cover large set of minterms/signatures weight to select “hard” to cover signatures Generate reduced set of PIs Iterative improvement Penn ESE535 Spring 2011 -- DeHon

Canonical Form Can start with any form of logical expression Get unique truth-table/minterms Problem not sensitive to input statement compare covering (decomposition) compare sequential programming languages Cost: potentially exponential explosion in minterms/PIs Penn ESE535 Spring 2011 -- DeHon

Summary Formulate as covering problem Solution space restricted to PIs Essentials must be in solution Use dominators to further reduce space Then branching/pruning to explore rest of PIs Ways to reduce work group minterms/PIs together early mostly fall into this general scheme Penn ESE535 Spring 2011 -- DeHon

Admin Reading for Monday online (web) Assign5a graded Assign5b due Monday Penn ESE535 Spring 2011 -- DeHon

Big Ideas Canonical Form Technique: eliminate bias of input specification Technique: branch-and-bound pruning search – exploit structure Dominators Penn ESE535 Spring 2011 -- DeHon