aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEddie Hung <eddieh@ece.ubc.ca>2018-08-06 17:17:39 -0700
committerEddie Hung <eddieh@ece.ubc.ca>2018-08-06 17:17:39 -0700
commit6768a5c03e59e75ac20c666419b4e42cc16118e1 (patch)
tree46ef0184637fcb4299194cdcab25875c00958139
parentf3e46df7095582b23ffcd4726e1b33cd77df6ba0 (diff)
downloadnextpnr-6768a5c03e59e75ac20c666419b4e42cc16118e1.tar.gz
nextpnr-6768a5c03e59e75ac20c666419b4e42cc16118e1.tar.bz2
nextpnr-6768a5c03e59e75ac20c666419b4e42cc16118e1.zip
Add Arch::isIOCell() to ecp5 and generic
-rw-r--r--ecp5/arch.cc6
-rw-r--r--ecp5/arch.h2
-rw-r--r--generic/arch.h2
3 files changed, 10 insertions, 0 deletions
diff --git a/ecp5/arch.cc b/ecp5/arch.cc
index d2d62241..4a3e8ef3 100644
--- a/ecp5/arch.cc
+++ b/ecp5/arch.cc
@@ -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;
diff --git a/ecp5/arch.h b/ecp5/arch.h
index e00e111a..fd8d0a13 100644
--- a/ecp5/arch.h
+++ b/ecp5/arch.h
@@ -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
diff --git a/generic/arch.h b/generic/arch.h
index 59fe8d05..e7010885 100644
--- a/generic/arch.h
+++ b/generic/arch.h
@@ -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;