1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..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
}
|