From b6474d4eb1d814ec40ca5404e1af92406771ccd7 Mon Sep 17 00:00:00 2001 From: fpi Date: Fri, 1 Mar 2024 14:57:32 +0100 Subject: Initial flake --- flake.nix | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 flake.nix (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..97a27f8 --- /dev/null +++ b/flake.nix @@ -0,0 +1,100 @@ +{ + description = "Open pdks"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + + # download.sh https://github.com/efabless/skywater-pdk-libs-sky130_fd_pr /build/open_pdks-1.0.470/sources/sky130_fd_pr + efabless_skywater-pdk-libs-sky130_fd_pr = { + url = "github:efabless/skywater-pdk-libs-sky130_fd_pr"; + flake = false; + }; + # download.sh https://github.com/efabless/skywater-pdk-libs-sky130_fd_io ../sources/sky130_fd_io + efabless_skywater-pdk-libs-sky130_fd_io = { + url = "github:efabless/skywater-pdk-libs-sky130_fd_io"; + flake = false; + }; + # download.sh https://github.com/efabless/skywater-pdk-libs-sky130_fd_sc_hd /build/open_pdks-1.0.470/sources/sky130_fd_sc_hd + efabless_skywater-pdk-libs-sky130_fd_sc_hd = { + url = "github:efabless/skywater-pdk-libs-sky130_fd_sc_hd"; + flake = false; + }; + # download.sh https://github.com/PaulSchulz/sky130_pschulz_xx_hd ../sources/sky130_ml_xx_hd + PaulSchulz_sky130_pschulz_xx_hd = { + url = "github:PaulSchulz/sky130_pschulz_xx_hd"; + flake = false; + }; + # download.sh https://github.com/StefanSchippers/xschem_sky130 ../sources/xschem_sky130 + StefanSchippers_xschem_sky130 = { + url = "github:StefanSchippers/xschem_sky130"; + flake = false; + }; + # download.sh https://github.com/efabless/sky130_klayout_pdk ../sources/klayout_sky130 + efabless_sky130_klayout_pdk = { + url = "github:efabless/sky130_klayout_pdk"; + flake = false; + }; + # download.sh https://github.com/efabless/mpw_precheck ../sources/precheck_sky130 + efabless_mpw_precheck = { + url = "github:efabless/mpw_precheck"; + flake = false; + }; + + }; + + outputs = { self, nixpkgs, efabless_skywater-pdk-libs-sky130_fd_pr, efabless_skywater-pdk-libs-sky130_fd_io, efabless_skywater-pdk-libs-sky130_fd_sc_hd, PaulSchulz_sky130_pschulz_xx_hd, StefanSchippers_xschem_sky130, efabless_sky130_klayout_pdk, efabless_mpw_precheck }: { + + packages.x86_64-linux.open_pdks = + let pkgs = import nixpkgs { + system = "x86_64-linux"; + }; + in pkgs.stdenv.mkDerivation rec { + pname = "open_pdks"; + version = "1.0.470"; + src = pkgs.fetchurl { + url = "http://opencircuitdesign.com/open_pdks/archive/open_pdks-${version}.tgz"; + sha256 = "sha256-Q8Tiy5569XWTpme9V234CrJjaJ3SpgaEDSdjkJOafHk="; + }; + # nativeBuildInputs = [pkgs.breakpointHook]; + nativeBuildInputs = [ pkgs.python3 pkgs.magic-vlsi pkgs.git ]; + + enableParallelBuildung = true; + + git_efabless_skywater_pdk_libs_sky130_fd_pr = efabless_skywater-pdk-libs-sky130_fd_pr; + git_efabless_skywater_pdk_libs_sky130_fd_io = efabless_skywater-pdk-libs-sky130_fd_io; + git_efabless_skywater_pdk_libs_sky130_fd_sc_hd = efabless_skywater-pdk-libs-sky130_fd_sc_hd; + git_PaulSchulz_sky130_pschulz_xx_hd = PaulSchulz_sky130_pschulz_xx_hd; + git_StefanSchippers_xschem_sky130 = StefanSchippers_xschem_sky130; + git_efabless_sky130_klayout_pdk = efabless_sky130_klayout_pdk; + git_efabless_mpw_precheck = efabless_mpw_precheck; + + configureFlags = [ + "--prefix=\${out}" + "--datarootdir=\${out}" + "--enable-sky130-pdk" + "--enable-primitive-sky130" + "--disable-sc-hs-sky130" + "--disable-sc-ms-sky130" + "--disable-sc-ls-sky130" + "--disable-sc-lp-sky130" + "--enable-sc-hd-sky130" + "--disable-sc-hdll-sky130" + "--disable-sc-hvl-sky130" + "--disable-gf180mcu-pdk" + ]; + + postPatch = '' + patchShebangs scripts/* + patchShebangs common/* + patchShebangs sky130/custom/* + ''; + patches = [ + ./download.sh.patch + ]; + + }; + + packages.x86_64-linux.default = self.packages.x86_64-linux.open_pdks; + + }; +} -- cgit v1.2.3