diff options
author | David Shah <davey1576@gmail.com> | 2018-09-30 18:39:49 +0100 |
---|---|---|
committer | David Shah <davey1576@gmail.com> | 2018-09-30 18:39:53 +0100 |
commit | 6a1b49c3117da76c752d1d4e2fd1c1ed7eb94698 (patch) | |
tree | 12fdcc1f506c76235372997321443648c1d149cc /ecp5/pack.cc | |
parent | 3e399c9f20f4caaab6cdad41cf4b66994be3d966 (diff) | |
download | nextpnr-6a1b49c3117da76c752d1d4e2fd1c1ed7eb94698.tar.gz nextpnr-6a1b49c3117da76c752d1d4e2fd1c1ed7eb94698.tar.bz2 nextpnr-6a1b49c3117da76c752d1d4e2fd1c1ed7eb94698.zip |
ecp5: Improve mixed no-FF/FF placement
Signed-off-by: David Shah <davey1576@gmail.com>
Diffstat (limited to 'ecp5/pack.cc')
-rw-r--r-- | ecp5/pack.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ecp5/pack.cc b/ecp5/pack.cc index ecd2a058..23fd8f38 100644 --- a/ecp5/pack.cc +++ b/ecp5/pack.cc @@ -493,7 +493,7 @@ class Ecp5Packer } } - std::vector<std::vector<CellInfo*>> packed_chains; + std::vector<std::vector<CellInfo *>> packed_chains; // Chain packing for (auto &chain : all_chains) { @@ -797,6 +797,13 @@ void Arch::assignArchInfo() for (auto cell : sorted(cells)) { CellInfo *ci = cell.second; if (ci->type == id_TRELLIS_SLICE) { + + ci->sliceInfo.using_dff = false; + if (ci->ports.count(id_Q0) && ci->ports[id_Q0].net != nullptr) + ci->sliceInfo.using_dff = true; + if (ci->ports.count(id_Q1) && ci->ports[id_Q1].net != nullptr) + ci->sliceInfo.using_dff = true; + if (ci->ports.count(id_CLK) && ci->ports[id_CLK].net != nullptr) ci->sliceInfo.clk_sig = ci->ports[id_CLK].net->name; else |