diff options
author | gatecat <gatecat@ds0.me> | 2021-05-30 16:18:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-30 16:18:07 +0100 |
commit | bf67845df67a164a3c81498929a31fe2a33c95b8 (patch) | |
tree | 75758c78b88c7e54cc37104c608e22ef408805c4 | |
parent | e2b838a10a3eac7572d8702fb5353588aa80ec0c (diff) | |
parent | eb2265a2bf6415665e31a13157fb561d3c14bf73 (diff) | |
download | nextpnr-bf67845df67a164a3c81498929a31fe2a33c95b8.tar.gz nextpnr-bf67845df67a164a3c81498929a31fe2a33c95b8.tar.bz2 nextpnr-bf67845df67a164a3c81498929a31fe2a33c95b8.zip |
Merge pull request #714 from YosysHQ/gatecat/mistral-dis-compress
mistral: Make RBF compression optional
-rw-r--r-- | mistral/bitstream.cc | 7 | ||||
-rw-r--r-- | mistral/main.cc | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/mistral/bitstream.cc b/mistral/bitstream.cc index 92d86410..340ba6b9 100644 --- a/mistral/bitstream.cc +++ b/mistral/bitstream.cc @@ -34,6 +34,8 @@ struct MistralBitgen ctx->init_base_bitstream(); // Default options cv->opt_b_set(CycloneV::ALLOW_DEVICE_WIDE_OUTPUT_ENABLE_DIS, true); + if (!ctx->setting<bool>("compress_rbf", false)) + cv->opt_b_set(CycloneV::COMPRESSION_DIS, true); cv->opt_n_set(CycloneV::CRC_DIVIDE_ORDER, 8); cv->opt_b_set(CycloneV::CVP_CONF_DONE_EN, true); cv->opt_b_set(CycloneV::DEVICE_WIDE_RESET_EN, true); @@ -42,7 +44,10 @@ struct MistralBitgen cv->opt_b_set(CycloneV::NCEO_DIS, true); cv->opt_b_set(CycloneV::OCT_DONE_DIS, true); cv->opt_r_set(CycloneV::OPT_A, 0x1dff); - cv->opt_r_set(CycloneV::OPT_B, 0xffffff402dffffffULL); + if (!ctx->setting<bool>("compress_rbf", false)) + cv->opt_r_set(CycloneV::OPT_B, 0xffffff40adffffffULL); + else + cv->opt_r_set(CycloneV::OPT_B, 0xffffff402dffffffULL); cv->opt_b_set(CycloneV::RELEASE_CLEARS_BEFORE_TRISTATES_DIS, true); cv->opt_b_set(CycloneV::RETRY_CONFIG_ON_ERROR_EN, true); cv->opt_r_set(CycloneV::START_UP_CLOCK, 0x3F); diff --git a/mistral/main.cc b/mistral/main.cc index 9147a68b..7b4f9594 100644 --- a/mistral/main.cc +++ b/mistral/main.cc @@ -51,6 +51,7 @@ po::options_description MistralCommandHandler::getArchOptions() specific.add_options()("device", po::value<std::string>(), "device name (e.g. 5CSEBA6U23I7)"); specific.add_options()("qsf", po::value<std::string>(), "path to QSF constraints file"); specific.add_options()("rbf", po::value<std::string>(), "RBF bitstream to write"); + specific.add_options()("compress-rbf", "generate compressed bitstream"); return specific; } @@ -82,6 +83,8 @@ std::unique_ptr<Context> MistralCommandHandler::createContext(std::unordered_map chipArgs.mistral_root = vm["mistral"].as<std::string>(); chipArgs.device = vm["device"].as<std::string>(); auto ctx = std::unique_ptr<Context>(new Context(chipArgs)); + if (vm.count("compress-rbf")) + ctx->settings[ctx->id("compress_rbf")] = Property::State::S1; return ctx; } |