Hi, My openlane flow failed at the LVS step as it...
# openlane
j
Hi, My openlane flow failed at the LVS step as it sees pin mismatch at the top level (user_project_wrapper). The problem is that it does not see vccd1. I did not modify
config.tcl
or the ports in
user_project_wrapper.v
.
27-powered_netlist.v
also has vccd1 there. Does anyone know what is the issue?
m
Check your extraction logs to see if vccd1 has been shorted. Please post your lvs log for more advice.
j
Hi Mitch, thank you for the response. The lvs log is attached. Where can I find the extraction log
m
Looks like vccd1 and vccd2 may be shorted. If you're using openlane, the extract log might be in
find . -name '*gds.spice.log
but they may have changed the location. It may appear as a warning like
Copy code
Warning:  Ports "vccd1" and "vccd2" are electrically shorted.
j
I do not find any file with
find . -name '*gds.spice.log'
but I found this file, which does not any vccd1 or vccd2 messages though
v
@Jake Ke can you share your user_project_wrapper config.tcl and your repo link?
j
Hi @Vijayan Krishnan, the repo link is https://github.com/jake-ke/caravel_fast_ann_fieldious. The config.tcl is attached
m
How about
find . -name '*spice.log'
since it looks like you're doing lef extraction instead of gds extraction.
j
Hi @Mitch Bailey, yeah, there is
27-spice.log
which is attached in the previous message
m
Which is the file you attached... Sometimes there are shorts that don't get flagged.
j
@Mitch Bailey I have attached in this message
m
Save the following to
merge_short.awk
and then run
awk -f merge_short.awk <path to extraction results>/user_project_wrappper.ext
Copy code
/^merge/ {
        if ( last == "" ) {
                if ( $2 !~ /\// && $2 !~ /#/ ) {
                        shorts = $2;
                }
        }
        if ( last == $2 ) {
                if ( $3 !~ /\// && $3 !~ /#/ ) {
                        shorts = shorts " " $3;
                }
        } else {
                if ( last != "" && shorts ~ / .* / ) {
                        print shorts;
                }
                shorts = "";
        }
        last = $3;
}
END {
        if ( last != "" ) {
                print shorts;
        }
}
j
@Mitch Bailey, I ran
awk -f merge_short.awk ./openlane/user_project_wrapper/runs/user_project_wrapper/tmp/finishing/user_project_wrapper.ext
and it returned nothing
v
The following PDN i get for wrapper design. The macro occupied full core area.
j
@Vijayan Krishnan, is the macro area too big?
v
yes. You can see right corner. only 20micron space left
j
Hi @Vijayan Krishnan @Mitch Bailey , we have found the main issue is that one of the horizontal M5 metal stripe added by openlane overlaps the horizontal power stripes of the user macro. Thank you for your help
👍 1