0% found this document useful (0 votes)
27 views49 pages

Day 19

The document discusses sequential optimization techniques for finite state machines, specifically encoding of inputs, outputs, and states. Encoding involves assigning codes to inputs, outputs, and states to minimize logic and simplify implementation. Techniques like one-hot encoding and combining compatible states are used to reduce the number of product terms.

Uploaded by

Aliaa Tarek
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views49 pages

Day 19

The document discusses sequential optimization techniques for finite state machines, specifically encoding of inputs, outputs, and states. Encoding involves assigning codes to inputs, outputs, and states to minimize logic and simplify implementation. Techniques like one-hot encoding and combining compatible states are used to reduce the number of product terms.

Uploaded by

Aliaa Tarek
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 49

ESE535:

Electronic Design Automation

Day 19: March 27, 2013


Sequential Optimization
(FSM Encoding)

1
Penn ESE535 Spring 2013 -- DeHon
Behavioral
(C, MATLAB, …)

Today Arch. Select


Schedule
RTL
FSM assign
• Encoding Two-level
– Input Multilevel opt.
Covering
– Output Retiming

• State Encoding Gate Netlist


Placement
– “exact” two-level Routing
Layout

Masks
2
Penn ESE535 Spring 2013 -- DeHon
Input Encoding
• Pick codes for input cases to simplify
logic
• E.g. Instruction Decoding
– ADD, SUB, MUL, OR
• Have freedom in code assigned
• Pick code to minimize logic
– E.g. number of product terms

3
Penn ESE535 Spring 2013 -- DeHon
Output Encoding
• Opposite problem
• Pick codes for output symbols
• E.g. allocation selection
– Prefer N, Prefer S, Prefer E, Prefer W, No
Preference
• Again, freedom in coding
• Use to maximize sharing
– Common product terms, CSE
4
Penn ESE535 Spring 2013 -- DeHon
Finite-State Machine
• Logical behavior depends on state
• In response to inputs, may change state

0/1 1/0 -/1

1/0 0/0

5
Penn ESE535 Spring 2013 -- DeHon
State Encoding
• State encoding is a logical entity
• No a priori reason any particular state
has any particular encoding
• Use freedom to simply logic

6
Penn ESE535 Spring 2013 -- DeHon
Finite State Machine

0/1 1/0 -/1

1/0 0/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
7
Penn ESE535 Spring 2013 -- DeHon
Example: Encoding Difference
0 01 01 1
1 01 11 0 0 01 01 1
0 S1 S1 1 S1=01 1 -1 11 0
1 11 11 0
1 S1 S2 0 S2=11 - 11 10 0
0 11 10 0
1 S2 S2 0 S3=10 - 10 10 1
1 10 10 1
0 S2 S3 0
0 10 10 1
1 S3 S3 1 S1+S2 = -1
0 S3 S3 1
0 00 00 1 1 11 01 0
Similar outputs, 1 00 11 0 1 00 11 0
code so S1+S2 1 11 11 0 0 -0 00 1
is simple cube S1=00 0 11 10 0 - 10 00 1
S2=11 1 10 10 1 - 1- 10 0
S3=10 0 10 10 1 8
Penn ESE535 Spring 2013 -- DeHon
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
9
Penn ESE535 Spring 2013 -- DeHon
Two-Level

• Apla = (2*ins+outs)*prods+ flops*wflop


• inputs = PIs + state_bits
• outputs = state_bits+POs
• products terms (prods)
– depend on state-bit encoding
– this is where we have leverage 10
Penn ESE535 Spring 2013 -- DeHon
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)

11
Penn ESE535 Spring 2013 -- DeHon
Two-Level Optimization
1. Idea: do symbolic minimization of two-level
form
– This represents effects of sharing
2. Generate encoding constraints from this
– Properties code must have to maximize sharing
3. Cover
– Like two-level (mostly…)
4. Select Codes

12
Penn ESE535 Spring 2013 -- DeHon
Kinds of Sharing
Input sharing: Output sharing:
encode inputs so share input cubes
cover set to reduce to produce individual
product terms output bits
10 inp1+inp2=01
Out1=11
10 inp1 01 11 inp2+inp3=01
1101 out1 Out2=01
01 inp1 10 Out3=10
10 1- 01 1100 out2
1- inp2 01 Out4=00
Inp1=10 01 10 10 1111 out3
01 inp2 01
Inp2=11 11 –1 01 0000 out4
11 inp3 01 110- 01
Inp3=01 01 11 01 0001 out4
01 inp3 10 11-1 10
01 01 10
13
Penn ESE535 Spring 2013 -- DeHon
Input Encoding

