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
263 stars 85 forks source link

FEAT: Integration with Advanced Packaging Tools (debian/apt or centos/yum) #434

Open daquintero opened 4 months ago

daquintero commented 4 months ago

Just a possible improvement proposal and whenever I get a tiny bit of time would be most happy to help with it.

Since most existing open-source EDA tools generally are using ubuntu/debian distributions, or RHEL for existing eg. Cadence based EDA tools, maybe it would be interesting if we could package up open-pdks into apt or yum so that most users could just do:

sudo apt-get install open-pdks

and to upgrade

sudo apt-get upgrade open-pdks

or something like this.

An alternative could be homebrew packaging so that maybe even UNIX-based users can just

brew install open-pdks

Maybe you've already thought about this before, or there are good reasons not to do this, but thought to propose in any case

RTimothyEdwards commented 4 months ago

I have nothing against that and would welcome a package management interface to open_pdks. The reason I haven't done it is that I tend to commit updates very often on the tools I maintain, and it's hard to keep the packaged versions up to date. My policy is generally that if anyone else wants to take on the responsibility of maintaining a packaged version, then they're welcome to do so.

I would like to point out that a packaged version would not be open_pdks but rather the built PDK itself. One of the issues with open_pdks is that the PDK sources take a huge amount of disk space, and building the PDKs takes a huge amount of both memory and disk space. Being able to install just the PDK (either one, sky130 or gf180mcu) would make it easier for the typical end-user.

So I would suggest that the actual package management should be something like sudo apt install sky130-pdk or sudo apt install gf180mcu-pdk. (It would also be helpful to check if the IHP process open PDK installs, or can be installed, in a similar fashion; IHP defined their open PDK the format used by open_pdks, so that open_pdks is not needed to build the installed PDK).

FYI, there is an EDA-specific tool called volare (https://github.com/efabless/volare) that does package management of pre-built PDKs, but I think there are plenty of reasons to put the PDKs in some of the common standard package management systems.