Eddie Hung
0a14e20f73
Merge branch 'master' into slack_histogram
...
Conflicts:
common/placer1.cc
2018-08-03 23:44:55 -07:00
Eddie Hung
d66edf5223
Merge branch 'master' into slack_redist_freq
2018-08-03 23:43:53 -07:00
Eddie Hung
45304d049f
clangformat
2018-08-03 23:42:25 -07:00
Eddie Hung
be481cb130
Add crude histogram feature, printed after placement and routing
2018-08-03 23:39:42 -07:00
David Shah
2215ace1dc
place_common: Remove excessively verbose debugging
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-04 08:19:27 +02:00
David Shah
082b8bf272
clangformat
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-04 08:18:04 +02:00
David Shah
176a23936c
Tidy up
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-04 08:15:49 +02:00
Eddie Hung
85a436198c
Remove space
2018-08-03 22:39:55 -07:00
Eddie Hung
ecb264d002
Refactor timing.cc into Timing class
2018-08-03 22:39:25 -07:00
Eddie Hung
3d5dcda12c
Auto frequency only if --freq 0 is set
2018-08-03 19:53:32 -07:00
David Shah
b937e6defe
Add constraint weight as a command line option
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 18:31:54 +02:00
David Shah
4a751d9aaf
Add distance moved metrics, changing heuristics
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 18:14:09 +02:00
David Shah
aa8435df21
placer1: Experiment with adding 'constraint distance' metric
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 17:42:07 +02:00
David Shah
03c2d22fff
place_common: Fixing accidental chain breakage
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 17:07:26 +02:00
David Shah
dc4ab55b27
Adding constraint satisfaction checks for debugging
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 16:59:45 +02:00
David Shah
fd2174149c
Fixing constraint placement bugs
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 16:29:44 +02:00
David Shah
8081249b92
place_common: Debugging bad relative constraint legalisation
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 16:16:20 +02:00
David Shah
8c518cb838
Fixing relative constraint implementation
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 15:40:01 +02:00
David Shah
60757a2dd7
place_common: Relative constraints working for basic example
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 15:25:43 +02:00
David Shah
48e06896a2
place_common: Fixing rel legaliser search bugs
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 15:02:42 +02:00
David Shah
7e9209878c
Reworking packer and placer to use new generic rel legaliser
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 15:00:32 +02:00
David Shah
e5dea28dbd
place_common.cc: Working on constraint legalisation
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 14:48:40 +02:00
David Shah
271979a3bc
place_common: Helper functions for rel. constraints
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 13:18:48 +02:00
David Shah
26c68c4bcc
Remove old place legaliser, set placement constraints instead (currently ignored by placer)
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 13:18:48 +02:00
Clifford Wolf
2b0bf3f9f8
clangformat
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-02 14:51:09 +02:00
Clifford Wolf
3185abe264
Fix router1 cleanupReroute() for "drive-by nets"
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-02 14:47:07 +02:00
Clifford Wolf
6ccf8629b5
Add Router1Cfg
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-02 13:58:23 +02:00
Clifford Wolf
94abe914fc
Improve router1 cleanupReroute
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-02 13:39:37 +02:00
Clifford Wolf
f9a9da6cdb
Merge branch 'master' of github.com:YosysHQ/nextpnr into reroute
2018-08-02 13:02:07 +02:00
Miodrag Milanovic
79b844f09c
Removes unnecessary unlock causing trouble with placer
2018-08-01 20:32:15 +02:00
Clifford Wolf
2b3f363e89
Add reroute pass and other router1 tweaks
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-01 17:05:30 +02:00
Sergiusz Bazanski
f041f01895
router: release lock on failure to unblock UI
2018-08-01 11:53:52 +01:00
David Shah
faf309c1fe
timing: Fix timing analysis when no paths found (e.g. ecp5 with no cell timing info yet)
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-01 11:23:11 +02:00
Eddie Hung
94161e646d
Fix typo
2018-07-31 22:05:07 -07:00
Eddie Hung
9ea2467b0b
Cope with slack_redist_iter == 0
2018-07-31 21:56:30 -07:00
Eddie Hung
92ec2cd138
clangformat for stuff I've touched
2018-07-31 20:57:36 -07:00
Eddie Hung
f646ec790a
Modify the getNetinfo*() functions and getBudgetOverride() to not use
...
user_idx and to take a PortRef& instead
2018-07-31 19:31:54 -07:00
Eddie Hung
720e815865
Add --slack_redist_iter for ice40
2018-07-31 19:07:39 -07:00
Eddie Hung
44671f8927
Remove space
2018-07-31 18:27:33 -07:00
Eddie Hung
5d58d6ad1b
Merge branch 'redist_slack' of gitlab.com:SymbioticEDA/nextpnr into redist_slack
2018-07-31 18:26:39 -07:00
Eddie Hung
8131921e99
Merge branch 'estdelay' into redist_slack
2018-07-31 16:23:52 -07:00
Eddie Hung
51956eb961
Fix tns computation
2018-07-31 16:23:35 -07:00
Eddie Hung
2d75053744
Merge remote-tracking branch 'origin/estdelay' into redist_slack
...
Conflicts:
ecp5/arch.cc
generic/arch.cc
ice40/arch.cc
2018-07-31 16:18:08 -07:00
Eddie Hung
2a91aea0a6
Fix merge issues
2018-07-31 14:42:01 -07:00
Eddie Hung
70747b9355
Merge branch 'redist_slack' into 'redist_slack'
...
# Conflicts:
# common/timing.cc
2018-07-31 17:51:56 +00:00
Eddie Hung
87438542e5
assign_budget() not quietly
2018-07-30 22:21:53 -07:00
Eddie Hung
07e2c9ba99
assign_budget() after initial placement, not after pack
2018-07-30 22:20:49 -07:00
Eddie Hung
2ee68bcb60
Update comment
2018-07-30 22:18:50 -07:00
Eddie Hung
a82f6f4105
Modify predictDelay signature
2018-07-30 21:51:30 -07:00
Eddie Hung
e4b044da52
Fix tns
2018-07-30 21:50:31 -07:00
Eddie Hung
91468ae7a0
Fix tns
2018-07-30 19:39:44 -07:00
Eddie Hung
a099aca3c2
Modify predictDelay signature
2018-07-30 19:19:30 -07:00
Eddie Hung
d5049bf0ed
Merge remote-tracking branch 'origin/estdelay' into redist_slack
2018-07-30 18:59:04 -07:00
Eddie Hung
8371c0dd09
Speedup worst_slack computation
2018-07-30 18:55:22 -07:00
Eddie Hung
46b7469652
Merge remote-tracking branch 'origin/master' into redist_slack
2018-07-30 18:14:40 -07:00
David Shah
b09183db3b
Use DelayInfo for cell timing instead of delay_t
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-30 16:59:30 +02:00
Clifford Wolf
0daffec2a0
Add predictDelay Arch API
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 15:35:40 +02:00
David Shah
593d8e0ddf
common: Fix getNetinfoRouteDelay when net has no driver
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-30 09:45:23 +02:00
Eddie Hung
9c45f762c8
Really do not overconstrain!
2018-07-29 18:16:49 -07:00
Eddie Hung
9ce91f97cc
Merge remote-tracking branch 'origin/master' into redist_slack
2018-07-29 08:48:08 -07:00
Clifford Wolf
3b354c2a51
fix randtag bug in router1
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-29 12:30:11 +02:00
Eddie Hung
52cc146a67
Keep things simple by not overconstraining Fmax
2018-07-28 22:57:37 -07:00
Eddie Hung
beabb429b0
clangformat
2018-07-28 14:11:43 -07:00
Eddie Hung
de6d0d20d7
Merge update_budget into assign_budget; update as we go along
2018-07-28 14:10:48 -07:00
Eddie Hung
0eaa92bd6a
Merge remote-tracking branch 'origin/master' into redist_slack
2018-07-28 12:51:37 -07:00
Eddie Hung
e0517caf1a
Refactor
2018-07-28 12:50:21 -07:00
Eddie Hung
0be236ce05
Fix auto Fmax overconstraining during update_budget()
2018-07-27 23:46:05 -07:00
Eddie Hung
0bbe309a26
Fix sign of slack redistribution again
2018-07-27 19:52:58 -07:00
Eddie Hung
4c40541484
Even if there is no updates, set budget to current delay
2018-07-26 22:49:08 -07:00
Eddie Hung
69ef533db3
Re-add getBudgetOverride() but also account for path length of
...
overridden
2018-07-26 22:32:24 -07:00
Eddie Hung
21d46fb633
Move target_freq update after budget update
2018-07-26 21:35:37 -07:00
Eddie Hung
5622dc0444
Fix budget realloc
2018-07-26 21:35:02 -07:00
Eddie Hung
d5c2332ebf
Merge remote-tracking branch 'origin/master' into redist_slack
2018-07-26 21:00:26 -07:00
Sergiusz Bazanski
48713be0eb
placer: only lock/unlock at beginning, yield elsewhere
2018-07-26 22:47:04 +01:00
Sergiusz Bazanski
df908374dc
gui: implement basic cursor picking
2018-07-26 22:40:45 +01:00
Sergiusz Bazanski
c37d2baaf6
common: rename GraphicElement::{style,type} enums, add _MAX members
2018-07-26 16:39:19 +01:00
Clifford Wolf
03f92948d1
clangformat and GraphicElement::style comments
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 17:14:56 +02:00
Clifford Wolf
f4a7478a40
Fix router1 locking in NDEBUG builds
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 16:45:57 +02:00
Eddie Hung
f45e688354
Do not use budget override anymore, and subtract not add!
2018-07-25 23:10:26 -07:00
Eddie Hung
e5d3821955
clangformat
2018-07-25 22:32:07 -07:00
Eddie Hung
8f930d683b
Print budget of net and its driver/sink locations too
2018-07-25 22:31:47 -07:00
Eddie Hung
b211dded3f
Fix min_slack computation, and print out critical path after routing
2018-07-25 22:10:26 -07:00
Eddie Hung
9d489e8198
Retry clangformat
2018-07-25 18:34:14 -07:00
Eddie Hung
760a47779a
Add compute_fmax() with refactoring, plus print out Fmax estimate post-place and post-route
2018-07-25 18:21:39 -07:00
Eddie Hung
7c8c13aba1
Merge remote-tracking branch 'origin/master' into redist_slack
2018-07-25 17:41:23 -07:00
David Shah
7a8e8999d2
clangformat
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-25 19:45:38 +02:00
Clifford Wolf
ddfb1f1ff3
Fix BaseCtx::unlock()
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-25 13:35:53 +02:00
Clifford Wolf
f3dab003e7
Merge branch 'bba' into 'master'
...
bbasm
See merge request SymbioticEDA/nextpnr!18
2018-07-25 11:07:51 +00:00
Sergiusz Bazanski
14a501969a
Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/pll-pads
2018-07-25 11:32:45 +01:00
Sergiusz Bazanski
aad0d3eb35
ice40: support PLL40_*_PAD, fix pass-through LUT for LOCK
2018-07-25 11:32:21 +01:00
Miodrag Milanovic
e3ce2f544d
noreturn have to be void, so there is no UB
2018-07-25 11:58:23 +02:00
Miodrag Milanovic
5e58a329e6
Make thread check portable
2018-07-25 09:32:13 +02:00
Eddie Hung
1fa738bd88
With no user frequency set, use 1.05 * current_Fmax
2018-07-24 23:34:59 -07:00
Eddie Hung
c71212d0e1
If --freq not set, attempt to find max by adjusting budget so min path slack == 0
2018-07-24 23:19:24 -07:00
Eddie Hung
a69745060e
Also subtract net delay from slack
2018-07-24 22:39:51 -07:00
Eddie Hung
9382938661
Merge branch 'master' into redist_slack
2018-07-24 22:20:10 -07:00
Clifford Wolf
a08b71c676
Merge branch 'placeconstr2'
2018-07-24 19:21:36 +02:00
Eddie Hung
4920cf18fa
improved is only set if we get a better metric, remove commented code
2018-07-24 09:21:52 -07:00
Eddie Hung
7b4c5594ed
Refactor new code and existing code
2018-07-24 09:20:07 -07:00
David Shah
e200c281d9
common: Remove use of deprecated APIs
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 15:45:49 +02:00
Clifford Wolf
f86fc6e7fd
Typo fix
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-24 12:41:08 +02:00
Clifford Wolf
1538d26073
Add CellInfo data for placement constraints
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-24 12:39:33 +02:00
Clifford Wolf
9d38907e95
Add G_ARROW (for now same look as G_LINE)
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-24 12:18:01 +02:00
David Shah
7858663aa7
timing: Model clock to Q times
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 11:46:14 +02:00
Eddie Hung
adc1a86648
Oops
2018-07-23 19:25:00 -07:00
Eddie Hung
ee2e6ed1c6
Simplify and use Arch::getNetinfoRouteDelay() for update_budget()
2018-07-23 18:58:57 -07:00
Eddie Hung
771edd1fda
Merge branch 'master' into redist_slack
2018-07-23 07:16:39 -07:00
Clifford Wolf
e647604e2a
Add Context::archcheck() and "nextpnr-ice40 --test"
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 14:03:23 +02:00
Clifford Wolf
38962d0f02
clangformat
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 12:45:31 +02:00
Clifford Wolf
a436facfd0
Add fallback to estimateDelay() in getNetinfoRouteDelay()
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 12:44:26 +02:00
Clifford Wolf
62b66e0208
Rename getWireBelPin to getBelPinWire
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 10:59:21 +02:00
Eddie Hung
e92698f32e
Fix delay function used for update_budget()
2018-07-21 18:04:54 -07:00
Clifford Wolf
c6e4ad3227
Move common patterns from router1 to Context API
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 02:16:03 +02:00
Clifford Wolf
1e96999863
clangformat
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 00:50:49 +02:00
Eddie Hung
5aa4cf2efb
Call now-more-flexibile update_budget() during routing, but using any actual delays that we have
2018-07-21 13:59:48 -07:00
Eddie Hung
926c186ec7
Add Arch::getBudgetOverride() to eliminate hack for COUT
2018-07-21 13:05:09 -07:00
Eddie Hung
e44dc25f09
Uncomment out negative slack messages during update_budget(), make verbose
2018-07-21 12:47:09 -07:00
Clifford Wolf
9e6deed3b8
Merge branch 'q3k/lock-2-electric-boogaloo' into 'master'
...
Basic locking and threading for Arch/GUI
See merge request SymbioticEDA/nextpnr!10
2018-07-21 19:45:24 +00:00
Clifford Wolf
30e2f0e1e8
Add Loc constructors
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 21:40:06 +02:00
Eddie Hung
31c9fd28fe
Merge remote-tracking branch 'origin/master' into redist_slack
2018-07-21 12:27:44 -07:00
Eddie Hung
1f6897733b
Merge branch 'redist_slack' into 'redist_slack'
...
# Conflicts:
# common/timing.cc
2018-07-21 19:03:23 +00:00
Sergiusz Bazanski
6588aafdb8
Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo
2018-07-21 20:00:42 +01:00
Clifford Wolf
39b843ecac
Merge branch 'router1ng' into 'master'
...
Router1ng
See merge request SymbioticEDA/nextpnr!13
2018-07-21 17:59:44 +00:00
Clifford Wolf
c796b301d3
Bugfix in router1: Also bind src_wire
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 19:36:48 +02:00
David Shah
b2452f4646
HACK: set carry budgets to zero
2018-07-21 19:33:42 +02:00
Clifford Wolf
2f996e6a30
Add final sanity check in router1
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 17:54:47 +02:00
Clifford Wolf
41194d934b
Refactoring of router1
...
- Use source-sink pairs as jobs, not whole nets
- Route nets with smallest slack first
- Preserve routes for already routed source-sink pairs
- Add small incentive for re-using wires
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 17:02:53 +02:00
David Shah
80097526ee
Fix placement bug with VexRiscV reported by John McMaster
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-21 16:45:46 +02:00
Clifford Wolf
78f40ca0af
Change DelayInfo semantics to what we actually need
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 13:52:59 +02:00
Clifford Wolf
c556242976
Add getWireDelay API
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 13:38:44 +02:00
David Shah
bbb140c699
Quick hack to route nets with lowest budget first
2018-07-21 11:52:41 +02:00
Eddie Hung
d23cdd6c06
Avoid hysteresis preventing placer from stopping
2018-07-21 11:19:06 +02:00
Eddie Hung
241418dc25
Add update_budget() to timing.h header
2018-07-21 11:19:06 +02:00
Eddie Hung
1cd5c9dac8
Update comment
2018-07-21 11:19:06 +02:00
Eddie Hung
3eecccc6f7
Avoid hysteresis preventing placer from stopping
2018-07-21 01:59:16 -07:00
Eddie Hung
f89115c3e3
Add update_budget() to timing.h header
2018-07-21 01:55:46 -07:00
Eddie Hung
27a79a3a4f
Update comment
2018-07-21 01:55:20 -07:00
Sergiusz Bazanski
0311a27a53
Use UI lock for yielding
2018-07-20 18:34:59 +01:00
Sergiusz Bazanski
76e5236fb3
Nuke IdStringDB
2018-07-20 18:24:16 +01:00
Sergiusz Bazanski
b5b956bd21
Remove dead code.
2018-07-20 17:57:16 +01:00
Clifford Wolf
fd8239e170
Add Location APIs to generic arch
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-20 18:09:22 +02:00
Clifford Wolf
f6fa0300ae
Improve iCE40 and common Loc code
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-20 17:33:57 +02:00
Clifford Wolf
e16b4a325e
Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into gridapi
2018-07-20 17:13:26 +02:00
Sergiusz Bazanski
19f4b68f07
clang-format and uncomment debug
2018-07-20 13:19:56 +01:00
Sergiusz Bazanski
b4b111a053
Move pthread yield hack into BaseCtx
2018-07-20 13:15:22 +01:00
Sergiusz Bazanski
b84a446eef
Mix-in Deterministic RNG at Context instead of BaseCtx
2018-07-20 11:04:54 +01:00
Sergiusz Bazanski
55d5f8f248
Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo
2018-07-20 10:59:33 +01:00
David Shah
6c38df7295
ice40: Adding cell definition for DSPs
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 13:22:46 +02:00
David Shah
d221e90706
Reducing performance cost of asserts
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 11:43:10 +02:00
Clifford Wolf
609794f9e6
Add Net/Cell "udata" field
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-18 13:29:58 +02:00