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

LEC fails with spm design example #1285

Closed mattvenn closed 1 year ago

mattvenn commented 2 years ago

Description

LEC fails with spm design

Environment

python3 ./env.py issue-survey
Kernel: Linux v5.13.0-28-generic
Distribution: ubuntu 20.04
Python: v3.8.10 (OK)
Container Engine: docker v20.10.7 (OK)
OpenLane Git Version: f9b5781f5ef0bbdf39ab1c2bbd78be8db11b27f2
pip: INSTALLED
pip:venv: INSTALLED
---
PDK Version Verification Status: OK
---
Git Log (Last 3 Commits)

f9b5781 2022-07-01T16:04:31+02:00 Fix a bug with `-overwrite` (#1171) - Anton Blanchard -  (grafted, HEAD, tag: 2022.07.02_01.38.08)

Reproduction Material

Add this line to config.tcl: set ::env(LEC_ENABLE) {1} Then:

No reproducible, openlane crashed too hard:

Expected behavior

LEC should pass on all example designs.

Logs

[INFO]: Running LEC: /openlane/designs/spm/runs/RUN_2022.08.25_15.20.58/results/placement/spm.resized.v.without_power_pins.v Vs. /openlane/designs/spm/runs/RUN_2022.08.25_15.20.58/results/synthesis/spm.v
[ERROR]: /openlane/designs/spm/runs/RUN_2022.08.25_15.20.58/results/placement/spm.resized.v.without_power_pins.v is not logically equivalent to /openlane/designs/spm/runs/RUN_2022.08.25_15.20.58/results/synthesis/spm.v.

    while executing
"logic_equiv_check -rhs $::env(PREV_NETLIST) -lhs $::env(CURRENT_NETLIST)"
    (procedure "run_resizer_design" line 19)
    invoked from within
"run_resizer_design"
    (procedure "run_placement" line 23)
    invoked from within
"run_placement"
    (procedure "run_placement_step" line 8)
    invoked from within
"[lindex $step_exe 0] [lindex $step_exe 1] "
    (procedure "run_non_interactive_mode" line 57)
    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 389)
EmJunaid commented 2 years ago

LEC is failing with all designs.

kareefardi commented 1 year ago

This should be fixed. However some designs might still fail see https://github.com/The-OpenROAD-Project/OpenLane/issues/1645