aboutsummaryrefslogtreecommitdiffstats
path: root/generic/arch.cc
diff options
context:
space:
mode:
authorEddie Hung <e.hung@imperial.ac.uk>2018-07-26 21:00:26 -0700
committerEddie Hung <e.hung@imperial.ac.uk>2018-07-26 21:00:26 -0700
commitd5c2332ebf5dd9b84e3a6fd2a99e8df70150bd33 (patch)
tree0f641516654085dd24bb69889ef466041234f684 /generic/arch.cc
parentf45e688354c13f38bda3ba4064587880a25980fe (diff)
parente5acd80247264fed41dfc1e7e07efa8a10a67fae (diff)
downloadnextpnr-d5c2332ebf5dd9b84e3a6fd2a99e8df70150bd33.tar.gz
nextpnr-d5c2332ebf5dd9b84e3a6fd2a99e8df70150bd33.tar.bz2
nextpnr-d5c2332ebf5dd9b84e3a6fd2a99e8df70150bd33.zip
Merge remote-tracking branch 'origin/master' into redist_slack
Diffstat (limited to 'generic/arch.cc')
-rw-r--r--generic/arch.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/generic/arch.cc b/generic/arch.cc
index d7401356..5c9864ab 100644
--- a/generic/arch.cc
+++ b/generic/arch.cc
@@ -24,22 +24,24 @@
NEXTPNR_NAMESPACE_BEGIN
-void Arch::addWire(IdString name, int x, int y)
+void Arch::addWire(IdString name, IdString type, int x, int y)
{
NPNR_ASSERT(wires.count(name) == 0);
WireInfo &wi = wires[name];
wi.name = name;
+ wi.type = type;
wi.x = x;
wi.y = y;
wire_ids.push_back(name);
}
-void Arch::addPip(IdString name, IdString srcWire, IdString dstWire, DelayInfo delay)
+void Arch::addPip(IdString name, IdString type, IdString srcWire, IdString dstWire, DelayInfo delay)
{
NPNR_ASSERT(pips.count(name) == 0);
PipInfo &pi = pips[name];
pi.name = name;
+ pi.type = type;
pi.srcWire = srcWire;
pi.dstWire = dstWire;
pi.delay = delay;
@@ -49,11 +51,12 @@ void Arch::addPip(IdString name, IdString srcWire, IdString dstWire, DelayInfo d
pip_ids.push_back(name);
}
-void Arch::addAlias(IdString name, IdString srcWire, IdString dstWire, DelayInfo delay)
+void Arch::addAlias(IdString name, IdString type, IdString srcWire, IdString dstWire, DelayInfo delay)
{
NPNR_ASSERT(pips.count(name) == 0);
PipInfo &pi = pips[name];
pi.name = name;
+ pi.type = type;
pi.srcWire = srcWire;
pi.dstWire = dstWire;
pi.delay = delay;
@@ -266,6 +269,8 @@ WireId Arch::getWireByName(IdString name) const
IdString Arch::getWireName(WireId wire) const { return wire; }
+IdString Arch::getWireType(WireId wire) const { return wires.at(wire).type; }
+
uint32_t Arch::getWireChecksum(WireId wire) const
{
// FIXME
@@ -316,6 +321,8 @@ PipId Arch::getPipByName(IdString name) const
IdString Arch::getPipName(PipId pip) const { return pip; }
+IdString Arch::getPipType(PipId pip) const { return pips.at(pip).type; }
+
uint32_t Arch::getPipChecksum(PipId wire) const
{
// FIXME