Commit Graph

33 Commits

Author SHA1 Message Date
Austin Seipp
3dbe656a25
nextpnr: 2020.12.01 -> 2021.01.02, bugfixes, no GUI by default
Upstream NextPNR has moved to disable the GUI by default; it tends to
cause the most complications/bug reports and has various complexities
and failure modes (e.g. I've still had problems getting it working
efficiently on my Ice Lake laptop.)

Instead, disable GUI support by default, and add a new `nextpnrWithGui`
derivation that enables it. This cuts the closure size down by 40ish
percent (~800MB -> ~500MB) and makes it a neglibile amount faster.

It also fixes two bugs:

  1) We were using the old `ICEBOX_ROOT` parameter for ice40 support,
     now known as `ICESTORM_ICE40_PREFIX`, and

  2) the CMake option `SERIALIZE_CHIPDB` was renamed to `..._CHIPDBS`
     (with an 'S' suffix) which should speed up the build at the cost
     of RAM usage

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2021-01-03 06:06:33 -06:00
Austin Seipp
ad11ff123a
nextpnr: 2020.11.10 -> 2020.12.01
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2020-12-02 07:18:09 -06:00
Austin Seipp
a22061adef
nextpnr: 2020.08.22 -> 2020.11.10
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2020-11-12 15:23:03 -06:00
Austin Seipp
4875109d0f
nextpnr: 2020.07.08 -> 2020.08.22
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2020-08-23 11:01:25 -05:00
Luflosi
3fc5151782
nextpnr: fix build on macOS
`PYTRELLIS_LIBDIR` has been replaced by `TRELLIS_LIBDIR` in 1dc1164dce, which causes the build to fail on macOS.
2020-07-13 15:45:40 +02:00
Austin Seipp
9058630c2e
nextpnr: 2020.06.12 -> 2020.07.08
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2020-07-09 09:12:42 -05:00
Austin Seipp
4891facdd4
nextpnr: 2020.03.25 -> 2020.06.12
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2020-06-20 11:34:10 -05:00
Michael Reilly
84cf00f980
treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Austin Seipp
b008875ddb
nextpnr: 2020.02.04 -> 2020.03.25
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2020-03-25 06:46:00 -05:00
Emily
ff819cdd12 nextpnr: 2019.10.13 -> 2020.02.04 2020-02-08 23:00:07 -06:00
Emily
94fc232b72 nextpnr: 2019.09.28 -> 2019.10.13 2019-10-19 12:26:49 -05:00
Emily
97ca1528a0 nextpnr: enable tests 2019-09-28 16:55:21 -05:00
Emily
9f7165de66 nextpnr: 2019.08.31 -> 2019.09.28 2019-09-28 16:55:21 -05:00
Emily
12ae04518b nextpnr: (hopefully) fix build on Darwin
Fixes #67898, hopefully.
2019-09-02 16:11:17 -05:00
Austin Seipp
ea34c61c0f
nextpnr: restrict to Linux only
a5ac052dd3 changed the platforms for
nextpnr from 'linux' to 'all', but unfortunately nextpnr has not been
building anyway due to a missing OpenGL dependency.[1][2]

Restrict back to Linux for now. When a build fix happens, we can open it
up again.

  [1] https://hydra.nixos.org/build/99106360
  [1] https://hydra.nixos.org/eval/1538169

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-09-01 14:24:31 -05:00
Emily
cd4cba3e88 nextpnr: 2019.08.21 -> 2019.08.31 2019-09-01 14:22:49 -05:00
Emily
c1620c4635 nextpnr: fix GUI 2019-08-23 02:14:40 -05:00
Emily
35994c61d6 nextpnr: remove obsolete trellis hack 2019-08-23 02:14:40 -05:00
Emily
a5ac052dd3 nextpnr: 2018.08.10 -> 2018.08.21
Note: the previous sha256 was incorrect.
2019-08-23 02:14:40 -05:00
Emily
a0824ccff7 nextpnr: 2019.04.19 -> 2019.08.10 2019-08-14 00:14:22 -07:00
Thomas Tuegel
51d78034a1
wrapQtAppsHook: Remove ad hoc Qt wrappers 2019-07-05 10:42:08 -05:00
Austin Seipp
25bea5054e
nextpnr: 2019.04.02 -> 2019.04.19
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-04-22 14:27:44 -05:00
Austin Seipp
3b6c07c398
nextpnr: enable OpenMP support (for Eigen)
The new HEaP analytic placer for NextPNR uses Eigen for underlying
placement algorithms. Enabling -DUSE_OPENMP passes -fopenmp onto the
compiler, which Eigen picks up automatically with no extra work.

