Determine the total wirelength for all nets describe your


Assignment

For this assignment, you will develop a partition algorithm and implement it in C++ using the OpenAccess (OA) API.

Problem 1: Determine the total wirelength for all nets.

This lab builds on your work from Lab 1, where you computed the half-perimeter wirelength (1-IPWL) of logic nets in a design. Write a small C++ routine to determine the HPWL for all nets in the design, including power, ground, clock, floating, etc. Justify your assumptions as necessary, like you did in Lab 1. For nets with more than two endpoints, use the half perimeter of the smallest bounding box that includes all endpoints. Output the total HPWL of the design.

In the report, describe your algorithm for computing total HPWL in words and include the total HPWL for the design.

Problem 2: Partition the placement.

Write a C++ routine to partition the instances of the design into two parts, where the partition should be as balanced as possible, and the cut cost should be minimized. The cost of the partition is defined as follows:

1. Balance cost B (# of gates in partitionl) of gates in partition2)I I (total # of gates).
2. Cut cost C= (total HPWL of cut nets) I (total HPWL of the design).

Your goal is to minimize the total cost (B C) and runtime. In other words, you should efficiently partition the design into two parts with similar gate counts, and the nets being cut should have small total HPWL. A cut net is defined as the net connected to at least one instance from each of the two partitions.

Note that the partition of your design should be physically reasonable, which is different from logically grouping the design. Fig. 1 shows some examples of valid cuts where the black box is the design placement and colored wires are the cuts. Fig. 2 shows examples of invalid cuts. You are not allowed to modify the design in any way.

1135_Valid Cuts.jpg

In the report, describe your approach, give the balance cost B, cut cost C, and the total cost (B+C). Your program should generate a text file named Lastname-FirstnameUIDUsernarneLab3 . result, which gives instance names of the two partitions, names of the nets being cut and their HPWL separated by comma. The content must follow the exact format given below.

Partitionl:
g8054
g8046
...
Partition2:
g8032
g8031
...
Cut Net:
n_190,3420
n_260,2280
...

Attachment:- Lab.rar

Solution Preview :

Prepared by a verified Expert
C/C++ Programming: Determine the total wirelength for all nets describe your
Reference No:- TGS02644687

Now Priced at $110 (50% Discount)

Recommended (95%)

Rated (4.7/5)