aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-08-27 14:36:20 +0100
committerDavid Shah <dave@ds0.me>2019-08-27 14:36:20 +0100
commit9f9920f92b1cc580627250c7d3b09cd3079a73ad (patch)
tree600f96a4f203db56a30c5d70b6639a3b95b84f38 /ecp5
parentc06d7390b61adebb6a6c368edf0cc92a9432374a (diff)
downloadnextpnr-9f9920f92b1cc580627250c7d3b09cd3079a73ad.tar.gz
nextpnr-9f9920f92b1cc580627250c7d3b09cd3079a73ad.tar.bz2
nextpnr-9f9920f92b1cc580627250c7d3b09cd3079a73ad.zip
ecp5: Add full part name to bitstream header
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ecp5')
-rw-r--r--ecp5/arch.cc20
-rw-r--r--ecp5/arch.h1
-rw-r--r--ecp5/bitstream.cc2
3 files changed, 23 insertions, 0 deletions
diff --git a/ecp5/arch.cc b/ecp5/arch.cc
index a2936688..8ba1af4d 100644
--- a/ecp5/arch.cc
+++ b/ecp5/arch.cc
@@ -158,6 +158,26 @@ std::string Arch::getChipName() const
}
}
+std::string Arch::getFullChipName() const
+{
+ std::string name = getChipName();
+ name += "-";
+ switch (args.speed) {
+ case ArchArgs::SPEED_6:
+ name += "6";
+ break;
+ case ArchArgs::SPEED_7:
+ name += "7";
+ break;
+ case ArchArgs::SPEED_8:
+ case ArchArgs::SPEED_8_5G:
+ name += "8";
+ break;
+ }
+ name += args.package;
+ return name;
+}
+
// -----------------------------------------------------------------------
IdString Arch::archArgsToId(ArchArgs args) const
diff --git a/ecp5/arch.h b/ecp5/arch.h
index e85d9c43..a479abb6 100644
--- a/ecp5/arch.h
+++ b/ecp5/arch.h
@@ -491,6 +491,7 @@ struct Arch : BaseCtx
Arch(ArchArgs args);
std::string getChipName() const;
+ std::string getFullChipName() const;
IdString archId() const { return id("ecp5"); }
ArchArgs archArgs() const { return args; }
diff --git a/ecp5/bitstream.cc b/ecp5/bitstream.cc
index cac11867..c5a04a8d 100644
--- a/ecp5/bitstream.cc
+++ b/ecp5/bitstream.cc
@@ -600,6 +600,8 @@ void write_bitstream(Context *ctx, std::string base_config_file, std::string tex
}
}
+ cc.metadata.push_back("Part: " + ctx->getFullChipName());
+
// Clear out DCU tieoffs in base config if DCU used
for (auto &cell : ctx->cells) {
CellInfo *ci = cell.second.get();