CSE 144 Project Part 2
140 likes | 509 Vues
CSE 144 Project Part 2. Overview. Goal: Implement a placement tool for standard cell design. Multiple rows Routing channel between rows Components of identical height but various width. Problems to be resolved. Assignment of components to rows
CSE 144 Project Part 2
E N D
Presentation Transcript
Overview Goal: Implement a placement tool for standard cell design • Multiple rows • Routing channel between rows • Components of identical height but various width
Problems to be resolved • Assignment of components to rows • Optimization goal: Reducing inter-row connections • Strategy: Slicing bisection algorithm • Concrete row positions in each row • Optimization goal: Minimizing overall interconnect length in channels • Strategy: Simulated annealing algorithm
Row-based component grouping • Algorithm: slicing bisection for N-row layout • Need to slice (partition) the circuit into N rows • Rows should have similar size • Connection between rows are minimized • Repeatedly partition the circuit Row 1 1 2 5 Example: a 3-row design Row 3 Row 2 7 3 4 6
How to generate slicing? Slicing algorithm requires • unbalanced partitioning • minimized cutsize between rows • Repeatedly apply Fiduccia-Mattheyses algorithm under varying area constraints • Each partitioning step generates one new row
Feed-through problem Partitioning after the 1st step • Components 1&3 fixed in row 1 • Component 2 connected with row 1 • If component 2 assigned to row 3 in the next partition, a feed-through generated Row 1 1 2 5 7 3 4 6 Remaining rows Need to consider the connections between components already assigned and components yet to be assigned
Fixed components Feed-through reduction (1) Step 1 • Partitioning strategy • Always partition the complete set of components • Area constraints change for distinct step • Components already assigned fixed in Partition 1 Row 1 1 1 2 5 7 3 3 4 6 Remaining rows
Feed-through reduction (1) Step 2 • Partitioning strategy • Always partition the complete set of components • Area constraints change for distinct step • Components already assigned fixed in Partition 1 1 1 2 5 7 3 3 4 6 • Components 1 & 3 fixed in Partition 1 • This strategy pushes components heavily connected with 1&3 to be assigned in Partition 1 too
Feed-through reduction (2) • Penalize partitionings generating feed-throughs Partitioning after the 1st step Assign a large penalty value to edges between fixed components and unfixed components 1 2 5 7 3 If 2 is not assigned to Partition 2 in the next partition (the case generating feed-through), cutsize significantly increased 4 6
Intra-row component arrangement • Arrange the components in each row to minimize the overall interconnect cost in the channel • Interconnect cost model: • The overall length of horizontal wires • Ignore consider the feed-through wires 1 4 6 2 3 5 1 4 6 5 2 3
Simulated annealing algorithm • Start from an initial arrangement • Randomly change the position of one component (the position of its neighbors need to be adjusted accordingly) • Accept moves that reduce cost; probabilistically accept moves that increase cost • Try multiple moves at each temperature • Terminate when the benefit is less than 2% in 3 successive temperatures
How to calculate cost? • The horizontal wire length depends on pin positions in components 2 1 3 A 3-pin component • Pin location specification • Pin number increases from left to right • Distance between two adjacent pins is 2 • Each pin is of width 1
How to calculate cost? The cost of the example placement is 32
Summary Inter-row Intra-row Goal: Component arrangement Row generation Algorithm: Slicing bisection Simulated annealing Issues to consider: Feed-through Cost model For the implementation of slicing bisection, we provide to you a set of candidate penalty values {1, 2, 5, 10, 15}, try them and figure out the best one