@@ -405,7 +405,7 @@ struct DftTagWorker {
405
405
auto &sig_y = cell->getPort (ID::Y);
406
406
auto sig_a = cell->getPort (ID::A);
407
407
auto sig_b = cell->getPort (ID::B);
408
- if (cell->type .in (ID ($and ), ID ($or ))) {
408
+ if (cell->type .in (ID ($and ), ID ($or ), ID ($ xor ), ID ($xnor) )) {
409
409
sig_a.extend_u0 (GetSize (sig_y), cell->getParam (ID::A_SIGNED).as_bool ());
410
410
sig_b.extend_u0 (GetSize (sig_y), cell->getParam (ID::B_SIGNED).as_bool ());
411
411
}
@@ -669,12 +669,12 @@ struct DftTagWorker {
669
669
auto &sig_y = cell->getPort (ID::Y);
670
670
auto sig_a = cell->getPort (ID::A);
671
671
672
- if (cell->type .in (ID ($reduce_or), ID ($reduce_bool), ID ($logic_not)))
673
- sig_a = autoNot (NEW_ID, sig_a);
674
-
675
672
auto group_sig_a = tag_group_signal (tag, sig_a);
676
673
auto tag_sig_a = tag_signal (tag, sig_a);
677
674
675
+ if (cell->type .in (ID ($reduce_or), ID ($reduce_bool), ID ($logic_not)))
676
+ sig_a = autoNot (NEW_ID, sig_a);
677
+
678
678
auto filled = autoOr (NEW_ID, sig_a, group_sig_a);
679
679
680
680
auto prop = autoReduceAnd (NEW_ID, filled);
0 commit comments