EE 582 (Physical Design Automation of VLSI Circuits and Systems)
Assignment 6
In this assignment, you are supposed to complete a sequence-pair-based floorplanning code and run it for a few benchmarks.
Download the following file into your working directory.
wget http://eecs.wsu.edu/~daehyun/teaching/2014_EE582/assignments/a06.tar.gz
Unzip it.
tar xvfz a06.tar.gz
You will see the following files.
Makefile: make file
sp.h and sp.cpp: sequence-pair codes
main.cpp: simulated annealing code
b#.blk: benchmark files (#=5, 10, 30, 100, 150)
You can compile the source codes by just running "make".
Once you have an executable (its name is sa by default), you can run it as follows:
./sa b5.blk (or other benchmark files)
It prints out temperature values and initial/final area values at the end of the messages.
It also generates two output files, init.plt and final.plt, for the initial and final floorplans, respectively. You can see them using gnuplot as follows:
gnuplot init.plt
1. Complete the source code and run it for the five benchmarks.
In main.cpp, find function "main ()". In the function, sp is a sequence-pair variable that has all the information of the blocks and a sequence pair.
In main.cpp, we call "simulated_annealing". Your task is to complete the simulated annealing function.
Now, find function "simulated_annealing()" in main.cpp. The function is empty, but has some comments.
Complete the function. Complete function "metropolis()" too. (Refer to the comments in the functions.)
What to submit
Zip your source code and submit it to daehyun@eecs.wsu.edu
Run it for the five benchmarks. For each benchmark, submit an initial and an final area values. Submit their initial and final floorplan snapshots too.