aboutsummaryrefslogtreecommitdiffstats
path: root/generic/arch.h
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-08-05 16:46:24 +0200
committerGitHub <noreply@github.com>2018-08-05 16:46:24 +0200
commit6c8319e29a68d8d54b747e95c3f4a8df8a14d3ba (patch)
tree8b289ec41872e8f907e001500ff2d237c9350342 /generic/arch.h
parentb3acd8095fdcffe0dc116218d824a6c03562b69e (diff)
parent736f2a07175b85a94ca77cb930be528a4c7671ea (diff)
downloadnextpnr-6c8319e29a68d8d54b747e95c3f4a8df8a14d3ba.tar.gz
nextpnr-6c8319e29a68d8d54b747e95c3f4a8df8a14d3ba.tar.bz2
nextpnr-6c8319e29a68d8d54b747e95c3f4a8df8a14d3ba.zip
Merge pull request #37 from YosysHQ/ngapi
API change: Use CellInfo* and NetInfo* as cell/net handles
Diffstat (limited to 'generic/arch.h')
-rw-r--r--generic/arch.h27
1 files changed, 15 insertions, 12 deletions
diff --git a/generic/arch.h b/generic/arch.h
index d3e8f69e..a5b3470f 100644
--- a/generic/arch.h
+++ b/generic/arch.h
@@ -31,7 +31,8 @@ struct WireInfo;
struct PipInfo
{
- IdString name, type, bound_net;
+ IdString name, type;
+ NetInfo *bound_net;
WireId srcWire, dstWire;
DelayInfo delay;
DecalXY decalxy;
@@ -39,7 +40,8 @@ struct PipInfo
struct WireInfo
{
- IdString name, type, bound_net;
+ IdString name, type;
+ NetInfo *bound_net;
std::vector<PipId> downhill, uphill, aliases;
BelPin uphill_bel_pin;
std::vector<BelPin> downhill_bel_pins;
@@ -57,7 +59,8 @@ struct PinInfo
struct BelInfo
{
- IdString name, type, bound_cell;
+ IdString name, type;
+ CellInfo *bound_cell;
std::unordered_map<IdString, PinInfo> pins;
DecalXY decalxy;
int x, y, z;
@@ -142,11 +145,11 @@ struct Arch : BaseCtx
const std::vector<BelId> &getBelsByTile(int x, int y) const;
bool getBelGlobalBuf(BelId bel) const;
uint32_t getBelChecksum(BelId bel) const;
- void bindBel(BelId bel, IdString cell, PlaceStrength strength);
+ void bindBel(BelId bel, CellInfo *cell, PlaceStrength strength);
void unbindBel(BelId bel);
bool checkBelAvail(BelId bel) const;
- IdString getBoundBelCell(BelId bel) const;
- IdString getConflictingBelCell(BelId bel) const;
+ CellInfo *getBoundBelCell(BelId bel) const;
+ CellInfo *getConflictingBelCell(BelId bel) const;
const std::vector<BelId> &getBels() const;
BelType getBelType(BelId bel) const;
WireId getBelPinWire(BelId bel, PortPin pin) const;
@@ -157,11 +160,11 @@ struct Arch : BaseCtx
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 bindWire(WireId wire, NetInfo *net, PlaceStrength strength);
void unbindWire(WireId wire);
bool checkWireAvail(WireId wire) const;
- IdString getBoundWireNet(WireId wire) const;
- IdString getConflictingWireNet(WireId wire) const;
+ NetInfo *getBoundWireNet(WireId wire) const;
+ NetInfo *getConflictingWireNet(WireId wire) const;
DelayInfo getWireDelay(WireId wire) const { return DelayInfo(); }
const std::vector<WireId> &getWires() const;
const std::vector<BelPin> &getWireBelPins(WireId wire) const;
@@ -170,11 +173,11 @@ struct Arch : BaseCtx
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 bindPip(PipId pip, NetInfo *net, PlaceStrength strength);
void unbindPip(PipId pip);
bool checkPipAvail(PipId pip) const;
- IdString getBoundPipNet(PipId pip) const;
- IdString getConflictingPipNet(PipId pip) const;
+ NetInfo *getBoundPipNet(PipId pip) const;
+ NetInfo *getConflictingPipNet(PipId pip) const;
const std::vector<PipId> &getPips() const;
WireId getPipSrcWire(PipId pip) const;
WireId getPipDstWire(PipId pip) const;