1. Setup.

  1. Create a directory and download the following file to the directory.

  2. Untar it.

  3. You will see a library directory (lib) and a design directory (design).

  4. Go to the design directory. Run the following commands to load a given design.

  5. Once the design is loaded, run "win" to open the GUI window.

  6. Also, run the following command. Whenever you load a new design, you should run the following command.

  7. Read the followings carefully.

  8. The followings show how to use the GUI window.

  9. You will use the following commands to insert buffers.

  10. If you modify (perturb) the current layout (e.g., insert a buffer, delete a buffer, change the type of a cell, etc.), you should run "routeDesign" to route the design before you run "report_timing".


2. Buffer insertion

  1. Run "report_timing" to obtain the initial slack (S1). Show this initial slack in your report.

  2. Insert a buffer of type BUF_X1 into the center of the layout (2500, 5).

  3. Run "routeDesign" to re-route the design.

  4. Run "report_timing" to obtain a new slack (S2). Did it increase or decrease? Show this slack in your report.

  5. Change the type of the inserted buffer to "BUF_X4". Re-route and get a new slack value (S3). Did it increase or decrease? Show this slack in your report.

  6. Insert another buffer of type BUF_X4 into (1250, 5). Note that you should always check the name of the net you are optimizing before you run "ecoAddRepeater". Re-route and get a slack (S4). Did it increase or decrease? Show this slack in your report.

  7. Insert another buffer of type BUF_X4 into (3750, 5). Re-route and get a slack (S5). Did it increase or decrease? Show this slack in your report.

  8. Delete all the inserted buffers. Re-route the design and get a slack (S6). This slack should be the same as the initial slack (S1).


3. Optimal buffer insertion