The-OpenROAD-Project / OpenLane

OpenLane is an automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen and custom methodology scripts for design exploration and optimization.
https://openlane.readthedocs.io/
Apache License 2.0
1.35k stars 373 forks source link

ECO Flow fails #1456

Closed vijayank88 closed 1 year ago

vijayank88 commented 2 years ago

Description

As I'm facing hold violation with one of MPW designs, trying to use ECO_ENABLE to fix it. But flow failed to find eco parasitics_multi_corner_sta logs.

Expected behavior

ECO_ENABLE should complete the flow.

Environment

Kernel: Linux v3.10.0-1160.49.1.el7.x86_64
Distribution: centos 7
Python: v3.6.8 (OK)
Container Engine: docker v20.10.16 (OK)
OpenLane Git Version: 41ed0036c3dc77961a34005fc7e4494881f0a07f
pip: INSTALLED
python-venv: INSTALLED
---
PDK Version Verification Status: OK
---
Git Log (Last 3 Commits)

41ed003 2022-10-25T20:04:52+02:00 Fix get_design_path (#1450) - Liu Yihua -  (HEAD -> master, tag: 2022.10.26, origin/master, origin/HEAD)
63a6d02 2022-10-25T10:36:13+02:00 Fix Synthesis Exploration (#1437) - vijayan -  ()
9197534 2022-10-25T09:36:14+02:00 fix usage command in docs (#1449) - Liu Yihua -  ()
---
Git Remotes

origin  https://github.com/The-OpenROAD-Project/OpenLane.git (fetch)
origin  https://github.com/The-OpenROAD-Project/OpenLane.git (push)

Reproduction Material

Update designs/spm/config.json with ECO_ENABLE true.

 "ECO_ENABLE": true,
  1. make mount
  2. ./flow.tcl -design spm

Logs

[INFO]: [ECO: 0] Checking output...
no files matched glob pattern "*parasitics_multi_corner_sta*log"
    while executing
"glob -directory $::env(signoff_logs) *parasitics_multi_corner_sta*log"
    (procedure "eco_gen_buffer" line 3)
    invoked from within
"eco_gen_buffer"
    (procedure "eco_output_check" line 4)
    invoked from within
"eco_output_check"
    (procedure "run_eco_flow" line 25)
    invoked from within
"run_eco_flow"
    (procedure "run_eco_step" line 3)
    invoked from within
"[lindex $step_exe 0] [lindex $step_exe 1] "
    (procedure "run_non_interactive_mode" line 52)
    invoked from within
"run_non_interactive_mode {*}$argv"
    invoked from within
"if { [info exists flags_map(-interactive)] || [info exists flags_map(-it)] } {
    if { [info exists arg_values(-file)] } {
        run_file [file nor..."
    (file "./flow.tcl" line 411)
aliazak6 commented 2 years ago

I am facing the same issue.

donn commented 1 year ago

@msaligane Are there any plans to continue maintaining the ECO flow?

msaligane commented 1 year ago

Unfortunately, we don't have the bandwidth these days to do that. We are working on a new update to the ECO flow in a finFET node. We may send a PR to openlane again if we see value in this.

Do you guys know what the issue is? it is probably a directory change for the output def files.

aliazak6 commented 1 year ago

set files [glob -directory $::env(signoff_logs) rcx_mcsta log] set lines [split [cat "$::env(routing_tmpfiles)/eco_fix.tcl"] "\n"] set ::env(ECO_FIX_FILE) $::env(routing_tmpfiles)/eco_fix.tcl

changing eco.tcl file lines[ 59,81 and 98] solves the issue. But eco_fix.tcl doesnt include any violations even if you have them so eco flow still does not work.