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

NGSpice files missing in Open-PDK install? #449

Open
MOS5500 opened this issue Jul 24, 2024 · 7 comments
Open

NGSpice files missing in Open-PDK install? #449

MOS5500 opened this issue Jul 24, 2024 · 7 comments

Comments

@MOS5500
Copy link

MOS5500 commented Jul 24, 2024

Hi to all,
I have installed open_Pdk and it make several directories in /usr/local/share/pdk/sky130A/libs.tech/ (after a strange delay for configuring (??) files for magic)

All directories contains files, I can use correctly Xschem and magic.
But if I launch a simulation from Xschem, I obtain an error because the sub-directory ngspice is empty.

Why?

@RTimothyEdwards
Copy link
Owner

Good question.
The first thing is to pin down where the issue occurs. The upstream source, if you let open_pdks do the work of cloning all the repositories, should end up in the directory (in open_pdks) sources/sky130_fd_pr/. If that exists (and is populated), then what about the staging directory (in open_pdks) sky130/sky130A/libs.tech/ngspice (also sky130/sky130A/libs.tech/combined)?

@MOS5500
Copy link
Author

MOS5500 commented Jul 24, 2024

The upstream source, if you let open_pdks do the work of cloning all the repositories, should end up in the directory (in open_pdks) sources/sky130_fd_pr/

In this directory there is only a subdir ".git"

If that exists (and is populated), then what about the staging directory (in open_pdks) sky130/sky130A/libs.tech/ngspice (also sky130/sky130A/libs.tech/combined)?

This two dirs are completely empty.

At this point I imagine it's a repository cloning problem, but I had already tried to download it (and reinstall it) a couple of times.

@MOS5500
Copy link
Author

MOS5500 commented Jul 25, 2024

Is it possible to install manually the files?

@RTimothyEdwards
Copy link
Owner

Yes, of course. The only thing the Makefile is doing is "git clone" on a bunch of repositories.

I have heard of people having issues with timeouts of github, depending on where you are located in the world. In some cases it can require multiple attempts, and/or running it at off-peak hours. Working around that problem may require increasing the values for RETRIES_NO and RETRY_DELAY in scripts/download.sh.

But also, I see from the Makefile that if the directory is created but the clone does not complete, then the fact that the directory exists prevents the make target from re-running. Assuming that all directories got created but some or all may not have completed the "git clone", then I suggest doing:

make update

This will do "git pull" on each of the repositories, and so will complete the clone operation if it failed the first time.

@RTimothyEdwards
Copy link
Owner

Also, assuming that in all those directories at least the .git/config file was created, then you can just cd to any directory in sources/ that is missing contents and run git pull as many times as you need to until it works.

@MOS5500
Copy link
Author

MOS5500 commented Jul 30, 2024

I finally did it!
After changing parameters, setting buffer sizes, global variables, changing dozens of git and OS parameters,
I did this:

  1. First I cloned the entire repository (and here the ngspice definitions are missing, which for obscure reasons, still does not clone).
  2. I cloned the NGspice definitions repository separately
  3. I copied the folder with ng definitions under open_pdks/sources, renaming it
  4. I gave make

and finally now ngpice seems to work! :)

Time taken: almost 2 weeks.

OT
Isn't there an alternative system to GIT to do this?
It was a bloodbath, I had to fight for two weeks, changing parameters, dirtying the OS and probably without even remembering what I changed. Absurd.
Couldn't we make a damn interactive installer that does everything by itself?
Having a graphical installer like in Windows would be the best.
Because it is humanly impossible to extrapolate from all the make messages what the errors are and go and correct them, it seems to me an archaic and senseless system.
Losing two weeks, without having done anything productive is inconceivable. But even losing a single day to configure something that should be able to let you work is senseless.
This is NOT a criticism of the author of the package (to whom we thank for putting it all together), but of a system with many absurd limits and that really drives you crazy.
/OT

@RTimothyEdwards
Copy link
Owner

@MOS5500 : There is an interactive installer that does everything by itself; it's called volare:
https://github.com/efabless/volare
open_pdks does a full build of the PDK from sources; volare just installs pre-built PDKs.

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

2 participants