Commit Graph

501 Commits

Author SHA1 Message Date
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
Serge Bazanski
03508faabf WIP. 2018-07-17 19:16:26 +01:00
Clifford Wolf
ddfc535df7 Add ArchNetInfo and ArchCellInfo
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-17 20:04:49 +02:00
Serge Bazanski
2f5b94fe30 Add basic external locking, lock from P&R 2018-07-17 16:27:50 +01:00
Serge Bazanski
498bef3f3e Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo 2018-07-17 16:03:48 +01:00
Clifford Wolf
c0f1af87f6 Add Loc struct for x/y/z bel locations
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-17 17:03:44 +02:00
David Shah
924037129c Fix driver finder when net is undriven
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-17 11:00:18 +02:00
David Shah
56fa8cc669 refactor: Remove incorrect uses of the term 'wirelength'
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-16 17:13:40 +02:00
Serge Bazanski
91db413c60 Refactor RNG out to separate DeterministicRNG class
This well also allow for better lifecycle control over the state of the
RNG in the future.
2018-07-14 20:33:32 +01:00
Serge Bazanski
59a790cd00 Refactor IdString functionality into IdStringDB
This lets us more precisely control the lifetime of IdString databases
in contexts/arches.
2018-07-14 20:24:20 +01:00
Sergiusz Bazanski
57f75385b0 Revert "Make PnR use Unlocked methods"
This reverts commit 9e4f97290a.
2018-07-14 18:53:08 +01:00
Sergiusz Bazanski
447ed83638 Revert "Introduce proxies for locked access to ctx"
This reverts commit 89809a8b81.
2018-07-14 18:52:56 +01:00
Sergiusz Bazanski
36b4e3382d Revert "Make GUI nice and smooth."
This reverts commit a8c84e90a3.
2018-07-14 18:50:50 +01:00
Sergiusz Bazanski
b0c05c7f75 Revert "Refactor proxies to nextpnr."
This reverts commit 9b17fe385c.
2018-07-14 18:50:37 +01:00
Sergiusz Bazanski
d9c3c117a3 Revert "clang-format"
This reverts commit 8ca7a6da25.
2018-07-14 18:50:34 +01:00
Sergiusz Bazanski
ade67ecf21 Revert "Move read methods to ReadMethods, remove some legacy access to Arch"
This reverts commit 3352ff4abb.
2018-07-14 18:50:23 +01:00
Sergiusz Bazanski
3352ff4abb Move read methods to ReadMethods, remove some legacy access to Arch 2018-07-14 11:46:32 +01:00
Sergiusz Bazanski
8ca7a6da25 clang-format 2018-07-14 11:10:59 +01:00
Sergiusz Bazanski
9b17fe385c Refactor proxies to nextpnr. 2018-07-14 11:10:31 +01:00
Sergiusz Bazanski
a8c84e90a3 Make GUI nice and smooth. 2018-07-13 20:53:52 +01:00
Sergiusz Bazanski
89809a8b81 Introduce proxies for locked access to ctx 2018-07-13 18:58:59 +01:00
Sergiusz Bazanski
9e4f97290a Make PnR use Unlocked methods 2018-07-13 14:50:58 +01:00
Sergiusz Bazanski
499951cb65 Remove legacy graphics API
For now we do not optimize the OpenGL renderer against the new decal
API, but this can be done in the future.
2018-07-12 21:30:36 +01:00
Clifford Wolf
b8a42ff53b Updates from clang-format
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-12 22:04:13 +02:00
Clifford Wolf
13e7cd8681 Add GraphicElement style enum
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-12 21:04:47 +02:00
Clifford Wolf
a436035424 Add Groups API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-12 17:22:29 +02:00
Clifford Wolf
7daa8524c8 Add ctx->place() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 18:15:08 +02:00
Clifford Wolf
7df67c91b3 Add ctx->route() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 18:04:09 +02:00
Clifford Wolf
2a01b5e4d3 New refreshUi API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 17:02:13 +02:00
Miodrag Milanovic
09735694b2 Fixed MSVC build 2018-07-11 14:39:42 +02:00