RTimothyEdwards / open_pdks

PDK installer for open-source EDA tools and toolchains. Distributed with setups for the SkyWater 130nm and Global Foundries 180nm open processes.
http://opencircuitdesign.com/open_pdks
Apache License 2.0
292 stars 86 forks source link

Missing openlane environment variable in gf180mcu. #407

Closed d-m-bailey closed 1 year ago

d-m-bailey commented 1 year ago

Running make user_proj_example with open_pdks version dd7771c384ed36b91a25e9f8b314355fc26561be fails with

[INFO]: Running Synthesis (log: ../home/user/gf180mcu/mpw-1/caravel_user_project/openlane/user_proj_example/runs/23_10_15_17_33/logs/synthesis/1-synthesis.log)...
[ERROR]: during executing yosys script /openlane/scripts/yosys/synth.tcl
[ERROR]: Log: ../home/user/gf180mcu/mpw-1/caravel_user_project/openlane/user_proj_example/runs/23_10_15_17_33/logs/synthesis/1-synthesis.log
[ERROR]: Last 10 lines:
ERROR: TCL interpreter returned an error: can't read "::env(SYNTH_CAP_LOAD)": no such variable                                                                            
child process exited abnormally                                                                                                                                           

Running find $PDK_ROOT/$PDK/libs.tech -type f -exec grep SYNTH_CAP_LOAD {} /dev/null \; returns nothing, but when set to the sky130 pdk, you can see that each standard cell library has a definition.

$PDK_ROOT/sky130A/libs.tech/openlane/sky130_fd_sc_hd/config.tcl:set ::env(SYNTH_CAP_LOAD) "33.442" ; # femtofarad __inv_16 pin A cap (https://github.com/google/skywater-pdk-libs-sky130_fd_sc_hd/blob/main/cells/inv/sky130_fd_sc_hd__inv_16__tt_025C_1v80.lib.json)
$PDK_ROOT/sky130A/libs.tech/openlane/sky130_fd_sc_ms/config.tcl:set ::env(SYNTH_CAP_LOAD) "22.66" ; # femtofarad _inv_8 pin A cap
$PDK_ROOT/sky130A/libs.tech/openlane/sky130_fd_sc_hvl/config.tcl:set ::env(SYNTH_CAP_LOAD) "70.77" ; # femtofarad __inv_16 pin A cap (https://github.com/google/skywater-pdk-libs-sky130_fd_sc_hvl/blob/main/cells/inv/sky130_fd_sc_hvl__inv_16__tt_025C_3v30.lib.json)
$PDK_ROOT/sky130A/libs.tech/openlane/sky130_osu_sc_t18/config.tcl:set ::env(SYNTH_CAP_LOAD) "37.357" ; # femtofarad INVX8 pin A cap
$PDK_ROOT/sky130A/libs.tech/openlane/sky130_fd_sc_hs/config.tcl:set ::env(SYNTH_CAP_LOAD) "43.39" ; # femtofarad _inv_16 pin A cap (https://github.com/google/skywater-pdk-libs-sky130_fd_sc_hs/blob/main/cells/inv/sky130_fd_sc_hs__inv_16__tt_025C_1v68.lib.json)
$PDK_ROOT/sky130A/libs.tech/openlane/sky130_fd_sc_ls/config.tcl:set ::env(SYNTH_CAP_LOAD) "46.690" ; # femtofarad _inv_16 pin A cap (https://github.com/google/skywater-pdk-libs-sky130_fd_sc_ls/blob/main/cells/inv/sky130_fd_sc_ls__inv_16__tt_100C_1v80.lib.json)
$PDK_ROOT/sky130A/libs.tech/openlane/sky130_fd_sc_hdll/config.tcl:set ::env(SYNTH_CAP_LOAD) "33.468" ; # femtofarad _inv_16 pin A cap (https://github.com/google/skywater-pdk-libs-sky130_fd_sc_hdll/blob/main/cells/inv/sky130_fd_sc_hdll__inv_16__tt_025C_1v80.lib.json)
d-m-bailey commented 1 year ago

Similarly with FP_PDN_LOWER_LAYER

find $PDK_ROOT/$PDK/libs.tech -type f -exec grep SYNTH_CAP_LOAD {} /dev/null \;

gf180mcu returns nothing and sky130 returns

$PDK_ROOT/sky130A/libs.tech/openlane/config.tcl:set ::env(FP_PDN_LOWER_LAYER) met4
d-m-bailey commented 1 year ago

Also

FP_PDN_RAILS_LAYER
FP_PDN_UPPER_LAYER
d-m-bailey commented 1 year ago

This looks like it's from a previous version of openlane.