From: Stuart Henderson Subject: Re: New port cad/nextpnr To: Thomas Dettbarn Cc: ports@openbsd.org Date: Tue, 9 Jun 2026 00:20:53 +0100 On 2026/06/09 00:53, Thomas Dettbarn wrote: > For your consideration, please find the port for cad/nextpnr > attached to this email. > It is part of the yosys & nextpnr & openfpgaloader toolchain, > which can be used for FPGA design and synthesis on OpenBSD. > > Thomas > > > diff --git a/cad/nextpnr/Makefile b/cad/nextpnr/Makefile > new file mode 100644 > index 00000000000..eb31acf38fe > --- /dev/null > +++ b/cad/nextpnr/Makefile > @@ -0,0 +1,34 @@ > +############################################### > +## WARNING: This build requires a lot of RAM ## > +## Please update /etc/login.conf and set ## > +## daemon:datasize=16384M ## > +############################################### erk. don't suppose it's possible to track down which compilation uses so much ram and see if a lower optimisation level for that file would help? port builds are normally done with class 'pbuild' which on amd64 has default ":datasize-cur=12G:" ... > + > +COMMENT= Portable FPGA place and route tool lowercase at start > +CATEGORIES= cad > +V= 0.10a > +REVISION= 0 > +DISTNAME= nextpnr-${V} > + > +GH_ACCOUNT= YosysHQ > +GH_PROJECT= nextpnr > +GH_COMMIT= 32324500c4ae33670df429d2e8e2a83b51b062ab same comment as before about version numbering > +HOMEPAGE= https://github.com/YosysHQ/nextpnr > +MAINTAINER= Thomas Dettbarn > +# ISC License > +PERMIT_PACKAGE= yes > + > + > +MODULES= devel/cmake normally put a blank line before the license comment (and just one blank line not two after) > +NO_TEST= Yes > + > +LIB_DEPENDS= math/eigen3 > +BUILD_DEPENDS= cad/prjpeppercorn > +BUILD_DEPENDS+= lang/python/3 don't add the python dep like this, add lang/python to MODULES instead > + > +CONFIGURE_ARGS= -DARCH="generic;himbaechel" -DHIMBAECHEL_UARCH="gatemate" -DHIMBAECHEL_PEPPERCORN_PATH=/usr/local/share/prjpeppercorn-1.13 split onto lines i.e. CONFIGURE_ARGS= -DARCH="generic;himbaechel" \ -DHIMBAECHEL_UARCH="gatemate" \ ... do you really need the version number in the prjpeppercorn dir? apart from being a pain because you'll need to touch multiple ports after an update, there will also be churn in the PLIST files, and pkg_add will need to remove/reinstall files even if there was no change to the contents. > +CONFIGURE_ARGS= -DARCH="generic;himbaechel" -DHIMBAECHEL_UARCH="gatemate" -DHIMBAECHEL_PEPPERCORN_PATH=/usr/local/share/prjpeppercorn-1.13 > + > + > +.include > + > diff --git a/cad/nextpnr/distinfo b/cad/nextpnr/distinfo > new file mode 100644 > index 00000000000..6a0ca990755 > --- /dev/null > +++ b/cad/nextpnr/distinfo > @@ -0,0 +1,2 @@ > +SHA256 (nextpnr-0.10a-32324500.tar.gz) = Qu2EnnbMXCyPFmAJs+q1HF0lUCMNG7jmNbT3FB/TGGs= > +SIZE (nextpnr-0.10a-32324500.tar.gz) = 3524943 > diff --git a/cad/nextpnr/pkg/DESCR b/cad/nextpnr/pkg/DESCR > new file mode 100644 > index 00000000000..217791fd790 > --- /dev/null > +++ b/cad/nextpnr/pkg/DESCR > @@ -0,0 +1,2 @@ > +nextpnr aims to be a vendor neutral, timing driven, FOSS FPGA place and > +route tool. > diff --git a/cad/nextpnr/pkg/PLIST b/cad/nextpnr/pkg/PLIST > new file mode 100644 > index 00000000000..63fd94f8a9c > --- /dev/null > +++ b/cad/nextpnr/pkg/PLIST > @@ -0,0 +1,7 @@ > +@bin bin/nextpnr-generic > +@bin bin/nextpnr-himbaechel > +share/nextpnr/ > +share/nextpnr/himbaechel/ > +share/nextpnr/himbaechel/gatemate/ > +share/nextpnr/himbaechel/gatemate/chipdb-CCGM1A1.bin > +share/nextpnr/himbaechel/gatemate/chipdb-CCGM1A2.bin >