diff options
author | Marcin KoĆcielnicki <mwk@0x04.net> | 2019-12-18 13:42:26 +0100 |
---|---|---|
committer | Marcin KoĆcielnicki <mwk@0x04.net> | 2019-12-18 13:43:43 +0100 |
commit | a2352504031ee69efd0aac214fc947737303eb5e (patch) | |
tree | ad93a4161ffce499d4623f0bf8dfeda44d86f734 /passes | |
parent | aff6ad1ce09264fb7fbf43a7456a746a586bea90 (diff) | |
download | yosys-a2352504031ee69efd0aac214fc947737303eb5e.tar.gz yosys-a2352504031ee69efd0aac214fc947737303eb5e.tar.bz2 yosys-a2352504031ee69efd0aac214fc947737303eb5e.zip |
xilinx: Add xilinx_dffopt pass (#1557)
Diffstat (limited to 'passes')
-rw-r--r-- | passes/equiv/equiv_opt.cc | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/passes/equiv/equiv_opt.cc b/passes/equiv/equiv_opt.cc index c7e6d71a6..7c6c2e685 100644 --- a/passes/equiv/equiv_opt.cc +++ b/passes/equiv/equiv_opt.cc @@ -44,6 +44,10 @@ struct EquivOptPass:public ScriptPass log(" expand the modules in this file before proving equivalence. this is\n"); log(" useful for handling architecture-specific primitives.\n"); log("\n"); + log(" -blacklist <file>\n"); + log(" Do not match cells or signals that match the names in the file\n"); + log(" (passed to equiv_make).\n"); + log("\n"); log(" -assert\n"); log(" produce an error if the circuits are not equivalent.\n"); log("\n"); @@ -61,13 +65,14 @@ struct EquivOptPass:public ScriptPass log("\n"); } - std::string command, techmap_opts; + std::string command, techmap_opts, make_opts; bool assert, undef, multiclock, async2sync; void clear_flags() YS_OVERRIDE { command = ""; techmap_opts = ""; + make_opts = ""; assert = false; undef = false; multiclock = false; @@ -93,6 +98,10 @@ struct EquivOptPass:public ScriptPass techmap_opts += " -map " + args[++argidx]; continue; } + if (args[argidx] == "-blacklist" && argidx + 1 < args.size()) { + make_opts += " -blacklist " + args[++argidx]; + continue; + } if (args[argidx] == "-assert") { assert = true; continue; @@ -170,7 +179,12 @@ struct EquivOptPass:public ScriptPass run("clk2fflogic", "(only with -multiclock)"); if (async2sync || help_mode) run("async2sync", " (only with -async2sync)"); - run("equiv_make gold gate equiv"); + string opts; + if (help_mode) + opts = " -blacklist <filename> ..."; + else + opts = make_opts; + run("equiv_make" + opts + " gold gate equiv"); if (help_mode) run("equiv_induct [-undef] equiv"); else if (undef) |