cs137 today electronic design automation
play

CS137: Today Electronic Design Automation Encoding Input - PDF document

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


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend