From 9185c85a5434d7fded49397ecd9eee646140e942 Mon Sep 17 00:00:00 2001 From: Erika Date: Sun, 26 Jan 2020 19:59:18 +0000 Subject: python: Expose PlaceStrength enum and isValidBelForCell on ecp5 Signed-off-by: Erika --- common/pybindings.cc | 9 +++++++++ common/pywrappers.h | 2 +- ecp5/arch_pybindings.cc | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/common/pybindings.cc b/common/pybindings.cc index 3b2a3744..51da00e9 100644 --- a/common/pybindings.cc +++ b/common/pybindings.cc @@ -129,6 +129,15 @@ BOOST_PYTHON_MODULE(MODULE_NAME) .value("PORT_INOUT", PORT_INOUT) .export_values(); + enum_("PlaceStrength") + .value("STRENGTH_NONE", STRENGTH_NONE) + .value("STRENGTH_WEAK", STRENGTH_WEAK) + .value("STRENGTH_STRONG", STRENGTH_STRONG) + .value("STRENGTH_FIXED", STRENGTH_FIXED) + .value("STRENGTH_LOCKED", STRENGTH_LOCKED) + .value("STRENGTH_USER", STRENGTH_USER) + .export_values(); + typedef std::unordered_map AttrMap; typedef std::unordered_map PortMap; typedef std::unordered_map IdIdMap; diff --git a/common/pywrappers.h b/common/pywrappers.h index 1d970985..d50af4c3 100644 --- a/common/pywrappers.h +++ b/common/pywrappers.h @@ -274,7 +274,7 @@ template struct f } }; -// Two parameters, one return +// Two parameters, no return template struct fn_wrapper_2a_v { using class_type = typename WrapIfNotContext::maybe_wrapped_t; diff --git a/ecp5/arch_pybindings.cc b/ecp5/arch_pybindings.cc index cd5e31c3..951745af 100644 --- a/ecp5/arch_pybindings.cc +++ b/ecp5/arch_pybindings.cc @@ -46,6 +46,9 @@ void arch_wrap_python() .def("place", &Context::place) .def("route", &Context::route); + fn_wrapper_2a, + addr_and_unwrap, conv_from_str>::def_wrap(ctx_cls, "isValidBelForCell"); + typedef std::unordered_map> CellMap; typedef std::unordered_map> NetMap; typedef std::unordered_map AliasMap; -- cgit v1.2.3