EDA (CS286.5b) Day 17 Sequential Logic Synthesis (FSM Optimization)

Slides:



Advertisements
Similar presentations
Escola Politécnica da Universidade de São Paulo GSEIS - LME Logic Synthesis in IC Design and Associated Tools Sequential Synthesis Wang Jiang Chau Grupo.
Advertisements

Synthesis For Finite State Machines. FSM (Finite State Machine) Optimization State tables State minimization State assignment Combinational logic optimization.
FUNCTION OPTIMIZATION Switching Function Representations can be Classified in Terms of Levels Number of Levels, k, is Number of Unique Boolean (binary)
CSEE 4823 Advanced Logic Design Handout: Lecture #2 1/22/15
No. 9-1 Chapter #9: Finite State Machine Optimization.
CS 151 Digital Systems Design Lecture 25 State Reduction and Assignment.
ECE 331 – Digital System Design
Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 13: March 4, 2009 FSM Equivalence Checking.
Finite State Machine State Assignment for Area and Power Minimization Aiman H. El-Maleh, Sadiq M. Sait and Faisal N. Khan Department of Computer Engineering.
ECE C03 Lecture 111 Lecture 11 Finite State Machine Optimization Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
EDA (CS286.5b) Day 15 Logic Synthesis: Two-Level.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 4: February 25, 2009 Two-Level Logic-Synthesis.
ENEE 6441 On Quine-McCluskey Method > Goal: find a minimum SOP form > Why We Need to Find all PIs? f(w,x,y,z) = x’y’ +wxy+x’yz’+wy’z = x’y’+x’z’+wxy+wy’z.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 7: February 11, 2008 Static Timing Analysis and Multi-Level Speedup.
EDA (CS286.5b) Day 3 Clustering (LUT Map and Delay) N.B. no lecture Thursday.
Spring 2002EECS150 - Lec15-seq2 Page 1 EECS150 - Digital Design Lecture 15 - Sequential Circuits II (Finite State Machines revisited) March 14, 2002 John.
Gate Logic: Two Level Canonical Forms
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 12: March 2, 2009 Sequential Optimization (FSM Encoding)
COE 561 Digital System Design & Synthesis Sequential Logic Synthesis Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum.
Engineering Models and Circuit Realization of Quantum State Machines.
EDA (CS286.5b) Day 19 Covering and Retiming. “Final” Like Assignment #1 –longer –more breadth –focus since assignment #2 –…but ideas are cummulative –open.
ECE Synthesis & Verification 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Exact Two-level Minimization Quine-McCluskey Procedure.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 15: March 18, 2009 Static Timing Analysis and Multi-Level Speedup.
ENGIN112 L25: State Reduction and Assignment October 31, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 25 State Reduction and Assignment.
Propositional Calculus Math Foundations of Computer Science.
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’,
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Two-Level Minimization II.
2-Level Minimization Classic Problem in Switching Theory
Combinatorial Algorithms Unate Covering Binate Covering Graph Coloring Maximum Clique.
FSM State Assignment for Area, Power and Testability using Modern Optimization Techniques Mohammed Mansoor Ali Computer Engineering Department.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Valued Logic.
2-Level Minimization Classic Problem in Switching Theory Tabulation Method Transformed to “Set Covering Problem” “Set Covering Problem” is Intractable.
CALTECH CS137 Spring DeHon CS137: Electronic Design Automation Day 9: May 6, 2002 FSM Equivalence Checking.
CP Summer School Modelling for Constraint Programming Barbara Smith 2. Implied Constraints, Optimization, Dominance Rules.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 24: April 18, 2011 Covering and Retiming.
9-1 Introduction Chapter #9: Finite State Machine Optimization.
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.
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 4: October 5, 2005 Two-Level Logic-Synthesis.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
Test Slide SAT MCAT GRE. CSE 370 Spring 2006 Introduction to Digital Design Lecture 5: Canonical Forms Last Lecture Logic Gates Different Implementations.
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.
1 Finite State Machines (FSMs) Now that we understand sequential circuits, we can use them to build: Synchronous (Clocked) Finite State Machines Finite.
Why consider ND-MV networks? Multi-Values: Multi-valued domains can be used to explore larger optimization spaces. Several interesting direct applications.
1 State Assignment The problem: Assign a unique code to each state to produce a minimal binary logic level implementation. Given: 1.|S| states, 2.at least.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Level Logic Synthesis.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 15: March 4, 2002 Two-Level Logic-Synthesis.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 6: January 26, 2004 Sequential Optimization (FSM Encoding)
1 COMP541 Finite State Machines - 1 Montek Singh Sep 22, 2014.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect10: Two-level Logic Minimization.
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.
ICS 252 Introduction to Computer Design Lecture 8 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
1 COMP541 Sequential Logic – 2: Finite State Machines Montek Singh Feb 29, 2016.
CS137: Electronic Design Automation
Finite state machine optimization
Finite state machine optimization
CS137: Electronic Design Automation
ESE535: Electronic Design Automation
COE 561 Digital System Design & Synthesis Sequential Logic Synthesis
Synthesis of sequential circuits
CSE140 HW2 Preparation Xinyuan Wang 04/20/2018.
EE4271 VLSI Design Logic Synthesis EE 4271 VLSI Design.
Synthesis and Verification of Finite State Machines
CSE 370 – Winter 2002 – Logic minimization - 1
Synthesis and Verification of Finite State Machines
CSE 370 – Winter Sequential Logic-2 - 1
CS137: Electronic Design Automation
Presentation transcript:

