aboutsummaryrefslogtreecommitdiffstats
path: root/common/router2.cc
Commit message (Collapse)AuthorAgeFilesLines
* Split up common into kernel,place,routegatecat2022-04-081-1499/+0
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Switch to potentially-sparse net users arraygatecat2022-02-271-68/+71
| | | | | | | | This uses a new data structure for net.users that allows gaps, so removing a port from a net is no longer an O(n) operation on the number of users the net has. Signed-off-by: gatecat <gatecat@ds0.me>
* router1: Experimental timing-driven ripup supportgatecat2021-12-181-2/+2
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Improve reservation debug logginggatecat2021-12-121-2/+4
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Error instead of hang in case of reservation conflictsgatecat2021-12-121-0/+3
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Disable criticality sorting towards end of routinggatecat2021-10-091-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Allow overriding resource costsgatecat2021-09-241-2/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Fix uninitialised valuesgatecat2021-09-061-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Fix explored countgatecat2021-09-021-0/+2
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Add experimental timing-driven ripup optiongatecat2021-08-151-12/+44
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Alternative congestion cost schedulegatecat2021-08-151-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Adding some criticality heuristicsgatecat2021-08-151-13/+29
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Improved bidir routing and data structuresgatecat2021-08-151-415/+358
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Mark dest as visited during backwards routinggatecat2021-07-301-0/+4
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Improve debugability of pip conflictsgatecat2021-07-291-1/+5
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* nexus: Fix routeing of global clocks that also drive fabricgatecat2021-07-281-0/+2
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Update route delays even when routes are congestedgatecat2021-07-281-1/+43
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* interchange: Allow pseudo pip wires to overlap with bound site wires on the ↵gatecat2021-07-061-8/+8
| | | | | | same net Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Dump pre-bound routes when routing fails in debug modegatecat2021-07-061-1/+11
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Fixing old emails and names in copyrightsgatecat2021-06-121-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Use hashlib in routersgatecat2021-06-021-6/+5
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Use hashlib for core netlist structuresgatecat2021-06-021-4/+4
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Add heatmap by routing resource typegatecat2021-05-201-2/+41
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Run clangformatgatecat2021-05-161-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* mistral: Tidying upgatecat2021-05-151-1/+2
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Hacky workaround for slow Cyclone V convergencegatecat2021-05-151-3/+3
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Reduce verbosity when debugginggatecat2021-05-151-0/+2
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Add some boundness statisticsgatecat2021-05-121-0/+33
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Fix a typogatecat2021-05-111-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Reserve wires in more complex casesgatecat2021-05-061-13/+39
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Dynamicly expand bounding box based on congestiongatecat2021-05-061-10/+22
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Fix bug in router2 where router may give up too early.Keith Rothman2021-04-061-1/+13
| | | | | | | | | | Was introduced in #612. The logic before was intended to prevent the router from terminating early when not using a bounding box, but the fix in #612 simply removed that, meaning that the router might terminate early incorrectly. The solution here is to only use the toexplore hysteric once a solution is found. Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* Add "checkPipAvailForNet" to Arch API.Keith Rothman2021-03-221-13/+7
| | | | | | | | This is important for distiguishing valid pseudo pips in the FPGA interchange arch. This also avoids a double or triple lookup of pip->net map. Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* Moving hash map/set type selection to header.Keith Rothman2021-03-171-8/+4
| | | | Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* Use NEXTPNR_NAMESPACE macro's now that headers are seperated.Keith Rothman2021-03-151-1/+1
| | | | Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* Add support for partially routed nets from the placer in router2.Keith Rothman2021-03-121-25/+48
| | | | Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* Add diagnostic prints to debug lookahead performance.Keith Rothman2021-03-101-13/+41
| | | | Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* Only depend on Abseil in threaded builds.whitequark2021-03-101-0/+6
| | | | | | Abseil has a hard dependency on threads (not just in the build system but in many places in the base libraries), so there is no way to use it on WASI at the moment.
* Merge pull request #607 from litghost/add_absl_flat_hash_mapgatecat2021-03-091-1/+2
|\ | | | | Add absl::flat_hash_map.
| * Add absl::flat_hash_map.Keith Rothman2021-03-011-1/+2
| | | | | | | | | | | | | | This lowers the CPU cost of using the flat wire map in router2, and should use less memory as well. Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* | Merge pull request #609 from YosysHQ/gatecat/sta-v2gatecat2021-03-091-13/+6
|\ \ | | | | | | Use new timing engine for criticality
| * | timing: Replace all users of criticality with new enginegatecat2021-03-041-13/+6
| | | | | | | | | | | | Signed-off-by: gatecat <gatecat@ds0.me>
* | | router2: Fix vast perf drop when leaving bounding boxgatecat2021-03-081-1/+1
|/ / | | | | | | Signed-off-by: gatecat <gatecat@ds0.me>
* / Use scope in router1/2 and placer1.Keith Rothman2021-03-011-0/+5
|/ | | | Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* Allow router2 to use routed but not fixed arcs.Keith Rothman2021-02-251-4/+54
| | | | Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* Fix compiler warnings introduced by -Wextragatecat2021-02-251-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* router2: Support for multiple bel pins per cell pingatecat2021-02-101-85/+95
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Start making use of getBelPinsForCellPin APIgatecat2021-02-101-6/+6
| | | | | | | | | | | | This replaces getNetinfoSinkWire with 3 new functions for different use cases. At the moment all existing code has been moved to getNetinfoSinkWire with phys_idx=0 so the build doesn't break; but this won't yet function properly with more than one sink. But it provides a base on which to work on refactoring the routers to support this case. Signed-off-by: gatecat <gatecat@ds0.me>
* cleanup: Spelling fixesD. Shah2021-01-281-1/+1
| | | | Signed-off-by: D. Shah <dave@ds0.me>
* cleanup: Fix compiler warningsD. Shah2021-01-281-1/+2
| | | | Signed-off-by: D. Shah <dave@ds0.me>