Skip to content

Commit 1ee737c

Browse files
committed
generate_abstract: ABSTRACT_SOURCE=5_1_grt now works
gui.tcl smarts to find .sdc file belonging to .odb now centralized and used by generate_abstract. Signed-off-by: Øyvind Harboe <[email protected]>
1 parent 3b4c59a commit 1ee737c

File tree

3 files changed

+28
-17
lines changed

3 files changed

+28
-17
lines changed

flow/scripts/generate_abstract.tcl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ source $::env(SCRIPTS_DIR)/load.tcl
22

33
set 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

911
if {$design_stage >= 6 && [file exists $::env(RESULTS_DIR)/$stem.spef]} {
1012
read_spef $::env(RESULTS_DIR)/$stem.spef

flow/scripts/gui.tcl

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff 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

6256
if {[info exist env(GUI_SOURCE)]} {

flow/scripts/util.tcl

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
}

0 commit comments

Comments
 (0)