[bug#78390,electronics-team] gnu: nextpnr: Add ecp5 and himbaechel architectures.
Commit Message
* gnu/packages/fpga.scm (nextpnr): Add ecp5 and himbaechel architectures.
Change-Id: Ia4b92f6cd1693b844b35949fdc23369e958e73c1
---
[arguments] <#:configure-flags>: Add Add ecp5 and himbaechel.
<#:phases> {get-prjbeyond-db}: New phase.
{unbundle-sanitizers-cmake}: Simplify lambda.
[native-inputs]: Add prjtrellis.
gnu/packages/fpga.scm | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
base-commit: e4e43cebbacbbb7982d08f691636f3234fd60184
--
2.49.0
@@ -54,6 +54,7 @@ (define-module (gnu packages fpga)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages electronics)
#:use-module (gnu packages elf)
#:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
@@ -408,18 +409,36 @@ (define-public nextpnr
(list
#:cmake cmake ;CMake 3.25 or higher is required.
#:configure-flags
- #~(list "-DARCH=generic;ice40" ;TODO: enable more architectures?
+ ;;TODO: enable more architectures?
+ #~(list "-DARCH=generic;ice40;ecp5;himbaechel"
"-DBUILD_GUI=ON"
"-DUSE_OPENMP=ON"
"-DBUILD_TESTS=ON"
+ "-DHIMBAECHEL_UARCH=ng-ultra" ;gowin requires python-apycula.
+ "-DHIMBAECHEL_NGULTRA_DEVICES=ng-ultra"
+ "-DHIMBAECHEL_PRJBEYOND_DB=/tmp/prjbeyond-db"
(string-append "-DCURRENT_GIT_VERSION=nextpnr-" #$version)
(string-append "-DICESTORM_INSTALL_PREFIX="
#$(this-package-input "icestorm"))
+ (string-append "-DTRELLIS_INSTALL_PREFIX="
+ #$(this-package-input "prjtrellis"))
"-DUSE_IPO=OFF")
#:phases
#~(modify-phases %standard-phases
+ (add-after 'unpack 'get-prjbeyond-db
+ (lambda _
+ (copy-recursively
+ #$(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/yosyshq-GmbH/prjbeyond-db/")
+ (commit "06d3b424dd0e52d678087c891c022544238fb9e3")))
+ (sha256
+ (base32
+ "17dd3cgms2fy6xvz7magdmvv92km4cqh2kz9dyjrvz5y8caqav4y")))
+ "/tmp/prjbeyond-db")))
(add-after 'unpack 'unbundle-sanitizers-cmake
- (lambda* (#:key inputs #:allow-other-keys)
+ (lambda _
(substitute* "CMakeLists.txt"
;; Use the system sanitizers-cmake module. This is made
;; necessary 'sanitizers-cmake' installing a FindPackage
@@ -436,6 +455,7 @@ (define-public nextpnr
corrosion
eigen
icestorm
+ prjtrellis
pybind11
python
qtbase-5