CS137: Today Electronic Design Automation • Encoding – Input – Output Day 7: October 12, 2005 • State Encoding Sequential Optimization – “exact” two-level (FSM Encoding) 1 2 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon Input Encoding Output Encoding • Pick codes for input cases to simplify • Opposite problem logic • Pick codes for output symbols • E.g. Instruction Decoding • E.g. allocation selection – ADD, SUB, MUL, OR – Prefer N, Prefer S, Prefer E, Prefer W, No • Have freedom in code assigned Preference • Again, freedom in coding • Pick code to minimize logic • Use to maximize sharing – E.g. number of product terms – Common product terms, CSE 3 4 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon Finite-State Machine State Encoding • Logical behavior depends on state • State encoding is a logical entity • In response to inputs, may change state • No a priori reason any particular state has any particular encoding • Use freedom to simply logic 0/1 1/0 -/1 1/0 0/0 5 6 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon 1
Finite State Machine Example: Encoding Difference 0 01 01 1 0 01 01 1 1 01 11 0 0 S1 S1 1 S1=01 0/1 1/0 -/1 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 1/0 0/0 0 S2 S3 0 0 10 10 1 1 S3 S3 1 S1+S2 = -1 0 S1 S1 1 0 S3 S3 1 0 00 00 1 1 11 01 0 1 S1 S2 0 1 00 11 0 Similar outputs, 1 00 11 0 1 S2 S2 0 1 11 11 0 code so S1+S2 0 -0 00 1 0 S2 S3 0 S1=00 0 11 10 0 is simple cube - 10 00 1 1 S3 S3 1 S2=11 1 10 10 1 - 1- 10 0 0 S3 S3 1 S3=10 0 10 10 1 7 8 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon Problem: Two-Level • Real : pick state encodings (si’s) so as to minimize the implementation area – two-level • A pla = (2*ins+outs)*prods+ flops*wflop – multi-level • inputs = PIs + state_bits • Simplified variants • outputs = state_bits+POs – minimize product terms – achieving minimum product terms, minimize state • products terms (prods) size – depend on state-bit encoding – minimize literals – this is where we have leverage 9 10 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon Multilevel Two-Level Optimization • More sharing � less implementation 1. Idea : do symbolic minimization of two-level form area – This represents effects of sharing • Pick encoding to increase sharing 2. Generate encoding constraints from this – maximize common sub expressions – Properties code must have to maximize sharing – maximize common cubes 3. Cover • Effects of multi-level minimization hard – Like two-level (mostly…) to characterize (not predictable) 4. Select Codes 11 12 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon 2
Kinds of Sharing Input sharing: Output sharing: encode inputs so share input cubes Input Encoding cover set to reduce to produce individual product terms output bits 10 inp1+inp2=01 Out1=11 11 inp2+inp3=01 10 inp1 01 Out2=01 1101 out1 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 11 –1 01 Inp2=11 0000 out4 11 inp3 01 110- 01 01 11 01 Inp3=01 0001 out4 01 inp3 10 11-1 10 01 01 10 13 14 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon Outline Two-Level Input Two-Level Input Oriented • Represent states as one-hot codes • Minimize product rows • Minimize using two-level optimization – by exploiting common-cube – Include: combine compatible next states – next-state expressions • 1 S1 S2 0 • 1 S2 S2 0 � 1 {S1,S2} S2 0 • Get disjunct on states deriving next state – Does not account for possible sharing of • Assuming no sharing due to outputs terms to cover outputs – gives minimum number of product terms • Cover to achieve – Try to do so with minimum number of state bits [DeMicheli+Brayton+SV/TR CAD v4n3p269] 15 16 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon Multiple Valued Input Set One-hot Minimum • Treat input states as a multi-valued (not • One-hot gives minimum number of just 0,1) input variable product terms • Effectively encode in one-hot form • i.e. Can always maximally combine – One-hot: each state gets a bit, only one on input sets into single product term • 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 18 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon 3
One-hot example Combining • Follows from standard 2-level 10 100 01 optimization with don’t-care 10 inp1 01 One-hot: 01 100 10 01 inp1 10 inp1=100 10 --0 01 minimization 1- 010 01 1- inp2 01 inp2=010 11 0-- 01 01 010 10 • Effectively groups together common 01 inp2 10 inp3=001 01 --- 10 11 001 01 11 inp3 01 predecessor states as shown 01 001 10 01 inp3 10 -- 11- -- • (can define to combine directly) -- 1-1 -- -- -11 -- Key: can define a cube to -- 000 -- cover any subset of states 10 --0 01 says 10*(inp1+inp2) � 01 19 20 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon Two-Level Input Example 0 S s6 00 0 1000000 0000010 00 • One-hot identifies multivalue minimum 0 s2 s5 00 0 0100000 0000100 00 number of product terms 0 s3 s5 00 0 0010000 0000100 00 0 0110001 0000100 00 • May be less product terms if get sharing 0 s4 s6 00 0 0001000 0000010 00 0 1001000 0000010 00 0 s5 S 10 0 0000100 1000000 10 (don’t cares) in generating the next state 1 0001001 0000010 10 0 s6 S 01 0 0000010 1000000 01 expressions 0 0000010 1000000 01 0 s7 s5 00 0 0000001 0000100 00 – (was not part of optimization) 1 S s4 01 1 0000010 0100000 01 1 0000100 0100000 10 • Encoding places each disjunct on a unique 1 s2 s3 10 1 0000100 0100000 10 0 0000100 1000000 10 cube face 1 1000000 0001000 00 1 s3 s7 10 1 0001000 0000010 10 – Can distinguish with a single cube 1 0000010 0100000 01 1 s4 s6 10 1 0000001 0000010 10 • Can use less bits than one-hot 1 0100000 0010000 00 1 s5 s2 00 1 1000000 0001000 00 1 0010000 0000001 00 1 s6 s2 00 1 0100000 0010000 00 – this part typically heuristic 1 s7 s6 00 1 0010000 0000001 00 – Remember one-hot already minimized prod terms 21 22 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon Encoding Example Encoding Example 0 S s6 00 0 s2 s5 00 s 010 s 010 0 1-- 001 00 0 s3 s5 00 0 0110001 0000100 00 s2 110 s2 110 0 0110001 0000100 00 0 0-0 011 00 0 s4 s6 00 0 1001000 0000010 00 s3 101 s3 101 0 1001000 0000010 00 1 -00 011 10 0 s5 S 10 1 0001001 0000010 10 s4 000 s4 000 1 0001001 0000010 10 0 011 010 01 0 s6 S 01 0 0000010 1000000 01 s5 001 s5 001 0 0000010 1000000 01 1 001 110 10 0 s7 s5 00 1 0000100 0100000 10 s6 011 s6 011 1 0000100 0100000 10 0 001 010 10 1 S s4 01 0 0000100 1000000 10 s7 100 s7 100 0 0000100 1000000 10 1 010 000 00 1 s2 s3 10 1 1000000 0001000 00 1 1000000 0001000 00 1 011 110 01 1 s3 s7 10 1 0000010 0100000 01 s2+s3+s7=1-- s4+s7=-00 1 0000010 0100000 01 1 110 101 00 1 s4 s6 10 1 0100000 0010000 00 No 111 code 1 0100000 0010000 00 1 101 100 00 1 s5 s2 00 1 0010000 0000001 00 s1+s4=0-0 1 0010000 0000001 00 1 s6 s2 00 s2+s3+s7=1-- 1 s7 s6 00 23 24 (no 111 code) CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon 4
General Problem • Track both input and output encoding constraints Input and Output 25 26 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon General Two-Level Strategy Output Symbolic Sets 1. Generate “Generalized” Prime • Maintain output state, PIs as a set Implicants • Represent inputs one-hot as before 2. Extract/identify encoding constraints 0 S1 S1 1 0 100 S1 1 0 100 (S1) (o1) 3. Cover with minimum number of GPIs 1 S1 S2 0 1 100 S2 0 1 100 (S2) () that makes encodeable 1 S2 S2 0 1 010 S2 0 1 010 (S2) () 0 S2 S3 0 0 010 S3 0 0 010 (S3) () 4. Encode symbolic values 1 S3 S3 1 1 001 S3 1 1 001 (S3) (o1) 0 S3 S3 1 0 001 S3 1 0 001 (S3) (o1) [Devadas+Newton/TR CAD v10n1p13] 27 28 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon Generate GPIs Merging • Same basic idea as PI generation • Cubes merge if – Quine-McKlusky – distance one in input • 000 100 • …but different • 001 100 � 00- 100 – inputs same, differ in multi-valued input (state) • 000 100 • 000 010 � 000 110 29 30 CALTECH CS137 Fall 2005 -- DeHon CALTECH CS137 Fall 2005 -- DeHon 5
Recommend
More recommend