aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/pybindings.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ice40/pybindings.cc')
-rw-r--r--ice40/pybindings.cc31
1 files changed, 30 insertions, 1 deletions
diff --git a/ice40/pybindings.cc b/ice40/pybindings.cc
index daf0be84..f19afce4 100644
--- a/ice40/pybindings.cc
+++ b/ice40/pybindings.cc
@@ -46,13 +46,42 @@ void arch_wrap_python()
.def_readwrite("index", &WireId::index)
.def("nil", &WireId::nil);
+ class_<PipId>("PipId")
+ .def_readwrite("index", &PipId::index)
+ .def("nil", &WireId::nil);
+
+ class_<BelPin>("BelPin")
+ .def_readwrite("bel", &BelPin::bel)
+ .def_readwrite("pin", &BelPin::pin);
+
+ enum_<PortPin>("PortPin")
+#define X(t) .value("PIN_" #t, PIN_##t)
+#include "portpins.inc"
+ ;
+#undef X
+
class_<Chip>("Chip", init<ChipArgs>())
.def("getBelByName", &Chip::getBelByName)
.def("getWireByName", &Chip::getWireByName)
.def("getBelName", &Chip::getBelName)
.def("getWireName", &Chip::getWireName)
.def("getBels", &Chip::getBels)
- .def("getWires", &Chip::getWires);
+ .def("getBelType", &Chip::getBelType)
+ .def("getWireBelPin", &Chip::getWireBelPin)
+ .def("getBelPinUphill", &Chip::getBelPinUphill)
+ .def("getBelPinsDownhill", &Chip::getBelPinsDownhill)
+ .def("getWires", &Chip::getWires)
+ .def("getPipByName", &Chip::getPipByName)
+ .def("getPipName", &Chip::getPipName)
+ .def("getPips", &Chip::getPips)
+ .def("getPipSrcWire", &Chip::getPipSrcWire)
+ .def("getPipDstWire", &Chip::getPipDstWire)
+ .def("getPipDelay", &Chip::getPipDelay)
+ .def("getPipsDownhill", &Chip::getPipsDownhill)
+ .def("getPipsUphill", &Chip::getPipsUphill)
+ .def("getWireAliases", &Chip::getWireAliases)
+ .def("getBelPosition", &Chip::getBelPosition)
+ .def("getWirePosition", &Chip::getWirePosition);
WRAP_RANGE(Bel);
WRAP_RANGE(BelPin);