aboutsummaryrefslogtreecommitdiffstats
path: root/machxo2
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-02-16 11:52:16 +0000
committergatecat <gatecat@ds0.me>2021-02-16 13:31:36 +0000
commitc7c13cd95f7a25b2c8932ca00ad667ffca381c70 (patch)
tree222496d567bd217e6958660a1e1153a1b273ca36 /machxo2
parent815b57b9e1f0c0a7176d146a29cef763bebf343f (diff)
downloadnextpnr-c7c13cd95f7a25b2c8932ca00ad667ffca381c70.tar.gz
nextpnr-c7c13cd95f7a25b2c8932ca00ad667ffca381c70.tar.bz2
nextpnr-c7c13cd95f7a25b2c8932ca00ad667ffca381c70.zip
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>
Diffstat (limited to 'machxo2')
-rw-r--r--machxo2/arch.cc8
-rw-r--r--machxo2/arch.h1
-rw-r--r--machxo2/arch_pybindings.cc4
3 files changed, 1 insertions, 12 deletions
diff --git a/machxo2/arch.cc b/machxo2/arch.cc
index 2938f1ba..74bfc598 100644
--- a/machxo2/arch.cc
+++ b/machxo2/arch.cc
@@ -448,14 +448,6 @@ bool Arch::route()
}
// ---------------------------------------------------------------
-bool Arch::isValidBelForCell(CellInfo *cell, BelId bel) const
-{
- // FIXME: Unlike ECP5, SLICEs in a given tile do not share a clock, so
- // any SLICE Cell is valid for any BEL, even if some cells are already
- // bound to BELs in the tile. However, this may need to be filled in once
- // more than one LUT4 and DFF type is supported.
- return true;
-}
bool Arch::isBelLocationValid(BelId bel) const
{
diff --git a/machxo2/arch.h b/machxo2/arch.h
index f1642490..adc6e25c 100644
--- a/machxo2/arch.h
+++ b/machxo2/arch.h
@@ -650,7 +650,6 @@ struct Arch : BaseArch<ArchRanges>
bool route() override;
// Placer
- bool isValidBelForCell(CellInfo *cell, BelId bel) const override;
bool isBelLocationValid(BelId bel) const override;
static const std::string defaultPlacer;
diff --git a/machxo2/arch_pybindings.cc b/machxo2/arch_pybindings.cc
index fa0f9535..07e25437 100644
--- a/machxo2/arch_pybindings.cc
+++ b/machxo2/arch_pybindings.cc
@@ -1,3 +1,4 @@
+
/*
* nextpnr -- Next Generation Place and Route
*
@@ -44,9 +45,6 @@ void arch_wrap_python(py::module &m)
.def("place", &Context::place)
.def("route", &Context::route);
- fn_wrapper_2a<Context, decltype(&Context::isValidBelForCell), &Context::isValidBelForCell, pass_through<bool>,
- addr_and_unwrap<CellInfo>, conv_from_str<BelId>>::def_wrap(ctx_cls, "isValidBelForCell");
-
typedef std::unordered_map<IdString, std::unique_ptr<CellInfo>> CellMap;
typedef std::unordered_map<IdString, std::unique_ptr<NetInfo>> NetMap;
typedef std::unordered_map<IdString, IdString> AliasMap;