summaryrefslogtreecommitdiff
path: root/passes/opt
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-12-29 17:10:37 +0100
committerClifford Wolf <clifford@clifford.at>2014-12-29 17:10:37 +0100
commit29a555ec7eaa0e561f76c65258a50c54b6468546 (patch)
tree74d48ff9a1623b617338956ace2d373643f80139 /passes/opt
parent7a4d5d1c0fb78d49163160bfabb8cd1f5d1a2899 (diff)
Added statehash to ezSAT
Diffstat (limited to 'passes/opt')
-rw-r--r--passes/opt/share.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/passes/opt/share.cc b/passes/opt/share.cc
index e2c31bec..7ab50991 100644
--- a/passes/opt/share.cc
+++ b/passes/opt/share.cc
@@ -1226,7 +1226,9 @@ struct ShareWorker
for (auto it : exclusive_ctrls)
if (satgen.importedSigBit(it.first) && satgen.importedSigBit(it.second)) {
log(" Adding exclusive control bits: %s vs. %s\n", log_signal(it.first), log_signal(it.second));
- ez.assume(ez.NOT(ez.AND(satgen.importSigBit(it.first), satgen.importSigBit(it.second))));
+ int sub1 = satgen.importSigBit(it.first);
+ int sub2 = satgen.importSigBit(it.second);
+ ez.assume(ez.NOT(ez.AND(sub1, sub2)));
}
if (!ez.solve(ez.expression(ez.OpOr, cell_active))) {
@@ -1248,7 +1250,9 @@ struct ShareWorker
std::vector<int> sat_model = satgen.importSigSpec(all_ctrl_signals);
std::vector<bool> sat_model_values;
- ez.assume(ez.AND(ez.expression(ez.OpOr, cell_active), ez.expression(ez.OpOr, other_cell_active)));
+ int sub1 = ez.expression(ez.OpOr, cell_active);
+ int sub2 = ez.expression(ez.OpOr, other_cell_active);
+ ez.assume(ez.AND(sub1, sub2));
log(" Size of SAT problem: %d cells, %d variables, %d clauses\n",
GetSize(sat_cells), ez.numCnfVariables(), ez.numCnfClauses());