14
Penn ESE535 Spring 2013 -- DeHon
Two-Level Input Oriented
• Minimize product rows
– by exploiting common-cube
– next-state expressions

– Does not account for possible sharing of


terms to cover outputs

[DeMicheli+Brayton+SV/TR CAD v4n3p269] 15


Penn ESE535 Spring 2013 -- DeHon
Outline Two-Level Input
• Represent states as one-hot codes
• Minimize using two-level optimization
– Include: combine compatible next states
• 1 S1 S2 0
• 1 S2 S2 0  1 {S1,S2} S2 0
• 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
16
Penn ESE535 Spring 2013 -- DeHon
Multiple Valued Input Set
• Treat input states as a multi-valued (not
just 0,1) input variable
• Effectively encode in one-hot form
– One-hot: each state gets a bit, only one on
• Use to merge together input state sets
0 S1 S1 1 0 100 S1 1
1 S1 S2 0 1 100 S2 0
1 S2 S2 0 1 010 S2 0
0 S2 S3 0 0 010 S3 0
1 S3 S3 1 1 001 S3 1
0 S3 S3 1 0 001 S3 1 17
Penn ESE535 Spring 2013 -- DeHon
One-hot Minimum
• One-hot gives minimum number of
product terms
• i.e. Can always maximally combine
input sets into single product term

18
Penn ESE535 Spring 2013 -- DeHon
One-hot example

10 100 01
10 inp1 01 One-hot: 01 100 10
01 inp1 10 inp1=100 1- 010 01 10 --0 01
1- inp2 01 inp2=010 01 010 10 11 0-- 01
01 inp2 10 inp3=001 11 001 01 01 --- 10
11 inp3 01 01 001 10
01 inp3 10 -- 11- --
-- 1-1 --
Key: can define a cube to -- -11 --
cover any subset of states -- 000 --
10 --0 01 says 10*(inp1+inp2)  01 19
Penn ESE535 Spring 2013 -- DeHon
State Combining
• Follows from standard 2-level
optimization with don’t-care
minimization
• Effectively groups together common
predecessor states as shown
• (can define to combine directly)

20
Penn ESE535 Spring 2013 -- DeHon
Example
0 S s6 00 0 1000000 0000010 00
0 s2 s5 00 0 0100000 0000100 00
0 s3 s5 00 0 0010000 0000100 00
0 s4 s6 00 0 0001000 0000010 00 0 0110001 0000100 00
0 s5 S 10 0 0000100 1000000 10 0 1001000 0000010 00
0 s6 S 01 0 0000010 1000000 01 1 0001001 0000010 10
0 s7 s5 00 0 0000001 0000100 00 0 0000010 1000000 01
1 s6 s2 01 1 0000010 0100000 01 1 0000100 0100000 10
1 s5 s2 10 1 0000100 0100000 10 0 0000100 1000000 10
1 s4 s6 10 1 0001000 0000010 10 1 1000000 0001000 00
1 s7 s6 10 1 0000001 0000010 10 1 0000010 0100000 01
1 S s4 00 1 1000000 0001000 00 1 0100000 0010000 00
1 s2 s3 00 1 0100000 0010000 00 1 0010000 0000001 00
1 s3 s7 00 1 0010000 0000001 00 21
Penn ESE535 Spring 2013 -- DeHon
Two-Level Input
• One-hot identifies multivalue minimum number of
product terms
• May be fewer 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 distinguish with a single cube
• Can use fewer bits than one-hot
– this part typically heuristic
– Remember one-hot already minimized prod terms

22
Penn ESE535 Spring 2013 -- DeHon
0 S s6 00
Encoding Example
0 s2 s5 00
S 010
0 s3 s5 00
0 0110001 0000100 00 s2 110
0 s4 s6 00
0 1001000 0000010 00 s3 101
0 s5 S 10
1 0001001 0000010 10 s4 000
0 s6 S 01
0 0000010 1000000 01 s5 001
0 s7 s5 00
1 0000100 0100000 10 s6 011
1 S s4 01
0 0000100 1000000 10 s7 100
1 s2 s3 10
1 s3 s7 10 1 1000000 0001000 00
1 0000010 0100000 01 s2+s3+s7=1--
1 s4 s6 10
1 0100000 0010000 00 No 111 code
1 s5 s2 00
1 s6 s2 00 1 0010000 0000001 00
1 s7 s6 00 23
Penn ESE535 Spring 2013 -- DeHon
Encoding Example
S 010
0 0110001 0000100 00 0 1-- 001 00
s2 110
0 1001000 0000010 00 0 0-0 011 00
s3 101
1 0001001 0000010 10 1 -00 011 10
s4 000
0 0000010 1000000 01 0 011 010 01
s5 001
1 0000100 0100000 10 1 001 110 10
s6 011
0 0000100 1000000 10 0 001 010 10
s7 100
1 1000000 0001000 00 1 010 000 00
1 0000010 0100000 01 1 011 110 01
s4+s7=-00 1 110 101 00
1 0100000 0010000 00
1 0010000 0000001 00 S+s4=0-0 1 101 100 00

