aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/arch_place.cc
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-11-09 12:57:14 +0100
committerClifford Wolf <clifford@clifford.at>2018-11-09 12:57:14 +0100
commit66dd17664c08aca17b53d2853558121aa9e702e4 (patch)
treeb6bc5dd919e5f525ec7328861b81f616673a1ea6 /ecp5/arch_place.cc
parente91241f10d68fcaaf0a81fa77e9a91666120ccee (diff)
parent15d9b3d3cc05656e58d01ba2f97ec92b6daaee1c (diff)
downloadnextpnr-66dd17664c08aca17b53d2853558121aa9e702e4.tar.gz
nextpnr-66dd17664c08aca17b53d2853558121aa9e702e4.tar.bz2
nextpnr-66dd17664c08aca17b53d2853558121aa9e702e4.zip
Merge branch 'master' of github.com:YosysHQ/nextpnr into router_improve
Diffstat (limited to 'ecp5/arch_place.cc')
-rw-r--r--ecp5/arch_place.cc38
1 files changed, 20 insertions, 18 deletions
diff --git a/ecp5/arch_place.cc b/ecp5/arch_place.cc
index 55fff73d..6fcd8bde 100644
--- a/ecp5/arch_place.cc
+++ b/ecp5/arch_place.cc
@@ -39,25 +39,27 @@ bool Arch::slicesCompatible(const std::vector<const CellInfo *> &cells) const
IdString CLKMUX, LSRMUX, SRMODE;
bool first = true;
for (auto cell : cells) {
- if (first) {
- clk_sig = cell->sliceInfo.clk_sig;
- lsr_sig = cell->sliceInfo.lsr_sig;
- CLKMUX = cell->sliceInfo.clkmux;
- LSRMUX = cell->sliceInfo.lsrmux;
- SRMODE = cell->sliceInfo.srmode;
- } else {
- if (cell->sliceInfo.clk_sig != clk_sig)
- return false;
- if (cell->sliceInfo.lsr_sig != lsr_sig)
- return false;
- if (cell->sliceInfo.clkmux != CLKMUX)
- return false;
- if (cell->sliceInfo.lsrmux != LSRMUX)
- return false;
- if (cell->sliceInfo.srmode != SRMODE)
- return false;
+ if (cell->sliceInfo.using_dff) {
+ if (first) {
+ clk_sig = cell->sliceInfo.clk_sig;
+ lsr_sig = cell->sliceInfo.lsr_sig;
+ CLKMUX = cell->sliceInfo.clkmux;
+ LSRMUX = cell->sliceInfo.lsrmux;
+ SRMODE = cell->sliceInfo.srmode;
+ } else {
+ if (cell->sliceInfo.clk_sig != clk_sig)
+ return false;
+ if (cell->sliceInfo.lsr_sig != lsr_sig)
+ return false;
+ if (cell->sliceInfo.clkmux != CLKMUX)
+ return false;
+ if (cell->sliceInfo.lsrmux != LSRMUX)
+ return false;
+ if (cell->sliceInfo.srmode != SRMODE)
+ return false;
+ }
+ first = false;
}
- first = false;
}
return true;
}