aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/pybindings.cc
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2018-06-01 15:53:46 +0200
committerDavid Shah <davey1576@gmail.com>2018-06-02 13:48:28 +0200
commitd3f74eb0567b557f261018131a04ab5eed3ddb7e (patch)
tree1b94a959b8b607b5ae026a74235456db0f992816 /ice40/pybindings.cc
parentf353453a7faa8c7fa87acfac161cdcbebfae04d1 (diff)
downloadnextpnr-d3f74eb0567b557f261018131a04ab5eed3ddb7e.tar.gz
nextpnr-d3f74eb0567b557f261018131a04ab5eed3ddb7e.tar.bz2
nextpnr-d3f74eb0567b557f261018131a04ab5eed3ddb7e.zip
Simple Python test working
Signed-off-by: David Shah <davey1576@gmail.com>
Diffstat (limited to 'ice40/pybindings.cc')
-rw-r--r--ice40/pybindings.cc37
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);
+
+
}