EE 5301 – VLSI Design Automation I

Slides:



Advertisements
Similar presentations
Multilevel Hypergraph Partitioning Daniel Salce Matthew Zobel.
Advertisements

L30: Partitioning 성균관대학교 조 준 동 교수
Online Social Networks and Media. Graph partitioning The general problem – Input: a graph G=(V,E) edge (u,v) denotes similarity between u and v weighted.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 05/06 Universität Dortmund Hardware/Software Codesign.
Lectures on Network Flows
Rajat K. Pal. Chapter 3 Emran Chowdhury # P Presented by.
ICS 252 Introduction to Computer Design Routing Fall 2007 Eli Bozorgzadeh Computer Science Department-UCI.
VLSI Layout Algorithms CSE 6404 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 X=(AB*CD)+ (A+D)+(A(B+C)) Y = (A(B+C)+AC+ D+A(BC+D)) Dr. Md. Saidur.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
VLSI Layout Algorithms CSE 6404 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 X=(AB*CD)+ (A+D)+(A(B+C)) Y = (A(B+C)+AC+ D+A(BC+D)) Dr. Md. Saidur.
2004/9/16EE VLSI Design Automation I 85 EE 5301 – VLSI Design Automation I Kia Bazargan University of Minnesota Part III: Partitioning.
Chapter 2 – Netlist and System Partitioning
ICS 252 Introduction to Computer Design winter 2005 Eli Bozorgzadeh Computer Science Department-UCI.
EDA (CS286.5b) Day 5 Partitioning: Intro + KLFM. Today Partitioning –why important –practical attack –variations and issues.
Fall 2003EE VLSI Design Automation I 37 EE 5301 – VLSI Design Automation I Kia Bazargan University of Minnesota Part II: Algorithms.
ICS 252 Introduction to Computer Design Lecture 15 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
Lecture 9: Multi-FPGA System Software October 3, 2013 ECE 636 Reconfigurable Computing Lecture 9 Multi-FPGA System Software.
Study Group Randomized Algorithms Jun 7, 2003 Jun 14, 2003.
Fall 2003EE VLSI Design Automation I 149 EE 5301 – VLSI Design Automation I Kia Bazargan University of Minnesota Part V: Placement.
1 Circuit Partitioning Presented by Jill. 2 Outline Introduction Cut-size driven circuit partitioning Multi-objective circuit partitioning Our approach.
1 Enhancing Performance of Iterative Heuristics for VLSI Netlist Partitioning Dr. Sadiq M. Sait Dr. Aiman El-Maleh Mr. Raslan Al Abaji. Computer Engineering.
15-853Page :Algorithms in the Real World Separators – Introduction – Applications.
Multilevel Graph Partitioning and Fiduccia-Mattheyses
1 CSC 6001 VLSI CAD (Physical Design) January
Partitioning Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem –Understand.
General Routing Overview and Channel Routing
Universität Dortmund  P. Marwedel, Univ. Dortmund, Informatik 12, 2003 Hardware/software partitioning  Functionality to be implemented in software.
Multilevel Hypergraph Partitioning G. Karypis, R. Aggarwal, V. Kumar, and S. Shekhar Computer Science Department, U of MN Applications in VLSI Domain.
Register-Transfer (RT) Synthesis Greg Stitt ECE Department University of Florida.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University COT 5410 – Spring 2004.
Graph partition in PCB and VLSI physical synthesis Lin Zhong ELEC424, Fall 2010.
CSE 242A Integrated Circuit Layout Automation Lecture: Partitioning Winter 2009 Chung-Kuan Cheng.
Graph Partitioning Problem Kernighan and Lin Algorithm
CSE 494: Electronic Design Automation Lecture 4 Partitioning.
Massachusetts Institute of Technology 1 L14 – Physical Design Spring 2007 Ajay Joshi.
Announcements Network Flow today, depending on how far we get, we will do String Matching on Wednesday Then Review for Final next Monday This week’s lab.
10/25/ VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 3. Circuit Partitioning.
ECE 260B – CSE 241A Partitioning & Floorplanning 1http://vlsicad.ucsd.edu ECE260B – CSE241A Winter 2005 Partitioning & Floorplanning Website:
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 6: January 23, 2002 Partitioning (Intro, KLFM)
1 CS612 Algorithms for Electronic Design Automation CS 612 – Lecture 3 Partitioning Mustafa Ozdal Computer Engineering Department, Bilkent University Mustafa.
1/24 Introduction to Graphs. 2/24 Graph Definition Graph : consists of vertices and edges. Each edge must start and end at a vertex. Graph G = (V, E)
Max Flow – Min Cut Problem. Directed Graph Applications Shortest Path Problem (Shortest path from one point to another) Max Flow problems (Maximum material.
Flow Algorithms Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke University Analysis of Algorithms Week 9, Lecture 2.
Circuit Partitioning Divides circuit into smaller partitions that can be efficiently handled Goal is generally to minimize communication between balanced.
1 Partitioning. 2 Decomposition of a complex system into smaller subsystems  Done hierarchically  Partitioning done until each subsystem has manageable.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 9: February 9, 2004 Partitioning (Intro, KLFM)
1 NTUplace: A Partitioning Based Placement Algorithm for Large-Scale Designs Tung-Chieh Chen 1, Tien-Chang Hsu 1, Zhe-Wei Jiang 1, and Yao-Wen Chang 1,2.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University.
1 CS612 Algorithms for Electronic Design Automation CS 612 – Lecture 8 Lecture 8 Network Flow Based Modeling Mustafa Ozdal Computer Engineering Department,
ICS 252 Introduction to Computer Design
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
Community structure in graphs Santo Fortunato. More links “inside” than “outside” Graphs are “sparse” “Communities”
CprE566 / Fall 06 / Prepared by Chris ChuPartitioning1 CprE566 Partitioning.
Multilevel Partitioning
Iterative Improvement for Domain-Specific Problems Lecturer: Jing Liu Homepage:
1 مرتضي صاحب الزماني Partitioning. 2 First Project Synthesis by Design Compiler Physical design by SoC Encounter –Use tutorials in \\fileserver\common\szamani\EDA.
3/21/ VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 4. Circuit Partitioning (II)
COMP7330/7336 Advanced Parallel and Distributed Computing Task Partitioning Dynamic Mapping Dr. Xiao Qin Auburn University
::Network Optimization:: Minimum Spanning Trees and Clustering Taufik Djatna, Dr.Eng. 1.
RTL Design Flow RTL Synthesis HDL netlist logic optimization netlist Library/ module generators physical design layout manual design a b s q 0 1 d clk.
TU/e Algorithms (2IL15) – Lecture 8 1 MAXIMUM FLOW (part II)
Partitioning Jong-Wha Chong Wireless Location and SOC Lab. Hanyang University.
CS137: Electronic Design Automation
A Linear-Time Heuristic for Improving Network Partitions
Chapter 2 – Netlist and System Partitioning
Haim Kaplan and Uri Zwick
A Fundamental Bi-partition Algorithm of Kernighan-Lin
ICS 252 Introduction to Computer Design
A Linear-Time Heuristic for Improving Network Partitions
Presentation transcript:

EE 5301 – VLSI Design Automation I http://www.ece.umn.edu/users/kia/Courses/EE5301/ EE 5301 – VLSI Design Automation I Part III: Partitioning Kia Bazargan University of Minnesota Fall 2006 EE 5301 - VLSI Design Automation I VLSI Design Automation I – © Kia Bazargan

References and Copyright Textbooks referred (none required) [Mic94] G. De Micheli “Synthesis and Optimization of Digital Circuits” McGraw-Hill, 1994. [CLR90] T. H. Cormen, C. E. Leiserson, R. L. Rivest “Introduction to Algorithms” MIT Press, 1990. [Sar96] M. Sarrafzadeh, C. K. Wong “An Introduction to VLSI Physical Design” McGraw-Hill, 1996. [She99] N. Sherwani “Algorithms For VLSI Physical Design Automation” Kluwer Academic Publishers, 3rd edition, 1999. Fall 2006 EE 5301 - VLSI Design Automation I

References and Copyright (cont.) Slides used: (Modified by Kia when necessary) [©Sarrafzadeh] © Majid Sarrafzadeh, 2001; Department of Computer Science, UCLA [©Sherwani] © Naveed A. Sherwani, 1992 (companion slides to [She99]) [©Keutzer] © Kurt Keutzer, Dept. of EECS, UC-Berekeley http://www-cad.eecs.berkeley.edu/~niraj/ee244/index.htm [©Gupta] © Rajesh Gupta UC-Irvine http://www.ics.uci.edu/~rgupta/ics280.html [©Kang] © Steve Kang UIUC http://www.ece.uiuc.edu/ece482/ Fall 2006 EE 5301 - VLSI Design Automation I

EE 5301 - VLSI Design Automation I Partitioning Decomposition of a complex system into smaller subsystems Done hierarchically Partitioning done until each subsystem has manageable size Each subsystem can be designed independently Interconnections between partitions minimized Less hassle interfacing the subsystems Communication between subsystems usually costly [©Sherwani] Fall 2006 EE 5301 - VLSI Design Automation I

Example: Partitioning of a Circuit Input size: 48 Cut 1=4 Size 1=15 Cut 2=4 Size 2=16 Size 3=17 [©Sherwani] Fall 2006 EE 5301 - VLSI Design Automation I

Hierarchical Partitioning Levels of partitioning: System-level partitioning: Each sub-system can be designed as a single PCB Board-level partitioning: Circuit assigned to a PCB is partitioned into sub-circuits each fabricated as a VLSI chip Chip-level partitioning: Circuit assigned to the chip is divided into manageable sub-circuits NOTE: physically not necessary [©Sherwani] Fall 2006 EE 5301 - VLSI Design Automation I

Delay at Different Levels of Partitions x A B D C 10x PCB1 PCB2 20x [©Sherwani] Fall 2006 EE 5301 - VLSI Design Automation I

Partitioning: Formal Definition http://www.ece.umn.edu/users/kia/Courses/EE5301/ Partitioning: Formal Definition Input: Graph or hypergraph Usually with vertex weights (sizes) Usually weighted edges Constraints Number of partitions (K-way partitioning) Maximum capacity of each partition OR maximum allowable difference between partitions Objective Assign nodes to partitions subject to constraints s.t. the cutsize is minimized Tractability Is NP-complete  Maximum difference between partition sizes is usually specified as a percentage. For example, if 5% is the maximum allowable imbalance, then a partition cannot have more than 55% of the vertices (or sum of vertex weights) in a 2-way partitioning solution What does cutsize mean? It refers to the number (sum of weights) of the edges that are “cut”, i.e., connect two vertices from two different partitions Fall 2006 EE 5301 - VLSI Design Automation I VLSI Design Automation I – © Kia Bazargan

Kernighan-Lin (KL) Algorithm On non-weighted graphs An iterative improvement technique A two-way (bisection) partitioning algorithm The partitions must be balanced (of equal size) Iterate as long as the cutsize improves: Find a pair of vertices that result in the largest decrease in cutsize if exchanged Exchange the two vertices (potential move) “Lock” the vertices If no improvement possible, and still some vertices unlocked, then exchange vertices that result in smallest increase in cutsize W. Kernighan and S. Lin, Bell System Technical Journal, 1970. Fall 2006 EE 5301 - VLSI Design Automation I

Kernighan-Lin (KL) Algorithm Initialize Bipartition G into V1 and V2, s.t., |V1| = |V2|  1 n = |V| Repeat for i=1 to n/2 Find a pair of unlocked vertices vai V1 and vbi V2 whose exchange makes the largest decrease or smallest increase in cut-cost Mark vai and vbi as locked Store the gain gi. Find k, s.t. i=1..k gi=Gaink is maximized If Gaink > 0 then move va1,...,vak from V1 to V2 and vb1,...,vbk from V2 to V1. Until Gaink  0 Fall 2006 EE 5301 - VLSI Design Automation I

Kernighan-Lin (KL) Example http://www.ece.umn.edu/users/kia/Courses/EE5301/ Kernighan-Lin (KL) Example a e f b c g d h 4 { a, e } -2 5 -- 1 { d, g } 3 2 { c, f } { b, h } Step No. Vertex Pair Gain Cut-cost What is gain? What is the gain of swapping {a,e} in the first step? [©Sarrafzadeh] Fall 2006 EE 5301 - VLSI Design Automation I VLSI Design Automation I – © Kia Bazargan

Kernighan-Lin (KL) : Analysis http://www.ece.umn.edu/users/kia/Courses/EE5301/ Kernighan-Lin (KL) : Analysis Time complexity? Inner (for) loop Iterates n/2 times Iteration 1: (n/2) x (n/2) Iteration i: (n/2 – i + 1)2. Passes? Usually independent of n O(n3) Drawbacks? Local optimum Balanced partitions only No weight for the vertices High time complexity Hyper-edges? Weighted edges? Add “dummy” nodes Replace vertex of weight w with w vertices of size 1 Fall 2006 EE 5301 - VLSI Design Automation I VLSI Design Automation I – © Kia Bazargan

EE 5301 - VLSI Design Automation I Gain Calculation a1 b2 ai a2 b1 GA a3 b6 b4 GB a4 b5 b3 a5 a6 an b7 bj External cost Internal cost [©Kang] Fall 2006 EE 5301 - VLSI Design Automation I

Gain Calculation (cont.) Lemma: Consider any ai  A, bj  B. If ai, bj are interchanged, the gain is Proof: Total cost before interchange (T) between A and B Total cost after interchange (T’) between A and B Therefore [©Kang] Fall 2006 EE 5301 - VLSI Design Automation I

Gain Calculation (cont.) Lemma: Let Dx’, Dy’ be the new D values for elements of A - {ai} and B - {bj}. Then after interchanging ai & bj, Proof: The edge x-ai changed from internal in Dx to external in Dx’ The edge y-bj changed from internal in Dx to external in Dx’ The x-bj edge changed from external to internal The y-ai edge changed from external to internal More clarification in the next two slides [©Kang] Fall 2006 EE 5301 - VLSI Design Automation I

Clarification of the Lemma b bj a x ai Fall 2006 EE 5301 - VLSI Design Automation I

Clarification of the Lemma (cont.) Decompose Ix and Ex to separate edges from ai and bj: Write the equations before the move ... And after the move Fall 2006 EE 5301 - VLSI Design Automation I

EE 5301 - VLSI Design Automation I Example: KL 5 5 4 2 1 6 4 2 1 6 3 3 Step 1 - Initialization A = {2, 3, 4}, B = {1, 5, 6} A’ = A = {2, 3, 4}, B’ = B = {1, 5, 6} Step 2 - Compute D values D1 = E1 - I1 = 1-0 = +1 D2 = E2 - I2 = 1-2 = -1 D3 = E3 - I3 = 0-1 = -1 D4 = E4 - I4 = 2-1 = +1 D5 = E5 - I5 = 1-1 = +0 D6 = E6 - I6 = 1-1 = +0 Initial partition [©Kang] Fall 2006 EE 5301 - VLSI Design Automation I

EE 5301 - VLSI Design Automation I Example: KL (cont.) Step 3 - compute gains g21 = D2 + D1 - 2C21 = (-1) + (+1) - 2(1) = -2 g25 = D2 + D5 - 2C25 = (-1) + (+0) - 2(0) = -1 g26 = D2 + D6 - 2C26 = (-1) + (+0) - 2(0) = -1 g31 = D3 + D1 - 2C31 = (-1) + (+1) - 2(0) = 0 g35 = D3 + D5 - 2C35 = (-1) + (0) - 2(0) = -1 g36 = D3 + D6 - 2C36 = (-1) + (0) - 2(0) = -1 g41 = D4 + D1 - 2C41 = (+1) + (+1) - 2(0) = +2 g45 = D4 + D5 - 2C45 = (+1) + (+0) - 2(+1) = -1 g46 = D4 + D6 - 2C46 = (+1) + (+0) - 2(+1) = -1 The largest g value is g41 = +2 interchange 4 and 1 (a1, b1) = (4, 1) A’ = A’ - {4} = {2, 3} B’ = B’ - {1} = {5, 6} both not empty [©Kang] Fall 2006 EE 5301 - VLSI Design Automation I

EE 5301 - VLSI Design Automation I Example: KL (cont.) Step 4 - update D values of node connected to vertices (4, 1) D2’ = D2 + 2C24 - 2C21 = (-1) + 2(+1) - 2(+1) = -1 D5’ = D5 + 2C51 - 2C54 = +0 + 2(0) - 2(+1) = -2 D6’ = D6 + 2C61 - 2C64 = +0 + 2(0) - 2(+1) = -2 Assign Di = Di’, repeat step 3 : g25 = D2 + D5 - 2C25 = -1 - 2 - 2(0) = -3 g26 = D2 + D6 - 2C26 = -1 - 2 - 2(0) = -3 g35 = D3 + D5 - 2C35 = -1 - 2 - 2(0) = -3 g36 = D3 + D6 - 2C36 = -1 - 2 - 2(0) = -3 All values are equal; arbitrarily choose g36 = -3  (a2, b2) = (3, 6) A’ = A’ - {3} = {2}, B’ = B’ - {6} = {5} New D values are: D2’ = D2 + 2C23 - 2C26 = -1 + 2(1) - 2(0) = +1 D5’ = D5 + 2C56 - 2C53 = -2 + 2(1) - 2(0) = +0 New gain with D2  D2’, D5  D5’ g25 = D2 + D5 - 2C52 = +1 + 0 - 2(0) = +1  (a3, b3) = (2, 5) [©Kang] Fall 2006 EE 5301 - VLSI Design Automation I

EE 5301 - VLSI Design Automation I Example: KL (cont.) Step 5 - Determine the # of moves to take g1 = +2 g1 + g2 = +2 - 3 = -1 g1 + g2 + g3 = +2 - 3 + 1 = 0 The value of k for max G is 1 X = {a1} = {4}, Y = {b1} = {1} Move X to B, Y to A  A = {1, 2, 3}, B = {4, 5, 6} Repeat the whole process: • • • • • The final solution is A = {1, 2, 3}, B = {4, 5, 6} 5 4 2 1 6 3 Fall 2006 EE 5301 - VLSI Design Automation I

Fiduccia-Mattheyses (FM) Algorithm Modified version of KL A single vertex is moved across the cut in a single move  Unbalanced partitions Vertices are weighted Concept of cutsize extended to hypergraphs Special data structure to improve time complexity to O(n2) (Main feature) Can be extended to multi-way partitioning C. M. Fiduccia and R. M. Mattheyses, 19th DAC, 1982. Fall 2006 EE 5301 - VLSI Design Automation I

The FM Algorithm: Data Structure http://www.ece.umn.edu/users/kia/Courses/EE5301/ The FM Algorithm: Data Structure Ist Partition +pmax va1 va2 vb1 vb2 List of free vertices -pmax Vertex 1 2 . . . . . . . . . n 2nd Partition +pmax Why do we need the linked-list structure? Why do we need the pointer array (horizontal)? -pmax [©Sherwani] Fall 2006 EE 5301 - VLSI Design Automation I VLSI Design Automation I – © Kia Bazargan

The FM Algorithm: Data Structure Pmax Maximum gain pmax = dmax . wmax, where dmax = max degree of a vertex (# edges incident to it) wmax is the maximum edge weight What does it mean intuitively? -Pmax .. Pmax array Index i is a pointer to the list of unlocked vertices with gain i. Limit on size of partition A maximum defined for the sum of vertex weights in a partition (alternatively, the maximum ratio of partition sizes might be defined) Fall 2006 EE 5301 - VLSI Design Automation I

EE 5301 - VLSI Design Automation I The FM Algorithm Initialize Start with a balance partition A, B of G (can be done by sorting vertex weights in decreasing order, placing them in A and B alternatively) Iterations Similar to KL A vertex cannot move if violates the balance condition Choosing the node to move: pick the max gain in the partitions Moves are tentative (similar to KL) When no moves possible or no more unlocked vertices available, the pass ends When no move can be made in a pass, the algorithm terminates Fall 2006 EE 5301 - VLSI Design Automation I

EE 5301 - VLSI Design Automation I http://www.ece.umn.edu/users/kia/Courses/EE5301/ Why Hyperedges? For multi terminal nets, K-L may decompose them into many 2-terminal nets, but not efficient! Consider this example: If A = {1, 2, 3} B = {4, 5, 6}, graph model shows the cutsize = 4 but in the real circuit, only 3 wires cut Reducing the number of nets cut is more realistic than reducing the number of edges cut q 4 3 4 3 One way of converting hyperedges to edges is to replace each with a clique that connects all the terminals of the hyperedge This slide shows why this method might not work Of course, we can convert the hyperedge to an MST, but that requires knowledge of terminal locations. We usually do not have that information at the partitioning stage. Another method is to assign weight m/n to each net, where m is the weight of the hyperedge, and n is the number of edges in the clique that is formed q m q m 1 1 5 m q 5 k 2 k m 2 6 6 p p [©Kang] Fall 2006 EE 5301 - VLSI Design Automation I VLSI Design Automation I – © Kia Bazargan

Hyperedge to Edge Conversion A hyperedge can be converted to a “clique”. w=? w=2/(n-1) has been used, also w=2/n Best: w=4/(n2 – mod(n,2)) for n=3, w=4/(9-1)=0.5 Always necessary to convert hyper-edge to edge? 3 1 2 4 3 2 4 w “Real” cut=1 “net” cut=2w [©Keutzer] Fall 2006 EE 5301 - VLSI Design Automation I

FM Gain Calculation: Direct Hyperedge Calc FM is able to calculate gain directly using hyperedges ( not necessary to convert hyperedges to edges) Definition: Given a partition (A|B), we define the terminal distribution of n as an ordered pair of integers (A(n),B(n)), which represents the number of cells net n has in blocks A and B respectively (how fast can be computed?) Net is critical if there exists a cell on it such that if it were moved it would change the net’s cut state (whether it is cut or not). Net is critical if A(n)=0,1 or B(n)=0,1 [©Keutzer] Fall 2006 EE 5301 - VLSI Design Automation I

FM Gain Calc: Direct Hyperedge Calc (cont.) Gain of cell depends only on its critical nets: If a net is not critical, its cutstate cannot be affected by the move A net which is not critical either before or after a move cannot influence the gains of its cells Let F be the “from” partition of cell i and T the “to”: g(i) = FS(i) - TE(i), where: FS(i) = # of nets which have cell i as their only F cell TE(i) = # of nets connected to i and have an empty T side [©Keutzer] Fall 2006 EE 5301 - VLSI Design Automation I

Hyperedge Gain Calculation Example If node “a” moves to the other partition… h1 b a h2 c h3 d e h4 i f j g l k m n Fall 2006 EE 5301 - VLSI Design Automation I

Subgraph Replication to Reduce Cutsize Vertices are replicated to improve cutsize Good results if limited number of components replicated A’ A B B’ A’ B’ A B [©Sherwani] C. Kring and A. R. Newta, ICCAD, 1991. Fall 2006 EE 5301 - VLSI Design Automation I

EE 5301 - VLSI Design Automation I Clustering 3 4 1 6 2 5 Clustering Bottom-up process Merge heavily connected components into clusters Each cluster will be a new “node” “Hide” internal connections (i.e., connecting nodes within a cluster) “Merge” two edges incident to an external vertex, connecting it to two nodes in a cluster Can be a preprocessing step before partitioning Each cluster treated as a single node 3 4 6 1,2 5 1 2 3,4 6 1,2 5 3 1 2 Fall 2006 EE 5301 - VLSI Design Automation I

Other Partitioning Methods KL and FM have each held up very well Min-cut / max-flow algorithms Ford-Fulkerson – for unconstrained partitions Ratio cut Genetic algorithm Simulated annealing Fall 2006 EE 5301 - VLSI Design Automation I

EE 5301 - VLSI Design Automation I To Probe Further... B. Kernighan and S. Lin, "An Efficient Heuristic Procedure for Partitioning of Electrical Circuits", Bell System Technical Journal", pp291-307, 1970. C. M. Fiduccia and R. M. Mattheyses. "A linear-time heuristic for improving network partitions“, Proceedings of the Design Automation Conference, pp 174-181, 1982. George Karypis, Rajat Aggarwal, Vipin Kumar and Shashi Shekhar, "Multilevel hypergraph partitioning: application in VLSI domain", Design Automation Conference, pp. 526-529, 1997. George Karypis and Vipin Kumar, "Multilevel k-way hypergraph partitioning", Design Automation Conference, pp. 343-348, 1999. A. E. Caldwell, A. B. Kahng and I. L. Markov, "Hypergraph Partitioning With Fixed Vertices", Design Automation Conference (DAC), pp. 355-359, 1999. A. E. Caldwell, A. B. Kahng, I. L. Markov, "Design and Implementation of Move-Based Heuristics for VLSI Hypergraph Partitioning", ACM Journal on Experimental Algorithms, Vol. 5, 2000. Fall 2006 EE 5301 - VLSI Design Automation I