38 lines
916 B
Nix
38 lines
916 B
Nix
|
# Install Vivado in /opt and add to /etc/nixos/configuration.nix:
|
||
|
# nix.sandboxPaths = ["/opt"];
|
||
|
|
||
|
{ pkgs ? import <nixpkgs> {}}:
|
||
|
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
|
||
|
'';
|
||
|
};
|
||
|
}
|