From c7c13cd95f7a25b2c8932ca00ad667ffca381c70 Mon Sep 17 00:00:00 2001 From: gatecat Date: Tue, 16 Feb 2021 11:52:16 +0000 Subject: 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 --- docs/coding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs/coding.md') diff --git a/docs/coding.md b/docs/coding.md index 355fe457..dc09bb3f 100644 --- a/docs/coding.md +++ b/docs/coding.md @@ -75,7 +75,7 @@ The job of the placer in nextpnr is to find a suitable bel for each cell in the Placers might want to create their own indices of bels (for example, bels by type and location) to speed up the search. -As nextpnr allows arbitrary constraints on bels for more advanced packer-free flows and complex real-world architectures; placements must be checked for legality using `isValidBelForCell` (before placement) or `isBelLocationValid` (after placement) and the placement rejected if invalid. For analytical placement algorithms; after creating a spread-out AP solution the legality of placing each cell needs to be checked. In practice, the cost of this is fairly low as the architecture should ensure these functions are as fast as possible. +As nextpnr allows arbitrary constraints on bels for more advanced packer-free flows and complex real-world architectures; placements must be checked for legality using `isBelLocationValid` (after placement) and the placement rejected if invalid. For analytical placement algorithms; after creating a spread-out AP solution the legality of placing each cell needs to be checked. In practice, the cost of this is fairly low as the architecture should ensure these functions are as fast as possible. There are several routes for timing information in the placer: - sink `PortRef`s have a `budget` value annotated by calling `assign_budget` which is an estimate of the maximum delay that an arc may have -- cgit v1.2.3