aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/satgen.h
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-08-07 13:44:08 -0700
committerEddie Hung <eddie@fpgeh.com>2019-08-07 13:44:08 -0700
commite3d898dccb3cf535a213f313693b2b7a4ede7c68 (patch)
treeca5dfdf506a9a5bc37178eaa06f0d285b7649ff5 /kernel/satgen.h
parentcdf9c801347693c273309694685b2080ef00fd02 (diff)
parent3414ee1e3fe37d4bf383621542828d4fc8fc987f (diff)
downloadyosys-e3d898dccb3cf535a213f313693b2b7a4ede7c68.tar.gz
yosys-e3d898dccb3cf535a213f313693b2b7a4ede7c68.tar.bz2
yosys-e3d898dccb3cf535a213f313693b2b7a4ede7c68.zip
Merge remote-tracking branch 'origin/master' 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)
{