aboutsummaryrefslogtreecommitdiffstats
path: root/ice40
diff options
context:
space:
mode:
Diffstat (limited to 'ice40')
-rw-r--r--ice40/archdefs.h4
-rw-r--r--ice40/chains.cc4
2 files changed, 6 insertions, 2 deletions
diff --git a/ice40/archdefs.h b/ice40/archdefs.h
index 038a3131..c2b7019c 100644
--- a/ice40/archdefs.h
+++ b/ice40/archdefs.h
@@ -22,6 +22,7 @@
#include <boost/functional/hash.hpp>
+#include "base_clusterinfo.h"
#include "idstring.h"
#include "nextpnr_namespaces.h"
@@ -122,7 +123,7 @@ struct ArchNetInfo
struct NetInfo;
-struct ArchCellInfo
+struct ArchCellInfo : BaseClusterInfo
{
union
{
@@ -154,6 +155,7 @@ struct ArchCellInfo
};
typedef IdString BelBucketId;
+typedef IdString ClusterId;
NEXTPNR_NAMESPACE_END
diff --git a/ice40/chains.cc b/ice40/chains.cc
index 7eb03105..2607959a 100644
--- a/ice40/chains.cc
+++ b/ice40/chains.cc
@@ -292,12 +292,14 @@ class ChainConstrainer
// Place carry chain
chain.cells.at(0)->constr_abs_z = true;
chain.cells.at(0)->constr_z = 0;
+ chain.cells.at(0)->cluster = chain.cells.at(0)->name;
+
for (int i = 1; i < int(chain.cells.size()); i++) {
chain.cells.at(i)->constr_x = 0;
chain.cells.at(i)->constr_y = (i / 8);
chain.cells.at(i)->constr_z = i % 8;
chain.cells.at(i)->constr_abs_z = true;
- chain.cells.at(i)->constr_parent = chain.cells.at(0);
+ chain.cells.at(i)->cluster = chain.cells.at(0)->name;
chain.cells.at(0)->constr_children.push_back(chain.cells.at(i));
}
}