EDA (CS286.5b) Day 17 Sequential Logic Synthesis (FSM Optimization)

Today State Encoding –“exact” two-level –heuristic multi-level

Finite-State Machine Logical behavior depends on state In response to inputs, may change state 1/0 0/0 -/1 0/11/0

Finite State Machine 1/0 0/0 -/1 0/11/0 0 S1 S1 1 1 S1 S2 0 1 S2 S2 0 0 S2 S3 0 1 S3 S3 1 0 S3 S3 1

Problem: Real: pick state encodings (si’s) so as to minimize the implementation area –two-level –multi-level Simplified variants –minimize product terms –achieving minimum product terms, minimize state size –minimize literals

Two-Level A = (2*inputs+outputs)*products+ flops*wflop inputs = PIs + state_bits outputs = state_bits+POs products depend on state-bit encoding

Multilevel More sharing -> less implementation area Pick encoding to increase sharing –maximize common sub expressions –maximize common cubes Effects of multi-level minimization hard to characterize (not predictable)

Two-Level Idea: do symbolic minimization of two- level form This represents effects of sharing Generate encoding constraints from this Cover Select Codes

Two-Level Input Oriented Minimize product rows by exploiting common-cube, next-state expressions [DeMicheli+Brayton+SV/TR CAD v4n3p269]

Multiple Valued Input Set Treat input states as a multi-valued (not just 0,1) input variable Effectively encode in one-hot form Use to merge together input state sets 0 S1 S1 1 1 S1 S2 0 1 S2 S2 0 0 S2 S3 0 1 S3 S3 1 0 S3 S S S S S S S3 1

Two-Level Input Represent states as one-hot codes Minimize using two-level optimization –Include: combine compatible next states Get disjunct on states deriving next state Assuming no sharing due to outputs –gives minimum number of product terms Cover to achieve Try to do so with minimum number of state bits

Example 0 S s s2 s s3 s s4 s s5 S 10 0 s6 S 01 0 s7 s S s s2 s s3 s s4 s s5 s s6 s s7 s

Two-Level Input One hot identifies multivalue minimum number of product terms May be less product terms if get sharing (don’t cares) in generating the next state expressions –(was not part of optimization) Encoding places each disjunct on a unique cube face Can use less bits than one-hot –this part heuristic

General Two-Level Strategy Generate “Generalized” Prime Implicants Extract/identify encoding constraints Cover with minimum number of GPIs that makes encodeable Encode symbolic values [Devadas+Newton/TR CAD v10n1p13]

