# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 PYTHON_COMPAT=( python3_10 ) # Keep these revs up to date with the 'latest' submodule for each pdk lib in libraries/ # Build seems to fail if these lapse compared to the rev used by the skywater_pdk python module within this repo MY_PN="skywater-pdk" MY_REV=5a57f505cd4cd65d10e9f37dd2d259a526bc9bf7 MY_sky130_fd_io_REV=01b18699b4102d8e54ad1406b3991ecb652e5aee MY_sky130_fd_pr_REV=f62031a1be9aefe902d6d54cddd6f59b57627436 MY_sky130_fd_pr_reram_REV=48c8310e464157d797c78cb2e6d6b5a21d710c20 MY_sky130_fd_sc_hd_REV=ac7fb61f06e6470b94e8afdf7c25268f62fbd7b1 MY_sky130_fd_sc_hdll_REV=0694bd23893de20f5233ef024acf6cca1e750ac6 MY_sky130_fd_sc_hs_REV=1d051f49bfe4e2fe9108d702a8bc2e9c081005a4 MY_sky130_fd_sc_hvl_REV=4fd4f858d16c558a6a488b200649e909bb4dd800 MY_sky130_fd_sc_lp_REV=e2c1e0646999163d35ea7b2521c3ec5c28633e63 MY_sky130_fd_sc_ls_REV=4f549e30dd91a1c264f8895e07b2872fe410a8c2 MY_sky130_fd_sc_ms_REV=ae1b7f68821505cf2d93d9d44cce5ece22710fad inherit check-reqs python-any-r1 DESCRIPTION="Process design kit for usage with SkyWater Technology Foundry's 130nm node" HOMEPAGE="https://github.com/google/skywater-pdk" SRC_URI=" https://github.com/google/skywater-pdk/archive/${MY_REV}.tar.gz -> ${P}.tar.gz https://github.com/google/skywater-pdk-libs-sky130_fd_io/archive/${MY_sky130_fd_io_REV}.tar.gz -> skywater-pdk-libs-sky130_fd_io-${MY_sky130_fd_io_REV}.tar.gz https://github.com/google/skywater-pdk-libs-sky130_fd_pr/archive/${MY_sky130_fd_pr_REV}.tar.gz -> skywater-pdk-libs-sky130_fd_pr-${MY_sky130_fd_pr_REV}.tar.gz https://github.com/google/skywater-pdk-libs-sky130_fd_pr_reram/archive/${MY_sky130_fd_pr_reram_REV}.tar.gz -> skywater-pdk-libs-sky130_fd_pr_reram-${MY_sky130_fd_pr_reram_REV}.tar.gz https://github.com/google/skywater-pdk-libs-sky130_fd_sc_hd/archive/${MY_sky130_fd_sc_hd_REV}.tar.gz -> skywater-pdk-libs-sky130_fd_sc_hd-${MY_sky130_fd_sc_hd_REV}.tar.gz https://github.com/google/skywater-pdk-libs-sky130_fd_sc_hdll/archive/${MY_sky130_fd_sc_hdll_REV}.tar.gz -> skywater-pdk-libs-sky130_fd_sc_hdll-${MY_sky130_fd_sc_hdll_REV}.tar.gz https://github.com/google/skywater-pdk-libs-sky130_fd_sc_hs/archive/${MY_sky130_fd_sc_hs_REV}.tar.gz -> skywater-pdk-libs-sky130_fd_sc_hs-${MY_sky130_fd_sc_hs_REV}.tar.gz https://github.com/google/skywater-pdk-libs-sky130_fd_sc_hvl/archive/${MY_sky130_fd_sc_hvl_REV}.tar.gz -> skywater-pdk-libs-sky130_fd_sc_hvl-${MY_sky130_fd_sc_hvl_REV}.tar.gz https://github.com/google/skywater-pdk-libs-sky130_fd_sc_lp/archive/${MY_sky130_fd_sc_lp_REV}.tar.gz -> skywater-pdk-libs-sky130_fd_sc_lp-${MY_sky130_fd_sc_lp_REV}.tar.gz https://github.com/google/skywater-pdk-libs-sky130_fd_sc_ls/archive/${MY_sky130_fd_sc_ls_REV}.tar.gz -> skywater-pdk-libs-sky130_fd_sc_ls-${MY_sky130_fd_sc_ls_REV}.tar.gz https://github.com/google/skywater-pdk-libs-sky130_fd_sc_ms/archive/${MY_sky130_fd_sc_ms_REV}.tar.gz -> skywater-pdk-libs-sky130_fd_sc_ms-${MY_sky130_fd_sc_ms_REV}.tar.gz " S="${WORKDIR}/${PN}-${MY_REV}" LICENSE="Apache-2.0" SLOT="0/0.0.0.20220424" KEYWORDS="~amd64" BDEPEND=" ${PYTHON_DEPS} $(python_gen_any_dep 'dev-python/python-skywater-pdk[${PYTHON_USEDEP}]') " # Extremely large liberty files are required by sci-electronics/open_pdk CHECKREQS_DISK_BUILD="42G" CHECKREQS_DISK_USR="21G" src_unpack() { unpack ${A} # Move the libraries in place to their corresponding submodules for lib in sky130_fd_{io,pr,pr_reram,sc_hd,sc_hdll,sc_hs,sc_hvl,sc_lp,sc_ls,sc_ms}; do rmdir "${S}/libraries/${lib}/"* || die mv -f "${WORKDIR}"/skywater-pdk-libs-${lib}-* "${S}/libraries/${lib}/latest" || die done } src_compile() { for lib in libraries/sky130_*_sc_*/latest; do if [[ -d $lib/cells ]]; then ${EPYTHON} -m skywater_pdk.liberty $lib || die ${EPYTHON} -m skywater_pdk.liberty $lib all || die ${EPYTHON} -m skywater_pdk.liberty $lib all --ccsnoise || die fi done for lib in libraries/sky130_fd_sc_ms/latest; do if [[ -d $lib/cells ]]; then ${EPYTHON} -m skywater_pdk.liberty $lib all --leakage || die fi done } src_install() { insinto "/usr/share/pdk/skywater-pdk-source/libraries" for lib in sky130_fd_{io,pr,pr_reram,sc_hd,sc_hdll,sc_hs,sc_hvl,sc_lp,sc_ls,sc_ms}; do doins -r "${S}/libraries/${lib}" done }