I'm trying to get a minimum PDK working from scrat...
# openlane-2
s
I'm trying to get a minimum PDK working from scratch. However, I'm unable to pass
PDK_ROOT
and
PDK
to the flow via the
config.json
file of my design. Next step I specified it directly in the environment, which appears to progress a little bit further. However, at this moment, it gives an error
Could not resolve the PDK 'mypdk'.
in
cli.py:157
. Am I doing something wrong here?
The installation is nix-based on WSL2.
m
@Sven B As you discovered, I think the
PDK_ROOT
and
PDK
variables are set in the *nix environment and not the
config.json
file. The
config.json
file has settings for individual pdks
Copy code
"pdk::sky130*": {
It probably has a default for sky130 somewhere, so this line may not be needed for the sky130 process. If you’re making your own pdk, you may need to add the settings for that. There are also `config.json`/`config.tcl` files in the pdk that you may need to create for your process. In particular, the
$PDK_ROOT/$PDK/libs.tech/openlane/config.tcl
file.
s
Hi, thanks for the reply. I do have that config file in that specific location, yet it still gives me the error. Maybe because it is empty? I've tried changing permission settings but to no avail.
I've been modifying the python code directly to get some more debugging information by printing out variables and more, and I can see that it doesn't receive the correct
pdk_root
variable as the input, the
pdk
variable appears to be detected fine.
I've found out that, since I am not using Volare, that I have to use the
--manual-pdk
flag. Documentation found here: https://openlane2.readthedocs.io/en/latest/usage/about_pdks.html
So, maybe for those of the future: I advise to pass the pdk-root and pdk along with the openlane command.
openlane --pdk-root ~/pdks --pdk mypdk --manual-pdk <filename>.json
👍 1