mirror of https://github.com/YosysHQ/nextpnr.git
ice40: Allow disablement of CE global promotion
Signed-off-by: gatecat <gatecat@ds0.me>
This commit is contained in:
parent
6b1da08d81
commit
a06fa4862e
|
|
@ -616,3 +616,4 @@ X(u4k)
|
|||
X(up3k)
|
||||
X(up5k)
|
||||
X(noglobal)
|
||||
X(no_promote_ce)
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@ po::options_description Ice40CommandHandler::getArchOptions()
|
|||
specific.add_options()("promote-logic",
|
||||
"enable promotion of 'logic' globals (in addition to clk/ce/sr by default)");
|
||||
specific.add_options()("no-promote-globals", "disable all global promotion");
|
||||
specific.add_options()("no-promote-ce", "disable promotion of 'ce' globals");
|
||||
specific.add_options()("opt-timing", "run post-placement timing optimisation pass (experimental)");
|
||||
specific.add_options()("tmfuzz", "run path delay estimate fuzzer");
|
||||
specific.add_options()("pcf-allow-unconstrained", "don't require PCF to constrain all IO");
|
||||
|
|
@ -266,6 +267,8 @@ std::unique_ptr<Context> Ice40CommandHandler::createContext(dict<std::string, Pr
|
|||
ctx->settings[id_promote_logic] = Property::State::S1;
|
||||
if (vm.count("no-promote-globals"))
|
||||
ctx->settings[id_no_promote_globals] = Property::State::S1;
|
||||
if (vm.count("no-promote-ce"))
|
||||
ctx->settings[id_no_promote_ce] = Property::State::S1;
|
||||
if (vm.count("opt-timing"))
|
||||
ctx->settings[id_opt_timing] = Property::State::S1;
|
||||
if (vm.count("pcf-allow-unconstrained"))
|
||||
|
|
|
|||
|
|
@ -774,8 +774,9 @@ static void promote_globals(Context *ctx)
|
|||
reset_count.erase(rstnet->name);
|
||||
cen_count.erase(rstnet->name);
|
||||
logic_count.erase(rstnet->name);
|
||||
} else if (global_cen->second > global_clock->second && prom_cens < cens_available &&
|
||||
global_cen->second > enable_fanout_thresh) {
|
||||
} else if ((global_cen->second > global_clock->second && prom_cens < cens_available &&
|
||||
global_cen->second > enable_fanout_thresh) &&
|
||||
!bool_or_default(ctx->settings, id_no_promote_ce, false)) {
|
||||
NetInfo *cennet = ctx->nets[global_cen->first].get();
|
||||
insert_global(ctx, cennet, false, true, false, global_cen->second);
|
||||
++prom_globals;
|
||||
|
|
|
|||
Loading…
Reference in New Issue