Ruige Lee
10/13/2022, 7:49 AMRegression & Exploration
flow of openlane following the doc. I wrote a config.tcl like this as a basic configuration:
# Design
set ::env(DESIGN_NAME) "Rift2LinkA"
set ::env(VERILOG_FILES) "$::env(DESIGN_DIR)/src/*.v"
set ::env(CLOCK_PORT) "clock"
set ::env(CLOCK_NET) "clock"
set ::env(CLOCK_PERIOD) 20
set ::env(FP_SIZING) relative
# set ::env(FP_CORE_UTIL) 20
set ::env(FP_ASPECT_RATIO) 1.2
# set ::env(PL_TARGET_DENSITY) 0.21
set ::env(CELL_PAD) 6
set ::env(RT_MAX_LAYER) {met4}
set ::env(ROUTING_CORES) 16
set ::env(DESIGN_IS_CORE) 0
And I wrote a regression.config like this:
FP_CORE_UTIL=(15,17,20)
FP_ASPECT_RATIO=(1.2)
PL_TARGET_DENSITY=(FP_CORE_UTIL*0.01+0.01)
When I use python3 run_designs.py --regression ./designs/Rift2LinkA/regression.config -j16 Rift2LinkA
, I found that all three flows running under the basic configuration. The regression configuration didn't take effect. $PWD/runs/config_regression_1/config.tcl
was generated from basic configuration, although 3 regression configuration files has been generated at $PWD/
.
Then I reviewed run_designs.py
and add 2 lines, for -config_file
, into the codes. And then it looks fine.
def run_design(designs_queue):
nonlocal design_failure_flag, flow_failure_flag
while not designs_queue.empty():
design, config, tag, design_name = designs_queue.get(
timeout=3
) # 3s timeout
run_path = utils.get_run_path(design=design, tag=tag)
update("START", design)
command = [
os.getenv("OPENLANE_ENTRY") or "./flow.tcl",
"-design",
design,
"-tag",
tag,
"-config_tag",
config,
"-config_file",
"./designs/"+design+"/"+config+".tcl",
"-overwrite",
"-no_save",
"-run_hooks",
] + (["-verbose", "1"] if show_log_output else [])
Now I want to know if it is a bug or I have done somethings wrong?