aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/arch_place.cc
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2018-08-19 14:04:01 +0100
committerGitHub <noreply@github.com>2018-08-19 14:04:01 +0100
commit45bd0a8c723daad8718e38b0f563966e9da1ed34 (patch)
tree2c792de98ca1b93f469b71c6f91e377dc1e510c2 /ecp5/arch_place.cc
parent26be6f9761bba9dff646c6b1d071b149bd26f950 (diff)
parent0b35cb4e60c114b3d84ae39d0462a20085ef2bd4 (diff)
downloadnextpnr-45bd0a8c723daad8718e38b0f563966e9da1ed34.tar.gz
nextpnr-45bd0a8c723daad8718e38b0f563966e9da1ed34.tar.bz2
nextpnr-45bd0a8c723daad8718e38b0f563966e9da1ed34.zip
Merge pull request #54 from daveshah1/ecp5_speedup
ecp5: Improving placement speed
Diffstat (limited to 'ecp5/arch_place.cc')
-rw-r--r--ecp5/arch_place.cc24
1 files changed, 12 insertions, 12 deletions
diff --git a/ecp5/arch_place.cc b/ecp5/arch_place.cc
index 83af6b5a..55fff73d 100644
--- a/ecp5/arch_place.cc
+++ b/ecp5/arch_place.cc
@@ -35,26 +35,26 @@ bool Arch::slicesCompatible(const std::vector<const CellInfo *> &cells) const
{
// TODO: allow different LSR/CLK and MUX/SRMODE settings once
// routing details are worked out
- NetInfo *clk_sig = nullptr, *lsr_sig = nullptr;
- std::string CLKMUX, LSRMUX, SRMODE;
+ IdString clk_sig, lsr_sig;
+ IdString CLKMUX, LSRMUX, SRMODE;
bool first = true;
for (auto cell : cells) {
if (first) {
- clk_sig = port_or_nullptr(cell, id_CLK);
- lsr_sig = port_or_nullptr(cell, id_LSR);
- CLKMUX = str_or_default(cell->params, id_CLKMUX, "CLK");
- LSRMUX = str_or_default(cell->params, id_LSRMUX, "LSR");
- SRMODE = str_or_default(cell->params, id_SRMODE, "CE_OVER_LSR");
+ 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 (port_or_nullptr(cell, id_CLK) != clk_sig)
+ if (cell->sliceInfo.clk_sig != clk_sig)
return false;
- if (port_or_nullptr(cell, id_LSR) != lsr_sig)
+ if (cell->sliceInfo.lsr_sig != lsr_sig)
return false;
- if (str_or_default(cell->params, id_CLKMUX, "CLK") != CLKMUX)
+ if (cell->sliceInfo.clkmux != CLKMUX)
return false;
- if (str_or_default(cell->params, id_LSRMUX, "LSR") != LSRMUX)
+ if (cell->sliceInfo.lsrmux != LSRMUX)
return false;
- if (str_or_default(cell->params, id_SRMODE, "CE_OVER_LSR") != SRMODE)
+ if (cell->sliceInfo.srmode != SRMODE)
return false;
}
first = false;