gnu: Add Verilator.
* gnu/packages/fpga.scm (verilator): New variable. Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
This commit is contained in:
parent
fc4834f83b
commit
1a0907abd2
1 changed files with 57 additions and 0 deletions
|
@ -4,6 +4,7 @@
|
||||||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
|
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
|
||||||
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
|
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
|
||||||
|
;;; Copyright © 2021 Andrew Miloradovsky <andrew@interpretmath.pw>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -497,3 +498,59 @@ components interfaces. This, in turn, facilitates the integration of systems
|
||||||
using different abstraction levels.")
|
using different abstraction levels.")
|
||||||
;; homepages.cae.wisc.edu/~ece734/SystemC/Esperan_SystemC_tutorial.pdf
|
;; homepages.cae.wisc.edu/~ece734/SystemC/Esperan_SystemC_tutorial.pdf
|
||||||
(license license:asl2.0)))
|
(license license:asl2.0)))
|
||||||
|
|
||||||
|
(define-public verilator
|
||||||
|
(package
|
||||||
|
(name "verilator")
|
||||||
|
(version "4.108")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/verilator/verilator")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "0kcs0p8i2hiw348xqqh49pmllqspbzh2ljwmia03b42md5h4x5vf"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("autoconf" ,autoconf)
|
||||||
|
("automake" ,automake)
|
||||||
|
("bison" ,bison)
|
||||||
|
("flex" ,flex)
|
||||||
|
("gettext" ,gettext-minimal)
|
||||||
|
("python" ,python)))
|
||||||
|
(inputs
|
||||||
|
`(("perl" ,perl)
|
||||||
|
("systemc" ,systemc)))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:configure-flags
|
||||||
|
(list (string-append "LDFLAGS=-L"
|
||||||
|
(assoc-ref %build-inputs "systemc")
|
||||||
|
"/lib-linux64"))
|
||||||
|
#:make-flags
|
||||||
|
(list (string-append "LDFLAGS=-L"
|
||||||
|
(assoc-ref %build-inputs "systemc")
|
||||||
|
"/lib-linux64"))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'bootstrap
|
||||||
|
(lambda _ (invoke "autoconf"))))
|
||||||
|
#:test-target "test"))
|
||||||
|
;; #error "Something failed during ./configure as config_build.h is incomplete.
|
||||||
|
;; Perhaps you used autoreconf, don't." -- so we won't. ^^
|
||||||
|
(home-page "https://www.veripool.org/projects/verilator/")
|
||||||
|
(synopsis "Fast Verilog/SystemVerilog simulator")
|
||||||
|
(description
|
||||||
|
"Verilator is invoked with parameters similar to GCC or Synopsys’s VCS.
|
||||||
|
It ``Verilates'' the specified Verilog or SystemVerilog code by reading it,
|
||||||
|
performing lint checks, and optionally inserting assertion checks and
|
||||||
|
coverage-analysis points. It outputs single- or multi-threaded @file{.cpp}
|
||||||
|
and @file{.h} files, the ``Verilated'' code.
|
||||||
|
|
||||||
|
The user writes a little C++/SystemC wrapper file, which instantiates the
|
||||||
|
Verilated model of the user’s top level module. These C++/SystemC files are
|
||||||
|
then compiled by a C++ compiler (GCC/Clang/etc.). The resulting executable
|
||||||
|
performs the design simulation. Verilator also supports linking its generated
|
||||||
|
libraries, optionally encrypted, into other simulators.")
|
||||||
|
(license license:lgpl3)))
|
||||||
|
|
Reference in a new issue