aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/pack.cc
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2018-09-30 18:39:49 +0100
committerDavid Shah <davey1576@gmail.com>2018-09-30 18:39:53 +0100
commit6a1b49c3117da76c752d1d4e2fd1c1ed7eb94698 (patch)
tree12fdcc1f506c76235372997321443648c1d149cc /ecp5/pack.cc
parent3e399c9f20f4caaab6cdad41cf4b66994be3d966 (diff)
downloadnextpnr-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.cc9
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