Commit Graph

284 Commits

Author SHA1 Message Date
David Shah
1e96d65ded python: Add context wrapper support for ranges
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
4bc12f2ead Progress on new wrapper system
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
65195513eb python: Restructuring wrapper system
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
2e8c0c872f Add NPNR_ASSERT_FALSE, use in bitstream.cc
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 13:04:31 +02:00
Miodrag Milanovic
6eaae6196c Fixed debug msvc build and fixed inaccessible base 2018-07-04 12:23:55 +02:00
David Shah
e0a851976f refactor: Replace assert with NPNR_ASSERT
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 12:15:23 +02:00
David Shah
c9d1bce859 common: Adding NPNR_ASSERT
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 12:04:26 +02:00
Miodrag Milanovic
1cf8293019 Fixed macros and includes for MSVC 2018-07-03 08:53:44 +02:00
David Shah
fe1ad5b086 python: Tweaking how the new wrappers will work
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-02 14:14:08 +02:00
David Shah
b720a7fddc Starting to develop a new Python wrapper system
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-01 16:40:40 +02:00
Clifford Wolf
e6dc9ce77d Add implementations for generic arch db API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-30 17:31:24 +02:00
Clifford Wolf
25f07549a1 Refactor IdString::global_ctx
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-30 07:47:04 +02:00
Clifford Wolf
c73759f9f1 Split "arch.h" in "arch.h" and "archdefs.h"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-29 20:36:34 +02:00
David Shah
302ccc14cf ice40: UltraPlus SPRAM working
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 19:58:08 +02:00
David Shah
27e7bc3b4b Improving the SA+legalisation flow
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 17:04:22 +02:00
David Shah
d908928b56 Tidying up the SA placer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 15:47:56 +02:00
David Shah
23789b7569 Increase temp and diameter after legalisation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 15:30:00 +02:00
David Shah
4977b35d2f Start legalisation at a much lower SA temperature
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 15:18:44 +02:00
David Shah
1aa4be770c Make single-cell placer less likely to get stuck
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 13:28:06 +02:00
David Shah
b5f473cd7a Integrating SA placer and legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 13:12:44 +02:00
David Shah
c18b7b3f6e ice40: Reworking placement legalisation to allow integration with SA placer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 12:02:34 +02:00
Miodrag Milanovic
2037fff742 remove emb.cc 2018-06-28 17:57:26 +02:00
David Shah
92ddc31003 Improving debugability
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-27 15:08:37 +02:00
David Shah
b0b16a344a Improving post-ripup placement in the legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-27 12:18:52 +02:00
David Shah
87a5b72126 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-27 12:00:37 +02:00
David Shah
2cc7ade05b Refactor common placement functions out of SA placer for use in legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-27 12:00:13 +02:00
Miodrag Milanovic
bafb4702c7 reinit python tab 2018-06-27 11:45:19 +02:00
Miodrag Milanovic
0bd73c1977 Make GUI use recreated context 2018-06-26 15:47:43 +02:00
David Shah
6f12f2b7e8 Working on debugging the carry legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 15:06:59 +02:00
David Shah
962c566ffb Fixing Python bindings bugs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 14:21:54 +02:00
David Shah
103dde79de Fixing Python bindings after adding unique_ptr
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 14:13:52 +02:00
Miodrag Milanovic
db890d3a81 nets and cells are unique_ptr's 2018-06-25 21:33:48 +02:00
David Shah
6d154cfa13 ice40: Creating a carry chain splitter function
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-25 15:39:46 +02:00
Miodrag Milanovic
fb5fb497b5 Fix some memory leaks 2018-06-25 14:34:08 +02:00
David Shah
bdd54a6847 Refactor: remove PlacementValidityChecker and move methods to Arch
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-25 11:43:59 +02:00
David Shah
37bad1f99e Fixing the Python bindings following Context/Arch refactoring
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-23 19:51:22 +02:00
Clifford Wolf
0ccd9febeb Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-23 16:14:39 +02:00
David Shah
1e8840b0f9 Update from increased clangformat line length
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-23 16:12:52 +02:00
Miodrag Milanovic
4b78ae15df clangformat cleanup 2018-06-23 16:06:49 +02:00
Clifford Wolf
a40d9dc514 Improve router ripup handling
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-23 15:58:24 +02:00
Clifford Wolf
a1681560a3 Updates from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-23 15:28:09 +02:00
Clifford Wolf
b5efe3ecbc Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-23 15:16:37 +02:00
Clifford Wolf
746d63f9fa Refactoring bind/unbind API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-23 15:16:24 +02:00
Miodrag Milanovic
550866620a removed all deprecated unused api calls 2018-06-23 15:01:49 +02:00
Miodrag Milanovic
82ec1be31f Added BUILD_GUI, BUILD_PYTHON and BUILD_TESTS cmake options, 2018-06-23 14:32:49 +02:00
David Shah
d72fe0c230 place_sa: Add option to disable timing-driven placement
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-23 12:18:44 +02:00
Miodrag Milanovic
6f4e49bb47 cleaned some warnings 2018-06-23 08:01:36 +02:00
Clifford Wolf
aa81f9d648 Switched from clifford@clifford.at to clifford@symbioticeda.com for copyright headers
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-22 16:19:17 +02:00
Clifford Wolf
001c6ceb56 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-22 15:38:17 +02:00
David Shah
f86a0d6c8c place_sa: Tweak weighting given to timing
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-22 15:17:00 +02:00
David Shah
d7939f96e6 place_sa: Fix temp printing
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-22 15:03:33 +02:00
David Shah
ce4ad44fd1 Print quasi-TNS statistic during placement
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-22 14:58:27 +02:00
David Shah
63baa10032 ice40: Make the packer deterministic
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-22 12:57:22 +02:00
David Shah
71176ac538 Fixing 5k bitstream gen and place heuristics
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-22 12:34:42 +02:00
Clifford Wolf
9b98a7175b Add total visit counts to router log output
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 20:41:20 +02:00
Clifford Wolf
2c98231f88 Updates from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 19:36:20 +02:00
Clifford Wolf
bfae4663fc Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr
# Conflicts:
#	common/route.cc
2018-06-21 19:31:50 +02:00
Clifford Wolf
38dc1cc550 Work "overtime" to find better solutions in routing search algorithm
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 19:17:04 +02:00
Miodrag Milanovic
8fac26c2b7 Fixed return codes for packer, placer and router 2018-06-21 17:56:45 +02:00
Miodrag Milanovic
54549d36e9 log_error now trows exception, main is covering catch 2018-06-21 17:44:18 +02:00
Clifford Wolf
fcfb85e9dc Zero-initialize PortRef budgets
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 16:25:25 +02:00
Clifford Wolf
4fefdbd57c Cleanup parse_json_file API, some other cleanups
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 16:16:58 +02:00
Clifford Wolf
a29bfc788e Add ctx->checksum(), slightly improve log messages
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 15:47:41 +02:00
Clifford Wolf
477c33efba Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-21 14:27:50 +02:00
Clifford Wolf
08020400b3 Fix build of "dummy" architexture
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 14:16:07 +02:00
Clifford Wolf
993f6ef7d3 Improve log messages, move many messages to verbose mode
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 14:09:50 +02:00
Clifford Wolf
693c34ad06 Improvements in router
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 14:08:45 +02:00
Miodrag Milanovic
9c03909eba Make arch specific main window 2018-06-21 13:41:33 +02:00
David Shah
56ed679f83 Add frequency setting and fix slack calculation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-21 11:59:20 +02:00
David Shah
9e28e45bd5 place_sa: Make the heuristic closer to arachne, seems to improve routability
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-21 11:45:58 +02:00
David Shah
e526a4115b place_sa: Use int64_t for "wirelength" metric
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-21 10:45:18 +02:00
David Shah
1df8a8b440 place_sa: Reduce effect of rounding errors
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 20:25:48 +02:00
David Shah
93ed8ca405 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-20 20:14:08 +02:00
David Shah
c27c96f4f0 place_sa: Improvements including supporting force and ordering consistency
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 20:12:23 +02:00
Clifford Wolf
f2ae9a713b Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-20 19:37:16 +02:00
Clifford Wolf
9475997a2d Improve --tmfuzz mode and iCE40 delay estimator
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 19:22:03 +02:00
David Shah
c515e5da2d Improving placement timing heuristic
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 17:54:07 +02:00
David Shah
4fc9625040 WIP: adding timing budget to placer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 17:08:57 +02:00
David Shah
e45508f6c4 Improving timing annotator
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 15:15:51 +02:00
Clifford Wolf
2da90889ef Add "nextpnr-ice40 --tmfuzz"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 14:04:10 +02:00
Clifford Wolf
3fda636e70 Minor refactoring of router infrastructure
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 13:32:50 +02:00
David Shah
c667f640d5 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-20 13:01:30 +02:00
David Shah
4648d3bc83 Working on the timing annotator
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 13:01:22 +02:00
Clifford Wolf
37f7802c6c Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-20 12:58:08 +02:00
Clifford Wolf
7c3593ea5a Updates from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 12:57:59 +02:00
Clifford Wolf
cb9c6c6ef2 Changes to estimatePosition API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 12:57:38 +02:00
Clifford Wolf
c3837027b2 Add better iCE40 delay estimates
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 12:50:38 +02:00
David Shah
5ca4663294 Working on the timing budget annnotator
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 12:21:56 +02:00
David Shah
2a41211ce1 Another stub delay calculation function
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 11:53:49 +02:00
David Shah
1436ae21a2 Adding stubs for delay annotation and cell timing lookup
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 11:44:28 +02:00
David Shah
5d1b87b0a4 place_sa: Set placement strengths
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 11:19:25 +02:00
Clifford Wolf
a06d2aeb4d Add PlaceStrength
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 11:09:49 +02:00
David Shah
1b3432b701 place_sa: Refactor to put SA placer in its own class
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 10:46:14 +02:00
Clifford Wolf
5af5bd23d0 Add Context::sorted_shuffle API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-19 16:23:23 +02:00
Clifford Wolf
3bf68753bb Improve "initial placement" log messages in placer_sa
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-19 15:44:44 +02:00
David Shah
7e7aea2c69 place_sa: Add log output during initial placement
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 15:34:07 +02:00
Miodrag Milanovic
b5c1b09079 Small gui improvements and open json functionality 2018-06-19 15:17:34 +02:00
Clifford Wolf
3a505638a6 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr
# Conflicts:
#	common/place_sa.cc
#	ice40/arch.h
2018-06-19 15:03:54 +02:00
Clifford Wolf
d7f424b809 Improved log messages in SA placer, minor changes from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-19 15:00:24 +02:00
David Shah
9008669867 Major performance improvement to placement validity check
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 14:44:49 +02:00