summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-12-27 18:11:05 +0100
committerClifford Wolf <clifford@clifford.at>2013-12-27 18:11:05 +0100
commit122b3c067b87464bd362ccce96fdeb84fa476653 (patch)
tree24a53d48d43098b2717808f97bc38e223fba9609
parent1dcbba1abf28afae846bd42f49d716892ffd685c (diff)
Fixed sat handling of $eqx and $nex with unequal port widths
-rw-r--r--kernel/satgen.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/satgen.h b/kernel/satgen.h
index 67312f44..05f3310c 100644
--- a/kernel/satgen.h
+++ b/kernel/satgen.h
@@ -462,6 +462,7 @@ struct SatGen
if (model_undef && (cell->type == "$eqx" || cell->type == "$nex")) {
std::vector<int> undef_a = importUndefSigSpec(cell->connections.at("\\A"), timestep);
std::vector<int> undef_b = importUndefSigSpec(cell->connections.at("\\B"), timestep);
+ extendSignalWidth(undef_a, undef_b, cell, true);
a = ez->vec_or(a, undef_a);
b = ez->vec_or(b, undef_b);
}
@@ -486,6 +487,7 @@ struct SatGen
std::vector<int> undef_a = importUndefSigSpec(cell->connections.at("\\A"), timestep);
std::vector<int> undef_b = importUndefSigSpec(cell->connections.at("\\B"), timestep);
std::vector<int> undef_y = importUndefSigSpec(cell->connections.at("\\Y"), timestep);
+ extendSignalWidth(undef_a, undef_b, cell, true);
if (cell->type == "$eqx")
yy.at(0) = ez->AND(yy.at(0), ez->vec_eq(undef_a, undef_b));