This is the first version of the router proposed in "A Novel Framework for Multilevel Routing Considering Routability and Performance" (Authors: Shih-Ping Lin and Yao-Wen Chang) at ICCAD 2002. Code written by Shih Ping Lin. (c) 2002 Shih Ping Lin, The Electronic Design Automation (EDA) Laboratory, National Taiwan University, Taiwan, and The VLSI Systems Laboratory, National Chiao Tung University, Taiwan. ====================================================================================== WHAT IT DOES? It reads MCM examples and several standard cell examples, which are provided by the authors of "Multilevel Approach to Full-Chip Gridless Routing" at ICCAD 2001 and routes them for routability or performance as you want. ====================================================================================== HOW TO COMPILE THE ROUTER? An executable file named MR, which is compiled at a 450 MHz SUN Sparc Ultra-60 workstation with 2GB memory is provided to you. Please run the file on a compatible machine. If you want to compile the router yourself, a makefile is privided for you. Modify it suitable to compile at your system. Beside the source code at our web site, you also need some other resources: (a)LEDA Go to http://www.algorithmic-solutions.com/index.html to obtain it. (b)Layout Database library ("layoutdb.h" and "layoutdb.a"). Provided by UCLA VLSI CAD Lab (to be appeared on their web site). (c)Examples Provided by UCLA VLSI CAD Lab (to be appeared on their web site). You need to put (b) in the some directory with our code to compile and lead the makefile to find the LEDA directory. ====================================================================================== HOW TO RUN THE ROUTER? (First, you should go to XXX to obtain the example provided by UCLA VLSI CAD Lab.) There are several perl script files included in the package: "job1" -- a perl script file to run S5378 "job2" -- a perl script file to run S9234 "job3" -- a perl script file to run S13207 "job4" -- a perl script file to run S15850 "job5" -- a perl script file to run S38417 "job6" -- a perl script file to run S38584 "job_struct" -- a perl script file to run Struct "job_primary1" -- a perl script file to run Prim1 "job_primary2" -- a perl script file to run Prim2 "job_mcc1" -- a perl script file to run Mcc1 "job_mcc2" -- a perl script file to run Mcc2 To run the program, please check perl location of your machine in the above perl script files (default is set to usr/local/bin/perl, type "which perl" in the command line to confirm it). Change execution mode of those files to executable if they are not. The execution command in those files looked like this: MR () , where MR -- the executable file, -- the example file you want to route, -- indicating routability mode or performance mode, (1 is for routability mode, 2 is for performance mode) () -- a multiplier together with "base timing constraint" to get timing constraint (timing_constraint = * "base timing constraint") () is useless when = 1 For example, if you want to run S5378 in routability mode, edit the command of "job1" to: MR s5378_1_gp.gdf 1 The following command runs S5378 in performance mode with timing_constraint = 3 * "base timing constraint" MR s5378_1_gp.gdf 2 3 To use different layers to route a example, please edit the example file and change the "number_of_layers" to the number you want (search the key word "number_of_layers" and you will find it). We suggest you don't run the command "MR ()" directly in the command line, since you will experience error. ====================================================================================== WHILE IT'S RUNNING, YOU CAN... View the result from the GUI interface. There are several functional buttons on screen: + -- zoom in - -- zoom out <- -- shift left -> -- shift right Up -- shift up Down -- shift down Show Cell -- show cell bounding box (default:off)? Show Pin Name -- show pins of cells and their names (default:off)? Show Grid -- show tiles of the multilevel graph in level 0 (default:off)? Switch Layers -- switch between layers sequentially and show them (in a H-V pair) (If we switch to the last layer, only the last layer is shown.) active condition: "Show all layers" must be off Show Edges -- show connections of all to-be-routed nets (default:on)? Show Detail Grid -- show the final routing solution (default:off)? Rand a net -- show the final routing solution for a random net Show all layers -- show all layers (default:off)? Show a net -- show the final routing solution for a specific net Exit -- exit of program After exit the program, some information including completion ratios will print on the screen. If you want to store those information to a file, use '>' to run a script file, for example: job1 > job1_out and you can see job1_out for those information. ====================================================================================== ANY BUGS OR COMMENTS... Please e-mail to gis89583@cis.nctu.edu.tw to contact me. I will reply you as soon as possible. Shih Ping Lin 2002/08/24