diff options
author | Will Dietz <w@wdtz.org> | 2022-05-29 12:19:51 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-29 12:19:51 -0500 |
commit | bc6116b23f35120b352659fafe1ece9916b92ecf (patch) | |
tree | fabd11b16158aaedd0860b33507bb8adcb286a9e | |
parent | b571ef8fcbb301615fdc1b2ea404e74af7cf0444 (diff) | |
download | nixpkgs-bc6116b23f35120b352659fafe1ece9916b92ecf.tar nixpkgs-bc6116b23f35120b352659fafe1ece9916b92ecf.tar.gz nixpkgs-bc6116b23f35120b352659fafe1ece9916b92ecf.tar.bz2 nixpkgs-bc6116b23f35120b352659fafe1ece9916b92ecf.tar.lz nixpkgs-bc6116b23f35120b352659fafe1ece9916b92ecf.tar.xz nixpkgs-bc6116b23f35120b352659fafe1ece9916b92ecf.tar.zst nixpkgs-bc6116b23f35120b352659fafe1ece9916b92ecf.zip |
firrtl: init at 1.5.3 (#171065)
-rw-r--r-- | pkgs/development/compilers/firrtl/default.nix | 60 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
2 files changed, 62 insertions, 0 deletions
diff --git a/pkgs/development/compilers/firrtl/default.nix b/pkgs/development/compilers/firrtl/default.nix new file mode 100644 index 00000000000..5a59060b6f2 --- /dev/null +++ b/pkgs/development/compilers/firrtl/default.nix @@ -0,0 +1,60 @@ +{ lib, stdenv, jre, setJavaClassPath, coursier, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "firrtl"; + version = "1.5.3"; + scalaVersion = "2.13"; # pin, for determinism + + deps = stdenv.mkDerivation { + pname = "${pname}-deps"; + inherit version; + nativeBuildInputs = [ coursier ]; + buildCommand = '' + export COURSIER_CACHE=$(pwd) + cs fetch edu.berkeley.cs:${pname}_${scalaVersion}:${version} > deps + mkdir -p $out/share/java + cp $(< deps) $out/share/java + ''; + outputHashMode = "recursive"; + outputHash = "sha256-xy3zdJZk6Q2HbEn5tRQ9Z0AjyXEteXepoWDaATjiUUw="; + }; + + nativeBuildInputs = [ makeWrapper setJavaClassPath ]; + buildInputs = [ deps ]; + + dontUnpack = true; + + installPhase = '' + runHook preInstall + + makeWrapper ${jre}/bin/java $out/bin/${pname} \ + --add-flags "-cp $CLASSPATH firrtl.stage.FirrtlMain" + + runHook postInstall + ''; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/firrtl --firrtl-source "${'' + circuit test: + module test: + input a: UInt<8> + input b: UInt<8> + output o: UInt + o <= add(a, not(b)) + ''}" -o test.v + cat test.v + grep -qFe "module test" -e "endmodule" test.v + ''; + + meta = with lib; { + description = "Flexible Intermediate Representation for RTL"; + longDescription = '' + Firrtl is an intermediate representation (IR) for digital circuits + designed as a platform for writing circuit-level transformations. + ''; + homepage = "https://www.chisel-lang.org/firrtl/"; + license = licenses.asl20; + maintainers = with maintainers; [ dtzWill ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1137f848960..5fb42d1321f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12496,6 +12496,8 @@ with pkgs; fennel = callPackage ../development/compilers/fennel { }; + firrtl = callPackage ../development/compilers/firrtl { }; + flasm = callPackage ../development/compilers/flasm { }; flyctl = callPackage ../development/web/flyctl { }; |