Commit graph

24 commits

Author SHA1 Message Date
Austin Seipp
609b49ea78
icestorm: 2018.12.31 -> 2019.02.23
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-02-23 12:08:48 -06:00
Austin Seipp
8b5e6b7711 icestorm: minor cleanup with pythonPkg.interpreter [NFC]
Suggested cleanup by @dotlambda. See:

  18839e1cc1 (commitcomment-31917295)

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-01-12 15:51:00 -06:00
Austin Seipp
61e57a827b icestorm: enableParallelBuilding = true
With the previous PyPy3 change, this reduces the compile time from
~1m30s to roughly 36s (compared to the original, serial, Python 3 build
time of 2:30s).

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-01-11 18:03:35 -06:00
Austin Seipp
18839e1cc1 icestorm: improve x86 build/runtime perf with pypy
PyPy3 offers tremendous speedups for IceStorm tools written in Python,
including tools used at compile-time to generate the chip databases, and
runtime tools distributed to users, such as icebox_vlog.

For example, on my ThreadRipper 1950X, build times for IceStorm
consistently go from 2m30s -> 1m30s with this change, a 40% improvement,
simply due to improvements in raw CPU efficiency. (This is also worsened
by the fact the build is currently serial, but that can easily be fixed
anyway.)

On top of that, tools distributed to users are also now run using PyPy.
Utilities such as icebox_vlog are useful for post-bitstream testing, for
instance, and also are improved due to improved CPU efficiency as well.
For example, when "decompiling" an ICE40 bitstream for HX8K devices,
containing a synthesized copy of PicoRV32 (from the NextPNR demos), the
runtime of icebox_vlog is cut from 25 seconds to 9 seconds consistently
with this change alone.

Normally, picking a Python interpreter outright for Python-based code is
a "bad idea", but in the case of IceStorm it should be perfectly safe,
and an excellent improvement for users. There are a few reasons for
this:

  - IceStorm uses pure Python 3 and nothing else. There are no
requirements for any 3rd party packages, which might cause annoying
incompatibilities, and PyPy has historically shown very strong core
Python compatibility.

  - IceStorm is NOT a set of Python libraries, it is a set of tools,
some of which, coincidentally, are written in Python. It is (normally)
bad form to fix libraries to certain interpreters versions if the reason
strictly isn't "it doesn't work/isn't compatible". That is not the case
here. These tools may later be used by other programs, such as NextPNR,
but the Python interpreter is ultimately not that important in quesion
for the user. In this sense, there is almost no downside to picking
PyPy explicitly if it offers far better performance.

(Point 2 is not actually strictly true; there are some distributed .py
files that you can import from but they are basically just static
classes that are imported by tools like nextpnr; this is expected.)

Because of this, users should see very little change except better
performance for IceStorm tools on their machines.

Note that PyPy is not supported on aarch64 -- this only applies to
x86_64 machines.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-01-11 18:03:35 -06:00
Austin Seipp
db136382f8 icestorm: 2018.09.04 -> 2018.12.31
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-01-08 19:15:24 -06:00
Austin Seipp
1e9e3adfb1 icestorm: 2018.08.01 -> 2018.09.04
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2018-10-01 22:32:54 -05:00
Serge Bazanski
7826a3155a icestorm: 2018.05.03 -> 2018.08.01 (#44321) 2018-08-01 23:20:38 +02:00
Austin Seipp
8f5c258cc1 icestorm: 2018.03.21 -> 2018.05.03
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2018-05-03 20:04:56 -05:00
Austin Seipp
df861685cb icestorm: 2018.03.07 -> 2018.03.21
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2018-03-21 16:05:10 -05:00
Austin Seipp
bd59d4c6c9 icestorm: 2018.02.14 -> 2018.03.07
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2018-03-08 21:23:20 -06:00
Austin Seipp
fa8f4b187f icestorm: fix chipdb location for icebox_vlog
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2018-02-14 16:11:01 -06:00
Austin Seipp
3b6c08b55b icestorm: 2018.02.04 -> 2018.02.14
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2018-02-14 00:31:13 -06:00
Austin Seipp
f610a780e4 icestorm: 2018.01.10 -> 2018.02.04
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2018-02-04 11:59:00 -06:00
Austin Seipp
28cf4ce531 icestorm: 2017.12.06 -> 2018.01.10
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2018-01-10 14:00:58 -06:00
Austin Seipp
0d82c7ec18 nixpkgs: add pkgconfig to icestorm nativeBuildInputs
This helps iceprog find libftdi appropriately on its own, without a
bunch of gross errors in the build process (which should not be a
problem, but may *look* like one!)

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2017-12-06 22:16:39 -06:00
Austin Seipp
a209f93cf4 nixpkgs: icestorm 2017.11.05 -> 2017.12.06
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2017-12-06 22:07:14 -06:00
Austin Seipp
5ccd5cded4 icestorm: 2017.10.16 -> 2017.11.05
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2017-11-05 12:49:38 -06:00
Austin Seipp
11cd2c52c4 nixpkgs: icestorm 2017.08.31 -> 2017.10.16
Also add myself to the maintainers list.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2017-10-16 12:01:17 -05:00
Austin Seipp
e3bc5171df icestorm: 2016.11.01 -> 2017.08.31
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2017-09-02 04:19:11 -05:00
Austin Seipp
c6b5131b01 nixpkgs: icestorm 2016.08.18 -> 2016.11.01
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2016-11-25 23:26:10 +00:00
Austin Seipp
59428b94a6 nixpkgs: icestorm 2016.05.21 -> 2016.08.18
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2016-08-19 01:55:13 +00:00
Tuomas Tynkkynen
21f17d69f6 treewide: Add lots of meta.platforms
Build-tested on x86_64 Linux & Mac.
2016-08-02 21:42:43 +03:00
David Craven
9b0fe47e36 icestorm: 2015.12.29 -> 2016.05.21 2016-05-22 07:54:17 +02:00
Shell Turner
c1ec39d47b icestorm: init at 2015.12.29 2015-12-30 16:52:41 +00:00