Add Arch::isIOCell() to ecp5 and generic

This commit is contained in:
Eddie Hung 2018-08-06 17:17:39 -07:00
parent f3e46df709
commit 6768a5c03e
3 changed files with 10 additions and 0 deletions

View File

@ -500,6 +500,12 @@ IdString Arch::getPortClock(const CellInfo *cell, IdString port) const { return
bool Arch::isClockPort(const CellInfo *cell, IdString port) const { return false; }
bool Arch::isIOCell(const CellInfo *cell) const
{
return cell->type == id("TRELLIS_IO");
}
std::vector<std::pair<std::string, std::string>> Arch::getTilesAtLocation(int row, int col)
{
std::vector<std::pair<std::string, std::string>> ret;

View File

@ -833,6 +833,8 @@ struct Arch : BaseCtx
bool isClockPort(const CellInfo *cell, IdString port) const;
// Return true if a port is a net
bool isGlobalNet(const NetInfo *net) const;
// Return true if a cell is an IO
bool isIOCell(const CellInfo *cell) const;
// -------------------------------------------------
// Placement validity checks

View File

@ -215,6 +215,8 @@ struct Arch : BaseCtx
bool getCellDelay(const CellInfo *cell, IdString fromPort, IdString toPort, DelayInfo &delay) const;
IdString getPortClock(const CellInfo *cell, IdString port) const;
bool isClockPort(const CellInfo *cell, IdString port) const;
// Return true if a cell is an IO
bool isIOCell(const CellInfo *cell) const;
bool isValidBelForCell(CellInfo *cell, BelId bel) const;
bool isBelLocationValid(BelId bel) const;