From 493d6c3fb93fb7ffe96609ded9e392b327b2c86c Mon Sep 17 00:00:00 2001 From: David Shah Date: Fri, 14 Dec 2018 12:16:29 +0000 Subject: Add Python helper functions for floorplanning Signed-off-by: David Shah --- common/pybindings.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'common/pybindings.cc') diff --git a/common/pybindings.cc b/common/pybindings.cc index 6cae889d..eee78b5e 100644 --- a/common/pybindings.cc +++ b/common/pybindings.cc @@ -104,6 +104,7 @@ BOOST_PYTHON_MODULE(MODULE_NAME) typedef std::unordered_map AttrMap; typedef std::unordered_map PortMap; typedef std::unordered_map PinMap; + typedef std::unordered_map> RegionMap; class_("BaseCtx", no_init); @@ -135,6 +136,8 @@ BOOST_PYTHON_MODULE(MODULE_NAME) typedef std::vector PortRefVector; typedef std::unordered_map WireMap; + typedef std::unordered_set BelSet; + typedef std::unordered_set WireSet; auto ni_cls = class_>("NetInfo", no_init); readwrite_wrapper, @@ -163,10 +166,25 @@ BOOST_PYTHON_MODULE(MODULE_NAME) def("parse_json", parse_json_shim); def("load_design", load_design_shim, return_value_policy()); + auto region_cls = class_>("Region", no_init); + readwrite_wrapper, + conv_from_str>::def_wrap(region_cls, "name"); + readwrite_wrapper, + pass_through>::def_wrap(region_cls, "constr_bels"); + readwrite_wrapper, + pass_through>::def_wrap(region_cls, "constr_bels"); + readwrite_wrapper, + pass_through>::def_wrap(region_cls, "constr_pips"); + readonly_wrapper>::def_wrap(region_cls, + "bels"); + readonly_wrapper>::def_wrap(region_cls, + "wires"); + WRAP_MAP(AttrMap, pass_through, "AttrMap"); WRAP_MAP(PortMap, wrap_context, "PortMap"); WRAP_MAP(PinMap, conv_to_str, "PinMap"); WRAP_MAP(WireMap, wrap_context, "WireMap"); + WRAP_MAP_UPTR(RegionMap, "RegionMap"); WRAP_VECTOR(PortRefVector, wrap_context); -- cgit v1.2.3