38 lines
895 B
Nix
38 lines
895 B
Nix
# Install Vivado in /opt and add to /etc/nixos/configuration.nix:
|
|
# nix.sandboxPaths = ["/opt"];
|
|
|
|
{ pkgs }:
|
|
let
|
|
vivadoEnv = pkgs.buildFHSUserEnv {
|
|
name = "vivado-env";
|
|
targetPkgs = pkgs: (
|
|
with pkgs; [
|
|
ncurses5
|
|
zlib
|
|
libuuid
|
|
xorg.libSM
|
|
xorg.libICE
|
|
xorg.libXrender
|
|
xorg.libX11
|
|
xorg.libXext
|
|
xorg.libXtst
|
|
xorg.libXi
|
|
]
|
|
);
|
|
};
|
|
in
|
|
{
|
|
buildBitstream = { name, src, vivadoPath ? "/opt/Xilinx/Vivado/2018.3" }:
|
|
pkgs.stdenv.mkDerivation {
|
|
inherit name src;
|
|
phases = [ "buildPhase" ];
|
|
buildPhase =
|
|
''
|
|
cp --no-preserve=mode,ownership -R $src/* .
|
|
${vivadoEnv}/bin/vivado-env -c "source ${vivadoPath}/settings64.sh && vivado -mode batch -source top.tcl"
|
|
mkdir $out
|
|
cp *.dcp *.rpt *.bit $out
|
|
'';
|
|
};
|
|
}
|