Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/abk-openroad/BST-DME
Bounded-Skew DME v1.3
https://github.com/abk-openroad/BST-DME
Last synced: 3 months ago
JSON representation
Bounded-Skew DME v1.3
- Host: GitHub
- URL: https://github.com/abk-openroad/BST-DME
- Owner: abk-openroad
- License: bsd-3-clause
- Created: 2018-07-26T07:08:56.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-08-03T19:45:53.000Z (over 6 years ago)
- Last Synced: 2024-07-31T19:17:27.501Z (6 months ago)
- Language: C++
- Size: 1.77 MB
- Stars: 13
- Watchers: 1
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
/****************************************************************************/
/*
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 CaliforniaComputer Science Department, University of California, Los Angeles.
CSE and ECE Departments, University of California, San Diego.
Author: Prof. Andrew B. Kahng -- [email protected] (2018: [email protected])
Author: Dr. Chung-Wen (Albert) Tsao -- [email protected] (2018: [email protected])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-2How 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"
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.