diff options
author | Clifford Wolf <clifford@clifford.at> | 2014-02-01 22:52:44 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2014-02-01 22:52:44 +0100 |
commit | 374674aff46c7464596fa18b07a5331e2f03ff8c (patch) | |
tree | 02d47264df12b5fb18477c3799ce484b0a727789 /passes/sat/sat.cc | |
parent | caf540d1adaec4e2a231d16d329aada8791d983c (diff) | |
download | yosys-374674aff46c7464596fa18b07a5331e2f03ff8c.tar.gz yosys-374674aff46c7464596fa18b07a5331e2f03ff8c.tar.bz2 yosys-374674aff46c7464596fa18b07a5331e2f03ff8c.zip |
Added sat -show-inputs and -show-outputs
Diffstat (limited to 'passes/sat/sat.cc')
-rw-r--r-- | passes/sat/sat.cc | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/passes/sat/sat.cc b/passes/sat/sat.cc index cf3cd59f5..f5c8f50bc 100644 --- a/passes/sat/sat.cc +++ b/passes/sat/sat.cc @@ -693,6 +693,9 @@ struct SatPass : public Pass { log(" show the model for the specified signal. if no -show option is\n"); log(" passed then a set of signals to be shown is automatically selected.\n"); log("\n"); + log(" -show-inputs, -show-outputs\n"); + log(" add all module input (output) ports to the list of shown signals\n"); + log("\n"); log(" -ignore_div_by_zero\n"); log(" ignore all solutions that involve a division by zero\n"); log("\n"); @@ -758,7 +761,7 @@ struct SatPass : public Pass { int loopcount = 0, seq_len = 0, maxsteps = 0, timeout = 0; bool verify = false, fail_on_timeout = false, enable_undef = false, set_def_inputs = false; bool ignore_div_by_zero = false, set_init_undef = false, max_undef = false; - bool tempinduct = false, prove_asserts = false; + bool tempinduct = false, prove_asserts = false, show_inputs = false, show_outputs = false; log_header("Executing SAT pass (solving SAT problems in the circuit).\n"); @@ -898,6 +901,14 @@ struct SatPass : public Pass { shows.push_back(args[++argidx]); continue; } + if (args[argidx] == "-show-inputs") { + show_inputs = true; + continue; + } + if (args[argidx] == "-show-outputs") { + show_outputs = true; + continue; + } break; } extra_args(args, argidx, design); @@ -928,6 +939,18 @@ struct SatPass : public Pass { sets_def.push_back(it.second->name); } + if (show_inputs) { + for (auto &it : module->wires) + if (it.second->port_input) + shows.push_back(it.second->name); + } + + if (show_outputs) { + for (auto &it : module->wires) + if (it.second->port_output) + shows.push_back(it.second->name); + } + if (tempinduct) { if (loopcount > 0 || max_undef) |