Add new Arch::getBelIOB(BelId) function

This commit is contained in:
Eddie Hung 2019-01-27 11:47:39 -08:00
parent 5afa31d031
commit 02985b014a
5 changed files with 8 additions and 0 deletions

View File

@ -115,6 +115,10 @@ Return a list of all bels at the give X/Y location.
Returns true if the given bel is a global buffer. A global buffer does not "pull in" other cells it drives to be close to the location of the global buffer. Returns true if the given bel is a global buffer. A global buffer does not "pull in" other cells it drives to be close to the location of the global buffer.
### bool getBelIOB(BelId bel) const
Returns true if the given bel is a IO block.
### uint32\_t getBelChecksum(BelId bel) const ### uint32\_t getBelChecksum(BelId bel) const
Return a (preferably unique) number that represents this bel. This is used in design state checksum calculations. Return a (preferably unique) number that represents this bel. This is used in design state checksum calculations.

View File

@ -539,6 +539,7 @@ struct Arch : BaseCtx
BelRange getBelsByTile(int x, int y) const; BelRange getBelsByTile(int x, int y) const;
bool getBelGlobalBuf(BelId bel) const { return getBelType(bel) == id_DCCA; } bool getBelGlobalBuf(BelId bel) const { return getBelType(bel) == id_DCCA; }
bool getBelIOB(BelId bel) const { return chip_info->bel_data[bel.index].type == ID_TRELLIS_IO; }
bool checkBelAvail(BelId bel) const bool checkBelAvail(BelId bel) const
{ {

View File

@ -224,6 +224,7 @@ BelId Arch::getBelByLocation(Loc loc) const
const std::vector<BelId> &Arch::getBelsByTile(int x, int y) const { return bels_by_tile.at(x).at(y); } const std::vector<BelId> &Arch::getBelsByTile(int x, int y) const { return bels_by_tile.at(x).at(y); }
bool Arch::getBelGlobalBuf(BelId bel) const { return bels.at(bel).gb; } bool Arch::getBelGlobalBuf(BelId bel) const { return bels.at(bel).gb; }
bool Arch::getBelIOB(BelId bel) const { return /* TODO */ false; }
uint32_t Arch::getBelChecksum(BelId bel) const uint32_t Arch::getBelChecksum(BelId bel) const
{ {

View File

@ -150,6 +150,7 @@ struct Arch : BaseCtx
BelId getBelByLocation(Loc loc) const; BelId getBelByLocation(Loc loc) const;
const std::vector<BelId> &getBelsByTile(int x, int y) const; const std::vector<BelId> &getBelsByTile(int x, int y) const;
bool getBelGlobalBuf(BelId bel) const; bool getBelGlobalBuf(BelId bel) const;
bool getBelIOB(BelId bel) const;
uint32_t getBelChecksum(BelId bel) const; uint32_t getBelChecksum(BelId bel) const;
void bindBel(BelId bel, CellInfo *cell, PlaceStrength strength); void bindBel(BelId bel, CellInfo *cell, PlaceStrength strength);
void unbindBel(BelId bel); void unbindBel(BelId bel);

View File

@ -513,6 +513,7 @@ struct Arch : BaseCtx
BelRange getBelsByTile(int x, int y) const; BelRange getBelsByTile(int x, int y) const;
bool getBelGlobalBuf(BelId bel) const { return chip_info->bel_data[bel.index].type == ID_SB_GB; } bool getBelGlobalBuf(BelId bel) const { return chip_info->bel_data[bel.index].type == ID_SB_GB; }
bool getBelIOB(BelId bel) const { return chip_info->bel_data[bel.index].type == ID_SB_IO; }
IdString getBelType(BelId bel) const IdString getBelType(BelId bel) const
{ {