-
Notifications
You must be signed in to change notification settings - Fork 1
/
vivado_place_explore.tcl
39 lines (35 loc) · 1.2 KB
/
vivado_place_explore.tcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
set PROJ_NM "best_proj_everrr"
set PROJ_DIR "./$PROJ_NM"
# list of place_design directives we want to try out
set directives "Explore \
WLDrivenBlockPlacement \
ExtraNetDelay_high \
ExtraNetDelay_low \
AltSpreadLogic_high \
AltSpreadLogic_medium \
AltSpreadLogic_low \
ExtraPostPlacementOpt \
ExtraTimingOpt"
# empty list for results
set wns_results ""
# empty list for time elapsed messages
set time_msg ""
foreach j $directives {
# open post opt design checkpoint
open_checkpoint $PROJ_DIR/${PROJ_NM}_post_opt.dcp
# run place design with a different directive
place_design -directive $j
# append time elapsed message to time_msg list
lappend time_msg [exec grep "place_design: Time (s):" vivado.log | tail -1]
# append wns result to our results list
set WNS [ get_property SLACK [get_timing_paths -max_paths 1 -nworst 1 -setup] ]
append wns_results $WNS " "
}
# print out results at end
set i 0
foreach j $directives {
puts "Post Place WNS with directive $j = [lindex $wns_results $i] "
puts [lindex $time_msg [expr $i*2]]
puts " "
incr i
}