diff options
author | gatecat <gatecat@ds0.me> | 2021-05-15 14:34:48 +0100 |
---|---|---|
committer | gatecat <gatecat@ds0.me> | 2021-05-15 22:37:06 +0100 |
commit | eb106732d94322fb5b48fbff0420ce5a6fc83eb9 (patch) | |
tree | 3ed44e78ce74793b5d5625c04475641e6e977a33 /techlibs/intel_alm/synth_intel_alm.cc | |
parent | 5dba138c87762d4b5bb7b9348da372a92fab1cc0 (diff) | |
download | yosys-eb106732d94322fb5b48fbff0420ce5a6fc83eb9.tar.gz yosys-eb106732d94322fb5b48fbff0420ce5a6fc83eb9.tar.bz2 yosys-eb106732d94322fb5b48fbff0420ce5a6fc83eb9.zip |
intel_alm: Add global buffer insertion
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'techlibs/intel_alm/synth_intel_alm.cc')
-rw-r--r-- | techlibs/intel_alm/synth_intel_alm.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/techlibs/intel_alm/synth_intel_alm.cc b/techlibs/intel_alm/synth_intel_alm.cc index 7c9e3d117..d0e84aabd 100644 --- a/techlibs/intel_alm/synth_intel_alm.cc +++ b/techlibs/intel_alm/synth_intel_alm.cc @@ -75,13 +75,16 @@ struct SynthIntelALMPass : public ScriptPass { log(" -noiopad\n"); log(" do not instantiate IO buffers\n"); log("\n"); + log(" -noclkbuf\n"); + log(" do not insert global clock buffers\n"); + log("\n"); log("The following commands are executed by this synthesis command:\n"); help_script(); log("\n"); } string top_opt, family_opt, bram_type, vout_file; - bool flatten, quartus, nolutram, nobram, dff, nodsp, noiopad; + bool flatten, quartus, nolutram, nobram, dff, nodsp, noiopad, noclkbuf; void clear_flags() override { @@ -96,6 +99,7 @@ struct SynthIntelALMPass : public ScriptPass { dff = false; nodsp = false; noiopad = false; + noclkbuf = false; } void execute(std::vector<std::string> args, RTLIL::Design *design) override @@ -154,6 +158,10 @@ struct SynthIntelALMPass : public ScriptPass { noiopad = true; continue; } + if (args[argidx] == "-noclkbuf") { + noclkbuf = true; + continue; + } break; } extra_args(args, argidx, design); @@ -268,6 +276,8 @@ struct SynthIntelALMPass : public ScriptPass { run("techmap -map +/intel_alm/common/dff_map.v"); run("opt -full -undriven -mux_undef"); run("clean -purge"); + if (!noclkbuf) + run("clkbufmap -buf MISTRAL_CLKBUF Q:A", "(unless -noclkbuf)"); } if (check_label("map_luts")) { |