-
Notifications
You must be signed in to change notification settings - Fork 4
Bounded-Skew DME v1.3
License
abk-openroad/BST-DME
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
/****************************************************************************/ /* Released Software: Bounded-Skew Clock Tree Router Version 1.0: May 2000 Version 1.3: 2002 Copyright (C) 1994-2018 Regents of the University of California Computer Science Department, University of California, Los Angeles. CSE and ECE Departments, University of California, San Diego. Author: Prof. Andrew B. Kahng -- abk@cs.ucla.edu (2018: abk@eng.ucsd.edu) Author: Dr. Chung-Wen (Albert) Tsao -- tsao@cs.ucla.edu (2018: albert999tsao@gmail.com) All Rights Reserved Description: The released software constructs a binary tree over a set of clock sink locations subject to a given global skew bound under Elmore or linear delay models. No buffers insertion is used. For more details, plase see the following publication: J. Cong, A. B. Kahng, C.-K. Koh and C.-W. A. Tsao, ``Bounded-Skew Clock and Steiner Routing'', ACM Trans. on Design Automation of Electronic Systems, Vol. 4, No. 1, January, 1999. */ /****************************************************************************/ /* 04/07/00: wrap BST/DME in C++ */ This package consists of *** bstdme.h (wrap BST/DME in C++, users only need to include this header file ) *** main.cxx (a sample file that shows how to use this package) -- bst.cxx/bst.h (main file) -- bst_sub1.cxx/bst_sub1.h (common subroutines) -- bst_sub2.cxx (clustering, buffering, skew allocation) -- bst_sub3.cxx/bst_sub3.h (obstacle routing) -- IME_code.cxx/IME_code.h (For comparison between BME and IME ) -- foundation/*.h (For the future reconstruction/development) -- Time.cxx/Time.h (Print out cpu time) -- bst_header.h ( define data structures and constants ) -- Global_var.h ( Global variables shared among all files. ) How to compile this program? ** Compiled successuffly with the following version of g++ -- gcc version 2.95.1 19990816 (release) -- gcc version 2.95.2 19991024 (release) -- gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release) -- gcc version 2.95.3 20010315 (SuSE) -- RedHat Linux 6.0 / Linux 2.2.12-6smp i686 unknown on the following platform -- SunOS 5.6 Generic_105181-05 sun4u sparc SUNW,Ultra-4 -- SunOS 5.7 Generic_106541-08 sun4u sparc SUNW,Ultra-2 How to run the regression test? ** All the testcases are under ./BENCHMARKS ** use script ./regression for regresison test and comparison against the old regression result ** The regression result of version 1.x is in ./BENCHMARKS/BST-1.x_regression_result* How to run this program? ** For the format of the input and outfile files, please read the REAME and examples files under directory DOC. ** For variable topologies. Example: bst -i r1 -B 100 where -i specify the input is the benchmark r1 -B specify the allowed skew bound is 100 (pico-second) Outfile: topology: r1.top_B100 xgraph files : r1.xg_B100 (routing solution in xgraph format) r1_area.xg_B10 (tree of merging regions in xgraph format) The xgraph package can be obtained from http://www.cs.toronto.edu/~radford/xgraph.html ** For fixed topologies. example: bst -i r1 -G r1.top_B100 -B 100 where -G specifies that the topologies is given in file r1.top_B100 ** Generate random test cases -N 99 will generate a file "n99" which has 99 points (The following functionality are NOT complete yet, but I plan to finish them in the future) ** For different wire delay model -D 0 (Linear delay model) -D 1 (Elmore delay model) (default) ** For non-uniform Layer parasitics -RES 2 specifies that Res. of layer2 is 2 times larger than R. of layer 1 -CAP 2 specifies that Cap. of layer2 is 2 times larger than C. of layer 1 ** For obstruction -O n99.block read in the file n99.block which has obstacles information ** For buffer insertion: To set buffer linear model -BRES 50 set Buffer Resistance to be 50 ohm -BCAP 50.0e-15 set Buffer Capacitance to be 50 ff. To set the number of buffers at each level -NCL 16 1 specifies that 16 buffers at the bottom level 1 buffer at the top level /****************************************************************************/ /* Revision log */ /****************************************************************************/ 05-11-2002: (try to fix the regression crash on PC/Linux platform). * remove the following variables and the related codes. N_Skew_Samples Max_Delay_Skew Min_Delay_Skew Capac_Skew WL_Skew Niteration B_Niteration * fix the crash in the fucntion print_merging_tree on PC/Linux, where the array bound of char* a[20] overflows. The solution is to use the C++ string to get around the array bound problem. 05-18-2002: take prescribed delays at each sinks. "bst -N 99" will produce a file called n99, which can be used as a sample input file with prescribed delays for a testcase with 99 sinks, 05-31-2002: check if any errors in the input topology file. 06-03-2002: correct the way to draw a buffer, which cause a confusion to Sherief Reda" <sreda@cs.ucsd.edu> to-do list: * add static to local functions * eliminate more un-used codes * root_id in update_Cluster * look into any potential problem on array bound problem.
About
Bounded-Skew DME v1.3
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published