aboutsummaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2019-06-07 16:11:11 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2019-06-07 16:11:11 +0200
commitd9b0bac248a12466cd2b62d02ec11b2e60d25019 (patch)
tree2ab86f7b951134cda53cf24d31c3007a0c218d25 /generic
parentef1a5fa60653a89fe008288aa4da00c481db2c46 (diff)
downloadnextpnr-d9b0bac248a12466cd2b62d02ec11b2e60d25019.tar.gz
nextpnr-d9b0bac248a12466cd2b62d02ec11b2e60d25019.tar.bz2
nextpnr-d9b0bac248a12466cd2b62d02ec11b2e60d25019.zip
Save top level attrs and store current step
Diffstat (limited to 'generic')
-rw-r--r--generic/arch.cc12
-rw-r--r--generic/pack.cc1
2 files changed, 11 insertions, 2 deletions
diff --git a/generic/arch.cc b/generic/arch.cc
index 5617fa63..f6f7ff87 100644
--- a/generic/arch.cc
+++ b/generic/arch.cc
@@ -496,13 +496,21 @@ bool Arch::place()
std::string placer = str_or_default(settings, id("placer"), defaultPlacer);
// FIXME: No HeAP because it needs a list of IO buffers
if (placer == "sa") {
- return placer1(getCtx(), Placer1Cfg(getCtx()));
+ bool retVal = placer1(getCtx(), Placer1Cfg(getCtx()));
+ getCtx()->attrs[getCtx()->id("step")] = "place";
+ archInfoToAttributes();
+ return retVal;
} else {
log_error("Generic architecture does not support placer '%s'\n", placer.c_str());
}
}
-bool Arch::route() { return router1(getCtx(), Router1Cfg(getCtx())); }
+bool Arch::route() {
+ bool retVal = router1(getCtx(), Router1Cfg(getCtx()));
+ getCtx()->attrs[getCtx()->id("step")] = "route";
+ archInfoToAttributes();
+ return retVal;
+}
// ---------------------------------------------------------------
diff --git a/generic/pack.cc b/generic/pack.cc
index 26ae9182..0d47ea19 100644
--- a/generic/pack.cc
+++ b/generic/pack.cc
@@ -282,6 +282,7 @@ bool Arch::pack()
pack_io(ctx);
pack_lut_lutffs(ctx);
pack_nonlut_ffs(ctx);
+ ctx->attrs[ctx->id("step")] = "pack";
ctx->assignArchInfo();
log_info("Checksum: 0x%08x\n", ctx->checksum());
return true;