Output Symbolic Sets Maintain output state, PIs as a set S S S S S S (S1) (o1) (S2) () (S2) () (S3) () (S3) (o1) (S3) (o1)

Generate GPIs Same basic idea as PI generation –Quine-McKlusky …but different

Merging Cubes merge if –distance one in input –inputs same, differ in multi-valued input (state) When merge –binary valued output contain outputs asserted in both (and) –next state tag is union of states in merged cubes

Cancellation K+1 cube cancels k-cube only if –multivalued input is identical –AND next state and output identical –Also cancel if multivalued input contains all inputs Discard cube with next state containing all symbolic states and null output

Example (S1) (o1) (S2) () (S2) () (S3) () (S3) (o1) (S3) (o1)

Example (S1) (o1) (S2) () (S2) () (S3) () (S3) (o1) x (S3) (o1) x (S1,S2) () (S1,S3) () x (S1,S3) (O1) (S2) (S2,S3) () x (S2,S3) () (S2,S3) () x (S3) () (S3) (O1) (S1,S3) () (S2,S3) () (S2,S3) () (S1,S2,S3) () x

Encoding Constraints Minterm to symbolic state v should assert v For all minterms m  all GPIs (  all symbolic tags) e(tag state) = e(v)

Example 110- (out1,out2) 11-1 (out1,out3) 000- (out4) 1101 e(out1)  e(out2)  e(out1)  e(out3)=e(out1) 1100 e(out1)  e(out2)=e(out2) 1111 e(out1)  e(out3)=e(out1) 0000 e(out4)=e(out4) 0001 e(out4)=e(out4) 1101 out out out out out4

To Satisfy Dominance and disjunctive relationships from encoding constraints e.g. – e(out1)  e(out2)  e(out1)  e(out3)=e(out1) –one of: e(out2)>e(out1) e(out3)>e(out1) e(out1)  e(out2)|e(out3)

Encoding Constraints No directed cycles (proper dominance) siblings in disjunctive have not directed paths between no two disjunctives equality can have exactly the same siblings for different parents parent of disjunctive should not dominate all sibling arcs

Encoding Constraints (more) For any tuple s1,s2,s3 –such that s1>s2, s2>s3 –no input relation should force s1,s3 to 1 while s2=0 no input relation –all siblings (ancestors of sibling) of disjunctive equality arc have a 1 and the parent 0 –all immediate ancestors of each conjunctive sibling have a 1 and the parent 0

Covering Cover with branch-and-bound similar to two-level –row dominance only if tags of two GPIs are identical OR tag of first is subset of second Once cover, check encodeability If fail, branch-and-bound again on additional GPIs to add to satisfy encodeability

Determining Encoding Can turn into boolean satisfiability problem for a target code length All selected encoding constraints become boolean expressions Also uniqueness constraints

Multilevel Two level only tries to minimize product terms –(optimally io*product_terms) Doesn’t capture structure (CSE) available to multilevel logic Multilevel logic terms not easy to predict [Devadas+Ma+Newton+SV/TR CAD v7n12p1290]

Mustang Idea: maximize common cubes Code similar states “close” together (differ in fewest inputs) to maximize cube sharing

Mustang Approach Construct full graph with node for every state Select weights for edges Use weights to construct groups Code groups close together (all unidistant)

Mustang Fanout For each state compute output set and weight For each state compute predecessor states Node edge weighted by common predecessors (common output treatment)

Mustang Fanin Similar, but weight by common successors

Clustering Minimize sum of –product of edge weights x distance Pick clusters of cardinality at most one greater than number of bits willing to expend –(can all be unidistant…assuming don’t run into anything else)

Summary Encoding can have a big effect on area Freedom in encoding allows us to maximize opportunities for sharing Can do minimization around unencoded to understand structure in problem outside of encoding Can adapt two-level covering to include and generate constraints Multilevel limited by our understanding of structure we can find in expressions –heuristics try to maximize expected structure

Today’s Big Ideas Exploit freedom Bounding solutions Dominators Technique: –branch and bound