aboutsummaryrefslogtreecommitdiffstats
path: root/generic/arch.cc
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-07-22 11:12:28 +0200
committerClifford Wolf <clifford@clifford.at>2018-07-22 11:12:28 +0200
commitbfa83b3bfd8020298b672d467dbd6c1c6c067c21 (patch)
tree25673aa1c3763b0d3a8ecbde7c0837d3af44d2e6 /generic/arch.cc
parent62b66e02085371c456dee95dc08d2cd41351c91f (diff)
downloadnextpnr-bfa83b3bfd8020298b672d467dbd6c1c6c067c21.tar.gz
nextpnr-bfa83b3bfd8020298b672d467dbd6c1c6c067c21.tar.bz2
nextpnr-bfa83b3bfd8020298b672d467dbd6c1c6c067c21.zip
Add Arch::getBelPinType() and Arch::getWireBelPins() in generic arch
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'generic/arch.cc')
-rw-r--r--generic/arch.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/generic/arch.cc b/generic/arch.cc
index 1a8b1a67..8c7a7670 100644
--- a/generic/arch.cc
+++ b/generic/arch.cc
@@ -90,6 +90,7 @@ void Arch::addBelInput(IdString bel, IdString name, IdString wire)
pi.type = PORT_IN;
wires.at(wire).downhill_bel_pins.push_back(BelPin{bel, name});
+ wires.at(wire).bel_pins.push_back(BelPin{bel, name});
}
void Arch::addBelOutput(IdString bel, IdString name, IdString wire)
@@ -101,6 +102,7 @@ void Arch::addBelOutput(IdString bel, IdString name, IdString wire)
pi.type = PORT_OUT;
wires.at(wire).uphill_bel_pin = BelPin{bel, name};
+ wires.at(wire).bel_pins.push_back(BelPin{bel, name});
}
void Arch::addBelInout(IdString bel, IdString name, IdString wire)
@@ -112,6 +114,7 @@ void Arch::addBelInout(IdString bel, IdString name, IdString wire)
pi.type = PORT_INOUT;
wires.at(wire).downhill_bel_pins.push_back(BelPin{bel, name});
+ wires.at(wire).bel_pins.push_back(BelPin{bel, name});
}
void Arch::addGroupBel(IdString group, IdString bel) { groups[group].bels.push_back(bel); }
@@ -217,6 +220,8 @@ BelType Arch::getBelType(BelId bel) const { return bels.at(bel).type; }
WireId Arch::getBelPinWire(BelId bel, PortPin pin) const { return bels.at(bel).pins.at(pin).wire; }
+PortType Arch::getBelPinType(BelId bel, PortPin pin) const { return bels.at(bel).pins.at(pin).type; }
+
BelPin Arch::getBelPinUphill(WireId wire) const { return wires.at(wire).uphill_bel_pin; }
const std::vector<BelPin> &Arch::getBelPinsDownhill(WireId wire) const { return wires.at(wire).downhill_bel_pins; }
@@ -267,6 +272,8 @@ IdString Arch::getBoundWireNet(WireId wire) const { return wires.at(wire).bound_
IdString Arch::getConflictingWireNet(WireId wire) const { return wires.at(wire).bound_net; }
+const std::vector<BelPin> &Arch::getWireBelPins(WireId wire) const { return wires.at(wire).bel_pins; }
+
const std::vector<WireId> &Arch::getWires() const { return wire_ids; }
// ---------------------------------------------------------------