480 likes | 580 Views
An Enhanced Mapping Approach to SET Arrays Considering Fabric Constraint. Speaker: Li-Fu Tang Advisor: Dr. Chun-Yao Wang 2011/11/18. Outline. Introduction Previous work Area optimization approach Variable reordering Product term reordering Experimental results Future work. Introduction.
E N D
An Enhanced Mapping Approach to SET Arrays Considering Fabric Constraint Speaker: Li-Fu Tang Advisor: Dr. Chun-Yao Wang 2011/11/18
Outline • Introduction • Previous work • Area optimization approach • Variable reordering • Product term reordering • Experimental results • Future work
Introduction • SET: Single-Electron Transistor • An SET array can be presented as a graph composed of hexagons • All sloping edges areconfigurable • short, open, active (high or low) • Active edges at the same row are controlled by a single variable
Example • An example of a XOR b: active high a a active low short open b b
Mapping constraint • Constraint-free • The decision of configuration direction depends on the location of node • Avoid creating incorrect mapping 0110 0102 1122
Mapping constraint • Granularity constraint • Two edges are configured simultaneously • The combination of n.left and n.right, (n.left,n.right), must be one of (high, low), (low, high), (short, short),and (open, open), where n is a node in the SET array. 0110 0102 1122
Mapping constraint • Fabric constraint • (high, low) and (low, high) cannot simultaneously appear in a row • For simplification, we allow only one of (high, low) and (low, high) to appear in an SET array 0110 0102 1122
Problem formulation • Given: A set of product terms • Objective: Mapping the product terms into an SET array with optimized area considering fabric constraint
Outline • Introduction • Previous work • Area optimization approach • Variable reordering • Product term reordering • Experimental result • Future work
Previous mapping approach current detector • BDD -> Product term -> SET array 0010 01-0 100- 11-- 0 1 1 Configure a path for each product term while avoid producing invalid product terms
Previous mapping approach • Product term sorting • Focus on mapping without constraints • Do not consider fabric constraint • Product term mapping • Simple but strict mapping rules • Higher area cost • No variable reordering
Our mapping approach • Variable reordering • Product term mapping ordering considering fabric constraint • Flexible mapping rule • Expansion method 01001 00221 11221 10001 10121 10100 11000 10022 11012 11122 Previous Work Our approach
Outline • Introduction • Previous work • Area optimization approach • Variable reordering • Product term reordering • Experimental results • Future work
Key ideas • When mapping a product term, always consider next product term • Different expansion level
Variable preprocess • Move the variables with the same logic value among all product terms to the front • Move the logic value 2 to the back part of all shared variables because logic value 2 has more flexibility • 2200101 • 2201101 • 0220101 • 0221101
Example • 111122221102111 111122221102110 111122221101101 111122221102000 111122221100001 • 111122221010001 • 111122220020000 121021121122111 121021121122110 121011121022111 121020121022110 121000121022111 120100121022111 022200121022110
Reordering remaining variables • Make branch and expansion appear at the lower level • It means that more shared edges appear at the higher level • Avoid adding extra product terms 0111 0120 0000 1000 0111 0120 2000 1011 1020 0200
Reordering remaining variables • Ignore more and more information during variable reordering. • Ignore the scope which only has one product term • There are many product terms • Separate these product terms into two scopes. The red scope only has 1 product term and the purple scope has others. • We will ignore this scope because we cannot find more shared edges with any product term
Example • 1110 • 1111 • 1102 • 1010 • 0100 • 0001 • 1110 • 1111 • 1012 • 1100 • 0010 • 0001
Reordering remaining variables • In the largest scope, we move the variables which have the maximal number of Max(#0,#1,#2) to the front on the premise of avoiding destroying share relation 101111 111011 111102 110120 110111 101111 101102 111020 111011 110111 110102 101120
Share collection • Collect the pairs of product terms which have many shared edges 1101100 1101110 1112110
Observation 001001 010001 001122 000001 001212 000202 Expansion Branch then Share Branch
Observation 0011002222 0000112222 0011100022 0000011122 Branch then Share Branch then Share
Share collection • Branch then Share • After the merging point, all the variables should be the same value • Case: (01,10), (1-,01), (0-,10) • Case: (0011,1100) ,(0021,1120) , (0022,1120) ,…
Share collection • If there is no share bit and there are product terms which are Branch then Share, and branch at the first bit, only one pair of product term can map successfully and they have to be mapped first among all the product terms. 0100 1000 0022 1122
Example • 111122221102111 • 111122221102110 • 111122221101101 • 111122221102000 • 111122221100001 • 111122221010001 • 111122220020000
Reordering remaining variables • Assign a priority to a variable which only has two types of logic values, and (0,1) has the highest priority because other cases certainly cause expansion • If there are two or more variables having the same priority, uses the next largest scope to determine the order until find out or no scope • Else, base on the original order
Example abcdefg abcdefg abcdefg 111122221102111 111122221102110 111122221101101 111122221102000 111122221100001 111122221010001 111122220020000 111122221102111 111122221102110 111122221101101 111122221102000 111122221100001 111122221010001 111122220020000 111122221102111 111122221102110 111122221101101 111122221102000 111122221100001 111122221010001 111122220020000 0: 000000001253453 1: 770000006511324 2: 007777770013000 Max: 777777776553454 abcefdg abcedfg 111122221101121 111122221101120 111122221101011 111122221100020 111122221100001 111122221010001 111122220020000 111122221101121 111122221101120 111122221101011 111122221100020 111122221100001 111122221010001 111122220020000 111122221101211 111122221101210 111122221101101 111122221100200 111122221100001 111122221010001 111122220020000
Ladder shape • We use a heuristic method to make the shape of mapping result like a ladder Different expansion level share
Product term grouping • The product terms would be divided into several groups • Build a grouping tree • Until each group only has one or two product terms
Example 111122221101121 P1 111122221101120 P2 111122221101011 P3 111122221100020 P4 111122221100001 P5 111122221010001 P6 111122220020000 P7 P1~P7 221 220 22110 P1~P6 2210 P7 221100 221101 P3 P4,P5 P1,P2 P1~P5 P6 2211011 2211010 221101: share bits 2211011: group bits P1~P3
Expansion level prediction • Predict the upper bound of expansion level for each product term • Predict expansion level by checking the last two bits of group bits and continuously scan the same logic value • 0111101 • 0110100 Expansion level:5 Expansion level:3 group bits
Expansion level prediction • Justify the don’t care value after group bits • One product term • If # 2 + # the last bit of group bit ≥ # the inverse value of the last group bit → bit 2 equals to the last group bit • Otherwise, equals to the inverse value of last group bit • Two product terms • The bit after the bit 2 ≠ 2 → this bit equals to the previous bit • Otherwise, uses the same justify rule of checking the group with one product term P1:1202211 P2:1202101 group bits Predict result P1:5 P2:4 P2 => P1 P1 => P2
Example 111122221101121 P1 111122221101120 P2 111122221101011 P3 111122221100020 P4 111122221100001 P5 111122221010001 P6 111122220020000 P7 P1~P7 220 221 22110 P1~P6 2210 P7 P1:15 221100 221101 P3 P4,P5 P1,P2 P1~P5 P2:14 P3:12 P6 P4:15 2211011 2211010 P5:14 P6:9 P1~P3 P7:15
Product term order determination • Determine the product term order by expansion level, share collection and group relation • Select the group with smallest expansion level first • If there are more than two groups with the same expansion level • Find the first branch point and calculate the number of product terms • If the group has two product terms • The one with smallest expansion level first • Scan the remaining variables and predict the expansion level P1~P20 P16~P20 P1~P15
Product term order determination • Choose the next product term to map based on the share collection • Always select the product term which has been marked by share collection • Continue to select until no choices • After selecting product term based on the share collection, we will select the product term which is in the same group with product term which has been marked by share collection • When finish mapping the current group, trace the upper level group first • With higher relation, and more possibility to share • Priority: share collection > group relation > expansion level
Example 111122221101121 P1 111122221101120 P2 111122221101011 P3 111122221100020 P4 111122221100001 P5 111122221010001 P6 111122220020000 P7 P1~P7 221 220 22110 P1~P6 2210 P7 P1:15 221100 221101 P3 P4,P5 P1,P2 P1~P5 P2:14 P3:12 P6 P4:15 2211011 2211010 P5:14 P6:9 P1~P3 P7:15 => P3 => P2 P6 => P1 => P7 => P5 => P4
Mapping results (previous work) 121021121122111 P1 121021121122110 P2 121011121022111 P3 121020121022110 P4 121000121022111 P5 120100121022111 P6 022200121022110 P7 Width: 25
Mapping results (our approach) 111122221101121 P1 111122221101120 P2 111122221101011 P3 111122221100020 P4 111122221100001 P5 111122221010001 P6 111122220020000 P7 Width:21 P1:15 P2:14 P3:12 P4:15 P5:15 P6:9 P7:15 => P3 => P2 => P4 => P1 P6 => P7 => P5
Outline • Introduction • Previous work • Area optimization approach • Variable reordering • Product term reordering • Experimental results • Future work
Experimental results • Benchmark • 7 benchmarks from MCNC • Hexagon count、width and execution time
Outline • Introduction • Previous work • Area optimization approach • Variable reordering • Product term reordering • Experimental results • Future work
Future work • Debugging • Paper writing