s2+s3+s7=1--
24
Penn ESE535 Spring 2013 -- DeHon (no 111 code)
Input and Output

Skip?

25
Penn ESE535 Spring 2013 -- DeHon
General Problem
• Track both input and output encoding
constraints

26
Penn ESE535 Spring 2013 -- DeHon
General Two-Level Strategy
1. Generate “Generalized” Prime
Implicants
2. Extract/identify encoding constraints
3. Cover with minimum number of GPIs
that makes encodeable
4. Encode symbolic values

[Devadas+Newton/TR CAD v10n1p13] 27


Penn ESE535 Spring 2013 -- DeHon
Output Symbolic Sets
• Maintain output state, PIs as a set
• Represent inputs one-hot as before

0 S1 S1 1 0 100 S1 1 0 100 (S1) (o1)


1 S1 S2 0 1 100 S2 0 1 100 (S2) ()
1 S2 S2 0 1 010 S2 0 1 010 (S2) ()
0 S2 S3 0 0 010 S3 0 0 010 (S3) ()
1 S3 S3 1 1 001 S3 1 1 001 (S3) (o1)
0 S3 S3 1 0 001 S3 1 0 001 (S3) (o1)

28
Penn ESE535 Spring 2013 -- DeHon
Generate GPIs
• Same basic idea as PI generation
– Quine-McKlusky
• …but different

29
Penn ESE535 Spring 2013 -- DeHon
Merging
• Cubes merge if
– distance one in input
• 000 100
• 001 100  00- 100
– inputs same, differ in multi-valued input
(state)
• 000 100
• 000 010  000 110

30
Penn ESE535 Spring 2013 -- DeHon
Merging
• When merge
– binary valued output contain outputs
asserted in both (and)
• 000 100 (foo) (o1,o2)
• 001 100 (bar) (o1,o3)  00- 100 ? (o1)
– next state tag is union of states in merged
cubes
• 000 100 (foo) (o1,o2)
• 001 100 (bar) (o1,o3)  00- 100 (foo,bar) (o1)

31
Penn ESE535 Spring 2013 -- DeHon
Merged Outputs
• Merged outputs
– Set of things asserted by this input
– States would like to turn on together
• 000 100 (foo) (o1,o2)
• 001 100 (bar) (o1,o3)  00- 100 (foo,bar) (o1)

32
Penn ESE535 Spring 2013 -- DeHon
Cancellation
• K+1 cube cancels k-cube only if
– multivalued input is identical
– AND next state and output identical
• 000 100 (foo) (o1)
• 001 100 (foo) (o1)
– Also cancel if multivalued input contains all inputs
• 000 111 (foo) (o1)
• Discard cube with next state containing all
symbolic states and null output
– 111 100 (foo,bar,baz…) ()  does nothing

33
Penn ESE535 Spring 2013 -- DeHon
Example
(copy to board…work;
Note inclass exercise, back of preclass)
0 100 (S1) (o1)
1 100 (S2) ()
1 010 (S2) ()
0 010 (S3) ()
1 001 (S3) (o1)
0 001 (S3) (o1)

34
Penn ESE535 Spring 2013 -- DeHon
Cancellation
• K+1 cube cancels k-cube only if
– multivalued input is identical
– AND next state and output identical
• 000 100 (foo) (o1) 00- 100 (foo) (o1)
• 001 100 (foo) (o1)
– Also cancel if multivalued input contains all inputs
• 000 111 (foo) (o1)
• Discard cube with next state containing all
symbolic states and null output
– 111 100 (foo,bar,baz….) ()  does nothing

35
Penn ESE535 Spring 2013 -- DeHon
Example

0 100 (S1) (o1) - 100 (S1,S2) () 0 111 (S1,S3) ()


1 100 (S2) () 0 110 (S1,S3) () x - 011 (S2,S3) ()
1 010 (S2) () 0 101 (S1,S3) (o1) 1 111 (S2,S3) ()
0 010 (S3) () 1 110 (S2) - 110 (S1,S2,S3) () x
1 001 (S3) (o1) x 1 101 (S2,S3) () x
0 001 (S3) (o1) x - 010 (S2,S3) ()
1 011 (S2,S3) () x
0 011 (S3) ()
- 001 (S3) (o1)

