diff options
| author | Clifford Wolf <clifford@clifford.at> | 2018-07-26 16:38:11 +0200 | 
|---|---|---|
| committer | Clifford Wolf <clifford@clifford.at> | 2018-07-26 16:38:11 +0200 | 
| commit | 467e0926f920f23b7cb2241cf52dbcfe84646fed (patch) | |
| tree | b491fb8baae4e90ab532ec1be196832225813bbd /generic | |
| parent | 6a59b8522cd13f4d4c4e0c0ac43a374da2d95615 (diff) | |
| download | nextpnr-467e0926f920f23b7cb2241cf52dbcfe84646fed.tar.gz nextpnr-467e0926f920f23b7cb2241cf52dbcfe84646fed.tar.bz2 nextpnr-467e0926f920f23b7cb2241cf52dbcfe84646fed.zip  | |
Add getWireType()/getPipType() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'generic')
| -rw-r--r-- | generic/arch.cc | 13 | ||||
| -rw-r--r-- | generic/arch.h | 12 | 
2 files changed, 17 insertions, 8 deletions
diff --git a/generic/arch.cc b/generic/arch.cc index d7401356..580fae43 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; +    wi.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; +    wi.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 diff --git a/generic/arch.h b/generic/arch.h index 97ed1ac2..01a90ee1 100644 --- a/generic/arch.h +++ b/generic/arch.h @@ -31,7 +31,7 @@ struct WireInfo;  struct PipInfo  { -    IdString name, bound_net; +    IdString name, type, bound_net;      WireId srcWire, dstWire;      DelayInfo delay;      DecalXY decalxy; @@ -39,7 +39,7 @@ struct PipInfo  struct WireInfo  { -    IdString name, bound_net; +    IdString name, type, bound_net;      std::vector<PipId> downhill, uphill, aliases;      BelPin uphill_bel_pin;      std::vector<BelPin> downhill_bel_pins; @@ -96,9 +96,9 @@ struct Arch : BaseCtx      float grid_distance_to_delay; -    void addWire(IdString name, int x, int y); -    void addPip(IdString name, IdString srcWire, IdString dstWire, DelayInfo delay); -    void addAlias(IdString name, IdString srcWire, IdString dstWire, DelayInfo delay); +    void addWire(IdString name, IdString type, int x, int y); +    void addPip(IdString name, IdString type, IdString srcWire, IdString dstWire, DelayInfo delay); +    void addAlias(IdString name, IdString type, IdString srcWire, IdString dstWire, DelayInfo delay);      void addBel(IdString name, IdString type, Loc loc, bool gb);      void addBelInput(IdString bel, IdString name, IdString wire); @@ -157,6 +157,7 @@ struct Arch : BaseCtx      WireId getWireByName(IdString name) const;      IdString getWireName(WireId wire) const; +    IdString getWireType(WireId wire) const;      uint32_t getWireChecksum(WireId wire) const;      void bindWire(WireId wire, IdString net, PlaceStrength strength);      void unbindWire(WireId wire); @@ -169,6 +170,7 @@ struct Arch : BaseCtx      PipId getPipByName(IdString name) const;      IdString getPipName(PipId pip) const; +    IdString getPipType(PipId pip) const;      uint32_t getPipChecksum(PipId pip) const;      void bindPip(PipId pip, IdString net, PlaceStrength strength);      void unbindPip(PipId pip);  | 
