Matthew Guthaus
11/09/2021, 7:41 PMMatt Liberty
11/09/2021, 7:42 PMMatt Liberty
11/09/2021, 7:43 PMMatthew Guthaus
11/09/2021, 7:43 PMMatt Liberty
11/09/2021, 7:43 PMMatthew Guthaus
11/09/2021, 7:46 PMMatt Liberty
11/09/2021, 7:48 PMMatthew Guthaus
11/09/2021, 7:48 PMMatt Liberty
11/09/2021, 7:50 PMMatt Liberty
11/09/2021, 7:50 PMMatthew Guthaus
11/09/2021, 7:50 PMMatt Liberty
11/09/2021, 7:53 PMMatt Liberty
11/09/2021, 7:54 PMMatthew Guthaus
11/09/2021, 7:54 PMMatthew Guthaus
11/09/2021, 7:57 PMMatt Liberty
11/09/2021, 7:57 PMMatthew Guthaus
11/09/2021, 7:58 PMMatt Liberty
11/09/2021, 7:58 PMMatthew Guthaus
11/09/2021, 7:59 PMMatthew Guthaus
11/09/2021, 8:00 PMMatt Liberty
11/09/2021, 8:02 PMMatt Liberty
11/09/2021, 8:05 PMMatt Liberty
11/09/2021, 8:06 PMMatt Liberty
11/09/2021, 8:06 PMMatthew Guthaus
11/10/2021, 12:25 AMMatt Liberty
11/10/2021, 12:25 AMMatthew Guthaus
11/10/2021, 12:26 AMMatthew Guthaus
11/10/2021, 12:26 AMMatt Liberty
11/10/2021, 12:26 AMMatthew Guthaus
11/10/2021, 12:26 AMMatthew Guthaus
11/10/2021, 12:30 AMinvalid command name "17"
while executing
"17"
("uplevel" body line 1)
invoked from within
"uplevel #0 ${cmd}"
(procedure "set_log" line 3)
invoked from within
"set_log ::env($index) $escaped_env_var $::env(GLB_CFG_FILE) 1"
(procedure "save_state" line 9)
invoked from within
"save_state"
(procedure "flow_fail" line 6)
invoked from within
"flow_fail"
(procedure "try_catch" line 25)
invoked from within
"try_catch $::env(OPENROAD_BIN) -exit $::env(SCRIPTS_DIR)/openroad/or_opendp.tcl |& tee $::env(TERMINAL_OUTPUT) [index_file $::env(opendp_log_file_tag)..."
Matthew Guthaus
11/10/2021, 12:31 AMMatt Liberty
11/10/2021, 12:32 AMMatt Liberty
11/10/2021, 12:32 AMMatthew Guthaus
11/10/2021, 12:32 AMMatt Liberty
11/10/2021, 12:34 AMMatt Liberty
11/10/2021, 12:34 AMMatthew Guthaus
11/10/2021, 12:35 AMMatt Liberty
11/10/2021, 12:35 AMMatthew Guthaus
11/10/2021, 12:35 AMMatt Liberty
11/10/2021, 12:36 AMMatthew Guthaus
11/10/2021, 12:37 AMMatt Liberty
11/10/2021, 12:38 AMMatthew Guthaus
11/10/2021, 12:38 AMinvalid command name "17"
while executing
"17"
("uplevel" body line 1)
invoked from within
"uplevel #0 ${cmd}"
(procedure "set_log" line 3)
invoked from within
"set_log ::env($index) $escaped_env_var $::env(GLB_CFG_FILE) 1"
(procedure "save_state" line 9)
invoked from within
"save_state"
(procedure "flow_fail" line 6)
invoked from within
"flow_fail"
(procedure "try_catch" line 25)
invoked from within
"try_catch $::env(OPENROAD_BIN) -exit $::env(SCRIPTS_DIR)/openroad/or_opendp.tcl |& tee $::env(TERMINAL_OUTPUT) [index_file $::env(opendp_log_file_tag)..."
(procedure "detailed_placement_or" line 6)
invoked from within
"detailed_placement_or"
(procedure "run_routing" line 32)
invoked from within
"run_routing"
(procedure "run_routing_step" line 10)
invoked from within
"[lindex $step_exe 0] [lindex $step_exe 1] "
(procedure "run_non_interactive_mode" line 43)
invoked from within
"run_non_interactive_mode {*}$argv"
invoked from within
"if { [info exists flags_map(-interactive)] || [info exists flags_map(-it)] } {
puts_info "Running interactively"
if { [info exists arg_values(-file)..."
(file "/openlane/flow.tcl" line 356)
make[1]: *** [Makefile:43: user_project_wrapper] Error 1
make[1]: Leaving directory '/home/mrg/openram_testchip/openlane'
make: *** [Makefile:70: user_project_wrapper] Error 2
Matthew Guthaus
11/10/2021, 12:39 AMMatthew Guthaus
11/10/2021, 12:40 AMMatthew Guthaus
11/10/2021, 12:41 AMMatt Liberty
11/10/2021, 12:42 AMMatt Liberty
11/10/2021, 12:43 AMMatt Liberty
11/10/2021, 12:43 AMMatthew Guthaus
11/10/2021, 12:44 AMMatthew Guthaus
11/10/2021, 12:45 AMMatt Liberty
11/10/2021, 12:45 AMMatt Liberty
11/10/2021, 12:46 AMMatthew Guthaus
11/10/2021, 12:46 AMMatt Liberty
11/10/2021, 12:47 AMdonn
11/10/2021, 8:00 AMMatthew Guthaus
11/10/2021, 11:55 AMdonn
11/10/2021, 11:57 AMdonn
11/10/2021, 11:59 AMMatthew Guthaus
11/10/2021, 5:12 PMMatthew Guthaus
11/10/2021, 7:41 PMinvalid command name "17"
while executing
"17"
("uplevel" body line 1)
invoked from within
"uplevel #0 ${cmd}"
(procedure "set_log" line 3)
invoked from within
"set_log ::env($index) $escaped_env_var $::env(GLB_CFG_FILE) 1"
(procedure "save_state" line 9)
invoked from within
"save_state"
(procedure "flow_fail" line 6)
invoked from within
"flow_fail"
(procedure "try_catch" line 25)
invoked from within
"try_catch $::env(OPENROAD_BIN) -exit $::env(SCRIPTS_DIR)/openroad/or_opendp.tcl |& tee $::env(TERMINAL_OUTPUT) [index_file $::env(opendp_log_file_tag)..."
(procedure "detailed_placement_or" line 6)
invoked from within
"detailed_placement_or"
(procedure "run_routing" line 32)
invoked from within
"run_routing"
(procedure "run_routing_step" line 10)
invoked from within
"[lindex $step_exe 0] [lindex $step_exe 1] "
(procedure "run_non_interactive_mode" line 43)
invoked from within
"run_non_interactive_mode {*}$argv"
invoked from within
"if { [info exists flags_map(-interactive)] || [info exists flags_map(-it)] } {
puts_info "Running interactively"
if { [info exists arg_values(-file)..."
(file "/openlane/flow.tcl" line 356)
make[1]: *** [Makefile:43: user_project_wrapper] Error 1
make[1]: Leaving directory '/home/mrg/openram_testchip/openlane'
make: *** [Makefile:70: user_project_wrapper] Error 2
The "17" is in the name of my clock in my base.sdc or my config.tcl file:
set ::env(CLOCK_PORT) {io_in[17]}
If I don't use the base.sdc, it still does the above so it must be something with the config.tcl. I have the name escaped there:
set ::env(CLOCK_PORT) {io_in\[17\]}
If I look at the generated SDC files, however, the name is unescaped:
mrg@diode ~/openram_testchip/openlane/user_project_wrapper/runs/user_project_wrapper (main)$ find . -name \*.sdc -exec grep create_clock {} \; -print
create_clock -name io_in[17] -period 30.0000 [get_ports {io_in[17]}]
./results/cts/user_project_wrapper.cts.sdc
create_clock -name io_in[17] -period 30.0000 [get_ports {io_in[17]}]
./tmp/floorplan/4-verilog2def.sdc
create_clock -name io_in[17] -period 30.0000 [get_ports {io_in[17]}]
./tmp/placement/23-resizer_timing.sdc
create_clock -name io_in[17] -period 30.0000 [get_ports {io_in[17]}]
./tmp/placement/21-resizer_timing.sdc
create_clock -name io_in[17] -period 30.0000 [get_ports {io_in[17]}]
./tmp/placement/16-resizer.sdc
So there are two questions:
1. why isn't write_sdc escaping the name properly?
2. why is or_opendp using the SDC at all?Matthew Guthaus
11/10/2021, 7:41 PMMatt Liberty
11/10/2021, 7:52 PMMatthew Guthaus
11/10/2021, 7:54 PMMatthew Guthaus
11/10/2021, 11:19 PMMatthew Guthaus
11/10/2021, 11:21 PMMatt Liberty
11/10/2021, 11:23 PMMatthew Guthaus
11/10/2021, 11:25 PMMatthew Guthaus
11/10/2021, 11:25 PMMatt Liberty
11/10/2021, 11:25 PMMatthew Guthaus
11/10/2021, 11:26 PMMatt Liberty
11/10/2021, 11:26 PMMatthew Guthaus
11/10/2021, 11:26 PMMatthew Guthaus
11/10/2021, 11:26 PMMatthew Guthaus
11/10/2021, 11:26 PMMatt Liberty
11/10/2021, 11:26 PMMatthew Guthaus
11/10/2021, 11:26 PMMatt Liberty
11/10/2021, 11:27 PMMatthew Guthaus
11/10/2021, 11:27 PMMatthew Guthaus
11/10/2021, 11:27 PMMatthew Guthaus
11/10/2021, 11:28 PMMatthew Guthaus
11/10/2021, 11:29 PMMatthew Guthaus
11/10/2021, 11:30 PMMatt Liberty
11/10/2021, 11:31 PMDIODE_INSERTION_STRATEGY
described aboveMatt Liberty
11/10/2021, 11:32 PMMatt Liberty
11/10/2021, 11:32 PMMatt Liberty
11/10/2021, 11:33 PMMatt Liberty
11/10/2021, 11:33 PMMatthew Guthaus
11/10/2021, 11:59 PMMatt Liberty
11/10/2021, 11:59 PMMatthew Guthaus
11/11/2021, 12:00 AMrepeater432 overlaps FILLER_2_3245
repeater433 overlaps FILLER_406_3269
repeater435 overlaps FILLER_631_2825
repeater437 overlaps FILLER_2_4701
before it unelegantly gives upMatthew Guthaus
11/11/2021, 12:00 AMMatt Liberty
11/11/2021, 12:00 AMMatt Liberty
11/11/2021, 12:00 AMMatthew Guthaus
11/11/2021, 12:01 AMinvoked from within
"detailed_placement_or"
(procedure "run_routing" line 32)
invoked from within
"run_routing"
(procedure "run_routing_step" line 10)
Matthew Guthaus
11/11/2021, 12:02 AMMatthew Guthaus
11/11/2021, 12:02 AMMatthew Guthaus
11/11/2021, 12:04 AMMatthew Guthaus
11/11/2021, 12:04 AMMatt Liberty
11/11/2021, 1:07 AMMitch Bailey
11/12/2021, 4:46 PMinvalid command name "17"
while executing
"17"
error and have a work around.
It occurs when there is an existing <design>/runs/<tag>/config.tcl
file. Deleting this file works for me. When this file is created, the clock port is defined as below, but it looks like the routine that reads this and rewrites it can't handle ]
or [
.
set ::env(CLOCK_PORT) "io_in\[17\]"
I believe the permanent solution is to patch the save_state
routine in scripts/tcl_commands/all.tcl
with the following
set escaped_env_var [string map {\[ \\\[} $escaped_env_var]
set escaped_env_var [string map {\] \\\]} $escaped_env_var]
I'll submit a PR once I test it.Matthew Guthaus
11/12/2021, 4:57 PMMitch Bailey
11/12/2021, 6:28 PMproc prep
in all.tcl
that looks like it's trying to write out the config.tcl
file. However, the same type of fix doesn't work as expected. I'll dig deeper tomorrow. Incidentally, I've noticed that the config.tcl
file has a lot of duplicate entries and sometimes the values don't match.Matthew Guthaus
11/12/2021, 7:06 PM