36
Penn ESE535 Spring 2013 -- DeHon
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
– [talk about next]
• If fail, branch-and-bound again on additional
GPIs to add to satisfy encodeability

37
Penn ESE535 Spring 2013 -- DeHon
Encoding Constraints
0 S1 S1 1
• Minterm to symbolic state v 1 S1 S2 0
– should assert v 1 S2 S2 0
0 S2 S3 0
1 S3 S3 1
0 S3 S3 1

• For all minterms m


 all GPIs [(all symbolic tags) e(tag state)] = e(v)

38
Penn ESE535 Spring 2013 -- DeHon
Example
all GPIs [(all symbolic tags) e(tag state)] = e(v)
Consider 1101 (out1)
covered by
1101 out1 110- (out1,out2) 110- (out1,out2)
1100 out2 11-1 (out1,out3) 11-1 (out1,out3)
1111 out3 000- (out4)
x 0000 out4 110-  e(out1)  e(out2)
x 0001 out4 11-1  e(out1)  e(out3)
OR-plane gives me OR of these two

Want output to be e(out1)


1101 e(out1) e(out2)  e(out1) e(out3)=e(out1)
39
Penn ESE535 Spring 2013 -- DeHon
Example
all GPIs [(all symbolic tags) e(tag state)] = e(v)
Sample Solution:
out1=11
1101 out1 out2=01 110- 01
110- (out1,out2)
1100 out2 out3=10 11-1 10
11-1 (out1,out3)
1111 out3 out4=00
000- (out4)
x 0000 out4 Think about PLA
x 0001 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(out3)
0000 e(out4)=e(out4)
0001 e(out4)=e(out4)
40
Penn ESE535 Spring 2013 -- DeHon
To Satisfy
• Dominance and disjunctive relationships from
encoding constraints
> Means strictly
• e.g. more bits on
– e(out1)  e(out2)  e(out1)  e(out3)=e(out1)
– one of:
• e(out2)>e(out1) [i.e. e(out1) e(out2)=e(out1)]
• e(out3)>e(out1) [i.e. e(out1) e(out3)=e(out1)]
• e(out2)|e(out3) e(out1)

41
Penn ESE535 Spring 2013 -- DeHon
Encodeability Graph
1100 One of:
e(out2)>e(out1)
out1 out2 e(out3)>e(out1)
out4 e(out1)e(out2)|e(out3)
1111

out3 1101 e(out1) e(out2)  e(out1) e(out3)=e(out1)


1100 e(out1) e(out2)=e(out2)
1111 e(out1) e(out3)=e(out3)
0000 e(out4)=e(out4)
0001 e(out4)=e(out4) 42
Penn ESE535 Spring 2013 -- DeHon
Encoding Constraints
• No directed cycles (proper dominance)
• Siblings in disjunctive have no directed
paths between
– (one cannot dominate other)
• No two disjunctive equality can have
exactly the same siblings for different
parents
• Parent of disjunctive should not
dominate all sibling arcs
43
Penn ESE535 Spring 2013 -- DeHon
Encodeability Graph
1100 One of:
cycle e(out2)>e(out1)
out1 X out2 cycle e(out3)>e(out1)
e(out1)e(out2)|e(out3)
1111 X
out4 No cycles  encodeable
out3 1101 e(out1) e(out2)  e(out1) e(out3)=e(out1)
1100 e(out1) e(out2)=e(out2)
1111 e(out1) e(out3)=e(out3)
0000 e(out4)=e(out4)
0001 e(out4)=e(out4) 44
Penn ESE535 Spring 2013 -- DeHon
Determining Encoding
• Can turn into boolean satisfiability
problem for a target code length
• All selected encoding constraints
become boolean expressions
• Also uniqueness constraints

45
Penn ESE535 Spring 2013 -- DeHon
What we’ve done
• Define another problem
– Constrained coding
• This identifies the necessary coding
constraints
– Solve optimally with SAT solver
– Or attack heuristically

46
Penn ESE535 Spring 2013 -- DeHon
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

47
Penn ESE535 Spring 2013 -- DeHon
Today’s Big Ideas
• Exploit freedom
• Bounding solutions
• Dominators
• Formulation and Reduction
• Technique:
– branch and bound
– SAT
– Understanding structure of problem
• Creating structure in the problem 48
Penn ESE535 Spring 2013 -- DeHon
Admin
• Assignment 6, 7 out
– For Assignment 6 you essentially write the
assignment for 7
• Monday Reading on Web
• Makeup office hour today (W) at 5pm

49
Penn ESE535 Spring 2013 -- DeHon

You might also like