aboutsummaryrefslogtreecommitdiffstats
path: root/passes/techmap
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-08-15 12:19:51 -0700
committerEddie Hung <eddie@fpgeh.com>2019-08-15 12:19:51 -0700
commit7f10019610e9570549ddcb945da8ae048d718dfd (patch)
tree40f9776fded5e02bea37ff8b1d1a765e15fdc944 /passes/techmap
parent261daffd9d18adb13bb3dc53b17d3543109ea26c (diff)
parentd8a2aaa46379df7a07f4b776b7f9981b04999215 (diff)
downloadyosys-7f10019610e9570549ddcb945da8ae048d718dfd.tar.gz
yosys-7f10019610e9570549ddcb945da8ae048d718dfd.tar.bz2
yosys-7f10019610e9570549ddcb945da8ae048d718dfd.zip
Merge remote-tracking branch 'origin/master' into xc7dsp
Diffstat (limited to 'passes/techmap')
-rw-r--r--passes/techmap/extract_fa.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/passes/techmap/extract_fa.cc b/passes/techmap/extract_fa.cc
index b541ceb6b..8f195a90a 100644
--- a/passes/techmap/extract_fa.cc
+++ b/passes/techmap/extract_fa.cc
@@ -513,13 +513,13 @@ struct ExtractFaWorker
}
if (func2.at(key).count(xor2_func)) {
- SigBit YY = invert_xy ? module->NotGate(NEW_ID, Y) : Y;
+ SigBit YY = invert_xy || (f2i.inv_a && !f2i.inv_b) || (!f2i.inv_a && f2i.inv_b) ? module->NotGate(NEW_ID, Y) : Y;
for (auto bit : func2.at(key).at(xor2_func))
assign_new_driver(bit, YY);
}
if (func2.at(key).count(xnor2_func)) {
- SigBit YY = invert_xy ? Y : module->NotGate(NEW_ID, Y);
+ SigBit YY = invert_xy || (f2i.inv_a && !f2i.inv_b) || (!f2i.inv_a && f2i.inv_b) ? Y : module->NotGate(NEW_ID, Y);
for (auto bit : func2.at(key).at(xnor2_func))
assign_new_driver(bit, YY);
}