Sei sulla pagina 1di 3

System partitioning: Goal: The goal of partitioning is to divide the part of the system so that each partition is a single

ASIC i.e. Partition a system into a number of ASICs. The objectives are: 1. 2. 3. 4. 5. A maximum size for each ASIC. A maximum number for each ASIC. A maximum number of connections for each ASIC. A maximum number of total connections between all ASIC. Minimize the number of external connections between the ASICs. Keep each ASIC smaller than a maximum size. 6. Partitioning is also needed to handle engineering change orders.

Partitioning: we cant do What is the cheapest way to build my system? We can do How do I split this circuit into pieces that will fit on a chip?

Measuring Connectivity: A network has circuit modules (logic cells) and terminals (connectors or pins) Modeled by a graph with vertexes (logic cells) connected by edges (electrical connections, Nets or signals) Cutset Net cutset Edge cutset (for the graph) External connections Internal connections Net cuts Edge cuts

Two types of network partitioning: 1. Constructive partitioning and 2. Iterative partitioning improvement

1. Constructive Partitioning: seed growth or cluster growth uses a seed cell and forms clusters or cliques 2. Iterative Partitioning Improvement: interchange (swap two) and group (swap many) migration, greedy algorithms find a local minimum. Group migration algorithms such as the KernighanLin algorithm (basis of min-cut methods) can do better.

Group Migration algorithm: Group migration comes under iterative partitioning improvements algorithms and consists of swapping groups of logic cell between partitions. The group migration algorithms are better than simple interchange methods. Input: Hypergraph H(V, E) and an initial partition.Cost function and size constraints.

1. One pass of moves. 1.1 Choose and perform the best move. 1.2 Lock the moved modules. 1.3 Update the gain of unlocked modules. 1.4 Repeat Steps 1.1-1.3 until all modules are locked or no move is feasible. 1.5 Find and execute the best subsequence of the move. Undo the rest of the sequence. 2. Use the previous result as an initial partition.

3. Repeat the pass (Steps and 2) until there is no more improvement. Figure 18 illustrates the cost of a sequence of moves. This algorithm escapes from local optima by a whole sequence of the moves even when a single move may produce a negative gain. In the following, we discuss variations of several parts in the process: basic moves (Step 1.1), data structure, gains (Steps 1.1 and 1.3). At the end of this subsection, we introduce a net based move and a simulated annealing approach.

Potrebbero piacerti anche