gnu: pocl: Update to 1.2.
[jackhill/guix/guix.git] / gnu / packages / fpga.scm
index f65eae8..c9454aa 100644 (file)
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
-;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages readline)
@@ -35,7 +37,7 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages zip)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gperf)
@@ -82,7 +84,7 @@ formal verification.")
 (define-public iverilog
   (package
     (name "iverilog")
-    (version "10.1.1")
+    (version "10.2")
     (source (origin
               (method url-fetch)
               (uri
@@ -90,7 +92,7 @@ formal verification.")
                               "verilog-" version ".tar.gz"))
               (sha256
                 (base32
-                   "1nnassxvq30rnn0r2p85rkb2zwxk97p109y13x3vr365wzgpbapx"))))
+                   "0075x5nsxwkrgn7b3635il9kw7mslckaji518pdmwdrdn7fxppln"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("flex" ,flex)
@@ -103,7 +105,7 @@ It operates as a compiler, compiling source code written in Verilog
 (IEEE-1364) into some target format.
 For batch simulation, the compiler can generate an intermediate form
 called vvp assembly.
-This intermediate form is executed by the ``vvp'' command.
+This intermediate form is executed by @command{vvp}.
 For synthesis, the compiler generates netlists in the desired format.")
     ;; GPL2 only because of:
     ;; - ./driver/iverilog.man.in
@@ -129,8 +131,10 @@ For synthesis, the compiler generates netlists in the desired format.")
               (file-name (string-append name "-" version "-checkout.tar.gz"))
               (modules '((guix build utils)))
               (snippet
-                '(substitute* "Makefile"
-                   (("ABCREV = .*") "ABCREV = default\n")))))
+               '(begin
+                  (substitute* "Makefile"
+                    (("ABCREV = .*") "ABCREV = default\n"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -148,7 +152,7 @@ For synthesis, the compiler generates netlists in the desired format.")
              #t))
          (replace 'configure
            (lambda* (#:key inputs (make-flags '()) #:allow-other-keys)
-             (zero? (apply system* "make" "config-gcc" make-flags))))
+             (apply invoke "make" "config-gcc" make-flags)))
          (add-after 'configure 'prepare-abc
            (lambda* (#:key inputs #:allow-other-keys)
              (let* ((sourceabc (assoc-ref inputs "abc"))
@@ -159,7 +163,7 @@ For synthesis, the compiler generates netlists in the desired format.")
                      (lambda (port)
                        (format port ".PHONY: all\nall:\n\tcp -f abc abc-default\n")))
                    (copy-file source "abc/abc")
-                   (zero? (system* "chmod" "+w" "abc/abc")))))
+                   (invoke "chmod" "+w" "abc/abc"))))
           (add-before 'check 'fix-iverilog-references
              (lambda* (#:key inputs native-inputs #:allow-other-keys)
                (let* ((xinputs (or native-inputs inputs))
@@ -198,6 +202,8 @@ For synthesis, the compiler generates netlists in the desired format.")
        ("psmisc" ,psmisc)
        ("xdot" ,xdot)
        ("abc" ,abc)))
+    (propagated-inputs
+     `(("z3" ,z3))) ; should be in path for yosys-smtbmc
     (home-page "http://www.clifford.at/yosys/")
     (synopsis "FPGA Verilog RTL synthesizer")
     (description "Yosys synthesizes Verilog-2005.")
@@ -231,6 +237,11 @@ For synthesis, the compiler generates netlists in the desired format.")
                 (("-I/usr/local/include") "")
                 (("-L/usr/local/lib") ""))
               #t))
+          (add-after 'remove-usr-local 'fix-usr-local
+            (lambda* (#:key outputs #:allow-other-keys)
+              (substitute* "icebox/icebox_vlog.py"
+                (("/usr/local/share") (string-append (assoc-ref outputs "out") "/share")))
+              #t))
           (delete 'configure))))
     (inputs
      `(("libftdi" ,libftdi)))
@@ -290,14 +301,14 @@ Includes the actual FTDI connector.")
 (define-public gtkwave
   (package
     (name "gtkwave")
-    (version "3.3.76")
+    (version "3.3.91")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://gtkwave.sourceforge.net/"
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1vlvavszb1jwwiixiagld88agjrjg0ix8qa4xnxj4ziw0q87jbmn"))))
+                "1vp9qj3wyfwm36jk3pajvi09xvc1m1crf3d4gphfbs6nkyx2z942"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gperf" ,gperf)
@@ -317,7 +328,7 @@ Includes the actual FTDI connector.")
 
     (synopsis "Waveform viewer for FPGA simulator trace files")
     (description "This package is a waveform viewer for FPGA
-simulator trace files (FST).")
+simulator trace files (@dfn{FST}).")
     (home-page "http://gtkwave.sourceforge.net/")
-    ;; Exception against free government use in tcl_np.c and tcl_np.h
+    ;; Exception against free government use in tcl_np.c and tcl_np.h.
     (license (list license:gpl2+ license:expat license:tcl/tk))))