Commit Graph

64 Commits

Author SHA1 Message Date
gatecat
ddb084e9a8 archapi: Use arbitrary rather than actual placement in predictDelay
This makes predictDelay be based on an arbitrary belpin pair rather
than a arc of a net based on cell placement. This way 'what-if'
decisions can be evaluated without actually changing placement;
potentially useful for parallel placement.

A new helper predictArcDelay behaves like the old predictDelay to
minimise the impact on existing passes; only arches need be updated.

Signed-off-by: gatecat <gatecat@ds0.me>
2021-12-19 17:15:15 +00:00
gatecat
2ffb081442 Fixing old emails and names in copyrights
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-12 13:22:38 +01:00
gatecat
43b8dde923 Use hashlib in placers
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 15:04:49 +01:00
gatecat
579b98c596 Use hashlib for core netlist structures
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 14:27:56 +01:00
gatecat
14863bc04e Update placers to use new cluster APIs
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-06 11:47:07 +01:00
gatecat
162793aa87 Refactor some common code to CellInfo methods
Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-23 13:11:10 +00:00
gatecat
c7c13cd95f Remove isValidBelForCell
This Arch API dates from when we were first working out how to
implement placement validity checking, and in practice is little used by
the core parts of placer1/HeAP and the Arch implementation involves a
lot of duplication with isBelLocationValid.

In the short term; placement validity checking is better served by the
combination of checkBelAvail and isValidBelForCellType before placement;
followed by isBelLocationValid after placement (potentially after
moving/swapping multiple cells).

Longer term, removing this API makes things a bit cleaner for a new
validity checking API.

Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-16 13:31:36 +00:00
D. Shah
6d23461bcd ecp5: Proof-of-concept using IdStringList for bel names
This uses the new IdStringList API to store bel names for the ECP5. Note
that other arches and the GUI do not yet build with this
proof-of-concept patch.

getBelByName still uses the old implementation and could be more
efficiently implemented with further development.

Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 17:00:12 +00:00
Keith Rothman
da74a425d2 Run "make clangformat".
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:44:49 -08:00
Keith Rothman
2285c8dbbd Initial refactoring of placer API.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
Miodrag Milanovic
8d5724f4fd moved some context variables to settings 2019-06-15 15:23:51 +02: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
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
9c52afcf5f clangformat
Signed-off-by: David Shah <dave@ds0.me>
2018-11-16 13:25:51 +00:00
Eddie Hung
06ddb632d1 Merge remote-tracking branch 'origin/master' into timingapi 2018-11-14 17:59:21 -08:00
Eddie Hung
1b93107843 [placer1] Only increase temperature if legaliser moved something 2018-11-13 16:33:01 -08:00
Eddie Hung
cab91b035b [common] Fix 'after after' 2018-11-13 16:33:01 -08:00
Eddie Hung
4134bfa78e [timing] Resolve another merge conflict 2018-11-13 12:12:26 -08:00
Eddie Hung
7402a4b955 [placer1] Tidy up logic 2018-11-13 09:26:28 -08:00
Eddie Hung
78b684bcf8 [placer1] Actually check for TMG_IGNORE! 2018-11-10 22:30:35 -08:00
Eddie Hung
200fb3f664 [placer1] Ignore timing of TMG_IGNORE nets 2018-11-10 20:05:36 -08:00
David Shah
228cbf77d0 placer: Fix conflicts during constraint legalisation
Signed-off-by: David Shah <dave@ds0.me>
2018-10-11 11:50:56 +01:00
David Shah
ea03aafc26 clangformat
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 15:13:18 +01:00
Clifford Wolf
5ddde5c49f Add pip locations
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-09 10:39:53 +02:00
Clifford Wolf
e03ae50e21 Get rid of PortPin and BelType (ice40, generic, docs)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-08 17:01:18 +02:00
David Shah
8553573d24 place_common: Fix illegal cells left after relative constraint legalisation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-07 11:01:48 +02:00
Clifford Wolf
5e53075990 API change: Use CellInfo* and NetInfo* as cell/net handles (common, ice40)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-05 15:25:42 +02: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
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
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
Eddie Hung
92ec2cd138 clangformat for stuff I've touched 2018-07-31 20:57:36 -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
51956eb961 Fix tns computation 2018-07-31 16:23:35 -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
8371c0dd09 Speedup worst_slack computation 2018-07-30 18:55:22 -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