<@U016EM8L91B> I have the skywater-pdk / magic/ op...
# sky130
s
@User I have the skywater-pdk / magic/ open_pdks source directories (cloned from git repos), my question is how do i ensure everything is in sync and up to date. For magic i guess a 'git pull' followed by 'make && make install' would be enough. For skywater-pdk is 'git pull' enough? do i need special commands for the library submodules? for open_pdks is 'git pull' followed by 'make && make install' ok? This question because a full rebuild takes a very long time on my limited hardware.
t
Yes, the skywater-pdk build is very long and takes up a lot of disk space, and I have several ways to avoid that.
Clone skywater-pdk once into a local directory, and build it, and leave it. It does not update often (basically it has never been updated; instead I just add patches in open_pdks). This has the drawback that the skywater-pdk after building takes up a lot of disk space, and then open_pdks copies (often modified) all that data to another place, taking up even more disk space. When building open_pdks with a pre-built skywater-pdk repository, use the option
--enable-sky130-pdk=_path_to_skywater_pdk_
instead of just
--enable-sky130-pdk
. If you don't provide the path, then open_pdks will clone the repo itself and do a full build. Now, to reduce the amount of time and disk space used by the skywater-pdk repository, only build the submodules that you need. In general, the "make" process is only long and hogs disk space because of the liberty format files for the digital standard cells. So make sure you initialize the primitives library and the I/O library. Then initialize the
sky130_fd_sc_hd
standard cell library, which is the most-used and most common. After that, the
sky130_fd_sc_hvl
is useful for any 3.3V logic, and
sky130_fd_sc_hs
is useful for high-speed logic---but the open source tools struggle with precision timing, so I'm not sure it's a great idea to use the high-speed logic until the tools improve a bit.
Assuming that you've taken the steps above and that all the repositories have been configured and skywater-pdk has been built, then every update should be: For magic: 'git pull', 'make', and 'sudo make install'. For skywater-pdk: probably no action needed. For open_pdks: 'git pull', 'make', and 'sudo make install'
s
Ok, very clear. Thank you!
v
@Stefan Schippers @Tim Edwards Does updating other tools like xschem , ngspice, netgen , klayout also require these steps: 'git pull', 'make', and 'sudo make install'
s
For xschem and ngspice, yes. the sky130 xschem components are brought in by open_pdks, This also works by pulling updates from git and rebuilding as explained here.