Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error during LEF/DEF (Openlane) to Protobuf conversion #45

Open
RustamC opened this issue Dec 26, 2022 · 1 comment
Open

Error during LEF/DEF (Openlane) to Protobuf conversion #45

RustamC opened this issue Dec 26, 2022 · 1 comment

Comments

@RustamC
Copy link

RustamC commented Dec 26, 2022

Hi!
I'm trying to convert my LEF/DEF files (obtained after global placement in OpenLane) to Protobuf using new Tcl script.

I was running these commands:

set ALL_LEFS "
    ../test/ProtocolBuffer2LefDef/lefs/merged.nom.lef
"
set site "unithd"
foreach lef_file ${ALL_LEFS} {
    read_lef $lef_file
}
read_def ../test/ProtocolBuffer2LefDef/design/test_macro.def
source gen_pb_or.tcl
gen_pb_netlist ../test/ProtocolBuffer2LefDef/test_macro.pb.txt

and got this error message:

OpenROAD v2.0-5083-ga783d1b9c
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
[INFO ODB-0222] Reading LEF file: ../test/ProtocolBuffer2LefDef/lefs/merged.nom.lef
[WARNING ODB-0220] WARNING (LEFPARS-2036): SOURCE statement is obsolete in version 5.6 and later.
The LEF parser will ignore this statement.
To avoid this warning in the future, remove this statement from the LEF file with version 5.6 or later. See file ../test/ProtocolBuffer2LefDef/lefs/merged.nom.lef at line 68342.

[INFO ODB-0223]     Created 13 technology layers
[INFO ODB-0224]     Created 25 technology vias
[INFO ODB-0225]     Created 442 library cells
[INFO ODB-0226] Finished LEF file:  ../test/ProtocolBuffer2LefDef/lefs/merged.nom.lef
[INFO ODB-0127] Reading DEF file: ../test/ProtocolBuffer2LefDef/design/test_macro.def
[INFO ODB-0128] Design: test_macro
[INFO ODB-0130]     Created 299 pins.
[INFO ODB-0131]     Created 8745 components and 25114 component-terminals.
[INFO ODB-0132]     Created 2 special nets and 20886 connections.
[INFO ODB-0133]     Created 1352 nets and 4067 connections.
[INFO ODB-0134] Finished DEF file: ../test/ProtocolBuffer2LefDef/design/test_macro.def
Error: to_proto.tcl, 10 invalid command name "NULL"

Input files: test_macro.zip

What could be the problem?

@RustamC
Copy link
Author

RustamC commented Dec 26, 2022

After some research I've found that the problem is in write_node_stdcell procedure during printing all sinks:

foreach iterm_ptr [${inst_ptr} getITerms] {
if { [${iterm_ptr} isOutputSignal] } {
set net_ptr [${iterm_ptr} getNet]
print_net $net_ptr $fp
}
}

net_ptr can be "NULL" and after adding check it worked:

if {$net_ptr != "NULL"} {
    print_net $net_ptr $fp
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant