diff options
author | David Shah <dave@ds0.me> | 2019-08-27 17:58:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-27 17:58:11 +0100 |
commit | cce5cb65c108140d997eb60ffd92a9fc7ad02a5c (patch) | |
tree | 600f96a4f203db56a30c5d70b6639a3b95b84f38 | |
parent | c06d7390b61adebb6a6c368edf0cc92a9432374a (diff) | |
parent | 9f9920f92b1cc580627250c7d3b09cd3079a73ad (diff) | |
download | nextpnr-cce5cb65c108140d997eb60ffd92a9fc7ad02a5c.tar.gz nextpnr-cce5cb65c108140d997eb60ffd92a9fc7ad02a5c.tar.bz2 nextpnr-cce5cb65c108140d997eb60ffd92a9fc7ad02a5c.zip |
Merge pull request #320 from YosysHQ/ecp5-partname
ecp5: Add full part name to bitstream header
-rw-r--r-- | ecp5/arch.cc | 20 | ||||
-rw-r--r-- | ecp5/arch.h | 1 | ||||
-rw-r--r-- | ecp5/bitstream.cc | 2 |
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(); |