Commit Graph

32 Commits

Author SHA1 Message Date
gatecat
74ffe2c543 interchange: Handle canInvert PIPs when processing preferred constants
Signed-off-by: gatecat <gatecat@ds0.me>
2021-07-01 13:47:02 +01:00
gatecat
523ffbaa37 interchange: Reserve site ports only reachable from dedicated routing
Signed-off-by: gatecat <gatecat@ds0.me>
2021-07-01 11:28:12 +01:00
gatecat
377f56c151 interchange: Cope with undriven nets in more places
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-14 10:58:42 +01:00
Alessandro Comodi
d72c10cb6c interchange: clusters: adjust comments
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
2021-06-11 11:19:01 +02:00
Alessandro Comodi
104536b7aa interchange: add support for generating BEL clusters
Clustering greatly helps the placer to identify and pack together
specific cells at the same site (e.g. LUT+FF), or cells that are chained through
dedicated interconnections (e.g. CARRY CHAINS)

Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
2021-06-11 11:19:01 +02:00
gatecat
ecc19c2c08 Using hashlib in arches
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 15:05:19 +01:00
gatecat
64f5b1d031 interchange: Don't error out on missing cell ports
This is required for LUTRAM support, as the upper address bits of
RAMD64E etc are missing for shallower primitives.

Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-21 10:00:35 +01:00
gatecat
5a41d2070c Run clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-16 16:25:05 +01:00
Alessandro Comodi
428b56570d interchange: pseudo pips: fix illegal tile pseudo PIPs
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
2021-05-14 12:17:53 +02:00
Alessandro Comodi
8c468acff8 interchange: site router: add valid pips list to check during routing
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
2021-05-13 11:00:42 +02:00
Alessandro Comodi
45618faf36 interchange: site router: fix log messages
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
2021-05-10 14:20:54 +02:00
Alessandro Comodi
beff2b912c interchange: site router: fix illegal site thru paths
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
2021-05-10 14:05:46 +02:00
gatecat
4e346ecfba Hash table refactoring
Signed-off-by: gatecat <gatecat@ds0.me>
2021-04-14 10:30:19 +01:00
gatecat
fc15105643 clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2021-04-12 10:26:39 +01:00
Keith Rothman
c2a6f6ce62 [interchange] Fix invalid use of local variables due to refactoring.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-04-06 10:42:05 -07:00
Keith Rothman
8773c645ca [interchange] Prevent site router from generating incorrect LUTs.
The previous logic tied LUT input pins to VCC if a wire was unplacable.
This missed a case where the net was present to the input of the LUT,
but a wire was still not legal.  This case is now prevented by tying the
output of the LUT to an unused net.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-04-06 10:42:05 -07:00
Keith Rothman
4301e4705b [interchange] Add some documentation for the site router.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-04-05 15:15:48 -07:00
Keith Rothman
55c9d43c70 interchange: Fix bug in site router where a bad solution isn't remove.
This resulted in valid site routing solutions being missed.  Underlying
bug was an off-by-one error when unwinding a failed solution.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-25 17:56:14 -07:00
Keith Rothman
c8dccd3e7b Implement debugging tools for site router.
- Finishes implementation of SiteArch::nameOfPip and SiteArch::nameOfWire
 - Adds "explain_bel_status", which should be an exhaustive diagnostic
   of the status of a BEL placement.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-25 17:56:11 -07:00
Keith Rothman
77bc2f9130 Add initial handling of local site inverters and constant signals.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-25 17:20:09 -07:00
Keith Rothman
5e96740451 [FPGA interchange] Small fix to get_net_type.
If get_net_type was called before the driver was placed, it could return
the wrong value.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-25 17:14:53 -07:00
gatecat
2300d81c3c
Merge pull request #640 from litghost/inversion_logic
Initial inverter logic for FPGA interchange
2021-03-23 16:59:35 +00:00
Keith Rothman
831b94cdac Initial version of inverter logic.
For now just implements some inspection capabilities, and the site
router (for now) avoids inverted paths.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-23 09:03:07 -07:00
gatecat
79400756f5 interchange: Add nice error for missing cell pins
Signed-off-by: gatecat <gatecat@ds0.me>
2021-03-23 15:40:34 +00:00
Keith Rothman
32f2ec86c4 Rework FPGA interchange site router.
The new site router should be robust to most situations, and isn't
significantly slower with the use of caching.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-22 09:54:49 -07:00
Keith Rothman
78748a67be For now just return false in the site router.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-26 11:01:22 -08:00
Keith Rothman
cfa449c3f3 Initial LUT rotation logic.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-26 11:01:22 -08:00
Keith Rothman
a30043c8da Fix assorted bugs in FPGA interchange.
Fixes:
 - Only use map constant pins during routing, and not during placement.
 - Unmapped cell ports have no BEL pins.
 - Fix SiteRouter congestion not taking into account initial expansion.
 - Fix psuedo-site pip output.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-23 14:09:28 -08:00
Keith Rothman
2fc353d559 Add initial logic for handling dedicated interconnect situations.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-23 14:09:28 -08:00
Keith Rothman
e138a6c56d Do some spell checking on site_router.cc
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-18 13:34:06 -08:00
Keith Rothman
4766e889c0 Add some utility methods for site instance access.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-18 13:26:52 -08:00
Keith Rothman
c385321248 Add initial site router.
This site router likely cannot handle the full problem space.  It may
need to be replaced with a more generalize approach as testing
continues.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-17 12:03:16 -08:00