summary refs log tree commit diff
path: root/gnu/packages/fpga.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/fpga.scm')
-rw-r--r--gnu/packages/fpga.scm99
1 files changed, 96 insertions, 3 deletions
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 0fa2f5256b..96ba0026f9 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -1,8 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,18 +27,25 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages ghostscript)
@@ -340,7 +348,7 @@ FOSS FPGA place and route tool.")
 (define-public gtkwave
   (package
     (name "gtkwave")
-    (version "3.3.104")
+    (version "3.3.108")
     (source
      (origin
        (method url-fetch)
@@ -350,7 +358,7 @@ FOSS FPGA place and route tool.")
                   (string-append "http://gtkwave.sourceforge.net/"
                                  "gtkwave-" version ".tar.gz")))
        (sha256
-        (base32 "0kw9a33gx60kn069yhx5pyk39x1z3pwaj8l1qqwq943v62lx23fj"))))
+        (base32 "0fzbap72zm4ka6n85j0873fpaarrx199ay0kjw1avrs20hs4gr7c"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gperf" ,gperf)
@@ -374,3 +382,88 @@ simulator trace files (@dfn{FST}).")
     (home-page "http://gtkwave.sourceforge.net/")
     ;; Exception against free government use in tcl_np.c and tcl_np.h.
     (license (list license:gpl2+ license:expat license:tcl/tk))))
+
+(define-public python-migen
+  (package
+    (name "python-migen")
+    (version "0.9.2")
+    (source
+     (origin
+       ;; Tests fail in the PyPI tarball due to missing files.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/m-labs/migen")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1kq11if64zj84gv4w1q7l16fp17xjxl2wv5hc9dibr1z3m1gy67l"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-colorama" ,python-colorama)))
+    (home-page "https://m-labs.hk/gateware/migen/")
+    (synopsis "Python toolbox for building complex digital hardware")
+    (description
+     "Migen FHDL is a Python library that replaces the event-driven
+paradigm of Verilog and VHDL with the notions of combinatorial and
+synchronous statements, has arithmetic rules that make integers always
+behave like mathematical integers, and allows the design's logic to be
+constructed by a Python program.")
+    (license license:bsd-2)))
+
+(define-public python-myhdl
+  (package
+    (name "python-myhdl")
+    (version "0.11")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "myhdl" version))
+        (sha256
+          (base32
+            "04fi59cyn5dsci0ai7djg74ybkqfcjzhj1jfmac2xanbcrw9j3yk"))))
+    (build-system python-build-system)
+    (home-page "http://www.myhdl.org/")
+    (synopsis "Python as a Hardware Description Language")
+    (description "This package provides a library to turn Python into
+a hardware description and verification language. ")
+    (license license:lgpl2.1+)))
+
+(define-public nvc
+  (package
+    (name "nvc")
+    (version "1.5.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/nickg/nvc.git")
+                     (commit (string-append "r" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0dd1xany6qhh2qsfw8ba0ky7y86h19yr4hlk0r5i2bvwsg4355v9"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:parallel-build? #f ; https://github.com/nickg/nvc/issues/409
+       #:configure-flags
+       '("--enable-vhpi")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'clean-up
+           (lambda _
+             (delete-file "autogen.sh")
+             #t)))))
+    (native-inputs
+     `(("automake" ,automake)
+       ("autoconf" ,autoconf)
+       ("flex" ,flex)
+       ("gettext" ,gnu-gettext)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)
+       ("check" ,check))) ; for the tests
+    (inputs
+     `(("llvm" ,llvm-9)))
+    (synopsis "VHDL compiler and simulator")
+    (description "This package provides a VHDL compiler and simulator.")
+    (home-page "https://github.com/nickg/nvc")
+    (license license:gpl3+)))