cuhk-eda / cu-gr Goto Github PK
View Code? Open in Web Editor NEWCUGR, VLSI Global Routing Tool Developed by CUHK
License: Other
CUGR, VLSI Global Routing Tool Developed by CUHK
License: Other
Hi, I respect your work.
Could you give the community a Docker file to easily reproduce your results?
Thanks a lot!
First of all, thank you for sharing your work as an open source.
I am trying to compile and run this program on my workstation.
My environment is as follow:
GCC = 8.3.1
CMake = 3.19.3
Boost = 1.58.0
When I ran the toy test, the following results were obtained:
mkdir -p run0825
The following benchmarks will be ran: [ispd18_sample]
mkdir -p run0825/8s
./iccad19gr -lef ../toys//iccad2019c/ispd18_sample/ispd18_sample.input.lef -def ../toys//iccad2019c/ispd18_sample/ispd18_sample.input.def -threads 8 -output run0825/8s/ispd18_sample.solution.guide |& tee run0825/8s/ispd18_sample.log
[ 0.000] ------------------------------------------------------------------------------
[ 0.000] ICCAD 2019 - Global Routing Contest
[ 0.000] Team number : 15
[ 0.000] Team name : CU-GR
[ 0.000] Members: Jinwei Liu, Chak-Wa Pui, Fangzhou Wang,
[ 0.000] Evangeline F.Y. Young
[ 0.000] Affiliation: The Chinese University of Hong Kong
[ 0.000] ------------------------------------------------------------------------------
[ 0.001] Input .lef file : ../toys//iccad2019c/ispd18_sample/ispd18_sample.input.lef
[ 0.001] Input .def file. : ../toys//iccad2019c/ispd18_sample/ispd18_sample.input.def
[ 0.001] # of threads : 8
[ 0.001] Output file name : run0825/8s/ispd18_sample.solution.guide
[ 0.001]
[ 0.011]
[ 0.011] ################################################################
[ 0.011] Start initializing database
[ 0.011]
[ 0.011] Die region (in DBU): [x: (83600, 104400), y: (71820, 91200)]
[ 0.011]
[ 0.011] Init RouteGrid ...
[ 0.028] Set unit vio cost with discount of 1
[ 0.028] ROUTE GRID COST
[ 0.028] unitWireCostRaw (score / DBU) = 0.00125
[ 0.028] unitViaCostRaw (score for each via) = 4
[ 0.028] unitShortVioCostRaw (score for each area of m2Pitch * m2Pitch) = 500
[ 0.028] After normalization by unitWireCostRaw:
[ 0.028] unitWireCost (in DBU) = 1
[ 0.029] unitViaCost (in DBU) = 3200
[ 0.029] unitShortVioCost (coeff for "normal" short) = [300, 350, 350, 350, 350, 350, 350, 350, 350]
[ 0.029]
[ 0.029] Init NetList ...
[ 0.029] The number of nets is 11
[ 0.029] The number of pins is 22
[ 0.029]
[ 0.029] Mark pin & obs occupancy on RouteGrid ...
[ 0.029] The number of unused pins is 124
[ 0.029] The number of OBS is 0
[ 0.029] The number of special net OBS is 0
[ 0.029] The number of fixed objects on each layers:
[ 0.029] Metal1: 344
[ 0.029]
[ 0.029] mark fixed metal rtrees...
[ 0.029] mark fixed metal batch ...
[ 0.036] MEM(MB): init/cur=7/7, incr=0
[ 0.036]
[ 0.036] Metal1 mtSafeMargin = max { 2280 460 200 } = 2280
[ 0.036] Metal2 mtSafeMargin = max { 1600 1500 200 } = 1600
[ 0.036] Metal3 mtSafeMargin = max { 1520 1500 200 } = 1520
[ 0.036] Metal4 mtSafeMargin = max { 1600 1500 200 } = 1600
[ 0.036] Metal5 mtSafeMargin = max { 1520 1500 200 } = 1520
[ 0.036] Metal6 mtSafeMargin = max { 1600 1340 200 } = 1600
[ 0.036] Metal7 mtSafeMargin = max { 2280 1340 200 } = 2280
[ 0.036] Metal8 mtSafeMargin = max { 1600 1340 200 } = 1600
[ 0.036] Metal9 mtSafeMargin = max { 1520 1340 200 } = 1520
[ 0.036] Finish initializing database
[ 0.036] MEM: cur=7.5MB, peak=7.52344MB
[ 0.036]
[ 0.039] ========= gcell grid info ============
[ 0.039] #gcell=1*1=1, #edge=0/0
[ 0.039] Metal1 : avg #track= 51
[ 0.039] Metal2 : avg #track= 52
[ 0.039] Metal3 : avg #track= 51
[ 0.039] Metal4 : avg #track= 52
[ 0.039] Metal5 : avg #track= 51
[ 0.039] Metal6 : avg #track= 52
[ 0.039] Metal7 : avg #track= 33
[ 0.039] Metal8 : avg #track= 52
[ 0.039] Metal9 : avg #track= 25
[ 0.039] finish reading benchmark
[ 0.165]
[ 0.166] ################################################################
[ 0.166] Start RRR iteration 0
[ 0.166]
[ 0.166] Set unit vio cost with discount of 0.1
[ 0.166] Hist wire usage is []
[ 0.166] Hist via usage is []
[ 0.166] finish planning
[ 0.166] Total Number of edges in Iter 0 : 0. Edge Shifted: 0(-nan%)
[ 0.166] Total Number of edges in Iter 1 : 0. Edge Shifted: 0(-nan%)
[ 0.166] finish edge shifting
[ 0.172] Finish multi-thread scheduling. There will be 11 batches for 11 nets.
[ 0.172]
[ 0.172] finish pattern route
[ 0.172]
[ 0.172] Finish RRR iteration 0
[ 0.172] MEM: cur=22.9141MB, peak=22.9492MB
[ 0.173] Stage INIT: #nets = 11
[ 0.173] #succ = 11 (#SUCC_ONE_PIN = 11 )
[ 0.173]
[ 0.173] ################################################################
[ 0.173] Start RRR iteration 1
[ 0.173]
[ 0.173] No net is identified for this iteration of RRR.
[ 0.173]
[ 0.173] Add pin region patches. Totally 0/22 patches are added.
[ 0.173] Add long segment patches. Totally 0 patches are added.
[ 0.173] Add cong cell patches. Totally 0/0 patches are added
[ 0.173]
[ 0.173] ################################################################
[ 0.173] Set unit vio cost with discount of 1
[ 0.173] Finish all RRR iterations and PostRoute
[ 0.173] MEM: cur=22.9492MB, peak=22.9531MB
[ 0.173]
[ 0.173] ----------------------------------------------------------------
[ 0.173] --- Wire Usage ---
[ 0.173] usage | grid | length
[ 0.173] --- in-Cell Usage ---
[ 0.173] usage | routed
[ 0.173] 0.00 | 9
[ 0.173] --- Wire-Wire Short Vios ---
[ 0.173] usage | short area
[ 0.173] layer | wire-wire
[ 0.173] SumW | 0
[ 0.173] --- Via-Via Short Vios ---
[ 0.173] usage | #short
[ 0.173] layer | via-via
[ 0.173] SumW | 0
[ 0.173] --- Estimated Scores ---
[ 0.173] item | metric | weight | score | %
[ 0.173] wirelength | 0 | 0.5 | 0 | 0
[ 0.173] # vias | 11 | 4 | 44 | 1
[ 0.173] short | 0 | 500 | 0 | 0
[ 0.173] total score = 44
[ 0.173] ----------------------------------------------------------------
[ 0.173]
[ 0.173] Writing guides to file...
[ 0.174] MEM: cur=22.9922MB, peak=22.9961MB
[ 0.174]
[ 0.174] ---------------------------------------------------------------------------
[ 0.174] Terminated...
[ 0.174] ---------------------------------------------------------------------------
mv .solution.guide *.log *.gprof .pdf run0825/8s 2>/dev/null
[root@68b02d3adf67 run]# ./iccad19gr -lef ../toys/iccad2019c/ispd18_sample/ispd18_sample.input.lef -def ../toys/iccad2019c/ispd18_sample/ispd18_sample.input.def -output ispd18_sample.solution.guide -threads 8
[ 0.000] ------------------------------------------------------------------------------
[ 0.000] ICCAD 2019 - Global Routing Contest
[ 0.000] Team number : 15
[ 0.000] Team name : CU-GR
[ 0.000] Members: Jinwei Liu, Chak-Wa Pui, Fangzhou Wang,
[ 0.000] Evangeline F.Y. Young
[ 0.000] Affiliation: The Chinese University of Hong Kong
[ 0.000] ------------------------------------------------------------------------------
[ 0.001] Input .lef file : ../toys/iccad2019c/ispd18_sample/ispd18_sample.input.lef
[ 0.001] Input .def file. : ../toys/iccad2019c/ispd18_sample/ispd18_sample.input.def
[ 0.001] # of threads : 8
[ 0.001] Output file name : ispd18_sample.solution.guide
[ 0.001]
[ 0.008]
[ 0.008] ################################################################
[ 0.008] Start initializing database
[ 0.008]
[ 0.008] Die region (in DBU): [x: (83600, 104400), y: (71820, 91200)]
[ 0.008]
[ 0.009] Init RouteGrid ...
[ 0.019] Set unit vio cost with discount of 1
[ 0.019] ROUTE GRID COST
[ 0.019] unitWireCostRaw (score / DBU) = 0.00125
[ 0.019] unitViaCostRaw (score for each via) = 4
[ 0.019] unitShortVioCostRaw (score for each area of m2Pitch * m2Pitch) = 500
[ 0.019] After normalization by unitWireCostRaw:
[ 0.019] unitWireCost (in DBU) = 1
[ 0.019] unitViaCost (in DBU) = 3200
[ 0.019] unitShortVioCost (coeff for "normal" short) = [300, 350, 350, 350, 350, 350, 350, 350, 350]
[ 0.019]
[ 0.019] Init NetList ...
[ 0.019] The number of nets is 11
[ 0.019] The number of pins is 22
[ 0.019]
[ 0.019] Mark pin & obs occupancy on RouteGrid ...
[ 0.020] The number of unused pins is 124
[ 0.020] The number of OBS is 0
[ 0.020] The number of special net OBS is 0
[ 0.020] The number of fixed objects on each layers:
[ 0.020] Metal1: 344
[ 0.020]
[ 0.020] mark fixed metal rtrees...
[ 0.020] mark fixed metal batch ...
[ 0.022] MEM(MB): init/cur=7/7, incr=0
[ 0.022]
[ 0.022] Metal1 mtSafeMargin = max { 2280 460 200 } = 2280
[ 0.022] Metal2 mtSafeMargin = max { 1600 1500 200 } = 1600
[ 0.022] Metal3 mtSafeMargin = max { 1520 1500 200 } = 1520
[ 0.022] Metal4 mtSafeMargin = max { 1600 1500 200 } = 1600
[ 0.022] Metal5 mtSafeMargin = max { 1520 1500 200 } = 1520
[ 0.022] Metal6 mtSafeMargin = max { 1600 1340 200 } = 1600
[ 0.022] Metal7 mtSafeMargin = max { 2280 1340 200 } = 2280
[ 0.022] Metal8 mtSafeMargin = max { 1600 1340 200 } = 1600
[ 0.022] Metal9 mtSafeMargin = max { 1520 1340 200 } = 1520
[ 0.022] Finish initializing database
[ 0.022] MEM: cur=7.5MB, peak=7.52344MB
[ 0.022]
[ 0.024] ========= gcell grid info ============
[ 0.024] #gcell=11=1, #edge=0/0
[ 0.024] Metal1 : avg #track= 51
[ 0.024] Metal2 : avg #track= 52
[ 0.024] Metal3 : avg #track= 51
[ 0.024] Metal4 : avg #track= 52
[ 0.024] Metal5 : avg #track= 51
[ 0.024] Metal6 : avg #track= 52
[ 0.024] Metal7 : avg #track= 33
[ 0.024] Metal8 : avg #track= 52
[ 0.024] Metal9 : avg #track= 25
[ 0.024] finish reading benchmark
[ 0.116]
[ 0.116] ################################################################
[ 0.116] Start RRR iteration 0
[ 0.116]
[ 0.116] Set unit vio cost with discount of 0.1
[ 0.116] Hist wire usage is []
[ 0.116] Hist via usage is []
[ 0.116] finish planning
[ 0.116] Total Number of edges in Iter 0 : 0. Edge Shifted: 0(-nan%)
[ 0.116] Total Number of edges in Iter 1 : 0. Edge Shifted: 0(-nan%)
[ 0.116] finish edge shifting
[ 0.119] Finish multi-thread scheduling. There will be 11 batches for 11 nets.
[ 0.119]
[ 0.119] finish pattern route
[ 0.119]
[ 0.119] Finish RRR iteration 0
[ 0.119] MEM: cur=22.8984MB, peak=22.9336MB
[ 0.119] Stage INIT: #nets = 11
[ 0.119] #succ = 11 (#SUCC_ONE_PIN = 11 )
[ 0.119]
[ 0.119] ################################################################
[ 0.119] Start RRR iteration 1
[ 0.119]
[ 0.119] No net is identified for this iteration of RRR.
[ 0.119]
[ 0.119] Add pin region patches. Totally 0/22 patches are added.
[ 0.119] Add long segment patches. Totally 0 patches are added.
[ 0.119] Add cong cell patches. Totally 0/0 patches are added
[ 0.119]
[ 0.119] ################################################################
[ 0.119] Set unit vio cost with discount of 1
[ 0.119] Finish all RRR iterations and PostRoute
[ 0.119] MEM: cur=22.9336MB, peak=22.9375MB
[ 0.119]
[ 0.119] ----------------------------------------------------------------
[ 0.119] --- Wire Usage ---
[ 0.119] usage | grid | length
[ 0.119] --- in-Cell Usage ---
[ 0.119] usage | routed
[ 0.119] 0.00 | 9
[ 0.119] --- Wire-Wire Short Vios ---
[ 0.119] usage | short area
[ 0.119] layer | wire-wire
[ 0.119] SumW | 0
[ 0.119] --- Via-Via Short Vios ---
[ 0.119] usage | #short
[ 0.119] layer | via-via
[ 0.119] SumW | 0
[ 0.119] --- Estimated Scores ---
[ 0.119] item | metric | weight | score | %
[ 0.120] wirelength | 0 | 0.5 | 0 | 0
[ 0.120] # vias | 11 | 4 | 44 | 1
[ 0.120] short | 0 | 500 | 0 | 0
[ 0.120] total score = 44
[ 0.120] ----------------------------------------------------------------
[ 0.120]
[ 0.120] Writing guides to file...
[ 0.120] MEM: cur=22.9375MB, peak=22.9766MB
[ 0.120]
[ 0.120] ---------------------------------------------------------------------------
[ 0.120] Terminated...
[ 0.120] ---------------------------------------------------------------------------
I think it is the wrong result. Is this the correct result?
Also, could you share the docker file to reproduce the experiment results easily?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.