diff options
| author | David Shah <davey1576@gmail.com> | 2018-08-19 14:04:01 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-19 14:04:01 +0100 |
| commit | 45bd0a8c723daad8718e38b0f563966e9da1ed34 (patch) | |
| tree | 2c792de98ca1b93f469b71c6f91e377dc1e510c2 /ecp5/arch_place.cc | |
| parent | 26be6f9761bba9dff646c6b1d071b149bd26f950 (diff) | |
| parent | 0b35cb4e60c114b3d84ae39d0462a20085ef2bd4 (diff) | |
| download | nextpnr-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.cc | 24 |
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; |
