diff options
Diffstat (limited to 'ice40')
-rw-r--r-- | ice40/pybindings.cc | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/ice40/pybindings.cc b/ice40/pybindings.cc index 4f409194..a1906366 100644 --- a/ice40/pybindings.cc +++ b/ice40/pybindings.cc @@ -1,3 +1,23 @@ +/* + * nextpnr -- Next Generation Place and Route + * + * Copyright (C) 2018 Clifford Wolf <clifford@clifford.at> + * Copyright (C) 2018 David Shah <dave@ds0.me> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + #include "design.h" #include "chip.h" #include <utility> @@ -24,4 +44,21 @@ void arch_wrap_python() { .value("UP5K", ChipArgs::UP5K) .export_values(); + class_<BelId>("BelId") + .def_readwrite("index", &BelId::index) + .def("nil", &BelId::nil); + + class_<WireId>("WireId") + .def_readwrite("index", &WireId::index) + .def("nil", &WireId::nil); + + 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); + + } |