gatecat
d08fb255a2
router2: Fix uninitialised values
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-09-06 13:29:23 +01:00
gatecat
01b51fb715
router2: Fix explored count
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-09-02 17:08:54 +01:00
gatecat
f207068ee2
router2: Add experimental timing-driven ripup option
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-08-15 16:22:03 +01:00
gatecat
42522c492c
router2: Alternative congestion cost schedule
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-08-15 16:22:03 +01:00
gatecat
2a856db72c
router2: Adding some criticality heuristics
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-08-15 16:22:03 +01:00
gatecat
64f6b8bc67
router2: Improved bidir routing and data structures
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-08-15 16:22:03 +01:00
gatecat
b5a31d2e4e
router2: Mark dest as visited during backwards routing
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-07-30 09:14:46 +01:00
gatecat
42f48b6dc0
router2: Improve debugability of pip conflicts
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-07-29 13:04:59 +01:00
gatecat
504199e70e
nexus: Fix routeing of global clocks that also drive fabric
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-07-28 15:35:19 +01:00
gatecat
ce92cdf8e4
router2: Update route delays even when routes are congested
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-07-28 12:15:36 +01:00
gatecat
31abefc8e4
interchange: Allow pseudo pip wires to overlap with bound site wires on the same net
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-07-06 10:38:08 +01:00
gatecat
6fe071ad1d
router2: Dump pre-bound routes when routing fails in debug mode
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-07-06 10:21:31 +01:00
gatecat
2ffb081442
Fixing old emails and names in copyrights
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-12 13:22:38 +01:00
gatecat
f4fed62c05
Use hashlib in routers
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 15:04:53 +01:00
gatecat
579b98c596
Use hashlib for core netlist structures
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 14:27:56 +01:00
gatecat
1595c07260
router2: Add heatmap by routing resource type
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-20 14:54:23 +01:00
gatecat
5a41d2070c
Run clangformat
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-16 16:25:05 +01:00
gatecat
3bb94192d5
mistral: Tidying up
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-15 14:54:33 +01:00
gatecat
f318898474
router2: Hacky workaround for slow Cyclone V convergence
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-15 14:54:33 +01:00
gatecat
511e46c40f
router2: Reduce verbosity when debugging
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-15 14:54:33 +01:00
gatecat
ee60e9c71c
router2: Add some boundness statistics
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-12 12:18:58 +01:00
gatecat
e9fdbf618c
router2: Fix a typo
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-11 13:02:23 +01:00
gatecat
65c611da02
router2: Reserve wires in more complex cases
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-06 21:20:09 +01:00
gatecat
62613cb266
router2: Dynamicly expand bounding box based on congestion
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-06 19:04:24 +01:00
Keith Rothman
a519341112
Fix bug in router2 where router may give up too early.
...
Was introduced in #612 . The logic before was intended to prevent the
router from terminating early when not using a bounding box, but the fix
in #612 simply removed that, meaning that the router might terminate
early incorrectly. The solution here is to only use the toexplore
hysteric once a solution is found.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-04-06 10:22:47 -07:00
Keith Rothman
e7d81913a4
Add "checkPipAvailForNet" to Arch API.
...
This is important for distiguishing valid pseudo pips in the FPGA
interchange arch. This also avoids a double or triple lookup of
pip->net map.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-22 09:17:55 -07:00
Keith Rothman
965ba00e0f
Moving hash map/set type selection to header.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-17 16:54:29 -07:00
Keith Rothman
351ca3b5ea
Use NEXTPNR_NAMESPACE macro's now that headers are seperated.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-15 18:49:12 +00:00
Keith Rothman
a342ae56e0
Add support for partially routed nets from the placer in router2.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-12 09:53:15 -08:00
Keith Rothman
7168cf8657
Add diagnostic prints to debug lookahead performance.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-10 09:12:50 -08:00
whitequark
979e7b8709
Only depend on Abseil in threaded builds.
...
Abseil has a hard dependency on threads (not just in the build system
but in many places in the base libraries), so there is no way to use
it on WASI at the moment.
2021-03-10 06:18:42 +00:00
gatecat
d1f44fe91a
Merge pull request #607 from litghost/add_absl_flat_hash_map
...
Add absl::flat_hash_map.
2021-03-09 08:48:25 +00:00
gatecat
326b34887c
Merge pull request #609 from YosysHQ/gatecat/sta-v2
...
Use new timing engine for criticality
2021-03-09 08:48:12 +00:00
gatecat
da88d3d825
router2: Fix vast perf drop when leaving bounding box
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-03-08 15:06:30 +00:00
gatecat
1ff2023f32
timing: Replace all users of criticality with new engine
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-03-04 11:29:11 +00:00
Keith Rothman
0afa0da19f
Add absl::flat_hash_map.
...
This lowers the CPU cost of using the flat wire map in router2, and should
use less memory as well.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-01 09:55:54 -08:00
Keith Rothman
99a2262d61
Use scope in router1/2 and placer1.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-01 09:43:39 -08:00
Keith Rothman
c64a910151
Allow router2 to use routed but not fixed arcs.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-25 15:55:29 -08:00
gatecat
23413a4d12
Fix compiler warnings introduced by -Wextra
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-25 15:15:25 +00:00
gatecat
7c7d69e1d2
router2: Support for multiple bel pins per cell pin
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-10 15:14:44 +00:00
gatecat
535723f414
Start making use of getBelPinsForCellPin API
...
This replaces getNetinfoSinkWire with 3 new functions for different use
cases.
At the moment all existing code has been moved to getNetinfoSinkWire
with phys_idx=0 so the build doesn't break; but this won't yet function
properly with more than one sink. But it provides a base on which to
work on refactoring the routers to support this case.
Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-10 14:18:12 +00:00
D. Shah
94e8847d67
cleanup: Spelling fixes
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-28 15:19:06 +00:00
D. Shah
5fc3e8e4d2
cleanup: Fix compiler warnings
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-28 15:02:08 +00:00
David Shah
402819c64b
router2: Avoid ripup of critical path
...
Signed-off-by: David Shah <dave@ds0.me>
2020-12-01 09:54:19 +00:00
David Shah
3503f4e907
router2: Make splitting of wires thread-safe
...
Signed-off-by: David Shah <dave@ds0.me>
2020-12-01 09:38:52 +00:00
David Shah
b6c91d1621
router2: Add per-thread rng
...
Signed-off-by: David Shah <dave@ds0.me>
2020-12-01 09:21:44 +00:00
David Shah
5e90086d4f
router2: Fix case where src and dst are the same
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
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