libtrellis: Python bindings for ChipConfig Signed-off-by: David Shah <dave@ds0.me>
diff --git a/libtrellis/src/PyTrellis.cpp b/libtrellis/src/PyTrellis.cpp index 74d4a8e..2d58620 100644 --- a/libtrellis/src/PyTrellis.cpp +++ b/libtrellis/src/PyTrellis.cpp
@@ -1,5 +1,6 @@ #include "Bitstream.hpp" #include "Chip.hpp" +#include "ChipConfig.hpp" #include "Database.hpp" #include "Tile.hpp" #include "BitDatabase.hpp" @@ -340,6 +341,28 @@ .def("to_string", &TileConfig::to_string) .def("from_string", &TileConfig::from_string) .staticmethod("from_string"); + + // From ChipConfig.hpp + class_<map<string, TileConfig>>("TileConfigMap") + .def(map_indexing_suite<map<string, TileConfig>>()); + class_<vector<uint16_t>>("Uint16Vector") + .def(vector_indexing_suite<vector<uint16_t>>()); + class_<map<uint16_t, vector<uint16_t>>>("Uint16VMap") + .def(map_indexing_suite<map<uint16_t, vector<uint16_t>>>()); + + class_<ChipConfig>("ChipConfig") + .def_readwrite("chip_name", &ChipConfig::chip_name) + .def_readwrite("metadata", &ChipConfig::metadata) + .def_readwrite("tiles", &ChipConfig::tiles) + .def_readwrite("tilegroups", &ChipConfig::tilegroups) + .def_readwrite("bram_data", &ChipConfig::bram_data) + .def("to_string", &ChipConfig::to_string) + .def("from_string", &ChipConfig::from_string) + .staticmethod("from_string") + .def("to_chip", &ChipConfig::to_chip) + .def("from_chip", &ChipConfig::from_chip) + .staticmethod("from_chip"); + // From RoutingGraph.hpp class_<Location>("Location", init<int, int>()) .def_readwrite("x", &Location::x)