aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/satgen.h
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-08-08 11:40:09 +0100
committerDavid Shah <dave@ds0.me>2019-08-08 11:40:09 +0100
commit83b2e0272333cfcc2529e0833723a52c066146a6 (patch)
tree9985b7f840383419ebd5b189023ca6871a02d5a9 /kernel/satgen.h
parentb8cd4ad64ae9a45faecffc1a6b92a8219755bc60 (diff)
parentfb568ddb4e2ccaab352d9d062f6b4926aca75680 (diff)
downloadyosys-83b2e0272333cfcc2529e0833723a52c066146a6.tar.gz
yosys-83b2e0272333cfcc2529e0833723a52c066146a6.tar.bz2
yosys-83b2e0272333cfcc2529e0833723a52c066146a6.zip
Merge branch 'xc7dsp' of github.com:YosysHQ/yosys into xc7dsp
Diffstat (limited to 'kernel/satgen.h')
-rw-r--r--kernel/satgen.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/satgen.h b/kernel/satgen.h
index 210cca3f3..e9f3ecd44 100644
--- a/kernel/satgen.h
+++ b/kernel/satgen.h
@@ -475,7 +475,7 @@ struct SatGen
return true;
}
- if (cell->type == "$_MUX_" || cell->type == "$mux")
+ if (cell->type == "$_MUX_" || cell->type == "$mux" || cell->type == "$_NMUX_")
{
std::vector<int> a = importDefSigSpec(cell->getPort("\\A"), timestep);
std::vector<int> b = importDefSigSpec(cell->getPort("\\B"), timestep);
@@ -483,7 +483,10 @@ struct SatGen
std::vector<int> y = importDefSigSpec(cell->getPort("\\Y"), timestep);
std::vector<int> yy = model_undef ? ez->vec_var(y.size()) : y;
- ez->assume(ez->vec_eq(ez->vec_ite(s.at(0), b, a), yy));
+ if (cell->type == "$_NMUX_")
+ ez->assume(ez->vec_eq(ez->vec_not(ez->vec_ite(s.at(0), b, a)), yy));
+ else
+ ez->assume(ez->vec_eq(ez->vec_ite(s.at(0), b, a), yy));
if (model_undef)
{