VLSI Physical Design: From Graph Partitioning to Timing Closure

Similar documents
Partitioning. Course contents: Readings. Kernighang-Lin partitioning heuristic Fiduccia-Mattheyses heuristic. Chapter 7.5.

Unit 5A: Circuit Partitioning

ECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms

CAD Algorithms. Circuit Partitioning

UNIVERSITY OF CALGARY. Force-Directed Partitioning Technique for 3D IC. Aysa Fakheri Tabrizi A THESIS SUBMITTED TO THE FACULTY OF GRADUATE STUDIES

Genetic Algorithm for Circuit Partitioning

VLSI Physical Design: From Graph Partitioning to Timing Closure

VLSI Physical Design: From Graph Partitioning to Timing Closure

CS612 Algorithms for Electronic Design Automation. Global Routing

COMPARATIVE STUDY OF CIRCUIT PARTITIONING ALGORITHMS

Chapter 5 Global Routing

CS 140: Sparse Matrix-Vector Multiplication and Graph Partitioning

Graph and Hypergraph Partitioning for Parallel Computing

A Linear-Time Heuristic for Improving Network Partitions

Eu = {n1, n2} n1 n2. u n3. Iu = {n4} gain(u) = 2 1 = 1 V 1 V 2. Cutset

VLSI Physical Design: From Graph Partitioning to Timing Closure

Preclass Warmup. ESE535: Electronic Design Automation. Motivation (1) Today. Bisection Width. Motivation (2)

An Introduction to FPGA Placement. Yonghong Xu Supervisor: Dr. Khalid

Multilevel Graph Partitioning

VLSI Physical Design: From Graph Partitioning to Timing Closure

Large Scale Circuit Partitioning

Multilevel Algorithms for Multi-Constraint Hypergraph Partitioning

Research Article Accounting for Recent Changes of Gain in Dealing with Ties in Iterative Methods for Circuit Partitioning

Efficient FM Algorithm for VLSI Circuit Partitioning

Multi-Objective Hypergraph Partitioning Algorithms for Cut and Maximum Subdomain Degree Minimization

Requirements of Load Balancing Algorithm

Hardware-Software Codesign

The Partitioning Problem

Implementation of Multi-Way Partitioning Algorithm

Key terms and concepts: Divide and conquer system partitioning floorplanning chip planning placement routing global routing detailed routing

Hypergraph Partitioning With Fixed Vertices

Introduction VLSI PHYSICAL DESIGN AUTOMATION

Can Recursive Bisection Alone Produce Routable Placements?

Lecture 19: Graph Partitioning

BACKEND DESIGN. Circuit Partitioning

Parallel Algorithm for Multilevel Graph Partitioning and Sparse Matrix Ordering

Place and Route for FPGAs

algorithms, i.e., they attempt to construct a solution piece by piece and are not able to offer a complete solution until the end. The FM algorithm, l

Circuit Placement: 2000-Caldwell,Kahng,Markov; 2002-Kennings,Markov; 2006-Kennings,Vorwerk

CIRCUIT PARTITIONING is a fundamental problem in

L14 - Placement and Routing

Penalized Graph Partitioning for Static and Dynamic Load Balancing

ECE260B CSE241A Winter Placement

Multilevel k-way Hypergraph Partitioning

VLSI Physical Design: From Graph Partitioning to Timing Closure

An Effective Algorithm for Multiway Hypergraph Partitioning

Graph Partitioning for High-Performance Scientific Simulations. Advanced Topics Spring 2008 Prof. Robert van Engelen

k-way Hypergraph Partitioning via n-level Recursive Bisection

A Network Flow Approach for Hierarchical Tree Partitioning

Reference. Wayne Wolf, FPGA-Based System Design Pearson Education, N Krishna Prakash,, Amrita School of Engineering

VLSI Circuit Partitioning by Cluster-Removal Using Iterative Improvement Techniques

Graphs and Network Flows ISE 411. Lecture 7. Dr. Ted Ralphs

Lecture 9: Load Balancing & Resource Allocation

IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 19, NO. 2, FEBRUARY

Automated system partitioning based on hypergraphs for 3D stacked integrated circuits. FOSDEM 2018 Quentin Delhaye

CprE 583 Reconfigurable Computing

Partitioning With Terminals: A New Problem and New Benchmarks

VLSI Circuit Partitioning by Cluster-Removal Using Iterative Improvement Techniques

A Divisive clustering technique for maximizing the modularity

Placement Algorithm for FPGA Circuits

Multi-Resource Aware Partitioning Algorithms for FPGAs with Heterogeneous Resources

Lesson 2 7 Graph Partitioning

Hardware/Software Codesign

Iterative-Constructive Standard Cell Placer for High Speed and Low Power

PARALLEL PERFORMANCE DIRECTED TECHNOLOGY MAPPING FOR FPGA. Laurent Lemarchand. Informatique. ea 2215, D pt. ubo University{ bp 809

CHAPTER 1 at a glance

VLSI Physical Design: From Graph Partitioning to Timing Closure

A Recursive Coalescing Method for Bisecting Graphs

Computer Engineering Mekelweg 4, 2628 CD Delft The Netherlands MSc THESIS. Design Partitioning for Custom Hardware Emulation

Hypergraph-Partitioning-Based Decomposition for Parallel Sparse-Matrix Vector Multiplication

Parallel Multilevel Algorithms for Hypergraph Partitioning

On Covering a Graph Optimally with Induced Subgraphs

THE ISPD98 CIRCUIT BENCHMARK SUITE

Acyclic Multi-Way Partitioning of Boolean Networks

A New K-Way Partitioning Approach. Bernhard M. Riess, Heiko A. Giselbrecht, and Bernd Wurth. Technical University of Munich, Munich, Germany

Multiway Netlist Partitioning onto FPGA-based Board Architectures

Overview of Trilinos and PT-Scotch

COE 561 Digital System Design & Synthesis Introduction

Local Search Approximation Algorithms for the Complement of the Min-k-Cut Problems

Improved Algorithms for Hypergraph Bipartitioning

Chapter 6 Detailed Routing

EN2911X: Reconfigurable Computing Lecture 13: Design Flow: Physical Synthesis (5)

Minimizing Clock Domain Crossing in Network on Chip Interconnect

Estimation of Wirelength

Placement ABOUT THIS CHAPTER 11.1 INTRODUCTION CHAPTER. Chris Chu Iowa State University, Ames, Iowa

Hypergraph-Partitioning Based Decomposition for Parallel Sparse-Matrix Vector Multiplication

Multi-Objective Hypergraph Partitioning Algorithms for Cut and Maximum Subdomain Degree Minimization

Optimality, Scalability and Stability Study of Partitioning and Placement Algorithms

(Lec 14) Placement & Partitioning: Part III

General Models for Optimum Arbitrary-Dimension FPGA Switch Box Designs

CHAPTER 6 DEVELOPMENT OF PARTICLE SWARM OPTIMIZATION BASED ALGORITHM FOR GRAPH PARTITIONING

Silicon Virtual Prototyping: The New Cockpit for Nanometer Chip Design

CAD Flow for FPGAs Introduction

Physical Design of Digital Integrated Circuits (EN0291 S40) Sherief Reda Division of Engineering, Brown University Fall 2006

Effective Iterative Techniques for Fingerprinting Design IP

Mincut Placement with FM Partitioning featuring Terminal Propagation. Brett Wilson Lowe Dantzler

HIGH-LEVEL SYNTHESIS

EE382V: System-on-a-Chip (SoC) Design

Exact Algorithms for NP-hard problems

6. Tabu Search. 6.3 Minimum k-tree Problem. Fall 2010 Instructor: Dr. Masoud Yaghini

Transcription:

Chapter Netlist and System Partitioning Original Authors: Andrew B. Kahng, Jens, Igor L. Markov, Jin Hu

Chapter Netlist and System Partitioning. Introduction. Terminology. Optimization Goals. Partitioning Algorithms.. Kernighan-Lin (KL) Algorithm.. Extensions of the Kernighan-Lin Algorithm.. Fiduccia-Mattheyses (FM) Algorithm. Framework for Multilevel Partitioning.. Clustering.. Multilevel Partitioning. System Partitioning onto Multiple FPGAs

. Introduction System Specification ENTITY test is port a: in bit; end ENTITY test; Architectural Design Functional Design and Logic Design Partitioning Chip Planning Circuit Design Placement Physical Design Clock Tree Synthesis DRC LVS ERC Physical Verification and Signoff Fabrication Packaging and Testing Signal Routing Timing Closure Chip

. Introduction Circuit: Cut c b Cut c a Block A Block B Block A Block B Cut c a : four external connections Cut c b : two external connections

. Terminology Block (Partition) Graph G : Nodes,,. Cells Graph G : Nodes,,. Collection of cut edges Cut set: (,), (,), (,),

. Optimization Goals Given a graph G(V,E) with V nodes and E edges where each node v V and each edge e E. Each node has area s(v) and each edge has cost or weight w(e). The objective is to divide the graph G into k disjoint subgraphs such that all optimization goals are achieved and all original edge relations are respected.

. Optimization Goals In detail, what are the optimization goals? Number of connections between partitions is minimized Each partition meets all design constraints (size, number of external connections..) Balance every partition as well as possible How can we meet these goals? Unfortunately, this problem is NP-hard Efficient heuristics are developed in the 90s and 90s. They are high quality and in low-order polynomial time.

Chapter Netlist and System Partitioning. Introduction. Terminology. Optimization Goals. Partitioning Algorithms.. Kernighan-Lin (KL) Algorithm.. Extensions of the Kernighan-Lin Algorithm.. Fiduccia-Mattheyses (FM) Algorithm. Framework for Multilevel Partitioning.. Clustering.. Multilevel Partitioning. System Partitioning onto Multiple FPGAs

.. Kernighan-Lin (KL) Algorithm Given: A graph with n nodes where each node has the same weight. Goal: A partition (division) of the graph into two disjoint subsets A and B with minimum cut cost and A = B = n. Example: n = Block A Block B 9

.. Kernighan-Lin (KL) Algorithm Terminology Cost D(v) of moving a node v D(v) = E c (v) E nc (v), where E c (v) is the set of v s incident edges that are cut by the cut line, and E nc (v) is the set of v s incident edges that are not cut by the cut line. Node : D() = -= High costs (D > 0) indicate that the node should move, while low costs (D < 0) indicate that the node should stay within the same partition. Node : D() = -= 0

.. Kernighan-Lin (KL) Algorithm Terminology Gain of swapping a pair of nodes a und b g = D(a) + D(b) - * c(a,b), where D(a), D(b) are the respective costs of nodes a, b c(a,b) is the connection weight between a and b: If an edge exists between a and b, then c(a,b) = edge weight (here ), otherwise, c(a,b) = 0. The gain g indicates how useful the swap between two nodes will be The larger g, the more the total cut cost will be reduced

.. Kernighan-Lin (KL) Algorithm Terminology Node : Gain of swapping a pair of nodes a und b D() = -= g = D(a) + D(b) - * c(a,b), where D(a), D(b) are the respective costs of nodes a, b c(a,b) is the connection weight between a and b: If an edge exists between a and b, then c(a,b) = edge weight (here ), Node : D() = -= otherwise, c(a,b) = 0. g (,) = D() + D() - * c(a,b) = + = => Swapping nodes and would reduce the cut size by

.. Kernighan-Lin (KL) Algorithm Terminology Node : Gain of swapping a pair of nodes a und b D() = -= g = D(a) + D(b) - * c(a,b), where D(a), D(b) are the respective costs of nodes a, b c(a,b) is the connection weight between a and b: If an edge exists between a and b, then c(a,b) = edge weight (here ), Node : D() = -= otherwise, c(a,b) = 0. g (,) = D() + D() - * c(a,b) = + 0 = => Swapping nodes and would reduce the cut size by

.. Kernighan-Lin (KL) Algorithm Terminology Gain of swapping a pair of nodes a und b The goal is to find a pair of nodes a and b to exchange such that g is maximized and swap them.

.. Kernighan-Lin (KL) Algorithm Terminology Maximum positive gain G m of a pass The maximum positive gaing m corresponds to the best prefix of m swaps within the swap sequence of a given pass. These m swaps lead to the partition with the minimum cut cost encountered during the pass. G m is computed as the sum of Δg values over the first m swaps of the pass, with m chosen such that G m is maximized. m G m = g i i=

.. Kernighan-Lin (KL) Algorithm One pass Step 0: V = n nodes {A, B} is an initial arbitrary partitioning Step : i = Compute D(v) for all nodes v V Step : Choose a i and b i such that g i = D(a i ) + D(b i ) * c(a i b i ) is maximized Swap and fix a i and b i Step : If all nodes are fixed, go to Step. Otherwise Compute and update D values for all nodes that are not connected to a i and b i and are not fixed. i = i + Go to Step Step : m Find the move sequence...m ( m i), such that = i = If G m > 0, go to Step. Otherwise, END Step : Execute m swaps, reset remaining nodes Go to Step G m g is maximized i

.. Kernighan-Lin (KL) Algorithm Example Cut cost: 9 Not fixed:,,,,,,,

.. Kernighan-Lin (KL) Algorithm Example Cut cost: 9 Not fixed:,,,,,,, Costs D(v) of each node: D() = D() = D() = D() = D() = D() = D() = D() = Nodes that lead to maximum gain

.. Kernighan-Lin (KL) Algorithm Example Cut cost: 9 Not fixed:,,,,,,, Costs D(v) of each node: D() = D() = D() = D() = D() = D() = D() = D() = g = +-0 = Swap (,) G = g = Nodes that lead to maximum gain Gain after node swapping Gain in the current pass 9

.. Kernighan-Lin (KL) Algorithm Example Cut cost: 9 Not fixed:,,,,,,, D() = D() = D() = D() = D() = D() = D() = D() = g = +-0 = Swap (,) G = g = Nodes that lead to maximum gain Gain after node swapping Gain in the current pass 0

.. Kernighan-Lin (KL) Algorithm Example Cut cost: 9 Not fixed:,,,,,,, Cut cost: Not fixed:,,,,, D() = D() = D() = D() = D() = D() = D() = D() = g = +-0 = Swap (,) G = g =

.. Kernighan-Lin (KL) Algorithm Example Cut cost: 9 Not fixed:,,,,,,, Cut cost: Not fixed:,,,,, D() = D() = D() = D() = D() = D() = D() = D() = D() = - D() = D() = - D()=- D() = D()=- g = +-0 = Swap (,) G = g =

.. Kernighan-Lin (KL) Algorithm Example Cut cost: 9 Not fixed:,,,,,,, Cut cost: Not fixed:,,,,, D() = D() = D() = D() = D() = D() = D() = D() = g = +-0 = Swap (,) G = g = D() = - D() = D() = - D()=- D() = D()=- g = +-0 = Swap (,) G = G + g = Nodes that lead to maximum gain Gain after node swapping Gain in the current pass

.. Kernighan-Lin (KL) Algorithm Example Cut cost: 9 Not fixed:,,,,,,, Cut cost: Not fixed:,,,,, Cut cost: Not fixed:,,, Cut cost: Not fixed:, D() = D() = D() = D() = D() = D() = D() = D() = D() = - D() = D() = - D()=- D() = D()=- D() = - D() = - D()=- D()=- Nodes that lead to maximum gain g = +-0 = Swap (,) G = g = g = +-0 = Swap (,) G = G + g = g = ---0 = - Swap (,) G = G + g = Gain after node swapping Gain in the current pass

.. Kernighan-Lin (KL) Algorithm Example Cut cost: 9 Not fixed:,,,,,,, Cut cost: Not fixed:,,,,, Cut cost: Not fixed:,,, Cut cost: Not fixed:, Cut cost: 9 Not fixed: D() = D() = D() = D() = D() = D() = D() = D() = D() = - D() = D() = - D()=- D() = D()=- D() = - D() = - D()=- D()=- D() = - D()=- g = +-0 = Swap (,) G = g = g = +-0 = Swap (,) G = G + g = g = ---0 = - Swap (,) G = G + g = g = ---0 = - Swap (,) G = G + g = 0

.. Kernighan-Lin (KL) Algorithm Example D() = D() = D() = D() = D() = D() = D() = D() = D() = - D() = D() = - D()=- D() = D()=- D() = - D() = - D()=- D()=- D() = - D()=- g = +-0 = Swap (,) G = g = g = +-0 = Swap (,) G = G + g = g = ---0 = - Swap (,) G = G + g = g = ---0 = - Swap (,) G = G + g = 0 Maximum positive gain G m = with m =.

.. Kernighan-Lin (KL) Algorithm Example D() = D() = D() = D() = D() = D() = D() = D() = D() = - D() = D() = - D()=- D() = D()=- D() = - D() = - D()=- D()=- D() = - D()=- g = +-0 = Swap (,) G = g = g = +-0 = Swap (,) G = G + g = g = ---0 = - Swap (,) G = G + g = g = ---0 = - Swap (,) G = G + g = 0 Maximum positive gain G m = with m =. Since G m > 0, the first m = swaps (,) and (,) are executed. Since G m > 0, more passes are needed until G m 0.

.. Extensions of the Kernighan-Lin (KL) Algorithm Unequal partition sizes Apply the KL algorithm with only min( A, B ) pairs swapped Unequal node weights Try to rescale weights to integers, e.g., as multiples of the greatest common divisor of all node weights Maintain area balance or allow a one-move deviation from balance k-way partitioning (generating k partitions) Apply the KL two-way partitioning algorithm to all possible pairs of partitions Recursive partitioning (convenient when k is a power of two) Direct k-way extensions exist

.. Fiduccia-Mattheyses (FM) Algorithm Single cells are moved independently instead of swapping pairs of cells --- cannot and do not need to maintain exact partition balance The area of each individual cell is taken into account Applicable to partitions of unequal size and in the presence of initially fixed cells Cut costs are extended to include hypergraphs nets with + pins While the KL algorithm aims to minimize cut costs based on edges, the FM algorithm minimizes cut costs based on nets Nodes and subgraphs are referred to as cells and blocks, respectively 9

.. Fiduccia-Mattheyses (FM) Algorithm Given: a hypergraph G(V,H) with nodes and weighted hyperedges partition size constraints Goal: to assign all nodes to disjoint partitions, so as to minimize the total cost (weight) of all cut nets while satisfying partition size constraints 0

.. Fiduccia-Mattheyses (FM) Algorithm Terminology Gain g(c) for cell c g(c) = FS(c) TE(c), a b e where the moving force FS(c) is the number of nets connected to c but not connected to any other cells within c s partition, i.e., cut nets that connect only to c, and c d the retention force TE(c) is the number of uncut nets connected to c. Cell : FS() = 0 TE() = g() = - The higher the gain g(c), the higher is the priority to move the cell c to the other partition.

.. Fiduccia-Mattheyses (FM) Algorithm Terminology Gain g(c) for cell c g(c) = FS(c) TE(c), a b e where the moving force FS(c) is the number of nets connected to c but not connected to any other cells within c s partition, i.e., cut nets that connect only to c, and c d the retention force TE(c) is the number of uncut nets connected to c. Cell : FS() = TE() = g() = Cell : FS() = 0 TE() = g() = - Cell : FS() = TE() = g() = 0 Cell : FS() = TE() = g() = 0 Cell : FS() = TE() = 0 g() = a b c d e

.. Fiduccia-Mattheyses (FM) Algorithm Terminology Maximum positive gain G m of a pass The maximum positive gain G m is the cumulative cell gain of m moves that produce a minimum cut cost. G m is determined by the maximum sum of cell gains g over a prefix of m moves in a pass m G m = g i i=

.. Fiduccia-Mattheyses (FM) Algorithm Terminology Ratio factor The ratio factor is the relative balance between the two partitions with respect to cell area It is used to prevent all cells from clustering into one partition. The ratio factor r is defined as r = area( A) area( A) + area( B) where area(a) and area(b) are the total respective areas of partitions A and B

.. Fiduccia-Mattheyses (FM) Algorithm Terminology Balance criterion The balance criterion enforces the ratio factor. To ensure feasibility, the maximum cell area area max (V) must be taken into account. A partitioning of V into two partitions A and B is said to be balanced if [ r area(v) area max (V) ] area(a) [ r area(v) + area max (V) ]

.. Fiduccia-Mattheyses (FM) Algorithm Terminology Base cell A base cell is a cell c that has the greatest cell gain g(c) among all free cells, and whose move does not violate the balance criterion. Base cell Cell : FS() = TE() = g() = Cell : FS() = 0 TE() = g() = - Cell : FS() = TE() = g() = 0 Cell : FS() = TE() = g() = 0

.. Fiduccia-Mattheyses (FM) Algorithm - One pass Step 0: Compute the balance criterion Step : Compute the cell gain g of each cell Step : i = Choose base cell c that has maximal gain g, move this cell Step : Fix the base cell c i Update all cells gains that are connected to critical nets via the base cell c i Step : If all cells are fixed, go to Step. If not: Choose next base cell c i with maximal gain g i and move this cell i = i +, go to Step Step : m Determine the best move sequence c, c,.., c m ( m i), so that = i = If G m > 0, go to Step. Otherwise, END Step : Execute m moves, reset all fixed nodes Start with a new pass, go to Step G m g is maximized i

.. Fiduccia-Mattheyses (FM) Algorithm Example A a b c d e B Given: Ratio factor r = 0, area(cell_) = area(cell_) = area(cell_) = area(cell_) = area(cell_) =. Step 0: Compute the balance criterion [ r area(v) area max (V) ] area(a) [ r area(v) + area max (V) ] 0, * = area(a) = 0, * +.

.. Fiduccia-Mattheyses (FM) Algorithm Example A B a b e c d Step : Compute the gains of each cell Cell : FS(Cell_) = TE(Cell_) = g(cell_) = Cell : FS(Cell_) = 0 TE(Cell_) = g(cell_) = - Cell : FS(Cell_) = TE(Cell_) = g(cell_) = 0 Cell : FS(Cell_) = TE(Cell_) = g(cell_) = 0 Cell : FS(Cell_) = TE(Cell_) = 0 g(cell_) = 9

.. Fiduccia-Mattheyses (FM) Algorithm Example A a b c d e B Cell: FS(Cell_) = TE(Cell_) = g(cell_) = Cell : FS(Cell_) = 0 TE(Cell_) = g(cell_) = - Cell : FS(Cell_) = TE(Cell_) = g(cell_) = 0 Cell : FS(Cell_) = TE(Cell_) = g(cell_) = 0 Cell : FS(Cell_) = TE(Cell_) = 0 g(cell_) = Step : Select the base cell Possible base cells are Cell and Cell Balance criterion after moving Cell : area(a) = area(cell_) = Balance criterion after moving Cell : area(a) = area(cell_) + area(cell_) + area(cell_) = Both moves respect the balance criterion, but Cell is selected, moved, and fixed as a result of the tie-breaking criterion. 0

.. Fiduccia-Mattheyses (FM) Algorithm Example A B a b c d e Step : Fix base cell, update g values Cell : FS(Cell_) = TE(Cell_) = 0 g(cell_) = Cell : FS(Cell_) = 0 TE(Cell_) = g(cell_) = - Cell : FS(Cell_) = 0 TE(Cell_) = g(cell_) = - Cell : FS(Cell_) = 0 TE(Cell_) = g(cell_) = - After Iteration i = : Partition A =, Partition B =,,,, with fixed cell.

.. Fiduccia-Mattheyses (FM) Algorithm Example A a b e B Iteration i = Cell : FS(Cell_) = TE(Cell_) = 0 g(cell_) = Cell : FS(Cell_) = 0 TE(Cell_) = g(cell_) = - Cell : FS(Cell_) = 0 TE(Cell_) = g(cell_) = - c d Cell : FS(Cell_) = 0 TE(Cell_) = g(cell_) = - Iteration i = Cell has maximum gain g =, area(a) = 0, balance criterion is violated. Cell has next maximum gain g = -, area(a) =, balance criterion is met. Cell has next maximum gain g = -, area(a) = 9, balance criterion is met. Move cell, updated partitions: A = {,}, B = {,,}, with fixed cells {,}

.. Fiduccia-Mattheyses (FM) Algorithm Example A Iteration i = a b c d e B Cell : g(cell_) = Cell : g(cell_) = 0 Cell : g(cell_) = - Iteration i = Cell has maximum gain g =, area(a) =, balance criterion is met. Move cell, updated partitions: A = {}, B = {,,,}, with fixed cells {,,}

.. Fiduccia-Mattheyses (FM) Algorithm Example B A Iteration i = a b e Cell : g(cell_) = 0 Cell : g(cell_) = - c d Iteration i = Cell has maximum gain g = 0, area(a) =, balance criterion is met. Move cell, updated partitions: A = {,}, B = {,,}, with fixed cells {,,,}

.. Fiduccia-Mattheyses (FM) Algorithm Example B A Iteration i = a b e Cell : g(cell_) = - c d Iteration i = Cell has maximum gain g = -, area(a) = 0, balance criterion is met. Move cell, updated partitions: A = {,,}, B = {,}, all cells {,,,,} fixed.

.. Fiduccia-Mattheyses (FM) Algorithm Example Step : Find best move sequence c c m G = g = G = g + g = 0 G = g + g + g = B a b e A G = g + g + g + g = G = g + g + g + g + g = 0. c d m Maximum positive cumulative gain = G m = g i = found in iterations, and. i The move prefix m = is selected due to the better balance ratio (area(a) = ); the four cells,, and are then moved. Result of Pass : Current partitions: A = {,}, B = {,,}, cut cost reduced from to.

Runtime difference between KL & FM Runtime of partitioning algorithms KL is sensitive to the number of nodes and edges FM is sensitive to the number of nodes and nets (hyperedges) Asymptotic complexity of partitioning algorithms KL has cubic time complexity per pass FM has linear time complexity per pass

Chapter Netlist and System Partitioning. Introduction. Terminology. Optimization Goals. Partitioning Algorithms.. Kernighan-Lin (KL) Algorithm.. Extensions of the Kernighan-Lin Algorithm.. Fiduccia-Mattheyses (FM) Algorithm. Framework for Multilevel Partitioning.. Clustering.. Multilevel Partitioning. System Partitioning onto Multiple FPGAs

.. Clustering To simplify the problem, groups of tightly-connected nodes can be clustered, absorbing connections between these nodes Size of each cluster is often limited so as to prevent degenerate clustering, i.e. a single large cluster dominates other clusters Refinement should satisfy balance criteria 9

.. Clustering a d d a d a,b,c b c e e b c,e Initital graph Possible clustering hierarchies of the graph 0 Springer 0

.. Multilevel Partitioning 0 Springer Verlag

. System Partitioning onto Multiple FPGAs FPGA FPGA FPGA FPGA FPGA FPGA RAM Logic Logic FPIC FPIC FPIC FPIC 0 Springer Verlag Reconfigurable system with multiple FPGA and FPIC devices Mapping of a typical system architecture onto multiple FPGAs

Summary of Chapter Circuit netlists can be represented by graphs Partitioning a graph means assigning nodes to disjoint partitions Total size of each partition (number/area of nodes) is limited Objective: minimize the number connections between partitions Basic partitioning algorithms Move-based, move are organized into passes KL swaps pairs of nodes from different partitions FM re-assigns one node at a time FM is faster, usually more successful Multilevel partitioning Clustering FM partitioning Refinement (also uses FM partitioning) Application: system partitioning into FPGAs Each FPGA is represented by a partition