D. Shah
6d23461bcd
ecp5: Proof-of-concept using IdStringList for bel names
...
This uses the new IdStringList API to store bel names for the ECP5. Note
that other arches and the GUI do not yet build with this
proof-of-concept patch.
getBelByName still uses the old implementation and could be more
efficiently implemented with further development.
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 17:00:12 +00:00
D. Shah
0dbe7f96a3
common: First pass at IdStringList methods
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 16:59:42 +00:00
D. Shah
ff92d19fed
arch: Add getNameDelimiter API for string lists
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 16:59:40 +00:00
D. Shah
90edf33c95
common: Adding IdStringList type
...
Using an optimised storage for <=4 objects to avoid excessive heap
allocations.
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 16:58:57 +00:00
Keith Rothman
da74a425d2
Run "make clangformat".
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:44:49 -08:00
Keith Rothman
1deab29b05
Moving missing empty check into initial placement loop.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:43:38 -08:00
Keith Rothman
9089ee2d16
Add pybindings for new APIs.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:43:36 -08:00
Keith Rothman
9fe546f279
Rename Partition -> BelBucket.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
Keith Rothman
8d9390fc46
Fix regression in use of FastBels.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
Keith Rothman
16394d3158
Address some compiler warnings.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
Keith Rothman
0338368afa
Add Partition APIs to ice40, nexus, gowin archs.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
Keith Rothman
d03d9d839b
Working compile of ECP5.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
Keith Rothman
878fcdd22d
Implement partitioning in placer_heap.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
Keith Rothman
b4160c228e
Add archcheck for partition methods.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
Keith Rothman
2285c8dbbd
Initial refactoring of placer API.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
David Shah
efc98c517e
Merge pull request #563 from litghost/seperate_pip_range_types
...
Seperate PipRange types in pybindings_shared.
2021-02-02 09:59:18 +00:00
Keith Rothman
5cf2f8d1ea
Seperate PipRange types in pybindings_shared.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-01 10:23:21 -08:00
Keith Rothman
b8c823ef99
Avoid linear scan in PIP check loop.
...
The previous additions to archcheck increased the runtime of the nexus
archcheck quiet a bit.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-01-29 13:42:14 -08: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
D. Shah
6ecf7f86c8
cleanup: Remove dead/unused code
...
Note that some '#if 0' code that might still be useful for debugging in
the future has been retained.
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-28 14:59:13 +00:00
D. Shah
0d97904216
clangformat
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-28 14:38:20 +00:00
David Shah
b671d8f59d
Merge pull request #553 from YosysHQ/rel-slice
...
Switch from RelPtr to RelSlice
2021-01-28 12:53:03 +00:00
Keith Rothman
b8770915ad
Add connectivity round trip checks to archcheck.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-01-27 18:14:09 -08:00
D. Shah
b87ab0ee9d
Make RelSlice uncopyable
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-27 20:49:14 +00:00
D. Shah
75ee2fc4e6
Move RelPtr/RelSlice out of arches into common
...
The bba approach seems widely used enough that it's reasonable for this
to become part of common code.
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-27 20:43:01 +00:00
Per Grön
60276e3447
C++17 compatibility: Don't use std::random_shuffle
...
std::random_shuffle deprecated in C++14 and was removed in C++17.
2020-12-30 18:53:32 +01:00
Pepijn de Vos
3611f54902
Gowin target ( #542 )
...
* load wires
* add slice bels
* add IOB
* add aliases
* local aliases
* broken packing stuff
* working packer
* add constraints
* pnr runs1111
* add timing info
* constraints
* more constraint stuff
* add copyright
* remove generic reference
* remove parameters
* remove generic python api
* add newline to end of file
* some small refactoring
* warn on invalid constraints
* don't error on missing cell
* comment out debugging print
* typo
* avoid copy
* faster empty idstring
* remove intermediate variable
* no more deadnames
* fix cst warnings
* increase ripup and epsilon a bit
* take single device parameter
* add info to readme
* gui stubs
* Revert 4d03b681a8
* assign ff_used in assignArchInfo
* decrease beta for better routability
* try to fix CI
2020-12-30 14:59:55 +00:00
David Shah
a40829fef3
command.cc: Improve help text
...
Signed-off-by: David Shah <dave@ds0.me>
2020-12-27 20:05:33 +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
d8e748bc58
nexus: Refactor DSP macro splitting to make it more generic
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
30c65931b2
nexus: Add support for clocked MULT9X9s
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
9203181625
nexus: Support for unclocked 9x9 multiplies
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
094bf419d4
nexus: Miscellaneous DSP infrastructure
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
90608f2c89
nexus: Add some infrastructure for DSP packing
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
a69c595802
router1: Fix same-source-dest case
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +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
David Shah
cbf99d5e53
nexus: LUTRAM support
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
1bb509897c
nexus: More pin styles and FASM pinmux gen
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
518ead2e2d
nexus: IO pre-packing
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
84d5426242
nexus: Working on validity checking
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
b5d46a0235
nexus: Add Python bindings
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
44f98c545b
nexus: Add global networks
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
1afa494e69
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-26 18:08:19 +00:00
David Shah
70de8b3a03
nextpnr: Improve error reporting in Context::check
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-26 11:12:20 +00:00
Miodrag Milanovic
bb16fdb4bb
Python code cleanup
2020-11-14 16:34:12 +01:00
David Shah
06555aa003
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-14 09:07:34 +00:00
David Shah
b18ea204c2
Remove wire alias API
...
It has not actually been implemented in any router for over 2.5 years and causes nothing more than confusion. It can always be added back if it forms part of a future solution; possibly as part of a more general database structure rethink.
Signed-off-by: David Shah <dave@ds0.me>
2020-10-15 09:36:15 +01:00
Miodrag Milanović
f7da7c26aa
Merge pull request #500 from YosysHQ/dave/py-none-fix
...
python: Fix handling of None in pybind11
2020-09-14 15:57:29 +02:00
David Shah
b5e5f8d85f
python: Fix handling of None in pybind11
...
Signed-off-by: David Shah <dave@ds0.me>
2020-09-14 14:17:07 +01:00
Miodrag Milanovic
717bcfa19e
Preserve cmd parameters when loading json from GUI
2020-09-04 17:14:30 +02:00
Ross Schlaikjer
c30cadd19c
No longer need fstream include
2020-08-30 18:22:05 -04:00
Ross Schlaikjer
cba4753c22
Only print filenames for now, default on
2020-08-30 18:19:41 -04:00
Ross Schlaikjer
a8c110b045
Add option to print critical path source code
...
In order to make debugging the critical path easier, add an option that
will log the location each net was defined, if known.
If the file that contains the definition is known, and is readable, also
print the part of the source HDL responsible for the signal definition.
2020-08-30 17:43:29 -04:00
David Shah
109aa63474
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2020-08-20 09:46:49 +01:00
David Shah
b0dedf1a22
Merge pull request #488 from YosysHQ/dave/port_fanin_fix
...
timing: Fix counting of fanin in out-of-context mode
2020-08-12 16:38:46 +01:00
David Shah
3611b7120c
timing: Fix counting of fanin in out-of-context mode
...
Signed-off-by: David Shah <dave@ds0.me>
2020-08-12 10:42:26 +01:00
David Shah
e313d051a8
Add a warning when floorplan constraint doesn't match
...
Signed-off-by: David Shah <dave@ds0.me>
2020-08-12 10:11:52 +01:00
Miodrag Milanovic
1168d1ff90
Made proper exception translation
2020-08-07 09:46:02 +02:00
Miodrag Milanovic
fe398ab983
clangformat
2020-07-25 10:17:13 +02:00
David Shah
bb6e6a15f1
pycontainers: Fix kv-pair-iter type
...
Signed-off-by: David Shah <dave@ds0.me>
2020-07-24 16:27:47 +01:00
Miodrag Milanovic
597f4a1495
exception translation
2020-07-24 11:03:08 +02:00
Miodrag Milanovic
598ef014e6
Fixed named arguments
2020-07-24 10:59:11 +02:00
Miodrag Milanovic
770bb40eb3
proper argument propagation
2020-07-24 10:47:10 +02:00
Miodrag Milanovic
8a90328ab7
proper ctx export
2020-07-23 20:20:26 +02:00
Miodrag Milanovic
cca7d3aef7
possible fix
2020-07-23 19:55:25 +02:00
Miodrag Milanovic
8f2b707d02
Initial conversion to pybind11
2020-07-23 18:35:18 +02:00
David Shah
c7fbdc7877
Avoid low-value and slow pip name check for ECP5
...
Signed-off-by: David Shah <dave@ds0.me>
2020-06-29 19:52:31 +01:00
David Shah
32e655d0af
placer1: Unlock even if placement fails
...
Prevents a hang during routing when using --force
Fixes #462
Signed-off-by: David Shah <dave@ds0.me>
2020-06-29 16:39:31 +01:00
Miodrag Milanovic
7a95629aff
Fix clangformat and execute it
2020-06-27 13:20:16 +02:00
David Shah
4f4aa53120
Merge pull request #460 from whitequark/better-embed
...
Simplify and improve chipdb embedding/loading
2020-06-26 11:32:13 +01:00
whitequark
89e0cc8078
Simplify and improve chipdb embedding/loading.
2020-06-26 08:36:07 +00:00
David Shah
1df8ac805a
HeAP: Add timeout to IO placement
...
Signed-off-by: David Shah <dave@ds0.me>
2020-06-25 19:42:53 +01:00
David Shah
c9e7d1448e
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2020-06-12 16:19:14 +01:00
David Shah
f44498a530
Merge pull request #447 from whitequark/wasi
...
Port nextpnr-{ice40,ecp5} to WASI
2020-05-24 14:23:35 +01: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
ddf546c2cc
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2020-05-16 12:57:24 +01:00
Eddie Hung
e6b85f1bc0
Fix embarassing use of topographical when meaning topological
2020-05-14 08:55:28 -07:00
David Shah
e431d1a33f
Add missing --top option
...
Signed-off-by: David Shah <dave@ds0.me>
2020-05-09 19:47:03 +01:00
David Shah
25938500d6
python: Also convert regular map keys to string
...
Signed-off-by: David Shah <dave@ds0.me>
2020-04-24 18:23:03 +01:00
David Shah
fd099cef52
python: Wrap map IdString key when accessed by index
...
Signed-off-by: David Shah <dave@ds0.me>
2020-04-24 16:31:08 +01:00
Sylvain Munaut
3573fcca80
design_utils: Set port.net to null when disconnecting
...
Without this the python bindings can't actually connect anything else
to a disconnected port since the assert in connect_ports will think
it's still connected
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-04-24 16:13:07 +02:00
Rangel Ivanov
ef4a699b72
command.cc: Use correct constant for default router
...
Otherwise --help reports that the default router is heap
Signed-off-by: Rangel Ivanov <rangelivanov88@gmail.com>
2020-04-04 10:39:29 +03: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
d20ce45c1b
Merge branch 'master' of ssh.github.com:YosysHQ/nextpnr
2020-03-17 10:07:29 +00:00
David Shah
564f40f6db
timing: Improve robustness to dangling/undriven logic
...
Signed-off-by: David Shah <dave@ds0.me>
2020-03-17 10:07:21 +00:00
David Shah
54b15ed201
Replace assertion failure with error
...
Signed-off-by: David Shah <dave@ds0.me>
2020-03-13 11:35:09 +00:00
Sylvain Munaut
4a9981ee77
pycontainers: Properly handle KeyErrors
...
We raise a C++ exception to abort the rest of the execution of
the function.
At the same time we standardize on using a throw runtime error as the
method to avoid warning when not returning values. (some places
used this throw and some other used std::terminate)
Fixes #403
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-03-04 00:12:45 +01:00
David Shah
b6158f94f6
svg: Basic SVG graphics rendering
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-15 11:35:51 +00:00
David Shah
2c7d2f9e0c
placer1: Add routeability optimisation (off by default)
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-12 10:41:27 +00:00
David Shah
9125698cb0
HeAP: backport out-of-range fix
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-12 10:41:27 +00:00
David Shah
1cb0e3af03
HeAP: Add X and Y scaling factors for asymmetric arches
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-12 10:41:27 +00:00
David Shah
7db1484c75
HeAP: Make beta configurable
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-12 10:41:27 +00:00
David Shah
d1f5cdcb93
HeAP: Improve handling of heterogeneous slice arches
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-12 10:41:27 +00:00
David Shah
1ff060c5ad
HeAP: Make solver tolerance arch-configurable
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-12 10:41:27 +00:00
David Shah
7bda6f15a9
placer1: Allow scaling HPWL differently in each direction
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-12 10:41:27 +00:00
David Shah
1ceffbe0bc
Merge pull request #391 from YosysHQ/router2-upstream
...
Upstreaming router2
2020-02-04 16:08:08 +00:00
David Shah
b4d029a55c
Merge pull request #385 from YosysHQ/router1-arc-fixes
...
Fixes for partial reconfig demo
2020-02-03 13:55:07 +00:00