summary refs log tree commit diff
path: root/pkgs/development/tools/trellis/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/trellis/default.nix')
-rw-r--r--pkgs/development/tools/trellis/default.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/development/tools/trellis/default.nix b/pkgs/development/tools/trellis/default.nix
new file mode 100644
index 00000000000..892552559aa
--- /dev/null
+++ b/pkgs/development/tools/trellis/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, python3, cmake, boost }:
+
+let
+  trellisdb = fetchFromGitHub {
+    owner = "SymbiFlow";
+    repo  = "prjtrellis-db";
+    rev   = "06b429ddb7fd8ec1e3f2b35de2e94b4853cf2835";
+    sha256 = "07bsgw5x3gq0jcn9j4g7q9xvibvz6j2arjnvgyrxnrg30ri9q173";
+  };
+in
+stdenv.mkDerivation rec {
+  name = "trellis-${version}";
+  version = "2018.08.01";
+
+  buildInputs = [
+    (boost.override { python = python3; enablePython = true; })
+  ];
+
+  nativeBuildInputs = [
+    cmake python3
+  ];
+
+  src = fetchFromGitHub {
+    owner  = "SymbiFlow";
+    repo   = "prjtrellis";
+    rev    = "fff9532fe59bf9e38b44f029ce4a06c607a9ee78";
+    sha256 = "0ycw9fjf6428sf5x8x5szn8fha79610nf7nn8kmibgmz9868yv30";
+  };
+
+  preConfigure = ''
+    source environment.sh
+    cp -RT "${trellisdb}" database
+    cd libtrellis
+  '';
+
+  meta = {
+    description = "Documentation and tools for Lattice ECP5 FPGAs";
+    longDescription = ''
+      Project Trellis documents the Lattice ECP5 architecture
+      to enable development of open-source tools. Its goal is
+      to provide sufficient information to develop a free and
+      open Verilog to bitstream toolchain for these devices.
+    '';
+    homepage = https://github.com/SymbiFlow/prjtrellis;
+    license = stdenv.lib.licenses.isc;
+    maintainers = with stdenv.lib.maintainers; [ q3k ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}