Package: c4m-pdk-ihpsg13g2
This is the Chips4Makers' PDK for the SG13G2 open source PDK.Versionsv0.0.1: First public release; main achievement is that code can generate a version of the IO library ready for upstreaming toIHP-Open-PDK.It can also generate standard cells but these have not been used yet in P&R.Alpha Version of CodeThis is an alpha version of the IHP SG13G2 PDK, if it breaks you need to keep the pieces. E.g. hiccups are still expected when using this code base. For further discussion you can use theChips4Makers matrix channel. Certainly interested to be made aware about usage of this project.Pypi releaseA version of this library is also released on PyPI. Currently this release is not expected to be of much use on it's own. Plan is to evolve this PyPI release onto a state the installation of it together with it's dependencies is enough to do P&R for IHP SG13G2.DevelopmentDependenciesMost of the dependencies are handled bypdmand will this be taken care of when following thepdmsetup below. Only dependency that is not handled by that isngspiceas that tool does not have a python package available yet. The current simulations performed for the docs are only tested withngspiceversion 42 with osdi models installed. Following procedure was used on local Linux development machine to getngspiceinstalled:Compiledngspiceversion 42 with default options (this includes osdi support for this latest version). Both the command as the shared library were compiled. The shared library is needed byPySpiceand needs to be in default library search path or theNGSPICE_LIBRARY_PATHhas to be set pointing to thengspiceshared library.Download nightly version of theOpenVAFcompiler.Compiled theVA-Modelswith the downloadedOpenVAFcompiler.Copied the osdi models over into thengspiceinstallation directory and updated thespinitfile to automatically load these osdi models on start-up. The IHP MOS simulation models use the PSP compact models that are provided in this way. The simulation setup assumes that these models are available inngspice.If you encounter difficulties in setting this up don't hesitate to contact theChips4Makers matrix channel.Git Submodules SetupThis code usesgit submodulesand these submodules need to be initialized beforepdmcan be set up. This can be done by adding the--recursiveoption to thegit clonecommand or using later on by using the commandgit submodule update --initwhen it was not done during check-out. When pulling new versions of the main branch or switching between branches also agit submodule updatemay be necessary to also switch to the proper version of the submodules.PdmSetupPdmis used for python package dependency management and python package building. Please use thepdm installcommand to install the dependencies as was last used on the development machine.pdm cleancan be used to do a clean-up. The actual setup forpdmis done in thepyproject.tomlfile.DoittargetsDoitis used for build task setup and execution; thepdm doitcommand is to be used to call thedoitcommand in an environment with the proper dependencies present.Doitcan execute tasks in parallel by using the-n Noption whereNis the maximum number of parallel tasks. You do apdm doit listto get a list of all the tasks defined in thedodo.pyfile. Highlight of some higher level tasks defined:tarball: will run most of the tasks as dependency of that task and then generate a tarball in thetarballssubdirectory of the generated open PDK.patch4upstream: will also run most tasks and then create a patch on top the dev branch in the theupstream/IHP-Open-PDKgit submodule.Licensing RationaleOpen source projects and it's surrounding community can only strive when improvements to the
code or application of the code itself are released to the public and allowed to be used by
them. Copyleft type license are using the licensing terms to guarantee this actually happens
and no party uses a 'take-but-don't-give-back' approach. TheGNU Aferro General Public License V3.0is used as main license for
the code in this project as it is a copyleft type license that is also applicable to cloud
services without binary distribution of the code.One of the problems with a strict copyleft license is that it can introduce incompatibilities
with code released under other open source licenses. In order to improve compatibility and
thus also re-usability the code in this repo is multi-licensed. Multi-licensing under
established open source licenses was preferred over custom extension of licenses.TheGNU General Public License V2.0was added as optional license in
order to allow derived code not to be bound by the anti-tivoizationclauses introduced in theGNU General Public License Version 3. The latter was not deemed necessary for this project and the addition was done to increase
compatibility with some corporate policies.TheCERN Open Hardware Licence Version 2 - Strongly Reciprocalis included as it is a copyleft license specifically targeted for hardware but incompatible
with the GPL licenses.TheApache License Version 2.0is included to maximize compatibility
with existing open source code. One is supposed to not use it to avoid having to release one's
own derived code to the public. If you plan development of a project in a proprietary way, one
is kindly asked to not derive one's code from this project's code.In future the list of allowed licenses may be reduced. A reason could be that such an action
is deemed necessary by the project maintainers to encourage open sourcing of derived code.Analog to how the object files and the executables generated by the gcc compiler are not
necessarily governed by the GPL license, the multi-licensing applies only to code derived
from code in this repository. Output files generated through the use of the code in this
repository are not by default bound to the multi-licensing requirements of this project's
code.