aboutsummaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorKeith Rothman <537074+litghost@users.noreply.github.com>2021-01-29 15:35:00 -0800
committerKeith Rothman <537074+litghost@users.noreply.github.com>2021-02-02 07:43:36 -0800
commit9089ee2d1631fe2346143823c2896a2a85a27e8b (patch)
tree7fb694eec79c542fa4658392b058b56a45f7013f /generic
parent9fe546f279cd643a308322ffa6af622630892315 (diff)
downloadnextpnr-9089ee2d1631fe2346143823c2896a2a85a27e8b.tar.gz
nextpnr-9089ee2d1631fe2346143823c2896a2a85a27e8b.tar.bz2
nextpnr-9089ee2d1631fe2346143823c2896a2a85a27e8b.zip
Add pybindings for new APIs.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
Diffstat (limited to 'generic')
-rw-r--r--generic/arch_pybindings.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/generic/arch_pybindings.cc b/generic/arch_pybindings.cc
index 7f7229fd..9e98bfe5 100644
--- a/generic/arch_pybindings.cc
+++ b/generic/arch_pybindings.cc
@@ -226,6 +226,32 @@ void arch_wrap_python(py::module &m)
pass_through<DelayInfo>>::def_wrap(ctx_cls, "addCellTimingClockToOut", "cell"_a, "port"_a,
"clock"_a, "clktoq"_a);
+ // const\_range\<BelBucketId\> getBelBuckets() const
+ fn_wrapper_0a<Context, decltype(&Context::getBelBuckets),
+ &Context::getBelBuckets,
+ wrap_context<const std::vector<BelBucketId> &>>::def_wrap(ctx_cls, "getBelBuckets");
+
+ // BelBucketId getBelBucketForBel(BelId bel) const
+ fn_wrapper_1a<Context, decltype(&Context::getBelBucketForBel),
+ &Context::getBelBucketForBel, conv_to_str<BelBucketId>,
+ conv_from_str<BelId>>::def_wrap(ctx_cls, "getBelBucketForBel");
+
+ // BelBucketId getBelBucketForCellType(IdString cell\_type) const
+ fn_wrapper_1a<Context, decltype(&Context::getBelBucketForCellType),
+ &Context::getBelBucketForCellType, conv_to_str<BelBucketId>,
+ conv_from_str<IdString>>::def_wrap(ctx_cls, "getBelBucketForCellType");
+
+ // const\_range\<BelId\> getBelsInBucket(BelBucketId bucket) const
+ fn_wrapper_1a<Context, decltype(&Context::getBelsInBucket),
+ &Context::getBelsInBucket, wrap_context<const std::vector<BelId> &>,
+ conv_from_str<BelBucketId>>::def_wrap(ctx_cls, "getBelsInBucket");
+
+ // bool isValidBelForCellType(IdString cell\_type, BelId bel) const
+ fn_wrapper_2a<Context, decltype(&Context::isValidBelForCellType),
+ &Context::isValidBelForCellType, pass_through<bool>,
+ conv_from_str<IdString>, conv_from_str<BelId>>::def_wrap(
+ ctx_cls, "isValidBelForCellType");
+
WRAP_MAP_UPTR(m, CellMap, "IdCellMap");
WRAP_MAP_UPTR(m, NetMap, "IdNetMap");
WRAP_MAP(m, HierarchyMap, wrap_context<HierarchicalCell &>, "HierarchyMap");