Commit Graph

40 Commits

Author SHA1 Message Date
whitequark
e7bb04769d Port nextpnr-{ice40,ecp5} to WASI.
This involves very few changes, all typical to WASM ports:
  * WASM doesn't currently support threads or atomics so those are
    disabled.
  * WASM doesn't currently support exceptions so the exception
    machinery is stubbed out.
  * WASM doesn't (and can't) have mmap(), so an emulation library is
    used. That library currently doesn't support MAP_SHARED flags,
    so MAP_PRIVATE is used instead.

There is also an update to bring ECP5 bbasm CMake rules to parity
with iCE40 ones, since although it is possible to embed chipdb into
nextpnr on WASM, a 200 MB WASM file has very few practical uses.

The README is not updated and there is no included toolchain file
because at the moment it's not possible to build nextpnr with
upstream boost and wasi-libc. Boost requires a patch (merged, will
be available in boost 1.74.0), wasi-libc requires a few unmerged
patches.
2020-05-23 20:57:26 +00:00
David Shah
4b54253c24 router2: Prevent overflow
Signed-off-by: David Shah <dave@ds0.me>
2020-03-22 21:17:59 +00:00
David Shah
2248e07b66 router2: Improve flow and log output
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 13:46:05 +00:00
David Shah
a8206ed170 router2: Add a simple timing heuristic
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 13:33:20 +00:00
David Shah
ad1cc12df1 router2: Make magic numbers configurable
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
f82e133c7c router2: Fix case of undriven unsunk arcs
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
c27e7780d1 router2: Multi-thread in more cases
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
3b043432f5 router2: Flatten wire structure
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
2de98386a7 router2: Experiment with data structures
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
7ac43e5f00 router2: Profile nets by route time
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
72367e6cfd router2: Improvements
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
900fe98f0d router2: reduce bias cost factor
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
3b6d9c952a router2: special case improvement
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
a1c703729c router2: reduce memory footprint
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
37543ad003 router2: debugging
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
17256c680a router2: debugging
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
3d739b5916 router2: first pass at reserved wires
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
50b120528a router2: debugging some edge cases
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
bbc9c9b0ba router2: speedup
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
59c554b50a router2: Improve backwards routing of some cases
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
363d664f27 router2: tweaks
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
ffd679cd36 router2: Attempt to fix some stuck routing cases
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
3b28ba2f76 router2: Debugging
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
39b75244da router2: Working on multithreading
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
72f4721167 router2: Some simple partitioning
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:31 +00:00
David Shah
c21db8a0c1 router2: Congestion map generation
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
010e7ba8cb router2: Add IPIN cost to model
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
a8351b265f router2: Changes for ECP5
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
385380401a router2: Deal with some special cases
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
fa217a50a5 router2: Binding nextpnr wires/pips
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
599236bbc6 router2: Special backwards mode for gnd/vcc-like nets
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
a4ab9b19d7 router2: Bounding box improvements
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
54ca2e9b9c router2: nearly there
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
d5f6661bfb router2: Net data fixes
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
1c686101fc router2: Fixes
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
0ca07e5a6b router2: Add some test glue
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
37d5775694 router2: A* main loop
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
dbb771dfe4 router2: helper functions
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
a0ac9d62f2 router2: infrastructure
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
David Shah
51c0642ee0 router2: Basic infrastructure
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00