Merge pull request #277610 from haskelious/update/quartus-prime-lite

quartus-prime-lite: 20.1.1.720 -> 22.1std.2.922
This commit is contained in:
Nick Cao 2024-01-01 10:35:12 -05:00 committed by GitHub
commit 2b01ba92d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 29 deletions

View File

@ -13,7 +13,7 @@ let
genericName = "Quartus Prime";
categories = [ "Development" ];
};
# I think modelsim_ase/linux/vlm checksums itself, so use FHSUserEnv instead of `patchelf`
# I think questa_fse/linux/vlm checksums itself, so use FHSUserEnv instead of `patchelf`
in buildFHSEnv rec {
name = "quartus-prime-lite"; # wrapped
@ -27,8 +27,13 @@ in buildFHSEnv rec {
glib
xorg.libICE
xorg.libSM
zlib
xorg.libXau
xorg.libXdmcp
libudev0-shim
bzip2
brotli
expat
dbus
# qsys requirements
xorg.libXtst
xorg.libXi
@ -43,7 +48,7 @@ in buildFHSEnv rec {
fontconfig = pkgs.fontconfig.override { inherit freetype; };
libXft = pkgs.xorg.libXft.override { inherit freetype fontconfig; };
in [
# modelsim requirements
# questa requirements
libxml2
ncurses5
unixODBC
@ -58,15 +63,15 @@ in buildFHSEnv rec {
];
extraInstallCommands = ''
mkdir -p $out/share/applications $out/share/icons/128x128
mkdir -p $out/share/applications $out/share/icons/hicolor/64x64/apps
ln -s ${desktopItem}/share/applications/* $out/share/applications
ln -s ${unwrapped}/licenses/images/dc_quartus_panel_logo.png $out/share/icons/128x128/quartus.png
ln -s ${unwrapped}/quartus/adm/quartusii.png $out/share/icons/hicolor/64x64/apps/quartus.png
progs_to_wrap=(
"${unwrapped}"/quartus/bin/*
"${unwrapped}"/quartus/sopc_builder/bin/qsys-{generate,edit,script}
"${unwrapped}"/modelsim_ase/bin/*
"${unwrapped}"/modelsim_ase/linuxaloem/lmutil
"${unwrapped}"/questa_fse/bin/*
"${unwrapped}"/questa_fse/linux_x86_64/lmutil
)
wrapper=$out/bin/${name}
@ -78,8 +83,8 @@ in buildFHSEnv rec {
mkdir -p "$(dirname "$wrapped")"
echo "#!${runtimeShell}" >> "$wrapped"
case "$relname" in
modelsim_ase/*)
echo "export NIXPKGS_IS_MODELSIM_WRAPPER=1" >> "$wrapped"
questa_fse/*)
echo "export NIXPKGS_IS_QUESTA_WRAPPER=1" >> "$wrapped"
;;
esac
echo "$wrapper $prog \"\$@\"" >> "$wrapped"
@ -98,10 +103,10 @@ in buildFHSEnv rec {
# https://community.intel.com/t5/Intel-FPGA-Software-Installation/Running-Quartus-Prime-Standard-on-WSL-crashes-in-libudev-so/m-p/1189032
#
# But, as can be seen in the above resource, LD_PRELOADing libudev breaks
# compiling encrypted device libraries in ModelSim (with error
# compiling encrypted device libraries in Questa (with error
# `(vlog-2163) Macro `<protected> is undefined.`), so only use LD_PRELOAD
# for non-ModelSim wrappers.
if [ "$NIXPKGS_IS_MODELSIM_WRAPPER" != 1 ]; then
# for non-Questa wrappers.
if [ "$NIXPKGS_IS_QUESTA_WRAPPER" != 1 ]; then
export LD_PRELOAD=''${LD_PRELOAD:+$LD_PRELOAD:}/usr/lib/libudev.so.0
fi
'';
@ -112,8 +117,8 @@ in buildFHSEnv rec {
passthru = {
inherit unwrapped;
tests = {
modelsimEncryptedModel = runCommand "quartus-prime-lite-test-modelsim-encrypted-model" {} ''
"${quartus-prime-lite}/bin/vlog" "${quartus-prime-lite.unwrapped}/modelsim_ase/altera/verilog/src/arriav_atoms_ncrypt.v"
questaEncryptedModel = runCommand "quartus-prime-lite-test-questa-encrypted-model" {} ''
"${quartus-prime-lite}/bin/vlog" "${quartus-prime-lite.unwrapped}/questa_fse/intel/verilog/src/arriav_atoms_ncrypt.v"
touch "$out"
'';
};

View File

@ -25,20 +25,20 @@ let
) deviceIds;
componentHashes = {
"arria_lite" = "140jqnb97vrxx6398cpgpw35zrrx3z5kv1x5gr9is1xdbnf4fqhy";
"cyclone" = "116kf69ryqcmlc2k8ra0v32jy7nrk7w4s5z3yll7h3c3r68xcsfr";
"cyclone10lp" = "07wpgx9bap6rlr5bcmr9lpsxi3cy4yar4n3pxfghazclzqfi2cyl";
"cyclonev" = "11baa9zpmmfkmyv33w1r57ipf490gnd3dpi2daripf38wld8lgak";
"max" = "1zy2d42dqmn97fwmv4x6pmihh4m23jypv3nd830m1mj7jkjx9kcq";
"max10" = "1hvi9cpcjgbih3l6nh8x1vsp0lky5ax85jb2yqmzla80n7dl9ahs";
"arria_lite" = "07p862i3dn2c0s3p39y23g94id59nzrpzbwdmrdnhy61ca3m0vzp";
"cyclone" = "0dic35j9q1ndrn8i2vdqg9176fr3kn6c8iiv0c03nni0m4ar3ykn";
"cyclone10lp" = "03w4f71fhhwvnkzzly9m15nrdf0jw8m0ckhhzv1vg3nd9pkk86jh";
"cyclonev" = "091mlg2iy452fk28idbiwi3rhcgkbhg7ggh3xvnqa9jrfffq9pjc";
"max" = "0r649l2n6hj6x5v6hx8k4xnvd6df6wxajx1xp2prq6dpapjfb06y";
"max10" = "1p5ds3cq2gq2mzq2hjwwjhw50c931kgiqxaf7ss228c6s7rv6zpk";
};
version = "20.1.1.720";
version = "22.1std.2.922";
download = {name, sha256}: fetchurl {
inherit name sha256;
# e.g. "20.1.1.720" -> "20.1std.1/720"
url = "https://downloads.intel.com/akdlm/software/acdsinst/${lib.versions.majorMinor version}std.${lib.versions.patch version}/${lib.elemAt (lib.splitVersion version) 3}/ib_installers/${name}";
# e.g. "22.1std.2.922" -> "22.1std.2/922"
url = "https://downloads.intel.com/akdlm/software/acdsinst/${lib.versions.majorMinor version}std.${lib.elemAt (lib.splitVersion version) 3}/${lib.elemAt (lib.splitVersion version) 4}/ib_installers/${name}";
};
in stdenv.mkDerivation rec {
@ -47,10 +47,10 @@ in stdenv.mkDerivation rec {
src = map download ([{
name = "QuartusLiteSetup-${version}-linux.run";
sha256 = "0mjp1rg312dipr7q95pb4nf4b8fwvxgflnd1vafi3g9cshbb1c3k";
sha256 = "078x42pbc51n6ynrvzpwiwgi6g2sg4csv6x2vnnzjgx6bg5kq6l3";
} {
name = "ModelSimSetup-${version}-linux.run";
sha256 = "1cqgv8x6vqga8s4v19yhmgrr886rb6p7sbx80528df5n4rpr2k4i";
name = "QuestaSetup-${version}-linux.run";
sha256 = "04pv5fq3kfy3xsjnj435zzpj5kf6329cbs1xgvkgmq1gpn4ji5zy";
}] ++ (map (id: {
name = "${id}-${version}.qdz";
sha256 = lib.getAttr id componentHashes;
@ -68,12 +68,12 @@ in stdenv.mkDerivation rec {
patchelf --interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $TEMP/${installer.name}
'';
copyComponent = component: "cp ${component} $TEMP/${component.name}";
# leaves enabled: quartus, modelsim_ase, devinfo
# leaves enabled: quartus, questa_fse, devinfo
disabledComponents = [
"quartus_help"
"quartus_update"
# not modelsim_ase
"modelsim_ae"
# not questa_fse
"questa_fe"
] ++ (lib.attrValues unsupportedDeviceIds);
in ''
${lib.concatMapStringsSep "\n" copyInstaller installers}