aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-11-13 16:08:44 +0100
committerClifford Wolf <clifford@clifford.at>2018-11-13 16:08:44 +0100
commite06eef375cf62ffd258a702a7275cd0da0e67382 (patch)
tree0d3530dc2ce26773c4388ed2f89581a179e117aa /common
parent23218b3378ec57915f321e22ae7060ea454b65aa (diff)
downloadnextpnr-e06eef375cf62ffd258a702a7275cd0da0e67382.tar.gz
nextpnr-e06eef375cf62ffd258a702a7275cd0da0e67382.tar.bz2
nextpnr-e06eef375cf62ffd258a702a7275cd0da0e67382.zip
Add more nameOf() convenience methods
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'common')
-rw-r--r--common/nextpnr.cc24
-rw-r--r--common/nextpnr.h14
2 files changed, 36 insertions, 2 deletions
diff --git a/common/nextpnr.cc b/common/nextpnr.cc
index 2a581cc6..903ab9e4 100644
--- a/common/nextpnr.cc
+++ b/common/nextpnr.cc
@@ -53,6 +53,30 @@ void IdString::initialize_add(const BaseCtx *ctx, const char *s, int idx)
ctx->idstring_idx_to_str->push_back(&insert_rc.first->first);
}
+const char *BaseCtx::nameOfBel(BelId bel) const
+{
+ const Context *ctx = getCtx();
+ return ctx->getBelName(bel).c_str(ctx);
+}
+
+const char *BaseCtx::nameOfWire(WireId wire) const
+{
+ const Context *ctx = getCtx();
+ return ctx->getWireName(wire).c_str(ctx);
+}
+
+const char *BaseCtx::nameOfPip(PipId pip) const
+{
+ const Context *ctx = getCtx();
+ return ctx->getPipName(pip).c_str(ctx);
+}
+
+const char *BaseCtx::nameOfGroup(GroupId group) const
+{
+ const Context *ctx = getCtx();
+ return ctx->getGroupName(group).c_str(ctx);
+}
+
WireId Context::getNetinfoSourceWire(const NetInfo *net_info) const
{
if (net_info->driver.cell == nullptr)
diff --git a/common/nextpnr.h b/common/nextpnr.h
index 5a0bd4b1..86e781ae 100644
--- a/common/nextpnr.h
+++ b/common/nextpnr.h
@@ -487,13 +487,23 @@ struct BaseCtx
const Context *getCtx() const { return reinterpret_cast<const Context *>(this); }
- template <typename T> const char *nameOf(const T *obj)
+ const char *nameOf(IdString name) const
+ {
+ return name.c_str(this);
+ }
+
+ template <typename T> const char *nameOf(const T *obj) const
{
if (obj == nullptr)
return "";
- return obj->name.c_str(getCtx());
+ return obj->name.c_str(this);
}
+ const char *nameOfBel(BelId bel) const;
+ const char *nameOfWire(WireId wire) const;
+ const char *nameOfPip(PipId pip) const;
+ const char *nameOfGroup(GroupId group) const;
+
// --------------------------------------------------------------
bool allUiReload = true;