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