File tree Expand file tree Collapse file tree 3 files changed +28
-17
lines changed
Expand file tree Collapse file tree 3 files changed +28
-17
lines changed Original file line number Diff line number Diff line change @@ -2,9 +2,11 @@ source $::env(SCRIPTS_DIR)/load.tcl
22
33set stem [expr {[info exists ::env(ABSTRACT_SOURCE)] ? $::env(ABSTRACT_SOURCE) : " 6_final" }]
44
5- set design_stage [lindex [split [file tail $stem ] " _" ] 0]
5+ set result [find_sdc_file $stem .odb]
6+ set design_stage [lindex $result 0]
7+ set sdc_file [lindex $result 1]
68
7- load_design $stem .odb $stem .sdc
9+ load_design $stem .odb [ file tail $sdc_file ]
810
911if {$design_stage >= 6 && [file exists $::env(RESULTS_DIR) /$stem .spef]} {
1012 read_spef $::env(RESULTS_DIR) /$stem .spef
Original file line number Diff line number Diff line change @@ -19,18 +19,11 @@ if {[info exist ::env(DEF_FILE)]} {
1919 read_db $input_file
2020}
2121
22- if {![info exist ::env(GUI_NO_TIMING)]} {
23- # Determine design stage (1 ... 6)
24- set design_stage [lindex [split [file tail $input_file ] " _" ] 0]
25-
26- # Read SDC, first try to find the most recent SDC file for the stage
27- set sdc_file " "
28- for {set s $design_stage } {$s > 0} {incr s -1} {
29- set sdc_file [glob -nocomplain -directory $::env(RESULTS_DIR) -types f " ${s} _\[ A-Za-z\] *\. sdc" ]
30- if {$sdc_file != " " } {
31- break
32- }
33- }
22+ proc read_timing {input_file} {
23+ set result [find_sdc_file $input_file ]
24+ set design_stage [lindex $result 0]
25+ set sdc_file [lindex $result 1]
26+
3427 if {$sdc_file == " " } {
3528 set sdc_file $::env(SDC_FILE)
3629 }
@@ -54,9 +47,10 @@ if {![info exist ::env(GUI_NO_TIMING)]} {
5447 }
5548
5649 fast_route
57-
58- # Cleanup temporary variables
59- unset sdc_file s design_stage
50+ }
51+
52+ if {![info exist ::env(GUI_NO_TIMING)]} {
53+ read_timing $input_file
6054}
6155
6256if {[info exist env(GUI_SOURCE)]} {
Original file line number Diff line number Diff line change @@ -44,3 +44,18 @@ proc recover_power {} {
4444 report_wns
4545 report_power
4646}
47+
48+ proc find_sdc_file {input_file} {
49+ # Determine design stage (1 ... 6)
50+ set design_stage [lindex [split [file tail $input_file ] " _" ] 0]
51+
52+ # Read SDC, first try to find the most recent SDC file for the stage
53+ set sdc_file " "
54+ for {set s $design_stage } {$s > 0} {incr s -1} {
55+ set sdc_file [glob -nocomplain -directory $::env(RESULTS_DIR) -types f " ${s} _\[ A-Za-z\] *\. sdc" ]
56+ if {$sdc_file != " " } {
57+ break
58+ }
59+ }
60+ return [list $design_stage $sdc_file ]
61+ }
You can’t perform that action at this time.
0 commit comments