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;