This should result in placer speedups for large designs, e.g. on ECP5
85k chips.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-04-15 00:17:54 -05:00
Ben Wolsieffer
a1f3127f40 nextpnr: 2019.02.20 -> 2019.04.02 2019-04-14 23:48:14 -05:00
Austin Seipp
b30ad4be96
nextpnr: 2019.01.08 -> 2019.02.20
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-02-23 12:08:48 -06:00
Austin Seipp
3d36ea6a05 nextpnr: with GUI support, be sure to set QT_PLUGIN_PATH
This is to help QT find all the necessary plugin libraries at startup
time, otherwise it freaks out when run out of 'nix-env' environment or
run directly, e.g.  `./result/bin/nextpnr-ice40 --gui`. The reason for
this is that none of the traditional paths it looks for are available.
The workarounds for this are to otherwise:

  - Install e.g. into environment.systemPackages (presumably it will
then pick up QT libraries in /run/current-system/sw/lib/qt-*)

  - Install 'qtbase' into your user environment (qt will also try to
load dependent libraries out of ~/.nix-profile/lib/qt-*)

However, this QT_PLUGIN_PATH wrapping hack is used elsewhere in the
tree, presumably to mitigate these (poor) workarounds, especially for
non-NixOS users. There seems to be no downside to this.

With this, I have been able to run NextPNR's GUI on an Ubuntu 16.04
system using the 'nixGL' hack by simply running the resulting binary
from anywhere (though there seems to be some glitching artifacts in the
floorplan UI, I suspect this is due to a buggy OpenGL stack rather than
any direct problem with NextPNR or the QT libraries themselves).

This does not mark the GUI build as non-broken yet, though. That will
happen in the future after a bit more testing and splitting nextpnr into
separate minimal/GUI attributes.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-01-12 15:51:00 -06:00
Austin Seipp
beaf69cee2 nextpnr: enable ECP5 P&R with Project Trellis
This requires an absurd, disgustingly gross hack in order to share the
build artifacts necessary for nextpnr to use trellis.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-01-08 19:15:24 -06:00
Austin Seipp
651679c257 nextpnr: fix version string output
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-01-08 19:15:24 -06:00
Austin Seipp
412e02c784 nextpnr: disable broken GUI build for now
This didn't work remotely (on a server with Nvidia drivers) _or_ on a
local Intel machine with integrated graphics. I presumably messed
something up (a missing dependency), but I'm not sure where. We can fix
it later.

In the mean time, just disable this by hiding it behind a minimal flag.
As a bonus this reduces the closure size by about half, although it's
still surprisingly large (~300MB or so). Part of that is probably
Python, though.

When the GUI is reintroduced in a working manner, we can expose two
nextpnr attributes for the minimal non-GUI build, and the GUI build.
(Note that I have no plans of making Python optional, since it's
extremely valuable in general and much more lightweight than qtbase.)

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-01-08 19:15:24 -06:00
Austin Seipp
1d36130ac1 nextnpr: 2018.12.29 -> 2019.01.08
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-01-08 19:15:24 -06:00
Ben Gamari
15681afe9c nextpnr: 2018.10.17 -> 2018.12.29 2018-12-30 17:11:09 -05:00
Ben Gamari
8f64cedf17 nextpnr: 2018.08.09 -> 2018.10.17 2018-10-17 00:15:47 -04:00
Austin Seipp
e7e77e108a nextpnr: init at 2018.08.09
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2018-08-15 12:14:02 -05:00