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
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
7123209324
Allow selection of router algorithm
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:54:38 +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
abdaa9c8a1
ecp5: Router2 test integration
...
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
Miodrag Milanovic
d5f50070d7
Update formatting
2020-02-02 17:20:14 +01:00
Miodrag Milanovic
f81bd6b1fc
Better formatting
2020-02-02 12:16:34 +01:00
Miodrag Milanovic
531b739180
Add spent time info to report
2020-02-02 12:03:58 +01:00
Erika
9185c85a54
python: Expose PlaceStrength enum and isValidBelForCell on ecp5
...
Signed-off-by: Erika <rrika9@yahoo.com>
2020-01-26 20:32:02 +00:00
David Shah
84fec7e82f
Fixes for partial reconfig demo
...
Signed-off-by: David Shah <dave@ds0.me>
2020-01-18 15:37:13 +00:00
Tobias Müller
659c4fad56
Change version to git describe and make set-able from outside
...
Change version to use git describe instead of git log as this will also work
if tags are present and make the version string set-able from outside as a
parameter to cmake, so that package managers can set this if building outside
of a git working tree.
2020-01-11 11:38:45 +01:00
David Shah
abfe31d5d2
HeAP: increase timeout
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-30 15:53:24 +00:00
David Shah
0ea7f153a1
Allow constraining non-leaf cells to regions
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
fe40094216
Preserve hierarchy through packing
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
b100087024
python: Add bindings for hierarchy structures
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
6bf3c261fa
First pass at data structures for hierarchy
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
035bfb0fe5
json: Remove legacy frontend
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
9e6770af90
command: Use new frontend experimentally
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
6aaa9f5a3d
frontend/base: Functions for port import
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:29 +00:00
David Shah
fffc3b8447
frontend/base: Top module handling
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:29 +00:00
David Shah
89e15d488a
HeAP: fix region constraint handling
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-01 14:18:10 +00:00
David Shah
4916eb9bb1
HeAP: more realistic timeout threshold
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-26 21:45:46 +00:00
David Shah
523ed4cfb2
HeAP: improve error handling when stuck
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-26 10:16:27 +00:00
David Shah
75f403db60
HeAP: support for bel region constraints
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-26 10:01:33 +00:00
David Shah
f28186bb1b
timing: Fix critical path walking for ECP5
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-18 21:34:32 +00:00
David Shah
f2b9cc6d23
sdf: Working on support for CVC
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-24 12:37:07 +01:00
David Shah
8343488bdf
sdf: Improve SDF output
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-24 10:43:18 +01:00
David Shah
4775930e49
sdf: Add basic support for writing SDF files
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-19 19:20:02 +01:00
David Shah
c0484a317d
sdf: Framework for writing out SDF files
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-19 16:08:11 +01:00
David Shah
cf5cbd1153
ecp5: Preserve top level IO properly
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-18 15:58:57 +01:00
David Shah
c6401413a4
ecp5: Add support for IO registers
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-09 14:23:35 +01:00
David Shah
cb8d90bcbf
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-01 12:01:24 +01:00
David Shah
5cd2b55f1f
python: Adding helper functions for netlist modification
...
Signed-off-by: David Shah <dave@ds0.me>
2019-09-15 19:30:56 +01:00
David Shah
d5e4986e1b
python: Refactor out bindings shared between ECP5 and iCE40
...
Signed-off-by: David Shah <dave@ds0.me>
2019-09-15 16:15:07 +01:00
David Shah
95540763b9
json: Add support for net aliases
...
Signed-off-by: David Shah <dave@ds0.me>
2019-09-13 17:27:15 +01:00
David Shah
fba7c2caef
timing: Improve support for out-of-context flows
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-07 16:51:29 +01:00
David Shah
661237eb64
ecp5: Add --out-of-context for building hard macros
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-07 14:22:47 +01:00
David Shah
ec48f8f464
ecp5: New Property interface
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-05 17:22:37 +01:00
David Shah
1839a3a770
Major Property improvements for common and iCE40
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-05 14:52:15 +01:00
Miodrag Milanovic
bd694bda19
Switching from std to boost fix crash
2019-07-05 10:22:42 +02:00
Miodrag Milanovic
831c7f2ef1
Speedup critical path
2019-06-28 13:43:55 +02:00
Miodrag Milanovic
be47fc3e9a
clangformat run
2019-06-25 18:19:25 +02:00
Miodrag Milanovic
ec47ce2320
Merge master
2019-06-25 18:14:51 +02:00
David Shah
fa77a5ae4a
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2019-06-24 11:43:01 +01:00
David Shah
e5c21afc7c
timing: Add missing std::min
...
Signed-off-by: David Shah <dave@ds0.me>
2019-06-23 15:01:58 +01:00
Miodrag Milanovic
92da4a91de
Preserve ports
2019-06-21 09:43:47 +02:00
Miodrag Milanovic
ff257a0929
default placement only if not set
2019-06-15 15:35:23 +02:00
Miodrag Milanovic
226885a58f
use save seed
2019-06-15 15:31:18 +02:00
Miodrag Milanovic
8d5724f4fd
moved some context variables to settings
2019-06-15 15:23:51 +02:00
Miodrag Milanovic
95280060b8
No need for settings class
2019-06-15 13:09:49 +02:00
Miodrag Milanovic
66ea9f39f7
enable lading of jsons and setting up context
2019-06-14 15:18:35 +02:00
Miodrag Milanovic
0d8c80ad5d
gui for json write and proper statuses
2019-06-14 11:14:18 +02:00
Miodrag Milanovic
03dff10cbd
Load properties from json and propagate to context create
2019-06-13 20:42:11 +02:00
Miodrag Milanovic
4de147d9e4
Save settings that we saved in project
2019-06-13 18:39:16 +02:00
Miodrag Milanovic
c760b03261
Cleanup
2019-06-13 18:18:16 +02:00
Miodrag Milanovic
1cd4a4d17a
Remove concept of project and code connected
2019-06-13 17:42:41 +02:00
Miodrag Milanovic
856760599e
Use properties for settings and save in json
2019-06-12 18:34:34 +02:00
Miodrag Milanovic
d9b0bac248
Save top level attrs and store current step
2019-06-07 16:11:11 +02:00
Miodrag Milanovic
ef1a5fa606
Save/restore net strength
2019-06-07 14:31:13 +02:00
Miodrag Milanovic
5b62f33dd5
Restore routing from json
2019-06-07 14:23:57 +02:00
Miodrag Milanovic
78e6631f76
Cleanup
2019-06-07 13:49:19 +02:00
Miodrag Milanovic
a8871ea8aa
Cleanup and fixes, flow works now
2019-06-07 13:19:11 +02:00
Miodrag Milanovic
1093d7e122
WIP saving/loading attributes
2019-06-07 11:48:15 +02:00
whitequark
f3339961fe
Fix missing \n in log statement.
2019-06-04 13:15:23 +00:00
Miodrag Milanovic
44d6f16b66
Support ecp5 read write additional cell info
2019-06-03 21:01:05 +02:00
Miodrag Milanovic
82ed1803c7
use NEXTPNR_BEL, since BEL is initial placement
2019-06-02 18:38:20 +02:00
Miodrag Milanovic
7c65da417b
Read constraints and placing from file
2019-06-02 17:33:37 +02:00
Miodrag Milanovic
d0273f7faa
option to disable packing
2019-06-02 10:01:20 +02:00
Miodrag Milanovic
5c47b6034e
added no-place and no-route options
2019-06-02 09:13:19 +02:00
Miodrag Milanovic
bab6c9a09f
Proper save message
2019-06-02 08:50:48 +02:00
Miodrag Milanovic
d5d8213871
Added support for attributes/properties types
2019-06-01 15:52:32 +02:00
Miodrag Milanovic
5013724c0a
Solve issue with nets/cells not visible on load
2019-06-01 10:27:01 +02:00
Miodrag Milanovic
545068dec4
Initial work on jsonwrite
2019-05-31 11:09:13 +02:00
Miodrag Milanovic
2ea1ccf2e6
Added explanation, fixes issue #278
2019-05-27 19:10:50 +02:00
Miodrag Milanovic
9b8d3b7546
option to disable anti aliasing in gui
2019-05-25 08:42:17 +02:00
David Shah
12f375a239
ecp5: Fix USRMCLK primitive
...
Signed-off-by: David Shah <dave@ds0.me>
2019-05-10 18:51:45 +01:00
David Shah
5344bc3b65
Merge pull request #261 from YosysHQ/pygeneric
...
Python API for generic architecture
2019-04-19 17:40:55 +01:00
David Shah
9fa13b5adc
pybindings: make errors in Python scripts stop nextpnr execution
...
Signed-off-by: David Shah <dave@ds0.me>
2019-04-17 11:12:58 +01:00
David Shah
90ceb829f3
pybindings: Fix use of import in user scripts
...
Signed-off-by: David Shah <dave@ds0.me>
2019-04-17 10:57:19 +01:00
Alyssa Milburn
c1cc356bb0
timing_opt: Add locks to optimise()
...
Signed-off-by: Alyssa Milburn <amilburn@zall.org>
2019-04-16 16:03:12 +02:00
David Shah
cfcd657e32
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2019-04-08 18:08:39 +01:00
David Shah
ad9bc627e6
placer1: Check correctness of incremental updates with --debug
...
Signed-off-by: David Shah <dave@ds0.me>
2019-04-08 18:08:26 +01:00
David Shah
65b2a76159
placer1: Improve incremental bounding box updates
...
Signed-off-by: David Shah <dave@ds0.me>
2019-04-07 15:55:07 +01:00
David Shah
f0cd51e6bc
generic: Cell timing support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-04-04 16:34:06 +01:00
David Shah
6fffe24177
generic: GUI Python bindings
...
Signed-off-by: David Shah <dave@ds0.me>
2019-04-03 16:08:33 +01:00
Janos Farkas
587b022b0a
common: avoid std::ofstream copy
...
Using a copy constructor to set the logfile is the only thing that
stops compilation with the libstdc++ shipping with gcc 4.8 (maybe 4.7)
2019-04-02 16:39:21 +00:00
David Shah
32327b761a
generic: Simple working example
...
Signed-off-by: David Shah <dave@ds0.me>
2019-04-02 15:30:01 +01:00
David Shah
50fd8aa01f
generic: Place a single SLICE
...
Signed-off-by: David Shah <dave@ds0.me>
2019-04-02 15:30:01 +01:00
David Shah
30f0c582e4
python: Named argument support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-04-02 15:30:01 +01:00
David Shah
f5bfd557b6
python: Infrastructure for generic arch Python API
...
Signed-off-by: David Shah <dave@ds0.me>
2019-04-02 15:30:01 +01:00
David Shah
db152b332b
HeAP: Don't call Eigen if system is empty
...
Fixes #259
Signed-off-by: David Shah <dave@ds0.me>
2019-04-01 12:18:02 +01:00
whitequark
818165031c
Fix broken header guard
2019-03-25 19:32:58 +00:00
David Shah
25e3350675
HeAP: Make log output more consistent
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-25 15:39:15 +00:00
David Shah
49e827a9b4
HeAP: Add missing newline
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-25 12:41:25 +00:00
David Shah
efc6872341
placer1: Restore old weighting in budget-based mode
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 13:59:27 +00:00
David Shah
00b09fbb43
HeAP: Per-iteration output all on one line
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 11:18:38 +00:00
David Shah
02ae21d8fc
Add --placer option and refactor placer selection
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 11:10:20 +00:00
David Shah
52e05f4a07
placer1: Fix regression moving chained cells pre-legalise
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-23 23:15:05 +01:00
David Shah
23f2fff1c8
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:39:05 +00:00
David Shah
801675a2c6
placer1: Only get criticalities when in timing-driven mode
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
f8a38c59f8
common: Add early return path to getNetinfoRouteDelay for fully unrouted nets
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
bd12c0a486
HeAP: Add PlacerHeapCfg
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
7142db28a8
HeAP: Make HeAP placer optional
...
A CMake option 'BUILD_HEAP' (default on) configures building of the
HeAP placer and the associated Eigen3 dependency.
Default for the iCE40 is SA placer, with --heap-placer to use HeAP
Default for the ECP5 is HeAP placer, as SA placer can take 1hr+ for
large ECP5 designs and HeAP tends to give better QoR. --sa-placer can
be used to use SA instead, and auto-fallback to SA if HeAP not built.
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
1c824709e2
HeAP: Switching from TAUCS to Eigen
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
589b267a93
HeAP: Fix regression
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
8e4e03d980
HeAP: Fix occupancy count
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
6cf001d355
HeAP: Legaliser fixes
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
352f15e96b
HeAP: Avoid getting stuck in legaliser ripup
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
70a6379bf6
HeAP: Chain support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
2e2f44c82e
HeAP: tidying up
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
fb02fc69c6
HeAP: Make strict legalisation wirelength driven where needed
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
8295f997ae
HeAP: Use for ECP5 as well as iCE40
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
ba1e05f16b
HeAP: Implement 'all+rotate' HeAP strategy
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
3dedc62593
HeAP: Weight arcs by criticality for timing-driven placement
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
05e9ae183d
HeAP: Add multithreading
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
eb638c47b3
HeAP: fine tuning
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
2a0c117662
HeAP: Add performance counters
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
f3d9b45387
HeAP: Add SA-based iterative refinement after AP
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
0570cb7ae9
HeAP: Spreading working acceptably
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
030b02588b
HeAP: Make cut-based spreading recursive
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
b483008cdf
HeAP: Cut peturbation, binning and intra-bin linear spreading
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
8a791e8309
HeAP: Cut finder for spreading
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
4d2906378f
HeAP: Region finder for spreading and strict legaliser
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
d1808c2594
HeAP: Fix how initial placement handles chains
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
d5cfd38179
HeAP: Successful solver convergance
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
ea56dc9d08
HeAP: Add TAUCS wrapper and integration
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
e36460b83e
HeAP: Initial infrastructure
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
4cf8549f5c
placer1: Legalise after reaching a diameter, not temperature
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
9cd5980d35
placer1: Add (currently-unused) option for fanout threshold for timing cost calc
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
bd0a33022b
placer1: Implement non-timing-driven mode
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
0118ac00c4
placer1: Improve handling of regions
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
a8289b699f
pycontainers: Implement __contains__
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
493d6c3fb9
Add Python helper functions for floorplanning
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
ae33ff397f
placer1: Consider regions during placement
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
ade72de02f
placer1: Optimise for performance
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
0cb351df52
placer1: New temperature heuristic
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
222abb5be2
placer1: Encourage chain swaps
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
c926b273de
placer1: Tweaks
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
23306c163f
placer1: Allow chain position swaps after legalisation
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
3650c8a0e7
placer1: Tweaking temperature
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
0d80181c5e
placer1: Make budget-based placement an option
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:28 +00:00
David Shah
a218c27305
placer1: Tuning
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:28 +00:00